vflib3-3.6.14.dfsg/0000755000175000017500000000000010400435232013255 5ustar mohuramohuravflib3-3.6.14.dfsg/ccv/0000755000175000017500000000000010400435232014030 5ustar mohuramohuravflib3-3.6.14.dfsg/ccv/mk-ccv-10000755000175000017500000000033207006213666015307 0ustar mohuramohura#! /bin/sh CS1=$1 EN1=`echo $2 | sed 's/,/ /g'` CS2=$3 EN2=`echo $4 | sed 's/,/ /g'` gzip -cd $5 | sed 's/#.*$//' | grep '^.' | awk '{print $1, $2 }' \ | sort | ./mkcscv ${CS1} "${EN1}" ${CS2} "${EN2}" > $6 exit 0 vflib3-3.6.14.dfsg/ccv/TBL/0000755000175000017500000000000006772053470014472 5ustar mohuramohuravflib3-3.6.14.dfsg/ccv/TBL/JSHIN/0000755000175000017500000000000006767436070015352 5ustar mohuramohuravflib3-3.6.14.dfsg/ccv/TBL/JSHIN/00_README0000644000175000017500000000034606535650653016532 0ustar mohuramohuraKSC5601.TXT by Unicode is buggy. This KSC5601 is a bug-fix version of KSC5601 by Unicode. This file is created by Jungshik Shin at Yale University. See http://pantheon.yale.edu/~jshin/faq/ for further infomation. -- h.kakugawa vflib3-3.6.14.dfsg/ccv/TBL/JSHIN/KSC5601.TXT.gz0000644000175000017500000016234706535650654017342 0ustar mohuramohuran5KSC5601.TXT\s۸} N3#~~bMZmߛq%[Gnv^=$A I¹8 W͗yta]rv}~?~_I w4~xm?:~qxKqGzw=<|^o~U>.LL_޾^>QgS>糫_V|I3+==īú1_M~{}:HOӃ^M8Yݯ_oハ6QNTbW٣$D_;ӝK 7:b??/|pZ|[J/=ޯ#{t.EOm8?nUEp{7ΏOùasktӗ3<6&Wm>9g| x8?׋`8cf{y&@}[-:=<}:\/=vX~Qf{hF?<䉳$#$t 1UQ8˪. $ni9iYQ#s L6V7lqق!LEK9xdEϗP<[dMJg8a*r&I6VN7x1XS,#i͊FPG&Ye h*nl]VrS݈]PkE,`)` jS^^fu[w p5jTBj,HW51ë\n/$yA0@1owlrXJh|QϧNm#)G~% 딦[fIWfLM6ˈ @%NR8KQ2aGܶK2IVoNѬ]_fh\=-g)=!8㮶$CH*t<5oWy]9"oI{m_vpp D[3pb;X{RxQ$ G!.cr3;B tLdBr\UVap ɤ @ @kU'΢D-n)RR-".BsQ[Uj;|E9>!x:vB%+zBD" |&0#@zm6 rWj&rIcϫlQE6dZ4Z*6MU|&eC*W>=rvvS%!j"[ *!8rj!mKN:lUfc>Iu}69qX.ǣȏZ5'#%-;+Yx-[?R=} zAR@4L2QiV!,CmI[4ת.- (U,=ubE[5ZՂgnKgFj):7y57ŘL $uh}8ѕQ]2!a%N# #E`ʪ798G8QѮe(PłGǮR5sEnTlKmZGxD[5Feþ($&2y&r)P5DG}CϘdW+l7ArL}tDl>19=/ t8D )N|f !+WB e8t +*t<1tTdelVWtLȗH:i3ʕd]H].m/}H]1^T.тk5 cLcPLzsDƅEL{Q{"u)6zz 4do:LħJQ{NJE{5JpA[ZD%T}'*|4d6(&4Xx FP9м7|Cڪ Y_?X7/'|Ϟj쑀8Z zxO@( OxU^9m s] qA<3ι%Kι})X\f&@ȈKs&yܑ ' L,sy8>((̦ܤ/qF\s{\Sm>yܢA9w=3x^Pi&'IL2,p"! ` X'$dz &c'7 O0 XE'\ CdB&7:$''L@|/>Ԃ L&@ ^zɔL /;@ 2'PgЋ^~&?E/v⟢5 zO iA/)zY ⟢wdLPnaЋ^nzO/d}wTuj8}VF{o3 B~O|gЅׅ8|u ?.C?07tEFw (W~`~ǀ2EFw (O}`}#;#Bp>0rc@"#;B=0c@!#;Bp=0憎edc@y!c^PVA:$9c@!1#t (D{Y "聽^ez`/4Ae=Pw/r@=@ zAe=P(G3d(n;A:XO &F3C!<+\Rk~a˥WۺX咰1vg+L, d! ;Nc:[U6,^ǎcbP(nA]msJĆ?MMmv2@3^1c$$zNhzTP`k``ktY㾠hvU z 7@[$*|E(40U jT ~~&r;y-q:sp5 p| |3=f1n |ۘmYIXN@.f m ܺE7 3 P@,lb6ԋF% `30y<+B6@/ 3Ps_/76sKa Lh L @P|G/H$W΄֜e8^ 4 4"Z4REz`WhMКF{w=Ck6s_6<͚fLfZ5uM͌m&V6^kGŜW6 ndˬz݂pꊛ^˩n ,1@@sh3`GcZ A@ڋf zd zU !~=2]a[ᇠxd@@pf fGf+g;2[iV Vj2vԀ`luCtgʠ@ZQC[nCG&If"0yh`my&++`"uh ꢮT"thJF(Pth@aDpsh&_ k-Z*wA)~QNn)ț3 q wA8+PM~ !\x<\q0iD/`.&M%,p酂 [ev.L 3o.q"3onq$m nr*l̲N;(l[l}Nb'*0<4cyo1p{{VpUV Fg%4+ oK3u :BIr_ vRV_nJ$ (Lj(s (|,!cͿ}Mس@¹oA!smCCCơ܄#[5~`Bxd6!D@ن -6qb"qj!qf! ؂Ӄ@ ,`Ml@&6ڵFZHK?CjG`gb\-LlEqČuN7S>aݍ5_w teӀ{ܳބ >_pm3jlk927 t` ]h‡ m%K>q^@M3`2|࿰h?iy}c|@;Ɠ=ca4mw9m)vm#sFD &}p誫ݠ*{i};q5=G@<ۚ/?D4ZUߘQ/od]#7 Z;mmZq<~ziZwn<G_uТwv!NY;6T]x a] >ޖ_Gފ螺}8zb>?Z_M7~vs=ϣ1{=u4파!]6^$AcMgpq;2fAkG++^chY0>9d=z "2޾ˬNd>k4O sr^:k?k丱9;ҬHɖJWR  coLe~~W?}n z~W?OsGMOyط{Vf_ra('`{ȼػ{?<%YzA_)sI ]yra*dѩ5}¯Y=uI{xz!'O q*[G=A_k];/;#Fao, |K~0a :~g2b5A}P~]ou{_.7'Aא& `^Da * zb{0G-#ɐ_oƜ/G1o1Ky_fMY~tGGLs{ IYOOaWf|cڀ?7xM+?dߘ7v_|+yyhpɓyEJ9^RoRKk%/[z̃|-cU$H:] ^#K#w#g;_d$T?4gx.R|>岿| c>ʌ[/H^a̴skn1*[lW汎.?oL򣯌Ņ"rVy7~lgy#G6˖ORTOl IiSU?$=O@$ͩ~CVA<&``H_iOk[&b0t~mm=BwlL]#nhW^D|x.^o (1o!#oL$mnDg}$?֑nuΏw#h&:mwY/,Wq7qnF[I\p(+tw_7Yn';Z# ٝ>Yo2Y YN\&{;s,I<p k,"Չ(5/ "=IU%yxo,\RDR̅N\'+oy: dY-eɄh_liKDbK&_* QR/Ʉ(al)j/ɄalU-UDy2)[dRT2Tʤ(el)%*IQR/%ʄO K7仑_Oߐy4C|}Cn0ЮKg7ݺ!7uiomGuiܶXomwU7it~C_ߐۮH9~~L;} ӝmN9~~c2rNww#Gߟ~ӣ_Bsz$씶,=-[h}Aɑ>]py~4ާؑt=Z?L5i] Tf݂& oy'.˿lR\$q5H|kF m8ck mF֌X; Úma(mOb֌%XgDa͈s+W&.]쬎ٹp~VLv֌7B֌:5֌=UB ֌@k!Z^kF#z^ak$Ϫ@&֌LO?X3J1~VVfbbfbm'b͸POŚыa05ck>!kF2=|3֌gl j X35 ±fck'c8ְOhǚюa305c[r>!kF>|?֌l V Y35,"fDds {=Әٓm#=ӒOcž?gOcL1aOcLwcž?gO1&)6~適S?5#+a_ |,kFYb X˚0f%6lOp5.ar} K{b0k`bþH̚ذ7.@0J?w}OϿo,/-|7s^py3JnePB]Vl>Qr 3nabi?i(p3-O;i(p2MO(B `OQhpofBdN${Bt6| \ԁF$11CQ|o_ B|Sj7|j"t˷u˄/MDo 3*))::"7_}M}Doӿ&''ka O ")4&L!4)A>zo)ZЪԪZZetmԪZZewnԪZZwVVUUGhUhj:*48ZZeCljZZЪ*k;ĦVOO}M}/&yClЧ'á7uO;DSl? BbSFC>Ŧ>")6鿙`)6mZH>Y?|_7"yxxoD$W)k緑Z:~|4u+[KdzOAÖe"4lij?4lij?(4lij?y}4lij?(4lij?yq4lij -M=3kMrXzf-7Z^kS8rXzudy ƿn>/`RB/~D ;TJhk OiJ Zmp`iQԆ*%4A~f(|J zm)_ B {{E {{DhroO2poOۛ:f=z"koꗝ|^؛Э[&|^؛jЫW&|^؛*ЩSuڛЧOBԧ@>M}D>"ioꓝ|^8 B>ya煣O "WvyhjU&BV%ЪUv^yhjU:Ze=V%ЪUGhԪ#RhjZu4|Zu48Zu4 {>/VUUJMž U;DSj? BRS켰BjЧ';/C>>")5 {>/>OO}JM}o&}JM}ž gS켰';/p6 {>/Uʎ{>/MDh~#Э[:;| v65,agSGagSDagSagSDagSɋagSž gS 煫gv^yjꙝ|^zf=yfT1: SKj*_p$,?G4QgDhwYnjRO]cF~2bzZy tzZOESWͧ;fTz;SW `FN+ Z=}GGNtwN8fT{?;=u_q/ZO]77uu|n~{AKw7)Yi3); <&͋;>Ӳ3) ;ܝ|:>EcsBK ՟ϔrQyLbyLRBQ9uH:>ImB3%K8}7 8777跙-]h7 7mh7l^\GeM|::l;ڼ\/߹>k:;Q{}s}.4w_tw,4w_K<C}׿~߶og ұGZ.={qp.Guy18bwyqx8.Gyy1Om߳嚙b\cWWŰЗq.y1l0L3PqbaL?-/2Ҟ C2C_[J<;b~y`!cK΋K.Ky1`(c8S#jxV8c%Swʮf dB31}!EgcX͇?5w<[Xqgbut2lp^z:{(8f{J;j0 i}1Z밌ؓՈESzF{_b5Qm=IX,boI`vU.oDVLaKokzq56oD4q},UcKowzqc KjԻRxv1g(fYs^)J|T豑2RyLd-<1mT<7?5c[Wk61i<el=]=F͈qlulcG=yȬҖuIKFp48&8{G4W9K,#R{fˎ,#RGX)uO#ކ>7J{6l)uʈ޹k~51)9Q|mqO *%͇ SJlQJ73|׻hF?WBqzUB2Bo)zV=E ~"bV{hZC)OŲG{KO]сRy?eRIeLJ)g R]g$~V#RZFPE ~=Nv#R\)u_zRx>ԌKiz%k)tNttbկ,gK =a8L$ʊRC"[^\RlEJ G)]].4XRו?!\]"]||Gvznfळ8=d4"#Y`Hg727 A:Cړc3:o soQ+hu~e{n^k@NV j.:Z+0 sp~T;6hPtT-{b3:}W G'@l`Hg- tOkIoU8l힬<)&8+O 0Cϓ/0` gKᡔW%|fae#Uv+u?qLPg#ly'}QZG&@}[I&,`:!'C5>l=k0lvv0x?~v|uMUgp ̷&O@WgJ&@;R"l&cǟL8Ƿk]ʚY%ŠŵZ4lLiZְEk:'[iyr:oj :粒vv}`h`_g$(0 H]N+8`S)V?C|rYk>]˓L57 MdW@d-s Vv'W1k2)5UZtv+ObdgrO>WIR@.[p?с'C0uHpQwC<]{und·H,nd=| m|D&lށZX&0ܵ~o. wJ 16X|m1@5ODz@N`_?º-qk@6d:L ]ǷN&к{G&p0ޕ_2Gdɻw߂%u~<|fL3LLdUp޽UR@|>z2o6g>۟6u1\_YNJ&^l߿bNUr4\ṓa0}2l>S,'< 'dp>|IՑ}h-ug2oyOO^ASJS8Vվ1OAr'{0ѣ#xuh=jE'L{Z Cīփy?a$|{.+1yBw4SM_ =_:cvd o{MT]KpGڵ L.KxW1c:[*2c6킆Tc6횆L_j^yH֨CiW1<&`&[S3Oѿٚvy4e7}ػW^367wqeHgڊf}@9ADu3T A"GsCDv3J䰃1?4a STTa m,3;,gzv><eo2mKhg մaggjP}l`'iGlًe\!}lnJ s6Y22W C^\]WShً/fRk؋/ߧ2b{6Ll kh>a0ʎ?W} E\ 񜌀)ύL]iPŃUH1vnO&ghgʁ-# P>Tch;3C*XC+ډ Pc;ސ*zLϞ9L+X>f>@M*ok^`Lc-N7+j]7&dLr3xhyuj({d6 3T FT{SV^9࠱DfhgϤ;@]{su?cn:~3TAKEVeWglM:Oܠl?aZo3s7~فLYLؙz.x:0]zbΐϙz[́L팑eSpșz@hq 9SC,(gj' efArvPM-.ĮNpv!`& (guyəڸP}/7E{rL<{Ԇ3i- PA#36:@p$^@s0#r :S7#<DgulǁL[X\-E:;*>{ؚ%7Í:`|BqL5V ^/19SHwza{r`7Sf}LvוG35vL'k+N EWpKpL= K9`~}w8Sd9 fdcgpne9l`盡s{sTzIs էLg3Nd+Z3 U GU gn8&pz6zys 3" . ?sS̾g|gn KQ+ҷeV)N.la(q CoYL8hn íThLfyp9|#ʉ@Cs2)eI+EBs4zs聅6P~3ܺ偅6}3ܓAv'k\f(Sڶϼ^<>LzܬZWD4OK `}ZXZ4ό[x@ X,FMg7mXD;9,N ɤEQ Ι1&h?!ݓL6FoW0vϛ+ny376ڧ(> 4eKBI۩.X"s`"HsVLj<ܮ9\׏|kA\;7$X*ym@GJ78Si+kY,E]3Gky= ȵC4 *\cu} GVX?rmxf(@r7C>kw nXȵ^dK`1r]_-\;~-Fv_۬eFw:⁋\wwC(ȵI G5XA[( ȵQ{Q5C3q0{sx Cց41͘Aw|R N7`> NdDSF"߾ucw @z/y-4=N|𱁫 $}H"6;a;>`xw5xQfq`mPO6oW&ɷYa+ -2@O]-۩[$&׮0vݚ4 P2@*R2L}-wwx>t |<VNw<YN#w<[6,*t;71z;]ހ;MyrzrO=k/fgˡWhGVFrNw9t;4l+'W%ohf q5bB ``0B @"@Xt,ڠ̓Vа~9׷B`,|qi3DГK`em:xYy@`,tZ4pr:o`X>7^[@ZHzanf;^hQM蓡VxRFx-/@1FH[YA-+[ 2E{[~[[W@1ZbLaD}2BXC{CV;;b;UJw=nM"'SY2@b  tFz Kf(H]l'fdj.vmbfi7EJ;&s]y@咙\\%I)ŵ |fۧq]Vi(h"Vb}9n`o E Fn["h[lwŹn-m Y%"8[l;i֣ۍqn["Zl`H-L6U樦 5mp碤z\qb;I,m( J۞P|,SBn c]y3- -mgf*[ e5Zډ0eGkҮ, $,m"Wsz='fUnT^-&Y-m4㦭bO6jiQ GP~2TKJ(62@ S1<, ljia W5C;9KhY2i=B;f-;f svQ=聲V<}$ [A$qZiKPҾ5Q2-W+ "7z#8;iԩiu\9|i>j1-=ONEK;Lq3T귯ļ*mUYhi'^ev5kZqLZ hi7C'Nxv8{k[m1>K;!~%VeV,=/g-M4L_t8giWfJ(v0ѣ='g-y]nn30:XlEנxY{[z G ' EkVױ*34֬=ƾ#hyͰ@jvLGoMM f uiY۠P u- 5kf3׬=ONS]@kv GFLZP:ְԬ=w,5k~ Hڮ$@Eqq妯f5] 17Í. 5kzv__j֥YT` pڃ~%KtǪWf9oBլ=ZNԬL_Tf;bY`UL٭fhR!yeJ(A9 (nL%RҬm23TYc)J5vLf豅v\/b2J6k3EmԝجmjeYU(x.)4Rݔ% P7@voz`4kBѬ"7CCPTchyL"a"7CIf[k6U,5[aΤfk7CYnvr F )fk2CQ @}E+@n6̙lrL_ffklMX@n*} > taԛ1c@TX9GQ6nQ8bxJCh W%[,}2*U?2)h&gk gk @t(3ڧL_8g;kے TcL_LDgkd"#}Euv[$bz:l=]v/ :[ ֎_ =D9{nZs7=+>tjU\aY7-@goCoF!- 1Pg3u\a'n"ѽ6Fy@Ymk(mfRXfg+ sc"|p=WV ?W5+ކ3SE- 93}Q`u :{W`lgﹾoh}=pgoy֙o=W謀:{ϙ}:QMFOR8$`}f0RL6/t{NMYqvPDNXle{nSXAp_SG=V Ųrv%`Okq>k8y>Oe}APjS+sNzη 3}=cc?t!9zhO`7G;K0ӗUhW997yV8G1B+~yf?.VPAY16̠ Ѿv3E rd7G;2*~МPTh`>o9Ʀ*sM-y0m99c&,9>y&/sL]zs=8hwRɤm(s=' Մa)7C5cDaP h;օmf* s囡i`b,sXswI9QfоCfVJEtvV“7n{sU V5DfȺ `h_7s3Q `hH`i bl@:Ghn@t'J-6p} Vl:G7n:G=߳,L.J>bSNXa0߀t6z>}*,eupY9ڍP G@&R8nX `,Rl^z6Н 6g#ڍ!3i=D;L7@tvfWQGa9'U}>fJReI Ҽ VNj'3yН."3z jl:wNy@xR*3vVv""=i>v(0sƓzZ7xRƁv2PT'C1(Oj3id~%߾Z;V!L_9`;Vhٵ30v탫18Ojm2}Q 0Ծ9&z^l?؀wR)}6`J98OjXවl@;sl<\F9 ^7P NyuP`I= l 9]jt3I!V[)@qR稣8Nua9P :RE6ԥXvi}Bl8g)8M00t_C#ʊs*= C9{Gm\7gχm l>@pv43U@;A0W|gwQ9)~s_ހoh7} Rl@7gUcƹU;\~@8gTfd9V{wӗ*sVLp-Ufuf9;]2SVlg5>yw9;ݬ2v;x?`Lws jv}K;vl2mUiކO\Rb'W,.YO{vζC,L:ۮ(RUqmA_1c}n5zlӃ}â:9o Fg'W9GgV lDe놞\E0v0=5j=9+ ĸ: 2r7 AvvC~hՆ *5]&ƅLnY$lesqva ja k%~3s3E`QWJwu:BPP }Nwsq~N]S5 ,!m3̢N;vߓ}VV4r JAo7\].Ap@ƒn`MjW>x*aY13)Bګ?~eۭ_١vLa\ߞg$zN[#n1|}w^ >uDbN ձ|7:=ߎٻ^/?wI9px[}Sn8؋ygixN͂>f]ӗ/l>S!V#̀|P>iRן͐fTiV:)+pUG]DÝ'P?\ULR4.b6If-sR@Y+iD?l0]B#pZ ]髹2}) ֜ɟ{>djz1?|L(CQVuLfBfgP':&4߳uL(f;!߳uLgBϒ?&ood&4ޗ(7z?kYf. 0zbhAR^\Szæ]ED*=P`穮 -)08Y߮D; z1&^i=|9$=ć CI/<Ň/):;c2J1|q!/ZgA+$>F^a #/S밂vVefFJ#'a11#pqiuO."- 'ʡΒLC?&3C5YhUf ow Cۭ9n"Nሚi>(!)6̀G >k7ualoCG?&nl}$5yQPPnScp3͠;yctlgp7jjQx#Gx!{`8cQ m@;@zߌ{} r3vNufpћՌC㯇 L3v. Egap+9<4pؗ !sP! s!|WAgb3&%L#Ld^Ad^dvfX/aHDfjf[1ӇO!/V *3}A#ק/Z+?N>cg=K;Ϭ'逼%??):U"L:*Ls#7Ls>m9$õ_ f5tX!RiLFV~e f~U k:jaM`1Ӈ%:km@3]JQvP>D^v<:)9LIN@0Ӈ,h@_yYV@_P ejz[1+IʎN-S epׁɠ|Juu5L|Hη2ubUu|6L`UM .S)N ej7e\N^x @-SǿC=?L^oZhԉJKXԾ[j^Q U-P,S']ߥAX_\QV};`.ӇAX e O aOt`dOyP)yzB1BWLf?'SLfnWTQ7&?cŃ%DkE) t4Hݸy O G̍1XwL'P$mxAQ1(678-"p~ }WE 'LLn;\ֹu+rr"k`MS+e;w[Z  +N#]+C ,>$xVdM'9܇KEM3܇_E^&0na}x j3r^9ߝjګ7 ߝ~Ĝw-:`f~Q="0S oN@.FU [?$]Uџa53ˡfBv,F@YY٠6 ɷQLHosL+ہL5iڽL~+Ao@[.%oڇQг w@͇W> G5si;h.#PoG [!p&Nw-o`7~TXo#2 f" Ȥ.W% );5)ͤ֫Rh}.<'s*v siw+EM m4f(z ڡRC ns3S?B;LbLvz6 m,3)2 m8+ӗ. }VԱַ(QS,61wָB;.$7WfS`Ga]6j^R/.4R^D)>4!}ut% =.ٹB;of(P7C1PC~3JzW/Cң (*3E[z EHQPz (c} L!t6+ =W \E9 $̤a=緇SǛ/[HAB; f( R Sx|v=7СbP"+>JŁvPfN  e0.zSo D]i ?h_CX@YA=U =-U {簯 x(S2SE! e2`C"% =_AWpvþh*_@?<7@B;IpTs)s G5 BxKƸB8vjZx (*2i.C΍LPv͐'ŀU؋6kTaa =_C+QKt7?jvPID }ԂO{S[c)Ozz}b\]b`m?dUAbp0?HO7Kً>@s~V3{g X4Iڙ1iXAx>& +ǤaLPK85-dc sx9扽cYO6hOʹ!,^ XDz>'Lx`YZX ߋ#/Lbɰ͋nO읜{ ; ^/`<5{؃'rX xbv;ײһ'f(ϼ0cR b$zԁvL_ ˴f'wŃ-@zc2}Yh@zb'ɕ9vד^XB;Z_Axb_ E_yb{ӃR ԁV&2C ؾkA_T'3?2SE=?e`=9jPMPU FK2OQUug*xOlCo0.Ϥ6rsmfkhg c c̡݌f(%aBeLe}b;)~'SA2i=m = eڀzb;P ؆Ln2@>q3mfĊ5 d3F0nZLC(=,퀺q|aV/Ҏ ՐՋ〣bbH0t^ ' E[(޳7W0ۦG] 3dA{6pz4,cgڳ0e"<,mT"3ܳ<,m!ߓ<,xf Em3}5YiU/sAL^M:ڮ(Fܴ0y6P88yv|p, QD ҳI=K(\E=K9hMҎqBY> fj0/W3*,Hgf豂vcL_M1f>e2XAɫWo;KPweYqq{#N7,)fZtJx1nY7C/ݡf' 8gUt7,YZ3%E;-vnړ{NXTgɀcBV(P f+uZ\E1@~NG/izs چVn{N_bKkpo':2m;7WnfVۇ˳ 9H欚fT[ Wcֹl=,0 m'W?pT Di\='gc७jLK[0>0mt|a:4'n'-DyM[<;m.0*}ŤӃRW sK;AmwZ)+0v O`Z[nuo7?mnAvS7xY' eM@^{o;I kSohM `{qh kM `K檽zLۓRLۣZLa{?;$3; pv vP t|CQ&}5S eH@̾nN$fLJ˜k6q0}i3҆;oj:78YdO;̀vJaT'8jv‘sI;>zӎvIJlQMqk vkRnӈv?B\ v|Hy)L!!Sq KL]Q*+3)7q@dGxǎ9텥!TX5K|0שŎCŎy腭HC^yf1Zݟ}L# K5ʇ L"!|us9:L!!usSu|-LwW )pCNND u|Sxju|ξh q^fCva+DC۝>d,7m7G'O)j ] =ՀYCPf+}H@+=_ r^͠W93UjwYPH3PU 54V #(PUja[Tq)U,EEYƅ.!o8+Tjrߍa|HB UARSM[QT K_ QCQ>*}9\AvqO5T:$2=um@R~fԎ">#(jdyJ 2#c67Y'`M;X**h`Sj_@ZSҔ>#L lfKgfХyp3*"]=8fpCQ 2HA^|>w28wSbnUX*pjFG~-jۇjց(}Zَ\ξ7R%T?@娅vtY<XvKL)kڻrHg۱تLxUf1#m?&i4W<;a#m#'~'P%Vx6t}RM<v G5XH+դc! Gr~={‗\ʴ/]_0Ձ,]mst]uKWqZt++2KWߍ]t )9wjG 6BVk9amR<-.ui= ap`JWMtQHjbJ @T JWV%v>ÓX~=v>^<}3}|+$<2J/m6Y7hv(]|cXR0O!4u&uTܢ&T܊ TJC;)b5ږvYzNݭ8*{/9?;5F'4P6UTEo![+6T+߈Ǘ||9LJǗҫX}t*%*00Z*VgVFglC6;cQD;c,Q$;c{b+ ]Ca~*XM lj&vwfhgGnXG;W8e>Al]S8tXF;=bpa#Ua" 4b]]wG۝x; "V,eƸ*2iHW,eFҮXʄ`*mOx#vG+j"64Y A&]IP盕mT!/ HJcJ(Ezz*(&r߳m1\)n_2ڨuYnM1L)mx(Jil[Q Yv_u4RGB=JTpTSLj&v^l1`$mDX<*`%b3b죝U>ځwcm 榭u0`mwT/Q=Qt0`mp XFfQt0`{wVa]Pt0`{Ϊ_ Ly u;5vѮ.,~hǸ/uƦ7H)M+{ Rzqt:1v!ÓԎYdb;̂&Mm榭0i{Q(ioI ij*Xh.*zj8ʼ-L>'M[SYAv1oFR4B HS!43B*[CP Xn @IS;b<%MR1Jj@,$MH;*JV(n/HԮ>>04C `IS扊Q!ո[Mfű))M}?j.*MG3b`JUWDieW`iuW`icWdijT,1Dg4]?R @in G`Nk)ELI; NvoPVहi8eG(M[8<4K F[em?Kㅣf pTӸ֗X=;ȭzZx3#r.\'\M,\\p4pTm.hymO qd`Isx%mߺb)4L<`ܮ{X$f =Hsۅ9s4L>2A4in#b1J&<Q+ďLNySi 6v+JS0vKR4PinPMSQa4in5CS?_MW97b$f7m=Js/,epIWHThj vQigjj&v86Cl Din-*ZHPTB˚|iny_&Sɷ*b`L~l+"]3?21+9#o)Z[ogJ|H%G\+kO틧 CM=1"v?,$" !v!҃B"0o'd2m`H]ˤ v~ ȷ}L^& ȷ7ȷK3c0tsTs4 v}PhW e Ti.m/f*XЏ1pA|;/<ڇlcsu&Utȷؐo;?7CQ !듡ookh_p3Ec|; [h`0J1kAm դam-ӗ9 mT vX/JLǷ3yOh{'Q̀h G5+|H5 Mpyaß)OhGG] ?ˤe*p.X~B;fźv ~3JҼ'P},3}i;|'2ۭ OheJ(,EM`3n Ohՙ(h;8 :\zB1@&}LGGuzx]vp '|\xBL03FoZB <$|',W6.`<> ЎJE|2F2㋱ヱ6dv3T:gQ57C(o+b! -9I+vVPډ~7CpN;kVk/`93FuPzpޙg-4]^Q`D3[5qBZ?+bA-7]şs } ІN GNy{ X^0R fZpb .@7W,sy MluᇑFH{{ޏ.p^3]~ۙ^7C; (WpM9uZ|%,΁vߋLZMyuxb=N,7 $ eobyp '\:,v"gc(MSA=|3?7\%Ğ|>&Kۙ|cțXPa( U`g{­vf.D mɉ=OΙ_rbw3à|D'o29]t3T",z2z@cʼnSCB`&v01v`d ?obQI~3]-O6g6Ojٸ!x /uRƿ4;T㋍:5> _7kQRM _¢%Oƕq.טV_헓?/m| |ƿV__/oe1Kƿ|=ƿIKy{~N}5ɼO>2vN`0MƿƠ.k{l>:n_̻ W=ڙ]O>O_̣b/F}ϋqG;J}SYtr%3%|Ev ת%UQkH\.C;rm"nϗ#V*밝b㧍G}evz'UvGjK%47;؋yqQ59n>c֟u=1Ow:Ϯqy1SX? 1']͛ (; ä`n`jGқ7'7-\E`X̗]1:nwsbEn.æ~Wb\%Z?㿮b}>sb5nWǸ짻3"L^c2(3kxQMeuy͟q9sgɸ3_]3Kqq<͟Iv3ո'm=QgϬN͟žvg1}&V>N||͟qû3~͟y4&>3~x_}6&y/=1&Ё$jӠzeL IǿE:3:ޚ?Λ nq[mq,~aLp&y5|f[ i*~aJxӼ?33'3r^>g7fP9Ϭ3{ߵd?-&Cpy˾|?/=̟Y6D39&]γ>w?NϬ󢿻:~*>3:~g=ތ?u;3FyQfk}9xɠeO0E.Y/:̟ iq'EgpL*iLtķu2pJ3f9u֟-ψp?42 t yjw<5y0fW}ǾǸ^3+ո e̺̲?~/gWǸ3] aLv}OQ3鸭B҄m2>#8[2&ou#MĹHh2&QYqd̲̟Y4,pu5z~ʸ3Um=w?&ggCΧ.z?IDNq[ϣ>yKՄ?3z7 ěE>&qd2]4ʨMeue:#_g^k^gkg|f9O%g%踭3+!VNA)3ggoi2f9^̟YSPQK3A>Jo"j"t .gQ |fY>?Y+7|f۔~}\x(X"ޤxH ٽ򗼈>39+9o_MěLěYDisb2f L,!5?Y8gtƟn?eNOgY}3&爓xӶO2(Iix9q>u޸wo:wY%}?ϼ˸(?Kğr?FoϙDs&C'uF|%}O'wg]IX5NPzsNM^3Lbݐy4&L*gAӑ?7nq'gǝ%)ģOMA'$8N~&vDişQ4f<33r=ɟe9͟Wq9I$޴ȹY'3ä&q fJϬoOo=7$ '3îs=͟WgΟy7ϼw3g τE~SsUo׼~zIi/?}3K$tɹ$t=Apx/on?>GaOgl{:94]o3_}9G\̲^^ěܢ7}$sl=}ί3$~EIf/gI֙e<+1n>wo|}s(?. _3H3/=5f]ϼ̟A|^|f}xK|?I^e<3?C]n5n'M i;W_1M1zg6[7 ;2/wI|`x{'CŸ̋3>^"7g^|g:F t쿫K>$39?sot&3O]'Gg_#3Qq^+=O5w2O5nx1Wq7$;~uqg7|ɺ1N&}Ow眏'7&YFYo9)'RggVz{ggkzy5nd9&koDy/mN>sgR?J5N}$O>rHkM֓|f|s%!h㶞;OFgt{oZȁQx'ěF]̟yJ}F'tϋo?ӥ|9WzQ׸ʍQ7O⭺.γoϼEEnb/2G79W9f}35.`k\! wg˼og,_O29F+gf]g1?32QODɷ/z}3O$)3O/ o\orIi"M:>Oϓ>?sqy:dz=7xʇr7g^ka,SE&gkI|?B>u<ۜs 9L>''o|8W9Rgde^̛}.,Y|or,vY7&2_ě$5_)9t3q//e޳?d?#뵝̗G?s:̗GO3O]ΧGN=3rN̟YFIul3?3N!3Nٟq^ۉ>dFp)3N{чyaN^;OmoooJgFE?#/WSDLzKSDjk' TgN9NϨ:oeݛwz5OܕK~qU?D[fEpm=S_s*sjٟ"L)v4S?ggt|0fgEѳ388:nص>~ >wGgAn&ugʙqߵ%}'AxSz'X~k>KggOoz❾'}k^v/r<8?Uoo?Kԫz^gsDgYWg3(O'>/7I綋>O}!OۢǠo)=W7r>73 _ě&g9;Mʇ3YyOs|l. 34o7Mo\k&޴e&$}P׼AKߤ'tnJo̥gggyx{7zgkY7}N7_9Mү;Mש㶞7:g+31[c}ȟ^[Ǿ?_7}>H縜?s͟YN99(ի:+=oxqwY3v3-8Mrě&k6}Ad~/7rW^\esI^G̢NA G3:/'33&CGisAI|ә?ΤKgCggw3ngDp3]grLYu<ËDoorL>{y굽#9g=:򁽮Ϩ>|FFɇ,; V}ˇ̟Y???g.?LZWgE1Kzs8O:I3Ɖwȟzop^5N}迟kG9/{굗gktd˸3ó^5N>&Qm=wco:nx{^߇zIɟ\$s}Өϡ?I}AHN7M{]g3`_xMr?̤? 3 yg)'Fps>̯3^Fmq>#JoqϬ;s't@(?>Я@yrړĩ=~kGy'].OW7]>y xz-g&O?MpEO̦vM?SO?o Rwoڣ>w'r>y}cQ=3o3:N>|@x[>[t$爐; qr` Yⳁzmړ MON9M|f*?sʺȟ_g.}~`Vz)̬gn1nysT7oҼ߀?3H>^̮KC?s|g.?3ȹ/3[p`.}‚Q͟ϼ]3q7|&˒>3x@>sA0浮͟ҷ ~𹟡E˽'&`̒$7]7MQz]OO/T?{RG,a^Oκ^?ʽoqӷ;__MtF@}Q}>3 8!7I!,Y@${0&.r~ 9t^HJox¡/rk_x|u7<n4pӨ0G}'Huy=wp=YxJΧMH!o$$8~$$7IMߋ.]ڳ~VS/,yqG/H(Hu5<ɟQ#?3<ɟz7yi_ʇzIEH>(qI~uğ>~zR駗"oJg ?Ӯs"7͟ 1{,=$fx{/xǛt9#E+fQ#gz>3Ixhwj/}ϝuOS|`'G,cg&"H_8Y"&']1zN?uK>sHBv'x}>/ݺ)=9%qW{s})㶞OLRMYO?#e&[4fiuxᾃ$}g5^7rwM5o SXMפ|&&zM'/ě{MZo1QIx|P!x9gVQɟy~S_Q}e$^Dw,N-3گ3ˤOgTn3 %ŃD]'gVG=G}j r~\?#8Xgv/5Nf> 8$y 9@uW{j3߻?$m.*NY|&>#~B`[ȟXgosrgMXBiy'o=!'U|rO8UOFwg]8J8JqSzG'~'甕*=ĮWWg®] ķ5\+$ >8J}"q8Š?3JOThşY%~Ϝ⟬ٟmşqQke\7&zl쇾. +I֫|IpqOo+MQ77^?3R4Kbu9OC}> Hs}>@> :I^i%?&ɯ^gv_=77i_5OĻW]9>>Ϭo1T#f>t$ĨkJ]JI5+3۸f&KWg䳭7jτPzyɛZɟ}O֟M[Eɟ]f{O73io:.7ifxs > ޲?hn|ԕx+gq+מ~m'zm'MԹl3Im3ҷj3oh=M^J6gĩ)q_Lol8Y76meTO9RCL–o|x*xFw/xF(xӡ7-7қ?y]JQ/}|ʍx(~F(FF>&6M>s;W'^S3Z?圵qܣ'x''*[_۫׸_5f#8?ln7O@]kk}FmszH}$lM~ߵxoϬ?qq|w%[g$`ßQz㾃EwEM?m)Lov.o")qg&򁧷bG>B; 3;Mɟw}ፚ?nW;.);g4xǟ$og'8O3ǤϜ҇jǟ<' ۹ɋ|`w5ny\?#q=3;3u;L} g?3MORǺcn|}._/;žg$os'c3ϸKvG}_q;#Rx$y);3>#>}#wq9C߇̒s"~N}"u1;7i?x &헸?cK~n{m^33wBD_S;'r.ة|oRy9CUnw[}r%+Ma?U7]ok|y$~|SSvg^Pykx'p:>)?3;_d't$}Oyw1$_bǟYt_ß{_󒇳S6ǟf"Lu:g;rς#xk[/9wL?t֓蒸a;e}>_$}o:N|3A)]ě9rOH>Wʇ'&^ ?g6Tψ_w,w{:gԟ3څO[%_굽,>ȁ?]}IYoM_kok]GK_gGiğ[I͟or0}y*yGgt^cě9wg܇g&-<>3KY~:gMO^gηq$? &:O08krn:̟qmoëo$/L?ěM?ʙ7&]D~2~xgwFo}9>'/5,Qߤnit$ksҏ%< >ȟ%Ε<9}N·\e|Mǩ(5*(gܤ7*3O3soxkM>z{$G>dTzx"FZ$g7ICS|#L2>#s|W@뛼.)g.IMӯ@|F"g%OHě)|rRpєMeFcI3įaWzA~&/l?p|{Wݏgv. |FyI3!OrG qDn3WJ/KIO?۷^^zm%$xNO͗~e;ɟѺ3_Ή|Hsw'Mzo >$}z97M}%F?ϛwg'I)y}ś.W=ru$ޤg`q/{IuC){|Hğ} %p:sӝ37^;=͟qZg7Ii}t^X9]:Nڝ3qA|Ҟ j7-]>G^{xu9'OK7>է23^4Ǜ;?s{ϨݑGx.OOMOMĵOM%ě~zII:־F'ښsR䏍D}OX~zEiY~;'O7ݿUo>l/3Q3G)qk"O''!}ů){e|<7}~^sQߴKegƨK>m̟qǹȟqp? .qq(yxU^[gqq;ߥ$f}>|>3:n%bWgT3!~2ޮ| \}̟97}'Ou '\τE$tӡ㶟K~*].5ޢrz)֟CCIq~z}qYgܮxM^+G) m~gG.g)}|@._1GXՎ@/5ױ{?#u7i>3>>.YAAΉW,xE̛QHK?-3Tكϼ>^|fx/akYRƉw<ׯqǓQoq0|=ğH'ٟyMFyzAƩ/X9.9OGއ5n}OCYoGgҬ_2n+=>kIC>H>9R|Fa$xsOOֽ|FF^?U>"mu7Mޓ3c9O5fP}6fv]gV׼-rx_qC=MQ1GUO}> t}Io㶟3D_;]"MN?^ޟk?|$f_=q/&%7|lSxDӓ{.^ ԃ^rcuzEo7-|GHzy 9=nagޞc[Fw]ω7I_׸P$sH(;F↯nnq?0oϼ׸鳏M)3O\=L>LY@~3_5ntsNxxS//4MV |fnrnȟ94zm'$'η4zxcߥFɇ{]v>^d=_:x5ffwN'oe{."7g D>6}OCߥr89cMqOwm&g$vM"D̪do?D^\9>gg40Q4>2ec ?k-M^e3AE_s߄?71N}SgfM |f>uoQߴ .7Qߔ7?3Nc?3qŸq<xwsT7"gAO^7dŸIRߔwɟI<׸N/sgy,qwgg^k|@m&sL>*~LKN3NqSc~svJOCn3&=3ʟE5x" >3|s'Q͟sRxUx;}O}#Kó5N]OIx܏^u^geg'WfK3ݪk^[Oԯg5~0.z7gM'CS3orI͟:׸_}~:"魃|gN+fq$C+u9u=>J# 3g7zˇW{I^R䢬7mw<0#!_㶞yQ$q[Of/}?"yS|(#'(~#fQ?>짛>AMO3/(%yQsěȟ #=Goştě$O5N%̤K}$#&M2|9;ICk˽Q/Ϭ~/|y;G>pq(O>⥎|)XĹD]gEg侶׸cܯ=:=7|FO?=)a5}yqO}L)sǓ<Oi9ԋ= o{҃OzşIngN}鳓99b/~dqǮݡ_dz(8za^<,)Gy|߁x]C8t~zr^h>'FV|`5nygP5e7Ze~z_ޓ|`<(/v}[Ezms~j[t?sLG=|fT>/ނτQ|L?8> qO>]H׸?>HL}lѺ>3.]ϸSL3K|d_D^[I>22>#~l{H_rX ~m9_Wч`9Jo$@irJON Gy]w{>̟y{ά!3r.^[ֱeG+$YS/)y)'}Ϭ"aP9(l3[zɼPz]֟ kW~^*XOd ."OOzm5n@z^;3y&ǟ:@zN(@(m{Zov}^U+_~zB]17IM{džoĎ"Y$oI]oot}i{͟wo'H'_b 2>!]Ʃ/{b_[5q2דQxWygy.2>oJO߅>?)=H.xٟ| 1ߴ)=$gok"M# F;d]w }_MJ󱕞D:Rd.ȍ&'y/c;}13sH^A$fo$f Joug߅ >'f|F}/|$z|$?9qs }OCέ1>:n|g43(U}I|`dMO&yfzSě&Շ?GO#7~o!zK}ӠzMj94|org3̲+=Rg6]ogvc+fF#̨OK}t$/}>ɃO'y?y^-$}쾴?gfYȟQ_ȟ,9F3Ǭ7}Yd!$}_Կ;]OgIgVC-Ѽ%7IB}/kB}'Ϭc>3/3rkى߸Ppɿ!R|V}5׺he7#O[g6o굵B}(~B}e-|x-K,ۜ>]p~zYYDw $ٿMc/ěܨs=WB?$y 3rOk o%v>Y׋3!q%G9)=} aEz.z:OK*O&$,jě?_^$_͒'~z_-!3r^7i~z_Oo5fUy(޵ϬIٟe|F$Bi%byO89O-3N'۟q?'~l.9$q|f9?,9$ˊ?Idş=ԯqgNɃ]gYWW18z|&>7-]짂?yş}&ix(q]|F?zgFfa%s:o?8Kc77MzsN3M7ymTn(>ιVgN9׬H8V'|K >}`VgAWgyOʹr<|MgﱺJo֟+ 77͂w^[o|*Od~svRz3O3r_k|1^&+̬EȚxI3ěܽ$d]g&V{ǭ,Z\_#>3>3\|7ҟaLX~RNOoU?}Wy[$r%X5Hڛk_kk}Igl߁rXgOrXsIH99ޤ&/D?%76MAxSx=~<^hF]wM"mkd<:^Og6ݩcF)*%.&9_o7i߀-;9ԫʾo%/h#ޤu [7osʸ)upfg={Os音fl̲K^Oq q-Ǜ$/qs-3"g^׸_ &>3oϸK6;ٸ`H_Mrk)6o^ԗIF_6gꏧ?7g&9l8]ȟIr<MnQ$t|k-^sۈ7~/ n9XzSw~όόl9F;c)5> K>sJ>y[)?#-3ǵόj3̺Sg}"ޞCPz_(v3|[W3ϬNh-7I}!3O=ߩo;,~MGq!{ow<]=Hg$oJ>>~n"ϝGv$/n~M9ߴ?`|}6ywg!*=²?w0:n?7,>k뉞w{OO{g9|oHy'f8>{Wz֓[GT'9&>_0o$/eggܹ)}Og|;>|Rx{m=؉7g2˽9V.8\z~m'8N?$q|Ƌ_ɟ{XvgVW5Nr굏ScϰrM_ױF\;h'W}>\$q]wQw9tsr%YggC-<_;sޤ Cv%R'>3J~aއ3A%xבEߎȹGϬٟI/3רK?M7I^[g?9 ޔ'9rs& :wq;r>ٟ JoL>GΟ9\>{p,3ڿ9RAοG@gVW}#xQ&X^q|`9'fgQY'Jٯ̴N7!$DixVğLěv3KÔזNŸ9V]+U79%Q)4Xi;SO>3|2{ɛMwg~׸ŻSx)Iyߥ? |&JMUH6}OgAI㑸~8ߤ}NR$Tz&Rwu~zzO?,O[U̟YJx%o#ϤQo%%yOg]D?%YNg%Od}>gvK|߁GVMYsI}Fo|&?GC.&'K)L?+ϼOğ;駷Jd.9o?9J>I><$XPg||iq;ŨjO7NM'U>Or9}ғ,~řğk\}z՞ě4Q^:N?1O;8.侃sp>:RgRO`G'$Xk8Mz켾?^|Sγg>txOoQz:I>>sl?DFpݓ|K|f~'>x'I'zi̢WON} :w7+g'îOyI"x;|L:~zE?C|߁ԛ\3z΅?3>|*R{qXL:N?={v^3Q2>SߤE>|MꛜMZWxQߴK : =}g(?]3ág}s-^CF)|?cw =ڛ]G n|?sN]ǴNz+OM|ϋ#QF/E>I |f>.h |f |F#gUOIP_&r3$3}C^3q|&>ץ׸S>qOgk~V>x~wm?]uq |^>3,|[O'>|95>}}'?^缔37}{^㶟 +, e9>_N+35NYF |*wtɟ>ěK~sUsUMg"?%5/gƠ7=qïq[ϝg7ru+V_^׸۪Oi寧|}jkQEO6}>V/l'*>s.Ϭʍ|ACg>8,EvH"+Mx%^'~a?=t<z >s o3ҟ-7 7ծc')>\).Ę3aQSߔM8i}3,zH>H>)8/35nq׸3m#}<㉯qy[|:+}/o\tS]&(6KUf&OOs|*Ǒ~z.C?=_S4?oJS_)=c⟏ěBUgE77EރK2>98:ěﵾ:?orě$.{#̱z֟C |f{^C32_⇌3or^g33oěAM}&~Hid?3$r#=ߐsӈ?1:nCdsڂ,ɘT}fR4&OQߓ~353n{!fw9fPza$;K|׸3>JqOqC9Nwz8?3JOZk"FegB?g'(~>?_GP9>.kӜszdt4ȓ|4*=7d?Rw~z2^"gII>>G{'EC}ǥ'dΧ)]3l*7YwORC?ɨIc"”oRq~/LucY=PME?ߤs?CYgf_&3>'ǻ=g.r >zQ |&.|;OI}CO];*<ό>|xw5I73.%)3rg^8e&zj/3E7m ̩k?&?YVgD>ě)r&toJ_oa]EȟNw}>/Gg.ݿgR!?o{:n|MFmO88<8 fÙ&zYǟsnj?}˹cx2F999O=~׳zL}ӦϨ^orQ-~ >v]>xs`7 47gQ\t|`qOOgLt|AIM(r?*8L?i}ޮ?T3q^XpA<8(9 ?F|{%'M~xS,̗/M$30sLcIՙ&o)xL}uYeɟ 7C/?#}^v=of}3AL̶3j,kK׸npd^bě>xSϟgI|&'XIL(xLx7|x&8ѓ/qgGvI=qYo?3y}g9w81tYg=?MMwvό'؋|g }q{7y|/77CC89&t?lQ֓i9P7|Ϝ'8+?#uq;z9;q;C?Jޔ?~/.gܦr\wޕrpƯqMv>JٿU=z%vgf}g\E}'C f뭎?s֟Yx$qM8MQ&.}]=k)xQ?Tot7feQw[ 3$_O3-:N}Mɞ&OͯXǸOUcQ@O}"USU=M?5N>Ҡϧ۪c#) :N!z?#οgQm?3n"|=Lكόr3Q≞xSěkm~nx]gLƦ!>d.ǯ}v>?>3-2I=w ?F.:w[O]TxӛoZ?Jo?eě|(u{MN=Lz^Kv9zs}o<qܒ|XO^[O6I8o.LCǑ&ߛofSsz~ 8=waRzcϜ*!,>~Mny6oҼ@I|zgΟ|/o_/ r>#g(i6]S?QCm?]%,Os}^[F_O /jw,7X+(>s|]߇3>WҳP~ ,R?T>&Y@3Q?Gv >zK?=<o:ux~z^ׁ~z˦&U>3H%L^=G}~z<;8$ωo7yɓ3Q>8 \R'U"߯-爐g޾>&Kp@}|o/b2޻85G FB$x]EkM[5&^=OE<%(r&K3o5n,UY'3Zg<眏*zH?CD;7w)}]d._>#R$ڔ͟oϧ^^ƍD7EM3|fJoEnϼ >g3c1EϬrk|l]g޺8穨eϛ EEΏx ~T$F"3uIaC_u |f[$؋29"r攞xfZ=/.*OAdߏ7%b D;"~y!4w.7-L.}Rg?zN>Nb@e|T>ON-?g[gf9g-̲-^[%sxВNꛎUߓ~n"~z{8]]oZ?,3Wq[O.[o.us~"'>'OE3q$u &=/s{u4_~SOiqQwMQ%ӓzxScq/3qi=>+s!FG{moݕ?w Ag_gC$ft!Ɖ-Ӌ/3, ̤ $B?Y۠ 9k%#HB}ܷF_o7gܮk"kB}0oNg>Jӵx_= 9Oٟz3+7қ>s>|zm/6+7rYמj*~:A{sZ}x6}O;.'d `YV?++q|<'Xpc1f<=l= okK^͊?y+.qAֱA|K] >se%t .xċ~mYg|KU~l{Ť9O%ό~ +&/M'Rߴ|K\oII%IVv?sRݝNǹoB xtM^2Hъ?#Z-'ƩǑ:ܕ&^ 龜gWWEο+c1|y%$_&O5nxܸry߸ryn[䜵(77y^58xx}Y}O_}l7qIo@\e#$e[<bq;mR/<,Jorp:Lg,z &3*=ks6N RpmۜXՍY}>Q5J=F}ӪvA}Mc˹`YV] D3R9z"ؽA=&} t$~?|}>ff̒7̟Y9F |t|H_glyq;O }v.[f9wl3Q7gMIιMIG[_{3e2>99C4e|wH||ß-kK#F2s?d 繑?3KF* |uF?)~~DQ~g|@ǩ/=7|vS4H_|q]؏Vrqɟ>}u{k99qUq{__hb/{7îc%Ѿ;̨E7g_go;gKߓi&yN@3wMzN}ƅwꛂ{@vv;Hwdɟ9Z\wTrڃW9K_ߝw93N'߯-@|FI˂7 ٩o'ܩor_>G"&]p߁ag;vs}7-7, 3w|߁'{u9;Mn> OOvMC{I|dGީ>g{dM|1ݗg?;&voJ҇|^[^{P>?~g~xp*8AIaI 4KAiJO?1!Ůg.5NKm=heWz7| %tq)yp)f?ҳvY;X>D3s{cPOʹ3AC̓xA ޤ砃x-?g3/S|Rǟf̬ >?/Lsӑo*gcK ޤnG,V&=g3o:ny<f{O;Os>>ԫz'ԗzK>)}hʃxS#ӓ#ӓA>r ~?3_q~z?:觧K6/kz~zS"yG2ҟm~zog!o_9G_[g&3~Dw>]/&{sě򈹾U3I%{&IMZ7%o{crOw?UM'!or79H?7柟gbu^X:Ooڊk%#g&CiD}"xZ"f|LJk?IF}OY^&8QޮD}SXK~zN2 |F%G㶞>9S'}Z,IQ:/MOߵw_9U3%xJ>2,Z̟YZ"M>>>9짳қ?3.'MA☉v$MêϷO⭃>ͷLě.y fuFZ?gIٟy{>:Tӛt7 IQ>ſJwuʉxS8=>K:ϜқG]M'3o3A).Ϯ+>&]oZM?a$nrv?? ؗ9vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/0000755000175000017500000000000006767436070015565 5ustar mohuramohuravflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/0000755000175000017500000000000006766133751016756 5ustar mohuramohuravflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/GB/0000755000175000017500000000000006766133750017245 5ustar mohuramohuravflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/GB/GB12345.TXT.gz0000644000175000017500000012650506463470716021165 0ustar mohuramohuraq4GB12345.TXT[sF҆_/6]arD OI+W[,Kxyf0Mz&_韫v\OZn7uaW Sq,Z_֧yu)?a҈{^_n{[-ձ5+Jc%&|=>SZz|Y?qsxO7ֺ~oVllOWO#U˷=ʶ-+|zr}q(qs>mh~f]0?/7ϿVZj_X+"V}b6mq8譵Voˊ:=>ew(h~ u߯Mqv K^^h3,Kg_YG l#cQԈENz.֛ {*h}Aзjfs:z=Bg]|*? 汵=df6Yl^8\>zhvVRX4^o~z֛qjbE[vz(̐ux}1o0M4Eڧ 1-s;}/Ot.Ot1ڍ׵>Ew s6u8>}QkH[;^m75;X_ > ')7{z8 $ұg^WXGٰӿ$mke,:@B['5LfX#ûCA[S~=>o?P꟭7@ύbHDҸF'Tm[ϟvOOtg [oa:Ot yd3^=`AƁ㭞Oo7r 4$^Oo36e RFss=ZIC1?vZ~Y/Q).*lbD9' MS'=W'cqG[aFk'V[Jܑ"]Tϻ=eg%I+en_zJ<[ IVZ*ۯ}`E皖bJo4@j;醋.\*[9SOЦ?i"xi2 ;k<3C,&˘Lo>&i\b@=tiM@WQ`Ul}0O|I3 uH.gւIM+`büL~qm1^3Yk:IwQ9.Sfg)QNy n Y*co'Mx:_qr >$+Ift!z&8D?Q:[\8,sz!Yp4}$\JF.sq0d;4]=Br=74sھ 261:pu>gc«])ќh-ͻ5޼H}TyN⻓ց#5ƈu0Ln0r@)5v&,tHs8i4l$?Y|zf6$&s&WM9XGU/,m4~C-vq3kկlSV]/.4h8i4"깜M)uPqd-NZASӍpXa71tu X&<S5էN.OĞ;|g>wON+}k>y><hۄG>1S[ <jiۄG( Em£ETG6dA}mh!qʶMx4Pj&~2j@ܐQ;c ܘ=|ٜ wٓNn n;1qx}kS{hMp{X ySQ:n;13G1؇Cygy>\-@\Vَpp]eSfׅP'Pe.p](e+ lB(;2]F}rB&{ PeVp]XdMRPn*4O %xyorͅKv%s;H*M7jJVHA,wf9}Vc<4Q*Xq8MÃhsCq/w:HJdtp`\p_pp\#ܓ4_CrO#PܓoH>$8ҽ=I;=ITx އ؞$vGo}I#\I#]]I=H|W}G໺;b5H|W}G*໺;yEߑ.$wuwRxGwDvմ72h͕Qay,&nx+|mW%sG蔤#pG` :%isQ7:~dNI3g otQ.%2筃/J$_uEI3_[_%a/ l_|ɗw6Ѓ5dM_&a5 k|ɚXK&σ5dM%k&ǰƗ_f‹5d̈́Wk|ɚ O5ט5dM $kf@V&/ˌH\c| $_"FK 2c/)HD@e| $_q /#%|1_ɗ1#| $_8%_:%_l×K;a>K֔w5wtQ`vW!?Wz]hQPՅy#xbW @Ö`` \\W ͦ% țp6c4up0PH| .&̥. ܰ; |Dﵾ ENEs?. ;gW CN!VϰSt. ;]`g\\3tn6grM)>9o7lCp7rd w2W͌<CFFJOVFVaa'c>F}CCGCG!HQ,B;_c\מ@K ԖTewHzċԟk-ƃa!bE}#oud[VnĦ~7[:?,:?,l |~n{~ʉaYȉaUƉaUĉaM.q#9oK;.ZH(qM#M4/uMv즙on4Y) v\?5_?h[nzӴhiCoi3M_>k.Xjg{οi[p4e^)X߭AKw4e^y ynce^dk5o?~>?[f[dm({n5x[/=k5Z-'^ytSn /\q1+pp>bpr1?6y4sr\s1?62]L>blHNPr7dq ;?0N,p>9?6qb- 9K8?7dgVpx&8(>~:㟿>|32y7&W/[1$>v3K2y#l51yI-MX' .+NBywr_ lR~Tx4T\Z~VY+?&"/v+jyiM$N<3~Q<{ֶ$R/;|}ױ?SgGQ2./;If_=taH?Qٓ?3;ĴP3?>X-te vT-?e/]K>? p?VLuekf cu7=&"`]hFI뙮m~LvSG%{ͷA&te/f~w!ّv? ICgv?4]٘l^M_v/[~$m4N[ f{l_?HS+-Jj?{4=?b~Y/d1M/{U& ٤M٥/TNQvi.mJ>=7}?۫z5:`φߜ23[9e+㩙?5ë)`m/gNׯJ]3lp,XW=?v巵JlTB2HOi^H mX%7Y[vEc 4 s׫G,~|\i:zoeE"v;^qNq@Ly.>~ooo=b"]׫{x7֯e8H+6aᢿH~ʗ4֫*Ϯzu\OlWN~zhk_ ֗&r(i1oӤk^ä?[ǣ&o1,0:[([|N5i\]g YT ɖۖΊjr!\]vB9X0΢|9%@R+im](zX*WEz+&ԩ]Jr)~mgoV-X-]Q /nYmuMC?^8kն%[Y0zV+򪌪mE[:T+GOMUslTpbe|VJV_hoKX~-]zNRU &sqҸNTiZ+uZugUʚY &mv6ޥxf=3:l kϗM50A/ҥ_b"]ge"&aK)rvzw5ْ~ ~&/LGQ2 eNʂY0A}06Ψ]:Sǔlɍ aؿ[o 8w`zXMY9U$[ |]: u*HTMu $"]wLu: R}to.LPo\NĤxaVnz30A}wc͜]G0AoUi>1oEj=K_ sݶ3&8aߚMDwrFX Q:rҹ-LLw0ZVE0[(Xba]o*z,L_=&]o~;&(Iwup-LPPEdx.E-mQ#Ԥ~t뱹oTvޢJߵ /փkaJE_kCEqba^:cmיcI0A QZvzc.Ɓ5j=[`'F(j*COO (4yg&] : <%&ȗ}3m=,U:S_0(@QvY5]6iX`;A &zVS/&g|8[,LPcY$0Ig65:S_=W ma wmZe'Ej&Ej=iբEuDz_p=D $0\O6Y`'] z_P`da\^ jq:0Az] ^ [vb'(j?8U1ޱ˔EoyUg Hn7 &h0Aotyӫ'v9):j[j @[[zղG]8B/uzXw֫7%rRm'/35MRhLQJ V©i҅S)k:f)v9J}k.xڬZ"ʍK T~.5{S©w[ZL)j/f}3P+2xW~IJjAjmf:fmu0A*CUlKn*Ym`dҵ~ϩU &&NT}L1v: }[ Eňh*viR~͂wlQ=`')Z{k0L/o '\ѩBTAn~ :Z\(T 8_ i~{/Z<%Uw&/߭ GUM՛2X&hg~#xataSYԗwY`'jZL5[Eae; Lԅ >mV)^KiǫugzQQT S+ +5;*9-B 4SAݔrE܂t>Ah*]855aɬX&V?Lҫ6ʗ$T,iI)Iޛ%If0A9_[ߺ3jOpxg+!{t1 ;(R#\A{N0GI]g&0> <(ѲzwQm3ZkƩzXފ{6=w֥753ldKV*P?:%3jԓ*)OF-4LR"]=0A3[1,c+*V+w,5*Jm `.JP"S)X[`CY2 L֣DyS;"]o/w(oP z(ItpJ] ]wVP,rT uڡIJ/R: ,+x&HM>iկbb纭_|F7XK^ݐ =&vi* %_P|FzKmCJ%l*]{>oL5A}o.m KgIkȏ QkM]÷N.ݒJמzSbfCTU(Ic )m&x_wYITHȷ(CՇY,Lp(6u6P =2\`#L!g% ڡ*%+N@ݤ2:S%PlcXw,&(](EIJ| zw^6ZW im&a {t}a\zo{L{;t`';BV|_6fxG4O`~ư`#ch[Rڗ/طW9ei ]cXC7Y[ֶtM.LPRB6 ;410AWKU I࿳C[Z|_0wM27&|ba:l,LPŚf=,L`&jHp ao@:_"J>H*S$mL%doOxמ_peҵ&KWOb5wc.Lp:#;zz ==D|χJ*]krT@޾U/ځODaٮfmоDlgT'h٤K$Unsal;]v.eLV~6jga:c'/LІz5r*p 'Pr ŞL\ 4j_"]iNp. a~~`vj>A~yvpe>j_/kT!*M61xugl0QaX"jӫ K]H2+=߇]wVW?cN~#z:_/WE $ASm6$NS_$.IE;0):S_|m p\2B`cwYkMˇ4԰~'me2W#sm5"b5:SkNH_WnYYuc`g#;?/wrjM;Kw1,eqal:0A]XdGՍ Y;Hj#[snr* v΢Lp+紁 2jZM ej"NT4ﰶ_;w#x-`ZCmetw(*?^ݤLm*G-7c;gn|Mp lgp ƋJ79ʰ֙Vqoa.Op&7ee&?Er;as)X 2f ;w, uβ#geF,0,檳 Q &~MbY7&(&]v.Jp -MaXĨv{ؿ=_}|'h@=w$VV>A}jELzop y'0v`(NYq;zV .L`X ƻ016^e{=EL\p ͟u/LPno|VjydUg1cw081ܚ,#o .mny<`>H\Mrܳ0A2^Owp/FIſ9r,Lвz0AkoQlqf-7cy\jA}TkT[ ach=Kmn7Xγ';PV; Z:1;!gQWƒ *wpOpXzcx4;SYd0mXD drw:};v;Q^ݲ}8c-E}D}<;giw;A@A[L5ʳ}1 lmM/>v3X i%K}>e5`ŁI&񛦇L>A&ݱF:28=~*%֙ I8L`/m'h'0ع_=v,bA4M.Lnm|]iM|R[wp5v,ZP>w`A~KmxL>&hM_;[Lʙ &̂#=XвF&p onO޾/i֝e9me;0_ ѼQLp6 }1Tr36&(v_ %ۿ-m!?c804#o>]ov7voc e0ڍy e j 7`;V ?<Ǒw /`߈sQ;ЗڀO%P;;d;ױj3z`90)'.Ap O BLL//|xYzC ̢;x5h^h&GmtEL/ k0A30ALPS;Hڲ&h63$y"͂wִضүq;^߭\m;K"_g`&xؾ@N/|w ''R:la| Lm+{wnc}`Nv.vK]DCL/|">F_ld[&%K^8`Kamw>~|#m/7i1Z޼Dc+j V^j [ no޹uo'(m:#'2^0AԘ;ŴeN#F`;hvEI;Sn7FnNN]gӴES$?8una^v,j5wdsJs}b'm.L ;A7;89C4w"='z۶>A$?AUդށqN'Wss mn`G}>EM8W I΢C$WNpM뗺\jax9.4L|fژ&x3bV;X¤Vr6jL0ٺ^eM'mlҵ~}!w7)ma'H=;gk iX>3?jVOXڙvrfqu&%.muoi5j .4 4߱^vLr5}Y':w= ;ːwpJ9?t~p67֯cl?6ֵrL0nj%ˤԪ3'&гL2ƒ`c>cx+O;KV'o֔OJ,OtV[[<jOJ]9Ac?麳&l ?+Ka#~ҥ;[ORW.,~ ecXvCvw)\T;qעeEǣzSqþXu z<hxlL ^x$b=L^qH=D= @~ҝ{ztMb'HEڷ `\eYƋ~ ZM:28ϫ#R:9]k%7/@}Ro[}mU&PF=\J~YTmnvsl'Iכkw 4dmk\`M0ݭ_·n.F]n3^-F\mm62Os]e䳶}Զr 4'Pt15 .L#t@Kך+I&zK|{5yvdݱLvncEmac :Y: \)O;@Wuwp}OYk?)֝uv֞ZqX.8Jwv~ >2_bwptT= fc L1,b;AT(`riA[$;z1~ׄc86I>/9_Nn>~cZV\vEE<{~1=O܁72:'͠7COyNcCۅb@ d LOJ~+ ;kk};݂ ~c* oK~ KxGARKdNmS4w .|Q_;A,&]V+~R|_R;cU;}t׈xT;[gjoS?N|nm;(R;gmҥ3E|Z =lu3U}HYϳvʑeX[bI~/=#$lOJ=<;AmԘR`VWm*dD0AQz$ʪw=SQ_;AL-v;ƚ'8tǸkxDQkwאQ # bGWR$?AV|Nm Nn }FƀuX~EԸwncEőz'c /Oүfh5ԗOU &%@q]#xy xם%^k%= Tg`cرoƔlt ;QP+ٵNtF΢MoHJf0qa9bܹ [ m9c$gQ(Fmic%8ZE)&TYI .kԱ[8T|S}u ;T[c8/;K;}R/gj1wlVecI hŻOJ]vG- vD,b]:ld;5Y L`{(g6)5z"D΢Yҵ~zSSܘK/y 5Om sMEi@=Q+y].z$wL;NP@i Ga .;PZھs.TMcԻؽz'0ڒ@Qfwp荞T&0fqkRC$j%ɐU߅ >F }R[M!ef&{L"f;'w]D; hv $F} ;[z|jOP7vR%|L^twd![ځcXڜ;vAu&Imo3XvzE&gQRpNpɕI}s˻.ⰶ^%J=.ctB9Iln*hm>m~L;kMN5)WfLE,Nz;ꌸ~S9'8fA =r| :S͢hOJgQGToIyg7w`&=o ⌝, LPhRzj)\ԬezV_zrEes ~MZ‘UjmtۿNߛx/,ji(xW__e,zH. nm'8td`IV?Ct ^|'M b^JL>.@HؒR7UgaQ]Lh0vP[|پe0{XnaS'x"Pv;c,~ ÔhLp6޵~[1بBAb'x3RYiu m##NT :Svi#[}a牴md@қ^6Uw0)A=S+|ԺzT8EX|Ϊ&o.٬!j*ݵ֙jY O0mw\w"}Ս I[O5Y>)wykoǰ)Xaa+R* 1aO[%`S}>g> TXO &];Aӳ f;H&5RwRO &j LX[LEmXX;OL Xġ &#]+ &H Zx``~e1SL0l ;g}^l+o"bcGEkM~Kw &,7wowP]-7|>A6/ޤ0aO3*chL`y%nr7b;n۠;AX;ywn0փXDu . _6eLwc'٤pJv[Ց3ȨdZalMo&x ߢ]QFw"roolR "{/JLPt'vYI_Al kbiܧ*t`{o|yڿ-;̰ &ꗾcx6w6)x-OP{c'0M~2__zZi>`9"/9{wp62r+vQ&?A7@ok )'8t>ATaT]}s 5 ưtV^״q_ƶvn]:{@9Z;1_: ,?bwP'7&PQ\6w=qQ{TOP:m{wA.;ݦ1 /t}uk}v~}Yv$e/`=ᶶKi70=q4I,b/&0ǰj׳}[yശѽli#>z-eC~WfwpX]CF1Z.k~w2||-z=ށ͘ƷI="v1E;cxٙ}C'W A*6q[u>d=;CdyfR8LgԘRͻ90+&xy;}V_qLYޟy m z~&͓XǤr6^rvwlQ{ &xc.L݅: "/t~wQ &/yk&=94&%?m ܷm β-'jc$XD I0AvrmîK;\봑7zavpwP.|lތ]ڒӬYXfLp6wדXVY—E=mEl߭XK,U xˎO|E&38㻛Jua˥f@z U?O'&]8{J&[o'A`[msJVOp)f ,`;x6d5'|CL>P ;Rbܙ es[rZ L{Nbs-Z4̈́c8?wnccwNc>4L>m''r /KIx%@e L`l0AK [p I][= ;Adl&ޱmaZ{;v]b.;o[LX9;a O;o L|Z0Aj6no1k{&9j*c1-2&ט <3r38:*&|[e-v!4dRIiYv_] ]یٹM3{0fMv R8Z2tXDY|rr}R]{útXz?)gXVjXYڏLj5Yb5Iۤ˩I)kS_ Vf s).YU?X[qX;'|Oo6ش0u*.v6POJ[ iL0Xp _Ǥ:;6uK5 ס_Lpw:nץR*c>tdm-:NP>qNuj QWvs C~c֙LgRQmxVDNW0l*NP0A&lJc];?R~k/D܁FI~Rb=7r$|cX[' ؟wPcx&]Q 'HjLV5RR=`'zf; pNV7F;m3&=DŎ;x|NIICwcIɽInΉHz۫lY2>yvto{Oᆳ_j;x6c|ϡ0Aݟtɡ7I~N$뗸Hg-||RritH%v֞5taqׄO r\67ޱo];Ho`OQZv%'ٴ9QjR8bat ~Skl[-kYo~5kka=MJ,שkLo ^wˉ@ϟr]v~hO֯?)|/|kAuX`Z|R0Ag~ &(j[5cx:Y|Gka'PzR+Yc >)oFony62^w-֛, pΈ;ȇAWsgq$gaO` ?rz?)|#YI1˫Zy mw'0m~z[rup L}tM;8jLyӅ Z׸]ih'8z{& `* Z2].ڍ la'М߁.rlNpؿ-L0tFT;'H3Y zדLP,;nz~ ;].k=/&7wn`|8|_wJa6ֹj ]RDgz tW|e'к) ԷSvRk;@p~V`b;QoTT `kIך(OJI6ʏKmaB}Rx川@3LLz |kjaSk]NWAge=,[:'8I=nSoQ6&Pi9Iv85`'xԦ ۫"ǰ&|PcN%jȨ('=& A-Ҷs>SUji ~9͒@ /Q &Elj_L;_|}ySIvRZg?W.]};x#kzL0?m'w~ ;Y 5]K|KoLm6I_>n~ˮwJVKYرv,LPs Z9+^ܡҵ,Kg159Nklcڿ+wxyDzۤ`)'PO[|iƞ:20YYY^@icN-1֖XacX8U#?)qIdou,'j ު;ATw,b1|l='к=R;0wi=iRYjv^v,Zr5ٚy as8mKvvL &л%R*ֈ;Q)'HOʙH!1<>'ݶm`+ ;AUco ?fU &jk"ڻ%b'i: -&&zU')n>7s;g|" +bĈTS,;?j>ƛ&fscm%;8]e5L &4icEwhmK/[^" ͐.jD4n>IN+Wm cՃzX:Iɳص:v'/jLART;(簶s+ H<'] =>J<{6c=ՙ>U} AP\Yt遜:ʠH wET\ZjLcXL;%O'5NT?T wҬR8az'NH|Zr8i'PM" Yv, [ԓh:] ,3[[|3Q59zch:K;wc%En L0v"b'pؘT=;ɤwԆ$}$|v y DAldu(H`G6$=rg5kMjH`^Dnpxm[!0AUMâ̭`*bJp }cb/o`IMŤz6s/ЌUW1L*]:;uIN&^62b5f@oAym ϐIF78p*2WQVwvq֞Ok˙tٶf=PsȽ,(ʻVrmƵ;Q1WNmo 06uJEϟtٹ U6Yۮ7dޘ ,q 5zۺb M,"6ᴵ0ׄO.]+Y(y6}A,b/ǰ^oK5|Xzb'\kgTM Wg|z23S2q\3qEq;AVl.yAy"o}lETt&?A6Zʅ?K = vk;h.u)Gx/;~6mamnԟ6]Kzh'tyIw]DLP|ܻmz!_la=,v8-v/á'Wq,"e&룛ە"sOE>ÄkL`rATKonp OJܶm;cF~ELHQgecp8mzW}eطy(((`G=;BAW^w 9#O,@PԓYO @+|҅ub`3H@+}j* f'mȦwІ]ۡ&IǰGVmWeaz] 4#'%V y j#[lWEZKRK0M>RvܗIw\rex"W0J!ҥߢ dc^BϥQ[|YXUO &%۰0kMu[O:QZwQ*نPl`Ű^dߨ^TUHl/oJX/5l:cnǴ6r]x(oF]-]oi=`mm ^zY_]uW*F$1F+-ݷސugRg*ѫwa%,{u{UnЭu}Uni9VlsAqܨoJt`PlMnNu?TTLPb喾ԪVwb̂a{-R`Ff*/X~@`cX[U=Ϊd֫/*Uߖ~/U^vD/Y>Y,-Y}_"]X^>o.ks|P|-eYl7kUݷth{hҊ**|˩S-R (dnuFU-SB BmfStЙ޼ L0KElfo L05Χ b&.tVmLovQUǾa͟RkxŽ^ӹӤkϟjoOSk=laWzCjyjzЯZ 59md0(.k;Y:XZz紶TP6VI\uƉl`5)U;50m7x=m`SQfTiKL5ZFu6^aR&8k=lzf)6j;`"t}|_.vEL7|{pOTW n>k~Wx *ޕ ,כI6_lk=A\{w&kΦIkRt:{Un|P/FIR֣R2ߩwP5AU[&xL0mnNZF_W;&%cVҘgc}? ;ln>IYvvK냝 Npizv$j;V-.äKQw+(NpNp-ĭ_1ٜ`'0;u[[w NpMү`'? iaߡ_;A8_rvnXeO`'o֪si\Ctੱ;.EOFz=2  ";v3 ` jh6^l /RnDٙ̂jyX D~;vz$J,B{" *};v,*Bάwt5{;˚s;'ǎPkw4fe;rg<'} b'L[n`0AX&0AP^X&&<T" *`x 4){^m L`I:6'&~`U 0A &ٞ`xYdwfLRuٿ_}̝1xoЯz& j]z@497'\2>MW>&|_v2oe>O`^ WL;Vz@w&|{NQ#&|cͼ>AU;Yn:DOQ 62 ۙwF]; iEʆ ,;Ol'H'|d2|/ )Ce'ȄO`oj>A6 k7^mdNүe R~_5 ɛᓢ3|Rt&OΊMH_t&U ]HY%_'EgrKRtVЙj>&P'eMVWxW@}ҭ_1 7X&]&Hr}RT`U|R; c= N/6c0R0Vw,6&xU`Iw~:]&HSW g>6 﫫L,ȆM51&ȇLLjL/]}`4m {I&Pk'E L | r5 &\6]1A&Qmc_LL*~b=KN0A.62[m7ޘَLmǂ sC{W+NB`ifJAş̂bdȗ(| IFa{{h'7 &x>#Oӹ At_G>Ȇ{4#o&x+)cmoWM mR;ldkM;‹0ho`(-vO+L0.]`qZ_*<:70#X7lWO;`HՋ9#Fݱ`u Z> ۅ`T L0l ư1P]{ X}hO/&[&v€ L0o`i&%~^Q &0yY[IuT u2 FF3 _jl×"3 _O*;׫mW vOOS?)9>&%||]LʟtL9JzR_RCl41^7tgEbIљԋlA /LꎗIYI/|A_"Z'_RنUw&h]ֻCNC+ֳ-Zk_j}aVug]dn/*6EW$'TT4R)"y"~7*6}\T/nQW-o4 Ɉ~X0.w 4'p:hOʛArՋu0f`,=/0;-a3来w&xm1t }\  4WZv@u-3Op*R~]8ЯI N;|CWIOpLk$ f=,|C}OpTk[ikc@gjS 4W'EgEgJٰ&C`M>*CC,fȁDpQrRiz ]́Jiƚ5}y0c;À@kR*mNϰoL+) ExL0jL' ExL`&x0&0Kz }aG0^#`o1 Fw~ Ҩҥ3mImߛv.>5)U]tG0']vÓL5rlmѯ#`O" ;KI~g׾`4S# \L0X[߈5 ƣL0B` Ij͏^0Aњџtn[ 5^>Hm+1IUFD,b?Lb}8+'L}-&פ ΂fOM j#-6 ؍<5vC_ ;ޒl ;q,3a'}yN/7rښN`tNp$Mz`'8ۗN &l_k$0As2_qRޕT6>Jm|(*جƇ|@igN|'ؿ71J3eJ&8/ҮTh_;"z'8S9k1J8ǰ)'1lj#[Fj6kW-*n ǰ91l-0ne8nef8mxY1,3î ǰ k˚T/mc^$æ+`IRk{+>`[FLpie㭴5ү>m W-LpKLp `3~W<î[h՜OzûYW_T]k+ V+/îfc/7-1f8>8]jV @+ uV^, @+|R0^0ILsx^TiM8tE 9֖kLZ8g0ASShMZ{8]Iz~FQV&Tށn0ם-9ۃm oA;ڿ-L{-wp:ށVəzڊsUPVM85:c0mzw3á, l[;+Y,>,5t8C[c8)p G~K1j˟F+j[[t޾`˽`'j9- F- CQ[N0Cp( 17-p ]jO~PqN05SmnW%_~~Eڢ_e ʛM~~+̳R"UaY@JDʹƽ~u-LIuM;Zߟt*+7,LP,,LPb=烍w"ݝЯ؅ U 7Z1Яea&7oo1)-&i+ 6b#[Mz CA 620j+K u fp5.85d8ȏIx?opSQ2nw]e4'mg ھ r B܁fHKw.Fq; ^6ߨX 4g'vQ-L"[񲹽Hf`ͼIYju`IY~љڣ*  4'Eg䓢3}W0AS b3c+ 5 bO:70ATk]D+ jPhNO~[哢_e4V0f a֐xoIZ5.VѷSOPo鲽6}Wk*-lmK+ }QTm"] ^>uaߩқYځOP '(ꅩ c +|Iѯ>AQXܯ~m'(T _*m$ Yo_} W+ân7COPsUU>AvOpnOPSlmH~[[F~Vu8+j|jU_>A?U 5*|;ztښOPmQTTv,|~ *'f Z6oUbOp۾O^7YOu5UO鋪'h%4 >AUgONVߥl[gYSScz1lf̝1Ԋd&eϫ1lޯI_ViWƀ~aS_]OДGM- L40A&ݘ@l LД=1֯ LpMz Lpj`50A ( Lpo8SO7r Lfl蛷 nZ60Lʝ/&*wCi`[3240&Њ幁 'Em`Я&6&Uiy*t}40Av鷫 Zz0i:n5i0AWߨwށŅ6w7Q`QXzޱzk&/|l#+3ށfZ_Gk HzS_z1,N?4LE 7Z8oL(;0fMśzSy7'%imך4X &|.>HOI]6TVMS;V 4:vEns?jA$`ߖ~n0I1 &Ⱥ~o0A~Lc#{ aㅣL`9n|GL͚hUu56D~Y=7@am~z|1hc@zXf*^_@s~RL5d`w &mڿ_k@L\75v@zԪvS6uZM~ShM Hnj = wvS3Hϴk&gQS?M vx~pS{4D9-}Ejw"};g([,*o%g!|YT_rBi@Q~RIkK= };PHԺx t;vȎKO N6pb&xu07o NEvS܃٘@mbj6&P1A$aڹ ><{}>*%cm_Uw0Pq.buxS߅ m٘1mcm'xld SjyX;Uxx]|S2f= N>;?u828vK?p Rxcx.|FZcxcxj 6[߭_lVzMHmkZ[k mdЯz@~__b?,2+w˳0A;;8l1<ծ1<1<+;@`#Nk2+xFߦvf'"f=.dN3M1̃@~ҥߦ;~4}= ZmֱkNЪIo3)ЯbZb7UJ=P;vCj;c1T γUJK=yny%ϞF 0R=`CmLc KϜEJךdQ> v`'Z5[kMӤR;1=_5n`s V9UNLP5e z^ji '65یѯ 0AvWw *` f`o&`˖=ư`ڬ[k-_LPok~=Uo&c "&z@ʷ`&j`&LO,G aw`A,l6&3O |XD0AVX&0X&HLPԒ>EmLP<K&70A 6~=EzLPlǂ "AAKAQKAQKAћ%%3!_z'_2^J1EgݤYX[kM&ſﮕU'H_)Y[&{7@Y(WXL`uK^0T[л0A}L;5~%qb҃ &{Y/ kdK"c~6>IR$ ԛ%E簑3v6}Yt6e zYd9_r%gѥK΢KOEZ^r]_r]jyYt6o:cr]z_,2K΢[l/9`cHu=J6I[]'xOpRK~+[W/ n__%?_0 ^0m Y`.Fmub/}w'n_eM'Ԛ *%?ڊ"?vėZ_}6k~NwallWo07Rt(~.L=L8/NsaOv묪5y[KgQ}u߁U0.EAгz;.͋5X5kR W35~;XzzT wxk6XpXۥߠ޾I >U@ ꥝@ zLj EœHA Hƾ`v &:`md1ؿ5N0A&EzM0Aи1AkRl &h &r`gf=nR &zzN01& (`mdW ' kݛ`j<ۅ` &jӝ` &j)`0ߍ T;`x mzP &Ӥ3)@=LLO0& D6O0ՊNh{n;Zr& gn߁b}fw( tb'%;}XR$v4=Hd9܂>酴t얗']:ڟd#|hR;AUR7)vĮcw߁>)vĮA꺢(,JvYG /$[%ksCQ &Ŏxivi:wj0A>U`oQ& ۪d;'h'~$;LdAmdC' 7`,O*EgѤL0kβEgL^ܘ@SymY[tY6&Aw;^N|&d[N|SjtW~ҍJ RZԦ-O Nl"wpw.I_C}߁}M} j@A-;zXzX.E6'jWwlrwOI^ @3t'IA$)~8;*5;SGF܁EK1+gq]/'q-;l!]zN؂IZw@IPsrgUס(dE ' +8{Tz YHߥnK0AM[vI0A9Tg`r[Q`/ LPx ޅ岶t"`m~ˣ3&`7&(z^`b:`X(\`埭dkEЯ}`h;_}C^`b$؝&(٤[W&(v d`b'9F".U "SL߅E|Rt&O$F쓢3E6BgHCg :u7tؿamY& `ް1 /'坥(> LP@+6ޱwezި&P'clp udž1{gQ<@ym%wpm;~cRV h%;I9wMt}4']veүүK*P }; tqRwծ;x 62@܁EV ^LA-lz@z|]o@%}R[L~cN&eه@~Rk'-I}౯7ަv :;x|QM;菎A:c|]gAgM7;vHkg5>-S^ڊ&#G}߁iV٣Qw$=&hUǹ.Oڐ^*FA8#Ï)ZugivU2bI&E0~&?IRB` &ʹ *-HmWLpvLAj3FIWvVIc'ENj*wPޱäضd1 z#@R:n*"`v]}`GF<ɾi#0L4๭/QHh^O0L7* L},}5G0f\[8S_M;Tk]̮_L0ZջD0V_`IYjy` IYbulnԘ oHMJ^t#mz1|Վ "vmI0]h&HU uC;P/xN،<;Smi2/ 85;ZtqN$|k˥]qI4/'%,Y13q\%1fsCgjuOp O]% dcy>)UKzcx%1LW8 ߁V, ߁V7jIhkmǯL߄཭-Uww=v;xI|ׄ൛a;s};z;s;=~uށ(M`G9Z L_$ j##wbcfr,(m>Qڴ)$;h=3*]:) Iemם>麳oEWudf0y3~`-f0A9maV &(` &0`hwC}Kg04 f+/&ylmo6)1~>︃iXb7wwd}of޼޳(`^b=]J,W1)6;5ETXǤU1˥֤LAFAS9wx>44 1w`gjNp+tQ9ff;芫3]M&Q,jkX}҃XDgbudb͊E|eb`mѯ"L,32]XnXX<]L,3nbk3F=3vqXDgW 2\3]y&?A60^6!<᦭ikxh;A;>@TNP)kR-;^r5TdP): hΔSO1hRtL}\O211bIJ1ZF LP90AQ[3 mRWٵܺ&]w7+md/m[ n}0 n=S S n}bo*"z06&3V@{RT/  0AW6l(Z ҥ_Z @3~ҥߦ/&hji(`f{LU?)Ӿ , zHuE iR֯r- 6&г Q6&Pb٘@-L. ׾&u|}`W_LjsXj. 틝PQPy 7ð͠/&x@Vel ^ 0꫹ 6'ERV `jDzM f>HUg`iw,8Zu ]X!iIWҿ~m̾S&HAWu] ݤm!ekcJ,e(ԅ VXu_X &Ym?YwU>)w*|L0A|զP~ӫc@\G0UdҜLօ u9m]XD}V0A}\&Hԅ q[kiR|wV\&HZY擮AǕuadQq>AQo_wP.5dԦ[;뮋h{aڌ ^eՅ EZT0k끺SoJ]S*|o ݲtY :wpM`.L_8;A5ݘn;K}>AMrY+|)͗u0A yכQ] r[w}Q6F\ z@vmL`)Gn;FT|Q%uaO;qw`c5`6j9mp &k VpLk㏇J|vj*]g# vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/GB/GB2312.TXT.gz0000644000175000017500000012526206463470723021073 0ustar mohuramohuraq4GB2312.TXT[sF҆_/6]arD OI+W[,Kxyf0Mz&_韫qm]gwryح TX??_cz,>ϫ/4JYݖt_کZ0?4?[!5&ckRboكKLz|Ob`fo,oǭu~l~96Gƻo#/z*;+魕m[Vd;XP,M`}ߗͺX[;oa~^< Ļa?n^ymg=<6վWD>mp[k߬uzx}ZP&;j_m`>6м45eCgXϾxؼlhSh}QIfKx!aq9~o8e2Z1}4َGǢ-\7 zK#aT(oղX_7tzWυϺT<7< ck z4zl-ؼqfyb}f!yv/z+i(}}fPvd7~lŊZ7P!O7b6 aZhOLcZrwhwD^h\bOk}p l zCq|FEאJ{v4nkfw>U}4ORRoU-BqWH2qcQn:ba Hui1+:Iڒ*FǾ_=^h{뜆 xSxw(hy+}v?" ΟtF${A~iq>e0_miJ@W|~{p|޾3DћKqNbO/ޒzKCf(6vc-'0K+KUή;QS/k4zV(dn>3bW)q?藵כRp~<urO-¶(OqZ:P4_SyK/.zrI:f'ہl?Vovl)Eu~SxHp0!`Q>9ep*iln.s:@KngFK!AZf[?,tobelj&~OP*2i?Q/[OfzMLҚhw( NC_^ ȪޛbJWolǶJ?~AV(S?xf~+@lEوr- ;8]z? ,SE8pZp9Yt30"&\7$YR+.(bzN< f皖bJo4@j;醋.\*[9SOЦ?i"xi2 ;k<3C,&˘Ln>&i\b@=tiM@WQ`Ul}0O|I3 uH.gւIM+`büL~*@x$ggy<>L']E`WLy#D9]-V*fpnQF7|jɹ&xpt&A֛}LcG|nqrUd p+ٺw:9Sl-ЀSvQ9|Ӝ[i6`RʬwТc\ļnKl6s=1: wyFs6J yě7xN#Qah*^y:NZf#X3!̦IrEXhlؙ!Ymd9NI9Sې .^!̩T\5`UUh86:hEyz .jHSάVjNYv裱W/ܪrn6Aőȳ:i}N5N7:a Z)nJ*hf0iP>aEiQ|=s>&FlD]DA8^ȩ!zsOMG;N,_# UM!H̆hJ2s@x6蟀z LYPn>t&H$D͜, <6D\{]A# :H}Rab)X`AAs %4Rq 3 P2H@aQlzsPH`9:Y&М . (МNAss`yi;s<׵`9oK 2М?mXk*ߪo_M )U0 |%g R_TM T=?8cpAm3 ɞa"uɫy-jM!L5[=TD{\)bsO9yRYdx(mtLLo)hmM<,ն QJkۄGm£ǁ*6DC@mh֣ƶMx4zQ\&~5=ICqOR#ܓoH>$8$8R=Ij7p$zb{ i $8<)IR7pxJ{RoH>}I齁#ۓ{Gj's%%wuw$#]]"#]]~NI\1 S:W%'蔤=#F`9%)sQ3uEI3_˜(ɗ{F|%r|Q/ l_|ɗK,u|%_Fߝo@5%k|ɚXK,%kF`/Y<5 #Ɨ_fk|ɚ /5^%k&<]XK\c 5#&1kɚk,Z@&b/3FK rS%|/ˌHvK 1_ɗ#%|1*HD@e| $_|%||җ|c|җ|u_/cLׇ/,sI/YS"]N_rDNdPdPSA}ɠ%r4 K|$0/taP_2KIã#<Hb]<Hb<H /G#S+կW+8&p)eSm kGZ/pLW`4  %43Ms [^7gϷfHѾ@ӅFIE^\o> uI:*GU@U?]"|_M6t[}.pq].4d2"oٌhԅqh 4B"}!0K?2pCp.n:|_>a. ;4n]v. ;[X ?N'ҹ04nvKasq BΰӹٜAv7㷿ݨ UWȑ*=lf\63du)< t[2Z!K eq! d p2W"CpG rh{()l%]9C5B\pm"GX"$?/e&,|.wsgցm߷ySG6u?~toX?6td?,l XX?6sd?,rd?,9VՏmY|&,5[8skE_4!f.Xj#!skES{7 4vH7m44MMFw"+EpߏVk6-Zֿio_hi?KoiM'M߿kI|{7-yf.pJSw`MY߭n}OZd[cҔ%{%?m%{ݒ{y߬Uf^f[dm7Kƿn5x[/=k5Z-'\ytgSn \q5+4sDžc}b3k4yr0('0?CXrlʶH@߶_A_+\ w<_'2?m&@e)s&yux~/ 2/OX Ͽ:;0~d߶@ؑS;/wV s&X =;_e:Ê49ib4$ IGHHiiiEEMIJ/--oZZ߭ KRPp]V kZٓf\[+ԋ+jyiMmҚĉOі<-~ǿ+uxˈ*+LoX/ǿg{q/\?~Y=?d NWJCHQ5St` DH#~F:?:^/˦eֿٌ4!-?}N;iagua:;eGT_vĿ {237'f<;?ŴP3|[-t~~e/]i8mٟ&ֺ~ZYͿ {"`]l|N[]@?&;eo޻~{;_NHlw?$;Î'!ih._뗍E:x3d?4S%lewZei㐋4޿b_8ޢ&tGb?G_o=&٤M٥/TNQv.mJx>=_٧ߜYȧ^s{Ub:`س/{7o15be7fCS!߬~M,+Gfb+_?]~cX[?J/|}?-6y&?=:`ׇ,>s,۫ҿv巵Jj1/OҿOI׮a~kQ4P_2E8IZt 'OҿF.W6_1/0vxk =uzǧ:̩FLNi.~/Kk[WۦYє'oo^~S\IM~.Mz9UW `I/?I~ʗ/֫*GWz/\Ot[tE_.6롮~w[/8~/wt&Kodf* u~r>D5ߺ3͗kewzL06~>ke=w+kgORԯ@Xvr-}=,$֯e] .b·U; ڞOߤ:[ ]~.ݺð{ݲja{s݌7K{XđT],Tba_Wymʫ+uXuh_1Z|8XJT+[^vK~F~K=mc} ='){ZzS4U_::Uj&]wScmY[xzڋ:S/=)r*]{TvQ4)JךtCw!:{,&ٯ-R':Snd=ldKk$]{;4kd&(P.Le3^QE^: : 2f +ja206(ŞI1%(krcڮ3uf~K/f1M&:20c.LǡL0la,YF!)b4z3P'Z,֙: b6޵~Ϯxazd]'bo0Aƻ0|t`R$=A 7&:&>ԅ Jם5HmxaJǟ s;K3w[ưoI&]&Hgё-L)ut1,LL0AŤPA1oj}a]̺~&s|X ;K&ȵ>е0A=okaLOuPYr-L.0A a}\*ҵns{ҵC~N}jPXaaBE䟤kϟI7NY,LbD*Aޭ:S$\ ޱt0޴~}5j}a#[~ךjb=l,Ld5L0}&(v3P0s[ ]zQ;u,Ls_[gP smLгJg]wZL͂=,;ඵ UIKѿtMq_hal)խ0j^ RWD5´maxxNk~(W`RӪMvvY,LO(aޠba؃~ʹ1;ZzY ư{y0ACgKr)6u><~ bwaZ_mdLNasEw@; -LI:nϫ{Lpَ]ma죬SCma#R)G[; n?Pj:7|=&YNZ-[k]kvx3ؾX v;S&(o/LAI\; N;jˤPIꍢO|OYY &| m!]C mK㰶M.~O[ ̥Vaᄡh7y690_[;t |ܤ s΢Ljŷldk0H`EyIۯaշ0A¦^K.P麳/Yr~J 7*ĪsJJ|SAݔtoR%%/ld ҅Sc=?IsIn᧖I7|Ij'bIj_HɷװY,LՇ#5U#1/|RI$ƻpYL0Z/`4w Ntvw7>rT{ӤZ;6'Zwu0A/wYH}cX ? ?|o7u Ī\E  0Ѭ_|㷍lo~~bRvC'xoߊ햅 T2| efP9"zoR'zR"]iݛU۟em<&]CmATpHqtsk1~;Ukmמ6c|IUG!tYMx*j\B]k$wK_qcom[,C(8֙ZsV)Urhkh 4 )N@I~g5:S%PF1CŀԶBu99I)}asSM[.Zו &rvIGotRKdOo3)wɽj] .Emd؏tVvlnˎ8GH}p6*&}2k(퓽nIiP;m'vHIs3ZQ퓤T:I_k|!I/L;ݤ`ZeP> ;;/LPrgHO;⳸}kɔBlnauƻk/֘(K& Sa?LK$䃱X0T|AuFZt$ye*${{|jSOT L9]IhId,$8DSQ.ЃC$>OG`ǤkMj%sy<#ǰIFOЃ8lzi9~aw@Op)/-LP}toFb'ՇH6^޼zX=2=m1\]O;YHV_^E$vJי:K=4U7>_8DvatX[TRǡ sL6ugM[H˞amםul;a.FxP\Mf>Ix^nE6/'9 Ԛװü >ځOp=6bòzXw֥L$UY^ i=ܜ%&]w(( I~aQ1WcX^k˞Wq&ld_XĠLs#Xɔ݈EW+o> RẈBY bic`j"ƳqQ)k(:iXS-9zMf/K|^$.Yo'2u>_0a=[COs:7ɤ]@,yZ/{Ӥo_XSITcP }wv hkK޼9&kebtE9ڂd;ʁ#Cwzu;2U GK# ɩ,I~c:S68.&kF1&C~'mk2ʨ)GRkDblc29j ;aڹ7o̥1mcXvS$<.iX{/w %v*;?a=TIwaN[6&Pt! GTK^´X[|~m0*ג,)wu)禷S٘@Ye'0 Njp%C-tnqsG۬ߥy[-MloiG)8 ; ;j&qHMa'ss o_6@C$NA- N rװ(' p /TZEw+ldpW~mUmOEݘZpBhlX2!ǧYp0%Con.$pEVnR٤7'N5YIkRϝ1KݔժV7&P9rc=g)"map 4iUq%'Hަd|a=ָP2֦ 2 R~:S-l1MK,uYKA4Fw D n}T7ј\Z\ȤT񛱮j0Aݽ9&LEjY!H&iC`jTsvsOAQw"Ԭ;:UFM`ZT8"J,,Z5)[p5? kk7c ` h暶0AmIZU Hm+`5EjWnZ~dmםu6/+R5raXgjP[Eƻtf/ԈEJ\˶0Ajk'ʭk;a_s)i Ne61a'8oؾ=z{Ytٯ-״΂>&x4R#И1A6)Ah I~_"#;k ܶU԰}7վgbl;k u|f_o"Z^ǰa!?؈;vW= L`X2Ե01,6l^dmѯ \p 틅 JQSNp}X6ƖvYy ư|ImmaNxםkK΢~ml%:K_;|;eX0ulrki79D:>pR8/6@Q14=Ov[ [`jŃ 8QٻR˳1zrOپưe7|Y^k}X;&%~~]]\by;xzOP = e>`㰶|def<`GzvY[r+w|wQm[!Nku4k˞WCA1;gbA:lmƻ0ז~_>"f/>X[bT^әjXDm? [(ώE>a7? ^Ǚ%jxFft'veONENLpv6n}7@Ow Lq֝U5S &(j[yzZ_0lԐQ苝hwc _ydf!?k es~a͇ёh;A7ûc j7zcx([Lug_%?AWv /`'X;Vղ`;X>A;`alasrs K~}w܁">AV b'H،k&8s^ExL0\zg ަᙬZqIc ;>XlԀchlA":[.T)8Jm+Lp b0Y,LPLP2% F;v;a Gy"_,|SX cU;p C_EwWOȳA,a"òsg n}gm'P=ιUS=Ѓzalk`Zo4sl .eG\xز`;Xld5I |PKرͤ𶣍;"1A6tHعշ8% ԨLk nH1;?A>7PoԀON-{>A]gk 0AЗN`1m#ﺞJF `0Xs&xwa4w#qh֖;4)ի1Y4uoNr5ũss oI΢k%V;Y}4|[OMaHs,RwP.b֓v'jٛ'(깚;S<XC`'K>j=J:1M͑0\.ct ͍E wP4s۶a;P >E&^>ug '6ؤkZ.ܹma'zO23殁@W5vVzM0eq/˞>\ɤ%u۶ i?f T߱z&90AU&cʹI%z V*cLς<'vփ &s1m=6/Onc 0E_ZYy' vsu?0% aw!X2Lk˛YnIw~ `:[8TydžK>)uIךP $vp\IמOFƝ%֎Oʞw8jnl,,;0ufYcxM쓮;k650`  %Oxw>)h=,`I~[1'Ee 1֯k 4B;v v]Ny}R:l;8]CKI|ҵ~k:ǰYtt$ Έ;x;*hO0וl`C[$3,մCi#u_C; QL|反Yط @?)v1W/mE1<ķ(Xڡ#R:8վmvv䪻LPIY~[,z|d`b~lk*_9'cv  ή+Ao77ÁîᥫLPlnk2k$qu"EC~;~$|)ިpZb kIמ(N8'~[NIw"֯y^p\ 6vY׈?@wRIq>)9_Lp֖SK,l)yI&hK-/1\m?*ln%U*]Cq&v 4XO9޼@ẩWT |vnaF|w ʵk *N1P|ͩ.0Acxj T\66&zXLJnؤL0} EkKnn}^;@PR qOgE,}گ;W`X n=H31&ߝYΥ?鲽FjhL'%y1)0%{۝Hy r&)5^ ig5~mz'x˓۸i&%` _OXju>f^,jư9֖%6@1wN>kׯT0&%g⋸SqE~1]T7CRp $ P5In=8S8&q:{s x|Jkk| &7|ุtI[Io߁fq^l pRvwRxc'P']vp;A6).]` wIyǪ&vvtS-9;֝*('x-w)|vCb{.r&%{8P)g5RP=;K~KO@~;+'I~/=îw@sRKOJ3Jٌ1@+ /V`@܁r?)`ms ; ztv4Y>zg5qBqbw-lmמ?Nٮ! `x;߂E:0ig vC!3U/_ru5>+XQqVrk; 0A0A 4Ct1vܗ>wT;බ*{! ڇ VΊvҒqصղ <ikLY[bnv,Z8iR?Ytnߢ5t1j ;qi+;a7mZi c,'z cm3ƭugѤ[qA|&Β.! >z j1wl8&E"@+}ҵ&a.;LSf=P{X{ѷtN0M>~X[pj4)lcؘÙl䁳1ZɊtc| Yҵ~zScؘK$y okĝ 犻XDwpw^}M3m sEq .;PZܾۛ Fչ1]voF|1i60A'Pva'(E<}maRCDj%g;X2U ^BO`>b.m_#iXĨ,HI7NٮwV>c8j ";JCt􋝠(ʌp RE8L^߭"Novd=POnV lRfpz"]^fO*zr%0AT>LھfmҮZۥC$?.~t67ck&|WI߭oL0)פ= Yٚi \OSw*O BEhhRCh%|CURGT7Iyg7w`턝&T[`'0KCƀ+$Cm0A{>,+(Lg֙j|DA0,LP4r7$8AWFB|G~w,j;A1  ǰkT\O0m&jH ԢV2v\I^7?I  frn=/k%Mmdye8Z铮{X`)1L:^Ln)B&gё{W0Azf=2v7دm;~;!ﺈjE`CI~h#>z1,LPں^c8\I!\&g?>Ҍ(3. r_O`zX໺J9SZ۵烲 2vHI7PW߮>ጝ8o;#jNp|zzf8MrvDݛ"N+g8Z':|0)VL^5tkjp 팝`< emɩ/}j3`| taS'86c8MޱMw,P2ykV;9ScJ= a'8qA؜w= : U"Ps|R0rڒN1Tlwi#[iy4=ܦj PmL*]vtٮ3]hO౶R퓮wVѓ;]ʵ9DUV:SBO0׈SE,hvuZq~kM`?VB,b7Ywe]mU&85 w`'x-v= qť D= vdzXǻ`'0|hP®!UJi;K~Rj -Ll>y |٭ߵ|[<5`;?A18QW~xDB vuy8wYwl.6֯B0(sدgOCy X6޴kXdS!l~B~S-;k;&۴j+zT}Ȗ^&ތ qIٷc_Q-%f&M8'lb'j*`Dzc[1 *`j8T8gKoC>Ny %'%~^wVcXZ[rên/ꮕ9CZ4rE֖c* y͂T|E= ;AlѺ뮁TMYCfN`R磍Xh=w@6 bG;͂wlYPw2,LpM;J,VVUC IjIށڂjy8u W-u;S;(zT0&ըp _uJm[u&I[@â69an;* |g'%@=L>+vJ~C5m p x'!'F΢̢k )oa'84a'ȗ:S ڮx֝u-݈;La'&0EcoZ)Q&Opin&zr۫ z@T-jFݾnoF-OMJN($֙j14^X^FnV(haװh>O~k4h"%c2 F R2)9uOm'PD FF $EmmaZY[ ![Tk]u"5dlw,බ "cX%' LzOp{ugiOJ;5FkhMаdQ ;AQq]IC~C'j1|Tt j,&0׃h4³sO5;u,"j.j`'R_siZzO ַa'ЗC~'l ov8p Fk5PP'0Τ/Bv ߁f|> H> 28wp)!ѬY!Q}ujR8f }|ǤWvCyϏzIA]+Y} ).ycv"?6n;HbAwТYm;HqKw=]|QYvi7àECh;vc`=`GT{ߓFF~ [g jֺ ;1 &;v&6bb&.]}"jSw`g ti\j1"k FtrkXۅ : #XDOwNPPQ)5NCv|f ӉEݘ@HݛL5BwPv"`t8E|(ooimɩ{]kF"^;u-[vcx -۫ςܰ O`y ;8!xaկ>)j-OY[zt0g]`x+ bN,b7zL` &zP_;1A1©ma0M0zL0;4U]+YO kUO5tNZ&|r3|tc&Op_6/̧%֨گmrM8S ϝXyss Ջ8k4Tmfn;Q&3B'zP&v%ಶhR,e ͈m[>kU%1lm=;s}FޱnRྫྷ|˟N;娋X՞:L/w`gIʦ3bN0ld;Hj`M|Qm<.LK6g`m HzXCUDŽc /|O|A_3+qXĒm|xV14PێhmxԘݯїzY=mEguuUc'H?XӉU|p _;&0;r?)-'!Xw ']gj']{9ug`mmyI9SBRIq"lOʝUaz,'DLͪububϢ"R޴ 5̪wp &ZL`cXꝟ_j %?A~3藇cOJNwNÍkL0KzNk_;Noiҫ=TOC@YkETѵsN4=tۅ;"k  Եpv⛱z!?⅝ ݛ`=&vz8ݰ "1Y"}y0AMG<`/=8X =]+6TJ]E.5Iךo0A4a=d=Iw:^o0AR`fvE7vt}4'%~^߁f7|XgxLYI|_QMNPl6wٱz*a~(ctX1ߑunwpZugMЮ8רe+ucC;g7vؾN]J>sW/n80)n}H 5-$u=mҽZߘ@- 7v=f(c#9͢{*7Sqԝ@+;A7=14ӽN]՛O֎T,qE5AvlYco5tgmչEIWw /|Km77aRjQݒwIA_;ho~w1E 㱶~k=l>z ZµY j 5_#8aJnkGfRlJ O~mYU`+5EI=5qZ }҃b` [x=l>q˞Wl&HiȈh678pj ^E+a w">a@j|RjȨw5k~Y4mjO N(!J^״cwC8ܖ~T)vnLwKAQ~ t'(H!1u0A7T|Z9H_>LNu?)=v]DL Lp&uSUp 5 .u( y5LJnbRzN vv`mK1//ZS_>APvv'0){^Ը0AU$/l zvMJhugEƻ֤;GKQq$aV4>_8MLЫ @rh҅ ic$?Alo藿ɳ$b'FMJ ]޵f-u^/9uA ݱqET\\ 7 1&]H#qtXq]䆵vҤR8308YtY|kwpt>Z8#8q'xU$[%;Q&˙HN#01>̰1`I6^jQ~# $n;&ƻ0a'⏜E:^0/ 4;xIV^Nd-1e##CFܹO/à(2'to|l;OʙLp+{!HPCqv 4*Ff;,&%疭/&<.-Xa3^} UIיI{3wt/TovIX9_JWN1m>v0)`N},y mP- Vl03Mnp~c.}Hf.&[{ۯQQK >Ay"oSY4 Qo_u5~(빞TOf|M;%>~sOi=o[>T \N是]Kư֤Vk}䝟@o &(zz{ך~AmLZwXak|3Z)b'01|ն6VZɇIEE,B"mdA90c%PWBM2L.LPT*`SCdcXf}^աmlL`~U Z;jê_"/*l659tFU*jR}6^, NBDǩD'Q@p*'?[݈8ܶ@=Sϝv,7JwkR1t۬?xѰkOJca,lH9?ɝհ?z> ʣx#v𪳝EHjO|RQLа?; nc@ô=xkWC 'WN𨝶EHҥ߮F$@k#`W~T T] Pּu _?m aWx@~&RY2jՋ3cܰwO3茩T+m~au7Y_œ-̘6^/믫뷍]AC); L;c &wۤdi2~m[uE(BF,44"Bۮ@oFl VRtհ'6XI-{mrv! 72ޖ@͒2B~mgPeo{=_sg0i(?'FzxvfAE ٬? kGTF3=D"JV2 z>}\L3>dzkL!EVE6 ̇X wCSsq}Z)imm/نƻZJ[vtb}7c Kr"Z TY;vc7= Qv;Ayߥ_< kZl xH/zώwm;ȗ͂l-hcC&ȊY9Ydp> rЯY#9ۯ_ͰDd}?ig˶t~NeP Cyg}>*!c@7ك?! K~}->xǰ% cyZwXWg;AQ[[NPkΦI0){^__>AY軥 P P.w鬨e'\=>e d (@Em#au0Cv0(ߎ@kҀT{lzg]Ťd hVڪֱ\ڱXRݱ\+mXG0ANp)zOЭQE;v$~Ա\F~Ա\ . ۱\zuZnڌw%=]% ܱ\j fmѯz;v[}gIװ~3=x2vXWNpMܱ\zwa_;[:nuiVJo,@`62Hl &zj 0A|md ]62k yD1`󅎰&wB} |{ ø`Ck |5,7wP߁Շ?fAuh}}EH},BbaERN;z z5)ԃ7@pfx6|)dDzN8wv,x|ĝy~w|14сzw*kfE^Tl÷сw_# bAod4?&fZ'caAb.0pI@یwUՠzq(ɱi[oШAƀ`{@{u R8MԶ=, 2d w ;jd27"78wU"]AI˱4,*<`mErO2ʜduq̂;a##VCOI^ĉ`ꗟ'z &$lLr;vEkz*oEV $`8mD;o*&%[k~_*h ( i'S'vg|->e`{CN0A_*lJŤTш &ƀ~&j HgMW>AP&ԄO{>Ah*{w'wنm'qW-_ũ>Axo_Cz@j_ ,&~'O?4*ϴ>Ax۬۬vMn g>A[o'o{'zδ37^_eOQOm''|h2|/ *Ce'.[o@+ >AT^Ozqh.Z j~ ' q>):S3IY,[L|A^hEgA39a>):+kLb5@D#~RdO=?)'E LU>֯L_5+vt{MЯdV ]y%ZK: byxk3FCg &Jҟ: 0A_0A|U;;?A &SW N]}`m&6 פoL50A:t`twK L. N5= jM Lb7ݺ&)Z/lƻZZ㓢ߨ&Hv R0)I0A*)Y[kdB`tg 0`mdxW hv!۱`$۱`4tn`dL,ٕ ~!0A:1) %']:FF%'`|R2K']:뒡>HJ= 4'7 &zw`^u`^un`..vu|@[177!o&菍+)AU&z`,ﰶxѯ޼'=_0{,"'@3ҀTW*hOKS&|t#&xw  &ЬG-r `Rt ޤ{L &x~c0kLV/Y &x30vD/vĢmobGLu>)4Lz0`t fS F`X+ :u2 ^kҦdVl:@pw#rI«w#eن9Idvlװ19W_' 2'ߊT@~e~ҥ_͟IwBٜ$5e^:']:SN'T'~-PiF *%؍E~RtvYiW):'HmnkMbAkM@p[zKӵ+~m*ѭk=t X2ld.Uu=,LPk~__V/.*֤k'סӵ0A j"psRa9_~ >Z,6~mzj~{^1&TX r-[ L0Cr`(ھ鯁 4'͠v La>)Ջu 4'[4),=/0xmƼ^1,.0P|T1"kc]ژIژ`aWV=lL0-uK՜C|YLg }@s}'8-}'8n|C|I+nvƀ~/7Ӄ>qۯJ-vUzOpdٲEjcX|Cc Op9y'8$z@gz@gդLm7|xљ>lX[tX[to keM />7kvTxb5DJt-T%:/wTtSP|R;ר^|دUCTֵ~S 63Ȗ~OkT 8lV؛ cҥS-wر:]о^w &Њ jqDYCL L`VL5rrY}Gr||9TT%2?wuhz$w$Ω{ :U]IɩJIo;S紹{YmTҽcգp1춳ebFsE7~chvaW1o0fcT ǰRYTzm<ۍ&¾]zc0AJtEx7t;a] &0 &诮0AW &z0/&0k@w҈4уKU==md6x>Ui@ULı&x[Փ ^U0/&0KoUg&xMZw=0[m xѯ\LշSڢd;L`*7 'j~$Ջ_!P5G}uZ䓢_wa_',L7FBT*R:v@г/DQ5I>w0vU"~-373w0^Yc5;Њ*)w0l=w0cxѯK@|ҭ_LU>)}# Z`߮shݒO;]A`֯wwIl& L0o`+ 4'g@&I~kS-L`&j'`U`i/`fUKY* &EgkhKlЙ&Iљ&"Coзtw`֤mԈPzGZo#|G->S"R|Ye|&Z3:Ej%㶑Qcj#V,bmTқ&]Wm|꯶®!?|U;'ä΂fO"N)DhOu>)62E6b'0oNp=b'0iNp(މ Fa"vpF/@~<&zGG1TyNp/b'8%#&EE׈`ddBzĴ+m|(O!P&T$YY#'0=l߁7(Av\IE2%#î+&/|cED8vG8vG8c9k16M;p ǰ*=121fA=f3HPǰJLqJp ~ǰ-Vw_/1IVjcX_/:{l KgMǰ41Kp S:Tp zҮ^6 v) LO`vx mM$']mH`&hQǰ6clnKM L`ǰZOp |ǰeڊc؆~m1l6{&8MQ[c&8Vævǰ2'hV|f>A{U [z|_ڪՋoLkk>VxH~x^]7z*0'tW~un`_`_`&vx='MFAӷHA{(Q/ob#kHmd sj֑v^I4V'4$ASfASvASHASkAS>xA;Lwݝˍ__HרLg p&1 p nm#S ҌFV>*Jkc@gzffk Y1c' ߂:_E2á p#1~ *k5/L~[ gN/6އ_u6ҁTMrEbya">)EWyaO\ kOx&Z_ge@[Ȩ{ve#Cr@j{;ڭ GѯrD'>GѯZrDjM*7G"G^ѯZ0fo62:|ԓxL]C-{9A.ږ sܬ-drHNpIxx68 ormwq]w7q~ߢLAPKNy\>)U~u&@3$}RX_;C1e0A &RM !0Alnh 4'6.iFOf3}C0,[Lr:|Rt,&FΊEg D#0AP+JEmL9I>)U]哢_}0 aҊfѐ&h՜OYYN>A_)e{պ0'Ȋ |l>AVlOZROQd/|m C_1| IP'ȶhuO~ S4~"P=S |gjOPg>VW# |!IѯC>o1ocz@( 2T |/@¤() b(S'(We3Xh OHKis[-v'(j/ " Z" |Lg)|V]} eRkk>AQEOPwP۱ @ |(j+ j_ .VE>ŞUEO K'Z b ݳ'YYm[gҙVL+C2p -18 P+RMz1 58Um EU8XJѯr\*ê;1 f jڢfRfTT0AUXnҭߦR &( &j7aƋ~.a=,6UT0A;˃ Z_}T0Aӛ L` &hѤ7R`o &h~m:4PM_ILТI4}W0Y+5٠~!0AUN &x-RO750k`l 7X/=دd=_ LI&Hz40ARvtf=_60AR?d$70AzMʊh`vF WHӨ7{Rۺ^}6j AW 5^7j YVҫoF WHsըFCFj[[ꞧRU?oq5U} LP_Dz,ҷt9Գv"}H_Im,J99%g㝳㝳n^|"@Q@ g;иg;P&0QQ~Q&x4fw`Y LЕ NE nԷ&8v> `m3RwT&8f NEwzЯ &8 d_}a? NeU> dRbgqM= vSvS_vSQZWyvSm+v})#Npvc'8ڱRub;oL61ˠoLzXxKR4Ej66.Lw0uuZKZ:Z` MoLw@vnb'/5wV{c' QlzZƬ p -/Ucx(1[1ۿ14 ;14u8i3^TCcx63[K2:S#:S_VrXu8g~#Rk{Vk{~cx>62۬0)UU'gY;S-={WQ<ǎROPwp62v*;;m_[jEp p p [;ΰT0;!KU_(;;vKwU;p uU-;e? j5)mkv 8<# 5y%^1gOb'ldJ[jcz@w K"}HJך46֋Xi/v~;A9ߎԴ& &(IEy/M/(|֕ &(zr`~LPl_ z^0A-L`L`<LPu=ްkmѯ^0AQ &(|E9/Wj=bc@ƀ~[ J_C- ަ/(E /^/(`VLP ZF^0AU<w`<c7"N"ZXDVzEvF Z}^0Uzu0U0zYm/ %d`LOH[/ Fo &.|v, +{;vww0;ȊqYK7 dwIљސAAV W:k/:{L:{l;֨tɨwZzQ3f Q1OOofO\&<#L`uK`{,LPX9[Q;Qc"f5b|)fXD 0AR+$l,2 q(6"M*MHJ3Rn6urC, E,8A"׼R.w"H+3΍E3YW%Ց riO~73YjVA΢`'9"A"Iѯ,Қ+ ?AP2O`1AA}(hO~ 8O v62&+%xѯZ &JzhUZ_Or h5O~Տ>O+7O?)U ?AP+wЯJ)ﰹa@q:SЙΔ6/ty3 )ҝ:S>Й&0mLww`L 6ށRD*l.LIu |RTTNj sWǯy__XDXIǯI,bU?)UŤRI o &ʟށwpЯwmzfm#Cj`Io_}L0Ah &ڢ_N0VW- L`z '' *e ڊ' F6^ &' FU?Qn' *ڞ` &' m FN0AWD>L0ATKDEL?QFL` &-`L;7Я& l U7@͹jə`in߁"}fw0ldN`&y G:444;i4򁝠^HJΚX0>ҙԕ \>EY'-HJδR'mHmKgٌOZ'62r_L0.m &rg} L0./`Iѯo+/fCyImm= 0m/R:` : 0`@#Rtn`t`T`T`Iѯ0/#xoTM 6'EF~ &C`T`td`T`T`t`IoY FVM xV&·XuE;UWYTM|MYTm Al:2|1)vGG >u| ,((,]uF">AqXw,~ﰹߡkARhd'ES&Кcwo`t&I`0 ]/S &XO:ʎ=I^u۫P &Hzސ'L Immљ|>):7'EgCz`t[[tld,Z-O|IO߁ƈAw']7**H;<Z߆VZ~ Lg ;hzhO@ﬓuUwPZB_R.ͤԟؠ?TC܁z?a6h뗸OЯIA$&;*pwP͋I~ec V3ԻOrfAܭkzY)>;tO4']YݘB`$E' ;8N끸z Y7sZ@aqes#n_#nB܁V/'qN}%yթOp؍Ca7qPN[O9>)3#xY|N{|*_"^Oz#}UNw@Q ~;Pf'HCT5oI;Sqjv܁dŐµ0A1Lp caһZYlF JZ$n |R҃ZcIfvv,bjmo5I,bz t ңLIN =:^0A&HM&@mnmc@z@ƀ~u0AiU= imѯ.0A: 0Azu`JW&ȇ &Hm5T1@ym+}I[ e#[ͷ,0A>Ug`wE,bM:^bmm~5C _m ސ { Z /0A&Ȋ/02>)U ~ r_;9lR Ld;'dRk'8 Z(_;=Y4"1@,bfFEnE.OIљnrea7}RtЙ>):kLBgEg:k쵶챹&Y">oS)}u `6I~ѯp;>),E7~ x6ޱwezL']:<9FTt4 &8uLpCEz! *%pFVn`mם WɈ%_H< `K"Lp]_0*~!0e\MHmdL̟vI6f~ hmѯzvoXض_bwlNP5zD R7HRGma@Rpt}uFB`^uU LT`ֺ&zV0A cr><6=w$w3[ ~y0Av_L7v7dG<`* '0)š:hOUSh]OUkRis[} L6CGjF `=PN-P ;-֖<դ䉴=}LJHe2_vn3Nmw?>鲃QO |Ne|*"Sqjwp .v@sM}҈t4ëҌt U6 tm L= HwpV:+6I[SPRPR}R=zD8%G8|l h=/&xuoF0 &ԡ&0Z670'mzE0k3}`WTEwoA:wv{,ЯZ"Ƚ;lޝ6^r2ީ;ud^eE|ЯZg"qZ-HUg{ D|w/WL06;ꗎƭsw`ذ߁t#F|{FW``d]׈`̀`ع`Y`:;zG0sL0F0P]L/f1A~9}Sl7(||ΨsG3;8Oz#*]:) I)$0ya L`^&H>kSiQHmn d$0f L?L`Y-y ߒSYLe&0ֿ$ѷt"`*$ f?HuEis[JNj;Hz'7qH$%|YQE" &wpwj&]m;wp+7?wpw.KKrYq],;qv%333MDAWm"։;z'2E *Hm/R"jEz$bZ]XĮD,Yg]_XĮD,bח{"E+ڑEI"v'bqv 1=~t'b / 2]]Q=,ef)K'Ƌ~v/6^kg v~,p;Y2v'mNte,e0AW}tIљ2,{L*]rP|Rtڌk3Fg͍511yc=2 W7 U I`F޵5j%?kK>H cMwa4oLtge0ASks4vd0AӝElsv nưk> &ޟ!U }f0 &x OQ^LPe0AvT&e0AUm4C"6xg0Ed0ACA_LЦIYUH$ ۑ2u2Q F<2`͐Q;/`X. &2`XO;McXmVo~Ne0Sy;u&vV B3`h4c }5g0P6@ [`yxE+ e=&mnoG:L}3d0?ʇ:vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/JIS/0000755000175000017500000000000006766133750017402 5ustar mohuramohuravflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/JIS/JIS0212.TXT.gz0000644000175000017500000010014506463470734021355 0ustar mohuramohuraq4JIS0212.TXT\[w8~PR<$N (|uAW?i\=μ߼/| zo[lVweM+z_m7d+ ϫs /cuFKü:Xjw!)χns7/]V{?z?~uy}x7jCvJ?:T}9hl}8x(W[O•7ܽtJm}^sӿOe[2u#fVϏoީluV{Hګx|Y6~pw"uwO}Mķj6U_.z׫|"z|ZwB+Tֻ.C{\mȋ'Ҿ>֫wjS'_Ah8u}RHPzZ] ߮UjR~<@|V{6gY?j=ZdY}`!16'V1Wwjg$Z{w'%-WgV vj-WnYCQ*\`ퟟ4z ݮG"|Sj*16 :.É?!P\ִ~^bW=:X Q+BNwK$ʛE}YG{=ZA~RJ*z]oAzS]tCnEݲ:Tv!,ߎ;T?xQw`OQz"|O- ΔM?P(o5RQۮ7*I+@tv5ESaf7vQ^򆺱v~UJW+/鏪 J!LVh:gx,1SuPaD鱧R-rX0/&[/WƘMMC3꽞*uR%(x_C7*J{T*{*M]/ԦMo:lR?Q<OmGqZ҆ vP0iSխ5GSNԖ*U{]5v״{=}Nz5ݲ[d6p b a9W(8jY(i$djhq eO" W^\R{^W eTX <{~1hXtSFT;Vh}J3az;=PǪ/zҶ?<i$uv)J'BAKWjl*;߆E^8ٱlK8{7:YmVgW8qʡ&p$.)stRuuۥݨY>/) /.SӐ| 7u m0)߶ZuB_wъss>!ҹ0}'pe<yb>/^{8fCqAhFȫs8*桱\:T}H'wwVP VW_5e.a"ݝ5RBu]S9-웆@DqVxW=(v?^Tvut噁&]TV-4gZKzikAOKY:׷:Uɛf(M6BZ)+hBcKעcO˵B /swV iI:iFBTxr= !NI< >JBIA͇HJC^O7'3|6g|>͇3Ї_lRt itpJY/ߋbW%R ,[›L`8·Y:`8nJ,n 9TUOܛ u\cܴ(Ƚ*}4 {qNqSBe-gq,+ǛyH껬p v^!lRpa7Hq0L[2U64\DR8*5ÞMnx'ww8 ij-AӲۢ+ "/pƂAͼtD0:$A3nR*[%*sȩ9P/T-m`#]9Ç=KFq4f}F7nxAwaRNE0.9э_Еdhga $dTP_Pm=M^7|vc3(g?4 -.n&ӹ~b#^aIJ%e[Xa85B Щ+t0nBs ةy1К(qB7 S9-)8lB ԩzMI1R(s6y ©yE (*/D. | l0N)FSgf6$ar6)"=4uE(\ڋx0鉂H`&S2+Pଟ:'mt`EtDsZOjpPyy"&_,M[ϕѥug{fR%Vk' n3Gl1MVә­%~ԏfRVk'-:@N;\`"tӂyJ~ҏGS֡IY@$,^8o;]CN Me³tћA#e0hr:mzCyM3yqzj,YM;`U6frT3|%#WvI}@%NJj:q% NlKNˢL8)̂̎,Mjzw5Vdp6;6 =^4;!ɒ,N|Yj.*26G.M[==۾., .|a2e~Bhv#StB-Z"Q;+Wp&u7(̃k(yvA;+`l"7G*759ډjf96հa0/7;%'.; bJT3E/,Q@;s{h7l3[N,vRL$Π.Z(ۊؙm%BJv'\;;(C eb*rSX{_YpP$wg&#'@ƋO]%b^$.=\X[~KHc)Hffaf>Y^p{lX'ȆqW6##F2PL ]485iؘo1p1clg0ag' #<Lq٩KV6 Y_dÿ8P}})GiA̋4KbJ.Ez Gú\sqq "2g<[0# ;p3ٰ,űȆcqaa)i"J͓]܊4Jh̊4J@l^E6 #y[l'9Kqd͍Ȇqį 3⨩6/"^Q6+"V  'Ȑ6#"Fq|lGCٰ!..D6/g3!0!K<4>\Mf>d|8mC6VmC6ڜl8G0:pll׋1tȆpTF理(f9a9JGlCt.Ctߐ ሠnȆpmȆplȆٸ|kx G[lX GVur4.T .3~0 8!6r: pf!&Q<4虀3=#gZoy|}kX'. ,/E|+b˟D |},bucڌo#_~Fg7<!G=1wola|cyߘߘ{_><pg_>-]۷N|[:}l׺kݼ scf>}`cf>}`Ɵ| $AƥǾ},NR,ҔKYj̤r#~řT$2$X?s&Y¥߼ L |s[>}.-oQ/܇f ЙTBc@zL Lc& |3L c&|R1c&|R1>) Cj |9c&圣@=:0)-/}>f 3~L |c&~I/g|>f3F7<|&oDd |#k7[8_~wD?7D߱ <$b&}} DZ)0Z ua&Mv݂@gH3)c&˒3Ofq3)0˭u[3)0-Y^p)0+݀Ya k`VZ+!"'KVf? |Χ |&L K7{ 11&r|1RKW$ g9j|-!e].Ln`&y7 0 |&L0fw3]K++t?C_R;x0J$L BQw`Y f"#L"_F hn0AW&0A5C BvW &ً0A7[d-2 °wXd;,25C "L #F as@ f#Lta]_D ,mf :"Ll 0Anua{u&63A &f0A8]X 9k-0AUG 80A-TmzqPD]I$ ~5P՞VPiP?bȪԪ* BWςŋg⽨+L0ALd Λ &:o& 꼙`i &ɞ_L0A|_ b΅ &K0A,c-j/j`3d $Lu%`݁ ?*6kUK0A/v1#qXٯpT-QwL> &SM ꬗`^ z &:% `,]77uK vw[-^L g% j+0A! &HH0A&H&HA3 ٘ $Sa݉L=m{$'ao0Aғ[ &Hzr+)$͗$ j$ uu`T,2S^ &HE0Aq&Hjᯞ0Aҽ $=3Lt}ag H0Aғf&HbnO3]ud ![llXxk } &H!0AGULt0ANu}a٤ $]3d -k  uD0A:.*g i?I:Z k&Ț 0A֬O 3L{ ;Q_ Y/~bu0AV0AVz0AQ990AnBվYI7Y3Lu\0AlR f3L= ~0Aj)9W :Y de0AEWTryQ0A/n5YleY/W&()0AѓP&(:CRLPFm-WOBQ+呌 = Eg0AѼuJLPt",=/LPEg ݿ0AUR *LP:TK՟guԬ@v'Tu?jSZ.*LP&Qa&0AU&0AՓ&0A/FuF0A44McY5YW T=]aZL_ݩFS Sr7Ow&"_QLP3f:LP~o0A, brcc TT jU`Z{ TڴU3&_]V꺰[[W[WU3&J+&J &J &J &&Z_ݛ0A].k= u0AcUg T7+LPuެ0A&1UOP ڼ ԫWz: 4=#@;0A6_ySLt>n0AUs α &hzMO4` Q-2<Ӽg yLТEg>{P͝1Mא &hl0Ar &hZ_]C6iMg4LЪ} ZYY,2mS k0AYML4`i0AyMwLк= :_4?dLІ= i⯞4k0AS &hz2M4]5i.Mz &h۞_=` &h"_av,չMO&7kֲ][`LmT fL@ Y]WI &>Qi՞6Q- [L5`iytj0A&sl0AOZ=[ U^R zVat`n3LЋEb_]PWU<` E(Ԣ*Z:~OCT˽ggLЗ{^Y^::Lл;Q{tuyt=ag;L5a>-S&:tX 2We12wWgtשPTu&٣`G{t]PH$LЏ= = 5GͿZZ {-CO:PA&J{ &:u`o2x :L04a aaaa=L0ŀ&_agz;L04aa=L0LY Bf:SEU<ўJOvLybO]♞?Sxv]<ӱʏy\kϮ 4C<,*1%SM<5oO9ٮjBfT&"L0Љzw&kwZd Uc`*mS/O~yHվ<5Ae<}t)'>Z[]e잪1L0u螪o5L0ŀ:R1HK巧jd0myjmO7&:"Rg/L0)A{;0TSI`N  {ŀz6S3T{ L=E01&6zS9rZy*R2>FD`)eR*/`HaZd?#%jN^Tu&XzrNOxa;eKɑKOշ&XrS5^`e loWqKipFO`y#2=ugI&ULIzPϔ2)yԥ*U 4Mu6UY xdJ 9 =bTʤO^Jy ,= KUW@1jqGYZFZ`ʝOva=&غNS0|*5jᯍ0ۄ w[d{] -`Ykyvt-`g Lpt]0FX0,ގUD<;ݨGՃjɣ``Lpt`=``Ղ NW9u'[/X Noᯎ &8X0w\0i.*-т ވ`+%]a/yG &8ن żaLP1A OվXńccbu Q?&xQճ`Oݨ:Xec1A,.Ŀ .]W]WWoWO킿Ş6Yf;v_#am lǮَ]WW՝]Ws f;vn1ŀ6TwX k3C_* xgN3]_gz<ӹ%803ف >&́ >ӵȁ >]_}|_L5 ?0ݦ`M[LiN& >|90`O3&4C`Og|b_͉?0`O3&{L|z:v >[`vK m0`oX/&t5s` paOW3&t5saO-&{/L&z:A =&{/L>ϳ&{/L=ZdU0A9!g ѽ0A s] ~a h] Z![d-ꉚ X s] … .L&0A.6SWW&b_= xacA ii- % Q0ݐaqv 0-a|a/AAv3 Q0a/Q%&&/Lt/L`_j0ATN0~ai1Z ՞6Pu *{^_0AQ&6F9 ꩓  &ZF9 /Lm f/L`7_n{0A,7U0a9 jLLg2z? ?$T<N08T<\SLFڧYv[Lθ? v{I穼CD퟊C= va;}*.1L~0A\nk%o`n}`{ `x] ^}`x0"`x3 ^}w`gjCxO{ ❨/L>l `O4 }L= OF&HQ0A.TMY);݁ R670AL0Ac eL: } R^zoSgjaTokL7? f=_`!?&H6k/`Ե0ޛTu&H6_iX;- Ҵv M`Bx&Ir gr6x$kNLtv`3$9՞> kώώwR( ^Ig&HW U'a?}0޼> iay?}0޼> Lbeԅj1lԢA.d> Lu`4 970BQ0> 'u&{߬oL:}0A >o`\{ rUw`} "L]{ n-LE|_? hYL?u`<{ 0A^. 0A&6Vy[dnژ d%&Wc 0AV`|0A&(LPl 0A&;WoOL7&(xw9 QY)EGɺ?t`r &(0A SLν`}3]D1EExaL7ٻ}*&u&(I} JEW>&(I} JxW_Ol=_]d _e>gh 0ALPt=`?hN,0A \ JU'aR3T6k}0AW α&O_͵+kd0H&("_@O&{SyLN LP}0Aѹ;z 0Aѹ;Z) `o0T=kŋ߫LP `U-& 0A4^@ojFo&6_z3| 0A9&6PuT%lO_GESLO3&EVkt0ވ"LPgb31EvkN0A/J"zz0Aձ/UNT"LPu0A1*uw-OkeWdze⯎r&b߭O "LPTݩ0"L?uaz-2?-ޟ-[ ?V"L>Bo&лS ZPa5&XKc`- E)08T/Pas@  sKG ,=_a cO3/*L?i ݨA.|o&&ؚu0ּQ .&T&:W@_X\]a;&&͞n-௎&ؚ04[w2+L+L?5]a[a9 eO_vT`*Lw?= m 0 .ڈlͤW`k&I`k&[3#&6[,+L53Ra {4PaU@oFxsQ{ F0S'&80ѓ|&л埚Q-L?=+Lp?&8z6z;SWs&;S y*^h ~YRf *Lpx֭]<} &8ih0ۆS ΰ0wLs &S i0-TՓ| &8z@ βҾGSLpSLw?_]7i6`qU} ƘLpi?h0i ՞Qo?ov'`nT`[U(@*`o Gl0qW\'Lpŋ:"6ʽWo h0/8 b⯍0q&zFD@u*n_ i nWLpE6*W``k#8LpL7Χ\=!`\` &zf j @*N E"_=3`&63Wgm*ɽO3=axLa@:Lpgʴ&:3Կ?{D-ԢFT{WLPH1Aj? ꟞?&ўQճ? _=w7W=ti5z_{_{d*)Ws =ᯎ=ovZ yڞZ g;zfov[[ ۭLCW{_`;#b3Nkŋ6e.wWOP􌿚iyeE/?&S?&xP5ͲӛLɁ|_LELmn{ & ŸpQ݁ Ltz/S#Po0A&?`Lw]`- Zj=t0ޖTUF0AqAkA&۲ٞٞzrkz/SWǾl⯍}0A(ڈ0A(4==+<`w[ ^LtkZ 0AO_/ fLl ﰧﰧ ⯍0A 0A&۽6AyrALO_eN X=a&L7 D D'L?nUbQՁT]Յj=y=Z/ &?a'&Li'Lumzy0A3Z&0AԻ&L7?}u0Tq}zS7W D=e0a ⯞20AM 0aw[,^-/0aX-2V͞0AT0A\ń &{'L= = 51a D==6a|Q&_]IL zcQ(&'L5a&Lŀz"e1௞0ݴ>a3 q&LȄ 0A<4=4ճu&b_'L`7O ^k:O Dͺ/ $]- 7LL L`w/ }nCvԩ3}IwiLt^0`}IW &H:/ iNlIO-n_0 `T`kd-2 (, ilIg &Lz &H?[0 `TURX0A*.jqIIav_ ‚ 2 RxWf- &Hz[0A ؍ &L4 `~v f L L`/ ŋϦ &LN &HJ &HJ &H>^0A L4ù``4-^NuzvC  &H:/ {Is &HztILt`!X {,={^{^k`!Yw6Lu5a~Ys&Ⱥka#o ܽa݆UCՁzUybZugz† 0A֙wv & d0A ~ &ٞl}_=aa\[k ]&Ț#0A d0ݦaMYg m&Ⱥ0ݱaކ rﰧo0A  &ȺaY d0A5 &7LEzOΆ vw[ {o{o{o{,=y d6L&7L`wohNwEO$l0Aۆ ]mك ?_x`E&(0A[7L`on0a6L`7on0A jyv JW!7L`hEϪn?0`&(:CV%Y/Lצ&(Zl-΅&("Գj&(Z<0A Φ&(:LP}Ezv JWwL`wtkuv`s L`hEz&(zEW&(;0ݱ`2M_cLPŋ:0Aь .]&[LP4z` fNL`wn?0A. y`ri{-^Ϟ6Q݅1L`v`7Uv`}&9=0`Us&:j.UW_&zzR;0A &"_]ٙXUT{Tp&́ j7[ T=;s`- &z` T.LP5za]j#\꿾/LPŀgo X j1/LPŀgųffN TM/L`u.LP5za ΐ&:]k5ya:i Xͅ iwVuWw/LP΅ /LPu yaޅ /L`.LP5cxas … ΅&b_=yay ?j/`5/Lυ ΐ&hxapaUyV-Xd?Å Y&h? d1௮f.L4 xaY Xͅ 4q.L`2.LвZ_.L4 xa'0/Ll Z0Ux0UW0AYՊ&huafc5L`.L`.LtsaV.Ll ڰwX w\ \ 0Q0A& O3Y?Ix&5gTi0AL$6}eͅ0A&KY0A_74 &߭Le?LZx&x*L]U<>♬gz*In?Ɵ;Q QvQ5@_&O L0t~`݌ Fv+ >x*L#Z7#0Й VF``$&I7@kZ&К F^#[u`du&E] FX񷨓0(Vm&U= F`4^`4𷩿0h @+h<ŀ:o~0 F`1]:c7 ]}}0L0Q0 ԧZ]] V'a-2=X k3L5-63  ]|0Vx*^1L0mf gO˨; fo&6VSL0`i:L0m\ fmT>SW3&:` %Z{xixixz Ϟg:@Ib39}T<ӕD &:`&0ݒoU`ٴ0l/L0zL=L0u 05C zSwwh퉧⯮LU&r Tao Ծsw LL0uT0Vx*. E0\!Z"`n}`݁ SWLL0 0q=;04 J"Sg?]Z+#`#ZA#`i,ZAU] ELu5Q7hVT{ߥY,ͪ@mh]o^C0&X6;ZW#`Z$ZmMYy&X 0V&XYhoWg&кO_]`S0a%{IO3]D`laT<+كai ^SLu&Xb3]D@u<dꩼ02Kg1Z;;5^`a[ o&X?a,-K-&: O_͟E`P SWw"Lt02Z, 0Vx**)Z?xZ/6?ᢪ0xꇪB@x<503`kN,;Xm ;~jo_L_]D`'[W>&ؚъ0NL:D@lq"LuƉ0ֹ%;[dl/`]iksLU[ D`W}aI@< l~E`즽 vxWw"LhEaT][JlLuJ0sm9ZgxiٴvLj &غJ0^4<ә,[Wj &"3͵%`L`ɒLuJ0y(Z8 &Њ*O_Lu`S Lŀbk=k]|P =H0љ,GwlLp>.`Lpt&K0 CEv=m^U];%@kw;0Ub0V&J6&˞W0Y=*d@j \q0=/Lp\bg*d@j<= =6Ԏj}DŰQ-S ŏ oߏ o ُ iu'TZ t3= = LW3ӹΐzr_rbb_r_ PWϢ䂿>>m-k#m_]抿zJ1W3⯮Bs_'+0Wq⯞5Ù+j3W7 \Xg x&z*YYLׅ% K3Kk<: i<>aVUjSu.UE{'&U?Tim&ԬjFU'LоhDM&kJ%ovXWD՜cI[{K;W%ᯎr%ᯮKjO_J_%ҒWO|@|.,0\`OG|ZnovWGhu2m >ݹ*0x**^ >=mQ`oYcu m⯎&ŋT`OOs ;^ >|6ߵᯍ0|6Zk=L)WS.0V>&6AZ$ ( 蹊h\`|ԟAO~ &1,0AَjT-yB WQ SLs+&UafT<,J BI0V(y*|Qas@ pT>zYgha a-٩Yd=oaHT7-7-7y&:u h'Z[]٩Wh⯮E:Lŋ"_=a,2չYW(&Ⱥ0A.L5aTv Z+;L0AcyZf Λ&Ⱥa;W&O d0A4V&YOw { uZd0VxjDM&ԬjFݪԣϳjG ԦD.ԩF~`1\TyL5-6`HT׀ D0A׀ SWsb&("l_ LPl=lΐ&(: 7`ހ F @kZ=0`R zE0AX&(0A3 &(:@T<ݞ:; NЀ SW|L$: @Ih刧ﴧiEbeZd;-2g&(:g pZ'(L/Z_=6`ճ&(: jqZ"ŀzqZdk3LPt7`jsLPm΂ LPugf2jnp7hT}`jsLP?o &0Vx*τ SL;a h&;/LE6v{ 0U҅ .L`w_`*[C&6v+ V cvXkcLm4 S/L`_`l]}]`kY U{ ]g]:vW gO_'X?çԢjD\=Ϣgųh♰SLXx&T &A o0 V7 &A.`07Zdk&Lpmބ nԷ&6W&O3&=t`]k~LеNE ?&蟮B_ͪ u} u6 0|:ӕD hL4J SWr&t 0x*&aOW&l}l}_L58E] 2SWj&t0t >͔LY 2SW3e&%Z,y>_[ `QL`OW_& |Cu\[ SW ߴWI!B i_ |r'T0"y*))DY<Ӽ\ SLg|xvixv,^<;4<;4<]Nj.,#L))D@떔hݒf?&b Z?S;0P_ (kD (kD Y/w]F (D |VZ%D (D (D |CEUaiI (D  E&&Q= #L4aa}&J &Ъ.%A $!j` ZS7Y/W&!Y{&j1%Z-Y͆F (D@k<5Wa,T-j>5Zo[,^-/sߪ j0AP>0y*Vu&Ъ9Oߪ} BY |aia{&I0AЌK z*i%ZxhŚR[ 7z* ϔLL= t4aZ Jb &Jb &4O_' h6?A-A-A-Z Y 41L]I6W)3c<L1f?&PL@3Oh)c<L61ﱾﱾﱾ^rjJ(eL1LuP "PI0A|T NQQ &: Deh`ԍj=uzQ52 *% j)QsL & `TLŀr &КBOd*j~'1Y} SWL!J0ATJ0A Q *' j.(Q(X `X,lR Q SWh% V}`XoaY heaT2LJ f2LJ S bL2LUJ bx[ x haT2L5a Dͮd *]e@k+=2LE_=a8iĔaT]c].a2LKc 0AT0AT0AT0ATZ0Ank5ϕaaxM 1w;{-2S nT0Asm&J h>*ZMU$Ge Yd U?a0V*&zT%II&H9yQ] i&'Zd Q RT`LaLaü- dOߤZ? $=a]|I S7k` } @2L: $3L43aT,2Va; R^zqPdSe}Z & Oͨ[ՂjOyu@P,[`i 0Lga}Z3@k<u6-0y*jNyYd! L?J Lv (0Ay[ Y`$T5z %@Wk. 4RUiZsUo0Q(&: O$u ͛0AJ hԀzT3s5@k.<4`q Ci0A YL?`;b &: Z4eE^Z1| fLub1}5 = N &hEi0A &h:;54͸4M &h:5@<H - &hz^Mge1 &h:"6ycO_k4@<מot]348`to0( &ZUTLu`5PL5` "ۨA~j`n#"LmD fLm .Ai0%( &w`h`o5Lm (4it]g5k]N &6Z &z]$L g >aL?5`nc*Lu`}]پ]GtxwHag:LЗ= ϶}ϔ;Lзg30AW0AבX_t=a:LЕt;L&{K CG u@k?Dx~ԢE^z0_:L0;L?57 | F7WG =a9-O_;L0 ;L0~ 0_:L0;L0t0Ts&C ưwXdy ;L0ŋ6Nz|0&;K aa'L04aac*L?^;L0ŀ0Lz W3&_aq,2LC ru 0\| 0L0;L0l 0\E 0N_:L0Lo 09&: `0` ``SwL7LEL052`LqL0g&: `~/}/}:; `bSW&лˀ -&f0gz0ԕĀ $L0E&: `fy[0T0T]eSs+&[0F&q0,/jfZU `VVVsufZ `̀ @+h'~i0lhe⯞n0V6(&b_]@L]`L0u}SiSא&0Tb0jnS)hsZd;U60\/π RЀ RЀ RЀ vw[-&z`SieWW& WieckO_Y@fce a?&P0R0RZ0R~0v-]oN`?aYxZR{6a+ ,]N`)?L`uKJL`鿕&LJ&X˜0R0F &L= 0Vj)&К,O_] O`vZL`?&LZʄ RSWfZd3aR&Lŋ<_e ,͜N`)L@k ,e ,Մ 0z)&XJ6&Z/eK[&L:ʄ 2SFD`l`mcLu5ʄ Q0q&zkF#`> N`Ƅ P&Lu2a h lK`,2&ؚU0& am7` &غ;aR&L lm~0_L<ׄ `l=O`iL4 &SL & &J-eY x$\0nᙞ[0".`L5`Tռ vWs &J-eZ,`+/`k&rZi{> &:+e[s &+e[Lu'h[y}[3 &J-eZ9lcW~Z{ݟ9k X0Ѽ܂ LZʂ fLp< ~KY0Q^_0rGgXX`Ӭ۬ok#"LplD KLp43`ccLp4`cLpl ǂ Ƃ ΰ^vF9j, j^cVcG|L`9LptgeGs &8`c# LpE6Gw*L`+L`u5L`u5L`u5LpLptcG&80U0= \Q0U0U0qgjRuUjUuZuzQ0sL&=0< 7Lp= = 5#a-U00݇ X \]l:`7Z/W3 &&i0յȆ 00U00.fk5{aK7L`U<6L`U<6Lp0՝ \]o꿨7Lpua0ս \lꌾa[-^mv E0] \y7Lpu%as Jʆ dW/0kf6.ϛ1vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/JIS/SHIFTJIS.TXT.gz0000644000175000017500000012076006463470736021655 0ustar mohuramohuraq4SHIFTJIS.TXT]sIg~Eb=7_@|MH7'Ԓ8@h<_2Mlc_؝oUWe>]Ż4=Y?S>+k߭K߬fZR&=̾.O-Z?϶xA݊Șζ'o l}d5[-iT4E\Zycr;|[=wiiu?Z%+v?˭@oMV/oz+yyვ/>ZVXX6ֺܔi4ozf+׷nO#+Y-7vGʺ[4ٺgm8lدlf̨b^^/MIozˍz0ZƽQ/Ŝ&`Ye3"74 d7Au$KK,o?)/᡼r:K+d40*@zZRlf7ֺ-)HCʏR܋՚ȳ,-JQ3^&,J0z)-i}٫=yꞛ 1_;&-ʫoۣȽp"߯^!xSi.VwbL6wM IYď/69d0dSclL.})W/gZ(5M@B$G.ףĄbb\j`?bBvyňhr /҇]F+lm"h}5s!@Ο9/0*ixx?yX͆nҍ۸ ->y?/璥=aǨꞼgxC*0F1~|@J^n~nm7~jݠ;k<5Iϲ?^ԏ&p`3mm2>N~8 %zeI6M>L>> |4Ok'(*n6ln"swgO"Yx{~x '<?K,gટ Lig'?oy0Q;áIN>nbi A`{|rmw̴@Lwoi;/{8# Npx}G"{KƎg A NdnC09B$&դ vq c>z9áYD>n8my62"0nCNQϊxN.brlz2V {ل^b1".uEԉ!['"W'b׉,BݠNau.{U'YܨNEÍD&dMD=7YpܬNm׉xYzkԉ85xɫw''^xjy''fO^-OS'/,O^-O,O^-OexK{yK1|Q(÷u l.L %g|p{T. ?%a|ᇺ.?%[|Ǻ3Dp^*>3]x`o(8 I^^8%sI^^8% KP g5p KP g5pKP g5pKɴT@ZKVLVyLC8k͔(Z\MS8~'M(']J  DQ-TIőoy:V{qaώ'}xMmh}ӴїӌNރZ&}9H˜G:ˇz:n^D×ad)AZiM!_4,1/(N*i)B>HB>t68ǑviJv;s()զLΎ]]Hi59:tYU'.k>vNtUuj7d2=7K OC4Nw Rt-|ЩA[#8ʇ|uF9_MrwXBqTqrg+)X#ld5F.,M|]1%,I" ;NA1^/jl=2JQO8>4cN Mv\5iaSVXxOAHA:j'"]Mw7ɰ sjYٟH@=1Rr&53CHo67O[Q^"2>fzA 5 %r\#>@"5h%bU~U#Rh(luRwW/E3)tHڝw}y #^=#Iyvs*W1mԎ4dܟ&GƬ&D)ؗ||l&<\TP:2vZF0j&'T{uXxwNH፦w}肟Ni?A;L>͉#"k ٰ}s(FuuV_)u*f4 9y_ރm XF]ƹ\!Jyr6[H% Hr|M*|E>~ɉ9ɤ?.֎IAgA8.+$An'X쌳xٴz3Dbo0qm/x!]՘t4qv# `%mX}Uk0֨yٕ`l8Lb4+ދ}j4)Q58)r!u K]H\׃:qrw(u̾M  eHX!6rIQ( gvttfaھ٥>V?2i<θ5gy6Q.wghB=dfM#l0Kխ 1w r1s~RkR-Ci`Jy2%0Βh:vͅ)cG_p[&%6>j=k\4UqoH1ubT8{AUn-eǔ4\Q#Kdh.eBU+'cN ٕap[t-38\TD&Tph{n:FI%ŧޘDRxzw$BI#'eR9`v̤;Lؙó}Ap\nOG$ @x*;p] l< [O!s+0u1p4\nE^<x/"/X\^<[Oe"/K*kL/H_o&p`j|5H@Q;5FM*PktN@Q585F@j|L5r_f 5FMW jX$&ШA@I&ШE^HK҅Rh"/H$%x")x 4^b@e$ht/HK2 x 4^Fh%%xKK;/KKXen0 Ԅ5;  =;NvF&BA ABP#AP#P#Ho3ja2hpj$ਥqt-G-k ZGrXG-#QU'|畸#?J5:QEsC#Wщ )t1({ʠ槗:QŨU:EN1gq%pE pRq#@2Ĩ".Wg@⁡XcXç#kwNG$`'Vف祱ͭHMry@&֐ Ufu%p x5^:k܊/cqx5^nE^b$/QiJK$eペDf'5FM*PhԠw|PhԤ"5F *q5FM*Ph Ǡ&ѨAMQ3IDf 35F@ j Ԥ5ĝԤ5#T#L5jbTe$jwםK,jD^RT3xE^RHKJ K/#T/a/ *q' *q' *q' *q' Y}A@"ӨIDV_F L#h'FP!CFP!!FP!FP!!FP[,;ne~^,'_LSJ)KeU:oȍ[s^K1$$A|z?Ҡ[WeQGo=GXWC?#,2GXW{CeH oh+k@6#z+=+?\h',sq?W:?7 ,1T]/zQ5OvO*DfXVϪgUjVj[u_Vo8[ok?2U~(O_[s*{mGEOUo4PS?v ?UwF>S_S*ݿF@;OunV?չO#?ո~Oy 焟s\?Dz5'W>H\}"ʑN$GIUCq)>W >qޓ=WɍK5W|djǵމ=cqwZOx'dRW}DOT Pm2/oD~?8VM͟hox|'Z$^(Njs_#$orun2|zQE[뭚~QoոWZͿJoFPSo/y'U/PuQuRuSuQEU>CzuEM΢7tWM:*J{Jv=+UQW{k>+zy>[Z;Ξ?WMfW(+>]K&*|J9t$_0g.%:7I^iwy&}?.$|[r_Ok 3_+,N?ͻ( O+$kQb_~&OkK1bk|_Ybz}um"B=?.][ѵ]|+v\{ߥjϵXѴ.MVQ*ے[Ѵ*ۂ[ѵ:rKp}J+[l+v\'uhsυsϕSyBG^CEm}?w}#|#poP,"Q8?[Fy`DB ?#U'>8lW]>~2̿btwv~ɟ׈"0]SGaO;i6U[ P'VW ߌ,QhSXX[4̟6S"h }g?CH/o%w.úؿwFWJw^C 05~[ypǿ4/T~D6?J@3-Y=*+1Rw?Q~Wc;JL|:Pߕl]ÁPz6RzgߕY\)rKKYQ:QRCmt2 gJȷ$z|vor򭸃tJQ]_oֺ]% +v#wXKG~ZHQڭ4ևb-\+ޓ+чѥt32ZC>BۿKgax2~Yݐ-oU鄋r7҃֞=t'2{Dt.)@RiC+}_Cymkaw:#HMŝN˺iYGnvnW}:v#tRvZ=- EϴQZwek7v3]aZ\T|?Oݻ[?D")=*C)}n-s*@>>Ԃ'nWBϲ7V{FU=w5J%4'΀l<ť4}gẛk[q7nzS>nt=lsy*™6Oo!u r'Yxɖ<]V{kiȷ^ڳkuZk˫bj+KĿnfFZ,>n{|zbwjj6}\ʡO,Hxj~i + Mݏ[Q [;XPg$Й:w|L:uCSd}M=~庬n M-* )I-Βc4]ȶ+f[LȤN])M} ;Uϛ-vc'kJ=ZԧBS[ G J0ڂdR'(Z-8AlhR+:a.[p!;[ٿuou=8A'ȇ8pcZiȷV'($]ͬcm`]opb]D&؞5sa`6u~&Js=5Oў Nik)؂g v߉k_>8Af'(V9 %{-8A.o.V{N4ˬ)i JSԂ|oڇ "c&uYpf08AHip. T P%v8:϶v_Ypeea܏rpiLprZ$;I ;I',R͏"; _ڍZSBImZY'h[ N m-|٩ki϶R_M|܃Cnf{'ȧ׍!];`( ryo(hiKgaNP>r5ߜ[pF oOmNefL:Z׃[_XihjiVO-ꏖ|=8Au~/q+ a [Y|bvwg^5Uf rytęs NΏ>'u ^BSw' NPup ' rrl-emM vZ[ ;Y*se}sbf'ȏ̀Q6؃d5K78AIzӃ%#}> N0O+ ~տ+ N<6X?3' *+R=68A4/>L%}qm+mpJf ZVrڃ|Mk7fk*/f n|ra%)8A)f9'H[iNPiSՃzXiȷ&Ԥ#ޯ??Y\NVe10vJ N0ڭ+ 'Mg`d9z/'/'Ȭ8AZ6X'( UG^NPbl5pi)c=c`'K))ճ(0idd'[{U#8A:[Fpl-C#8Aԃä;'-TTއо{[ ߵ4YFGpb{NPlv߅iiN22zO6ԡg _ž9F YT =x9NuQ NYXWE `O՝h Np( jV'ߕf08ՖGճs'Fp-8A/t'HR Nj 8Aѻ'g3|WO+eUtԗ(׳#8A6e|]VZZ/3ۿ6'[ ]Jcp%Npr N u茅&Zv=w8|k|^Kf ne+L*GLltcm#_L JW3X p;e+":<ր\YUpc _㯡N I HrRkbQtipzS<m}iupz( 1{UN;~ŏ78A3NК2uC '?ayZ)~U{6񋷯?`c[% '4bOPM= mOɃbe{@pv umq|#`ؾ.kf Y /'۝?epZm9 qYqxlMşXo[ ;p|F*飌ilG`wpY:YUCG?nwwr㨞#8A['8 pTI9xߊ| T#8Az\UC\T 8AW;lii| fA}M8ԓ|$1G=&k߄J_XϠz>ocUeii= {Op>o94f&b'nUf fzc ҥ6$a8gYƄ|Fa&nakoF-LkOPjw N՘ ңzft Npdը-RI5Ao]Sg~oaT' 3_Np[4 d'N R,38AYMGlcgpd+ Np) 5)e3pR{r'w) 2ş>pKq'[iciuwpʄO8'w Nв}!Ӭ`Y7߸=M8A=Ŏ4$O1D˾|%~^ϐNQk6αՍ}7Lq(:J&iqI=fpT3y'Hc}n&[Efp|غ?X~!_B4t ʩdzOpvk!K$&qU}F&qVeCةc+j4[qXݰSI^V9sAg3+8AY?OCp NR0[;V8'xlO Ÿ`M9V1 .=YA|n038A[I~nN`z'RIGX'Sܶjwг|znFL&W.RIA3 NL_yw0='z6ԏzP-] KqX O \'J N`.8mj,fop'H6ɚWb@o&]I$Q '([U#8A'ȽZv+o~jooqvJ NDRawXTI'[pa"/'P/ '8k N'0v5Nj'HzM8NNpYohZ |r'H%Y dѻE~]'je7?AjS9 N--ZzZ`/Zj/8V.8nGBWzo T:'8L\;0ɕnV"~c} ~^^_|OPgOP}wOQqJYWpԳs'Kq[Wĕu+8AIJVpb+c]uٿ:vrefeZغL'[#7Ln uu$YHi_tNPMU9 =` 'fϱk'(վqpvd" N5aULz_t E7 Y)n؊X_7αg+c3[ ,zb'h{p(b=MY j*X="?V72;.OPnPֶQ N3Tqp647 NPCeʥ2?h)\zc'?uw`? x&%'P'ʍvp6!vKO(eWM66fz쌿Rɞc2 NRO+_CmMAS v.oԖ.Dm.kُ_b]J|u-_Ҭ.֕l7@O3;84eЛ&`Fwk;ʾE}cmaG5+~z[Mm]s"?Aq_ ^dǰifpc8548A}LY!ckIc%"d|'8lf FQ!v~ 6jOpi<Ɵ(XNM9sZb'H4[=;՟`$ǶBf}}"; Omlv Fm8g}n800ɔrD:(كseu_UOV|&IyY'Po@zS?܏OpVZ5t>1le nk=<7]՝Vo7]Kzk&hCAӽ N!R޻OpIw NfyfZɮլnd- Jgթ,>' ?ޞx|jՇr>]=g3'JֲQp]f ht|' T!)o]k,zA}m}(Mk\X.O ?Lvɮ'Xzj~[wN'`V7ޚOŎRSCG|:?Op,$iYJʻrs@L%Ғ y;PB'ICOpH$+CևƊ N=OMx3llk8yOlLx`V7ϩN4w]N`N` .&8A |%W?A|r*L;%-⻵G>pfVOԇw'(꒟@>ﻈf>W?pΐFڍzw-ߡ7S N-u?A7?RӬ 5'G4we?uɃl l7|*iho)Y?VJCҐ-t̷oi8ҐfdRhC-[H㹽` CKf=϶*o .[}RO0}KC[ kiu[;%{NYTfh\ݷF91L3d(y m;]-;}cؼ^fI> c N>΀LӒecrE*}YGA~}[ 'tw?Bֳ7N2RNk;VwpdB}u@-w97Pg"ƻFQ$7]O*_ t`P# Z4$mHvZ ] n[S 4}cllh]pٷhgJwl>J[R}Tӳ-O~fO] ƣ#;tUƟsZ$

|Ρ{sOճ7?AS op~k^J&K'8l̮c,;wP~! Nqulğm>4]כǤSUKny9VI'(m,ݏ& W[J[G'nu$V982x紺8_N`!8A=gpjv`Nj ?O1 le rx;yGNP4r[J~=hGpo+}U-evILq;cx{ mrRiqZ4SZ[A)w_Ru7yʺ[]'8AR ?Q#8A99.b?UdNCGA܁˗g3r<{[M1YNﶞ>(8x`ƻ%eL;0?YwzoT5aZ\:6 >fOpk:ֳS?AV 2@~ˤ{M ['yQ3t|KѵDp̲Bɦ$.UNp6󾗤r%8V->.7bJv.$Ufpzy %9 8Au-=4-%ˣ~K&b(9fh6o)J&T-ᩥ'BCyԉ?-YѾq:([9OPr:rO0 yOyLi؂Ԭ]Tf ec NvfL՝LZ'$f C܁~KC<{Թ{e['qY<*Bά-S Yxuў'(&+}tn\6O7M38A~ y.~! 'HpYOpYNД۟pi'N('$ |4=/}nW\׍u'8 "? d- NS8.r W+'~c.DKUo}rR=#? m![dpT3cW_lw;XK˿I.jt4(/dy[ם[P. /dq~_3Q]'?}X j_'j]1lSvy =C^<{2Uvy49|sߋ4tp|n'j]'ЌŸVE~dOЊoc Kcw:o/q:F" FOP6T;hgw0t?x`>*38ғ{/'v˴]ENPZx>ogqYot/,۳Z1AWpOk7kwuW#@b%BFoNf_7ث5y`}~oOs5cu;v\ ;KgՍs}X-o{fڹ5O_[ w ? v7K%IUw;}^o& O\e_N0xYZ{'htO`[zĴ'0ߤkzǰ xUA~a3N0~M@. :q]}7}]'i_Cw έ$CYw`|L'76f'H_ >z[rMi"?w?}N ҝ.޳L>Z6b 7]~v]$%qV 7wbl96Լ{c{ O^Xt-!6KwfLxqp^V 7-8A$fRޥ՞N'|d[xqG.&fƟi$[GKR<[OTO^27">oAR(ޓoC˿7"ǹԻXdbNh6oiةFO6['C%rw>@m4{C'nEf]wg/Q;8A66RNfWoN'Gz~tRo>6yhU[w'0o7~xV1>KkE~a%?w7 IB=zk&ҍ7z` ԋ.Sp[Gz^<`Kp}[}r'Hj$8gDyreqMmDAoVJ n ;C NpH镯~Mqү?fo'^Jvd]b=cW6xVJ~o~ec Kcc-TDlJcwՊO}%;QR^NV9LȷۈY=5+v[I-D[oRyʗwnSyazv[5'nF}M|7+}|ɤN~ωKɧgĻR"J|2UuJpaU_xkm} [yj"a>]V@" `>ԛ[~o{N.K- MkWMM'}oA UKzRYJ'V~M$'O7OЪ~No܁Yﶺ!_Mg򂲒'0xඵ,`Ÿv"f9o<P?ANaJpʹ-o[iRdJN}^O]6^;8_'8}ןc2e$=߶ﻈzbMXnDì~ i= NЪy8pw`% JҰak3'/("y ǴR,][S_YV:qllf .[i7F j;?EMfcL'8&jơ _Eɻ.R''HD紞a?Md̮)8Aky>O/TKyNh1`*?Kpe: 'ЗwXBB_y_SiG潃qN0.? oiNUst'{f8ye8>և^aw+1̼h~W<opsYqK`{sp66'hKO9%ZW8gu|[ '(66 Z;]Veu9jfLQF9Q%1,JszUofdR{n$a덥}<2`D'6[^NpڿްozP~<&'>7 Eor[SW\^oM>C&@_O  Y6NP z$7 x٤N~G-:苣-y uTr%,8A3eZ)q z7|=#`MEoxCsl,pe/ ߰b#&Npj5߸3XF '[܈-L-?r0+h76*I8a6y e,^U߃{.u ?M3`&I8ɼyOMWg'ON q!U7־< 7"lmUƟ~.k.y()˛:&3N('}UQ9C-r瀢hZf]ܜch)ҩ6bhf_Ҵu("f3d NP,X N-'7o>~Uυ%ESwTۨ$ykoBiKpZtߕZz3DGc Ntڑ2BTd3w` y ~6excX[BeC!)%K(̫zkO`\7?M^ץN (oc=EE4βw0N+Ӂ-%P q}^xy !CwŸ`]RS v^;x+O N,Z NОl]Z%('fO`!4_Q(p:lt/wphH9-H! q]:t5p[WJC'w`muU殮ﻈ."nk7\Vo,î}h)niQo(Z[u MO_K-ݚȳ6bXd]FO]D{& S0N`FuڿA7ށ1Jڿj}͗(ߩ|2[.e6'W[O0T ',k[ZH+KyXWԌu;o]yX1ZiZyOMKUWZx7U+ΏΩF_yem+UxMk5@eLbe]fVT~LxemWq|v_ ykYȷY)Uۨ׏I@r"_ ^̶¼icC67.EX:Zmڇ׋Y,DJFj:GOu|]q:֠JrrS:MֳB!Vz&Qt˶ڈ6akԄ/^@^ X \]XfU,gӺoR/TUz17^4u!e"_M ~Bˤ|j8i4.n} &1B0%hg^/f=34NFYάa7n'"͞QgWwFCwӆ'F| /Cwӆ5nu6bQh6^c?/(x2 6^c?l5‹P|hC_jx1"_[b>nCrv_/fkfOרFV#o6@^̧@7O[aȞ~~]wL<^i-w 7O̓*^^aެhӷTgaNSIovuV|E|n#{>!_odR۬W|ꙡ9VzxeTϭ]lvquO%#}}ZwYϐYБFO7{vVz)Z=v28iv /t^̗1Y)yg?4^cfUM%+e Y.KxR2ƛU%eƛF_vNP1fvJup˖W FFw8A9]m}$:";-_-$+w8Alļ`;:(p'(gp| zw-wNPAw8t8>8AQeX?AqE}z;̂Ts) Ҥ'py:^pw>͊.y;ny7[!zYWllE{'38epW֪?AճS_fQ pjkżL8pjg8e/pjpN-pj~__Q fE3 N޴ , 'hf'UU4pvZyoV'hj'hzv8AS߃'hz|mՀksN4 ٓp{x_YS''hno,]4[pȀmE::U/Y&g'誓N5f 8E7{gNЕ8AWd zvuݐoN3]o zY)^z6)U-Xڀi}@z<]'躮8AW4]|;]W';cuC@]ʚ 88g]btp>ZN``N =pR/`l- _[z| kwP+ ΩZ)-6 䫧'J`^8JՀi- I=Q 8PƮ6 (82<P}߳TM `4Cc`<34U`=hkopN0|<SO͞~ؿK3[ 8VN0O2hgeN05g uז[ fQ<(SON0g Np;N0gY43r f!_\N4s ,݀=N0^'`if۾ '6,86S-' 涺!_2s[ !_˺1OJml!_{d Ybp˧038R=f,`}'XJ`)p7AN 'X |,f`ŀjA0[)3`,=FZ Wn`̂XD,!kڿ!_e N'X8v=8E 8=1f` 콃'6/X؀l%NCp7?JN͞ğ` d Oa |ǁlp1 mMR وdEۦpwӕ8ng'8ֻ'f=o!pG^&&&r ]&9?W:B5pEppZϐzPL8~ N`ьN5<z ]''N`'"&՘pVfŶ誉?h7ɊQ;ɊfoO}{Ү%F L}ԧw7ʌ${edE-TIFA͊$^dOd$mf=58ɞSlW'Y>5Ɋf1*f{&{EN^c5Q *dE4&Y>yi=c-q=ّgG<ɞlW>:;VV7kBGJfG50ɊQv;lĬfIV49 _dO N- N-nq1 s JzytldECV҃I,A^[|*O~Ldmc 'Yrh\M^c?l-5vɜnQidS_ICoDL{[ 5$8Ɔ|ں3ʵFmM`P?yP8~!_;8{΅|5{g!_[֛_Y%ICi$+e JYxdO+k9yP2yrNM>yb2'Y[56|_Y+kv 65vU37oαdE;l$?a܃|mE|Y~({UόFVVez1W IVO\6I|+kZ╵SW [ N-bu'ȧfwYdE;tHG׍tnҹߐNR]LH'[ɎYN>_dE;Ȋv/"+ȊfQ+!_\ z•ooWoꍵ՛ e(o 'HVcMћ'H Z$[pd{! %k ''HXlO8C.^cz6]pd b= 'HzIϐ NlςX''Hf QpWo 'H> Fpb N @UEYЂd-p\p\plsNjZ($ok6fqc8A '՟` z.8A9'ȶ Ypl$ +_pܬ]>9 N` N5N|E6p~ m8AVb η 'Jd7 ok騭v|6^p>0ZRV7Ty!7([pbҁNPtn8?o]3{.o+%Yȷ(Ep zKK^[ߐڿ;j5ju\m8AQ '(.ot77=E6l/ '(6[1l7^}]7^p+׆iuNP]5pj3NPM>pNPoCȷ^&M]wT7̂TYpFNPCe ,t jR$~ NP.n8AmVI66 ^&3$i'zs+_kv8A[^jMsXlfsN`ѭN`oo8A}}em[NP *pjN`}n8A= N4Oن]o诞7"V78EW)pvX馮w*f }pwjNl zn8En8ASMw7g+m|y/k3N} }pNNвI ?AӳȆX4V.8AS 'hi}@mؿ!_M;ꑻ'h pdo 7ޒpn.4[y8AS+_38A3N`Nf ޱn8Aӻ 'J6j'hNЕm8A,N 4pN4"b Nm]tj8AqҐog>> z>|-z pIN`qNmHW&1; k꼀tK+pߐީ=pJOk}󾲦NЇt?pst~]3<+HgY)ڷ{L'8A,n8 +vm =p: ҃'8A8Iohpq[ ml?ps l8Ź?pt5$8([]䫷`T/ճ'~ o79 _p~S)'z+ :"8Ů?p1Tr` i=Եp1K5v~|n8R,}`5+}cU=,v'8}N,E V `lwX]*` 'Xfe k Yp5.oWo8y 'Xf !8o'XEm Ymp`gPWK 8ō?p}Y7Ns=pm+8Nm5XT'm ,Y| c|3l['f N`?pm`N'ض وp{!l{Y]k' v|l 'f8V?p~5XL'N`๬gQ4Zϐpr?f?^?yISje?׿?/?^Խ7vc___?Fe^ZZ~Y?ݨԯQQ;QPx'/~'?l~'?.=?!쪇W|ϟ?~_o?_׿sTc}9Yg(}~Y3:Ɨ5|ځƗh[^~CB˯_bLzK -/Q /1,t7B1,7 B1,7JcXUaMTZUcX]՘?eVֿD[믵1,ԵZ]-_Űk}ZB_bXk)_bXk)_bXk)_k }m1_B_ۯ_ k?k}m[B_ۯ56_ߢk-䊾_ߢk-䊾_bXk~&~w/ԶDmc?p-Qtp}b[QkGadeDiL rkZo)ŞFa@-b&i{9[7C *Il5MҷN7ŞZ: gnȷۿ!_"_qM"i}@]&o#o)*IŞe=CK˵TŞRZYq-V>q0ǵXևL VZ(Up-'j J`oM,8AI|ӭrNP4>pMr U:s${[ovovo"߬8#߬}WY'TRȷZ)'̿ȷN[|||v>8ARt Nt;d[|   'HCW8A.uho)Փ'H @3"_=QpgN1pd+" ):T8ARFz 2Nmd% 6d>u^ iڈ6M8 id=p|kVd[YmN|NIA'д"d[': ''俥ȷ̐oў plk* +_?VT8&<"_8A 7/moW'ȶ Q ߡ: 'ȶ 4e>y plk@Ӡ|K}pl d=pl o֬gNp}[(۔EϼZ'(fs 8A1K NP~ 6@Ӡ|KCV#8A1 NPl}38A66[ J1 ߢpb3v!_=;4>Yf! Bpb NPNPaeؐԯ '(6ceY] Ҟ Y+pb/8A1 NP'pf3NPmh:oiȷު}pj'fW Ypj; 'U Ypj6-'zu a} 4>U8Vz2T_8A6 k2 '$TNKt hB} ҞpdjQ:4Ӕp}P[i(}tSjy(oq <8- 6'Z} ZWυ'@S"|K7⋥vkm 'hF|u=mXwZ]LftNLM-Nt<]-Nt au: 8AucjuCQtJ N.969|:@'ho){ b- b- _=IpM-Ez| z/N8A3;6 'jÜp+ 'z{v Z6gp7}KZ+'p 0'O7$i3NЗI*98A_$iNf rN0>MNIW 'Cw\*8N0l =͜pq鷀]Ե|54;lw =p Q'` 'j9pQf+Ez|pa@3"lEY`*' FShRo)m8P =p'`TMhB} TIO0 'J\N8&U"_[5CoN84+N ' N0̏͞fJU'TapMO8xN V:7`<6&`'`Cjz_N0.L pi `&py[*VD8T{ 3[֝pi`ں'" pM -EW| fW p z1p|'`IN0. `YN, 'q YbpL9sY]|La|Y*_8"Z@vLpN'` s F`'Xz7~ ZL`V7Q:4oIx4.YF[l!%XH'YE ֳM ֳо,*.8ҕho)mV|^,%ڿ!_=}]pլg N v/U.w 4Ʒ5l[.8U,}`<[||\x ֲ"_I/8&`=&؈.8Vߙ Nm 4ƷTۅl7uUpw`-m vNϬAJN/L:WmhJo)T+Ÿ`'IuN;d}@꾒H2[]$l[ Nif'ضr'FpleL`ۚ 'zp .8Vl[[.8VJu v!_[YCe#ޔׄE% vբRYpo,8A[jQjpo78A7~&NPJi)v0 fk EFJ8||mvȍ|5V|΋|mw|mȷ[7n䫑F|][Af?Wq _T7Dzz_ ~LWpznT[j{N̓&m3NPɼCo>|ԣXݐΑߐF:tᾑN"ݏл;8A=NNP nvKu'wB|u?+GKѾfuޅ 3>.wBK )Nwڿ!i2CJ%|#WB|wY WwFJwF~g=wF+qgXW /JU |Kg ڳբբR [#NPO= oCLoRkwPjcC|m7 wEj?IpW$"I.+IՇ$mMH7HXdvzI6_$HrX]$]To8>DwC67U7,nv78A>V|mv7瀻!_%wpo:3[E"';8Ah;8Ax;878T[pzٌ%m\7Y]{[C}'ԃT;^ {'WRk3` _e@ʍ|UtL,|M0o> buYA*{{ _ }XomlWp[O7UN`76[NpkU/Np'mf nYp{N nC*ٻRۭW) '5Zܶ pd"o8A:2> _;K p77 'H}|K-y/=_$8ARҐI$=K'8Aғpj=C:zV۵tkRӬHBҶh)ڧ8 NtJp6x$%e N|I Nԓ/ ҰC )UKp.]&Xzffb"" BNp7m)8m ޓ%8ANn 0 ,7 rR4) Z N`t1 g%8A֛'zY9mi- _\ Nm N.ՓZm|5B& X +NpnHNj8E&8AQo'(j'8E'8AQ'(z Mpkd[ V8AѳiopNpN N` N`q NPl%Npb3NP$8A'(zEwd# fk&1U%[)UUId= '8AQ4 JV 8AQ''(ʫ^Y[5V.8A&3^t NPlX t[Eϐ NPc-dJUfpb{,<_:Z |0pzؿmJUvt8AAJ_Ip* '8AuNP5ST|ZJl z%8A3[MT8AU_'JvXwTGOpj+j|afuo"_IpjkV ]'zOp NP5ST[aUVT='8A5NPm4; Xn N>¤mQIN 4 %8A3KN` Nl%4[5V#8ASͬ 8A< N` Nt-p7NF, 3MIYb"=Kg8A+_NД4d8Eg8Akiڧ<* 2u$X4w2w^X42 kmmYwYCz7Mׇ 'h2 P2&ɇR몑]}r2lp+AtNug8AOoRmtBf!g|V18 r '2lfW3,f8A9'zW]iGXdX~i#F6/]2?kN5$ e88.T? ,Z? c}@J;2+pa3 N0>n*38epaN0lv a_ވe8e 2`h> 'սiWe',N0l}X\~ =pqۿ!_#(FprN0EJ;23`>'N0̐Co2`T77N`N0l pX '|}y8L:uUwN`QN0Ag8=N`1N0P#L/S}2`ڎ'f 2`ڗLpi&`3pp< ,: ,: ,:; ,: 'F|5 8pv=8|llWoa2`*Wpg 'X3"3`َ'Xʹ2`)pe{KpfQNd+_kwP6)'XF)vCK|23`U|m=,wK}3"3`=d,8RʚK3d82 N"m|>eE6KiGlopp NmlNMS[bXl 8\N.)p;Ylݳ `^X[[Dl"Ft F8VYa[[fl2(p;dl=}8['غ8ż83YX$ll]K `w7ۭ] 'z[R{XWW'_X['غ8^V|u(pFZ@J8{a<P 'x4: }'xCFN(q)pGϐN =8sYR u ''xl<.'x4~0).JMh}`|mN-YoWoKG6 ;yܑґO||EF|RNr_+EK@fU  k6@zF/scF1.= |m' f#vX!^- ڡ0%8Tf+'hk NӾu=8A=(Q|!8A2oRۭ]kZY .⡹*BZ@zUU2RUo²YpcYWOe!e#F|M5{r!Ǥ|S'h"ٴ'U'hl N}N-ձ'h iVPpv'hY4_Y!_{ö'h.m NNkUpf/ŖA^䫄D _kA'hd N,R'hT4K Z'hIjp-in N,b'hI- Zu-%W E -)Ijc NajET$9HrZ;U8AR%[=T'HjՆ|m$=T8XY *  'W* oREZ/^ '67c Nвp:** ?bˊN`o3V8Aof XY}+"* ̂d= 7`(Y p{ , '+ kT}d=T8\U8Xj* یXTQ58A ' '(f) ǤPW&]Ei]bp e"_\EIYQ _=gU8AuNPnUN`1WNPW8FɲT8XE+^lpwuNP5E=j*T_䫴 J3I"_=V8A1Kar8A[ '( '(r ppb8EU8XE_%pv=8EWduY+pt , '_8;U8A( ' n8A5 p5pos@To N`/W68AUd[ N`8 NPu7mpipip{ 'zc.J>{ݱ in'h; N`Q$ N`q3 NND~c8%vC>4JnȷMw'hJ%/U]op7W N4re42Puk 'hz|ukpd , ڲ"e2CZ@n4opku4hp8ipv*8Aכ'h+ֳ%4NM]48FetI8AW+ , 'zkpCipHRV}58A3$ 8%f S; Nm 'J%b5'' j'Eg X8Al1S<؛ N`;68š48P'z'Co`hX hp ip i|Q|e=58N`q( N`N68E48N0O`! N` N0"f|68=N`C68P(Q _[Cg 3 N`068V83o [ V 8['F ƶ>|-B pa`<&ɐ'&` ' Sd N0m݁LI N02Llp|y8T' Ypi?`*Mjp> N0mL=C684[N0Ʀ ]'|h'Z@ ` }y pe:88:n^Nkpe{`ٮ'X3 E'Xp N`682}{ N.v8һ'XzK-'X;u8`,;p{g 'Xz3f^,%N v8jVhFuڧNvt8R'XzB_XP,:::`i'XjWw8zgw[M;`m}nw[W''z7[kN`'N`u8Et8ZfZ&ߐ¦F|M[z38'zO4Nǥ ZLN]ow(Cz{̐i5` 'z~pwuN`0N`q3Nmf wE$-B :9g!IpG;Q6f^X\G؛yN`ou8cZ 'x ͼ'x (Nk 'xڪ''x|SՓpNfN.mBpt]w7{ %&Ȓvflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/JIS/JIS0201.TXT.gz0000644000175000017500000000462006463470725021354 0ustar mohuramohuraq4JIS0201.TXT]SJ_1UH#K22!fKV[rI"=/6,A.L3/&F}/G3q-:NWu]i<[K%]7kE[wkTYeENPuŪSw~[#{Q0H?p8-+u]}*l\xtSmTUb_ġ*Sq~Nٝ~},U-ǜJ㫈ũz-bUT*ޟJfT7-_R-EZЏ7sԾ~WEYgSuQi&%EZ3Y⾊4۔6-i)嶨7)與,ӼT%[<{KyWm )"f:!+O]Z,,^7:,db:+55NXQ7J=K7]N.F-M JTT$zܗ#22YNq>KuuK=Qp;t2}͠"UY=Qvd@oX[n% hCk̪nu+Rj5E\?J#_6#ttQ*(E~AvݡPm[eMnl"JuOPio2nG:T^.sS]gUa*Ay̋\ZPշ{Q끰(:-:߼Ūx:y_L,LLR{_.xͦB_t;isv;F݄JVdgyR)@,&gi6K9dZgwD.o/v{v!CnR HX4m^4ɛ [ewS>qET% 햺 \jc,RT㈅M8,&^SwlE.=?.ֺ^#o%t"^|= OAAbM8b"bR$FsBĢe$هll yc μI/$^uF ^L Y4㰋K8:{{|, hc}z>}ZkZ&'h2קG#1K>M@ Xc5At%0r}`: c'>C>2czDWz 1}`]: 1zxr 8b8Hȍ0}d`x>l,GuX`$z?0؋3`VšGV Kg>fcojؠmAmmJ@m-Kx vKxvKxؠKx`d\T0^6ذ%lz={vOx"Oɽi>"{+兗x(F!Okw.3TJaNÁB~@z>u>?u6٠+!ؐANQ˘?4}/^ZlsKUlU}/1]~Kﲝ ]P_@lBWe;,-a[;X|h]P,:ݿ,:&\VvVkei5eW׉. :NtYiuN;W׉. :uYiuN;C]xuyP^v^7n;c.+n;c.+n;c.+n;c.+n;WWJ Ϋ~m5 WX:W뾂WWeWW$nW[[#}?bpvflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/JIS/JIS0208.TXT.gz0000644000175000017500000015756006463470731021374 0ustar mohuramohuraq4JIS0208.TXT[sFF_&|H4s7Jy /SDۜHx~k"i?X2F_л_I&hvsil]-$@ \lJbt h>n.w|{!||ڮ7/ꬃR:,([bWǹ>7q]Hki|v6XwZkoף{+]VK@lǥL0Y,Ua^dH+n:>J-ϒ@+Yaq1A/E][6 }> MNi) Ύ|aasx-\hҏUiH#wn2d5Gl생2靽2 ,Ji^ߎ%K جr,=T=wMoo7 .<= `VfX}ώnm ⽬˽\Lf. 6Cnmn),J>f{aZn|pŐ~ VZ^.V̇|9/vn׫|7w|O;TȺo淲[YGgˢ3ݽtOۅB7|zXYF ߃MK^ugY~ýcjȟz}F+q'Ãwz\~/X,jHohfFCM2VO٠VeTE9 ߟ^j!c?ڏ]q-Kcm6xgaTۅ? ]ٌڏm",+nfIHj^,nO.'ە'kwvrѣK\s8k%&7ev@OũXfL [oOQ-6k,!Kggؒc}NcuSv7߸?hJ0=aE[r'xv YreɓP.l 9GQ-=I+ \X;>_@%@ʥa3h6M~mՊ„o~kO;D(3͢Ŵ?Ú *H i^]xq79߿ +ܘC~~ _ɧ;!ǭ\j伳h%*pfm3j h4~xULFi^"l" 6OO D؝zd:!6#6r[uULیʚi.D:AA1"M\Y YYVM~u$m# ֤ɴ~:~0|&5Q]\#/{Jm2c˸Doˣ\ _mD5e1 zHq1{Y>sFލNYl-`k{6*'ZKK\pb kiai_)9#iZK'Z5vu]XBlQ)]3AKY5l/q'S(v` K$ak P<;a+t` #c aeqn&Mʷ=aq:\Gp?"J: D8m>44qi2WqfFa%/Ut\;$#"""Q_ϓ .dObIbK|1Z݉FÉH?Kn:nxIkttjcj6B!nu=B#+齕]z2tW (Jȅ&A>F l['lRڦ=#=ruf]+rz qhȐ mSo Qc\/#dFr{;qɊ=lKW|-glֳd,D@L*MrB8i=p Lq(6g9yLN ._3Eݝ:(T)Ċm9 z4vSIE&j۸lJ9_k\RUrrZT/ipgdũ$Rwfh4ёdQf /=H6%TG5TΒl:L!v0wz5x6pPӪW0tVp$%|4xi\Bxrp+2r_V:lj.SukF0L3]f a,Ko$eYtLNU:H$)n/=ʰ.I!+m\Dd$W1^jt]&b6gX4G^.xAol.7FN=PQ]V93fӣrHrljetzHD1>lZDqw8вgl>meL.'X0:WE,^ya!#2LucU#Z.c#8l"Xs>"CGaz>WR8h qˈT%ˉ+++1,ǑhFO8܇Ggq>=> 94zh#~#ywfƍGË3ߑ3ȿ3ߑG&?sw51g#Gqq=ً|LO5G|&GK- _cSsg/R§93 D>NjQ4&GI- $0EB"!(3CG;sh|tԢfM7G>oE7g|\—94 |+s2i}^sZIѓɵ(SKϑkQ1Ǘσn̙i_‹94z/N‡94z/\3Pgƒ95z/cQ"rPjZW|6p_OMf.9=f_3p}^^ kf>U}9)zJXb/|.RFp^N D >DoT RRe:җb7O} )9љO})yJ4ç*gs3|&>> U§29|F,T |&_)CiҽJ#(M|J9FP(-T &>J9; s(4QZJ#(M|X)D&>J:Po%>J:KP/%>JQҁJ#(M|^鈠4ҖLPCiGejPGT@Q>͠ϑ*S_ jb WZ>>3U§ 9R%|{@-WfPgJZ>>GO}ۧ Bx4>cl>cl+!gg_W>lgmH)Jψx|%e\VJXM`[#&WBlmc&;f}KM #vb>bǺ@lG>)!6ضXZ ܶ}pۂێkmm59]Ԃێ[}úX=rνmrxsrG$"ŦS y}E9 9oh9F yE9 9h9& yE9>9oh9ũ\mLjCMz*L6i֕'-ܣT%/@i96ux J˹Jj9v}m 4s/~&JZe>f)x Jp|^^|R@PT%j9yYeybk90Q%j9y9eyZk9Q%j9yՙO-27O-2yr.yJr.9љO-27O-2Syr.I9gxk9 (3Y>˿i<=>JJ(r.QZJ}R,BP(-T Z>J)x J(}R-r])(r.Q:R-r%(r.Q:бCsҁJ}^鈠T˹G)D ґ*T˹G)gGiJr9R%|j9W\_YT Z>>GO- sً> *S˹H\r Z>>3U§sϑ*S˹g_ O- sk9W3<䍵+}|RZΕem3GE{ `VZZ?FHU|F wO>.sEHXMsn)/y/xݳ_Ϲgg5Ϲ'9ܟswO9ܟswOm}yoxo[_97۾"979ws% iν{nX.I{9Ǻh*w vF .uk%ǼQ>-뎙?? d^ǵp~{v2,C!8$mYofQ2_?:|1뗧E|1"ݞ|13.C;e|1ssrD?uФ&&rD;5-#"NJw)NNHwMG,wNE,Tt&"rd"NCc2 NBcש2 ~OA,t?{b.G&{~ɇ|#]N<ωxvXˉ'~ 9鰒Ê^N< Uxߟ +{9? ?_~ N ^>\*>`{TbL]'?g<%}@Kb<]7$u G=o8rP?{F4(^@%1 `dAor ghc%3~Kf ?& s !.CfƐC\2C y|Kf ?osP7 ~S%3ǀQ%3⟇_t ouɌ7cbs@u) !$B<&{[wՕx?y5& n=mVÈ="^m~sȏF*?zCB?_qŗq׿QGrX9pu3ԢָwX~?rNmW:(?tskHMoGopI3oݣp J~7zƴ>~s?e|$T^% ΁д7k:聝32Hw/0^_i< FG?ٕ?PU]߹~s*KpNkJ=td?\ȹx|{][* j|.]uM7݂ܲvͷŞlۺC]ʮl>s.=g=wqR}*Nhƾ.5\m]^tWޟUo\#u8z).eEO{]Co}]ZVLĻkTyڟe?m 8}w~{wq3g=CSwW ٨`(`ǣ5$neEoB.`"TKRE`]x5X Y&4ռnB'Tɳj&8fA*IC5kvU =|@bObQk?Osf r)zOJG z.S-lSөIum xRSoҨ`+D/A\.5?ٮ=K-;˥~z~9ns.9~/sf~8,OFbk^ l~3tV7)zȰgst_:IgOq5D5sM<{jI>tyl4Y̚A<Ĥ.1%M\#85k$z饐.2XFbvBdqEdtjiA\ l˒usv`)oM[sֆςk$C?[A5?f7=H&z&Ƨ_ z~(k$B5Yl+ʩYlTmT$[#1OBE5}[HLB5NU$[#1X,Cy^M$[#1[dk$fD5a7".#lr&;[$[#>`H,eg\#L{zsJ=q#5ĥ6>zƧ솞k$ zRk;s ѳgҁsĒD5S *vC5SgsVCFbz Ke:aёӫ Kes܃m+^kT6>>aQ.^iT6(~5X*g,$Bp'uV[ѯKe6m'TN&fp· aa4Rr4K sX=K/,5,Z z.M5԰\j|RUtRaK sD KeJ] , Co{T6Iiw=K R $M,M@"DRk,5,ߢK `_ԀKp4Xjfv p#sm|RCۣ K ˥<5,]NJW,Mr/WX*[KE ʾ& rv$z.ƣrisr1, JS`fPKe/=[X*Cj(A\.uuȒ z.3`aU^.AĥK { KeZN/K6aR饎,;7sv ,}O r5A|Keۂ4Rٛ T6 (fjX* dVk[ rusԚ_ \j`>)7s[cKQkoatsuga5KAY<^',F K-Kg K}zzAҚRaKͧb6XjRs#sԜ.y4;,ފ;,¥f:,¥EpG'KK-G#Aa.5W;BpG;,Z.nFpIj;,Z.ek:tERRڍK 5$(55Kʮ@)R DOX=Y?s zR[ DOVj=K-U_n=5laSk zߋzR)'%~urhR/V[#sԚ}`4K*T탥*桏 ,x-DO\j]K]M:,vi>gԈvX*rRiYzKK] Z;,t>CTzѕX*JյK6Kgs%~ R+̥؟=aa4kKG\KRi ײ:,Npb-v-TZVl3-ԪRݖf=YwX*rz$,lT_:JR/J&HK hR首W`4Pr3- J\v :`4CS";,gV,:,gvHFb}EwX*<-ĥgsvU ',5dT}ηTZГKS:,F`z_KO ),B< Y3 ;2\Q?;,}?,:R#G:uX*x^T.EX*;uu6pʆ/Keo6KNFF^ ,5nhR5#MaluR#F>Oa쀑lG',4Ke|'+)ۥrؔ Ke\zRbKe|_vI^=K 7,aKD~uR(ٱ zFƧ}bRiQ~tX*!JVa4(EQtt3ܰT::[qҽ`A\.`lVY\.AT6# AX*kfDR[MRR 탥@|I^kҰT HW#sj=3yU`t]HŦqX*=R:Rin]dT'[w)!S ,ijVR,RfhRiniG',ᆥҷ nzRaKA.y WNT 䪷BEwR MMalvou7, P4 .W3SRP&ނMK7nXj.U- KeKFpv˥ZF Ke#A!ނ6U&4}R3N}4oX*WsDoX*; Ke3u¸aޭW5䆥?&6,KM;/Uߟ7,BO\jDJlYĥ:oX*-߰T{߰TzoX*mi=a}RiLsz+qa4W#sHPITKwv)ɊTRxRm,w򆥦RyR`?oX*M znLdſ K}CxX* UlaOJC荇Yfa4oǑ5j`StnX*]⿡wJcaO Rie'k$~wH')X*Mӫ7,v) KMoX*sьJ<4Wң{Y`C?nX*=ˡP7, ,k Kzv`P/adk$~*,NegT+aC,>CTZKat=OmA .us Kyz4a↥<E]7,9h= K]yN`(3ؑF7xRiA^2`ϣ&,5Rk׉TvaaI7,5Ro?[,duM,|E4KM6n/X*}㫫$7,,vP&uR錞N{Ri^"Jt Ə[, g+AfMsưT&P'8x꽅a̠R{Ri7 zg4醥ү;w͢a4CoX*KK-V.rR3ye٢r K˥S%nXj^. K5yRzUOXjzʜnX*ś߰ԼްTn ,&q*FatO}T,zR읛=`Tx;!dnX*s3Kw Ko7:RГþatNAKYoX*JKQvzmK+v{oRw,ߧKuY\.4CLo{Xj9RfrR3y}RrK6c5L^}o'5aӃIT)OiXjλ@-,5gܰԜ#qA K͸ԫo'.Z KͬiG'+Bϝ:HyZxRr͒nnXjƇ`\3N:xajU ~؟Eϲ)^',5Ro]azTKͬO,5zha]W1oXj^.KTO fK}OkŢkK},EJj)΀Ҏtm4`t/g`!Xv)`4wR_K] /cT: M/3ح5^, X*=kW0`c/,Ѐd,~үKwz ,6E\j Jth:nM2$/3Kxz5yaR ^]ŠmR N,RK=Du*ԂKn;[ĥF} Xj!/5XRƀR&zR Xja?s K-ԮmR yC!]T탥˽LuoJf ',҅K#ڐZITaKz]6`4V_DO,iuR^k;/EOR]T=q;k$[ڀһ<MT:^sRiKbK-;/U ,-cKK-ۥ6 "y;`eYԲk X*ݿK=,l7 Z ڃ>$UGJ+h-,ЯKv:2`UDO\jK-HԂKMZF1`ZuR agtK-N͉ԲlV׮=wk׉[<7:`,]",%Rҁsg/^J7R5+zR^`gm!\j9*5k慥Ҵ{Ր`'F}ڑ7At}R]c ͞[X*eJGmֽ⯥ZanSW,v$zٗ,ێDOVvAT@fX*?obG'+SS,2K8D&v)ITP6>`>2`NT& Xj:RT;`C,R/ZwMưJTEOVRRɊڑ\juK˥~xXjZOh8`u+Ժ\jkdR+.\,RbKWMԊK=4wR+.?1azvBK Rv`j˪ZKK<,z>`uf+Zg=d KZ5`NT! XjUԞZ7KDKv]Jԫ ZqdR+.Zq,R{EO\jeK_jBO\jogsT*Ժ\> zROau'M,T ZKNZKMZ`,R3ԺY5XjťR+.Xjť{`j+ZD-KtgR+,KԨd遥@M~?ԶzKmd"FY j%,GKm_j# AR;6V]x`G9Km?oKso,?S6XT=Xj~s W5쁥R+RXZR+V_R۵H]r6VagTOe},Q=KmԢk,R~<Զ&'ymإ'SC XjzRJh!Ksqz`t. ^',%Ksq2JRuz{`t..BO&n=T:GX*c5,KmzJ[)=T:DOR{`mWOuNzDON`t.MRT:` , Ksq6at.U׮X*l}at.^AK&zR=u ĥR\lJR郥ҹ;sf9,-k_JfLꁥҹ5,ŭ۬ Ksqv RC o\G6,NX]'RY$aKsZ RKsq[$#/vT:K ,w> T:ҹYKsq{K5`R\\.]{`t.ί?T:Wۯづ/L!,~zf`KTzV-˥~^vB虩n3Cy uR };R WR מ=D&]QXj.UGX*=JO1.]~`HzԾR[WfX*=ʣ`X*=eJO\R nづXK훥DOXk>Tz%[_z+rRoVwLXM^jz KNTzSo}zC} ',^.&]{℥ެg]ԛ?$ .Ws)ԛ~aGb|m7~\odR ',աyzӉZOXM' cRoX1Ϣ',56Y&/LX K)=a7S=Cԛ)+ԛ7ѓnťzRgKAONzRjTmSymYC KFڽ KFR鶑jATg7҄m F W䄥m#Z2atHDO\BO\ JtiR鶑KFӂIQ K',;j5܄޻_Є{TJ4jR鶑~LX*6ҫe1J|K;={*NW䄥m{HLԄvBId,n4;=5{R鶑o<{+TmKF&,nj턥m4J2l8RQ,jRln7vW{`tۨ&NX*6VJDzldl!FjkJ՗JSC',n+D K KѳPݨfR԰Tm|Y,̷&,n鴩Jt' ɊzTMTm|>԰TmdqRf9aj4LXSAdRy5턥݉ނԱRmRy^tAWCR',uKG,uzNeJ& {XX /u :MK΄XORԱ\j K˥i#,uRoq5qFaXو:`EQeG'SL,u\Ӎ KՎDOV]2X`X*u%RǸҸ~ RcL&MX*u5)לT=-j"RǘZLX*u5Rǘ.Jc &,:t*8T8RsT]TuיTurT˩k:S6kRc>ԱRuUzRcRXmIlRcl-zo :?CK&,:ڑI'as<,:\qRc, NX*u&zDOV-OjRclVOX*u͖3&,:4mRcLXy6R;LX*uq^vBkRcLwDOVC?~I'[ڄ݉jڥ!f0X*uk˄RXlgG{OX*u4xKRǘӎDOR/PRǘ K߾yacK5`1DtRc,X*u&,:=w^0NXy:߾gT%K/,!/uRR셥>iHl"o oGs^X]Mjㅥ>_j? R ㅥ>9.zN;!8>K.e e,a.xa;gaϮBR_E#/,h ,Z K}KmR 6>:sv6;=/:iؓK}.LGĥJ?^XwHv\jz K}p^X*w K%C<MXRꅥ!^./, 2u!y!B?TO]~)蹫gWO K%CZRoֽㅥ!N8adzإ .֮^X*) K}~T}nadR jT2n/, 4o;[ .2, +JxΊc^X*0 K%C&&/, 5_ku!MDO\jJx=aYXwH*JxF{/, m8ROmw=q KԠ_Xĥ^ڸⅥN\^X$/:K2R'y<,uR'S**ͬ:,u ,uR=e[dIԭ}/,ujRA)}aqu.=',uNV渼Ɋ/:SqR'{OłɊPR'+O=Y|:-7:SR-3?TOeMFya} Kb:qU^X*7{RJMqRɽɏ~JTroeTroLv$zR=up{SN3Tro5zaޔ4,bTroJ5 K%4?=q-۽EO:Q5sԹwHK%6xaޔ/,ܛ(xa,uNTjx/,ܛ&zR=JMf`TaTRaެݗ%v{-Rɽ_X*7n_I7jTroeJMZRɽiپa޴HRuJM:7K=l3KTroi4 JM vΝ:7sT! K%&aw=qdTroBRɽΝjTror :w^&Tro5P/,ܛpRɽ)ɞxX*7ŚTrojl/,ܛcѓӏDO\BX, ,ܛdp/,ܛVƷѿIp =%.Vs*S/Y3AVޮ+TmE`%o5kv5_7ukp\{-2VCiv\QNh CsTURoY_]&zF}`/.Us zRDϟ5zoa/.NMĥfG'.) ,ťjϣ/TOnz҉*vГt/{賓KeUC KeU߿ z: TV5J:lafX*',UK}] zCjz`j4mswgsԡ&,ݝTV5ڙ1kgTO]],,UCG!X*)^:ajR`ji7ʪFB2KߟTV5QUOX*EmD2U>X*EKeUbA$[#q "Y YX*:"]CNT3KeUDoaj>`jfX*I[|Aĥ&CTV56Dj,UU-A\#if};`^vwHv KU/k$X*X򰛀K],5Tm ގR ]>~A\ͫo/6\K.:S/tz[, ҹ,b_ {K:N[pcX\߂mxRߪ~/HcPKƃtuqV:ѓNTЍtv䍞tބ=獞;t'.uPIWѓ䗂TOѓq{*٥'+UUnzhIT+vITgsKmvsKz=闪-_={lzozFXM z_NR=Kt K]v zRCo@^(]'zR=5]'zEgtfzR㟺>=Kͧ_jS=zRRR=y}z|:ޡ=qO|ا􃞰ԙГ1yГ`o= _&كGCzdn؃˥^U=;ѓn7~fS%IStL\.,z.Z~L,DϽM^QoDOX&',v$zRǡM{L>q:3aH􄥆ODR K^ʋj/zR'.P\j~I'bEO\vAX'yg{'^\.t{ I'*mѳo\2Z۹ލ\.hޫj0;".|d_Ɠ~T${~LV'',u VtV\/)v ߂ wn!?׻ ҿO2rC}:)ݮ tRN;zR~u =qwτTOONXH\.6re& r&{Ku==z*KIDOtG/TO {z^-uBϽ '+h '+-ٟEOXOz3KR*pfj/ŒVÂI^jS~f_j{7ѓt8H,wF}4Ygd$VM ԬgFOXgN=7KU\z #1F8#1]A|> g$&#'ɖNz3SgAORRؓbFbV% j8UbFbN{S/##1sd=qMHe7=KMY8R*tHS R ``ͦdTO>` jgdN$&s~A$}D5lHF3,dTO=M߇}CO.gCOГԘ7zo 'ygɳfJaφDϽC.g =!i'+KAOV3XCOV'+=?]K .OXjd _z` K z K||RyKϠ`W?[.}d}@TnaNT%ّ ;0*>a<,5R >Y:a K 2Xj&{`4;=qRp14ㄥ^_=YIjo0`{鰇\8RГi,',5R[XjX.uK=/VNdv !5X=wMRa5vq5NXj_jw,5Pߺ3b;!_jH',5CjvK 6RS;t`ah'Ԧ+',5R{ hTBKc:t 儥E',5Bp}(RS>RrY z҉*,5Љ*vBI'a ,5RwX?K=&zR;[$/ᆥXIإ'yGгRKtRys祚]laMWNXj`w,5dUΚ԰\j `Ǭ:,5P=5K=lzR}RRo+K ҁXjh*6,5R9)Xj,UOXjȌ zj\j4&K 6RC K {,zROB'Gtƻ1^a7 -~nkR» Rw-pJm_eݯ$Mj/fؑ {gHƻ o7w\o-\OxƋo kKUͻ 2ލ_puƻ X zsw{O :Ϣ'.uލ"/Ֆy7~5ʦlx7~m(׷}DOv0x7~b ,;vBɊabR/Vwzu}wĥ6Uz^Ԭ/:ލ¥֡O<Ƌ_ލ¥& ]'zƽ> 5w\z&ԋ_ z҉Gvѓ27Z.;[L{o8ԋx3r^ʻ .6^XEW~ڟEOXS kgѓ ]'zTwލJ3Qލb賓#ѓNT~nTяK~ꍇ^yoR/j&XE'K׮,;KZ)M^kvBHƊRK kHk/ zRk׉d,_jVL`,g^_.XE^XE'*݈ D^TzO,{O) YSɂI„KSm^K=RRuK`Z=q.vXjĥZiFjVgXj$/ujJfFj_ v7=!XjR#.f-xFXuVԄ͂Ru*R#,xXj {KgAm$R#{O.=#6XjfaaNT? 'BKtfa530RŊ~XjdaKt w,5҉*<K`q6~R#yaˆ=,5RarڟEOjG5UГK,5RKۥjHFRs#ѓG:,5RXjĥZAF\jv$z)F.{`qTN4XjĥdA$/՟!Xj{XņFN=^|5/R#.U`Z}L`1m* K&{ R#.KF^F"`t =R#,UKH'(F~x=qHT<,_}R#,o,58 ^|R#.Ֆm,5X',5R=`Ը\j~=qѠ ,5R}R#yOXj$/uK KC݉XjP`qWY}R#,2,5R/sԈKf a:quR#5M,5bXj$/XjڒuFXj T,5RKe-s EV,tbe`cG^[ NLKl&ނQ 8_J&ɫW4;ipFQ<6 CpbU|:@JVCpbz*vލ jF+'&\;-˥..A_W'k@٥'+Cy!8_1 '5kTm# 8_V9/HۂIԴG!&;!$/0=ak& ׬i) 81Bp ;0탥C\7IKY_jՏSNL?wHU=aiU(/HqDϽC,zʞ!Xj¥dޢ'S탥&V/Mă|A:lR;dXv$z& RUXj_n 8_pѓԩ/K=&'.N$/Ф8NL 6ALvK=L[P`,5Ql8RyU.Xj¥V{ R.X&\ꭾ&VǫR.QuRS&c>Xj,`L,5mZt R,`)'z:\Dt pXj¥l=qv)`ir K՝!v+̆ p=qu'.$ фC 3 zLlXjCXj&/5j}K;/<,5^ ,5ož,5S=uvd$P|R3SPaR.dʏ]g#H[`Cqn<,5){`zKͻz9YZyR3+Ƈ.Xj;d̊;ڑyE '5E.Xjv^',5_%f_Լ\jR3,aKp~=?Ru)`T+ݸ`,5/^CԌK *AĥԼR3S {Xjޏ>`LTv KM.XjfſȆfjVJ\ԼҌ ګvu'+CkN/Xj^.f\j.C qW`F,5S=+!u0qR3,5iK;/UKKa9E ,5NTF\`TOe_j\ q-Cϝ,5ROM`iԌK  zRtifjoa/,5g:M$/ qM[]L^jS|R3SfjXj&/.XjjAĥ6rfVYXXjfR.Xjƥ?tR3ߋӞxXj.Sѓ}R3S\LW^̊0HKͬ>킥fXjW,5?5w'^-z :c,7m:{O ׬Yu/H'*13~A5u/ȷ4 Ղ 4u/S:\6Xgt"ܱokyu/VێJf >.3~A);7 yR=a#sk댱Rm:\DOX꣯+bXgY$/T:c,? ,²WdVp SkA!K-Gu3~AV;!ĥbAdLN$/tWQSXgt:ڣW_Xg 7=HlwYgj 댱P?郥Vu:c,_Ygcw6댱P=UԈ ,5 ',5hY _paAKE3~|u u/Hh7=Y?l|RK]Ϣ',COjK-?_K=ARMB^U2Xj,U",Rk9R {OeͦSK-hZqFָcVjG zjt|Rf~={KqOԊKѮ= ~sju",R}R+{ON=aDϴ]YXj].U] KZaziy^ֽC&zRXjť@RKDKd_ԚgZYrKfjXj,Uo#,R[BOV`aѓNT}bR+KbAU=,҉*iKtAR?K'ĥfrԊK6R+.FXj>î=TU`+Ժ箞ƣ'&xGXjzYZ*z'RrKZiVRGXjJ#,COԺwH5=aņ,/6=aY]ZY/-z/[ᾏj^-xpE?,ȆXp_EZC6\jȆt}] ۮE& ]ÛY YbBbcCI!p_p͚z yoFG6dB]*p_h2 .Vso_xNcſp_p,ZXb,Q=e% d}_S0Xjƿ?p_nzR_]! YrɆkFl/HW','N􄥎bT[" ƇsKvT]}' XsȆ1j&?=clmdR]G z#l/IWT->ɂIqڽEψnzX! | KmԤ{d}gD kWɆ8B6\lsdŖv޸-zm26RoCdF^:}vY_q _,T[[NKM&6,R&Xjå>DLFKmt /S,Q=$Xj6`-pM$c1l `6ʧ&Tv$1f%XjFu `=ԆK :`gT`~` z(^KƊ8Ϣ']&%Xj_jKmƿ '+`jzd6VC zR}6jHFb3,տi-Ik7aԦx KmUXjz:'Xj+f~a=~vd&ȊK˥~av ;u6ݺT`jll|j-5f .zh ٸaFQzje1l|A:ݨqf#ޑbو!& XYjBO`'K 5_p`wyogswۇtrJFZ4xo/j6oٸqK\_ zRRY!aK2NÞ!XKJ?BOj KDgЮٸw`w"J42,{O̰ԛԪzj3,]um9RoR˰ NX ?RoV Ku; KD&)RaD6R. 3,ƿ4;Hlּ:RoXjѶzH=RoRHeX]vg1}L`7#պ KqgX͊0=a7,YeO ',Ua7#vI^DO6RoFTta7.vѳ H0`M]:A̽RrVaj-43,u,ZFRm Ka@Kۥvd#l KzJ2,u7RGFʰKm2ac2R,u(ʰK-XmԙaazYXjЭ2,uMɰAb-,u/Ɋ2XV:`];gXꀥ2,uRmK KX,ԬU:藚~dXz՞:jgXꀥ-ʰԱRa#n=R`ꩩ):`Vaꩪ-R,:`}RRMS .R5CO:Qu{a+ͰԱYCdX56V`)ێ(R.o$X꠫$ K?Z=ɇMRԁK=:{hJIl Kt KذԁK [6%h:`#d K ^aaezJ'cXZGR[eK}lYXꀥ^ 3,u8ф~BKmrR:˰ԑVϢ'.4O K_.dXUє KXk:z;=M`ꩮ:V! Xz⯄;R;dG',<&',] ,uRqX /5RYy j._Y:]~hDj&T?_YS  ݄5VY#/Ʂ>&] `T(*eU_pf/W&R\zIW_TƋ{*`J?4] z^{GM,}bN '5]Wߩ,'CPG,FU>\TpglATA1vIԩI7TA:K}p?H=DeyTAV$/K}K* 2>oCIS},k|&5hTA*2* Սږ/ނ'_pϨˍT5> zRꢲ ,TO={6ࢲ RVYĥj ,lK}KSX jYR_M-ԇ Q= m[`yE? ,!/bw>bRR/].gz٥ ~JXÊXÊK}X񏺘V`K}SX]|XK}-K}j5 ,XKMP`.5 '5M ,a?>GM=-g4I>ԢRmRGXK6`Ԥ:qU9 ,uZu *Xi:aEe_]=uWMVy:DR',5ڍN\e:!5I^j0K'm-=',5N\j2tMU׬i ,uR-X꤫սKT{R'5BXko{X$/DKTOYP]Г闂n!^!ֹ:qR',Շ,uzOM$/z#XƿNjeP`3n#{؛XꄥZf`bDOj)c7#[oA/Թ\j폝zᆥNXi3,uR`sϟ<K-C,ԉK}S=a]Xꄥ^EK{)mQ`3mWc=aXꄥF9:N=qXdϢ'.u$`M%NXjv)v޸xXĥ>6`Lj ,uTK|/NP`א,u]K_*Ɋ X꤫c.:Y?l|R'5RKQXzʶ/ԉK !S~蹫^} K-KTR'+oDOV.w[:KKԹwHtK:lai K=cN:Q'R'yoEO:QYKX]_}Y٠/wwWd;ް%!&K4E7_pEG?Dpa~JqV-o ]l&9>~ ˎҍوoO .pԴi|g!raY42}zwFVevͩPs){oVk1wRk'~N?4 LE?FE#ulP=Ut jN=?7_p2[f '{O]RR nWg˻d+UH^jWdP˸\mO,%/u(X3y > K-G/HJ 2àd TkG/&z҉GoΕ pإ'5)o!Uf5N{a/,˕7]#ZJmN4'voJ }?Y)u.79ǤC;`C:ԇm&4uE^d7olk-N7e?{{+hwέ$n {:߳S`poa' 67zfAPomm|I덞mG煞ZKRoS1Es4~ zn`3؍{Ilo f"nKb艡-z1g;v%zjVW艡`@mXՁPiG:s*q܆Jg@m] znClshA܆J{pԁP*f UۇPa6TŮ=vos*mY܆JmꃞP}s*%hAmѓSJ}s*znCeO߃P|s~=6TY탞P=vsi׉PAOD~$!l!h[B!{k{N]kZRl8 r6T m۾Ne7~g/C}'R !P٧DO^z".Cs~ Dk`CחC_MYϩARQR!#A ͸R[,AaI(’Ql!8V-YChr!lb9wz(TiYZM@[~] r,:a rvR3[Ǵ% 6p&I+mN`qhc)lژ}AP}_6g9om̾ mV F )/>.1"A#E9MmN`OmN`Omk/l?6f6hncvV-N >ﵷ@?;揥"Mh{{=մJhcQN ޸lDjhcQNĬ&6f_p \K6f#Q m̾ )j;yD-9ru.Q=#ۑ=>T6f_v6f\A}I9HwG,{$ wG~( ܭwG-saGHsn(7lk$֜7E=Q?,=05 VPgE2FbP*1 d{I̦dpo"nբ["Yމ>hsvZA#˪n ­"he"ޜ%uΟ BHFm*B2.q`s|CHFbɸ^+v$z%1z2jĠp'#1hckѓ-z2fǴBv3T*z2-w5dIv$B$jZ\jҍK TcR.5v$#~R.նjԀKV*f~_=0QE4Xj]K ;q˦>~y7cs,5썮R.5\꥟ p֯4Xj`I,]DO\R.R`z2\\epyjXj^`ڛ?o۽'ڇYܛBϽ9{OlM=ђ 6KՕK K,5R/-Hm԰+pԀKl2\epM^\`z {G8,5R/c8S/N4 K ԫdK43=4'zA[A K $n ]|iԐH՚K Kqi{v%(ӕK ˥>azy=,,`aob-,5h%* .Rב K TUoԀK6xaj#5XjF]nԀK>"L!,5RmG6zR.5vBKK U}bR.5jd\jgY`mϽn:R.5\jvCA*ԀKMmlѳٟEO\jgEOl6i6詅` pf0XjF3ԀKîs[bT^Tkclwyud sNܺKqQ-,v &'#:Vl ^ĬYz1nta#1q^Ĭ z1mKVa#1$U#zvP&q?%ԪY#,َxgS-zRrKqo`Aĥdzun{]'.jnVF\jN7qվW`jvXjĥV-}ԈKaZoKJ\:,5R9 Xjmq՞xXj{kq޼Ը`סXjĥVԈKR:,5R}R#.ᆥF\m\aZaR#.F\jqUwƽ9}R#.iZF\5AXj̻5-zEF\jK:7~=unJOF\j3+nfZaЖ^ƯLKTka~R#.iFkF\jKv)Km6R#.e;S{uXjĥ6.F\jSWsoKmEHT'uoKmͽ φSȑͯ .iQ .iս .7i 6 ڪ]'jm ڔ-!.([B$\jN{KK7~oKf&8{k^aKEבzRzjK7ڣ&zRΖ .@[B$\jv)Y=w.=q]"%\[B$\jvHǖ-SWɖ-Sw6[B$O]"|ꚥwlĮOHl9""|P-![A;=i'Dk`Եf-![Χ;إ'#񶧏w#[Χ[Hl r>Z-瓵gKvker>ڣ-![Χ;ٟEOF⭯+Hl9n-xcKĖg z{,v)H!d$~s :ndѓx H@ްTzTO:E+TRr>,1mʖ_Po<,-ӭ_7,-翠]'1iG"#ʖ_P ,-ԱKeHʖ_PMX*[ΧKa2o-al9Ʒh3n{*TU`l9UlX*[Aaiot} E+ԭ*nXj[n7,-vBHs7ʖihߏʖiDHoX*[Χ&qC K͸ԡHf\Y#wߋbaCnXj5f?`:4ㆥ9q K͸Rԡk7,5onXjƥ?7,5RmA9p܋Vl`NE+M7,5Rq<,5R͚ԌKfa:R3.u K͸a~qcڑK7,5RǴ?Tkv|R3.9EI^\CT6L%X*y&k1tϝ$Z^pϝ$ę6R3Ms' $zNuNDO\u׹al晦.7ްT6LS˜nXj[G,<Ӵ2X*yifi&;!ĥd'Tg憥grKe345ㆥggKe34mguKe36mR;RF׺yR3MM{al晬 Ke3//X*yiHT6{:uqD9c3RhuF\Te_UtNX26.K:6KKeeo΢fRN݅R~uc\|n }ATl\e] Ƹԩifl\w'*=!ލjejظ,\6˾`Ϫ .YV ǻR`g7٢Z?ٸl%`F;1ڑK}݄Ah絷!v^6I_PFIJ־$%-$7o'#Ֆl\&)jظ,MBOF[Hd$ظ,Mgndd&)Y'*6.Kl%IKy:i{2Izy7MRW{2IJ:el$%۷$Wel\&)6Iɶf6I7qYbH;[d$6ndRГ %I>&;Jil86g9tsԝZDj ,mdk$f4NZ \-TIʇVqXj[TIIH^;؜ФKelR&)eR&)[+Ke|d Ke|d;2zTKe|TIʶ#؀MR>X*$CkN,mET9DO6>X*$C[hX*$ek65`e|Ke|6I5Ke/h7=ٜЭ ,m#&'][Klt}ր*J ,T Klt}hKUnR+mnGP P,,,Tŗwh1V6g9}Rkس>Rž5ϒZ,2K>۝*( Zi{}hՀV^VZi{m=,.O0`Bׂy} Xj].z`Y,Klt}U֋-!uKzkZ/F\au7ޢr_PHT3BO6g9umyRi@O]TS X* i35,ٺ| X* 5T3X=i{}jˀҀ>:`4ϧ԰T3ڟݩK<5,,Lvois<,2,W,&f6Zٜ~ZٜԥK =ukRkBO{RkBOrҀ>F7`4gBO6>Ri@y؀Ҁ>K{ AJl;g&"a4~ӂKjJl,_PG6,vsTA=!X* uT&cX* #Ҁ ذTAlTslzCҀ;RMX* 9z{;=]KKV\i+XjťKSW,ROM%Z R+.5ݥ K`4 Zq^tԊK .X: Xjťb{p$[_"5H*.ګu.5hcRu.u.5D;[Uq! KjlQ%oK -ylt]'٪Ԡ;\,h!5릆K ^ V2 _V3plgwN8zj ~A ~A<)YϢ'.ZDOMd{/Z_=5ՂuSå]w`{/ĥF K v`{DRIҹ;҂K .c{D/bR\myMt.ζ{&:Gӗw:l5ԠϮ^=qa׉T ػfj]K45K:t.loK55Ks^7ѹ8[ǭgvBfKAO\Y~lRj˦]KK]Kၥҹ8[{J탥ҹ8_ӎD2\ꥅ},_Po,ߟKsw&R/͉x`t.kdK[^atm]Flf`tS,n焥m:R鶑BO\jӥv |,o,=ζou|=-zR.Ͷo;D9.Z䄥\jI :p?v| ef:pMB*vBR]YLYCf 2m@7aZSRGت KԦ :pMy\j;-H[\j v Km1aZKԦY@:pfMX6-ԁKVg:pMW&,uRjNX6ٰԁKmق7~=qMs'',uR`4eRc-dKma1$bRcFnݶ=RcmRc^Ts* K1TKKm=qMS',:n;!ĥ63hc7Sٝn z `f*i^sf*KEJcnJD',:4'> ҳ'&,:4=rRc޼Ts3 K17]TsoX*uURǘ-Rǘ&iLX*ukڄRǘfLX*uV\:a1f/X*uvBKmR]>X*u馶Jwz`1Mmu2G*sAOmW0a1~gwJg&Rc/,:uKDR] zRYX*u;[ĥZ K1w{]Rc]+&,:l',:K1DO\jvBK톀`1n^mSwwIBO԰TsJc w',:ܻzRf .kӻ,ZiAkRNK~sA]w\jW7~۟_ .RΚK7ԮڵRcAR Rpwop}\jMhj.z<7,z.n-H}w\}z({w\ꭠoK-Y5z}wR[U&7;o'.a .K5Uop`Kժ .z] .օJxT2ij5|ad٢'..KoANĥZ7T7G?z6^X*2Jx76'RϷT2T2/, |yadfMX*VRϷ.ýT2߼/, |o =;!ĥ6RBO\|av&zRo /, M)A$åZJxF/, /, /K%C<`G".uM$åddԡ>/, <ԃT2oJxՎE !G?dԡ/, <߾T2PRCs^X*yh K%C<xad硦!gT24Jx6`d/, ZR',1K<,uRyaNXy=[k'yڑKĥ>GӴ_X*74JM~ JM~'Rɽɏa>nÎDO\3j+_X*7JM~ JM~l6{{n|7w GƧCcpDOsjwKϙH >c넥{JM/,ܛ`䩙/,ܛ<JMfy`iJMuK%&O`TroO/X*7y>v$zRlX*7yV;!ĥnG'.պTrolJM/,ܛl_X*7[Mn}wU/,ܛ^v)*zv{BX*7ߑg:3ݥ 6ݥʷ K#. '.*҈K}ĥ KeU#kyRYTajʪF9}TV5KeU-zY E[.~Aĥ]'zXA<`j|A;=wW܇#uwTKA5q`jeTV5>m7FGo|1?=KeU;~s7Fϩ3,U/h7= zN YeiU^NK΀*>&˥w#J8:;-VK-^:˥1\. oҒs/w#JWGߍ;A}:-9KvX]. obu/h˥hɹ\ԑi\BRK0{r%;F =>7z^iF =ލѳs{煞BϦ7FOVC#Bnzڄqy۟E =?olz&=#z$5vcj܍ӦSTzF9ai=^t#:vcuڑ\j=qzRSo@RN=qץh|yĥ^zR؍O~S~zE '.UM}A\.u}J=qW'.zĥ^,zR؃`Ãԫzvq,:=K pG)%K:>K mqݽQů^ŸԨܽqKW1.5I9ܽAC*ƥjy^$_^ŸtW1.5{Rө{RsǥSsǥ&)KXܽq LQ%K՞GܽqIsǥO%KM K]'zRSDO\jKMٮ=q)ӷ{RSֳݽw'*%%KM_=qIsǥjAĥjgԤA%KMUo%KMUo%K~R_pGf{gDO\jjvKtܽqIW,K,8.UM}Aĥ[Oh[/eǥ&E%KMKnRw/q\j?zdXDO\KMFb3댌Ē^ SqY uoϰ̺zpV$å&{]ս=zY iodԤ{gE2\jU".5۫".5+>+Riwp9P $å`p9M@2\j:+CX =qYvK:zRsQvKϬlK,zRsMvϢ'.5ۻ'.5>>=]):] qR.5ۻ pނ}o*}FRuR.Uێ}AR~;ԀK՞d\jnv4ǥf'Dq\jŴp^ԀKͷZR p^:ԀKnf\j` K lo$XjjO/lo{o쀞^詼詘℥\j(Xji7=KY K ԬL',5RˡR.vBK-K Ԣ\jpž:`ZԀK-IK Ԣ !',5RXjx=͍R.v+9\jcG'.fҲ!ڒ]';RXn.%쐂KmJ7&sǛgw6}n.U;=qMT;R {ǛRW '.uMĥjC7vM@O\jg;Rm6HĥTAO\jQw6{\jS7Ԧ/wvaxK UO;=qF]7Ԯ8&opڑKĥv ,¥vԼK-zRlXKJy7~gW :R/\jgѓ׆ ,¥v zKю[K x7~ zjf /,zRލ_=] zR?Ԯn<Խz `.kO^ԮV=R5ny pXKj,¥vuzRB2\j zRcgdԮlZY[L` R<'ڑK}]{_F\#}\eĥ>] RľTm5/#.vHy}qO#Dĥ>.eﳹF٣KޗG_ޗ=eĥjy}q^{_F\˪ޗT;!ĥ> r/#.ig(ԧBO\:ͦeĥj yۥ'.ѷ .=:kˈK}Hp}/R 4K}IAp^7Ϣ'.y:ͦ&''\6՚/[ĥ>>ĥ>j 8_p95.uܷwǥj &,5R.2Ap`1#&gmV/,5RwzR͚ԄKقK&zR԰ԄK] zRՄ|A/ p+ԔTa :Y$åN` :KMԙ􉇥&\¡ p3".u;p3ۑHv$R_ԄKZ*wR.u` = C:KMk$^ԄKxR.uKMioAXj¥NM$` :\ԄKrR.uk`S/Xj¥N]` :!ĥN{R.u6Nĥ>ĥ6`cf\,5R_e,5R_`ԌK}kf\ W.Xjƥ6UXjƥZo q~_ԌK}m'8ڟ ^Xjƥ6R3.q]ԌKW,5RK͸׆=,5R_ԌK}f悥f\kCqXjƥwR3.V1/Xjƥ w/XjƥZk q7XjƥmR3.Zc]ԌKqm'.5SK˥V,5R_`j.Xjƥ.xR3.q]ԌK[,5R_vԌK}zR_e,5RK͸#sV͍RrwXj^. ury]Լ\j=NRr\]Լ\KR^ ,5/ZԼ\j=&z.Z|RaK0^Լ\j=̥RrGK rK,XjNi8,5'ӦqXji$[ţXjp,5gԢ 3zc挞`9,Xj.XjiXjYuN挞f\`99)Xji8,5gvIO,5gԖQ,5R= z:K=5yႥ悞 K=5ゥ悞pRsAO-`yj}.Xj.詸悞Zj~Rrڃ KgDRiԼ\j=z.ZOq\jwgSw_.˥S#=|z{*t?Y.Ul'T 6I dNU4W TAUŽ{x@{RYzq\j=եƽ{8{OZ)zj>Xܻ_Hq~wsz6;=/LwKA =oSYg試u/ =Yg9Ba煞 wYg&0tW zj&_=5u/Y\u/ÂSTs+YgDXg詙3~A|73R zje7_p}K :| K-Ԡ 3~^ ,R_piXg`ԂK ^a fz`~+AٰԂKF{3K N=qKu/8BO\jHvol\jtK-Ԡ6R .5ԂK #,REXj]4ԂK \j(R .5;[$åZ+K-ԠbZpP0R .5tN$å]ԂK d=ՈFXjZK-ԠZpf0XjZ[K-Ԡ+ZpDO\j Zp?azDO\jZpm0R .5T\ZpA@\uo'.5 ZK.DXjťZCKTSaz*IV\SZqMoԊKtM'R+.Jvd!vRz#FXjť^6R+.z@FXjť^M",Rj'|y4V\-ˆ=,R/]!ԊKt R+.oKK",R/ZqYuXjť^TazKV\Ulj#,R/3ԊKtM'R+.ܬKf0Xjť=qԧZq1R+.Kh,R/ԊKzR/ԊK44R+.5V\eZqGXjťF}ԊKDO\j KcZqѬ,RԊKKԨm",RFXjťFmaj",RKh~Zq<,RcKAO\j4Kh_ԊKvZqш ,Rc;Tk2azFXjťF{R+.NFXjťFsưԊK&zReEXjťF{;R+.5OV\jeXjťFԊKY KϿm6V\jԥKX=q۟EO\jEKԨ ",RԊKM`'R+.3+" 2 zv '.5p_$pE6\nԬy5d}AԔråfq! E .5K^zd}ƑvZl/nzRcgTkG6Di'Ԭm6,RKmԬ pyڑHK-` ZlR.՚%Xjå-`LԆK-q` j,Rj&Xjåd pE?,RMԆK-6R.(AKԆK-6R.%XjåqIԆK} p30R.ؔ KmԢ9 pŦ7Xjåe pE5,Rd&Xjå]>NԆK-nzR-`6\jK-nҳR.'Xjǥl rFv\j%KԢH/R;.^v\jvd&*6R;.hwv\uKԎK-Λ`ZIRr&XjǥaZKr*K q^:ԎKn q[XjǥY qE9Xv\j=Ϣ'.Kb qDO\jy'.gZNĥVaZO;!ĥVMԎKf'aZ?R;.^DO\jզ qUW,,RV'XjǥVaZu KtXKɂK6R;.jIv\jgZ] zRk{j߂ԎK`Z'XjǥVFLԎKf qUs',RMԎKO*R;.6;=quvڠ#R;.qM@O\j5KjqUdv\jRKԪ1$XjǥVaj+,R.g$XjǥV qվaZR;.v\jU`j}',RKAO\jW,Ra=qBO\j3 KfqM,RvhJԎKmfaaje,Rfv\j3KfS*,RMưԎKmv\jՠKfqMKԎK qMgjj6KmIDMסf 2Fj6 f .PQof|R[QEH/*.&* *CUt݁/(SCFqd4]/7.i5_=Ro\jSOFqDO\j/j6 z>Km]'zRc'T]JDOoQ]15_pO =q]'VzRfS/z`7.JFq]g0j6ҳI\zd'Ԯ^/KD\zbw=q&)XKَDO\.f gۇԮ/NDO]ӡf Mڛu-j6 zlKq]3@/î=qֶ/nzR&5ƥv͎f kgns,ƥv0a7.kJ޸# =Ro\5̰_;[$åvzR KqM5zHKfXKƦzRoa7.zRN!K5]'Ro\5Ͱ{f(Ro\dXK[x2,ƥZ Kqͷj==3,ƥ'Ro\zk Kqw^zkrQ޸;ۑKρK(gXZ Kۼ&,uR=i\T R.t KԻ e:pֶ3R.6 K[53,uRmg\5ͰԁKk {4a:.KB\F̰ԁKR.՚fX]ͰԁK\ṵԁK.=qCfX ԁK]a:~R.u ,uRR Ka&,uRfdX`ԁKK|/sԁK:pCW3,uR`\?̰ԁKƉ:p0R.uzv\v:4-R.u\vKf`:^CK:pC\3,uR%K:p]eXZ[ K,uR]ȰԁK}t#R.1K˥6a(ʰԑK}R.1?K'M@O\c_:ԁK}4k$R.fX>ՎDO\cX>ahh\˰ԁK}47+R.':p.fX>ڂ:R.1 KgX=qϴBO\c+ԁK}N>6a(PΰԁKaj2,uRMwͰԁK6R.u*ͰԁK6aj2,uR.leXZ3 Kyo'.ujF\Ԏ!TIh$6 /*j,#ATI (ܥ J߬Q%MhQE3,/*N/*Feq~pF/FsT`.u͢8?ԩ /GeDO5hTj]ۨ,詔/N=qSgj* zv;!ĥnԩ/.HeDOM mԩ*?O/,8_= '.udLeq~pS'c*KYĥiAĥNMҠ .=_uRTNzRӂK}5/ RzRzR_}PYOz`.UEe\z r,KW_0DO\T) Vzoa.UxDeDO{uR\k/XK}ĥ QYSwR/wv>^ RfdW ,ZK}p~XK.|R[,R ,_`.v NHK}-{ R\KbM`.XK}R5ۡ)_I ج\>k$~gzR5?O<,eج^>k$~'؎,z:s/h=q.TXաXRr0 KUT΀*W`3&X b,uT:(.PE ,uTIgATvd'*nMURr-w#-=(D =SX/,u^Rw Kz*,y6/XӦTXL!,u^Yz:/Y:/TV`sԵb4SK˥DRiN :Kzoasvj'K˥~A:Km}RrK˥~A Թ\j; K˥6kW`s/h׉˥؟ER_i^Թ\DR{+ѳ[=zvMLi5,u&O/XLi5,uC;XLy۟EτtS`3K =@RgBONXogBOs:z>v3紳Eτ6>a3}RgFnK-$CO\jQV'zRY؉Ԣeku'.~K&/u'.ثc'.K0u',؇DO\5Щ=qŦ񉞸TK},MĥZc:ѓRcG'.:ԉzJy}j-iꋞԪ:EO\jժ'.|'.=qUj=qզ=q&=qnj.EO\uF/zRk?Ԫti,'.4~ATU/4~AT2ATQF/*ζDagʰ? o4~ATD<4~J;7Ip͚MXN\jSG/xDO\j'._GKti?k'Ԧti zR[DO\jl.;=qM] {KmErR[DO\jӑMrRХ H4~Ab4~A|j4~Aԏ64~AoA4ںYĥ6CtiRtiyۥ'.K.ĥ6]ʥKDN=qDO\j{Lĥi=qmuĥ6 KDO}ҥԦ tiY]tiK~o'.뛗._T=ĥigԮAtiKRK/6=ĥv~R6#Kc9q]dnIE2\jQV #U$åZ?V uU$åvG".zSdԞl U$åvip=ۥ .DHK6aT$åv9".ۄQԮi,'.2ykK6zRICO\jWzRBkK5OzRCkKN=q]wn =q}o'.՚en[CO\j&'.aTk\`m\R.6?K TM`zkyA\Y p&4Xj]R.քK Tk`z^\:oApw\&,=.Vx`8QRw{|?I&9p u8$(u-(tSt.5P,T.5Pj)\jY0K ::ΥJ-UK Z:(ul7\Z>/[Z2Y{eiS^/[rE$_˧۹\Inm2_K?m|\ӌvq\-_wyL=H haznxw'v; yZsZ#0s?/r; ->_>ϵݝ Js.2*OOuydZ9=_%mDn]Trc)a+z(wg9# ISK:؝[(nvϴ{]b:-֗jyk鋰4cBJm ۇz_j;cFs&:K$qboWI͛|,z"Ʌϒ:H,3ȑja(+ٿt:72r3﷛'Inj\T?O&-pC? 'd|>gY8KdJ+\>ZA]gftYw^44Dhy6 Gh%kq yB;&Qh(S=GLVbG)dFQ;Px-dy${9#(qL/7DY"& HL/*p$ r(?|Q"@ Џ/{u/*-Mb1_(dx6'Iĵ?Y[wO>ӷdoWrOϟWUL K^s!EE@AYSX֏[Dǩߜ pv罳F?~& K x81rO-i۽u֗?Tww_ݏZ_ڭvK^?7[;h:<7܀RIj-$mHQ}]dSby\H}(ĝpοXiݚh2/GCk=n,:)wRf Kaz)>;%Xycd2L"SZY}j!eFzA,c+6p.p8P[I2'$!VW$Jt h/k2N2Wid`eL:mXȱ!u4*㱠)z#:˦Hn+n+]Pеخ&|`=DvƲ{jpG1M\-ho kr('VF4}V :F%&>d >!ѝ&E!~99LӏɈ4.y$9E R>%M]oGDXb5(W0*tXb"B qV\Dԭ,d0ܯlU>tig5b cգt>ʳ>֖D1DJ6[ڢa}u+l&c +&|`u֕^oAv)*fDizŐR_ @؜/ơѩ*9iAɱ8 +:$dy2 -2&*'4E/!\Dq/[ UU" O$PD(vF%#HD$dLYxE@F*5f,^T Uc>10#@:5<£!֫va>E3)B4l0਩ %!r;;m}o8J"{khsyRfO>IȢ6pR#Ŗem,@yW9IB2>/H\upqX+pbmԕ,uCBiMM ] vEEXl!?.d^Z'cJnj1 Q8hy<BWS2JL'Tg1X|8vv|N#%# "+ Hoq`]rC|*uEN>Pg:~8 NG]WrCqAQуZ=Ug!Z&{B} u7 =@ bj4ZJ_knth8V>hպ:-F?;8r)^ w<N""Ժ#Ul"8[xU XϦF_ҳhV&*/$$1!`8LYy)6v-@Ղ ;Ȭ)PR@KZ/q2FgMcj$Rh4Q2j`*CaiH{ jY&RG'$+ɀ49/`8D|맒d܋?26n@U&ɐwUI]->‹ ntZ1}B)NwW*(e>}S2Rt˼ WqR~ ):vy!3yotj=(4QMEB1jk;rXт|CAr13. Q.Sj7QdͮGݔ0a6QX:gox*+ɂu>Wpl4ӴZ\73-Jy #J5^vah`1Str7/L}˝";.u=\6=:eRp'$R1nKA#ٶv$T@MRyh2]&1p(4!ac3|2CqCڪڽBjX/N= 7#qh5:3 SB(˭io7$~`g&tuA<1+l׈99S?0PFX@87HفEK&<ƁlvDŽ.I \ţDCbvLqF\\Sm.f7V\A9ߔƙ@_3Z5>_3:5DpyWp}wWllpmuXj\|3VufU=cUpjg 5@+B̀A|A|?|J s:@>WxV| +@| A|?X0i4k" D#ʛHaW0#!/ܥ>Mu^2y :=l3zz/$c(qu,1?c`,ڀ,^vNCF@GPgz<wG{vB';)4>dT3t$$zhPՆ`g`k7h{VgU z*T)1h{V p3pT]BA=A{g?=?# ԼK@K@K9x5 q| |z=a^3] & |.܀m8eX& ,Ku]x[pR B]a`0X4h$ 4JAט # 3\qe2W " |R'@@ka|ab@@D\| |tuȧ oR"U}fjN== .KFF FJY{e!R}ܧɸ'^DLD D/Ѝ_D DW*}P<0PE@@pf ff+g;0[iV Vn*v<Ӏ`s$VymKtmʠt@ZSc]IG&E.360:=CmKd %Wdmz=?+:0d(2%ŝLGk8;3LzdvVʼn5\"N܀\\x*xۃ=*W?j^)/(GJդJ~Tң{|zF5rϤ(^#`(^C@[%{Z 76,C@{CZ`7^kYHv 6!,KB`Iؖ7ׂX eY!-A`17,`KoX vc,^"xCQ ;+eNjӏhNGss#ʹӹlie[Wc+nW޾S` 2j,eAmyL 3wot  5 M`0P`ax%WO(q?J@Mo?XJ×Q0Sf,c/ [tC[nC~U8xKmq8G?~nÊ_#@w!8~ 5_Sfk|͞r4ӸȗlNgqƞmuhW6@^)Oū,#>KD 78Kr峫>|O?ng己UO}eJ{݈s~DGȷ˔uu/u}UL-okjMoxϩ.? :|E"Зtl|cy1cÛeC3;~Tzmv|U36;~W?9jc)K _hYy}UJJu+5~p/+?>ůۄQWEi~k^gƠn~|w{Dޔ䜷}םfe6a%qoV_l>KwMy.ջ7y|;5&?ͪU.ɢSk_gzpBOZ#"i@T㻥[G=A_K];/kΈxۿ7if1L`Bv$q((n\_ו?o; %ݥ_>vt8 ~-y˾4I" mP% xۍykIt_\?s>7l﷿DϵDR]e5m7fG[Lqs=Eiyƻ0+3̈1[m@)j'cjpEn77v-ݖe1~87 <7)X_&%ϵߘݭV|+?o>~gf-moy>o+"A_ct-?2MzLR /RK8_KgH~~_4gs/Rן|崿 c>gʌ[/H^a̴sk?Vz-ֳIs[Gn|+cqHܴ2[cލoYcވk%M)ՓwBRڦTko1{1$)//[~J#lla$R /뿿9r-lEI8{xz4ۯF?~P3ݱ1vu զoʼn(yОo3(1o"-oL$mnDg}$ޑnu溜O#h&:mw?^/,Wqơ7qnF[Iq(+tW_7Zn'f;Z# ٕ><YȮo4Y YNF{+s-IȮ<p K"Չ(5/3"=IU%yxo-\RDgR̅JG+oy:3hY-eɄh_liKDbK&_* QR/Ʉ(al)/thalidB0zYA*Ɩ*<u-uD}2)*[*eR2ʤeleB\Dإf'r3Op_r[v]O# mu)~ 7ui@rсc]Z?v|x>ۦ7#!??ۮHO}?>9ﶹu㓾6 O㓾'}aI㓾4r1r77ww-mǹ;L+mϹKNis@ҽOLswwn]f$=f$ft6ݝ$ >$_EStw~GtHww(ZV%w%B]L,Ge}څ zCjlk[oDtJ}MF_D2|`z5(Ä^KU3=xw7Şn<[h^uAɑ>o_ 'xC|d|bx7b(^oXŒWŒp%KCߡKF/0a, Kxd,XX26dTcm;lc0wǒa&p%kZޡKF;ֆͼhOM3e͗~z"7o&|÷o_ B|[LoT@^^0޾RmBo B|S0'ԧ@>> aOO}M}+#4)A>>ۄ @M}JO^D $MDhUhjU M{VNԪZZewU "*4 M'"EBSЪԪuhUhj?yq*4RW2mUDhUljUUha%ZA>Ŧ>W&yԧ ")6wЧ'áWu>bS6Чԧ!BbSJ#6i}M}")6L0|sSJ/ _<"{qqګ[SLV'nMD~)h԰LM @榆DasSѰa0Qh԰?xq4lnj M=族g֚xciꙵ8^iyXzfljNg_G- bo– +*%4}3J۰C6FZ>Рv%JmRBN~oFbΧР).zm0"`'!X`'AF,$j>/ $бcv^yak_ B~ya煭Zںe煭Vze煭R:0QN}ښ/>mM}Dԧ!Lik B>ya煽O "ioꓝ|^؛ BzeG-Ve"jojUڛZe-V%ЪUv^yaojUڛZOVM'"EVU{SסU{SɋU{S켰BjjZZ;DhUjj|^HM BRS~}JM}– ODSjOOv^y!5i}JM}")5 [>/>mOOC>> FRS켰';/lp4 [>/M}– Gg GS2Zut|u4u+[GdzɧaGS2v45> ;M GÎDaGSѰaya煣g3;/lp6 [>/M=– gS@3T6qv `~}No{4QgDh7n{F|B_&;b)٣rPk?O(Տ_FR] 7N] n4bTztJ]xgTzL7AZgztz_?9aP??;=v_ t|CǮ{sӀ:nNOw7u5o,4tw坆nޓŝnnriY&nwenn I)vh!EFO{z9g1h'e)hwHm!(:f6 !%>uԛFuFuśFu̖.u6uŏFuT6/twyɦWs 6jm^\Gg5T>߹j;/J;Qai;%zz GҡGZ.={rLp.Guy28bwyrx8.Gyy2 Dlf5Е2΅6O37O TwXߒdJ0.S.y20.C.y20Ls,/u;O,d|y`)e;O e{ b#Cv8a$cW 'dQՄOt}8R}:ƳquL>1uTw@*Ċ;aSO ˘zY/z^z:Zvz6pYRD&"a/Zk{rWh{jqVO(b,7`=9-a''K՘E-i.澰*wAd1'GQClc ⻉;cmNO{ӓlO{k*c"󇙩w=}c(sP =tR`,c#Ke*[xmc Koۨv yok8֮ mckwӸ/>X{3F͈qulc} ݣn W<2%`'} E(`%'u&`+[w -Ck{jSVݍ >`,{_c.{iVRoYpXRo[Yp`rmfY9z#bGo17 iDLY˖7wp]3vʦ;#FKQm=ߡڈY=5/bg]i=sA(bv.5uҞ=Q H| JUqp|krdR]QY4Y=,RGL) G}n@RlCRd)MݕqSj cSJso7ݣo7\*TJÇ SJlQJ73|׻h?WBqz*!a7ߍ=^PR"ka ߫=EJ]{-S!bpR%@J)J)v2&`3ST).h Rb+KVJsb^vP)MNvR?n'X)u?akWJ݃= K{[nAR4^=R^ مAyBs)u] مn; uWpta=@MzaN:ӣ^GfP{8 F&q`=ޖ0֫1ֱor]^6 |}膎p}a0:\oVࢣ_p=[c/ u@\*Hղ'0.zrt &8twޢIG0p*t\EvZqa?Oȳk3>93w @\ n|K9nJ}ZWiV>B [ZXZ;)l PG3wi u9–'z:ud:ad:qϚFЩ3T=QÆ]6SHfhC C뷏+kk:ڇa4y:NU2ڑa4d*Mf?uU(k:g8 +>tkd#}豵ѰEk:;[is:Hwi h>)_zԩ|E;l5EE*v6^36~Xl^leΩ ]5.n&;;kk ߹ӟIY@Vi>ܙO:Uhg#\%IuA;Gͷ~vwRabuHpQ;?;?!^{Qōlgͷn-5dghng\2g pgbp\j',\>J 16|[|m1;@5wDz@7N`_}La]}Da\Rc-#c[Ias|o;?;7۝G Œ@xgd᝟[d;?/L<>67hl'j'j;??U cW)CG†=U:`3&vYWi :V4d;dWѠ'ݹsGSeNt`0|OnAٓ#7~ۣ "l q0=42?z],3[ƈ?3!`qVƈjߘF೯+W΀ӈ|=CFӈ|a1nc L#īփi?a$O#0<4oKӾfiDϗAy4|iAiDlfn&dFvmBf(?ngL<޸LM!3UM!r^35jPU ,j] cm(b(j簈E>] 9} +7sCv1sXC7LKh򙴞6OG6!1LAC5mљt2m1o2I-4rEGWGk}2lڧ Cg~) ,{ruU'WWDd苹 /6ny=:k~} ۆ/ bzrmh2CQ(Q2QL_M1v c,L_ {h@]$LoO,4,hG.zF>2g+hb GqQ-`Ç XAX80pUӁI+ *_7>yv")ɤl`lc@9v$ʛj` sgf^kh 3}XB;F_4jh2SEI3}#0]/kGL^iX\%M`MYih&pw\&wCs0;iPn?ޙ =WMECϓUF/JᰂӈjqBCª+4}ߌly4 p/Kgh#%P3s/J>hٱȪʁ ՋI3qwcn+M ^Ksu{.Zc6;5+ӗ=25W;c0T3SYOr9cW|9P1Tnq9c-$gudۋ,HNEؕ .̤=_.q 9cwEC~sY+'Hi7mx9{z4r 8cosC>gAү;4g/1"3p:@tp\vθR3mYbp1\h p'ρ=ʉ`n_Ik z@z{@ Cؓ{._@7c_fL<_{[1vL'k+N EWpKp= K9`~}w8cd9 fdcGp.e9^l`狡sƶ{qTzIs էG3Nsg+Z3ܹn.4wyvU&n^s1TMOhAVzsך„S1lCYv0ۅK5f0S; )3S 3s.yǚQ gjG GQ(paqiX> U 7GU gj8&pz6zys 3" . ?SSLg|gj KQ+җeV)N.la(q BoYL8hj åTh fZ<>r"<Ԯ^>z` _ ny` g_ d{Сbm7T3o+B4ϽSl;7+Vy}-DMlRhj+M3cV>hjbE[:N b4B2im@FSxvqToEs/@{0}L8$ڹwbHGStw*q b( 4~^ 印)/4C.$M`ÒAv ,!HSX<(=1"48/9p##_Zz# b'fhJ^5Бk҅T xm GQW#zQdڀy^lyߍ􄴷 X>r]:=z\^\sPd/K@F)V3rئA\חy x#_lF]`6kѢ}x"ݝ/rtQM2VnV8@v_a(B*rlfiD^m< u \^<Ȑu  v=|3fo(qvpt:0\wLV6p;/zIZ|]+|_=/Nú|/?LamVd27+le|;VfɷZe|;@xڵbV.KS|;AnJH~VJ鵯SNTӇ*  +i$p+߆\E=|+f@| p|\=YCB@ZBp-C,tz9r ꍾ(P 2v\FmzľQoُ:me Q72NBcQpmn*\PXqi3DНK`eU_PYe,tZ \:o8X9 7 0,NV /Qx5b;^*YNZ@bzgd-~^Yj(V?ck) m](le@)P|Oy[[|ޫs\ \| Y= \)l1'#du}Fn>%7I`[دSD;W(]lMt4 . LeB7l(v(E., ]lsd2#`t髹rڵL('c*ԏ檂vCf iKf sqib'$(&9."vY􇑢킊LZiPmT(Ŷ#v1\:by.%mb(Ŷv1dlZ" [l7ƹ.Ek e`F ؆2mvW6Դb().sYIcg+hP&?,=׋|.(Yl{CRN vP8,s/k;\oZ 6ዩLnM~1kn'b`+E[s43TlF0QL_qw?:T-C`XsJ&/Sz5Cr$&f5ь>>"}D)e@6Q8Rv*nR8<`3Lp4})\aZ0R,}dɤT` 팧y1QGvZ$3oqGL_in-er@MsfL_D 4^>d6@Js; \HsQNF m#s^r!#8܎ɦ`Gskj4<:20P߾b ;UeAF x}їY׬8,=}}Yf S)5Kf,=^fКU Vq1n`7j[Ci 652t<[q }$(g빲^lmXF_}6u:)_@u6<*zl]șrl\pzr .`;[| F3.;[ȓ|Lgy?jGgzXgkIj 0vQ&{h3b !~ sjN/"p]uBd+ s:lm8b(;\ ,lx:N>_(}ύ8n_(~(E{zPh_@msrKtPf4쏎MrTpv3}YEp}/ЛSxn*=[}Zng]R/XaCY ꬀k7?S$`j*Gf**|3*3}' Eqv捾v}hz879ԒSv@󙙪:yz>nr}?gb:o:{ sv'LZk:p/9{#*}*PMr1T3I\ eʰc]o+ h/2р:{_-b10go{יi-_esvP,govƀ;Lz{}^c ;.jnQTHgog%~ֻWŀA,}aUA˩.+ޮ/^vu3Xvv F@Y) ҋDg_{©bpi qLM K35+n͒䢤E^/v+ޮ<> 3HgoCmYR&Xgo G5pyi"*>U "X8g`s1R2֓AstDgo'@Yk~v{V}b\`cht!qL_VPn+;,ay2I"2 zg:A'2i'N깛/+Ojg "~ BړmI=`+Ѿ/A贊3rL87j`Rҏ 贗Ll8GxtstReΊ Ll;G+Ufʊ;On@=GUfn9l]}vXt=uti9ڮR&Լ5߹*mB靫R ] v窴%u.vCG5s :]*.79 ::}/"w@Ӎ7FMuz^orXT#Vh_u* t؊ނ!H\vН.b\Z;gW1\FnVuv`nM^:pԝV%ĸq:-0`Ng;.l4>mVn3 uYaovvn ,\I nRg_ jJ/0uv.nxO7]c&8ɢn6:۱, 4 l=WojucHPru~0Cpu~\puSЫBtٮTi/FQ9~eVƯl\oӳqw':\7G$$0Չ|3I ձ|3ktz7L?''73SC,dx?5$EG=k˕haROVb`ԓ;77YfxsaH=xs%/#@EXQ9}wȋ9l z`ejVʁ̬\_i$9,5&Pao.42sZP7D9Y2srdf&  tC5a}5Pֿ9^IQ3S5m01%&$exԿf#ӗ;>ӗ7`/zS7|QvN3 eKqf%vބþ o7o7o.烾߾>+o4Qv-f Pf 3^"3N_ &332}$NE 2c7_} yZPMw#_>C^.k/:9x;G,mw>Vs ~T3vNJL3v=3Nܓb7~-~R'`sxM`1H1%Z&dZ&psQ- 0f8?5Ōo>_bƎ㨵lw)1oFR}Cy z3v:'9o/}eAYa}{C']ɋ^v9ߍo"@YKeu~tlǠ$/ק*;:&ͽ_r$w.Խ?Q2v&It8;^jFx؉U2vUud68/ݸ/s;[B@ZNxᶂ^@[7y^F^2vzjZMnN-c'*Q/Q`-cnAȫyE+T@^@Xvf~ja;gqFο xZ!Z0L׷ocQ'ps7mH/q[roE{(ȋ &ϩ.U=\'Y73]*w5vӥspdW:E~<PWv;O[Z3<)T)vy@N(U$uj$rL6xL7ÊmWp*{K7 y5`SY${t)i&{skr69@ܧųNP+׾畩(k})HtƫoL_tLcN?hw \FU ڭo* ^MUS˷%]ER>xgUlM=@|;vPfPڝ@0)wʬ>|;/ߖg(߮E (oofP}9tWO@(.߃(v(+:A|;43\Fu86 /]?A|`N]/;|;PF M]/8A|;hK E{> ztt*6\RyCQGf=mͅ@vyjva+?鮅 Ju56"S`&@Ljp\z:BSc᨜x)<>Lj,vsy2'Rh2vRdФF. IZ*J0z A =C7 )$dQh롬W!`F2C І2}oAk}Y}B51bSg M`)Bz1L}se/:vUkQhxFe*u1 BJ( Nݞ2MWG'OP꒝(/2aE>}1% =tG9Dip( =t.=:B23Z PzՏRt uW:B;W8Bg NÊ~԰ X/BLz|~k8u* (Ӱ/ E}pM@Q!8'Qh@m ],.RpC [Phy_ `t}Pf#7@E(1APp1S[OCz^ROu=B;u+3UBP/ 6.RO0k8 zxY '@Ph7h =v z~$( G5B;WpT-Pd0(#XPhe'{vZE&-@U{EUd@W{BUd@Y۹C'ΔD<!*{2v* ߌtK}Itj0[-QSN{*0?hZ'}oʾ3`wl|"c^O읂 6 # {5=w*Ȟ G鉽f9{{jyb.}` Ec94ɑIomҰqMV˴ za d6XC/M6:l`;vdDLrɀEΩ];|bkʯ(ǓTɂ]^~`'Km F/m pfy%Voc:sωuv;M֏^u @N?:XmwXu:Mjt>M5\:`mw37ܸ`m;WQup][Y//7=]ߍGLkVpkVGlk{sLT ʵxݘgu|N7ymo`k'-+bN57mơ55mo.Z1'6ǣZƌa[?+$3}kuBIojpf?.rB3W uNe(G]3 ,?.s5@buso.s DCnZa;7au}X kT`i[}toFau JG߫Vtc셣$9pTkU:9AhD9}9jḦ,v#ϺV:>Ϸzv, K u`IGho⶝RM:- ~3 G ]T8L$¤q0N- e&@vq1nPE:ڎaS&h;{K P R-)Jg޿0Q:QrCФ"Wԕhζ[*mT)V:5O0.ѯyHζ{}cY kjr0v1vfbi/ڦζ/^XBuᨦ ipt,}q(S/qMv C6ॳ:z.ξ\p컽5N뀗vR|컱5vuYa1%Z:٭Xہ0(5F q-', ]Vjt>3wڥM3WU! LI6V;a+ C5G*`4U6F),L`QΘݰv|U3q| G5FƧp\3谌vzNPF5ㅫ̻DaXG>3ﰏ;YwHEX;,qU,e6ҮX,:]!] TڞhqG̥VlDb/mh, LJC7+ڨBf1_6Porӝ}&U,EQ MJ_>m1\) n_2IE UJ_mԺ,Xs`4Ɗ(Jih_,F;Cկ:aHRcafop?C ]U8)NQ[iS C5XJ;zY/0[QW XIayjvX1*{a@Yfự6s:;ZX(f(:06|S8,}3Z(:TH0.ia(:0=gKuhgfgC},i ]+ _.1 k RJc]N*l,4cIchkLB}J[~}H۠J(4˸ G=2of cϽIc,TVpmd9ऱ(|F~!#" !j-%판Ґ4B*KEPX)@Ic;F Ic4ߋ4+x.?!.7 -"mXؾyb)i0ioH5@ƽYq,E`Jc4 J%XXivUQq}UX`D}UXXA}UY۩:K%*,14'}W&)ԂPQ4Z G` JSoa( p42#Mm㢭giz4K F[eLm?Kㅣf pTӸ֗X=VMGs=vMN9FJ]N8 V86Tijg_<6'M V2WFP$߮$v@2CP$A2} $.DWhXFdV ɷ2}4$߮הO˄v44v~&Mf.jΰ7t1Tќ?6Юo*c*Lv }}>E]Le|1"(ogBm >B}ΤJsqmb(*4Su3U1` .HC>u B"ؐo'_ռa P F#|Pf #hm4e2g`A d"|p ߮E?]I/v=|&/ !&6rp mO;X80]`ÇTф G ~_LB,\%8:j@_ \&-S1vp ڙe%'YQ̀>XgcԶoEOA}s?.UA}B>/WEQ]g.j:'/u|BۭFA۩a ڍ2mO8:ҬHgP:'+/K@<# e0Z] ='G;a,u?*q =V?vT-6Io_n ! }?Ph'D1v~E_ ;hGYxm! LZ0'/"NxsY*\{ 퐝7JV;@|k٠}6&ʮRg^  *|o ?,@k\0݄~[0݄6tZ8pB 3Nh2bm4j{^x݅v=GfĞ[]ob ߌ4Bݾw'oĞZf*`DYo"gȀob9g.`Yu&^dzmb3Mupbm b(3x+.K 8a'9@nb=z~q(69wо)*&|6qXB h}hWG^ rPCQ=+fs ڙsb%e$'<:g~ˉ=߽ΘsbgN\vuPaʈ{ɷM'N7qbMA;s0Wك%t6jSG%wZoGiwP5ljKw}%ɼ׏>4vN`? A'MoEׇNq=}7,y`)6~xfy_DOawt˯ƿセ!"Os17g[szMڿmYthWs[=EոsL۸ܼ0 2W30q?)u"1__J俜7gUqgCm?w!f2kqgF1f~(3K\yAMety̟q9sgvʸ3_]n3sq~<͟I63ո'm=Qg,N͟ľ6g1}&V>N|͟qÛ3Pz7N0L|!IEƿC@j|qO31$f.ӗ~TϜCeZ,~ϱԶʺdNnyv.gQֱewg[gt3>Oeg3AYOg]7cbx]v ?E?sʺ Q|fP?\D2(?!w?͟y~zvgBu,3qL"iLtėu2pJ3f>t֟5ψ?42 <cߵ yZ} n/{ں,W.gy >ο?zmuğYt6oGWwgcd=~? .̟ !*3%gbFY7҈>K+$̟&g}LN̫yO#o]W燌?_ds'c2;ϓ3>Jo䒔ޣo>ϻk3XuQdLze]J/q?$.g f{|oW3^dL$<9.9_M3Y!a烏I'?3~?2qr3f'|HZ\DE3ASe:n*qd}ո鿓sP"9%Y+Ǜ|̟wg>a:ndT6'L5̛?7K$'xTτ=sfJ YW_my$4?7)Bd~g6%/"<䜕bw7&Mg&M^sg$~i"޴91?3&g]dU͟qǤ{]3_D]7̟N23$ysAiFo x1r>u8wo:^wY%}?#كIx7^CěM /z>?όIeMM$ s>xzggCyJ#ϼ͟ rD>ANi'̘D3ǞD'r?vƺd|֓ϱ簞?3◞ě4o4fe9͟g;͟n/C{'񦇜Ou_;rN?~?hi̲:LR=1fQ&S:7xS>3qUzǸ>C33қr9s̪1^y!e=ɟ] :~3*3W'U'9#>qE?⷟x͇9͟w3O}Sz[SIp`LH>;#g+ğ9tğIoiLX͟ ąOUp?,gϜC|^|f}yS|I#e<3?C]n5nr'MGW@):?2nvDZBeDS{=9ydp|0}q9oΗK@̸ό˼_c?O>Y{͟yN ̦$4n|^xrW'?YDŽqkvSgE&=ɟ 3,rM2/3ˬ1/o3eu7Is{i||L*gMQxO=7AO^4/&d3-Ǜ2/WI|`xy'CŸ̋3>"7g|g2F t쿋Kl>/$39?so:u&3O];g_3Qa^+=w9w2ow9nx>/Wq7(~uqg7|ɺ1F}Ow'7&YgYo))'Rggz{g{szy9nd9&so3>#>>*gA>9̮rIQf"8?!z>#ywqgVYOo5ȼ.g;d=!4`sWzϸ:8Cg^xӸOSθ bG_?ft_y3^?3?#m_|8A=4&J]|s?|$&}|{|9nx,~MNc^Of^oqy\d}Y.IƳÉ,O)㶟>?d\g$=͟t'3:/ rz߻b_")烉gYOG*Ϝ?C̋CyqICe=d?N/Ix=I_1|`9x49.E}{gWgğs_g]Ǒ_p|f鿴TɼgF)3 8Wٟm$fWgƉ>dF13N!k;ч?f /9/3kUMMQ7MIx߈Ug#}"j_1Rp#}_1]z_!ܑWGM{Y&qO='(~˄?3 N2?sz}'~Szk7y_M3۽_ȟ9Ď&x!.>&d<9z2f&M ;7}gϟg&h7yGriwm=wIoIP!ޔ k~U>3gyS'~DC)xI?YCZ͋g&9Nτ}>#qo:|U|/3^)k?DgfYW'#(OGO>χ7I綉>}!۬Ǡo)=WN7r>73 ěF'9;Mʇ3YyOo0s|l. 379h"4 .=o''$DiDIZЯy=ك.IOXS)ǽמWgY[Mn%@[yq[{}s9Iނ#t~7I7z2ȟ tĨoe!FΏzm7|Y#r)r6f>\_V<ғ.w8xGuۑ?qj>Iނ#ޤ Gi&q J?{q'7+굏E=Ǜu:y_ȟru9F #fx#f?7wp|2{Wo:gܑs̰ =xc=9YE3Q=,t$C)3>}|"g~/O[ꛜ?3A^އzm/HBO|`?3o;򁧨Qğ%q}3|=3gErp,???gN?LZWgE1Kzs8O:I3=ljwȟzop^5N}kG9/{{stdkɸ3{s|`7No?e?3K?f {Yp%g>k~H_!^}[ϣ-M;sŸǟ9Wg.A%_ț?=3{Qe~͟7ϬaSz[C@f|߁; :ٟ|cqU3gsQݬ㶟&9G|߁WK~N=?$>V,Ϝ>S=<rA-z0f >zaOg~&KExӰ>6}eICkwYI xMbwtʹ ?\WD[L}?Pl,W0fN_ěN(q@d'`r]x=M#0q'']̟Y޷8/*q?X|](@/>R|!8!7I!,Y@({0&r~ u^{OJox®/rs_x&Moy$KhAa!R>3NqzGqM$ryg9N?+9FgV"3{i< βFOO#1ӓzHC)~zI/"$}31m?_m=Q?'r 0?s>Q|`Cg/<x?8gğ?6$8jL zy]OgF3Z͟NCscCH>ܓ#gU߇1ۏ3Hs{xu=':+=m9% R}Pyfg"P9ϫ~ooěw79="O3w79Coǘ8r%?'o:giQz[F7?9]&/ěffU~w٤^l%g& N;s߁}S=&gM3y[gcsI><=9gVQɟ~S_0Q}eƟ9%^ 8$y9@eS{j3;?$>m.*NI|&>#~L`ɟߘgosrgM͘Li~'o=!:N~Mp̟~!qƅ/qޅê&O'%:NN) 3aQz]/3.τM['6o/kQ|Fq…YP )qfXт?Ht9?Y?#ۂ?~¸!3/oL|Y]ȟv}OMMW  79㶟FꛢnoR"f|i8r>ȇmYX+~&}|yq8J\o1fI_lX̟ znZoҾKww/S5|f}dY^c̡vG̴?HsQxoK,}gƗq;OM'7.$g[o͟ î7?3?>'׷>? 3-oZgS%?s!t]o $u &/|feu> &򁏤?ԯ^{T굽7R粂$ѷ5Hߪ5n?t+7y+Yɟ ^Z'~?3?dXgEߓ~~OS9p>s:|Hy3Q kIVM+cߥL+gWM'4~Wߴ=T2~TněWY'WՎV7 oŮW]Q/8rZɟ/笕8?>WY^i?I >#q?MYg6+Qfsi}^[W7'M/MFCFg[o4O~5fEo}[S?+̤H>$~?3W3&WH_5'29X.WC+៨|gį^3>#++r[7ͺoi+MIf|T"?:n!}63s?[\zß㶞ҳK–g$εeFp fnßIE7όԱnتl=_G}W?a3| 6g)yM/Q͑)FiiaѾ0JO̮CfKٸ_{tisCxKȟQ|~}O%n3ɽ6q[6sLM!{"ɯبޜʓz9lkr>݈7)μ!*+F-p>&?N7F>o!E3s<\?;pß~ F/g&oړ'1%_bßu_ß{󒇳QVǟf;,;LtgsO칟##xk[vOs=긭')qw,;?ljI\{'޴K~Ÿ g۝xS؉739X|`^vOɎ?s&Ϭ:/>?nǟ'7oR?g6 Jˎ?sF}k{3wI|FF3> pk?d݉7Mܯ=[7ěNY>slF7޿3izSp=3oܽ3r͟qrs;$q|fN]ڧkVg?U{9^ߓ<ڏQǩ^{sn;Tos}{$^L}CvQ}3zON9q'ޤxў_{a~m/ȟd?Ml.짋gFiqFٗSs"XM&꛶Q 8L?;,XcA\|Eɇ\uzIQ>|<鷜gvLk R&Iě 8]'㑸RRR_ ƍ|r x/h?>>&\ߴsLǗ琿!@rCF'@'gE"fzdL%>|`7(y)3rK>׫wdKrR} "ueM/c&V٤9=/ |f?$qINHs= |FJ|Y}|%g˫>P>sò3A?qO{3Ztf1)x&SId]:7iÑ;Xu3{7k1~J짓>>gև>~_8|P}ϸSp#Ǜ$0>x\/㜏N^Xz v>{i C.}#wPsɺzROqh|F)A`vh _vMٟ9=gޢ~|CĵM%ě~zAI:־FښsP D}Ow?Y'Iγz>vW9ޒy ޤϜok^gN}>/E}٢'w1_gGRY9JOCc>8xR/s9OoO굽社iۙs Q|T|?4s?$o$f\A񂫜WO&w8KYNQQO/Ns(O}>xRyόr.8gU@>*gO'|rCNaq/u'{?3>d=?gvOv仞3Ǭc̱sl=||!~iL}Oo :nyόROw(yR=:ni8;=%$XO*-қQmU>ě:駧'7i|m*OOwe=}r:g^&I|4f_B^e}A_^[lOoJʁ~'3Rwprݝ3g >39r^;_;9>ɟy#grr|{Y~3[qqgR!>r׫y҇/>#|ǯ㖏'iÃǮJ8~s|Qm=縭a{7}N?E>{q[O/x9NQ-H|s?>MRd{&7{<%<\ǖStLkQxswOm27 zx9?#'㶞H?縭'9v>6?3$@L9Cx=7C~x#<.2/Qo/;3~]?/q8H*y|H K L3ө'C*q{s!π?3A\q }ǠKC!~.~<ׇ'3iO|ߔzUY(!Xοa X=9R|Fa xr߆OOֽ|FF?T>;,t7'g$rE?gy~_?[_8^l:/3!ǟegҨӓ{䣊??bG3xy=-!@3˸?H9no>E/J~:WLzEg or:/3n!@>M'gYޓz=?9|1Ϥ㆏*ȓ~zrs|~/ W?Xtݦ^{&M>|A9>^^z}A;r[r?/V|MsM9nU?>1P=s|dd|bew4ě=o9n>yyWc?#H>HcR9~}8)鳓}a$$4~:Ns}aE}YFgv9^[3I=͟<}<wy!F^~O~/gYOF◎w͟I'MGod{"7g H>V}OCߥCp/sǟ㶟nیLIYE=7~1Rߴ 6f&sG}:i/u%ai}d̡'!r+y~[꛼Fg>!om>1L"ɛ #t?>3Rui\n)9n$fwt$f?Ny>3 "Oo'>OoD>_g>˫{͟uc?r @p&~J}Si"&p㶟:9L<uŸ9yqѷSEKT/y:?:L8??|*{MSzw7wŸ9T7͂/M,wMOgyOi㟫6oўԫnӋL3cLsJq?[wMݮk9>wEO2>#DIoH|j"En983R7˽qOC@?*C |f= |&|g6]g]RHDߞo8:7(MSg6]O"Os7>B>psL~ufu&Л]7„?#uaŸ?gC7&sqou|fM;u?gʇ|xg7ϤS x:gs#FOvϸCG?,$O%Áhƙ? ȋ9Mfx~z>gF/E(^{rő<K!ß$/xz|*~|fx'{ҟSa>K܁H縭'z^v7I}s֓I|Dlϧoԗ }<9MrMpτE䞣7MO:M'i|f量iڑ?F@˨ϡ^[mf}gCGprG>sl#8븏R㌎|a'XRG>p~zE,xQ?g3Ӭ3QFk~zr_sCs^Şxz~>#}OƏJoc5}yqO}L/c琏'y2x8S/2.?ٟ99Nγ>o")簞)Q ;_~w~q{|3ħ|}}ggtQ>tUjy?[y~縭E?M߇~.뿾ą3"'xKg_u>'|Ӝ'ݑ|_V?Ǔ|<}"!~zOo寧{?s 3/3&ͻ9ޤFrЯ@~z} 'xU9Ϭʇ%[0sgG$~ 37'ɟI?ZgYwH7Ɲޚ?sj}?k s?=^[Cgď 3rs~>r^#o!߯-@"̟y>Gm?%^7N)y8(I|.f}O3Ozyω\!dF!k:r|(t tF}>z)q%%1?Wx]Y>x?w|VY|f9e^@&Oc?_v'GsAp'yszKg7| |/otʼp ~HA^zN @ m{ZouxGǟ_MgiEo5 zm GŁ\-8OIϿC;???d:Sڋ>}^E+_~zBM17IMydžoZŎ"Y$oI]ooz@}0?^ O!OO'?Ŗd|DnS_ 9|ke<'?pe}^N }?6ffUz6]$^?#yhz o}>JbiUzH<=H8/DNe)Gğy!j?mR'bב&'dtYEn797=7~'sl?=dߌٟ3fF "3#3kPz]߇|>9._H>p萿<13F;8$)F+?/H>(ɑ|`Fo{rn9x!QΧF9cR0G},ߐ^%4lRo?#ujxӨ]?gsic~[之RP=&od79ω3^IY|fޔzm331k?#fP'>:o>A'cv_گ}DߙIFfgTgg3sΟ?p>MOgf?7I_8NIpEP3g4/kM=Sߤ39S$ɟ똼 3ܻ7}v779o/cy7<7>kg_<AƑ33Oci}IfG>fG%YgfNcx&8L?m,"g;XWg_3&űgMnPzԫy^<'97 g;s$y[g>0xӬy=ug'%ρ'B}ofo|GwM} q[/&s?=S}O9_ěL?A/s7?#y}3L\e&4J]s}'gf'8gVo >3oeY%Ϭr~\g3.3YW!8z|&>7]짂?/yyM^A Mi |/"B)e~qXod?Zow$"g꛶MǩoB̟Q|~r?-rYȟ>qy9-3NS |F,c_̟I>)|F򁧗7+[So,w|xieikڒ(WY|"뵓ӟyO%^N}7Yg&/gG|ěOjq!ޤ&I3KzU7WMěa&u7}>n%2_3/z.sVό⏭gzSV|H\f&K\/~j2KJW9nW|rşIϹ3|wH_+Mrs)VoԗIJ_Vgꏧ?WgF98]ȟIrZ=M!rI}^q皏o3j%8|`CVWg) >3>398dS/,+!y+E!ds䷬h׊?3h~?3O}9xy]Y~gKm_؊?:?\$yk}"|Il3[7I-ﻌuqL2Nw?#y[Ο8F)|<7rٸ_{Wq*FC |F )s[e~n̟YQq㾃aq'GIQ |f~H{ßѾ4>eFǓu`#x<^8i'}Tr7ϠCĝ7g~Jztx㶟j-$?#qg|`MKrC6Enߔ3ZyI>)F{m=؈7mg2˽9Vvk .qx^8>}n=,3+??ϱrM_ױF\h'}>߷\$qM7A7l9tsr%Ygg]-<_;sި^ C69R'>3H~n޻3N)xמEȹrG,ٟyI/3K?sM~7I^[gg?<'G:x'\|Ep7=NǤKO~<͟$,џϨ? ޾?mxg/2 N̂YTn^=7JO>3axϜ>zm{ss> ~o%?d'ޤy$t~͟Az=ǟ}a9踭?!:TpxSdgΞ$/h'8HŞoog&(3Q<9F?s'ث||fe{O>$7f87gku'X{sٞ]bfGvIpft^[Wcg{ݔ 4Jk/yOٟ;M1(=/Ṃo&MnD?8u"޴y`G%gg&g~D}J3L3&7O3N=3R?eI3ixs@;Uw OugVY.w2f /'ޮ>3JgkoJo#gO ~D}g6_oE>Jٯ8 N7!$DixVğLě63SÔזNŸ]+U79%Q)4Xi;SO寧gRP_#y|y4ϒ7`'qw%M;C)/BӬK`QL:D?=觷l]'G⾃InpUHk;;JC-> ?)oU}0f/+E⭒gCUp?}?Z>ȟ w#d;̟x?/=}N[7}'CM ~gQzCp#Ǜv߻ԛěN$??d|Ff޺+}cq_:?c N|`C9XM|[Z=^/:WǟTGRF9roW{o|#Gy8d?`YT긏>J^I?#3[3Np|`7I>A>x799xqr>r?Yg$۠ϱT9ruOI%3ۨ㶟';S3_=<2x·YD̟qW?67r8MQ͟|og;2>#y,,#37xp1|R19|H ?y?3roy/r8o{+| Ngwv?Aw'g69'3q|7<ɟ9d?ɟYsq[O39<?w3_em=wnSsUoJo"[7i“|q>r>_;I$X>~bIRGsOo=駷K™;zF9g3ʁ(G>o:OOO굝'LT>7}2W}<&'8I}7moğ9ğyyO}F'cGMj^[Og.r#t̟~fqy;}煞zUN7>ɟUNjNcZyh='u]|ϓ#QFOY >J|f >.h|f|F#>gEOIP_&r3(3˨}C3ϡx_㶟w9yvϧDg'}îcxC{xş>?sy>{wt>ěS~sUsEM{">r`+Ks2_ Ao/}{3?m=w*ggbtE1vZ~{㶟?E~z=R}D]f}>S3[[?nK1ޚ?M'Il3"vJ>c"fu0oJ/oFqqɴ>Bc=$X ufs}qO7}vz8s2nL>g4w-wq>>㍧7:ϧ|gs_NƩ/^3ޟ"-d?>$})y.}go^O'C9v>{@?&C?=S4?oJS_*=cěBUgY77EޝK2>98:ěﵾϿe79M|Cf_{=.>3<{]32_ 3r^g33Ǣoě OUx<q{!FϛCu俪=8.皁_}X!7:n穠̨iL|>}OjϸM͉҃;'wy^b?=MWz~ypÑįžFg_s\|&D^syv⷏3۽9n|ʾ6N?q[OQ9>S><NCӑ(~縭')1fUsw$xU>w:~N|ms(߅?Ny̪rs|$9J>O`9β/& 7Y7FYݣ M>3|feO?sr[|o"psWDgϷY_zߵ#pɇyq]#̞{3>sϜr?#Fcg':>?sQ=]>H}Ӻ˼Ƚq?<o.Hsgy|UC)"gM~/˺J>E(x7sLy$ |&%}&:NޮϜ8gTߦzCc$z8QSt9b3rgOw9wLw \_&Ⱦ33>'ɗzRz[_oZus+M.O7gܦKcb?&|߁f>>l:nL?}Igq24OoD觷83L}y"!tdiO?#N>=ȓ&|r)sfKMp |ǘ̟Mҧ9N?ICƉ38?39q'&!&yoMA|f?GycI&3393é'@|BO>ĝ]&+?#hV䬿K>gs7~oQg$9+чϨD?3?#G5>2_3XouELěF o}o7qk.7m:][{]׎"OO}Cygi Y]o^-uQ>d} fu5wk9y*r>;<|"T >o?t~)G[r7 όS*q=G},~?2S3G6nǢϱ ~i| O}")O}"yȞ&'ϧۢcx#1 :N.z?#?gAm?3"|=Lك r3Q≞xSěse~nx]gDƪ!<>~]_}_7)3~1|fes}{@)& ][u`^9~ %޴f>7ɫ9xWz87o3zs>?>Pxxx羃I@›?=Aq[v]W$‡>ESߓV]g6{=!ǟqrN3?9n~~z:/ٟQƟY&+MN">x'&zc?3QS=<|s83|DgEOM"7k<7i^J $ >m= A37}qw 9X3ZO\_4.(î.?wʹ>P-uqΧg;gEBLK9s>CCCEY^NQm?ugf[ ٟI*$uT;Yuo7OOq@?=/@?yq"vyH%ό^=G}~z<;8$ρo7yɓ3Q>8 ϜR'U"߯-爐g^>&Sp@}|o/b3;85G FB$x%ngsI֫>*g>4y6N9U~z!1wuQH>p}{7];u2,}>K|sUz[Oܢ7ҿ#v:}7]' M3㨿K}YϨS=O;sY9W_s,9fIY33_sזngdg44&ә}y~ěY,>3t֓SfR:O9}q֓>'OE3&Q gMz8i?.sҪc>o?ěs'3(ƌ?ogV9G)})L}6{R/}W L܏۬!޺)'~2{'g굃 8=O9XI$Lue?gs?=QQϙ~zׇ>?+PR y3Mrzo$i|GߘɟqOy3MșQtf>]3ESYf &$})Mί3yuwJ{%/hz9fR9߯2nx >s n3SLo|ozgϺOorƟY%zm1׫2n9RKe?}y? B>)8ۂ?3J>ž|[<>8瓿!%3R|~}WzϧqΧoP%fM; ڣ[-[O[&?_PxܟV߇?^@UΧC?d|F, |F|fws>,B>?3KBU5$fѼ|fBCֱk |fB\z&/ڲϼu3;_Y9I37s8JaN,>@M^4Oxi>.Kj/3 -3Aq^=w7; ggM~q7i\{> yD kx܏Gp4xᾃrr]~r_gf9.ěYCxc> ڟs>U}>UOos֚\u:I*{<]Ee)㟏|*+&/_uhz|Ǭ,Ǖc+(y&+<)}2n??g'7[')N918_]ɟWOX͟Y#7-j7)οRߴ,JO> Vyߥ!OO>3?oZO'r_+1sWH? ӕU;3_Vg$ju33CJ >e+˼쇎yLiogs >%y%& Rߔ䜻Rߔ|>3J_53^7DOI8kg~W^s1!?o}W|R⯮ӛ^'ů[#>ݏ?3>s1\-~}ɯkϓʁkv*;j\i}}8?&F}C7Wd#xXwgEtz=6gGG2>#6}rNܸiyg^r>˖MA>{g>3|E&s:.Y'>7$@pI;̍x߱Qߤq ;yᾃM3$Y76gi_l3]oի\vGëۥ}N;|߁S6זvw >#$Zߊ_`Ml7n796|?.@0l3Qߍ|MYvGlIg6f7gfgn3w|߁'{u9Mn> OO6MI}+b7R7Q $%c/6U mߔFrϡ}rl.j_a};&{܇%q۝x$y;5*=Ĝ˾͟98ON܏JoY vgMtCx}ӇOIϝ9G3O/)=o;Lul羃YO$?3<|M;*7I99&?˾oR{܉7>ěoҾ;}s'f>sϜ3_<o3>3On,?ܴʙމ7i۞KNIY;z$mǟ^SO^鉷z}>eޒ|H_3گr'$enn$~P9O!~?3_~z?駧K;V/k~zS"y{2ҟe~zo&!o_9{_[v'&3~D{Q9f}_vM=Y7i}s}9gKL3<o/J$ǔ\~z^[c%iOrRyH_>UoR**?I{Ÿtß|D&CRg^OFGMc ~`_%;:D)rV$Ngқ]M'3o3A).Ϧ >&]oZ^M?a9%nrv??pu>vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/KSC/OLD5601.TXT.gz0000644000175000017500000016602206463470771021357 0ustar mohuramohuraq4OLD5601.TXT[s8҆_\lRHiH55+blؒK' D2qƃȼbzaT\/|L3nnjnK&=O0z{k(?f~7$I߮dwloMr|crz:);nvOzhak?f?7[_>u ԫ{~oƇ<~8A>aGcβlYO6ۆN?wmX.__O>d7/O?쌻Նgӊ/ͷqlZc}5WTq7_ϻCF~=n4j/L>Ш&`<}vyސQ>T6[3V_7+7bbV81e,+%ɟV[Z;)[oV }2S3V1oh!|Vdzξew_nƱ5=jdzUƠIf#lϘMFigfٔsTCգe,j2dXgexՄ*g(!/w}nnN&:#kץhs G뵱=# j.gK/te KQ>G8gE3.>d"Ƨefm9h1(axz8rPȲͲ#e=:9$?iO:tC bd8[#~4V[%"X)'= O::sx{Paՠ#2[ >in {LGgDl^Ɔͥ#֫iW'mZ~kI VKm#/ɑ ;g`(*Ӥ>5wȢX rӣjguĠgE,I~=F^R8B:0eTDI.OO^h"gG^}"X̤BaAa(d2PPX' "MfP93HՒ@#.iқDq(pb.Wvl-.Tx&d8>i/ .PNZ\'C<灴lDe\Q# .@jJZP; Ӌ%JB:t@Rn݃ϛSiE?e4,%iǴTp. nSL z+$r-y2t-R WaK?O)N4hJ#$Da8JVQ\ԇ{yØ WJ|DfqCrM j*<*,4ŴQ3)S{hQ/UY.J.!m)9FB睔U6T Z-Yl%4tM7Y6ɯ9< =qly45xjR ?0^DY8' z.y27T$\O+W1fM3KӠ"O EMtVE%Q^]%jaL(cY=?ƤXrw˙^xV69 k ҈VɔֱDM%XDW)\^z‹%T_<M i7F#:Br!Rv{H{DEl쿲HZ~4sK( !"! I dtRhZ,'Aқ5Q+Q)T+vQs9,N8葻6VNԁ4(LbOĊs`F΃9On mrSa(-L"W TsPW|˹5x"UCRXucT`(<J8h'(+˽_jw\.t=Di>?4,tr/8pSopNC>єVeaLPg\G7b9\\[<*)3sUm %P&1C6n8 omvQ(Q+ ^~,ѳ ZlȜ=K+hNvJNLNN;A>_EcP);͂_9ޖDU21axi3cpWK(aHRagbP|Om]-.Oj*=yFj2l>kJ>uU2S9 trX2e#yF XH?MZr7sR;X8Y:Du- gɐ\7Q:x"-ܩX(T~1m~,SQB(PUKQ"BUmqKQ*/*3"| U"FU}5PYtOR_dAOqr[98FJ_cԌ,">((gdmri0qqJʗ4@iBxԂe̢tSz!~zȫ+$ ;=,LoOW[VbY:* \Ujٓ% nº@n©@g.pquIXV ߁P¡WA0![u\)ӫPҮF!_:ؖ \^N5 (k1aAȶzѓ X-WK%ƹT$'|Աȶ$q&kWh+VYSNP젲g(.U6mVI_3UFB#.9e@TA%SP"5lё̭d*#WGCk"b Ԥzkj%XjQGL}{{:ַꚱ,ǻtA$Wt*#ͨ\]*}S]E2 LEvii(-)iQ(HM[P""' 26 f62-*屠LE5rC"S,讀YGhN i :KZ!Jf5kRā l`YOfزlQ숦ttEw@,|圯FKi+PZ W` cT|%W5<_A#-|@0Ao+~[;_.[`?o)7`a?`O  a 切`a?ܠ 7[T~߰@d?*ol_MtSyWa oo[Zv~>.'8ROMvAS'j.^.vA]]׻`ic&wAFvM?k\[T;mT.vژ]]ÿi&wwAFsMeͷ.`v<{Mlͯ.vڼzMmmͧ8m&?8;Y=.OwqwUË{]>,xgy8;Y=.Z|Ƿ5GvQψwK%N}'ҟ0Sev#߄m\CdAd5D :s_U6vGs(Y@@4(\ hDR@Bv(s PuL!CopU9rPΩ l\V7t! >~rF?gPPrIBaVLGЎg Zu}`*iűAӤ8<3&ř41TWBIҔ7gDAɠԁ@I z tK3ig@iwͪkvN*tոoN irR?[ɖ !Rԭn<&OyI4i @hR< mMvnuF4 FO&-74hbhMBn h±D9M,nr; DF<&7*'up@b@M B-n  6ym$m'*QHImbLNK-q;BiD s$+̝8_XW5syMKwBSkȩQoڕ\ 5MVWDSu9-# 0W#jV/ӨXkzM~+jkb }\P5)փD {Ms d r= \5In {M.7&JY%*aŮk[%&:en~KD hQ-+w\M\ mm@DXJ~-]RmA4PU(PMY,?Kpsmbk5!=j_|}1eG|ȑ:J4s>+!I27Cveh|ʇĨPqYgx6ZZ]aj ݥ!$uA HE4-"&Y˟V`=(fsa~0.iJ RRxia4@K}H.d ]]Хj]]إA7nԥK&Q~'Աg*QDe'169Oe'vJc'@.m_zeɍoOp~?@JHUJ75+TA]wPб3'l[Dh'trn\\f t]_t/1߆s}c8חoxJT#a#u]#a# a=GrcͫoMα?ٕ`5.sשV?\4/3?0@wݷ~ׇ_%&j}LQ`3;!"Ԣ*߲ON6%?c,6S7rEϛ>k7N{LVEUf/ Tej^ x , Jy >p`?`B*elJD|;!f!qb  ڽs?u@*/tNAqU%AZy5 _ʟ}U7*I/٤Wo'/9IAl_l.EA" F3ǹĀԵ. utB@͇tş#;W7 c:W a [ us5cڱF~4Røn' thda\Vƈn0[5_!ܪIw CK7o{mD0tRMMHֺ+hc=bc G/\_/VAj 6^f#VbU^W={+}[U7ctA[n'Fm_8"M/.&a0w#,#õˢhU_l꾷0^;j ?ۂѾWՀڟlU79dQQ _$dPQؒYe ÷W' MQ5,(8HGdɟx$UO~~Q8$Fz8_R:yξο}9˯Ǐ$?~|$}֜S!%WJXa/rzpͼ; yjuVi~UUYZ_'UCt}ҙ_?'H\J((g|+R:qڤqFE!8cI[rɌETg3 SQθ^mBgt+f6IlMVcm8,VqڤF%ZaMkwz W$4ZԤ3[ƾpƋkؙem &AqMrt|M(n36K̀@,6dS/hVl Pq) w M !pDnC 73܆n @g0 .6KJc*yqޘ){1K)f /;Ƭ%017fJT#{c>İ7{co\.ޘ Lbxzo̗??<??T_~3Sx c|~o1<c,pIn܋# fĸM3I{qa4y<Sq`4u<Nq_$qx&q/N!q/>οڻ_rag1.v`JܖU, _>J>ts_.1Dt&#ïFE!2ѓ~dN__<Ԓb%Q)ъţI9i =:/$qzY676umهo^B5^W]L恨Q+UwޔBNg?4tmýr۷׋}G/>;bv좏+~??en::^z/Nzw >zI'#.md3LYvē/%Mˮ|]yyo<% M}zʊ}b34wS~2۳,sb6*eɌM}{JX/O 3a({[b; ~}} vId1m^/o^/o^"/o^B/o^01KW3^qqyXyXϐWb}b!c!3G e˯Ta|k\ (h eQG70_h0_hN͗S2}a3c3Nc1Nc>1}vo,oL')&\b\}^9c1c>1}E~,~Lr q  Y Oo|b|}b}zb}f|gH!I&m7_{ ש~Cgq?ԃED=R/dȏRo_[kn_;ki-"ۺݴ|c3tŎ GÎkFI>v0J7gg\0JI?Q29;rQrO:fQ9;^QO;%ٛ3 #ћu%W͙L?o)֍'&g30ЅdxO104DX!ϟ ~BC? Buv7fn7t]F;D!Čup"Lueo3/CZׁ!˿ ^_y?/1˿:6ُ1a&e|d[#&fPs #p 1F9Ԍjpe#fj5>5c[1BAFfPwk.#Ԡ=^k>5)B?Lj^_q>5)?L^L!|L^63/S x" |L^63/S x"`E "lf^/02Ex #x"@+#4bE4S̈́F/LlU{dw?@}݁fyԶQ`}?-|nZ7x`}d|$ wkIw¯}׼}׾4ř}׽4f6]f6Жe6뷱E}74|wkK3Ү^ݭ/m)s4xڐex ;_azig 0 5xm%v߿o[|ɀkK/5zصe}_C^rI!y/$ט[`;Tދ-5&u%%v߿f^hɋ, F5Dm%Cv߿hZ`xOa9xwط︃yy<<ww||h&jk J3w*4_1_>w =lY);[~g**wxg~GY1jfzTߗƨK1`zRu ȟ ' ~z5ހg-@}zW1:fzu/ ~cz#f7m]6vfz;E3jE3A Lo@H VS(YӍ4u-Uc nݗ-UcnFq4󻅿4~h-1f~3~c7vf~T렑3;`~;GF>U)3w~Ts($F,'YޭF,Vz)4FfykQ2;Zڗw\,,i:@_=#|] r#gwO5<8Y,8z5>fyG0kYހ A2YFo0Ɓ1/k.a6e}z0e}z0e}j0e}5?oQ/(5{?rFh@Fì浒#<#dZX5ZH-A YFlКUfS0fׇ7Ќ٢t{d٢ɢ J٢u*B1f&1ff @[4\ DL-FR"q*Uָ㌪:UH\rEkqBU8ӌ5g45g4#Lb'ݳEi?͡<1?TofZ#O3дFS}|NNki:U8B\CUoZcO3ĚKB]G:et|Fbi.Uk1GǧTpOwH"&l㒎OwAQJǧ99t|CG4~H\P,:>"xuإܩ(Ա:jn:>Mzhs:>͢z24%,di뎱PYTwFDf/5&48*k:?M!9/k:?͡5f4}~sjkDiԧOUYdGPUyqV秙$>1Wǹdmc'PM18*߶5&8/Y9Ti]g1bm4r4~b̹>͜2̟Y 4{~>Mo1]קQ&iT Yki54y*54u֨c֨ԑFlC*|-]Ɔ0׬zb֧9B 96j^l-\p!pۨKT/=fCt*UH=CȐhC!`~aT-,aJ І0U*}6R;(! ʐ5lC2daL0 CkB aTU3'͈*U+*k1€b:aժL0U~IrJ0Ta@LFu:y`҆0U6a\Fw~` p aV0ZCT5TdІ0C!І0C#A aVx X?NF#:! Tc|ۺucCqANA;8!JPbCqשam]6y n@ ȧ XD>g_Cq[gxl]F{d0TF{y`0ìO A}qֳNk=}\pYC `0#g_ aG|A\ aGRg5s AT amX$wd2HTCܑ M ahG6 ټpu`ΦxP:eD{Α+U= Pl^$p9ԼZ!0U*ЇvȎ\ vd> O!0XĂf\`i :>k% [=l= lYq e`0ؗ1 b_F0|ؗq2( (!N@>:5H(> anayk@z!ntNqש|q[Fl)F܄q6aFnHuF܄}Y c5t3& Ҹ 4b&e< 57bX {Of/amXAټj9(C5y+`Fjd0R#]iؼCFh܆TN c3}ޘ0*#.D 1y'7/U,l5 10 1N: y@0Ÿ UbUo0 x) C0n24ƔucH¸۸ q#a셭x+"aEŤ7v$ ` 3!#.njȍ .yDDxl^F0"Wp 3Bh۰FپzK[d-AvqͫaE6/4F$ 0N1.$ N16$ )Ƅټ1!atn0c,\ƍRe@l^˸0" mHraE6όdoIqQ^0°ƲaHlq`aE60 i!a|6 $ K +nd#@ h4Haqשzaq[VFq aEnH*cA kz#@PxƄRJd16$l@zgHj;IJFƐ1RެF1R0Aͫ&1¸27" "# !Ut0$eM6v$(嘨7$gR9>$aC1%aCPq%aC/ؒ0S6J°bq`dIP v3 JcMX7$ ^0KXWF,dz\3 JuF-Z Ɲ žZJ9 J#PXg_-ƣ V%BPjUT}~`JP n0F%P(v+a\BV0"z] 06:"d0 !g Ƭ<`KuͫqaA6/ 6Pb]/@,aAR\Qò2Ӫe i # FUƻA`>"Ȗ 0J#]ȁ۰F.a@Xl^h0X W05/`L&*a@SyFÄټٺX02 뫱1aT@ CG"11a @cTL(/F„lό2%TS7Í 5w~ϖP_7ʿD¿HBؗ90xR1TO / &1g00c楿`PKwJ?ކ~Cm~6ϝ 2l]1H+J񋩛0c(ϕ\|jf ,wϖPu_ߡW C}/]C}}1/2{1ZPC-eC|/2b_& }`=N)05ٲ^0 WP&_*T]C|1Ǘ U_P+we VeCa|/PjCU|PiCA|1q81ěP@]C)|/8XC)|6`2bl_P22l^e ټ&JyL1k>W)2*l)be e75Peb-h^+U^qUPu`+c(:yG1k{ G1ʻ*؏,cz#N&Gh1KLM/"y}C0U`~F0ck~G#]2`;T:VPk*8Ԍ⾮:ӌ^롅CUf RZx1Gw}C=~X 3]T*U~j] 81:(؞1껊\ZU* tjP/ւAUJQ_B_(_$@_ Cm"8C+0C](zh ޷yJ;LP/5v P v 0@TaAZhNPׁ8 cԼns' JLP0y̍I Լ_fS8Y-u4R) JU+a)kR*)rѨ0`@k80l@l@/ao6uR3J1PaT4%%pcʄqRY \7a,X0@kTCZ C\ #\2FXR#(W1Xa06Fbq aa j^w6' Npnc! RmL0PUI+ԕ=aX CN̝0~A7+b: CNƌ]a{Za|Y062F6d (0!gL\ 0.䡪 ) " =0O z Pl)R!}5F`</`\ GPg.YFPas,P#S(y /T߆uPLͫ.>W]C|6/]C>Ԙg2@>kYь JTcHBy6G8PnNňPh~֣jH7eT ټ"s 淡4Jl_5Jl^-{ƋZl_kH3Wj 3$TJ9ټyγ HPs3|W#IBy6\j$I:7s A^/H#6X uAjI(93VHBmr5$Ԝy$W#HBm]$rl\\1%Q<( 6ѫ#<[p2R Q$̼ؗ12$TƏrbѨPn^KAKFb_}7VIB]CJoú|=7ͮƀ$6w>j$I>T 0C m]#Cz~)F۸xP~5j I(< 3$gsq%& u?xs{8ua DcKBy:l^`elI(?WƖl^etI?4$T߆KPOv<7) yi1%>Fۼ$\XtTF(P~שAyF]o<+ qYW) 󫯏1& =7(LWLBE-]Qѳe=@=T{]\* 5w |F7DPƏj۰Fjl_憱"=>1B$Tg2ƈjt[-F:۰n5ټj5ټCB9z6CnH(FUPnu e跡 <uپBгyՅ;g w(De1*$gƄ*t:Fs;hP~3$֥@P.Ղ2BNe=a?~ U/Fx=AP~[}>4ѳu!W9ԣب0_&1'u^0d(l0!s(I*lҿW)EP.*=U^&2dxleʍ5ak dR-k7CɺTɧ*'8Tu eZ XuZZZBEOSH*]$Jܵ^D ݫ:<jźQ9TkӐ-s(wn-syki3&k49Tk ڠaP :bPu>c愒xS e"^4&O(`̬ q|X903@̡B^k̡P*s3ryWp7s(w̡בʙC)Xu8ut :7qܙ_F3n<߸ g~|A̯s#7(ud ~ki_Ti:~Cmp?Lɨ h~g#̯6uo4ΰ艹 h~^ͯ 6h~Ry_gԯ|:34N}CͯoCd߷D:~ yo{7uo{ h~4x8_ mk7hut:[]4)eA%qd&C,MgrRs#NqB(qB|e:ĩ+?֯tu*L0,T)ưJsH9zqt9yo09wO-9NtoTͨ8}2KktR'yͼ 8Y7jxެqq{.,$8S[j(Ax˚ n Rjlvc,ff7(Ooylvcff7(NLoylv#f}nPތsO ʼn>1{qy3;io@_p6 o%_i˜MnO\;jU̝b7'N*/?U=qNySz(8YnOG8˷g7r'"/u ≓[|=ެg8m=l}5R9F8qv7 '1qrdVٸ8/<@}(7ciBa4&TqEfB!1F&߶2Ƅ}PhPbdˋ.d6P y54 ;gjpu(PKP_u@xUAṮݡR.7^%֥ǍQ euiQ*J?Y*cQBu>f5@ fXF }Ruf\q-1$[|3.5$=scϸPo8Poնd7~$T's䄻q"*duʿ0jo2Ƅۺ ߬F}*۰n3Uټj4eټ`ɨP3@UZ3c0^ԡNա\Bۺ o2u Y)Y%fWO#6Bm^ΘP[3n#֥u;c6BmxP{hFO?1С3gjͺf ͸ڮzLs(7jHs(7jD@s72 9ڛmPaoƕ0F#ߝW>.Q~Dz8E,cx60N#T[@^7 z6;EuaF34Bm]; Xz{64֥;u#1Bama$F3qi0Bi=Ot(7yw:UPY[ӡ6zLzv9TћpeyL:zc JÍucEsj5|zp5f]HPGo|eͺ 6.I#-BUFl*z3Jz3.cCVCC݊kDE(_PNI#+B }e[1{A]^Q`TF(k6:#T50 Zeԍum6B}UȨPs_3Bԩ0M%KjwԵUQ0a^F50̗ײ| )?|y͇IZoeH"ߪA,V-`Xr|R: ey-ƯkToY^+^UZo5 |!^J|Q`V1 ߌeUwjw3k1Mb y-ÿ0O^+wĘZOy,w fy-dl6k}šp7k}OHx,jN%כ=j%߆?ZBq}/si ټh ټټB5ټ (%Z1C}RB{۰$B}/dPe Ej^1C>W*#kP(Ӂ{(y %ٺ Q@>דȟPv+EψPw3Y EٲX}5@>T{(޶F۰1=>ۗ4'Tޫy5'J: uپ;_1<*HP+U?g2b|58q<?)LP_e5j'*e y A(/pa KeN(ȷ Povռ y68 ΀ ueN(ɿ3.oBMm}eMɿ_ڄ|[X.ckB9~$TpJP_jUd`| eTM(wƋ:Ze܌ VcnB~CžϋeMٯ%3 B;RKBmB|P_yS*Kv\FӄCE +=*yQ3?Wb6jl^*yV&A(/ւ#eBA?UX\ fW/-Ärۼtq0.=nK? _+2&kҝ>kdceB]ju1.6.k1Dq0{.#^Bm(X?yA.?1%g2>ƺzlXP_e~js2ƻۜUՈP-a2% 8P_쫞ؗa@1z!wp܆/= U0 Fd҉Ƽټט0 .7% ֥Ǎr #kƷȖ06{ؖ0 ۗ7% U0 W=àl^8(yq@dxOx`v <ͫaDm]zۘ0"@kg0<@+q2%T@=ˠyLb Cn2ƭ!h0> [jJ"P*5R% (0VW}hb_:h~NY J~8p? *amX:iЁl<9 Os  d`2w>f8`?0am(} ðl_!x yՇ1U0 W}ln}Z0 [W=gg24$ 7$ Ǎ> #yq#Nl^z܈0 7$ #Ǎ1 #uqKl^vS `=iCpPپ"PF dj@?zVa@V,py5= yd1 uY5 7u4o1+N0,oz*pg oH: Ya^V40}w5  +h”?hB?A?Xƽk d y!֯q^<U`KPدJOB_SuuYLP[灅0YCM6\g je5YC9m]V85f*JSiCհ+YCm^` a}N>~PÙ\_+CVSYP[@›B5YC~6@B@Q yۺd efd a 1h5g1h5g =gj8{xPP_uD{Uʐ¡YMP}փgl_ d uj^p'kϕž>>YC}6zC>[}C}J{4ꡲ61론>W롘>W졐^۴px5+i*C!}6^sl>崁9YC cCUc@j6C@b#Z4Rۺo22 1P*o @L>[Vgb_:d žt! }DX5{4P'k/uJo.x t5Û] pؒ5P [WC)XW+:50u56(_W)]lQܿRzȢ8]tFqJ_cm7(N/!b8K| @UL8/bDRF5S$_[/:!MR$fH|-@c} obS|9@]*ePW)l|S|O@]*x ȧꀺJهkQP?[1/BP 3#;H0:* (fvžlFP쫑fZyRa @e^iRa4@1 Έ0 ۟HC+V茘 FTwpR[ PUCEma,@U!qU2`ogGyp|PL`0$փpQ,208Vi  e젝0BPz i C 8T M[*P( ˴U a@U fC&PU(YB)F nȥ- *Ulr,a@Ac2B5f̅0Zؗ!Ihl_F i}0-a8n 5☁{ٌ- b[u& T5>F[6ka 㘁lZaBAL8t*X8dඬ CQBv d @?4~> 48~ al^z6h* lZu%4 /ံ8zTZm1GdӺ>!(փ8T(PRCJ?EpO\&"dm~G`Ҏ۲:[I+Hl_F>gC }yUȜ-%e\ar8 a0l^Fgiex-"(c>$Ȧ`8SGd=((*$8T㰂R`f# J5[\P `k8LDX-0ȦUlqAPfC Jҟ3[cP*T WqlA6-.(5qAPu JqAP9 pL8g8*he=G {h-:EClqAcwӠZUzglǸ7z&DFāټa@F"X0![0TFtž00ؗ7:& E(獍 C}yb€b^zި0"!۟0}oTLP(oTLPU(oTLPUq UA~PU(ھvzb(R5lL0N*S6@PըZ 1aB1[cTLP( 2.&S*T1aBU0\P`gLPU(3N&Z*d.;eRhe \KAŐ-eaCP23 c(Ր1 @b_ d(Հ1PbX07Z& isQ2a`L0  U0Pao7lm0:& 8jT DàB 4 9*T BàBV0ؠP`LppW% eݟFʄABN#eb_zӘ0ؗ4^&-(/ # }FʄQżyX&`dLL-~HP*T= b_<f0T ž0F<`Fʄyk J2ʄAŴfcHFgchBhcPB2#d@B3#c0BB#P1(R5lL0F8#̂0.஀8FSS jH#T $ |?;Tժ L00PdLPUȠ0f& IF΄U2F΄q̄0 [cm|L P*TC,#}5L0 W#Lc}5`L0ؗg2QżyB'M4#eʶLeB]CcLPja C1[C]lY#XP_*TM'}A2+*}=4=W 5=5`=TӺ/*ý\*sʹk!1JBu=WۡfPgCqmʶNfUٲP2{/nzb_}P2{(/ez(/ Pӟh0|+[]SGH=ZPʟM` C-10B졘0B졚0B졜0B졞0B졠wCI?1c|N[;tbB 4g^e8@P1{jCQUP2{j.CYPjfUs!W R!gP_Uȫ P3!fP_Lq` BիLP_U* U0B]ޖ9 9 Kwؗ΁Cy/}%b_Jf>Zfż,2{(7ZoCe{6fB:ֵ@~/xʿWCV(=Z=3 jؿ<̂Pﺶa"RB!T*O9\ZfŴF02{*d꿪PJfUU21{*!Cm/ 1Rh=`G8=TS6&B(kO2{(/pAjT`B &A(*L@P03B^8=T ؙ=TW &`gP+`$uٲ4ؙ= e`gP_ːW#C9}z&@(/U3 Bb6c mݙLP_רC uҥFք0U80 FӪ C K3 By]Ap llYOI#mRH0W}} @/UW2B/=$.1V$Tg%FzbCQ 1$UPS[WC-XˢotH(kEȐPS[>⡬6.2$D> V;Tg˺w/UGPM_K}yS#Ye 9B}/rJl^ uټz7 ' ߬?-g_㼦gx#g-W_#gh#gA>  rRl]wE %aG(a?PAKÁ>9B}6]rl] a@P9JP>.v^3sr&8Á|>WC~q*sjt|e>A>0P@ DP>_B|ƒ#r۰BJy(H#g0#GEP2ͫN`s*ͮO!Gͫ8ۺ>ow(3^AP^ _IA(mSiҋT_IZ4ywU>6U_0W_=IARΩt_C8k_C5pqiU5$fүٽW=)uW*uov#үDzV_; sO߹MLEUտsy<'a@Uտ !Y~|w>/ײ=L{ȡI- ޽q$?JwlFgۥڴӦ9Bni67{nesCG3a9vN5҄ល;'*atfX\MpNe:҆dlvNvݮ81Ʃ_K;MtMZܯ}4ן$y|)>O\ZV~DZUXtEL^܎eg*4NmoaёOno!9xi%gu<;zI١/9%V ڐևёO<JN2Õ&~{B Hp55ydchN͖]JèbMڿF,9'of6LJ~M{="i$cywwC[ 4a4}z7kK>-&O0?m õl&LGJ&͕&L^[ w`r'JO0L QKSBWu%`:6}L׬O 9fˆO0,4KJOؒOkCZ0'N[ &67%`l:܁SKG| d ơ[ԑO>x5eiLCI p_;m{ YջM>$Yc׏_?8_?˄ _]tdravO]? . $tJvbEmKkV]W Ot'4S$G< U4*鞐v^;*z[$FQ<]q8[, :!p2{.N垀|i'd,ڒ17nɘG&'c>ݢӍ񖜌emu-[$'cx;94)(1󜜌 uܒ1893zONٵ4:{r24iiZ ڐG?kiZug{r2~_tK=ٹwK:Hõ7Nt3EzQfON2.d<AK|q2Z]vឋ'sp=`&ki?NK{ RԿ:[{r2kpvwt,197pONƼ1iOB<4{BM7y;ViηXڜV7F<|t!+Y F-e+C<{7#vtn&'cp>_%JI ='q*C<4q<<7pFgևqtoևQ]= OSǞ܅]ir.L˽qoh˒0]5 9} ܅ti}X]޵,c%;ãqiܯMH=s6$b;Ҵ^׮,ݩc|e~[$`;]דOE tCJ'Zn'X|as+&Z=cs-cm\ WYi#o|몥J '=2LgтI=8ZJj'Mw$`:'׆IGA'Wv'wѲ1]{{-eM=4EKӚwH>Ыz$`/g|pqmHܕ?O0+Mkj#йҴj'|Q|I`ݻ-RO0(q$`LP{ r>CגÈC G r]-~;'Ε5u[<_ﶿ2vBrkѮ7NxLH24-GrѮOf0waQh[wavd;0n$wa9Fg{0m]ir&7A0; y¼9۴4S>pzeN؅yq#>mor}tOP@=1kQv: ^vc#Nd0Z0vp18ySƪ#yIG$]wG$A;y9[Ox '1'8ʅO0iJ>&`BXܸOD[ E=+W{[ܑ pn`6H¼}"'m694dܐ IlILɓXSKNQKSO/{._:ў=Kӗnutx𐛳M_uwK_ei1ԝ?U3d Nts"pRN}fYzd-\>CeQGˢOFhC61:kw: 자~thWکg7Lnh|ȳ\љ[\zht9xz>4cxpO|{.:Q[\\t4{ntvn<\{7Ju@ 2ӳ.n nG} \^O0];5ysk2,sL-Etw_IwI$:AӍ}>t$pH РԠtoZZgKPlӟ i%{& mo]{štۚ I ꆷ1J٧o*,T6+V*| sr90'!Egh<fgXc<d<9Km?ϾguBCӹ//^kuN?y_1$߮θ^Y6-5EvLvRkn{QQqA]:Y3*5{P}^a klpge>]GրT` >c}^ ;Vž5v=k@yX8U峔5un=@>niɻϫ[fDlyuXױul0d^o:֛yu>۪NܱZy ?ϝ3,%(.=h;=sg3wQtJh%ƕ& I6@6/7g5tI0&yD,%ŋ:vVth%=7}EDx:gt>lYJIgi:|NWUÇ]l:Õգ.[Yi.mNs{͕ÝksmH8|69YJAw7BlN&דi6ܴѰ%9׸~`r2Fjg)AƺJ>tY=7CZF=-{74A{ÇN䩏➛48YJv(7n·{.ZA %nx(&9|Uqp6QmCa͵"tm thÕp!~<]{џΖMk4&^ciݻW a;h%O*?qͺr!HhUё1wAB|{S:~CQh \)FA¬jAMkhC5/kvEp62<$БSPOͺ!Hnt-qD|*wlStC0=>cpw4zܨTm#HpAB;wKۮ >Fg5w;KKϵ9\t4M`qvI2~{{6^G8#mU@#mlg]˒nWOG07g=4ZwU1K|䠟dJ:kҪ[0@W4{гdҕzt&Y>Ctڐɡ·c&׬ck$#ɵ'[4ˮ@@@Guܒk28'oGGڸ6 .|ڜmZӽ1T]n#lT9+QxMm CJt}`J}{hHкՈt~=%v^{Bߥusy&gê%dـmu<*y&] ]h smrظUosv7h\pgrOtDRiqIϮ4}uGBHv^5ڣ(P߲u:YZʥA*\pѮխCbVfDzuj4"t'ug's킋r)cǚ|AJӚ:^v$wz#/%-JGc26ڰތ ➛܅K툻Mh١gKZu.,@eFB+ƕ&wRwLi);m׏ ڛqsO pO@l4~>TH+E?LKFDD]1ʺ4jLsmd\ףObo8XOI̚YJ>%İJ|\꓍|Lz8$bs띥Á1y.ٵ,A{ј՚Y<έ@ɓX"g)_:ܞ$ǪB##F"1/k ړԗ xj{cH$*-Sѽ^L2F=88Zgܻggt{jkJ֟Xw: ĠQL$Z6kɻ=\"p 1b7Y(ldZw]?su-K_ 9vd$[]|d$5h"CdGǡF.L~m?vi;'b⪬>빹F=dgMP!}n$VI 7MtR4HwEN l&So"ԨiIvC [O]z7 kxm,T iPpBWA9յGL R"\hg)sNq|zx^.tHs 7g)f!g).o3Y~\?$-u0삦fR;YόNo 4͓WLrNhY;9})EGsJ/]Ľ7f|7N>V{|sso{ӂbSlSzXZɕrNa\-t. ΏZP<+E6 ^㞋R9vaTwj.O. Zb'^ rv3`'Xl'8;O΂OO-J'M>kO*w]vײM% % V{W}X -ZL,¡B~BE|қ6JPumXXsW gk;ڋJYͥRғ6Yu,JQ(MY%,Z *EVٺ_sqۍ׸cPW`O[ncԿY-~-V 'Y,-fBX..ӑ'ԢUmApg!ԢqssӪeAe{)&.,k/n}oY¯;qX ˵,B 'C5'.Oi‰àO'w,NpyRC=sx^8 CKGdZ*_ jsvA YjPavaĵT鮔܏국~W `]\HE߹.޽1,` ѫ]_zE+'g~PeWrL ]9q]?Ukofyp}p.gk~jko_Z*;84ꑮ_6r_g.gKr +'`wH o]\)*^3\h@aНʽzɳ=cˉ*V7{p}UرԿ_ zeV~cW|UP}wm3} /]JP >jq.ttn"ԢUJ0_#K鞛 N+&``)r}Ot[+>AF=cO*C8nԧ] ŵ4:Z!3j֊;[|]?O'+>2Wu߲rv0+>AmӞa:ݯq"yrsjW|w'h]glsw|9ƒkڍQUAbCl r:-˪( 6մodpz ࡚ =㤳eCϸϵ+M>97|krZ )ٸjPa3=>},Mkpz0 AO*6 f6|umH؇j>վkYZS[ j:xځނ{[׆7K<4y3j6D7S!W%TsӌM?[K)3(t{(:oP.U4 PE6[7͞աU\q0±Bp6pT;Uі܅^ zB!cA!L{BY?FZFFdֻ>C Fd[cGRns-2έB/i쩐N|5(8qN[$4;C:[Y&Hh])SRؓП}}BzXv܅}]D9u+sȏrAUv ~ U Nr H&Fgo~J s%yRF-M w?IJѡȈt$D]~]>@=䒛r'î%]=!x3y\9!\sy7܅,;Pr4wr-]p699[ٮ#SpO0zyri\K}\rq+h>۲FWmDKnkƽɵ,;%kN  NނkYɹ4'ă)q\uw\Ї rם9aDp9젂tȧ).\"[y碂s 9~b\iW )՚+h zAWpj-ohTr%5} {Wk:OZJI]U.Ỡ+Z ӹ+v~4}=]i~Uu!tN{c;-M]'gKpn8"^jR\p,}we/nx}fNeW8Ŀ1+M]=H:xv9kxP[ՋM'y Ч 9F#PY]NVud<' &_0n<.AD&, ?oڜ5ZFٽ)f+ѕBWDWk$h|@W<$ЯЭ4U=K!YUhrJ<>H.y6sZYqo0 1[W,>Kq-K+8ٽ b\ik{+A{䒚(YY^gi_ zuI6u s,MHgi_?KӜנVn[ˎ4!GobW}.g%ht'1B2>+N7$ڇAâ\:WJ5DӕFE*,M߬qwtct0$w. Mln OAz;%}/88fm/ͩm ?Ϸ '&dcG>xVhͤ,tp4]]P4B瀉]1`]gcc; u-܅FR}h)=!g~4p $d,M}>\ptYlIk%yZ{ r6zzrSa KY pOষ=P;$t96(.;P/P5p*(x`s@p?K 5ZݻPqjHƤZYk7m <~MF'^ǓN_<]' :[cWRB% R 7(.LJN&],Ukqs UvKKӗcNbui9]IcpZ,>K~;ct۬-#!ҭ!sRo;4}FJ(M, ŻC<}Υ>=V@g7ŹբSLdt@c6g{E:[9PzBS ័drlcnnLD=KS1Ou@Җzj,mlZM6ڲ2H 7n U|&{u m͓wl-3.-K'<\}urYtO [ood vF?KYۑH[-aܯ٪ۍĮ[֢@ْP%@-K%R"[k^G'btN:uo6n{72H:[2Hеdܯ%wa:M2H>z7xruE8-jv,2C]]ppF؇{cr}?P.9۔hItBt~ZtkuKƦNk¡K82.9] s[K8X[4:][sN\rer GnHZ.V ޳(Qwat4q6ݲ.tz[tCKV46Z4ݼ$Ď⠓t>?K!vF_'SvcL~@'1?t;5}ݻۍdysp,4H:?KI|ghh' .Q=K*v:n;zAl[.>K8]?XnϺBKau_0feC:.}-ج-B\Tgt(a%`XuuV8Hg)~jZaCGÈK$"Uycr(YJۦ}c(NW a:sўr.=Z /~ݽY+A!hHճtTG(:uFYʱ\th'}vp'Pg)4}SߘlQÕrOp6Bhf2Z0~BOp5;T7vm:߳#BE@RbݸjO:c XBܯA>'6# vO ܄l~'PyMv;>`zsM;pOH߷S>RwL UE a T a;urp Cݼ AR({u`kr3}dj=ڐ\4[}$Sw=9޵aU>:*qs}KD*/u/{/ZVJb)sN*sNKʳbG?=C;[''ԳӉ֣xpk<{.Nqw6ƚwYłki>k{Կh'h'55dg$-%l]gNQ05 O])äc'ZzI2R.ytk*c6d&F^}r]z 볁DR CK6rh~-a볔kC곇; T0pvv DLsM=ϫeVr̉kkRsiwq2T:dkLVu=EZ'Й9H7K"ϑLbϱKB {tNSi5@tz2NSVͪKZܚ2DO㧦 {א],Օ0z@xb$z볔[SI%6JLO&&ȣi|k>G,L;&> 6>Lԯ܀WnJҵL|IV䢗_ѭΥ^ ^%ↁZna,6i4Yѳ49OS P8qNmܪe~ DgŀŽEWד04!ظ_sOyr_ hB\yҌDԿ48V׆-ԟ&%89O!E+gߕ347Tuy33'g4g̓H ؈d׽?9sOt4I( =k~s ɑhgȩOP,#]{4.^9ssƎ٣g*>{4Bzu)-wM+=)>r"+Uh Fy|r#ӷѽBb׻!\C.v\\\˥"B) G"7]G~|R!ۧ?Ey.*p]7cʾ|^w nfIYQ=KsrQ;ԯaԎKGK^4Wr/*? $P-Hr\c0ޒèý%[c6h\>=8r|vZ|^~={ڿ丘( _>'#gbwb4p|",|Fwn(*s5&aq+=> # >mmypϫªi[YY kZ:Ǖܸ]غ%ubXZ?7+ķc!DMJKyXY-"{5 Ft#lkKs)mǑy9F6כuB mDUa;sjm|>XD45YjyZg*0+ֺP y[W*Wu==y,ߤ}cy[w*R]d)@'P=n/Z-YT3kjg))&ܮ޽ z3qC hg)lgkqΖvi퟈56/?֓ (3U5.h=PFNsEwb{P͵*A&p먽]n4[Ct [|oR!m&ZN=>i>i Tmd& Tbr ;4X ]ɤkR+wNN=%nKHɇ{ o7pl|:H|±7z7p9^6N=ov_;q[ urӹw2鬯]Yvr߫~pE<;"ϛ%&jp@WEpn*,̕>{d OIyӽ \~ #[3L`a3oCZ\ΰ'ʦ.僙;2j)j#.oL`ۗPA{Z4tɱLõwOHJFd;= ~f;܅8[e_l&JŞ^,b:ϮTETv+(ES*3)7\R*Onnr쎹ffgiZ7HiةtJΣ}>j p]Q!˄7ٲX\Odp'c9\O_| N6rvP!׍V̓׍܌kҫ:{]HrmwE4Vuf;?د3۽v%iz̿묪9\uZgiuN/:]|fryOTHt#:R6$i=Y?j FUO8٨u!prS?o렞!k!-- /噗KW>TF JܗZVd'͕8Bw4{c&vAxvgA_x[z\-K% iIKsOQ 1 oov9qޠ{*}vI/]pCFNٺ,hba* 6H,ΖTܭv,eCțM{nVR{wep9]TCp*t@b!= MB>A<.>{-O>p-=4BZqv Ppt`1T.$x4Jw!p-KF.ܛ*Las.<țC; ګ"l YZ4ٜ['Rg9s67hj%r+p+pd~r垐)WAo:NX'{+޽[uJ`O׆WGO|M{cs4jё^tI=V⸻'®ߴFU}+[.j-kgiW-{8cvַVHejYI4Ϯ{UrCkV;?HĚehMz 4uW26骽&'TrCK'{וI`YʆTOVnқÞR{E +2Ae nW\+Z->h]N2N'{U\:18\iRK΃kWjrr =ܻ@S~j@V3궮ɓ/"0[awVSJO ɉZ׼?t0Itk9UԿµ8A:D$J\xE䄃+NF-N MXq2:jS9t $vOm|>T`UqBeRhg=B/loXRR,ݾRd 5퉻ۈtK6XNݽN4kf3ǶT@\Cl|>qAPp3E7O*(?3dE(1(+m乞uqU}W|ZU$Uz\%l%V\ĊzuH29[wƌfwF\**@C£BZk z3wwTHۧo\.F&Lwu|f鎎 4S*6[Tϰ;r 1P){|# HM݈{CQ8]lYR_cč{Lr?\dCґJɆ_cX`=TY/u.EM9J;qoRdG}4}JɱLìWJ路=ϛ]u뽒yA=b7Dw!wі\E/D|r̀rE9=!-ŽZFr.gBǹ{.|Eˆ6h[p%Ifp{/ⶻRs}Ɲ_.)ԭ ںՎ~r)5׈[G\RQ˞ܻޥߓ{ןzRo7U[;*ط_vT ;E|w\THCYj\gmmp4ingLnGs6T[q~]Ζ |+ϞQhYnvwrTw(E4a?rT0Dyg/ Қw'sC0zv(VZ;bP{o컜 sBz#rv˷T{o٣9*<=s fw-n$zxgܨ`쏜;ApkQş;˗rZNйs⾛|sj9ΙcB3G6W'y~xh{>;׮ƕrKݩ}`w~|S8w;!dn94onbG>h ԥM~}N\|'̕c+9itco7tco7&N\"NW9eRhj_ä\nh=9;'&C7Y]qG;pE[:٨|^^|/q[W9-1{yģ픉hw={Iq'. 9,e&*\Lbpߵk.NGrV76=8ZnGKu@Z7ܶ׋Gwwm@my_#1 6m7=<8ݔ=P=tcrsw%^ce6\iWJjh]  \îiԸ%p#SDUv$oթ8zA>rnHH9[a?q@쵳+M2w=퀽;lpvCòj҃MKQ\}qF`_bܾ r{kC:,nd>\?ܹ5:YhEu])݃S[nCgfkvl.AVuu-KpV]:gV*$9Hѫ>L6ʼdo4 >Hxk;HߩsL'e41;P6 Dowsu""[" w wl:n wᱻҿkAdnnZFy^re.NmF7'HYwW`M9 QzC}?Nkq삋 F1jp1C7E]fiUw nwRw]ձF%k+.(U_5\ meBp_P➋u-Csڻ'wh&`i5J>:rY.vO 0H aUYYó4}.Q=Kչr <㳔ZfN:=לr۳ڍiw}Z_ѵ!arkנ]mArH,%gl9Xl҄I)YjH'dt Թ'=o&޽%R<@!4iݵ!}Z=K0) 4'F}.>28=w#=zémavp^ 0gq ò~;[U R;X hF܄_Y4=ʣ>4LSJϵpepiϰW}oֺr軑pD!2=KqfYW\N-En2Rb}'Xw>B/}>t/C 'Jp?KS ɳ)7kwvkR!ScS<;QfgYYY Gl;Y-*SCg & Y盅Mݸ`~>괔f7+(7YJp״XA$Pߨ'W}a׷'h^ԝzٳvř;O ԝ~xqpM]Wn k=;4W;^ͬEo8;[! Z3|傞7˚:7lwNkG;h ީľ+M94zM f垥$|c;+M{ѭY 2XNZF](|BXGj_<-#aX0pO 76:=!۲wɓZ;4?ճko"&O%:ɕ)~( Q¨h%;;N7: 䩍'(bDz8Tt(^zg,MZi? Z|^,m+0B7F2Nanoނד%): a"ÞÈ]gao1waPgiCR˼5}$5/m٦Y+AR[zzOzDzcUβ'UHˉ4qzB<+%2Mzf7.+M}IC$R>v)M➐vgY?,z1r a9ܯ!yjqmS2OCkIݻ~ Zrpvݻ znMF9wYz Bvaң#IR$tѥcu|)t n:WLRa^ԡcKmR^] :6 Cڐ؅v7^wh[pF➐|szs ?8Xl!8Կ~)F&uܝmvsDc;.*`nsa`w־W69I;=|)35DZ=$wa\i}*7F͇΁\@r-#X؅Mv/䀻~t]ܬҴ%׭0n,s^v1^ɽ>@Hdӻ6u}`&N w2([:piR͵ {Vg˚NH1ꕚ.*'8\?4pkD09ڽznfA!n#^<܆sK<I4)H¥yuDG(#B;!v= {Ε0wmYZ|NrйaPO01n PAۘ܅iCXGrOvRd$h©F sBvse3M"Wr“uM,JIֻh@rS˄'w>K-ݦaMqtmjҗSFfB֠wMM~tH Obփ OoJN;hB v4&;U1K?@jz7uvᮥ\ 37u&oL`#MӮ46dl1H]i"^&ٸ_#.So]1ӄ pLh'5/~2wfG߸WI=˜8X$&Nb|ӏu&T n'M]nW3Ur" cvɢ'tE3L 7~,MYeu&N#=!XCnax<khb]+Z=ϙUXL7#?q;[N?pMٵ hş\l3'g(<q36MYWiҴu\8h[ <9˜GmݯEq9DfLdf:%]qH?@%|T&PhtC3#+3[d~f֠K݌fЙ5/edҞ%Ǭ[qev$|H])7jLCcΤ2 7x4o1K3Gn+;wFQRӵ,u`M]?AduA{)8˜9-g0&xR3Ī44j5eD Dz6xЫd8ۜmC"tLd srzHvJ\&t}o֌Wp 4)1CW:tEV|V Nc>Y&Tcp6G׼$6|C]p& Cnf0*Dahg}F ol癄,{& N& 8\ Zϸ 3x}Q:srV |l U1Cr8ް,& Y [pɅЇX5vr%/<؅Yw} Gj.ahg)?߽pr\g>>N4BKS=MxYw-Yӏ]“-(%`XsYK Y8|)o랛̓2 +F+K+Q*Wd&YLJUץNU '1weG-M{NΖ#R/.fsoLYMKbo H(:+wV5^'L*^XtXpJƲ8[dKp~lQw(}c8F=#roV ]%@;Gv#DQV$*1ZWn?\'LnƚB+~Rdi*^$\ '{Nb?])װ:L]"[S}xT"[8tqa :vCIMV#;xӄ i V$zpzd8uj7[G[:V+{ZG6ݭ+:=g^QW,zܱB<$-NU<qɒYst )ͱV\0lfă[kQ u+q Ţ#A<҄Ic3ťb}#ý6$Lp \ qcAq{ 0 1Dn ZƱR} >Njn%A߈pQ*lp: 7l$>&I8}Pg .>;=@Ov*ͽwpt϶atܱ]?\;nzSS9V. Q<4ʍ 2';堍;C؅5K.ㆻ0a䒫I9 -v#n2v^K.Ҵ܎%q6߲[glpm mp e}#R4gPz|$%Cwn)a'%S줄ZX.yZ])vU0vgލ䝾P9E׹7ÕroADvjvTr}?$?ܯD9ԕ9zny9 ' SpX,@NZv.OANu8[_TA=P>s!'Nz=E?,잛\awZε`ƺfsFPƒOutˁORmfe9b̃PYBpP4zƁ ҥ=,BƵ LjðRm#zU S\Rm=g+Mk=igK@8:Yӿvp6XЦ:7khCuϠ4]084HcoP fu$`qT\O9èRSl8<ܴgN 'p:C[`S O6]݁Oͻ7&SFcڐF= aP F<8Vw2(FB<'86o<>ARڅQOE(rk+](yln$2b#pa; vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/KSC/HANGUL.TXT.gz0000644000175000017500000051433706463470746021413 0ustar mohuramohuraq4HANGUL.TXT[<9r%>W~|J;٘Y/R"5jHR@o<:^:Yeh O?????ǟ?O?~/?Ϳ._O7c~o_O?oO_O??k1{o܎o[??itŰwo?_k8]??pcYC_?7ol>??Ϳ|͟/O QAi?P?jԀilg%|65cO±V&oŴ`/a|هv8ܜ_OW;AqLKo8'9g;~r9sϺuٗuo~_e\|пwKwU[# ˿ϖ7,h8WyùI&ɇe&}n@?D!2y OO(2y<!aBsVݰy,>2y8)=nh(acS'=SL!QNL:qBA&L_p42y(G 2yhqeNp&{ bDP"݀|q/>d\7ʬ[y)2'(n@LߵC Ld߷5a A1p\:pqg<M2cy(|BO2Qs,1~46v,1j}'Fήo\Q;1zE>KirZ 3G>Zd,nL:rLv pG'IO1 G;T?e"d;4CW<=ʬid*`P"Ɏk~@wG(s+wkGɟvF8Ǥ//3 3b9j?0W=KL@ +L!&d+[Lʄ䡱- s`g dU9m=aB S^ ?YrdF.7ZxZ0wNZѾjIюt^S6 s&VO2كa|d{kuӬoiZ\i8u2d{+=.ZMA_Q/&G=Kz ZKN=Kz ZK wG{ e"@^b$x!={z@zm-Ώm[?l7K-alJ24sc8b@Ꚗ5 \6ExNPG< dvwQZـ`<(D(,9Ҁ|9(D4ms!̟-zFʒ7w%7 w*/5r,/6TrGAyAxw'Kvz>y~ :Gd}9?Z  iv GmWPeՍ̮>hi#yW<%[v-kXvE 8Ώ/봢+Oq~EtZΈ'8?"Rq+O@k~ĽC#r'rČ9ʬrE#%g<jc:tT%]{GE@2f}f6ܔ;΋ ~(PԎu4t^^ p!,sY%#ר~n#+EdK@M,.[斬Զd'=Q&_!8adtYTD8H):h {$q(\aIJ'x}^N"dH/gRVdʬ[aR2U&=L2㎐ $Q_ 1XM.]L\C&;Lv[ڋP?ec^w8!G&{0tOqGQeʊgTq ,u(<WX#}BjrLL㊩?x>ء>w8F~Q&đ0d:V8,jMQ,|F2ىvdj Dyӥu vqn?&$;2c{aRn1vw< kڛK'cyt:H~Cǭpc6{|JUԫ=<%܄Ҥ#Sş2U45XE%%Ll=Ƅd7S <^ `e+"aʃQ'%/4@S}l7၈Sט+ ><0Qhx9Anl9၇A(~(A`p͇SdJ'3]9̾Qfk[|N*M-lò Ix0u|l2هʬ{-(q0<\y9Vx1Ž-;(2!ղ*&cΪHG-cO<3dֽna;܀ZTRq\eTnmjYGFDtawsp+HCpp'ײ|:^Ojm&tS.dӡR#^}B-0HC)}Mf~.3g:)SX#̻̺wTQ|qnzQHYJ a>d}^mӤݩ&*s }/]HOup2ڜ#%Sn;"%b*a3pA*(82/heR>;R5"6yin]غъh& .6hʭY[H)קt0~}kOmh6kz+~=RGY(m= @/R/4W _Uh.k<9ZdSU:ZLZfSU:-~c-3*j[}rZlk*Mm{RVU:"%ZsSU:~@4kb*ޑQt^o U|d.B4G.I2E Y|c (clžU&1d4PG\T?E~hrT*ȿDI[=ߋ}nJBmUTUS2?O>pŎi-n$5}aI&<箊yxt26#/t4]O#ߢ<7>nEl3:BYt콠ʢdXG ,n}fLֵu(3E}fW 5{ŭ5-KOW$uoǖ4sŝYj=ZWY~EZ9 J>_ҧuR+S񵭓VӯH;}fA9 uR&$0-K4綋]{#XMȍ&]02;x͓IE{]=(Md1T~E2H7Ja[+O%D|*"{_Y۫OWt+\L^AT~EIPa>_:=$#NLXy*ϷBj 9MˍgckJ& ^}2"oڀ<(WA߽`~EןO|Ȟ2هdt e$OQgU:Շj@v(-HixBc.i G ue5,OBQ)/C@>SP88+{y|OZ-9,W'~DtޫO2`S,ȽW'Z-P\rP͒`j71k&a|8eefW'䠽oz6n1'~@uob Rt,w@8Ԃ})|BRX0nTI%Єap%PIFb3+t$^}WԘ{|߃LH<6٣r4:ޭ@?GUQ''FqHVcAG|1BןwE$}X̺B :Zs;R:d9}[ϧYQ>{-?GjY&G$yZ+[!@GK BN>yGڽ >GKDNG׽ =GsUP#'^+~{*((ޓm-N|N>yG׽V 0+O9u5h B*.^9+ N@q@IcA&7O+zO7ݣC&9=0P-ir8kc"7MNH#=(MTA|Žfy|w 5E n ƿ{eNj -^WPSP&~#jjb v4/{_]CMJA|Žyun$ф8d?◟p#&eNd~$ #WDۣVּO".Jl{ ߚWId!"mZU} &(}IZAj vg5@ؚ|G?c5=5:;==ksu=㽴HxpwrHxGgݣǼ1yE\G+9JRKFܣENAG;~I*xڥ^g%cf^eBzXe1 PlyrfSe%˓St_@T@!O>/I#d$U˅cLv2ᆈ2I1į'v $QW2,fO|_t+'C+ܿ1 A?97 \3xmP\ o(BB*`|J؟Lv!SIg-6Dwo|eȐF~^$&l|m_7<~w~hRE5S#n*jwK:~ƒr _Cf=^  .ʰh}—4ʛ/NP G>>㋓.y^Gm|)hE~A6Ꟍ3f`󞾹igahaF_MvmsAz Txf| DpY]^غτћX< Xg .%l nS)@7"dաL@7`ݎnNEG8z9L %+Kk0q.юW O& !Dh|W,2u&dF'#_̳WfGl1Uܓ _I{K< uKf!\@^00-uQ4 !)E(7!`K^H2T9@ѕ%mD`']^iEȳ7$`]^L"ME ez2yl :-ӊg6_kmQ7!tQ zyl 7lKfnjM e']PX0bZ\ŋhaF'cm܁h({SŒ fslk79:͵ fspkf-9BϵsnBM (g>HU77`Z=%@T]rjQTꀍrvlnMTB[" n pە$H/\-=YҶ *hLz7- 6@`=emsm."8;Au)!\IJ{6Ehy7B3Pl*dHo8];:'Hy7m Me3Zf鍨+$ *v(Lo4]wbۍ 00[>|a 2ac6d'فo]Q&lF7%/We~Gw择InRv;o]D K*Yf=O뫌~tꦺ ceBi19cpmW2 En6^NˇSɄe"O9}Gj-eL\r;ylW7m~`D)tؖ^:RKk92S#'0~uk+W ~a&+q/}2w|_er-de편v~1o㯹VNȮ0F٫c6J@@eᛓH03N7'- IͻJA@eυ ( A@e+(1z۰$Qv[y]IN&!ɮ JawG2y#U$Z*ot#^v;2ndo-cOLLٞqeg %'l H@-:QH@-t=9 Ɉ@9[]zrsj""qP'C>[\Q6y選8<dN [̣8w%l=:# Ԏe8U^2cq/G툻k>;..o|"f=ʄ }t=;N8)]O\á#aJ|iv[yEC;֩Pp[I3*v*UertKn6{=W^}WGP#faRDmv;9 DxإUUw7-J]j٫uaK4% . H߲@Ld%. 8|wz/[CBwr~^+i|q`qGiB('*hu~@Y<Ʉj}ɾoٍc ;*alavK/Qv7L\7ԜE]=j :;{Qf\D{DrF+ؕE[=VAycJ]&ԬA&{1vKݪ9?o|]'eanm\qȄʕ=ʬgע+;(]6`"ѯZH] ^4%JîMkή3Gܚ4Y9I &VήRс(Z-Qή#Gj4F9K.n DXgעJANPٵ*\%:bSAحSA_k*ь 쪏iEjAHb+є ֩VZ3J&u* #EPEYKAU.3tZ=xm~aNeg"ƃ\(gYawE tygv=>ag@LAحDAٿSRvP{;t3(k<~J% 쪲qPvy!Y%~aUgB_# V :$)v*QU&=#}dN!ʞd'lx/PP$yGpա#,CA ٟ_?FCY@lgľɬi\C @Ս}GVY2ٵyx>XQ9 Sv l[S2mlܔCxeuba2bA'^! =sG4 ((R<囓G4Ku=|sD[υ&vPi DDWFؓJg0}s+eN~dU%kDSY)>>2٫ŖP$2zhucv ;u<C9𲓢""9c [Tr[dN2Pz-A ;FJ3![L]|pL'E|"%Ѱ!֧$[D]q'F KϱCnd~XeNq Q {O3H-Bǰ-'bq ]90U&O2[7Q  P˄dd P,>3U2a'KӸIJHvT> Cӓ8-R=; m+{\S h1+LJxBs~!58,-PZ_0r L8^e[㧀[Z4&z&тNiHFj9Cpt-~I0 VS8?$9H*I0 sO S 9A$䱕~81?G$HA9LҔK""Pԓ#OenFA fyaY ϹEϓB y`] ϹуC &"[2Z(=H`.)8=Nw%pki vϥETC0MṴjy3$-N޹z)N兮Ket.G$.ot)ThӚ\lnZpZvP\e-C:7n<2[t2ad^N&&6&3,cѤ$dJtՕMKj>,oT]$_/Vt&quiI\XBtyc8| < 5hL*R]f=9pQΦX^LCbLUjnf!=,G}S3R@l|Pr2wl}ˣHl: R-=/&$8HkwS4$eg-yr`,`C~S6f%=,M`S\ M{)|kJ7F"+C(}R(VX.KklRsLνnS^MUB}X-oSWB}XMlS24'pPr~d3r..|Q@dB'%懕*ܾj>.!8?3 񎌈NU摪} e*g/]_S2#y:w [J Uۉ/XT{R*|J&*!Q?t60uJ(kU/<]gb&gpPB}9kN~d-=ǬL&|bǣIkU,GH&?,UQ̜?HAznPiAmSƣj9t_3%>Pl˙xPT8,PznVcNic*x@o0EW2ْH7֥@yeLR<@ͲζG3lV@vLwZ<^(jejxhjÚζ!ƣ JȓKRu:b3GgEQIL" M<'֣@tKwB,;YPS_)Dg^qS ЌlJJh 5K>$tɇ'< jʕ(HW 'L9M:D_j^qK AlJ7($:#)Szbѝ5֞Щ)Szb ѡ5̩Rz ѥ5Vȩ)Q"!ѩ5𠦩Rjz[GNx\T)5.Er|s.kL@2`3dU%k;Lyk@֪#bׅQd$ú>ޛz׭Q$z! RmjYth8w ]%DGpE ce ) i>IxC#^.)ܾo&I&},4 г3,P ?FrzvT@}o kifvQx@|s Pe%g'">l7JZN YsAVb0;9(>)x#_vr\ *L_̱f=a٣=&{*Y>;*i@K}H0(W,5>$TYg {n|jEjd\ρ+=g7ه+&E=g7ه%+|;[\]ZL@hc 1耊heTz!ʢOjuG%yC7n->)J >[AB볗b2C7^-ƞ>;*s, Spggώ (IW=g7$Pk>&xMfM&|M4yNȏIx{ R^/l #p;M|^`g}љhPw[\I2ѣ<ұ,zV)M!!YM"2ѧ<r煰e]y8vc c5Edky8eAˌW>јh^Y/#U(щd{u\4ٯA t\Y/]! rduy!x-99X[:oCv9L4EMJ͂f6=nPjHymvsLV8l Blߔdҧqn~ BC^imD,*l4eNn"$;:rymvS@/~^aSDpHӲt\իKT'ZևC4߿2ZiZi){zݰ@o|^nLvnvxҟhA#Q]vB]N t/q:#Su/4i }r b\pC'Gr-K/ֿPVpiC/>;(laCOVM=}>la'OBW >?RL/dո3 !e :ɤOU 9քL?G!>m/3_jr7 )m Zduy&w /'O[&Q%9*@ֺ*i(B{ynvS(@|J5ynvS4@|ݥG>jj]E~+`"?M unP(@|S䮦 q7)'@|UdynvST@|Vynvsdps""qॄM)T{ovtdlpTBGΧj>f?M>%nAi*f774D?C+iA=nc`dVqP\@0|^'/PݓOIAEgx$qS R;QxaЬ'§$-hO=^pI\K\aNiZТ(}j7 )Q BT 8ӝ R,>Tc\'d§d-/(0ߣL=S&}IgG)CSu4K܄+!pO/M4PGM9!c>gG+JS u4 Fj1[~i٫Йt)gL&~4qkܻCye1*OS (Q&@?a}|vj{Bq}Ύe3 ) ZtOS"+8{)^ >%Aiק40hԕ>MT{opv222(ӤOS2C8;sNLZ~43,#% TxG84UI2fD!?A_^0%+. |p+3ML/(7=a?A7^M+ʡ~p3ML/ ЙT1L/PhO,tp^]0̥A۳0Kr&@*=_ثAi"*S4M>/x4 ˈ. n%MBt~60MoXeO_I bTN{* }ʩv짼Zr,#غ9w *8Nlʧg72ˈGZSB8iO[Z+K9A}⃟ZpB})MTsqS(@}J1x5SیR խd#b)OqqR\@|J7f}8;*2=Ax|}BSve ecY\g J&@!:մgyB% = j? ZqPI-鳼@uOf=9ݸgy$qV兩Bsj݂V鳼T;RʠW`,/<$nSZeBZY^g SjeԗjY)2 J%̐q7M&;?YL{b 9h\4rYI<3H/~[H$ :uOlUӺN'):Yl''Ȫg/@-jܙs28jc r f3 @R0b(W=~I &<񅋷DlI&{3Ls.L:/+]",}IsyDykcLvujܸ&~HLvn%<9Ddh~/C0y|}m c&'cxEHK\?P䟜6_(Kܲu2mXe AX>!]'uJ+qM'7PQ&I<%n: PZϡeLwTQs'mmz{ OLOTQ-HG#*> Ð 2{<W?^l Q @?JKe d+z ,qI,zI W*z.%H2L6.Cn%HmYe e~1U ms3S ؒ?d0@2<6d`x 'LK;$łLpQ0{&MO$T{/5 l> 5^edSh nxa$jQOtBDްP#H.leİˤ^ۊ6cklMpEvVu3ec[>1[=idpdd*ďyl>Ԍ- 7ď)l>8YG⧰ }W2 E&~H,KIpiAS׬mc:U@}m eWwEty0:yl)Ǐ+\9vpY|`?.ngz\S% XRD$sy\ S6Jy=~\sj_* %,~έK"=~\zL Dž++ LlǏkVp,9cPc_tZǏUp9׺x1]ϙZx P/? W\Ȁw9h& rph{IP7.`q? eV9",,$= Ҋ9<9偠:d) E' ^⩃ `$CCq DHwnt)Y#ǏKM@"Bs/CGq DtnຂFb)sVQ:}-R :8~X.KUHn'Ld\eH5_xAJa!ȘdTH5UBPZuk3L w&{@Rv&;l q'g4'$axoʱe+r#eoȸ2`rkN 7l02"#""ju\^v4 ˧dn;Le=0+k;N&AWLhz~'  ;ZlKd(;&㩗I`/g֡r2+jCK \]>Ǘ콸 dW_iu T0cBJq~ɪkhG;Z᠇9?%;©Y ]>Ǘ` gf3B2U`"E{ o* e1DBBLgԨsE(eHi&vQ&AVB1L`L8I2c.5{ -D2ӟefr<=dbL쁴D2 5+N%yW 0PqP c: ^-6e@Mx`Nk_3,uu3'_C$ɉ?دQc gV+*`P z ab)$Ŷto@iLxf?2 \+ou.|[G?Ӧ+pIp8pBLxf?%[J4uΧ Rt%L`ت=K$ƣL),u'2ĸ<Ja;OLB>%N^hD.|ڸJzm]J0qzخ 7%GڸJ#dk=~6nҍ+&@w>8Qk]0 =d3}O]&!%W2_3pC&!%W2af@w.o8o{{4' "e,,;OLBopXĎG&!WVM~=\ʰ3)p2Se_֙2ijᆪX`xXԄ x/sw#鎍Mfܩb@y^i!Lxr: Ud`WF r˨`Mt])8hi.v>%;(BLxfO^^n%[l3cfl]x|f(MwONj*ϱ|›[_enǛ *O/i/x<7c3J7Ocr:53j_Y2.J?ᆁ2=澸 =xkl.no| /.u,(o>R~eI[|<<y|-'h6Ď(@ 3vCH'lj^ir4gxB,5%GW|ڬڅv\qH C0مfIx/%|ϡSbtzY9ΐ _H 40y8,9ZwaCzMg=ev甲BNY`4sua:L0ҏp^3WFʓ~Eh}:r/t!Ҭ(1<x=<ʲB=)<f~΅9¦>U&qWIOux=zz~^&{0L+H>>R{ _dnIx'$։t_2@Չ\x khIcEJzy!G3GW'҉<.p]AsIGeTM&N)s̜&|(K,w:c=:U6p]=m>?966cK$]2bAm2dlލ<pتKɟaAhd:D-d=O.x r_p6%/Ba}vPDvW 9379ym>[o_2y]>[o_%E$DnE}͛WO\Cխ" eyCg|UΣ;-KB9t 3X?0LkoΎcmjWQJAR̕bP]F`W(c+do%OJZ{ϧ{XQ&ZY*/zsR t#8voƖ@- (}v@ª'9I^"xu]W%FȭabOFmdRW9I\<ܡtX 9BBp!VޜOd!;(U7+ d=U 8 `=0k@pNRYj!(rVk@KqNֱz'9^jXWirHR'~;LeRwP&IJJA9f'i 0zȤA8x( 0;oeY( 2yȤ\U&,{x4dRyA'5oN.Օe 0T^dZ`,y)}\'SS.Tٺ*0u n^ȹebϪ0d(䔖Kls5fh {<J^0KUK:Z/!dJV_d r^'o[N& 8@y ]WQa2CX`PpΉ|ĞaI}WpM M6ous' R1ĞaI}WPk!UFቴ2PF( MW˪h#}ҊVб/] 4MZA/<=\LVPс[#*(F='רb ^%TpX8^&>ީ$EsG,{V]& ^8K,yQ}YRgO>A ͵R_zۅ"{VC&^u8K+P}YIiKgO>C_ gSP'A7fN Y%^i8:(q_e(z㰥Tk g3R>>I gR(Ċpʤ~H%٩ebϊI|CE*SC'5ZU 9|!'9K2.#6T4'hXEK\-8O^T΍&K\*8^WN&g/y:Atsā$xإͯ γdd:/q~{, 4BP(giK\8^ 7l=%o. EM2qyeR*a۬7@)r Q<ᆅk OJO 5u.^^@اj\OϹ7 %W<n_Ft޿h2%`F4JOKx-ddRoW͢f3'_rY^sfK\l 2qy2BY$sK\7»`|zN<]2YDshJvqL& -`ʤR+[,e'_:>.L&K\7dQ19\r暾9zu?H]b}s >I'/jY貋"heS' ܳq)H `ˤ~ظ)޸-2qyz' bkOqB!=|5Pfl-1yHn0(CPeF<ƶO1z\NIWYǧ- J(248v ./&0tc5]^GЮ-k ^Dܢƈ+=hG.%<bL/?$G3"KKO!/~+EVaC_&Um$dRkTyq:o*:3uKIUئ'Nljd _9)*Kʒ& |nDM$,0q`}:K_3%٬}M&{B'sYP>Scsh'~w8>}eRW8Ɛq Tie8ā!MSYPO!^qP c 2`B&MyXx9d:G734ā_Cr,#j%`f.}#_G&F(ǭpqD8sLؚ8g.M#^&ryOV~=#CW&|g03I *]BqKq4~%_`gDhLA&(V-rG4^N[؎~O*kWv }oӅđ] RI8y:u%F90qk}Ze.2k$?&|OI& (f ]Uv_>f',O2qk=SC8p,GVH94,^tXdȗt$]^%2q}:e.Q&,>2 DJ8r o7HI<ǓXѸG^p^SKdL)J=NdWI:^< :o2qP}dz_k6W}oṬ14~#\đ/(n  r-f.a zѯ 7!@Q/hG /oH <^oKZ.$5IZ[` rFp漠ϫ>[ ϫ>{p!#H Zk?o(UL~H~{?/ϵLLy.2 ٫_/My-2 ٫K0a8M>o{Pt>M Ly>7l@?{8h8آ GlLBL0{49 +;N `J ٣^utIpF1Zv|M1:fx=A?.%Méh7KQ1peР<5cP1` h=׺` Ni=CktW-1_-gױ`~8\Jf0KwGKٔu_.^}˩5_|ms>;.jt\`k9e쀆 lk9>Q{ ]2r^س2n-gHMqklY>_LYm89>PSe^[51pgq>MD |Vhcӣg4=P6bG~%&?q1u#:ov95&VHs`C&AW}/y98*ȅA&oL@ Sх%eQIaG~(~eHaIF}'lIU2ab")xЯ\&,R%8:6 |NXHwni?~ 2C_ev_u+ XTY~tCW`\`*& 󻹔$% ㏒G(%=P} %(xBs2ޣL%xx>TD]2 ₱\c$ +c$?^Mtxf(j,Bï.&##T͟WXD0c-Do2 j͹7J"!W? 2y"27eV;/s)q8RnA&6}I^.θ oC.{jg$8|JgT ܖ wl]JCk$\מ>"" "ZBfDF/?rJ"B :]kGq{=6w\)vT`y L䯃D<^=U" \L`(K5ItZ}fKH5 qőv{xT&H5oK\A&_q!7\`W uU@ju!`W`4gq`WOa4p<@tFLT4n\o@CRfp hw5#zYV-24FްP:b#t]Ex|MrHbo]Jz, Gb`l8쐾zxDPfEU:i10>Xxk]xWǤ<)x]8]74\YuJ#m> p& -ev] 2f')x]!8w@^edl5&-A8h\#w $*,BNH#6uy0*Ь]ݐ_SvE('"_3:l;jШb2B>Iy[v/POp77l/RP Ujv2}T#wQLTi9;lWv""/Ceu3F)PP;lKI"#-T? \gm[lƖh0 $56amʬ &ze[nW Q&f8dV]J^g|uqfl[U&J 2h!tc2°Dv39DiϏLOƅ^^y f|AFv1]oftd/>LR+STиh-DOV5_\]&Jz}2㆓k„p(ʫfl*!&c⠼ RvJy]z|G2Qbs^7(f!bȟ{Èb %L̘T1Zjp x~CFɰy46TPDY&R()9koqdft " %H+L5 ,X[ua%^X>+{?&2J6wj^~l0Q*3]fgM|ϋﲇI.ƣLTclx 5 6Q&Jlx ]xg:F2/yuR1REW6%[#1#^yl31FDơ_n^mօ d|ld9/Rm|JC~׊V2Sf~We̓qW;yN.="/â*s&~ -ꊃ "%>`w\B; lL.}^Py| irG̈́ɷ;^;jИcOZ66W3LR6/26QDh&0@:Q^| <ßy|0]| J?}xɠRE\'"{k^vA:_dig~` rpAY^.%?u:{;|ŋg zbҏ0d5_…0^'&.Iz9UD2W&5t*UyLy0^Ӂ%?^=Uzڏ7>}(Y&zd}^,~Zt(eӱ=Q)0he'{ #8vPԴj Z{Us`;b5LA/;4vL2줆$< vLyO562i/kgߘ jÏ[b5mm^5:MZ]ՃLy2oj ه)kIÏ&Bw? mkYÏ&>w?˪U ?n5peIckQ/yg P7ֺmr5 IljZɭ -@X ~4lW#^U~<30HzgP_2#c)z9ʭﰨ gepGDͬf΋e5, xV3jᎇ+:Saϖ |ӑ4&>4i:`a"2u+qxV`UBgP=P >U[Qͣ ϳvmVPԾ jGR']ZhwgC7JDjg=d!oO&3Q<;ސn& ⌷zEL|A:n-ڙta?Ϸ'Y~4vw(N$ ~6pMR`ĩOd`$1`+ycxBi,T-pdžištq݁ىZ!Ҝ}Ox@*iglY0JȮrgwԠѵB 9T5^z/(}xx*=LD[yФ6|ܞ2mU\A^aKMs}  4s"}ձ4LA_Vu!4mn%^\`Q~y_ձ4̞"։_Hٓ7Ղ_j b.2. *k8\=oD 4 T< UE`g׵B191t0LbV(gx <G8k /mB8Dc^͝Vg m-\:I}&&;bhX~'dVCDpI M*!}sߌ-S-Dp M0Wŧ2 <~"z&o2io(tj#%e =bV(g>bR^W*a8pP3Hu+goH$k9j~ jZgN"FJL, 6I&4w̡ڀZp\/rB8?aoFho;Z+cpZ!x]KQjIB_/"|^~E {K̏4a/x}p?@sRknW^`<<\ϛ8jMBc/9S}Rĵ*d/:Ϋi&4e6nًqkiBs^vъC8=dZgrP">'X ^e'8䈳M{I M⬒HR)4We-'e.e0mɤ1|^,~^tk"o7*bkq>_[-*^k *7OHp$rqv^[neE ,/cao`^\$U+GEN{"⿦EJ{WF^YdT,vkBgP">J[Dj">:GVgsk&fk&q)>qj* Do&>9ίUЋZN} I\Z/^٧"pP2i/k/w4xz\+O)k;XԋZ!}  eV:٧"n-ҊRQ&pKzȤ1$w$6+ ,xBY>7W;+@|>;;/*`|>;jt^V@g|wa#JK' LLk`-)qoޠ^"V(fW ^\ |Zp𼜯)BS*L4֢v7|fZz𼞯MkA6,)<{ZФ>^Tu:v)pi'MkuC_ߛۂ6mq>ngn;4i j󒾾7|V!dIwXԴ*q |^Ȓiռ$lyJcI/fJtC S^>-"ם乎N&uix=S+iuFWZmy_ߛ`n9>/% ~ 'x(ῖ$+z\X+ K4h:y7Wı-Hh.{s]P->gZůxAlk57 Z~v{SZe?Z^6.*j&7 s|m ϫTʯa"p2 ~|i7>Jn `O0ǬQjZ&8ǎ-oG`4ܠj ' GE 0m૵5e ں߱P0.૧ 5L~Al;jnb >[wI&.`9>{ךMp2kѤUʻE&⚃6~%‘|l%&LykiZG܅Sd"9ha;w%W2_G ?dPj Xˬs)>pk%&ׅd/.)cIpH̢ Gb͂fq=?xX`8sY|u13bն~}} &pp|_SS*a"np< ;WkLąnarMsY2a ]&⪇Ӱ gP.ğ=OI;P2=\jOÎխ[dyGK1*/>gnM\[?PeLvN-PqQQȼΉQU/;$J &.}[ ̆#ukḂ*~:v~kUޛjqBs_? cw?Z߯L1׻%sSMx^Ę}"'GAT++Q2 ~0?$CۧZ:/7*~n8(t0IFܸ;$#zpY?gmIbC;';X2T!Þ>[Erpq??w 8q& \|}c|۝>`NW6%d$W*>;jИ\pQ ݣƋY0hlC kW')OI&\{"M\ΕY&¾&TWZ}N_!.:_YG]IY[ɟ YJ~!4$N8Y%<16Q?6-U+R<1BQ?6e.%ZY:f5sG ȉu!]:&K#c!Qd+\Y&{pd eċ%h2@Gfjdl,2مqd<D.BetdDJbV8?e #OW_\G/8M&jn*򴽿Ȱq}7D8 \\ϣB4RY 0|dҔ 'n+L $N&;tOb'z؜<;~?hAa|(<d߱-wQe'805 ;U#YYWxc j`?rjzz]89Ⱥ BW$c "`z'*9A}q&^|Y5P|~s+EY5 ǐy#,ATŰ}EKХ+NaT$:-AD`ߧ/TWKЏ=p$b8]˜a a"M $ Q&OS+OjH&$нV&Rl[UmodcH LB7(?;,2 ktd?]K_%+|~Z`JrfN|B&q5K3'IslU34s[ ,͜8WTqLW,LBc [db 02 n< A& I&ӣ&xp ]@E%rCp"?rO&q.9>8(8kSգRp`pNئ5~EeyMCvߴ„aI8J͗9R"٥%koW <@znGs|zhܧf39lBQMkeS%+\cv>K 9Pi=[l[t'_U΁^_=˒OL:dC gW>%@nu\ɇ7D^NեLPN¨=!.y\I79ݜ'wfth ޺n䠒='4o] ,vBT*/+KS*Xя-_;V*Yя_@d'4A +Mw:\*Y5nohC2oqIQڝPIq쀞a4QiNPm7}9Yg_F9Q5sX02VƹŁثjd%ϽN_=J<*:td&t_G[J9M ,"gd8L8:*TIzy^!2D\7; ]hd"nИj}s.'DAE&Zܼ?4YpݿzU̙\;R뷼p2Xx^v~u,kO*42A7sZ]9(fb5(*ûq2C/~X2&ӂn\(q7^v4x/d).[0% a{P ƣl(dAu*+X1ANB^} X=bx@ +MBTH]+#C#D܈: h~Q͡OHu׸R߼<ǁM\]"牪D0^֟~ `g/e'BsonPύ- Ox9?M<7ᛗx2q.vߜ.tM&>!*Y֯_ l2 mnGWBMeF"D&L A%e;zt21caç[HGƠ[{}qDBW^ 41e1^HMDa."l61dz:O&Ew~<gd:t(/n!vt(q2XXzܢm2PX⫆PdV>Ӡah x=gj)Ȱ'm1)c;J듉Ou[^.]_>>r>ZMXbs>Q&>>ZKݥď P4_wD 3YOsYPhuۈ+,.m}Jb7 |TMt`a=Wk̈́B:LsUAIݱ$%PG\UU2|+Yɜ(њWڴUWݭ(Ѻ6>^03E ъ\_=˒(>&% gW7] }tM*7ڮtlvOJ!nIZ`ebf2, 0Bݔ MB ,Uz#,)ъʣ7jz7M ~&PFYM&JVՠ $/8_!hh] K7j!*;-k(nJhZwɶ$ǚZZ+[-jz7 M.WwHjP({4jܯ1 ntQiMnVriPu54-T(#wHzfvSPqe"&vsƠ8T iPhZ3LlӤusFg"5-Y|(Hn gR#AA]KA^PdnGdxӷPq xqHߢϟΓjNjNj52<[ ]Q6xX"ã=ф&F6'NB?^{<ܡؽ{%dz*G޳( h G)pf67(y42'eM Vtts46Z"3t]ABSE:KA"-!b.$V2-ɆyȤªonPFd7eXդ h ItcA`-! Tb5b-7l2sBMsn-!Tc+;k} ܦug,s6ZC)j.. VǐZt,> p50VP<m6[EbnFKc^+ mߋ@-"07Hnn4=y4$> I0U(r6Zô6@UӸH "hU 16T@(]xp֚j ݒJ LT6i[,ps|BR0;?EOé&7q0;?EϓTMnP?uls* h)N?OZeAAAgylQUf1QbCGXܠ΍xjt1+B1}tiqP+M1;jnMiZ8=]CWE74O-,rR7Zyj`Wtbv-AmzT&]5D[nF5kE{4ohcZ6 iͻJyh n&*!]sAU7)]-tAV5ױΔqAJ<Ȥ)wf+^-uA)[5Φ,^uA\5,!^Gw$vElrJ9MUu6c8Xji[BԺZ邒)jjM^BcZr06ίn%#s)z:sj)z]:ƄsgsSuu6 j UenN]WVjspA/]SЀp=ʄpXqp\,gyMbBM.]BM`BNZrs^*(4y mjax@l!TK(VK[p;//DՀ3q jm $兦k-!?Z-n߼T̔%G0-ǚh$ЖWU|6I jU rꪆ.MR|,{[ag8XgFnˬ.|6M3ՒmՓ+MV_h!ܖ[=t%xuv"gV-Xy\g!Y]Dn,d^2)WYf!ږY=Ŭ%^VYHõUVO|1s ,X[h |DKʒZlb UJ̶֪P$VO|sns1mE/3![ln[fu1LhVXwmyՃ2_ej jK gńnUk=|[S 3٭|e/-$&Ts+{Ķ"̭$ڂctIʕP[Ruʭ$>zgVnn%iTHŬ%trbLJmEŚ/4`d<ʤ)X9ha+-{1U )*J3j~/&*[%_I|7T %Ig47%UWdPYTT={/&,NO|1ayi#N5nSRU/=_0F̼Ȱ|1eyGڹ: ]gVrKVU{vWCf/[`IklBUߜ*LaBJ I&BC6>MK]&y*fMva6ukPvetP-DфpF ] {>7 6Z $hȨ=LL\e^eXt-)4&,CF8-jB7} U ᴈ%4k488-jؙp%uiT#Μ%k4,XIӂJ {qVAcpeY5pUԳpu}<ӸI WWstS^p]\WI WiWRϒKPR%Yw2f(!+\W'rR9J WzI=0>/OBSKz]pUSOw,GTY*K)$rp%?+w WXROݭ"K>2{^sCZKX{%rpUϗSxٕ_P!me"_ɘlt.rpM ? 1roSA'f`h%ώ Ľ-i X@KӒ$)}vH jIzUhC4|(BUʖ4L;;$-iYmJȱ'O|!7u[lCq&0iX{y]*uKsERPR$NG.roϷѕPR$4[E.roI.r8"&ptEBmU䒽EQUPﭛ0[(=}fT8^9-I]>32#gƅr:6G6gFR: aUmFCηJׂi>Zd=HUWܞ-|.*s6o}'w ]e dҵ|\<}*] ΧxA88.wq/PsytX 1[ VI,] ڧxa0:kAW4/8Dҵ|j}CkJׂni>^'rn=|tZoCjJׂi>^Pr2eIsS[PGχx]DTR{v[G)wҔ<5RT(EcyIsSTob+wV [=M Ts=peCJׂinʠ;1ZsSu(8lT{̇L:z[p\a,2MT{ep{/E-z$M!TsopCɷJ؂in ˃XJUtuOsS A8Q esSF8R }߿21;t}D-hϯeEkn2qe_I˧El=ziʾ.G&-Tpy܃j-䊃bbhPD|^0%)$˅=}bz"Y4O煵yJwhdBؕC+|^!(Bs\We _5Dgfy^@4z'@hN~c`&kZzfsUY r0IӒ&FѺ<4;dI43QatgiʡA`}C5;$IjOKSQD]&Qiin;j KS U)`&Y>-M1T{YqwC:fA?4P͍atTpS_z0:2 ywqgFU4:2v8*]-atdH%Ye>;eGpe5Kkqur;iTZ)Th@9&{EmA^* d T$.Zsr0Yj_*[`%)ֿ0UP(*sf0I͒_p[T`}ҿTӷ$5 :!h$5 :ƚ)L(,̞fӢwa(:_z4EQ8LA41QțYHTn2$e Zguyr &)[>򰉉G(ֹ$t&[C>{_=J(0I߂vV柧Δ85|whJ<}'kl9m=$v"4ReLfL5w%KQKS0\g&Ήoʥ&;N_*LjB㘬uY-MhC:AY/MTsr Im.NLZuWAD.ȤexaLyN(*u/ zD>ML (}_+n$H_Зi^{3b^/ؕtoZd 8- q7LV^|^0'tbZj7 !f7!LV2U&Ę/ \%XIN4eIKS<)M7:Ɔ4ESKLh7/h45SM\&t]Z:(4"Q$4Sf`Fd TP53Ӛ&_'oVf޼&)8ZRvx6ȤڍD˲dǭu,)&$@5f8!!Ma,ؔP57ӜʑTP5W83 7ET{΍FKSG94YGKSG94 .HKSH\I}R5K2H+)>RcIYOd?d2PfAaMV ~[@`ML/R0hzL/ݒ{4 jU{A=l5Y.IBqxB՗,AezJQB¾d% Z, [Wr;K肏>/t]MuBƖAez!ƝyNh0hL/X6%vtYN4SVuщ)=ք)YKKS/dhR'j^Zgb4Y2Ub/IKS4u9"AzhB~&ro^eMh0O~iJjR:f;dbb/>i{GVr7kh?YdVsTUW@5i =-M#G| rM&_Aǧzes|ٲ}tI:+)V&&3lҲ(+iΓuԲ grjDX^aIx)>b% S-K {6H<'/.uq0+)ݔ'\A[eiV i/V ղ d'7iԲl'VӲȪg2k`iYZTո3ɽn>A r(č^7(if0d_Q@l/Xuv@P~/n_fEŕv4h)"(%Y[נ齠U~fyn_"je} K%'뗽Fa++W]׾32"kheoRzh>}x}^m>: \IɲϭGJ 7u^3cy\RmKqLnK2{sE ׄ:\e_[ DfdoCA֣qYt՛KPp[5ʈzWw֡ƾ#p0qk]u@J~>e; F7ɤʙNoꠊc;$: \d$1Y. 2C*C1H+Zdȕa w d) xsA (cFZq.G/+RH /=ki 99)wԠHk.S2yA\7r9_BeqKF֏Lv)QfZ`nLؚ<'/) 4ru3w:"?Anp9;' nI/VJ30_5cK4:nj9ơ̪4tt͛APUCu'$0?oW ]R24sDЛK@-ԌfUr֖sn5r P;Vv ,S/# 5xMZ.BV0ftd+Jv1UXϡ%LYUXtjq(:r꯸lTw^2 sţdRmj/6X1NT`ѡC@ q%7Z9#89ޫejeV.)e77_Bi+8**641C ã,+PWw=d*5GAMyz$k`y4[C5I#&6}dSB5Q)ڞ+{*4q,`S δ/Kg*G ,࿒fg ۠}r0cWXa˱O":Q V%h:Ux$S&&QKg O}i( }QW;TODw^&Vl?#f& E|ĝ)$T@6hUjHҲ)ɢ@? wlh2åNmpF $xEγdJB \ **QZFkB`ɯ=mha;H\iIJv5ʮЁ9āi-wo=84!Sy0)(j^ "= T *;%҂t{yflO][Ͽ6%Cۂr{y<8`v ]L fz ]jø7kb{y$ƣNW`{y,Ƴq)k&u:| c'iI|<$T{k$oƖIu@BwħC&^g2:ilV{L3Qz/IػN7T[bn ][I~Mx~͘&vΈcdE ZMox`5^hA/}>L/{$9)=JcWʒ{/y>2yh ۞44ػ7t\c$׻7Yt6+OGL $ ;m/Uy@}Z5%L`A1}e:%: {}Ee,] T$1%:suAak:ZA}mCf rWrӼ<ǗL` }s2yuc />׸7qS 0b,w]zN( F L|u/IdYe(* $ǂyOidx$QUĝ/&Mv@(H$|+gĝmI(W.N%aĂz! WB:x #AQ5Jjw@ڼ'0K-M^Aּ'2R#%&|Q_ŬɵtsjȗP`J>Xg2c9b ygYר&MTA}#,k̓&N~aIm⮀ 2mn%Sj]G>ݛeMUA7gq|YA7g:dٛxw;H 4"wާpIM0 S%^j@7yivF:sH_EyLGWp)4*K|dXJTq 1/foreypܽ@ek(2jT# .ȼy cuBYuai b u#КLZ? zwP^;+ԣiju ugzOSw,_ tߩ}Ff:!xCiRgśuO|&oJ`扻oJʍuH}wjJKAVB5s_WBN"B_3񩊶TVЎV6R3k&U\3) lCoZx-a:ҤjF>em"uh^S+7qU>Л$aǭ]WA' 58a*ޟJ2Z>8^*ޟ*1R@Ճ8^*ޟp@UoBlf$תJZ]ߙd*䟨͈RS+ZrU֟}ua#3޹ bR_Ҡ G:s3I jƺ.|z*շ.3z7PTIsEb47cޤ+D47ޤȰ#/BqZ@k `ڌz7RExujnFPPV_<VFSМVn_3u i=KkN=[iRՍ0#zE2>rR:"0n?ьD}Jg]CUY1쮺}Hԧ u&K}?s/ Zoxx*}afQ:EW@ξ0pFW7RVnN~Of4?pW]LzIfՁnhK'{縬jjV r\M?*xr4HTiQ;)h9+7qմ-oIrG&_K+U5Y6s_MWJ sW\M?ޱ*VY3k UW55 ] UU_]{Iש;L{T%ªZ]s@uIXAYi.t5Ypsm&U=3]sIU7Οnj*E"-g9hͣ+iӆIU͟jFz!?sF]st-cq5\^3ˀ s'y-g9N_o/VrVn8vvI ZSxHK}$61twА::QB ZMs*OKCEWUX 3;5>C*tW-#5g,x[!ɬ1!@H ZrtSO %2 e(H5&C řDistSO% Eus<9x5IM(L+jb{g%=zf綠 5 :x+ Au+W9k9{9*$XUwjqX\;ǩ9JsIMgXvh ܩaT:hMo5"Lr,Ր ۴FxLedr:U}0H>myN@: [ ;zRf;zLL9)evڞɿĔAj;muN d:i{$T#[R;`;A[K2A9!?<wA}w*-tP"iS]VY @%ER{;yQJ!p"մ ^w~B#(}KA| i(}ycr}s}zDjHhXSz>j=4߆II3^45;-̓qWygrIUOS츑1]j2qt0(:m UM.`RSq'3)ܩ۠B`QJ/{L}UZу;P&br#ҭdXB L:&ِdQbkivB Tr)yfRS4#ai+e6wkSm!rGn_ uEһN3zOIxFu2p!&3w:>HLAEW=t|juHJADWݱt|ʠ5@dtJǧZ FǶU:>5СCB ]tlѤQUncS$;`t KzfW:IJ;u)~g2Q Τ;H]?QAg˝G!pO (e7J܈Q3VzhP%U•5ti![@@5P ,@o,]qQ}ܩ`@*򧑀qZĉ %҄0@ ,BD4e8PiEAX4a0p;H 05upb/sIO^;Sѝ~nmT`pNO16,ɇm};?uh 4w~*(XCr']Ot+b_#) n&nfDmT9IWa^; 6,PBOѯs VPBO&ԯSUt>̤W`NM_{=WnשL-z W Ff=whmTŰ9Iǫ).=E/]gmzXBmr?]hNmN tYj:2Ev8 FsT$Y՟&ޟIn4[x=DK5Ԗ/ӵ5~ڨ+)LOWe$M롵Q?^fҫ5I^V< Ԥ},83uvަIv^׮(< *Ě_(Ħ/ֵc5]8N,К[תjq.^(G_yWgkP<4mZ"!}$h;tBrg]Ioz,<7_]H@_+|r un#$EUɗ;5_d@_n w i9$CL:4 )wܷ֙,Pf^!WH~_d:]S&_.OC2&C2?wW-/wq[a+B3:d )2YV|m7M)0,K,t,KvYt>x-21h],w$&Ρ?7 ӈ&f[蜔?P'<M͂=uNQդfy5so5# O틠4Tc{<&5c Wϡ;5~b)M?@iE%JHRX,IQ^&5~o^7xJHDhjyDZXOMXF|3Aքcf2^$OqxcLk8?f$S^IdA YgU)ZIa?_q`z?5{+I,`7U#`"ɫTD+=+CHO[|xVU3w^zK>-5#k-OyٺRYqqa^rVE<6z7SrVs7z\Zcuҟ&By:|=\oN7 \G(n=5S=~] ⶘x3%{?|4QimIK5_7MW"EҎ]=x /0/e `fi{=.3wW{ɋ w{B0ըHJ䱯^F,dǶS^?5䵴dL 'kIk)"U^?஖b=~0UkofjF>EIi=(.~ZwvK+=vA}klփ;7DRY&C;RHd=~ !88-'wW1( ྿vHAA$}yKF2W T?`Wf`#Η>W`m=$T1iD"9—0]<HV\UTtüovHUMY#|mA\Uݤ5"!q@Ǽ8d* oxLk`dU9"i'U}c?_Uy 0}Ջ vS@[U&H<4y{@k[̝CRed+Qa|۪*o9.H6yo {+)^=d/)ɣEɛd#c{5zQ& wja+ȋI;9x[ժ8HXEղHħ6R%Rh&p]yRUvz>dF>k e=d|v6#Q~}yHħ:D|i?S #bOMe1#H?Uad4"$ޟZ{V}Dö3)æ 9 njDzWXx@"īV LwkE>Z L]+ g6"`\Ӈ ]LFۼf$@'m=dd>@8R!G}9O&:Ph 5j23ɭVx^qB?ѵ/'kW3KΏ:xw0j ^ U{c0#.q-0#Lj%q_G~0#&DŽ%ئ/*h+6#`’Dc'L+ha2?D5jf2#H@HVRJy=iV/^dHP/כx3#85k4م6L?HP/oֿׁLbw{ ֙΄4I31h'vߡc8h c*|qt;0zKɫ̝7*ɫq^soFSჳM %{hTrgןsTkUˌąO[itR^;cv&N#  %qF[䕪y(Gy~" Kɫ4s}bBOSc }q~fT9-4 DNsa5ğ"ʌm=s@- cԅƹ2=<.;x W&?R|}*Û2:`$_E2 _=ܓ fg_$mpHط81#!h4 9B]ݿuњitڈ;at\`2 IwbVEǑ\H׷$B:^HHcP>kv{!z{ !_j2WB| ڧ|ʡ:[G5J +wq{BN8ؙRT=wq=m 4Z +WCS~okaJjQ| \8z14^ (,g-,9x0v +)1*o=_9ɿ(.,X WNyN FsaAxzB{? k8 |џ9#m{RW ]88}ViF_v{ҕ:Lj62aFZ-~iWf$@H@_$2X}GW.^u^f$BiFz9;^]zswE]2#ɗ ͓4+w!Lw/2WPw7{~j/: ]uB;KG P^q.4(OIx!_50!Pћl&EHc#NT0_w42IQAr\bw{&)߃N9gڕzo3f$a//&S݉+ZŌxkH5՘Gi~HbF>EFyjv宻 Y+I*YWn|@kab?o"?u&;@ss去n>7\\mEB ϕݠ̵#^޾/PPf6}ځ_/PPee͑}^y.s;a'unFOE ̕[Jkcv䓄4s5BWDxLa**FǛ2Z8.iv vݣlfs;1ǀ;7וЫ~pyrz',Wn+T9c+וj@ ˕Jw U"LJY!\y$+VC[$K44+Օmyɒ DIy[ kYe:1 s1T)KXo!x$ j= !=j7=~%I(V+ fXo:hHBAr7]_/;^HAAgmt_;T[ނ3Ҟ7I=Aqۣ?mv7c#.rN~Ö54 ݹ&oUwn'(6nuniE w~74"T &GwF]ᰋ ͞_3zNrPU cjmߍx佛v>tڳɛe?3QZg[{V3ZH3&g3#aJ c{D2 Biao&LFWPEu3eB&̻i EJAgt_=F3ݤ:-aqC(p4QoicBչ=ȻizKTIXB1&G%Azc3MW)Z 4 4)<-iGi'QM?|KZQZ"QT˚; S45f4EOSc-D~<طd%~p7Q<-o ӷD/9oigRJ_30: fC@ZU8W75\'GϴSxӽWy\AgroI9\{щЀ/|nf$_R?xk|r'G.^D!.u NtAw{S{_S-e6P|n:]e&v4zC-FGPSשw}:2M^?OG:\mь\=Hw@S)I@0GUӷשTp&nS$i;Օm:6A7P ћ`SsBb=zlyYXH@+hWIѦpSTOiFjA9<$/ mX;M\C;n3y7_f$~BhCTWlyq玳2I@h? MgW{$*{|>}<Σ`'B~>!I~:`;:@P o#9L9]JR@Zz$iMvϱ І«;0K> }l泑[ |6^ɻe:> {n |9ꣿ8- {iJi^YXH@_L}V27çIIea!y ~9D}S77&Qgqͮea!ܞda9I`Z_ J:[#}ܮ/ %d%LBgc[ɑKB8qo\w ]-лp{|LΖEv};3ڻ(lr7@{@G j{r8G2=9B;&@r'sh|?Hv$pRI)WkV tF΋=I}f3X925\m< k{v4TYFwzunCм:r5 B&Y靮IͧFct>(e.f$mQGÒMRҼw=6`zu]Z꬙ՌT3a,h0B&5jDq~;%Cܫ16FU𣏕:`;{I*5sgI=1}f$a.0I&uWZH@G~[Ӿt˒G?_$̈;:60ewMaFb6H!Rbȉf$Og)eeƸ.ƘڋŲ9͈7|32d7,u[!W<U$:z$䵣HGgcƦI%39 H@hJpկ*4#>dL*\Rb)=bh{LAC*CS/PPyoȪÍ,EGs+WZ%Jacf Gg_Te{j&R0-;5#_ŌDιꄕC3}iujFKU3V0:nf$JkF1ʛB %wgv6i]1oBF*)Jc@`bĊu0&}gNjuzSjrPrO剸ˤl:|y1+7-~6mA_fFzEi*mHHv%h&T).jl(lj'=m<|@f%Л z5U7Ϡh<͈? 1l{:;X*Uؑ8ѳi2"7W '39菛3“Vkfٷ9vN@oefڕ&Q)z̃Two19zɚW=N޾Ӛm,HZ<2o39诃k +ez7L͊{/&ǶFoXYvho4HYLLEdLF{JúE`es첿')OG15d.ýŨJ6#7.a-LVŌm$^K۟1M spt`{$8zLޗ@$%~{_b}]<]Cm熈<s!7F PFƎ 7 ]TuwgDU%6rGvMxhfv;ս|64gd7FPxMXgp:lsɁ\g϶|d ..67S@wѹ,LĘ ;s2y "1˧|mEYoltrsieZpPA?miQ`q_UB_\?]<{rUL n_h2<س̕ޖI*6gpdN}Oot׭m/6_u@勯b#? z}HЃ]/G꼛uW|w;͈3{4@fyH@\I]sl[2#G#aW3.WR+Mx={WR+O޾JɌ6G3vUf3|C-jjKL}If$/#%U8/}@N^d6 xGH̙Nm1s? (N+KoJ<%퓿gN-dFzƨlF">V *jˣf_1}O=x_Zk!诃3/\1#QvOm:+?f$S^= ..SkL/]/В>& !`.xjC|d%}`QC2"B>wB5 s5s@.W#6_3 ߻&y HkX Ump& hkcOP3gŌD521yAZ{8:*F^F)5 %7~C6UhǾ73edF_xqN__HQqWcGoo~ =\]=:{$p-vetfLPE$~[ch'mB3X1AhrDo=ۂpv)q@Vʑڥ?!Gn5ck`A4rfyDPm?_ȡ+8C{`vEaEu/};TYJƣ{w1#! $8ns-Ͼp P(%D>0SN~P*zcFBh¡&9^y;OӮ+oT{!&4Ӯ+g:w];{4)P ̧QW; 7&1\݈eOCoԊo7?MV>L vSQ-4I<*QτiVz& ȇ48*YτmO~lܭ$'מ0V>oKbfg&G_K%$'+ԩoef$ L%(p@BW"> ±u`,Ncr{K!r;uzC g##1whlHwP$ѷgǃh.JVnsyHD4^uVZ7ϋ1<8K qZ^0 Ŀі`!Ͼ|"Do0?:{29ww6s p@ܭaOw` 9oxxP~f & ™qvъb/z898r Y<w~ʄ|7Ɂ_Ϸqs χ'?=xL#ݿ`$ݿ0%1:Ztu%tBx{1ZE{3< E:py Oy q/cqp$@PL'*Է M~?ИWGkボ>vhao?jGš9na % Dӵ $r iKt)D9D$~|29:Qˌ]=۟¹q׵#@b} )DFGPw/ÁX"F>6FM >^U7ͮF3uѹPD=[I-|;ii[NTL'qN-al)>M $ޚbF+iFb' =Ϗ?M >t+R+414I^",T('qjMm&8Um 7!!NĢ@pӂ$L.ʣm7=4Iܙ\1ӖEn'!~d!m[8IE}1<> y2}̈Ve~e.* .16> AsAA珟 MԃCkg AsށBJv/;FH@nBkyV39-4a_K!4mZ޽-zjd} jm{f) Ӈzi39z@]'o_==PEn CԽ-rcdZ 9Xɱ"lm mr*'E[le@p 7C619wP-ҀMڶ69{z-rctXG ȍaL|ܾ$d qmcїR [0$=nw4B#q)e*g"mn |$bm @ۖpw;?Ŷ%|;yHb~>05.#|P|>Hv$.5euglF"_< "돃=fķ_j-{kiS C?M=q *x'Ȟ z<|p[^ns&Hh9-9N⽙7ϭa}r x~X3mS -Jɱ?Q`U'wq#p@O۫dRQ1mo鷇QN$go|M=r v ጞ{k"yS8.6{)_6><:L˃-l|'-'G.AhƇjr:`5Տ;k}f__&{3:-^ܽ½Lă.ٽm>@Dgtwqu;,L.sGDb+\?`v0-qS7k~?2gQOow ]˷'~D  ɴ ? j*i ~Aۻ^SpOӜIy3"zMьY\4vM̓_qw05<)_qw@54)vL54).LjêiiNqaJ.z4hbzMgS\Rg niSTvf$@|3sץ{_\}|?p1gŗ69raVͻ̈w7#Q{S;Y9t7Qu;X k 1)nی*~m{FBw{}0Nj|w`Z%=x҃6^pENm>)nL!µINqc$M=u>XLizҩM:Ecph F֦:EqO M=uF1&ѶFpfmBiS4>2aM=NvFy&M\dhiĵ)LvF&juO;x06TMf$C]k& 7OE]ɑ+r~iM({o3)`P;2U;3'R'e{u K$0?u}\{[ ̦fN`X[>pX1'';u@yq1){p3< 5u -eӷ'G_K%e'cM?vWK#deo׽LCg;< 6u{N? \u ;,p?h <8ޙO? \˽́25|A&°AriN? \/]0ٮe~p(u8L->%DACOsՌ_H5&1l !U ߸jFHlr&rur-ruпL*9#(*-z<\jk!*cO$pz?6XtJ;lpvהvX0oD8݁a69%Aw1~8{i]֘;x.YhaS} bL]Pi |ưk\a7Tbec⭶?CZ\ ӯ^[_Zم?k!hU\*UceU˟i ?鳗1{KOebgrH>2J/ 2>;x/j%uMeqw?њe.+Km/,B:Lׅf p?qd%Oi8V>v5sg(7H>ݾf$`ZV& l|F>Q>H޸ŌĆ) S}svq}q q(>W/RweF&f$b _cû඙kc;L'xqt>w_r+zf/'b%!ܿBy q>Wj%[c,%;S~V@;v!~}_AW%pk4DiJw3wS~lZ2ܒ"1Puu."_6pOx=Թ yBHC0#s)yO1#Q ÌDEmл1# hFBFߑC?s=yAouީ>W:WNoԁ(KkkC;H7ߋuQfPqmLNAvpon7T:LFA!ޝX)Ss6  i`|Ć {. 5eA "ޔ:B${5i!aKhXLtBi;_߱*Z> {pn+klD"{$A%"89HE$^?"<# ooЋˆ9F$}VFA9#Sh26G$!X횒 񷶛ީ8|tDo̥2RHqNL w]_32#SxxAT^H~y]#'e\OXSMt=w#X8qq<e1 %dFƗ}2}0aٌD)X ݿW.k@<v !N9;oID!b,@szLm<An}o/&ʻye{1W]ןmÍ7\AHí7\1L.U*w ?c΋@-N]!h.%Jw\@@eV]ϟQ-x1U0%tไZNZubF/xJ䊉wSGߎ3ϲSN_0#a[H؟r6[4#ڤ_3Mփ8(wSV^d<}hSQ[˺^ ۟z^ֵ3DBn?EGZ/yql A/˺Z^۟j"73xJ"su?SHNh\n߁H<2gBf;>t.\s]6fኇw 5DNA]sit$PW<\D9554*.8C~<?'sz7lf鏸ް J2#A73PdW%o8~8;BHo+D*̹.= g]s jVY9܄#1xKw3vauw^3P s_eq[0Gc?Bx # L{xCD3 Ϗ^&$LzxCZ3 OsoֿF5{0sX.}4,f$JyhڲX\g_6K?4A|SѸBڇ?j*Õ淮أJƻ/y%1U):6+ c{IA|\SuK~dg5p1DL%QEz ʣ$6 <Nd L@@Cq`["'er{<_o L.x:t44? B|ĄIHAO\gNn$xdAUxTx3-0Qoƛ$<&ގ<-/ϛLC9(K4-/O :H ɟp4Dux D䲇wxRa܁e>^ Lws]^Y (S-}7@ ן:VBx`ѽןZV+9Wן2w}7[ `],O}x=YF7w›TI,%,Outc00OJ!']1&g-_**,]w<чՉ욅w<1K2~E xcY'!hhrp>ڼ:ơub/h}85xϮwf:7hsěin{~yu5: ge$aNHH+ۆj8(#!0N",Qmv<1 xԌ{O~S$I[v;w걦a  vCT˚Ge$ 8>F|ba pDm6&<;37y.oݙz{|?v2vͦi\L ;So X#pHBy.$cpHy."pHpT|Y e~3" W`k7ǿS5 $7wlv&$!75X᠑x;S H32t߱&ǿUzq[5]7ǿS5 '$Ƒ7wlƛḑ8 ָ39tߡ}SG v:`A# ;wnƣQM0wlFbz:okFbS5WnZ2ȷF&=t@ܙYG2ƷS] }Jf$tﴑGm2Tdi;mdѥ۬Qi8%2HǓh8%2Gqh8%2W^Ӱg36Tof_wn3?}cvvdzMx5U(x㿱$!9oDَ{1hM0oFR=;onjo |c HC#AZ1ՌӚEKF\>SŴ,7)S8aa$FȩnOܙ_Tig7$Ja<1 fG ySib+ xOwK5[#? C`<1K=$\)C?Cĕa<1N;VlpBOs(Q~hr!:(Cd\)C0@1@̕om߹Tdܠ~)_02nr>x˧$ܠ~fQ'M~O]IAȕS++6(rSīD\i?zJ JLAY?ѺJ Rʲ&Rmreʲ#mYePOi8HAc?J,2\-IeʲLJ^ LAY nKZ *LAYADV)ChN⃲,闷N ɿB|QIA yLeл,5(2>Ak$ ɥa֕Ԛ2fA~MҀ AM_ECo]~0ydMʃ믈^uʃoʂ\QyPuY4کTe5Wm8׹:|H@_VRm8׹4 UQ~\J 8׹0c(?u kPл*5H_zM EqtsEt](?uRkz. Y52c[\-jw凶,I>P",(YL %R Q8PB,`Zm~(WGxbR(!bru.IJ* ڡ\s㡋>P- \9m)n(WxbV(1L4:B aQ Ց7J3b0P"oC:J3TǣC bQ78PB,Pכ>FkLà_>W/95(@6URjqϥΖoH06U2iQυM,dEusMxA(}.TMYM9}TIAL_G>WDI3j!eQ~\ K ˌcr#a`f au:cؕLGwh@WɔAotA@* _ZBo6Qyov,1rZȎGxb(!8OQIk*$N![Ymⱚ0 THco<`1 EbN8#dD ,DX%dGxb("2"',Aļ:%J]cD aûku>5ҖYps|f.@ }8؏4>u[t% ^73e9:a݌:U mKi{@1Fk1fD\nFwsi4$mƖ wsY4mƔwsM?ۢ[5a7SXE6L1J. xUH<#eA7F,Jɡ7,Jzf$ f$LlQddDb _ގpψxYc%Ēe͋ Q-wӋ۞bF3eZfه ꎎ4QbΡ#rfWl,9dO}aǞ83;S=s ncPk*O|6SEo'SkY|gGxbjƮ]PA8:+㩋veE7ş>k$;{^iFa0Iooɋ*Vw3+B1SFﶗ&2ɷ^q3eS (Ùvpɷ LYT:d얙[8=FM)Kj0 ߍET9^fd߲boSMsb靘UwS\:HATu7AJ4U7;uyRqhk4 b@}'S|Oc5S 5}ɱAU8Vw[o&3rhHճ LTAwIA V37 6J#puq͈;~̎``AkEk0Sv]ɵLA5Mo5#Qhx!ON-kD!8qgɰAVA c8qנ`+5鋏kCNv t|&6_^xoh!Me%1ȗSFiLAc 5J#:qa0u0mV,d3EECwd̈B6SPh𻛑B1ScưwdҠ+#Yj@0\/95 xK|k;xq?1SebȖAWN, , +'<tlj5ll\Q_9fU;kNN 2X&waP}{d&]0̢*.f$(}c.yF?O{n@HLj_}HMj$@_1#ma*)/̅ύf]Aug:6]\^c =Hq5#AH=a s/N-|w.xy;{;N}{m~;{#ޘߎJػ+==xy;;@H),|U~lvh;M$_ڀ LѣZ&?=@-W h,˽:ߥ5͈3:)8gBQRFǾVJw~]uN:H)Wݯ=y{ RR&ofD_gr&ץ_T _w %H.fU JUsU! kqjtUa6Q.ǹ^4k+qj,w-fOjQ諸 q95UZzU2z-/K_z]AS^)}/u~H{f!,Z\t,HCaџjF\2q}ܵh3}H!"gOrGUiF?<9W#Q.3<]0P@ʮDZϓOzGP]5#e/*rӈ~d\Gy/ xhF"9)8Xlj)}F<(]ۢH4F%y*yNfC+?}(<4̆(@G+oQ~53sJqle@G_1۴j ~._{tm hF"3*»c4ѧ PW3—,^X~ǵ4cqWTf$ׂkG]3xCyٌ֔K` nqj1W̽wLS="q$V3 =sX5qtP,{G}Q@l\u鎓]ɏJL: 1#3g̳Mcpsx𞺥q?\M=~(+Jq. rl3Eޙ_{|}k/~vsA3ot+)8[o?a̓I~@ enTf} L.c() Lq1v<۟ CD>>?.c¯wK zFŸ4SpA`:+/3Kbgiȃ@C-4Mf$AQFٌl<%Yh$Fی4{3Wދ3e`nOoyw<@={;EtÆB=X㣁\m/|-Ƣ n{u 9>G)8Giϔ5iьj{tsv`۞ȃ4̴=#1 jd gp{;6W닷#Om1-??@qeF^3Rz7?~qoz&Ƕ}qw+8\/ĖB@ .SSe.oq;؍­0ni?X`8J:{ *Ɍi1SpTe3+ QBVP?iC#Ҏ{ 9mf NaVn1#hy7.V3ٰ.aّ]l}8 `_g f[D8铙dp)f z7E0A)y6{Gg_?0A=gCsoR#hK|68nB'a/"gYL}x=љU~P:l9Dx>oa:NA}-y}|Gw&09h}W?m9,?Q]m1!|oG?_ K 'U=-yP?eW0 WEjF"EwL!8$~D2}hоܱ2sh\+8 aeЇ|?x:;V& "u ZsfpJf$Å0?LٌxX7q$mF 0*6$?YV&#ˆ6bd4;憹=.'8_oqi|}MǃAk}iwwq79Fu3wC;ht }44]{FyuIW3+TN?*:tw&\Nү /#<!RGC9H^=x{y.3HH#<%udF߼w_r:?+:hn2zjj`ww?6/C}FJhA9^sCW4^`ѣ|3x ؽ:Ō$2{n s+Tn #նhGEz|Gs0#DpլU3z䮽́vi97DŹi>V6n`_G4#QEyﳳg* D&v]=g+B'!>NQ8#}4SVxApѴ`WxO# B{&WxfkDZo<`uėYDa`tϣ O v1{eQFm>Oz>HFiͶ| QBF Ml}>nhlF\&/3Nn~͔5ژIπzGggƦEr3 juu<0-U6˳QiQU;5@^HThQ ؎6r]=Ih_N i ^+r_ HfF`8_u46-u}6-uCi f?4| Aa >kCώU{h4=fv4LU[iF\)i I7Aywʤ=v2ë~ˌOclGCseM}v;S2hkqt%ܘAtSݵ 8 \5sdFg)]ܘH4_߸ݎ4%4t( gq^d1onGm0Z|am FU7NߣA̩7n[ntWxf[3 [7{ob/8g-׸~\p0Z|l;ݓ)>fWrS4sQW15A- 8Lp߾jFL\3\|vs4 ۷KVg`FGbWN[A 5#htO0S6WMV<žwjzjuI)Hr44iy0؎'WL3΃ԿL:jqF?sNcm0:Wߵ\8=M:A@Fهjn {j$@!H@y[+I8ong0QfFf$C-}VZ]X?wLٮtx`x{ǻ:ƽLb/2(w߯ݮ"sR0sųXq0sAzuD;*p, J5')[P'0#ﲙ5 uN5ii5 $k |}vk2;O?xuu?ugȩd^8I%ԟaS͈mlæNSd*_߮\@=:Ҁxy}vs 4`4 ;PONr4`Q^߮\<=:M^I&lqqv?N4x y}vs4BT>͈)[jnDMVo>M!u`%J{[ʣ/vQqFog"5Cߤ̈6jF:Ľё{[* EjQ<1W-w]dd#ZLO.22+2M<]JqGgd8\0;]jFyEbFt6& cK"? &GEFEMes8"Quvo]BgEFK.iNM~Q -͸I"1s {EN0#Q /%ppoh 3+DFKqAqF3K] XW-0NXi$;EFiw4,q2!{ȴKqv~xmLû#Ë-ûCaKa1BƖ[ ]kәpV\ULyB_;cvýH@[S.r4ym5 Aaj8ފST)L/߶yiE~̷޺zt?3.3`'dRKd~vs%?*' =aGI'AW#$mL>ڃc &rcQa\ztc*׏*fc4o7i*4A)5%Ӟ`f`TՖͪ;ǘξl݈orݵ+ j v-NF^L8"]uFm*1n'/¿oSFlՍm*މ߷P:߷H:$mS8v&!o`Rڙaq#w\gF_l6x}(ˋo? Ǻ[XL Aq̺#ruv4u m :kj֍3(qx!u\#nP5x5H1s_Ys<;#^w|;G7 ^Lt;[Ϗ^__{1ƒIGs[@R0%n:r$"S_*#n ٗR~2BpwK7(x åGj0xuqCUnYEܸ `*xctڪɖU2ȍ{AkF88rc5cvCZ{S=tcvbpD&S&HVnXGY#npkP'A0)0T] /coGg7XU#TN7r/~!v_HqaW[ov!;Y\{?v_kx0N4d(] |?B“YGt8Eq2.ߏҸ{J+y1 T 8hgO1nwBv|?*vWGݸgP1׈;[qs0Gzeq]x/sx_5N(בcxdۍi拫1pntR785^8uZ]A,,©Xj_8CPbvQ2uafpvCM S=afpqrCM ïoYFU91`lFٹ|Pf45uFB 710pv$&eb=qYvT);^;J&%Cu]gԶk13WYBt\(G6S0ou J n"qtGfT Y<~xH|u{__e#1[\ŽcZF֍.YL!ԗLizV% (f FJQldݲG^ ge#C\ϩz]1pB *?#7;HP5#SYK(@3oT?VlL{G>,>K1|sģ57Ǫl"͆9 T'YpJgqHaS}mJ \^FzLvOe:+I6l2';+MXڂY˼6 =ʷdJ{.gQ&\&K i=WXrl[ ˊ6&?}&@蝖U=H5MpѡD^ o{ G)5tuǺ+~z%wӵ NK ek`Pn1UYA;d j^ZhݖD^&8(gG4dMpP$r/c!>K6M.G]ˠXiDWyF4A?B]NeuܕG jtm"r`Ȩ^ӵ Jˁkk yD3 }sX^톼oe*_*jPMXPg_*K9Tz++Tn@oMlx{1phV8LumT4zkyp:j,YLnmUI2T ١R#ed_]bnm0z@^6US`Qj0gKDCwUYw.5e.*@06yA]E^w405 eX)+PڭMePl qe jt?i ׿WfI jZl?) 7өL ڡS#Cxřs`g34֌/h*I jۘ}* f0ot&4oA?u`HX1lƜ5A kc!ʠT5;EF۸_k#ɸUTXDF&2xZpZl' 3Ph0G\3 OV [p'+íMobb?#`|jFB1[e:i㸰eV [`81 k`u68t}1kp1[m`n{~85@V6pc"O $V[]o8h (N?zqVj%btZnuA_jZS4#AckZnu D|W+֭.6K̥2R@W򶺸 f*wB4#u񚑠G)z$ӮaX+FL:2 ,SY>{0.9TL3+2EG ,SItV [?ztjVlyk" jO:VC T_pmrfʻՅaăf;/#*LQa7+P.2aaY ouAX㯐k(V 䏓sjMȳ1hāk.{2(95n lY2oKšx0\yz aZ4ŵ aE+&;bTZ4j21>@ ϥj =L鱐mjX+譯~ˤ-eaiT+T%h.R/4J ՌDeSm.ZU5u1nsu^{1赮&\^3 6WG$賰͕qd|Zxou5ApO0j6l ,nJ+mHUmG+mc5@y@\4gf$ Q\Ih{%}v5ֿ-HA]] o$Ѡ\fc ,u p⿹InsAT7Uim1ÉƮ]"lzVHPF}4^c=f$h,_0km.6g# Fs,?h!~-a8Z7ͦ7lՌ%~k 9VW46s_ɢA㷹 c5J ͅÈT}[#'/α:HAӷ?sThfJM`\HAOÑ0/psAKF ͅa84127^^p'b84gō٣Cn891 i3h74e.n x g\. NF g'/psANOCF zͯ0i\HA 'sq#{]0gō+ p DFpsANQF72iP n2Ii$]LV x4IkӠxb#ZYimTi.ׂhpGk`H\,ߞKF Nt4׌[j n.5i./.iUw4I﹉YGe Hz%4IG)464HN !A,6Sl9i$l[< .Ztkݝ4D Bb;y3h ԩ/7Dw͔o:|`Ȝ)t9hE}@5AοV+ 3Op3fy,b]Rgp-&Oі*?`tpRrlWsh9#۽(?,ƒ=Un$ڃʭ) 0?{[ۚ }cצ0rhuߘ``) :6f@m {*L*K`HP Ugk}^܍,{ [ۚ`8H1Mыqek[ g)Qztkf{ ݌1ԛ1f$o[ +ơzq7Kq^܍4{ H(08;neF}PEwcʶ&/UL#naéq^܍={,ۚ`8U1ۋ{`QmM[0&=0騸&-NWcn<(\콸~k‚8/G{ /^6W<Ŗ8Zs59i!L%Җ2Yִ%p~#lJ-m>/`,U⹵LH) T^BF=mMPPj`YjwփEgmrgEgmjgEg}~ ϔT fiaC?xZJ )$HxOStv7koB0Dƕ=PzMH09n>a!\cp,S䣏Xi=8@wXJi=8@rXZi Ơ=P18<:>{9]cp,Sm8V-L`H3?[V!yAR 4d͠`]_p g*14a_3S0ثr +ڠHAW c y5pbY3P~1s #D']%kFHeMo8_11 Zr+a1Fيqa dҰײV c c Mupbm 50^ x<0jvWqa JAfWAXHX%ђ`EibשV|ȯÐ p悑]ӧ! vj-Bc[~X1$6ՈXrjk"cktئ-dйئ-\¹ئ0"=/48:HiqM ZԕfWAoAy~iv Ј>m Wa˒=S@SLMVhũB2Dz%fyaA voñÒB[t\ŧǪ z=5^er G*z%f6,Cs%Bc8T1Xj.38S%)"c8J1vXrj.18,y5vi?u 8^A_W,]/1У.YU bzAf$h`V.28ח 7dFj3*}/Co?hv \f$p,$ܠ]bpcxUjoŌvE-6hva(0Goڠ]bp<:HA췻cit@bn(0)jG7-?Y\OIRٌ-y5h @&KFYxK \4A9pEys=)bFX8gnjD14BFuwsbO]Л&((-۫jv5#WW&(p,f$a8ȯA 3Z_ l8ggIC~^dk_E~ƯJҔWlµ qjfFZET0&(GpH@HV^8:! 57j$#q5Ǡ*w̿Q#A<\3pbF8zMxU3lhG/LӌrkˠwQtq힔c>:E{@yc  EAD zp9zj4A#)GlUPI=i@8mUЕZqC;=.1q?(=\4AY6#a j@<&Gb %jhl@7W jq6CO JŌ\=- Ukh$@Lc_IW(ZC#baɛ !kh/LL0XC{~ Fu*lw$):UEx̔pN RFo jF">!#elh69h|kF>&Dĸ0GiTg 7+Ra~UBz{}cU1|~AΫZYSA| 鮪+Ÿ|M2Ѳi4A#2|Hq7#Om U?ʚڝHfA?IWV CMz )ǵ0d^uxg|t_I2 м}e\r\x$ouLm%IeAڻ'wo&wVsO4{B¼ӂ$8뚼-2ZP~ɹc_y* 'ϖZj.8(BW}=^f$S< 6e#'w4Aק<Fkf_? /*aH"I* :ph S^+d`~H.Iˁ7zH7C[E|c@W9<}QshV $Ō|c5PT3_웠)ќR}(/f7n^D2W?x>_Yٗpe6_8P|[+ ^h 4,NOwhǓF[|j*XOPdsl јzb{|UO a>!n\T.h62yGw 79tcfQi-4#ma;| 򏺍~0>9tHP3UXBtߵ@/CI(ǩv{cܙoЬ^;vxnhõG=觊g :f1q|A <\rԎkƮH4W6#QϘqe4mF߮}Jn^ŌO yx<&y}{]hL9N$VKђ÷rL(D™t^9 qy&GG*>K} W 4>bɾx%c÷@?:$gw÷D?{ o4Ž[w$RWI!O l>#UIax=IBsX|<ܷ0_K9V3-—\}<9ry.-JsX|HbFTZkR-d`%),:|<{}!D-~ޛΥxh J;uwOSD·!x9^v\[͡n w,$/Dj4wSCF IGo-gdFY͡;y7SQs>x4nj04}5S쾭k7WvylqI~J|<6{')*}HdcSON媠 W]|3SޚVІ9t)-թ>Xvy<ɑ; t`}/hxHfJ6G];nLs>2&҃9vGK*4n  舗L4ߗq''}Q?c$?ϵA̺2OEsA3I]F}w1'(bfw_P7=m?IL) {>)_&.cK*E b2Lڭv{I&m2153OTCiN9 16 Di9ғhIK^x݃*_jUuv1ӗGiW!1~\-hUx.si1i /Ae &[JERe7HRK1䕠?x~BV 2uɩDV&ccyjw5Sb&pr wly IJ ߱ xRJ>_Qü7HomZP_D +Sma~>8oHH&Fm E&ꎸFS _AuCD3%v}"/HF?)~""/ʘ9 ~d"/ej ^N3%v}"/;h wŮȋѫ.ȋZW "~ZSj'D. )=mUwר '"s=_ \urg_4A6E#x7/yx:v/6w uA};v9^$ Ƌ~/l};8ά}w1K(0E:&fL$@I$Y'3n!5dZХl B&Ɉ;45b-rI9;(nq٥n5N9Ԩ }z8wY#q2ΙF מ%xwm} bk{{5et" ggù{z ɣE &d^Bon98'dUrq"̅I{m\ݴ!ы{צM=?1ώ'ԨEY;<4]U7|f84@QU7|f85~l|M= B'PAEX+?b旣6pQ)׳԰{'g^XlS+OPgMةٕ?cʯ'kF%Ŧ_ ^nqml1AwWdj-^M'N !'C礩6$K>c,|gW]K˩QSz /cX\W+{qvR8 Z"opu2!o^dHG~of6{[DҽE k1Bֹl'jaf8iw#. *b @Sۢmi?7D/k#v_o IH!ik~@غI׻yr*45z5\酖`5}.5d:45bORow5R@uamB@ucCYSEx ]pkϵt{ ?6)5Iޮ߂PHxd$7A$Wi̓ijX mXڤ).RI+g,"j U&[¤5N OacEX kڱl`e4 =߮л%|A:]Peo$^p:.2V@G{#mveD9;Fea&H5N祩!@0 R~4շ#M2H/]6.K$b߅kCC&9d$4L{QõuyG}|u)dtкJGzP&9y1=#@lF/J #;@prJ4˄컌_"$/duxyۄw_CBO6M>-*&m<|suZT2 5m<|}6MNU&yO;MG{kNt$/WMz[el<}qqM2s0- q.eRjٴt^A1z2JRPI{&y9V`Ā<=Gc|J&1Ws Q*y2;jF/X 4˨Z~Z^riQ&GU&X_Grw`;4˨47z-rS?Մ˕hQI#x}-*iįȒqiI^FrɋǗ&]נŠw^o[L NG`_>JA/M\};7|YTnok+䠈w?!~MM,*Eɵob39'LtZF 2~ϡ lP"-.U$/d`L5ކ-ef(c(~\"&kk?]߆d aM?~NMPu Ld 5(SISc쯡6:/~d a\_GfW['IES#>r0ɴxt.CM.AxrMW5Khj~7O}a,T5ŵEo*_*t@PEDg|^ F,dhW[>:8R(zx.Y&A'T?8dj熫]IP U&X]{T :^ơsT ]ʃF{dEPa$HWI4?eiBϲ鸞yPL=Er ]LD<4ک4 2\h2~-کꚊ@&_)ή}]bH`j,K>YPuSFSFgkJEY)9EM"c]g댾DY#1q=47r3[&A?u&uN AIDUߍ&lazg?[tr$4l_z$A11IDU&Ăm_q4) ~d 8פF2"wq=S 605BdjҢQFYF'hMZMdzLor.fV)]` ZkOo`M\F4URiR䒝4յAK劰"H*3Á7jD b GuG@L6`R&ED&}ģ$MO3n[z?C\羧!H,=^e}f8}Jz񬞖k倰Q!:<euTSwh0& c=`N '-mM5vkC؂)уp av"DB]Ӧ DCŻc^"6@iW[pKjܞ|&@g˄ܒ$7Kq,PuR yN!aXԿ>ǂ0_q:h8|_?ג0a6ɶ puaR$QVcUX(q9VCf&8,i(/=6?L?48*i( % vIֽaG#sch\6{_;MiI_zn8э2H291>@'$5Ϲq*_qy4HZ>Xtqea*[ϳytѤo[= R"cn=R"(ch8zǶtJAm[+aq ImԱ89j֬(g}l3dasFF?C|l厠6~8loa&!֖S~k(yZ4O95_[% 6r&lv%Qx*s͕i2*`̙YH2PЀ5wA M Ws4+CQd24_ݱ:Am W/1hJ^# ^S$hB ANccADG䦭[b z$7mI!R0`c(0\Bc5@C/50>4{&*C 6Yn02ɹ-!3 `Q2¡3 ڒ$79ݗɐY5DBEm זP(T6ye]9[9͓.8JYDtѦM@>m|YGør?E%$!FFW8+̢ڢ2Mb+d,- hdh&?.񓗂&/udZ?*nFMdR&U'h2i 3K亓44 8ԛ4 yyoNs)ؐGw)6B#;FH@CqD8{h!BVHRtl2']6>' ]9҆'y ݦ]9'@md]:>O]<8sT{ID%4hmT.ɦD3I7iDS{.cRMG;Mpz'9 HuwI h]0ݺIՀn]$au5;,@zX] =VWEax6<h-aY%4pi,ICSk哭5|bf FwXMSɱ oRlZ)D \86s5(@ݞ %Blb{ У PĦu=w3 SH\{\s@[CҚhjvdG>f2 -JH?V&!( Srű]r?C6-M%"aql2(C``>ԨCS>nБֆ mS+.).4]@hjPǿKR o.*}i'u[?$z|+2@x~:{7$ygzo~T=yvwpp4n{R=/; `-c9S؄ʟzR=: Ol Ϋ)C86zU鏊qlΫIC9(6 x:kY=-їqlB媫9ux iQlb᪫y6o>aN_rUKc@j2:Mȱ)KI߶|䪺3nǦoL(&DZi?7\mj ql冫δ!{@ZUYBGaNA67zhRt݇ @GFSgԈ$p1#&:[G[aمqa{ >a6.B8#;JHBl8#;@HBkٖx6lBnlILK1_O诬}OGvo$yv!lN Masx5A3&sbHz`ܡڜ8qqLZmEǽx:GGtoAW`n]@,}X冣[م Im5N^g f-ޚ2;@68wPم p<4`مp[YQ݀wM&& }<4m݀jwv\l݀r9-6nCuIIU—V&]ٿ|p w]?X+z 496wFH &ޑ;6|(偌zֻ_BU= 3Mu&&nPՈ}ݐԔ%TwCSzϗPU/= SM=]BU5z U4%T_ 86| UFAM(oҜ^ln Cl}Yua.M|>+E?`\57x*RB欹D]JÀqkyuX0ꀄJZ^[h5 -\I@LwXƁ:BÀR8'UWgl`pR&% Etl:W𥩾irlJ24>7>Uk|M]Gڧni*4>`ZS=496-wi QY-N2iolb4>DɹK+496Aw齏 dU՝hƦ.k#qUNK@aU _M]H&M>?@iU 6AzTg]:5^-Xd4ei`( S/M5A4wLF0hr ^%x/6(k׿8%ϞwӑX~sQ?PDkeq M &c7VdU5/-+%45u}4 0뮤ɪ!rܖLY5~#%@ij)Z@~C\Ib?4Aܚn!W[Yx^K#ƒIE8S-nijdBl9CVy<45Fh2v#%A M ?&dH֭E (^)M9q.dSPN1 »No^/]J#<tݞ1ޥl:BA(Xzj1hL2 Ǩ`05@_8MB dクd5ư? ~Fw(ACqM45zm(!?]c ޷bM!5D|wj9B45HJdP>Y{?{x&eudIc5$[W0@MGfDt5XWDRZKׂ֠ܟ߬-H&S66w2t()&r9.J]45 Y^E%b9 $5/؜TA(y~G4Jijsi2n.h-T"Pgyqj$Ԥ5&_^THȟ{-ޡA+m-ޢA+m-6eЕVm-4O;jUbDy847aʓ5;A(gՔcm'֜=yr6SsNٸl?Ap QF5αڜOӍX!p[ފӌGV6 EfAZP%Ě'ou[uжɱA[2k4,bxnא,t5 \FX[޷"Zxq k7kBb MGDR^p !S_R\9:G%LWm{鸓o]0ru rΥԟl3ܜGMZ4DS:k+P5PbuWoZ#z :}{=y;?ĥ (D:HA|\0,i@#+Ю:ñ?4X~X ͎c]ゾnNqDqhBE.1c$}7n vT Jc;:.<([* ծ#ޗM A>c<ҟ1AHA]c G3FH5z˃B.k5ݣZ僴;eSB,B"xĜk{jQ-TK[0M>Ŕ8B/w[0J1؟R1ow^2w!Pu#LHqk iQq3xXkR{G-^UoANZCQ$Mq\g)P馼a5x4/W5ww8@Sk RfP?4^ `E!w g|gחkDFF.v_qZ0RG&㴛9VP=̥ajgo0[B{{!x\I]<4.uQQp[h2z-}"45TzKqNj,%IqRm5Ht8gn:( M܏zuP,i,GNd8gK K8@6 rS3$g5d3᣺Tqf4 |c3y]45_bb5(tkn.֝)[<[wv 2wPkήa+KT5B{3Jͥ[3le#P~֓bLs[Yt~BaJ]Nn #B5 ։G@ ψF__j#4m8<) ?MzA9,?I8Mdץ dmt̥ m98 d'ugAW=zVd-?,R#e:kuYR KEtu&뗲h=6 RrtCWwñAs;S CMt0*:A] a) &u&="Ӊwc4æ9FEenm=6lgm3겁t55F*%5L;m /9uNRsU3֙5R4X¬sY[hѰc юܺF4$>u&;u ʟAHA]c"?c`h:w: & +ˮ @5~V5D\Ւ@@# r ;zP4nPH.ld dVS;c&9{ *CVH45OP(UK(1{<!ADY/&A|^?cF n8~ʦcrx)ޑA_l:A _ S2\ z1\sm2)kTnp&zɵ7cuHtЗs/>5()I@+?85˨' T_suSb2Xx4N4,ҖAփA!Yݵ ^j`uJnKJcbRW5RwPL fFX"zmbY˟߬9<&ӄW%<(&kkO樶d0' s@[0= !Z(cu|np҄_QyG& H61ߞ::JZ"VP (kZp.I=;-i:hH!=Do0OketxZ!lܳ!4'_/lMS1FpIAZcx9`nd QQ }_b\AM_2Zrk>gפXm#^^.̇_(lx1K.dg 5Ccp*-NB a4>r#BsI 9Ћ\BijC> Ӥ9c$! )@q"ږL^ MHq2Ֆ/ R@-<þ45FJ8k.8 R M(N qݣ0MY]Su@$-Y*LuSCd2M)_sTQa*hzg)ޒ"-NQ_sa6sBl5)ijTK9'nj~M.N;M_C.{vlȁғ M`S@oQ46as/SK?{@"?AD2tN4={ޙ/0hM1KYnd霰hM1LYaz9e$Noޱ  _|;SMq:'TZH[Sֻ":'|ZG{R ";'ZG;R["Y;'ZSG̻Q";'ZG[R>MoڈyS)PM1oGYn9a@ﲔuH UGB`dlH9aʚ:3tH OB$d_!xvy~4.k -9sBa"`/kh7kM(Q֢#{Xk:KԝN$޵HZ$iM%eQk w-]&4Z]Rh#GMߥF "4UD.iH [kѵ># ]3щ k`tN(xtN8&x?cl9T!7a Sf;D25:09'YSFϟmI9К4-YC!OE+ 1SH9!$YJ3]Dm!cQ3aDV6efg%T b֚imT r.-ةG՘">U3vSy/ ԌyK{ =xa@OX &{焊3C}J*̝*Τ)ބyL~B]ܝ)*w^X8S?ߧL:HyކOdhR4/wt՛}8N2au>߼d/%Uxr05 /fISc%:9gҬ1;MӼ'h嗨ֆEt05Orc.^ҼϤߑ?#93Y/ʋ$<8b42YnˋNQPbw,WE0xbERyЧVy|T5s^$j*Hn=9tq05J /Ӛ|nIy- >hckþؓIA[#"2bQDd-ك>8߱֏5d{PkZ:Vh^.pH@Z5#{M?ٔi_7dGi_Ël$߀ґE"ZoB1Pă 6W,hlӲ2j$_MNGw"$}1 wbc!}! Z&ikH=5:d#Y;^kueLG*<8 yˎNǠyFm2Ѵ7iphT #Ҳdct."-Mfb8FM;"ҲdfcԼ*"-N&j8>FX]p$m}p ƻ9YHTLM'3;)8h ArDir2~d֨Q.SGyk3 Ef4o/Yn,1cPiz6ɯe:0i 4]De#m2eD0@PE$) &hj ?OX6OScьe,~TKR"՜S(N?[SHMtzSv T#O $Nٺ XjC lI K^Jn{1ȥdu-05 F-ec5+dLÐ\z&%2Cޗ2=-$J[ y_#됌;a۳/b^'ûԨ??7%AO.픃%uAsop{p{0)8Ɵ:=}>Z"7EISgݗ?@ r5V8[S X"!uS<圲͐TkpK@:% {j-.3[85ղLt]3wjϵ[Ѳx j[\|V&gB`怖0ItVfAGec(e/7Ԑ l.-qHuQN45l, 9p!45"ga'"v5?!DS.{]>@r`2ҥ9W;.XŒ Z9B$psB5hc)t$xÕ W+vqD w%Tw9Aɺj~Y}hjP ޲ܗlx MJ+vl!Jȧ}J w0W$8BNOvH/M cTk!Gg&H|\-!p15S:=pH_f 1Ⱥ$ׅ֕|.u p`tLotn ״M}{O%5P+2j 2񉰴yIAPЁ"ZK@s|15f*Tg\k>T1Kb 9p7Ha'58KBL 8)JqSX_ x@vBk*I~6MujДȯzG mY#5UD4\P Cd] S5Q@&g+xF%;+Y=r)3\Pݭ}i2OXpE@ȢwK=MmCSfϡX;u`ej~||ɸ~ %y jAѿ5Uw1[ kpqD 0qJ  s[#5U>)2g4\3y3Qݭ u"j5UW_*iQÍp'Bsvs8H/I94m4Ϩ{ O$~*Heo,?HLro`T/O&x ;d@?i<ȕᢅ`Sh$pBuW~?5σ4\P ~}ky1ܭP ~B~ 1ܩPyaO!O7E ] <E$.ĽWǦYD ٗyjy/\P#?>^3k~Sc4ڮ\pJtKۓ ?pKB 0Lc NyPY;AnEp}}J2].d'jVdpB 0x T)k4~;ovwj =fl05C ~QF +lh!yjnz5>hg[g<40qW8g p}z#d8az \ᄅm3;VHZ%amgnֻUrrOW4dNoAY{%yTb~E^Jw$7s$i6- eR+|Yh2_R?9, fհpivQz u4֘0*|c1_8_RL*(ޛH/)u`D g[vVO]'< tSjr V*b>px6ΨF9`55) zیbmyD~QZ9!?s19o9M@P<^r$()~'Y)>mtl$'2F>9O$'2ֆ3R DS#)R{IV k 8ILx??E?ߜMTOӋ@!D&F_0~׷-,)Q# kЮpI5o,Ί'4s$pND<_V'*QC>jN[?72G Dd*k&CT iDՠv\mgp[—뫋D Cde. rvjC?pLs~ 5@y kB[kў\r5h&e.>]3Ve.@]fFe.]3vk2\!y"7@ a15hM JdOasߛ(++6w/#J gJpM!?A TN:S6FܷJ Pj( u#(%uC(fsԽ#[<4ڗ% ek}#^Ro-A,0-[R ow+ek~}@lmOe좲(?Z&W8w"SjNo#AFoZ?oΑΨ?ߧfԸ *`go5BJ7߄(Q7 ԟ߄'Yf0BJ6i߄Ul&H.鏷MASc:yI;Jj[VٔO?܃'RgK C'y1w55.q%fT4(T?ۂ:*B{j;D.)^.l2EM} 1*&emCgVϾ,Uf3gWD*َ ) m6AsulfgV{R l~lmIK0h5%^l2==MTxo%)@SC"E"?%&vHxT[- #M K"4$6E֘yr(f!~԰_z2ПmF2hrl#{$#%>lv6;GwfgnPʁd1[$!ެRaIJ>Nk]z6?}6IJ< П?\. ^lY@ij`QR;% /<̧i6Fm|aל+Y[%n|S͖$ kQ ֕hpV> ?&a[+ht{?۰kќl bRFϠ_o5 ) m6IY|agzKEvJBۣϕcT<) m6Lq\$D0=\&vL`LK6M1s6|iMe}"#%&1UE.JE ԟcB~(Qm6O U^ee0rmLMӟc{G 'lOv y'lEA>yP/pd p**4z"$ϹOS4fs|L(hrY9hH3xfs^__K:&l69N e$$ꙭN?XV Rg1^}m%w(:M̟FXY:?gX]4;?ghv-Z ͟wm fS,|zRNĽ|!-gLPCvsMoݑi6ffrfCڿ. a{kuFRM"t皑oUBI$4Mğk}sͨl6.Sk|Gʩm$\3 $<;5 h;N}į ghφ2]ԒhkA~f^Re"~h3h͒F g镤6)?K$$}ס8;A,E(5Lŏc5M `3Y{&y&Im. II~v?co&Ϡgnd'a3׋k셴3[k;d̼gtK!fZ c2155f*T {jm8qեr2?N7heTx}Sx!oY.㢩qSmX#ur2㧲 rnt ?~*Ff=F䏟ʠwQrPیS!t _݆䏟Ç6%TևѤ]䇣1WO&$?~NA<Ӗ'mHHē4 _u$S6~|0(fvl~d7Z(fvk~<45d,[$R{ireQhjX co;5fRN.㥩ac!htfn{]3 tA=buKkr6G̷fv+`rP򳲷)="m~p7fϠ+i'o}DK}znwMY2=GI~6Mzq=GI~6zԓ*m> 'eu .Ad?ޞ>ɯ~3% sdwio3A^7ϑMzi# %O{hwCӌRiAf(ϝjTLRce&i*BeqxJT \qRTj#<Ao䣊Qm(2!Ujc<@"TTٱ]FqOFeh\hK2lgۊ:,6?;%0u:+*MğږSbM @֩7&[K Tj'|5[Dm"ď{="O? 5쓄*B>-[̮p?:Z&"̏Ną|&*S><?:oL>>e\^w V&[$ Ui2 T֧%@|8LpMTOE؞6/;L<!z8LH7<U 1LAE;$4pU#TxuABS7awP|P/9 ?xtH550!&T19K\МX u.hZ SAR?\ODU x?M~9}Eͯ9z=#TQj#AOMY6 zb:G؍~5m0Km>>?W9rQE6T "$P2:'*f姧c!IrUˎ3Ԙ(RrCxhjPyM=ƞk_TV4|+]AkGf?6+/~ec٬ 2sT/tج Br~ڬ Zr9/DیBS*O[&3O7Zh6%/"1 xJp6Ղ93ܮ+[ҍ/M*&y"Jam*2TEpl{$=U`Em}o$Jom@&wА*hMx!'Uj oP9de9'm''A .k#2<yq^4Ro4#ȯcSӊ*AyDq̢mP^rw?5(rBBq^)Ը@,_@q~jܥ.55n*륗&*Êi$SE^4(icKfcrLD wVg1Ai*R[Sl J7h"8Oj wCcTp wCԬ _^kIK3tN<82hoԋz B7Obꕚy˵o+dˠ|$^R@7ˠyR _o{^!~mp^r՛'9J *7O~ WV ğ/y^ Z o4+_mx^-z7OšM _vTIr|q䪜#[$aʹly*|[U}y9Ul+'q$͙uv\OQ;3 ꌇrc&[K$GІ oAz wæ[btqٸ\{KI4.kB{J4u\;Ff&`n yiw8~ML.}'(r51 9FͣbnqPޯ<n6?}>Z>mij\?r+n0_xVO _lq1}9S .H%Ըw.~C6_&AZeI\xP\52WKː ȟf #viA?@N ~_i台9(׎HL:_fi Kky{5l$ M.$5ͰIʃC6_/M.n, [$2U~WN/uH$;9d#ͲɁ~kY Vs^ryCh QTBAᷮ6YW<7VC뢁ZWh&$?B룁+$ ϋ++dOd?x#;vHM]J84~_ܷvg6C&nέR7%Mwh %{ykլߥvM)p+OCY zT*B7/=u]s x=:衹 ou}X<ۂuտHKn]ӿ5CݐVw)\[kB\;Nr`]mPF^+r l0_3BM4tyig:ꩋtgofm |(`1kikY'5#ak&y*\i6295o/aoiha} ma~)_\ݵew-!!닫{{ ~,N!iDn 溅}I6O3"lw&޽i*loq}箩DXij KeF.dpCKFq5( l}m]// QG?։Pѷ&wR5u<ۋz׾o8ۋz?:pQ_di6 ޫ@~rkdh,/ A~tkais"oFtdC`[&I[0#BwԘ(Ry~/G qOfD45n* ی\&x(+)?RɌNS v5[;:t3SQ5zGj2o`ڪRC&!TJ[T1=U yVW7 k _?|5Oy[ǽ?jfo>(jB u5"}",[u;$xH#[̭Ӈko]!]Ֆut G4!ߜZKfU^45nB:ϟ '&k3k_]'̷VLu}uZei>ovyu0vROsy$4yzyНyzkl<"?lƟm%ߓ){&p/9L{1=B o9O14 T18M^rJnL'~.0NtݟV䬽1n&xپm17&U~M^7&W~M^7&i֦M^1Al q|Ivƽ<b9ۙdkݟV [;`˳3NL1ȵO+ό~senʓeL_m1̪Xm/όyiD2u{)3{g<4_&o/eF|ʡID 3}{)3;FM# Kn85# w9XJ;PC*gF.OuX5xNyh: UōsNPXa[c8n!L^_wjCSwb8YPdj/ dM^ђF>(Z|45f* [e-왩>ThjT j4_hjHOMubģ콼SX5]ttWߜw[/M9_SS=zi^}?MEl0hzLbߩ&::ߩ H"KGPpCsNLI|轕Df˗iP Kk%Mew|>Za o3=*pxxC!*ewS-_nuo ~]{?cs>45f@k2H}nߺY)Vݳ xsϫfkr=żջ#~Ϸi\)߻XtDNn[yQsVxv[P0_6$ F[O(Kh39]ifFu{yV׾,\Y['I(\]I odw*1鍓$ȮM?K$ 7k#A6CΆwo-SV8rT8"$I" WuC gmpYG 0 IB wuT٠giW`@D=l=sׯfDXkq;5ǵɺ6X, kV~[i[V-)0&ԛ&3S aroʟRwS#&TooM.Ȯ |rR#6EO{N!IFl;PDl;FCl q2D30[3z:e(viQm>ssE*Q?3<5Qi*Q mr>grsMC(쎵wwr#$59c wT7rTJHrmX> r#$'6+3sw3}\z=1=MG]nj%/7PrksQy(9µ1(۟ˍ)9ghF~c.7* o5~?jˣv5=YS p>EeY^oWM3׼mL $[]~?{c2Jv?6~&HI>6~&wk #$dkgC+(q1NIA/54N2N= 7GrL ͵wddkAI0j(nGS!cԌ{;Ǩ9EwQz"(ҨƉ*45& 1$&%چPߥGak3A"2ʵ wD|;5HM"Npm>h]#&6Qq'$#l߃8:Io8kʙU8Dvf k$Qr8}"E=ɤܵ9\wR.Od$\hK"4ŀZcq27M  A,m5ղ4@g#[\|Q;b5}ӼⷣM 4;Y&8_.bw} 9&]# -]4י LT8N/XM.XL#X~`FXA6 k5@7=86 ~Z bNA8?A~\VX0@No/׬ŝP\N'>A?\V7q,B~l1^Rw۷myI2 t.-rZ `ƽ|l`aהru6|Zׄu:5粵G5; $O~N'5$}CZp{ty1SIJIМ;|}. [$O3t6^}WԼKUa̰P=zP\M}~[urr;Wא}l:>j't%{n֒9N(7lpt!ޱcm:ʆ}$t1 ^ F@n(o!P6_D([ܯ{GE}dk~KyWaٺ4c-Gk1:她uf my4c8.: (}B93k9"vnNq2TO:/z }+PE}}N!C17IPD`C 1;X?B=c»DIqxi Uo9CjCY5oNX}kq't T _~o-;BiCO'T{M+jX}kqY@X}kq\YT>jFY4)Bq]vԠ<YeDq W>IBvo}!hQ`7HNbʫXd}kq';u Um::zmJ(;Hi@{qy~Xy8ف.k TmX³}\m54Nv@Ω4,r5SuNUt]4j,^9UAISX}NбCmpoFRe,n77 TױxD gZ yٟQt?onhߠo&? ^~o3N [L/d{QOe82: 0 徵O [ [Av?ݷMsnsޯV+-Z}k5Bs\/esU; hl;OscX<6sA<#~T Hpr!W[$&O-^GnsfArO; <7M5 U㗳 nU I*eMo .Wg&зny±P&wĐy &wa&NLhLSy~ o%4^qO/TɔϷ9H3wM Y5{&/ {&(3 LR89oPm); /C<n\A|_zۤ& 6kml< bs¡5`79IMoepfsu9כA~ g6뜃i-fh9 ~Y:$5^w?VD뜲<1S]R{C/W]S x$=OuaΚi )9swHEe?y>i_º詙j95ETP-lNBT:dNlÄT8_:| *,ޱ6HcAyBP4k&%}9;"/&M8D:`k -3-ݱy'i1هjI4(`~c-NSr OߺLt yՠowi*Q 5;⡌85 U~c-JKT5;x5 [~c-.Є5AsޱyhY5š䠹_X45At?߱p|V< o")n!'YGq?p~Y w[MZ&yxMGSc rlu~Q| +U"/7~Tj/!NP8 FXUk[8IClnkHB]B{[{ )j5zgEmZ!j9ȃ+Bk̻XJ oNH[QQSCƚhb]NWMݞarOMݞFki4AGS&zh>cmXmOkXh4"Л9F?jX@dpP\&g,2P80 vQ KvM 5S9"-945f* [*U8.^ՖD 硩qSX.4AWz {"8Wn5AKS:ziۛ;ՇUy+C{=ݫSߩzS%ou Mʡ#UT GpD_7hS) 9&|Ԙ^өU`9*EwTr"ޣQ+Vhoo~_*_ZMToC*S3Zk[>JVEYwo]T*AVT ?m! GG'V8Šs>$pAx-}P=,g㈕5²E3d9!d!+C-5T8̠zpG ޶W]X8ˠm |דߪgK3j;:$+~PFf5boo|AWw:3wQ) MpL)q̸ )QsWw438H&uWAcf78IShg4IQ\|Hʁ hǡ2ߏ״sC 1aHNC-~}-pB s&{vct1/ʥp,B1Xmi y¡ـYED W"5jDWFh_?/po4N& `.RU8[ܷE Gw2_dpHAn;3 AoW{p`kD(}[rV8w!g es+s f.<=|ZvMfzm1%rmQ40o MfmޚiLҾ3;P6M"iڷ}F{))'Ӑ;C+&eyp,a{Qx<8{fyrBy SI9aLՎ>FJJ j/'̓É@9!LՎsVW('ZjKypUziF^i4W}u4ܵ׀Uy~&ܽ41T/MnaVϾZ/ f[9A݀v)Q jWX5[(hJwxwؓ‰5uM>y)ܷ+-(2GS)Gʵ0QnWm-V4vI Qvwac)XS ,jCÖ29SΦr xJrc-Xht Sܰi5h&zljagk^ڽ n}^SB1;N ʪ0FwԐPF`N9&ʤ=iaqTY)jQ 68nHhsv\4:R9(ưmeypi=S["gk =S9ڼ*}laIPaU:qܘ4ƴI rcⰉ5)n@׷/g@ ;juN|-`7@3G [uO}{6bӻ?SRWHq'25ը5=.'pc5Ѩ5=/pn5Ϩ -&:w7?y˹՛(CWM³@M6NVsMX$W9ڈ}s9h8rXr 7?A렎$mm̎HcawV6P z),Ϊކ0@#Yf+fl.`kKk)Xw,Itݯ5QG ;r);|HYa3W6e)tgȭ (S7<8n6**Ѧ8nu5lWqo+J r4;w:W~! SNG [wCqmI [j@YhGpd7m <]UZ}5[$몺[یǽd6]q~}ZwqRa٢ ۮrT;8o5'ZtW〾Ufܢe7V:k^ZMֺ2wM+Zߡ}CvHG ;r9nh\4\agU62LkԘ0X a쎫g[POU f[&n@n-$pUwڝWwY(lg'=\5]>ߦAl6qئlɏkPE>4ϖ(E2-i)鴯HrOD/M K"4} \k̼ zbjX//Ͳ|iK3,hio =$[[/Hr-k}JVqCbjXA䤼P^m0GM;M ExP{B!qY@ ~oBz*8IFy!H=W𚞢&bSbm+x\{7KX}/WQAɿ\ړBM%pkO^x.=*{ A/OQ kFꃂ(?䅕jA<ǘ'/T4cMzTPlyD~^s Qqر my46OCb eGaoÖ'6]SZh mLVI.*U&yPAh6P&NI *Cτ'I@a8ށB)3ԦτNAh6L&K^45hx/TpC#~S{o~t&z15Ai\E/O⎦1P5Yz4k^ Wz4kf_ okDvUw>Gb6hh<UW JnAt܍7aS`oH{? H9aS`W~͓t–^}wy–ZB 06r72 ?#mo(=-ϡE4|-ܪ/yT>5frͳ2I j@b+OW]Na_uy}o䝰˯:'sAC ;s6 /:7O7fTs;閑G?fwu dT%LXݵ[~*yd`3YO#ڱޓ]jo<%ONLW X&*D_)>g_PU;m5 6at&IUoը_8JFLRꏂ>*g,&lQ|?єVg>ی/5wxԘ, ԩp:w1y_Xs4˹%6mOaXf9h0y^nX$Y S>R к]Qu`~leE$9M "eP7󷖙yK!g57myskd >2ϱ `H9EFb+>{Osʶ>?RKCՠ_I ?"`ű5f4 iսj)&Hk5AHސ1AFZ]:ļS5@ "Jl"p7Z hu7| 2h<5P6(׻&GkAmүwMЏր!r=Z  i 9ף2OQ{=Z4h96Uz=Z4!u[gk\vt8\m46ޯ뫋kbu8v\-\ܸs#oMߪ@[xOxָоBE!~l_sEX&+@* cw7A랁TǶnOQG :p=Ezl 3{ 4 X՛SJHƳs{w#zh2QX6ޝ~<9nD|kP<6]ZI:Ekl콻okIS&k{'(Ndw#[) ok_K֫p7!|rB䆱oSV&߻}5U䝢26q'j?56񉰄`4L|cCGط~yjz/u5ߖGnfݻ-R'W 1a+ç4$TfFغ $IAEel V#dP26"I?E!dl C}{;VxgFWȏ!Uܷh}xgB*D|h<bm z4YQ6r=Z `q>xnebi>H?ףRL6  z@f6f_G j٩_)Hq,6y۲WsPw<{–,-\m݁W'0gOgt6.EMsR;TBIS;||SAXM|8BoAs-4hzQ6T=$nl6 8nl4 jLƷLSc_xk* dQPL%0hjT 3#*`k:MESaZ]g gFTVgspzf$Eku6 4ƮP&wܵ:y&%[$jjpT¿_WMyWSz猛jSAKސIGa[ \~!-nr OMž4506iE}Y_nHfkA]\w:45]w5 'yAaIZ  "#LrxM?$vcIp/E2UWW2'δH atLdn/+ftLd0ΩMrgZ w]I^FZ;=$LbE `U85 P"MBض|%C}ΟR4w<~T'TM6YD2Y(zS=4fmLЛ꡹EigW}Wg3fٚ3a#'&l}ij{fKA~?ܜcF頾_oN9E `i2wCLhj`T-r*JWk?g%իak%3IF{Ay .zir%aE%q9| h8+&im>[YOq(HG$ kuAH-0FXtx|O4>6aEj2u4ELZj 7I2c M 4ejC>T0;e* sfAQ6`/SoDU(q_9nS1X$a@6\dHdAP]gzϤ lx.{$1@u6, 4䮠2zfPoPqRYMVI+].Y EHw8Z\L71CiqGqB,zCi4  V:ۛߣid=}?@!TTS#z-XIk6lk{ ,i n_cz!T1t4qƨoM7mDZ}|Z#?Z'CSf`8?CN`/q} 2X=;85={? i gz9GoRE 45h*`d@Cq|mNRNMA%OJwjr`45& ʿdQןNz.05z1K+,` \w68"Z.[c蹤@5i"µ b/GSi=P^Lĩ^ZmI8qM>0o#N14C|#NE2`W˄G dɯ,)8UGCNaw8@^#(w/Fq_ja@S-y/;j8mzaQpÂ^ũyF"M S[`6>ké ~o6տ+^T F+LWj!Ʈ9z `uXW4Hǽqco=4/pw<F/z}CFX R مK}ܳ{5Mvhx!fNv2ixOS<'/2uG2C뮻isx*)Sa"a(/זjn<2T-FZ5?r[kkQ*T6X?76 TVCFw}$DLuЛN )p]JD (@]*C JFv?0O1LM- G%A#CQD:d^ÓN J5QsQN};2.՘!pG6Lܥh=uG`Cڻ UߗVS,ʎ8*Nf<8~zh%Z];Y 0ؽn hm^˪:T zoX-m$BTݭqu*ވj|^ dB6&,ȦWhl}$Gvӗ5ɧ)޲RҰ5 ?{Z&c*lh[Kq5 gjqo`ܔz][k`Մ3fzjS}!0NOM2p+N#cxydra;H=k_`o@6GLwb9ooWP7̞oC GIކ. GP {{'ÖvN#̤IaOWNf簫Ήj'1isEA{14=9gﬠI=65!Ds159fXC,aCN!#;KM#ޣ 7ܧJ< gzs?mh!EuBT ͛I?ef(C<4σ9Z$'gs  ٰG=TCT>U=f`0QO50@kZ;Mpx*:I}הL"LtAGd4M\i8w?`.n;0EI#$=~[Il=BloD[M2[0[vݹ)M!6sϓwk=B4<,(s+dSi+ߐf=7Z G('a9eF}G3oZE`81-yQӍR[c9f`ҝ\ m&`:EbJc.+Y."#|+^1B$A6?`ZE  1*@6?ed@vyAs*P2Xꆍ U.əuazKBX\MazM] !U@yPUK"kyКAWRx~2Tmf0(Ŧ|mvM4ʇLмd'Ŏ;Sl͟9R.8;⼦:z*`Ok*V. xb3?O^pXfׄ{*NrjX&!iU$Ԁ|MBʪ8ɧ`ߠrH׼H|w3`%qR9n9l"6?+yON~?^1E2Zxc7 t84hw!,qhv:mx85h:a ?߭^M!45Z=5h6?+y*xY+6? y*6q/B$ bcs܎03jw$|(ЃUQlh;>A(6?- zPUqc3D5/MіLV-RlT񵥺:)|@ijT$-F.ʐ lo8Z?4(pΟ~VC$ bO0SXI:)IhS% "U̟~;dJT 6NVSd./x0-î[ٰ3MESI\3f#ߵ* YaO¿KGus٭P0 fڰ4MaW¿K;uRZ;:)Ȅ޿49KTɖm K_5% GS#5 YQao¿KcwɉpؕWf]1O[%amuؘ匿z:pџ΄NqZ"8TG\ي)2B x cb}GG ^]m|]M)}8hjX)-;W2as?٢N7IkJd5%ҪD֦Zg cQ <֥:X C_%υ%WXpa=!:0`:t CpKW E6WI-,Zu֧T< ;;JMD7M` !^g࿫OԻn9X࿃TԻMaW5(yϟރ #jzQ:9[࿣Pz Y8.wЖn:+wuVVq7ZIVa $G+6?]'ٮY7|nCԎMaJ<ĜA ٬v!wՖTo ֊_=b98t>:8Ry6lJܖ*0qy5(D-5:-?٤a_j ꃣsXC=7M: N;X ȼ 9szv zS=tB9}ԓD+Xӧ]0c:1cg:I^m 3}bzks4s׬PtN4"ғL+Xӧ֓nh+Xӧ h́+Yӧ z$ks|z)ksTߩ+tYӧF+qڙ-,+,qڙJhDmFG9=I;T [Y<jTia46S r95jmB'-W6IM4^!ڄ>OB MS~u"{AOܙK6Mq0C$ OÞ<?SM_|?,Sef4m|_h4mz_z$}`h^fe@i}`iW6/S 4x)}45h+,`.q69ғ mqJ$^)o܏$ռ2Mcdkn``6oaKOY/X [ғL̫q9l <{*=f#uڲ*2O~-$;t{Mt?2*J ~' oQVa.)poH?{^8>7/{;\g4у P[> '` ~8D72^wfcӣ;]-z>E="y?TrO?f A<^t}kS=񬪴ץ`?HR!WTlׅc5!dU.XM?/x0Rҩ򊅁ץ^mLFҵ} ;A=V|Lcpds8a0߬DcM;s{){L[:?27)f cg_~t}h_ORצg{hO~a=d=F.3= 뱂}^!ᒻw~.3]c%eOway{?&ӡ:Ԁ]i(^wd5h)р̬?&=YM{?&LzpéYR0[{~nPb:xXqRHG B,,.Sg?Rg8_0g/PA̝΅Tι [XN_WKi/u:ճc浗rX+K߻cB#~E^-F!8?U@? -̚ŷ{rRZ5+;䃺eb+k'Yt?'>@ǀϲ2,q? 7,l - w|+*KEghV# 2ud\w>RȢZΝYYm}3s`qSHgaP,e/# F,KUKu$Ͳv"T&M+ǗZQY|^^Zc,SUSȢ s+:oUVhgyR~KMyd˲v7"vN, VuzQN)YR~MfY+u|^I=vw"f/hKA-}2=3K0RȢeh6װYKa,_2i%1yDznޓrSw,3{ 9IDzN}_&u)8:iȓ”cY|mIQaƱ,G߷`xK|QȢS(n ǂPȢTyS=(;LH&Be\χB1B,4 Yn.w!dQUȳ{O[w7߷{Q=AȘd0Y߲!edgYx@0Y߱;0Y߯=xw!~0~&z]!9M'SB$/ M呆/IJat7lh9)) n$`O1LIB se#OOw#\{Lc';|HEh_/?Is ߎ;i?>(Ln=0i[Ӥi C. sv-~πtץCqx-Bȵn.f{,ݧ p!3`=:AhUyYq,P4C,)!i|udXI%=_UI",m EDK&M@%E"Vn Z;+_ϰX ;A4l/ZYʾM_fYI9:frS44Zd2Fޞe-ԥmY>ynF[k{))dYIIqR4Ep# =LrMQ)hf!4,ֵZ۳I\؞%Dȟ NI'kkw>+I$Rg;|8!CzHcGrHI9$kkwc&i_jSW(_u՗B!^1)J3e|;Ie|xpw}(}$O:a@˞ߺ?+-w[Wrݡԉ}X!s*au dkh&8.y+$Oּi\j~ڞaֶmN"]ƲZz~ַr@:"L/WP'gŲZz~;Iy#\P!_]43ȐhJ!^!w%f1@C eV-(d>khVn@ǂ3Zqg#hqڤ~}('Ow/lt֞?ݫ?!3/T z /?F ;ջҟr{>jJ`ʚU1SȪPʀb^D޲6 CwʌG(QnnvPȪeRjг##Ɩ ٨NH-Q}]I!a4 ea2rv3=BV-g_;8U/R4jJ+Is]0+lVt@6 3e6ous(L{ (.IIaԻV.f &j풾L.ko=Gf+i}KPS;nUKڲR4ۓ)(pu>Q/݋ ^>Vw jkT]װ/ZD!(;G혳tUmT׻Ȋ{V.露w |4lo) Ң|(fw![}O #~kze ゛vD7ĸaie1SZ~% n,1.M/ݰ-ty bV1ap6}N c6+@4Tf_^)vU>9' #nV!?ezԝ' ^&)At'X)uA,4v AYժ|)$+rVw9)hV#ܠi s#͔7/E׿hV# ۴RGd Ӧ jmZ)6$6O?{R&e_` 7h6PH)!܂U>±a+e n l(^RBx$)+j%RBxڔݴx)!WV dYG R;3`RRJ&2UK XwӍBVXRoV?~(*nR{o糧iᥦ;eJrMV/uy\DR?seEnxyVugڔ洒xeueӦ4g@(.ߴ)yUl@{PLM KV1%)aiSJ=g$6%, ^w@~iS^9 ӦKY=4ӦK^hM KV3[`ӳ%X#]qڔ=/M:~=ͪ<Xh.1܄V׿Ȕ3[+E3|Y(1VMr}6ح2GwBPG;Z͘;$ߕǼfCyPHS4eI=a`I;cI4ml8ĞCRH*v⠣x+|m?G/[n&>[c^%>t'>^v,)񥐤]2c}oRN/jN/ɊkRO/ɪKO/{`;@a$o ^=~~`fKׯaa1P2 !$i1\yS_Q/ɪ'M[UB p\Į m+2Ekk~ E3 !`Tdr[a^΀'x9G<:t~π<z3`= N! @w$ ҇BV8)IZfw ;ˎte-?Q& >'`NLSF| +8!IkB!et`N^M3Wydұ+i~"+RM::y|OlAIG&7Wylݹ5/ ݤUWGIylݹ;/~<\^X NJ=a $-zk&:7,#\='M[x%'Q4nѝk{Mݷ>q ?TydK^{nc߀ޤȒ2d+ = J^ܾFH/館+@PHҶТתx<&WY)$Ct axAZIgP%/o{< 3Wq~[ydQf'XڶO+=XҶO*}@]BֶBL.7&_vp3 .l=£ĒH^iHAjIO'n{{9 [ғJɫ2`RSnhwxT ӋBֺ/eh$=Qm|o]vKs+{A*I$;]1cO/h&~IJΟvRJϟ=?נlbdǶ7ɿn@;v Λk0E3ڃJ0iWqś@;%imj܀vɈiw{g޽({ώQgGwRKZFO^frA~IqoP  FM! Q0$[2anlc,4" R?}Xpe:^귞awWinL^HsCb0x$ͤ'Au!Ťe'g̦ܽ xٔc;]~MSf*S'!Ӕ;Dw4UD-fAHB[ڟ 2>0 )'MyfEN3NMg~45\"meݒ溬ݣ+xe4dWHVK}A 2Ii(7(.3 $'ͱ$tw]2TJZ.uR﹠ӽJy쓺y~&v嘴1djw]mI4wdjw]{+u"`{=uǗ&u"`{TlOdrO0jRޭ_mv*];Ջ׫2hffS5 'f݊("w]=<:ɤ#{4@#`PB^)+fETʡYߎMcPH5e ̚phʚ Twu BJջpo7DpWo3mxYWfw ;Ol- >,SV u pw ՛B{VL(UY}PM!u42e^a`r;gJ2K+յwʔ+a8C!՛Ue+^,յO{aحlh *?Try6ʇ{V^bǐ:Ac&BlaɒL+!&XS2L+avO 3a.lG3{ ׄYizvh/LĕJ{&R(,Yzd+^+[&7dޞc÷~R?#FQ `Cf)Юh(EOnS A;m{F!3],зL Ѳw"Xu~CܻgK]?!Sn|ަKP@C zAB z7qL!hm&CX(MM/SH;&KRL,ϷK}՛9Y*tW A;o{B![,I/ahlX-/]Bl۞߅TyRf҅TcԮ&̍6.zrrN!m]HJQ/D*ջ @oP]ud.S]@]Ȱ.M3Ǜ"'?mt,zEdT[f[觛e(mYRˈ2ׅBڴ/ %DX*6XͪᵤIӗJ}S:\۳Bj t4ͪ| 4mmvŒAk{M!0lb٬&^K f5ZB(l e, ! FB] 3N 顐ZB pfQ0"!MG*p8=q*NMBLg?̜ vqРz+}B^~:c;ž{tA l{BԏȚIw,Ċ駛Țz-BĪ;{Țz\qFzK}i#j1B fH ެD^m'Av> lfs~T:wfvG{DNN7mˎ:?'G?tQ17j@4}͍]HsM`]?X7uCwω<W7mÖwyLNV7mCOiTS7eK.IG4uӷItboު2?Ee0(O :S,4+~)B$pfh+T4 EW_j oewz\r}ۛh EX},3"{Wkyt"|C`T7m9C '›P`!MՐ{$ DiEvflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/KSC/JOHAB.TXT.gz0000644000175000017500000041477706756134234021261 0ustar mohuramohura7JOHAB.TXTmoH NnK|`1"/#ilb3mɐ"o%^N0Ȥ](oO?巻nW~5W\|NbyeziL'&l?'|x7oigk{ή7?El_Oީ]._y/\ -ŴkE;!t~}kj#CnX۱i/l/Bmá MU||{8b)wv^eⱾ|,QnXBlb{[JZV;AJ}_{Gﯧ0qBβR0-wrI4@62Twf9͓ތDOlvGe;,yͮfŜܔ KCFW 14ݮ=I4!I|~KZfǓx6GX3kΊrooV?^=Q,adlB/vOBT<'e+w.[momYwv^[MO[Ӻp!Fkֿ7w%wʏX^D<)juWbὛ{{;"otݨQ7?AEx׮] N]OԼZ孷Z|U+.LgՒEU/ìw[u%>KySQx=swuqG|{UD7X3[ yЕ )|uFIx\M~wo/f>39pR}G@Dcۉ3Z{u%³\|>?ϖ/ϲdKתMߵ /G=Q(KnFC=/]HGr߈9뱸R/s%z0˼;q|XK,[|vjgŪ}T/Ler,+on9蟃Zj?-ù.[ݗ_XNJvYZZX|Z{J9ןV7֟뻼hQVwrPoZڙzC 1~lrM}~bFsirTo{P>cY[[ozLouZ.c_ekŗZJOw9_Ao_t`+@olpT$X3zovo[/_dߋ|0z0ZA0Z(! pPQD,* OP &HF eNF P(ࣅB- -lX,F P-Y䣅R}V_PJ+ ëBiQc8_ec8Gi%c8G遡c8GL뱒ZZkYQ`q- q=Kj=6\ ú˽N~vmP$Ii`++h]Vwg{]h݅[v>iEWir33,}nvVW4)^imEHtH++ FʤEZWQ8R>VUIxL:\%#e"Iw">R&-Zґ2lv()iaE0R&]-Š2)Hk+*FʤZgHX-ӛtX-ӛX-ӛtX-ӛd!z&],z&=,z&,z&+z&+z&+zwermOj-_d;gb˿hŭK@ra; 3ܧʨ}Ej# E^^dשׂ6_wk[{'ݝt)c76lKW X cfr,JX]ބU˓ͺwI_>eҖ V$X`i[29#\X̓ gƫG:uwH[]D?QVCع"Dg4^v%({L茠B?ݺDE?;5Egno&VOLޕ' HHٕ}ǫre9Z>Θ3V+1bO p|9gvV@jpzv$qV4=KR"lu,LpFBh q`/v45DJg/$M2$d}$QM_bzA MY0ŌF#3X3 I">u͐.Ff4>܏ 7q|S>DaFd,Ff4==}!3#DI&L:AK'J$(cӉ$ J>%9'I-NPs| rN:AqIdr۫眤&:AuIdrǭ$'u2CNPs|` (w;AǞ0e39T>l`'2]f B2oL12P!!XƹO0e(dȆ? 'x͛!QbO2OddQf>EۧYNESجc6Gi5kQ>E>hs%NsJ:k͕D)vֽ6G=kQE=msTi@vP6GGၛI3'nP8Sbj휹S+ˬct%L`H0P;EB G00UlLdwt<"QR"5d"@,C4ExC O JAc۴4AT !(htT S񓂢LO 2>)(Pa~aȖ2xT '@v Gd; c'@N~azdY(~a~azd9v '@"n~anzd7 &@"V~a.zd@L@Dzd5 &@6!V~ad3 LlB{A) ^~aV2̘ىTc~a&d2 v c&@"N~aȖ\)FyS+9JrT޻ٚ̚TAa {j7?0mdwRMlO ü =J0?0pdR}&?0qdR}&?0rdRfNlW Jd:KNQ I0?0xdRm&OlR +*Sxپ ~~a&d>OOlU Jeg(@(sL١T:1dR9u [J9PW*1dR94u1 [J9PlW*-KR)qt(/%U}9fQY*v1dR94 Kk(@.C/Guc ȶrr ʁs٬TIM8P JS)@*s٦TÛroxSΐO7)g'}7)g)UjޔU7)!iҧӛJ7%D>zMoJH*}7)!iojI<7%d>ޔW8ozSB\M yO7%ĕ>zMoJH*}ޔPozSB:XҧӛI7%>zMoJ$}ޔJ7)!ozSB&cPGM 7)!t_f)!tKMcJ"UGe2iK $*rJ $FX-S󛞔I%2iI $*=GLu2whH $dЏ%dD7J'R(!DʭnƇ.":9@.yrz'NǞ*#ok|VrUroSPӵ~Y(Ƨg*2-ɤָ)O߂ǧ*\'ӏ5TXF>>QieqUVOYyRݜK*ȇ<A>zUi.s)WLn07C>{ zǯ>/*t_yAh6Īrp[XLZ+#Ȫe'.|:XA)!:E{V%.' aon|`RýOmU,vZj;&媴rp3]L &ꉠ}Ҫ'trp#^L?yx7Q>ieq'3_Vg~yRݞOK<wU> Vi.sc`Ln0V> >/*tyAh6rp#aLZ[- e,n'n|6X !:e{5DUe2tU9Z&b>N@Zel7Vj(O:);Wg\z0(u,L}ʡ+OsfZEfXsgXOZݬ`jY[\ciX5iNn3sif\GӚ/24B=Rr€>VAxeVkt}jk}rp|e`kYtOJ)rv)}RIYݦlάnK6jx >Vi}͓IՁ>iA[U 8oNb<~,t2e2eR 8Z|8ΓE}DU%>)穥,oU2rLn0ȲrV R4UR9Q@ed@βO2u;>EW0u>>HWU вQ)*a),Z:#ϏGYLLZ:+\Z ;GNiG#7`u ߄!rN,~3}rW>@q-}ϑv]>Hp|lT ya>Ҕ'8czX,[Q=+ -UɭӖ}NQ[ -^E1=gzVYN[=NWhGuf`ݲOUJ[ٽUy>W=<]':)Kz|8AZ Z>W S-l)4z|įAזO:8|"Zz| B:tXuOϐ.t2|6KYdh _"'|\ X8.tRr]>:X^u` ?峃f8.ldjZ{u a k:]6:uuda3 wӅ͈P S5nUJuġ3x]>oX)$JW2x]>|Rrx]>Xi刁DO&U哉V=TO'VZuuxbg=~,tT2|\ЃEO+Հ=nPx.ctiդx]>詥,|]J&7'=Yx]>XyQ|ћ"Elc%+6<^O82uuc=qÎ@P 3CuJ(%D]uMkegaw[ ]CZ#w]>騤|BґG)I+Ug]IZ!v]>+@qĤccT|]O:R)>H(uCu8JG,O壕V*g+Jn-]OV:rk/ZSDh/tf(]>cirjuUI'ueRg\O\VJr]>tY*P8.M`Z%|\OajOظ.¬ju$f .th)2x>rC7zMf]ww?߬n ^^i'[Wl"n?6'[WOX>$pn]}Ӊ?aܺ4f·uqL¶uYL µu):i3*guH g0uR Շ0u\y~Ӟ_S68]C6=[s6BY꣘:GWꓘ ?aֺM?ֺ+®uY6[_#&`aꃙm է3ۨOgڼf3ђF+љJ+џN h6A'[WO8>Eҟn]}Zͥ?ݺ ?a޺I?޺fS¾uMU¿u&3&C&U~ է4&iVI'\\WӬϋV-&3\W4NOhVOi69^j 35 7g6 ;G6%uq?x0t]}\Osd8>>\2,]WS-l S6'Kꃛڃ%u?ud>G*ήk kՇ5șH0w]}T:Q2]W {4$uI?80x]}N9M2^Wc g5$Do1^dX_ INkIN[I^dػ_[ w b~ma~k&ޮzqa~Aj6oN2]/HIY;uլ^dں~koO2]]5'_LO/pM% RSAttЬ^d~Ag;L?/%Jdz^d~d(^_PEJHyi^d~ew)>>iꃘ:3#է0܌LWì32=\}SgdZ8fuFc,LVTy>djd$fiꃘuFwbV֭>fld:8fiuFocLVT>Ynddodz޿hJ{lв'/UGc^LV4Y~>ui82Z}drd̥4kK͑%n>k1|I_Z~Z$ӱ.? _c͗dK2}[}%έ>1|Iw`~4_C/o9O×d:$K2=\}S%.>qLW8|Ig~$3?/ts̏K2\}.S%>Q|Id~j$3?/ȕK2]}0cLoWX$է3?/w ͏K2^}JLW} =^}>cޗ3?9dC} =^}Tߗ5?zy_BW%xQ͏~_BWKꓚ}5?z~_BW8K} =^}^Ӽ/xq͏~_eV?[fʏUEM#uKӨrxnozTZu~ӞN~<^7u ӝNOӚR%ʟTcfT9m$TwaS3c~TZUΨ>3rFyO\3je~t~U(>Q)V9Hɲeg2?uUΨ>srFOnl]ߙmUqu~{IWu=Z] 3?**_>QWBO/oZUT>Ұf/Yd|(c ֧1?&%+_h>1YYBȉIګc~Tn5DAc0&%0kBUl^\j$fP}^\ֲ~krM,5.{kB̯zqrM(>mޜ\ʼOf~W'ׄJ5|zyrM8K}{rM8K}}r8K~rh>U/P]4 5zrh>w(׌n룙%5|WEfY(6M{h}Bk^\3h~͛kFͯyrh>URSgIY39Kg,I>$fgIBuyܜ% g6ss$x,I(>YXgIbל%v^s${Yp% gIY,飛9K4j,Yu}l3dAy\% ڭkfu,>dAQͬϒ}G5>KY,Yh}R3۳dA9lϒ'5=KoZSJtEIώZqͯq]+Oh~׵q]+j~ՎZQ}\[︮'6ZQ}^w\׊"_Vx6;kEIoVTz;kEYoV%}\gI;kY5Ш}\v\׆듚_6[V;kC̯츮 2Վl}2v\׆>냙_6Y׵T츮 MG2fum>5;kC{̯q,nW(qALsn`s(>1SdGaQ}Ӝ!;b#dGeIQ}9@vwlΏg1c1c11@cqL}th>O '0`5Ecq>54VԇƁ38Y}\@KK{`>t);`+t.|O`R`ϐ.|7Z>|IfaggmpsF$+?Z%<Js˨a4*ά.|҈8iJ#ljsG)Fl(_.|~r䃓ɽɧ%y6|>\_nM>Y\&AHӟA$5?)#2geope^9TŽO8k UÍTH9qS3> b|\!_,zs/Ӌ*%/ c|x RERSE17?>X29E+7UuJG2<>hU2\D犡ÉV[L~EBT&J w8>XrC+(7{9,ף'|v>gXD2"~' E373N IUqӄPt} ֑g_ kUsEQh\|`ARmE Z w,>+hU>*}FԌfBf4*>hf0}dpCV%c[*y>gE};WT=ĵY<`nL|دrY~E 7{鳂r"I>r=z‡lNJ-{E$3;+i:C|NOjFs3z2DԌGIUqSyPt} | H,kCGb5ެİQ?,ȰQ(I 7*evLnOډL7D"ٺJ9J* 7G*7J'*<` lTޘ>LWNlI>&9Q-$GrB"d>'Z~ZdḪE@i,`t!pBnb©ɢ7 T۪6z8Nh:$e*l', >VU$3nEQo0`OU? ܊JFwf] Sb'.?LYA/Rl|(dl| Fmɰ5U5Us~gb#kկjV'jE%wiE 7iVPnѤ >+"LjY4fGiPXϙQceҤ@^ >[&Eʊjy2s)FOR|cTzX5ؘ1DCc<|d\_ eC5r91d6ab-F ROab9F]R abAFRdS`F$cGF5j/I 22yHx6Num44Wir9L=[Ԕi*(Kr >h%ps >cU)=G}|U GUL <OVU2y>XUt+1PU[cJ(OގD&gD!*Epx >/Z">$U!>#%*y >% B8=R 5|&JM5|J*8=RGzǠD#e.| >TUaeIM uL=|Щdt1H1URsB6<3Y٨Md26| >dU2p|ɪbdcѥWTMcKV'J <)Lr66EJr=z‡lNJ-#HE$@GD4<Qc猤IU1<]_h/*)-x>+/lX>$⥪|z@11J|x";K1hꝥ4IWr M Bhc!s(G2*+0z >dD2Z|*Ȉqb,L膁cq cQ # C@ɽc^/ }1Oir9{L=c=4c^/=vvѳގgxʼP֎gwJK‚c0tM}f )':'Wsʵ|2(Q S9*%O!7*?#NUĈ3o1otZ@EFʉ,ȠE[ƪ :ΆU̠_T[*a(G N0#̀9Ʃo)qT-@oD,J|芈©o"bp$=7U-BKD JvQ8&" B[>8~KqHiѻ8k/Ɛ ~KPf:d4 %!9:V(#0Ide(ˈio3sL -AyFh_ΈioJ4s[2&mT#FYU$BLqշViRo+ut@DNRhҩ3oz$btTz-@DxN~!o#ttV@oDMI5莈ұA:6֠-"NfD4m{g|4vDN@,_:i(:V.#TGeI u1;uBmFȎN7Q:M-CmFNe~PS*gT#;v[;mf6;uZB#E)Q ]:U6-bSĭ$ף'"L#EhQI:*"LǤCD[V88~Kco buMGH,GZ>BDGoG:>BBYI4|NQiqz+=;Zz#u^z#Dubz#$uHGHԫFԩw#}!S-G͒ oe2cP'} PS'I*eDҷ :cPG1FN}PSgE*Tg)ѷ :z :m2Ďp6z#^NUh}4<cD|>1"t>>dSĭ$ף'",S#2|hx>ƈ}4<cD|>1Br>v 19cG1FDO~}-ftD[:8&#NkU(Q9ͷuYQљUc| P$12f̷ 19uByF\N|0#6M\uf-o#Lc)˷ 9*_7"4G%+tETʷM9|_P*G%"G%(tC[fGhx;ƈ1yɷ8&)"d$4At_8? |c 1p 1$q 1qT-@=FPN||PSg*TeD[s| Xћf3Xz5XKz7c*aFGNd|0#L0^uS*4R[ވ8X| Se"4EHJ}=z"Bs|[L| 2o!sL-A;D!%h1 ķ}1:&{ ֑҂c( _9h:ƈi2o1tt[rPg4|cԉ· 1;uBUFN631uu$2fԙ :uZByFNg4|c 3:wl_;u*B#EN31vu _:Yh:cPg4|cd=#L'M_GDd;8lg4}팦#buuDO}-ft[:Nf#t[rP{ PS'*dD U::V,#TGeD4 :uBmFN{PS"iwoft봙ۋ6שvo)uT-@oDJؽ芈Щuo"n%=a9U-BKDdJҽQ19&="*B[>{Kջz>""#1~i4gz=ALG4ә>i3]cf3=G3Nf;"twD N3Xz,8T#qLWG43#~2}1vSc:9"FOc8"Fc8"bz8"Ǝb:8"Nb7"b7"FᩤD k>S0q9EQMkʩ~+i'skϱRP>cU8 O9EQĵOX,^Lkϱ2&=|DǪbv9WNI̵OA=|Jq9VPn>#XGOTX%|2ɜ"çrD c|sdiRUd\{`<]_lux`?> {j`c?T V/ j>^>S)hxN%S{,lmǛxHdXcYJ]9#o;LFV /۩d3Ta KԿj)lA^>S Ic )}3<[Ew*E؄|zGdE|raQC|~GT2 y( yRٍuˇxdQUyѵaH,[;a)9Ẍ́EM\;,ͨk OL7#/R9X|ۍ'{D"KOT }Q>Sd`QўJ&T2y>St;a]T=˧|*#2X|Gr 6yhO(`tZKhzXToO^># B,P^>ѣj~c5Y#=mUapt'|G4Rf`^>S yj*y8#0gzV 8'{NNW57Pg;X˧|F9}Q>S eQ>SdyO'a?L74j1@2/ȁɼ|Hnyȍ*џZRn$`O- tO]-24(Lu 3/Qi˓k/=ׁͼ|H5μ|H7*>3/IZHJ >y\ h^>TR;@h^> $2`h^>T)|Ѽ|0ۍB SA"YQYQ5YQ'5AL0ƹU*Pi^>%T@Ӽ|PʓN5}O1!Q-PJQn!,OU=,*tJ8BTˇBp`5/REpp5/Rm `GѵƞR)hˇϵ>T0ypPQT{Z`f5/*2g5/R33К YϨM**3КO E3КO Y٨M2lf5/2pf5/*y>2dEf5/~Eih˧N0КO A5/*y@k^>*dyt`=BcE)"*zZ)"Z !Ȝּ|HHhGIUy<]_h*) ?gL^>V3 fω5+;{BJ'n )M^>:T]Gҩ 'F6\'/%֣X}|܁DN'/#u1}ւD/: Jy|Hn…"% ljjI [j@$Q"C<<EJ"m G牴DtxR^>TǍp|H7*>R^>X;))>\T$?+Ք7NJDRvzS|QvM #X7*)>lTfMg:)>i$QFNF)>mTd ћ#GL0ƹU*PQ[7Ň*dR3tU!Rsw5/qZR| fmF]NCO!Y Q|ɪbd<'_Q5(>duE񩤢;H+$<:Q| ͣG B+""LjP|hBA$9M#QcE&UEF#C&[GJHٻ3'>$ @#4HRJ{"G:w$ޙΓ>jxgOBDi; ٣6w$2 &w$dޙDrxg:NBIi8 i&w$đtLI"0ޙnBxgMBIQ;j2H:w$t"LIH Hޙ>B3m&!dCygLBɦ4(1 I$4 2 )$'w$dh>)DL6 Im8 Im: I6wd $;l2l;m2tR;n2xR;o2R;p2;q2;r2R;s2a:BVpL!$[j@DŽxR;x2 )ĕtvoe q672Rޛ`EB^ML!T&Q[r|(S.9 v)D?K:72ؒMpL!T&XRVR1 )ĔSJ:72NM3{Nj'RTY Ɣ)lo3e I%`MBVI&xSTY'XSQgJ <%fL);_Jj `Kb\ނ'RX )<2ŨZ 5Xz 5|T(S*U;J6<2ŸRO0L1T(S+xeI%OpL1T(SL'N<2XROL1 .)Z<2Lً'xPJ2 #If3@b&ɬž贒'SH$|;~2 lwd ) )v'xOERNL!T;y2DRH )Dgl'SH"5NpL!T;t2 RHg,'S#NpL!~;p2۝2B|;d2БlwYZZF68p%Κ r;k2ؑNpL!}Ԇ'MAjӀ'S!8"H&8u2;BMNpL!F'xOGj2'SH%y )TIm,pe $ BB8'PKj鵚(1!d'QL2 ~)DL:p#e *82tRJB: NL!T%'8SR2 ޔ)MB>Ʉ'xSOjS)S)51 ޔ)DtNpzHE7Q=,ԸL7e Q%MBR NL!Ԥ7J5oJu^p7e q%'082MB^ NL!3)SH*oJujp7e $MB, NL!)S&t7:g8)SH%o"I6<82LMNL!)SH$!?82$ NpL!&'SEj"})!3m)!Ԅ'RB.IN4XNHNHR$H &I8ѐ2IMp%,D;J&9a‰nNr҄(! 'zQB"K&~x$ĕtBI+ '!$/RA2KuBI-9! '!/RCK:x$ĖtBI+I '!OBL"^? Q%FJ:x$ĔlBIH*R9ĎQ GzRo2p!sd4&sH1 "GvJg2̑ nRZk2Q>+)O'jb2hXW}:ʪb2#Yi+++Yi+v,-9Rx+,/9Rylص>d }_s}Q灲Y&G[؊LoraWafr~ciGT1;Y_dfw*>ʭnfaN,%G+4=Yt2v5=U*9GVkf~&+v6?U {٧kPV'e,]cb\ę}R)וoӸb3TC٧<;MyZDP>UIDZ*6WF>U9½QMꃄ#Ϊ*Vn|J~N^>U DK--CʍlU 5wWJW%.CKq\Vn|˓Iq]V=xMݓwU:9K/O VI,>G*6Z>VYݖO#L%plX=TrbCu9J(% jI1+?L@W>'VKc5X-V?xj(f$suRv`f)s}3eP7k- ͂Eg6DyџͿQg>w报,p VkA4V- bk4W.nkZ,iNn3\] fMk|> Ѣ|H kQZ'kaFp^O5sM2f\kF*\0_O5S,W* ki6V@`ϲU 5@>VC8m-%&lJ+G هipp' l9VM lI9O-elqJ+wPrLn0Ȳ٧.M|nʉlJ& lZpgO#L'f*VhQ)*a)mb??%>Vg2u5o &vsd6cd6̝*Q}ΑG;+3d6#d6sx x 3yTLJ9JՐXr6#jo LO*guRj$7 ѭ|D|֧FBQ\cKѳ#~XN|IѷsX=y [>W {ˇ]~:vt2@W,Î. tR8I|JVˇ[u,\>4ʥ>Z,n.urAWWn3]>>4~||НE a.'utv@aS ]>Y5uӅ͈PKO6S,ͧ k+=^>qhu? =^>oX)$g+]}Ç-%G!VZ9bDO&UGO&zZDP>XiB'V:9^EO +]Y.xWEO+Ր!Es' <^_Z5)<^ɧ=<^G+ex4V2x%hd|JPIWJ*' <^+6<^'k:OJ>X0u|رXJ>X?D]lߴ(<^ɧ b+WG+OAz?]!TػF:*)5OH:R(P>%i +kWYIG'&6M:Rou%tR8>|Qꆄ+8+T#j+h+lUɭ+d*䳕U[G+Y JtXZps%*dOZV*uf˕|ⲚVȀ+e@J>{Y=<]':)7˲ۅp`J>Y)ԔyFooVt< G.u WꃗMWӗMWӗ&}+KeeQ}}J}`J}IJ}Ӊ`J}ɂJ}Som>S7R¬ᷓV_!,[` ԇ0u\V63~_+)LMJ}Fo0k>s7xRdVC6Q~[+)L'V~]+Y6[~_+L0e/Zfe/Yge/ZJ}4ӄo0m>$opm>om>fom>o0n>opn>Eon>on>i7R4 i61 3 g4MjWC&~ujW}Õfbĕfdŕfgƕɴ7/cf+Mnɕfqʕfs˕aJ}^IJ}faJ}d>_vR}b@O>\gOW3e+?ɲՕ`aJ}tO}u>G+;]mQgWCe+a?rv>:RvRNG5e+1?3vXRǬ34v8RȬs4vRY;[b<'1L'1\1lޭ>Yknq6ccsc9;[}*ocmOb̍>Yn4mKcUNVT;[}Rp4lKűӯէ.MNV4;Z}r4kKͱӫ'.?Kv%;Z}%;[}%;=[}>}i>iέ>1|NVhd{a~Zda~dOb~dc~jdOe~df~dg~dg~4_Շ3?/s/cŗtմdf~4_G3?/ꃙ˗v̏Kvt%;]}Bc>|NW} =^}>cޗ3Ũ>iޗG5?} =^}\Ӽ/ǫOl~%xy͏y_BW%xIO>iޗYlǫj~%xq͏>qޗ5?zG/ǫOj~z~_BW%xLNdG/ǫf~zLǾ/ǫOe~zHǾ/ǫd~zPG/ǫOd~~RvZ$GgStx9OPG1?uNNW>3v\Nic_G2?*jd~,ή>vLεs*jf~ڌ>ivxλZxG^t-}4󣲯v8>v>~b~4vc~T&71?*kk飘˵ȉIaZ,depr-}cv>QYyarǵoLUmټ29&ve䀏k_䀏kC'3k>Of~{>e~Ջ>e~7'|\K֯N>ߝq-}>[<9Z}{rǵ1o䀏k铚G54 '4+cfUEn룙%3-45ҧ3='4E4Mg4U4]ҧ43>Y3s{$vYG5>K,I,$3g |\K,k㚹=KZfn>>l,ks9KZfv>>nf}ǵͬ>>kfuǵ1\%q-}T3>jf},lߴ>KZfg |\K,k铚ٞ%q-}V3>Oj~v\\K''4͎뀕kSzu˵Qͯq0s-}\[>w\\K?G5ju,͎XY?_ױ;j~S5뀫kvuֵyo:ZW>U;ήOh~kҧ3:ZXq0w-}2v\]K{g2fuߵ̯q0x-}$kv\^Kױ~ӚRx-}"G ^K4' ]Kl>ٜ#v-ہk)_'2Cc3b#Ob'\Kl>ٜr-}>>Z8szǵqLk1'1'0O_sޭ][Kԧ|[Kԇ\[Kg<[KG[K'ZKZKTk0L7]>u\כk.2}o&b/aKʹ*G/aܥc-)SͭYR ا+.}ҨzsAFTF֛)4"y8|hT!JII#NR$k'r۸oHs}m\4Tdir9!M=SԔNyI>X)˼KK'5F*)F\}sGcZbQԣ{!^~P)n|xdsËV -.ZϬǨES͏+ d||N FUXJ 7<>hU\1}8ъtpドկZJ:y@bQ@n7>{hqo3ҁzڎZ H34>bXtd|f e͝J"6Ƨ B(aHiq3?/X˵wg4W.>0XR)ܶ`QɌ@ʅ;*uQ>#XTjFs⃁E!3K}YA|?J!@1-OZܝ_+gN07&>WTr, "=YAy\$t`={cEɽ"͝4!>'5 yg4 >'MʓM(Ҁ̝H1 $mGjdPD[|RHрA[|ޮۍI;Y l;Ȱtl]%suNe#uLF('*<` lT->LW->IW I([|Ndr->;' ![|NNdE|8aQC|6NT2->' BbO) SE o@bU>l 8pt'|M4Rfet>a[VM̒ h;.iV[Q|H̀Z|ͪ}FmX[Q ka k16+7lV&LkV%4kV%#֬H7G֪_Q5حլN0-T+*|<4+(7Izb3۱"Z I&5ՇΊ@,f"Pssf2DԘ|4*2WϖCuBN)dF& j1 }Z}lV j1x>'b t>'b$p>'c$j6VSaz}Q>fTeV32ZNQO< M,T>B>e?is_F&_ɽi.s}mV* W.GOѠ|z2O0Mmz鱙'(ʼQ|_Z}<*,pKOfk UCYTH9,'_ŪX}J$4cG2c+DcJ!sWLnO\Lex9VLʌ_gb}F3He@w OUL0&VU*Ju>TUX}ʓca*}c*Q-cJQn!K,IU=,*tHJf6|GBNէBmx=VREMn=VRm ~'ѵƞ贒<?Q3X}\&<:E=X}ҩA`X}ЩdtHURsՇB6<3Y٨Md26|>dU2pX}ɪbdcѥWTMcKV'J <)VLrX} I:\!$۱"BKRɤc"c#9 F2DԘc9#iRUd|>c$E狊DJkgi]aX}YA],ŠEX}x"ϰ{>;dBc!#R7#C Bhc!s(G2*+0z>dD2ZX}*Ȉqb,L膁cq cQ # C@ɽc^/ է}산ur4 zzi w=^z xj۱ OjڱNiIUXpv>S)TP!_:?#Wcrv:V)zԱ`NJӱFȍΏ?߬à5J Ɍ?߬ǠELZ ?7:'c؛6!c&|2#I?X#΃?aX#I?X#ɀ?aX#I?X#G羟qO8ֈ©O8ֈQ)'<k',kd5pty5pl A86{c8~¼F(Nm?X#y'kؤ5p5bqt5BrL. 9m" 9m 96c~fVg2f#DiVeOۀc&gc@/acP/[ch6Ucp~̱FIR?X#JP?aX#FGsDxN~1:&1#tLVIKGDT)'=S壟4uDN~q:U&I[G4L_GD =!:&=:my#tLoGLsG4Ii23c3s3 &g:<"^2ϴxDNb񈘝:<q;Nry#wLG4i>9F Nש3R3Sg="TG'g="TGgg="LǦg="Rg>"N&g:>"RfgZ>"VGgz>[t#DtF::J:R:N::j)iqz+z-iyzZLgZ=BRLg:=BR^Mg=BPMgi8+ᙞQϴtD8N]LGGD4tD<x#Bq'3|;8G3S;8g3~;8퇽3S;8Sޙ6QtqDNLGDW3=vS};7;ݙQ4pD̍2wcI !7[-bnG3[ݨogx7av{cX"pplpӦ_gx81.-o 18muc r"[睕mZtYGE-tcx&:ձET`"0ˮpvlӦVgx;1y-sLRuc&:EXNxlRg<1>-BsLuc*:EtN?":J{lSeN=i%)3x>Atc0">͖|lӤJgx>y-u$ ;Mtcx"TGFgx>i3<[D4Y@&%:EN"\I|ldBgx>iҠ3<[ :::EN":G>gx>˩3<[D 9:9ELMw|lcs3<[D 1969EPNqΙuO AcHܜ30j& gVc%uAcpӜa"&Ihp{ld3g=1^-Brtsc69ELNa"&I_ylS.gG'_ul3|[D -tl_1:6{c0:|ױE/:1I|[|[4|[\ -uD -bv, -BvL_::?J,s7N,7͌N7͌c:'c'!c'cН&c|ױE؎N"^"XG^ulS^ul/:Y|[ؔ -"ul_q:6cH{-lu"R9[ Ύ-"t ֎-t ގ-But^s:MRw;MF{:&cP{EN{EN{EN{EN{E{E{EN{Eٽ`"RG'^pzlSg^zlRu/x=˩t/=I[ v-brlzEGD܋ɱcr/Z>"(G^|DDF4c&4h="zD(tzD8N3󈈜f88f68z48d#"qLwG4sގũ2Le:"tuDSTr"͆XAyl4t`=8cEi"͆47>#5y"j@s8Ҥȸy(qHiaLΏ?}\ݧqXn>SR)n>ST2}8 \}>Ǫ}^ zkfƆcs9VoY/u}i[uBͷk݇sHT!,:vα:yt>STr}.aױ<e8ҁz؎ZpHf44O@hlS$RZoV5C7roVb(od(ҠVv j`+T )p+T2uQ>#25A>#@WvĩD}ɰyL}DN%c9J7sRgs*# B,( YvQE o,䨶Uept'|0G4RfYvQ>SU48EQo,T? hsJFwf] Sⷊu4M*f4M) ۠Yvα}Q>ce2l@>cU2p@>cU\1}JNJtf}LUf}Pf}Pf}Hf}: Ͳht`=C9cE"I e" q9 e"jLf}*GThrBdN@>~.ňy^*?e}j@@Yvȱ?U2d}(2,K Xv1"uQ>CC9c?i9F&9ɽLveYs}m@Wv) W.GOѠ|2p+z1`+OߔeVv)BFheҒ>}S)V}*RNn>{S7rw7vI=}QL}Gd2} RHDZ,N%Se8"Ss^qD"n'q*Oũt2a}ɠcJ&r*n%:v̩KQpv>S I۱p>ݱd(߱LN('rTKZćq:'rD%3>GrD!]8J6ɢ&7䨶US9ZCO`hVYE?rʵj",ɰiὲ.Ög7<nx>vαx>vб*uQ>STjnpNQ؆c+79V&ݧsJ<OXS}PNQc!"9VPnƦ[IGOPX%|0dR`NHPԜc"jLT4*2x>vˑ M9E"Eχ6->KU8ȱ?T >Cg=|2\/BO,ǠIz`2is(G1*+4zdhçsH'ƲOn<|D~ih!#JP$rs}m4xXNir9rL=C94Çrx>SW)BbZ;|"*,:;|&< ]SzʡBʉ'}اqʵiG1M>SR"tDȍJgo*1o[z>{+PKT-`A-Ҥ2Ve)ubeR*TgT鳷C9q[8m>8uB#E8J荈Q鳷]Q8U-BSD ף'"JEhQ鳷A8*}"ǤCD[V >{Kcgo n)-z7"cgo *1p[X&}$#$G e4鳷 e9M-CqFtI%(鳷9mCFtN>{PӤ2j鳷 ;u[:N>:M-CcENh鳷MQ:uBDJhϩgo:$btt@sDN荈б鳷Q:6}֠3"HǦE[P>uDO}-w[ ֎ҩgoO]goA 7O=G;٩go Uo=G;Q鳷` Z4S{x:}V8"fJEhKN.#w}Н:}V Pō$wF#vT- qfSĭ$ף'"LJEhQ鳷:*}"LǤCD[V8>{Kcgo bu :? #DtFz f%=qN8BTG-z[1 W7ZzLݍKz!#GH4N#$u:nzYj9=qN8B\]O0y!SGx<Q #$uԆz jE=qtG;˩#GH-w9jM=.l}􌆷a8B$lG8;1Ǝ#rԮz㈈?##q WQ8goJ1p#Bq K8 G9 C8lPj4ŠAG*c% N[ex9[eX9i}0#t>qDl)'x7A}1&qژ[X6}֡ #Ie鳷7M-C=F N>{Pcgo *3Bpt@eFN>{PӤ2iD4鳷 8u„'}bFG`>pvӤ24V[V>{+$S*H[:}VC"0G 4G[ވ>{kcgo :#slA[DM5艈f]38">cod4~.Ög7<G|>#u[:}V6#^c|hx>igoj3"u[@:}V>#VS8"\MuӦ#<G鳷 :*}7"R|'"n%=a9z 9GqDL8"*c|hx>}4<G|>#"r~gk1#G a4鳷 8uB9F8JǨK[̂ZάʨWg4G[&}0#&NU͈ɩgo3r[9mÌ6}va8"zFqD4I%h1鳷}8&} "G/:YH8B Go_u!Ӭ_u!S_uD8Jʩgo 2"s[>{+Pgo2zsl_uDdN>{XKz7#s[A:mÌ06}v:uB#EJ荈Q鳷]:U-BSD|ף'"4JEhQ鳷:*}":ǤCD[V>{Kcgo n)-:"J'cF9h:">Ieҩgo1BuuDN>{PS*Ted3pg4}Ӥ2f鳷 :uBy3igoftݩgo)BwuDN3#uuDNg4}#BuuDN3vFq:h:"R'M_Gd=HZ鳷u2ͮEkGD鳷 :*}#\NU(Ȉةgo2ut@YFJ(ʈigo 3"u[ڌ@:}V<#VJEӦ:igmS*4R[ވH>{ S"6EJr=z"r[>{ go!brL-A;DTI%h1鳷}19&} "(w|DDF4c&4h="zD(tzD8N3󈈜f88f6P=xG$N;xG$N3xG N3xG,N=xG83xG83xGwa|vѳwDQ ;Bn$17vý5>gKQLz}.>;ay^*a8Tz9ǰ&l<>CQo1חJxlc9ɴxPeZO^eVEFU&ΔXn+0ԭOS\&ӟA 5eZOo}KarL ۍߔy!zr7%Uaa0tMVrf7i7arvl6>sS(fs7*%ۇoJ16ol6>cU>}cux`NQfS9E 7XAyl}G:\A۱"BK4Ntf8E MgqD36oǑ!46oǑ&UE'rBPNHi,k>;airuI>;ƠK ۍh7>cR.o}>Ǫ}FUtNQ h8|. Fa\ɄrJ >cU\1}8NJtp9կzα:ytpNQr@nw>cq8ҁz؎ZpHf4>St\xԌgpd͕H"'pBNHiXy Cob5}F$ٛGjɠ~(Vi~,Æi~8Ö1O\y HdX]y$N%8Ne8LF蕷OT2y>St3_y`N[ٜJ(OۇsD&'sD! gr*EX>Z">S!>#*X># “i'=A}&GM5}$G*8,oQGzsD#es9? hkDy7hT? hn,oα,oб*uQ>STjnfypNQ,̠aZN|ʬ͠kL|ʬΠsJ| 犑S:V4t_Q5hX<`,o)*Y>Sr@}: r=z‡rlNJ-9E$4s@4ۇrD4hQc4ۧrIUfy\<]_luJi͠Y>~.ňy^*?ey4Հ} V C9<dy` 9Fn0's(cw39FU #9FTF S9F$csF5 ~9}2乂^y`Er}&mYs}m@W>S\&ӟA 5eV>ǀ}\/x2/dπV>|SZROߔk U7TH9ѻ7,toԍ\ I=ћG2pD&.éR/q,N%Se8"Ss^Lf9|R{YJ'Ʃd2hJ&r*n%:|0-UG9P4Nc}'sD!ɩ9%-8U 9MBNQ 55YGrT۪çrѵHs9Toz>| \&=>SgrT )*|tH:V3k3l=ᜢMχX٨Mα26|tU'tJ+FOXn z>|LU:V')*|Nͣçs|4G:\۱"BK`Nɤs@|\ 5iRUd|\<]_h))-z>|.Giy^ơ4|@1Jd<9z)=|:Lj F9pEj69hs..i'sHF |O< M,py>c?40y>cd\8}H"wx>qd6`8} \f1yF1O䔖Tg39abՇ"_39?#}virv:N)zqHNJqFȍNa8#I8#Ia8#Ƥszgg9Έigg9Έig7*3o^3bpV3qN3BqF3q>3qt 8:}v(:}v>;qFM>;qF N8#G0pcgg7Έ±3g3pl 8:}v,kЀy >;gVb(J# Fivocgg8igg88ΈiggX8Έα3<g&3bs.3s63s>3btF3uN3BuV3u^3uL 3:&}v(&}v#Z$s3btL GA:&}v*}v(*}v *}v8*}vP>8#R Ǝ3BtLl6}6qFN>8#TGϦuib]FwXѿ}Nwg g 3u:Ml㌘:}6qF܎>8#pIMyӤ&< F3vtlx:}6qFJMzS&= n3Butl q98S?jL'>Έӱ 3"ullX>8CRg!`8CDGogH4+R:N:qZJ'=ש n3$vt yNz!)(77f:%f^Mڌ^Ի:r:qNNpy!ӮLg:jA`8CRGmgHT+9Nw!S-gH-u N0w!c ގ3r̢:qHT'8;ΐ1괰 ֑҂㌈I':ߑNpu|F:qFNO8# 3qoH'8:Έȩ?!`8#GA:qF(tH n3"qG'9ĩ8#xtp N3qOG'9Έǩ8#G}8:qF$nt &3o 3nF'X8ΈQߌNppx>`8#|1:qFԍ`t}㌐17s 3nעrfG'7ΈigE+va4k 3nLl6}6qF N>8#Ǧ&x91 n3p?q8mlH6}68Ml#rD_Gx鳉ΎigcgcgӤ&:<",G&z<"$IMtyD`IMyDhIMtzD`N>*}69Ul#"tDGDDGD }69&}69ml#tDGDG4鳉ig=cg=g=Ӧ&z>"RIMoTg4鳉թg=&z>"\IM|DN>p>H>:}69*}6Ȏjz>"2G&z>"0G&z>"&Ǧ&z>"*Ǧ&z>"$Ǧ&z>"&Ǧ&z>"(G&z>""鳉1鳉ig Ӥ&="G&="&IMt{D\N>h>>h6}619Ml#brDG鳉6qg]&<"h>P:}68:}68:}686}686}686}686}68:}v#q~ }!7 }!Ӭ:BI/uD8N]눠&}v#"sم1 }g:".M]Ȝ&}v#Bsمϩg:"HI]0'}v#"u::}v#GN]S.uQ |9Bs9:}v#GN]cg:rD:6}v#GM]gҊx _G>$avF'VcfFב#TG.uig:r4 |9BvL_Gp>ב#\M]Ӥ.uig:r |9v;N_GН&}v#GN]g:r¦[IGODN>ב#TG.u |9tl_GH>ב#NǦ.uԱ |9but_GH.0v1 9"t֎Q:MoGP>zױ,ϳzױ3Xg#\I]`Ӥ.y 9"utG:}v#GtJ]S.0{ 9st첱3~Q96}v#GHM]cgX>r9p|1~Q8퀆#GN339q Gf8#fxXarZKAJe\}$bЮ\d^U5WA|H12WC|lb[V)k1J+W#>cTe\O+*cxO+Tre3>ί+rm>V1J\M G}ZQ\A?O"D;ďbJŧ~Hk"9*VV|&9/VW|6*JX|>4]h 22)EZ|H~+-> djp@VV ܼ\#KeqBV*w0>,䨤!G gT \9*

JheqCETF4>ZHp@ȅyjInm|K5puGV*=*\董*>ں^>}Q|*bǧJ:GTi y|8jU\Rtm|X,%B>+Y1\ВA>R`\$y49*2|ɑG]&&+"prTy} eUrkb1(GUn-M>Uu| ʙDw4UyՓODYt2P>Uy5FUJ\FhT@D?IY->(eTcRBM`FG*]}d6>3Rd@OOUZ94edRkTyZDP>WUiչ)dU`/7k߉?5ެ~?6}J5,OR9,V- h)<}*]}. Ɣ},˓ )dVEn,o:3ZTNM'*6 ZL#@7OꁠS!:e{5D@eR2|j`}  }DT.G:}J}QI>Hգ@q3T/+#T/Gۇ6S'7SG s!Re~cՔ9b U٧ŬT/bV%pUa1GUn-bU[˧ŜY JtYώYt2cJ@UJ௲ϑU VqD?TՕ&e s= *3˄&qbXݖΊ xVI3,GD+Y+*>z*3@=Q9>}fT؀le@kEA} !>* ۀoeIkqDhZ+T >҄PSjV8OY"]>fDrSuZ+*7hϩ..~|J|. 0'֌HkV$5;X؀|]>f]%CxBo=)Ex.d?"6.cju0[O8.ksh.x.pr:$VsͿ$ĂKĖX KlD]>V䔀+8O G<38.2|4J5dH _QʹP8.RH]>9Wi.%u\% s`8.m>=M|tLZ{a=uS\SA+|SQ)ˇ*(SQvVSYY};u#K;u1xJJ ީz(nγRu;ut ؜ +߅XN]>Hp| S|oީˇTSOY_x.*N]>ʭw򑾪},%GRN x.*dx.T̀wAjZ#ީgW #ӵ~E+JY;uR_N]>gWΩˇ>,`||(娀mV$R=Գ :'|JШ䘀eQV[ 1.l2||UʳsP7 RO:jB.*lRJ]>Yhrga|Ј)u`a+*7FG m ' !G PN.34"i\.4"u.#uLXEC(ᐺ|>4]h @42)7Ku`| Dyz{֦oooqњ ި+:MpoF]] aȽuuC˽uuCͽuu6{+҇MJFiw&{'2u^K ": QWFl7.37ء.7.Xyo')"W?s7X.ý78.7.hc7.h7ؠ.h7.hS7.7x. & ! .K!:IlPWEl7.h2̪^yʬ~6= uuD uuD',|҉mb; ~(6 QWT78.襈oD]]Z` b,uuE/uu&c|12&h|3B&m|fiO}uu)*w|9BUw *K*"|A"&|Cm*եh*|&+6!;\RWYlwؤ.hw.3]4'> 'ww_S;RWYsw.脙pK]]pI4abk/uuEm0uuEp1uuy:|eŠ*|g)y;MS]TQtMuQE|6mNTT;S]NtNuIE:eu$NTTy:GΩ>ؼiS;>^bMq-NTX_c4MyEcg*;-S}Ry1'W; S}P~/g;R}\}-;R}^~+ V>htJ NTNw;}R},z&'[.>^k4ID^cGO%;-R}$Ѽ3NTJT6v޽.[iꂈ:ra;K!6 ;Q]^ꢈ*~a5# ;Q]"ai:a/"8.D2tEuI:a) " ;=Q]gimDNGTGlcv.k$tBu6>~ n.}Cu6M~# !H.hrw.ۄΨ.Fuy&k~;K%z;Q]0K‰mNTO4;]R]8фIu&~S%8^.dtKuDL/EM:NTL".X?[㛺NS'iM)-wQ㝺^'ɏw9H~S߂9㝺TȏwV>E~S߄!㝺&gȏwP!oVvwa}YNϏ7 *ֹwV==~Sߐ㝺ώ?ʼn6뒊Du ODuďzqX"g(]]2_h./NUI':K%~]E?ʼn2d?,3ʲK$~~K"~t|ўQ]ӄE?uўQ]2:hϨ.ÍbqguI=H⧉;3*$~У=L⧎>3%~=貉6i8/p C/]j3 (~kcF_uįyq.5/6]1׼8fSSwGBYv)Ō"ٜ s{^$sRyP]T1"qk΋Ċ~̭9/˺97s^$u~M Us{^$TvWyP]^17EB}w\ E[yp^t ΋.bAcvŬϋm>/4XWybVłb>/tWUXX]T1ba_ybłrٞ ZK*f{^,.y,gu8/W%>XQ]J[Eju(.QNJzu(.cE]wQůG+h:VVvzu,ߣ>XQ]V[EWcy>p^tyo:64fW}ԱͺW %>_]:+cC{uo:6tWL}Ա`W }eful.5cCWuįGZ$~>OhE)e%q\8. 9-vqBlbG-wQD}T.؜;jK$6ŎzQ]Q;K"Ďz! bsF.X;.;N..؜#@_uID}:.XK@?uh8N]P : @#uC{. ե@'T9}P] tAuCu&Q_yo.|]͍s 7WQ1>?DPᏦ onCuy7Mء7A1onBuPpzs*MMo.`BQ@*7F 夝=J%nG#wXra\ =røz_jTQ$(GRri)}?\.ͅ #MTey@ǎ:åy -W81.ylom=}6 ZBL\ r9%a?8}ˬ6ri .<8-lj9@in97y2y\n ]SUi |@Z@䌊z3Jx3dx3#J57Iwf)>H7H3ЧKz.-R7@uAf3@@F3뻌r|J "-pKqb,?`[Z@lO5 2yN "w@: m4<Yr.vA:r9)yLc@Isǀ# W Yq^Q ixؒ h)TVE)S{~~~N? > Ԕ!,PLh>'V_>'V_>'V`j62~OC.׷C)Q '၃R2DNA41z(%Q r'IIqx5?s0 ?֤./7 3ը~IuHPҏLX@-\.-5ܣP3<`J 2nO<Ttgxt<+bxxm"z1#GbxXۿ~Ē {&e^,2*y\ց_bx`쯨:(2:yL ,Ur" 71<`CFPn.T:\x`LNJ-Q$s@ *52Dtbx`J"bxC&[GJ ^hx)bx@} 4c~Lx)"R ^ ^"uQtDj6K1<0=hbxy.@/hx)Gqb,?;Z^1jx)jGK1<:ɽbxtp6x)0G__nÆ+ ݟA<84bx`opq,bxm8/(bxlؒ> ]S )%KVRu{nQ ̏FF0l:.ꀋbxgFYT1Qၓ^/,!.׷( (,Fid?1<@1J#OQ pO 4T<1<0J%މ၁]ubx _~. ;XQըEuHPTˏD&.\sLłռgbx@X0Ըebx@WЀ<]G(dG %D# ]OxS -\1.}*'MID@41'}bO$DG{II}%'MF1I}#0(uID8'v4H4J}(:="`QtHIwD@'Oz#>i}@(:1" PlI_D@퓶B']bO"EmD$ #O"ņktE}(mI_D(ƈLiCO:#:>i}D/!h',;"SژOiO#F>i@/C"@U8ViOz$\D`4I >(&M"`TtID4Q'bBO:%H[JJl}+P*UIDTa'RXK K 3 bB3UgZ&J L4MJN&:6 +&:7*::8*mus"ULD4әމY#3Mg'pʼnδOJ0-i*x:N:B**H:C`*ut"@Utxt"@Utlt"Tl`t" UlTt"TlHt" Ul>gx#;aD}91sXQ{y _P'1@Ņ3\co8g":QoDq W&681[ ,Fvb3c@!1`Px @(68#1$;1nἳ$ W;2Xr5 (Mp[b /t8/1`78 Lb"3\cp p)Mpsb ($pObB3c )Uppb *28E1tJB  n)-x)ƀRA4pb  >Rgx)U^1U /+Mob xTEGfx)ƀTiC~3c@4 @&7K1J\ Rfx)ƀWi|3c /*:7K1Jכ:Efx)K#z3c@p /):7K1L Rbx3c /0)6~7K1P͙t73c@ݜYzA[4_ϙtE (:Z7F1LJ.0Qbt3<c  )mxnb &67@1LJ.ͰOf'Nqq3c4މ1St$nub & lM(ummb pzEf&EA1Qlmeb Xnf&ƀGсcD,/%C ~1P(_b pY{M,I%&`^_ 1xwch ~1RP ~1 S8 ~1@S ~1S ~1T ~1T ~1 U ~1@Utp*:d_b :^_b ,{/1hJ){/1|@E^3?l5/%ƀPѱc ~1`Tl\`*:(_b (D^Kba/%ƀOica/%Ria/%TEG^KJ{/0+MED׋~Wё҆^KJz/*MEDѮ℺^Kz/+MED׋~[RǶ^K l0:_"@UtHEDx֋~Sb#Y/%Nņ^KaXz/*^hz1*mED@4A=#V/&\ W&Vm"ULED(ՋƉTiCT/:'ROh@&8wU%.'\ Kp'&}"UԋWѨ CQ/:(BChzC`)uEE@Ӌ.LѱmbO/(*F^4RH 9ozJ@):" R0@3(vEp( "@Q"Q LD@4G1މEΉDi/} _&L,J=zpg/(["QKDKD@KD@C.>Q3;G.y'.x.sb-ub-rb-}sb-]t">Cխ?M?ѡ`̂[ }`S[b}`T'[(XE 9o 9XkX`OxXL[SίE8os,'p@MK s6r@b-G{':i[zARl~Ҙ?p@Z*[좄rOx=.J#ێRk-I (π[B9Ӆm79 nz}3 }@Vm끁K :恄Q*)?lE^,hj@~@hU=$y=`1,MJXXF$U끚iTۓ[JuZ\بȚF)cuaz@m_W ,J`zoR,V-Fbz oQXE~zo!B9 y=8Z$E1"u`zr`RV264*Je^yh@֓RĆT&v<ҧQ¦@4Jy8ȟF[y=@@Vrgz=@Z$7۠ԈMN..tN0ʙ-"i\^@3d:7z=AUQb{zCzLJRv@ (oVo*YFk `o^Qz Zz(H`r^xQe@ZbokJey=PGT*u3y=`HoZGjR w^PzJn-HԪʭ=_hMv( |^QI'y=JV >fN+uXy=pKUy=KD?=pLF'e 25_d׫ @3iU}X z=`M,28iiN4d=wN >i@^S#@5Rb^ TA@D5Jy8"ШF,j]Մ^T"UzR,Т-ErSXFTn* -ehOT"D;=PSZ(':EҸ~\}z``RFe]%8MeG4TeIJDGT.i2Lz=pUJT_8VBZ)a9PJ֔@*ȫZn>JRB9 KJQ0L^'0{]V"uZu ^DV-Gc̪uL<]LHʳzP)4r;A6(ZSn'H@VCX,FSkÖFGՉT1f4X<| pM= `>')(ch1x*0z e>gGxchAx&.z j> o=)ExchAx&.z^| M=Ip>c5Yԣ@chy&1zhv>;\FSkB65IcchzN1i4P='`5z^| M=\OG@FS9ԣ0ch1z*7zx^ } 0M=FOgCGS#lJ1s4(=} 0M=HE\GSӳCtr1N,޿~ƣ cXƽ58{ϊޣHchzu1}4:\a?zȞN>Fb5Ycizu1ƒ4*zaBz^?}p!M=p >FؐW'Q#|HSSq#T&1‰4x*g6TE~azUD1Œ4P=S}p#M=TOU#HS3?#Ll148=]}p$M=RX#,ISx.Ba%i"zG%W # ISҫ)#M]TOTk֮~0&q]ZaL޻;^aiz+%7 #HSԫ_-0"M]P~0‡4uYڷ #\HSk_/0!M]^~0ƒ4uq=aiz %W # HSΓw #GS˫^2M]2Oe>`z0.l~3ޣK #GS3oF8.g^50M](Ok;zDߟ#'\GS«0M=o}s4P8hxGWM=: Vo/Jp"thxcV5_?F8|a4z< hx#.G}W?Fxvc.G5cchAx&5z?F#FSkBG5xchQyNF1w4<'(?FZz$??F:z^~4$P: Gx*iG1yu&1ҍ`ctc䩈c59H'RɫҏFW'#}H=.M?Fڐzl^~t!6@iByu1҃T1҂CT1ҁcPcI17=h?x*c>x*hi>x&m=x&ri=x&w/3ׄ/z^;zY x:+xwcEQL輻e}&wEQ׫C}G=^N?^\ 6Sxw`EQݫ|GsLha{Y =^/g|GsLhaz>;{^g|GsLhazٞ =R/3e{&w4Hl{CtFZYSVVp狼wG/x"Gs׫sGsثGs #,#@ Tch|ڐTiz*x4*xml~+3#jwiy_;z4G{T^0$=$kvG/85,Is @{$^{4H hx9ccΣ9|Gssל=Op=O=>6{=p=NOx鶛=Ύ~8rg'?Esݩ?3x f [??D@}d;} D6}؄Cx`²h!dg4&ftׄuF&ϕ[H>>Oq3tr۸ٹpr4̙ z娑½z1t|B\/{6ʼ=qq%UaqSqabՇ"͍ĭkUscoEQbnk|ADᷢa-YT 74>fU>}ff*}dpnV%Åv*y>fEyaWT-ϺY<`n^|ЭrnE 7krm6r=zlNJ-lE$әc+i:nW|~Mj>sk2DԀVGפIUqkPt} |pHI'Q|R\;R+zFscj*hN|P \795RUjEf47&>V2.4+7hV&E*3ܒ$UsŌA4+U!.G|s3gE%wk9+y܉DžϗI>Tf;VDh )+"܃8YHq Sd"P3!!f4><&M MccE"jy1 4pهb5R>&zL}>QZ@Q> &2oe*_oe0͟og2iSD5٧*(Q t2l(Sd2r@K>Vc`HXNjT-HjyJ(O`"0|}\&縊 f~P)NrnNOrY ('JgԦq۠f* ۙ4L=)6i>0eVg9W&LOlY%XGOX%|dRR}@(>x%5A'4ĕ4*2PI[C&[ i9+s)FVR SUTz~4P1CU<:}\_ eo4Lri*d6ϠfSz}Q>;eTef22ZfEOMe/ Ph2)?QS >h'^/=4hrTNe^(>TZRX٧5'*&u?g7|I.VNO3tp8SJM"L4U 8|ۍy&L/2D&3>T)=G} S CG0U24tS% #LJ}>TJ(O^G;|jIr YJQn!>Z~Z$pRâZ4l<&BN3IJ6gdQnHmU|I=]k'4V2#?GZ5H>wT#QJ|dt˰aɽ.æ Fmx>mx>Y٨M226|$0*8|$0*yyډ GWTMG" G;G"G)"+(7Cҁz َZ‡H&5<@nc34<d1 G !iRUd|$ MAE"G†#,/UG)  G! cJ|"ϰ{$2K| Ȉ F9Ej6|;k1htI΂ :[>>F$c٧}F7 \G}栗&>F&C>ɽ#pGs}m0x$) W.GOѠ|pw$c0w$)׫Y oG2/(#NiIUXpv$)C>l)':\9Zpu$)zԑ|,ADHrgX:R4)3)o7&{#ENaH{Ӧrpsi}*&{#E N=ʑ"IH$p0riҷg8R68:u{#EN=đ"GmpgX8RA8:a{#EMמHcg7RTq86Q{y#E(NӞ3K+,4`HcSJ ]idd(N!9&9{#E`N=":M̞aHcӲgx8R昤&9NJ G6!{#ExN=Ǒ"FIƞaHbprgX9RDi3)uL 3GX=͑"JI/HD&z#EIHcgX:RDTi3<)tA:U WG8*z#EINuAu#EINpvi)t4oGPd&eozruibmFs;ߑ"\G'W'Rt#NN0|ҩw ~:j)`H!So)$vt#K'x=RtJ,MNW)68n:BVZN'hH;ۉnĩ?h@ډ^ũ>hpډNi?hxKډ>QNqD$~v#"pOg'8"FሰىQNtpDLv#bnuc>h߈]DFܘOb'7"F} ;ѻfG'7"Ʀ0'7"I`NtpDMሰ6u918mr#plr#BpLr#pD?G ˉiӕ=$+':"*KUNuD`6M99&I99&E9q9Mr#rtzr#BrDGDGDGTiɉ^ΩS$'="BJHNt|DIGN|D=cR=&"'z>"HICN|DNBN|DN&9:&8::8:mq#"uUa3թ='z>"\I8N|DNnplHj:89*8a9uq#"stq#stq#brlzqc\X"$Ǧ'x>ɱ %rtZqc$'X>1) %pڄ8M:qcpL`X"&I%Np{,$'=1i ^%Brtq,ʨSYQ)6|K 6%bs9Npc&m8DxNNx,SK %rTpcP:Y8ޱD8NNpw,K4o86I8ڱD,MNpv,c&[_8? %pFzc )f%ױ$N^X"G'/u,Ӥ/u,$/u,cҁ: |K崩 |KD4 |K4i |KI |K8) |K8 |KD4 |K%tt_:u_9*wcМ:wcױDN]X":Ǧ.u,c}:б |KD%ttXZo0X">Ǥ.u}䦝щ}䦙u,{:iR{:i{:1i |K%uڔ%u%ut%bvd%vT%wD%Bw4%Bwt_a;:wcx:wYq+өw:ѩ |K%tl_:6iwc8ױDM]X"VG.u,dƎ%BtLg:mkQ:Mo::IwYYhcYYџgcYYgzױ߱DN]`X"RM]X"RI]`X"PI]X"VN]`X"\I]X"\I]`X"^I]X"\G'.0z,Sq8=ЩqX=Qi KI KDn%st3~%rl!96vcxDPN]X""#%q̄c(v@DN3X"Gg8=i3|KD4.%qlcP=wb dYA4ygAex;ũ2K8S%q W8Lcp=X"GOd92KDߨy /a78c=X"Fc8%n(c;X"UJ)grwVn=|.>r8T&ʝOPPM+ȱ?ErC9ir9zuP>cDdZvPeZ\vL^eTU8+W>cDetTĴQMr9Z#-P$Kr۸Ys}m\qNir9pL=38Ԕir#8^z )˴^2/dZ\nMiIUXmMyP>~C7>{v+7>tSU͆E=fÇoJ17>cR)lUz9R ) l蛍9+͆X n6|Ǫb(HfÇr_Q7>cu;͆OcU>*^1+7>S2+7s9V&K˱*3rdUsŌ+=T!.:|:s9E%w)yu<eH>c;VDh )"wNHq8"P3!f4W>#M; M#8E"be 4ob5,>w#zLZY|QZ@,>#2VéR4Vũdv8}GdjV\Y|G$2߬ΰeڿ,Ѱs?,ӰA,>Sc`XN~eT-eٜJ(O9"eQ-òLN(9%-8U 9 eQHdY|G)&39jMGrT۪#S9ZcOtZI 4s9? +hrʵj"fY}( eͲ`NQͲtH̀fY}BǪ}^ Ɛ+hՇsB6hՇs@kL|ͲtUͲUs0+ht_Q5huN0huJ hՇt@nhէs<,H>c;VDh )"ԠYV)i:,@i,Qc4S9Ҥ@>#E's6ϥ>KU5I=H57,PTes}) 9Fn0's(ټbY}(27@,]F9LQaY}$Ljh@>cD81}0hTlWV̱4|e# ze^Y}&m,ܶ]\&ӟA 5eoVVcVV),@>S慌 7%Ua(|)Corwcu?77VUÿԍHi 7*e8"X?cz%ɼ%e7/8" 78BsԧT:0pt>SdӱDN% c9J|Կ(8;VͩX}8GdrX}2Gr X}&R[9%-8U 9 #9.\vs^grdQnGrT۪cpt'|0G4Rf|>Ccr|>Scc 9V 5:V3jtJmx>95Wf0^YaC{euSlx>Vб*y>cEX}LUcA;C:E 7էsV͑,ף'|(v>SD2X}0X}(GjN\ 5X}*GT<C&[GJ r~ qx~8>Vơ0|>cL=VʡH3OPX}:Lj F9pEj6`2aX}0\2'sJ Oc4aX}D~i`X}HEr`X}@mcs}m0x>S\&ӟAP52X}(Kܱ@N^bx;V)BbX;V)- Ύgr5*,K>ֱ4NVu4F>YAc4<k 5o 5o 5oL?7:}vc؛6}vc&}v{2#IX#N`X#IX#I`X#IX#Gnqg78ֈ©gM\:}vc>FN`X#Ǧnocg77±k 5BqtFFD0}vy#plFFD8ӦnoDHIh6}v#sٍα=cg78"6I6}v#sٍ>ig79"PKP/}v#uٍ^1cg79"JIh>9MFCGٍ1-SntDN>A:UFWGTmcgw:"R;cgw:;"BMi(&}v#ButNsG4;ӤwDȎIxG;5w<"\Mx&}v#uٝ٩gw<"nI'}v#Bwٝ>;gw:="^Ni`>a:uNGٝn;cgw="RǦ4|DMgADٝ;=!i f%R:Nz#DuRz#uNGHkf{^QVi6;!Sw=BPMyNiqv;:zz#uNGNGH NGHT+ΑNGTKQ[Qk掐1{ގ1֎1Ύ1ƎQꝾN[GHtuDN靦é"ӱE(K87w8:ȩ?!бE<?8;[D4ߏ"|38ףwx9ũ>ʱE8NN-qOG0rlS9zcp6-"qww8>o산ur4ATa"F}3zc-bnw71a"|/z{c-nעwx7a66}vcX'}vc6}vc>,hm,Grlcgw9qgw9igw8:igwx:igw:gw:gw8;igwx;1;[-r-rt!9M9&}vc>N; 9U9U:UQ:&}3Iv8H}KAIT3XPIhkSDA!4[Dlclclc lcP}6AEN}6AEN}6AEN}6AE>u0`}oQIP #s64[p:N:N:M:lcH}6AEwM|lc&h> -"sl9lclclclcl:5)9> ">"> ">"vM{ltMP{ltM{lSuMzlc&H=i&(=i&=i&<'r]#6>"8> "<>""vMwlSwMvlSwMvlSwMPvlSwMvlcVG ;t[؊>Fm>7Fom&CױE8>CױEPN}vcȜ]9U-rl-r;t[D4gw:iulgw:qultݡ"R>CױE>CױE>CױEw' 8xDp-sl-tl-s;t[Dgw:Щ bt;t[;t[D]9U-s;t[4gw:ձgY1ѳ:dMgh*GCױE>CױEN}vcx]:M-bv]q;N-w;t[4gw:ݱgw:۱gw:;t[;t[p-Bul-Bul}`h:ԩulSwݡ"R>CױE>CױEvlSuݡ"B>CڱEN}vWmG;"\>#"v;"^>#Bul]vU:M]%tU:}vWG8gwUyD}vWG4gwyD>#"ul]gwzDt>#rḇgwU{D`>#br="*>#Br*>"&>#rl]5ĩ2=" MЪ8&?#BqlzVG4Yu$gUyD GQ-8Ok[J|,9{ZCL|9M|ҧ-N,jħ}*2ZBQ5ZFY:_6'i#"|2| -OeTW*>S[šS_Z^:؍SjŇf@YqE-05ߡ LFѢf|[ʋy_,-PmZn Za!Ǫ8b|l15B1D@I&PmVn$!rayP䘖T2M"Ǵ8AcFD&̑c\Gi_oVejQI>zXG/F"(j:jr@a'4RmU"yӸh($Llen$N7bO!%x7O>TD'BşJ1(%Z~BP%+_rPIڴ/PJ>X/Ci(hcj.ڧjSs@(tSmVI)fGR~Թi{||1-N>96QJJ>䝱IOA9PVJ> UEq)$TmU%cPkjQhJ>Ea2Bx %˧jr@)DTmU"Qde(C%le(F%7T)x75E(Z|PcRda 0RdǷ Fg/}9Sd[nRyf׀%lw\ٚPUdWnWyf}3.퀟g[cWm<|3 \){&D-%[]J>Ee0%"2eyf ̔|2eh,/;ShioJ>Ef%9%b3s|hSxJ> 8+\|"| fuѧV8\:Y})-Ͷ^iJ>XW |15_J>U[x_pnslKj9|1- T0Ǵ8n>XڀH|B;c9TdZ\UqڪL-bkj/bN.(.-]UٱڪD2cde@Q2 W(J>NF&ɧj[YdUV/| 4+\'fVqˏGwsT_~ :QcЙ \+YeM@OFB} 5}%VQN[GZrqѴ +|s%O\ɧZOUeft%TʤJ>&hW9:_6'Rk#"|Z2|N`^'*s +Zm|tvbfclYqEhGFv|g*X/*ٖPɇ$Є>*{&BJ>3YF*ٖYJ* N*g`(Oqm>=eb`9:2-襒OӑY m(ӱ@3|S@5|qV覒E~oB(S*3@;|ܮ60Yک#wHJ>{}ϠJ>WSjN%sLͥsp^mj!ڬBT;#zpnslKjSO9%v}ciRS>睱 JN0c\AS>WU픏VejU;}kjU;#}/#O9X"|,w N|_mU"YS>GV枡)lenY? 㠪?x7O>WT+ Zk!'T3SUMdG[#{!>0ؚ$)l-K"Ss @UK4s&U,CmqJρXfVR>ZXIUFIUQAU !ߧ  ĺ:G } B~zߧQDT #OA=BuSUP T#ض?U$V=OB=mcSPtbT)#X?U &V}OC=NSPtb1T9#ض ?Ŧw A*z O(GT"~B?Ҋm+WE포bT*j'dQ#hۋExbc0jdF'Q#Xu?! Ej9~B?Rw8j u)R7r }H*y@jD PlgHGJiMQE۟C?R^ }&z]3R#ضHxb>C%?‰U %63R#hghG$IĪ1}^jDLN>NfPy7Y\کRD 'V 3S#vN폐b>C;?}vjکXl:ghG^joQE>C;?m H*6~کUکWἿvj8/y hG\}H*/ کNa_@;?b %La_@;?? hG&GکJQvjD/ hG(}-PeHGm_:c5MrVw~:neqQljdp[ %FKa[ehG$it!M $GI)\MѶAʪz͐)VOa#eJ=?L{JG&5I*zVIYuR(jU�mqyRV#jU#H#)eH=?vJYR4⏪RV#ôVTL# KQ}q>Bl^a\z&ƥGyq>Jo1.G=?5ƥG2}q>Ki^d\z6o2.G=?UƥG4'˸T'!şیKQuƥGR'ϸT*4/4.G=r?KQOzq>OYi\:EPVKQ|OVR}#ӼָTH'k\z$V/6.G=?7ׄzdV6.G=b?ͻKQbBQ|bzs{P}#QlzssP}#\/T+f{P}#y/T+~Gf1BQbvzsP}#lz_>W|P}#BQbQlzD_>SBQbzs}P}#Ylz$J=R#֣.UH=?zԥGJ'ף.H=?M=R#Qş\T&+KuROST(H*lQ*Iş\T**zԥZGV'գ.K=?zԥjG\g[T.+z+4 TiQS#Q$S#ԣ.hG,'գ.G2G]PM`OS :ğU=nxV ©IYգ.(G&gU :ğ- (G[$u㧠koI}){4S#hoPL8bs^x$R#X':QD{Rx$ۻtR#$:A"- GtG8s:xQ#hoPF$;@u<|s5C C5@u<=P#sX:%w蠎G氾)@u1uƍWƹM>XL[mID*xmQb7B ?PԵ$rYfun7q} ⶀW!Y9[!i>sHfn3Y)!Y qGC>WKM|ܐ ˕FmQbVuG EBԔ+$t@ ɗB)"f#ŢDᢱN6vt, 2|fЄq8Ԍ4bMq3Ԋ|YdI(>hF*᳁ƆS8JD6_rԇ4v%8t AeA3OAcg8jBWu8XzƑ9qvJ#d BDMs` [K 4ve6ƤLV}|M^%1@Gu1C1+Y]+=>gLJXjLJZ㙞&v-ğ d|Z?{igF<536۵3~͗G9>gJnjIq"ۙY3]8>glJn*zaFZy>+)I7>vJ#<ڍ5'jbL+7>ǖk]M1)5cDjƇl,1>Q]0>gJnZZ{gLq>Rt?UYM;|2ƦC3p[&ǃI;|$"^85%1p`k Kzv]cX.9O5v6>tמ 9Ph5ڃA;|9v) 5Fc5q^?>XgJwvX)q |0gOU9$}gOUmtŲ>i:kUtj#{\ܣ}~Ό6sƆ>Ç/{]IY=6 (S kàX6Z36%(;|fMk}b KbJvەy9+W5A|i9,rƮ&gIHPcOƱk">gceQ8bY8cV2aϾًd!orç^&`vu+K>VL(w`rR>V^ivYܧu醣[1+9uh[1ynT/3z7QD UH|ށ:|F:y62Ձ:|ϲUQ62,W\clŬ#׊EB\Ϭk r>fBe5bbӊEB[;p[O&w`G3akhX_Әxf)zN0>|fz~f K&WUO56ŋT3h|8YCUg֨dtUYcc<˒T!SgaIJư\rdvgؼS3>bVeM;ďYU7e֦ĩ*g|1^3>UV U=eUhGTOU "'ʬUq?4Y!3MP ϏN^n!3v%嫆Ƈؤxjh|̬k}ؙ|36%ݫN=֧ذ$&ەcr}hlGƚ5AcrUCbƮ̦jh|N̘T Ok"UCsa6F_1qTfOV2<44М>fML~)0nLz09}^$w'B44O~ VМ>U,^ń;4OzW|GYII4 fI jVI5 j #^ŤtHgN" ;pT" 9}Jn.2+8* &g]|& 9} ˕fbV繊EB(fN"B0s ɗBǶ("綊UP˜>U,Jds82OkbR82j5sZX_CLV)nZjC4d2f&+@%sTsY͗3FLW1}e62ou0NkIS {vۘy boKdj[1gLcq_XmȉY,6A21UzF&fLCXmP m`)ym@!sm(9mm!Z堅9c H1Uu1ն-1 1e6pj:߆pؘj߆pۘΪzFpͲomf]oK8oLg5-oC8pg5oC8qhq3>N)2}j9mҘ3!/ƵlZm)-n=!bFM@1Mo;Ohَ B'lZu SZu qCZu AsZu Zя~B3FlgF5~j~?\{he2 oxlkq73[JȖ#kc\4M1t 1o;mkq3[86CkmL[ml-!bt4M91e:&ע6񷙆S DLiQ Z;mXQ-6AĘV6BĤV6BĜV6BĤV6BĬۡ9H-)МPМVSr!9(-Ϝ)zj֊{?lݽv|@L὇t| {@jq齇p|C7s>ZT|!9pC5s>Zmh|൸C3s>ZC2s>ZC1s>ZT!9R9,*˜dP˜`)Sx@eURɪ*=2U{e({dΘ.23SXwm'9ס9cIȜ1:2gLd}XmN>Q&a:jE9a$}|mX)Cs8VmlX^GaX9Cs8w!9cPŜ19D1gL_}/y\511vҸJbb⪈& &fW9\01uJ*UW5L\}abߪ+4X#ǬU]6cƬUZUW6ؕm~Mc~Sci~ac~gc6Rm1vQ-1մP 1O 1o;dr:ߦ1M?zUpV36Dxm~ b8vKmB1ŭo;DPe> (FIm,!Ahm~ rb0~[!vb:n~[!nb:~[!hbBn~[!bbJC?zQ&i_541&泚6跡zCHqW Mjvĸw?1ŭo;xmkQޮj:߆ژv6mύY\oW Mk]oKdj[jhb^vaIޮvtSoW Mezjhb2뇭&L+3YUSY?zjhb$G]oW MdޮȒhIJ]oxha5-oCibqXYmG',nS~۩ƱvHiP~]c$N~ec&[vژ7沨)mYmG=vG^-ƳL#Y m,jA~!db -11Eo3Lc b%ƱLDC)lnV&4Vp6aa1UN=d%:aيL~L~ >@'c4Mfo>@'c2[v+wW>@'c,4M]7WM}eW\zF%drgQ,,~VdriÏ:Z7CŨi~ rbNt M31Eo3Lg^"&FQm,%6AĀi~ Tb:~!XbBj~!Pb@ ~!JbFj ~ii~OcHvp6C'c^;vp՘߷5Frۡ1mnN&ǸV6Ƽ1o;8nlej;}ߖ1ն>drnq[vdrmeۡ19C'cX+L1̹:Zvdrjeۡ1LI\vdri:C'cR+׹:ZU].[IMfP&Lj}ۨw&3k229FLZܭ1et6p2MokLj5oClLjq{^ZܛƬ5͐c\}["ǸVے 1o;Zkfܷ "'&L'1ZԆ6Ӑy b,j}!`b2t߾M+1eZo&ɪnFʪnFɪ:nFɪmFik2Bj& V١1&vgra5yڙX6'u0I jzRG Ų)XmF^&$VС1sherbq:R&8͡1$sdrc5X6C!cfrcrL`q":&4eL+š1xeN6CcNP3809f5L+W_l{1Q3>=jy';FE/2YdV.f|6gYboԂfaZѬbVQ1>U,j5Ƨ5ZI,/`Q +DOaWCXŢDb|X~e8Va|\kTLk0>}52MVO]NZɫ^52v%k Ƈؤ`|̬S}ؙ<526%k N='ذ (ەD5br}(lpi Dz5!5brɵYƮ̦`|.˘Odk"X6F_.f2f%k I K451y]k0>eӍIZ,3Y"YCX1*.5RXfZy,cù]0>|YƮv-x'JOhug;۵YƦv-dةdlbYlW4rg /xVs&ƴ$YlY.d|<ؕԢOf2Z,6yMe|cX XƬv 1)a&&kmƧl1]3>e8Vg|^$w2F*e*&XV>zeLZ)5\)Uu/HC!PP}jf)(5*IRY^8Oc5%1p`j Kz}&1,;l fjBRƴ\{KdzaSKgMNK٧t_>UXM;ďdYA0eʲ6%NOp9 S*)PVA1e˪.ADfY~Of &1e2Mǔ}"pǔ}*c>eJǔ}>M'c>vf>eLǔ}<ؔteÀjw$zmU͆cV #ُ`ǔ}FʕF9-6)Vs&1ebr1e2ve61e2&e"1ebDc>ece,b,cV2<8YƤ%8cYw|2˦ޕc,c,{i<&pLOfL~=DZd2ybB}tHbJG>˧L 8LN/]>UL^)}tTY9aG% CYdJCإȬ\ 8l>\|4ϲp,2,WYŬ#˧EBPKOck -]>eBe,b)bˇEBK_'JO`RR\+@+]>e.5Ą`fY5sWv :f.ϧY4~j41`YÒɡ|)^]X|8OcYCϡ|uX\j,K6Bqư$%hd.j %GfΆt2fj"J˧r|<9Z,kSz˧t.AWL@>yCL+ˇMS(g.ȪlLv*CYUhG~bYDh* YF>44d&s@CsD SY͗G]IzC@q_c^T6CCsx)dzN=ذ$&hh.b|FʕF9-6 Z͉ Q-,G]Mhh.2&e"|>M^ Y6F_.f2f%CCsh1)ai<\>eӍI\>e844Ofًd!Yƨ44Of V\>U,Xń;4dW|DzYI\>E}|>tQ}<YŤ^P~Oa5FRvn,2+gT3iYh1-2,WǴYGHf.*e |6,^SY&$_ɢ.V*V%C-sXV(Q#Yphe.2ŤpHe.2akJ˧ű1J͠|*K-{Ly,3dd.26!|(@#sȕ=A"sU{B髦/WU_ +Fl_ +fھ1WL_5}>WM_ ژ+f/iXN_ ʘ+F1WLc5}'bDz}'bŲ}'bD1W`41W_q_ +fl_ +l_ +&0WLa}'aªbOP\1UŞ bŞCT1CXu_)>R[z^b$=As`V{"鬶/IYu_ +FD1Wf9}'bjbO\1ŞbF=AsŠ{2Q-/iZm_ ژ+Ƶ1WjU}'cjbOFcPg5}'dѪbOP\1UŞ bBbO\1E}'dҢT2WiQ_ 2+FسdbR }gĈV{VLLh}gĔV{VLjپسeb^=Z&fسebd=^&Ƶl_Y31ŞU1ZM_Y%31ŞU33[{VLm9}gU{VLn5}g=p&ƶl_Y31}gİ=v&ƴ/ղ}gUĨ=|&ƴسgbR=&س*hbR=&fl_Y54g< Z>jJ h(-Ϫy@L}VUY3gv^ҙRϪy >pVfp>jjﳊfx-ϪyL~Ve**f-**yJ ~VEEY2dϪyL~VUgH&xY521eqU"X Mg<}V}Lb-g$Vꘘ g >6&fhY11>2&Ʊg<>.&Ʊbb>*&&hYE11}UmUcWm2Ϫ+ilUSWՖabڱ}V5L\U*+_ZҾسab֪=&fس*bb=&|/,&.5Yt1a\k(cnøXgFqgQ6qշϢ- `oE!sEF>F6oE%svG>N6펾}m},Z1ʜZy2mFcPd5}YU_yGhV{91E}Y{71E}AZ{11UŞ_Li/,{Cl٬Yc>=jb<6Fl_P}(zCPq?k^Z/|ecR=ژjb6ύY-=H1Şdrb'}k5}Z/|"rbRŞOLLhq_Dt=󉀉,{>+1ebϧSx~"Xb*=ɪb'$f,{pB_9#$V{Иjb~XM_9QcŞ3<5fs\V{˪b#Y/]Hj:vY]6'n1g8gǜ1}YN_9#p{c<=_ϲ} Y/|!fb&bB&L_B(Ş/LcپXq,{*1UŞ/KLc} Xu_B4V{4DBr{ྌ/#WLbq:WLc9\u21$sUEv>EvjQƇ앤VnY>EV#heU 2>EJk=GYG-TV(S"j1'LH ">E1\!>U^y~JaZ+cQu2U0>~e8Va|\k *6ʹW/ elj 粌IHD&Rk0>eceQ,by,cV`| ˘OcY׵Y6ݘĮ5ȲlOk0>e/;erZ,5A_U0>eFeJnBgIq"ۙYW cꋽh)Ř'N0+1f]IIt>vJg^Q|<9Qc(t>Ŗ咣&x+LYƤL$2Odk"Q|bSչ'Yt>eLJX*Oes;j3Oatcr;3`@6·L3X"YC1*.V b;`Gp)@+u>ye8W|W|`AƦΧC3p[Ʋ&ǃY|$>T?y"Yլ-u>KDY 6KfjBRYi`:ϲeN/u>emt^|*yM'g} |b,kW2>·MS LOdU6&a|*A&b|( m㈠:˪.AP+,+8Gh91u>el8c|*c|4ؕ,6)-3-cg=8dzMI:b;ZbÒ1u>v%9c|FʕF9-6ADMc|T-%+ 1-cR&SYlHpLg}Y b|,!`|4˘ ,cRScYwpLOftc;8l dH">e^.rqT&}" .Yb? ľqQ^0u>U^i}hYgt醣lV1+9}XV1y RSYdaSYdJA·앆6KeYH>EV&6KfY.u>EJ[|4yTV(Sji,xM1Z!#X SX7Ka:2%o:2 RW&lÁV|\k *6͠|굞|+;a:Fš|@5,|V76OR}a㇩jA(5*g{>XlLXaIJt>KY 5d:jD2Og5C+x5,s LY֦L'2Oe56b*h_& j!~|&ڕ\LCY֦频n6C;TVLƇz*#B?\Vu"b|4Zɬb#iGh9|"p҇^n MYƮ|hh:bIt>vf>eL,cS.PM_k~Y롡|FʕF9-6 MZ͉ Q-,G]Mhh:2&e"|>M^ MY6F_.f2f%CCh1)a McYwhh:̲Ƥwhh:˲l'E~!Z堡|2KM2d (h:*&!|$;t>UJZ|,(LYdfYthV1))]3>Ev>Ev%pgȬ!| t3ZdeJU3>giJE3>EJfǴYGV(S"`LH ">E1\!>UJWe*,carje|*dU*3Y&léRƧűbSLu2>苽LhT%XƆSd|(F&Fl_M%21xT!WM_M21}UTW/򘘽jbo髦/vgc鋽6&f/ҘrboQ,/˜jbo9̦bbTSX{SQL`؛jbbbo*,{SEL aپ؛ bb&؛ab&؛abT X{S1L a}7U{S9Lb}7HV{SAL f}7UtV{SILLg}7hV{SQLf9}7UtV{SYLg}7ČV{SaL jy}7UĨ{SiLLk}7ĸV{SqLjU}7UĔV{SyLhپ؛cb<鋽@&f؛*dbHꋽD&&/Ң؛dbHbo9-ꋽL&FIu21I21UN /vRLLi5}jebTN*y/vRLl5}ebdꋝT/Z/vRLk}*fb^鋝T2ZM_L3[;A4ܖ;A5;A6V;A7틝 clNP1}3} k ڙ>ƴ/vxQ-;A=Ǩ틝 cLcR cNcR& *. M@jI=AB? Z➠ (-'gT3UL@lq=AƱ1}c'ct1}cd1}LbT1}L`iyb+ڶ=Aٵ=Aٴ=AUg{j9L#WՎ j>f 0} ]0}L\i_5LVu_=LVN_ELWm_MLcWU_M_oOI=55a`oO1UNP1N1NP1N1NP1N1NP1N1UNP1UN1NP1eb'hfjb'f̪b'fͪb]#1lv,ꋝc:b'gТ > >;AC|V;AC|V;ACǐV;ACǨ틝c\鋝cb鋝c^ꋝcTNC@5P}*NCdqY-c\鋝c\鋝c^鋝c\N1eb'hh >L_ McY;ACd틝c0N1UN1UN1UN1UNSh,N1UNP1N1N1eb'gjb'gjb'g˪b'hgɲ}3}d}3}d5}3}d5}t3}eq_LYN_LYN_LYM_LY/vd,;A1LN1eb'e r>Ʊl_LX/vXQ/vVi/vTY/vRi/vPy,{XRpߡ0,[qGUSrGwdDz}wdjb1ޡc2ꋽC'X틽C'\V{Nɬ/LYM_]u21}wĐ{WLi9}wĤV{WLjپػdbNU'Z{WLgػdb4b望,{WL hپػdb:N&&ػdb@N&fػdbLU'SZ苽N&泪ػdb>틽N&ػdbTU'ZM_]u21U'#[U_]u21eb望q/:jb望y/:ػdbn鋽N&ػdbt鋽N&Fl_]u21eb望y-N&L_]u2Sչ]u21eb望Q-{WLi}wĤV{WLi}wĤV{WLjپػdbR }wĈV{WLLh}wĔV{WLjپػeb\鋽Z&&ػeb^ꋽ^&Fl_]31U1ZM_]%31U3Z{WLk9}wUĸ{WLk5}wĸ틽p&&l_]31}wt鋽v&Ʋ/♘̲}wU`틽|&fػgb*&Fػ*hb&&l_]541Ԯ Ī2gb M쪞9&v&FlZWLc5Y]u31$uUfuG70}g*K8fu^7 cVvJ@mfbJ3fTf"rYP|6<.3XV1ye9٧e"W:P|.ΰr#L >gi"gȰ\ic*feQ|*X)D5fi,xM1Z!#X SXTb*% Q|X<3,%( >~e80_c} 1XŦj0O_,Dx3ؕmj0O]N >y|qP|ؕ$ơÚcU5ǪPy5ǰMI >&v>ņ%3(ەDXlW4e .`jNԄj0Ofe >el3\1)YlH`Dz1@(Gu1C<1+Y5I MC)l^G f,nLbG f,P|&^$w2FP|*KM@fy,3 Ta26Q|(3h+dzؤ8*1Ohug;Q|4ؔܞ]HjbI]6/kàjb >vJ#xBEfDM$3|[K52ve6(YƤLVe|"M^eƲ1@Gu1C$1+]+3>eLJXjigZ),nLn⌏`@6ΧSh4V1WvFށ+ >}~ˇ+ >e K4 VcS\ X|OcYC, >eJ4,Vccק˒8c5%=[|&1,;l jՄХr. >e ˜^|6ڔ4TVcNKdUA2A8V3Y֮d|LeY@ȪlL4TVL4PVA1 >U],냈ͲV_eؚ4Hm2GVg ݘaH52v%c|>M'c|F̬k}Dؙ|i,cS=8dzN=ذ$&pLg]INbr}Nlc|P9Qdbr1 >elc|L˘4|&Ґy b,b,cV2<8GI KpLeY1 >eӍI˲lY"YCl1z iɬo2'%NPLcJ' GwN0LeWZ?Gu8(:iDQ5"OKeWJ?/ >Ev>Evt^|(^i4\ tYde4he YdX4GYG`KOe2"Z|˄!#X SXOKaC8~W|dOJ_5Zi+sq!&|7S-O_X+;ܕ5,j<,kX2b|)^j a}|ŲF%:g{srEL?U!XaIJư\rdvjlNGs5JjL˵WgY2,kSS2>ؼS3>UXM;ďdYU7CY֦ĩ*g|"1^3cٌʪB8g|.X5bCjh|2HW d&s' '}TVe/7R fUCYlRvf>eLW gUCYlb^YlXjh|>JrR h]H>f6TCZ͉ S je䪡Q-cWfS54>eLD5,/ DeqT3fUCYƤjh|,˚̲Ƥw\ d|,{!D|6S Of V*2d U,23 Gbfrjg|4" ;pT"T8YdVҐf|>F:-4A"rU3cZỤ̆Jf|DX)TŌfk U0Y&$_"dQ VU82eˌ>e,LVf,YL Tf,᠔}*\k'lBt2OebɌ>eFXƆS8D2e5_rhd}C=4 /y>0'1c^پ'1c^}OcƘjb|6Ư'1c`q_Ҙ1'1cb9}OcƘjbŌ1ebŌ1ebPŌ1}ObƘ2}Ohb'$1c`پ'1c aپ穡^6C3Vf!/ 5sXu_b1Fl_Z1&/ 1CXu_j1'0cb}OaɪbČ1>c:}B3tV&fѬ/oBduއjJ0Y! t1ch5}OcbPƌ1>!cZ}B3ƸV8fY/ uSZM_1fl_1Ƴ'2chU}O(dҪbȌ1E}OhdƘҢ'D2c iQ_*1洨/yi<2t2cLj/vPf/vRf /vTf)/vVfQ-;C,3ƼV;C-3V;C.3V;C/3Ƹ틝!c\틝c^鋝!c^鋝cfbgfƘrbgfrbgfjbgfݲ}33cmپʙ1浸/vtfa-;C;3Ƙό1ebggղ}33ci}33cLj}34ci}34cLj}3$4cjپyVbI=CB3> ZgUSrϳi֊k2E kq=C=3>[\vόghgT33T33ť jq=C73>ZT|ϐ͌V[}P͌V[~͌343e 2 @hQ >/2OV,1X32ej2e dUu @eU dU dU eZ|Nf,=C&3 =C%3V{Hf9,=C#3(=a.yU' 7qϫ:jDv }Xf yX1&x qX{6fY,ھ=C38V{{2fqv aXw{.fq,u{,fI,s{*f ,ڸ=C3Uٷ=C3m۞!cڞclڞ7p9z1-30c\U;gaƘ6lÌ1tekŒ1q}30cZ}30cZ9}31c \}341c]U}3T1cL_}3t1c`}31c a}31c`U}sR='ܸsR=C#3žT'YRLgپؗdb@žT'Yu_ :)&t2S h}/dѪb_L1eb_L1t2SgU}/djb_L1žbTžb^}A'3VNf/Z/55}Vwmjr^vdt2Sm9}/drb_L1žbtžblžb^b_L1eb_L1}/dղ}/dղ}/dӪb_L1UžbN}A'3ŤVZ4DBt2SLj/#ZU_ J)&ھ2SLi5}/heղ}/ejb_PL1ž b^}A/3Ũ}A03ŤVbfI/ZM_ )f/ZN_ )Ƶd3Sk5}/fײ}/gԲ}/(g3SLg3Seq_ )&l_ )l_ )f3SLe}/hɪb_PL1Už b(ž\UHPL1UeQؓ:iBM^vfQ,֡bL1$ufǪr:43SbٔXmF^fI&C-3 Vϡb92Sc9:)ƱdXM.Ffq,ʡbfrcDkO}[}ƱTa} ^TjQI+)>CYQ|t5DVQ|neXk(>9E_r˪$cUmPCU[y?cˢ$dTm`'[2)Yk&>:U[uERVK|NфJ|+X+%>@*3uz*LK|GLT!R/:R/tZ)b`VF|N$.CR%HiUħEANq-bY ">k_!>/zyVC|@eUrC|D6(<+}>eerVB|0eQrB|*6 ڬd-@TmUҌVA|"*9Gj#>Z(:ECZyڮ\`0˪̠@| eP&O>T&O>T"51Nu#O;Jڇ: JigZDL‡7 5Nun*^&ŵu0j48Sl2J>!@iҠ&h*f%Q|,Ӏ|t9}\ gbR59\Ȯ$nLdVR'Ȭ\`$lj"+L`~&j4!g&2,WCMŬ#癊EB>1k O*^.V_*V%s||X(3䒱0K& g%L>d.5Ą.f|&[ H>k2g^L>D_r=DAo `ӿ/aHR |Ӈ^%m|T6 Iڬ$<)V%|R*)gj#@ y&US4AgQڮ\`P<* |DeP&IkL>T"51Hu##J30ˠݥӠv&C*IĤi0; 5NbgrQ!|erG0M"Eԑ-߁ә|H (Awt&9F3БssF%7wr&6RWjF(@83wc%Q2Hɧ*r9}̨1Ӂ|Ȩ>4g*r]AL>`FeL>Y˴|6@7O5ADU|ĀO+w`m&%L>7_rq EIŝ"6>2 IXbXRC aur3Bew7f*&}H&p>(TJFca!(Bdf{Y0S;h9f*&%3C1Y9aesEcBdV 4O YVQAY9wu>,gi" ʎ٧Ȱ\ih;f*fe}NX)c xM!| D|(bX!B|.X cAŢD!O }&d} Ȅq8=f2bGMqU,"I|>k2ª.MW0d8wC1 ˪nh>f @14Pme@/+}eQ64v>Td?UI8|>T[는3@ h>fS4A#@]|>*3?/2y|>S&oӠCGLO!c>/}eP{|>SI|>S84b A=/Z|>#XaC145S  c:¡Ƿ"bpJ{{<nķ)BwL/a;mxC|iPġT#&"LzF1oDC÷!t÷ !"u÷ B!t÷ "u÷ buԑtѱ^!Ӕ{|פ{{)J*qJ.K*y[U:0ݫ#$utJtBt:աt2iӽV G|tn*8"I*U.VFD|R7"{U17߫Dnj7"=kSuM~kptvc{pƈi:fLjifp©&=o xfo;g4~o38iD4~o3xjp :rN!rt8}~^tXc{α~o Ip 1a9m{[!B"0v-c̩6Ω{6Ω;6Щ6ұ|^5h|D|ΏifapcP :Z` 'nh>QգX"T燭GCDNӹ6aF 'U9X"VףX"\{] M|,zoVq cH :?}jPġT#&",ףX"2燭GCD`[cu=%r~hh>QףX"&G]cӕX""Gzc{P|,xo+c^c%8Ggu(T>qQ|9Z%BrLN!9M 19oFLw߽Cwo#i;v={<ᮻ)sL9m{!(" t۽#&"zF1voDC>C>6GC۱D4Nc6A(D,Na6AD4N_6AD<{u,!#%plEzc )$=@ױ$פ:1=uocpG 9OWFd{[-#,ҽ )77Mez17\F%צ:ϡrtto;itKDp :wm؈896@TDͽSC=so#D瘎!tL9U:U:Uq1:UD Zu,X">'W9%s1t;mwPls4tKpg 1;WFNr4tKdX"\{1#^V͈n3bv2h:i;v=:.)Bwu,mcx9%uu,9GCױDN9%Buu, ]:u, ]:u,m^յ:;ѱno .:U1pccP6?Fwmo+xe2BuLoN:Mg :oFwC=mo#i;v=_}NG1=t/|Uƹ>>=oۧ/ua{ ?FC_ 0,FÑu˧_?MxcGG\2%7V& 2Sጚ1*8cݛp=|+Gme&0,O߲;vث&uϿ}:N4<6H^Ě/x{5ߟ?OQvMwO^jLݹ$S/_i܀qל e>u}ӷ 1mdX v;{?asetnwHur#߫d3u˟{wX.븯&2/:Ͱæzl/5glglr L <߿}P#WPzȧrsO=?'32 Yk7W θȳ*q7ο>y/?Swv/1[:fIBd\2{l-7ܷc{nOrƧ_Ŀa?'WSs9{O!% ̿!Xb۷IG59ǃG >㯏O~ =H_n Y0䕾+Ft96$5#:r'ʹ -GvoT^K~e@R}`ȵk/XKn|yE)k)/K;wThݐ Dc#}ɜu+2Æ $z,T|@#gXK@H*L}/Uk #?,kNe"ťqEk"mɿqD|i2! ]Mot_\]TK}w+# w{Go[O|TN;%mT=o_ [/H_1Ryby|8a ѝkE㟛߁G>?}O.o l_~WOXIpw|NcBO=S[/x_{-9 y}y|ۑD+|Z箉TYu+X߿,){eٕ?xYsg⑊H>r8 ң.?dan q~пZg{!'9#ߋ63K,nxV{qa`V9dtM~`!vdkc%js`!̪7͒DEN!ISu`vdG.)$GB;8: ʢݎ e,U=vE ȏpb Ų1Frbl#cr}/^Cekx_L]*vJr9璓5wps#N~JJß:c3%wp>U|% r?sow,tWљ?Ow֪}jY~]r.SO]-/ry-G/S( ϯd,SncWG:?;9";C߷|e8(C/oO^Vq^?/o%G_|}`}y:Xg6Oᰑv3c&d·R{`O~iC')_/uI:=m3I9:EzuK7aUO$UUcҀ<藁_vTQ ˯dbZrd[=IG'Nt>" P0d~gS+LZXDP{j!}=a$ߣz)Oؐa!/ިo?p,\7%]zXq48\7{$p⎺[Znƽ<g6oܽ ˺Į4:r(Xwp h#|#_{6^;:r\F庋S= s;Yf& דO(ÔGa !&p~&&8k?  xq s Lv Ob?ӿ0  \ Qsx&ПO1A`_HtL&,g/L$ψoExMȽfF &^$go廘 ^/+&1A &^2#^/?2x ^w48Ӭh~6iFx xG1Ppz>9)q1p\_ F߿´GP-xze ?_ȝb珮WrXf^?^_=bϏWrX{e w>^Ƚa2;g;Ce ?@ t ֦*#lɽ#Tr?s<`N :=ǃ 6}uz l9[x;oAoAoAro|g7D*^r==9ğ+$%_5D)%) ]\IgCWQGdFO' ]EUU˙6tiT ;UFoߵ#bs=k]س?1h}_?vB}"ͅd& *ƾNDsCWDai\U}zi};Zf(jy]E UAqjS^6;b /_/npqtr13}q]GG1/7G_G[?śك/5g ^~j8mWWK.o^oց%.ktupqSEwG :i''??e WǃG}뮎dzYWY~etu}ޣ\|E$PY%|gKuҧx!. z$NwmwyU#ozctCGEv>EIwqo$Mzc_}3IX-P#CӅ]D<_R.͈(.ʈ' .Lj+'3Bd,\hG\(Y}0# b _4%dp c>{‹]*ogG0xppOxC=[`w_'`u芡CaO_tlv78s]Fy~8/?d䅑ׇ#Iv) v-c>v>cdfo%cW2ޛ>Cyy ˟w`~`rბ%9,}`hI &v>j‚ݗ1}`+!,H{`dI 0$`?>T $=0i`So>g:>\T_:>r|47JGN|N~#?:>PaO޿ofϢ"|d<䑢qk MFC )g:&6AvWqOLMco2R<藼Jdd8ևvJ"3qL؇SD0A9+֧whx54;B7>43=bXy͗Uӗ|7thosChN\MxnǿOo[bmz[ohRRk/juK@g߷ևiBDvw:Li׋1Bt9mmߺ3d1?\WlPd 6[y>_bkߺ0%^ SzGE7}8c}lG΂_Sm,`+uƈ桽/7zh/kc/w}CM_^sﱽ3VQ&̻2D9ƯG@ʯcf 0~;3Y| 4kbWy`PB㿌vBI?h>P?:{No>y맿i@L0?yCOa 'o=2bňʺaD퀄W-w);?I_߉l='YW_* `&˔UcpTjVu?H Lz֓W~?O|??Qz^: ^|Xs*W響}_U#tzpw{mL&{_O&+WaJ6_.nC/voqqjN?\ڽJ.Uvip}j/ G/r5K0kL,ƫuz oygYeOg~qQ7;WyN[5{O\NO\7'^>ȗ?TnjkySϯ1o\ΣNR%Y]s⊞ Q{, CB{M~M\fEs厩Ȣ̬}|"Wt:\d?OW3ވDԞ""K-ziJ?wY-=$l 1ۋ{#o|ؗgОY4}i f7E? v6U9?|Hi4%=a* J_它"队]e1瘟]nnu6星 '0Jc~wyDyrO.wl3'e{' Mծ+Gkjϕ#órd8t\[92ܸ^,ջ[/V Iʑ:Y92^&ջ^$a#ď X/0(~'Gz3f#ǧ6pz}K$*uCϿ{$2ax2:|axNVO_J.Ь@CށCԄCrU8d2`\2?1ޝ_^O瀇lGS^iu]׌&xf?} _><"~t|Aه6y}tJC9Cǿ F>8?w?z?}6OOG"n 뷿;9iI{x͉J=K^DWU۞'~;N^W^s'^ oӇ_Ղoz5o;U98 w- Úl.UozϿp6 /L(xտ}+x-Ջl.x3Ջ:+p?y.< [(:}ݶpp u86>*  o^ckr?2.MkA-L&׭A+L&ץA)L&ir\ \/&ןdŸ&ןA'2mv 7LfןN ?A&S 9zWͮW]n'4oU'f׫ zՉA000*xz_8qxzH^^cjqo W-WF Z\17ן.oO;ן خmqi Z\8Nciqo ?-? Z\S. |[]PN찉]3Hkb džXYJ;&{lu ms쇜?\?v|\?{d?[I]Gb Qʈ>H8y$T[K}Gb ZʁѲSK Gb |ZJ~ѾH8x$cɅ_KAk)5G¯L Rk$ v }Л#a|lw}L2^p⹾9v׿y!}&6G L&_ /v߯d2 X#a|j} w]w/vןdŸvןA0biwI22?:\煌oO' _ɣ@+ķ*:\:1^u^% o ׫N WWBUUaUUaJUUa UU׫‰ë׫y!Ãv WWA*y^@N׫v ??A'y^Nןv ??A'y^3ti :] ti :]t$ X[vI2t}3HQDE9#ߑ,=zFvs!G?aDǷ~+ sG'akx2v-_~S)/EfYg > pCh\]}~é0D?w8u;#K>݇ `KKå}åХCG^?x}7 ykk̸p>t\Wp>tq,x8&'}< D, COD0|P C2dHN;cHN;c.;ލĝcH~.;.I;ee5eg& Ctcup1pWp1p:Qg .<.$}St~W#zy/kR#OGwzJr|}$U>[M MIʊwwvcW]^K>%y02He|>|>K8R~1:c>u|>kh̽m;Kz>%~Z43E;ͿT׮o;.tݥ:MQ `T?m ]G)N_Ny9ţTm B]2H+;h{/Ϳ]k}ei,oWRM]֋P Kzy.>_TF׷CWc>ǹ$N3T9i#?g>#yh>V9Eʓ~+%e>8H:)/ _G(nK"Eĩ?s8kOq$|.o'wR{L%ey9y|iݜ;O)-hb>v^^̟?/;]\/@& /A|~sNoF(ui<8 lm>O#^)E)g"޴rސrv| O#U(6e^HYmHmBzgK|.u:J l:ΎJ\*[ˑi>zr4RZMP+6u0K>iNjK粞F\3;ǗԅG{R^WK!g_6c<,__D:uE | SVs?i|>OD;_)Quٯ?ɟ:9OGQ^67l>%?|iԞ(/IjZ8OJM>\3s6-NE*K[yǘ_Dsg.>_JϕW/y׫"k\gϲmК9&AhK=]/h.gzi=I}fHK>NK>/\|d=|.K}.9:<>eRI+.\σn|:6ot|ye=SvO:,z^>䙏/7gg6t 5ΉG_{eZuR;N3k|7a=<>Ӎ|g;g~gX'mX{W3|ݵ>s~J??gf3WcR8u3KgCN39yzR[ym穎:Ϭ~c>>/^lH}f2]/l.l@li%m<^';L+g7]ӼI}f|yya]DK}f^.I}f^y~gI}f>ꍜ7su G>uN3KgVwRY7> _A*!g\3>3|44_<^֓';}M')T3sON34'KR'zOxG%>I}f>+ɯ>LT>}gCH}fx*g7>^%?K>_w]qDW35^ϬFOu'̟KOvu|>#?Xl'3%yu}=vRYlO;.ɅZ3I׫Ϭ;zU3sDHuz||~>OrQXzm]_gv~B}$]D?g]Y3w)RY^^sg֙vRYH}f[>3c ϳ|9oH}fL {Ϭ=RY=GRY7zF+ϧNKq^LnS[^FG}.̴{^3uַ|B~~_ϼ| y~/3)ɝz;c ^>M쟪OH3W3+Iwu = t>\3.'>{̴sA?>xln>z|.ɝ޷39~ހ =3o;R8/xUs??9J}f:}V/y_gK3s<^߷eYK}f9'/Ӌg ]QzsA/j)zl|K}fKml;  F>q̘9xq^3SO^3C?3p9gD3Q|I}fZ>Z<p~&ssz>gl}R=0W=093 z}D3~P>߱grgLAzgިK}fOO,\>/RYt~'i#,|oo|y\_Ϭ=K>ns̺N̺4@?=lo|}~ұRXoL>|'O>q?tJgω)Ϩ,|@}f6UחN3gYw>!~o3gL\>s#.gRsQg3C?vL>3 |o<^?Pݸ̼s~||o<3 <:UL<)y0?/>3_^G}&Qt}>mΔ̵>SRYA3NzA3.gv\3K粞h=9H}f~=H}f.>>>ޝ4<^)G[ l5@?ú#mz y̴kPLgvcA3[Oaz/'&\I7/h>W=sOzzr5~iϡf~׀Ls7(? R8OW3HgvOϬǗXRY7y>@g>{T>3fZ R/PvP oz9]E7yzzɃg!g 9 Ӌ)YqDyiGև9yޠ92@?úa_3.=<2ܟAD!c=Iu!}+祌YoJ}*c;'t8>&~T ܟ?H}!c>3o|:tݥ>ttJ}fcz0ė |Y3  J~.ߔRYXo9\_Ο#3'/ϬnQ)O擕>~=_sA}8:3eF#+Fg6.R.gcF:q|ο7!hGՃѼ>9xS1<bg(2I7;NOS}o/8)og6эӺb9t ՁGܟS|:?]OSZϏ3ώ33ciߏqSxD}p12J}fN2.W l#3M?âO?,: T SQ73qFa>I2nOZ_3g7 IqA}ถ|d>O3sGgx:J}f8%{9_%v>qDUGg^@?Rd~̴x54QjD}f"Fg23Ke}2>s|D}=J}f>0qs];gx?>3^hq'i(iyԱ?oO>?/# g#£gfod47B?||y7}|Ӷq/GǗ ?|S~_LOݯ*3y|<}Gzqύ>dm_JM?B?sj~&}A3Eg.3gIqp4|Q=6./Yb>9|SOu>si/??\'R; 3 gr~y}`FGgگc~fBo@vN{̜>3[I ~53W%tTo}̲m~'Ϭ̖#:gR &ϬQ/{'lo ;F\w̔'g=Ni__0f̿7^'L&f3;{'gVӤy<~ 33''gz_6A?u<^;LO ާz~xsz$zakMxՑ#É#J}fco̖h6A?3<^' Ɖ_<''P$oA:)~q>FI7'?vCL Ϝ3=%7Rof/>?xIL T'o8؟3=ϧg֙]39a=/?^sg̿K3ϥ>s[L|?~f#>h~ӁS^?>qG}f:tצ}^8ocS3 >M_3[L⸖̖ysa?[mB}5M3q7}C?es5K? _wg:Ogs<Ϩ\ 1K}fW\'=Gzu3#g93ykS go0S؟szxF}f L7C?3b3Qu?1x<":|xQy~f=<{gM>3oο;h=6>sm||Y\g7zuclR拏^oge=y:|'{g?sQ]bF}fc<Լq|g^=K}v ]o$g5EgJǗ3<~4RYyy~b5K}f= ugz/O80gցՂl9k^p?m?KDzA s>>֓Ϩϼ3+Df?,fgzRYVz~y'h~ ՚?p|[s|;߯7SFgo8K}fG2  |9nN .H}f 33u33_wM33'?3ǟ>^iNkz/X.w¤?0?>3s֌gz5c_Ϝ_6x>%aF7zN'FŌM'30K}f9w|/YSGzY3I^Gr?N=6!3o`yv>}.s'?u穝K:c'OPI7>>,ixAəGxzbԑ@~tgHs3ygFw7q>~fu䟋s?/yry=g?>u,mn~ׇόT?(,^Cox=|?9?\/ },{J6/$] i{e=e]2/?JD߻>/>sg~f:2z"e8)}l[؟t^u߫|M%gғ/ֻx~gOs2BM|aM2bN-Rxez/0?||Ǻ>FeQh@?Һw-0>#aggx_eB>`f;g?~^65[п/,c'g?"-33,g:7c3~|ٰr9?- k/o9Gy?jy,&yu|JzSyx?6zSɎ пi\wm9Y,ϡIT]>O; 3=+o.8r?]oZ{ob~9S,yߴ|>??a]o>ԇXOy9?-[>^P"ynZ,y}0J_>G3Rgz>,E3K~i߃{~f`?l ]3s<g!Nm~/`9O~ߴ`H\8..Oj<`SPIToYP9 [Pa= 7e~/zG~Diz|AˊI~ZU?CuVo+Y=:~''| 7VgF+3i~.y>=Gs.>~~\7u_LGyrh4]<|գVM~>syj~V>+^:>#ʪ'OǽB?kV#mVM VM֟+1?0+y>75|SU|'= iZ{}Wl[>qU3MW\ZRiTsuM_6> .O=0q+7 ׉ 3^>CzWGug7i+Kg־/GK|v{Kru7LJ'+ΤOXQh5aI?o_+3Ǒz#VlJ3N|ʊgXvVoZ8пiϱ?3C&ϼ2=qa+7MA+&wB?3zC3[XU?CVDuT[9{>DuU3+J}#>O=qX=%<:T'YVϐnsvQcU >3^kZ}ߴ}{+t)+3 Vgx~A}g>u@GW^oZYѿ]O}A/q~ =6Vόf [PY>AM'}*;|GN| י׬ :>3\X_/iexz[3 J}fi#3O_?I_J}f^Ȋs13ȟ>CgzJ}f+3o:N>O>+?ӓ^bE}f&oJY/ϟs'i o=wgXߵ ;h_m|>R=gT稷s6`=IM3}.ɷ8XO|$O<]^x̘)?oRMޠ9^B}fz6}Bq|O6?3u3Wn>'ۈӞ?S2кnCuew6gfO7gvI?}+^ z_ukOP>> xmzmV^XϿa7ʷkt_{hW޷h_Yhi#gyfd_ކF:M3o>sNW3Ǥ>ܽ3\I}f~ۢy/}7MM\ܤ>3@I7g֓?ӵ>%) 3?G!3 9|Rznڤ>3f[hmX3qhy_;{ y ]/gt{˺?07|7q]wߴc`{;o z`ڏe۱86g:zϵa~=$g?h}I}~CG-o>P9 ێ$麷|7>ss#/3C}ؤ>3j; <RV^>ol7M@zȅC?@o3&g۩Ó_>ӓ =m=N7N&~.~b~"DM' 3g|~fֆ̺<~JM3M[)ʇ3C3InYדt] waޏeCL7gvSgz^Gim^B?3}/H}~3;յ6gv7gˆo}Kc9xgxǡyC}+mf}ۅ"~gA3WE}i` 4I}f.\ JgIiw\H\'OofB}f=8r?̜|d={?ß?'%gv/%gΉ#.UkQ^Jϰ!A?3$O񛠟9N>ou?%>OO><${~~!M.> |ixQ]+Mx>%R4)/̟}ş渓4sqsy⾴ ̟g|yw>)&g)3vB}3ݯ}3OuUAwt&ץ뙋;M~z4K?ozI3@\Rܟ"a`_j%,Q:{~+sջLMʿK#;Kp ﷓L) Oy0A?Ӧq~ʺ/ӭ]r??||OK=3 3SB?8z)~Q~ASo:IIx||g0a|NݒG3[mNR=N~f$B~fDB*iW^?p)A?<g^?y 7K1 |΄LO RYoNRHϐP:\"}]B}fx '3;sg^ZoɤwM+J|Yϰ* RWzNR̟COgz3\L?sμ~^;I}fI>1I}f]y>nO sH}f:U:пYJό;ϧԇzпigi/3'IRY{^?@?~]OQk92+Gu Νu|wпuw 7>$g~B}f5מ9Qzu~#^i+?O>ӯ{!-3̟>|7ڗ~G}/;3<>R$zo|SOw/If~qC?{\{w?3w|go&?Q9&\$ɎE7M>eTMߔI'K}fHK}f^kmz/K}fW>O7t_?wޥ>>;zΎgWqG}8s?jG}Q;3=sDus?$·&a92ۡvM3wM;oQɴ.u;3܏c_ ;7//'o7u\k?;=.OޱEw?oߠga TѿiἊMg3o7:zړ4x=Ab@?C;Io|Xr~uw^yp/N~3GϜ}ɟ>;k/Oy7~P9~33;?w>c`l3#ջv?Fwlpgvzc7f ?sN-}. Pٯ2yϬпiuYԱ?_xKyyn?Gܷzߴs>3/gO?tt}? i:Czfמ>s| XP]g([8x1<@Nz|S8O9 gOoϤWgz:9>~`&CMq`_%ϧ^R>9?puw^Ϭ9?%9пև7ut=&'\qߧy6}33ߔ~:o!ǁ_Fϕg63:Y>x@?||/M;MCkO|A|̕3384s!ǂ"3ﺳs}T8P9Iz>ú!23gM 1M;M'=t86@Ϗ3#n GRgx=gaxA?Ͽg?KgK;Oi<y>_{/gDu嘆|Xstǎq`7;@&R?qW>Ak/P8>d>>+>P=ǍWÜqD3|3;Aoj-=vH}fy Ln~3 3;Ϭ ɿf6&֭<__M#Mꄇgv^L:#P>MǑЁg/؁gf ;^/6:2xx}?:PY?=?0t`L_Dž~gP?3;7zuZyG?x~'>h=p>s^<^ogNgxS&'xy?x|6@t'3̘pJ}fh{o&7YONG'NT7;A LO>G>~O~_zZ>@< i>BO||~N2.sĹRZϬM;?23ifQ>vΨ|8_ < OR=D}wz_Ϝ@o@'z> >̾zf{N~q$S3BS3g<7'tRObBzL!V\w~ܯ~;zOtJ}f[L//޷|bόyRxc?~#GEgR=dNg_F}Og=׹zg9wı|Yό<{bs98/')?H}f1H3FB{̉Pԉ s['339Qi>>#.D@a= :gHuS3ƿ :$z_s|r?y伇7Ο?'N?_3'W ;?"ܬs zo|2Ccو=>>c'3ĉLǿ7Xw}>8o`` 8_;<>.oQy}Q㠿6שNL39>35q;7|~YMŜtijR3LNό[\?Pg6}>C، !sZeM7,8<^=y<$Nz ğwAyJw`=sD>'ȣ?צ֌Fb?x'LgZW ӕ'NğcTz. _y | gfgQ9+ɓdo} qyF}\3KGY3KG6Ϙ<}_wxqc=#'We=f,y3kgzߚdM7qͼi}rOyl~zAs'_?Ӎ?G?}|(Dd囈3xYOq> =мRߴ<|M4ף,O MFLz_&bNOzA?3*9S%s`ulVϜ;/x2Xϐ-Lob@&cdߔx<|7e/oF]r?>Q5o=6߯w?]<|yPy4#oOgǑiO@!]A~4xY_Cȿ O i!]V>0TZu IyGRz'gM0Aϭ|>У =f,RY7>?/9COӜ|?3VY73xy )ۯxYiFɌ'/꫒7&.Hf?3>'>3qD}fe@}fy,gx%l| 3g>g_3wor=/ugLu{:%B~L/>p)Lk?NM]~z :_gf3elg?7?ckŸO& o?Wgeρ?B&<5џO΅\?x|?s*'>O>kgNg3ug3v>7ՓS'Y|MO?υg'W'Mou/?oϸѼV<~Ӱ?3uzcLvG7Oڏ}sjo.oym?g[3'W :|f׹od&LqXf>7g3=%>s1n>3c'{{>>7>I~.eߔwM$ |$*Y'33z_׫3't?d$_g#!}3gݓڏs', }Lw>|W~ |f>MM&3=zʿ׮ߕx:MEyv}*D'MkD/{3ys:YϿ3;$Ow _7sK)7>;N_$=ֳ>~vg_~go/c?ͯYg{ŸSW~tz׾nC}}Ӟ^V^g義0d6o3{v8s>;wAwuf?;}hџQ]Ź$|rnys |&Ͽ|Qi^oo7TWs>}~ߤYM?T>9 l?y*/y#)WkmX/gs>{kgXV׾Ӹkg3^>p9<8Oܨ}5Oyyx?;>U[)}ş9>ψ57wM'ß73|.|vUa? >#}ϾVsrzkg3ZooE3Zo?G`~D}s=GOxПyψoٗÅ[{>36|aό<𙑪g| LzO>~':w--ߴgMѧu|3^??迻oTƩ{w{v[wc?~_G:\M_oښgPiT3v;>}YI}Ϩno窯]4k]jg̗zWϨg_3~lߴ?'o?g.O6kh]軐ߤ{ώ~ =I}~tL?&3?xL~.}N&g~vC>{-Ks{Z}WvGg_t#|i=b;_ϹW7+x2\g_3Ov?s>Ҿ\œo?:32wM}-}ɗg>#IE_g3^?gKF6x5Cv| OџB<}g_MOw=e~t?;e;}#ǦG8y=5ggJ[?^g/?W炽Ͽs?'ٗLxV~TyoRLnLkZ?c3y>p|t-;Lk?q;t8`?z~SM~^>y?z>: yw|4N >}`W;~Nөr_w?ϔ=zD?u?{|zO?Pombz?)Ϩ>go? "_׵i"]iK39s½gF|;S_}^@\L5V|~t`~h<\O>S/{3u ?W}mw%O~9%|O7u<5=C~͡~SOg^gT_}-oG}OKX8>ӊ9*]>S | *\I7%ʮ2:~?s wޛ!^u軃ϔ8̳?KV<|»L/"|$xK7sW>sOnO~MOX7 9M轟>ӧSgg3p}v8%g~x"g8=A}W|#z\5UjA}SqA}t{Iwk+8-}|v_?~'#wڎuE}vMǎI?#ى'[3Y8A&k윧n[7q)^oγ3m;:w|=z\v?#\ ij#>u:>#z< g8~u{ن?y p8챞wS~qd?7y@9?=Χ0/<3}3A3~@P>3]όth~co?޻?^>♱on<П9_?s|}P_}LC?D>p?4}gJLC8)=oϊ%xDŽgn3G |Lyz/6ߔ:bw |;Ot?ύx2̏_y?&|vγgOu$ Hi'>$kK/z&gCمgz e9s{D&!챟gK3+R3*NόOg{-=+]n |!ZZ‹ҡ }x/ϨgTēI7US?xt?^Kf"-}`+HO ^̄L<>Z=a?F~(n)R3Mu?{oRܛ}}GV_REOtܷϜ:g>*KόŸQ=ώIz/x)q{]Qھ/K >޶/--<0H?15g6%|f*>I7mIgv??s>\Χ?TD WyC }>_sNS% +%7=&7OLoJ =|\x۾Χ?SMt_q>5ϔsYȯџy>zb߼gڴ=v}s|B~x }M#)tП)_gno3gǷז^g?*7-}`gSi7y?o/Iy3{3xo |fό}?{t JG_مS%ioR>l"/%>Sn!3x>πϼd/П7c?s:! ON79?"d.T}NA<LO^KXxBB' П9o.}f{̿Uӻ1џ}մn{g}j7'z&^gKig6ΞpOŗg2mt<'ZLܞk_ 2}0ES >gKzN3}r^E'C|짻ۣ4S_[gL?<|f!cq>}?͌>p!,=+WYz=^~ڵ/UL>^?3U~#tsYzn$M^u?$/.=C?su߭qfUugZwqr~_^ys٧>#}>#+(o.ß:ܑgTW/|Xd3va/7M7g{>H~)^hyoR]xLb><24~x9^Ǘ}}COۖ4_~AM>(3LLg=7ÙM?Dp>x|f=8%Ck;^"Q^L>gt'sG|W}myxY3Yx!}UNǥ?u?5ng$</.זW&N|z|nXy^g3c׼<#g!=|>Sqx<f?OXLoTFFu'?{/i>o*ʛ7|/}_.$|fsL1)Uӕo:+14W*O*ß)d3U8O?S7/ӼX&H~t3d<ß9cKE3𺢾urr3=+1?yD)_>ϥj{쿗o?g8|?3NE~.<'ß٧o |8S{̭&>:= LVVgBPqoYt\ڿ =|`KF%z=?_2ߒ81K>S?챞 r(>˩_X)ϼ [ 3΋,ό~)~q>m7UY~?.Qgy ~.ݗۣϬsGAƅ{LټNogy%o]i=,||?Zßѹ|6?SyU{gޟy>o:t/Po*GJ{gt^X~nWxoiģ.|Q&祖gzRiik^qԊRRto ~L>#VA}~]q>:u(όM؊q>:ep>Ko_ߋ|Oe}/>z |_WMp?1B~S4t?Uo![ϜGmx<#(7ߗ\GAֹ=· ̮7[T|f94'gzʪcG~|\7NC~ M*7] M{_k<7?>}_&|O;&|g{qL|~O]ПџП9ϼgT E/q q;)iy~7^Χxot[Ix`yɗ~P_}O| Nkog.ǽ3q3t'k?.}U5 Mq}:DzxMM}8ަqgjVGg|xZ]3**ܲQk"_OJ&sMc>]znN}ßIj3ÕMGmg^W&7+^s*}~d+v}|L|E:|fcGA*333E~SOԼzjC5J~SkQ}ɗ=^N&ꪯ-݌ zb\xۓ_xŸ'zzv!]Lij3 Dv%8.}'$ŸqtN׺so_‡ {/I >T^k)׶lIW3!o!ڷ>Poݶ~8^=oreEOk?R3uz |ɗL=g>Sgvǽ3]z,5ogp >s9[c\yǫ7u=g\gl*L8 *!Ÿ9g63.̡{J~Sq̷>Sw;G}}<|y>O~n.?3q+ǃBgg'}ʳn^=Iʛ7>-}`϶3L9Iڿڪߤ-F~ooI>ӎqF~1^pvgf=T]#iS^jCfV}̖m'W^a |<{m'|=Θi;~Kx? xQ) oo=+Z3źk8ɗz 5Jw?ܷ^n$W>UyC-K[Q*|`'ɊW~n>33LM^_z|q-?%AF~7vMO{ֿ&_~n] }`MMtZC~}kxqzu}ho߼t>}wg}w[5S> ?X?|f i7gzG|r7?7I>gw |fk'…ڹU ω?WV |$>|? |45g7 }?Osm'<:OxF )|Q;Sm6M;BDVqڅ"򛶟]?+>S?>{>=->s~.L>p=gxP <ԟīio2ﷁ\ig6135𙢼>sf n7Mg~MSx] |fp |f{'q&T |f>>c]>c=FM 7{><~.%/ gFG}#^wSoL] |f}U<6odig\d>p |<ޗ?p{<}>>So;g)43|qc}œCY}>m܊+8l'xYU~}#>_:MϏp4*}`7cS2}]G|ʏuC<>ӓۯ|*{ܞk9^ēzFOIqfc}`ūLhG7 77u.3} eigvszŸ^O~ TuϜ:3_z3n~`gt{R |e|绀ܯqڼџI!{I:wt&>s?ӄvs;MGW`>sH/|:iK/g |F{#_[<ޖz?7C-L6ϳßIt3CS|V?+'vx?Bf>.wg!||fyX\ >Ϟx׶S?޻y.|v +C~ϡM"}HL;BLwYL8;W~!@N>: wggzXw^ }?uow>=NiM)~f';:M7UgkWk_3 3o8c?uE?3Ż7={<yoQ~Gy<;ғq> 7m7 ;MճQTt0t7wպzo}D_MtF3]> 3;g3w_wkֿwrr?^K~3q3N1ݏ$Vt:q1o}J_SyO~o{EdGOIs>S^Mq۳*~3U~l>S{q3O?.y#Թu,Ls#ok~M> 3-3E?bϼ£~E}MxXLs'}џ:7|z@nc+j>S}ßW38Sno_;cosc?}oKAO2y>g2g?MƩƳS}gG3új?xAO3l?υxUMkF3m?Sq?ܷ:N?c~ӣ{|=c3x?qȻy|g ;)<O'g K}wsgo:AC g\#~.}`XM7{{+ vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/KSC/KSC5601.TXT.gz0000644000175000017500000041476606463470757021400 0ustar mohuramohuraq4KSC5601.TXT[$Iv >C"Sdݽ2vAfddo؀ P5Rg?uӭ˶h<{mw7t͇ן}量??~|_/B?˗_ݟˇ\Ëyn|?__???*.ӟ˿˟?y9o_??[on>?)??ӟ,u٥>|_?!jsџm__x???_7PӱpO=_ӭo׼|lo?oaQ_~;Mi~}u9ǂC3T5?'4=|,f@T5H֪% VqU^U0?5ݢ6^V57W†+ԭ(W|c#J7 =&j: _ "LԌuQ5޶nY5V{?Lx/eo /~AqQE-UᡶۘhZ|U/{J&^ہo}VomVoh{:{C|"cm.=PSc/U4@'BV| 4Ωog@j&>:i7)4K;C#s!n@ӫا;m#O!u~ƢOקm6#9>\Ùf3b/i#r>bޯewK੘ޭn5<&w˫1[dw|B 1:pk1Zp+1Q[B@& 2Kh tp;fzD*n.tzڭtСRq=~܎e펛/`b;*nO߿8h8 cbXZw\3:-mFUxfte aF0_"!ʛӌNT8w3:b7S /-N9ϔČF$^xgL4eMN;84F36𽌌f\4y~XhYQ3&+I=㢻wҞ1s3]=3{gϛVOafCy=R|<0E=Y~R-8},>HϪ+eiࠇZѣѱ2|[ep NZ$'܂JI$ 7-z0 ?-ڏ+-v VZ]_|.hq 삍-nC)TNϷS2}BTͻxߑ9.o32ދ[_GC{֛ =hz0/h9}=y@7z40@hvGܒߺ؟VK񵻁Yon߻|vϟCsދO 9hSzd{Z=4x@[ hwZ=]<jVy/?5@O ,:hw8Z=2>i֦Rv@ VJ5M\B郞hwY=%0@G hmTE'Z=h$@%} h0 oEB8V4Xs-!@ zћ @ h$oVyh  h_rvgVyK 1=o.f.S(oV7@?`Eu D:o{.SoV7@hdw)wiL @]f  o7@Ko@ d&@El R6o`yЀ._h~VIn4?$?k 6Hzע׀5o5?yY=`kh`ȯʯV{Z:hZh`ɱa?||M N&Na&_Y=,)~(u~:DVNޏyz8{Y=xDU]e>n}Vy/70?ռkދ z~crCgwPZ=4x]e VМSxXɣr A9O zԩ:@?%H7@?\m? d@zл%ПCޓ{?Vy/n+@[tc٭Ǽ[ykY=>= #8C?2- ~- YY=d]ܶY=d]ܶY=f꽸mzԻ zԻXգ">wA5 g}N?T}VzQ}և_cBaI`zOonoh~=kufܳzKdNCdP[ oNP=lT`=lDe=ڧ9ؒY=|}G{df`yJ*بF_yy~uE ~zwz6; zk6gpCguѫtW}ե#=.5z!2go_nzK Ϻyߊ6>݂o܀ MܹY7Nu,{>gn-5_h߾B o @l~ign#7F/>w dm~ o-c-}3wڀxV6`=I彬 d{Y^BlM<2n˛L }dMmYhA|6/ i\l=r%.mz6=;@Raj3xMd. &S21&~6 e^Fl'ѲTe ޓW)?$2i[M&e̸@ȔҼQL(QLi I,S$S;&&2`hՖ=ma6㤄CLs/ה,&!: GI-Sއ$$ cm2o)Cm-bKM?PuF`H_Qx\~(9+*^[Ms4Eʔl6>ҊhԞRƫnIp/SfqIp/ShfIO)cCsd[xM"Jhk4i|6I*O )Li,vD`&23JPEŐ yjp#J*0{K$3Q &\d/vW&c/vڢ_$oGMB,"&TI&1[ooB1mKeyf$YX@M5˥Ń6mp*S_MRjvI1.I1pO&G= jNIRJ"$)֋Q#+6$')ű6IKRs}q%sSR/-֔daS)%1){ATbLNA9I2WE'Nm2eP ME2 T/ $YlMM.%X&G*UR+(I fIR)ͫ̔]mTyk$Lѹ X$*2k[j1ia6d*aRu8QÏTZxR2SPZ 3;)riZ'sjmkl&I=$P$p[Se56 @¬irmB&1d!Si ]V_6O OBB &AJ!=k۪5MBg $^k,lL{߁mL6 X t0S A ]@$ib# &Y̴u4dۘA2U$I:&{6nL⎹,~]@$dm>d`.M;``1OJiF e.] 蘤(sYӺIRjϮLJi4/T++ԁ2Q*mÙկ=.aP)6zGZevgBsUhdB꼴@hM̕篼 m\h&Cejb2qS~P6?RvӇP1?Rqvɋ*`vɌfӁ0ne4㍺Tm}_Q֫3kQ3il$Q3 a%Df#v *it;P.Tn%CUUBJvIʗkLKpUic^͔Ff"sQ1W(^T(/ .U(h$ƚ cdž%˚qv "ӯv ɴk`]rMQN<~}P ?`XS(ʯSZ_Jv^ 'K25 #K45MPnPF2R[VfI8]bBgk Nn굚z%W+vɼ´'2RjaCfj +Y e eąMU*?Di5e{+K"6fޅe6e߳vOD`rTJsu`M";(^xs۫o+}lHn2"`e|*A\Dwpr{!~7K'WwütPr{Γ;8 G۫Ȱ@vp̗ ]f\7}@nks'2U9*ls;и ((8nbe}!(\!p.0*n $ Z! rUt;> n}v9p\.t2Ŭ>rU[ 'WԎ>rU^t';UdGh*]L/WE8>rU$;XNF*P.W}`dma,[04*,Wa}`v9\.x􁖫2h> sULb i'C:@UrFp*]/Wų}zf-.rU[L,WEH>0sU?*c!=5Op@'4w~Vc?Cej;doIzbs;d?Pv!Q2mm?dO>%,OncC:'8w(Ŝ.OzPV٦OrPUk!Vu#?CY-<챿c*]XJX9'Vk1̣c*d]L8;c=;1 c*:ۡ OVQg;*朎XJ:3B;>r預 s:-*lGwWGܐ~{ubaϘN-wɌLN*Q,UIbI?c*)L!gVO7Ur~I?c:8eL;-Vn1ӤqaM+VbI?*mG3nvIU;v?b6O&AQe\r&=? KE?_6OGmQ>pLg7u?`X\We(UAbFJu29Sf窴~B[ ʎCS3y?[^<S Vs1C_pag N`~UNGXE)jHBj/VtI*m ^B>UadfJ*]NW屋)YvJ`^]^/+ޫD~uUێUWVe*w1`_q\.+~xU\[WWЕ~łUү +췝ү|X+Vyo3_1aG+Fv.K*mR鄖~U;o8pڢp_ O֫vjK*]6 UYWoxk]wpUbh~I[.骨v<7LW%޹j:x:7WEܱ_sDŽUʻ;6y3a5;K;Fֶ츰 Y fdžU:/;leU2;.;櫢ٶN"OsmI%Ž$H h~I2XLV2o03t~WfoI& -ۗ$1Q-=73Q=}D.QkJ@f*:?fR,f9XϞ=L%=fLFb*Ok$>yjRFb$VMedzl\?H21Yifˋad,m|InsQ1(Y^E\R(sKd.qP\Ƹx`%x]n%U7_cT7]QdO$i,i j&M`nЌXNR7J<{2J$x&)uc1/溮S|M#AGdk*Ÿ!HqbI41U I,1UulI- u`) u8_\nt,)fzI/N77m,VX\tLK}EnI"%ɼt8\"1[U$0$Zv&D?|n\K$d&Dr^`xdXWf*X&ADL&a$u"MW/E,छdƇPI7[lltYWbIX^R!zs51§:I)2d|ge5I2*7I$EƼE7BEAn_آTpE7Neha D$I*r#ɀ"IB+}"IN*R3Cd6)s98U\ d&0zx4f/1ybI[E I\7Ƞ?rnLMR&k@7Jx`n:5$uAnJs(l$92S-47I %xinyIҮBsIE6K+l&Ƶ37kL *s{uh ϼzc ՜s$SxY -<5 !dn20՘$17)sG #M&Ӿ#Mfudn20dn20{q#\H6~90ͥadn'ҏ 27B2Y#pM&/#llhsqyl'#HMF'~2d` hW MX07zrQJFCr&s?sMEc=.~X0074+3G8Ci#$MWss4`?a=c?!Tg8*,PK__JkB1x 17lKrGxC%#$ي,l6~̟QCQ0́咤 &gěClx/Lɡƒ an%ҏ07KGH%)# 0yEs&k17+GȘ%9#Pʄ2|Ess@"U~Ts^gȘ$>"C~9`?N܂KpM 5%TCss<?"/ `nFÏ07n a8 P|6~ G7yx]~g ,yx ]~g DG=ca<3$ƃXcb<.=40Ccb<"A40#;Dc@c<$.E4<#Ljn)737ƀxYrWii<,4B4iWaa5K0ǚc#$L@`E 8X142l%ɚ4Lcy 8X14:G 0C#HLs.,tciܬLAb2[1;FơͲH$1vIEVq83142u\m ȁg 4rk PAޒ|q7140ï"t;d\[20̝֛^W}0ץA#,L#'kGA%84`+G0AtN ƁT8< `+G8ơq${iAa泱#L##O (! pfip037-yp^H@`F̂G!q Ke8a>B42& tysqh$#|{is}l/=a#KpE8c >¾4WYs}iXR00K qh"(|iXޫiNުi>2 aa4# L#R7F FYu$QP.mB8eM>4rzl B4ry4)&ơ:$qNA>4ә/Ct#K@E8`g5>4Y/v&#Kpe8`g)>4Y`0w9#$L"A|iSdP1x#PL㠗y^8ܥI a3G`ơ.m: 8ԥ`L'Ɓ., q4|~i2_K!} FSs~/^ؖ.7G:e=4~sO/^!LЗE8e=4s46A4)´'Fe/Δ&dLE#8 fh=A4i'F&<@6zidZ\n XL iٱ M!l[q׀a2ezid`)ʺ ,LСE 8V @D q"Fzi!ܽ00z q`O=4i 3aå'ӄ &c4$iAO01&0L0e8cLD4p\n9mb s\;la^6VZִ2;che#1mAjZic05Dz\!jZ9 \iZuK‚i%e6PM+ٮOJ\sH+.HQ\Wb` 7gTдPhZ xiZIi4dŒ"chVRa\lVa,vȚVa*VbW0VbbzڦXnZI:HbFe n$( JaITebܡqZI:EQ;@N+s&&SԜ;{i%dj(Jj)*u崒D sk 9DNQ;\N+3NMj;\N+Tc5-S?p9qp9RYsi%0jΏ;\N;zJ(زi%h;\N+QT.ЩI JĪi%O;XN+IXƖ9k^^ #-9b>ΒgwV8O ietQei% i% dT2@괒e 괒UwmI}ie\. ʬ%i%~J%dT G%dD% ΋Jh\$dieb>Jɚt*НVY7iep\fwZQItVbQ+VEAޭvZ S&$HUej XުPnNʄ(8FvZ aeUi%+wZaeLVfes{wZ pe[Հv:C,Sp;G,#UvF|Tm:Lji3NQI yh=tZn0;GZrf}y(i=Ct2G L`L`7S/:Gf3NQI yj=CtZFo9Gޭ`>n,"~{<5ߞs:98 b<6Ls:-"gCc J&N"{k#gTV {j)aszU-`NE߃=JN=4IZH`ղ#=tzV-Xhռ=vz b)=vzM=41\gxރ@:3 ^fL % S= wzm a| <$7Sa%r\h^"B K4Sϭ%)t0A{zijJ§}nL}z,Xl?D3i`?$3SKv1O@$a.>P/DUKQ £KQ\S~D6'4Q/ L@a&uN\dMK1iD/ת^B%{%̘Ljho3qLcʛQ/FB}>zff7E K@34SM43Y,EȦ^hc=ff~(7eS/M'caa4QKS/OKSJNBͥ h. P$ALT/P= 2XN#K@TJ"%**֋R$F+6%9*ŦGsS\Z)RkJ)”! *1Ise%SzI*QZKVMYM-6&U/\䪗UGWdI3izIfʬCa/UJFDL3iưXdL3UUV7a`V/Q%L+JTiŒ$Uxmzxfʴ݀k̄zEz njl PҼnFn/^2p#W/YTe*̼KRM`E_BD^(7"W/!L_10~}K2}:[o_9k55KSH>L!z BXl`!3< X/yp`ޜէ ,OҔ\w'>9 %"KXRɸO P_ߞc5\Y (i\jzY/O T$%)2UJc_-o; |Y/9S ̉կ,gUX >j.5wJf5WK9%*UbMI>ER+ huUяA4IJ9}&M&&6e4I[`*,ju&iTr'QtmSm;~$w+Y[\2IlWbyMJiI7Sfp6 f&I^%$ϫMBJyvmtR~s$櫄 a_rA2J{6H7SWv}$E@ ]|jh~-np&ULe Ɗu J;\5TU&BFff5 nv7ȼ\dZ5 cz5 sߚ{0}:ex<Ų U0>Dz U2^ eYY(po ͥeC 2Wb UԲ@ U?ֲ }D7T1e- ,P=PNpYᆾnPP=@f,rC STLn#HF,rC A2e!/ P=;`',qLH *1 JΕC c ɴ.nAɅʴ~a?7 ?H[pC,E6Af)12 P=̒Y߆ꩈr7TOFSe8zޡ- 3|nyH,pCÛppCC9f5 8P=P Yꙇ|Z7T=5 TP= ,qCC1fGl熊lY9 !O6\܆ Ճ E$6T&䉪 pP=).m\,SqjG\m굚BoL`6T3d pP=SȶAb KD|0Ɍ \ 3iGPm̶άgLgz,#Ij\ چ ָ C_Oچit6TOcIH 8 ø<mܹ4~Ehd2T҂hGH XP=?HZۆzˢ LP=s"%-PmCI91i X[I96i `RkڪW5pmճ+jжr ddѕb ;^i L# *$ϕw5`nS2Ɉ5Pn2Pŏ5`n|PsaMЭz'۴֭z'ݴέz2'm(okܪsQNkdy<[8ɞb8b@ўd(;i [PO9i [PO1i [LO1i [XO>i [dޭzGLZV=SZV=cgA{USUPk ߪ'xPkߪx 5o3lg6̲nٰVطzZ#^mH瘭PocF:l{5Du3I;z.n6V\m(z!X=xQBz"ocEꉋEg..7V]&7V]7V]-n; ,X=Ð73Hz"% z!Jpc8BڔY'iKzlGz֖cVQ xi6J%Z ()Db tKb(qO4eO$YO$m%(lO_2Q( P($ml_ kN(QgI[?+^)l"鰾9FK(jq?5S`FIXsK6Qէ&zeH%R}̲NE[6Qԩz6gr6J:2@F]g/.:f9%tP~>5g6PQ̧䬚 lr\=ZMAfK!K9i{ein>񢂏4fy9Ul%h|RocOM nlp1oHZ>ןϔ6Qr{SQ4=T(qTM6J8m!N%*Fg/Δ& (Tl爫W k<^0XQҽxM %lkOIzQBqBCvm¦E7Q":٭1Jz]-Jh|c%PbJs`%y%sFvE :k0m>Vtָz%[|%EE+dFfUTWe3Q4:(iLHX6XL ^6QJ2prj@?k|zݩ<%׸>z,pSt5M Ȕ\M0=8Rp5Et [S4KF)'zLY_$%SuʀHId/Q0M5 *JƴDI\wBI4E# JB&10P2=Q$uJlIً3' *?F&m/N5OnX'5MЌl 4(Xc1Mo\YIAP|ixKziKynic"[4I%1W$ZXipb~T$H&$&xgNfO$2[1DB F K:i_RQU$R:$w6΅5$}w1.$NM;`IvMy th[TeFdueV$'̛#"cwpIqQZhP\du&dt&H.$Y$t>Su ]&#4I-RCMZX@0A^6덡a&6$f\eIBm {$bɤ0>y$Fh&%09!q&ɢsALDv4 fZoL"xYVc 06DX^~$d=fK pI_ļ!4 I^yC$h3g&w%N@gẮ/`3-.I`+363I ,}&zI43ۤ,H0ŅKd^fY2=+$Y M$Z?$I,V'_6I2X+Lȹi1u=5Y_lҲLg`d&z_M@d&*l 2y\6ɡ-$[Sk[vɡļNfr01eDѲL#f02ٹ,;|aD8fr03edkj(̎RٻPnCL24576"fQ:(]- 찔fr0w-0Uv0IFAw@IgHIfFhydj>V(}Ȕ frtX 3ݽ*7v@Āfrr4 39`9ef"ofrA5exP@فb&,1&cOvɡ';PpŨ2frA;ddj\p0OCL_L_BL2 a1$;`8fr d39 c9td7L2ldM4frb39c2\dLXac&~,1@@vȘɁ $} ek uT(zX42fr8|39L2 4.72frHt3XvGzLL`1&;Tq6%x<̰봃Ljvc&";17vؘ흧.f3yD`~i< 0L}Ac& ,o?1vP;|a&^w sw4P~;Pg%3 a`i_tx:D^fw +sNM' yvbư[,y|b3O?4Lo@j!=CE!;g~fs 퀘Yn!e^ZQBw0L!~'sAxqiCmh3 ?Xftx݁7|E=c8a}ۇ_8a}h0f9ۇc8a}pS(SbsxhU;sX;a}H(19jva C;x>]hR&y܇ck0I!:0b}h;`A`(XC  E{;`ݠ_'Xv+藻  `E}q$^`ᰅSP4*藻} y#~/ם- /wN~;a_6|;arЗCZ%"`4ɡ^{I2C%dހ|xD_ސ8]HvoH.}ev[!)$]jnFސr/vν7re G`/w ""NMVTYI@H,ϞH,Dfwv@IkH-{qx#TeHXԤ. @1;%4WOh6\HRī2KE!j]oG}hZ4-;ό>4=3̀cR@ u{Cu-!ЇfFs]I8Y2]V%,,\Q]f}h%ujUY~ݔL#<,1tyafpEÜqdR{E F8)E3K+.7= ffyM%-b fV0@`foX/d^7Vbl+BY"[QCYb[df]Ŏ2K+[o?H+ 2K+LS{%!,qlʰ/2Ul0$2Ql p0ľ2ѹ0d2 @,ǀdf_$\;#\6#l}lXGb_prL#̟Qq$511`YB_fi0L0=fܗ),8Y_f3LM̒XN/DX_0H<ef~&k|@0RyCCb]ƴ=0Y"]̒JEX0sw]/~H0ĺRIR4XEr]ًs%ٕk}%pujVqe^ZoQBIːSby%;33˱f%o^]*YMA3KIMve Kz 3K&*m%D݀`f CgAJ4 f,T"9-yPRG@af P% [-0Wf*$fU"3K%I3K>饈3˄s!0,Q af9+{]1k/)k}/d'ix%Um`f*EqA`f4e"p4E1/,( 2K)SE̒iD 0|?VoP02-7XYP3U3K"*}gJ$*̵_J*7f)Ily@cf4EM,PؘYM @2TYfa2fTTĝ'X͇T,y%fEVp%q.7;Q$uj%tujL%pu?:@af \%q bfI\*YRWEYWĖ+MJ믦: FoU<^0:ĭE ZnZNɧ׍,asyp,A|%k[i1$M1A̒`.f)%3K(YƦ4Y%H+zIL% ZxYM& f~\x(fc!3!rcYH!0;C8LT4+ف̒C=hCKdw8I|߀_fb#X#8smyqx2PЖs"Sڢ(> ܋ iχG8<^|#ŁC1|H|>DCE6"ﴀ8H|>dxAD!1W$>oq?|=gǡCu$>15GEͧ[ aЦD뱋3M $js^%Ma(Fۙ05)z\PoIo (9)ч8c}hxȘS5JhCH)чIC;)чE +8Cӣɷ<JL>T#*hx0S3Ѷ;@; poy7y80m.0D|K{ aArB<t-m,0^|} ᑈo<<`)( N05,:A<<0cp0,nVA<J>D%YɇMw2P!Wd"*aCD΍fiP ΍ 4C(ƄYLJ`v6XOtx<5exXVQC۔aQ?T`_gG&o<|Xc89`r>yƇ8ܟ 4>c㳁zp|E!+̗"NyKytysC Ƈ]wAh|gsy;~y8tah|s. yaGⳎp2PʾwS(vpDh|,;:4 4> 1 4>$F@jfЇ&XG˱_Myɸ5& sqM1A<2 4>XCN=_nؗAȇG8$d|hCCȇ?8Dd|h0Dc=p" o p<@<1 @>$XCSα @>T!Cc51r4yrY^!1C5fʇ8d 0kbh˜xġ0CA1 c>80C;1 c>XAms8ůǁ<!#rӆ@cFC7`19z6ov Lá;m4t p`-iC0,ClQ <6(ᰛEt p$Jy8f%<nn`YDI700̣0o("Jy8g%<smဘytpo .RrYd:[eiZö. tK%־C(ǰ)1l HZԤnY$xvJL$edZ\n زHL-$T")셢;JPkѲHept ֲhEv+]k{$fH.[^60EuprL#ɺ̟Qq$^5C,@[ יC,3`Euƒ\ؙ05߲H.*b9,c}ysY$wN Hde<\1oH] eZ*F|Ydp_9"Tbe|[L!,pKUځ,<;5_I%G2^: eW,7c4ȗEB^ ĸFb^۫m$u ̅0 ,zi2,zI2,J$` V$] V%H*DK½,S(#_ c% [-/Wf*f4V"fK fKf)pjCErNgE,rzO+.~%!sz7WsH)|2:EbHQe0ReNyY$⛂zY$E[>"q( H )SEC,HDp/|->V_2e[n/gf&1|R8FB>tȘE>32fO^/<" TK2fO2fOۂK$JlY$ꓽ8Sː1}RN#aScvϹ<^0ȘE>A,9W "SeH\-H'.7M2flOq1${M1A,퉛`2ft)%H7E&$YY$H yIL PDo^˳(F7P^HNuP1ɾt 1|)$fqg+Ŭ JDtP1u^)t1!{)w1du^:ȘUi;ؘU%=ƬrYv'V{elz6UNJeu3:ga:HUF97 fc& 4*RM01;53t01z?t 1CN\SEsʼT{ p*'-CF[C(JຒlFfu2AǬ@f;Al.fu1܁Ĭ2\}~!`aV1Q*r `VHK;U?nA7t4 YFAw/L={-?:aDs:$[܁2-'*вqa`V+; աҀ fL E0ADs:]¬eWfu`"|Y;odV2,—;Ձ >fu2|Y°_cV0,—;ա HfuHCɬj(—;(Ձ Hfu,Y=T`V["|3ՃLez z^z ev{6n/;n`/uyGD$o`/݂dKuu,_zY^V2`/ rYXF08pɾ`_Vv6}Y.I`_V3qit:@^V+;UFEQl}`eu4xYNSw /*2Qt=:;7TrwYOSw/`eu2|Y/ _V;Y{ޯ_V{\sdZ\?^V L2;U!r|iI/ Z3v1E:badXw. & eu:baA2qĦʼtslEu:caAr>RnY0̰@\ū=¹YdXw.U|]VД"ú{YȰ_Vꀔ6ú|Y2ϰ@_V4PyuS(p6úyYe[\n(*`(*cc1/C}=`6úCp}]Ȥ“E&uX,28,gI8L>.YdRyq@"܋s}@_SdRqNI a:L>0i38<ͤ〜y&u 4}_~3Ϥ@6dd!}_&3 itLC8T !6ݵGXw@xe~LE;5Y FK5A:>/YL{q"dt!} `vav >0 *B@8,ys 9@u!a6=is0Ol: 0`=@6ֹ}Xes$ֹwu]6,b{xI=Es9fCl:0.CkXes`2ֹpXu\6,b{85XesM܃l)b{A6XesMlic{́4XesMl:`/gXesLl:.![i.Cr=栜is9,ua\6,"`E?qٺ+E{n43n-Ce esˢ@lu}esLv\6]es̢@l-w͉Xm9cj+aSWlĘ es(F)hM83փl4L^6I&b/$K]| Ƒa3f$|hrAl&,v0 K]H҅T&CBMyAl4,f0d]G`M"wT ]*1@3$r6V${֖8Nx酰WI͊'= &Tft0s*@&:!%TI.lKEYk6 en `Ɍ;!6٦Zeϒ{@M 6`Mjjf점}ĀKׁo6:SlXPfevM"~)!q695O8a.>T&!T;\&MlLYd^*7u6I MkMBh. a*4tga*7@w6 &)Dg$fϳ=\&IFK$Ψ^ޓPƽ$ $(4祁$< ( FƓbta$j~6 +f_69+6'Bmtlj hcY6I=*SJXMrfc9c $. IRW5 Bo̔g6 P*YT&QJ<`$O)c+6ITfD*(nЅ-j9tU-MJ'HR mzz9mTZSXDҘ\Y!yLd.*:Tm]|j0$2#J630& L IF3ŏ,ifޘI`37)JMzT$b)+m4@I2UfiySau6k a|L/Sa6 a et+P&IL!n]!W(zs$Щ^!Os-&ITh. ZrB/ Zr-Z>I@2i9Z $Y] ae{X(LZ8JR&o+c&:JF[&/R,%6$% Rg#>f3(%g&/pR,%`J›0LIE?nj%tg) @ 5 DAKeQI4љ6s!CT͖ŀRI4xv]fY0cpULL%V#M{UT."%b\3]⢙4k0X ͔a2uTVcTUJsuFoI.k3UlY\nČ KU)cGo_H]BJIvV\ \(ZE˵K5Skj& ֵ\d:x.A܌7xv l.=%ǃMD{~MV_$`SQ!vª?kI(6 K>VhLM9 N²д?]Ҳ(v?]"BcvJlP/KzVc%F+C풧:7]RҸd$lSO"\N'[I63)t>:'QT{dK6D4ÙzPfdo3kB1%mA]*.QY)BMYG0ei˚+.Rg m3lmɻ$l.R \KESC]&/0fdxKYRM櫊jITvMtiۂ6%s29tBa:I&Xe AM%Nfd.oly7 QDwlϬZVNVocDSQ@v /?o(TqŽ2UhL%a4]  4Lv9=oc{.g[ @d{.\ 0d{ .\ 0d.Ñ5J[̻ v^q,^C<^clvI|Hn3 c!eya<"7NرƏy.d3ic̐z0cͬm bl錍hlv0wVlpZlbB2ˤYjeljlJ rlԎ~ll3UPd{ C<(Txvl~}k(y&#^;C 57Gȱv~2Jj>JE(;^;DGA 1!ek')Ęxl(fc{,ś`c{śmb{E>ek'tZlQGksZFhvkaYtb+׎[c[FXv"2ŠZlS\Fhzp渏b{Dqz۫g'#^=@aZl\b{ E~z۫(jl0P0WP7Gz"=NRj`[&=NVjbʛ4=Nhjd#^=Ea2Gz°#^=8_AV=4o!}0@U=$ǀU>$7UO=$wU=$U=cj1cy2FRy *8xvx@V; qӥ.4ck&1ceȱQ2lp XD88fvur ǀ( QjL@1*JL N gOdtZf"V;J0cj)޷7c t 1 h |XE9h Δ;d j'0@c@j0 Acj11Ac j0-\;HvC &V;QN'V;Q)V;Q'V;Ph@Վh$3ƀh$fӈ@ՎfؑDc j2NG!FHHFOnlX;7!ڢ|cg ^,'8vcu“;DUOZPV ء xrbjs ªΑ䃕ՎJjGIĈqs$Ŝqw$vҸ);qi\1_H>vi\^䈙4N GƓ .6ՎQLdz1ol_qܭq[L:i\Z4nvrV̻ *7\U;.S΂7LU;1S 7LU;5nr S g kՎ$3 sՎμ,qX30q^3Dqc3Xqf3lqh34b@ո!1jܰ\M1j]W5vwW;;OwW;8cW;gX;ƫy7ajfqn#3qoS3qq33,qmS3@qjs3v*ָ;kܱXKyza#0=멣e(}*<Q2^h:jv5uT~M2gk(klSGN⯝)tM_;S:,՞dȧN]Sj|䮩>>\SP;c~M4#>烦viO !Qjg䰩sApCA q}=zlεC5ib}v&6 ڑ;m͵#5v4җkiyhӈj'jҡhӈjihӈj'jhӈjgj쌴io5 JFLV;ILKF V;HSLF,V;LSMF V;QcM#Ϊ)&MS(W&4ڨ}7!)FK 1M0j_zʣ' 1MRj}DC֦Z֦j֦)fMv^&ZqD6MI|4ыkhi׎ئ;vNdxvƎeحvv&6[L:mљtJtm3騶jg켶jgYʖ|f,EGځ1XLK[v%iwU;Rv;&L)Υ=jGS9c!gV;"jS8cQmv#oA3ƫްdusi3]FKf,W;mdlL8.o9n>$k3!¼, <5)}J(Κy&}D<>`_ٔ&t>5\wq3xEsa)>ь;m?pFkoh ?/%t6~dHfFу|=0&c%ȑ)@Zih+ FU ܔ&Wf+@S~"/XDAZ6ReDCA+`R}6&~_%oL( *М M iDf@n}ϻ(M97 Qۗ& O7M&sz4NJ>n}[M#(cMlO7 &xg$N9Ot8bgJ馡DeiZ_s66`fXϒ~`ip51@͠$an==ti/ӂ@n8=kl7MU5; tӬK7Fˋ#HMVb Шc΅Mijnc MZErq(XCÆVd._$"4I܁n{{=ix.7{9ih.7mt[X^;MhG)4$4iAn@3 FZ iw&X7t̘gwŌlwp&Ō"^YČMbeEn 3 B7MhH]tX`A7:s@795Nu$Ch*U{-qXn.#FLS/ڢF|ƽ:7 l sdYc4sisesny E˹i,y<<4M8ɟ8  spG4U$@87ńonv𛛆a$Q+9/ݩS|KOaz̍ksK`sӼKXm.{:^*]-?ߚf [s)AZijӠ enEyy'(FP^%Arji$s@wpN4E `@¼*lk4i@4a$!_n:}(u0/7 wؗe1W?hEOD:妉 <0 YnkrӸExj­4jx!AUn|mqRi!h2tddM]P;\M'N1L횬(JARnlE1Nr!V rV/0Va r+1Yb` v Qw`5)bDQn׌H>r&D`;MEZDI`;M;V{rӱ/~r[%rf[w5bG7OnS 5"/aPnאK9yr/M֠Pn|L98rcґ w85#QnxL9rcYoN-(`Qn\opF]5jv ה3 (kV&LpE]S2H;@M*$^v$(7x.7:-rYg&׼N6rFv;0IR(kCܮ!"rӡA`5S$߁QnND]s;ev w@5SPn: J׸HԿܮyE]?E vweDgE# )khFRn:'t\>i = ):Ufr@\A6t)QAv`(P);4x?if8NpqnI$^m)qq8qq@J7- FٲW.`PIZ4F޶@it۫N4s@i>iy"v|\1yj(24:?(Mp:i<t<38:4:(^j;iў2 `=it}YLfFgyg@(N35c' em74<9>C4pN=Ý4:> y\=e: {0<>4:*Yn+M*gؓJSgF|?O@'5h$g5*3g6*Ӯg F'\%sQkLI%\(5gV*SgWJgVJgT*2gS3,J^3(Js4%ۭuann[6-w[CcmQ a:p\Pe p\PE px ɚIsQY3IsMQ%)3Is PY3Is P)3IsO3I[yPkJd*(5t%Ҕg暺*rg暠i3IsMN93JsMMqN\V6x:itk! 'ri!&*rɀ&5&P&5e3)lu 6tؤƱ䤹F椹&褹ƱƱFV/03JsMqX渊@Fl^ \OiR \OiF $W%ڝ״TK;ß4׼MaOf*n%'C4fF'I9Vb:F &F_oW4ׄyRǓ2S`)5UDP)5eZgʣYgxF'ؒ Lr hlѱ7զ44W:4znak+PPk˦(5UFp(5U΀( %@44Xx:40Xu:ã4TWU:4TWR:C42!SkL)5 &"Ig+HgcHgؔ暸DgȔ暣3\JsPi3HJsQ938JĂ=4sCi+9ß4y3I\94׬U9C4׼U9C4בB6s8i"s:i)"s;i$s:i\ݰiIs D6 ~\`E* ~\`6s>i/9Ý4W94׼IߜNPjķUsig;&2.zcBil9zKg&]zK/$@M{=1xzT`뙎 ]g|ɢj뱌iz$;Li14_^Ob<)"zKЦ$1j۩P5S'P 5S_(o06kVXI8T=XN{=~ ^On0yjO{ْQcZ>O{=X2 A}뱒ڦ~뉒qL $OU,?zSSx׃$_¬#S!_Bד!yz:KgZ+\P{=ɻ$pP{=1FsBcy-P{=1}@!2P{=VKP{=TSg醧zi뱆g5j Kg ]2|a끄HW:zaĨGsoقAHzm^O 29AA7zT/G@+WJ76 H%s_0z:a*M " &𤑙îzUKîr uɇAF'#"z BvR ^:|tLz˄1^O6 XfpK<׭ոG#vmKS7XV<#Oa Ε/:zPc*4#]k<9C7OQ ^OkL5fV,u=1Uf^mL';sd5ᇥ: ոxpPfKi{ШVó\SܧDc.'li65)t:Oya.X,56 ^/ Y]nONOMDdu^D/Y]/s)TJ0e R3M+vB|S]P-5c)MCT@Y Q$/Z]/8Bҿ\gti"8IUlii/1SڂW(lU@d(Ud2Ur<UbFUhbPUbZUddUrnUbxUbU|U{1K`*(huʾ*hu=-@hut,º 謮»۱ `VWl(适锂q_LYauB>W@auF-Xnw/pX]u/bu5޽iՠw{j{qŝ> TVWs AEOƼ"ߋj仸 wq7:HF lVW*]O۞X]p{du5<^nBdu5=Y n)PVWۥpY] oOfu50*y@gu<~[:kdY*zjuT-Z]R/!Br VWV:̢hBqr V3zWi UԲgu>ײhu>ٲBhu>ܲiuNoYa n3Wŗc_V@_V`B`VBS`V'`VhNe[zW@ȗ#dVHsdVhdVeVˋ2+VWl5@[^0j˿l5ZV<Ӫ@,5`ZB=F=Ҫ5Z>݄>Ҫvt0 YU!:k@֪ÒVtP ogԪ_U>_܁]U#[k`tD՝ߪ@gBk(Z@B'#}f _MkdV/GϪ<5Y:,Ŏج!߻2rV@Zj,Ь9bPACf * 쀡5Y50Y5X:puQ vBatLʁtVjhC Ԣ5Xs vtXr~b,nuYO LVB1h LVB2h pfL9Z M:ZA PoX}CV0ҧV@|Mb?b?bNCZ _7` Ew+p|܀ 6Bŗ *PEg+P|JH} M/dV_EW+8} ܞ7(謾wାWq@e=Y}hO,V_!ӮWv4zI?r9i]1_Ya~Iu!zRg>%JHkCNvWzIQl V/(5V/ߗ"1U/Qs)ax^%{ZoJ H6.()ʋ S}UM5 U=5zz ͞O@^"(~PM5'S}%cJS@zIf/X^m2Y$zjRKX=%jza0RDUc9H[30ko^Y"S`.*F)I=+@T/IS\ K47KCA=.%#azIzxp=S-^B S/ Te5~I KP2(3y<%hpDrcb(^j&ހzI9ƷK%LK0 2[nL$?DS/(J39Dgl M (Zsf%577x^24K`0DS/L/7,Lc<4_-/?%ZI4 I$az $IVz夯̔=Q/D֨xK~ oI2*0DU^X\E$TƆESΒ7D敖 ^,26K>^`^!ᓤB ̴CJ2yylDJZ,IwSy-K"$$Ii,UH2z>9H0#-~XA|L ^x)*Ar c2hBG $pj $j Y85*$ !T?@6ju~ ZgPCk 4*?F&H$pJ>Z~c  ˍ)A}I7$ K IxF@ 8qz\A>i2˃ 2%3'ļ<"$;|ZrgIxC>KOG!QD7uٖls"nh Gnj.g0 gOwl8 [ڀdV %qsvjZE38@ gg gg(~ c"{dYhT&fً3x38 fp<"q rqf3ȨX6 5f./d^AlFJvAʘftX1xBE,_3vmft#׌/'ہkF'#lFIvѡ_dft"Um崹S43En3:Lڌ3S6 j; 3Ezf3:Lڌ8#RvpgDbn3:LCیcv8с_ft2ftu֌bsvH3v!d|fbћ&5jFf;4.eW֥h*5Q!dT3:|LQiFY)|M3Nft8r`\!jF% N3:iҌV;(Ga6pp[3$5eT&k35^tgF9%JpfKRAΌH4q]mG"H"Q$M${2S`4/QO@Q"/IZ4 Yx)lьk8w/(0+>3J|"IA֛;$V.gF )gF}pj%ݐj&n85_̌m8%ܐ7@Q e#pj+}tqH(_9(";T g^YjRFzϡ%qj# -1Sc9%-rPD,‡Z|bK!K"i{ebQsQ)b9:DdNQCC`S%pjNGgF:SG""QTr*tH5ё4TjkA3J>"ؒ%8S74$RU,Q\"tyE <՘EX|JMdƻi; (GDD3ʡ0vьW4(YS7rfk9\fIMDASfFIN&.c/(*03d.2 I\DE3. oFp3D.2UF3d.2Q4#̸{C%ilь_SXQ,@((fF\o.摤F>^6$9 cs9!ܐD1@)_Maӽ^~7~5bkj [%$!]nNi u桹Ŝ<43Z*C <4+zPC!.䐑NIqWn#E^(!($A}2%'3I$ū)3I$L$y$b$b: zA=3Ix$$>>S 4$H2'#c(04AL˱ArSoH&aL1^0-rf3ULyM:2+\(@3SY hIFќ/3@쏜33LS|,)I=$j&95@Lr̹r,Iˋ5$b;$jb7f(3I'ز$8[E?*n'$ٟS$sy`@2~$u$2 'uc`O(IAh)I妋L#4QIRDрd&M0u"3Iay= >fKCI$Y$H⛁$ 3I4˩^zOb&*"^EP!xeM3ԛl7ˊ`CD:`Y,y]9' Ο17@ɡ`CE:Z,yaD+%]~S/39߯O>o}};ϟ֯ᵭsO?ۇ߶G6^7v?ׯo_/~5oeg?ykȱvyg׷7YK<x_>}?{y^vcwy;K,o_X3go[YߵX뼖_;kETfmOlr僕^p?<_|Z~|~B>y>5 :.{?Rn~|ο~xjYyl/vυOӯ_?}?xXt'޺ͼi'qOً()ˤѨ-zUhnOw/~19?,Ι5瑟混fʢ>YmlKeپy-'/pt̏y+[-_4ϟϙ~tx̏}|~ #je!?~(ZpxY~ߖװ=_^|4|~+?=?t< :+Ǯ} <>=yu_wu8_O9 zs|0_Ҏk|/o^-Yķ,~VGa~~{gȂW-}o2/i 'k HxF/q2B{><> ~6*gIy.o[yyd󼯺̟W*-o?];|̓[GTa_a~]A?]g 1<矎E?mWn?5/~Էcq?-~2.ЯVϬwϛó?s'?[ FC|/Gc?;u<"Si4aKe?6cήn=㸒B|bv߾$oOo0JJ %((}uǛdd<{pc_Q(}o|"B|~~;e|O1#y56/?n+riC/~q~cKuygıJ#gߟH5< {>`/vAxow[ < B <B'xF߿F?z}%Bg?JW'oaOp/1* Դm'W6!-rZz>>m~6J8χ[|?χm,o ߀7|ޖeʙ.ϧm+VY 0 ] C礷u燋s̻uGx~8'^.Cfa9'^1r~D6<5rN# ?g^,njsDP1-*ys^}DxZY߬Ã"g Ȗ?<*ros-dGhy-5~xJ䜈߬S"hUcfݱwNg s5;fsR̮; fvݱF蜑Ofmu-L9̮;X9ofqsBlQsF9sLo1sRho1sl?9s~$Yry# CGBΡwFc!{Eƒ!,zndș 6<r #詯s!@-}]P'CciJSca,w"8x>#:Vuɪ.⪞U鱉߶6<6zrqw 8@ѱfLo?m,X4%xib#diY;/OI'ImON}LO'ۙC&Q9}1"(L% 磨c͞1S}GcO?lXD}nbQ}>([#|yj֪5?}ub3([}_nXg u՚8>$V=obŪ_?.Ut%tKKOf %t[:kA-Zz"--DX\KId7ۅj>U~ᤙkP[MZ[?ۧbSQPhMS<PuM[IPMWДj`0.PXMq`.3dv{]oՅ:nnuA(!Y~yZ b.Zފ ڏu-{"ֹgĊ^C~??C;\XC~??@ϣKG {̤uiBh$jaj(7,Ԅ2byjBx> 揵u6*t@a"f9tTVŚҸiKi{eZ"1A4YF2d0HbK-E9dW^|JE:*sh*em6`@31˴TwY6?yCXV|S2AeC*4bi:0Y&:u؍.f ^2AeԃY/@a2AVcY>{'RO&?x9!3f 4ΘeCfSB٨TdCBԭcj`PuآBeԝci eQM,%YC$c . rc*P0V-YΞ͔'Ձt2aBbQv2kB)y2p"SV1ȉL{9,'l,'4v؏YP(e? ̣Ps@fL{! /84dAJkʸLi,n\T(*(^T(#+rL(#+#LEu#DѸlK{ݮOv׽Ŭay| +kG]2'V b( /b DA?A= e=lcԜ"VamJM WiSh::Xz22aoq-3\|!D_cξ^*i˚J] uUScէ?2?8|ʊ{~QN-߆Xy Ir9|~5~mxgGp6%Rw>#0OScYfScYƬSUqSSY">Mvq*??$>/b %8%07KEMe='2 1&zЄYXlP P(@f xY%fiwʼj؋dlb2 D1@ ,D LDMP-m+2HFb=,F@f )e#;מw_$ cZ)p2MI\"T%5E@cJ\YZLWDA+)yQ rLx?}z C2Q_@?"ۢw Ӝbt?`$[[9AP7ehbE@B%"Vc5}=2*m=2JXP8LE_ 3QB}` dT*4=?Zs/y~!>?Ou!K'r+O'ǜj+Sg27+3sjag^߀W@?ƫVL;Z oyŸf1<2$jH<ةKrȟE''fW0r]]h2yJvqIᘾG-2 Oؙ KKXٲZ9dχ\n?=Ka(zϏY;rϾN,~\zgj駷ʙʿ-,}q5,]X\-+V֭W~ 6mWvW~:?lroGWJt,?ar~Pv+:_ݗwRe}5ERe*XHuΗ5Re|Yqolo\G腧7.7. 7. 7.cKOo\x|-:>&,Z|⏻^x|YްFso~zU0^laǮWYSzKrQ/CrQX;\;\N.e2N-UN-U2N-5uZx.ei02Th⯅!,j]wU*#OVƯ5Dr(߶i Rq hT.7鳳+tNTSM`^T-ճ. Ӗ.כiMARƭ,.jZza1e15N17|\ewR R\o^Tr*כrwRӜ9^Nw3INpvewRӪ9NjM,n_v'e;/rqݗIMs y's}ٝ24r/R:ewRȼ9ʾN*`(k'_IjOv'~赓T.0{;Z#GT,~'rϡdwR9&N w=uu';ɺ2~hIr y_Nyt\6YwR :&NʕC KNendy3t\6YwR:.;.(]w2Edݡ9 duz|Ut\6Yw(jwbEdݡ9)zuZ|QtM Bѡ6YweΏ0$:|htmmc:~ۿp i>A8V5u2>5aST.npca|>.04G\14|JSCnir#pŘ~LUebm㱺 n8X|;?8.Psڼү*\?6f}]1oWy^F}fE8T/aAغb֗ޥkt/}Z1[ TZm.o73EMcۆ ??G1*ʹsen[scT7W"'׷ [%okqoEz0/dT:F1?BI3{0/$TA1ivw~b'>|33=NfAMwR_>ك|f:1id~by|'7u0`(;/`Qwz_>؃4\zM1]=Nx\Uw_>t\¯\1߉|_brLbRiX|'=NN~*;/;<|eg>n: ;  wނwwtم; ;6=V5XAN̷N̷AP̷AP̷jebU ==(V5ؓ==XV4أ==PV7ر==HV: *[+o=o՞D|\`)[`@)[D1J;D1 *=1j=V0K=V@K=VPK=ȉVIaK=N$2d ~bnnOM,~yro=M洛/30NZOx);eo?ۛvhN:4`Nu);o7đ bno&o7ĔbnoCRO?'f6 dL<}Gx;o5&q'tM^; !qt\49z$;HkrI=M^8;ѧ -qtM^p;ͧCkrǮR9?ӗYE85?M<CqOu&1xkȟ6{2JiU/XgPArZΪL/UFYJvgU3*kU\vFeV"3* ն*3 u*םMyW:3*%qU{#DeJEr]"]*A*};! wUJ(;2ajW1 Ԟ(fq!z]ՓJAq!za),N3XOB,i Ii(I8g=B'&r"zn"!B'!'Ar"zt&!®'a4KU-+- x*6ƐÆfcO71Pil66a\ø1`b1$(6q16[u fccߨ6cǾf]ccdY o 9"940Fio?!~ 8 nor$[c D__>f3%}q_~'Okw1 xߦ.0^aZ'cv)b(Ýr8,(Ýܣwһo2 p.yQ;ݗGv_dXsH&/9 ˰((ÝKP }H}\1) n> Ȱ'L "yt'2(z9*' Ý w%/9 p"(DzwکK4wǝ(<Ýp wśK4io*/9 pY] wśK4܉o>/9 հ0 wȅjS_2x0]o?`Q#P#ud|bGFaGDBL##M2 M2]G'ddKeK`Li+ ši|eK2reKeK/㥿CBן6l(lJPPr*p*uYZeZ1ì¬qȕQȕ:2 _GXFXر,(,K1e 2 2\[F[ (pWeNɀXP/o[-wN`Q;fל@,w&9?Y± BMNNO*Z\lfr~PT8'p' ..8=Yvʟ;A:& ݣtH G%[@,T84dڶG} ON*m|%O@N&j@M*D5VK*I/j蒅j*77ꀖ, KG+/7,T{(BKVP% U~)Yw+㵓X VLI69V1$Ywd[T!dޯ0J*/;j,TEV9XYq`+}VBfUB{P%*}ji\zf3KŭTLyQ@*d]rlăʘ]o%U==dRҽ9f)aR^e0zR/YܫJb&U.0K zlUJ- z_RϤ$f)iRmYTbI*TTV;/YTTVRФz:TcK5Ddjb $*.C]*Tܵx.uLZ@2&UwuN塤I]Rr_ReVU/*s*c\jT9%Ueu>:褀I%Y"&dunTJ8-uL*`b.GT*Մ uLIu\T%UqQ:EJTåx%aKs,EK*¢] "eK*rS'nIXErIX.n=0vS3,v5YT[\#Krq+3/-w0KǺ2.UK9 \KOKIʯh7Վ *=T"4ţ4!ƒJTbE;:T6(IjS4jv76L`b-UH1ʷh0Rˤ",CϔRˤ,ORʤ ,?@*TUEyiR TV{ء*KMRZ*ʣ̑RB*AQnedKjx2IETW&#tKj\nQ9P~1~*-(L*JI%3}fss'dRLN,I~)vHObo'_KKX ۗZ_R~ۉ2~i?4%2~i7 K]~E9~1A/}_~M(}1A ,Pɜ9 ~f?dRɜY]L;34T2g6LM'̙13ӘC,\+&/3 efi:bxY9K%sa eaJ,̅*&|2,̅EiYXԬbYXԠ9K%saQ faQJ,̅E*&EoƈEoҀEoЈEoDEorE *T2W5 jV5 feQJ,̕E,&bxYY9K%se2 ee ^V/dR\YbxYY.& *T2W/ ^V/ eeoFY*T2gdn,^PɜxA%sJyArJƢ4Al5/ub4AlW6/yD"4Am,[Gm,.Am,Fm,.Am,Em,t%sJHL8B%sJY*;#T2gd,P@; AsrG,0"SoET'QOg!RyD]8|OӕjYP7]ȡ/yEӕOɸbRyCkqAt%(.TltKW*6XlcAt}D> TRBjSg:FR]r *+U%t^C{At)l/((\"wAt:G+U1ҕ:OTP89e6ܔJeO :JWՄBJՀPkH*7)Tx@utOCo\P]~G*o\P](v̀ k pz@ Btv\.(UB<BHQn : - k(Yp\.j.l۫ kYp= ʦkVp= jkUp= kpAt pAto[Op(u4f*Z 3(`2Hߌ)(FÁ= kp= ʠk(p\.Hqs 6qܫ= k/4-((qss6P5Ԑ8{DPE9\P]CpAetm!M jk@q= kAq= k(Cq\.(š.š..ġ.(ݠ0Jk{7~U55Է8ѵNzFqtmƓQ]ۻe)8,鼠*&CPGȨuBFEt 4.1t ZY,+X>Kaht7Ci:0?Ķmخb LiJks_7;¶lt,gXǟ)t 906w>i?bʄ*w\#SݤOYbv,_fm7d\fmA3#h(@VQ|![Eѽ0EVQt޴* ?#]$gl{@Vq.5bb9* 43?_UrAWQ,*aTS"G;WDz]}4yEGsj^uR&Q^ eZ^科IyEGsJ^uR o]d"飵L+⹞?D"!!\ ">7L2ns!(+Sl>G/←l>ǮLB2msHSl>9nsL톨l<' 1|I;nshvCp6Nb b4s#F1 vEmp 5|aEqp u|~aa(+ CIK`*aE|`BaD3 % Vv_<*%P&Xr},*PX}R9_rj}oU>ܗ^nJ}/UMa)eW)r_zja,R(.U FR)Js2aͫ c8_n^\z*X)N8ZZ ]*ԫ c8_^l*X*Wjq**X-Z^:*%XMZz뽹*XZrR*XM4Zf˼*XTW)o|J0x3UJ›)R$%T}"ap9=~*aO_T8FAO_TDW)*U@Uꅡ@?}aOn_f8ENm_lJ\Ol_J\Ok_JW)!JUStRA 5I뫔8~ U)  8L` E'꫔ C u*uP?0{Wuo*UPD^F8M88EnUfqͽJ08nUJsXһW)"u7*UP^L*]ܫ zwsR/ U2{a(qܫTC㲛{a(qܫCC^td~7*P&PW).wC$6IͽIdjR$Upv7&ɒnl$SJwv7&yPл7ɑbo 8KxHq:&ّP9M#4s`GBaC6ɍ_Mr#qIm E<4$Ejx>iI$8\liI$T8YI$8XI$8\ZnlI(qf$/|*IB$8~iT!XO :ʽ/9PQɌj LlKM %;~V Iq1-IP*[$n[]2%vV%xGE5 ;N_5 5^vΒI(qFoq¨ 7JJ$㠦LpPS &&LMp =9HlKdJx۷R$nن$ovy Y&s}lCd ɽ|lCd ɽtl$ %w  a'϶A!Lن .}!w;^ن{]h)[3h([gMHln˹mȡl^pPP%6NpoKe6$NM9 -܋2y Iy:0{/ې, |/ې'½uuBd 7m)-f]f dHpv%v%]vuBd m-fhGdBN7Hl:Hl:Hl@;'[knsʎn~#65Aȟl^L;r'[m3ĎV߄!pf&)- bGd ~(ҟT;$[uڑ'­o/I#O^JGd 77؎ {o-`;r#[vFpѶ#C^mGd GێD{-~CP~흄E^m{'a;TLv$(nRG4^3rGd ~9-Rߝ;%[e;wJp|wHlFܑ)n/ݹ#K[^sGd ]'Q$HpeEd 7]fDdGpeBDjd ˬBI9Hl!KKG%3HB2H$[l Ye?%MzJ$<)َTɒ UT#!4k$FBjVRIPU]CvIPxQ*Iʴ'7J%'BV (ZZH:A$BTU&ɄP:9@!PuN%BUCN!QN"Run$)Bd'ɋУ] #t觲W$E( $'BOg0~(ZKw e?dfKI~T2$BOR^n>t%:z0Jt*/5#H&N CR!n0?$BNuN C2!cs>?$ BYPTo~H"Ҡ[!8?$BPwd4$D(oXGji<燤C(C=!&Lcc@QS?ng& u*H<^??$7BKf=KyI!Yjzҡ*-! k*<9IPNSyI!Yizؒw+F(l" jzүAN:%9BY-(5_`IPVSy4Ci<ɊP<;ƓE3d[ TNe IVAMYn%3BL=THfRu`XrQY2a-&Pb*ƳD(]+Ic^T{I#մ[v%'B)΋GɊPVZ["nj敬MMC9e?/~eꐤ?/ne%@/n1(zcI#ޥQ&,űJ( J;Jڣ4J(zM(J!$.%aB PKC%eJCMݒ) Y-a+@MXKAP +%4On!Ji*77JM'*&]*/?Iޭ =ɖP{'9=$DMI'ټܢ )IPhR(Td`XѓŴB\5x%BS.1(n_dO(p\J'i%M0`H#F +i/ 6Si#ImO_l}Y$ݾ93~N4SIoZ(}UXO~os:yIBGRXf߰IBBKy&9ӧyImƅIe3FK16c$P@0;6c P84LJ͌1@l،A@Cd3FA^/+%g?Eˊ} OѰb#mFSvensFSSsؿ0!Έ{ heK[|N[} ([ "(>̂@I1/- )  B*S " FGȧ5`qؾ`liAS-AK^D}ڗ=?=Z2=/\f'eEl_el_ OEq j+5}yTFuzUYI+V^eb rJŜ*HW1jr+p%xV ^:K4u0XTXYT$Aڒ>2{^Sʦz:YT<ʭ kCţDņ畊PbC*Eq(!yA5F/0-N PJ|l TaA7)6?]`3ߧg [0x2۫.`l_`aqaЭپ4ˎ穤\߂fס#yȘ[S>-#yȸWƎ1?+D?%v>Oܜtl.kGi^^;Bg]`~`m#yѶ',n+<|`qѲP/'nUjYvC*1z(ΓHTey){ɲY1K'(n.~Dz]?{ NOrnnʲ-7Bt˩vS3 7.~.Ʋ2fӋ[OUX'Vxܲ׻T e[V/:3 Hn^%Df .;?j_@]vz~C[S1]G4fVz ]vryy:x5Nz`]v{-KM.]v-yIA76O\eIWtO eJ \vrj`qRW:N*҂\vT9$ n T%n]r  7$nPt[vT;pNwIDM`[vTRdENR):0ҽʥ<.P-;Y e'7#iP n-Nj>̲ӭnYv7y e':275b;U`}iYwiizeH}aCGҾF8ܒ",x(%gP=.?- ?r8&EJ/*M m~Bu/ O]Kc'LXYż<0~Y%>T [KCbj{0}>f0|>.o`WM^5 Bn( rU+"K\?boZ7N*|O)o1,SP~Q6/Ss<fGe2N𣆲yy/dYjQ{~dSq@Y8ʣX~r(Qe@`Z(I)U[0c%dKշ|g%"?ky>TӃ^ž<蕕oe]Bž +\L¥I&~-u BKOl`W=«N{ -jozrl; W-*tvGГ`Apb^fp+[(0hl0*5 v4 %pl % p?k^ W>|y@%pl^QtGDi^ް T[u RK EMn Y~W)1x )@X6ZGAsE֧8&}\qe)c~pX@["љ"./vl[kn~8/CE9 HsP ?JZ% S92+]X#.T?.օ7ԭx_ffu+^B=KpTBzbxU T/؅x Q ¿Wiu$AC%㪨Q jWEJP/YVb3V jLg% (NS١UB3kC!WBeȨ~_jD%T9;JPP*]Bղ.lYNj?82}=܅[~TBгk/%u Ҳ[iA]BÈ^T]%*[Bme2? ʫe2)2+!]BeLJ.6[K5Jy ٲiL>alQ ʲe܄¼lX 71\0BCKXT»sv\xY9=OUn|%;E%K0wh JXP-*]B*K(u]rW\p{Bt_UPP̬¹2s_iRpPg2K }]&I^B/?G })RPp̐s_ R(PrN"+a`B9] u(L(2J/ܗ~ %t%s/ܗJ{ L* /H1LPΣBt_z%֗EJ0X^KUsuuTE%U%K7JXmNCV,el{")З~R{3poXH~Oj'(1Ta6QܚÕWYኖ % P ׳ΐ3| t%ƁpIZ A9.sT"N }sax&,QLK*{ KTaXTSW5j}J֧4H.0qf@kѢ DޫD6C{FXWnE ϻ{M$X*MY?QS>O3:FjJ{OyY{ucY9|ˉ)ub}ʌR>9 ֥ ":|+)+;|#QS;| +aM`ݖ6 ~[np>9 gY' :@=menw+7g?k0nY&̇'ԝS#?<3ʸÓΩ njC&ZW o^F _:fP߇F (>Ԭ0Oe0ZXCB2(̯(<,\k]!hەjc(Sl 0Qx÷ " ljkզ(<ܓ&ZvsHbn!tܪTv !#U'>W:Eon .zEpN|-VWH:Foǐ#[uގ! wܪUz҄]k ‸kUᡵjaCJO">wcDfGzKL#ԗȢ[~Kxs+#Nxx1tBp'G Q<舑J-|1~Bs*-G!~ֈ*A*4W|1B#S(xx|1BFQGPQg)e<>WJ ^OD\ōℬml˵ y[~zBZm LE [nHE A{0O$okfj7m=!H>zBbgz)?]0!G q;(KZ9vB✒yszV?chP1,ưi]gxy3rf */?=J+?{wFS<[׌4y5͈y e y z̈wZI%g< gsxJe\ "ټDׂ`leAzq6 i8[4 sHIPw҂8l_:iAӴn6/ ҩJ6W@Yl%~:;oύm y[يD}>fOUC0<^y|ɂ}&Uyذk[48oEJ(q:A8.y)~6Ok՝{**xZDSٗӺ jdcۗy}zTE 68E AN šІ(b_hCS0ؗ^Tؗ~崦]mouZ.>TP5JmzJ60DSYP>"r\N!D3A`_x D;X;U ҩ.1IAEY#Ӻ 'ݼZ@~q -O=߈J`nyM}<~vXIϑE*.Z{GO`E6(HEwfQdFa-RQ448[0~6R5hvRဈ"ZJ4۫Aӽ\=N%zTt)1GΧ|K'.n C`\Xz k$h㣸`$Х~v)C$IEw>f21#A1W $݌TQSD%5ݮ-XRRP ~P21,%p@b_"TIMbXIM?B%5)>%x{p ȒBQb)JjZʖ_AԴU$ Ȥ_ūD(F8jRӒW1A@AI-'G0hͥo< Ox]'k%AJubVI7 *O/;ʅ/J_ʩĒ%<)8T.t ϋS-t ӏYN+.21q0[v[LxxA()(wP& P&T` Qi1򊗚N@ctsdvQOuy Sjr{AӺPzvRrt1RSqfpJբntJUv`JW =x&x]NnA4TlQ $ZWO:>RVKHIiZ/ P9;aP`.՜T ,tj4Q MqR-xټ47Z極4tQ6ύ jZ _jlZD Hi(&` lAN>G5OCi*[p( ճ*C0b_NF*a4sa^`Q43\:V8}AN*$6|%4yRExf@.ryR2fW'\;Tyɓy/`?TLy U~Zeޭ =@(O{@"gIh'U9ܢ A# i;Ȕ'S^vR bʩDgsӿzG᢫:hǸ(R IvF0P2墚@òeByR, $[ܐ*bI=&V!VԀyh@O|*V'OoSnn(O*:|tЁByR1*@<V 4ʓoNvxG.`*>%耡O ?? fJPZi}8RKSɽpQ'qgҷ)1<|vs$|5QJ%=UO.NJK9' H~>8X@nNsNSѰ6XW* =M:~5ZZt~i5OO^I5׉F4*? CK8Ϋ M~h9)߾ers C%ݜ:!?xBPU7VI*V#->*V|J w{5!CEԀPP?| \Q3>iŪxIO?{}>TerDË mC - B's;.b(>PzA~BIËΫtUN:Z E뾝^(PGvzaB!Cuz!BCvzAB ㎒At$I UiG6P.X}Ψ|zZQ%AmK˃3&DŽ*y=2&H`NOtv%U'!cG'l^::zHi(rz4 .El_@NOnټD"P bdpz*ȕK$驦V6-fUbm"@kx٥t(qe`3͍b vC- i4W|isup˺;7XG7zsyEM+e74.Pfd3P"[3kq( (fub_Z@@b_@@`?ؗvG227@G= 鴪zG-\ b! Ҡb @yyB-% T.ei]<@+Eun;,%<@ 4k0K=!(jF2~Sde<("i4Poꁦ i0Gӏl4@Ӳuiu`(AqdiZ@Ql^Z@^yip&U;IT8[&AS2Me|N4 `~L޵U(dS6WM<B!>B4~O@+)p\){8@0B“  4  O48Tt 1\$,V M8T 0j:.̢c!A* Os8T HxáJ?̌,Gx6uB$<2 u\ j̭4|Uh: uX i̫4|]Up!UxP×UATa _dR R5|9HuRTy :W0BYA-TOT,TߗꀆTߗ  p:?HDvy U,SH*VK`*V$TgRŚw@T!U,lH4.4<#5 b?I @CXQRȐ*bR*rR0*J5T| Rr*c8 b?b `CX$0!UT*S,H)k R~@T Ug8Hegr>%71(hHH7HE=$AAD@AD@f/r2mټ  #yiq$(䟭U#WGl^8ԇ~pAYd&d X_C:dtZw2U'AI%u #U8K)yZ 2R}d T*;)zn$ #tδ4VNsn 2RtQ #/4k#i6 @SEY#i.!,d9: !O2 CF~BMž b~(sۖt9R|Tk"H_`F&H@F&ʓLdN,2QZߚF62ϐӥ*~]֥OLt.DEY#>Ӻ U`#uZvAӯӸ ȑX50|hLq22 ld І62v!qQp;0 N#\K~#Rg5dD]6[@T^;H6R=THUOcz O}8r |87j { 1=je?퐗0#*<П# 5$4 ,OfP" Up O8W(Hxġ?GC3% 4 #,qxiP~(+2 $GqxjJ$< (Hx šAQH~*v(p" BBFaFBÁP`#qFFB BBzFGBCF!GBCeFFBÁPp#QM`#N@#>7}^$;T{T$; i5 (BzQS0"aHQP 0(lH(x(j6$;~]fQ!DB%FM(wnQ1J^0fBCU= *{tS`2}[Œ2}WR}Wnu#sP9G#3.yy3)A40\CV3G#3uGf I = J72S*&a9iLRټ4IJtK>asrYs:#pfkNs? ۷n֟$AN@#n64A4b|ʨB2D颬4qZ0C2tD3 AyOF#@9\ H~eI2OtI3 RN C2ϛbAO?S}it;]50D}'j12u32SUl^Lsx9}#p9(}#x2]ټP#3OTM@"gDPu<#";`6l4gDXD9@D47J=4ݝrZ,:tYc]%,T.h8sY讋ll>i@,Iт#`%X12&E`L E!5 hBFdNs(Э O\t)A Vd{ Nk;Yמ%A,tVO nd;O e# 4`\J< Y(j?觌i~OygoY4.zdR dG=`GZk= u,Y;ۗ(:uq6Wq5lOwZK!X BW٥t*\U0$ -jhrdP*ؑ[}U# dG \`F9 m#2۫FDC6Wsȑ.I} ^# f`K"Y}Qx_U#}6?w$<\T% 3( 38'$DIxy[y4d$0Ix2$Yo͛& 8̊f$<*'Xp$AYMBGL.buu^fr$f&aGb MBcN<4 EI(Ȁ%3 JIpԀ'&AJ致*!7H%+4 \:4$lIxt- x9~i$<9@}OBP℈Ox)i`Ԝ%4Ix20O$T!ZBg 4 BgRIБ9 : 8P]f Fc $HxTv خ$ef$.QdӫKЉ4>xOuwZ?Ṳp_)6wZq dJ֟'$]`JVZ>K)Y tZd p:d 6d V6d' k %k3d g3&P%+8}`p'a"&$k6ggLHݭ9 5G8Y'l6/~d2W`Y'#kzdZ6/cF%yr$[2br&ayi'#[L0 7Gpyxe8 'p#[@`Ō@#[,1]ƺ4!ҧFjoD8{ZF =lt+i]>lt nV*"fb` 66A8 #an$ YP_gFB kub$f_gaFB z|ԡ*˽FPݥRg#u֮l7R&e_"m6R&-:זJYgLcM{:w/ bpqHMUםS="5\/Nee>9yj{.Rsz X8u-TjGXSZuSM1dG(0 ;T[٫B9jz\Dj'gR`Cj*/3Snn9\ܠ'RSQ* !@Ev EjNI?Tʻ \Tޫ W"5WiuLtgwHMH^nQ fViJҔcHM4*K E&*$R u5lAYW|HMEvRsҽ&@QKe#RӍ͍u`"5(^e HyHP:HMWi "5՛R^jr$ PC 1u[|8"̃B֯HS++HMy'Ej*7uEFj7TczߕK fViYTaV Sޡ4TIF`Tʳnf'!5-Nί\HͿfCtCjA, ,zQ(o@QTА*QNQ4RTʥ~ ,\٪oDHM姴toO`@Vi`!5UxxU71TJpHk7ʥCj*^uPm6dQԟB*^]]PdjOO yGKlTɸ;Q&a(0$l2neHQ"R4Fe +h*k=\AlgWѲQq4ݦf}T GzYiZ'%h윋P'Y O65J` de9c{F&TZF  dl6Cki֩PrGMR6Z[N%:l>0r(j}J`ГX4 z0SCQ4jvzJ6VleWf3Vvw:h4Jei~9y0Nt)w ۼO-;-9Gi;^9Is0P#|nSP.;H6.exGqQaTwp1}ӀvZf܁Bt@n 2~tǍ1 % o 1ݤ3nW5DNRXNwKw ۻfFմؙqJMj`N &0'r K<(n\Jk%r0YvYKz͌sl.4޿a`Ѝ03A7r|愇1 JȋZmkճa1]bBQwՋq Oϻ;YzVJ\wr>R9N`7i_b^jGwXPBU7"Z#"\7%bCMJ$!l*Q& &jfPuz" U(Wn%c7 /c_K=6W^e^%{/BPasVp6|[*VXyV܆orpN:- k9_p e"Aor*$ -x뜩PW]BŞnlUҏ*H+.1e hC届BP 6T%9†jd'5̅ᛎPy,U@691. brs gC:am?xBMչ*Nvx mCM] $*XU|J jC?UᛋʀP`6|wQ3Pq+ZSƳGk6s`5CWD*VuS'ǰj77ZC.n=0R+fkwlů&o[O[n|mKG`7KM PEc7ApJv3P8T#˄rvXڡġ 8]@E(0#EM.Bp0i4?W\AjC0BP},'pF.x8WN-Ρā`8T]{]\tMQQӼ<ȄDus-2yti]f <*qZiB:jֹ&$>i+gY yMK'ۙU-0O<@6ؓ(/ y}L7}el~8 LcO'2.%oɼ?vf=Ǽ?&Ǽ]>]K]*:M6n }[1OEM=GrztEurTl0CaxFb.Ut!9H- b0.ݸ 1. )/ƹKD8O[Ӈ PpAxS3- SbeAX i_:fA\iws֔{楽ռm!yQtQ-a@+To>Ko7=p|X#V6<Mb_W+›pQ TU{ i*O uB(⡌4&%^A6ߦXlo#?>V-[T?u0pKzd ZA!tQ9"@!Q. Bu½[nUJxZ!\yͶ B^ Tarj(R/gVC购T "9Hu•I®…IgR41T!9HEŕCNحPAqP0!%m ԐP1 D׍_*\J BվObz ~/Yod T)9ofAAmv𓏐 \z# ̀:2ESnn@h ʋS'UrnrWN"@@.h {5!ipj>p-gfxf:eGk?VG!c>Vp R~Pmz+/V et~4(*/ƱhBCs+@\A}4qWPM(uxf}фz_XA}4\y~ Ž [THj^c҄"c@PaPűuLv>$(nRhDv$nDChS(~9A͡@?f@фhX}4Dڡ6=P!MC+ \l rfFhBQrhv+.Ȏ=J̀hBVZhGF[cpzR^M=tcoٯL`P..{&фbq:>oiu+ps1=*1gHu+`=eЋ ;Z9GXy GyiźxsA _Cfn[;H}. j!G8uWp@<*.?#e趒:&9KK $a%N4sQٯ :اj;5%OeA }QQ$sop\Wf1yP?) {ZX=s(|Q}ЉI8?foss#źt ~~sN9AڸtsCu""p(ƪ4o)ƥ ۟ z Ui҄Vb҄GZb҄3?7@+Mx:%o[i ||͊́oWp/@4_:`is 4T_is . Kl(&|@W7XS.& K|_nBćxtl%>Gc,QWxl%Vc-$6[bE8߄i5p  OMXM-7aYbi6ŨmĪlRۄ`u Lm%Ve3& K,˦@M P+2 } HHL(Nn%TYӏ,Zڥ }IA~$u* 95KN riA P/OB fnx Bs3.R]ƪ-8 e@-j Ogi ( }a*Kv&Kv\6XBqH B ڭ]q\ sh]8彛&v+cu_$&36 0 ߭Zj? 0 I+ca5601MXn@!У˯~eb+T5i?osa>6`3M%%FH{~xYn.w< *6` lhڛ$~l4M&^?5x(`jZ.O楇Tךꥥ٥X#`S6,`R]RmlcJBPU@.-U-MT^ͻ`.q]8P?vsl]P?{o%T/w[P?;s%?؅} =va_B!Ï]PPCan$c2#|er .KxVa. Rb*|| 8x%w NYʥi]KKgӺ4<ΰui;DydKK`-R ZZ:dKHY8yPKKqz ;:@'ș9^/N叀miJyW> Oy@\>AE'kw-,zQNjQQF,ݓypa*XAt`%VAtTl Zarj†ټtIm$[S`fQ P6yir`*gN@T:*Cg )=L|q)mnƣ1ң%iC^v` gxrS.Г6ՀPSŨ&mTgg%|hPqC}0t&%|$|qQ1CN5 HOs?!ip)IKUKG:Je^# BosFAos$C6WϋTrzVl@1oAb p$}P?H>z*^M&驐C6WmL"t,fܱ@DmrI Ez*R.X .^.X+Қ􁄅 郊I*I~  Bټ >PiGD >*AAy]>Ps~+ƥ)JZƥ H>Ru jU "}@o"}08jWe%Sj驞d$6*[@PSV=Oa@=ۻS|Ne Ak>-􃂻'Tߺ c"3P$K >v BW٥D0.j AJ8!,K~qV-+UQ_07PT>Q/w$wp'WSJe[݂{# s$2>jރ~e~ Aen^L:9E po}ʜ"EӭOE;ƽuA/pFs7"_fJw A?,Oi5;e6W B5Ьyi0 5ZW v4 ](jJD9讁2TtAJeBrЯ|o)U5+~t?Y _*eKtA%Μj_LT89T ^(e`J9{ʘ*T9iAh 9ZzA7S#F *pJ A:IF{lЌS`TކoG9 u?c 51/l0'HQN?Ns 3CPW;. CP\;L@ҟr3_?2?27,c:ټ'*Yf܄ 2*FK V`51P8(!@貹m8խ7<;s)ǠyGT HYUcgo;})z(QH`yfV| {>O}1=y퓢|[N(61'1Xh b\6/b[6/cP|6/bp{6/m8uM/`'1X_i4 b[6WMЦd: uEk.ƀtN}iB?p1Ҵ|6b )}# .f%g`-F8U,#o1RArc:A .ziz!NO3+!-#?r|;!-HԳ WZPc>y1_ nAճOJ` ڶ޽+a.h[-pth}J!1HE%*0(àOIB*l}LjJx+.HR}좂95 X A%K޲.KʘvR!b~]Pu a.Nō`!.qQqBO5~RB\P5`㓧J *(n\ʀ3.CTޙ 00q*" +>]X54aYnQY'`O4G9d~ Qm&TfUf>eOngUg.:0ftTݜ Ng^epSZ D vk lCwP\0fh6:s)e1 z1Wh .^FcpE2Dtt`P :00>>bCO7VYi]z 0TPKc_9 Z9Vեt78Vy_ΊU5Fyu)(n2~e1o@ Rj{θPDZ~Y37q+a cMe5h1:tvS:1Ѣ)Ac{ŬOM][ҝ`=&V>c}Lt\LjMg1[2+P ]k9iLt a}]a3QZGW(cMA3:uR禱4T)qHd:V֧PRY/F&Zs.&LxgJ ԅ1 IcPe2H&Z1^(S`PDP2Ѣ)a d'㢢C%E% -/a\r4hxn2ъq\@'ݙ@WU O&3ֺ#Lwk YU`P_Q&z2߽.tT:e nk3#Rwo ?U`Tf Z̀TfA>%TgTO&:7<7węWVWWWWWWfJYaJi{_j~|2j)j]oknÅnN`BBriV#C+i3!r LpE5R!jWhMhMZ ʨ,w3B-*p0 ݴ`\JYhzոftPBƥ,4h\g8&+1 ȖF8P~);Λ`O]4@+N؇ϫz}Ԫ1*hF؟,Q3e5P tH5Hs.%^G .^,M[(qɭ[HRInGJ%QIn㤚 [*Vy u < ,HRuC T2[u (٘s%\Ze~bըb}iO1UqgAtTM2;|p 0˝ .>DUYC .@cIޏB1]}xtLb>ZRZ qUPtqUPtj2] N,}#bRSPAt4bG@qARRDtT)nkqr3p2Uv*%L Fu!Z5UD&P WWU٩.Ad(r"^eWT "H_e7կ=>EW.qԂW>724_PA WV {3{0U3 2t33 4P !pZ):&M:Y_I@,23 "f}]&&!d/3/ _}]c,#|L~ud #hLEc/2#a}]&d!,{ 䬾t!LKg !e/=Y)M}ٹBH@kNBPź1Ti/;Q)S}yBHHiJjd" ZSYpDId-lFuj2 Mee7"{F*u;( \e*}V*+,A\L쁨@Tְv5i6,-SJY)A e ]3"5XkB QVrT*4J0 WW]@ur-l!5x~[gK=AD)5P5\c(4g#h}yT@&+?&ۗ~aҏbGP,Y2簒x5|^Е\ʥLPY+Y"/"wVMk IVJ+ z + @IVW9Grb_΁zd _Z;/[-`S(J{ק>5qIs&;4.M nd ߞi B4P-F6@ nB RJm֪G"-pr$I#HqFH[&#d8i$=q>)v{$vI#H}|Av_QF(H۳*p$nZc4Dێmi%$ۮ$RVKFhHD[0$~aAI"m4‘Dfx#ImFH@[4$O6~R|~.nNz$PS#>ԷQ .@#4WLl t"]z r#H 'gGi(k $ݜ ݺax1(ur#BQ0F6"S(Fx@eJ((F&$(F/AF?Mp- _.b/"TvRHNFR$:b/"T*"Tv*J8JsczUGǧ"dU?U٭P# աs#U H @u@#zCAU֟iԓ #agF跰1QX՟i d?+VX$Ю:<iN<H^diաAH]-rWY"}vux) P4+Ҁ 4@F@$ Kf4#n<֡2 >:ҀI#=-R\6QSDf92<^d Q_D,F$T&Qث Xd *aٸ ׏Y,g\dv*a Zd8wVd %*ـ٨v5D6>dKȖ IqPl}ꯔ/(ZK#ž<萍><ؐż<А*{g }JvS@C6ZARl.J (KT#"A?"2ʡtBqlTaPtԀ hfn&c U ~S}7@C6ZNR%lH99xFG ;!]+vD6zr(aFd{#tFބ8Shp";U`Ő+UT//XwY;]{cP>'4JdDv]nD>e^è0SťwΖ&G @=\((S֥ؗ'Dh/N>?"{H6搑7VDG8+Q"op7VEGB7R=MEE'Ld}/CH4&Gx:CW*K$-Kٷ}C[je->>zlH蟟-3d-ؐ>@?}!UH: 6jjA铧THOח֧3lb @7=ߜ5d0ӫ >4?)HE@aJ(?%qPR-@>&?u T#D݂yCL`DH:¢DH>(-0 |"};8J Vt_Gi{8y"#)-Xm}r;E>Јz]QHD<҂Ze r4K zEmH̖DK,- cLH@Pe IOKCT/ôG@ꥠHHJmyHJmyHO㳏'vG@i Gp#=MX8"VF#>p6rQe8͏/#} Ǵh46=4Q1L_E@iH2mzuh-KHOs5 /0#}.ˬ $^"$^$Pdz]ŒL/b$ez0#.Ӌ ^`#X˯ ^ +($j]P@W낊 aYB`@ eW낊М` b)ˮօ ^z.H tt% .DFP27vɱCVč&nd}P̜)gaAj'$ʁNȝQE9Dn-{蛦ẅ́Y"f7Hf 4TzjʡCFG%? ̻{Fz-lg~dاۜ}iO8Җ3S*y(Έ9z$~]GNI패D4-اZOOz/twH/?=ثB $>ׂȧܼ>^0膍lOjS ֠GVC#,ʡtق1@~Pl hr(@W`)'mz9AY-(xUXitjj-zX׻ċ'6#o%.:>iNy)7^)#oh+Ml %r ]k9vEޖQџ`IrAuGϰo]M{a4)SKc,P~H<.emtUlUcnt!=ll;xOUU#?%VOyZD>e. QOA } O9b_"mCӽžDچȧ[}%>]&i5W>n7>j~z!j7}H@P! 7w.UDr'jm-)DQe!-h0RQ"[^ H#Xž #26TVK/Xײ1RђSFT 粿bdPiN@gm;Fj Ī/9N@ڧl;aFj['Ki`+kj$k;Fk t]d$Џ# @BZ%_;!E(RTF$P6NΑzB@$^;!CmjwhɫY@L.Ibi*\Yi2C WL &P'CHVt)u葦i…̷n,ꑮih8){=/*Ði(Zs!Sӄ+%ꑣih>-{gn4 -=4 (ҽH44ATW!r(m@籅LvtG _&: #AЄrPO2!?-24M:Y)nhk643mn96̷fM7tnGCӴt{r(@~b 7ӆߢ:Y#9ӆC=iwY˴-*-r}48DNg3rds#X REӭlLlES NHôTXLRTLlRɶyќ֥iW%#[bbR.mA$z]`ϐN}H9:#[YtګG֥ 6WKJQ) 68'z\opiiHvȴyQciG,eqJ`\=2,-]dȯGz =R,m =2,?e`^ 6W67 D.@uikP@\MO@\3dP:Z#.P~IGgš7R']mr^=(]l2^='3*ա4k).h$zP@ȤzP:Z:avZz: Kȝtڌ΢ ȟt%!dO:Z^.pOs@WK?!b10 y**dN:Vm` 'J(Ht y.oOkBi.u0%]n~o)e|g)qz_)5vh\n)e@=U$՟jd6jʻ?b{m!՟nToPWtusWtU;%9uK9e4} )~톫vOWSnN;u}^i߾Wڷj ?;T)ᬮPEӾMÐFӾT'N_Ei*=OGwg?B?;V=EIo-}{=Ӿݳsuٶob{}}6)~C:]\]ivmvt>aڭwwCs{.6vGGW/v/Rjqa7}.mUk?w}qӾۈJ~zI~=oTvHk11sw=oZ h{>-zoۺ{HK}zZnߦui{>PZd[=-ZlRWS^~!PVjԴ"Oۛ;׍*i)յ;wu}ƶoZtӶYZWjogiPku5o?VOK~m%\;ش)V\uOӾ>145A[Wbr{5ںW;aYsZUW;^Mku٦5;pO{5쮦miM/`MmoACg]6fiMЯv}65AӚ=jRWӘweƚմ&w5 f;.&CIkKZrOb7 ΈsZM5A;4Қ{w[\k iMеho7nӚrj<\5A\i~S7׾iM}iM0֓ݴ&BjvpiMvӚ}jS;Xm&!Q~KkSai/a/ojuϖڮ&~~3W;.s5ʶdZ7+5A?3 u- GۧHkyݶةi-6~&xtw&/`Mۖ5.JӚ`xڵܜCɴ&67G5X9 Ʃ}[iM>L?Ov{5AsZ`- j}d}o&+F\Қ`^Mcf{5ͩjWSL&x44ګj]Қ9r\SKR`S<'NsspwѮ@&QUWXٴjZTv-XTv/XXok5õ$ 4]muںvH[ ]hIkno_ӳ/Қw% ɮiY%'x6RlA`~ڧHk3̒c=6 VwxgٹzA1 f^Řyjq&y;6ӚuѲ"~m^cIkvmKbMYnAEZ' wU:g懮sOξ痴&ي*&]Mk`qZ=qfw}cgKZ~ͰÚ`p5i~Vwڸ;Kk5 Ogki&C̝=FjZ 5OPy= Ʃ}96c]Қm[mp3=ӚL喴&3̿Owg+VjXӚ֩d"O`39kZ]~+; 1i+^ӚwY5 wbe ״&&^Ӛ`Xlcw;v]{sf5h95 ƮS״&h٦5׸:!bskZ䮦9kZy4vXӚkmfzŚUkV =[YFX65AN]MsjoPEj3&ZnŚa(]al6Mkݳxu5oZ' /iw5ͩbBliM0m_T%'laMkq4N65?=m5hWbŚ`p}!5{&p\klWMw5z7 Ӛ]m.hEkyaviZnE`_+́ ~ҹ_%6 N z]ìouXo̭*<ĺKmѶ$j]˭؊AԴ&kj[Q;ϚCg8kZ F_Ӛ`]5A=]5AFwZͺo7ΖCmf&&P;)]ٵƆ֒ Yl`Fj_Üj[Z;liMbiolXv5AmƘomF7 3}6 YZsMȽ1!OubNk ř3|VwnCiMU}Ӛ`|ؼ綀lvlF{5j[CҚVgYnt泡vo- ,=ŌyǎfoX/- FW)$O`6׷&]M`W*k{yGlS>+;`MP5详ƾfw{{O0 umcM0Rw&&}DmU#vHkkI_~ԾKo~Qg, m kg~7oڹDxɶ~g\~ܝ;vj:Xm&hݶNZn7 ioGͿ;o5̋Ծh F`zlVYAZl1vwU\;,l&x﫮ukmo"N+)NkU&W&jJݥ}m1[oGV7'ps x͓X*%XF %ѹ{H~Ѿ&->wį{oh_7_"vdU'ojBL^:2+{;sU^^]ELVJ*bZUij{U̵x=񎕣_zC!:Jn*֩6*0 \hAy0ζ,s{ ¶,m ]C4;U{b.DοՂm/_C罯bN/h_Øm-/捪[ۑ ~omKՂ}[~QU'* WX}mҾ7eMؾ5]V}}݈O/*ڷ}}mvB9!}gY^}ޔ5]WiM0<{}\"kɩ,}eM>5GU&hl^ l5A>5]+WL{0jwP;Xݜ*kێmmȚ{Ѿv]Rh_&v0ȻmksՎu3 ؋lΰR\AmgEKjhmifojMk&ۿƚ`_5xu|;;[pMm6|IctD`} }jtه]m7iM0>5me\ k_ fћ&6G;؋87f.E' F}EiZwi~4*um'|Ckq0$Nxg $ثFl5ðk+n&Xf8[jʽ>;l+EnuF'hEq;ʾٌl rmmΎkST6cBhvb3 }gUhBm)RL.o Zj&;۾ bMPq<δ-roe/ʹXvle/3 jzg5۾؋tҜڻþ-X \Ś`lϧ5{mkkW~e%ڴ&h6]li g- ZjO};LOw 6ͩ:Dخ[v7<-nKk&Ele^Ħq {ima/@ZElwQ}~!8f`k-?S ͢fZ,fѶE"-to`t r\ hGޔ5eS]cZy^=韛kw5VD؎:1B}m^Drmjr 2ӡvkyK::;YyÚ`w+Ƶ]kt3T"Қ޵5Az7 P;XUhY< m&GiM۱aM_3<-t8mKk/`t` \]viM~*cWs57 u\f]3HivUܥ5{BV: :6Vф-I\]Z uvuաv۪\D׻&77 c8 R chuWӚvsIZ4f yVV: \þ6UiXsDaNlsjR{Kk~iqYm] {)]hԾ{Jp͈` =슩x)x~؋ƻQR~_&L6ԃ'Xlow0i`ۃ'mGUrͶ=֩^=[ZZõmcK1J8~I'mM>8֩k_ Opm1qܣvж1Y;K;tWrwr}` 6;ދf2{ *,c/î{hQ;XN> uvJ٦1V =;xZ_gn״0v҃1 tkvஊ^mu kuv雡}+ִn#OPYGӚm\㼃ll!}3bM0_s K};[a&{RnvWځ[chw *UΓ=}] VwtcsSŚ!#xjqwar lL'pF> fg)~]`Ěݝm-'6vF鵍Xv7͈AkW#'X{yWo'p ܈ځ1` ]3/6ޱ88#"_hYvq¾ŒIx>2 O`xge-%>'lepD[]f]MXT='h螐'Fwg.SeW,+Orށe&F-=r>kas z:vvw8+E ;6:ibM뾇&9"g*Γ3ׄnL` b߁́L,vN,.RU0aOYN Z%1\D [˟\ֵ;<=C}g\5Ac޾c' &>`Y=th3؋-N؋86þ??`߁=}\L΄}t"7;SZմ|wm5c& jC` kҝ&l~še&9i' 5hU!MVړmWW]; O`W lvš2'heB`p3jNf¾ծ5& *o5Ww8rNnšrư`-gGírr.3 9_H+G|iM0N6Jf f˙rVr|iK/` {;Zf0]sX,<մ&{w]3;haf-g viNsJ,k혱&l.hƚ`=؇ͪX8krwga&VSܾÎ h?~YxK` w= O`WsZ48f:wu~^hټѼ=ԣ_ = O8[Dڪsj`TݼJn۶:jNkjOzl &h*?#O/pV}wо.=c/ܸ6lW3"N;kFe"Mwe/k'pv5D_F j,k_ֹ$K@tKUawKz8R8()25|WϬiݘv*mLuVǬGu`+n`[s>g`Z15Dz>{i "`xUFB#fsLd} i֍ ETNcxOfr{(Wxzwrm_3Y75d4*7&xYh;Yt ] :ä;tUwbz9߃cho-kmȟL&X =~u0AYܳ'PZeg4'H4[=]b_`Yk* &Jd;t;)Gd;0No'н;EߨN`iO)Q [@-˞nz 2;{ l#qvb]o= 7&xFVfgt;0WRWUOb_SV jφ>[i'l%J^\Į13mEށ}$PI\v&H߉Rwp\Z{ 9t&F̙Aƌ;QrDsWmD0?SㅃYo>~Ϭ{~_=:ai zQ~}?)MOASnm ^ ~ 8Yc3a.|_r=?oܜp OL~Y͢{uYF>e L gЬԺ-9Xu kaY'TGO`ֽ&-34ԯ1Zر=&55&6fe~{`>{~?[hfX8nkX-N0A=4ԯ<;{FV&~S7"NfG[(3bטbY]ϡI`jt;j?ܚ50DjO5R%i&mZÜ66xla1{D6 lL}'0 ǰm1v^1lvLbVwr'XvZv`Y((nԥv1hԄOOlF $F85{eVUCV+"庯"k=Z@_aըCllpT=rmL~'x445/~Wo/Ѭ&{mi>~ ?&xUwf viOp)*^ r>{L3Pҡ1ᅟ-~+6g ?AWDz^Y4I[3[Zgd'8]ŅfQMfw*>[ .YY ̣EY˙5ІUn҂chlfQYT=oYmgdYdESX fsϬ>EWO5~Ckc|}fV E d`/mc\"oQ`41z@ƋzZ ;qX~Op+_ ^,"&1T_O_Yu󲞡smlhBOВYu ư>Uۍ'?+Ӟ%WCuIU~*y1{<;к?+ݞ8JFפeVjpYsZ>[E,35^kWgCU2Y7 vx;мˬC4K.`u) .2ͷ ?LQWX Nmy%oL=Y >: 4l=Cw?CIo^53P5?gYgOpS[cMiψFp ]jQ?6&(:8SڿmLy'ݬ{<LסsF.[Yt F>A>Af󻒮Tb3+5̢; Ew@5V8YW Egɕ_Ω}ɬuK;goLz?+~L?kl]͢dg&Y]Q`v90z@N0)57+. iϲ& V7Ora=Gw'7aZYrt }s'x/]QYۍY=u :M_0Aד˞jk"1N1 0 msF Z. 'ɍ 6&(Y7G,a֨+#&vxF b.bg9K.; [k?AK8/fLt]p W*{ފHO-kE<2O0Vt'u:꜡YJ?+Vdlvl$1wL[I [p O[v#ӞEE<]htg^E$/^EgWg~ֽ&Z@X+0xYV t>ϊo{Ϻq543{M>+_4gg%SϬEoOP_}fU\ "+r'/lc%?+ݗxuʑY#^hƆaoBǰ*j1louDxQPuQԓgTgGY'HUq;_ڥZihuYM|{W s'(mFށyM=.W`+*"3Nke- ko("g%ޭ;`Zfh諏Wo6/46s oL}&u 2/4+';l!"` Op^oaāOp}Ɔ7~Y;V}'&vy;gpucPYE̺Ϭk,*Y9lS7~3[ψw^yOlLۣ yO͑5yw웟\O{o<~T<'ho:g`Y lcx.kZԷ~`b;`^^ZgΠ^Q7U|Z{ &XŬ|ނch;~r۳{m'hSnY_nGVS'˞S7>?٘z?~,CZgiO`wR4 fg^bU3.Op '^~|o{뜑wmc5gaڿ͇boHp<1T= i0۟垥An\ekOp;,|K$v7ˇ\rY "I.VYղwc2ml9}Z[8o5,1'j )y|G lVc0E4|LSx>6`ZսpCVj~,9{, ފkRK>KVOÞCyo ^H/+w[ jH|,ʕ mcEo ªB;Z-0Ћ;æBZ`Oյ\ZfQO#+o#7"WPoh+ygxcxjBX#/طYc3/ "/| ,1:cP&zF-jʽ՞1,#֯ _.hW_j p)xE41\B-G,Kl,R%uceLpO;0Rȥ͢ld~@-_Ş/j3. ?&0K j0*{~8 F>X/~3(6&!/ݍ:mL.߬zCH9 o"5@^OfO*{uW'r1{vYg)SFBҺm{M.l=8艓6&==kS`եE&E. ^D@=ߦVr՞E/ kŚOp6b ^}HU1~,urEl?XJ"NEsfekUBB~͊u_O=0dh#Qk;|lN Yށ`e'r["})0lfnV| -߽~c=ۘ+bnL*n?YEzKEJDށy7馉oΘ_a&| #ua}3֯%3(b~uMYd,4c5W!~Cw X՞E[c/E_ͣJAoس_;8;&ml>nw^U "s_`= ʫ?A~E_ET_Wc>7x1gYjϒ(X՞i, L\Ĥ1/;_;,]#`=6 w6 }h}hϊްgiWwX:;<;+Z@/^O/0zʾ\dϢݭZؾQ~Տ1uuW= _ 1}hOk|m|*`Z|p /9~p -bﶞQkVo__p aV=HҰ>p=_fhX Q+Ys;& LlѕJYlsVjlUGwAQ‡൝ ?Aw 7{\D>M_"*Z(~;xi>斍;kF $]%zRCϷ zO`7't''PĔ'践R?ARs>;Pǟ\zs(d u#@7p ;Pә6Nei3~V03Qt;x4&wzEٿwm\xʢ ,V}Sg؁䞙H 3F's@Yxʾ`LYmgƞ$t m'}dv 6ҵNށόav1$v`5ΐ,CH%yƙe=OLl2Esh]o30V2 <>:;'PR gbZzyu3 3d0| _`)G@r?9b0AUwT0VL0qWrLp~fe4''l v9?YO&8@൞mQBASdShY0 LP;. KC{wް y> y[CLgJށE cy&|->T_, N ~WX?) ײ1Aok?ޒ ~c8w[KkϢÙ٭PVt"ՏX;8_;շR"Q}%j -ȟÞE'ұ'Z N6^_/w.ϺϬgZ4Y%v6bx5wJށe,\z:Ub"*c1׈Y[F> ۬3TS\a*9rQ+Y5bʚJNz׍ Jܳ>VY 'vjjLm|m| k1JށV YggR@Iu(#'0^$[HU >P_˾ CgGnm_.Y7&3"ZƆ&zF*OS +SQfݘYzTF N?(aTgYi' ,\gm@>1T*oL`< &m%཭rb3ݞe ?~ ݽU`b;tgj(êǰ[Ќ@Vj#c~[S؁*PJقcms6Ԋ6|h;%?vY h5t bF]ĪF]ĪzU1mC`X춵ԩjESG#mٳ96>Y7溓/+=~|XĻmv[l`mhY&:"bSzZegEg>|48+Ywk'8=ڰ,0+Ӭ2=|7Yi#WWTp m;84jB@O6;z18o{X lidcޏ̊CQUuucuk٨ǰY44bZh+k LmLPJϊΩ_rpwa=c~m }T4&~bfL7Mُ Lpje׽E`Z ;uRO挺/Zlh]Y_7~79ٿ7񖎶u{~w/ѝN.RJ@oI=rtEQ=0Ɏ`_'X M׬T?w =8zM\D]= 6{"&|W1Wo=~]Q=0F;yjnut Fg{9ۘ@c~u=&'0݃:ڍ-je'ݾGgp uPJn풋j4zX؃cJތS;K؁H{JV܉<ި{#W*v>:ͺe`**L;=KЛ{}Hw0iGF=8e =1=O`Y_8X;~O`}z6zh+ӷoLP,bl_!Cp Aꭣ#Ӟel&]}m\DKWhɿ;wsT,^@1{%{R j%_ʫa߼qZԭp\Q+ف>P$6XAށ 0RY=jm|k<6(|1̺0gckmc=!Gh_6bxۧx!0Aw' ޠV7Rو͞E[Q@ 1<>k}fRLO5, l=7j(h'?+Wc#4s bM}bRԈ7l~;0d>E.u=9Fh tNf^2|[fe ⇁@"1T=LEcl ;ۿE $]% >e4,wYTl a1e e_,,w(b,rӞ~p?:ZGg| ˘hB@V0/{Nju2/e o>e 4^ň>ARʤVѤVf%^ &hfh?g%y۳AO?lgg;fEVRlhh4unLN'P4M4jgCou5HgxacSc> " 38Ep f}>x2p ǰW{eRl?Cg)=L`z3rwVl;0ƌHˬh96 hl-p WI6schz&á 3̍ Mj ilF dڿu]%fnujiF3\~wp'g@#?AV?OI ~X7቎ۄOp\>A}ی\DY"ʈy>ށ o[=9 >ڿ=5eOXU3W.bSقO5Ћ=uf{HBR6&(&/1ѯ{EeІjٍ }Xӂcx].ښz/\E ]p -?v1EE } fѭBkDwrP?t15>[@jcs"ec-ryq>6Kށ}p ;;xԣ;,EAS&_`M(}o` G26#Q|W}LAwAiF`Z}\Ī,E Lc8BpL퇱̦red_:V!jmҧv'Ȋ^u\UuC~ww X5]X k>e=X u(gmLP.Ӯ eHZ+jY 藈/h >5~Vju5.7gg]G@Z,B{M:ZN^I:~z6&cM] Gg>3Fϊ᭫Lz :6~ Qbe{]W[OPJ-jW*APc?+7黀Op&kw_UoXֽ>6Yi; ygP̪ulhuo،}C"-"Zľ,.W jӞY43ۘ6;p ۣhMQ/V b{~5‘mάnֈއvN:;P/Ϻm_ -/~f+ ?ք]ã黀Opn1A6 ^eV. yؘk'(8ԝպ-uGrw~V8Y7&ܺ1 &ϊ6e@S'(glZ]e=kR\'\'mLK͢bE^rO=sXxm{~?];'~oߕ˴3k9fc-{V\'EGf=uEOf{vY3k(=˞_Y0SObi C[ j->uY?׭Vrm;P:hu=MOb5YVlt zձ O PUN}p '~ZOvXXS0^oOPD?KP`K LL(gwKg\3z;8vw:C3j ?Z]Q?}ocy٬ΐlW\6&;"ഞuL aG|lc]J~9$J3{ ;΅ >}س h.8~);مSz'h.z5ًåBUeVY,38g3[5ΥШ'asjև&?EÚmm/N}+OG&HK[T$:[[=/:!lU'x.gI ?ACʞeo;59BJcM(]OP-jMG Mk\SW ~/[[~rrڅ#ko?D+[c ?,^ m_`UYÏ| >G&XvE8Ԯ&ł 躈</b 4ge(:g1:ԙ$vmlF]8ߊzka 'Xv^'Z 6&v֨j֍ ~V4u#`[;wE4+8{O=NܺnaϒJ-Ta;0LВmXE7cY#C- tC[ \ښ=Tr7yP*!v|fo547|Z{UC;PoꝹ5 &٬cYށaì9j[Nt z0n4[qJ&xl&e} WN=7|CwOV+O{6gF@/_d k!.w~'8kaϯݰoj%_nTYeS}W7y3+yI_ZgznIcRž!m-'86J6 jѵ'fJ ?\Oycx[:+4J@w ?HO//~=3lL'8էp'8KV7ϟ#ѾAׯ]%@ֽ&ah-7Z};P'8?þg]=ϬK~VTE667z{z^< = y$uFϺ~tl^=UԺC:ze#F/FV];] :v'Ь1|n7+5dlC_gZ ^o~ڈ\ ggщTO_4D ${p @Y^?*w~{`Ͼ_t gow&ȧHGKOt|B@O'Y_ޱEt/y]m;v5=rϺ1e\h)P.ʃfќ,=1Tm|(~qYPՏwp?YێRwpڞf%K0yY㋎a9ͺxA//yG% k %h%(%@~V8N>PL?khzE| -hϟMd3T &8C; &H|z||y|TbQhB'VQ8DSg'j%ۚcp =7BG~=q޿za o(m"L0N/{Chb-oj6 ,ub;(OPO{vԓ%veǰ۳{~fV ^FI{}#wcx+|15m|z^nLPTygC]nwFlFK b/yuY/?AS4'zB`Go/~s\/~ٳE6 +[W GQŋ|W/|&^rdkZщ ?w>Ozx1x%bOJRu|Z:.O=ֳ~SRYR>Jh-&r5g垥^0ײ1A?+:p > ?o38>/),{urg}f=H S`a֌5OPmCHN̯h(Yj0YY{&~wL=l=ENvͭ@ fs_x>IQ;x9ch͐KVr."|5aRoG"I)"_Ee}5|Y#~`_Eɬh=.?8M$xS:pMt/B0YQϬ[}+|;Л"6&e-="6_ށ ?>j MU|hkEןxFϾ5Zѣ{ע'=d_ (4ѿ,> c?nk|p G>loh_k?bbnzz7&xN/54v;'=٘7b] ^  b/|:bj% v#0V_Y~QW*@+L>EdE |c >} CYg5tOpicQSQ>,EE3֯>˞ŏٜ#`( V1|| Tr}ec8lU;v'.7f4 L`+\NSrNBXo~UmסEC]g9a2֛DOpy#Qϖe0s藕;zdFmu-:eQ%Cg+Sߒ;84k+fBܳtQ+1Kt2CAl6 ͌jV06]>r943|zvg0 &z@Rծ{i=#3Yȥ,': ?+:Z Ϳb~L.bRvޘ1zڜEd=2|G\C=2E"Ҍ`f?e;R|,cXk7rir=dee H9˟eٝVI/ _L`~wz% |~Z6&( g#|)ˠ MX40>HOjYObK%b+uuOkR_P٘h]q[;O YX ܳ\l'O`9xPڬ]t 5 Sa_:RD$ZSϡB.sؿ5mk>AxK!vV؁E 52( @(rOBLuv%1,h;kƝسh'z+Q+9[WAymc'Կ^<ԻX7&(}'}'ˬp\X^GO೎ORw$w>7l{mWr"+|Og7J{@nRՍ~ZxyQ'8dF.2A||X z-N\4 nVE ?AW,W,Y0>i' }}Chm|)so1w2aE|l̢"Sh5a/=֬5"@硑w`7FY Y2g@Q+ڏɬ¨W'˚T\ ?bVo-+֛OA7hUßuIӕh1Ե"vYaW9 ?6 |4tk|G; ?{60A^3k6VX#v`zۍ5-m6nz4I~ >|gZ38Dlml$rk!xm& aCQv mcE LX.bm?VY ?TK#Po~#RS#Q\F黀OlUml ?[c&,nw|FAVtde6~K} mcjo3r[r֯Yd9 1g{è>oف\Į&zknmXa$ LPUWQ`i#Z"fk/Cp(6=@@눭N Nq{FF:[ُAY4_S4- K_Y,5N.{vFi;|o:~̺q{w'v*gjE3C`@zh {3KNOth׈XOpz p\ f̥|d1Wө;o;Ovb;S? ^=:|S?THOl W{ n7\oc LvCǰLéNrKzjCZz`o=5)S lerzr,%>8S|_di:Y)=446h;Sf:EhU{`SqYT [=j %:nEbm#0+${[QK]p oz: 9L1L~ڦx;x[;&v`yI}EޗT y_ҳ&t;ATT1wUDV|z EE{,sw;x[7<cݍnm=|.:p\9 Edu͋2 1* d:d aZ;s~OPOkR8^1;к?+~fѣ^$F'[̺T;qFGgɛo~D $[}U>D.>fqZ hn6g T`'xmw`171AL1A1a>uX Y=1F[1 v44w?wwX ľkac~ bC=a{4e0AL`A. 0#0K.͢cX{*b ^%mcRGz?AÞ{̓ .w&? Ic`8l$y F'G"z % vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/OTHER/0000755000175000017500000000000006766133751017637 5ustar mohuramohuravflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/OTHER/BIG5.TXT.gz0000644000175000017500000022606006463471011021337 0ustar mohuramohura r4BIG5.TXT[]6} lv$cIT$*cFxTHS&%*Θ8nn4@ǿfzŚ?ArӁ-aaև]~&rXl{[*VTN[H?3=2vϤ”h5f(ƌ͓QƲ{6qvæ ]PRZԝZ*(]r"|21mlѹY嚷Չ.ud}TZ̆BFBFYFqy(&bp<\V7HծidTkG϶Frq{Y(=aVVqgj3ٯ-1$ǫXt= #ޱp*aуx # Z7isdT隨묬n9b d ߔ~PulH[[N =pչ2^ljMڣu/bCڷ£gj5XbsVN*eC&Bڒ(4e//Ae+}?MTS Fw{,NxKM^iڐUsc(ELo᥃_zv8d4JD)3y:e?kl3Gg?j ¾ĎeYE/Tj8H'SYQf̑ط@daI2\vthޜ WV9HIٻ"T&& Y84;9 {~D 9u+y@hɵWQ{"o>- (;+xڏta? \_c3d-ǏP GfکbH v_\i1U91ҢR Vle"#~@^ĒHws>6V U*f^ 7rdV%@ >c/;IIl F>'Y!jIY?vt}tM&iʫ<&DlLi;啕. :ʑPy(ܱRɾ}9Ϻe%BXS[I6_<6gfTII{7<=tN{cFI@!,Bq/$D(0L8mh44Bjc,bњ RS@#"c_ZAKt!&I)0}`qkXd U n3N| |Ϡ\B#c;u@|"`'fI(EiFS$=JLl, cR)Fr-(Xni.y . '.5 pd̀4V *_ o"l;Jb:Aӟ-2|nSQ_nM~ 'V0:7=3h@n7F 7Us Χ}d/1 ;T􀢋ˆ!J}=ġ_IE :AQlEUے{Az~q pX ա2X,wsZ{ %!lK%$X ˷!!tQBIuZ|rYO\h7D !۹CgE8! 3S{uu0-yqUxϳ?vvg|of} C3/Qfi6wdNBD꨿glLePD}U(~OQS!1ʅ.j lۄX,e#ޜD/SXαfMT}_ISJ:J$pCzN(T4AzLdd0 .c('dB_ʳTN)=260{'=O}sF| @=esǼ$m_/P;NY2OJN A"{ɝXf0(VObsir2xZR]B`kc Vp"&8P!1êہvJXW[ըt@ Rj_!_.1#P7'VM5:1iوi W]]U5KTc -{>=F=6qbq`Ҏ eb5C@6J  pA/TcQ%cW3ȰX\mwۻ"'2vq崋gHl=ұ(a}j*Ĵ1/T?.vQJl6Qt9CWJc3 W~AȄpXf4PZ1^$XdEm=u#hxKkumφKc Dg6&0#1"zDqu$z>W!xM/j՝AC#>Fr=Ǵn#tzȩkvRtfO9OH=U[iST~멺mauL~٨&"T6V?6e8 LJv Nce#5(\48 )58 '586ֵ@tAgjR:|yMI#s@4Q7JXgpTyn]QnT 9,]RWt~dќӦclO[/:O45BSmA:%hw'uiw2S !Ժ7@ ueUU yՋ,;ߴ {" :L$W1x.zޏp>M^p07HUSqp~|U4.'3V.\oB+ô"HC*N$VUVӢuCY<EE}׆4){5(nj'.҆v;rLK+R'}犖p.M[ݔF]bv޲ Iv_u^Ao9&mB{oTLLpgy&mp{Z$W6}Fk@˚%c5M@ᘧ_OoP389Ca q.0u#@KHBw_"_RSmL<}.0Upk͙D˖ v9:!N8lrkUV>DVŽU;$o#{`564긇Wꪘ5uKb][p;7nc|@ " ~7wC>sC>Cܐܐ |pnȇ@>._e4@6unQr5r ' i[pT<DfNlD  ،j&=3T ,b상adVTaD}a4|a$|aV|`tiXs 114 " @p"z- Bb DDd@! @ bB<vɱ;6W l ,7  lZYڐPC! Z&́d~r/X5YJ*9T׸ xOΣ1rmpq#~2'^?ȿӂ{d"{^?;E^?ȤDQȢO6RY;m+O vrd'e0'C rd(?Y rd*?Q rd+gr-9H?'νVl/A'Nj߿߻r_}Mz)0/?noN?T }Tnk@CqK7 iWi})` )`)`T Xkv>vL ֺ]\:H3QR/ƀ~?&~͢m0nۑx5|A: 6*|!k}eϴoHmC}Ŭd߷CJd@jڙHmm?:} }K f%6z1kCw}] c5e=$6T綯_ξrm~} @!AwչUKgQS/nk6)kXZjeͿ:}~7k˚5=f/*k~+k*eWk˚k5u v v=[߆~ vdC]DᲽqfΙe#;g3+0S0.^gEt|BunmW_Z`YldAmw_g_QwZ=5,:;pTa"aٚ߹6~ԢvV<޶#w_ߎ$vtҸv::s9~X?q޷1&~c}fNƖtd;Smv+[~YMhmgo3_PLy>;-`=-w1=r]o8ޗrx_jx_.񾮬RN2q8ޗKޥsS*;62n Max) 끛0=pSIhRo0~ ғ!}]w+[iUi/wH),끛{G{~cHfI\-nբѯxWp/%I}E7/+ 0n fQx_=}=ƀ~Nx_~gz x_oLBx_YQ,}=z:tk#;UIG6ޭ8L:x~ܮ[TnW΢rJ+dەm{_eѯ5Wd:CE旅<4+9C'%}Mݘ@޶{<;@EC![i~ ͣ_$/< v< vy@Fŧ&I(irSor{_}d;{T A1=xM;`얹GXbR7`8G[_*=([Ĺt%Υ'oW_JJ R"GT~V~#ƪRɤi8r 'N5qDwr +6Я:r@z@~5nѯ &l#CE~w?kA>)1l+_WJFomk(AVGd JƾRmZ Vf%v6&RҨeW*ʼJUJEq+y{_{x{_ۉm{_bb95%KV}Ӛm+14?M5lfNimVbzΕث}mw w^rSr7+Wz2}e_}nWz} m+js:3vUW^b0TglxļT֎w+`{_SL2RRYE:W1 rȃ2 msDMǃA[#y ⭈<$۫@ٴ~me_>x_$ϥho!5Mu@k^К e#69"5˓f%侦}yr_V%v}GZI6r.侖侖 /r_Tr_Kڅךkf6X}-or_Ky(c1(C/}m{v6^'\+}zu{__a{_R=cU.nc؃`JWW*}QT5h> !^Pje7ݶ"*=aJO}Sz wFå߸QpU5ͤdԨyhըy@cVQpE@#-2}KoT_I*/4*QqP=-ac@~ fWL @oץ8v*kv*Ny}5r_/%}:l侬m#euN/5r_ln(r_w7=6^j~OCVSP<֖ܭdKov@mqs5r_ ״N5['}մCnܾVWok;W=:Sz:k魭գ3C=:1[&%߭F"pWI+mJz{m侒Y d/GRR;/Ÿ4r_EWWQAk'߭WݞW1*fAcr_cmwO1ne4r_ur_E6x_UkE4x_Eqŭ|Zf_Wu )jf%ޠ W/O[w~6cxuShk 1o𾬪_5V!/}MyjT_h%wrڒ6rÀ<\uo n F<[B>-}}}} hf(3'Zn͂ܭb0݂}}#}Y FFNE]׶~FѺI׽rZzl' uk}F^C3r_~-nvr_֚콎NX['(z4}TJ^ur_aگE_@QWV'oB /RK['exN+jݎN+6 ۓC'QhD'(`'eqN룾^'Q[M˪vr62r%h${گ[Ԩe'h:/{+z};WףqNF+\6rvJ %ur_AcbWP? .Yߩ8oTW_Sq^N(Nh/1[T&|~8mdTWB?ک8zd|\6Nv USq>ݓQo}{_T;JiXۭl7}ho[! UW*}%T}%cO}%cZ}%c9}b;⤢݂&W2BTWRW^TdU L} @w5̢xk=J;;}Y}{_Kq+,qj=OJɂG5^z'/YaRz/YpVUm=6^X ^e2&E@c{_RtZdh,sl+KY#֖,8X׷_/YpnK}eJ`X[Pf @±lA:"UrD;P#(XGDN&ƫWQq6#2lԈee{_9klă2~^W6NWJkn+[}l+wď}宱ױU74?}}侌7NՍe=Ƌ~@R uU$xyǩ>8U7l:U7d8U77Tݸ_0F~yEINՍGՃO~nDՍNnlGTxkTxܤƫAՍ`;U7^[T jjPu3yTfꆭSuCo TлƤFhFhrR)U!~6?4aI ;M'U7R_̪ۚIՍjASoRuhIՍ;FqRu*tRu)2Q5=QG5Q[57Qo UQu;Q?kۢay1A6ͿMMa(yhٝ ii9y^eNz4/2yyL ~B(*R!կ{_V:ף9{_vz㽯G}IՍG=IՍGIՍZ΍ƕT=TT0NŤF_cZFT4֤F /x1xLnDqޫSPu#qRu#]/x ͹On~m7?k[پU7Y*U7VTȚ]T-m0^a79OՍl3ꆽ5Fu0ٙ0yh}ykc8Y<̶ Afnx 'Af3-ۯQy47>Av#<3]TݸlnTݸFsTݰuqn62FYTݰ_U7Қx[V~Qu*/n<XTxWXZ4x.E}}6Hx#; x.Wo+U[le-\͢Ӄukz@w(J&x>_d&ݚ]jE_*M~Ank5VI[YpW_)-Aɴ,ԯt"YlK|V<,TAn@Vٕҗ-@Kg P3b_iBUwVuPm[FWڑ@jet"opy|[sh Py8j:cRP^$õl>j > lkf}TȸWmlnK_)ȭWgL o~ IAn%n|lwT<} l_yx:yx< 䖝 ȭ~ cmdj 5RɨMRfW^(4 0Dk rUۡFa a5DՍ~c= 6AIpk[vO"f< a0yrCP vP} Iљ=</: VAuem{Iޛ kytyo yXUgy@FYm@j ׯڎ6 0 < a:chC_B<4y4:s<4yv< < f; }7R#o׳E.n -vunP  2lMN<zy8ty8te<CgAQU<äWwCF75W~΍j桾njf=amȚQp 5RMRPYE_)/5=ojnjjc@Z_دF|k<>&mHm g5uc d}7C曚FFCj<IAvjt,MáYUQP˶Z ;yhѺ{dq~yh{*ÏÏFo<ml mW>Cy1 IAgy YmyvYmy9[[EyX_WZېyXu~@ ;un S]3îaBnߍ](^2R] G4iE_Cg׶~f5^jN_k5vNdaґz?<{y5P0iP0jV桟d<!zyM;x_uZZmmRА:RNUtwַUf[SsϩyάS0[ ;5{EOSPs_ϩyhyw/5a t!UyxA_)oTjyx+yxn1{yh 2{v20@CByy 5W䡝yy 5ݣP8A6q|}%ѽU KQ/K#p//Y6JyK9_)(/mlthڡ*^G;/}Y彯K0/}]n^kBR I/(n#4@!uP^yA>s<|yA>G<|RA>CP+־i/'YlVi/C}} `3Fgz@gz t -^j)2ymyh P_Qj/C}Q ~j򩝁< 0kymy<̊zA hxA-k Wk RAf[ R)lkaX +^|L[lOyXl?5m?;5mm<,f桝8 cmR#YRyԗ~ǩɧŸ}+,@n]Tw5 yh@CAj>SQ.AkߘS5f5emAni&Pլ}桡5e5MӨ{yh:<| e@Q<|y*?<|lm<R\ۂhg,cXH@FeQ#a{ l0< syXyXxhej'C@Z5AVaՓ,RЪnD~ɧ7ЪD5VYlMvKG]axIy5AvŜFmUg #îkk%<* "CZPOy8A?D A-<4_<5u' Oemy'Y<5T<5IAi,Y2N3<|l 4#8[<Ԫ-Fq0h[T 2n,6 (Jyx)$<4Aފ z(_m oEF@"C"[O 3<,6jg -AX#àȁ0(>OCo 2F0*/<A[B ""âC5%yجvJA*B;䡢A{^[ne_W䡶=C[" y(`yxk$'qy8_q>^qv8C[A~Ь mnyh9C[oyh&ʹU<|͢@mHU -@Zn1<|/._V"ґ<4T{yRyoL|y奌ru  a,(//R:X[V <ҭ7P aS/<,"I c=l'嵑ƠyXM #U<,ۃ<,%bXK  R;ՑK}= r~AniLU rK# {IyiڌAni쪼4ӜOyAniFԌӵY54Q-Օ}}:kk@3+@3SKY7)ȭ~ V0)-˕rKome{_e{_߶Emfg*mb{__ W"8d CZ@* oVѩ<.Ul WYj2⠼t I/ ~V@ͱ*LSQ@dmAy)ư<̊&, ^ C{a<̶6ө/a^&Hu E ì{uyX/ F ׶괶[g]l m-$åљRAn)T[r^[֊"弶غr^[VP9-뭸ז9[k˚o)eRq*e/-_z+|魢MڐZx v@nڲŶ -G`^[v:r0aԸ\y'+ a ~R`{xٯUAFc h; `tY y5Q@fR@{It ìw0Q@{IaVcy;r[Z*â bw0 }?yX]@V[ Vl) 0 Mxe7lU [ f;"fsylGy|T6ގTæHyK* BYCPϽCyj1^0~ < V@6-S;U7n=;U7nq:U7nun&eoVgTm}{_)>GPzeHF52ݷzn}}靫o+ث }{_߶J~TYFPoAՍh3FQu޿T݈zTݨw̝eȶ~]彯m罯Q{_UJuU5{_Fw/{W0}i̼nt]m {_rl彯{_KQHr:}`==lxki2[/lwZWRU/ˬtZvὯ9{_KFh{_veZ^B{*/?}]}] @Y}~ r_Y*nt"f"{PS ?} r_ePT @(*xPu#KQwAՍyAՍgˠFl&ݚ7 U7R62PuPu#iTxPu#iDkPu#TݰU7Ff{_TȚ)T0Fn6 (2nSu@(eSuC8>àłU7T{8U7tn4 nfRPz2 n4@nnJTݰ7U7;NՍi=_6^t@AՍAՍ^ꆽ@0a {_C}{_.཯{_C}{_X[Pڂ2P\཯қ཯7{_l6ќF1+FLFQePuAnaFunT;/QTݨvSu*r`'"_Ʃѭ-qÌSuCTP8U7?NՍfm46crfQTzTRN=nt;/54GՍn;U7z]TݰT/1N E nhc[U7F1PB僪V!U7=AՍimnLnL1ꆽE=151aSU77#Suc~vJaЯ~SuCg1O =[GynD끪SuCdz[Tݰ'U7zHBJw֖ͭ#m*$X'U7n:e(IՍ[#IՍ[I {cRu[ƭ1IՍY8lFМ$U7S'U7空ޤꆱ&U7,7E 'U742LThv:Qu`+i$'wkz8[~/2}]Lr_ץIwm(r_} r_}cr_^ِ2t$/[M'l׫>$&ݪg9}vz^$}dmy%Eܗհb3)[/{pΓoLՓW}-[?}U}YmIjk4侪侬*$U}3[}Ū*"wn"w9X_o3=,rvo+EEnnTX ^TX_Tݰ*ы[dKV=V%dQucIV,mYE.r_װ~yCW"e;"utl.]-r_װdi5}]5}]'xy{X=Q_ޞ(oOhf2"jh B*"eE+n}Eݍ,E+jšE+J67r_@+Ub°bW}M5}[Wը"e"U5J}5jr_]+ܢ%QE i[oCj3}am~ҋ״mVmuJS;k{_bk{_ɢk{__o+Ysm+dmάWZz _l w?."}d4}ݦur_w0)ڎů򶙶/E}h=[|M%qE+D/EeҘ:/NSq^T:&NKܗF}iLlm[ZGl8e=R:/[侚2Y}9r_۟ܗZ&!!Uײ_#ur_Y'Lu*/h:;/5r_Y'Ek&%7qEkڭTn"5Y侦zܗ/d}Y5EjX-r_"wex_d#lB5ڱ}}ۂQQLeo.x_Vhmu]l JkymY}뼶,豯זu\%I,+__Jt+ݚ,>ނ~ ^R폵%1=PTI_)OMGN_侺K~+1R r}u]E1yۯmǤ[SWEk>K@""x~ܗFEk _km3"q~/~}פ^3v3PlntGy'ȨyI:j^]<55/j^zyhߋWau|^[u^[u^[nj_zM< Q0~v z}i^R~TPt -^ux_u/ɾ4l|}@+JUF+51#ΘWǤ'7c##7cWy~NnFW8E]-}5{^侚V.r_!n7/r_3&.ތ侺侺;侺5}e#foA/uAk_r_}y1NnFgAr_N^r_Koee'I5IÏg;yD_r3vzLЯI+h"lG$W=WܗVJRa0/IfIr_cqϋW;-LJF}侴*O}a[E}5=nr_M7/por_"R֖Aݚ[v66~mkvz>ܧn}j~É8xV)5R3.‰>*q1)ooz͍8Y82ϿRzB޼vM*qT{_Ѿ1}%ܼUwWnm ]/ˈݼ诔8}y!_eRG%S?n> YG c_}M ?A^A^z7A^>2zcA>I䡝7÷Z[ƻpY[1v&R@&o<a yX@* +=h%%ʯV]a3YL-5"Zz{_]37}uL߼ou~D\΂f1q 6^"._f5XZn'bmAvj'b3>_/e+벓VO ޖFoF`}n==h֖A=hjz z0mD4p}%;!SoJ𾊝x_-7Wuyha6ޭ-䡾66FU;@*y85s<\ z_7ޗvR@7'.}]v̪x_纏UT}/΀}x=x]x_O}=罏(K_7ޗx_A7W;8ޗ,~ӯͿJ n;̃eY+}6»T{pKRqR7+U끪2N8k+t[j,@6>  a3jynUTϺbSq~Y[K!دҲ~u-p[CGjsm4rÃUrx_U,-W=Q4쟯4~-!e6e[[x_7]}{}=? 3tx_z_ޗ!W(ޗe7+?CFj㥦aFr3l}Hux_ʉJMW9[}iYWƋ5}u0 }MSuCo 喙J/Ïz8> ָ{zy7aԜ{Z@ƏÏZG_aXn aV_yX4f;~y6^3ꗊZTϗDg׈ΘRq4/o*ků8*&ԇш@xh `u/aI8Nj>+}! *H߁4t"U +h 喙ȁpnد /©7Ifm ZۂT5IKJI߂W6^]xT 4 T U70ۡлFГ!Pu,6 iS TX T{Ʋkc=P[1זcYPB3+זrnܔ xmyxmy(K'ڲECo»sx}ܗƘףpv<6s* x_]WLep$-eاS3} i^ x_c x_vG @qx(C&4}Wo񡱧j,ַUFCwרdWhx =ե쩯=[cO{Ihx x_]5~FR.m;P;;Y}b=1Ca7Rƭq@ }+n;ѩnxicށ1UAYەtƃA=09?n[/0侢a}EVr_W=קΨɗ_\x_^$C}+e;"bg7y@j"JܗaFjg,@=W_H˓fQ= 6l7R5Pq^|Jh~(PuC_Jy#N2n$w[ `KaYl40}_RGj#zukc$4JzF/c\Gl $[*%ux'ZXF}i\#*%Υ74V} }M}5En|%wmñT@!Rݤx>7vZx_Yf<5uG/}K+٩'om%U7>Sq^Off_+yyXft8t"5_Tj=R5[aS+:/\-^ #}M{F_;zS5m/3ZX>ǿ_C˿ͷ_R?{h7?7v1?cӰnoߖoRiiwHx~_hi(]]ih~INCbТfOݤ]ih~hr{qoC{OƆq^Nj[/aKVz9M +kO|~w`?'WT04vsTلo v~:L&d2;Ma.'siQ]^O{ ?˿o ~ğe&K^:q`/ğ&XMjiğGXMjiğGXMjiğGXMjV?2ğh`5'#XMj~pV~v`5'iդgXMjiϧ ~a/'{i ~?&K^~>~v`/'{i|Ɖ쥝&K^|`/'{qb/'{`b/'{K^'?b/w‚O1` ;?ѯMZQɎ ;*?AcG';#-0ة h?пa'i]_04&ڏsTQo JnP]dO&i? K\v`/'{&~&K^o ~n)`/'{ a/'{ {Q V_`5' Vc5'&"Vn)b5' Vn)b5'&"Vn)b5'V?b5'.V3~v`5'iՌgXjiϧ 2~a/'{i 2~n)a/'{&2~v`/'{i셛xJ^iϧ 2~n)a/'{&2?a/'{Ù42?b/wɀm:]?iw@nxϿoK^_ѵߦ44}v]7IӿnG|m?k{F6Z&Z+tM+M?kt')沃ߖEAqQߦ\Lw}~'Og G뿶r~_2W߱;|/jٷ?CF懡%v߿93 yV~Q68Ք}]1v1 < 1͆0͖g_~ٕ:~{6gOX;f-OC ɿ۴Tq/Sى&lxe> [3!J&o;7ՁQm/4(iQmR۶{݁Img &;1M wbo*fn|&uۦ_86Nf'6&-vbo`wK9e_/:nFj㎵NFZe^:mf vjM~9CjLE[yCj~W\9q݉_Ux~Mv/_te?U;~;ic@~j_Z߁ߝG_`aQ;cS?| ,l~j flPLqWNJ-Uhqّ`ʎ{>x,ʎSAeRȬmR%못߯__/_7kS\[TLW,j&E-;NehJJ_Y \L+P ^(TByV}w Pfk/ Pe=2 c @S.SB%lJD+>/1am1mEiv)ʎ~ݶ=I~פv/)*+ʧ*p2 \ \oڃSx'!!nkw*U(l8b7;X-b/;rK١hˎEu(oRCykBJ,]CYwZ}-U/]ۻ.wVe0;ّo5{[v;qcOU|qّo[z}MWo}۪HWQܬm_; ƚ_&EZfzk_j;~R!pk것;ᱹ wQK\;X.EKxЩedzװ_\j}Yk{'Ιe}R;Jj;dV*=Ue*jW3ʧ*:z:qTPϢ YlBTB[P P]@i~u~Wjmov{/PnS VI߈TJ(VP VGj&hpIgXSoəMpIܹlne<]h5#%f7~j;pV(1Jud J[l+]nwߓƐ9cUu]ei_ZYGjau;fѪU^s+/`U^D[*U^~@j'+/`Gw*/`dj 6Sd3[i{^*HmdĩiGUxRT{ ZGU}-J%2+PJ(TLU?R %ͼn]zM᱑q6nbaү71^{%FnbZCnۯT+RfZZ}-*ޗa#E6ڪn+UoǤQmn :Vh侖Y4N˾}%5".k'e;}ܗr侖}=4"Z~DlnDli'6ىh҉hiѯWѯŽ~mvkQGf}No6)}_;گm1i6 mJ z 65nEq4F}ͣ}=/?qtzm]}Y-E}}^7׾1k /&/}!j藭IQm1$bq6ѯfDMk7~;ѯF[X۩Cu(b{_!Gն^}}d7}~a[m]m_D5E.v]D/} Vo+$=q:Ģ(`K3)qD8fKOGl6 FFQaW:ҬPz3 ˰@(z8j*ЯVA6 U+ [_CEjc٩ْ~zཕjz Nkl]+w`N^kv/qZ}/vLPi5yk]ꍴ~ѯt;nJ+ǣ_kK1UxWzwn.,j3ŪztfvtfEg[Gg6Toڶ{5n^5"W[ݍثثz#ވmNЈm:nĶ%mg#ވmێ؈m7Fl&m^҉m+wް2MvްSyʾfλQ}{_߶6۶1Tڪ&ym @lTbj;JUQ_새 ~@D5no l jg{_TАW{jASߩ[s7ؒo7ؒi6T?xVV /`v]U;} ط//`zgA>V3m wc|b{__~ftk;bGzMltk{ry#L#FK5:)׷͍7^o[}ec+}}j%}c^؞  7nwAcFxlnB5O6Mn@uFAִ>ݚv&[?Lr5'[ۏIܭ@&aFٯo1kKܭY$wk;׫$y1}LJVW$vkKVOIdWR4lh2Y[49-YZݹ&'$ܜ,f3}%=&/Mr_ImrJz侒&/SuC-uJKVm}J@Vo6W*v7+Nwѹ*侊"'b_W&ʲ~[Or_eY[rLr_EcWrq侊W~iCWQg*ʴR*}&Mr_MoܗX'/~Mx_}X@nQoAW3rIx_cWכ„eѤ w|V&/9Nx_yg=:_CgfΆΖm^' kj>vMx_S״}״]״״׬62*> ^f'/cNx_+ܢ$&޶'f'-I(Ic{5k##wkÓvr_Mr_fAVǬ5)U$Q$Qpmdn[&V,/ˑ2$uN RiuLxRnn}vz&h&~z4c>O ;}=Zdњl 5;}B1KRD$['}EkLr_񱹝ܭ~ r_Q!ܗU侢5&oOr_Or_QsuWT$$eqI+>I+J侒zW} yx_խR}ޗt&%K>:/}k-sJz/r_hrMjax"t/r_I WR^_ԭ_+_R_Cz_+wJz@Ƌ~~ѯZ*5Eäw~UNk{cWl[M3+¸fbHÊhRP"([V$w{ܭk{_q,~c]o8׷JC}šȍFկo:Dn\k{_J[6ICOp\37p|_C+t,Coū@=EáUά_tfp(Jq</:mGg-љ\O;*\OG@#e'Pj wZ }}۪ζ}}׷l{__wPLk_;^u}}6pt76ư^W[JַQJ~}%C ^5T5_m+%[JY+}lgR]`sf{_߶jJo+/TﯙlJE(k{_hUd,髑T-l+7jm+im+cjm+UARW5Ya5> WSn+H-U >@|T-x_ EjAT-@i [,JA! @!MnP+$z߮_[跫#~V=l+_t~#(8Br=BZj;Ҳ[Y_4kn+?($֩"QRPHKgLՍ{7=UgTݸZߩlYwx~mGP^SpnL۩aTX:[.qO3nĤ߸䖍VR=Pq>&AWa66<,C~t Y5Ñ@.a@.(Zm|@.n ֲj 54 UMle5>٨jbg*V;5TJUg*1Xۍm{_߶}}/uz_N^3j*q|yΨy'/58>Pu藧Rv[ qQuCYC ?ѩ l IR:cn|n>6c{=Pu=PuoATݸU7.;!q$U7.PuÃTgAՍV U7Vn6 nA팪Za||q$U7`r~ln*Eȸd񕂌HW5k 2NO ad\3QY"Oy8T &Y PO P}_)_žyKO aߎf[oDjAêꚿ@VuU aճ~7گd a(/[FPz߹NՍiZP^fLU@v[ 5S_Je҃R[y8IKǛKy{ny(h3>($F1BN [SusndéT(ȭlr,NՍ9U7Su|n1:&EgEЩSu㶽Zm\W;"U7[YTxN{QuyuQuyU;Tx֫3J6Fun6^׎~Jѯ{ISula;un à è7 a4<4O:U7.50w7_kl7j &0ۗy]  Y} aì0z橺a9amAy TݰMՍFonXnn|sSuw:݈nEfon'mU7,xSu2bymY#ymYs7U7,wSurj7U7,xW[+- rKw5<| Fn8 ;@>S1y ,c cv5Q Sk+ ;ty<|57s< Azyly/Э@[7@Anfz1Ө 0hyI~"nIo7t,R/Cfn mmAiy4>yCv]b"*]HU; fVj*_+xy8L;:7hJAvyY60z٩wgmun o |@qy@Zyhq~@>>B[By,c~;Z<|<|^ԸѻSJ@>ӂ< 1y-@>|@>zљeay@Zy:7K -< ѻ"5dލjjRjUw7~Fh5z<{W5lV5TW#3i_d{>drL\mW|mѯtW߼Jo:}e?CjhG%鳽70z ?x06^0f<,x?<|'< z'xA=^~$`{àaP_yL Y*xRF;Xi< xy}R0DL15NPT< yyl]P0ECcRP􏗚yylV=JAsYR0iaHKC-^&֥J3mu uغeه+ +gЏ~kkv}Y&_'}Y'  _y(3<|A>叵=/Ih'ז ľymپymY lz^[hs&}fg[ux_ kk6 u /+DkKudͦFx_A`WPPt𾂲""X+^ +f5*m0JmBf"xyZWX[G Wbcmuh;Ib@e++F ftʯތf*"b h%*fCW﫨}#bg7b;b;bb'z?Tx_UWUo&dyxI /IU /i%-$͡ /Ii"Ű}iQdrWh/܄u)"7WK ץm^x_˴Z6ίYx_5}~}i)ޗV^ʿJ&C_ۚ B~}i$bYTzThT5ibky{_%k5o=}YXnKf /I|x_٤4͇}Kk*//ŭ& Rze/dx_i3/}ex_ex_O1)ex_AO +(B0 ~m7js kSK|x_fgeL|x_f>Y>d@,}a1lZŬ ++R'M2|[f4*}Y5 +i3Oe3/}e~z^(k5V6=,ڪ}eGex_V9l}Y'i,}bmCOx_V,j:l:lvnQex_V q 﫚ÛQaWW ޗ)ƹ2-ޗU:𾪝Y,ӖvW8k{x3: x_7x_MWk .﫫} 3a3x_km^2WPT55}`= ޗ2Q ˲gxld4ޗ}E#Iѯ<_;PFp^GIx_S9x״/^rg𾖢K3C{5<4¦byh3Ca،7R^syhqyx)ª<6Vyxi%j+  W@Pq5_{xIJ+#_k~#*H?*ByC*f5[}YzU}Yz /\}Y8Lhdzl)emt1i7g2]z\ѯjޗU.qrx_ }iޗ"}u,x9nc@zv6Qrx_],1*Hx_!Z/Rx_,F ^~e* / ` + դ3LgxˢIW&=9x_QY/ޗŘ +}d: ›1UlGm* ތ2}ޗ2 Hrx_Y)1rx_,qrx_sޗz𾊝-e}MѯN(*,hޗ>x_n e}:/A}֏ׄU(~ޗe{}yqx_)Ҹ}9/ (*IѯCX4QK=rx_{4[}5)x_MWWf+ޗyR}MV};UoNx_ k>E3x_S9Tj52." k>Fv_k5_}M#s{4U&S^+|L&oMje5&5^R񾦮5Wc&5Y{4T& K՛cW kꍩ}MTJcڢ_Vx_ևzx_𾬞yu:x_+/çVx_Ǥ7R}]tnפLlJnWx_w6=6x_遷>֖lޗc ޗՖek ޗ/*/^}=f%e+ף>CMzokJVz5JU}r^ŢTx_kZ*vzM;ʹUN5++D•S/ Z ZO Tx_Aﴵ^^ WP? FNoxWo}^/~ ^k#Wս62xuf *d + Wgwx_NSx_Nix_n+𾬆Je:*MGmGlG + Ww (*z#Jx}Տ$B+_Wg{*^CW zRթMj.}5Wx_W}jWg W|wՋ(UWQvR~V=/ޗ}i<} ^}ًװu ޗe+Ux_&/ːVx_Zm]W_zC㽯{_Kj?C㽯SeU~x/Is_ ޗV}iޗvx_f G뵹A;פn}]5x_l }>2$j;/'}id}nj׭ܨvx_O$֯'}i}vx_l^E} ޗ4vK# {%uk /x%iԽ4=_E6x_VIޗ=}iޗ}iޗ}iޗF}iNײR¥o c^ }[$ޗ}}4}~ѯץN6zHmdH+غ[pi}\Z,},;q+E v~}:}ޗpt;0ߣ_q_WXѯ 꽺 .}%Žvx_Ys>ޗ,;/vx_Y}jyx6^xzwq+}`6د/[}3û~}e͞ux_U }U:jV ʂUmUmὯj}UM;}U=y⽯j{_xy1xjgW՝`WսdWbWmkGCGElcؚl-HJ+Rwk+lWW཯5xrf཯>1#013101tTݰƈk0@51u/Tݘ|ƼΠaoU7f7LTe8}Կ/x_,C:}YNmz}k; 5[z1}c^Wx_2Wѥޗ/?}i 9љ)`zG:}f^ x_^_x_YWޗw0Z[{Yۣ_] :}k 1"*qEԯ +*y U9}E;}EA~x-}EE x_Qy>WTkJ }hs1qx_ N=x_NSx_n 𾊢Cb=/?}[Vd!2^5x_5ebkW;8UUn?ѯ n+uFJXAi`7&(aFP¢~& %,( hCiTMB :P‚} (aN(aY@끧@%;E%[YPRCiJX6 (P’:4%-6SJ=@1e{B ''-F L(a9JX&0{bB ˶J=l1sJ=f>sJ,(a,\Ҩ_JXB J(Pª.'zYP/FL(aUJXI[V5dU5ZҭI+_(17]-[< +vsK6^`!lƐC5xmsӛ!wCM,ޕ1w1wMQ.bY<<b1@^67ȋz[~ rCsC}ɢ нdQc^٤Cu\0 =(1/\XfXfz, r,M(-mC՗^x_Vu}jz J=itA 3nA ε]~ Jc(aWTz JyXY@4vڄvwviPuA 3kգ3[o Jح^ǂv{<~v-~A 5ĸFcsF%5A {JX~%쵽JyI JC Jk׾&0K-(a,(aP^O.(aN2(aCP`>6 kV %Ҥ JثjaA {mf%SM_P¬t̂fY00K.(a.(aVgA {~G:2(aa/(aA0,(a0P^ ,(aP^,(aFW Jάqƀ~mfEN(aSXk%,}_(/(aLɂEI,(aQ}% ,(aQ%,}lZ0+se#[1@ KJXP¬nBUImJXVRfb0+B +~mh%Lʨ(aE__)PRȡCJ! +ݚɤCI!-~~h=.Z[ȡrJ!flځ*%Rȡr rԬ# GM/9qG$9"_zu94)[Pv(ѳnUW 9T_)b:cQZEE6>6e4XCY@ (aWϣ %LJ PCjJ>2Blz6 %&=4P4W %~T ;bh\ hml΢AS3j{uȠF ha{_Es󳽯o[oя~udo_G~j`ߤЏ~UɎ~>k[&Rw!Ցm+54)24 9PFm PF8Qq(6ϯ.]-PFmPF&U$>?<ĬG|RݕyT1!~y41j(HJxn_~R< %<(aa%nbP>vhPrv% J%دyA ^*ݚwA &vA ӂ躸E[Q}?CRȡvzX*`m'mM JXԻ%,wA (qyA zO)*b^Pr6)ФsտV%LJdlnC%Lte.(aY#>C9xY!f̋{0/bF[ 9T1i=@Zxhg1aR(_<\ms=!檾C(b2Cux/ۡ낇 1סߍ*.bn6 bn+_<ܣI]5BC1[<6X:crzX4tlGDu51ZfϢET;эӍR/Fu?lGo+Eeo-}vzl[ԯ6 tR1KWRFe~ݗrdk}eEWgg~ˍ+ۚDUG}}YFeWflEU}cݗ}i,FUBUBU[o}j=S״1ˬku})vkBe# ݗbuwn W/,ot_m}5W2֟}ot_,&=FmAջa*AeWר+6/<қk< :ah[Q62tk?ưgQ  :O[[}u}) ݗ~'t_o>2KKkgƀN~k~[/-BmEW7Ytus=i=z@?Vt_?֊K}'t_C} {W17F&~ct_KROA|}Wk)cA4uciD!ƲZþ/ozɺjDa_{]ލnEnmϢSl!Q/G/m?~}Au^벽ץӃ/;[Be;A컅VIݗ8t_ۇYݗқ/ BCe{I辺bib_ ?$t_#}} ݗ5}o)t_wv#t_}-/Be'Y辦=}_{[_o辖j< ݗbOB't_v@UKRZiUF$٠}Z%6^tIU{}ƀ.I}WUڊ.I(WQ"*辊YWyldaZ4;2,4jƋ.Iw˰Ќ $et_ft_ft_!ۊ.Xf݌f8辆-ИBF5辦k}M=2\k~lf>6C T^F*3#ZzVgtz֊Fku辖ݗ;[|F֖}bvԚ0-ڊT}mft_[kk.}e[dd 0iv@b_aT`yx*yx^`yxJyxJyxa^FކTGfy9J)''G)0ސƍr%J)jQ (QlEE)03Ԭ_tv^D)0nQ Lr9Jٚ89JUЪ+R`Zo W/CQ luu(O!*}}aҪ6CywR`[Bt_z(47@F54Q Lc9J)}iokU(k(.رFCf}^okžvOE5瘣Q L1kh4G)0:rvF54қ}iFwWΎ_>J٭ ݗ12a(f7W{@5}MӢvnkwDt_Q t_H}dF0:y辎F2Z0<.辎CAul)N~k> Y} 'oAubb#ÒF%KV{KfkŒf,辎TјyAuU}t_ۭ:)4V/6ma_{ջ}a_]辎")6J͂:z(0/= CzTz(0aԣ62Q]>6c%VURf:Y}e,}Y&B/˦TU.*+***z-*QߍPnٍY}U[Q辪}ct_ۊC1)Vt.m7+Ӭ<̊VYTaHy4TaZ{d M[^#.a_8U0F+ägy0"6a8Wy/+äJl@J8W8L~cEp֯i+Yy敌gCIwJg@a_]dO~cZXJ8/{mdNQ?ڢVxi辪ݗm辪ݗe~辌V}iuo+B+j/Zl 7辪辪ݗBWՈKa_辪辴Rf{-,x_Ee:C7ccZWsUt_NHt_٫j}uj5}ue$Tt_v{t_]_62wogUt__t_]WSWSݗYݗeת辺*?}u}U} +khk,U~kƲPDE5s辆"P_z_,P辆r-+/ˑ[}d=PG##׻mTY,U~| T׻lnV٦辌S}'2NNE4P}m;}m~Ut_[#p׶:m t_e#CMc׶k۾ k-}mL kݾ}ƀ%5m=PRGF=z>׹mnZm?G;}2jZ-SG–xVfnmRG=>NTC2$]Q-.ik+$.Y蒚][FHf+T $dY+ݕ[AZh@^ Q%wCu }㹡=Fϖ>4t_o ׭oCukl2uCu> h5߸}ٰ}iK#-t_z}iĻK3÷}-CW-/}K-t_;}鍩Kc WV4Z+?ʪdi農'2l }|>ftIi辪F/j{ ]m.I߆]oU$f'f2v%ٙjvΣhm.I߆ ݗy( ݗyT ݗ8 ݗyT W׻QCeUD$//}u[},pCe9/}esCerYi]9t_2䪡j ݗUh辬GC54} ;}MU4t_3Yԣ; YYm辊 WVt_ih;W辔}Ms5t_Sc+OeV[jQUf\׫FA͍z_lQK#z_y}-ە)~Wo?o~W?TMU}̿@u^ ݗUl.;}=xݗ}kE/z*,/O})+}iL-:/}}#k}t_G[}id뵹n=t_z辦k/}M1:gaG5uvt_Sk^6^t_z'辦}yV|n}aj:/|}Yv/}-Ko=t_/NCz}Bk?mRKNWݗF:;cP ڬކ064Lf}/[Cx}ٮ/aB1/xwt_Wnݗe,[GlGDlDeȎ+i,n=t_ǞE_tI43tI: t_vt_YŽy1C<hL*z辊YW1*z^k:kkβ辆F辆Pıv@5݌PN}?CXf4CG5-z0b=t_zvt_#[ut_Cboþ}~})} utt_Cdbd;Ca.I{ءKC_h.I2vƢ:辎ױh:ˡ:z@Mc{*c<ÏQUFGu./SCew}* ݗs>t_zΏ}4Bݗ/G}}rk%wqnLk=nކngnFo+kc@7wA5;Ѩ +jqbqү98d*#.VtIzd i䨝bcnmE7ȡ1)ft3fqh@GQBcs+Q;E˲9t_,@TQ9}nEc@el+7fAp0}FǞEc7݁y<}YMl*9}j_W5}}nvJ1LzYf46}Ubt_UWSrjz@7~@Ք:FfD4@G47}5t_m,7@q辌5} 5} w5};6݌"cnz݌wnFkL{:/=}m=k.[辦S%Ec״ ״ukz@5辦b3״ ״]FӪEjTbz辌4}۞ad=K$=M'ìۄy56afM۰d’֊%U2C ݗFf4=C~ ݗF g44CUldط~5|s*àކFAݗi'/Nt_(3}hWU\dzMV4 #aDe'YM&mh@Կ,DU}V쫨D辺r&~D/mQDՇ辺&~,Ѐ(0}uc'_,c#CD5:}hܥЌDe(D5CkNt_Ck6}m=`cc@סk(fzBڮ뵿ݗe^UOt_zzf^E&e/e'5ld/ڏ ݁辶f辶 }mLt_[kOt_[c6֨Dk^k+4}iFF}ݗU辎F&/=}Y(8Wtd0?v<'1a~c}7a^`^6c e0yx_B_hA&C0eM0E&cO6a><|l<|4a>v<|˟07a>v3y Q}<|>,lƋ}I=a޶`>5OF&[>W2>2*R7/CA<̊0-00b p8?4<A~a7<0ǰ[&a'a'ápMa<#.C PJaK[+%bI/2ΏfŒz2,2[E"xqUsEGV|[q~Y+NVdWNJYq^ϵ"+2랺",YK ufFR/iEy/G 1QfcՃy8m<0u/ٽm`&[0"ЂytZ0ӰY`fU.q<\ a; rFV0S`ZU(6`ZVl桞y_(5y8m 0tZ *C׶`Zp(}<|͒0_yhUY<6B<6`>0yh ifk+5`ڍ)v *Cv0l %yxlFC{Rmm3%S^׷NԾLr8UDǿ?K&'J8aP|['o+9㦍 V[>|[忭䌓g"Qo+9@8|[6rI|yX3ny9: rV9봷 hkߟ}YݬNC;mt`ƻhյ#!XH:^#`= K<|/k%s,` ̭y^J~[<ֿ{`0 V5Ýud0wpg/]t0}!;뗇y ? ᶿ= ,u;iQ׾Z8R;}]K6`_y__n`_vp/O~[^f`_ mx>kO0 ^=ʯ~7/~[Ln3쫖5ʭv}iYD&#ݍ{xY{kkT[z}խ$F]ȺQnԭ6#Fo \dݨOuu.dݨzƀ}Zu"F"F= Ȩ\"-.Ֆ~7-b@-ItPm@n{5Ֆ{R;Pmy޺v:o+msl7-G$ՖgҷQmYoVZjjQ;pyLp> 1}uE<þr]k÷?HWGjѹȺ1>f QmY`Pڲr8Ewfn^T[IgL婷 ᴓ@:éq Ԉp7~<`N;!aN[00紑a_\0TK<`. ^0zT l\gop٭ opi\y>yxyl'ype|]0=anUʣyāyx?vTֿpG5`l\saB/B0} '7Yyy_66?l% ; ѽ->z_>z^Ƿ}}4u}}:ȷ5Pp{zj{vjch=Ъտn o{k`bw l\|?f[uVjzkF֍WY7^1Y7-[Ⱥ/1Y7Int[%dȺM֍n!Y76j&c<֞ <@ւmϒ@񖛬[7Y7Fdons#놟zdUC Bm:2nY7funX&I6ئ_u~=u]d8>f7[Z-n`_Foo[+I/ʊ}`_N^m3 `U]V[}eEnl7ح+/ ¾vVfo5t} [o jɹKnz̳nf':WkEfV9u*_ճЪsꊷ`_]7(1ۗ1Tm[=k&lQ##7ؗ-jx 55}M!Vrۊڳ(}R(,>, K S^m)EMVE% nɁ-ȺawȺ}xȺq컑uؗρ-u?d8fA<`_W[-N{6Eo`_z<}i K'/Y`_z>}utk`_zZ| f3E=џ]}~kWmVþjuGc Wn}<`_E\O`_a?}ؗO`_|R~ؗbO`_z=}M!/Vþt}5=c?K}eo{ij_6mh=4}"n'WטՇؗ.K'/<}kh<͂*ف*?`_C}k(O'/e>}i< ccR׶~K#ec6c/ifco[k}M;/nyշ5m#}MS[[`_zjW3;} Zhik kiTZMW RZv}b=-jZ!zƂZe;k=`_9ucmp}uuc}¾ z C֍:d!zȺ@֍>s[/D֍cLndo lzlQY7zd8fþ۹WQ>%PD)۶VjO$!E[3U[Qm05~W>G Kr6/Kwjs6ev6wWѨZ*fIg@ س`_ۧ?kh+ؗˬؗFװ/5 h<(xþ/])/ES`_N}i R0LؗFS`_ϧ4R!}}Y`_k~}I%jؗ R ݢ=E]%5t:EW}B~!Z?V6'/ʹmE澭J}:^] _Qt`_uwؗ^EL6ͤ46J/ؗ}e=Qr)/s%c+K'_DR== 6g[ ]*ثGBE++F}Fl6(w1}Z&8z*;%H[j vܙՔ`_If':W/,Ag7m$o״5m`_S% k*ޝ`_KY K+}[4Ҋ ˸u n (>%Hx_Fge'/ץ1u]}4W+ǞyI0 +)C;}%)DCKtx_Bd7WR\z +ՖJk NWWWRajˊǦ>fųosT[V20}ضIɜ’ϒV稶QՖ7t۞%gFU5}U=/2zmi*_3j{ft_MyWS2jKCEr956#a"rϛ#s<,NDԾ002r~aͳM{(0Ca}68%Υxwyh`y8U5P`jMoϾKiy4oG jS CӦ?= 0ȂyVt-x_WЬPqŒ WR}%[x_I+)VW;+=/qa WR}F&ۈsPKd;bXVޗ¢SJj(5j3kjlz`y񾆭_ak(ZF2;=0K} [x_,x_Zk7uN:b}Me&ve/Y,h25Xz4-x_}Y҂قYF RfgZSNj^~n5:S_k}n }i=ݾ6[a.å&U=е}_AyþU<4^y ],0S`mcc&ãHyxlyx4Z`ž c/ãѤҶ/r]}bk}my_WY =KEւeo۴Z[}Bl;S8(dϷ˶q22O2ο}cGm);6ޟw(q>Bq>w;IW>A!|Rmy_ݞͣs㭪B|Ba+ٗ2 lsCl7h2οV2οqXP%㼱5+M)T8ԟx_b_5cj+~c#ÏUW|}?VU_@vY)TqݪzvC͡PTKP(%fgQ(*s}M W/mEl(]eϒ[+9 ]ƫ+Ֆ-j[1JJqJe6W-boe/=[jx_ gVJ}%(+iܳ}%{VJ K=eٜkx_}{[x_:?Kße}mmdx_ox_/qx_jke K͊5l}Y}Yx_;?Zoe:ޗ}* Kc}=/ykx_Ex_@*kg k'׫{zK5e}Yޗ*oe}zk K%5"ex_z}iޗjx_Z4^~¯x_n x_Vױ/u-m%/;RTun?+ߊjy__gEn0b>oxzIAڗz_2\+m3[*5W/cT/cآ kj}}ؽm?lV$WQO}YՆ*}ʲx_~_j`_A}پؗՁ}iegV`_}3nv[g`_]3ST ի@VeѵȺH͞gY[ݯ76`^fU a62n4I=0e؁f"h0ƍZ0OrĊMLm#cq;71{${`34o&65nbjIW=ڷz}VJ`_KRO}mrSPHZF5݆Kjx_kܸm끛F{IZ۞&4:jWjWC k}}Y}m,/96s&f㍛XĒVJ:zm#b/-͡-E ]Ş%mTS9#k+}};62fֳuzڮ룑VL͈Käq#a]JNI[%<]mFUW 9fQy=۾Plj>^"}5Pf{51kv!"Z}m 7t_[;o՞N`;ww\5Ul}UJ4j_j}Z#o[q'P;س 4%k(n}u덬ݮȺȸK֍̲8q^} @}mY6t_[Y7T"놲V^hC@d^duT3ڌ9@Ve=@=vC;Z+ޭޭ8Ֆb--:;,a=_62 /ZZl'w»u/|:ؗյ:ץɎUttQ+`Vjsyz0-G[au`f4w8Pu+靫}%=y;WқXJzx_ۨ4~t_6vZ=zx_> /,{֞eU^f/ƹ:֘XZi5N*uԎul}[x_UwN֍Dˬ71/~W3N~_KP++U7֯Zk^7[x_x_ erS_Y}e;Y7>u̢N֍Wj˦}T[n#bg *oO}թҩ_kEKw9}5`_Mj=rrۢW~?9FgDnWw}YsK K[qYtɬ`5:`_I#k轤a_}[<Ի\ڗ+k;~MnL:WR젿[KUx_ƙۊ聎a)c/?P,=v1Zvflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/OTHER/CNS11643.TXT.gz0000644000175000017500000027314306463471020021677 0ustar mohuramohurar4CNS11643.TXT\]s8} &5NJuAKF$/dUE(O뷁n~ t1qnntt3 ׶>Áˎ[l~y ^ mM'' Z=eF`ul4X>fá r|uqFtsٿm'X{x[>HGE'nC'%nJI-cφ=PY*g{6/,{C V'gF"O)[gҕJ/mՎmQXvw%OʺgxB)O5L$1? w~3ܸcT uowPARIXJÏ~zLSND3rMOx:W26㊭_p?\~Ns`58<]yVI'i4`J9<\!{o>[^`!RT]ݧ_5ȭBSZ_ 4pAmg}^! (iTDŽR峇l~rmMş `b揟==zto4MX̸d#|c1_\TZt%[\4hhkP:ޛڼ\u,>X~lޮd`S[Q)-.-؏G]|K6]NĜY",۵bW2ɷr*pU5u,Ojx\JsvHxVAluq||eǮԗkw@qZl y[~)S3W9{2ŭt/-ǽ* @BLaH 1?L8,at!6BDc$Dc6UB@<|$ `A4^CBL"?S [U!ϥX$ P||XOb%]> DŠI"_w4 ::}7{wWx}A~xт@iGa1f8h &(Y[[eIvz^LKXArP+~ w΍/F$W^6 ́*4/P8 Q%6kX 9rv݌4`rίT?m%`~qS|ys m!:X#OT t`RLQ$<`Dn G&67u Q7q4Wa1 13x]hmj/:/l/ vwcBDa+. U&0(laDF@T`XUx> v0F{Aii_ptτ1i_pEUXFQ"P^XZcж. M}ofXˡ2ʥ2k*Ԥy[*uP*ҷKhiSƊ E2Ne ҷ.VbN )N 9BB'Is}j .*Man'3Pȧk|y(z BE͌~OU\WFVSg'WDI%%LǗ)?&; \cT1Rv98#87,G*AYjzr=B|+F}\PqpjdsjcC/傈Ob R9p%qW[ 9vZ.W Fر\v"@P͆rcqH2KZ^i;p;V1WҹcmkA5 Ghjiwa:*-Px8aXAmRV s3Mjݪinrkv9rQEj67o~Dp@qp46g8*|a{sU2PT#Hn6{7eX,oC71;04 `qci*MUO1T‘H@@Ɣ:X8i iF4 i|즺<M`"8 ((DvAd0(mhY8$M|豍*Vm14w4Ⱚ0:`>E QpUPrٝX$ GDDBxPKq/T :H֦ U;R9Q{>zzcz8P],xlqDXoatuE1^9%PP ZGt.Z&]~KmI M*HzU.>B:㰁 )aE ;ۚVb6$V-l-Ic 6E.u_99{AP"(iMu @Tw@ޜS4 vf_3^s~M+Yg4:zHHGUhdTJ!9͎e%C5V*m&)q}F!1VϬ3Ұqs=!0yXXRwΡuFDzK{]yn l 7ZbcPdԩE6M!LDEd 9Ή9%QN\i"qUX}=Ёε:jW$#+?LښV>V ɭ =FV-ƍ[XZ `qcLR;`3jyz6hAt%컘DŽW송Aԓ&foB`xhX 0ѡ$] "J 8@#}3D6}c 5iT: {ua4'|Z~T[KKMH!)O TfSk C41'0mP R Cݫ5A5/bia |%\K҇'/iP-|mkZZTo _BZW·N3SXu|laūעj77j; iXkjxu͔1I4-Z>֘q$c% ҋa]T'4uA|Pp$ BqGA? I`|Xwu{^^gD<&u;S>ď`B[ qrw2]?>9r},) G;gOM,O^ߞTzوrمDR@7o-ub\"Š"*~cVwv߫{w*.>"]dTaQ\BByfu `.Ok"NtF~H $HhdJj[QLHdd"~BfN&Y;9q1XQawR/H+IAX!UD֫,pD+@zde ˳* 8yzd=\={PPZ␤@B߱P,߱kao!E=O|=y zXzX F[Kn!%Jn#!FF<+F>,k;XVl;HVd;HVd;(V m"*ԋg$f# Ȍ C5 A8BHH!C $ $ i ŶȘ !B G]Dh 1j #O, zք|&C 6BL +AXb1.bl /0CǘEA: 1tNÔ HCG )c(CyA: e e9E:p ^IcH# ԱHT.&.0SNтo8 qLqE:1uԡ_Xv; SǝASǝv䎩NT`g 8a܋QmP?A88q[~E4J;L;m%7sU]~+~ջ&x=˶-E,I}D*F,GFؾCqׯ\$H }@zcQjH?#RzcQj;*R7wH9Jo,JM)n`HqXwFB HƢ~ "co(o}0aw i7Mew- D\ ₿Vgu!F7)vKGg n?V_kphǿi5:ZkoZkHFDk7M\#"Եaq¦?xр-&/r__@RЙҋ}-D/C8^(o_+ O{βצj_? kT9k8^vn8^OOLے8@?&Z˺Zo`{?Z+g{|{-?WmG>_~f6\/%5Ktڦ}8οƱiO׿?y=m_63&qm&?+mϛei=a6"^ڴa?3?__n̮/_D5/_/mhݴ/̮h޴V=yf>oBS Wڴq?mٸ6n 2mڿ{~7e?6c.2#pbxo<4 (z8!>$ί8Y\{H\_SW:i&bN^CU t3y=Xi$NW5H~@} Hws!<؝LX&c~>}j$.oIk:鞵Ԏ}}ry_ˇqxW,J^'?[U :y]^ZZ͕:}^VF:8^OUS:ySy,w{$gy"֮z}MyVw{h{|H_.{, {t {Z;-> ɡ\8Ott8ą{:']kg]8OztkΓ?yrk}ZoR}+o'}RlE߷fF 7Iފ}YGr"/Y |5x$&,Ajp}C⍛x,8yb?' WspB# n9O˝p"WOgpP8B|-tB<,?vkqf{-0% X}Z%kq+W|jQ Z%OOKYx˵M\U|-r#y-r 8[B܇;)䗾8ꏕ-|>O^ٓO}Q܀mqhܿ-m8űi[IX}oCSx# ;6,`qx1 ǰN8-,9, cheZyK=3bțOX˝`q,wšB?ncZy,s_ʴ ܃Ubې;ļ)qļsGHQXJX%1t'Xl%,wJX2JXS# cjMbw8[%FzyZ#Z4,Co@/Xq#з bD.XaZ|tq W14K|WI8wcx-q̏ }ǬO |xUq,'8-Uaq+X*c\^KOqEq`Yg>񈥪{:ai##א ^08 8() ^r'Nw}-[y-G8jRkqy-_{$w^5Y~Z5x-ZGͲ5kqRįQ)}G-fZ:z-Z}G~]}GzvO>u⨧$5*۔8l%16Q5*K-F>=nlH~mO6,>%^OGZkHKGA}-tpHKzoY5*rcՈBUY fUY= LЊű!Y8,G‪79kDUű]IDUtV,݋űoZ,O cT8ȑ Yb `UwGő58J)!5UIUDUwQ.+}Fk+k:8㸚[ ƭ+b;8q8n>8=5qLo/oq1e4|Q`)~5j8O&v$:kqiQkq;{qx!_kU9kDUl1o@y-Q[^FT"r݈:⨟1Vkq_o&9UIn8kq[Zukx-nQץGȆh>kqh8p'Wi8G'r{-G|-GwۦFlW8|-_zh\8.I{-{G+?^qn>_ukqc&*MTԎ%UY?ɋQFTe!o8Xp'8cǒq,Uő|x8N4HKVy1ʔk0"BϞ%A.mc q,ǒq,hPglDZ8ȉ$Lt}Ion$o%}i:DUJ nfW'DUv':Q]NT!NTe UO͒~oܧ74Q]'*bo@G--[ǑysZ|[GHvq$}G:,#]bܺ`:> #)qíoz8dq-=|:z8[o=| Z>J(q鑼^|5{:I|ՇR8t_qxI8>o|m5>?{:8i7>{8DڱC.>ew|]>_u]>_u㐑ɉح/ZK||u|՝8n;N|՝8lywqɟ8><q8V[ց-$έgű;8VObq,N,%|Չűn.^BfXˀűGrZ‰aެDZwO,N޴59Z^g G>9탏c㉏ce Gwg  ѽku@{E8S# }kr[9e GnGsޚ8'8*w × ×8쑀%p#['8G#YU :Q;qTEOpU/% 㺥8qx:.8ʭxZX+Z؝\=n|iZVNLL}yU|ϪwEߊ}+tV] Sѷbg }{ۧfED߾+֡t] O^g茽^3b䋄ً\\_ڵue::y{: hvG1^;#kqbžG-z \Qܴkq.BZX:y-/ZG^wxs/񈭪#O_b^gWl+u'uG?Z^>u>Ţ^>n]0kq4whZm^ꑼ8<=Wߦ]і8"]UY^DU3,ٱH^IGY= 4Z88cNE8zz-^^yA^pU-& ?xfz:sk*Ǎ|DUDTwDU<(sETE+*eDU螿"<b#"QrWDU"R=@*>#"k抨Jз>;*2n|"67>MǦDZi7>MǦDZlqlߑcY GO~$aUCѷ;q脸#"Qy\9wpU:UZWE;*# nMTk;"hCWeo$OQwDU]U'uGT㎨Jw'xV#UQ9xR#!pU>}tU[^lt"}U:||DU>^4*/Q\{;*7Q̑D: v#ر `z;VFcBDUDU}ŒofU/$QD5H'[d 8Q] +G o=QQ]QBڃDU?/m*K=K(o .#gU1mз6rD O$}o*Y R|U)+7>{~U)Og ֆ RtjN*E'N6wJ 6N N6][w qW&\xUzO*~L*YLܵ{]e#7\*لR[KݚU}?"#gWEqyX*~#KKO *V, KU}92ݚxG3*˭UU7%6u L,[Ήq_IbO, qn݀qBXq+j8#32n9qcq}}r[:⸧;Aíѷ3:XHBjq뾜C,D}jBT\Y 4 ҝc =Kd\)qb2( ^<2DɿQq[J|6D&8lnMq;9k:8IkwI>C8I>,R$G-E>E#G%@>"$G=a$aW|UQ4\8 <^8$ GW`z,p]fq*q՝<[jlcɏq8(vpʸ^}}Gn {Puԝ؃Űc{P_:`^{qțql>86 ǮKwػ[Էqu8.q_7A/8w8K 8]7| .DZq֯K,Iq4I8gj^qq!z-x#Hqx!jDZ)ql?F8ruǑ[8$ Gǡ}8W8'Ys8z^N be8Ie8Nw@DZ'8bp2V8āvC8e<^f 0+p? Cv L8+6pV8@Xi1<;p;'p߇#8G #q|J}İ5G[kak~S򇨊Q?>bpɳq[ Rʟqw8n$r~49j}GѪqG.c5S:!nQm?bpJN˝+=bp5[{0p8S W'p#Wpk:>q[8?/Fߧ8S: \+h W Z4pT88zZ [oppG K8zqt>8z,WoG8 OO\t'ϏZcj߁+qi0pK@[ 7:㸼}q\'[Ǹ%.}}e㸇&78㘛YPGLT\qL/8Oq&8'75o87(oۡCi `aEo_Aް8w oDU'o{ĹHL{tsqĹ?I'suBTS4*o$#t" UQ%G hш|GwWߪz_}ec;!:X*#!:h]ꄨ vR]nMExŚNc%}U961n퓨rx$UIDUJ*2M$qW;DUJHTR,Qk:DUfq>` QKDU8ر?Ip vOc(Nz;'Xٱ[cV'رS`cqTY8:4Kprkf6pIN8o7pʺ{qaoo{puh㨲!6pXpl7pW. ' bm` vހ8 cWc,_}_8p:)]bJtf)SW\gC}WEOo)]w:L2v ~3U =E' ǐCQ2vMv"2UL9G|HLU jCWD2Vv|ԙbOkOD$&TgJy\ElT_~Zo:c)N]q[N]qKI]o)8H %9GwN,NѬ7Nќ{Ĺowsks{$N8@qy/e8LGYí_}7;8iq4_08;8CG|!qu>DO 1y!#~-KqU 8WrXǡ4mMpf1OqVh-q(['L_ *| $CJIY d:;N~N~N~o#&?89q qL$p2prkpߵ1_!7C1 8푀9X(~y&˹@? '^Yfp3 nFQ7|-^>^\_Lfh܌; 1U|-ߌӯ8K F&!*ߛxs'K}{ >%wOQMt?oNto鷵[I8>䑶}Jn|$p=8Q>1ȣNqo")*U-qTrS;cq\ epq)P8.ȣ)1#ż2uy: .Zx$#a2=>bGٓy$ X!#&M^78nOӵ G<=t'?2G>&9q#Gq|O ܌6r4*G>o8&8GNI8-qt$q|#78%28`r>bp3!;6PGǡ Qq 8%/8#i8gy#v*8Cq(Dqz88`28#X+#'wRk8D|8UG2(?~^pEX d > Hq!rJR8*5㨛7#(Cvv'_}7/8 e Gf!h^pMɚ)8liB/88=4h1<<4<4ϵ,1BG,8.Ar#-KpreZ@޻[`AU@#p37Q<p3]9:GnyfnFArtTurtȴ(XCl1-Xë1˖W?%yoG|%G*8д|fUqVы ݕ|AsURW^ r렮QWEuU&<)qh׮ GM GsW#y}%YA#~=dW5WhWe9:5Af*ѡJ9:6wK/ rtl H/9^k 6ѡY9ju9o_b Q^Hj2jT۵V]} _WO Z7DT{FzqjT_f48>2kTx¦G.L/ cq|dUp9*8[VDZ#ZG\ZGJͳZ6 0k!ߌ?.l#O-=ypaFR -^_yT+09Jkq4xįRkqWt;ÓG;Dd_\AZ8̬>A ڎn Gk{h`ѢwZ9ZN_ ;K N/rd]wWZU n G t hm#7MϷrrwَ,6%5Kr@U Gcl GOoSrԱrTys9ʐAJ[8rrTr9:;cANuyTXLe1]G Z Q#ѥӉ8*jѕ&/GWGL0ZdIB`624#&Xr'dl7H#@-* kǒ," -2&X#`@ `Eorm@ѢwZ9Z.$HF// y'_}^ ۵-odUc'opx =6pΜq|5q|GQIxqǡB^=fw;urTglLCu'1,A{Tr2=n*9#=2 : =2LG8t4wZ `[,o2)rݣU|78^ǑXp5Ⱥ]#gp&dGqd:QI;Ѭoͻ[dA[lD9ju9Ə8-dozdxdG0zdm8:&;m2:ѪB9ZQmFA(G%ɓlV ϒ `^4rr rtv r$?V=px&Z9zA^;2# `v,[qe8<]{Xvwv,Wvv,7`p6aa1v&"6'='ǐzbqL'xbqL'< /A2^I$gTrSDX:N,bql1 88TcqMpcuMƵN*bM'*u**)pF%7QϨ=bC8Tdl7HF$8;'8Pg G^>9Q@<9z'AzWrT/3 Gg rto}{:[VQ$ w%79 Ug G G? rTY^@ zrtk"/Ibv9zZ' G>@M{r_C G89ڥ@䨿@*z=[=зfYB GOGӎ9z4|=|=9zkq59܄d< /gTr݀ő!9*`QG G_srTNQCIQsQLG GDU#;9z{: G/r\ɢ:9ZN Ghm-J?@.=@6r :@ltK{'}/w9ڛ'rTHrju.rIkS9z;` f r<@ }X9Go%[AONv@E9G] GBʐh2\Q=F G7$907O> G#pur)QslfU-FNJ u5o6N8@~cA:(b9,]V&9G%stz: uE Gc u5RWE(AѢL?9Z-Zr9Ghr9G\-ӳ['E}NwZԧZ@ZqGoG#y58O~58sso =9dR3r*j8# #tFQI&Q*DZɯ9q>B$eDZ+9q8GDZ ?q8qxu|rw Gu1@ʼ=9 -@v$q? rT69 e1Qf G G[ r4{#\A:;#9GEsT̡odۭ#V>zO3A:y9vɁ79O~щ G`u r)0A6ż&Q'59䨏@3AL?@极V9* 䨪LQM7rT 䨗d? rԛ-b@Q;V9fԎ=cH=& ܣ?WSrt?@N}ѩڱk+ڱz-A2ꝶvAMA]:8VԎͶqlg]\Q;VDZ齳v7+j˿v ǦŠڱ2[8MPhDZ}}@ůOdݗ@99G"U> GM#nH i֌EbuߠGj߼?w 90w>WGWb͔>I' 1яLR,~<q8!>$~=7-1WĚ<5y,Xhuз  .Z,yx$;o,1!8d7G1o)c~?cnwwN8f?[DZ ȺMDZy-q(wZDZlU8d?br&9ڤ9<@u?F 8[3r 89Gw8Ү%Ǒ<@pg #y:M>59|̐s4yCs4:f"qGmdw8<$8" FiUϝÛwZ9:4yhǂS-rV$rVm9kU=bj#_ZKeopxIK;9-c}9z~Dߴ!/A}dl G+*qC\$&OSg9z}1ȺA%'={o G/-KrJR,Kb9z}ﻻ5ՎO ~H>bu%Qh GGv߁t@$Ⱥj +%9GV'ru9G9GIDUtKm)ugĚ<8?pp =buV,8ͻ c>DZql>pp Rf ǖop[tqTE}s¦MQA1ȺLs-AZr&<9G[@CORkr_}SK9e9+·dwd9=uy GXNqɁt9zf$f,Ɂyor`UjG 1[LL];;Ɂ}g9zqB<$~} ռ/i}K Go;;#xI' G˳5,;Q y64K9:TrTG|Z#?D1"rX?[Oʞ@2 HF=,A2n#\{{oJ A2. =bK9݊xkk7m{N^dݾ'_}?=㞴9e9A @CշXx8!9#.5ykAGQ Gˏ  $cAQikFNZA{ G&97L@O@Z@`9~#G o#&.wrtc9*Go`#8w G=ql99Q;ޚ,9jUre GeIޚ=yӭ rqDMzsTN#r*w;9ڲtrT+19G?9*Ѣ!? rX' G GGBtc9;툜^9 戜>"^0G G/wr` G.>9 >br`@2z$ ;C'dԮ9AN@. G:pH8f cK 8msk2 .-8M1 ޑhWPrsacS8P=qgql;AߩHKDZ}7ql;y5+q k&pI^Ǒ~L禵ů`M8,G Hl G@,} 8p6H #yuq9뾳=bu? N4YM-)N7IQ;YNQO8zw߯V G K_!#d_}ÝY@.F"UQ;|X9ue$]rT5q}=WWA^z& f?Wߢ=bpJ@NY3 輴ASk rrt(9:}jb}j G)Uaq˝S͝ql2r8X\FnitcicS@;őqɘql:!28o38!1nեOAz8YǑ<@z-AzΫTܚj ;e HepǑ28S3H'GZpjql28,yt@zq #/"Gmq8~q8qT+ `XK8W `xd\V~d3W `7?W2U=3:=2ѝA*eXFe9tdi: GL rU䨒N!@e9uO=@jQ˅A[/ S rԛ$U󊵖%2ܹ58?I;䨍 r*x$d+-A9s9zuAo%]r1 rt(\A3X˓PM8O,%9cq ;b}X46{Mi~ +{ oLayDZ Wql: 8MtBp 8RX# Xq/>#)*^q$F 8qH 8$;H 8-G:ܺ!AzOn#XU;yd\Ӆ^q]%kI KCqBǡ$*G`B8pvpU (X@ɿMSYr W@6E Q1) GAhڰnH G{_}w _ѳopa>°8N GO GO GO SV9z9jc=}ڃ=|( GO GU푂irr^BZ8<f9z ) Go=rߧ) GoOJ X9zn8<-O 7rTKӭ_}B)XlRNCU1:Ź+ǔ*X8TcDX\ռ=r*6Zwr& .{ Y@}RY'GI=@ Zr:qUA@yNz#Pz#p'dLnM@E;A&G`N(kԉ\r/&ubu=*x_}IZ}^2kq{8./h}-{uHíA2֬T߽ Gw+Q^~ ~ Gw9+Q%K{ ~A)UA@i:9uRldrw O@ GmVex9Zůk'b~݄ G h\KdpA6 G*h[ĚѦQ9|ڃ}",V'V?-b9j_9D G rtTZ5O O6DTJFzAjTLרVTjbp&&ïl7z72k62eF0{0EW]#h^ɋI⛟,]}/ĚѬ-U4E^r@J h^jޛ;mճY}rr@6wQ}{d@v.P9ڕɨqQ )#=;!'9zwr!5W G/ťKi9zy G/ Ƀj G/!Kr}dlrAn1Ⱥ˪Y'>I9OAZ Ghc5ۧwZudÝ^?įfeA#^^RRrtkAA.;%p9' Gn1ȺN@MOZ]2{ }9d2@+6RʕC7%oϡSbSΡor[_18MNc>86Y `[t@5 {/cwkpP!@q#Xqk2Lw `}LW `$0':8"jB7`QC(>OqYGn .K zBup')Sr'a8qN@6_ G ]b={gde `:&432M$t G? H rC9g;#X `&LL5O'Q'8A" Gl `2''vo2ɣ}F˓'"dgd `L*8#e'9:d GUn GUoN~_ G״e h8> M0Rgdk GdqLW c\<'8z–~kqp>Si88;9 #yH")8b'8$ `] `q$L/G# "zHz՝8RwkpaG.L^32<QV9q}OZ{^'8* )pIU8jv'>qTNpMaGxT\ &&[LXo\L+2 D~E0+2$"+2ɴ"Xw' 䁺"l+2uE0O-=@^? KF"u `.9:@a! 9: 9Q?/Z\ Gw8W ܌2nF Jpn+n ܌GnF@ =8'Nq2.pN"~!qq~Խq>8q7 2U78XK #{>qd%p3nF)Kf܌pL_85zqTE/pM GH|pj Gǡ*,хmqt9J.2~v xq׋ `WrV `, `M[E0s/2-lPW8ƺǡsP G F9opN/rpӋ8hDZ}ouTDZv؛T?IF*Y78].: +|Jw8w8qxI\kq}Q}ZǡU܌8q9Xpqxhopv28G; t8t8.oqq},tq ,ǡN~848 - 1{qN^}O~78WqLopsjk wcop!O8npKynpK4R|x786Uoq8Y]26D8dQ߁IprLݿqUЮ Gq8q(}Aql2op^wdxG0oc+#pB݁P";pխqx /qa7 #ɮ8,#0qցQqHRǑ86Ǒ#2iC=@4xzhATO~!` pœQK8rǹA'd$Zbp]fqʼ8\g p+ p13q\GBF*8%qCGOȞ8Ǒ 8G8d@qȓ3!p8,!DZd pKA=@2R ?t2①ց㰘y>qlqlr pX3.qx#8q78a8T'08vq->ǡr#p>qf8[**]Smz$q=qTy8=nxq[L%7aQtP8L}8-GqC N cQM+8ݚ8ӓq'q蛟Pu.QMκ܄8.9GgTrcpǡ 3pNqL3pӝЋqC80f8Bn c58Ag8[G}RqZqxqo2xQM̌Jn̨& 7[8tq(N2qdy'8G79a&8,\Ǒw[G9qݭ/n}Ӊqxۃp8A'8,QB8Lȝ8Lȝ8, É&8*qp *P9qTY3G}rfq7wgPyG!Hqtŋ'8G9|78}8G A6q 1q85OpK+pr}q! hPp8UZ8nmqŭ,6=* wBeqAFqO$d\^㐛vC D+pJ!1GCo8#8 q1wOx$'8֋֚<0 `N#!Lq'ݰOTrIq,DZ_Qmw'h-[sXJnz i+p;qy$?w|pD%۳$ut-p.pN'֊Jnzb82p2V8> 88> Gm O8 GD8 хVY8d  GWotqt!8.ѽqt=o~v~xIjɫ;#Έ a; SF~qD|H tW_ bC|;01d8̪pB8mql#Nop8d|oJnGL%.F%e18,};qTQ,&Iq*ł(EQ[)R,8Rp;G6G)8J!J\hޱ8ڭO wcӆ!} G?#?VvIUDU6oM*?n*Q,lf}Un Nި~X'Ĺ:UI^yꪈO򈉊_qq=Ǒn8dłQ~qN$pZp5un%8e{i$Qp:Q.<89qBD8Ӈ)8Ӈ)83o;!*+ Y5q#!*n8֏xgKb4jzW?IUyDZ GL8wGL;q7qoXq(}Nq,l8uZLtĹ/MǍrw֍67tlDU|nDU$< n|ís}FTeUtBlDUQ1ulNMNWUnDUҔbG įrxĹumU)S*ej-RR=KT넺*TQWejQWEuUTuU<tRU9K>3y:Di;!J<:z7qCǽPq+ǡhuq Ҷ^&J;5ypyppWɃ?fyZu#-)FU*Hx O5sb'z'eZDUrkq'N&&}]MXw*'܉܉o@i݉ȵ;!o'wJ?7Q|=~u'w~' "1qi1qNN$ɫʆ؉2v*vDU%1Q룑U>7Qs'(#&j(ONT\ QsiDUnIv*=Q'~lc&b Qíb%(^G;8Cl C)1QCǡjT/<k|Hw*꾩P*%&vl7Qe{įU92*K&rXDU/QcHDUJDUfITؤ*YY^DU]'QcF&%ډ=;w*{JKT8ۉTyv*UVNTEɡqDtpUQŨGQ,bo1yuVDU78<@RH\JvATo7q)؃Rp =""WQl*?n*g#,&'QlUꈨGDU8*]-*>"rZOLDUnOQ5,˯ (#ͦ,i0ETEQDUJOUNUQ9SDUt)"0UQGz6kHLTEnQ})*IDUNUZUݓzAN] *#~yDT%饛$IQU)z'*ENJf'LQtkl?Of+ESKUi˝f[ !Z&jJDUMT^DTn O5^~QK.DTN܊y%**1Ӈ;=*]Q'Q[e"r LQyX{#!2e&&*𸉪ѝ""GIqU.ETEQDUd]""/"b^"2N }[LTE.QRST)U\+||U[H 8Νlz V/;GzrT7ZLeV/Aj=KߙJ>=Kl53Q\=WYf&x!VDU)UU߄GLKOLTEI 1Q,2QK7U)}fUzg*F3Q*G&Ro(ź,&KT QTs(DDULTIX:s(QKLTڴ:DU.3Qkt"%UUDU DU'hN:3Q[Go&rDUn9ʽ4@*LTV`!Î6̰c?)رS ;v&wQ,wB+y:>xZإ5bIDU>brV)#QOU4({ʦ =UBDU6Ź3Q'rDUCTMe*גQܚ( QC `f#~XYB4K2|}xJ:-dK/K sׇWdG_)æXc!8 \eyd\q'ɸæ|<|^b|/qd(l_q|q/"2 +86&D0AKd]\" /dN^},U(->`Q-8ꏑL h >Bѽ5qQqQqE7 >eب)NS!-/Q!-:i!ح h!+ `" `YÛI|J2r*TIV2Mԕ `ST%2J}R6VdSvGLdHXq(y#/Q8DC-7qo>d8D >˭q)Pq˝7>[j8tqLwo7>~*B8V8.=j Gw;.+>;k8hTǏCqAbV|Jys1o:6ހ5qȡV#GtѴ Cw|Oj&!`%!^%ѥXqW rЕQA? _ѣ['͛[1uU'QuUAYuUdר"F]w]-1>M|B!gF|g Q8| D]飼IE>ɓC,8;8q|zH!h|;!x^qWߧtNZ|5*^^|' IW %f|ǡsI1HA2w›{Z̛[sǡQWe۵QW$ܞe^F>o@?c ǡݏ|}@FMFH7`x$gW,EYΧ>ּ74p!G838 Ga=㳹עq7p}h Ǯ۵8[ny$O #q8qdٚ G]q=U8zW]_‚`wPWF qCC7I HvqqLq>)f1=qǡWDZjn8Lo8Xn5rnbӝ A<=&*.`#hD4j9>@qGXP-j1`v_Q;֟8.Qѳ&JhahqPq%O͖FNq)q8G1J8# (Y18cVkq]G{PCu'q]A|Kz'cq|>DUTLOnpXPR'r[މ5;QCW˻ SRt|y$p 8O|C7w1|ݝLĞB]czRN%0[/d ~ P_kqKT/T*L (J|_C~LnX=*[SK;\pU~|UыUȼDU>bu*Ar;Q}s;=Q$O|'ⴄ3!v*}b雨J$'Qr'Qg 8(A#Έ sU?|XKI]Y7Xu褮)q'PwBOco3*zO*E3*?Zx9OVZb*_}7}'QgQUqUic# uFTEQ;*cDU?\z_DUǭâf3*UC򌨊fTpF~o3HXtˎ=8)}bqtXO,7^g9O,gc$xY88⸕0g̑}cqLO gcq,N*K҉űy%IX;(ߜX'c9qFx;,`ʭrbq8_axXXgX`8?ޗp3'G}bq8kgTr gR[c6O8 GTQa<%~O&Ʌ)̅C녏}?x:'wǍH^ ^8l_Xc,ɐ$Ņ1M01saqWq'9)xH )]8 G:wG$>kqݳ<ݚ 2? :Qq4u.|MFtWgrkn@Y>$|qjuR]=nr]X q]1. p^ cvc9qaq,=$/,%š ֢c;ICI>r{:?Q"f_TgFi.jcXQ^$qx# =q䥋|쓋ǻG.!R鑀Yƛ[r sGBˇ)QOO.ڱDUJnrz]Qɭ57PQ$2 _DUQ.*L/p8$v#yH:[78sQ[qTwdх~q?ĜDwyd8nzo*qs"@p"Y~>MrK CvMTeuwowB$Y78]bWcᑼo3*oqM>8wW qx!8ctpnGQѼscq|NN8!X,| tUUpGTE;* XNqcqsC7>E o|wv?C;* >cR^:q bqTUXKO7CڱMtۊG%85/F8 hm6pM>zAVoUW rꊾkܗ7& rԥEn5IowBPNc,O>|xڃX XKCUXښ8T2AKV )nMTE눨>#|'#p28bND8wu'N }`qL `]A6q5qf㄰ެF8$G0qܞ<>[ʁc.&?n#:qLY'Cn!28\Ib`qd9z}hR[K/c5oTw҃_uWݺ//1֯<%~ K<ɒ/ZNߙ~wOޏw&1eo;/NK:x?:xWޖ_W7wgI¿cuįu].׭L ~'> };)}'pkb۳L~܏X_ w;$NTK<\Gxښ$}GBBK$&OBiH(|oɻ_;!o> ߳i>p`.Q@B=Ŏ2Iy{*~iڃ80G*ˇHks+1S8}Kω-q^ڃs&_9xZks"}ן%NyX~,ݺҷV}N(#dĜȞ'4xĉtĞΫE#9:X)RMBѤd;íw;ЦhRٳ&OoEd;ߨ_X'w_ڱ$ٳTEX'XuCmj$|o5n|Gl$۩CkI&N=Gҹ:Vd; % ĞΤm8tA&ﴲXޱ80K?ǥ}v;y-#dz( d' o{-Et17dZ|2q~toO Go(ZbY|E,[7 ̢/bz-x /$ENl:O(l.)Gli-7!qg8qxXHk8N&ÔI9,yődWEѤ$&CHhR֤hR7(]4I7Iӭ M/n}#qTQ4ꪋI7>)cQ'mqnDIt'R>wDw_b^0!@Z?F;Kuz-|˩KѤGq ~7-1iC =n`wy4-qԥh#֎6V"wu_b^0P4)=˅Xkq|@q(Q77>>P_Z$ Hk+#&>K Nqܚ|DUn%>b >ˀEL'2C&QMʾ2H(~I}P8{$.>I(hR|~k?Mh7G'lgo`Iw2&2Xh/(PI>hÚQ4i#hRt)EqlS:^O&=/h{ H7! EcIiɛHѤ!(OSIX:9)ЦhRr,IO'ZɁW'+Yn]]з&%?>(>W&Iih#DZtpP4[gE\?H)]B8 t;4n|=>] &]p&=߲IX:q}hRUGѤg5q$)tuyq$2(WGBѤ*hRN2(^MG>$Iϸu(H2A)MID&=Nз3&$I9OѤj,'8UGѤ\e:S4)W%>*#IJѤ\}~㨾qTż(kHhR8b0M_b4ˋI FѤhRxAe#S4)w)xA/O/^qq\%pCC8=>J8[Q&=$]%~}y剪\:f(/YMznN H䑀U(&ݧ;|Z'xܧQܧ ^S:!r+BFѤG,}UOm{*a&=#qѷ72Q[?&=5^#,Eqr&e(X,'f:7T+Er&5:7>NnR,>U>q>,%&?)֮9ZhRl$#N >j5)5x(Uӷ&v>}o7tƒl[d;)t$ٽI˙AѤ`9Eq3Mz⣖mOѤoNGo⣾ݚJL@0|&=uVbf%&pJN&=&,R4ӭ_ fIϧ%~5ŝh:IjMKѤG^~TP4[ĞD%YԚJ@ѤGe RV/&={K#!R&hzJ_:&M*z)te R;kFUiV,QjDUU Q#e5*ՈUi}BѤR}qMѤr BѤrCѤrҥhRDU6OLQe>5*CQkDUt׈ S#rYLTEQqjDUhU**ǍzoqjpUtȣMѤbIOko~= }kuJ۝o9(to}hR5IXP&ՏOd4~Dz?Pc$YEzOw'NOH I㓍~{q7o}Ƿ(ÏIx8&=Sb‷&hso‧[CѤG\$&xz:G~〇>W&=ů:MYW&,EjIϑ`˻l|]h#q-BfP4PuyryBѤZeTFѤ*QMrFѤ.RxM^&uh)"&Ϗq0oȎhRnMqq׏6MzZD!|JMz:3QZA)|-N^į5xsAѤDѤ!E;Mz~ҭs_7qnYMz~R)$(WзޗMz]зӂe)Q4MѤ$NI(E Q4(EP\0&YRFOMZ]h)qQ4i)+C <-*^DIX*-*gy"F&NI$ שكeUzpUdh{pUU}҃"#We's_IܗC{5qnYMJlMz>%WSIiBѤ4UQtIyO8$έcWEWz$ĹhR>dQS4{&1qWk0*:L{pUN =*z0hc܃{W$*ĹUI[MѤĹuR4DJ<]}IKѤJՅNѤ\;!-ErHѤlENhDU^Mz: اDѤlExĹ5ޱ8 (&=bфюIG31&u hRWߧQ4/MT|xD@I}5QqI(Ӫ"*.E8+GIO'78ENAp}I8WGIJѤlr5E]{Mz(Nk&=-&έ=HѤG|JL[E]dMz8o&=Cb4(I32 AѤlw'E'W;E Iy4KѤGKLahŹ)?g Ǽ<ݺ!HȐIOk6X&-gP|z؜C.I&MzZ*A(T>t)T>n@Ѥ|IOk鄨'yĹH;KDU>:8(DU>!-:EۇG0EGdv&Mz Q$-EѤ&b둢IQ&]E#!=7qnDU=k->O])t'r@ѤG$hZ"YGѤG쑐\|n&%&OQ4 QqDUp3&mEQ4E3#&f(T. gIHq{(ThR)>cqToMpU&*EJ]8'9>8>$'uE]FS*I*U9T$ǡ#44p >bK ": l8q OI  r r  172%{/ 1@A& G7@&m hb=b2R}1|T?IFo\#~5oh;=xy$ ݴ$,wǖoXʱ߆#&#զd~b=b#ɸ5HM9Z7-1Ѻy:&r H#c G G M$d~88O G}Fj:XG x$q} XG|aq#~}AaqV,ePcPG!8ƦYbq _X'2ǰ8;zv,cq,Ow [RWX>f8Tر8;uXߡG_\YqAKjp};^qCrtO= GY;CrAUS[ːBߞ%޵:)rƳ=brTg wR' G;vG,A}vƒ}'-cw2s H]Ya;9Gi}.>9Zt-Fwr.s>9Z5rYJ;9GKF&hѥGb]'r%>=n7_s'hiVw }#o}RmIJWɣUirIpU HtX'|hAfr4{#͇=2UG _};A$*p'h (# 7ɣ`6LpU7s빻ˆHpUSz`uK%*J#vMpUr߯% t=bN'7\~{=y &*'X[WE91 9R }kU $*UWEI&1܉N*+e 8<o*˭ѷ r=зVMX$,S6D8vJXg2`q %,SfKpnYbq>kkbq>°8bURX*SpUNU;*zȀJU\R }[}cq%,SVo*ow5u[C` }kXWuWߗq @8.ǝ5K,rыNPκG[iMߞ Qc8yϒՠ>tv }7T=cqb>22on=w}y:T4,%/cq,c}f1ռ;w 0UG 7bA*#t' nN2䨝09+>#-}Gsor.J,r~k\Y5̑ѷN\9*spU! \ $">᪨᪨#$rZ*GO g8Gk,}}o=R3\?isd9/<>[ WE-1[*Gs\ WEYYΛ>*G8YU9d,r.+,Gs pUwd9/ YγuBs9ˆȑ\ W TRwpU=\oxUiޱpUw\O J8ؒ4E'2Yq Εz*)=4$Ft \]A \ ԗV4y \ \M;> \Ǽ \Ǽ \ \=U \hNJBUi:f \od[hR,[!q<`Wî`q\Ǹ_}_lXq*X'qXWE_q \YcK UעWE.\YJcsV8H^}OJd9)W"tkAr.u,zKd9cDsy ǐ Z"˹Y,\Fe,Fзu/ KY΅g+\z,炳rD,}oJd9DsE;Kd9}O( G+ G<ɸm ʃ/k rtXrNb-$\, o';p.5CZ&p,`W]ꖘ,W<9衕 GFsٚ5+Q#ǭ᪨#n62٭*Ar!T,f⸼8.X,K^q ^8} q:X/],7ǵ{bwr#2`q\>!j{mv)1TaqZqwM^~ chC4,aqӁs'a%l$/0 c߰8e c(ذ8A C1t5,aq8ְ8űnXKűoX5,u{7b]uoU҅ް8r!4,%aq,\dRAt|pU> 7*F26*ft5*܈=A'7\!l \MDWeJU'ipU6 ʦU7$Y}BUu7*O*We?<WU9|U9DxipUhpU+jpU5\f\ㆫropUlipU'pUqU\ǥ\ \t'pu'lpUkpUlpU9\5{U9DipUk5 QCv v} WWqWnXJQ U)Ew*EnWd:\:JU)`RpUY®GU);]kR-pUL;֬W(ߏ8=%][LttرM'[N J_ZۺŰci1*;=@|@a6lvCavl6N@eOoCZl6%Gcqѱ8,/Zb,S/qDVby}˭ұ8nViY7YzG7;o 7l9oF1|bqLQ:T1$XS!1XS11U)ީ򑧲SW峹oc1ܷݝ}Sn^ӧ}[%ܷ}SHWo MZH PHZXۧ}]\ u+ܷɿG߲y-ͪz-Gy-G쟜}TdA*+W%[pU̖J͡o>pUrtз?@*tJ}UqJbꄫ6NpvwMs%o<\N*JmXRA \,O*MnspU 5*Jѷl?WnpUNyDN*4pUp|U9qU9}7U9'7HW]|U9uV]pUӭaWu]%'̵JW|t'hPWW/*utk4C邫⌂\[u^pUN\SWwrXt_^Xu'$uD%OKzs_Xc$=xaq8uaqpt\X]X#oXs_X#X:/,.,!7օ16H}n|8ּ8\9̡oJXC+X,)1!8T^>8A,%rTU1\bXUK( s_%XB \CV WPJnrQm'ѷ<7\gKN`7sU1󆫒gy!}yU7\,O,& Wŀ]d7\R, JiI*svU)rpUJoU}įㆋ W04RpUl7\6.tkXpU7\ WzUipU,uX]|F%Y5 ^}cqtqR~;*̍7F%75EJn&vՈJn>QI n;BJ3*IUJ5$&\$̄pUt2᪤í;'Cbؚ 脫vO j-'\bU:O&\\,򄫒rUJ=d=&\,z֔NR9Oo W%շ L*E Wlq֔7T'\*ㄫReMرU ;*|2aVvlurŽÝP9o5lMYvl+%lfN`kʚc*vMرM ;9a6rvlygTrbF%73*Uw[Ǹqkؚ? [S'JnJnzͨwܼo'* k1wTrGnQ-oؚ.pw%7$NM%7f&kO,WXY>[3*ɏ<<7ɌJn2gTrScq8<8\{aq8a1wB%7x+*9ϊJnʍɊJnVTrnM%qS-''O%7\MpWe7xUqtB,*\ ʖ,.H^,#lU1wU1 xU1yU1xUu.*< c TWenE%7>VTr l6ܔlE%7z\ъJn2*WTrMr+*તv5=0ĊJnJᴢ 3Ȭ&wE%7WTrSsE%埄=8tз Ka DZતǍe.*IW%ɷP v\+ر`* v|+رN:Hvk-k};GXcC_Ջq;LcYcNb[}-߰cˏv3,رş+X?E[Ž->!wM`Nak~}1leH`~84I {05o{v>bؚ\G [ak^l#}ٰ8ƭ;5`.w;vi88N8>mIkBlPsy$T:}8׀1}bq̥1}1;v׮ vN`Z`~4` Ώ7lN`~Xرokq[wZ7ZiZ5_#}ɿEK`Ԏ :}{$o3Q;R땏ڱ'Q;Vcom+[sڱ[öhQ;V-jZQ;t^}o6ر{[ c}BDت ;6ہh`*#=oر٪ڱ^Wco {hDXo+KiڱQ;vhWEXQ;v'ehQ;eCE` .wأvl=j>7=b] |nwرxs'>wQ'c٣v;ؖc;X1| Fiv}FaǞzcOmvy{ucOJ;S;+z{aǞvر7ҸaǞwvرX;H`aǞwvر }kaǞr8cÎBa^aޛ ;>قXoX v;vT'c=Y%yš@#\eXӧ 1=y, C`G{#cqL];8,%^ɗ`#{:u/2z{ܰc܃{hpU}İcw-Zc;,We󆀫%\͊ʾKW]q+〫p:(_ *P_ *}#ر:*)YɒD%7o~_O/ \I\$GWEHtUI W%%%\thG[:wDpUTWc[ͭCWExG?n ;Vfخ%?۴[v[Gcum|cV'ر]J= *՟kcf WSy;PpUJ}U2D`BR,\yčN**=y$Q[S[3رٝIؚ: W ;R:S3رze%۽O`v `Mvl;ۓFU{g0ѷG?bqdq[giq`qt] vl}۫ǍJ,_Zc}E;VT vX-Z͎$,wq v)رcovH`靖8N`~J)رz`v=+`O=wcpO#5;VXRc0N);Hз)رgo}.;VؖX Rc3MU >;VX])ر#A#ArI`Ǟ'=:o&;,ѷ|)رr` PA v쩟"#5K*Q?bؚ}T5U|VU6LpUMpUjX&k&;x$c};6EkM>رRcJ=}g$+J vlN#ykv.;{:ՎrJ^*?bرfXU)رɭaLpU W%n7\O J5$Y ߗ JZUIU+#;V͖$;-Ѡ 9رD? [s77_ȊgرyzX;VTvgXg9ر2rceeرEXك9ر]`N)6رBz`zu~c=nر; v;vX]G9رscSթ[v|9ر آÎӁc ;{$c5;5XfrcŰc0ر]cQ;{$Ԏc/fP՛G|ZvÎ5;VXscX|I㔓1cq>f8ӝ4WJ292-cq\ g,˟TԎnMXQ;V&hڱ[5+g]ڱ2sԎ-n YVoڱ[U/pU6}浄3\iX\2 \]ϠWe7L&)pUdFsUI|(pUlW%Y]\તa#Pt*~*~*y5pU,pU*pUϓ`ʎ- X;;VW% [$o{*#*IW% %WQX]cK[+WER v})P8\)^(kT*}˴(5ŽSM رvfرɇ$E|EÎMrرI;6 R`&Qa&݀ubJu=\ 8Nw fwj~'b X ;VՑ1bjԎUĦFX+Xzİ垨cvl@ŽUG Y^ ;~<ㆍYFXjԎ7lӁ<,<7ld1okԎ̭FXE*.bqt*GN*G$#frU,>=@Ȃnߵc=KbqT,Z Y z YG8eTV,SNšI6rb8T)U,SdߊqV Y7`[Xq'wxܰGY/q{u8n F5`qZ8FVТ`#oȺ*ǐX8XCc T,? +cbV,!bq q+1XcjXG̭bq[^1DXKƊ1XxmXKpX6,%dXOvkkc?f؏{ vGШ;Vw1w?nMݏGX^;VBqÎݬ#Sbbر2X]X;رz`ӂ;Vk vmvְcY;v;6/>;5a#W6;vlSB;ָ;ymzwرM;Oa6=;XC0:=zHvرz:Yc[Nww,ѷޮvl Î1vر\6v9 ld:sX Y`{a#nc cOvh{d{ g,S;ԱaǞ tر.;Îdtر;;.Fք 8w'|wq ?fImdѿ:8nPN>@~N>Q}(aq4#`q*߱8rwv,)kcqۓoO,|bq qbqL['Jćį^'RpUTNX~OpU ['\ N*'\M We xU1!<&qU8l[ѷZU=8E WeW͎v['\UqT WŘJUq W%)pUI? 6'\<@$oN*c=XX8 bo'G-j}D>a#rŽMNرk ;6ldfOرGWE~v'XOرU3رĝQ;glcO;q;Vak^{gc/AwOvla6vogceU*3رbʝ veq[k#Aߧ[o vl_e\c0HرhP. /,_<$~%1_]^Xؚǥvaq\zH^ٱ֔? v"x$N`k|aq,aή`NJsaqDc%~忰8\XKf˅ű8 c1u;V c}<`˅űty]]%X9.,{$[ co!.,Wc88<#WԎڱ_9- bq,,Xtaq7O}+r}aq,a`Ev;ևicBv0"Wce^ v8.o*pwԎ3ڱvv<,[vo,[/pcȳpcqbPcxJ@tGXe_vwԎZ7cvwԎ:ڱQ;V;jʙqGXoEڱ}IۓGr`ʙ1{5lMYa#j*9vtkؚҎ؃$~ڱİ5[S5^#jQ;Vψڱ\]ـtK *IǀpUπt *I8]%NvN`W<*}$J\y:p GpZ P Wc34'\&\6-<3j :v<3j :vt߰5;躢'CJ :8GX~N,`5A')/8e#؃R] q/*\&/lU1}Uٔ]pU~r*\MN傫W{u-*5{TAY[RYXpUl JRpXpUo*N#'pUA J}gU6\̷  JW)-*]WŹW WŢ J;W K W 񍈔\r?wy̰IUocE=fU_cn<0/<]5UOînv(aW2Îc]54رw>fUc]uha^c]u3쪪9Id]UAU$<`WMaW] ۣ|{evZb=fA]9Kjݦzrt7Qe3ܠ 9ښ GCrtF9y#m7Q%3]uݦrT WjCWi2pUJW 9*9Jp4 GswpM\쵄" 7;r^JM3W4JKW4 J{ WxCUQLBipU /M-1\mWMr*O3WEŭQW_W*R0-8*_0-G W ʭ"5|c[pUU9W{*[pUn7R,3\嶙w\6*ZJઌoƦlpU7T6*ʓ 򿗿׬UQ1"3;V~WeMW6*\-Ŏu͍=`Ann GC[] /M>rt;:-[k٢rR-*/NOS9Or4}I9>Kf> Gh;\Zx Y~;V eW%SxedUQ9L%)5W`p4ܠ=90{Tr<*}sJnJ=J*ɣTi;\`c56ܺn{TrfJn^y*҉/;\>An c "0N;*Z˨vvjNJppUzpKp4x*CWex8T1SY,pۆ4=xASWEw=*:\E; >*^?OpUF WeZ*S=*pU}જޱx?**;qp'n7W9*xn=*K\],,%\m\]\Zb<_v<DZiUx붙:d'$)*zRԩ| zRͱ}ઔ|;Uw\ %)*dWE\y)*mU)**E\]SpU|~WE\ݢSpU|~WE\\cU$*,%]4f"fpU$2A3\U{Y23eI)QUy̰}.aX/pUmîҗUu**?fU]TJn{Jt~(hJn{D%G%O|kE%7JTrSҢD%7%*)_ۭ%Jn{󭉍Jn}JTrTtc;i9a/Tr+*^ ? vlQroK ꩂ+ M;67]UJ }(濄cvl;;+S`v} vli;+T>%*m)QMEJn47eTrF%7>%*m)Qmm 79gv4?7- ;V9ӈv;v\%i1*xç=<`P%R8T<$zvy>uc~R9cv۰@Ue~wu8JUD9|=f Kfp/A9c~:fp N0u<|Xڱc)8ێaوappbUN7ʃbUu*lzI:\MWefpU6/1\MUd9lUpUv*&Uc$}2:\TݓbiNતL'pURuaU.WEUE"u KW% H1KÁR{\, JHJMKXOŒT};\t=fXsKWmRupU J󎅫AnN v%o77iQL XVN G7G S9 W埧d WE~9Z G8{hc- ELh77EђpX G>hQm-DEir(l8@E1n63߂m3]=[W(?ݥ=fTtc̠\O#_U9l"Gb}J l]*ƅpUr^*M)JWIx〫$/rUါRn*m̷A\I?f{ b R2; ] *CW2; ]*CWezUJpU\!Wel~:A \sWv-{U96[ nm$8Ā:8E}8n<{m*`pU|Vq,E<فDZ$,sqWk^5wo߷a82A{U>UgpUۆ2\i3*z]W9*K7LMI r4mn{F r4;\iHL᪈zWepU2<2U%\UQ>8.NQE-n<'8kxvnp?@*2|rt GO7rT|;b݁t GqjSpG5s]RP9Wvs*@urp U%dl~$;b݁յhp@26 HF݋@{rTa;MG Gɽ9Q]@vcJrTi;O3ݣdE09mfQm@ ޱ9*0 +e@*n$*纪?%3HF+(l dnt# G_vrTaQ]W Guj@ꂰ9 NQ+O3ߺ|@N%- 䨲+g0srTrTn j+…@ `W+OQ/Z G9v G=wմ@NQF-Srtꂰ@N+J)-S׉17?]0/+h8D c 81ŀZxZ%[T GG rTp+b[carT1Q+w?Ϊ?F\$*⪬P9WerT%+W G/<Sn$cYڟ\cӝdpÅ8]8\kp õcW ܣ+.pFɏ]8%pI#)qHSfucYW4ȺA2~dw=fu_cYW43U=fp f;fl73X<  +rim@~ n$2s̷n.*pt#'f%8rTOwS L%1z8TOrnkh~mZKmӻrmڱ Gۦ1}hAQKKq4Ux?94<|q ̚<c~:p`5x|qLT·h%H䞼HƳY=9z{@޺ l G睊BsTm Kvhn cDa<v,R{ o DsT5oh'zCs蛶9ZUw ~<1to@M 8ۃwju@c74Q)R=fpxfQ9:u@Nݼ6J?7K'58~?8Q^<Ӷq N߆=4GȺSfuzwpo13k;8~n|H9uh26 ;8Sq)mqn6S1r^=k GO8vgrm9z{;nFa]opJE9z+A~@~/A.a G|s]rv*\KsBVe<73U8y{8i8^q g0pqd =p89 ǩ/I8NMU8tq82pqh8e )p3x `CfpWp n\8fpq|R\n^)pzM5l%`8ZߴVHj>DZЯ(88~"nk")ZBn—:Ys8 @>DA9pq(nqmp_\cWQq ? @8/1bo338of y8hǡD8a3=:P,C-ci[LV.h&R.?B~4t($iɪ8LOd񴖁9prr2YO{($麜p>Pd!CБ8N8R84U8opӵ 8m?^qxq4s8qˁ*c/d7@~UGrQHiW8828C quǡ@wq(q?-83w28l3 98:gp3{ ;@ CE3s0(1+8BG7;c0 9p fq(ǡ@If<' qM-P_s-/x؂qiK8 q(SYǡY B%pz -H~GteTOdWDX* @DZt].xKkX q➠H E_\><W I 䔄"HTApVPa-T ZV/?Mt'4 ×!c&Ap2P `yln{Cآn)+|h8=Q 8r'+(fZvQFW D˃Wuڱ>fvW Bڱ Ӗ{{jv ǬKpdU~ʾ8~8~W=OM8~V= =n=X8~OqOʂBcSY^DZ+UZtPfM,8p&fM8]#{۷@!|{R486DEjV8D}(|ir1u<%3yc&ϽO/̞-c Ckǡെb58tOǑ4Qmqi4ը&KJn:רx2ǫq\Uq\ 5ugxҫqOzAZYZ-$sdidiy{j8>cr_$xlzWrDq~Li!o 8:`3!^,/qLɪt9 #*OU~tɪ$b 2^-r*rldU}U"/dUPGdUtdU.**aWvUu;Ȫ,***OdUhdUi*{'j:qlr86Eb*QG ƱM{'Ɋ8槉:/?IbJ1,,A#8ZNG< 'ZbYGA# xHK;qdxGT{y?c5I# gzDzQ Ƒ8mח䈬r#̷#*68ޣ|iQ^Q#uh(&ʯ >q4}bGY+OD&х?qt]b]#4G;BsT1QeU2 q$wnuY#yĨwn^YC냬ʱ{p}BsT7#4G%:BsT7H QO M#bpQ#gDVxU9uN**fV'YUʹ9\idLT\ᧉn(x34G9* " *j QWUpt樔'gh>CsTL9:QgQ'gTWbFzюgTzyFz'ǥL1>xa3}xuVQޫ='Q^ɖq+88ne'ǭLXҘxK'uv:W7r8O<DsrMqw;6 >Zr3+05VoؤZH&/!'/&o^gh.wߨPpWE܄2*:'\)y}gD(D牭3ʣShWEʮ3uO"f|cJIYVVJnڱg| Wb3jʏpUN '\S^؄r*9XzUpU|qpUnF'\'\+LO*NM*kGc@$QUS;dND$4xF%7EPz$QNbUqG}"8.'1/mn'FRD4)rSfr Ѯ"*9w \̙"*!* rtTeT_kn'Q'XOS\TX9zp G/)ߜ G͹>s Q? r2rT~Tqlϟx9yĔ;HC7ƓGg8t(8rr#Ĕ|J8.'1%9q'1"$aI%71y8d2hqhqtݢOb]/ơ0bō8F7r8>#Ƒ='8<1Ml8Nw\gqț9CP\ =w08[?q>qX$a3b~"o111qWq{ǷNcέzέze\XW8ti"!/t#ܹO%wnW81MU8${EC `_9m3ʪ\8uU徢_RWE+(+~E]=νܛ DD+(`|E]e "Ʊ ^#qTWU񎍺*s_qwn.8,tq]~u(4zr =A.8 ԅTBTS+ 8%]/p~ǝ[ Ǯ+UBtyTMZrظqd/bU׉o.b*Q"q{8qob1x1SǹoT;^i1cSzjQqT.p pwr-.pUY Gսi6 G;Op躡>+&18\vlӰcظ+X`v$Ls6? [s [s5qJ8nfnb 71[c71Uf7P_#P;pށ{yqz@W;p ށPP.M7Gx8<7Y.gq>!bMVKtU9;qzbq^bbǡoM!aPm㘺8[~0Q&aM>!aTM!q*~ Mê:71S7vnb"971S_ǩMT&qs㸄Jq\MqctOq\"8:8.{nb 8fnrnbvobpa7171K=6YZ5YZM֛ Ʊdi8?8FzeW{G颙MFeq!ze*^x-GW*lGSસz=m8sh2+X{}Ȼ e^㹾i;A+*x?f|$0&6*bસL̂r xજWP^)N_*RȪTYo"Ru/*UNeq'ef'a2UΓؐnBl|P͍سd,RJ+(_ 0G `=' L- cSvEVEģVkqd]G.**MV_`cʹܭ* z1Yxs_嗯8N`YHxxz]8N2jxxUxWU@2zN8t]^qSurǡ ß Q;vjDة;V3HFzz9ޚx~Ƀ' =xCGxCiiCq܇qlmSji<JFG Q:xջ*pY"</ZxY8Sf<84'QW;cN7skWm G h 枀me Gm h(9d9TgNb}_RBsKiY,o v>Y,o v-ر [3k8dUz@VeeȚ**?pD84'=DVɪܛCV4UdUfAKKLVeJ(RiqXޚxĉ|q3M㧏V68q6c#ѽ8WGc%F3eދ9*ycǺb_cɸKu#'.-3HOUɞ/|m'Ƒj@kqr9zo~:<-r7}p GuɪT;8'DAu8/1G=AqMoNctcumn/Sw|69Ϝ0/A~Ik\1gك7ܓg3GU>7r2C4ל6[~ߝ|gebf01ߟf =I2M}/߉?;eȍsNo~u3o76/IٱU3ٱUs{A̎>m>0k{jQoSWkn= { { }haw wJм\T6/?rI.:å>Vs/Z|O wa}TtXVz'P}{FGحgխn . ۠^g=>;V|-u8~f2'I挹̎nٱe\2<Ow_ըl~/5'|In3]=|Ie~d]f$IÉLrG+2_|`;(l3Yi-!|g~uj-9שՁٲ' ˞¢pUL(U_ _6n=fVRJ[(CSE06md'e }s#5VePڵ*FpX6r׵~Ͽ{PFf>ˍ'7¬9K93Sod!33=>y# KT-O OhZ4 T@uKeƛT%3Vdƣ;ʯf>yG /Mq׽!7V>k$>_(|ı=& _!Q6>@%5qhiyǬGs;É B>tOvÚjb9[?p˿ZOsp3siSK/I士czO uM c|tky$}L::ب~k8VfAj,0w? &GWD1/P?Yoo{$ỏFjkfұdc=[f"mfOԓ0 OLAҚ{2S3/289Up4߉\/3.<9+a/}3ޒ,zyigB_%҇1sϼK ##QlN6閵D-6>2Qfe+V~Mw|3/m{bX:g]V&ga;ʜ5Ɋedo|)fO>Faޚ3$ENI#zc ~lG$ʊ۬]}d7nو{Lg'syЈ>0_2SIoC$)Tp[2&jCnzM_&D} s+ >r+n7xZ&P-/o gXgl gXk gqpʣ:OfD*_>ˈyx9񨵖ĿZ4>c߸CABD{]%#0ZNn z-w0^n±~*'P8Oy3cTq~ekL@ i+S(B0miP+Q(aiqTmX!l-1߆soRXz/+XWU]7LP}k0Auj,t箨ELSEn$cVTb&r0z/+܉/᧙槁zV;5-{V5sT0f2]˦i//j3ΦE#}꠮Ow2]߃*M"݇yh>i)iԇ=_Ӝ8GкvV%F!i~d5TOwh]k@OE*a-*GIArQ𿢽\,OwZKdRaۡ|q۩w^2jEA?; &OOC$hWذ!wC \9tm,|C9B>Zw fOAOwt/nD[:5 n3qSݓs9Kk-#mOu#xD$ǧfDr&6"9~rۄ'To[ t*7㭷Zd!(C'QtDr2M ٴ~X έY'63Uq̝2fF4?I$>P?Mc\#qv[?3A;1)׹ȝdA }L}w:9SND4'L6LԽ?kvJ:m<@mi >BRQ۾\~".˗wuAV_n/{DD 5ظ%ˍpy8,ER$> ͯb3Ez>hG ]Q#'H)I^:?9PQ\tTfߵQy(uvD03̸@i 'bqn0#bq(4"qib-3R}^?Fː+IZ [?3w9 #""ގ)3#"" c+8ymrBȢ w~O?]lFTD:s[k~dʵx:z+^  EFzJK^L$d):zO#<'S[ q?f7B$G ?G0tFI' 1 ~ZKt!*K?3u.:m:mf;@|\̄DDuK:)Q6r-j=!sSwuonEWH:e[ɛp۱LaǬ96N%9C#truJs;:(ߜm?U۹: 4Qw}k&g~UQItAdc֜p5|TcVcv#pUyruAwJzu"T$w%ń w[K1Sum덠fC['/ t鞼AƚDpr>܄̈ʾ_ 0 aR~R}A&(gّaJ>.3:럞dԷLU{yIDQǬeHPl Q}lSfl[63[=!$)t.$ r$Լ-NP1k8D-|P$Լ-'%3pf8MJGq$pM:Om6M*f/119!ƑZDO&n\_W>Yt>f%3f~kb fd 3AԎ-vliJCP;1'Dvn psDǬ=HD H; EbF#wZ /Tl} 8%)Z;g rNU I AUէ";C$7>,3% -EO6qdAuZ^ꤖyh`0$iJQR1i Q1z]N<w^~얾iT'-T'}̚A Tgp$^RXFa$^HR&jr''/:/kˋ )O%SXJ'8 %7bTIm*Z>f Axo*˷ES1kSF2fSNSV^˷f MLQ7tN֪N*?%k~7D($(`!kF2dmʐQ6}2 YTI7*C>Ok F7gs Z4ĊozS*/z|Dj*,eGfeZPa^Ra^QksOkߣ-5_4 K(x5/86s pf 0c5 u  }DBR>Q''>*:pڃW* trD.C)E}ӄi0c2uP%] _l(Dſf 1(׬Bi5xJ=)sƼd:kEt j=Cf${5ת>TkU%A,kM+%Zs%F໑*=Ok nՓ]kܡo!ԫ{'f =~pf{~Ch =fVt`l ӵSc ,!;#?Ok8b])6[4%۞@>GfTuwBF?0kbCP(1k-ܽ!L??(=Uhw&hwZ˹PW(f֫3{̗(@ղuc9}/_gȐO:~47_($<} J`fݧ|ߣ7Eo̤f$YMW_0OM,cw#'f7.ڱiNH=?c$ =fL:HƑFoNcSO`v~tŇFa:}=az/w|I@/2 з:F`zI85[x{:iz׻]az{}Lp/ؠ'w: fyWO2:HX\ u@Xn )%&j=bᥨ#cj=/%Bӷdl 9K[`DŽtwM!W 5~( t'}`~~&sK%4JIG5}3d 횾B'i :ڵxEB0֢G-V LI:H6mI(cZ٠o9]k2^]_)$kʓI'Quu4]uݳ;xXҚ}¬]~Ij'21YIZf/ZS{_~]ˍ`ܵ ?mgZ`۞=JD(&z頦Ko僃}'yiҦ9q'z 7BI4<=dLNnK'_VɪuFu<^RU} 1 cBu1l}cx 1"3P/7ɪ4`M̀o {'`◖H|ħ[Nj:ӭ Al=aEGo7aC yd0kuS=)dSHL e=QƮރ5Y3HJ2E}QoBEL|SOd3Q9(,!It'r2QgfSO`.n·uח;QXD%mCPd!1[4xX!S}hCH6U"SOZ>LSvdͤuCqP>6U4I0}d C[<ͤCP>,녚-^Y자5K:v:O>@'%G;/yp_?iR w<WO_rX ulI䠾;H Yq+  T#Q&ic\ a( :*8cn29ԓ-":ݎJne$.?MLU)\<*Z>淃RKij6i2R8'y3I=fEuVI_8C fC IfSH2nswWOb)?\h9iBHuO8~֌rϛ{†YW5t^ouܕA]e@ܨ =]Wi/C$sFۗ>Bٗᶙ0UȧMMUӦ|Z H5u?ML'r ٭azyN^WRaשE؃Ix𜱗St %t&G|TEkFۧEK|w3&sZrۑ d&#PD[ׅ ~Cd9rO !ܺ`),!"mKr$|ÛFG'ɭCQd!u qr65$*|3iRJ !CH_Wd!3IGB]ٍt'd.Bn ٕ79= 4 x=SMQ&;Z )[|ؾ_?o 7:ɭ!yHnmUH?JIGǏ'F#$tcDF~.D!?mk8H%}IB~W#%!^EWݼP<tvUw ɐuA2d&Cև Y?4'dȺRa /!?f-Zd!뚓Ȑ)#C6l~7P 5Ǭ}Blx P8Knٮ%wXGM;:  ٠s ӈlC(C/vnn].|ZbA>Ѩ?O'dGt(C0beT<[$q=!y@9h?Ok!_y 7B&U:TFl&e tm tdCڸ^qLuB~iD%/IMjKЧǬ}b-ۂp !\Nf.緪SB"1iRH"\I^Dp1-bZRgr;oA\ [bUfRIf<\[_rC76)next"DΪ]b[~s/#[7x>OkCqjR1Crۤo7BV uH}ڭ'OtRv5$r6ݥP୛.MO#tGOJnM|̐T} D=H~'[pF"F%.rfFV7BN!5N@ 3CR׷3!Ž_!nߺ* 8⹵n]DIjkн})2K2C нcIj}|*YSEj}ȯB%{B&UPi {_n뻃ӈnb8=y?ͰzMF_T"Լ:ɡ^bͩɩy⹾yx-DI޺4xKéy *ws#RWSSU3xR7.63m(:B[xc'Mx& mS޶)ZnےVD#H>e %$=!,RrBk^QNH v 'vs (OT]d ޖ:W$ ^Q|H?z'Y x~ZϺ5xUYbx(>sybv'*) tU*:/XE|厮w7B^_ :cmUW4u[Ӊ|oOjݩH)^ڝ:Bj7B6iKc&m?Rx!; ݡE6Н$xBpJ{m8!;h/nDP;đ/n{|Gj]P=\'[nNSϽd9ܫ/ɸwSf n0PWuO+@YK[N+ӅZ.ŨoumlFIhKؚ#73w$HAOkW<n;to6G6_S㷻m p5Hv)ꌒP]馋ŠmCVmڱ+LCGmvZOBmv t#+8lims肊ӔCTĨH! ,c4YCEQCqM37-> z%ؗQ|%9CO&{M#+3?֎%y+c&kk'B1z[|*bc2O4=9Od[C!-CCWfn]Qj9~>OeHP!j9$3-8D{Ȉ]y[69|;BslZK40Ǯ ̱~O6_<=dْyшF(Ҙc/~441Ǯsi̱MS((cO~%(fP*|̚:Krˈ]ԓ{>c{<%ݚ{.Z mKV|K,f3:CNc_Sְ@K^2@j/S9.Tw=ǩM!{V弌c|;9֦(iL2QBџ"i>f 'hy{dU~ޚA|Ubf. Qk%)>X7&IP,Iw | RP|`'&3/]wQV!*ƺy|-6W:Xd~!ҿpf}!"LFRqd5K?$.dn)8fd7Ko~:apHw5=ygpl>%#Ik ]%[j-f:W𡆠;Hcr%5ҘY!r%|Ml(묪,DT."ydMgl]nr[*I"csD iMIJJɗPܺVҾߤv'3 ̬C%w&)"3}Imd| !,/4^!,,4sw1%3)S])%_&T sǁc>en4Q;{BZSnb @T*E25/k=`T^)qiI)R{BQnQ^{Hc>fM4SJHcV5kF&+t5l0*~c~GvgFH.]lҬF Y}o/@|Z6n+>ѡ)lHWm5´е`k MP(i$$|R'lT6~CKRx)g 8.סƙP@ZVև18^N;' !i;D:T3;n0nPsIWFHy𤫚BT_hk!ښohubf3DW>T3:}Y2 Y3F-3P= m}QlS(}phwSm*Rtថ;4=}F}z|ڔh;N ;4!g7BP`;5 Έt>f K~m)9zWu#(^ 6B?!n-`02_UB_s-z@O 殏nk bf P̺\bf֎Y,$X\bf>6Yi3Yb6:5^=f0Hf', ^RaMAr%ΉJfD:{I#C曧=wM&"aZD:{W -j]R15.囌gMFyZ!C6 xȩ8c@o&&kcIǬ y*Hg?mA1kAAҳ/%>Ⱦ?hu#0tPQ*+Lodxl(,[4yJGӖ|#i:ȧ>"4}wHM<"qW=wW!:T6#:^#gzH]nr[PMIP>qxGd*8"CY֣L3ct@oJ, 9$ǕcjȐ ِ|Z2dCAQ"8A[Ԝ@oSCQa;@4hTOZ6d@ģ9%CHsuiv̟RLs!kCHs N7e 'y)U;!:1hjm3ui-Prr&yބY Κ=ruJZvgMM#n{шtU,|r&y*>IHz֤ MR]i(}c84\C2g(-G1{!|L O !diȅciWܚ?['f >Ok ZNy;ORtV*.h1l]b ] %y¿t .]&pvۑT+mn*OBt"-IG!^tX_fqBj9EdXc86!:J7^B';Ɣ3tR~ϯ[B.G~]{q/!.zM!q}Ѣr+9Ml4jߛn R3jdȾRҏ-#UhTbKw P]KS!/5}Mjf!]575Bj~Mtܴc#]wѤRBE:}55d.XXҌ. vS"۝ښQn5vjkn^bpۑpxr$r}I++_o*epg򥶉J .ZM,W*MMlR *|-/M>w8.!.zqQJfٍv$iywl䥎K_rGr#I*EߚArGGpHYFJz=#e&9!.蚚R3kTr|DūZn?OC{zmM!"&y7ԓn@my)57u~Z⚥k5׬5w,4J  ehRjE[l~;ؿw Dg,M m)H 5HKH˝MHۡ/NЎE_]iF hjS[vn]{Ӝ@hwN= t߀7y;w^(ȅR6E|=,~qH61,ˎY&X>%ݍn,4E 8{/~,G!I}I'}i#RA"6r`oKB\Zyh)v;{uPgԲ.2@+^Kfo_.hW.c.2PO~Ե` #xL ѓ>^)Hz@ΓRHz>m7K91:DԐ"}̚w ĩTBov&vh|7̧̈w}CоLޥo/^_eAsynskByxz9dĊp$_鶉n}# f%ZMۥPOr@"Z7[P}> 2i &*z##,G4q_F4ѣ&#Ȩ/7¥pitq םҺ}D*HA1kTne0"K$OflH>f @`i KG@| 6@qJd~Gy+B"X^A b3@oM0"Y:Zcejow&w`AK R ܡO];2{-:OВbWpRPō7F>F>f%P/UHʵ@4i$R NN'4D##\.__%CNNc&$FETvHL?ͥIіP̞*H)UhP{ I AP'Oyri:f2)BrܓsJ<9\ trJT%DBrQmi)Щhyʓ*ߩs(OćBhI::7]!1yWMߛ ʓa/%6HTF6~$[pU9/hI>f iF ]%Q3}w'M&$&{JZs 26zx0v/G/)O< Ux*Su>[Z:,go/˥HNZB|LW'#(,ZP\#_UId5'>P?&jަa32!Щ|z?eB :O42}I|R-$6"E9^jE'r_F|Tg%O" 5$FVjfDYb#KqM'VT03w)}ђSI~D#K\}BCM2O?MV'Z-[fXEriCAJ4*D#oi[ВTu[\j@)eK8<$o*wX,O%Y6e6?X@Sad []|&W|6@lx8ԴJd8j'HLCA$&jGd;i:dG$&&b;^@'M:n{-? 37 + Om6\Ь3b$ .[yM40:;@1k 7@K7Z\E$5# vpEQ5u{{Vi|W uoṅrGkQOEA J|yljdȌmOKfTD_AAHq8٧3TdNAQ|\)3JfDGHBF#~5\PmoDJ*8T!}[35k~j!tAha-E0=qA~ D# ~_^86:P5 dt;:$m4+Ž5/=>)=>SףVQŽE3Tߴ?G}5dl?_l?O,nL*;?pɌ?%T'RZ,'f-(dsTG#4۩Xw77~gsOOU:?[`[4'D*˲un/(rŕ> ٪Aƪ *]y Ki.3EnbL_|);x]4*TD…7uA }\gq#Z6\8~z#8!sO. ^4YI+<d.hD*'_/#Ӹߐi LA`*fzESl+86z]kuk:8t\h2zozzr#xa ]Q=F–2{kxAiD*9ٻT6uim+<ӥ3=~:J_>5s }G ]>PKV!MQSu":d1T禨&y I%z){h{'P{"Xm WTce7rb(S89If[$˭؃ckrrȊxGV\);JޜK`;zYk9t'CS;Ricol@>fN7]JtOw wj#87"ޖ -3o1{8s~2<%Otd>Z "qv?FXM f^ܧ߬Z4_7Z^Q+/)'c~ԜI^I'>AAm~ˢ&Td pLS;ߧ|RkMٌkM)UtHTJ&7dS# 37fZ{IV_;iּz35:$)rSz0nݱ?y=0QrxbBa#\]# 7fu4UFn:QskY!Iy3ޥs0+e&ܩ%bi}ʣΪu'AZtUCZM[kO}5>96~0X`IGo%99! 5%`S %(x^Xn d[CF>A!ji(zP{v>;M/`~?0ERѱҽhЅ(yJ"QVP3ռj~S[L)Kq'dR{Yl~l6}^ڃ[kT.Vw/[t>mxOrdCCܷ|ߏY w=wBqmk ;:PISl z̔S9CN!*VPP"og󛆐V N>wu! yMaڐے56Rd~SC[ۚC'fm"ڃ7;Ewx L jH&YF-ג[FDfݢC0{W9!KX\FoUP~ݽP+ cZHF2 OUC۰_~~kI,HD1S$|]C qA q;Ki ֐Sp 9)968b;Шb;ಊb;eX{ZEjSNqzCSa?5Nd8zjr-B3~bƙݪRx"D:s~rzNt5$!ٕZIE#=r Ye=5 />dvflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/TCVN/0000755000175000017500000000000006766133751017530 5ustar mohuramohuravflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/TCVN/README.TXT.gz0000644000175000017500000000157306463471021021500 0ustar mohuramohurar4README.TXTTrF+p !EbdZU1V(\aX[vQӳE| ,e^|U9p!,{)Rڶ͖j("*V篤= ͣ:Te^5u ^8{EFՓwxꔛ Wմ$tt_2jχpBҚrtv;3nŝb#e=2A7:hiOsH/Βu#ֵ zUJƠ!t] jO+f^͌$FՓӠ#Lgl s QSeel "mQ*o TYkhWI$Es9ˬLjS lv{ywwM>E\RY am?ȐT[pGaͼt De;H§|mQ<^1}xhTqdGVZxWf7Qa:N/* J"?9e:N9rOzR֑gmv4Z fBݬJ ~glmNn/rd1 U͘|o]O%uE[_]N)Q+{WS\Ρtyw$`&w9WEz_rHub3u]#N 2,Ѝ4)M6</T-%zNy5$dIe~'TVZ5( A /iļ:q :`D0d#t T$ ua:C2.z豴p `7@p;uekHUNI!)BZd༳6ҎP4Uvflib3-3.6.14.dfsg/ccv/TBL/UNICODE/EASTASIA/TCVN/TCV-SEA.HQX.gz0000644000175000017500000217257506463471033021606 0ustar mohuramohurar4TCV-SEA.HQXٮ֦wUlcLg zќЋ Jsa}WJ(bޞ9xL0״㿎uc?Y/0GC ℰ7׺WKʘD§%NzXP6DE5zV's~ֳ95sZXE`\ɼ4^i=3-ʞ,˪,nUs#j,{xyZU{Ulώn^g[F<؏( נLoM6_EO{a7ߛbf=?r<7U&7喎& 6VsXag*$D>"{/41 hQȁ|r5ww>b&f'w56(rI|(#oR#vF~2ǍhzK` 28Y#asR@};\zd ^/?9}S[#q>w*kK t-1q+:N`k-WPLlr!ub uo6޷r.? ;.O␽N/wqAPjOS.&!"p8y5Y/yዒ1wX^!➻U@5Fw½+^kK/_={ |c5'zwfCk=?^Ѿ^X1[8`(ϋ 14j{ržхa1a.fw]U}HF57^,zogÊسčH"3r~X?@OY߮_wjD`↫_8sp4ij[=c--\+3s3azynUa'|UöS ]o-$4ո|W  7}ѫ$V Ds_=p6H휽y*o'HAۧ^?u ݯ27tP7["Il*)?=9ȗ{o :Od&>am~m߄:x*EAHZ+[vp6H,PZ[~dQw!=qϛWX6>}Qv~rI?ܰ ,Xs\-S|{4򥯫ItDt sz-?}{L:Ng[w|R2hn1w2-]CS'8]ɫ'Β:O~A7d 3ʟ~"4N:00HZ7| \iه:0'_i/dqX@@z#&@Ɗk|gX'(gX7P[gXKMD$Ҫ?:P"j?c:Ăe̘zr?uYNjO/w4%֘('egu­p4~UrlOpf$qM};S>/SH̐n-wdu'}|:Cខ{^k7[r?^; d.ު])78Gx3/odé;n"3 gEwZƺKˌ.1GzvD [{;A|=9)Q&=]2k|:I+.Tg"d_W*w,;N6%'0ZŔN侂D9٬4ķ[d%_/DO=2S3=q[)Dȕ5-LY3Ѯo+g$Uv{jaDgl/U\9@ Ln|cZ*5EF=eOj3{Q'tIm22S%_j>z/0^-ޥxY)wr87K] W eNL$^{tW}120/#VQfK^=]%=L|{y⮀~.(4{ 3c_05GuaIǟo}.,/S0殏G:Fk]o\"!xϟOE;ƬW׵_D`LyO\;h]w<޸yVw]oymқkP?5$vg9 |<݅:ާ|?˜ d!K8w^|O_#$soy%t v ~zE4[M11yR[+x JOu31"l1")ݾ!l=(^p[ j ||mY\g>{L29i :V;A}%6s}V]_N0<JǦ}WF=ɶ׫9P9x"|7][$g_cD!ޑD^ j A `|4YiyEQ͋} g'_}z@L'5RgOj/=NX dYwh[O$Sx bn>CI^e`cfzv"{LB+]тȶÛ/(}}oj-h~=ڹױu&ό s!:\<ܙ 3s%z50{ c2x%tKaMn!ˈ7&ԋ 6RɰKJd2Ҹ˪/D^c>/»Mޑ9/ⱔed[/bC{Zq ꯩ l-uNJC+S8m'⃅TCBZ.j_됾0y k_Hq`}\%$ xv/L|!?X_A=@E4!xKt eq:Y)OS޸B>FS#L*!vI:L4"ש?\¨{(({'Dzx&K*/ +ODo%nha{%F*BIP[ys Qk-/x@ ,6XiVڅzgPI*d#qk^o˛Q#BuCOΙóBQ8tA 4ý۠:T|tJsr! |{uRHk\ş46sh-9_PjXqGC-OVWMc\.@-rS}Sdn2 9 EƆ /|CdS|Ukz%|v = aX2 >+XӛrPy[{9eF!^xcua*5#k}xweS_D`_F7f %VoTm؟f/ٛ/4TJӅkЧsc>C i u<.*X|WWSєB6(V!p10YȬk5?/lw鱎dV Aa'HAp 8Ut=̯@+CMɘsq BD 2傍;Ӵ:ąo8G|.b^88CA@;4[KrA [-/8/ Ư޺ }@|x0:BHFZ3RHzDJ2HácߜN['ʛVݧ{8;mj&*?C<`% -(_HlwcEwIZhVT]ct/1 ZRB,}紆=S_+(V~7U%xzn7SL<芛^EVEiI3CC47[󣂺Wn F*oFmW 4ʯ=ڄeh {?6;㫇Z.4{Fdv8__)`jG[X_(%'1MW7G;dP [u㥨tg:8s&4OD͟^뜁ؕJ16%s.*|78]suy}T])\mM-74#H=},]bk/O= iu8\pJF3X)g֫&36nPgdzYVסxQiPU(w-yvA20f!%+uNk e'>#$0k^5W[O%D́>ni-R)aN7:Vsx<ܥm  JZZpx#+,#)Zt|~/r9p Lx5lm^c.+. 3 X*zjo& tHeEEYC/5䑟[xLM :7\G}6ҁx}co{0_6h{MM~@7󿾘ĖV] |2B$>+H '!:Cn߄ fLʧ[>f]l H@()-D AHTELb.]dU}yW ]/<~i\{q3o瀬G-LhDr_$MWT%-9ͷe\}Y="?5 1Q3L-å龏 =o\XF3P pF7ttv} n;8W0c9+[:]B^0}zghS.@ 0:/3ԆvIq+$BknLMvLkymD#B 0ʬ/8ƨ$nd|&/B,i K./UȢǶeX1D`+vG"!1]PkSxbl,1"c΄K+`r."ҭ#xn,l% Χ$ 54IJwB 'LMEJٳ0Y/{Wy?ZL-Mɯ}$ѹ/iu}瓾H'ո+R(icvk@B*^ x|_i{ekbWF̚j꯹Y%4z!Plvu/Hj[ yWԸ g|%\42l #a5vLFѰ-'Bi%NU !pX4pF (Y<+%1#đ|(jK2dU8F n3cʃyZNomUjʶMZi$PdqΛ_nSl|Csnh*6}5M==m$ 7[[@Іu6PK:tdֻ?pJ`Ӎo:w>ɇpΔDr/bm }Ѣi03;{n]dB_8wn20fܜ$5w3-f7#պo!vE";{d &̶ ]Z:1M:⩖H_Ml#n-Acg.J3ׁ`z)ԩ߄:bb4͵Ո_5S':PGED^ʯKVTJ˞y 2UQ—}MQs܋Rw&t[7!NBwXAZK8m>eԓoBsV)5=QL!BTogk,y2٧~TwhS]V[;9;y}`zqU.ߡZ"eIBb&,ڛRn+.:I0oQNB+DctMFž޷9LJ>~>f&vbcАE6g!*a߮+Tw8j䓵Z+={l6$Ge10Fg~C՘R}2tɰ!mKZd&TmK%ACw`.EIv[ǫN0I g|W)lPAR57lr /D@Z4D/ԄjL_y}g8Sٟv=6LC=%4$CO$|VՂwuasio>:B&!`T D|6G796.Ty3Eo%[ ަW+zHo1""q\}Ao~J[Ga~O].7mo$ue-%%]z9jJ] &KZe?%>;~ᝲ4ѥnv8L&1h@;Yo3Pڂb]| :3ns3>Ŗbf8s3Wt+v򦙍OB:4)_긾,xA~ @/mZu5|FWTwd17~XFZt퐊OLI0@ϟ*f#'>x[ۻ쏹Ā(gOPoHm';.ڱMʶg m<vv%]o6sɬW3(J-HVƙigw`jvoچZrjM;4 &_DN37h޴[_C$֦Md D{?-Wsk3RkzWT |L^X>P* #=h ͶֱXɗ<^?ҵ&'4Ws>9gvT: Zbq[ifvق3{Ijkqs!fo5g3xsUM',KUZßCe עZ/[1#y'y(` in82Q-_Emڔ~GR°uv+W11Kz>}o( V8RY=2+[߂ͳ]~o;*B;UʕZVabvpPؼ,h*YYqyߎ* N\S9 =[7íX_k2WdP>bwƊT[VW1V~3H qfs K:"րT'L_>p$ hPhD]Ek!(d-'8`mmd\|u2w,): 5:X=de m>;q7=r"*#: EBV.p.)?,eqkY?ηf|x*4y}sElm9keU BSe֏7mQ'z 4dU_NX>ˏ\z/F:w;#>`{Fy8K&_uZVˮELjozsI"hgSwm=e\/<:I~o}l=#H2 V>1pwf< -xqg-TDKB0%]Ot:ϡxgj~IHl sD~zbޝ#3}{PO'2bXi؎uZIov˻+2YHiS[#߂][y# Qi1^8ߤ3`oƧk!}ԆpS%bV6tƥޙdNr{m]|ꑊ͛*csd'y5̶og6LW%7~@~d=V]v *^s@rF ,UHD6 eyZ$#AM~mLq>DRM {zr͒ }8Hg$>~p;;ݧ0(RNT?[XZ,X~b52aeO[П^9N>Ǧv<ٞTR&J" (zS:ϲJVǦin !=HyK_[Npsxel7ZL-l 0!GSyt?ڼ<h)L|I4L[Y&*xrr ă*cuuE %^_]"q+ |_/70壍L=fKq~ޫJH֗z!x2 .)$xfUzr~3ic:OJ)M;}&g!C73APs%R5A2/C@ڊ͏ TM3~)$  hzq.Љ4|UIaoUq'_aZxBW5C{Qw@/>FĦsh%<b #R Zw_2Y]e!f-`2dzyM΍:p0g3+{@>ĺOE<{EӊD5l}rڬN $$6 ->?ْ{ZdIZ"+^ A5^ Dqar+%4An$V{1*].T;y^-Bu6o'YԻ=~6ܴv[um)= `Nf ~QW!o8~󌡾^Q?`h]#>N&0ߥƭo56> xW33FAG*gb]O@w\Dfwo_*oby.&!lB`_ԆA`OD%Fʻ_t* t?C.Ie[Jjt6m̃^\%vN̖jG7:I+= IFx ]&Yh2{$wg F!䵶ۻ5޵HϮ'4*KNQDq =}=QisP=mW--s3jjO C^9OKM}PY_DS7'I,S,ViAT#͟٫ p^^>AV+2傮hݬD緅~TtѺL@Vb@B3һ;uAak}<"4Ͼ_g\X p_ፕqqE^7&Wy/gnUzv_44QӁULsw)BzV#{8ʤv!5mK4TV~5.pnmLhS&H ˢ~I"BpH1YPvz5sbdUT%A3>>$$Ί|=~7L nŃ6ÊCS?]X3f0~wwJEt =WSѝӻ~?_㭈Ǩ7u_yݲnN_VMܢEv[ IvYڅv8n6l̻ZRCOVѠ9zEj!Zrw_q,i x iŘ!c!Ɛ hK؂JLҼ5kLLKb"H&بD׫d@]A|CN9pijm !ƒ<.ϴ4ܒs>lOzcZ jXmOoXR3'7)˷VM>'N8g<DRYW AzLG)>m#Zg78+ 1s0XŠHo/xU#QW [Pj3.o]1G$T1œhH=[zܮ\YKƬAuZ&eoX[]l>>. (wG_ym(BVu_}̣WbK쫸S^yc0=B-/W{PȲEzz" ` Hm(iI7pu}=td};,_57-ޢmaZN]o ۱9Ԑ+tۊz&`x}3z(C7Mk iˆ?B]eЌ{{w)0i.r?4GڏZ o$!?}o\Zsl Ǘ@;ryQza q, "wPĊl7M' c,>Ȁ񆮋pLMsjZ&ќeIwtKE|j$-n?ݸBz*ۖ*KrS)[)X^:ܱ64쑡l&Yc z&{;I>Oy4@5+b mcß˕x,RLkI&jH2=*uo9{/>?HJ]N:\.)B6A}[jI)?&zŰ_)[.z8"qhM7OihLjCfY_1 ʑ[W:[|"u%&N4%2rS#^NN-N? ]ؠ4Dx't51gZjvv3=XV nXL[%3.^{aUJf@wDVR$z+Xa{{`9—.VDTrjCQ@m$IϸB`9B̊*]Wh@7-YQ`#nT2ɜaR]}tܮ2 G/{A-%坘G;bح mD`IB {\ͧ6ܷCdgtQ?QTy㡔%*Nqa Yς'&ExWDVQO / iHc= 2e׶|ְ]懠F_-[}V-㦗'g{yнD6J_&>96Vr#{Yoٽ9OKv&rdZ@/xW_5D-v#vQcv);°C jX4H UIs@s/BU8BGS0|blDjsl)Zq{F; }ܐ\|iw'Jwھ͗X_2te]?/έbg-ZQmwmbm@cTGd^Ԗh;0+O79jgs } ) $4$6o7MIN3RfVc?SȯccLU#g'#m<ȗB>kvӢۘe| by;h#J]WygQQznYZLf&=Մ\Nl\Mܯ#K"Ժ\=uP)eus;eߕ?HA nt%G;nԘSSa>OCWzΈ44 Ū$IU({Ihm/Ѐ[9M l.=Co (J~~Ŋ Q~lꖭm9E/=yeEl~6 L>y#$Bn-.!A`,SP;Bzsp)MSϩ^߃wh8.ǜ\Ji'4L)j+>"[( 3uߏEǬޅ~?66L}L}1Vf;+{U񑽠=(v 8kCPʤLҋ_ lY{Oo]:R8Z;q}k[KX^߁uuRLg, u3bmoiM̯:i'}X7|_RIȶTɔ+UR9yklw7K>e آ^:;:HF7>B;rRjŖY<瞷09EZȪ*ާH /Ѻ\R\f&_:+Ɍq'fڊ>pjs]vw4n}ēuʟ!;l>\{|&~͇ѽy}w%mOc?itQ!Fz 1*{4#ag$qcѶzjon.}d1YqQMe=Ж)/md@`-Jߘc5N q*(Sie nT8 C=[TfX@3Ia#6]ΰSevvGy ǬV NQW,%~OxYs[;m|oB1?nW'89uPڙov5|ɓK&䪃:jla_P`cj庨ɻRcMǢr7ޓ (AuZ"f>TfRPq?v\(7K'LT:|M]5E-;̣%wnԯB Bkxxh+0V=[ucDs<&J7b.\w%?7jCJη4jҵN'3DUe[GhKfId(w7+''#ݖysUԎ9\aVmZE4l&U;Olzco\ ͚z/hΏQp`$rmF!‰!4X6fQEe2K{rhSU4ǷxzձdO/q9l ʯ5%slƫ2/ZŮ2˫+swϽ'T}$#WLa\(H~JN8iʋC4=%ih\>f0g[g8tń}39A@N]Dw;΋>f. TM!i0,a?38%ytBUF'z֚r:E߾^jT[a@en͝Mgg%DB &\h/#vufUSY8%Ǎ[h{=?Ph$dO<>tu ݌)\ ^oR$*뀫uMUDsvdB6=faF;aȗa&`UzGRi߉(xp>oyk0Uv"h-1`o` h`0Hd~2θ&:(u NSDQI#WBpV j BK)nO+*xi4]K~ v_6|-}/R|Zͳz(0tU#T<;oAz 3is]A#cf3br WwP{;';Ri4 ˃!'~˒ swƮ<}?f_=ies7naDe1xJ߆s56 bX\Xː{NW⊅xg=ۡgٔZi(q bIYPj,ùWI %-4-d!>\4dtFtiYqʣnDwp[4yki ՘a'u6mD _Y ʽ=8L٬Rpksyem(ENj9F}ʜSwR'jO h?gHCPҤ8~dLٓcZ qf#YO==15f7@Fk 4NC J4+"։/Z ؄`1]P'f"﮸⧞b2ݝM9(bFQpUCw+ǜZ`Yygɏx_ K\D&8Ro}ŃBƑz BXNĀ43g۲N# TYRc Oar1M_/uf3!C ZRpO@qjqS5~ sy]F朼_]hc, e0:AQOX8K7"8Դ{9kΨ/)W>{}g%!?.@ʹ+9)Y$kx]Ev[K~@Z%+6cV0=`P<~C]0 -+;)(+U{N+'9yސb Pr"}ͣ7&'gpnN7 ᫖ŸD3?s~@Zm wGloc7Y\{/4fѵuq@ jK ZXݼ|gx멆6*}CZVJ!Vd;vuI';_Ӳ!66mR^HT0pfPħݬonn>i<7> `Q B,nK%!;@t:WR{qpm@Q;d4JZ|2F=:ivњ9P犤~Uuh0sؽH5 N<S2 `fp&#mOڌ5y~FͰUvYlA}N|P%Z)mDqݣMNdfv+KV[dR;2E!~,¤ig!,I<LlLddH=iz'Ud]t}^t$K"U^_v6ǮѣD6r߽))РJ319O=NZ-q=Yp&uM1W 5}5"Ve1mKG / ! ^/{B՟~Y<|k.-dvuZUgnPO9i;35Ѥ*?tuČ@mgNk`F}f#{/{a O%'0  ʃdK!TyG~W!2v<ޒ\s.0QV:˭rǛNyj:!?Od+0˲BCɾ+<ت-8 أt0i)-=B^lcՏ[%&9 FWa;G!81mc?svuit30q/hQ$DTV$"~ARm.i︣z"[!\fсhwoFM,Qyhk1;.x~se$c-sR[cޅ9O"$0''\hQ o^W*UVDc UKocLVq6ol?<~OHmKrҫ65ӣ)8уMTL*~["7dπ<_>xET@{ZJ'#wTMPAny 䛎l/gQ䙢KVٻЕ+*dD4̹ 7܁*'r޷_-J6j8o$jYD&ZQkŽJٕRDn<xuj|`2s[1/L>ğн4BEv;??fgD0zSuM3nXr'TT'hAŬlo(pctnduv-rVuy2IP7YlBk-@-APoBEKŒ/h:,$6WYծ)Ֆlb94U"Z%4KDO~jԮ, i͵qT+P ;3gs-iBP (IW۷N~[J2\A/1 ά.`:kJ1N+Z I˅tx-wh^?̋L\!;o=CcGCs|єuCq|7Wut?ڐ ӆ|ғL1+60{s㺿_u猖ʱ֠$(tsO#J;,.,0ɸ,Q姻Ti 'j(P#_nOKh,KZQdﰟۭmnAgtLi4QQ3H}3 ~Z0_ (3\\x)ŎҜ?}&Cc{lᜇ.az0Q4z-0ؒ E>I(Ӆ7޼G,FT$ncf|uM's=7}l_M VbYf;Ex\rtWEF-p) pYnq`j¹ Մ)[%?b̮|CI h2!}Ft$F#W0u&hMf \g@`r=-dSuKbP8#IΜ[ngmV钗R:q֯I⿣;|lۧ׉q*;|{F5f%=C>[h#=S[fB߈4nZ}I̟m{uyW3^Ktڴd: 3,=)3m( N;Ww6P)MLM֎vԐ_-_ l"ڟ g9/eyc$DsJ'oVPZzK0R7PÚ[^M4o'QlŠ4Of7gh9uƖtIWBԂaʹ3{[3\nxf_gD~dl $ԶdipS iLv9T';3 [e;]TP",#[ʦFݨp#9Lg#W]B6IiadOK%Q^`0Ok ti<-6<<_Cظyi2×h(v/جgc aa>1Q{59d?~te|ΊL }5J_XWޢ|U%ts"-O#}(kt͐YN 0 ,ƫsT:c "4khmmcy:AS2Z.ݦO\O~h~viFIamsޤj+?PH%Wni7ʠke2^oʡTnY&[INSx-Z!PA{#`]1;%Fz i|Dbz6YLMvV¼ű|*C"~ƢSƝ;9)1e˃J=)ff۟?픇fh7V98eYd6 )>&Lc/M}j ǜQͻ7* YD}v9Gx/&ڤ]n@pKj/G|ޚlO+mS_ Sm,iyH7#Ƈщuh3X>GwPkzNh)63 .9.g xڿ}7!9!/a>hޛC}̭-*pqYXt o ]CSʾ<=%Z'~Ta"F1Tg- 7g ]Ǥw[ S~iG7H%XS)޳@?nN+aYԟι5j|Xr훆̞1qi<0\q7'aX(VUlX ijceW*! >uy5#g*2gWJm?gn62[C{ͫ\cZrɸwE8*dzf EW/ALOCq{ze`~?|3:0]K2g~9`Vgé 4J~/ hoSUЖN=T^ z]~$Ùs丑hXr-]bQ]TgP˲]j ҿ21=(bO:~ФA$;+UӤ{&0=0M;5^ Vދ|KFgٷGHۍ&t{TqBD1c&#Ҽ5xKU&Hwi.w1mŨT=`Kd,L\-z g}b~DT 2Pk9qB.4!܊*7SV;qtiPH6է@PK?Y$*p8ìRr?J[_0LxfUIBGI_-!JKݫl䪍MNe_,;_ $ ,ЊfB/Z {wtzrlrUJ|h1u*73=8ri'& HQːLזG}zق:,YSHX d'((~??iG't[ASQ/Ù 2 >&d\B<4&,E5$(.q/oIkvq8<+=%\֐鷐KNT5`͓h' w[~t閯BZ5UO->wjXGyVC4>]ck\'W(nOYXYOɼr߳E2 '0q.^+G@T?Տ/zMɌ/Zuzӊkϛb[niv2` io*[}wz[Q9s˜>l[MԲ?Ma[qW6ifz'v5?crsdd'`a ki޳9>zce=KJ]6{h-^֨;}$D~cr$vWt $ˈs̯랹IvB0{Ϭ&fX0ifx#[TynOa׽⊱ aR~YhׂxF-A\QnyQ¾Sa۞dZMgIhLI3$iXQh+hgƫvvNHE1͋.0l?jT6=ᱣ܎Qヘ;MThz6q}QFS+_SВ&mBũե"cղX >Mc~ܓ~ >z*ҫ"1[߬[k]~W(ovly]בXЩ01) ˹ЖZhr0'sڅ =l֢رDWC~wv׌~]j$Aw[-Ki{YMy'h'LW%8zɄu]>ɼ-q^kLv#Og >KZ^[}w  kTwʸ1'9vnu! v4.+P9)%x\rKa|JyV_D[o> +G^|KFoj݆(˨dhm:XY'9!(Xꆪ~ebY o3ž08aAh* yI&XlZ[t81񐥬Ľ/hAH1( 렍Qq>Կ$+#?(\kn`DY8[v忿b49#iSE wv{-z7{T] ]ξދfy ~,z@UVv{\@'j@I; ]'4qm P쒽L]G7y%W>G祅:z o~!;SدG4Z59"X'ɸϫe;xz󋏹;6c%Y/H6 ?ūy ެxx '&p_m҄2?q/*~wSwݖz;Vs9Uyx>S|c@8n\!2WF>?\y+13IE>~g:G]@m(F}ӕ kb= I y=?>5g3;kw!?KtM49/trݮ?9P'1:>8*lO_IK *:0t_tMB$[@Z8~ٖ3օRK?Q/t zIpKNWmqY9A\]3ۅ+g*![1],TsYC O.gf辵 Y:Mt0Fv~ߩ3ᾟNWXgsrh< WV 8ݾ6UϹ8=&(a"?TDVE 4KөqqCޥC>Cz Îȇř+NZpZ{S`ytaiv$G_ n}P*' |eD/;~=S|#LQ3tfAv3h y௕.r;vw3m}k7ǡԼe/y&SZ#nڻgIp2rt?q%o.Mt= lz츟B]轈PN[vrA+"9:m!yڶ/6\##:gH={bSy4 #51W ;<>&Ap:r)\'@өF˄cF7$5TÊ:߈5F `Qbwup$I~yy췊}S>ދ":X v4h$t=J&Vj Mk+%;KAk}5?Qgts3 óoK<)y;2ѯcܲyҒdO]ɜ qĩjȯ 'pbw?}89M86q1GE;R?GMo\n'yQ6:<Tk:Bgᨠ ѹZh3=@C@Z<{@\Mn_y*/U2JꚚXv/u˪&ʥvݧdžhخEsY: sYUA)jk[Z9Cc'H"/DNr7sŋnb8FJP r "\SݭJ T>?317gܫ;F[үD,87]9al:]b'=lr1C_Eجb=@"G*k܈ϱd+{h ? وKG._;Oyz~e'6vg!O?v_naj[LD}'C(viUr"YK.aU >2 Hxɲhhޏ)oD*;P.~&:-R;O t ' #MşL\s+O؋-S])+);0.cr1_[I{(g=ckov~y&o51:/r{x  mg~KȓLh$qv#eϽD,*?g|M"].;#8(=[qnM`̣. k-jll1Nʳʏ K0{wQN݅?ÚW'ؕQSi&N_x1TN#`$j~wK?Iu?Uֿ)xY xgnĸV A7rnl~n6sCo<" ߝD%WtSss `q(џ_ȭ}ؿ.QLQ,"ZbImW₨|"sLQɧ D7r1b'juG')>[d%1ըyz7t"N0/$t(\nn^0R ]NOLxyl}t_cP1.ƺuJMُ>>tri)'Fx:F맡b OZSߝye󯓽\bCMV2PnwTJ6'˪Wqq~i}#b0*;9qe%`Jrqӟ'9y"ϭ.LJ|<RŰzW=`,e)W^X{H-ewmDf]Q5~n!tk솳t^&tGSi#N>|Oȯw=GCYWPNz{__IF$OZ.dѸaJ:Ds漦]ʟ̓/#*Jkw{qtıs%DS#o#Uk'RD-[a$9=!i^r柩`˩UETc9Pc"':mh?'hTUUyecuGU#Ucx߃#¿E!"ރ00${cȞ'DU'eJʤ\|R_z'k'_}[Q55xTRڀre69|W|\G[tgE}r/INJ4RD~ZU'INr1"X$gr[[n'-"RM*okiE68V1G|] QWmya|S1Py7p@EƳY:H^:cԵz_}Wz(Cuٵ ڴ)7>tz8zl+czz7a97=/8󻥹ɓͰ1?l'Mu8*ߏVI(eEc{x/򓌮f/sosޝDz fܸBpm-@x84x(9N۽8l~1C P~Li[o%%E/̕m#RRq촵 ^#c%޸+_W,7mK뢲~lʢFrICr7;42ͅ*#jyq03<;#W IQ<],3Sr4Җ(Aa kte twU#3vqnG=ICPZArr9}nHmbR&IO~oIP8]ચj.dzz'w5ka]*VY|}Os)Ƹ~~;A+-ɟ %{Ls.~C;Ҏd.~{5f1~ˈa] g/T[ E]K sh}}'k#b5$-mqF魗zJ҆ 뵸;9ŽnP ւȚ{}5磪 aސ|NICطԍwtfk)UcI(Y7oVS}kd _^*:C2w0KD BeRNH@1,.t(Yu>ip0LEBGԃr=?:N'q&{[=fw M#\>/+=-k'U}Wɝ9w׷aLYSV4U1v/) w~iT_g1ƤՏQlPdz`xgDdʃE)9yRn=VT~ωI]AMy_fSoD@zkm:3z QYD >ҙly0QJ S5|~_mŻ[ J_o]idpY;1Id U;u|rØg~WI)AiD89(eR(9$4r?^㇍Ev2:&ku]sK}ܛ$WN+RN΄SClU6ę7=Lټ=߫_p0^pZ_.Us+ M~>mJ_褉V:VkXlS$R*wMvܸ|;+ G4V&/^4z5 ? ϫ:[TťxkW\̇Egk=MǭIfߐ/Jzk>b'<Àٽ}GY7Fmɞi SpcPެ F#˯|Z8a{4w|x k'rJ5oլ+d$EKY/sو-Bi4˜lw7;!8m"R{&aH+oO=*iV;L>,){\S!Ԋۻ|"V,~Na޼4]$h>Y (o59c5s^Ъi\Ǣ( 6V;I]P\u(hEn6 }rkP4bkJ(@oZi%q vؿg)\ZCa.]9 M{HAoŵǃ'&ʒ묝Jg^B!åNH>\Kzy }wF?:ם5k p^RÎR^n#ćHսX7t냡9 q._nܯ~ C:2=k @ .J+dp<yb |]\֣_|ׯ{)f|͈HLR1_^V/18a wI~l-[ZM5Y*6-ײ.$X;e<573K73J&ì<))|)cl/-TeW?u8$LQǶSH`+c:pLe6s ϊ(g8`%zXle}ݩtM?:68f# TgK]F#}[ J]P N@ `ZYH$sk7WA{I^S-|qs3'M W+8 7B-1ǾQV&Y{0FPב?MUΝ]\?O8>ӵOY[1NaMODZplL$^{Q(/yH/hkȱ;\RG4EapH[F "u0"7HSUm#[!))cW%q*7Ĥ ZyEX7LgEAIJrUn@VR/Ri@^Rݔktf,HRV7}q # pgé<'@;/-]fֶ_/p ⚘r"eX/^KMߝ<9{MwN&ؕsCb[F3#Vv| p=`I#4^D^Rk]FҏxI0/8Ou{H54[&9cIэ[*LQK]IIz*%l[0QR$y/ψ%sIQԧSR㖢qV;SoC Ց]'f!}_:gtMA )kݙ'':B\*$$E/Z]UHU u\L+)Je &.Kћ a}]'P `6qpB/4m,Z!ՖE/iVl+3J0Tj`V;3YAHc4Hu^v/]K$'11Q.xMPfRru"/=MQ]'\V$чԎvWeWo, ^⏒r^V>0)+LׯM# δmR$_L)3;k)^Guo mm#Z3 +- laruQaTv8k\bX\eʍpZH8~17˒] ~WQ*jB̵<{Lb 88:M2#/5X?e,a%RYnﺏ=DsEaF+F+?Len 44_s iC*}?GwsM,Cbdsg ,vY/5l~zƵS!Qkjs x(5/o5JdRm^b646ym K܆csRN6RrqX>^鉌xH}Fm,t$r Zrh/RW>ηҖ~d6:@!T%oi^o3OnD}.+Pf3<p1prF=}jJ[o29= 6wc G-R +}?1ѮkN/ x4 u`Y$hDiNeb#2͖ʙh}sK;mFu)DS})&ev\ǿ6^RT?9Ѐ rߘgz걲K&g"ǤhD;L+5D-7&=>78"ߏiK a<NEC4nx%еE=E ޿C Y7lJN ~xW Xʷ;NP"Ю+L,46j_#T$k'B޶pn:& 铥ZNP{3c߅yFHHs7Įk3#`pvo)#Pu6dB}WVS@*<`"U'*Xh>;9T΢c ѧ?a7 7>P 峵,zOhr+w^Ӂ,($6惄?bu-%PAmQT<<= ƔGA寧.-!ݦpշ66x= i4*gy}qcق &ֶѴC 5 s;PHm;vSi;M1ounPjշ}M|q3K‡bʒ@@JAx?6ix3:7æo9bU(`Vl:_F^5U{|i94wO !` `D=HƂK`u]-驄ԂU$-*)7OՈ>8?_P4OV+0ǯ"`S}t^b bv9*D\ȧBqeӲ`FZ ] %.Mcֳ}"mY'YVIZ+2ltsb(--p~%pZ3ZŻfJ6^1Q[ގZn,iOlFZ޶6^DN( fտ$N訿7kCJ}"ܢ\)/KQC30W -bHZK_'kC?!Zwɩ֋%9&ۿbw{p O9Q2x `_&. &cs͟Is8gOIc]>Ok~> d'Pq[^,rcc3DLvA s&&P-*uB‰/Aa:F4`ق^\DehU׎֛O/&sj^òj8 PMϬQ=Bxp |O6֏uu2r4._90L.1M0XȉjK_@OrO.²Ħ@%jwhb8girS{+$m-M8I i4i u﫫%%,; aںs{ZiH_HkZ.0t|m0= NԝڽK_;ۋ/_'s(_ ًADo&%VMIФ T%} }(iEcv@0ІrX|a85) }&Og#z TEBu>߰k$ga!0ԣyh%|F[0ub=Y9 >DϽ(u_/g MJ[unZ-s|[3shS2|MauaR4 _rU>ӻŶ׳'t4') ;6%g[=q/QEJ;m =LY0RTgv(0chb蔔||+vГ_ԛÅGQQ(}{X5AɂEQBskk/JaԔ{=ke7.MG)cv){=n{aNHq{^,\6xs5RpMVK<@2R6cov/ W >o.̥*()0J1jJ)f6yǥ7>.vC,Aӛb\\ڿ Oyxmө)æԑ5*hp :V `|Iv^́K7'+@Y3f/|yKg/z30RϡX}~z@w8\>?W`+ܘYg.Q*N,>QϭS^3ֿ|.suj+2}c6WE!]hO,DHX]-t Jm (MuTMtaýr@ZmⲒe"[=ICaDŽxҝVJGV6FQQ7TP@:o{7X'kt}3wJ]G/O&5j+}{8u.iF@.\MFmŀަI5j%D%|O̒FmY)$~<"@( >$Y!'q{Z%bB꿁/fzGK5;*jub l`]iQyZG~ʗŽĮ,Qy^S,&u.]Fa-K!Ӗ]HW-f4e=^3>ͯ5ٓݫFzң1l={}^_Zʒ// 4Qz 'oziajKZE_& 1^ȼNS>c(c^cBw:0&Z%7\Be^4veVyiġ^x_\;>NƜ0%a$L\&ShK0gf1(_igb,=i_ƨt1̸e4pN_I hjqz=@a69p;gaZrkpe'ΒZG^wOފkfɎODO%pOnSSP~qYg/IRw\ϫ#jqu@^xPt%a~]xiwC,nz$;[L>6K䖆e7?p(#^qy>-䒿z$h|o=U$chQ|GI SVDz/̏EႺ)\HKsK`赙o׵BLLD\0MthR-]Z([׎㲥L2dX5T Hg dN bzvZL]mvhfGOّ7WA+f=U a^_x4QC"# )23[Oǃ}('c_0n\ϹvyЁ34LƑ׆r ^7md`eiv Mkf t-R$0[4(ԊiRYh-qߋϔ&. QR#.S#D^~Sp[(XӔA ԲkMVtBi"dUᶢ+!q WiW -~+@iDž+^+pTm/6!泝xYC6Sƕݡ.-MVb^nR[ݕ{kcĠ+(ХB5t:?J-{@6iV6]}-,lW8%9Xm9oש{]6r9@tٮ{NSanZNe4B]uci'+̎XƞX$fiCA"Ce{:}+&7^Q\b9s_/~|bzK)R~j}+ rH3r/?t)`Ԃr}B>#.\WkŕS36\= L.L#T@!ҷ!9:s$Zk2bյ H/~>}n^+ցs- $zDgk[%R`bѽBXW> &mE\ g,A6/wl=֒RkõH 7v h"eke*cZjuCH7r!({?,e>%ܬ!"}FCEey}ݻd۽ژwJY2psgyE J"Qn}='4?r)s2yU[FcUJA.cWP xceV;V:H+<3}5걝SƠST$gH~bu , v3Pkbx` 4@ͥ}֪%` Tՙ̽z8Pm;;y*<)v? aXSr0d*B \/h"e<ٍ7d=$SH0#k vLyipK7"Drʬ7wmm^}~¨ub͔;*Uƞ4G̕@{ + @u#|j]0@"_vmep0!)`oqC2tÄ/ȨB?7n ڟskW3nlP8)k\:0]N:چcCu-u`If,dzB=cdP4ǁ-f(2q! n-'jx[#ܡ_`R2.m6װ, A ̾W[ ){i!֖/ ĔrN&Kd\#zn!EN <1 G# { {~3}]ts;K7H`T2k y2|'[ھ* am/e& ھfnK"dp+22øե3yi`˜4ؙrpI";Lx _nJSsXϐ|ܧt4N}fUu TMJJ`Ue=\Ae5]tci#|IӐ:iYK[*M: \yb0A(2-Kʮ\}qa|ź[W|a@R`x9PPZr!(P ΀ ,לA,,H.Hd^9Uou)܆}HiOf}$"EaN9[; nRCJi&K83A*}}x uf~  v}I@﬷ _Fy1tt-5T)UN 1 ~ qx_C_Wg*Y¼#wgݫYL }Ŧ6k.T{N3h+[jDXuK%Hsu&gYu28cuL}EҶґA8yҠgABnpF|lB4ӭ_w`َ0^27^ɁdY:}GN3=l3n,ά_u7˻>ԟfxbB y`O]Ƭf`6MG8CXٹbJF2֧6"?{~&2и&82\ACe8Z3;qh9?S?t wc2} lJ5qG Y| )mKK'b8aYw0yfƉ_ =Z:ve=$AO݅<Տa/@  L=/=?yj`wajwԶiדҔ fܬp문 m6+7fjK  Ѵ2oUbENN(n'/ܪn•n蛙BZK4? 49('--g?S Am;Dl`zS}۲&Y;)Y0ѬrM=TlcL Εv\+]xwVkexaWԩexDu:33n],7 <B,wx7%EH_JOlSd.u'VurP~X֖*''ڐܭ{.;n|_E8#NyGs|VaFGl;A:D^³qC(d~Y nlf-{<*#fm\<1Ý4~?hWBLFx-|VAafzb#;_ RfoN<*N`frARv57C]r4"5Ujep>4\@u*u9p #%*;͖60?EӼ ;u/dȿ<,S H h0YWS~U~PO쯞E~y^t+û~]zD@:I;Z-9HwBiӜN 0lb mpk4 q9 uz"Fs ?̞`7{0 TspU0+FZw(5r.`JZg>ճFf4#ڳЂ^7pwU?.'-5Y47Ys p~x6-  VZ O ieyȧi4s~`36Љ𽳴eMϟ`!wk"M`;0?;y\1QGfzg4B?:GG+u.=v(Y>w6(.VSs1De(vV @5y?H0xz(;bM O?!}G_}0Y8mSڹ&>&UXmAaZ6cAZYWvmpCkkm+t 5؝kn`Uj󨙃` z𶱀i#+gA@ҷf5蹋7詐woҢg b/ _~0bOɁt9v1`&8~!Ad]?ӘwJp\rd/Z_;ٰ ;:NO6Bl *t# 8{ =kbq]+wsݢl~@6piT"Ō-`+sEbaB"D" n#D 78O̺F>3{l}直qσQ<$ԓeM#=QuֽE2vBZj>^;*qB7s5${ .Q~"vOZSe!x#s7yϴr N6bNa}zmXAoo!ӛ#jBq 7m7J{z{rըHmj +"nK RIGhc`yӆ*06vv"l?F|cCx77$[p]k lk5fu-h!ILkri$Jc)6Z<͍\P龘ZEȉ~kdhf9Hx"KI]tpܭ2EDLazfSiind2kvؤ;R7[d[n4֪1oC'{y޲zmC-!5Aע&0}sYQ6a޲]d_cANiHeV[ Չ^eඵ=A/֒@ws0a*cO{@ 筫2͵_9Ӟnlٸ0Y z4ɹ%J%,-6mIc[jG\ G_Z2@BK6l;29ס&9g=Lr`gU)r:lkؓmG;H]EvFq{A5-BXJ*b{VK+]G6tVwB͝A@!fua[@,=Gk:]8! oCb#7o@6LX\ξ$xp=T3dڙWc;*ZcǎqM:vh`AGV0QvGENzi3QTJ~XB*ZؘRA/qXZ:.Dp-Fj.uZl QWo-jHXc9'b|Hr.:Ɲ}hv1ޭO}jp'qޑL뎊4w~ė>!FݡU~q \lh.e >LjNw.`#w`u6=W?TS8~^AV@/P9bJ|tcP֒kw9b3CS-2R^]BFP#.- hrt,$u~5[8ܺ34beaИ^u\r5N Ժz(׮fERiE%lŃ]64lp ֮_>:mp:{NU|kT"0Dq|-}'u'uXXT/u ť@\GB^q;dwl,>^k7GO[qRi zhT0-/M]OlaF}WA쏖a6KsMnVK XK ՛E.$H.5#-NYr}TPG}[,"pP/CTnt{jR$IyԡpOcHH1V qTmwtZ?X_:t։:MKz;YcvJT#C˨IueS1ʷhjTd0Jsw 5ϼ᫣H Ғ]vJ+Gu} kX\{]*=EV1{wFh.FO_v١N<[{w \OJo%$)z&#/͐R֩p-1tO5|T6:ej%^V] ϵU?]TbN6> ,MnR*L6!Z=JǢKw8-,P'MFn#ucd 44W;uGU՝&Y8{W?/l 0`yB?*[ndŴo 4~Om\hBK3:V}zT^Z7K\ ެBAΞ5La>xw,snө'A[w-7ޔv*?+x3c4!=KsƸt: |5%CgH Â|W*ù1xvV|,:kzA1hT1=^Pr1VO4eaGrPE PSۍ[iaL8io'/CˤxY)@&D 8\YJWp_s0zC#/h&b>ΡupC'񊩜M F.NA$(Fn"0 —Թ5XgHx8*r th:E8GHJA-Mc*Ǚ}2hhWIX&lx]'6Ӣ)~I]k͚9~~"˯A %E$c>nI<~|GnyirȟߖѢ ]]+7 f,1;A#NJ$xM;$ u 11 !mTGiy]W+kBBu#!|Q~\+cJnp {QK lRGj2q_W7 Zk1RUT O_bhA B_XE  .~#1V$EI=|pAzξ zKU\z]D A^V0w3~.pqVЁ(.}ZvJ N-HQO92SqBxveɓBO H--g.2v\7OQΊ.~w"E>dp4H?VIY$a"RKCXZ޸WfɏiyN!AݰIxWHݜ-[=#䭬 <)z?\_ 0w;lj8:<2oZ~RᙬxZ &h`hvWMr v+V/W-] TgŀXY J~/Sm3Cu@VRgK-bòni˙de?́"%q-g);^(y]7SXw]:8ɩ/H\,Q] H/refvpM.bp6j{Т5)"sܺΔ)$c(3\_ה|2QǍRݍ:0[5LiT-/ |ÕN!<.)Oq|#835u)P!ߘGBR{ejw Va&,ʻP}/P! }e3S[B{7sY_:)}c5v|n 2ZKZ!~ׯ!' `$8A$jooTo)/`8>X=}s t;2q9(?7[ &N6p;4}Kljrj7wvLx*5>, Ư:Wn Ϲ $ A0#g#pCin6EZz^(ƣtd[49?e7o6zLOY[5W/[6-ر~9x[oQty9>-XXΡ~ U/QގXz2F/{8@}r xX=_6w~g|;m77oUS[-:OJ>o4n316i٢ش_fj` k<db߀ٴ!O :'m6]Tݢ_oIXߑVMG -qlqeOӣ6r Bv挽ŝ=;|Ka_XҎW]/+iꖻfwY.$s_@{H5 7oe@pc,Wȩ%IH`Ii#G#&@:\j_Gd'N'H\_ߊ2~؉zA9N֫1C鿟vMJmxr)[i$dN,N+ nSO jhzMcHJ!eH6]. O)-tn+3hO;")|TaE R>JD_+]&Iѐ{_O%أR.yMIDX-XQͬX% *ϒÔyQ~M}k bPnBX0"PY-G62XA*X dPj9fpHw8XJM_}J HpxZ8Գx0 Lsw N'3[>mE1R6P*TGmXTԴ/*Գg5FUj0SLb/vh[!rޔwa]jZtdD  D ȝ0$#SesRDF;Tek`tU*5n nJ6׎ثVKǢ.<|g+)rdԔdԇv)򫱅Q( ڄMZm;F>NXnx"|B&E ^ ,hܰW6Q7ߓh)*6i!Q$6L~eIX.lÈ *^NCN:xG~JS(A)wkZ,PPRPp,ᵠX-(Wg 8qn7ow Cf&|۝;p!;rΗY LS dptzOT':(8[s5u:^UK LE ,G"H UMs!Vã u@~rEpo$Mj@yƊA/2e_$}.H5I,6(wn2TdLIPJ;!=4!94"[ӗS0/āQ2Q!zO'^S4GTm-R$tٛE}*|)Ķ"B{D w Xa~σTU g`yLv:nmFvrijy-G;T@QJEgOR)|Gk6U!BIW;> {XaS3vfpzYb5&-?_`?T,Bc䰉`C"S_LῴU*<"@DF-a{'1M`G-(^vJBZ T%"%_.'*(с]$cЮ:*-"Lj$PV1!oAa;@.5"T'.^u`g{{!bjE=2L}f^ )').?_*Ș? _y:S[I`CIFS}bHP=polbG{e.qUaHyL*}ru<*]f=U#db!hv2hV#y PSfpaQ*0]| P9KZ% ą,,UwA&v#!웏=fia,|m*S` 9M:1y:GO0=Kpn "Zn؁\AV>xg8[`飉a˼}5!s5RBmlRj(tT]a -[Y-b1<82ăW=IJ]+[ :(DE>ڗT]7 v2Me.Jdvh>Vx/;X{۽e_ov?%-`7m]˴MDWUDq8sÅxn?2?'HӶ_f\z8*FY^DA!*Fy#ф0h.A7Ȭ]bD.wPsT_m-kŴW8f3AWIm=X3Ѣ\dRKl 5wo~Em{;voZYRk!-gn,ky/]OMf`?7cuuU[菦K?].Os=^&^[߈8%$HK$Eeoi;H2uW0`珡>LDX&mA=;wu/ȏ΀6L&Jq^1 u93}LI1@]g k>|Ik^;s. kͺx0tSFX\/ եO @E @^>,n=ZjTQ/W'EΪN^">yS@C+vM'*({Pf>Lë5L?1 N - Hn U6wg+76cS_K ,JYQ*.️AoJ܃NEϴxe\!\G{ o<^ F"xf3zfȫ{s[|}Vc`m^}D u9X|.zJ,˸zҾb\ɰ !kzVqoga9'cU1HNI52Ƃu#SD'3((Q+p4AO^F!plZrF䯱_*Sg^9~=kBhBU9P2CטSH?ϣN }L_4z+c7;ad|0Um8mxf$ZB}AHfv+AxKm#t1pS!h.pDN0^ዠMB! vX Bbd(B@ Bҭ}u~da쿹_n5O'tZ"T 4vFO5y(g4>NO_fꊯ20X}_LxBz * 0N\_I.JDAC\GVNEFQAk*Hޞ0=+JVŸwyAǻޑvQ+wYiȇ$3 }2D?\ϋK!䵰͜}q%Rkr_)wqO&$)8Ay]4!!4\BD˪(MrQA\ugbtj*Wm#"NNR+G2?J_:aZ ULKJs E[\0]q2f_(Yvj沫 nrCG7%6,̡(ݽхykv3PߑUO,W)l\:B~RĞ0}{& v8٥um"T0k*hDCf6GG<_b6;䯓 d,(j0e{Xש]?\Pc !S@oʴ^p}}o% Ƭ; *g~ELmA>S3g|t6e2;y)? L2bAtFcr=Y\pa {>eV}</t%hL7;O40GB%*MC[=n8D50\n ʁ~auwFbr'VR !#i**j%KV둮଱)W#VбF͑:m$VdPՄO$c/fFU#ww~.4s5NJl2&yiSVOn-)}~;H V| \RRG9GL냩gVȅO[H!cڂ6;oPE[byvO8 PS6֡H6v*Rjj2tNiUr=Q-@P&LO4;vzd̄ýi[tf+3k eͰaqsyKb>o' n}"Ae`jq5!/pJ]6q@,Kf)d~ʿ1h?vD):jWgkCh7ѣR**%!8]k8OC<(S HeIr]ꔰHT^$'TabT8'}Ea/2O<@qL[z~kr1;bχ}=@-16 eTb70ZmSy#T`y1W!ߑ Hy4'h VLp~NgL 4azG}d%t=vP9*X.*rM~C}^Chse0ȧ&3C1'`BOSL`|.}@Dwg9M?%Y ?&tpGoWtsJG:b,q:^9,/]pNG c f>;~n9rQFCG(V괠"0gL}]ׁ?EpŤ5ZI!ygż(@]_EhMSʝ6w 5toJ2oM}"Zݓ8>~{M cH7,:S!C?U+<>D3`ρ#Cڇq) pG᳍Rٗ K~ORI@tXvRT]pLLJ"b t,*vSr1%kvJq՚Rﰌ!9cd'X >A׹ZWCX4tѩ-#Co"z",55B9bWmKO16󤘧̷%l"´ʚ ߎmO#70uۣmOQNv׷walE.&u:H[hԍ ~:rJm!ޙ}XӤq@ѱ $/2,֦.GWMM"loLo]G};h!h()}s՞EՒ˺;$^SC+?tVwJ՛H}۳i 7l+ϮX> *MGC/p@ad$ƠF~n{N)Dl^YNd{:>C3Le0,md9ꈌ ߞ⤽TTF}X rBƫ(5xf! LLa)gϪ~zx4D`%] ǟU9 };2kkd/kWk3ęozS>*: e[j\ QZǕWd5'MWFVb>ϛ%594Sf( ħ,6B*5Z:;ʬ^މ/=)Կ7e8d9f/bQW&+G lydNxA-Ļ"KsbM ;ӧ0zT[E睲` %L\ K;roҾu`}xsusx"y (6w3֍G Ԧ<|}j ȟ[f'pd o%&owǤrweO95_?@^s l_E25LU D"^7(( .kvn0aM/RhcF1De檵&.@ySr\<'MOr)κdh%(u}1JrQLJIOlќ_~PMK!O BԂL=fQߡwu.8J>QCPT&'X ]XT~U}F;8K$Ə #(c\1}YK3h#d1&WQte9h[Ơœ7Rw̒lOᢢp82/[0x R"әnOTHGJ&L7bb!ڬ\䑨d#~49+>9j &?GTX6( !/=IZb^3 O%\ֈϩ8v eHn";Ս!j`+2N$-زϓRs2r82e %cOW$3X`^#14`DqGzbYavW!?jGiXf!Sf_gsEZv.ןlE u94^5B? | め4ޝQESezNzq`vpߑEԗrq 8!N]w=/[ͺ/^@<{Ɏ:?79t]%oY6\o0=EO=xGdHVXdG[c1x[BC,H۾$`5+d篱"FC9rI_xڧ*} ɦSТR'Qv(lٮg UySG{mQvGc_TފwoT%2^3@, KNs m?EgYn+b3˞ZTvH|) ς&׿*8>rj[p)T~XY.OkH~H 1jbiόi~ T-^՝vҖ;W\yB]sH2x {FaQbƉN,147Cg*3T騲w{1~VSy/o"N9YMscr~y[kf@j<r~K@eO)x&Y/HӬWG(tF^2tS's^zvx M^bp˿зF~V }ʦ֊!1nWJjdpUw \dvMϦs<5hhePRI y\7mGTDBޫIn/эMKJMȚ%HjᴜJ;;H!ۙBa$xkQؠGa@Ro>^.jA +l` ο0"QW$Q$;',v$#E@ϩ$$ѾlGi4jڒ>Fܦw>٥ =3P 7 l%n(_|%L]m1&$Q$}A} V\M?5B֏/[S}⟈po6[X]~БK )[P"*fcAkc /iCӤڳ(2.F%%l QB&O;ݝ MFeRLtE`}tzoz*[;^Æj2ɛqϸ1n`O.;y޾Z&ⴌ{GlݡkǢkWvdEn-qsxQ#](=!6b\1\q^r|y] B.M6͎#¢-ӯ7K,X~z%5QܻrmG۾0~SY i:-_Hm]vb.n~֬/k wgRl.(=a{* fz<,>!uW6C;)'T_CZ%5Ր =ѭ˟V_^F"BMOQ/r!=v|ZVYLnR #dn{D-R\?ñ*4Ph&+EmeArb;{6EHlgzEV)El%IZJaZ*0[`Ewؕ4UmJ;U 6қK,٥sHe=1Kuڱ|,O`Fh[:~.Uu>5G(: wĆt1v).(8]a.Džoh[P8'*WQa1?mztϚTtc\ Wm:6f)qu_y 𞸼J 08z,N]N{t)CX%40/IcI-D+ɊvCs)8: -D="CKEvm$ʥ/Nu80ޖ@d짵WlZO UD̠5cB?=:E5=#$2͂Kae~")0Wo_Yrd|FR4'fk0Gͪ`k¯!T`& eRzZ=vfGu\K{H7AM;_zvapKaG p1һF8%vwJ^&#ibYo}Эϴh.pT͢d 9>GT \z@qaB dr Fw]^aX(;f")LuF~XHeP`@)r%}FԖgcp|'_EJ]W?s3EΉO޵MT2wf^1 CSoC!;k6I\][U{e^yCyG( S tk|M0Zp$Q4tcϻ-٣BV.ɫ,{e( t|#Ӆwx!,Ǎ_5J ̥6?meu D`j>5L/yuaW}+ҘRg][A ݝ QEg|vTsVnŎ36N>jxdc]S,v˟^ HNfTgzsvJb Yv„Xbۣ3[ѷsl0ѿ@U@'O.20ge|(:}-z&oi,uӒ8eQ/bS*- rSCC>{?CɟDm{yQ{g jmu@.r1A)v%ҧIKkL'| ԕA yboqPKVUNaAqLֿ_'[xo '8=;OԨ619JW-_(Z<s9olq& 2sDذ{_ekc}o9,7DϬoʡ&im>%cɯwleVnyߪX#:ϧ(]猩7UKjOՙU0)p͒ڰ``y4 ߕ޺ clK:+ئCcFzλps k-6cw^ @hzPmiksivyaz ~(Ͷ0%@pp3r_G@Se5 lΓ446cG`yZ`T jmtneoBe.2# . 1!ܓy0Pjd:M!U8df>sQF] ޫpJx%2͉87[Bgzxoc@\΃DZu@/@\)k]):q1a՜ y7a{+3O ݮaAW-=g> Ed{Ϭ?*:ڸЏy~61opwj^VΛ1*eH?s-[A!KZ*U(@'P| uC:+8e'VRG\5Ҵgj3y(ESBXKh-AdJC_Ma)|Okv&Ƀa%q#3K)+$<}/Q\-<`f`m]NpS/%G Y=0xMf@M5} 3yd̂Za j4񵲑6VF}RʐӀŪ5zv+B骒ëEi?CD0F=aĖBp e "/ 7&9F=hIbiUbLwMko+4I?aHpQK) yG)L]&S҂ll7, K`v\1dV._.47/ippw0dQf9og[ܧV3nZvkz`4Csel|#|Ԃb7qxT4} E IiT_pF/t},<[:}|+DAN[m'~M37cDXij_Z^I$6A."\ p_~AjaVm EK:5z0E-G¥ c:ES@5nM E<^w*hY9ao,Pk3O<83$FRtsi{yLq'ԅ[~#*eZI_3ٶ"kIP2!7`b-(9axC\ӛ_ӣf^)3lYf&R]ȚiRҿSѳնЎcc)V# Q'ɡ9~f޾Y`|- aK  )(mwVyʆd&$U2ʬZ5|?[%f"o9>ld=4%~+G>v 1JK!BזlQ$&'4Xɘ吭-a$Ug)kĉ/e!$~5stˮQpӾ森'3:5zg;\HW"'Fe"^ɓ#xw5KI۬sʩ_^GS2\?[wm˦]J%J)%?r='PlÆ4pG:W2}k>EA/NX6RIQЯe#ecY-"k.2x? .G랓HM|~陑Y*~m쏔 &KQai%y*v x / U Ԗ>5OUå4)F{*K3MNʥoهMG!Nϣ5.7(P8&BֶA[|MqMH>''\iS ~$2KD pª+hV|"QT7hO)\^sJޛ (?&r ^4 E6;rNL`T9#$$u@f FޤxX==}u^X~~}y~Jǐԕ8-R1ʫ ۠ {C.bă3ޯ~K:#xvcZ3Gc#DwOrcgMַ^K*|+:)rSJkR^Hh -D*] 3xffLx#44ED(֧]Ⴃ4ccHd]ד[8D+!5qɥH2PpS ިZ\7qCȎ'> u3#TfFp'\Lx}TV ;d4 ksx_i8[/l"-8r) +}݉gՍ'5Y+M=Y#P!j%C07Kvv`ZZ^پj+O+zGy`ͳ~Y!x зů(z?|hOLYS_/Cti=Wdw0Y7:!RZo~U$vѷOzJ0w1Tуd8s1Wf)\2S!ݡٶ8HڻT<97~g^b-nNE֓ "em1VYS+J,CrY% ^+]hoe۲SN\S-I;V1cbS1iWFeθXSڝask}*ws~q.?ȹ9K㫩/2*iFcUws9gۏ.u/3~5t5L,ʽ'{ij`dk]['|(*8t- zn0wKc[ٴ!U$۹ /tl(i_eX]$*T=0SKgԨR?@K+{F0ol<N R="CKGoɊ i+Lծ$5486SӟCW`pO ^9WZukj@@,≧.| o4-otS-NI@4k)ybm{^Xo@rĜ)J86[0`HN*h[(ZKD%lZx.U81J3ۃ5}KGeYW{~8E*QjԚU:Ɔ؛m~Dҥ?`z,N ~d5o* Jb!`Q} m ЩZ2Xn YG\=5W?~+) W)QUƄ/d|pىEXyEaAiKL;yf2`+ ZUfKt;A=>EۭSX~R;Z[H0yµ-`$q-WzuMo(nYw;PU&3UΣ~Ohh4<{(S WC;yW2GdUш諭0aE/]ǂ5K@'Ò ;iEZP@c9M"s\۫5hr9TaZ?JܚR< \wHpK.zvx" w H3mVPڳEŴ\LoAS@-DIW̩A0"7O/.Oc%k5Qu|T L6bRan9`/*+"j)?ݚ$+‚ R3]%f̮Gy3]O&#tK4_lNzbQ+6O98Z?9wdMBuy?V`لę2B kk,~zXme ㋸wX f=02zW,};BYF7Q@~L8Tu'/4S3XyEeq) ܯ̄@# I1#wf=20!"廖^GW_ɍKt8?[BJK!G50]1 >h5A_<*T4!KtEV lN-).ȩnsmBoJDPuB3xDT2 ^w@,`ϙwXɻS{4I:nAo<V{z "Z71EG k8 >ưO bRY _8|. ?SĂ6Xtkoc)MKOf8d03j e] /_*{ŜO Wdj̓&vx1XG>#ٹPKucCơV%nf)[s%*cA͞9ƎVyEĒ3xZD> ^ֲ"/Wꭖn8ٟԕ~ᾐQDІۇof`?ۙ9_{vK·/-O+y{1)UKGᯇ 8i Hv65Px%KZ7mbG f3I ގ tu_P~wΎ;uH'e"ghpT %~"? B%Ht&b^.=ymhTx%Q'T/=2ܖJ&T."eG~':%rrŇC14DKYدnkvKhev8Dzt,;{{`0YR:XYZ.~L˃2ˠa"餋!s,t@[sq^/5ӪR~2|f]MeNuo)JxUJZ4ÈJ}B15Cѻ%%:@@ o )z1뺥*ՔWVt`>v)+٪ *ikO"qUx魀^Bo|O}!l0h$##T!H<p҃ZCՁ:6C. Pn pJƞ^Vfkvɺ|:^z/ U|rEQ>!fANRv/Q-L^&wO+@==M.,u[dQ/]"ܞ*Jp"s Fl䉄wiBwIH,==4+i 9 l,w#t/I1f=v{ȣxy3f[E6مX %zPq6=/MX;/~8].{#5 J?/N%E"a?fٕROX[)RW~q m6u/k3>!茷0 SO&43LT?a<7jہ [w?3D߼F$yT*XA,S1J`PqAw?_e/-ֶc/VZ.S= iV"@)ZS)B@AH sUޭܺ'ğ<],C0SP,:dAw٬ h%KS A~ !%0O]~V;IaKc܍zvN uzX=rC5S>?I>_B7fywv, J֩HէaEÉηϙ&jorP#aω5쟯|'97Y:on[E9褄vb0RL$S7@g3 ˡts{< u0\Hp"75/?YAf_B[@.+v<tغ#}P¡2 er eƦwK _PnȰ}eKqھ4"'#.ܩXM9_}7;ߘQ*))P.3&cJxlA?:E1YjW3ꬾfȎqvէ85G[EY.wF򒖩\ L~6oE``ѣkEY "]%'3 )e%9L; Ǜ\ы,:2ފ1[X Ӑhu^TJ?XE&[<.- ]O\Ps0Te,%OIf.ƼwT:#WŤmS(BHp,R"=j6_#ڜ-u{ݵ}#pQP;Oڑ* 6q؏z'}"+7-M\UoQUpQ`JzuQ_@#aʾi@[Tw oׁO0ݮ^zy̌ iq7 AW9EcaB3W%X,#oK8ct(kPQ,I eqv$}%G7vnL< NRֹ=yPFt*{:#C{we ![DUd}{9j\}usr2Tv9ǰ(!V }D)~Nty LHdycRqK+ h :͖]A^-(80W{:Ur,.vCϻEue2?иu!lu8? H3SUiDNbOerHo&~jr[?Yz ;#{SE^ { 'a({y4}JF=&ջ3T7}~dγo{&E 6r<NF2NjGn 䏌R g9Nprcuߔfm^" p.-z@M:bl GoR7:͜3ӱFmPD#m.x׷c*sP&ग़x!6ERn/澣+2S`Gh=.ZFF~L11]auӯ,zV(st]hɌ?%V_e9s@3٥prr;;mHT0Ǹ*G& >)˒]z!t{@ Ysͩ=Oa)%>gHAOc:2&i,Yot:]YK*a(=g߯?ޟؙpykrO54 0K_ESnF -?z$k4I񧊍 Dcq_II)]^ϘM-y!])c

v2j#r.__7:];\}3~z7D@4~䒺eF쵂I7,i#J΢uX*@($-hA$z A_ϸ"<)kO&_]xjo @]a1>zb<3r1=(<Nk*ň=Qnt|~Ѹȋ}}AJKR%'L X7shzްa cEOmf^`wAi)Nţ[{5Ů9 <yl!_J~i M֚he?eސ6@3oȷwAq1`6|i.Ѽ!f~9_;7m~}{OP.iʨ%e)X)`H<.6_"ɇ{}b,kѝ~2k>2 c|2ovf|ЅA( ,+Te]UI^~~VɁEf3Li1w=-v*Oci wnggWA= Y?3-l`8t3-a|8|W}h) ;.Ʌ5:LUl~XijqDCĥVΆN~GNHQ|֨^[^G碡q#ZՀ(%8iEȏ۩fkdqHXD= `Sp.:-ݦPmdkEב_a{U,rŴ-{7E_tuƛ )EL6IԽXuޢjoi-;ߏWP-<*;A~?fh(58~~\Ab8!'JTm旍q 8&>G3v*ҧqVY[-5'I/m0WFUKmvj#yg VraeU[΢C6}T6Ź$]W}Ÿk6<~`Nt/`3I8Y>[)`=2"L.G}rOtaaz7qlf2I's(e%/8 7`DxOXJ-B7zmH`B[.E騴3"8Y%<{[.uWKn>ɷ*]nEM$>^)FYO82mo첖8 UٖBʯMJÍ9W^[R)F`9\>Ps`f:p[\GjF j_/Zm _H]ViQvP sIJ# \ -0]* &{wD pUoo?HAA[(?7ިƓ}= JKeMa'&gp֋;6r/WzIimOPŰ=,ZwϞ|fhNoWwӼmͰZ3}~VԂJysٷ#`#V5$O:6`J37}dϦ ߕn'<!jC gnU+CTc*eAKnmW5O!4I4QzXD7Ьc]fU! 9 LL/}A}7f|BP\!j%/BW=ׁvVrեw'{M{(mgq|Y'Y 12k$ɠ?#~tr|wQ[" $0,upAQ7ڸJMÒؾ.6̶Z{8(h eIΦXZh!G,3?ESBI$|3,T-,nil_+ҶOY<6h:o~̈otmE7hJzOlK]&ϊ=et ܱ Q;e\⁲I׳տ6ޘBĎQSޯ * 鱮W -!ɒ=0^ r-+m\+ jD3]"-#Uݳ+َ|_1pmjķ)2*}4yS$,l_Ζ|UAI()C ɘSo<3%^*W;ìs.S!cF[fn!#07p{ E//h:unT i$Y ep ŚtXvmX=i`h6j&R%@JE ([Gc\I~t ݽzL6*&O2GI>77Gu:ޭ)@I]cJe9t$>)]+۳%r#1[$7txj 487jd4# ;1ڢ -> Jߝʐu(^8;&)iH;܎uOL ߘK7|"`-#M@ʐ (H>x5V䧰8D|JL |g.өʒ.Kd|-|_UZ3U⿕&_ DaJgִ:Fõ[Gh㑳V~r3;setM(02L*|&%nV~k~̿ E Z]7wѻDImږ6t^:gT.άY ^n?vB 2B.%I&v=kڇFWtPRkpVV|H 4Vw7. F|!u`DVLr9Z'y@%Cv_T6;5 Hib?Խ t>5W;O q>',H>9<­TpV]U@rDJ>B?Y"Z <}Y 2HOxuz oYl~܇תwm{PI[IRP˼Ci%,5 }is˄e/R+8=K5G)y? <8+0%}pT\I!B_ XifB?=9A OJlZr/#Ga(=9~}\*aY"6m2G8붂ƚ{/.@3l0]Qחv)~I5H\Ն<1mމy4N 4D{hXi:d6Т7%i~luM;*0vu>a/Xx74g?,pn.̛?4Sy'l|jxBꇠ(B [`РV=? fOmsXC|;7_l_TT3UIF/+e@3&Hʽ_VKɂd yxMVT6`'~pWVs\!AO&W1z/}Pն d'FD~@\=W*$e}+P0ҜO@CSVey;<ˋ'Tc Sp=->akMRTnz߰K?R}aO)wHX; Fh?9B7G qvB 'Φ<^+S 9g ۓ:!rJ'@GUT\A͠&V\M>dKzblm oJ;<~#63-}"zhl: /d+;ݟ?ʐC, /k ={_ͩ״6{(tJ>_-3+؊RbUv>{p9j6q!q*F3$l̃{TwQi'%́؇.e3Yx߱y<#n)贱IHƓM9ҞĀI)Ţ+E|7ezՈ$_-gkۡ+4crdfAKxB.N-0E3OcGѯYF,F_QWKpRI–SǝO_@juLP*4`<|~L4kj|ڑ9'V-[;.!^1֜>iYw]Ř !f0I q=JO(0r:;>.o@]Ky6$ܟ_$ OxxAҽC/l~7gQiqV[cLԅL$8UVN&Rֶ+*cښdiE52/ņw!+W43 fy%} o@AAO"&~H--s[`J km*h͍@(iѩKgỉCX*(}bߗ|AĆ?CWՍF%E#w33[ ``]F+!7V_E܏W~N e30_Ȫ"$`Ǧ;Q@Eu5*dYLZe$)3Pd[ŶI]8"͛Q9ǏbDzid9ল}dyC̶l7KU/.ݠO/DS11zP?}#5y6t#0>%8yrҺ|B9, Rǻ-.3<>& v D]|b<&bQ)ñcyr_* ]ܕ v47{Jl"=SKy1֎zWg"|belqNJ%RM겕xk[P:a|?ϒ+p$@D H.c~vH3fM) _I907gY{q 8@?ת*i]VȘJƀfs)[0<;5ϭ7;[Lȳv.XQG W銌m0ZV-@#/$Iv59,RVmj% ]kG}[PXŁX?E26|\Vm)> &'m} %FTׄi.8{igIZ8取 fK9fd\[)g'mޭI*U0HG@*Of\l>%`ZQ"pr`L_Q$ 2xNd@Xg=y 0hV!WO4UDfk:)b|=ƿD> ;r_L&mGo4P?YH20C%",,ׄrxJƚc918mmdW4R{aÀC ݑ&F9*}Ђ/LBC05aʋ*Jm”zTӧ׾r4˼ǎF3C<=u-b+[z9 yN?7 d݃1Op-Wra,lO;db4V 0~y[ %P=pW:[fUe7ޝK'?Sur,f}[C>6<[l_HV/23?7opaX-!ȓ(:&a*I ~ 41KpE_bFZm4cNSokYվ4m޸]og-Ycpξ(N׾uM#0f>P)sкDZk~_Zrp\\fNPJ$ oɊGxJ{93Ix,H UἜK<ĊZʻ }5 d%yC tlچU!-^kEyb=r)_^Z毐$Og>qCcc'8 FZOU'EUz^ mÐx.^[.7;Ƴag eO[Ls, C 'QRzKGn޶O-T3e_㪫OwkfixoIPޭ@avf䐈A6];Ɗz[+ cJ kvR0:&k!W *G `vbߣ_ĚArm<ƻBn(O`1䷪ qw0G?`|sr=ة'zA ٗJ) C^ڇ%>86m_eW~Ϯ:v94ے,xi&nG|3W8dX^ҤX7#w d4U3cZƖaa%({ƥ+t? `,fcV>6Hq,(z$uɔΚ #m--VZ81߼9mIrt3 ʯ9;t3lg"E^%Kń؋<0CEsГ;b[+r DqVM\g[7:-!RŎd鐅n`{Ϟg1;*+l8ڰ '.oG04X6SQ 1_Ͷ1z-k^6u uŞih +Ck9,c*5 $0ޮ XP`~ُ"㲢L[sߥ~~WMzrkqiK{=NƑ :klNMD1nwl۷5L Ge2^?yEp:{^A!F(!xfcK;@k5HŌ_`qx7-6]Υ Ac'?mс>smYnnq ψ=kOEvY;(+-ry3h?  5)mt(287mH}.]5ؠGӎyل-/V>=<}բ$AeBӟ4R;x۶A-Üur1,W+WUlɒAPtЫ_A͔Aa\ѓPSAYstޏ  J$J 0w{Fz?U%+.hXc3=A~@_KwyJVЖj3a='dno"Ȓ.^Z0&5*D?)m;_1vP+^B3m5۔ Cp!WKfuȚp#\QLU=$!wLz}9昁0O?9qB},_1?Bډj"N<0ru TT[(Y8 CA~'j]H"f+:"yUVU ,1kJI2Ddje&c5(ȤoKm$m% B#nB>k9JϊP;(nMg_۔bPҕ˧)^~I28)X%:Y!CɣbcޓߟIf*8L&@/jWDޢo߅$6WJfzgOZSݶu?x;ھ_W&|Jˣ۔ִtUA6R0e%F3b0j͌˪Y"&:hmU~7N~48[]v|e%2Ȫ}rDP>-u<ɰ/ !Yȇ{PUigm-|')3trxXjXJ&7+ʷ©7%Kƾ>L |5F~ROXʾʂC~$CkpyQſ!FLhw`7筗yª.4o+2raN]Dd @R*8@i$~2C:A)TMhr%n[FC&Ք9pcH޾XSdrJ˽4}-O(pWa -1,آ^$j `ت ?cTO'=h>7i)JQOfn{Oɣ #'|14 !hݬmoŖxP*aKNJNd4~GTeXLbl_]o —)? L:Bci|̖3\51VyŃڲd:dUkL?f>{udP +T] ?;Z?xi k`Ycqi%@8E\BNMG?VxWMTqS_Pd|U|}U.@ᛌ?5uwQj2M?&3frZcʂl-_qRSǸBQ8hSAm>>L9dsU+m1FooaB #|*{8 GN I^D`'Crn+q(sdmF.[tE4k$[PGKW@Λ%MVr~uI҂e,aAgI!O̓DH<mۏO[ :3&nߑn[#Y͚xuFZOKIsBykE y?;}[K_ʽeR J鑂(}д0>sx|x'~-I{|~,*@j D"$3ieT?n'@F g&A#닉v|@Xp7F#I6wg~%J RW1a;E44TL4͹A8+Cn\R4:%I9r鍬"cp^\=7VgG08Ώ3uHwN r'[Xը]#=K2k+Zݜh~8|RUe{,h8]d87\?f *S$= 5ҩ%o"tM_ ڧf\=]ᡤ&뎩u@zp :B#YKQտ6^Y #Xs{Kz@Uy\PUJZo-] {5K<'KVN: tFl|j&tk(W*F 7V^,+p;DpqRK#V6u 'cVsv;L [AfzH/oްNX:%BgN}LKjY ~@J""9*z8Hhq[I0mfjiy~Wߛ* ԅG$!ą,'L<#oJtW(kaZ}m,E0,O^no`p>iS!9/{˼0hM -3Nf5)w~f[*ɔ ;oeG*k]_@|CM]Wpt?Zx.!oӉI/}aH?|=ٶ QU QpЦ nMskNz {e߫z#8:N̺_(5ălAcx;j_SL |+ =mH1PK~q5jk),v概-y$xR1{'̿#.ÚyH^D-M!RǶg*쏭Y8(T]ZQ4ag>[s=Q tkڵ1g/_P~Fώ}]z0HFĔ;ihANK[w3|dIu>Q ZH.-%,)Gg'sB@TUHxn?1"\O= c1R߻0e6-3ܔ\A}%mo¼׮F>l7B.{ IwTȵ3:'5o|$@ORr>y|]_+Ee`$[Kmx0)ֻ/E->LW`o{IH)eRH;rD;h>oM%0P՛ >64k-I dl?%̬0Q_=5)[R^kct)xJ;QN,e$ 5,wDCo:NyX.vôz$7_KM" fY0. *akVAҒ-9΄w 5\Y8-*,+WuZWr~O+CnREv> 5Y0Lܖ!8T&U_mwC;:z&ҙк1Tp-{ýߤԁ -8$nɹ^ Q51z6[Yƛv _n~Pj]{/wtO<t |E ]/ہAfكīr8.R,Uyn~(Ұ cx)rQeťBVF |P96򇱏dO-N=Q-4Rd hzOvoB~6ZB?1*X&JOW!=t 8ԓw'qrF\(\"v;sfOv_'Li/J@}=/`8|Uc;EI t,Vn*zܟ+I Y}3z4([hnvhQ3l&4W|cKXzj 䝜..qE>g آnsR乸$EAτrKW)~p}i5'o&W>B`vU]mګjr_>Iٙb|oRi?q\~SjY6™lQ9kNBy╿?_!ê2՟^i9af8(^XAhPu&rkekʻGr ̵JݜjK7v.;. ='#d2&ڒ& Ik`8*)u ӲN| >lÛ]R X }.(׫Eujo9Z2L@/d#*t\>LtXQ!^sUNoMoO:@LEvRdrVR>D˓X]V6&Pd!{8`Dإ} q.siu-M-OX?u+igo5dAgAkapd9qgw3A|Wc lqdC(@xϑUfKЗRJKR˽z5*?J e.DkHm|?E6v48f`Ƚ[u~B14[%AŜ;6_qTGG6w`jZx"q͇wU{ek 1;{1_v%::c7XY)ea|v+_D]MC.6nCI$[,Yc!V@KFIyTؕS@d!Z_㥋eI$B T摳|uc'CV;xfrdySm0*q1S=*P=]cYV`fC)CB.pf=j ƿ2R:m-1, "l$7&2~/eG͛-9'XAWayNAiGȣzuyq@zN*7j`/Ț8 exzڡ8i:wOn^zY+ׁpO{ O?tVP%TmUtÿ*д!%<^E'#r\(c^S=RRW|XWaZ^roz7Je7$ZR x6wemp|xC#=aO)61ьS+׸ >34y%7:`F⤽֮ߞBa Mب`TVw6cc~u e71P-nX0?~M V#n; tLXX`옪a-P~sZo#? \Vq/xDގOV hR RtL+eUY+q` ^TP*۠a1 U,>.6(IAlSJ&u@]:_qz W&@x9 58<]M 12mF,RZ*S5 -U`DBr?6<H>"<$d1hi+R| )=S-ȣ0r@h NZr=1V>.ۻrRB:T*2)a{#5\/m@Z#klV1rBIZ @D vüĒfY\ cBQk fzm׷ #VCA[FoS_t#d-{F%T<O<0lO. -f/!chy-؟nKEn)J ‡d23qc4[.o͇*Z,臋ֿbYNm(0xoNP̣PeK^\wHIrZҝYs3 x狠\?oVDӷlV`"-<u+w$zYdtlێ=P;8DGj1HYrƽ2^gi1?P|;{שׁ/j)4kV™avJ12__"%a8|^fsXT/Ly7>2ϷRo_heJ- ?$$H)tmO Khq_?*h\ Ƹ~6+\:l. )-D4H=I##>)HR}v3hM1у?y&WLں6/?B;_mfA U "_x.'z=ic@}aJ{),XDZ(Wlܚ6 D= i57 /3~~3y[K&t""GpCfo˒A(J>+CyC2CLQT8|f%%%2LveFrw}|z;/J\̒apx+oM᫱RgG?jsJxQ~o8lśҎoHtUHWSFEt/i3/*gcL𭳇Pm-c=5BU qN_C( eWп bW8e$r-Go}p ͫ-bo˵J-ߋS2,U5Q&(@S VqR%26^8t|vaʾ\7r"4A_Ռiu0} "#Q oR‰1 "=@vĆFWc\~s 9W7 eo,_xi G%JF!ġ x'GO1%`K[WF+M "q6{wF9ϖ! Ǽ|֗ͤXaδ\%h19^ŸTT}훋,>drq)D:r>!KoUb_%RM5РŐay\p$ZuLt-%E,7(I9Uhq_BoPDrE]- }ō!)mH4Y{_4#N-7;L1lqӞYNy zJݜlyl{s/}0uiQ6>Gxaޗ_)=F/L(aruN0cvqM5R&>'.ﰠ[jEɸɷ9?| |)}QF -$CJER[x(es&BuB Qg{aЯ&\w'hQvF0c݃7o\GVx$t<9R$p> 5V`\C1шk1}0xK@vYՋu?U0El_I'͂Az+@nK"Nm:B]6nNSf@6Kg_oE]bI{.`鳡 d-mB+(ٻ'J떽0W8 UYB%UI6.A<Gfe`pI"%Rxm 7aKş`9pL.}&C+W NSu~W7N/OON/9f`rYRI) T"_ysloZT0**(SHxm3:{2 <2\˲^-fed~0ڬTW*1vCempxor N?ާR֚ @EpTIW2KJхyp@I;\Rd\{ `&KlT^j zϮs+64EP u:;=i^Ld}%V_܀~ 6KsP&1h qx"tjX0 -Kx6tއO:t6zGS~fih~i)>Ŝ-]t`e|GڰS$d75FnD*Y*=ʉå)>g33cL[5xۻYղd=Tk|pOJQe5 *kSҷe0&ز(0.-Enסɜ.$fP3@TjgY-qȴ􃽰R۾6wV*B/C߭۬׾_a<_._ٳ^/aZĈ3%l hqrNZ9闎:IlexeӸ͍²z| @VAɮ~@:!|+ha4eqn]zllȏkBcFqCK44n_Tnw.{74w)vB1޵Uw+$q3O!I (}]ϵ[e[9t,\fA TU[U7/Ekn' ]iMᔽ#X_x;c @m1ڛ]:!,$GDmQ}LD,2)A)AsI;ۊ \ou g=f4Q:Rdߊ 0o-#"/_زSeck kXiIjio}<O$ @~#TԙOg/1H'F(Kߪ?079~Lnhw`c0,;ͅr`c~wc T/ m x;6Ge(;Gop?X{/10}A:mm~r%0t(au~̏)&y&'Q]ޚ~~5WQպ?'NWD\sal]ȅ5~3G w O[;dCʴTc@4}].HS&3Iњ,?R; K}+bv ?#".4+WP\samsy|uGTl[k틿ߢ#UXBSy%-H o1!q2v`9x(Fr"dPmeQǭĊKZb/$ߓF:AGVѹ(wY =DHkO+AΨ%Dv meq?xSw:P[o)*[$s!u.^Πx z.BҖer01/T9(?}B(<{ǻ_)P;p5VPі0E|inOKbXɲ`&Q^pH7%ֳeTlk_n)&+zBN4,z>bD_}tZY4 q syJhUL|vsFehe3T94Ț̢O+mcwwy1R@tJxNO5NJRUEVWY.4g鿜^.Vn_ϛI n/fwWײX`8X:j( N_L~&lt<'/R{Zr()/W~޼gQ{M0fjރUyW>ϣ k|=Őr`XR"X/>yN_obvc60c9Od`\3vxi}mk.Īs~4SCj_LkJyӐA,QIXЙﰂf/0G2 ACoJHY Qѷ6?hw*J}Tf10` \zMhfU&ȍ`~뎗!)XfkatQERMZ#־Ɔ.R9Ƙ qD5?D%`O͌ohzR=O\c d7z˄ASY^ OUڱ*ђ劼*#~_r۝HisGI @ RF.HS__G&$-W5K# Æ.V!h(ۑAC=XɼtEc%=.P:=G&+ jw.DbŶsof1/J3 K=n'}gBejxQ~\}8ڑ%^O?HT (fBmV׻/15\J t @v}? ^g $\7am|_f6/…"6"K-XHqtAZ$z l~Z, z]fC"OQ$WZ%Sz90>WGi^)}$*׃g |$$H֌WS.FNwI7d>(@5 AD:8\wEs_v%'ixS$g$YM㙘di {M(Rw-"Ԍp>yc|ЧĻ5r(_*"V|Tf2k4 XEi}c4sԹy$unh>ezhgY4h(blKROm3]"uYPGR]%HNXO)wnw[9Z*arna;$CU}wm{2,Tʸ̇CE`?4j9s(+ AAʕzTF_ t²y0J뗏-yKla',uZ9C `/o2>qR)b2a{)3?Ĭ4p?v SiN-e{䲌}|z %O6B.JeJ( D]tc(6N,C[^`[B+q7HMMԙ(m N5A]CMYf9VI&%E' "O6EptG8:D6Yؑq`!ejAPT @3W%7=9BEM~KSa%>e\]fmfbWK&^3vv+4=&`(Iv%Y̳"sD^s[XT;~8y ^w^ hy67YL _hxl?Y+0習 c%~zi9vKE OļzX DH/GŬ~"͍I*w55|`S@agnDPl3u-<+EF648(X_3aEV>Qq|zr}"ZQBA,abg45"d>੩5U.b`*baQ8[~Ll`AnJɿ? xR9]"ggEi@y={~Tx_Wꢊ̆]6}Ac"mt+ܑN,ݐ^Xv[оoJyo{ǵrƂH',ró>Hs #ܳdOo0ȑ8Map_ґW HcʧYO['Bi.*؛Oǝg1P3y2b4ĶnUT·3W1ra2D0# / UG^+u$-dPI8۱mC}oKzZ叐K 8GEwxUg%&xW'"&ɇvv";K# i3q 0O:E@&єe'89ط .W)wqb@dIw ñ.CJR i>)-,1rXeUc̝e';ZJEi\Wo4 U~kz5s%MB@•WDm֡*xL-*q?c(je/:o=fxU[7o3B8>]zClY4?L+$ iyy+[׊׍i~Y5"v و:/.ZJ紪6fE;~Lw|=gB5تJE؆ :x"o1>.mxMڰXb,/|]uÃ$x<5}p$ ezKx,֭ÐsKn੨Of23knh >b5L &NoKLNu͉d<)"/}ezby2#Mgz? Hޥ+?`G-G#XaŌ0,g?YQ@FG0GߏΐEcek J\$jeY&f~g__^L%mpo UuJm=5fi,դKk;SɖT8g-|)û%ԢY`c1ZEPqe&\ȀqBRn9ްwή :|bt(gLyo%Tc9|0cFD!o*2x~FY͈Z ?v^eexp} ~#JV2%A$Z귳ϡ(~'&-CxmLb( J q.ɍ#xb̛-P}~#4{b_l .q_p!ܴ(Y # Ÿy"R(T8-gA$?2ީqDZ9rtW~."{5ȶR8 +OrTzyz"83*4;5'k2yб!6QQkN2?Cb>pX)鑿W??Lxdm&_n#1ʌNg43 I?Q>AP5e1( Tvv|axj~˟7<7h!Rj诜_CΒrpP| %F$r>LkM՞-c%7~0 h^L'MUgX@oQuؤDZr׫w-~aCҜzbIjY ںOV$YR1/Y/"PG1fAf1:yNg3{.m^,~emJ5c+;w.TGOj4w,#pq6N]Q6fqm%mj(3AS! ;8=(ƍ}c=w56@5zщm6:l*X?G~C JtάӦM jKNA-G&uIzq\6mنOИn~:e7Lv&/db5*q~/Y}an=!UW9%뭊xV »~"u&Gce+ieV@aPq+9cBX7Ror]d_W-,ۗݦ-:^5d#8$) h!GһI?!*f&2lZ~ ɍS uYdMhiH=ӲWtlD.pcNV!_ &B=^-?TEaLjI+6M(&P-=[88HI h <>w+gQV"4\IgY}&m]i;b@ߩ<|cO, ̼wԦgw m{s W h($X"[593/7 6Br/<%܆)'-/tcg~js]ަCh`2Oկ%e{ٻ:r,~Vie[M}TM,W;%,ϸe)1mkdQ%oR_C3\-؝IJ;Jđ<{ڗ^~- PG\-4:'k݊ v P ղ0T2T;mr5O.+"9L,Rgh}| Q }~)[{TMq3?7:~$t 5DgK/6p`dk׎Ok"¤-ǂJxXz(|Dvc4}mp'2>&c0۫ Uu0],^L 7" {*ln*HsY3ps1қ(߇dxA}d;dE.uUsŒLJok2֤Tɦ~IrCCSȁIOitc5qoND-К}?ܔ&vѵIG 6b _F%[XPR|eJ 슆LEAqܨm"*ժWߏ-ԔAm,JE/1пP&u\8 =~D(1sf3-4L*tlrO(us$9"E?~]n6k93`'RsC)>`cCm|/>|2'3u&#wq"fb'ŎoS .{/;(P· ʀ=:~G%oy@` ;)Ux*m~/oXVS$K\Lbpf %UJ{*|ʡӕx![mUS~IRZI]'F0]Js<_֑AtN3$ʾgʩLZ6b YcbY 9(k>&^~R~G߂c>vM5Rxк1ɹ`tJ+kMf9x#>ZU7{=vCby:;v7yĶq-**>o8S$[. Y?WQEIzhɿ;Y@|#䲚4_0OH>-7q+jLsl7#Um{yMÃ{MQMHvZ4_{CS4l_ p4n*[ Nk"?7WqӫmK>|Sll[j8kX~bՠ`5r3y5TQB( 'ߛw.qd 1toD!dElVEgWKZK V\}PBO)b~Sa40Juq')ZZC͟oԇMjN}G5f BE" Īi &[y? Sx06g:60S8DV&bw^: DȘC3 Ae 6K w[9F9UyT !NciDAlawu('PcVlKg+lvߧYOJ!)N"{Gr6jlV <[ J#po'HIfrP1 |4WM\RC7x|>X]ƕY(4ӕ༈RI0QLkPEOvGi jGy[{!}=ˁ /uϜ8z!ݏ uH1Wv2}!.+)y1SпY.e5{ BWŀ+?` \S : Vvn%BFëtɞl) G"- ze%D-^ h0A"/Zif7D>`H2҇7g1nQIyf&2rU{~xWa,p`Yv딜1}>%÷sU+TCVS"*) ntjIOݔju? +_)'``8z@`G mt :BuHnKU'0ZwVN~ޝInrd}Ȟ[gXe[a h[(>.ᴂ ׫mHo}"h]`$ L?pR6?Fz2r}8QrjbBOteSY[S`zOawg@弘#7UjeŰwf{a{Wa;/V U05Ft_B;N) /OrcZRр_~yuvx S&.\Q6"߉4g@;̗!cAߖVզxĎ HHauv;.ˍ'B/IP=K X{}vx=*^M{ *j߿͟&hAI^@eM%tlL#E}*N$`땧]5qLʤڤO%,_CYnz HOs9jR4j\4S 2Z7ZX%`Y!y/_(+'y0݂៪1_3A [(`Q(I~'Pg -s=$y&N/yP T][Ks7W$AAb2 "&c=MYTIFqP6ȉ PS{31tHPL!#,2bjvbmjEBgArZfwR.;4MUwrF:Hw* OM.9<nj'tk5V*6xJlL걏ƽڅūN*)0RCJ7Q_V&V3HTW32Z+uPՓ'KtV/ƋṊ0δ>|0-8^_Âv (Z.N@$|ߺMPwQv{eIi\0TXxH` `ۃ+mg֛mȓb ]4` / v?Oܻ9Ep(Xm/,ENps8V2;8?`x{Q!,es?N4^THY~J&Lr?gB3hɶV?ojo0O, RYla\v $ 8ubԲq{3gG_C- FzF݊|ih62,O`1%ZgDڼ oٴp=HTo,MYմSVWn`t6j_܃~RW5StkzF#p"8e1U`By03Jyи2C#tl_*U$q;&^ÀtX $8(e4FiBqiU햳e;$SM)ɲ_~%&oD[gt `q*գw(}& z5,8|-7l_`b>K*J0R+ƑRm7Zu1pbQ {z|pDg\W φ);6*$` آw" I A{)W@v1MU e֧W'R{e5fF#{6Vkd_i $3+3`s Xg,;gV():TiPX CakHwͅDk!%|tCkGv aҍku4Ż)6W/҄FUm7.,| @υ! RʶF rp!^ŗ"$-aN;xEBWXS:pT;<糵vR> ;ޛ+wC{ GN5~:96= 4hKfr($EJ8,sSuNfF e8~u%#Qe|铨* s~FnfB8i8l O׈"~x) , an51duka@ &Ҥ;Cb)HIM5ezۑh7e}~?9sy]# cB-KzxsZ*&~XfK_ _Br.v|>0oqN(_@% vv? M6?0-Kʛ]#|} p.;P^_' {w$٪۩nF.n6 U `f?H{O:z-h|_Gd%;Y;8S%FOz.cwl!quFE}ѾBQsۍcG{0IaF̵cڠmp+pyM$1M.:s5Vg>M1=j1:(61V_zgFrph=F*=zݦ<9 ON Jau9t0kͅj=!U/(.qgBYU]t7'@&!h3R$M(M6H`>H 0޺@Wb/Ͽ~ Ctw5[aGnIM-ePɺzVrL9 O!}Ri,eYM+찻Nq D~-S.r3A3aswj0>efṹlO7JP6 QonU=?J~Bu^v(GO~ Oo=6}К-K{;Om sl9*yE0J@Hv *9?l8 W7MB1`+ TwOwvu6Y:8Z.<].*5~*;{8K+}ݎ iնx&o O6[ RV8ҝqЋ_yr0T 8bjFO+ rDogoMEIYN;1kvD߀}qS $| J/TW^xf3;J T]# M lyS Ki#m*n˰y4$ cA )=wÌ]JikPox1(,u7"c.EWϤoγLI3UߘZK k9:!ym9/ :D|&fa/ y`5wnI o"(^'x\hv7|4Vgh922PKBtײ [gO>GOj~p21sj_>۵aD^Oa`Sa|Oah\]5^ T4S,٘*w?tN;l&J\G?OGj:!E`hckQTTyno#@>LLZ 3 C#W uDY?tXtyr%yk[6Qok7r4/) cl2+} I$Ʊx[b]'r Ljd%:8zw3i2VY>9,mhAQi|e޴ΊBs_Hi9;^<"yc&Z w)yT X |ia~2;\X#9zGBom &ΫZ(k [G+(>3_'l#T]&Ԡnjz10qZHF?0}]#fdSRR`9x)y%?-/F7n~ʹb/0mm?zyuIc,/LqckmRmZ Fml96A~L2 "fD ЮYNp|Θ@{K5kɫQ.a6Gz..Dfwe37$tk%@&G}M's@D#&s#zώnPGV`΅rm-(ɽ,4@^_4>6Uu$0b O -$bt$'?Zp.H2 gpz~LG&J.=mv R2W O~?OǤN`k![dD(td}?z ?m1<#p4^b2du a Ly6>4/7Tбy2weP \岁j_tyP:^r0zNr !PRNBp<`{')%> 6Nߥn![Uy:`_lP4Y?(ݏ (dat)iDc#\kl.z-T7&鄎:Qր #x_-[pD}{ȏqcX`۵t`_15@,fe65Ys,DJ1ˠ1ivG:"98LO5OH{v<`tDn|f.̍ MXqSK511@(I(2eq4Se#D?׬n,Dž-ƈx[x/wA8zBfY|VN,\rp)Kݧ0YEiL-4nj%T[IPTh)}nݠRgj[jx?jj^׈OS`EQ<]Z4NNxZ-'6eg&S}uixM9f _4\J(؞5a7>w{OlNķWK3rA?nﴧH/y2>gyN6qP`GIv\Oo I:V 6#7cOF{M17M'?`SKo}Q7i 򽪝PՌ20j\V(LKtth`Xhʦƥ8+<'KD^݂DXXYt`RGT,<& > Ԗy&9,ԋ]LR~)De5 鉎W dj^šw+B+jVJ}y{>ww>M][t>ZbAS ݞL@`0Ȏl]sZ, >{|v{"I{W>G8ƀc釂r#?8Fjkc'C81Ow]}u!s )A+L./x5߇ТzO'x4Cq1 `ڽ#4\Rd&";9CDqfK@RX1aX^'_dJie s{PΌH bcJN =DX9bʐ-:4mBr>j7\O% 9|kLiOH~iDh,x3 /-K(%H24 vq, K|J^/>6L%h=x3V4(аyy eiDߍ돶}')^}T'*ycr[ }r>2XgƔЗjRHݦ"ʶӸ+r?`q[m<[to4{cu]zyxBNIdN ay)*j⇂)pQ qiʓ(7W;=+bu1Ov*/ ;7Oz9o-Ap@ d_Ģ/@)9h5ʢ31 }ZIykϘ.McZL׽ chUs$Ҙ,ߛ1"Vх+wS,]O6pvh)'eͰ 1 T rwn}zr&ZdΠڿc~dO=`Q ˫S&4jJ8Q ;vS㒋~FZxWn}'eK'# VV FǚcJe "]ѰtXCI9|ٙVo't75$FR+oָnFmBSyTfƯ7F[@2“,-a6ng:w},zUܵv;ޞMow<|f´ {Q~膔fTh:ŒFnܯ&r>*(J;/jd߂¢O?"k.-DP6XJefؖa s= u*@bpe}GM?"P2sZJj8~9/0 g{L](̊krU2gҕ h딾i.|c8VvBC^Zi?6_WA ~lk={Ԏn2?&8ೊ/r4߹V,\+_)8s˜m}94[{5Nr[(N}x-62@um}A1*,cMgJt΃  ̖D 6_q R7g~ Wҕy,o=L[݄G략 HF$מkZ$!y,@J] 2a0 +(E3cdo~[14?^&K7ID'U4*y-XCAUWl?lٟP*JvC0ސanW'vPhHotI=F8_YܟD?pg'l)WdQK}ASӦV"6.aN+?dA%<@Om4` 9@ W=>-g?Lg1/[HۙZЛeI- y6pBڅ7:<|dE{_^s\kf"WEiP$i(T" yTo 7ݷ+@ioZ5B>SKcό͒sĝ}wz$թr;bÕΏ*lGm:)8( PH7,DL~"] qJ +{< :||xPC]beZtQ|=u!yz@9)P)ȾϨyN[C}XF=WZ:\`W{z& 3~H=t`Qi7fE+MaJ~ :.3}jzH ֡%&}E"Ẁ }tD81OPM.ZwRM({*{ 9X:F|wi@Eqsrl d/ulDyhi? ҆Է滈_Klq նƠ[uc;-\Vd-ʦ7UX̡N_OŏM(]D!'9˻Dnij"NaH1E]ѧ5bE[ _J;Q5e@C,E/1eY<郙c.=hl`7<~uZ7dJm&Xe|}kRR0_&T&E(-ҡ'rLh[b\If ȜY'*mH\y"rD|K&N vpOkILn?dHCHp<0l`a'y0ln+l  <U`5INo5Wǥ8\Yht^PYv;3w ޶AXF"BG'VTq1@Mސ,G?.Wni̷yLH_l Ѭ(R=T$TeK1Hr{_^-[ ڔGr fe@ 'ǍǪ4MhrQ157~LQ|E0^w^ako~bWw'q)0 +*3L㥶Q8' a&2c K > })/ xj^r醖/4]*VR1f|ƎK-#"c-N{CI@[CCݬ+gI ~Y]U %gA[/"1 S?+S.}pGbQR1M5:T*[k2=zKfa! =Ue#꛱s+^mEkozA6\Wqr!c/љOenQp j=ГpA:짲t;OR@o9z:;n;Yd0^z!G_\?L:T/@Rw3H-G4a ve 2A-%\3uC^8k#EbH``GKt0΢Aϝ5tHa^ ,&Xlwd4+ٜ*VZ\6INk}' ,Sm[}D`K\˼#?5`,9~]X?±ad'=($zhA%ٱ#W}܈}wg:+8%BY3'@3~𪴙 mfOϗ~n\~W7ZɬE7(, ;Fwue{RBi1o |OiǏlA)9Th:^GP_NʡR"h˽N}#ŏE[ucN2Zu 6WP>ذs5wm_d{|"*g 7ddR~dg=&FڠX4->˪N8 T:jvr^& #yzn׫/}Ȋy$J6 '%[BGVz_4 ?qQiJNBv>4>o~ <[D)+#W0,|>B1/ؤopRkO1̨L}{TI_[Z a?\c{QeHpdJ81W34T58}u GBn*BadI7֞MydA@V/ 6aߎx2Uv"H ȀLV!JzrhE(ޱK4}V|b>mއmiX`ZGIuF r}}5$OQP A xWS5]tPԊ?|/; rCl==tms^[_~GW]Ų? {*d޷uYfuWh-ʍm%-tߞgCtt?:W՟X&M|qFpo Par78G9GzP,$=α9_[ u|sdI8,[wA`Xkk!ҞOGurM0&= Eq_w9YhwsyWLwPwa4nDF Jw#Ub{pR`_v37GczwA#nm25,t,^m0NhRx7F^NF j ltnSBB!q[)/wCAā>ӷ45gHLҸ>YHR S?%7%-KuPr ӬcG~1I?F2n Y4Dr:o>C&"x/ T9^~l_}_|=լsgqyLX)18X)jאF5+ŭfea v6 [o'p yA.?7tHم0x&t(QӲӽFЮeR!cU 8ǬtCS.;b<]iï:A:cxXd#\={8TzJbqgܣEDjB^)뽡wg؎B5l'ޛvco4`ޛEbJDؼ}tƐeٻOi)79?ٯZ"5qMƟQ&_?qӧS='/"Tٓ)M#ϭs_o6V?2GNmAaz(C)=9|oԺ;nLnd_RH \bR 1VU3|Si?g Çm~;ɔ61w?/INC!9ߌt,B T URCB}Ol $0# s;sJ-RFo0n)FSӭZaVYA}J7χ nQ䑏(|bz* |몜^zNF4NsRG;`/3d >H $eNJ Am:>Ⱦg{D9`c8tƹu;ö-h!رJ7n06Ksu oZ}a}9㗱{>hh u9>|®}1Er0Zt3lSMl/\r>,BEݺ-MmK]"k>}Ԯ@w+V-# eg Fܸ :\@g6QT"j_(gY5'.//-W1bj~)skk<{Dʥ2Po&^NiC~n%`3~Pp Vo3y9ٗz’WF; rCL/BNFY.,b_%`>ioؾYmIP1gΊv;(s)C;}mo,)#_*8&Ȅ c9 x_e.VVUY n`z1FGgbc1m}A$I[$9 8+xi~;m7^~'17eAq*tӨK9'z]_0e7!^nZ!a x&{3l}FsKCl5SP<^\ ;tXW}8/}rWߚ-eYiW2z@%kydYs̯sII 3SԺ荫= "8f1,0 %ǝ=\ӿ9Rx}įoG)˝U5wBv>*ݡj05zMA-Pr~Oq@i?j`@"oӴ_~qI]CU߀3g.7o\Sqח)-Ū-> {ZR}}xZڂwV;3}E$'fHNO3JWbG/HY)b@|]39_k)ʵγ:}D:);L8h.x٭ pȗWaQN1Qh b:OIR]<#Jxfpg(3ܥzrʵgr A\uڅM}z8Uپ)H&Ylv2m y#_gevgd~w<xGI?%F~594(Ci*C8 q_d%$x-%Fp.g:18dNX2ۨbpzwrݾy%ttvxYο}@`_PdXU9fLMDsήA>S 4Ə<!a!rJ_#xpb}'C1-7[0pCX~Z ?Z$ TעliZEBP Ց96U/z`i^5K;{s^v frkE/Qyx} ȶzIɑ b\.DrwAXFwL7wSѨjQџҖŠ>t sF˽*_fL '\TH˗ xxr4+cWU#aq Kp7x-G2T))P \jxd_,ںVgU @syXNKqJ*:Y8%ó-2װhc ( r`NUw_ԎX?NyzDUҢ]KbNyU -/F (}a"SIP_@tN/$#/Hc*Mxx&H]J8bs NKp_&CnK_/r'1;Q2z)m='iR-[Y=jT?aWaJ;5!p9UU C8fS k ZX|ZS4Pr]09dEy c]L)~$z=9Y}:#ctCI짾'E$K%l#)|AE,7MTe&I|2q=TҌѪhÂ>%ebo6TA2B br>!>'fҜ%B\_]PJF* pDV^Lx[*P|[!AgCsJ^ UVK$АH~@e,\-E׷ɺUFSY8IDaɺNSWh4)vra cilJ+V fP ,Pc9Na5' [nSK p(:7Tc82i0DwĒi^22_SI8Pq`*R?F"NR`U/؃YGS/y"mbusŴDz;r1MD>Ge(7 /DGw3G)kƛ5aA+o]З05!@9zşzW]$ ;%,4p? \h>oHYf 3<9iH68سO ֟)=-P2&LM|}?/ߘݤ3rm(s3@Qޟ~'otj*xֈGlK>q&VJ{gxSg/N*.k+f|$>0bzQЎ*m4.OA [җCrvV|~J%B6d\:0@@$a % Z?oyS 6rf´s1*xܨĕC,l묜"omytL&ZRؚs=݅C u>o%8XL,20+Q=C$C. _D`7$0[̮>:T/؇(A 5~ ,=Ļ*<(j.6c -G+wJHEvaP$tb )aIܙvlsLc6D{hy$ Ŵnߍ *w#>3+|-{!^Pa>MDJٲoB"Aa[h#ZԆs}xW9IJ-=G<VUJqL4UK'>l( \k1cI62󏋾4KlˇA?eNUayਂ RFJ(ǁj˶ƹtP#H2~HA%1*MSJШN(HK O!n>k/:ni``US[7HXc&4 f/J])ʹ0BTEF趢bVpU'/|ou6eKdGN;`!Cf<\ӡVB/&]27=|1dokqmfJW,=P.t?yKw/xg`áu;e{)>w֬ ?Z$-/Q%s'%Zx3]hʞ=48HnC6v,B./ i$ b [sD xz|aH4[]5 TrHW%Dxo[՝m:䑧wE4lvXnʫhA@JgtTD"k>dv'>8]S8\>Jz\rk[XǑۅ}HW%G\@|+įa*WH=_{d:Ҿb(ma4bcSLTgYF˫|:N-{X#1\N n2>Ti ]`}`zN7݉e[Qu 3\hAzh4 / uT=}͍TpާMnۢ;{O:]_g^N Oi {V{y 0Y}HoZ ͍U~ߦB0jyCoJ ".%eH1yV[f;A }IS٭4jIG>ߒ>ۭL/L-|E4 Iя%yeAAA Ro8RH2㦁q|%_'/K/l[iPZzZPġ(?J7Nʹ8͋~<> |_܂5`z%2`. kv2uo$y!c ȀmH(OHiL"{FR>w(s{ Ƿ^ 7I^`M{ 4' Ẓ< SFfK1F*ERH>nz#V Hcxv{R<ƿnDyO?dYXl|'32`B/8P)<NJ3N(>G0ɛ 3ȾsAfW+VyO l.{D WjRĒdY: 8Ipc; T!<=iq (~ L|ga8K88:rH2`L>D_|[y49mv|>\#iy㔁b뒏.m" E,It%WV3Oݺ جKx͆ &asR )QQmҬU>vyhgzs:\֢ks"hf ?6(_$K%ܠ6fvw+f avifm~ޔt"ʨ7nf]CY2*(P>}'RMijwHfw ravGgf%Roz}#P-;7 =QǯUN.@D o|0;9B1C?ŸVXsX};9xKLl}%r(vzi#)*},bC7"F6~d4{-yPۘ;4׿ԓTpdI[I-&6HEHy%ewZιɲԟv=m(qRY{[C\"n^<~YW<0o =o('BP@FYT7O+oJ&l)R'.;wl"s޸C$|s ħ XY \G8Zyj 1R>xc~7JsJ5}U8]~={o'֤k- OH́#p^I+ˁj9 Ϗ\Ico2>& l` vl3yqaKoTR"VHC`)_?.9Ԛ/tve~=!\h`+D] ђ9DKuVy|\˽mj}QtiAe Q4yP\6)}oZt7amÍDP&|v$CYҜZ& ;[~ a0dU c/ 1o˹0ؤJޯzI.\w]` ^0$/ Pg>+@5-YtGB^CW2#]`}]tk9_%mONFd}l.޴g 'Z2;AmnQ}Hjp(Еyy#s\ yO;&al3F@JzV05 |X$WOTv^ҡOZjNt<.NkT4 ?gWμ~,+}E&=i™213Kd?ظ67FbŅͨT R:d7?ޞJ2Cm?_W{=Rl(_(eƊvs`)~+ W~-e4&o8~V[0"z/Ō}|wsq4@Yևg}lgF@$sR؛H%7)SRN7NtQNo[(lB@wgCwRyBij/QwPxDoP Ͱ׳7i%ι\_;U #XF /hqs?m=8*6ZX>!$׹w&:6O0zٰѡ8V`w@7.J_~m1ND/woazlXĤQ/H1J{Do!^N7DcQ?ͬa/ zFJ_^Wi_;q1mAciŇx~[?_ϘZ0 unt=iG8֔t=DK@ ͡U)A]̭hj7CHV `Q)/QZ1A+;&AFx 7E{B+_e@{ ,yU) ifӬZдG SY/8?3 X.@=G[āDٳʯ.lBamO$Ĥw^& ,ڗ"4QOoM@`X֜] VK$C3`vl<I{Ί@;_A fI_&z@~ jx;8KeR(]J/yZ8{6?o+NG4m~e*x,f[rY7pr꧂&L"}p>Ѭ/B P}sz P4#s}ƠF_J7w03UkUPQ:aIbY Bṕ#2 ^|[G ISBT ʺey L +j (͹"Σ^6[6q(vyvwUIw X׶x,;iԧ׹TCf<` bb cXpCo',n!vBh_Z4|'oqC^W6b{%őEA#lK̒yZ\,j8R'ҥ](Ȓ?i5ŠH=>t~'s lFCVW7hq7;#[hc4IwO>/q(~ܡWzT4_I3M?y^%03DׂKꛓAQ֕Ƿ2S]鬌puScJ6jݖRgT_64}$,н1ܺlW@t^x~؜n뗟-V=@YE.X᩹ V`a$pV?xDZMP]vtqћO$f_IVjܽJ8s Z ?O9M "}B6Ⱥq zyZA K )xs8a6Tk40<-?-7[Et~Mi@⩁59 ~q9udKݶna96B2c6m0+1%BB-Z% c`'M'kWhe3+%. :zxEF='2+@˂!Q="uZ~U ":kzߛ -G*7Ü&~yFmByu6%G??W @1cr@EرMO/"} PVq:ͧimZ@#s0r@)[݈v>~$/lIjśatt H)Çߗ7JBl OAT,"SK>JK^j$[;g/?b>jJirOAkhS-]xf.W\Mǣ7&m G珁 WQ1a%RO1)(p] $aa _ sA%\Oz@56fǚi/P j5t#ڤ A+N7%f (=:p&ۑ(T9@2HN>oB#) 9Wܹ(ȭ^һ B5R-2:|&nY7`F3Äu]ɭ}_tҳB2egdؿp_6$eY( cy̱9{c=$/@)Cw 7F2cz_Ud@fkG~H]>̭Y#0~gŘ@֥"ۍa,P]o}/DܩNj8 E;@ 1Y@S8 ~Ǔv4xRDA5~T( I)t;q|&}N3H5Y A% 9q@¥Qo.<֢v¦sκ}c~T_:? GDN 3Fi6^X>R8K 73b3*@1R L4OOZ8|IP!l5g|%zUsipe)qVv? b!_"TpCZg}>&͈щSp? Xcbhҫkl_dfvrD-j޾Կ>=7g<MJ3Pdf #=ͮB G źd֢lݡ0xy!NOdBHVq)s!6(汁bm`Kv3ߢB'[%ކG8+2&0 ψD# 9v\%$}x?n$IVV y@ ~%ekx"c]a&jN? O #)C@?/2%XpmjN?640X#^M} 9Vvk"= aLj*(k&*©:5nMjJ7@z0~VR@"&G[,'oJ(:>< F n*NO3f~(5}F[~zCy̻x'p"C)uK:r0Ǭ/iNXTѝ7S-ʗrBl?vnt:u!<| tx4g4 X=0Vw#, <.J _ߟ U%Kϖߢ3m$wʬϚf} IP ڃT]Jxy+6~A"v]u 8} 3 lg3tG=z_ǎЇ#DD(WeN9@Y.q`{{K()n4#%L^-^Ypj8Lp.bv|U?R֞UYVTJ8{?B΋.K9+ Knl4il;\d5=\t-KfcoGA#䘰 P,-]l س 'j?f1oORvv㚕Wg]E 1Ī^MĊVv]p~}%F ~JoUT/0zX;2!4eL!7p:% 7 >8y2WWܒ""RZJatȧZb)܌SG"u0A}oNbbc+>4-ɼGoZ cCֈOI6N`];!}n*sȰ/)2s׿m zsqO"˩RQ*Ayx,2_d>y|soeڅ!KǓ5u#`NOpb}~ 5[jb)񪣛1.ׁ7uvb~s }/AachY3#蜄˪W#~F5ї'_"҇ > gAPߜZ6ce#70Xa_ЮB+xBu n|Zo"{dC,}[)SE7qh=)39Eams^%V9 l8- Gp+jbvш ־tuq*A^Y՜^9 5m%C3"/2N2t$f:O4=KY,8QvJ5oG9ۨ 7w"X#&!t`Ro}7oqݓL}폪怕1Y>3ޛÇ~=,A"DVIW4=0!k . _HSZgFQoӃ!`D^Cc)ʃ gVy\١Xom7c7qT@z z$*0t:C!~oܻ48~! zQ~K(d)y~ z&a|X!c1Sv}/1NWoӆ qy)<&>IzxuXƗibۻ-S%^k+]^5_'Dg^fO^qcBpX~T~m+}/])]ŇnBl ICd7(ȴe:{ⷼVO)~Ws( a,0k<<CǏn#IjJW OUU3֐r՝$m2#x%YgO*om>3Yz0q^(ZHR!ӯUH q~eM0Wɚ*3|8Xtf9);?K7z$\ba6>;}fˤd,EdrXgI nQヷ錬!tOl# ' bj}BU+C(yLap7GV>O4&xn4Fݲ5Wo{{KhW$YAZK ^>5U|\AKDb$wAgk~B7{q~.;v]s$0rC64Ea xU 8:%LD;ѸDǭC^|!+zC;t?ɟqeW$cp,Yg+IfnA6$5 ^f' Qq0{96ϹX\#K^ƶf]#G|*7y*zeښ7y"YmR NVNIzՄ||冷*ATy20yci.øžAVO 5js0*o1C8S943 m5 0,*bTirG+0n??P?WXJ#:~QqaߒJkV?O_g-_d_S6f{q +p<~=S5nr#m`x_p ?1 ;hwI"2G׀t6m]TÇJg^Qedu{W$-U$ݺQ SJa<%[jǫc^@swm[K %.UmO~5۵b*?/t\$#,NM Pe-$(Rۙ،GKodrR= a0hFڄ["b, 8w|˿1D{dKMzKF &yߝ׉;dL**%yB8g#Q@N@[|HB& ( QsaV~3u yOOK\I~q>q* jac{d'ìԿeȀG=։˷xn [ $ȡWU`#V{-!|Z0 /a!-[(: c zK߃B+ŅWcvr=b&lrƑWAuoU*tf&?{xTH) e[*]awV֐R֛JjLzcIs>{eMb(&Vgi6mDP|7ȲRpZNtS#yeC&Dw -o&U?utԸߏGe ^cu_Ol|VbzR(֦#KjDNlzA9ly=v͜d{`RF uҖֻ>}0b-|LluuM9&8*i˲3aw$_c4=ƪ7~_AhXCS,Q["vHN\m7sTzhaǮ1u sk{ϓD!SД{; * -5 L/E#'K*Ai,z[ޱ7x_ t9 k-2,PϊpZeƌ.?a,%yu<58E, LJgdaz?.rI3`z9 nР  t$~-C *QMyD?EcT5$)&j+«FvԨgT,D_G 2@* QX#y 'yo@}>$ffMafq5=5ErуQHt!**p%G꺑> .٨H}8qfeQÉuhoNq]zc'_c+o#c;]:>R~AjMf3f}w'WwU8h@uKeP]D&xEk8vY/m OoGB7A8hk4L9;t%\c^mMa9$^wV-txa 0uN,GPV@cVYKZժ`ok>ur>x7_Hgk{.꬐jG`ilkΜ 5ǝ(v @/cǠiPb PlSaְ$ܹzߓ- eFHn}pТyQ* Sq}+GN>\n2rߪoq֣j'k,Q_FkzqZSYUޏI 2wSQn<9W x>7 GSr 4AD4X m zoIXHN@`0LзXm]9|BZEϋt1Ehݵ ĵIRC4,ka8vd_,Q0rU~!/*#_n嬀}8n_{*0f֩ΰԮ#13omh$KCؓ]%򇪋^ij1pMlۂZk+&l^6V7YY\)nD㷣eSvc `b"orJsDB.0|S;Pu嘺>4Dv' MgL·{:(xBRUUJA`^]@(D X QMeKo󯛴y?N8aZRXt m%%hEHm0hy3~6X(}[x Ph$O8M{JU좛%;ur2JZϏ\#A4Ѷiď ֢Rxުj 7@#Hٗiˉ!e2J 1RO XXtO g}HiQ.W3TΥLKUWTGjfuaΰBs bcuyuRIaUv@}3v]\isQJhD\LHd?/xh<{mľx B5m;DַņӤn Cju@u1 ;@ʂݞ'e*x&ZMnbVh秗p3}-tjL-_Y=Mm%w^3U (lp)a0`ԄV.DGEdHBK?x5}{dY)[(K^O_Ɵ3rѡ5 ơǒ2n%\zkʘ/R" expǺ0rp ^_`d^m *pʆT]>VS*cZK`#GDkKқ.F^;,5Zz1.  W:8nGRյn\.lV}^"!\56\K'}ټ-Q O6kcG@c)xN ;?}2ӇK842&a{Gl)עFXK: jb1݇XrttUH;eelR Phh7()i`F64>&Rcgz3l~oIkvJXޚA/.VB@T' ňMŁH\%ʤu۔Zu^Oac|Hkڧ_3OD]YWmL\Z%!jpovsvE[ի۳JɗVճ}   ue5DҏV4sޏ1R^?jAs v,!җyX]{5=\|)*Hk);|OԜ}ZȁT~]H?7o|Z$bfFR3U{(P zr)5[.'HO;qa5ukC5j ȲWHj0 xś $ou\ ڼt%X_4쐯A98K a*^qz mY; rB(+?wd"zvVTQp}*4IK>O( ;|ʾx"V|׏tWT 0(\ >[}7͚:so5!*ho{[ETiPZ،I1R['z!Z HAV!&TPv1|6cG4I{ =Țr}`;Si@;(( _ 2ґYJ*tk%=\@YD$Sվo=UY6[9H9I獍)|;wF@B;+UnpQRX[;)fvldC( Ս*J\(_= 30S^oB[аCלzRI(,V )|3b&8Kg-'WQSAG}: xw 2|=kVۼ͕|dbw=+dF$) z;lmuYZ0$GA7fh,_xjR5_P5Md%ށ߶pH:kc4vj^lDi}s bOB w?nT7 덎hq킥?2f@ T"\_sgӮ!<-q;_[9J[DUl&ppG^ N4tUq7czx~i:RR;^_*Tz+:A^xVkD8^γ<*Pk|cQOu3= F:$>'FOGJEqڏ~2PH8"FgeZW|D7 F(|c}MNPiVt 6UG8G-hA:"ƕjtT/rϥϷEf61Ӈe};&;d/Rxa *~ifu? lu,i5L5:.jK ++ L8庛٩@6]gPx'YfHOD'=<>Odꉝ2U" ?ʥ@ҏxKoZ:Q.a3>Hs!#?4YYC#LVƑެ3 i~5|yycF_+/8v0E! qu"(CFR=kzF:˽2~|?q.1*j(jځQv G}R1#s,XBGHa;J>Bq"`xIv)_<$< 4{b!y,@@}`20*exXifa z~B|7Ⴡ6e͆7? Q+w(r. 8H-P9pkU@/94~нd%WO,sS UUwV^Q=N>o5 $ċzGLfun?ei.$3fGRa֫"v @z2H&>XI}a 6O&=ӵ& D_e@R5 -pLF)l&SݐB=&\r~f](skbBt?~ޅb1?8|;cljA bԼK,tRR"AoKnN}%R h뗔R] \=[D;91REl1ɒ(h=+*S8M/=ĐjfT]TaG6]z*/"́ueBq3@t}{jF# ah5]xQ#UrB)AZKd3[wo/sґbN|om W}T7@O;A52$AN}3-0u=%e/r3B\9f?@Ew Lsoc,ӈM(WӥF"`+]/P7Զnsjd _iaҺ}KJ^(~,y_0>4JM$W-^FRn&8SI8"ݴ gV%0'zd\41^zmEs:0{G,,,ŋhYm9o I,eV?mW{u%TysOY_U7+^/EjQDo:;gD=a-A _V@]8.mfYP?Gax3wpJ_t]Nm >S=tV]`/}raO싳罿c}S?4l8 p7Pij$@lWnPօ8]UqTcןߩ@1n}4hE ^hKgbˏӨ~\+LE:z[Gb ڠ!+UȬ[R:yFϡ7)-|BgdΗ>Pa^fZYZ9Cm\wU=TqE-=k7\ [5\n;ޯj* wyr͊1ܬZNfI=w' 1~Pm)6'igŊUhaC27k7}FZ7iINژRcG q$3r;HJchԻӺŅboDR'hOlrZb ZKE$1B3 q^!_/K_Tp:Ti͸ <^̦:쀖@|0@qmY h. N,5s@ ɔϨ/dtAz魴sq:v iU` ~ât~P L;޸m-&S+[L{igc}b3^k2'Wmm%Ļ{wd{gRZSLUl7+vgj^2P( A{'2`ݐ 1f9Gl3"> .CP] !U}(P5ee;\8Lm'/㷇OƽG-Hg]!r93KQx={[f"^e'ߤ3X_PMͩ%;YZkw!ֺ~ĐO:1=Э n] $@;b^1N,߯pygi2O8Rry"n B3A HȘ[ODT&)BP4p hVzh+zybFYuE#+Ggb|LiӅ[rk;0sZU5&Я׶$ y׏ƟqEh_8Un} UX[{hMg0 xKcFZr{38B{5箼.#9]B1Xo+')!Մa#{d:* o4o[xuG;kӰZMER͹~q'[EZNH88'HpQEc`㓴B 7Q͘;=^U#rwץvԐy3iݜfҹķ.M .橫QQzm l)j]vNl^%KlwwgZ¹=E4z|b dqApsCNh;җ|>OB[Yج`@g˜[ACh/?\)}vQA[#Fw1# 0ȽsflT`7KcQ3=Zw^JΚFْfC,z8mk; _ V,rCBpE[H"7!7|.;0< 8&"e\ЫcT%F.Ei$ug PLiDš/rs5n>Dv;5OdKpWKP'MHAN"Xhz}ı“/W^J^+in.s>&KPsA)u ~kZ3oƙFOL.J\8c"uT#ǖb S="aV qnjccpr xm%Hjඣr!UJpgʭ 14];ۗjqַ 33L!Db8q4"hj5K^.sBUA~q+ a1}n܊ݮ⦯)\\ L>Mpp@ $z'贯jzc.Y3⧸__^U~*o?*`ćf~ɂTHvA"JmۏShӨc=d^W toHȋ; /_"A˔-w.NLG悚}6T.he~z+G_Bw/M֔21Ù;Oc>!`ځw{9WpGJ:.CNtXʓ_K|T<<~u}.~fY CP>VtYZNnAr<3%HՎwWq*~ @HjADp1lɞک[g)B)w-bRdֺd"eb(HSWW8Zn{,JqC<. }]7}T \ht]^8]J;T<5c, z@?LP*c_cV2,kE?2Z>ʼn`ix%\ҙPA8{9e `KU({WRy7yDƿ:4ycgpm5p?y>5Z o3 g4`Mc[}*CD^|z=H/%3P__λb\WM,-S&GA}+S=af_LŗeJCTl rxZ4a6Ggeuz98>'JbHsxt(Ԏ1u R2afL?.ҭ$Ҫؿ:ߧFWfKt>^!p |.DN9_8sե }̫p7& Ta 2rT4x/*F=^1ʻxE@>@׼םSa?\X.EapB̝]9${ڰ߃BU> HL&.B-ٮsr_Or}n^[n;{)^$V=^~)[-t):h:C S%,24^'ۼ1ˠAT9n'"@(>,PlKKCe҈*ޥ[2)H@JX)ߛ*4_W*=Y?+u %E{̺0dC]RC1-1)8y"/,*/] #!pꞻ@K%h-"T g v_ˈWxOkrȶ0}sk wJl'ՋثdTz#8wps[pvaԯH5ĭS:!C#>HNIL{A/Uj^o#\fTN&A*PVq.l[ 4" GMt7u=KWHD́!2ۀKg8hQT֢fGxuU0~јZAoǪWA<&](3ePMu5\ \GA Tu PB9|6okzCv/n>]WU_-שKRϥJE IۿA2O (hte$Y}Dc{# tL`7R8Ň ̡Ɂ7R咑S%с7tbg; Д/IX5O]%>TۛiSg>A`+$PSM1]豫ѬVf*|dhh3c867NO2Q[r|巰eug&oF4 VeQ !gj.ETvn4̐bLMy1߲Hq мe O[s<5fٱAC*T~~oD*fox^[-pqzy/F0ƢGt4AwaNKV,"}*mÏтx'YѲ(')Y\RH)ks+]]ƍ y_Ž0@~J:&}95pw>0y\W̘YRvNNa#oDѥlZisn>A MjtĠGT@}(rzR!HqP- 2}~p4WtԶT<[b75cu'̠Bg~p397w}yjjL|@D|' -:5^P֌ |^ z-G`mzД/lYיw^]9WelyKk:!A]H}/~(hq#V¸WٶћOƺ=A: 5JA OR0fvk,d63"[i:5-t\4h cj+H1e:= 4=.a\3kx/1 -ko{V9@}3'9St(L_AWJ82}Y'p -8*9_L ?mRS !)I7=ʙh]6xwxqKˮ/k[X2ohŎ^{f:k?Ȁ|Y+ ~2.Xdy.KW$E2s'׳N콳hIYoS8w[HZGfB$2~ȁEiYob  KU&jW4aI?(EW=k߱ ku}j"= .,O%S]ku1?hr2^z}]0:~T+#DUF!^^UO4hNRBZe`Ka*@$~- }UYozH7-#SL z.4aFUz] EvHc(?j1j$"I i0( D:d@zgʭ3Ҽh]v1N\X$$uQdHԼAMpU>N|<}׎L9w&  , YD M[tmWZOhg`BhHi?6!|iolW U74}(!-)1: "'jpcW"Ǧ `&qjiҹ*a/rD丿ŵ-:9LX1Ϭ4sr'6Qn@:%f16:3r9h ȿ[Z Vs+;F\\P  GX!k@:xkح`F)"G+w޴@FzPPOos灺J.tIT:>chQ+7ݎ(ҡhyEܢ_,CMP)Մ``UE! |$bs%wGv.ko(<3*8nS{*|Ƀ ַ`!.NL3nfUz;}y(+zA\k#1=F()(.Ψ/C 0`ə]^}:B(J;gNFڣK9}%KbJGla1(#{ye*uQ?}.3A7=a/, 6wm}x-ƧPƢ? 'p7@60Eb,A嗒5EC~ /b l/@iw[e6i6F<0ќs|;Gm)XDXd?qu>p`ڞLY&v.AvX22Hh]eXheѿHxw'{"vּk^?b Gvd獙C Ws>#\j_E,XirjzQ߄?uQl`}/˰ Sr*xD5[ElR(w16Ih]=٣<"\K }T|6.]?2(4ng ??hu}3Hc]J,6knR䖂̍,ȩ#ZT#V \asiWbƉ.p JT:F޽|y<%OZd%6$!Ixb3 Y78 ",=%OK&7Rv_1ւd::"̺Bp^9N_i JU:_ߗ) 7m4pSqҐyZ ~Нrߨ%D Hhn$Ipr/9#u=F<|/Jub]kWXa?y`F,YC_J@256! L ~ TN@_{ @`o_]M"t s^ BhHxSa ] t= 0ZJhIaE JbnTm%(al~8f5?zn1uF$690Y;w&>ߠpݿ^הٹ7uLtI>}JvQR)#\shJd T$rwuN:4 ~򔝅npX_1( _eAebs5.U6fi #yE(% Hp&6K$tˑ}{ԬY_H;"*KϊʙyOh.&j L^{?дFPjV?Wl_6a5Ip:_wSt&zBRy(.ci͡ƍ`M~#CH/ZGFOp/ ڏr<7qg7mK*`Ko/N{ MԎ( }&WdJ! ~Ů +%Kr4zXݴ0@(V{Il0uLe)ێwQyX:+"&v[:ȂP1"u=-U/lC+ZUx#";Pm>12@D&{B_p]8"]vdF0|Z;b܄n?J{{>eӒ3K%Z‏{w!KW:f)EQ=49r tS8bT|_&,ԅ1= QzhŁnŗRI)?'q㯸6n⿻x>p xb۷}B__{"鷊ȋ>OWsx'q D7pB/ W/+;09R5IG)1bR*ZBb5M{azKQLƟ= lDI_h ;em_y  SpxSߪO][jq[bAW4TF \yY1d_th}崇qSϴr["?EpbetO^ǭ( Vq+c_` }#yY),[l"C9&_EhtV%Ōo,՛֮4 ϴ$dx7<IDjO3B^Yv8]z `:6} €/)~/'ˊo~4FE /&@ T.۵k:by7U~B4cLMnK EdoJ$ibXzn)rz be{Tw/e{@]RIԖIKa܇7.$eW ւy~Mi]+>Ls'eeSj=NƥOYd6)>e@ zc5Vz0AVG/cKxQư_d6jfp`5(XP d }vl0r1-ށry>9(uѣyRg8Obʹ@xxmv;?t `W۶6l. lÕ2lwZ}h] kgeKd6Njd+2:]#L*|Xz*1BJ7CO)d201R?rl |\ů9[bjk$,b!cUfAك MRl,T>lX&&.<.9W:kjXMgwo.%28]ȋ!( #Eb}soofRA+@r2w>=ʷ2Dڗ4_CQyQU+@YVJ" k(bHG֣w bI3{Ԝ2LSK(5iif>(CZoT"mŶotJ&f:M^j X^^K~QPH }x婿Zr;̲1vAPh(&3^.c\'LlD)\GZ;U@EO$2. gRoPՔozY1d')6(<"g R Cojru(= cj']}h !2Z,L߽+W}/^缏*G<~ߜF?nڮа = T3/,NDPouż/ 'd% hhRe`7䖱ΗhHv%z7J,8L2iRB  fCRYɎ"O/}# Ҟ\pD3hJ~3}׈%a¹ORAd:}9JKSL0ֹx~Aڍ>#A<7\Xd|J!ks)[n0k}~}Qx&g=L힔 X{K Ca.Mzr+t4yA[N1_c8Ք!Ryp;-1Uء2⋇gUGHYnU44Uq \GT =:H{9xHoREl<É x@>iq"\b΂2+i4ْ0]cg;Kz%iJ h⢉׋aHk)~t]VI"! -1Q}fe`8ؖ:ƄĖ-f E!@ag  ^goG__Ǜ]c,zM&2lJ" P|ɬ=t|sT |/<`t_s }[2 fD0% /#+o:=̓&~65ZX%0_]vw!}ڥbmni48|@ur"We~aLk8u"Jח_^܈@ Aapq>"^0mG 8˽Yh2k\X2ɼf|^c;//R!6P|~zE0G7qw?>0Ԁ֪/:^o3;C ŎnB/S֑z&fC= _2*bԩ]|W\kݧz^WE0ba3ōU[gV$,O[Uɛ+C0MX+2r+*C-Kf[b>)ǐI"U ~H"u~)jIk]ЈUt3T3T?3QF۬hjN/ -vOz \~8?] =HkB9d"6=MABT U>B vf=[A)2hd0s*zx70YYE _ KvM6-< A3|X*7;| ߮Ԙ8&6TC& 화fzbǷ7@{ }UK*ӟ`m`P~]0կV| 24w_3V7gEMz `&G@b}6-R ?!"Ө߉v⭍8z(! ڿ+mh4MPw]lj`쒞D @N#Ā^SnCY%,&=Py!;:G0Coԥۉ>@DO=s-B^C= :}]Fב~x~0mlB(zUoMU.Ňh}RDR-Xa\c y3`T[_=Ы"Rb#h2~ TI2M-)܏mAJRkH{UzBw5 \_jd0oBW0FtxK7*acODb.LcsnH|41 3@C{Õ;Xnd  b'mvCx|Oɨƃf/I4] &@5Sn5rJ@Tc P D~0UT@2`ˉaϙR7:W4CnĄV'pH G~TwjmG$Y\]oğ&1Y-1TL Txq9+Yߒ|A\[nPʔH^%6>*7^QYR2q?6rTp疛@QP6@_  \W,õ笎nLqkN-:ũ|hdIկ-5[>&俸a.;HS, l.?ڠUPֽqêfx^v$jS;;k/GɳAU±rmpf_ԉ7%46۹|#@uR8B+bUIdiuy:FoPT\?ORLx؏l̑P`@(ꬭj5z>O][nhKB+3PA)ho* O[Viْ4/Įeմuyg&=FAo0fʾ[{QdL9CU+n߼>OԜICQ-/NVCш^/.:pD;0*xBPgF>`, +MȍL|A€.mu\Y?}8oU8Y^:~Pco5k,VxTe2^Upk']tFڹʅe[yoLz -F>GEf/1UBrYZw$n_~t-/ >(x~LVb1e20bXv6 (TA-YQa3f+i[썔#`SZgɪEn~m'%e.fI:1G3Jr\M΁ 3.?V5v.hT XF(_"o~: %d;-4`wU_%j7`rq~%VXߙ.x}Y iLy%ya7i+HiP5XNW2(Էq/uZ> +z 45MGv4*!b3*>vl0!ZL9$ R?ަl@/ԙL ]>KU%H _M` jy+ZJ:%]cWp<밈E5_p\8:(`9 f(AҸOYmb-7W^0%Ǐ*v`ľ !UFzyzij/nw;=4"_o-U o]f:2|Q\ş`=mkTO-ko)yA@ %\0~5c'wa2@ىhjvs\X[vHqj,j4D&8Z;4AiV#l Y?뿪Dh^HQ}1K 3֓M |[UnQ0RAh9AcQb^Us.ʥR筤v.C#)E9қI ^mիm™[D o-M&X=sT׷56%^rM=~/N] >oƔ*дǣLҳ{)źԜz^}눀txn= h Q"^*$CY W>kM3W;]pKVo%RHI?jaUT~I~D7-E5/=`[iۜk7!*drB7I?Z)6&`ZjVb)!:fx\lJqPAuoyܫ+t>\Յʱ߉3\dv$#'>P~өN^Ŭ'WU@C``TrƀPF64 xsYl7FӇQ|ZnJќzLţњ[>޲kYum.Ӊ~k+Լk7* H8-7€S: G:GX9 B3) Q%dbF7ƾF _5|ťC|0Iߥ$9hήLwj؁x4(cvҽ GZ[3 |zV\=G} YL21i,É,Ap 1}ԩ?,23R_Kv3N 7x~nMJ͕@XJ {-߽&{<(&fd{9B)͌6еܣƵ_]3%hoސ*0q$.`|aq,76pkws6X/>ɹ˫3{/[w8>ۘ[V2ő)WɳH:3OAAU&OVE.]MR9ľ }L!<7W/H~P6Y?Ǧ'1g,g:T"ڻ{#zTn9Qm i3{kӫ*枙Q@&>!@S}(iuN" o 6 o6곈%f[y4Q-GZy{?|.^nH 2Z9B#ÿߙZ*z2PA5 7Y1.K#~"Dq];{ӌo4:cN$\p.xn ˢU=4K"W?NKdtcp۳nދULnnjDUϾj.`9ո,A)mUR"RU;sL6{q=Y 3 ]7KU}r쩶K1@3=L^jLOZ_y:fSMfԆjvݨ̮-QiB4qˊOJFUkaxwZUZi\W>v>7Ƨ͘U َgk*0:f:r%}n7{;2>9q ^j 1u{ɕMN@6t [Sjga}N  ^:b>&>H^UY3}7rhz: P0y6Yp?N{eUOrζ'}X{XٰUR'@v5MEi" 5yz8Gys3MYgٙ. , @oP w'æ*) Gu}7#IBordqtVu\ej ك#.;"$S2@qzXm&́fG@ ]Cw?}GxKNWGdm؛DG2IE?¡7rv^hQxsV̏{A g}5ž-\ˏObo>="etϕL7냰\]N>˶mH퀋 κpIE3}\-lBus K8vvKp޺Pصrq+7{g5JEc&ݽdc&Z138:MptPѳʶ~^Ƀ3hӼļ9XLOTdcSMVyU'pkf}|I^R%kzHB2s0̃BWj!c~ m{ַ,ZaXۏz,^MvD|, ,[=yoY ^68Hc竣O)@;26Ka,qmKZfeOoXƯ>붆 W/r4)+ ߎ^ے4n䍇re }RVÃJe0s(~Pʭ[,Y&)7ߝV_\oj+PPoM'jmiޓ9߭bizw4/:Tt́-MZk7~(y)#I85xWd  .J.HZeyͅSv9Lp4i>|ܿۚ2gKc[0ДzՆRm_l?v˽t;PW&}WwKfӾP$M0bԘK̄ok<"|h߉x36X U١<6OPٗ17)8uC|KSgHLgY9RמsŒ`ʉ, [՗vjDh<򬩮jC /t]+!2#mDȽϒBV.[ w@_$`Wh!t›F y8%hrr7/!'ĨzvE/^ΩAw݃{3l[*j?f∕oX .5fVͭOL@&y!(qMkL]I/0Lr.˟<[Y> H!q- u1=7V@z[u[@PwM?.^te*o&==?<+hR2UH19{~߼1V1rt iKu;o7Mv \w9=Dn ȩvj; r:Rr?l<n 6qN`okwG2*^3N*b)]EJNMGgJ glB#bN/~̵n^֨ +KG@sS!GP|GW7W̓q0#m\}],G4<8\5rD~Fl9BɹZc6FFqwSUYΣ/b.iP7&^8VE<9$R /͡v;uplލ@%_C3R&kc \BzӻP:ux v1ԗO8זJei/'VF e1!DqpKO6xޛTr!ZF"TBTN| ɕ Wr .^WGOdL搱`rxVScyS1GtCئFf|Iaćڏ"ltՎJ\cp2l`E!}vm*biv*;kTL$*$،K&H>ɱ"&`Y',D WL g`Ċ;}ŖJRZUUr>u`2m^;&}J\e5bBtز|:"EA.L`=b Kq&.1?yե5u'vח֗x®8r3CWhvҖ]$Sə_Ua8eYi۪ʒ68n -ȂzD#fB]Z5.Lz5wAa]nkto#fXzUo:{T "eY[wT7bv)|*J 0lp b}=["oFB )7R*Hl{Ʒ]՚:OBBybykS%jQ`yÒɀ,#cIds] =Ⱦj#p;C301|% 5 D:x Z'-#zb{z @>Z÷>W-i*/]8Ě%KlQR>>Pv}Z]jMy~- #? \jОO $e4䱎,U9\KݩE|jk? Rzɳ7|@u$YۤL?[yg/HcN\v̗c-0wE~U[g??0qC ^h `6O;W[)iY@v9 5·wm֤TП[ؓzR#@H>@qaH@ )VDMg-lJh$ ÿӺ,fNxzlR˴Icf;aePkj%4v9cISBg=: ; [ p&쫭8X@/gFv -oSYa 4}*zPumAmo_DxFĽt0vc3F: ϻFe8\KxA9 Tz&s. s1f9}mi]gˆVREER[lĂIpa2Jq Cztt6$t f !j4eAaZTHCa Hp7¢d?ǖU$;n6w*rDkn"@Z(4ǥ(/6oKPRo>r2Ͻ-(dvpբaaOnۻ@m?`*JwW0R{b v; dϫإjYNyNτdg6C/Ú2nv tQ 5+BO}xicvFP0+=ϸ!_/lo^콑.վj5vImŹ4kFXv>IHMr`>_1NÙ8^Ejl[g j?4 WACFOd5Ia@:qb~Kuc[M(Zյ5{ZxD(qDS `+#/W%}ل LɃ4Bz2ikbb(|{Y}ș#DwKN.\ k񱦃/0jXV8rqB׺M:[f/@ rĸ}/=ѣxQ8 k#`EJ)IgR=?D5{>8oR:/HȱX!L3#k#s`r?>"Ai\ f襺fU/t  Eme 9˜EZE~'.%lp;gSϐoH' ]zǪgӡªNcP'37}'bwպDź}סXxf#Vƀk+aT\}/벱̕K~.f!oB P= zoeXzq̕1ֺr,{ 8|D*nh۬}F}KAZAw]QRs'K_-[\]titLAIkˌ,~/wT?1N@fk QѢ_ SK$YM(]~d4p_ }* m˄Gn?U|F^Uf!' yH`tQi$pTݵ)$Y[*w- I\^%sbV {Hɏ+182~tިpfCV *KpJGS1fݧ鮍 %ewpʙl?Uy 8Zc S8QZ\~Vq)hRAH5&(/街 1^`%%kpڥWFvG[S&}#?H^R,fzU ɊxT(M<~V,5zeͪ|0\lLz`.m^WQ1I}Ե`!Gٜbr'cN՚I:ԠY.F{Z`ȫZ[Z|G}8u `(F5 0l$Lt:I֎Z ~BVx}td/oª]o-aٰ*IhqXpLt}7&V|_hFs ވl$F4nA'_8Gzst|}7s{VE\^ӷȹ6(&W=)y\1ˏRdP y sPlY/%꟎gmIR~7lL|S^d, bl,I/TMVo),^pѕ=~A\ceqn 㝅j$⊺3!&rV{WFUPsjO;)vp 3w3pya rs=w?GQ+jH/y X ŪyqJ8#Xۂ%NNL۪3!ʆ}@j+<3*ƒ-lu@Q{pV^_AOH[| pʐ#xybM tι,q0V 3OjG}\$zm;SZ^nQq'RSޝLs#keHVwK^n%{( CV.|>cO4&#deG,~ {+S730h3{4F?1aS~TeXR]9dk"ncQ^ڃoHV)Jv6(ܶ鯐>ʐ&.m$j6-c)M1iYx4h9)7by͕E ؠ;w%NyۆfZ▥So>x׍x}\#bnrC &3ca=[+s;Qhrh]0aF`ca7_O I+odzCʥbv` Z pM=lGl~VG YF+E({];.cAIߩt78Kc$O*{Sƻgɍy/ECN\=3 N Ji]toLK߹7ri)gw)3jNY녨9gUes>SP I'I#n I3 0c t%X~ǃĒ#;XL:ݍPk;k`Ľ Z NfUoc jW v]-#J\z91uW*Qamq~'xwド=+ TbGP1U.GCu9XVWy6IiZT{ɫR(fXa㉽>yH>nAfahLcuZ3?V/.Iįs#x#=FD@&ETUk;M).5P5UvsreHTBŦQgJx>ny#FTض zI;.mlFWQuwBz̿qAkjvU?YX=[] . zYӒ `n>)@ו/yyus}=$+6%">oT=]h{H\I&eo헢b+A@D;`/n0͗۵W'@G&r8ǹ]M7Ap| QF="C5:^Y rڱ}Hp #s~7)է~?Nu5۞QL1~|11Z,Pd4郳g0w @czYmz"n^.tpG6Cdܞk{IGy"2Ͱ$`kwN|S츥~q2& ^\:_~٥&?( ob#ؚ6e}Yf8wN'ETz nDkkR$'نjly=2l+-AL8jT#857dkqe*uagm'QPʔ1" A_65 H{-PL]r 1yqԸ/͆^\tes(d]a8BiNGkԴSDY"UM38xDa;dr@IoJ9tJfzZ0z)|N\mmXHa!qPoxl XAqL *?L0x;l귲?M:y{f=?oH[Џk^$釕Bw$N8e޻z$كsJP8X``{`>nڕkt=Uj@k[ˑP0RӖ cD~:<7;U/]k0@JSx>5I9%Lsl| 8Ҫ^-mgKq#뀛zG`Ae9 >ˉʳNU\2m\v9oGznmxG?wPw1UL 1 FK4b㠀;'$nhU{OYvkGf~ >U6ohQMg\_RSǫ! Sڞ ^L܁3wt y+Ӈᙫ*EݾT|FNe`iR&ب #zU ڹXޗ2PH3ua=}"NOwܺLA3|ꢯjd+թsc hų<c=&](E#X Jc}nY`떢SmCf'ָ^ /^za}Z_v/mܶD !vcS^Jk>^,O)o}\wV 4? Bf/Uk;ձ=-6 ŻGyiޢ{x&wަ|6.vĢܦLRfn8B끢Wdp_J5mE e&_GGtC!75JM!||TFD#7үVD;Ԕ4CُWzzOd P7 L8y+{ԕcqΤmOJmބ!ԍ&'az i @ɲhHb'}}B8Ž;o3ZmftGRq&96Dn}\U'C Pn7+ 1~6[b&1 SobX8 tN&Kul;}hQ?Wv ?s\]H{Yf&:y"Z6]@M9g=+j?†Tzv̾rl;aW&n|Frߪcqhbkл]B2p5VU,CPkV(M3} \= 9@mbƖQqkG*s{ J}L dѸloļu;yDЈN$ȫ^#'j.לv~c EW\ 6i 0 7\YzBH+gL O+ ?WŸ_SI-~5P ^ckDFkftw$,5%IV"5\@&1 \I} g*12C'm,o(r+_Z_$M3ȹ|/HZN( M(.Z imLo{T 𬒠@K鎜ZR/Lvr:[/CqF"RoUL* ~>sp>PHn?vo1Ķgѕ}5<4ՓAYX~GH|o-RA%wE54!(Wn鞷:SZe7n6B)x9Mc'oPJ^| w߀  b*+W# A$yH["8|'#'pIʳd l`#ަyX3Mʓs="Kv~NH0/0p:/`i]s͠ _±9V[+LJ`QC*ð#Y`iR4,)",/[]5vHqBgDgX^ &7<ݏP@'~ `"KaKG^qrPݏGOKPM89zUяiq AcOUVz b%p>؂ S3}Ʈ.en9F(|$W܈7]ޭ^\#ƀ}ըluEԲ׶xƼNҽvz!㬧Ib [Jw9ˑgJ yt5s~2L@܁fLd|o?#aR2MZh[w g8/3HGZBMG[!P=nHcً 2%֠Z*6r`9;?Y:MO+"k[K )_!f6vQ7EV|  #dDeT;F.YAdHCֺI$cri5 +ŮBZ.W8TqʳeV}>DŽӍEbv7;/xIq;Ոd9S $nTvɻ_Apr ǵar6ɀ ;eké.أ[R[m$QR.TU,UgZ/_;oRO9`7ڍ1'gh/gq3rVy[8UZɡǨ:Z <vD̿?qf+A x"\\}%Ih\!y(d%r61@K {ۀn7l\ \+lxmhNC.Om1#!ƺJj%.Z`衢8G#5SR,tXNR--Li!V)\R1k'kslѦ~&\qXv5bڂ y*F.qJ|`>.dAH'/p~lՕaͰ~$p jM寬!5| u+}5?bZR/"uܚ`8PUr1[H?S_8^,m i0E.?TjSsS=%&{qO`p6?ˈ2֏  9,7ްϞ\6l|1vxđ ,/ hsf/^t8'@ۀ|)|pd޴zïE=2&zC{4y+Hʿ"8*z49]%n„ Ȧjȁ+yMA&j:~y[ E–דLk9BV 9lI Ə8h+ 6f]V&[c y4[_ +kCgŀlߕ٧>PՐFCNo5Z`ufHl~G{[‡78"_ӯ$a\B=1P?1Ume X˵njcwgv`hk9#}"`8F4a>/D+l@ZKfp9/TุMŹs"Z`*!)(l1O#Jl=D5Jl 7@z L:>ysPnk,uVŜyzU]r1Zՠ.~I&/U P9D5G]j¼"Mސ' T/\CY!#b-R 90+eg\$~~};R6w eHt? nm7:T7~GPȆMO(BjoK8Z"ΚĜ#hIUxq'*ʊ-,L܇ aYG dxUEI/cLL]lhKX׃!92e{P7w 둸b5~́A^;;KG-uo[e9b[teS$oر}ŸQۯ@ŜBȟT UiH쾭| U;HOdڞ(W+iej}ggXyuk~/0[ٱ1k̏l~hLE~D M,(r ~1QP(Om{ނ%0wE,O>:*l֚s ¹` Ӂx88rX'BX#^{ "n;Ӵ)7_1g#\ bhS6h[l .¯Mؔ"uH(Ùo ,yKuo!Z SzKiS_ wS؅r{@猤C/[PwS5˙'M hX5sCBF#/ѹVwe붮U8_yqFeU P{ކē(~}|~7{ǜq\99 jTpHYa&{oGTMU/xWpΪGT7v krmcYs3lܙkᓵ4V@2%4X2Lkc&.x ߚjfyiqA^c*@ju߲m-`mZflzכЩjiޖS{55y)P[vczKdzO "KPף8Xޭ*G;e:uQ.cdu,͑s(h0aL7~:i^__$Q y>߫I<(ke8Ni@1A>[?^0kqc2/x?ֳ'괿-Չ4 g r :{9 RԱܖnB9BC~aJQW^9bsףTg.*,>]aXYW%x^akype+tBl|-\0N,X'f$P_yX/PaK=76w9:^z]Ɔ&uw00/r͟ggN^*@]ɭo=eVߴ7,zGo 2$>H[+/X1 6ZzΩ~} Q<΢^(tLj"0ۼ؃&/P7i.ǔ8m#9O MA}aN҇aWf4 5.Ux/k܍q v l޽EjszbhsaD+5ȳ6lFw5lsNw21 b 30`sFK7K?GAtx2eӑL(9_ y'F럑{=%$,}g""zJ!$ TqV^nP 2mG-*L+3{gkpjd`Ͱ𷯗j39P\vzŲ~Eb_*s[.PqWX~c$N7mSzX1~T7W%mK%n?kK?ZS,!+X! ?BjFfFx;hꍔPS'Sܓj= i%?bHe c;Pxukў[fjWX#@LAڙGe2rMpۘm|NowaDPEnzgNݴqRCIU6N x0}FJ%QƛgMsԨ*lFp&4شRL_A0O0b,Ǘxߩ9ùqt43JVq1XZǾO EBdN,-PtrU)rate-d `f)}_qZ%z|kI5'G|le¬qnzHT1_9m'޹y(&(r hCM,jG)dIҍjU[⿯O@7}; Ȅ*<'E] nJ$ipE/||_fE_n>޽?f$) ۻ?tgy>2!1fYƇ{$N,n֦eL&|Cj4T, 4psB)jgCț&'Z?~\4*Mokva1ZZꄤ}C'C1A$iCSgh4*&.J4qxP_x׉ΏF`]}J rěu,ZCoS6;nvdʃ* d|L}|- {iÂͫuya&6 ޭǮ,eS27fʖSHzC:㛤J5D@F`r(N{(naYntX#Ւ-v|InVԽUoTe1Ξj^-=Gsji=z<YS:F'VSW+Dΰcʝ7XصѿmdTfL0˔k *#$9U%aIw7=LZ拄*lq)-1SQ*DWʁVMKNۼ-JhQ.pĹiZC yp{fI}lHB~̡.^5-bH4Xpm9;}4 {x`S0ٔkZO}yMD?ݟ/x_dD= TdD;ܐHKVqjILu< %b0[V&+U{oc!!{dN tq$&=?wS] 'N0Zwm_ų59zfnKd˯X4v|֞<7n?a_ך/IZ\^ kt2&ld~1sX,7n]9ϩ]Rqm)Ձ +zѠoHZF*BqhEuI ` 8j茵 ǚ@%l&+je-ny ڳFDo8$ѹ  +[FPΑ~0'ҋ[t4o>FLڢ,I/_ʾslQ'@|a+Jz5(<,k°e'+ٻ U0XVA7hGMNpf :fR;r0ח7pwac|UD1ϥ}p$ؑo ~ުzG-)fm/2 Y9|(Zce!VٗK\ᬓ?S/qh>lSpcɜ"/pQƗ] Gd[ZWȤĎTXXvE9Ds[WT8>+MLjb$7NDFqVl,?V@9HYlRbD_5~oPV%L a:pޛz'i5Q>ij[Эl* \g KP`T1HvLT[@%(ٌof*){zJ8*c!a$e} 98dJzcevU" U zвO/ Yx9gxScY[ #:l hZu\/Xkd_:-۪7I&$6K4j}U?i⃜ľ R{x~plR,a[rZȬ!BR%岽aW IDYxX Oy`e{c,I9ii;qD^_#:(KPEvHG!x=IY=F5,P*β&zS^UG3(*\{Fչlŗ# <,n5:&P~V2dT>ߒkU~1~^dž15$ڈm?n_v.B_[]AVB>ӅzҮ„.\ۀq@OGȏ87X-ƀ_+>{eoC%kzWYW[O p|\02Z7fm}C{ZM3 7P)%h; ;`fq!QO`Lûn&cGBxrw tƙ- fzPN Z}I֩GG*#uuLs7Ī>]d &}/?c۩QCu{H1_O2v'(O ;9DM/go7w2LdK75>{9gսUsUogl#]**1{iD`QXaSӪ<rs?>CrT >u̝ Su_0c"Ɵڗv6pZ%O&JE^'[<~$ -@G새Ef~'T~|h[ NF5гnC2ןׇ၊ Fj }?+oJX~8THhM4a jP uL^"1GbbhyIJ٦x$BU'hSQOGaӁ֮7}:ꀫ/h}U**d8ղ' diP xYTh|,qֿ&c!ybr/OvtWSk9N \+92>R O TEƓRy@&Dƭpf/5j;Zdžpl*Y a 897O&C((aD 轚Dr,;n>3M!%,@tXu{[A>5Q)>Uh~R؛saǑWRM;^]5Ay!:'1P~ÖTҎoV.w/Yꫨ;+J,a"bsUOq乛w OvC NI)M PyWk/#ڕG;<(6M{Rx- ]Hv +;|d)f^xcq(r4Tnm~M*k N! Jx7KX|~ӯx>@J3;T'r+>oi峔4d778`/4ge<6 4a {H/Ez2:~]V7)bpIǛw /tVaC|s,Z! Zdnu$S~Cdt͉y :hmd~-s,L.(-{<[TeQ؞b&y9'K,j%Ą"WS=Ý%|6d՟lġ+ OOmi5S3 hb^2ha1 ;?gHrh5]{*V0iR=؎#+~jk7.9. 8:: nت[o%EΠHNl!FP 1ܬ?\ۇޞiOiPa׵gtFC;o9/Sq%TgpWˆ={8nTIdڣHNz2Ԛbr;0uFG^\߬UރdrU`؀ a+?~=#qlӡEdz5kA(cF^mS^@*)_Zsif|c^41' : 5LxI-HmG}K+7N׋b;Z^)U?/@PJQV͏78GVF7kO?ȞQ`ؿ;eVaVg^@ubȜNcBSnC"֬ʾ#KJCB1\PgoYEQ} /ZhHZB6%AcOw@qӋgA0=A9Yr]8)}NR P5}_h3Uhq";h)WuLAҰVP%5^MxTDgba^tp‹Zپ&X q@{i Ew* H:F7쿑;ש 5xzb58Lyo_'=SWS*v )$t㲲/"fJ2ՆyIZcU`ke&R|N=.g)*XR"!a-V x]'C =/)7wr>2Ľ5<ӧ35>Vǭ=*qQuu!S1: ÍvTl ^1۲YB{kA 1dM F)[_ZMPyH(Lzg6fR}on)83At7g5dCr?: LM&Bo5 Vl;m_fJ+BѬqZC"Gȍ҆ XlfN-T lc]M-?wM/uXZ߁!a\@ C XΡ5)L݅b6 E8LxUֻ7RDcޚ3ƍ`bKјKrc-˿`jBwl?γw{sw_}>3oz 5|76~j^%l)^4!U/3HgHbtD@bZS/%}y""7}(,&b׭\ KPN8teuՏ^jO[ͷɁ!:PHCZ}m{D+c=&$\nhs^=(F_x/EiW~t #O3H/+uB45X+"n|϶}@N zY#K q>n8e{?sNoȤ#AoZ''HIkD71׹(̒ czزs YW%B`I-yຏeGfXdկ#Ko Fj_@/X#4: $" 1wb`2.0آI.ؼX>5|WFxęN}Zҳ~P ?ss-V>\x"0ci62k=d^ѳ-ffJb_G`!.K y¤w`=xߵy- #G"R`ylm7kQhbty:d_y,DiLz([W$Pznlʷ~%8IP㿂4: LB#NjXtz8Q 2(w]V1 #hůRt~#u Jg=N]g5wAc.V.wpQE zHUG4l?hݧP3*GN5 -g.2;tPR58(ܘXrK!{"eܺGXǧBeF}҄k3 7~P%8rB 2Aka/ȯG%\:HBKK;ac\Ktnm,5#+{)06l[na߹D 1UjwwC]p:"}lQ $)7== 2IԤQ-6 .c:3/ꓶ-6 & [{j^XУYIT{ ꀟ@|:ljt),7؂D:`[k=>]yldN,\ҟiʤu^hsV߽bB+I]>=y]bDoGw!S}=Hxhk]GLsOAz2+E < Ϲ*&»0Fmd+ 龇ζmfR RWN5N찧,TG1Bc>5q\.\Bi+~᫫3H) >©+HUGcKkQwDrW(ܮk|ܚ--g@Vی2Q}Zf $ [{4e0RgiSyU#Z#.4bdt/H+VlzM mc!hX[?g} {7_J8%P6c+^+9arx 1>T>phJ =YsؚK{+Dxu, {B|u ƩM͎'yO k/bXWvov9N3QGZg,v}ٮflǕg6^ڀxO\گ砰#9l2um[V[lw [7;ڞg:KuW,s95v1%FEP<&|flqM/cx`*YKu˵N/^GR]5p:VIO*Ӡ;I鱩m(^7fpys_qmÆB~:OJ4 3XmЗKc-=^ޭkC2_o?ƣw~.n#Npm!LnU ZէkDYQ_~\ڢg1-u~mK@zNum5+>g1k/ q! -5D2,}}%{zeX |(DWL9` WGc@;g5?8*H#Mx2v?A2!'f*ۘCHׅOϠИX}&$Aj? g ee+Ũr|󔝻JyYבO 6 4iJɛ +]to(0n/7b{=Xa hXB#*y D5P`ʘ/! WFpy 5I m.zRG}N`掲)+Ĕv$%@; lػN4gI_.z!dz?DfercZڂt0Rz3xJI1"_o; E-jՁ FM"_%MV 'P9([U0T a;!m]bCFi[,FyVj&!%W[8Rݴ]& *<o"DmWܥsyfTgXWpY*cY- 9lE4^Tvg x*xa\YFd&/aE\i,)b!‹=)EgfuKdBU7ܝ>NZ}~@苔9Cx_1\bw.ILC4D8ʮѝT$?eW.Ith˰6,Äc_~qkx5;&w]8< s~տp:%Vz|}P>5Bl+b$4VSOUJs7keOy~oeQ_٧* mndY /xOHS-C'HB>K|@Qh.bIMZ-qXПA1EmBAksԟ>$OPo-Sv491wb>jhx׍>޹ؕ\DjX%򺡰σ5?yߧ9unTm¥fo6MKLX9 %R qP{+œm#ȻM1KZGAM `&])\*"׫ht[Q+QjE|vJ'wg eva tZU`T7$h9+q)ü~¾‹-Z!ka4 #ݤ ]o="z&7]\o (z{P(R+*`YƪSF w<=^;3/ ~_ ~v_/+(:ͼ~Xh{iw_%~!{uvPu8y]/44 i)/ZCn*"+,'^^5yn.2K2=-F3˾Nމn%WoOuWufh1p\5r, kNBCh/sdؖ.R^)] g4@ZnpNiqNN>iF:ýVϘ0H[9 RF.:{9{:[lךaU$2\H-OK(&UMghq1? Zd"EؓbAz Eأ-^S0jdGe6im-{BT/PzmSIA_µX7xv鹕̙c\#N@{ϬVJ:u\4 8jz7}8Uqv&T9u[ڧ6/g4~CvHⰯbqI4~o2TFQ1-*FDB2B-P1¶R\Q<;de(Wեn T4Kt :2^"d!IËuAOjS K\ѺJxh$>ΝMq1*)L%}$c kxA@\uб#{>|ǣ"K#i8f>^P~-}we@\"w>.Cs䅑+-V.tY+ [m_5~ 5{P};_Jkm)?."B\x#HĊԣB8R;b)9>rzQ(Ϡ)ooM٤ON`3)uI)Ae]{n,©rO ^mWiK ,4pB+Y@|PBɷK<%]j _܀?dx|q%Dۤة 92J9xs,s^\W WЯ '`86'%SNU ߎe}: GXx'^&M9|J# 8/;h]U88N\Bo!*(e-qRn-f꾭ǸWR27V,λC2GWݷy0:BSydPz,(d)#[31\Ǹ5j/vCiwZRGd0ሔ) IX>sC;"g}<ߕ% +a50itl{%y8cŭj+UdFe>Ĺ%n ?qT4_ݮ)g'-V?B '2k~!( &~$$ O}72iqQscNhy&^89zEmpNcxl  \^ߚ +NxZktZ}~]=}נPF.M !Zll0_ Q>?%~'?-~=WS:CusU;^5'a6bHdϖ{ +/^<ڲz 8Ӎ [7;n/hZރywGAeoOy6lA6Wm%x$XuU9Ӽb&4YhL:~ya ͘-Wc1CECPveᅤ/ 2fl@>JBYܕ;|7PmZ aoٽg+֙Sٿp]5ȟshIJ2h0ɲIzpޏ&RF)4v"  Mev\683x@$6[A/z"jhwf8U4bn2p[O?o,&8qVg pl8¤8¶B5dC4ei*=Cc<௡s5F~78ﭓe'j .|1Ռӳ<it7a<]ms }GIPR54&IXx֨AY>蝬[?K!$Rf>eZ;2esՈ~v(R6 V(9| pQ7co%_shaD̨j{6oe GaxJ%4YMX T8]Wx`X2ZNv)s{1KGsq`uD]X?2CxHlzKd=. =~J4 T 7®?ቇ8Ғ@^I@wO̠E@W.kL)-!%"wIFE>(uwYa} D\:uS7n#"ΏGiė(V>%FYT]a#eIwMÚ~XNب~Cs6soG2ػ=ƿS7G <[GIo,6})kA\T'>U.~-_+OrR|NtXUh ėޏPaߜwn<H;W3l׹v#%@9o2=y u\zٗl4YYҼ` u?G'P#Mj0 ,?iOnP9c.} H>tX=:ds)NSw[o[M#89rZ @d4 zpO?gh>3o&#7R+px""$__x;9}id=Us?$9d5U՚ٻe%S6^ 5"\"Gq*`A(@l"ú_x>*=>YRrg<2.3iOF[>kX;}W+75cL~OL9nJYL$@oO+u&i$@paY!*VxCDNg!̨vG޵ZПuAIZz[T&7kR uٕQGSSf6E?/\}{|& o\OoC#źv<E~)h|Zb!̺9a㱶:BA"ykmcݸpr7p ThtgdUԦ`7³KQ/NRIjr;6v9ʽ c\B1ܤ^ýD=ї7%{S%AP',6׃ ړsojVJPocKs@?QeKtW? <^_> @9$ѭV~l<9w`y[f" [׀o ObYڛY{?ГZѡ77'o,7vf+H3m}MF1X2ZIҍq5'i{rM{ێQl'?!|io;=`+\j 2M5H{PMt  X(̂1tcL(W~W_\ v{`=}~d_K͛7:aUe`Eٞ JAƞoh{Wȷ)1Wr"|_ 'z{w}!3oB>^Fw&sCᅼbR-",*Zc @!Pp \7&lװP[ZM4r]F;Tj&b*#jP|6:(v־\GڈoP "^pRZ1ޞnatrwvev&zmh՝m* l&ILܲuS.8؆ !o~QN~`^&[<&He;àqd;71gc1{*nռ16X|^k!r nI+u %/C#X3pXӤs.00f5X T-JC8jQp`ӫ Ai}0 ;Ŷ{Q*//o!ŭ)}~a6E |ƺ)] !]W׭[OZM CaiwKt8q[GNG6]SCSזC¨F~}O8h|ag=SO`-95x@ݛJ?qY 覜E_=7To?1񜖙q.ݲw2a_me@U0ЙЛhjb>z2PԔ}C\?"ꋈdVMP'b{^-C$o 1!>VDFI)LַڿFa|5-?x>k -/N}|:f<>f.fGp;-cp{蝎0#45<myZk5%yPӥOLN"B rqSe'ttKܜ{s- _hh{aA:}@Dڼw\}}K*|()1 2ːE؆i0 BP6ݬw{eRuKʵSF!Sm >g(w+ÕqoPSN Afqi.q+c؊zb xiVI_>*ɼ(rۆ}6ь+ţg˳]\:Ѣ{sz%r+*>;ԪFݚd2{񂱏mW3Ȃ¤C&`x|A? Q;S/ *_|Iv@aip7tneTlGfsFyAPg3ůs9nQ`w%+ʐ#;t;ř#6&Uʆ4p 0U'<\B{D_u=ljᒗ~|;F1IyW?3 ů3,: O.HԖx r+ӣ^I m gvz`@VEoOhL^IKK1/1 ֮Δ0C"Z1Mm?Qd,)e22W15#̺uqu$@maL}SFߥczSu9Loy7oU2ZIg&^X#:)JXm(!K=0vLUh{͓$Q"~8+ ٓ + S4PB+&b{mŅqYyy[idI -MnwDeˇպ+ܛ<Զl&.'99w>Ds@BW2Xu|g1Cn&Aیˊ똦jwG6: 2"mo1$F|=n$KE JzFgB4./tU{:Q gk5T^L;Ey~GSQ4x:o[S)`׌Ao厍pVK=.BNpM/pTVta@HZɳ3!-^MvExS*bOCOL,*?.|Cq[FU5] :))0գyW61@ xK:R[ѠJtu#~-x)3KftTO GFEe~EgBzG&Eqr7VQؠZܢQSRV,847_n9K9lK4Z.y+|S,Lggk_ 7FMؿG᫟&cZu6wA) 4v247Cù" $$G|| )>3C;xȖ * bO$^߉`7ҸެϚ%3,yfA#l}/15j{miG<<~gT)FIg} t_m{`WqzꁝXLg',YXWcX*ɇ9'pq!K'5`1[ @|R549ޯ:yZӼrmaC'EIx˯п (?W.z'1q   rqf?p18$*,^),#$Tv͒~$4mB?urko׭FWߍ tig7 y*S]8t@i J#ױ2?,ûEW$: @@wM+z*M1J**Q΅iex1å-,5o!Hÿ7l0GaSl&r47oR6,Qūx3}>'z/~m0Dp-;L24~֡l=hH +{l-bTFH3`xFeTQ :Ѹb Jwg>ЫJubq[zG|=Fɩ"/CEl0kt8sLҚP5w/)TD6`ß^׃RӐnδM'1kYWw箂/} tu_DS|Ңf5z>2lCt_'Ku&N.`&NkBNEEUmw]'\%ڲ W- GC5h{RiR9Z=lE=aÑGLݬ8Dj5'55zZXxnAE4s!h/$͘iw9EǏ򍹹~SLz (o oHkAמs ߴ= o%:{k4S]tUDlwA#JLG ?^dxF:1}[yD}B(g}XkVC20xuAWVc5uoTq AZɌ=aAϑ G5k-KCUa'3GQ:{~Ġ[WE'sBLON,,!wCɿm|?/^XSb6oWkmcVڻ/1`'i]|soŝF1fYធ2AHnvO,ә ;TFoi5~k%]3NN/UԐޡ1{ wcXU7;s-AQLIPڨsi2{;z^L@v1s@4nŇԈsq}ͭC ̭vNkm#gҠ{ES2f'@V>}RBPY]RQ%…\ VI}b!7aݯZ#LVNM"k⡃忐Ψ#z,ȸMs|i@H&87W+t- TI(rbW/f`(ֳIż@)wŭ$;PSv߾sarF(j{alRj9լQVVB(/Nw&`>vI[C2-`U_@&B-naޝi)9tό1o@֮bO؍{G@o橏OJKu'o%$3xCl K T#T cr^ҁ~UB՗0zގȘtUTR|0D(rYcA)kFuEͼ]u3~z>%{ʃDv}H@'4m<:B{Q1Syn 2It,*a;狉ݰubs2,NݐiyM"^~,HcAϳkYDQ}Dz 87lݟS>F8k?1;6nȂr)F8>N2QT,A&&Bo-bI4߁ܢɕ*y3v ݥ,_yoOrˡ`.gtѷWB.zyK(愅\~jG]u«2/&_yE '7*c4}u>+IT6oU$e'eʯkÒBLZ4M6LJ.IY:~/~U-;԰a:N_.}s~5_AUOeyuGj%><<#WтLﯨ(0%(.){yE>9 &!Wb'Y]-8.k+J 9p>3lGIzc39SklW6)t?O 9\?=GE\_Ne5)PdYwsJᰅU? ׿-[7>|u'"u3F| /pvh~hAᤑV]MKOܿ%\v@?',B_\ [ckl8 ?/s J4#"pcEdoF+T4X17ZsPrpq._WWu0O?l45kF}io2_Tu0r=brIjǶO+t@UɿKߊ pVs-k;^vj6 v)f羇`I5.0 [cM7ʪ GB5'nC6> .ْ۾_Z}lnqgxiB뇍?37P]\e>p` V͐MHtu$Mdo5+o}73V^;WWw[ !{3Y d?nb,GJnҎڵ9:=}I>euaz#/č"xk /`i[֌¡J"K^Y/)OnIh3`,]g}2.?)S;F2{8/4+1lp` U|xNk5@sckU8/y7z#أ$0ԂxDkIX} Jst!pOs>!y3o`bCm ca&@Ȕ2_\(*?ZD;7q/&0O p6dtb Jݞ^1ed7'㻰G8@:*v4Ӷvb?HԈInCee嫲sN.;WQº!@ެL>\(wăjۓir}x>ӈӎ،QL˫.AI S=rV, 9yNNyy ,]0CSN.i6}~Σ%@sjKj}KA7Gd-@д脟9?ڜ>ğc@MGrJ!nB.J½*;`6Vu 숮f'N.[+x7yy:tnt21(@:؛dv4zAޙVy#c6cjp#IzA>.dϏCC>o]Kk7_zH{ĕkA1ـ0?:F35gJI{^ h0]gV `, }^c#ϼ Ku(/uߨB݊L´(&3Bd,/ATOKEI;ޓW7`_u[/V. ;AiߥOj8yTyLn&y%QsG>^rEw'&D~]89KE+ =t"Z')HFGAz܃aUL0/1N Com G#_iny|/oa$~`|6 /s~QVǟmVյ~u&{*,So[gp#W߄y+•QLwy$w*8YK,ȡ i?uxaPf1^%4uL;dW΁Gf׳2ỮP*/ a``ݍ!S'8AgUT(E` SmO^O>齋),v1]M,"O9הB77;W䱦fV*fgXQP7k'iU tRckcg*1lj0wHS8t+,_d C `7crN4'L en숓`Y0ium`Ȑ2[Fs梲v5Fߐ/woowgܮ :Y6|1f4@ˑOm y*l`yM#ˈ9_LZ=()Z*Yo(XLꑔgZUkL*T)`іUFrqۂ.=rX^O:z|S* R nm&"Z~eYP&Km+܉/{1G&+-27Y8">,UKv{"{CLʩGiΆ\O&6&65@[jC'{,󈅡Lp8/s!ӞNbپ֏Z{EԀ7{# x$7Fhd gV7a{Mw/}}d(Uj͈ҭM_LK~hZ>)kcow:ɇ̯_ _Ν&_%ğAh۷K!(ǯJG {2w*(9}Wr}F˱)KH> ޅծY%,1T h'2^{S)Kt 5l F4>H%pL_{l\g? >68gg |%!{#ȮrOf O^pNs,okS3 p9G'" YbZuuߍFQ,2VC|(ѻ#4y$Z'{H5#9Xَ;_e%6{ 'DK΅013Z4(q5#݃4DZCg^,*2HY0!}k!TH&4:7W[x>ХA.-1{ٻ. ո[Q5C4A%=/p&90~ Fϧtܫw[=7vjZw͞;KFm6Yam&4?Bz6B eݔy sN(9QC2{xҕLY v0UF]W[FO 5%P,6U%p׍0٬g!{%p{&Qq8J:2aUshk4K=/{q,YѰsjUҪDO.)R AkA)mRiQ?'T FˑR`)V Mli 5.EQb4a5G`VR^rpK$D;)ŐYBl~h/*N"Csl}B-9wNMMgD`󓄉2OzG"_S=n9=*?0;=0)E+SR_@ o,tdf hoaE"մ6OmL0; R&dWS|5"V|*r]A! lb fE'DIMn^ck3aad|kV/ߊ I-M.J$f⡎yp?wy{( "Wl;QZ5yBPtoi1vLg5Ɇ% oۼVhIjrcgK;r :AA,sP4zu;y-9Q_@ѺJF﷥i˂<zOdnӥAh_qgKXcU] ]Y#[ĜŘ6m4͛Q>KfJԫs,ԁcj+ۧKr|jM8awc8#(96 WKa,uY}~k~*a3#|62]VXfږ'Q+濑I.ҡ2$ {̾ m2iCpL (‹hVĎ726aөژ慈z5ɖ[smO8{)fJ*ʌv[|pW<&9X_˭VIﯢ+d\u]kϿ7$*YY Kצԕtd^ B ;] ǯx7bH.!!` jFC,?N/ baSKJa"u5/ָysА\FOyN"F/8=*K&yBoATLq"@HM{\]3 `ڴ0TndCYvC96+8)BN8z(`-,JQM q IloM`35sVU M*]+J(`dOYtT j??QB r*⣏M.fӰ̾V* bT#3zZ2{ٙ'"dW#䠨s~ !dK`NX$`UϤ\HQȐHaz{gH @lՐq@\Qs$~\O,M SGe^2107H5%dL992g"!?H5dywIn8T#G1#+%=hi0=zvns&jhs| DV\ܼJm@"ҬklK4#*$^?BhQݚНKx!l4џyI00 "/$=D)up`|G۾ c7 %yqM4/+TXW_i}QI(dxJ@yMFY0/+B69iA{G.2^ŋvMs {D!NhadKglܞXOdO^qD=v  >UL{Dc3UJ۟aJFy*bT7 =Sv޶5Y_u $P#ƜoN@}Kт/ߒj7܎Uyv DsIX7UfUGBEwo4뀤 =0kQokJ3YBRW,Oҏ lTM|K?H?;V#fJf[6F=MA$+x&vx{#zW\aAYQ,WA+[ ?[Tz?g2`93bSRVZҭ3,J6LW3PF j,r T{]$T 9'e/>ONX9O-`tԝ I?x0ALA}c5=YN$gGR V_Tj'JhHiBu)Q1?$=CC@zWm[EdPdd뙝Sdm;ڭQ@He VvYo=^Ļo' ĺ";v dӿGK{0pnt9"M˫MDY`5[浚iPOhpUwV O+c%`򱛤Vh_d0Ru<.l IIe[N0x*sQʃ +s6(`}ԋ|hv~Jb;}سgװJ$bGep;b>~tfVDƲ߮S* $AE#䂦/S?8j';6؛ȶql u$#% -9gmCv0 (_|˯%%!\,yv3$AА)'FYX,t:I-5Fg6KZy%kªr:qLj#bQg6\]w>>܅h?t%T[R1V#t-(;vx+`p!g/;"W%D[Tcezd.#D7y\I "Ԣ.| :G䑚On:%lQ- A$ iaϐFICCl<Ց ` zS:M!w괎;Uuɽ[Sq'1 B;_c Qfk-|jIڱq yEVXRGV+Y+BL2Oa LW sB4?1~Wznɫziz0<= h$yx&YLS_`=w:X|ugp%ЀUYX!ť`!^=S/9/=7jx)Jc"jRxSÒGw觻L_YyTaF퓾*r Ӯ+ObSEm"_`Ru'tnФ2Pva*L4-paVr0žy]>U>~3j'S/6jV84=up}|RX :qa%8$}F6Qjt@Y6v}4Ce𫿃emk pB+~eőSp0\)CNJMA۪oxrGa+}58"#Ek@Z'!Ù[=Xn%GHph=9tpOߞ3&˪+5RrVWe$,6Am~Z,td0q[2e%t@U(TNe Q` ґ\؋ >K &PUv?/s`w.:r&SDqx# TY8SFƁH_% @XlĘx oy|&C[^oe)'_{%ci3"7_HE{2=[\%60j+$Wp ~JHP-~ r74naB7\*Ggcz0_LWo@2CA,Bz5ҷ_)w >줐1ҙ2CYoC-fa[@M;ɯ"D/uˬ1|j K 9u'.D⧦*3 2_(BѝM9Y(YJzC1 "|=)} CGz0Ø.ܺ;=JPw^{(ӆf*ϿQ(r@~ TWk顼eo޾cT }/BC\q[{}|PE8]vƍjwM[e )wgqX2NA6bC+otw: Qu[d@`iLR\-iɟK5L%_tg &V<1eQsjQU! .3FD/{=(HJ[̭ V}jcF1շe mXj?Z- aal5LM|_?闵;Y5WYhSTasf!%+脦d[>] Ӛ](vYZh枱H<k`n p-hzxEIwpTSiT ;yAdvQ1~ۋ(gVAy3KA0F}9[O,a8/ER /WƦ,iι^Z]Qkػ4ȰTe$Oo)(?/7+rZ i9mh72'j񰟸X~\ %v"%eX_1H-H>t} #sh5QxU(+Bf跨 ?=Qr7mWaZοwW(p@"{B`+`gR/l憈,p $<8q/Q ѢO?pnf^TDF h` 2 ϊ(kT +ZS$6kio+Ai8xpd=׏?§"mIg\AiL7PQ Jn-dmy ^K :rxBQYr4SNs=?CJYq̧s%orn,P1h8D`U-fe=NeD!ƿsKq~H?v^ /\sp>D |w\t«upS[>Gsfo`9%]N NE͹ 6m<.q57C{'!Bm[FASUF&pXNJ JcʆzƗxoc9yTGlaNHޠd^y/ ;m,$/.a6ZTB{Viy9M_Q@S%/ ^M¡L\nmL'`~m"U)U!{Xy1tW1N.rׄݒz`+qyڕ-E,KsiN {FEevȨT7h kSnKn;r)GR=}dH 3a Ϋ-!6e6axUk|/ܶb*TZ\ ?ψ2h4B 3X*#Bm M]J[e1e6t@fASWn$lYJYwEpL̛FNJϟ]#n $a ^l#Yr;Lƀd%/,u %cJ:O$eUyOv?Ac" a15IOo[HΫ{;{+q"ssI!̸㥕( FR3[X ۡw +\Wpñ}$K5&*%TRbIc ]'B< ^HE;olНSn,kNRϝ~)Ra`AdbGu+rZKށ:g3NNSڲͷ23xcyQ"#6w Lhx`kM><4s[fﱴLӯtnac:UP7lfj8=jwh#FWQɆRS֌}g]E+QP~ֽrP jXQ6on;zT@]}rtT>U?P[8[u1g*LzyoS6NyANv/A?fõe3h;~݊06y ܴ f/%Rvˑoy&!`uW_AV-~>hqX!GäsģШI_]0(!E%tk IMILXtV@J5b%7ϮzRG|U>EoWn?>#,S73Ў.8Km0 Պ59do '|ڇJ+ 'f4T|`O{zb4$b٥w?6Wބ*uzrq]'ZX0DH bAy6q/w7+)? oIC:MhL) LUr]BNAzcP Ĉ2~"..M=|ׯ=g~ռ4ZuŻ~Otm‰ denZ).h }t*>Wi)sӌOF^xp $m+jvډ˄Nѵ[6Gy>H㌄[B&I%]R_xxSaEd]u4c!BJQࠛ\[o`FӦ_z+е@8Ѣ=k ~hnHKs<m$?=~Za|U?>|,04(~9ʇcӹި]1q"m[\ш=dWۑOWN`b7Vd}5U!euak)aO!lgGn2 ֌\=eSi|)om3+3)b${]__8]Dݩ=1 n=#.j#ja-)cCd&|Ղ. j wNjY%d&g!z)ȒBO,E-f"P 6wBv8/HMRF;΅J_ $|&'؝. Եöy 3oq!v!v=$/NKC }R{Bh숑Ͽ tz|p>85 uőe=/#;BT"(E,C"2'a$)l%gݸR -.]aΤ9Pҏ"* җ͍J&=m;I Ā 0)&d'OYmq/0[+ Ş' -Zx1Jƻ&ق#QTAFcB`mY+jnb9-o#JW)߀=Պߎg,INhL .6XK8߆Ep=p1T[ pE]]/R\s;^#TM;!e- LNzu(Z|8//mQHT I#*Zei+'!j+kX$9@hB m3Z)p)UI;jMsFg={Ky0wWY'-+\CV~ϯoc ZHPpUCD+POrjoHj$pmi0 TVL:5n`vގor1KkȎr(y^ñ êܜ" KQkNAxOyn׬7ι~ԩZ3:$Oƫ<&\cE'('yCjgԀzyY3uDL 5" yL8#}>eT ?96##nQuO6  *=_]z N]h\YK>_JdyW*rE*P5Wem`8nC+hYтl^w~[.U&kfbcUM6fv1H/:?>@o7?u.1\_J*~{ܦj `H,ukk:3銋c~7c|khho*6p7 DUIs!ݐ@"Ɠz=wY9~d`֋/˟֥ wiED@uLvW%փ=~F|YeXh֡Q=T^4kL@$V> @l?n|EMk7%e^5xa⚦>?cƢj}F#XJB {wb '}O`Vtf tm;NVnTE@ 9 "anWy5ku{}M~o _Xʄ[_h{&ȷ^.}T_ 7s,o6ܼ$||{w|=vS?Jmﴭu>Ϫ>tk+>p98)+mU/<5mH/)6>̞hgnJsg bz ut6qC8iOƊ|Љ7qD l+a]bOܷCmdfΜ|ƫ}]^u pgHmG%s;^I0F\`7=6)&8OG%4fa3 Q$"־NrD|G;_ڥWwge$sfŴ';! Մx?5 kf)кZgӮ] qg1 7sl< 住sw􀾲Շ\pN6;2)}?JsOTe*/҉R3>wI$6]&KM BoF RX5I31OZ$J3 &^O$ߘz \hNѥ`o|_G¬:[QK"xoE0D~&~z\2r:4#n3|%/5QsF721mGLR^#!f%(A&YBK=Ve,I>p|өOjW+/OwhO0G_6Zi ^H{z zC7~QWq{4t]wGfj` W-oγq!nՏ+/@8'P ^gїgxRC9Rsѩs*r+cb]k_+ߚS_ lP{>4GkIf=<*" [~"QAk׆; R 75?gC "t3 Jvs"g>ԃT-{e:Y (G [[>;XzOx( a^4i\B,?VH b %4镏-<30}45nУS+fTuR¦30@L}Reפxp*P¿ ]f9uzU0mpTI\lLBe+m؊$e_PS.dPM=sgSJua+ϰFªPt>^.:JmR;dŔnj̗T>Qb/D(漽ECK*|YK-5ZYS}25f02r$&D+7fp"neb>;^DR K$tjxjoP!dd.ks鰼b3Owfǎgo4 {(=Em-h1B^aߔ=u l=htlƯп$*; Q Mi%+7^mv4yA~ϭV&87ڨi@R綋 k14JEgFS8`O=bvw_'d$G#n˧tDym孯;zL }RT.hW(tp~[{.0רѫ7GW K ?,Un]<ҥU  4k`00P[i2lD ]6_OΥ$cj_LYv#a>:m+>>6̓N^Zbr'SاP4jL=xw!Mƛw{K0+/DZU3O2z!HΘl/5fF!?Ϝ/lin?rxLRX p~y%StٍNxOlZ,FvJv\:1hR+ܲC;@0!%y[n~I(+0Wi_COuFkCqu/@YJnԘiqokLNƛeүC5+W*Z ,嗍dl>C;p7^_ichTGCN[Q)ؖ9{֦fa:Wo$zBI r9گV:c[W#y4:V5D1œ^%~d.xELxQ=`@9]Iv(pp3ߣ:~U:Ʊ̧f`ߺ@!H+j),t~ZGS6p.wV|11vFZFഌ'ǻb3no[4^ZKΚ _ Cu7>t3<Ɩ,i}h%cp0u/+^$HNʊ`6 ݁^)K~$UQ>TOIt`:3Bm"$aLBNKQإ̴QR`U>[LDȝCaS$gڭUQߥu6[ܻ|]h^ f~?Oe_w2X q+`"]ԊdTwYuɤw+)IN;/kMR=Gi%-rըewy=IPW^?,dL^J4p ÄZV;w:u"G:P} _$Ouȸ*eEJ)B'Pe`y#%K +⤈1JcIdW?ƂW5Y$Qr.IMa+lDaR_ۘa@џkICJGԧb>BAל`kW#E9е*p=P6 ԶDrO O/G-t!v[[ت>\.TɈ*үk zo<O2ŷ rDΣf?cKex=:3I (3[FÍI"|޽DX5֟4 v.8մzY8(;bDpo])y,EwwWss(@`jU[žvX4puKQWr;XB۴pxb/3S_P)T~[I^/~JOPrt Ө1I?_?Lj21Jt:sAsa&3tTb훡 \-<>m2&W~'AZ~Ϝ]w\=ȥ·h٬*&M& hn4(x; mʢ72@D|fO^RwcSI19͘K5@[c@JOG7y^}u&^`]fhNq~؏^~0.gބjp~2{?*+zB*>PDX7 !W=gϢnRNMx@7غ0V^n#{_̍~9bOЦ7BNI/nLʟl1L5Z̟_W1Hjp/٠ phlll 2>!4oLؔQ&-gw~hmi2¹|c X(н +f jL] /5α!;0Kj4via1D#} QP= +>H ɵg(v4=Zma"8[jut! d=epO0v؂p [W8_Ѣ{ ([Q=ߌGYhB;$#eת[Dd}'@b \OmHCCWLSLB|߭]%WRL6(+&Sth<`S¸(Fk䓀]XE9/s 9T=-ՎFyBsڷg # !,3'@N3ת:@ˍqƋѝfw-ۺRqQP?m+i\*TQC4?{Db._$.cKe4 _So(ef!8W4 ֹTH3+kj )JߏGӿƂήRM {l<"&{E,:Ľ]YC Zȳ O 1Or~OBpezumu+?紋әը(QY`ӂ:wYH}WÛA5g+C>;Ÿw 1G#a\:{JQ Պ9gcV^&"**4:=B=|{Q߯٩N_j:XL;{E'o>xFCiW웺Ku玐*hVg!o};P2l;%GM:!ީpv./SUAÿ4F*:!Öj!/ɔ_|2I!NX#|%r|R-\&3. SQjvm$: H L=x>9#eV1ڎi=Zc'a0UˡeF[cU-L$[1w / J$Շ0[$d$-Ex5]0<:ϧX/N"?1z-VMwΌ Y ~A =E˙Ts*oև}I51Gۦ`9JnI']gӏ&e!B0DU~7}zIˌ>fZc*"oEJB.l ^| rDVNB :Uϔ}4fi8= yX3[1J3~481;ҿZ{qbS6Y@|Wն'o[-`dk.}a( /S__vrS Gn6+H Rv[xBEql1l>gfi,|mJ]:o-⯼pP0gqtulhQFxs|npwIN?#m64'f(/,9EXfP!r&ѢB7W>*5߰&ܶ ED<pЂ`En2 (7}nrϾr*vix/s';=(hez^e:Xsg٥bNrMUjk8J\x*qe>=vy_+IU,6D̤vMx|.:6[Qe&`N l·2]NA}7sEv& "jq9ن0> .tZA7$~l# XiƫWMvѿhm$չ{Kce)#ׯ;^RU_IjgŝrހrittR zw~Zc .P22I%ehig{O__2]@;QyUo0GQ[!pϾgo뺄sL {PHȔ}Mhk̒ҠGcn=9V6G@`w+/?ii@BArm |WI 1E1|&8d$:n]jE&_bOS,D.al`}@=g|oϨwhPԹm?WIyɀsMw"t5E%/} c[*_=_Q6P{Om":#]A o^Q^:k~ˀAƚC ̈[=hEo@D6=a2_̓l:zͷioo&?Jm!dY D8M)1^ᵰ9n\7"|γ5~N(9n:R~ZO.L4h[[X<!1 U< @磽iPAs+l:{bȜli06>7'thJ?-^_7A0UM{Ю:b8,D8E:d:e6 Svf٠r9!.ʯIӜSeĻdv ]x=zmg3Éc\1D9eO奀`۞4DLYF=a2T_h/p<#|?JtBjHQઍιPvoA}r;!_* 0Q՚ !QkiLBPO5] 7l}GDΙk~^XɝѐQ~TɐџAUB~P~<IφukOO|\t"QjN~GmQVe294@{w -.[V;`x A&jh8_uolE6>G>0!I`:퓴7StCEӠvC蚁( 'gDj<NgaG3]' 1otRDGa&gʠVz{TNLx{aIFPH2ЯY\}v5sE 0,^f`n1TP 2¹QEM!zq7_S8?B=ԥX(: , *aY+4]!5L> H$֘àeL+ hѬ&5?G"d,(]bwx(*;?\ :&dzn`=VX)mh"l_N˫ u*~)MmuO-!~1*0|owrFU+'9Es+[OR*,+eQ[Y`O>)W$Bðn]9B,bӝ&Zr-,~ԭ}ȭ3]QW`f/ؼi|¯zȿ//!!vWA_+JE?K~+VQ:.i%cs;|cHKei墳m%me&kܨ2t޾Of z pIpaΰ,.nivtfW6*=.0KHэ4MLh5 y#'WTv͎~pP﷜(eobS >C*oy/,JTS2#Wt9z)Gͧ [ƽWĕ=Qy& ?BΞ]'൯5g|o&&H/@w![]qRVa-#!+IJ+M_p ObQfA6 R`ug_+[ᖘdPP2|0;'I5G7 T3[[J!r6%]MkzcAˣ;g& 05TmXɁD%osUvˆ:?dJȦPT^x[d{8tsL,<#'"0!(?8{-acZ Px"2g8 OJd]NoL_c?00p춘WWĿ}Jm醆s{OZ$ÍEJˈ]%R?g-݁5q{ ]̫.wǏX,%`Hxa0ECf?qS6o( "fH{5Ukae]^ kA:qDef`\;a/R:fFgG@F2X/U.%)FHEr肶.T}4a98<ѥ.Ō2ߚ$ھ|OM^})WTOLAQ4̵/Q,8n#_PPO2t^VIH8їt{>vm;`~ESr4Fkzy$e WrЀk(E`ςPW>msDR Cb:`T-Ѷ 3ұk֗=Y$@O׿IB"R,UTFŜXD%*Rk $ ;l:~`PzmrE}~NrN|TkiK, 8vDj!&I}; 1FTd:X֑CW9P{cH}72>orUKz`V`!E-N̵7F N'HE,l:.0ZyS{SeN&U_ϾER,&QF%X[H5=>l!qif:Y0Di RãAR ]K&xwHʿ}9Y1*c}a e(U+z%bN4Xka0#@h{Q,{e[WEFeU[Nd CT8̗z S-Dž{:ӝd(HjA[}H '7`RTƯ=N ZN3j< z~u:UoBqXU|3Y~*pМw.HmKF;\,%yL(YJ+}^Ľ\FPr:+zVZή)st e~0)O2u|=GX/ ycs-G;@J}6v勹 Z4@s}oGLN幂eEmrkM4a'"s).5AUw*q= *bJ3$U!W#ԔdiGwxIab Y"\ Uu ?>g28l>a*1tw(@cyU'Yͪ~0ܧofyHJl{ ow L?޾ {nJEh[;pij9_xкbs.~kg*zfH99<@r'áRM+= 4~hҐ'*5~ ۫]&Ð2v2 Lwnes$dTۦI'vRt2bT>zpFKCydWƎ]er[ɋw|<=;13dM ˟&- X(5NLFT'"emRS XRJ6R#q#Y.7#"6(SxVz];%k.]5]ˇSV_Q^nJP6!c3WkcC)(2+6qcK'{t[ޮS#&S.?/Lѣ*e ~S]la޿dtڍ+0d>>qѻ.Dj8QAdw xWeah@^v ]~ RJEd{j%*N[q=:ؘȒ.BS oZ{f 3Z%[,]v%chxk>|\ͩquI}'yjɗ&ԣ"cM6txRe]GջLhaiIgvC P'fЀPo>|ylSMb]s(F[`7{mv/Z0He{NV7 UycƙP$ë^:'`@/":CWjU Yj|W%rH&qQ0>#OE*[ԍۀᓷ-f_5fsb`CS/g6Tm)#߅0e(ase\  ^3VZ*E3Dĵrptek^ft;e=AhA$G0#zr|tJ&JDx \] 8{OR̄KFҊ|{3zՏTk҇WEa0dXb;Z.01Kr^H yh7*` }!H0Vᕽ5S7[!DJ𐂠Ib{Yj4ZV&|/_%,4 fƈK5Z h"/~5 s\Bܼ9|ކr%JvW9C C/|%w_xPFERBUH;5\a$}J5OG]em>j&&*1mB!PKv6QIE:vAxˮ w:ٹ(/"ʪE=.I=$hM~ԟB9'9iGЖ]B<P^Q2EB9Wvi34Z{gD| <Lw/}khn~3Ȇ,v2q@ x2W|3b SF7$4,vaV~rl4?pWb; !zBjxb_޲]p9(nz4j]պa`+iG}^Hv"3*l~gy˿KQx}87NGil,ߘ@_$]Yem;B';/B1-|6[_sw'uy;3!9Nqwez(h?Dg)=R]zDJ~Wi56bld 3C 7ɟ :\fGsp":.!%]nQtĠq|CX̭*EKĜ9D7w{y%[Dc[` >a3{M5t~J;n;i$~/clu |.KB"G2>jUW\X'JL@a w6wM&W3rʷd*O#lؾnH|קrZ8{8BZfz..t$Gوxk&[]}"x\fPAI/NfP{> 6P9gIaH%Ϝ#lQNSXlsBRQUTMJ~~cEYߺ^] >{Ei a}󱼸Pc42-̡|'GV'u-^E&G֍ՠ7qX3l `_+zRY-lpc ,_% [zGy˅.7墛6:swymEwL铿dU$N/ġ CUpat-}7԰V51N67nu.ꎏڵӪev9ht݌;?,6MҾ6SJ S..6O/Π6s%}~D+e\}=U`_jzfUN)R{qW")EV|Om8՞~HoBg%e!gs r}cOWsn+mU4hk*:x~u8~[.o~5A8XdIIIJtJ.ٮ WfWVc=tR/z[ j!WXv5G mMo<ޔ :?7_H󤞫\[_j~ ۤ<:*'hH b[UD]}SuԖ׵n}'/>EJ[vuZw,^P'n3:[?5ヹ?0JX_7F/66 N,#f9&ݱg¢s 99#Vm {W;pJGIĦ&UWv"$HTiN"AU4;*,)ZΉ 5/OzthՎG׵uukQ't+s)F"Cݻq{a3pzY׉)? D'i>91aq=2[}@{I䧘ى-iS *+]?/ ^M\sJޖBgx77l_$v Z)nTLb~d}7 (P'o&A|KB:nU f /qboT bYEҏMj3Vn(C[RzMn^Tw۽ůbqXrLh\MSgWo?ގ9 7 oَ`9!0%+P~=,aWF?LXPE?5_%79$^rG#-f;H*,>cdR\a?EбhN>zy5g6oxNe؀^*%2:H"2 ˠYK>@ggYzA?ۚ<6!ܐ='rbNDO%z׆)$X|{]t {޹k%_^ǽAxN))83.]b ]oI7}}Vlo9zh Xdetw/8Ǜn9NvwhMpӗv%Cw9B>(u|?HI/lTVћE,? n!_vJ$<Zʅ(6oB(NW?EifY%lu 62HjA$_!q0bȺC)v #+:Ϡ+q+ý]V0Co!!2T. T.5) 탍Shǿ~7BޅnXcYmG;FaFqQX<ܰ̆I@pA;?/ #=!=9A-wlw ;XUgps7$&2&5)ծ;`׷p^WpK`WOu:6_?Vܿ<Y =͙Wڣ|xjv9WݨO˖d#1OXቦaeŧ+3Oݞ\3ѹw;φNfWwXEg .Hz)f텿K?FϕjiYW0Zm\sΕ1)y~{gMiqͅ`b*FB]'6:O2D֬l {NYH5Pt/l8Fb}.,Kmu6›́[uVcZXc!2&{$8|_}m#}Ly8 6ve|s:?X7zU )C#pܷߧîK(0r);]VYerQ~XIK\qq&%Т^kq׬)t:g o繝M4hN]^6+:]>ZőiK}INKc3/9H)Tg A,#aViMԆtlB6/Eg  *E~Ͽ)-]G\|GShe L@Jeh;.i &jR@~dЃn-zxa `,P438F g" ͦŪDW> rF>7$|]klo`!o6 ;&f5 f˟R!7&\3m>93e5mNFٔ&8+{=2 b]>ެ8Z`bJd9-jgj6k7=I#E "J 64gp8hk_4A>坪soDϓ]D`z'yx}׻"V3V]Cw7C`|d'kƌMNNm!Ưq S`tx.0H(OϊnuC!: 9.FGxyЛG eA`ͮE*KQ>11=-A| |'c܎\߂TCwF/姅Kȋ"bK1b|aJk񄋊OЖD: q|w+Hޟk Kg|[ /T\Dpcxr]N3!z pKpk"tF5ܰƅ؆OH':`Ǟ'ዴr"|ߑ^\ccCW]2Xߔ{iPޫUC[G?ݔhߋV|ȃ>uso 0Ϊa_ _ &㊢ O%йZ-ڂnT&g!,e;4&~} QPept} TJǸ99PˠxJg\b״]DR)zv$ sXZ$ۂ %HĉB?s*H]tDJUF#X|(P ._KK?Awe 1O4%Θ"~PG WӔ2:go A-y5l[]/]phw~_);U]yo؟[~j hѠ9q]ܫg~]Svv9$._6v~7ky6rJ;siuh(:2J{W]%s \s#b}lE7]Z/K GxwޛMhbZ`/ c Oݷ!ڱiE#Z;e*FO n@tq7ɺtD:4EQZ`'ԢVeKN|4{3T\ bgUkvہcOog3^LY%ŷxoQ_,gݛi5;HK*-CfB^ | ws䕺Rr uUr9v-+0dr'!9|x00xet$9q?Yfwz0XjR؝W icYjBr@!=Ѯ `kûCxa-A 鎚:j`.$N/^B#HIU0cSJfY}]^6woybѱǎ}& }istՓ{tOہI~|= |#ix:珱'}xMQ pAC%\s xe5{(ZɏNA{% ҧFc*b~HmTѽYK]r;[Caq ؗUn_.!)w%= `0OYJ,_<>H,Q{qmAGB/?gm>և66fVTo8OW9G_~t!'~]8gVvuCЀK]NqM6RNm({'=@R /Ry'fCS#١m$c)~Y~M4,VN 6;,#goP1Xh>MΒܕEfeٰpŝ!Ӎj7'\֋$;>[@\\^t*99xFg9uZ^YdT#Ie UB‹6S3ySz3:. XΖ숃q|9Լ4;|y{<-qV{nw=0h)cBV߽t๮wkY8գ]*ko1f/"tVD8aݔ!R%%ipB>h<dXZkd˧=aV߭` }ÿd\%8Ⱦ=1;GBaYs:^7lp ‰N%|KJEҐZI}*|y_TbkXm@y3D1}>fHx5;PœaHUh '}?[n҄UGmpofX{5_R<}zjTʿ Co ;U>v'OL>!0(ɚڕ;vRe|=C!gJ)Ӂ\u_D_곬,~BW /FA .&&m@GIπ_`z>KbO2Avps_zk\@h0YB2`$Ze8Vߝo{kse`㽘ƁX8\TvgTYu+UXo5vŲeˎcHuT?A) ) 0#so-=C_W= vfIya ?vh,'FMq+d}w $!6SUVo:5KQG[YnPn)WB/(H5`] ;f}DUx$cЬ|U\wJ<04g^2 OP }q N  ~#auXԂ'΅  |,׃(?F4n3z9(bǢ=0k 7$l0ܫ+ {yWe:Ti/C|s7 x?˒TJ@svP9F$F}˚&фEĝ!cN>dﺓq"KDЍOb\ 6>Zr?z5?Pc:B0kw`tߺ7 7"|( ;E`m/SU]gN14|V&HerGO"Gu>-&u2Uڀ%=* ]0zS-% d!! ea53+X`Gu;XJ D?anӄѺ+- x&iNG"q=|x߀J (Jĸb0s\;#_b|헌I#gA5&F15\/$+8L+ b?[+hj}wO%{:⍹T |[Gq gS캗~k`*0qc^\)k"Aӯ\傽uLv.;v_F`GZo:wd\ȆYAq,B׷%P!@EACbDzda!'q=YE?Rebg-(iltOxdBd_}Lܫybvwj'{=hcK٥sxS%}G}^57͟>;؇u|? U\`.C_n_>e:`T&d8[.W #~2;qG_%~1ЅϟhpۖScHhJA-`F?I;[)ۛ)_yA AW7bܴ ğwFY;l=)[ !^Ne7n`⑌wb]W\ԛzhF~d, @=2 KUO+mqrz dwDWnhEuF<->sտ 9Y6T*G|ou2M!vl+n\y%js~XUO;,^Jzbkoލ\IYỳm2t$n㌉ٓ̄mr4}~o(Mk[,ƴN(sWq!( O=.i֋=.Y_H TcoF REiL35bG{*\ H;"v-YVލOa=y$Zggu$/C+EN{Q]kte/V^7rZY /`o:J~O!-Lpsd sOOF%H|c{m;*ܵ" 8:Pѹz[rJwWJ](kK{__=N?c  N>sw b6[9)1:pk!e7vL yh6be򒲿K D4-G@PĘ > 'wᰴt? cM)1+Yp fzc+#A (Ż0p9 ܀Tzl}dS =~HD>hړ1 );\e*ohn8+0aSf ȵ)%U&w߽GfLp,gKʰ_s a _ nd>ť>:;0xw׋>83ݶԣ!}E;HK'ACH--%nA~s5oP%ɚJ׫hӺ[ 9  LhNXF,cPo|Qz7>iq1HZ T1'uqvyA:XKM;54oNsC$ߗ+ѩ|VSVghvM!l0)*}5oH)'^9K>po|)O E'Mܒ63WFvsily1$CT$ YB0Sg?`ܠ&p^_$fѩI-XFC|P痷v5!ę~3)Ĭ&Kb 2#ξ{4z)3\ WD¯,V Ti7(]6yvcIK8jn"$Z?rBRkz7?U¡I Ji C'k & ZtIW=/"7A'"UPzOlw u e{[ 7;ʤ?dK|v6.-)jY@!BK)ZI:AXE%@a0ڐK^f6 m ;Vy>s-9Zc/ 7x$P|=8.Lإsg~6 X}1Awe$-Cit]AR8gwpZnhz^QÜ>a]Jh@oeޣǠ9K~.Ԝ=ycܰ0'RYc#Kx" &+I~ }(ߘ`l~wN:D[\E@UE̶U`雀Llzsc@[3wExybi%r0_vq?|Զ[5?\JsxCp;m$rT 4`dXL~G獳( 8>SL4Rњ РfqJtR"z v8.!~>51m(9l9 $XwAgʮMpAݳϼ+gVAI+S|\g1$D^2N=(xͿulvS>'Olğ6!U mŴb۰% ؟vXvѥ&f9 [}~|zEǪŋ-VW~r D WmPZOZr؁Ga+(nqګ\w-GND(2˘#S#~7DЧ9%,&I2_ǮI]^ߏcqv.bBB7 &?HEonmE}k\~[ELO'q r6nd疉. ؔ+I߃\vF os0J ]gE:2 tU=YWi&@vƯ{ЪLG-c$=),;ooMʜ)-}^Lހ5!2x幥jni nlRK`uJ,#Ѿy"|zэ TfՋM4BR֏[Ps4 3h]]HE(>Tt߼p Ʃ(NOz {P@| _La4<~P4vR ҳSr)ef}*g}^1K=󾣖rBc͸UpeV_Չtnӓ㯽|"VOOi-|y+Lcidӛ́2Fgl{oCs9S’؇ ۏL$@`CaSij) c Z_ }e=#跪rc9l~z['w_NjmwX? VNC]Hn &6!;'mCԋQ'|r[vG-l58E[׹hp܌n%<ك=m(z)WNsZM'_$'f,@}쾌@gjd KOϧz{?ر `0OQ l6+ G7)F-JۿvO" {jR+돱?;]Ԯ'UB!`I KK $U93,O<,GWb /r|jVeeUف"B6tnajC/Pvn*X3.aHOc*zsݴI{-詳~~mO gYvaTl 7 \U8[a1k+;F? -vԚfEo/:5õZ:4W]5#깺^CR}n8<“k^MWdVK ҋrraQ~#E*x?NC4a_~*5~&Q-}S;Cz{(2?(։i0;lƈs?e`;  RP4nJc?UA& _HN m!6SwRx2x":RolqfԙW8X譋F[oi; Wovr*5:Dl{DVWu(1K=^T"߾i&xG VҤcȏce}oz)AknNbч{ ,ތ6xT'KXCzC5=ٗ9ЂF&> o,HOoz#YjU8*`&]bť@Kube vo=wQo]I5@z)e}IMq֗ 5M72PMk|gؕ;_X9QgOw*3S2<խ!pNhvHu#ܜ'vgeV=ic^H9$ө#g(tu5O_`2]Cc!?gP`.*(g,d峛JoG5GMTI+-*Dfx-/fv]}U ^cp7]΅m]8QzzRFkLhQ{X O&z_ZOMMiOh^p.L= ?L%.)}*n`'j}}lT[҉W+`-KKCO+>f: ]_%Z:vY+!R*|%H Pd0؍m'aU>;L?2x 3K 9dnD;w-r3J#b1<[/52_{,;:?c|IXuTqAxR;^V(wR-kV?ɋ?M0cK{8JKXa !,y8P8=pNl*h^ܠ `=7JbO$Ъ=%l1Qy77foFĉ-6W v[/46m/bOa]D. UUH'5ZP}]xZF݃E;ם8=}-Z鷯QeÖ:_ht>)Z+bj-XGZ{cIg+^ǔD5`A4G\{!]]1LZ| o8 P`*x,g|˾&u|ۜ>*mn뷍bhqK\wï;OUIΒQ+Sޜ4ig^[wR59%(> 040݁z?'ocBA/⾑K~ 69>ښO/.RFȹl^t0~頖ɣNO~RB|ڱJCDN - @Ku%rH6JF"eD"A]M\J>WCjtqPw\4o<鋪+4F|}NQFX,Z JW^oFZ34وM@U۟(,D7 "z},Z{u+#y, [;ls:dae"zѓ;Q;GUnlu~2">_z-iW;ﶖgz MÍS{hQytRK&*@;v4*Mz8H%1&!Rw>G [H/vsyupLz_v$IC.LCz?9Mz>/dI_oy+Яo>nk]BBlr'Ȓ0c4觖)ph3:J3 n-!"U[,]>OT'dDnN~ƂTmԅwX  \1^jC+EXw} eq: zؿJjǦ&9tOĉ%>-_1t'}٪4h]<(ki|YPeQhg 7 G~c~ 0ݓ~wC! K8uYUc9.LAJQ!kؔ!FF,LEl%tKM,$V+ r&gW)[ȮCQ͢tt 6k3mJ1i}kO:2A}ewI{'tT H  &=f[Wv#6L Z u伷~I1_>->S. FPDHﱉ ҀL,J+'V0W+~3^&G5әdP^ibpB[ =pJ2ƦBtY8|R/c$ߋ gPNkR΃E fX%W X]wH"*({Sg9 1Pn%sCViho"0Nߤo5O>AqHR(Oy~P9mR-G\jB7SЧ)ygR*TEB1>%rSc~s='!Ɍ,6"w~ѐ8Q )Yߕ^UnoP #kh0C{b ='~=oB:0*ߘb]-tt{ͼͮpxXt1HlI?܅ljBrZa~Ҙ_iv9(ѴiBIuaD},@$RSBAE+J "CǮ<]}UioBoLOa*~%%{guz;3:+bt<׸e'* t8? | TdCk ܉poBr=ϥ|mnKK[)fVƇiSJc(\[dEOv:@=-p X|_xjoy |N;GSL `wG[FnvY/oA1uBHDN&_tbeQ۷F̧6JԈM#+Y&dZW;COy`Pnm1 K1邀tyNw^.#~` *C[! U#e(WTEyY ޻QK_ "ir|=T Ii7$ h;5$:F@H::>h(B2 $'Tn- QN <٪Z}i2ۈi.@CaXoq?&/3r#aJ{32'WQ)_`|߯ x;0FȯLy?f }akే#f^}t OZCg A]r\riž*X=F rmܤDkJƀ1|M}w.ӾD׭؊I[ee$0  h_U ,5MyYE1+/^(bOǗoe6'ـ}u\2#=c,qcqT}e@9"ᆳ`Zn9qREh=CCb R^#7AJJ$1 XPZK/rD% tGō{Uj•ü-W)fؾd/Ýέc5wi\,a586Q6[pHËHHG_J#Ov g'Ŀo-v&`V`_tvOA>DGE\<0 `jQ* d.<<A IpPF .p{eIj穸g2㧷r)R~#> ۮx]0c%oz[zKګ:"u/Nf>Pү|RArG)h0]- 噋5#'l{f68?^H؁91-%;XH!Ń91INV(k7n_^ 0M^$_WX8՛lo,hRC[Ƙ~;W=9nA."c0HvDpn݅s6=M 8ŀD7?`z~"!C$=~ZF_qpxwDZVߛ<> ?|0+(oUs]Fx sX Ǩh3AsN+/^m40G? &]>7Rt P_H]-AvH'}cѺ׿ L{ޅlR4Y}S?=WT9r6P{M[2\~7ΝD!/ҋ 53/5!+<{Q|%RvK+`m?)nB(VZ$ۧ (r ɢ ȓo%Θ?!| z5IʏIRXkXDb@Ҡd8&y}#&[ h% r:˗ qn3 b}D7#vB/"~oQ* _dFrx!榺aZjcv>+Ug]9gOb=U+: - d$}>#ي =85mAՏ;l=&{Ŝ@7ʹ.>mv YoXiלDxGڔ==~K77`>n:9`xCw^̷i8|=N:F('ij}qԪwi)6֛2c*/}N"ߊy6|kɔ&Ȑ,:֊kDE^QWzÿtD*TOkZfFo3dbvk!}c.]ԕm-^ m;[#$؊B29<%F&@+LO;M5u;Wݣ߃n6wqab<6˵9W]}q |Ο>(a.7vĺB﩯ǻ\ >$z@a~hO J֕Ye\%lhsK!V @q  N X{o-N(ˣAm?sL_ܥ#ߋc86OfoΒ' ۵wuFka\%a 9OEw)NM,~zxß➦Q`?ƾ~"c8{&::}f$ !Ou"UCE.l˱c@3s:3ޅ`]g;!im/${5>Ő]C1-D^E <[x6O&Џ)>ڧpv,eEa;zR?KD;C%wڿsV&kyO ?>\}RMb8X&@L;Yl&Oe.B,&sEở VΏǐd\5Fw&ͤ|uH!5R>WJ5jk4w H[Iib1!Ƥ/BJ Ǭ5]Ȇe\'l4Ъ|lX)CK7"O;_gc QɰF_}\0n% 4_^L9*.b]ރ#QS]#z szǾ#m\⃇rc9b_qF_q%ďJ˕O7 혀euO\:n/6=yρ͊lz:ٿ%^ )拙>M׈U뎂.qDvDɲy@ZQ_`&@12s!s~M<&B}"+ f!*L*7EJܡ|SQNV~vC뽿2y/~ha>D1SXĜۥMD@X)~7 (Ŭ[ zG- 7j]`٩z8zc~@j@85Èp)CͱodK/Aϱ.O~t, F suu9!أ@#J$BRt͞ 8n5Z{^t9o5aI3~Ym~~h\H-"meI#V qnq@ G}b !=bKi"87Ydui@nvsB W%1鋱~:bU;p xx L*dʷۿ.*8T,{澵gRwl$?H/jŎuLllO{XԴn_H[f{3;6ղn5mӤ25nje7rMG0A(2H*w J9gS>vP> Z#lgAۋ!nʉo˦u.uM`q['GDYXp) '2jƂ O5abH~#B+'|~6G%QdD6}v#Ń?OXT78'F?Xl0v$lsJi6I+>.zw>(y2jh*ckihǞ|~\nk?kU69H9"E?k6P9xp ^ChVn'Σ?`pժi7X 60^?E4oȖ K 4V ^ŧ&oEhk'+7dޣH!?STBn>|w@$()zK?|3ISq;w_BA-V }S(Yw/}t"tL];3<#'>@W5" Ԇ)>{Ac|j &鯫8ż»,aZON@܌Pys6z|6)֛Ƌ c)]#l:qW#S0J)ճpC1'  J-~T-X kGd|D(iUҮw|2] ĝ21C]1¦\HZXƷwU'>:F÷EU%ʳ`6Ew17;Y5VfdcՂ Kj*&!ƹӸ0įZ0"lC+]N#6*^,|1`DwL%6`oMr&n+8'{f'b>Yvn}00첃o[o?5H74kUlTek>\1{XJ/$̞ĩ!/n@>~yL?ι>DuoS_7 nǥX_W:F|Ïf8c@uvߋgW( @ 6įiP;}|KphNuln$FEqwCE:s9Q*+.QxVl~F}J70bx} 0Y;׷xY}~=4wNqM*X3 ? t-?*Y9[=FL/p1q~x2Mc$aW<<4(1&?-&-=^dmu%I<:E]b2U l-]A~ww$}s:ļZ6cCRk4 k3,nXi>&RϵrRM%oQ9VvK:`lSH}i CF}.^@x,dX'dQInôSʲ$ȃoqj*R&\$i>&2v{mѻoRLh Q;kpxݴ6&ff?>_sS={,O ~^V h=?f-.*W%Peg*s}=4Km c=w Л ޞhGZA~;LNZW9.a|u3ap< ]eâ(K_~(0>1Ȋ閾^u/긱 0L{6 DŽг[- =LFqXӀ߹ưr @K]=l;G/BE >q>-rWف≸7zDu?_@-|v㾻"wr0XDt6 ;֋7Xp}w1ᛢtsB {,.6 .+[s'3E5+,+@EN틺z2 wDjdM:~8!p~Oݻ>9e0,#x8 @CW|j>^Y.uzW5@[%|+Xٹ_{8~l{5ܧFLo_KV)%FVH#,7_85,< 87pF (7v]>&)A>~\koФ=Ʒ28{4}*\d{W @6عm+7 VN'u#p|꩕W֪~g8x6wˉ===nEh`@r33~YDH}Q̰Cϣ@úVson[N^]%|4@vlۢL/*Xsrd [)dL77R3m)w ˥Wߌt9ftpG=g#:buăJTQF0ǵw3߰l5 Yd|a,S]L~zc0\MnQ)4%,v= $>J4.(Á~KS3Xn~^y~dTDLsDvϜcCƭU!#WɊQ?3NzHe'v(4GYiާmiS~ýJ$^}9c="JwD]p+aN*w,u39IvcȬUCڔVL&i,f6Kv`L~_*-ziIɩn|amM[ y8R>J&y^޹ y{Ҡ0,2RT8޻F`N뱒 .'=+5]۱~2OmFP `#S6z^Y-=51a^T=E$Ʊcq{AVu̟Ω@y}-p"ː>@S^(_p $$pBz Ef8&2<$q*2N>#$eꢼ[l]Q7} J{;TSMؕw/W.1adzKbPnjMzˆi BRm٩kkG9Q8ꏢ>Ez&iC[t=c=S6bm&|uwuhGJ}txLg\ zQO–{jC҂ۅ1pn[|-+ԕ{#o/--5ɡErYF&t㓮ͭ6qGݙ^WST[+ܑ[ *JŹC!D(g0w2{d|){&튣kmȲ %Ñq +TAxpvk܊hع'am8j`Su!~Sʵ܃p/'Em-rV1KX@;׀#9'c{wpQo~^H5"[{OϴH42"=˲^;O8COiT_VMY+^? H3=#41Uu_{[YQa~C {JQZmkNӳ]3 5wrׂjŲakvMaGDGs\7;zw?x{'g|מn3eO7dis1UOhl\[Bv,̓)O(T ”C/z^{ZfS7ܿ;xcsԝ<Y~&+*hGڜj;/m@͊`9X>Fua8Ye1WgEDZ kN*4E`+V&'#d޳%2HjZw-JɞE B&L|mZ|6߲D 0@d1vVѿn%-odѰ;pC ditq&f񓥰e}/C2sqvdOa8:L\{EFƀ5SUXЄJprf E(: ~-(5 [r:OIJ]P SK9D/4i jx/eh;(!%"ŔRjy3a[LA8l;toNMw Zi̤uGM7'!Y[t uJQ_2MuRGߏL+MIJ) {(SZkGtUh"WQ!=|(kiJXR-=.TW[-ހh7QFy.oU/oU}:sɏ iP8 %8ďyH~Σ%:JUЙ^Q<#HXqxܕd7C)#->P$DL&ڊG[bJ_ގ1G`>YO&m>`Rی)m h{my`zuAj `)v8U b/K)SHmft<^K ? ``?؝SAYoHIS27R]V{&W\jM9„C0Q+/j.Y;At'.\ T(HO1Xˍ g 5#eD~udbrÌ${iVLH'ug6#+ kI f~*{:0/dwe;hx riHH6;> TAyO2(apWK#"#^}d&QP2=rJKk<}}P2;dy}r+;۽ұH) '[9ᠭ@ Dz,#h:s:Ej;CY@3Ptks@A1&~MNS~K/w}k0䜽Og#gt>f_ z_{TtW1 Nش/uyȑePJUw I> J]7,Jbtu T'K]%'| Gi 1^kH>r}0~q R%NZQf0Al?('PqbS|T֠5h }q`=Q3](P+N.Ӈ'ؚ\*$o+Œn9vcQ2]UhސCEp>cx"mgCx3eEwa}nC/9zb4 45@ qK_~6d֥bFDnWP@¯~:6Iw$heXKȃpC$*?]F~)Sop|vdzMF/r>ߪv6LPU{@wc1m6 ?~*ߋXEtDqf @rsuTRu,:hX#Y@GDh='H3H2UbSרxu{̵ZR /fDtsy9P5~"顎)9ޢg(E lA% 63o z ,d2UI՜w0ž5:12?,X։?ɫ>6ZXcFJ.2ƝD=KV<~T1_Wۏkj_}M[}^lrU~>xm z4R(Z5i[Q+Wܯ83~BԱC`FA7;Fu E* #'TPO,V@ߩ>_8}H0O+EY5;ǨpG q쫝{iWA}b[âD9".r #G7I^"X71<al7VBDm}ꟗ9OœᏭu{Zj߫U\7y"3MknZEvQbn {Crq~%L ny-=TVC")V7-wXh<# 62 љĪYx+S!VE֊lQ} fo7 9Q ,d5bL8IH|T`_lm* FKJIm<@DDHSH罄.!}Wx˳ȭD%ve:')̽o Ik̊[N]Fv$ 3:Z(1޺]ttqfWDgsC@Fۜ뵎"sts]9xŲ:6OL_+ՀE¾CR=9 >\5RŴuN (=FG,'3bG^볚Q< G"nPpĨQ!|c/x?œ :뚎ٿw^KMPe Szu`ELsTbpt+9Y+Z=~Jj47yF݃}TĢ5D7i_=33![WK vBʗ:X۞L8~mjZKG! ZV_8obYHK `䡶*q k.9cFH7`%Z4Cϛ)J;faT5üa2DHx hXZjyn/ߌ3 (HNhIb~/x^7ty>1sx )|1,1-νO4RUטV4bXo3$+3dešW:VDZ{6QF嵬Id'Z)8r1(-fۃEDvlfʾK}tͮͯmX>FS֊X &[GUkX`Deege+"fbli/ntZMp-/V{obP\_xKw늧pM6uel}цBJwh*P" i3Vi10`a|Iaj8e5*1,ߑl⬱*iՕJlY@;Ǫ@ն O,Sh_m6Zp4Nf(&-o}ݥtW!Ju q]dE2/V ^]M{p2Y *9^$=+'c56h݂ZxGq1PR!7!ҪHmS 7omM.û5.. QmcqJ y1n3Mُab+Y_bJt 0t=zNd ѯC5F=CLx[bȷJu=$]':?+XDP VgZMj=.jAJgN2)T*Yzz+77n?_(f;zM*\_L񘣾Sc4k.] bNr${ y>"/UW(iDT q]m"Y HvЉ?Ʃ`<5/.3)s?d8pidb>4_xF~^|7XwIAIKL%VPrЭ NTGHW~=Y3vaqN*"e+V$-LK=mJ !R!j՝<X, =5p^󂗐3`r.sp5-rt-Wȍ{z9b~ hxxbagȽ c^=XBٛ67đPI> wwW~bd4. zDmdeUj|7(Ӎ"C㞤1:r.4ow ,Sa[Hq[ ľAĨz|'} ,Cm޼kN%q|`-[{,"gZ&>0 `n{F%<X^CL6K;Ԍ:rJHM< Ư5E bBQ; R}R0'TYrD|lM>)1A DBnINǾm5tij-qqJ蟹xlu*s2+(Xeo^ks_`Zb%4^Nv:HLw"{-V$%ZR)]qźkg$nh+܏Oo. %Ћ&K't w ޵U7RD|};_Ak 1>9`|7T*}2=~VLEI#y*B /Bȇư;g,LfR"\šqwdnQ\X|tD2XI?;'y:SA3[qUC7_Ƶ?zQD4|cofSЌ~}iJ?|a@!Ξ=-Y~}daٸ CI O;"+/ +睈~zV3<^lQr`ұ_~凊QaT< -IC끪9۰ŇA"skvv#iw9b}UbOG(t?ɰdM"*&@v}׊5 SEha6RFAfHFeS;D>|0j^xք wRΊq\h!Ij'\sF_[oTsc[ST)}]rowm#Sz  "Y7Fa-oWl}?>CV_r *UݼR.U@nE20yKXaNO)_g.0X'קxms2e)2pJ$Z_z7Z~j^ۗe.'6#`{Y+-UŵAW mTV"뽯O؂z{DGCs3)Vuz˿h~–m4[_f֎ZȽ/W~>]:'B&ru ,q;ݲ+qW-b I}i1],w/Ec] 5iQUt" -+qiD'VCcg\+crS: J RX5w䷅hklX\gwݭj=JUլ|E g< `B?P#j8Yto$2u%,n@q_'NfZ/1*HUfĒSi9U1S؋V'(Ge;0Y(~,Y6؆ CCYbܸ}6MtD72hNZa!xr@ E?YZzB4ǭO(R~n},FJ~Q8kn ۙauPऽ:vkQ ˭F3$H_P)ZSkJU?S' ŮN~U Dny"_ՙ}Ȼh PYN\wBqbrR3 )hvY<1,@D6EK9E=M9MCZwkVbIy~YQ '1CrakԜ$.䑞n7F{M}`Mƾ?G#D7E%껂CJ,zıD3 ky($"@6zG+,[87Ǿ1NLgEBU+e5lE41w7ڝCᗣ$F/bpQ2UNOɡ?~1\(cŦYi/,6I0=.񽍑Bz(/K=1[?Qeuy1`#q>hz48\a=l]adD4:zO,}[[:2f-=NaqIx}yK'X6v\DDi_8ZVj"#ETuuQmZ{vҚk +Ԭiq>&!WCU״3t9pC8^:k\$c=_y6NYM7y}֧hbG[q <݃d+)wG'u?T}VP-f-EhFC[ftxtX~qTt9 $VՁ26Yxd"Z6VǺRZt䁗+C>h "e!lǟDO@hr~/1MDԱgaJzi;eDMRplr .F7z Km>5[{pd-xզ%Xr")E OqڸP?&VxMրo舣|r҈=Gљœp8l1 з+Ո`t:/t QGgȢ{SJWm|TG Qt]Q{ n^GQH] T`A,+y @XF6&^V3]rץL*޼;X4B,^h:_G^) ϸPL--2x!ݿOSr]|[#p ߅{ZI%WHkh}vzQ>O16 0L&†VREW5o-#6{"cm<,$)SVYcM#D S@Ӡ+DʥK[^BRMʺ33#KkrL2xw)]ڌjSaƛN+D*3hQ,Y+:I+,ͤ!rҀS&5DxD`یJ}r{=n8XY ixEad9xWAʨ4ȪӋ (^qPUZ=T}}´RC)a,-1Ol}Br$*E݌KQΦ p?NTTef^ V55@sA>.$RIB5b eĠugMfP9Ԉћ+d1CZP\C>gGs~^+?~zdy*MW_-h.4d og@4PȲ{{dN>fܓs1u6jA cj+:AU@R1Bd&/33:xi(9:hnHqP.ßQ{3noR5ˎڥ?d|#f~2<=52b8MXڱ"V4` fHfkI,ؗ b9hﱐ|Z!2B`0!w`1vd騳>"HR mDgzG&U5% P$ Bj u 1Y JE) 47X |*7& @dƣi~;}{61F#kkڼ/v7- *x@G OѧCȜ.Cg.embP(MtYM=Ai/TcQEE.@&&p@&;I\+\!ă=o˩ lO5iA*Zʬ['܂{䈇 Ȼw\ŗ}w:[=%b*|7 zT_Svy깫 O[rLo>e417ho]P) KK4g9s [Z';#tV/k%c(b;[ϭe2k(S5RJ#?=-N)p?6#ݦF#!N$܏ CAES4/w ^KJWGkGǷVE=omYn3.}EUa哞UkG(]sB=*Lygϖ)h-Ja:!*4D+)w,Ў< ywORnۋ{崘&(4oOsw VY!^ e3#MV&"O_6vy lԝeO qB_\MQ7 P3iJ%F66k`I¡´]`uLuA<%={0]9[~)(Wjq+3迵y74?2dȡ< ߍ(݉ZҋX^%0Q$#z) EXn˨?ѯ P<Ouēbw|LzLvhJZi+&[`XEGȘŪJpSf23y@f>9>6 c93@LZ"uYaݱٲ$?FiS2Z 3R ANhkQosU$F?2W ͱLGBw\1n>9}o(: Cшq(mQAe%s W~Ӷp6e+YΦ l2;jD%cܲ`LvCfB+]Dg˖oN2"jR8J1}}P{&>b /! Ɲlla]m~_o6{3KPG7zH~T [s%3hqxIʢS!!EYsJ0=uAWOA'GBVy|hsFMR2>2|PFԌIwz<+ܤ7mxiopƀyJ]hhXo"hVg&9:RwП֗H4"*|3VV}'a/,h'} CO zKO駕 je#~[jQ`Դ~_\hҮ?MpdmL FwR%b3h.6Z~B:ouS*.߶%Ͼ⦉2@Bp27"eaE 릡P uBb#R'ɠ.cu;<7P ^vR@L QQ̡),Ok% õw~4K¨_ ARBb9MMJAZDJc22B/u:ǘ32"ly9߁Kh/N!mYt6U0MD51)v8^4sğwqd m 3B02t1FoLbQ~ (de4%&b@A-a2wQÂ?f^436Adte1H uq&EG6rHٛrl(irbC1V!,U)vN i<Qet/줸_7sK)si-%ݎݺhj Jv璄cM( Od"B%]9Wd $ٺq )yӔ|¹dmg%}2:]w%GOiwO;PyI`kq5JGK8r_qr+2iIqkf45NJ9] c0:D Y&ܛhL.i nI'q%M%;w]>B)8!ԇ_u]j; O[Áv%VJ([!(jbLA&_0,EZ,9p~+#B+^vj(WZjc{> ]V>`+$dNsG."'x@PC(;)o"m:``RZ_X"+e߈!_RQIٓP;W;·BxLGuY"=T"llrל +P~P/F*Mܾ<1VL$ 4F\XTno}/ej9`-zXI41O&15ۇ#NHg#MGS:9> ]eAy;w2]5pJC  A8Fl ܊ 04ݑo}KDj҆-F|\E;_e- jy@"dNkL)uq'#8n[/?/d0.GʴX:n#fRK,=p%F;EMb;ZӍf+^9NjޏB#"Lی$,<6IVBp^@b\~ &1/b@&Ob@D53ofnJd<1W+4N5j%tP683ߕPo[!ӧJbbP`7b(1k&(^xvac__>LטGjr:7t'4Q7_~ĶyocH-+-ߢפ #a9C#%йqle\4g{)~i=tp% Nvt6~f4B#zaUq'+ M7#z5`Vz?qh~(sAG<1'6[5:+ 47D7p!ެIh5J%ȓ RBi'H{D7è'*nD-Ir2TSudQVۯ1R3o Fxxx XJ/wŊaha޸ Kx8M|,K# "9]cLA&[H;e^K,fTFO4-V$XPucXG^mqy,ea8# )cU]3\h~~ie巶'X4qJ} v2\=rN{bPad8H3'xaw7fD.ѷtq&^C`wtFJ~Dj^F&lK ‰b\'F^t\ ?jS1@:zG^mJ6mj'KH*AЌq|vc;UvrbuGD(0[;'V4_'.Q*x28V(dP7]O5$ wU~#~V҃{b2ܯD)M< sՀ܏e`ԋ014kd>^jk3O?)Q@}ab{oÎv_Y:SvݯeDqͻK-h;`5$t"t ߹{-1lq%L(h3ri.,+T+{#`gL6zB F8QMojDm9_\ =h N k}&z{a>S^kWɆ/H|;o$aB@?h2:dtA^$ s~iyvD뛷f\w'aͨQ}3_xwn;ǨFwǪrQ.P̈/ IdYj~5z""SP)}`-_F9ש;ĻV)I&&êb>IE}t wwĐ8xO ur]h U\0_|=qMIP!R:Z*Vv,$\@3* h6@cxfĺڸ>N ]_ ``  VcS:i$ɢ#ssX>Rg >)ݡ/YyP^ Q^jerl*ک$Uukjd  H"c;Fn^.]?(2aT{W͔O^݈HY Z5%̵^-c>}Ō'TDJ8G<Ŀ4M#ӁL33U:0A[wt>cҫT83@HA.*^ +aځrS+@=ܐ|՝[Eʔզ(J)e|DҰM`/F,RkgB\")ddCѷ2֌iwjz'%oY8>J@S{ω3e(!^c1ksLt>82+e:i4 ZžP^LϲfKV.=L~{ݎ޳ZrnϞGӍD cW"g"en1kCÿ^V<7쵁8332iނOۮ <SU P Q);Z[!s~8^.?y҅Ÿaׯ H QLW "L pl‘i9۬D(g3m]sxfLǨ-=r4 Me\ _5˭dOyx"9A2C╫\jLtr\u@+sU[(U=:=_ٮс)MVi:+]Φ0q,<&]n'kk9ZM)O=YuC54:h.2m)s_M!?"Fc=7TL%jrmqგ1$*e%,~ ZeRs!tRLYJ⥀/Äh (m7טf?[a47ӅKŎXHOF{u,3X׃y65_ %L ׫ZG#{T1QV'<7߶?!LlQڊS/3m|r9ʫGմvXB __J@ƼFx$?eXT^w~xlӓG KY k"Շ~>a? ;Am8cU<|0왇bx& Xn%yaS-A8J~fXk~=Uc*?ٝ;Ħz%2݉mD#rK[ZMtrH,*% .q u!!8POwǕy Rd5 C/4b`!Snbortv n#<=z}&Pd_FPwdأ`5h/+5Ι|puP\*=5s4SIb(U; qXQi#JG(=ڶt+~Ž5G:JJt/Ut8Jh10y# }!<0A+wp]|4#7*x(9ke d4UYz<4Ye#ϯJkRs8YoE4sO{,̐ʵʌ4 14V6礼≠і7fi:p'Pp$GkGV]͉{_m ;g95G l q?`DSU!oM׾`(إ^ѹF3]> uvyv{^uyg-}l˽3B27'߽G;N\okTf"TH,5'D<204Me0ϖU"V*o~Ҏm!ڱ` G+bI*5~թlqV96ScU6ܮ>E D,~C'IaBZŀu$DM;~J3Σ'R7W,sΦdbYo-'44"Nv% Y0Ls>_Q!`QqRdRh=&)Gҋ_B!߸ktJ' ZU+qj&ӱ!69w3~&' |Oamt^xoUU*Sa=3)*,(-.o5Ք0/닦&W23lƺڷn )@ž?% aw.dV uUOOӲ$:릕.!t]Z.+Mx v` Zu~ðoN_Io;uy-,C&2'~ , rIUc𛁜O@Ɛ|EJ QI5C}'J#g:Q#!TUT{ȡ=yS$ vEM0!sĥ<ʍ9r2痛;+ɫOt_{̽K hܻ;? < {fR5"'U1`Jɿ෬%05/KWk C闗)%|B8F]@μU}?h0 (@:,Pෟ,s΂ߺ^ZF<'z XsJ߲cLC¬ `b0s m %Cb!6H[>I}N\郦jZ7T18Yb }DX.$6 4zξ ʢ h3Y\\Ghhhjҍχ@shZs$Zk-k1G|WVJRK9JwT!aNp%9*ߓ!6ӿ!b `KQޤ&xDЊ;QO7a"oB3@Lv~Mrh]`p5yʼnӐm`ʟxXml X0C YrdCϒ}dkqʫ'NY܊WKןe{+D 1z5tA#%4t_K*,Y3ĵb8}-;AWh۵@?**z@_`81+"u SIJքݙ?/)h _ߊ8~z8mľF>h~!SX݃4q l5x@,:֯ݘe/)׹:lv}Y;fokYƄH2o5=^Ol-ofz ZCNO!~[-5ȿ?Re8Ë&ǥoEYP&Mf(0 pp?Lԯռ2OvD(,ٗ~2!컀RX$o,&>tT]tf$ 7#]hƈg/Lr㿁sN/ˆ9~"!e37mBz b^Bg4yhUnţ6lCooiUCN9de'`PY2_` :2E,EzmH3l0 ,=H+BArc%ZaՀ$(..kVRx~ܒVG/6Hcx@xxRyҒlFn%A?Ȼ zr3D^y 4 Cs%{s=7h^vE>/ "E+@rFM\}B ՋO+V1h(DuIЕX,'o=; hUg=wuQgMEe^;q}6=K yӧRqz~W-]/5$7xW1K?X@;/^p_@ޖl#|oʻc4hς|g+k<=1XO >֏];fnIID 9nP(f|F!; VZI!9Χ jXw-vhd4I+ĽM0HtF(%WJ_S:D'A'y0(euqژݏ2n(&k 3"cĢm Hz֜rȧnȼ>4j uj[&pGשFd-כhi />$yL=+7W]O=%'K2}:^U) |Bp=s`ˬn"w9#ҁ>b6HqtXD[.^YfqE3E3V=Ӓ3"+Ɏ½R7 ..) hJMgibr O([ KzЗK+F^y ӹ_i3cbg-3NeGw@~. 5^#ճ,|/ed[)Ɗ<'\h{14`IQAACuMtYeg:M/N,hQ{<ė ࡊRrQWfqJU[=a鮍4 Qs4Ջ|ͱ>zbHquEMGqJA%ɩM.PMK ={+QOLE楑c1d=^09EPȍѐōW!K)| Y$+W3|S:5]_=xw67I5{ R_'!6P#ٚ}[렗_$Ӌ}ڡh )RSnv K;Kl7/l"GW\9~NvbK@kZ5"$- * kl|S[ 1|\0o% O*<\|di]2Y?ݒˑ\>,oxD ydŐyqaN! UgQ#&UH&5#u^#WV^nt;㏌;3F@X&W%IDcQөzզfv9_jqL(c#ɏU p X'#2܀{̢4J$Jᣵz| 9o!(QuoyuMYB"v_2q;".prw\Mm]ckKEb[ {jem2r/-5ix/5^b؜_ PyPϺdGw((vMe8{G 夵4X`:V/i":~ :|J O[m50f 8EXs3E0'ڪ{Pۘ" G۾8r}DꦾI,~&ЎsI8`ߦ%bmUѥNciKOx5#'dQ$iUeN'\Pzb|||ϚZrZOSY}h'U%L"Sfض/?h!F&$$Us/0ض@729肯t䌥Fל7r6M'+g^ [`ϊz)x_od Za VUĺgǮïAbb(X+knd]>R)_Fkl|mU\ߗ_j4W}»Rb E?ƳMZ%SSL1TX$ׇu=9nζC̜@F,M;KLwFmnPKNw"3| ˎLJU%˸tv eºI`B6d@;=D>DHR@}t}lQai}D1/#JJ!<14e\^^~볱83?,TuFu̥D:t! O7PI!~R ˛6_( 8Rn##75ܧx-&ײ]U_pN&2؁Ǽ^ ظJ:4AXЮ_Sd7[$&x;Yd p>#a'jDc@@+)(9ያZaEppruƾ86\Bȶ*A{ 'q~e1uEY0c$Uk^}pI,͗%rM8?Wcx~<^uZfH" FEMA/I繱z!~a{wz@US ,Өz懼$ޭU|I2H8|WGүn5!ב| cRf?ktؘ.O WdFkL6[zm3Jz3eڙ {߳Sգ  }D ?x{}GSߗ:Emc'rRr /"|.K:p=ˏ嬏EnڍC_ %*mj[:9J\vx<(JO97k*4nNdw!u-ӓ$OҾoܻ?q~}7$\9N\`rK ]1Ui.T~Yً8K*K-W6vkRe"!yBTq%9FSheJ?UGzgA=`Kt/ҕr85jbS{24̖hcVYQoۄEXEb޿Dϵ p;dVFKAQ!$a_A{ rY-;ԯ#<;h '8W)!ء>Йטܰp鑛ޕ!Z Wkݰ]_]P4?XGs1Xx]AK:Vr:ec3nYl`W>ZXy$(j[˕z'z I~w͉miǞc]SN庫{n}WΚ#2 ~UVfDVpIQF#5o뵌י APdi" ΨA  *`[8H4*N $72dY "wߒt hgih@qHTV^Xas8>ȁ+ejtm%M'f'cI8a6]ĄiALrn͖E{6p2i=O_ p*aG._k3 T`p\ľzOA)Gw|sʬr.KM+(m_Qᦊ&U'ʎL74tg?mq w=agv=nYĬs7N\ =#b@7 ½ݹf:0[nv nsᎏ@ pUC{[k\20}$t{#E-oFw}b1Ű7G•-)勢!-Ө|Qs G]sDgPu-UHC)ǩb-NwA`޿IeSMw4q#͏]Y8!  %? o\_L{P #B. !0/t0{Ùശl~o9K^ G1vJ 쨆'͵Bn[UL//)1.lbG&b;zo׻|~.[AMLD0TQ&8`+8(ut`=8DY X;ydpPj /xd E2so>*{|ݬG߮/v{@3N=T4P̎nM'1A7[ˎq` 3ƿ"K} Q)Q-ňd*p~=|p(Sk5N>/ZHuep U-ካ\gr,ys;m7 3wcO՘qY$9²> lvZjT#||7of{viX]Ve0Tm؄t)A~nNՋ@ZKA2ņԫ}3^@!c)NJ=l.Yc]/09}āLKS%ZqeL:/:VZB9Jmw i 3BZz,8^x\6kz]yLwOz9Q ^ߛ~\z5r`5"mEÄaRM]({|BU|=骮ϻoo'JiaǹdoK(?a"ĿumUE(Uwc0j{;V.&Ě[*-~ I oT}M;Tƣg]irVmu, (-w-9X3dw$8{peCIF?Ѥ 6@ U|o'rqYt"f[n7z =|<h(2ޞ Hf'|^v,6֝aP MB0FfKQ b v.+h+a^&ǦeozRfxOΥwm/-?p3E g\[FS5ϭ≣/EJg`}:Ux,X/͎ %Uǘ<:}6g{ؔ 8v݇0D=鶝ulf]!Qv9;_ j&u_yi0OOvd3da~'`M~H*OK)%4臩.3dg|nhxY٧Q-z E#p3b| d ~GP@q-.a!Ce9yu/`༉ uO=Y8iX=qrGZR.i ~wǼm^ԧcA(`~j,L3,zB™,v#4L3(m{, JyEKfԩIL0ewg{8~R`b` c}4sN@Id’ T›N[K`$IG _o. E [ k:jIvF2@q˨M 'a'k6V!ҫF:$xSˍ]ـ<,-jO0gв9{fr%aZҳ_ɖ e/g~Xs?tW[ D )ˋ({R#-:MR.U\ԋ;ƘO[vWb^iK`\[(ck٤cTfy ,m"xGv ݟ<4f9k>p zZXgӸ=}6IwEl┵=Ej?fG!K=x&BqCџGhhF(UyCw9pBAG?\Q%Kո<+ M2**NB܎du5v~}@m)GXr@Sx/Kn|?۸d2ohXWy9ߦ©{nXW{ ƪ@/#Hd,vߏ+}_s"}p5Q.X.+O-/|3\>䉀*B/L T$|잩V(_bӪyd~rXn~Xǿ~ʎ*YKa6+K!!s;{9dߦoLg!yuɋTC)IנO;<vQz$81\BV5#~7~ X;[a^AU>ך46 | 8tjȜK7)Hԡ꓌ #3һ>oSe@ٖTq\}p8}|8P >?zo2T94+> 8*ΰabAp9{9F~3TrgE\mu.~O`4~͔$$΄͝7{{1ȎeB#Û//(Uhn zIbBECj3M>;Gktoo1f\' sN-S'NJoBc($ݥ9lGy8Epd@DNu;){/(|Q~/3euwc9ߋ ~-wC?* 8چ/zU?) ZjJ] -]_KOhfw k/m9pRU7b Al­X Ӽm1םΓj_ s^5013|uvYrzk&1U|/U z=/O>\vD;)52ik\SQ V2zx8Ǒk kD-Ay'p/Efx$~9Aw}s*df¹A~RN#yݖp񠨊ke|3/ʒS}R;aUWVbB3N 2W0s@V8Hxxi]_PE{=;rBNZ 6d>!/xj e:YE;@:D-M;?w*]7_QZ(!o|tS:;]`#5 xyDG`IN.=4nL1ӻ1-BH-zsgs`YhOi#VyhCn#E aWΐ\DĒFO*KmNJ>`mS-/S =DY|K_,i=Bz<,Ibw}HI_LJRJeeڂLR?{c'x;(elˬ3t]LRa rd5N?Q8ŒXdlWVf3] =+%Q?kEzt,jEBUjt ce#7XX# ~fKozupaN˻m5y 8B3B<`bXj]1"*M:BӯC`+FW2BgK/]f9gsoH|Sz}^}LkSv]HoJݿc`@ 0$v_+AZu>☊|/ŲGDTvKso;\=o3!sR+ңk6[_ KUPے{ ; ?鑙gTt}fNsns*`3UxƃV|⾓u)-z׫e~TU񮖟,x_ۏKj*/ǎݑcشeyZJԡ6 F޺_gf uT(b'y^u~n}-ڻ!j,FB{4Oo5h.J!vED3ܿ'11Ls8&hI KՂޤI[_]lANv~O!oFRq_D>l˓t'ژ*voqۛXJvCմ_;8oK=w遽PG.!*rfؾ?x^3 Mt(OO *OQCvP9ncN6 mS2gLjE!?W;A$XDvM{;XkwM SД[;|`@xT_b 5(v_ P.}QĀ]oHИ$rBӧv޼\p[#H_<%y1}1Nh:2 Q[#2k&= BIG:|EHsxuu+1 ߼O"[H*˃z{a|W&^Ao4nˀ]~D WʟK~`Y=>8Y\wC[4<{d|Ѐ=WXCepNi+&?'qCYV^ݭ_&#:/"[;r6Qpɜ}vS'Õ3Q֯ɦ~`]7'\K[ C-[L:ų"ךfjLtV3M~y(_}V~4-a3[ xW,i] &Vر?pST,U^Sxqƭeg KLۨg}s+QkUMpУZ )}'ۡp=gϰ9 *iIUբ X"Re&k$fc|2Wp)2Gڮ*U=zzdU'yJS!<%4}yTR3kƾ=T>чp&x\)px.'܂z͓1~t:72h$br gDάᘛHd^s4SlO:B梾l.똯"ZňiZ}w$KxdQS~+'#֜5);*&Y47 y0;}R&}h۝ڹhN^X\ԝU*I{GEQP9@sÄX04LqҼ1*рO Jq(:霑g9Wc@tH(q 1I&0ߢ@?ޮa:'t%b R_iUSڠi["344㌔kUew95mfgc%].ɫ5rQv .^ٮTnKws Ic ;pΔ)@0 'Qrҿ9R}ﰇEAϻ5<-%/wv2XO*>&UީǢZjY5H.|ra_ᾖ/7?Hmj{G8@bM!#sFB|l4T"Vk;d&6$ɷ\Kׅ/\+L 䭌/^etM>3c030@ڲcڗY~W)r*97z[5!y?r>Dv YEm1M0舘x0tSJ6 / ?ёgo)yHC?.-%5߲Gq@1~̹8d:ɑ[TpKI%mp1XߤƏ"-lPcl7$ʫSfNlc5lf9[p%Ң?'53|~,*aG?ݸQXjl|\kmiﯶ^)k|?f@(PTBd`NlXN/>uSzG`MjS1QʑƸ}\D$P/w7Ã2RX:(Qqkheh 9_{WmIOsZԘmWc΋:Nu {}ǶT}Sޅ3/5C͙_V pFzu&ϼr#&,{PK%}θ^#_[jA aBĭO,']c5pP}u3a7ḁ>{LU m_@ S{ +ˮWE8E\W.(:X>ry(2~Hι8/l7 4a~[(n`pm1~ğtޏ rj)hΣWqI^(ot;JbC=O" s)J3ag ^L)j" 1& `z?nmBk:. `SQ #$jG8oH8pֳ%_I^9tL>>3UЛgw «Nak6/ov%ac4 Xgid{ReZǵGwݤl}<]>kF]upPu;YJ7ˎxwܧ_{ Z|bU;8~\Tz#qzM;WV^c. 5aY-hv#w/nĨ*Ur^dcpjaul=j}#XS!UTZv NP97jtά,/@#AI'MT |CC<0m颿/S>ࣛx#}L͗xbTm9np>,`zKBs mu-+ZS(B;i>YG~,u&'ĭ=C-=ERV%e|I5~P]FzȃBS!>,: k)F*%d8qwV:s8pedWR8Tw0HY@dݩwj4CMN4} av/ '{yf`4adɟ x|Wd+}tX.;tû尘ݜ!~#o oWu37k- 94U+tR }~âRuQYfuPo} LU"+fe 다]3C\Wbg_SP?oL~_2?j]k5e,@|Qm߬X=LUYm2^<@NZ{  r!Hho¯j`}euOApމWc{(͜Ф6 7q|ri'ac.,=u}d*|?J쓍l #}`+I[o64o9M7XJÅwYDk3>|1s^$88x7gnVOkz0Sc\m';~͈#!'.} AqTѿ"XُycRӐ~ eLs-'Ukq8:5p>\NRa-3mpw{i@F_uH3QC&|*dDaD*ș#%7wCk0] G-LI6YDѵ˜n*I;Ib 1Q2W6,Y; b U!Ԓ,<Әfi Wdk *9(?|CRu^op2 y t5<"72 ɅCX\Df^Ee ^V&J0YX*C_;W;Ya mgysˊ/`[X,r[!]chzߛ-*|n+@I!} eN߮ϟ? 67j#Ft(֡AG,OH3I\QP# PIǣ{flR Ž_-=*nG.+ 7M:_FLnX*tI4<*4վs\VW:}:(LQNWP~@CkD1 M>oNxV]kTᖮ-@?I y$j*˕̷]$v # 'zsm,;o?/aΏGlǢ?yŞ ]]L]Al6 ċI߽ d2)s^cG}=VO8~/GlHy_"f~#l>B-T6,b.,yxpw-mbx_~"A?*軖Tu_BFX-//dN53ZKo)H=0̈́qDQޗ*qLؐwHT\1>5NL쁼,JDt ȨYg OVxO~+ J1^Kͦ,юE8HRS=s+-:,TSxz[VLw74@ԞT(d1n[Y3Tjt!S^jY+SGe!!<=kJ9-ь?Y~>_എ}&"5kqW_7`\~-H7#(F"4T0t`7}=Pgw_ȜGUWcbxKeKe_i;Okd8O r^" D+C}(Rt ,̎|ˈoKDJ{tKxe:+Sh/ZJ*˃͔8=A[V>FDVq+~ FHmnVFҿ~*TN9VGi T3UuZ2=g A`_}Α}b_ cgUq؝_̕rYyBI '|BnYp2CҌP_L uS"ve$/(C y]ߺz Hدp6Lȴlj Π-D }o5P,}妁T.˾*h,P}r}p DN-S|"e/tJgts/C&?L)>2bD *9o;uRDa8q{.@}T.3[fOmu mDN7Vya>HtMAjjdʪ:t &k~h8SiPӕ5ۄo~5CQg~ WxC[lA<|m"e '7tߎ#cw@ qNP?y%P* mv٠>= QK/<`#~ndU[/mG٣_wP(Ryx0~1tB-_s%8{>ܼ?0_ @95tTG#K:;( !Jq8Y lzzI/; -?E_3Lkj)@ewQV~zb2# 8eQphp~LR? ;^Aߥcjvך mHe0Uc"uxSP\nnCxO"U˟Y7^J+vy ~:G:DzG3WVюnbybqĺֱ9[ԧ@`vs=Z5` X֕k-R{4mǏտ3KnkI<vC\]]{ Qht@.&&+H6b  XAz#J?{atDHɨWP5 tvp4G^ΉV?dŷy3yyyMmy~*HTv98:`ŕi Y\RMh"ʰETz ai}p$eqJ7N7Lkjo |Q]i0,am=+dVў׌$\ڏiDF+qdD  ϶h;StpÉ!\[#M)iM)H0$ೡp_}U(/}{m[<304d)-V9-$~-5#YL2^`1ɿ 'Տ'_='i>HewTb}@ܟ8Ӌ7G=/~:iYB~k]ׂK|@=^LKd A]3?hW}o.oM=yKO[ zo+IJC[c]*8-\ J2 18QlD'WNo"NI B~oR`f9t|N;[b^4!A/W ,=E4LKyT_'DZ(t0t"C zn|DlE`K^ fY WA *'ק0=a֔fKL8 WㄙюzOA"gΣ@= *3([&OFDN{5[3٥%^}Wf\ۥpȧJrsEx;xa gifCQ\#AfmfT'9/#:LLӣ] 43zEє45[cS,#d=d/\m^hrQI|-:M;Z; vOH\390t%<)}݆oPRLG:p3 |2MkHAn`֋r~sa@{u[jb뒩.B![9q so`)#B  twxZBO * sUpN X0~)J?ctJ5cAP%\SFJt5#ozS>(^UiaT=\DVcs9sz Hȏa@Cr~_X`HjVoUtsr0ӯ%Mȧ3ZSG%~8lR(l\]ٗb9XgLJ¡=$kr3r}~b֌-Sy/u4>Wau%]@ՇYoG r%P2ljxƭBo5JuL"H]?UX3JOE$Wo ~L}fKS1)^-<Ցb9#dyUҠ gtt2KPﻸ\nxZ[]$*̱~[HFTx3f,>W@OXn<bAw_2/j5>\5i]K@L6 фQJeZ[k6_nEQ;ZG 0aSuIAbŻq=ۊ579y+]ZԆ6wCC( DDf"۟PMgŸ,z7$fΞOg#Ӝ!y6׫&eAr><|vR:> $3Vh?!*;hD >B)Y-P 77Hb„vH QvnP[ /|f\w"9PW'7byAf#gpXS{A|¸@WKT;G [R>/Tdxck/$SJ!:^\?+Xnzsx0Z\3^#`hw,\&~^Y+~;P{_;3Jig0'[0&"d)n4;;paʊcINoN5ljgɺ'LOx]ù~7+y)߃%8vw7u pOTZ^+<ʶMf9"wEڪrQZ_é([oE!|Q gC7Rof Тr-ӝ Yny>Ǐ[d$aU$T)טqBƵ$kulŘcP() u,2jL;%hr䰐+k~߽"CTKSӮ'=e[a5jc щDFވ&72l~G$rm 4<2}@>,ߙ\JdWƴYFvdP`y nYOX7ŗJsA)ȼ&Q@TV,ؕv,k$/obb?jR˺ѥ卫|Jp/hdvu5r<HV"1 ;VQh^t`[ L1Ϸ{c<,sN+拣h6rGM0:uz[ZtsZZIz۬N[\vГ'f#.سK>z㥙N{y]jvHARxw^Btv^zʋr3ێ#pUdu o hg?B3a :v<&V2:\eg, Kså;MjNeF6^Q?mӱ MQ՟D*F5DXm$6fq'$?D(xY1(&//.&9\0qt!9[:lr618p䨏GZZ{GȎڢ"9^#nFf}gU zS~֊]*\y\|ޜ4#㏡햯6wþ72c-u1-NaLT>naB g9N ~ n8(Q:"$mTg؏{Cm;!EJ<Lt+>;RC&K)ݸk )u'9tj xƟzzώЪ Nt~,NCV.k:=KIEwu1]Ů$2Ǚ)ܾVlsd 5=C%mU9ْCL=֘bzӾWOݶ͙sn3M=Z>A:)By[魘:C'%[QkU1Kb Gkٱ0>}LMu/7e)Ku-yUfŢ.όKݬuGj:d=9&̈o~]xNo QpL)4ɭ_Tdkᑟ5n'{e+5e3eeNw= s6r,H6X0yJ(ȆrPrZKd KiOx:Vn 4A1f=h&?伟$NNZ*עFocv HwU=Di2ZVTaK}MIUO^U^é:[}\5dOs8w_yy{l6<52rqM/z<*7tU:ڡd\<24so&dRϱsi[8lHseu]w+vO|dmNME qFgڕ p.2]鯘3?:23Dhc\DO9;i3[8@Tk_YQ ,aGkޮ-P밦|xwKx;8 @c2q ں{Сz}UeB<} f^Yl͸8@,z0Ly)3b{}essU 4<$kjoZphV߶,TWv=-+Ͽ7dvKv 6toBUͶ ˽g_x]^ jUf cSj.8#o !tBDta+rՊ} Ov-%G*[ H{i(( G(K-an(pHKA+v2x+2ٹKoI5zݚ֓rI}sтrrJX֓sk][%R:=eӽ8E)Q5 MۘeqeL)SrM^nzcִ-]ٽvc{[3 uͱ⏬IovY&x(Y{nM1|8k9CX;=ʦ6[+R>uG]aU:vnnH`2NBJ!+|vVj/^sE}gFuwO I>'ks{ ȻaިAܷܿq߻}FKX9tQX6u~@//pkÇ6bN ; վL-N%FY[2x )$ߝ([*,]N~2'6Nۻ'shl ̋ueoUY"҉e_|S%/KgU]rcs_y-V%x3R"Bv]/B&rn s{l~9\'^{ߋф+>FIG+Hn+֓]zx3,79y3ker _ p@.ZNfDdLzb9eve{{cY.vy5O:|8_"0*ic񥳺u~ 3;#>04nPW|k~kWUr^3kuIɺ/z1[ 5rTGKqLzr_u ˞hѫyɲJH>A}3~m)zh-y:9G}U{~?izp" 8Z#\8xd1صhE(>!n2pZSĊ}YS|w0>fe#Zis+\d^tfdk{,~Bqwcಔ8Z}c|V-Nd~@BկCHzb5O%$`/ba< D1|ng~E19q!Oo8D fJ|<vq8r?w= }M#6{=ݷPkx`T ~%)>>HTfGQdD2L=OiĜ ]5Y&d}6Gya$Hh:hH+1GIR$OSd GY|nNͧ}AF H15 v餼=a"Ʉs`ë~~7m .CG&5b-t߯AEmW/:SQ<`1by*d[ڵ!/(Ư?<`ɤ"e5oȏ߹=u_ ;TN]GL`Oaŷ`laGpBLSH.%E"I2f0c/6tD%B+X2Ǽn`K4j}|i6o"+&W`^K#p}(@Jz{1"&ΠZ*B(k[SjF^; o.(LQV )uѷYw 5J0 D;J\yAShػ*׈hB L*ӐyMo9܇űO 7!`>cz7F)B_yɟMH`H_3i.;[\-$1F+* a'afǧ6 bGiwsDҞ/><{l g;Z ~M$?(%d ܀$T}%o8uPCP_z(9m x1RC<ė3\D6q IU-_X~]T|%z<Ii-V W(HvM=t5Gx ?Q-׽;6vȌ݄GFug|Y I$}^;w7H>8xOǹH18$EzF t̔Qԟ#~8vF!(7k)R]akޒhm\b*&1T{1R1 M Lp8 \[%uh& nyux&ZB6ɍQzXĈ=w\dc'7viYR9Ӕl3[}|}? 9L3W_)Sq$0ų_691ZOCݽG#ѸexeG41Nn MUW7 ?)luL 2AWƻ̶b޸d} s'!Vnl S̜hҰTVoU꓁[e4ȫ>`= w+˘}oط\mOQ5FD5INj FK #'ȳ48Ž59d"daQ. pDώ 9|*XJ4.V@"*%OhRUk!ӿF a<$vU8='0>\}?3ƴk1^U GEUDŽHL殬)ɸ!g찳[φgu6.}[[%mhtiYIl*մnlwMCYRZlHRv?ɞW#!ٽ7x-CO `/!ԛy2Jt @W~u6[<--}Ru>\zF}bCz\/s%%۹ .^`iJ6,Kq7&: F_o(ha '.Dȡ1$2zW'C0n7+[| nNz?7FHdo .eV{8Z`_2=r-g;O.A8N,x|$m(V,Pl%gz*R p+tIIW~\|S}η FJJ/;XV?vŸ*׼=2>MͪoB)9miD~۶OQS+u*uqN׾ EAe M-ɻ ?F|7}d] Im㭐su6~ 󀁷`lkCiP@k81؞AH,_ܬgw+cE_#3'oeOyhf˨i{T$KH^@HU=22ebn&t/AU#▔8QDwà^ (ʔM|nO)GjWȆ.i}N9y5?^^\]<7BO6vbDVđYûodZK7v$4nIRkDUMz±1F7o3ym l֟W[2p'Rs[X#˒VMY5  =;c H3~ y_0|rRyp\trMNΝL}NC%l}~JwI^ZwP`j͗+).יAR?&`FDxX =VDzvc>h}%35˽Z1kϏcmnq2f?_ե/#STN2Rƾɿwϕ"},fL 'JgV-dLB;1~Q @-r6+xu7߬"~YVJ?IZ?b*׺ѫ=R'`;t}xn E/<@o {R[gQ<*LMx4V(•;b$v~jO_-lXŝ'x o-њ|hoP4U6/QV ܑiRzǦr3(9IF <'@Ư H'aR&Yoy'}VXҨ#']Eg]f_QR=@\5HzvoasrhJah_w[ܷd٧΃sj^@u!M{{)r+ao &K](߿rJSTCR_eϯ1[sƑَ @Cuۧo"Tx%7[} <h2Bqwr;{ M)q[O 1$$Up>tkJYak#.#-;RhHh(N8N6 L}Tlq"lZJC|bŴzRظ^a8>өjH̓٘?hv.Uʤ4:yϝHFE60|֌&+]\(4jBnɪe+^@{3Sm6Yd3*iuFLX;t[?BbzGI'ڏ hbiN=RC{TƑx9?qJo폳I|مYsrЮ靸@"h)]lmiL΁lG~P¿"KL. NBxWۈ xYgE7F{yy)@-APp2G}Gp9F#C ţ<nҜΎDxՍH[~Pt9?08f88ʆH|qleGbi^ !d1'{G1b rܤ|BPn$`nZP)cuo I * zf¯! =Lyoy緫m&l9]nL^BqcD_l߾(W8. U%o rAO(HwATM(#aqͽy\Ϗ8ǕOcT،u6lT?:gLl,Lº#IF ! ~FH`/tc>[<4d l Tƃ mۋ~v]E{ z1v:!|o#!ƟN{@T#9 |7*77˝c'V[+!׏x~tmB4l_tyN[1-t9h s!:_q`&Ap.@oX^A~҃\pv^sp=~Hac ØcntvޮbG" "ǵ}e)gd_|p!!P~Q,43E8{ Rhx%!rhR@4-w I- 7p"f}My%SixC~R ~[t!̿i/JF>#狃x`| wn<'ݸg(Cۂ^) />nR_0` Le|̮7DeO>^3i~mu>_VMo"ut{uyX=CMLv۞s̝ο;k61&|+ 5)9E u(<%6אּ×w|x8cΒ)MV$qT])JZηxB)]pmҫP@]6"'.=v$W j᲋ $w{(!5y<쓒9 1X=i {_5]̨#aE4~Cd3+Euc#N)k^,u=n y n#X׵58-wʍAs1h+.&+|xLL{G~ =$ ` ,?6_SyL qO^$̃je^?{}>‘39_x%ɟoyyjDw6gj5$#w:Zt8^#`nsÕpd3Ayf}*Rr 2EjVni[=;>|1ZTE=9xZ.A%H:P|5 hžٟY>]sfH@Lzo/~eyĴ_@>xWʣh!r,~^a+KܠfP L]V򜑴cc޴7%qEl GggH;2bڏ[zɧ$;ͬau-[]TwB{'K h`"D N)7ui}p2Jn3i7vp3cX)w|n\ 72o%sS]V8{vQ)*Ȕjx${gIy%K~z%έ w K#%S|Ub33:rIl!?s*9b2x--Wp)әJ̆|aw6n-m;M̧Qʕ [%?L|Ԟ_G@$u νH"c*&LQb\kj sH3_kLK8-&\rJxLCmF u  DZҹq >2,So!q\+V^=Qtˊ(TH]4r|U91| !"~k9H[Mk[0W]_bNw]_s¯mH%&PWvHyˎżrRoCiN,ǢɲtuЏݔJ(&wcB6>)h$q5A<$:)(t~iWQE.-W_wztV Yg]V£!lczx 5ZmvY9~EY|`mkwoАENʉȎo=.o-; Y&썘 X8zS%cE˯v.["bSO>υL-F.hU$:|?u 11[ `ۘEÊL 2D-Ӎx>'?ߦ~;/ _>gݓj\Vrk.Vx{j#ߠBB^LgT./nf3#Z|RX~:SLp+ x4\W?d? !DD1!δVĹ(𛏻ŚٌZzbߕǎa_"T|hAvn+63N/bBe52m4%b6ԈlyYZŁyH7|_dOVC(-X <4`,,(atp"f|6^ҩ]Xi ɔ-(#׫2.k6F,߭4ʅ#ja.&AKڼ8c>SG2/"c[UhoPMS|:A'ؾ@ 󸜖iExnk~-[ɭR +5/̜R|C鉻2pP7Hٌ :ܳ~miC"Q  [0#:zXvK»T>UzYP1D_WJK1"VQ2A<;LaOS>=bȞ3xsQDr3pkئ}uGŏDxuz^d}I_1 =rE®Ӄ;k/XR4d t;`k bifunRNj"J!)A}n"Jz#Z G^܃tCqXz` E.gf)vI$E?e}$J8~$7Z{߀?%CXȇ}SybQ:ݬ聵:-'̗;_R@CdvTG|yj 9ju`.ZPڎ!z&b^lNr'dRHF&ܐ3ZbZĦ5p9롉\J~Ygۉ2Z!p3aUoۜ#+f]8g?|SIZ'pV܃jI#C2IU)^lCFEC77"g1ȿoc]}^x]xC ?5q.z6.xA ~篳jY!Nf "5WB]‡xl) \ZnKvFҎx\44OIzͱ6'\ܟ} ۯ$?%ce(dP [|M] xDnʋ_ 크ĭSUPU}(+qX4:/U *#GiUJTVթS8Scw2͘rugeIX?q>IoN[/Y[RFjڌU>1#WYS@v Z |lVd0Zs~jVe<3H2eo/MF ^IF{iEAwO'_=+ֲѠN./P$3s ҔP^ ]ۇWJW>Qx:/qFm5ۙao{hIѠY6D(U+W_T${’c87mCsOi/hӽW˩;9 uֶ/>XEr2xJ^%,LhӴRץ y3F]:Pf;/pD7F/!KX?/:Dv)nw%'x'ij6k h#kt"^e^goFYYq  ?,<NJs cfhCo9bOKy ;w#6%YрF߸5'-"\fI*7t2S2݇ѳ݀8ΝK=w7}ΦevRK~c 5vy.8Hfu̻fZ&9yW5Bܝl=MA֕ΙCޝjwB@B*Vbcxa-ʕqrb֡@!/ 3}+E~?ɆAł~/ΊOc|Ĥ R:1WBuҌiV3,nYы` K lIEѿ"9cLhn3˃3'0Ss@^8?B/\6 gCYEU~k6\Q~n7) WD< 4gG$s Ҿ$]FE1Ҩ [ ,;am*̸(kP/:+ck#= kVg$ܶ673k钟 eVH;"B{j7fz<߈DqP? ]=Y;^m>ߕ_KŜ3<-qM.vo}ЍÀڻ%8DݨR)R#ql L햒hNՃׯ\֞\ZE+o xT"X!a*5jibt r2XKwD (' Mp6<[KϨY4Y0ϹNFMJ:{rװ&p _,ghLr{FhRPd>"Fs4?1E\ohWhWe@W8ڎMJaSZP;ec6|i{pPW5`r!_*:N3$73˞D?M _j-p=&tYnuֻ}dJVƜbuK.]m8 U[|~6t;|/ ؤ? |ӯ11]l0L65įK\?4G닏iWM`C*?@Oؠ;Kn;W:.W[nt8"^ RӜѧҫGrnoe # U5%.>-$}6O6ߡv?Jg娤bjZ¦=eڋהа%gn+io\;s *jEfyS)woۻ#V/┱>ywQgjeHYG^i~ٍ2li0Uh߇u6TмوX<=qfתN6|+z4TO|˃G +Go_"{_aMP9,Z? %-=LBIGrAY|`_`?2{ynF^rDŽ9P6B$zOv7 >.^i5uO \KLУ=)pNgB D+㏕?=];1j#Ҡlָ̕},n>(]j=5UGA/M1$sY{P>WiTƯ]բ+cTͧp }"O @uHzĔ wV0HDc2.ލ8]J]Ρ mGrS8+30802I19 %߶׫n#iq15ɣ~۵뼕?~ryOwӃZkXJYs\H)>" a4ڢ9j NWJݶ;p;;d61}g.+ mU+ȅ*;/>OTױk\(wG uWn.Ld%buVҤ紏3T<1y.B -bt*xxȺUL{0 4[r˪L',7#?8WYx4+"`])b+ ΰ% \X 0>0΋u ,F/,#BAݽh|SL\; HZOO_8[ur!: D|$5Ks*D]EMܧ;$3MZ`Rim9ܳz6<5QlOrHY/*F汭i)ӊ9ܪ,/@g0̶uh+6[g[BITbI{+^@3wAt]pQa u4/]䒝\. ڲVi J?|qoEqt{aC\zB~Ybs*UZ\̬gRys ]ޚmua+( %? 5ɖ;6bA@!?žH0f<)-ՔZ!U%[@e?.e+/3xq'׍Ꜻpa`]vsK7_;1V2J7R27 .#x,(j7~Xn B[T-6ŪCu5{Be=88;,M='-'>7&O/l K),# m;y>IW˃f[{52^i:СZCj;urFi;xh+ GrjW]BgYCpfd1_ʨz@T^ϰ\v(6O?7;_oxz3qX7|[j JJwM"17'1ڕ&*9bEr G6l@~]5O9G{u*9(tcT U^XP}> !3 @ f#.ρ-|@S hv&+E;&ϥY_oY_H2l*;-\iЕ4giN&WGRM;W?h? b?5%45tN<{'q; "iā-KһPKZ6j:GPPO"/XHsdyQ/(џtbuI01TRk֘ۋNІΟڶ J벒rQ mn?)m=> SQrzxdAckvH&_?5Mo ԭZỺ虸>Ѕ0ƻ QHI]^Ě؅n:z:8j}$hV@jnfAw!X̌Cj^1[\[wcHjv/[]fǂ,~;4|aFK*E["i[6;\;9t\I1s~ ,0vT} 7 pz@ uY&}=??q׷??)S0`o9Â܆Vt+#{" IXxL+.il9KjS]]w_՟G;[N<=`Kvxt\WkU@(gӬոJGmiV*Y}jUhoM #ՙTr!5-i70`1c׼{m-v|&Ջܸt⿣Ty}3~N8ts~, d qiuSPni:rA*S>8]E=|5r*L% CZ:@f({A`;^Y9mfd5CP)Ԛ)sV)_by e@\g/!>EZ-mAjOHnXm_ ̎{Fp￞ @|^P&)ab B_, z||1Aeҍň3BԵn;Zڳ3ʚm ,XeYh =3au6gaP|*PTO_mhpo%.A 3E,;Q3ŎcS=xLNy,>ERWYTh oq>L@^A~/9Ai;E5tF,UԎB(Y8TE2.Sur">W~>Sz$}J@i֖(BnZ3C5w&)Һ2K p\TQlus,$/W=&eoM.5?*etF21;;)CĨ&pzwz TH_;{1Lu dToB6*Xfob:Pae#mQ N0d pdȮZɏ? :ӭCTVwh/QJ{ynSK}pݸɐ[Yru'WRLh>ݏ雲sx'Ú'2Qh%&cQS|8m~w[DeC;ZDR`־1Z0 CzP.6 Hw!NSZ}tC Zy ʩ yOMza0.WbjZ$ɵ7xCp.#>龉}\}ܤ: ﭘ+T;-vVvaU#&#w灊. ;׉\Wz8LC5(:LjfQf=9W8f{rO)OUcc(QAi{`c=P{/)n@.H(*ʼfyblxw=\ZaS*DYO 9,WHJbnǓ.x,_i"hE~WWoXpZ 6:d1m`~JY^tNMc;]|Z/ݛE:aQB lTQ9),DvgZs߉Il,eV{`lʯ^o$0;$~,4%b?d4C97_E{sRR[dDBk13Rb ɏzQ2#)~$?,0="a"=[] _!z$ W@/3eot 7~405DŒ /QW%*@8M*X5Ct*ZcbіQ(K$^~T"` ~A 8;V`nՐVOzM"/3xe,1_^[SOV&ߝ&EڛNwWu5AK UZQB;I)Z+;H\ $AFOkSr[z0.uIVB&(0oAm7jdiռK 3z?]UYi!'m"2_w},q1.dsKy_#\_=JY x^ryP'O㒑nJ҇g)SS^(YѿN$4>3hkShO I._O=)N87gmj7.x'HzlLH03Qv^u70{LѴu9zWF<  νǷh|= i8[*\L}$:p0ٷQPImkwm LX ρ'diaI< 7k8N,ծ__c9.K*Tw^Cs{ڀpN|eS#( 0Xxļ}\ђep>$9 +`oIdyq!zlY")i͇a}B\$'i.'kũ0i~rhyW~7"b`E ֞ Pwx)OJd"%w 9/RjZ)9@tڅ3oeJ9"dv@,`nTLZ`S#EޖGllm`3{¹MnթhV,-*R=lRIE{[kW"cLmpR v?u@YpydiQY}]wm,,Y63 N|U0m1ݩՅ"h_j*DgkF?ƣ5,0-; t1w0w uƿֻˋKkRK~j8/U˼mMM㿸o32~|}3\PcSgN>m75`V-јZ6]8|r^@D(#@dUnT5c:;<Y*{L^7D$Q3(/;Tpo5 1.Q0 )/ › d(yJfcy괜TF*-M6mԦuqGE]Xv]ױ672ݰ¿[fU.j`t"zP̐%딤7I1ҷo?Nz|cw XEޅMRaڸL6y/N7r+Jp\oo] |Hq_*k ue=Ǧ QO[KsH4,p+:OMO}HݼQ TkR 1To,:FΆ- |3<U۩ :зh;M %.,6 B-BNZqIѫ\ \b ]Jɠ{k`r;S56ap C$֪K;_;%@DTEM11C6`q'KCi=``2ϠB0No͍[qho+1J{R c B.q7/|_|thtvכ~0@ ㉑(IZw "1o[Fd?fx~ہcjcJ _zS3ү@+lvGlhh_[?*j{=A1rT8( zwd;C9[VhkH]NyӮ<|swwTgz3{yoK{0'^13wT-V\HQr18UǮkbOH:;^rV ro,︸s7;tƳ2vb31\' nx7缴?vxՉ^xˆW|~ wƇ Ϛ:n='AV,?@ry7B;W`Jț, "vi' 2zATHJVۘA)a;~M r<0NJ*vq'4a۶5+ 4vZHS6o>z%/9'qyN4H-k>{iJ_߹?Z<ԯs|Y x>j<:s>ڨO5رHVO7ȅö_n{Xs%g ag bS*;n2]Tv`}Vk'rT4@ ;xK{ C:vL]~Qy*gsn+Giѥ?Ҋ[!d$.c`avS;(;Эv*;n2Ǿ㻤2߅mΝ{6;c;]1ӣlc9td3ͮfd@vO0+ƱA5=,9MDfetqgVs|噟S8n r9)dLt+<2r%[ġ83Ґ0KcA?Rwko|T/vV,=`4qv_6Utm}D>l|LA/Urw c'/t7vbn'nWX¹/u\9yl]d4x3%}.ߋlse Tyċ{mWewqVcF96? 2͜C]{zV-5%"}Z秷Co \:q.H\f~ׂ{aKV{Ț,]7ng4{u(>L1k(,c>iv7yvWdM9h5,Dʊ*LdۥvWwM3_cC(R-6 8[k~c+z^P'\5flгdXX֮5cpZV:ޯy<+‡Y`J;^Җ@c=́.LQFu !Cp(/umoѫ-ПX[m9 O @Ǡdx.4Y֙| 'u3ij=6F_Uk$H:q6:-`,5j;,I5 ϡWRýe6οI>B(@gVv4\ET3WŸ!Y?uWIۜOvf'}|A{lA284ׂl! =*ZcƏ9JXMJZB0Ί%m2/?@0H̎`IV)0ѡe&γy+^fN9 BY7di-{ jis=W߸[; f]irYSN9)hBz :(iWV,_r_3dOJj"0]aה{_2m;]uT1.m/>b?\vq( %@,wmayaf~WEw|%v$$zERymƽdVJ8lus0b( J,8c)Jߕ,"yY*Gzdг#EMN]-x=vB|y4IbtCwUʻGȲ3҃eV~g ڛ:6$O.[iJ*򷾭3Es+z pX6qEg^L k*\ewgĹ|̮ }' Y?n>_6'd(dbp1)wv 5s}t쯪vgB|`-|wםzb{\koscO]'0vxgWӉ@2eȪ۱i:OH[Qȓ+U!%:.[^OCg7bP =h%&*Ǘ,3X2q3+pr?IӖXr~NK:Eߖ ';^X4'lDtQ3tT;jiS؊;2 `p&[63O4X6(pɞ\Y_ױM =ɫ`a iKxY8S׹u^ap̀*xygvwv[ x\"ܺ\yWK#B>k~__=V@Z{W<٧X t>B^hԅ{آ qsH6i+H$7tr{8<&%|*#g'w8]F+%-_*3+OG .0(Wt5 l} K{|2?qP&wPصU "Ajj[!]ه|(8NVM *K"vAN70v~9"kd' Ġ-cQtBީ.>ջ3P-l:=y3D;du^Xxָ4 y~YX֛,/NjYym\x߮8yCb}27G#TA*T~>>H "+qx.'[9GZ%@.wn!:@qlN&K@v\OK*]k##QvۄՖ`G'%l ў_j3G "Q= F=Fj뫨p]rX~7z]|{ \=wzXJ{mziF|1AK;Z5tQauW\&҄m&MotބGS*VdƇ5C yͰ.{7%Ke%uM(W={Tkm#ӟSl6Uϳe+R`>&? |63).LD2/É>j8M8T5gcx:]s*| V*Nsn9g QѾdM7*[.\oC0%P%qOlUԶ6i:N:s4|n;.8ȧk_Nʗ5%BQUy]Skq˓70z7W#Uk4w]mdv> ݎBB՛ٛU~Vg)uy7;DZk#W!SU\93Gj 1笶k zFj[w̝NLKWuE;٪77%{dALȌJ o|$DF2oVeQNnolyd%8zY*3=J3_{4Wi $2")8՞;e^-n5{3,.(C'{~O+5׿=?w?>||:>ݿ/}( M /M1X{[  e>Ƃ3I|rջf]1@ow(uƫ  >5l14-h#d( p%T|{ܵ˜eu?ޗѺոBnߑϯcغ36 *BHq4۾ˬ p\ I&+x_OTmi[n!rZm';mz^7;|%&FAGA㓆#SEҰKEb'CerK{hksVK11;)~: [AWDB1Cf.g81ח`OLwrg\xKSgvEkcɥi^ɏ!qO3i2$dr;܈;T,z7rףRT7>':x[ro$_"fmJsA7y$|ʁ!^tZ^FOv՗3o))V ˚ g.AG xX[ק9X.IZp|U*"VYs O5fj}_΢6XJg}6<n;DJ<ُjum*"PJ ֎g(zyޜ"X 3ULSc{Sc] -$[(us^wC>Dv؍ݐl1O't9)m'T ~6AմMtG{w Km؅<.v:m!)&XmZd|J.iMLQ@R\"b^wZTx33lA~ZJsE~Y:Ї!ͧ OɄ_nck Eʤ >=ƒqsC ʫNatb_%C:O`.*SBν[7pyGl\5imk圙2mKXCz 6{[y0/:WdCEB^f۸riwAlh tvOM8#q]? ¨PQKUjBsdC^VgN}e|xtjOTKHCŬw(9;L-ܮj՟/@As!{3}m/㈶|NP{#94d00LvG*'>4{x>߀V ݀{}ȋXe ʞ1yXur#@#c܏0my8B\ۢ޿ޫ\@EC&þ&bq=~M #Yd7'x}"d<|%T-Lk^ϻ3ɭG_&G@)0%>Lf;ZY|TeVQ!V/4 cЫj-ǨϪҨYmy6WasEdIf3yEtQf^y.FVŹʎw]|t#[i?<-;\ M=8; )s0eՙO#lχ;R&E5t>憉rgw<Q·(R@2 s,j^E rݔ}9E.CXkX9y+ S%ըɌu xW|ɰvzDs0-E3]#!hizXa0ۏk: U$E=DJqoʚ/FOJFieaښ)?`# Eh 97)w "yT`~R=KXނR?lQe5tgl+cj0n:~BWL8V6~#j?N}<L|i7mOiw@ ۗͳ{g=u^A/ 3 $TUh Ew "ll%M.bVA{{VG_M!vO7 ^3ohGfVWuNJ+% 0 YCp*T^g)ĕ "0;6}5+#s5v-LUbSE?ePh+uwtx rcz]s;O yjqa\ܿbr%P_s˫dbsmkL\wPЩZ; q s׿@˼$S|aeQ}&fwWwN muI8ͦT`7A~9[鮯0ix:VJ:?jsBbFb/Xc; #oXnk')czsR >=BU۔P!#`4]ʍBFg퐋buy6,9sP_]ۆz9㗟5/fV>y.L;y̘_nye&O/ )`(.r/HܮUC5(Q{Sj3\6+4:Z[@MOaVQܾrf˴GӻBƜwT`_{s/zT>6Ic,x2=9xq!*v.T=⅓ ~F&`V:Yn#E ]eC@9=bUXTTðrq,ڿ6/YgՆgqUsɚ6G>*3+0ڥ:[LbgƦDjYRxә/] iMO(2Uo?~?6gݽpqZrͿJv!GQ{bJM$x<|ͦw&vkzk" [^qךV,3E]|*;=TZ?]_~לk;?XgDf/8E8{iW=:ϗi|b(8_p_=4JqM2 ?r R>NkA6ڗfGP=̭]ZH˄-k;TXugPEM-Vc\n^۬wsEz6m.[ KW.lFu~YЯK_sa&h`U3}r'_5}\?R{xtīb̿"&'V+mEܿs佑 !4:&<םxq05ref=liM6TSMg[j΀P/sb¿lvS9*fTrǜtf5n4n3)] !;gϳws"!E,%4uuI ( ¾_ ɷ( w_Dw 3Ek 08s丹uxa4[`=l\cr78N?=[6G>MIYr ,Bѩ[G(҈\oA/Gd|)Rmx"w1@Cȩu\'92Ow#̭nc2=RqG~ѓ>IUue0J٦ѫB815`bjm$<'G. 2EÈgw& 7v M2 {gQ!l0G(4G}jٸa6L{sb;q7.58{Nx|waӥ!_{d޳Ba1Oz9,%H"c%j(!9Zr9r6g %hRXC1.t 0j=H 9(w`^-/0.pWijg r\63Tdgy!:x7gUzZ%?ދZW2ᎬZvdd֌q6ޥ`t wJ`hM}X@G $l{KZ\'= PjԆ ])bTüz[Q6pu؍Z|Ƚ++ӤA޻('(iu]2#{<Ӑ!@2TR76FNwp9G`A`*AޜS3T Fctu-N]g;L/}]x~`[W3e_qnHO< c5q_O2 wk߹K}tfϳ{c֍siʰq󺏶6A=~ 9CE%FJbģy^`i2؆Ăh ZSX\ @tOWE*Z9Z^0z bW70#Jo'DOA: k20'#WvzH߅Zc dq-g-w Y{8l)796`#7£׮ 7j1P)p_W ?2ĥ4R? {,`q([p?0 /w!u¤;T[;^xm4MVO_ !u'۾ 5^ZWXp;2 dz(`. 4<2oBA>5: hO] zI'IyNװex|u/9ܣ^+TRE =v 1e#0[ķJ}^'r,R}:EgȒcE =rpIL{𹊣"g\ $]~Նs\t\n_(\!}._-wt=䔯 s+MA/~hvmWǏ*1ix 3GVc+%L'||\WĺkM d7Ky1{p ^}XN+r ZkQ8'LKꆜ ]WBG8(63W8{(W0;H`!c Qҵ&e\ߑ$z8C?ȭ7cgm45(vrK |3S>W׎Åt ;KۄF 7=c$yHm"7mi[l_W=nYp^=;^+`-굾3dWxC<(qYvďl y(εS%-[{s_u^7@}v:A[gZXbq Q;pJ799m9ڭαFn~lj1Nslb#03رR Tk G!w YCyvX۱"6&ZvE04F?h*6):ۿ09t04#*Z^S^k%O4%G+`]=Oԗ6^sl$KeϏ7`+YM]6sƥ6´w zz_Ek@٭59Q11\ͩ#zaOH35O'5ú+"wFՇIr67r_at{6D{z֢Ƨ1y!jԢR捃N[7Iy$/-V?Q>Uu xv= '/tPiW8PT=XnvicK^̃Sj-^o|BۼW6Km7O0PI ӻ>Ž}qݗľM*d<8ś,NITw ⶙ƝQmJ47}_\Mwzy M8-x_ Ҍu;t~Ǘ`w݉nE 3wSzpFvroaPo,kG*bĽd/ivS*#]ؗC6vN\~.?Ƭ)o}Ǻ썝ʤ~mnK7ofdI˔ᝅulr\/ji^]%8F%w^9 Nw(HE_ ej0hQ+)({[RcK?cwb,p=2hlx]s=JNO#roԈ~>/O zE;u{ GK&w]>|ڋ[}\Q&l{7h33zPl);jb:25Bz/t%L ϢNK;Ov|P +}ߎ؇^.3E߁zT}݃H'l+D/Wg 1~&|B/p?GFő7B){S_TRT`47T KY'w^S["M- GYa:~t9֋20&+$"ܚfzAzg}`EMڅ,-b`^;j8=۞G_\~W'.1 `?meЛzp>lZ,xlCLG1Cߥs@}4? zbt0t`}͙Õ{. Q}χlHzLSD R[e"MDoW# vQZa" z;ۖarSB|ň*%δW&hpMT뜻r ʢE(C(rㅏgWw&@!Taio9f$V,QGl1uߢ3K>g!pExoLB_d=Ö|pbF0#~rJY '^@7^k|.FoԹF&sY#ӳ="\* cb+8K0^sc|MM QT1oG Й9*(V(uQ}bΙE9naXs^jƊ]sj-XݾP ހjUc%& Q+'pڊ'CHV- MBĞ/c`+hC/QL+^z4Sbo-aŒ=r'w2/h^4bkx:>/q-эWP@AYd"=kqq}SVhw.}8wK3Ձ٘ɯߕjb~\9BTHfP( 7@uͰ5a=j][͢::qt5cpiD?5Z ǰ)qX;(:۟z%П\qriҚ^mw'E" $C;Cg!UJ2:\ĞߦWYBCվ0vv~{ţ:m*Yv}~˫^ 4K̘?,2r\NƐX߇ j[qg͚OVŧr/1O"6cC(~ފ&ҿ̬gE[ӌEkMuHe_~hE5Y݇DS{ OlU1DKq4|O ߒtj%c@GN /-T0jܨ(з*av_6E`16UPw'A[:ZxU+^M*NV2$A =={g y O ucwUڿ=n)G6's^jQϹ]`@\a7}K^P𗲹w*:>!h_ɿo82Zom3WMYԽ]Xw;l%=ń]=LS 銵BB/1:X5]yavܷM7h5IXR1uMI3y骰WmbN|r'U9JAwT"ch ]n(y ,{>[O; =A,uz٥yJw3~<Ϡ@l׾g) +Q|L~'pLK&G \ֳx<,_U'77,@ uU*q/j4Mq_٢n%cDK4Czt15O3WNGM|;ǹ.-6&AiD5NEэP="m4%JoTEU[rw-Ǭ3QE?EwWazDhصs=b  )Xc$Ru6DrroTUF9cq`8w=/UǰFSfH_􀹨o<<'5™\;m?Rՙ./Mfw;3mx74 /XFrFxnߝQ\|L^k86ڻA2 ҙ֑JՇ@5Y%P=j> ]aH,>On~؛C;0AD'ӦHVQ;˨|N04.]j@Fa]I]Ќ}dV{P0Z`i^4MV#g\ Hə3|RsG]!0+-*g0lF>gU37!3Ҩ$"=u9F2zۤ{ U.dH'?a1ߪ=U/ ӂr Ԡz!\C Gc>P=Zqx͸Ogc|X1~_AD;Mϟj<-kMrf#%FW=KfʳWa?y̥Wft̓긑dҎ#)x=;IlL p?uv)k2O3C1^G4+#ţ@->Rl壡fR#zt ~$ӨQ L3>kω6۸jW-Jv[tH0sަ\0x\_c|fι=s6aH}-X!G\~ 륥 ЍE{2D]og},I|C0LN&l"WT ǽ 9b)}ըԴ'؆_a)x!9#G$uPs'zE6qt LR 9ɕۼS K^Ekv%D)5/WCz_Zk)ԟB%px{J'ҸDۨ; YL2e]`}.Y½DVnx=Ze%{Gw5Q 6DA*'$*J5`0.Yd>] fP1K)tH7$'ܢW/3Ky8VoadKMjrqM|PdҖ {UN֢1#Y$yԞdksd$ 9ƢX9%BijtǸQP̟8Hzax:bSF>7_Ҿ#KI'JVWOjqɔx7Mmꤑ>μlL % T.oX=Im(S0&bSCzO)L&0*7<ݷHnhQ,P{-Ү"^vcZ|M{"ڬ=*y4]J9 gb[ &J&qyNq`Y"u:!9솵hy@ӝ&q>K~ѻH>I7 _I^lݛ5k}=kG{7GwfZU023֊ ѷ3D~0K5vo7FN0~-INcz^NӰI$֎ZuqfJ~xq!=N6iҽ8ДT=ҴP*k_y+oJBԗwq SYOQS*Eh= cwaa$Fو`y^̯Ԡ!< DCKN2斏b=K^7"P#?u 7'@.8/w7B2# ϥ ~fFͺ~?ߑ>7fU|"jԗ 6<Oy:J/7ҹŊ= س'3Mx m@KkA{ &?bQcP>a?ߥsT=CFeb𙎏=t;}D,&=O3]½ᗱH3j>wc|} 2"I 3swDPw2ʣ'Ӫy7z]Oa}SlY=4eDcQRkռA(}$̴G^3G'ep۾!-1f$[ Y4Qq#=Ìjv;|o %6I=H7 ,瀮/ sn0p!m y2S\2HǞQ.B{iɛ뮒5G9ioDF EX'EEg3<1T/;_11!3˟؍X+A)߇2ɨnb܉YhsΨ[p}& 5_vn rWtGj4u{HrRB`U%%O\N ktkEX&Inz z,gplW~ |zk^r[E,񝸀~"yqKgQoN3R^doyv[kZn~kX#O cn..ڏbI|S=Yyz\~foc}zзqoهa" 8H)Y鞕yS-fM$V EdŌv(˓8ceU+l. K)+@m"De%VBXhjlPS|Kk݋ F֗vDA̽ze[Ea4sRsLu}kys~>`Dݐ؃wr eh^8S^5{}hDْwe"ߦrD[~gwM%.Dk+Co&pM:)4PVqq. m@Wvm?a4NG%d4wj([כXqbg:yם醝xLfȯE>kn>XU*sCc4mDZ+e[״ Lh_ہ$ˠ5'+\h:,':.rX^ѽl?rriǻ۽`|$afԃVRosOK' #N|7S1n5n{m 8ցZhax``f^pCr J9Oc3OZ=ldcFJT?xaS^!㚋#!p'0)DD:Cxfvd>`R/֗fޏ7_v9VIb|7dY[?}V2NN,Nj+bIzB㧁vf-fEizk5} rS"o k:fͽ^8N5άRދxfH 㘯?l=32j\OrPFd$d( ?X1LVuFM %GJWp?=T!Blƈd4iШPn"/s+GQ٦Qfc"@}%^Dk}PpY_Oz& <^≚מjInN\2hWkj\__}~EQVd5. #M'Gb9+V6t}C;bW{?]j|Zk9d$! ^syqXlޡIwzXiHvhC_bXJ74+g'TAidz~i1eq q."/>a@>h#\0|V Q+H^Qt?:5šFؗrޫ8IDO}yB՚4Lأ>Ƌ /&K {Y)uX &cQ )S==g}gPW-{ݷbh#X(N8㘨^Պ3̥g`x7|oX,xSKk;^*4u%ɜzo,   W#Z% j8x<=VIW`pcr";UI}WOdb? qaOB =m; P%4GFi+Rp&hq8{owN}N M2 v4$!a~#"71)/nQaSiȵ?jP>'hlEwOSJ?PV1KU+@+IDoa'Ii?äQ+br^"FԱDl[̚hrfΟlq,4$FUw2[UFYAz G \@<{ͷ*wVM:v-$%M?NOK8zMEH-v*<nSe<ەˬyTWܤs %yoQ_S߻-$ɀ) RˢHݥ?fxI}dr:e3^=#RӅw]_jqD CynOj:!N᭙ ƪ]H]nVM_zg{ԇ=1n4CÁB9vpGىH$tGd %cH݅X.G=&{EQ*nkwn7;8nx؃3o_L&=EMI&减wήUew9~uPLut+mC踗qR>=GOjex >>Uv[暅LvڰbӯMC;K&<å c+|A$Y;J*y%s>ozo6N~Pt\}$«7PVs7)&"K#D]gqMRsJ5q^0>`Ɍ۠2\"8)c yb޿od*9~u r{c#P߫CxkBQ|\Zůw'* 8B=\b+SSё*LuUKtylY)M/Ð 68|7he)+>[. a¿ &cL'NbOՋ8</} Yv_wJB[}L #uïrhL׺2GB^ч8xߚnUkuf^C(廈dcGE<'5>[|SJQNG[xҏ0ND?XA*_jk5 ]&3|=@'B*Sv+T^9slWSxF Lo[D2Ud^PB0ce h5|t`fNNm}"W=*F_;$SbKE .2DL&Db>&d(4=zxh(.6~6FP:Q2~,tcF6/L,gs-rny"E/ '4'D$BXS պoLGջ6 7R5XB)?'Gx²3MvfTc2[eN?/)ߛ/^U+,_bFş^[i(G XyF?Er1pu<:U+9m]qV eZ5tc1(5G1Fjح_.vEGԇݯbi$_[䒰b!ץ%QqeD}` lU7G̶_P:Bl!Td_N`buEZh#׍{gYȴXR!s}o'FP>QƏ(%08Hd8u(znTG7K%uXҮJ;t3 Lr?ypUH%f>QsWB]v-VDҊfs#;-jY*cӥ+hƙ$4P= U0~:MnQ":+Z{߉>'@ﳿߔ#ɆdI[ߕ?u-bUod4[s/7Hҕ~` -S4[ LGd^Vtt 뉔}[bu~îB |Bn̵O'֨Q`S%\"[_|oڽw&:iXUr p.Յ7 \pA%IHn}}Es~VqVx }t<rap&k"!9y Uzp0]ǖ=og1.ۧG~Dͳd9q/ f-Qs/ 5!8Yd6(}8rY盔fTSg{0 yS?@;xO%->n}YpD%*Ij-m֖5ʠ5n[:Ws!oX/.װ4^^ʶ{6|}Y[=֚C2`X""lPmZL{ ^q#-mOV_/-}RBb>L}J>^VZZVx.B^{M 5 S X+Ɋ,潜\x)<6Z X+}(DK$[_ӫP57 5<M/׀o`˾obʨFhȏƒz`)z ~ye{<~Ў`WP;t%:y7.J3/&*!fzC0AqRfUޒ=8SV^(LZO^ s1~'8b6M>m᪖nm=">!M*tY@lo2凇rTY6i;#K65ߵ!<$_ݴ`NrIYB;j>8uve; ĢbY?(B;_E_ZlBa41;C0unmr,RPU+<^%V='&t9j0.rWu\.Q: > yۅ/cpgG[fDiR͢W]h6wzdtqd,tG!E ;jv ^|e.oUɀ{]}Ϡݘ0h0yy|&E+Noio0-%1ZS+61a懕]c<4wln-?$oun9(n`; 164`+9K/f$GCOKsHK$#ٷcު R~Q6 |R踪*4>QGuhX^z}zre,n1!i+yPKX?h:q?fx tpjuPnPfoM!:\ܫ(v M ('#Y>Lr:Ώ,j B&BbO_~ìc/y^F[ػ(uh x0 b[*wr~ĕSǽ?(_ W} e?n|V'VhA=CߏRF9X3'20EGЌgi`g0*9IS1Kr{u^؈I4 57pb0XVsqo8\9md9X)A- LqDF#*\rMaCo]NxG?uwSrhqy%cDj`wrʀ^D_`٣ϕ3tM1wѕ]se]۰5i*2ZÑ ņtǦ267:D~!Q!bjhG (g;>hrBݎdM3bt|@Vb *0&_S»S7˩S"p!ne4 Ъdhs["Y.럫aϹu;*A&cqst{M+e"qft4D{O=sGYQՏjR.xD 53L;(F6-䥇NOtWFE-F R?bqBHyBfpt(%Ii]/T#jD͈Lջ,ur𩊔զ!;[0\{]Ǜap|#}]ww铡*,)*AAdTngB 5R`_d%v{sBE ̽:i\*in+U`ښ4 ʒsK~ {0b%7+Lzh a)-,|-:*gέU./Kkw54F `C}BB\`[.Npd kI.+1Dd$XfB:鱄OPDj[PA(d8Xꣁb_5~fbDdzX^,ԍ}:L#+f${b>TwhP?+;=Ty%S&;vmh@HJ=tC~2 Pqxv Zᔅ?, 7u34&J7;>+ׅCW[O-44Nm_fOߞ7/g6-?-'SY²{_ӻc<+c?杞O6E*+(Q@h:&rW,n I)Wgz<iVgB p|Yx.DFg4٫Rݲ :1b.-v_#=p_jHwVxL YLF[8A[(/WQ4(/Yc7nZJ#l&2E󊆣茐,#hs}]ch`J3x%J",,`(̨JgM C4w~nxh^E |[yd\?"[%[5XNҊg%N P%_z-yYֆ{R>.!qnc&9'ԅuG|c˿m#Ex0R߭f"3i}}~<8,V|A @=@L@Pƃ%xOGJBW(L$P|,ᩪ}zcYmYBU 2I?~z_ȈN*B>sE`p0bJ' s?56:%bì׬$6=6dE٥ V\.Mc" TAdEUs -܆Q{NkxNs[9b2}l `Y]ӮLwNL~?\ y-H>I)kBRp`SJq%A,r[[f'L0g=m*`' vӜBbaȐE(w<|Pba܅q贔,FC._8dۡewUP m#cVJ,:蠣> h [۱8~yJ4C rµlnF-*ϯUOBd3^يEMxZ.ACUUW.Hs.$h F"lMֳKv;b;{6NS(ه]#Z/F)3uwgD`vQCzt2d S-ר6۞ХTIl34y`2.֍ޛd4휅X h?ĚlCO;kgV.7|?su  hN 胅gr@uMmƬh@"ۆ>1^V9qe^kc"i}!r.%U͕X%{Ǎ0μfQc]^'`ۗ~I_kD㔡M}ȇ>;OR笉~1 ز{(6kU-/x@ fn-֩d,q1۠.!suMa΅k;'c~[7DA 4NbS_Yv$4Gdhz6g`M`a#2 mǯu|pjD\ljL:G3$t/ rzWPWn+Eܴ 6ÒR4nms8^1zO^67Dȧ^/yrfL֌v[o\Rcj|wP{5%~EM5)ko^[˅o[}*|H%|@{d bie0^hcoe xh9ԒR*QFŎZ_FX6֡_Nf=ͯfpO=9wFaGJNt02Y=ݕ'e7+An<"x@4#iCbx052^҇ s F #)rb2E3ƣjej+Cq(;;;[k+KMЖ?t 6CB_dw '5۱E.vnlfWM߄0ω}.w p\sFF[77m ;&lNqĕyծpy"2nbwDگT7\ *$6|WÍ )0orf_bKOC O>kv+@Ja9AxNryr_ v\cՆ`=pNXBhJ`kVYUfΪA(sӢ6UFٟq /?l,q4k ~VT$*-2>cp{sN ~l2h%8&> $Άe/UUX>p;29wvWmoDE.mw)݀ȣTGԻ҂\<aiBj5MA0tי"GG*>\-M>Ub&*<M%3Ha /TU9B߼+0'f\!wl#LmAuueڢsb q\Z ƕ Tqm`t;YbAE>J*SQmFԜ_csj8W-2Ct9~瘮*.T>1Vr]L$-쀯)垢 cPF}|NGDQH޼%lҥiJi ܤg=2@UIgIU+RX-_%= tMCD5mN.mѪULJq$_%򊶲.!ա*O+4&U: WGe¶uqch΅P՝گ aX:@31ybnQ&7%Ty' ǙaXwu>}t5TE`S`~Yv}I@` UIxd`?Qݯn>1JN?)_~ifyS5تX A̟o@9wM$k-`I A|^*8@rGЕ~ +X7;k0Vux^NMyP#w:u!))q؈=ŕi(pe^o{ ?23dz]tJdc:i$9悧1mA*[uN+4-6FwQadž\,[c6%X-o/ ^2% %7/Iܥn=~5t"w,5me-9z;t2zUoI1w[* 8fPuc3.+3xCt:{ ;Eee'@XG-GB-&XT?HH~:a8ug P˵^Yw+5? 7(ο: Kk3y( l G`F4c}:S"/wgYַ[.e>K>qmbOv9$ wcLuScBڿ~}E zQ欢 8Yw4,B 㻽͡ k'^c)By8I鍿!uc S?̓f{35,G> EFZ%IM$1M2 [}K,բ=„ K_}KϬIiti~2<Œםxq˝Vtgsk:#\o1X#C@+P }w=b7#kHRfeQrDwt ]#CoE܌"`DZaiQM/:egߠA*DKUzoNS@v VT/\rUi(YB8'X1K6hhZ+o..ބ9hphrB> jA8xxxbpyMk'1]tdG2Yf_q0+"p>\g8X镚쑰Gad5RȓBW:|}> [t)>5[?~^F4|Tktnޠ*Dc[VsB>-v0y~{uX6k -N]ںgFMOק}4 ֯p 5u@ 赛JԪ v,_2r:'%2A %@m\-4wWr7Ko>ۣgV_~'-?~=lcwC(`ńxßҼ?]cY40?+//j5Egۤ2 e{E^ ؏ '@nС~0h!6_伣ۻ;\nYxc [,̑>Jx:>>jCg9cq`lq,]O: ]eOe rf"ykOŠKf^ [ߪ){53W" SOtXxu]#+8A}|^Hwr:`vٳF#4V@ʖ"f;ْ\oi.=i-_WCvf-c,ʒQlv:nB)_>XLtF4g/Z[l\n/Y80ݴ#oV+٦:!(^8 B >o/?x3csҊ%tWwCP~K&鴘FEtj/.Y^!p>;p4: 0>jMT@/GSjNw+߯ʮjK%\juF_oۅ'5)tWca{5:G}$*StBs*4ٕ)\_|ՏGY."bB%6_D:/ >n ]vYQ qHr@QRWrpF & 71: >Bvhw>:s9ݜX!iηF͓֓c]L7 nj Q7!EUI?-PޓhhY YZ#sh!H݃-%wUO*m7ww\\ٶ3 جKJ!1' X+\;4=_YK{B{b#'5)xJ'Le^bOz^h ~u5m&i"I*Hf$K~Wk̏YH _,M+zWa4{5[] "BHLnN kf!dNă/`<(Hdd<@;(q9P!AhR $\=Z+$>HRi 1!' JVWR7sh^"3{}GXI }3pd O`tÂƸsBi4Bd٬{rHH\t`!4f ͷL"1k0V"WG+#&J4ӷ(Mg6%84a{_; 2>yR:kC⓪s7d#{)#tf;<Ƕ9;A?\"3%`* [ I}<^gr,|v+>(R3%dʂ;7Bo*A/.%\F7O;`&7B~t|'lF]:5^/T FlT@kuQ$F1h)Kt.l@Lz,9 4T2N)}췩zeS`"ߓW=9tӝFtvOf%;I}$ '(ݍ3wwqVxqݰu[;8{8kEeѹVUh!}URO(%0,yPP}}1e({dd 6e@yyo#2DLˡՃ\i>m?hRwGw j@Uq4|M3tr;57ev%hgS5Pʵ\NJ2qϩ7Zmafqm=QͲď6[kϑ{O]ƴHS:g^fMz :ͧR%#'s 76X5L痺7a$;[˳cxc5[0Cޝ ϭ'9cwh@r 7iRv!x2ܩ 4$pAjv=\94񅁂7W#q+'}Qwxl0ܙi{w{|ǁ*!6,M|?vզ ݪHwȁ{zõyWQ(]:qndfච vX@p'Gv2x̪mE#S"ioMl.Ix}h_(Ps*Ҍk=- "XAMwp>mKR:_h]ʓw~Yje}7_A7oBl@"֔[c2T6SkY/j?鸮NIr1clxL d2#X60/ߛ}%# <<(s's{WIl]xy~2n;'7uIk:Z4'mѯ7[4/NeI3Ox[L8f|foȐGjo{[|~6,ݟ׈}wMĚj[ձ1uMTIQWUh^cs,nSrRM&=pZF߻YJk3)2/cU4eMЊ:#ȫgM~IX (!z>9sVԦ[G󦌸vZ(kDҁaW{J#xR_"6%f?/k<֫ydD09_11)?7auwg[2BEw=S Fp.IJ>L(SB6_d0ezMptʺɮ "|aOw0dq0E5Iq]>y`,^7|l({?^Hgq>?zK>/\{*k&T)oy{ n {?= Sz5tNq tHG"V~Mt^k|CpI"Ph4)u=z\S?-;~gmT[~=Iߤ@Q)1`e$ 1Iyuͬ<> }J®<]pƀ=c01-9Aj}$*MuEB{\RӁRO NGU@\;KPڂ0d< oL_3[zʷLTgY;e |wg lаh|oP>lHoXBղzꮯiU@]'Ik())4N}"q]"*/.15HhY>5z.2|JX;'@Wih1VYNd&0 ~Z>J+`R{0, B$Fu˴~K;O5hh䜋DY{GSa'GQ!`+6\ŏ~֜ςZ߹1A { Sн^XO:vD5^ܿYsd!'wS; <`5#ժ?\c_?PBϩ刟v>тW_GS{'7&RnQz ƵnSWdvO=Rߧ^i@q2~H+Zϥ_OL:Vd3@m{@ݭΪA]e/e?0ݸݢ$39.?'.zYsOm h48>#+OΙ +0*jX'hbX=G"kTICV/$}B*ZP <+GƠߒ*1&^1"3YߢxxhYwIŐj[4vT#ŷw9~^NUI"o6̜PN2MT>V2_7Fb]bhw*AYcNMNH-܀3A\G_pVs8۳z\A.pma59O ť.+qNݵ^쒯3gz ƒݽj#2 -GJ{ҷ1OfYCq06{9x V%]kKND8[tQStɡfF٨al6KSu~Z,ZBG"Lk_K[fg%Jϛ3:$]`SJq~^`L登m;E1LJ(EGFjAW?APފ=Fce5~.oF}M{cu[~S(]zT/5Sw~y"hp#i|IGA PK9G||du6Ee8ODYAT<>8(+*sš') pm7_cD3Kܯg'ՀHDemK*"ESę ,A_!_(/N.u v} ޻?TZ|͆Y i)ɯfk^-CN=<`^A_dRo!*KCz,k?d"ޛ۴qɎ^WqiP O:Q,*ESInɨx Is#@>R?V=o) EXΤOuDM)L)5h3͊Cԅ{B]ywe;w*K3>{k(΍]DB9 ,K o[aÊi͓9d NGF%lKQK͊ya,ؓe+!ب ?/cdlVZSsdz^JfZ{;~-܉>ϻ}|֖J xğdvG ^yKuI.w_0A.b.`a[!|;O 0*NR/~ݿB6Jb P"pagW=PtS'T_ͥ읱>#_w|JK'` v3Ej+x߰>fE/oA eӶh<+%F[#4 ׎p֯#UUdvaL멸O[%}Bᙓ45Ib j}?Hj𮅰]Ja|ׂ~x$ =Mr) l4+fPF\~vc+#^u!|i^LaИln6񩡖AD?W+OB#.sUXGH{. {?@Whg-.lj2؍N46pjp*@7pMhGaWaVFXƙb'H`ZFzK F׿]"~kZo"e\ "/%<3 "/TT&J =y"{=^4$,wBѲ;㹇j|g iOR37,9["Tޏ|x H;)OvP׎6S'PЎ zjEE_> z! jkU(,`Jn=;Ϊ,Ss;2 ğG=@=16A_gV4 %D (Nd $"H &GV5â(:\F>G[m}|dݸβ}@!4 5>wAM䚋H)*Eʆ>F:.I<i2Jdon6K04tj@^ ZPC&/V=F] ˁ6$mㆦ׬- ˘P%CV=ݯm #N܀ӻYb[~#/6p=5Tq A3*ʽ6oQ{=d1pAWLHrne{}?J>C)pt>ٯmuŷǏ{ΚRW )wF-2̿"%_̫343 P~A:# {\Cnf!]YTZ?h~6o_\GZ2ۺxk%'u 4gnx.{.3:t%(o→cLIFuV[ǟ7DMHvN|* GʘVARp4`|o10Yү3OGS1Fz"QVZJBv Pc9> (&:8_%Gt>SMYw*[xc`>.DAWZP0$CZiS0dZ5dqdmaAe''g[v?AB.gu sRiw}y3&zKj6YƏɬ$E>X:h6I!h ;'sVIt}Ƞp7%J%ң J%aw5%.a UN\?)0On P7>+~pP:CҤT&m,K-)>Yn\DAEa8C6n3̟\ 1ldC׋.(ǿ3:AR,d>Kt26r a"j NJl8m[t,C КVByVw}K߯lJt`d KAޤ@AP]h2`Do)E]8-)Xybv#YC= р?p J-mﻴj8#r).šzAvͪЗƠ4 ܏тh$O1LN).)F /ݡr\2^X?1t/޶^#㥀Othզ3!>1l|ڭW(@^p?>);;Io4h{<%UJ[<8ۥ=O{.nZM^`,,_9U{dCD,,eL1ͱB~4[5g _=-W=7X;`i`ȴKk8{iӣ *~RܦkKxKTrܦjB펥d/#Ѕ*|~WƬhz}қ [l҇R:gvqGYg0KjeYJ׊~\W^uHa) !'Jnۺfbz0\T-6k'Sm}oVvKNR0\po0S[=Nȅ~~! lCE>I1OԩI(-Տ":I_CGP#]VV .+r}Nwr3h$5k0uPZ,SV?z2z¦Z}<岘+l_ÖJ+6v}؜EDVÐ`nUM ~V3VXX2cU;o":vYÂ.Oru\^@XzѶ[K㻠wNV&y_K]uO]tzp8Ԕڜ4ot2cdG-g^Vw!* h*vܟax>=s~ScThObL6iٕc]lYjNZY>D,\aTNΓep+?&r M2》sd>ƺs 0yEE\^qL65mnO{ȑ:ړ^+1wt nwCpcI+Mj9FXY2s$ {k#|[A2(,=HbM'+Ux0 Qr>I'# ;{ O^ -lx0K 8:aaNl ^[DYfc(GCQ>UV@G_+BON\Z~+z9Q^־&< RbbVڐV=TCgؿ-bX ~~#ݳCY]Kw@,_^,6@">āJk/ph" ~UbCL`O}fTTY= h<׵99otuU)|0юZ5y\·mf6z4QLxP$)5:|5,m8hz8?_E*qv^0XJ705b])r̓˘!~EŅٷ_\+sTN;E-> aKz4bW -cVڼ5K*,}=H FQ 0--&<ƟQSHkf[RKUcBQ~Q3Kҕ߿ X{Q7Cy"H4@[C_|(տxYĢf"YHTVe S8[?9МNA\[oe/qkuiGcä́sBhB7MtFa.=SWK;Ņ,4zdLA_BT2by.{f~]5ʞ 38u2]'ďKk׼/4Oxs1_ S.og9=ȩԃ 0'd*rJP/;-F hrZO6v/G{(0)gPߙ^p LFRN#P~{?omM@y!_^Ĉ7ŗJ T(񱚑E`Fu[,xـr.8=l-W_Q(m;a$A^eo_,6Xa8LϦ"\-}`G9gC*{95mzA\%ećUBΧ|ψR9t : WC) (Gu0+F⮆8L_G7)º,ky+<^mPPXKXȊmq3^'C:OY1ǘ̾Z+24=(JX3GzCR҆U?aeVtk@?)o-OZD]cjy/3p]rQ(*(K!#VƎ} o}PLxw"=NGY'y;F9;lI{Ml!Ҧj]ML ͺo-| 5 ?EZDP@[6f.$ \fd_PgSC~/g*'_&]JES }a,*5AUP e [R_xfs:k\qt-6J E 89eR\Dq:M/KZЍ]puy 90A#(pQ( |k*YX֩˖m["w* ڛQCk7*0!h>ziМH!ݒfy41SB %.ms<6ψet} ~aT~X" RrPeay8`iqWR>| ibK;g E:ځWeUV=?P7G߷1 ͽVixF绢:CE. ]ZDm 1&yJ[/O3\* l46kr.So*RU%ϫ2PHo@JR L*FT̹++ @+\pW A GuVMezmErҊq~g<|)c3B|5%FNɻX}y$= G ‡]fFCKJ}33Z@gk)GK ۜ@] ֜}qsəd6xl4FuxК)nz. MV%-ih: iyd/ܯ>*;(Wj+j9> 9zRFE2GUW_]G:Q8?G%TQ_t/*GԿ>5 2qpC5o9ԭ#JvگkUAMR1CZŧ)_gT4Voڎz=-QQB6.l< ' +d`*+D4Y>qFSLqᗾ;,nZCm]0g&Z} )[I;i: "W*k 6m/1R d0hR|+ ޛ0,`ؙ>RDQ2? L N2K0x [J=+7S!8 `)R?!-~u =I >T㦣h- zP`\yg eZ; Գ \mR>W`i{T[/{ͅ:#tU)O/-T5^֜7cg dQ? P2'X,O)L3ڦnc}xitZ-NsCI֪o]":RjB-(Jt051G"״'f8DQ 8V,Y6c\4IY}DU@g;IDrD-*ڔqT ͘YrµQ_q:bE\CF?K+;mL\J;Xrjr.=hDOn>ad w&Cվ{-NHJOAEoxc#Q_yv>dljEaķ 0dk9v5$u)ɂT]oJP_3TZ.'-utQf^xaS s/WDR  \elg`@_@.,QԈfIε8P3ͭЕo) WQr(Q/D)}+DEIzoԪ,餂/[*IGJDy[DE5}^@z/Bd5?s%q׬VO-*wJOR@PA,FplG ">ɘ[^>8" 4 j YZVL R1 Fg'{/ a'x8Zd~=<@.u V5'K7(L%ׅOHp|~; ۇ#Iۥǥ@X\z05Hxba+p#=QF^]}& [Xa}' bDy\@uҀRvT g);*ZEd>*YS85̳t$c&):9Ut5@04UM"ס >SMlzk`Ihk]]ؼ i=7xrf;$42"ʰoO yD#WzJur P˪?prTjq)"Yf V(>Sy]U6|L&}zQ: ~po$2ʐN!:kKD:2 ]ޞë?o:nHPN2,[,td&_ƺǢJn? u$2KB;Nϛwxt#/Ԙ)I_+{yS>` F'eJu{7r]aP'C^*#. lTʃ‚Q*[ϖ&BҙyI;87 ~LޓD  T=j|+ ;m)Ydǡ5+$d9#ڷ 1KF4LÏ`'[J' ՎwonoPlv-@z_S-*zd6ݾ}I?9MPtTAj<B%į̭ZoioS*yk$IYe'jK݂ WΝ?6kpt MeE:eI $Nbv]``Qr99Gb 41q}'^*?aOxO*lo&=I'jkuFUQ \գD_﫸\A4]C4Ω eܲC֣3]B 0kM ~}[g1d!hYځv4=]+cFK_vnLȴ 'QF45`yV\" 9߬kEw7tW֣ԅ/Q/:j~r/;LQԜ/V>޹9qNkiqǽ$U V:\ȲG1d.>ky=-&ubWҁim||oU΂c o6}DSGlj0G i> H:2:=z4Db ![?s5.>kP:;#Xrv4z?`.!NT!W s L7)Es.["ކ+}a|/1OiVZlR r$֎Hvue!Cm^R6v"C/ٟLs PF<\s2Y a]ɷ1TBd-BOoC)֨\) ]GSZob}4L^$S EK/A AŁ}B"9t dr\hC2912⤤|q ,B*zA_6s벁ޢUL/JǦZur}+րl۫.P;u5ZȦGyenZP޳8#3uX0 ?˓qG{-P 养 JQr2T//p5ⵣ( N-}*:?HN[/C^z (oji5`RS OZM{-p ]}k p· ('GGYzDK7i:k#]twĀDۏ!pmbuQm ZQI0]H ^",UӢtKz]v"&R`-਽_Wش k1_EmtstW%hT|9*8Tg _D\+Wā-G joiFVZ?P.Rq6ӮW׽# u !l*15:X/"): BPkD:>D5#ME)_̧|h_Tv^*{ẰSҿΩQ#_Rp\I}3o_2;gYDCFyG\ֺ$8]´#S>SI 8~ZlO u18"YU}3ʼn7- p7XU]~ܛ>bКⳟ̲geU[>>LcE Jѯ-i~`9yR;e^j- /,bLQU)`(QOeJ?,μ"o!7[pkˁkuQaLJMS] *Q81KIr]`P$VÓN/k~ OΜ[Qdo_8 8 nߨ4,uckNOg_RK\tN,M)#(|܏[o<=*k5eRSQ䀘TYF_pΈ'ūl)T [Vo-qk}9׈#_#}.rҌ`kLen)`.x@m'ſ ےИ!]N&lLeKVF%'͚ׄr)0xؖʁ eR/+=S`fq7\~X MC1Թ'zcoV1—K3^.!|kWPl25&\{. hj]\A+wdq2kBL ̸!WGy xA&|Œ`!8_Q2bmټJj[0B| ĄBbKFROlp^qφLk|!E(c)wAţ+7|v`6^rU &fdp.IH&4g_`;vƉgSq]ۚ 6I1̼ٖ l\RRt/IX(oyxNJ^v?2@ɇ ! A{Wm~@Fn#+}DhL[/!td-MU~@C.M~oỈr }ɼ=~J9Y(õU@  f3&~g}T =d#=BrtӘnCՈJX5jeu$TFm+V}1FmmǾw'W3^sȪ؀x%)0d6x__*90Nۦ%d 4` s$c|gW(M~R^i|߭Re03\/h]&˪InX(¸Y)F:4HV.+JlrïUô|}taӉFn:,=Auf;Oچ!"&g?#anrܐՖdAQ(~>&0h0OԇDq %#qr\5>xHMD)wՠt.w*\8PEpO>@&ס?M,t }T|orXWBSW) Uc^%ej l#X3y..#+T)P?< [e%^K^&+zHi%fdڔ!)+o_TqwyW`-x !nCIɤ5md"J"㣈* ךCK)z3( )7YR/7tjP+5c[ݣ ;.AZ]q1}`PUwSyx/ d쉀P=p 4-#G3 A_\AoV 9(LQ89 J3ijPms83q;GmDpGG1-;cb0FsUx8I%OYY:ENTnѯ;Ynfa4'd}mp_vG&ăDZ\ΡWU* Zc% `פ LcY6MK'2pd=K)~]$Zǁ4%o 48MEq'2BɣOF5%7{j4Ury>MN,UJۣá7wNtg{a0`ZUl~0ۨ7"^(X?=@a dr-Ƥm =2JO K|YFA+u:b `z MHn+N|Oh@Ҥ可=;d)RtRb:E%>x%$Vҿ -_iKYis(,K}fWs*"YpK$*g\J'RGK1:"3E}&]?TȰ|$傇>I?%Mhf#dQ%0!bݟ$Vh ̈*9%rsqv rr?W <2R^3g7? QF3V)U)'A)TH֟8A3lsx[jm,pgm9r^+ 5 S*) S—\2hP ݒ W'?e^\Pg%-Y\)S8Ϭ6-cH ͖yܯWU-Cg[bm|lq8V\ׇHsOEmc[ls }ܺ3y[O1Ƣ7_Llj|v=YX Wqu7Ơ+kY㚚;JҨft8^0@oh\>mAsiA ې'tWԪ&[*Љ uӆ-e?` ^ٳƫ,0R̯J.% CɺmH+@L B"1F٥ZgJ{gᄌ\<ӹRSPF[#UT/Jn j_'y|~1҉4DNK(h`"Fx#(㐧ƗUPN0 _B$D{ !ܯg^$UR MX/x)̧=TgG[*&6Vcro]h,ǻ}g 7"B g Ffw'J+q[q|?KG:{iwtN,פy1퐃]he-r ;J~[?}E}^.tZD^1Y ?#:F ͉K(U'!דCs④^,! !G-0O~Xo^(z( dUsI.Dj\PO'm37PMK~ҚmSqi_`7Մ'/+Ud*_'v^;9l<^e(4XjȻMjm[uvYѿn?^3, m2*MC( OڣŐuEA"35y@N0wD}dK礨?<{lG-0TJs]  owTކa"`3[csiw-p4HdQNNAtr2 u}-/!]{'fK:L[ )˓;Q}~w>e}z97MqcME4՟A"F%2gM`_?e 9/rq/A 4U7-(v0 1s4UY/[(UC=R1U@kD4=Z !fifƗ6AKn㿪{.IroA*Iʛ?˨ L v^-D"E,JDXj~=?5'xʕqʪƆ-D")3IR|&"Hfb>)EId R e?mQPBZ&*VfXtorMp2vF aUՕ\{|׈@ߣ\M\Gp#l/<>d*]Kҩئ7Zq~ #&[~}(nO] hC 'F8 3 "lO8Ƙ#zvkbWy|^PYۜdQl S@rR{xp7gQ"MG@&-F#?( *HmW.nkt6Ū6(\KDAZU<-MXq^Fy*xMI|D~fvc;ս.0ö*5iHvP+\ PefCv_ ͅť 6RfLLOTYX!ZvǸ|#Ѭl["aM=jVaTÌ[= j|`vD>❿Jp-'ݮ_-;Tn!%:_4KV6\6. 呕іu+0Wyr GF^AW5}Aes>I`mr߄RC]#&2zANR)r9oPpD%|5fD!4'IRzT\#}ϩfL TGW6+;R!rGo w8 Vb^;|Cf[} /,vb*WxH99ty+Q(*=“ՁXrGO9:v gZ'lqߊ\_73+0GAܤgJf{`tj ·GQT*l5*8R3om>z@gDpRڐg$)U'_q<rvy;_?~YDi!AxExj&0$Ӊܵ@?`ܿR|RR3*7~zN:[IÎ5Q=T+)#on2)Xo屽e(I"K] 2(/Nwk1#ҩ" ּK~b^7a+Swa5ãc~(2 ;/oe#:j?+KÅ"rBI{3qz&R: ~"##^7A 1^L>cutkYiW2}(FTIJFɹo5J\ә~򞀓 *y`iesL>S#4+( & a؉f$- %2ȭ3t_]>*#"i<4Ac{JX,"ŢB4OI}FiwC45<0Dİih&ʏ.yojt~LCіXu*d1 %1p0]qrb&L0̳~)E蟢~{FWrНon-H) w9SҚzHjAZE{AZۛ YZ M[Ug.'ץfz1a\ 1Sp-P}+Aoį'H +u¶%s[&Ә.+%5Hds㳿i9 n'7,}Z{+pl_-m,{0$9uh~K:MK R%vHRn9 Ԣe ^:`YЉoc0R^4PIXAlPqС +иr;#勔Wy^Ljb6Y#|NʮwV#jʀ,\#`c je@Md:j%Z5Ku˥aB C,vdQIn{>!3_}39|tR̷ޟtJ-/3`9ʺ7 ]m-t Y^0o 뜩AòjUKL#tJ2 tDyZ3lĵ;r6}sh&i(Ca{hJ HFgΡ%&- +zG%&AۦcEf{-7fFrOWg XlEv>غ!x"t}9_~[ {+~ }BW8wvtUDQ"\sYceύJ;_@4~̶q=_P7x+qɊKR4Ț229W&s~&ko>XL3U!t`hxl)6F.p\l~o@jT4E147,aу/_3`4-JJϣu1p,^=\NAjev;#-+H!X !6A٩n^0,^^G{n=QFrS XIϟ(u}-Z_}Fʪˮ& ^X|/e%+st\={Hg iFro l~ !JRva@ DmBLsm7~^ Tr`CRшqg0u)  nlg 3AX7eAཡEz.߾['Z|:7U;{ ]v'j};giƍD}c%<= =EϏX$~L{!ꦒTqex|-g3-ݧeaɍ}Csaes1=O:P(5vI+Vveۤ˷x=JƼ}:}3nmHS&Ùc悰෼r$UqxU ř Iyf,/ n\.Z8/{\NggIc]]n~h{54qn͏7Q:GLb606vƈMy4YdXRm9h\L=A *" vC-1jS1nD?h{$,߷~膚ߨzُ6Ad I'?W6[daG/s#տ m6|[Rd}+ۀ}"wx|ak~/=- i[c:KK, P&|Pʄ p<0/g`MOCaW2кoMq%\4޹ã2ݝF>f/~joƟ(CQ4`߃鯞ĕkn r'ܭ&8mXWiN&_NNkwh4]|DtG|cW2-fmi5Ir=6sx<Trзћ7[8W *5z45&ꟳ[I+7n?h=buEѺqC>QnL#,1;Ɓ@?Mp$-hyJ9ktiY^٢ 3WCxG9&nL,&:]1h& YA 0Q_%V2i49@NOiֵ^0v4Z*R@:C~Ӧʯ]@Do|3nņ{vTm~wP|a+2%dq%56/W"?zaE6'z KZH7o8ϗ%SR4^cyՅ^vZߟh8Nw~eX 6Qo Tj,H_o}`7ovu}ȯo?%|k1 kx^_Z% vQL4#:2ȘT"MGLb-ܳۡݿz--+ðJ*׏sjjL&uxdgSx;eU~AA2ny_QUdo}?\3zoXѝ}ǣTݕ=MY!CgP'n~kb\]ݰF W'Y/{z r@?C -]AQE{a6"&M@qּM͟`w,ኳ“%ǩ󓧇}`xs%ϯͅ,&:͒1%~Y MCRr۳ wq;}x֠ݞ< oQmoeR+m&kYVC++i"of(}nnͲp8vV&X]Hǔv^BqΚ*9 h?Cwx3XɅ`_f,޳7V-qmXyl_b 0F7BFSfj9,cuSU_N}d@7[ʱoT '$S?8!~:Ð_7 ruf`H"2]l\S )0$XDheg9Jo\%XsۈTUàZZ7) ț fz+z34If^+<L|'K C9nj)K0Gͨ s`# (ydH;Kyf+i()qtعs~tWUNz56ف]ǒ[.S+1gr)aDE葝hzph7`<3:ƟVCSְɲeG%~|}-P Rxz0b QwzPi(%On'k5,{ `N& a_JEuT//@sȯSɫw wW*~0AYc@ɚY<ǑߺPB>cOQl/Zj xn*ý>e"t./QExEF22n1_pɄ`ײg♦B DΎ\a&y>{ds2}KΩ9b],$Ro + Dg޴k5`oKdmi$JW_LJ?*MLA㥈,#{%smw5p+AA>$H,:6Ŝ 8Tj4@$wR!sv<fr2'0Oאx= ȡ82W0yXI"u 5_=lAѭwX÷B^G A5bp9aI裸mRX!!/^O3@EӍIbgЮ5i@yPass-!9J%ڐCVGKǣI㐽omL yix Ҩ-_V]4vFw)4W"|TY'1; ͥP1GQJ{*+e*"N?9_`&P%ַ]A_7ų\_NݓRjI ?mT}wJzN.<gn y5/zO7 JUW2U΀P؛)}݁jWX<\/+M_`빇Vga0RflUu; 2~iϽ3;W"}HIn%! M:xCTBfլSュ | b-\: c !gN>JR磬ӣ uBI&VPe/ym`' ^`hԆ\Jap >Qjym^hZ2?>!x7MBD9(3QOp-PU9] G#s(Ȝ Rkb{<N6P*-nppwF>. =3K6907l!@V4K^6/YНktͦErt^s[Wm*}y,*` Ft1gTqu~ }z,$䞡F^F5}x>O-::@dsj2CNEQ:g~v 8{feRZڌ0.e0B_³dKfXy_W_9W@u?wŪqQMo?HiPgFIx 2&dr-.v1 H_%e ia~2i ĀV֣gWj;+ Mwc>GRdݼ.ֆߞ9]RsVk iH8~4j) _J긌eg2Q:;۟&0}$V/?P%YpfZa 0 ^rrh C$&锐 !AbTW1wm g7B1JJO1w(]S(he '%z}ѿ=CPpB:#0hF)d7S`p|JubWJꇸF6\k0Oe=TVg .+#EV1W]F|[1f/ "CN*/PrRH9=Zk1if\fQKh՗s^1NpqA\ dkX.e((D]9 >QG`H`JfQ廫9.P',{Qńś+DOI?%J㱒 E\뜻_W(M&֣ *:׼`|dlt-h9lKI�cE c4{YPޞrbbI$ WF?nl.h5)zV᡽T!8lL[5o՚ѣN.g  j kǜu}&dxyoX +׏ _n=Pʅf|cp@x(#RrL%F}Upm)]YSbIA.f}Hmj{l3)d}m$ !n 'ŨQK8VA@BWك@B<(*|^@AC@RvҶuo+>48-HF}??~SVG-5Qgg /w{gA=G-z}p~Rakm '>6O"oaTRpʹC3U e*ˉ.c&oeEB)i.h]m">-no:u f:zJTڕp{%Vq|G'G$J[_k#eF@b2+F J 'h4 U(8]T)_GuG{zΝ'u @&UXп*V"ўM۝d$vR'VDF~R3q48*Nސ[{U0J31Y?ɎJK#5P?,]Y C?"<_RQ2I YC[aKnrƦnN"BǧU4q'z7RsԻ>VoSFraQ&2A]tB=ҁ64,%11_R!.[]/aQ$9"6t\rx\-WA9Ԫ1>cI!Γzp֗R6N׺W"hTRtyHb=shf*Pr*g ,HGBy?W}eEMOa45ժ V_Tb+m~vY&U j= 0g$jш/XIRޭ_iд < R»,p; _-} L=V|~}}Ö Qak,4%ڿN&/@9|Ah69HQem Ou!(;Fo<>B<פuZ; ^cu\ ;f+3յ ~&o袻"k)wO |O׍ $J}_5¡z/n8_ y C:84#h+wl}*ܳIJo #Lc켏5}22ːM'\DFٜDxB8cA.=$S.œu9ͺV|3pՈC8ZBV bMɌc!0_i agY/Ȧc)m<^JA EXx^w.\F'DXh렡H)@~}w'0niЯC+N ,ҍDJK1J:J>J5{gXHb>TDTGZM 6BWmZ[> lUd 0R1͛+KBHe 1FHUdߛSKMD:x9mF#LZͫlhP0foډxQyj._ =pvo9d"P'{^em !:7 - :5xɾLQx~)>ԿUM-ihVi+w-+wG!| ^2T^ķiп%54($_ ɒv!&I>#dŝa"XU Zb^pYZ KtQ2 񢠙bDhW~jKtqɇtmRyweK=O@=T.н/EU ҌnAƞC>~ A0ٻba_1~DKT[^GCYKpcަotHޏb]6FIc\ڒVxI! DY^/픅u"a.5pe"_"񘢫<4J#Xfwֲ>8?=FYrs[Afu]8wPt[#wɳVG "{TA\zZl³^O >Xll- *bB@wH+6x }CÚYdTkZjEҾw?Y65khJvG \3G? cVp=?ADA^I5 ~u'Lԣe!đbpn eN@biՓ wT`; @X&#:ޱLmiEoCZ9FQ$s${!݁i :UPcf17`ݹAxT<+,7X.r׶bj|6x-SL y9yyj"-&AEkdaY+ՏZyNj:CD8\XA{6pS?##[yyBdvX=qymKQ;I 5ڼP-p+Gs\4GHO}`>YE"_lXiL t;CK+HMD_{:t! Aj [`"M&=0g?Ɯ2s|T 6QC܃sQX{36y )}\6-CxS׃ԛ?Rϊ|U ^^Xr@Q/1x(e@\Dr.?&W߳T \@3,P3W<}WEFBH.:;a;D0MDZɧ 'O 2LsE5 =9[Y/?+`d*1PIJ)1 Rۢp$y\R7(Cp,]3GݥH÷cg\ן:\p-Bl昽WcePū ؛78Sj],J F^PկD^VU^2ʔ? ܐR/av"U8O\$Е{/oNwYsl=e>ȉ]|(ysT->uЧr޶iY,P$A=Gj\?z3W0t7@o䩂J%x& YKaVܧˮ%O 5}tm ?yI8=?-m ܌KccAwfe)g+L6՘ 4*Cc|L7l ad+`w}N꽻i<۝Z=T5;K!e=H}2'Cu؛7[1}Mmzw1i5?Kg~[+ż/5AuvөhH~1@b|)$U$$2/~2 ܞG[9N;_`G*R!/hȑ5v!*-:$X/5~q+N͍Pڝ_llu-Ɏn<{bACTvQZ-&:ғΡo+x&& 0RUM_5/:z+"(" dCR&`;[`nju-` UY2ўY=tjhz@aM6ZظK8j0wLnq1dwL[}[Jct7cZ&; XxBwŽ-|ba4GQF'4I g@@Z`g,bZxi<;(19Mz4R_;3fq{A &Aobt~tFO2Op.Xn1xCErԍ1{g߯@+0lI9(7zeBo@]AGv͆6PUݓ-ΠRJ@;OI7)a%] |km&pEPyi {31wbBvQ)(V/ qRVi2i<4b?k6]#>Ij{.D&Ʊ`|51h=SZ_r\ #FҴY~zERL=]3{ 9p~p xڐ:qz=JTs{ϪN*O-ս]CiجOFڔ'UV!§5 {n*1!Xt[ې{^͙G96;cQf!=seMzG<3Y, Mak\kM'\,l/ﮏA?Ci욠A4p3v|` %gG~!Ë St!. wvNЮGC:\=]g 5uϐ˚NŴƈ?G}A;#] Xp1xnW[:ܽrvċNY^< I OGjMKƑF>WzM=C J+լģhP=M8ns&Kw>>mUF_LOqz-rAyq:]-T蜙C)gl&`/߽APJӉcvg4 _xy?=޻RGKҼQ9 1஑[[b ǞW(/oGM`?~L[RH 6pk$5^jAEZ7%*0euM/[}9HE4îA&goR@\DE NDW6Ό8ґӚU$ CP M4aAT*S8)|?nɀ۸sFwEo⯩7]4t^dɇ[c{rEY:h,FuR'X<5f0ڄʋ`AD^rvH:( 2KPJ3Oc1ǘ_NjW|z #8R`M<ԡo;Yljzpŋ <'?T@s3ϰ'˯) Hk$?!IJR D;IO 6wF{)W~M3gv,/qvu@r 6scTɀO9AoPX8-OOERߐ[EI_`3KqL݈Yv9KxKZ>}e4@fw* S c90¤2`%_5U=\SxCH/e@6o~ C/g07[ TG}0_u>h.X((N8/9.F[WwYIمc&8u?QqO޽6@c/_I%5Lۿ!rw{CXSf-MnӁ—St~VP:Cʳ-9>Fb;?SPIUhVo,;~ZWΓn9m3FLftӐȣ6IرϜo/k%1LChS=?MN2 GS=`<*dRUYEln?7߯$'Lb*mPsApԫص]Rx 4d>⧩:yTĎ!xyw*iGoVj~+҇@fHD7$}Ѱ&51ptC3>:9?`9\mmuPh2QB{ۏM+8 Aw~.l?كၡGohʫUs^)ٽUzS39TjrU#8MA,5yIZ,3@=) X<̝k6mjj#nDebI_lm.eǩ>uU}~̭*cg`tQmԢ*(!7\Myc E\Cr\(~qQ .Il&q4/0䅬)PXIUhqk q :d7 4wFwD PcN,gr,_ Ž.x.a#&caC͏C{uex`G"[\WbG6UeqU=0w i̧;Q܍`TNlzf;Y4)x@S@|7s8~~:$o?X>ANg}DC 6<0  *,FG0 H"d2,5JKR(S-ΦoȮoo]UqqB:ðZ>yaH畱!zVe&/2zwSV8Ջn`{Du s~ݎ7_z~5)Y\]D;"K4Ƀ9pKS u;|)-OFmh߷$67ؕ'GS+s ʭ(%r bi5GJztMUe6h (SQR﩮Fx.QIfeRB"UF?O&B |M\ÿe0n+t_ӸF>:yJ@v3 p J!WsC kNlĸB9M $0paˬ±UH 7YmrHځ!^7 "xѼoZ@vIrL ԯ28Vȭʌ>z r0˘VuzM^.3~/UG |E&5ZLHzKT:܎" [eI|bƂ%ɿe&*#:~҉7Iu)S{[JR.~)LJ/vL:/Sh]G|`zC)\2d_t0Cc )`h9ǦybOŶ|B13ĿZm2br#Fd yjk߿J_bYA0`x~ţbK HAC&ԉХmSҨF !e} Ļ:d*þ9O-^wٜTF?cA@( 򴐪!NQ+#ﯰ OUռ\?sz&D+Mԃ-Q&T2 KyV{S+^V^;PʖGG@]]\HDsAЗ2q˟#wC6;vGZ0W#8x'ejn0x0 @豰,(d^++ 9ynO*i% i۲yLl S- +j >{* ߈spH7b-ho1kkcO%ݍ&h>'$^t= MiS8yCIrI2cϹ^\QC&({ĕ ɌEb/)bȔԐ;j)#[ J+:E^۰S5P~^b|""6~0qcgU38<;d896# M7Hp$lpod2D6T;^m 藸ҬB[%NޣתŏO! XcMhuezo D )q\"bMqzA7=ZlWnI͗yʵ [{-G bѤȸ;RB]<%J&}ܤێL(=o3"w"SE9Ue lh MǮ松{J`e{J.D:?&|d%8\CjL/9 Ő\qfOp{<i6?zWC4xiw̩qL]rC/C$Vj#ojF/oDI P`P?4V/JEckM 50b=E և2CqW=a1'EY @Š?Vh+%:nDxP:0Mdg9x^z剥L7|9V`;p:kw?X=vz OҾ@\Tj-,>>eWlP\n5׼@mZ0gɢ<#0̍z-\xz T8~Bu~.2mf-,ޞ2xexU "tp7gAp?>MDkL[-T1.$A|+6`l6{C~ KYWn{\2o;}x[ W.*K *%Wafr^/=lݯmֱVOQLOFH1zN~i&{%Oӟ#,}HK y}-#d~(aGY6\w(='1w i>dk~M]'2v˭¬.J0TEOJvM- ID ")b=k*(B HOLj۸Geygdkud{W{O[阷ژMzMGFFDFWKFyٚ9Y1i.2uOt/~?gqfiWkyQ ؊Qf=ӛ7{ 7L!{NM+UkjK=ZO{yzFGĩ"dw8o:6 M<: 4?T{vmi{۟nmxኳFah{}"q^ޙ1tG}* YD򏾹WI:^րE 74꠲hɅkՂwJYe-&Vt1& 3%ܟ R)_JL>! cM|'UAu@Ğ_N!:[X兯`GgeͬRtd٢i}Eif-4J!iQUM"%)gmobM_fƗ)h}CLU?|PIsY`~ /iW?~t\8orO9ȟrQ eh516O''Mf1FMgؒw==%!ǽ[hп Z8T&ԇ;6(#ܿ]{5`rjG[I_&GAkMEt%x`P꒽3I9NNiAE77Ezgb_ k ?)-1x\N#n d#^S4N$>s'vU(ZWkPWjUt7R^KolN1c"(['rŠ0EЦkXYKUjahXhvњ[L§VvLu"LZzd&^ lH:_ܐj9G~~M|L挜oZ[e5Us fTLmfNX2(_DȤ*gYբ'եXYȤI gꉷq^0Ibn9u0E!vO{l3N|/P`uy% ؃0dޛJ`4G-uNZNd7#]{]L0uٝdP},~\|Gg~üM;ļ^9r;^󓻟WYSʡ_j0j5ugsJ*XިMWTkkE9VCsJoB)Pie7X~p @ BL.DpJf 8[qYrq>-ZTyR/jt6zLܐs* G[23E\5$y.߁A?|g +c+sR39Sʯ¡S}'Hl?Ёh-j}o!!2oUߏm@o\Ԋ .C@]6b׀^x7W9Cx"G^cn.?ڲF|PIIf ,/`CɃFY} *'n5 ~QHa/g Dvi 9cm+/߶Y[ .a.È돶;r7~~ٮ Y]D\`F4RjSHM܄o;Nr413 V'o%fJ'~}ǖc|[ۅ;2ڡϱ)~HJhcdRgL4SXV@9N/;M?BY텉&JR󉈂Exls7+&'-rg% qpyG!`p0ަL/ ՝~8d hS"ME8I[Mf+D맫yv,[-N/^N6@_,|% տ`L92G|av<0v,0C/USaflnH7<{w1^Dg+Q}%K.6/4?uTmf,gaK*`^n$lOJl^DmSH_w%ی\Mws{Y“p>ECoGe%BXBH&Ygڪ/wA=*R4BZB3>sRK y'tRLsw(sE4PB+ ިK2W0 I~C~,3e W&3Ra0"$ x*)l14% t]XZ$C OWsc[/e_noX 篹DP s0H`Ht∌t.-_.ęIcdZ)&Z\G2":#ߤ=&{ G laniٳ\Yl;S]bJ% o$<^!@+1Fͩ{MkEXt sle|ж=GMROJ4 !1& *Z@s-`a(ܹ#x2>J)Sͅ[ysw|+;ZzYm}f8/7G5/|L$N~Ky\ԇ닷rFbJʅVߨm:o/%Fkυ Oo5{aB ʗZW|o>3aDl_̒ҫ&du9 efN.S$;PH՗ںG5TЛ7ϥwv!?o)yt>ҏ=X 䩌qth&Agq7]>8 KvIk({PheB&&u5z/\)QE5tOhp^ZiBq}*XWN9ܙ~;h}IZe|tip輭'{ 0+]x}=I[48 RSRkL7RYK|27jOB L-H*ȭGJ`,h&yG30}(֭NT^w<&KS>)#D3H9&A4J@=uz7fΟ:43W#h~F#'g#L IL<D}R."|Sf[GB?k.oтr!Z/[XzlZ0R-V'E:c“[jFS"6q~> -H ;1>g'9z5%r \-3N/@\ —́Jq-?I]U<߷~[353Fz i6ͼ?*Q`s'R/%GRCGB='ڿ_jK{MŤLmv|.ȑ'2/-<5*q~Tւztw`9.UDx-.]/3jrHTm@r8rT Gd.o5<9ZBҨFrF,C[ىq426|c>= a\io'qC8l,=sHn`Dڗ$TD3`!X-^-(mb}pʢ¯0џRw[T3Nװ#J J4|4 1rP:|i.ao E`s#) FУf|0Lb}7C֧9jimc;őBt^&Tϲ97cdvܟ|ֹ8IoISH_`+QrT<K)_:r2Z|S}oA<5pyT<%} 6,֡1CpWyZ~t痁lLKo_=`1KU7+:u&K>LJ2'ᰢ7z/N1 GS>][d\CY=1|K!8U'g)@fz )*#wYyǂ +ՆZR_Dx 7ڼ i`  q㧢]̠ͼ!\iaZK^eYTT.i~T`z9ϽkJLd?Rޑ;2}FIUtCM/iCT݊>xv3*D:mA!}7dg޼lQWr}^OZ >@D:۷q?"Cׄ;1њ R0O%FG}a!bg߈E?(ӵPSiғ3iyɵǽp>(m >dICR@Za;ؿBGB@e& HIQgͼ.*Z.:44qώ'1Ub ǵaBbxe%Dcĸh0NDcqE^3xxr?Jǟ1v7~La5P*Nb{诳Kk۪b98^>(h>Z%f͢C@Fs2=~<lzBxIMpp}!ɄSu\cG4]qͿuA~_PnN,ES/_xŌB7Rc`eItgځuE$};X+'&>ȎGif zBYTP\TbyWjPe:X6v-gnt1k(-!Y g(|1ʓ_G (켕G/R#|s[&G l C~y_I bşs_#8Sig gԥ\U+CVpJz F%|u߳ʧu?hxժbqЦv/E$O{6F%L~[ S]:E V 1yhҖc؜ߧ,^ {?x(u4q# yWb: j.Qn.tRkk147LV t[V0BhY\*P3h0*Ѽڢ'z%R]ɾ`'U.3-1/(+Hn+{(̻e q2@zbߪK4Sy믧>kV% (-PU_Z ;? Tq ^@-E6jcUVf*_Ϗܙ~{/+S }I95 u}}ǵ?[;Mvoe Yۖzfk߰vgy:գwa@fɆ'~Z#}>`vjg9Du0w̖\.2c"gzqڶ^CE\川6&q M1hOyEaunvp߉0fj\v kލeOv}WS 'EVpreV2,зU_m oӎ?7 H\HnJ.Yhxm7_qa7D^ܓ?n Q|皢K2k ]"pK wr>^ht'6ys_bzk|DTgYoH)meOu$G=z >结Ϭ6\mKA(l8XP8(,S^+M ģ49VSQ@3!]ޙXLV%,;$rN`'d7w$ znU!4tE:4x@*u's yg&^<@0h&8 DsՀ]y8O}WWlSO 5h:_ &We&e d7ZiIHHG틗ftrO%VgK7JYV9\]XYgP%L6Xs={I$V-MV d^>i_a_wBM=/g5Tz]~ڰ۞b3Hy*"J''y#ɶIu5oǺsPVgyFQ4>@Q;e\"^uRo2ugvor4UK iԆ0Ԃz ~_Ji!xxblv8"a9Ǔ@)p%~wd\d/Y)y^':JV;/l;#:Zd2Pg,_18p}Xcv[{ ץzS|\-%1qpn#N.L"Ol:ͬQؑ_\H`_EF=kd9It\.~CLv骟MS.8绋raBedPY&H v'9jEe"h{BQkK]6LZF q纒&5x`kZk]ǿ$c往N5DMr ]+)Iqz7VB+Lpevw>؅"pCM_ L)cFQ^s@" ꐰ_ ePT]Nv+WKx^2㶄Nh4}ةXȳST>Qh@hw B2\RPJ C L/&Lun3 0O}9@B{YwvZgÖ hy U G Q %yHv"RKE=\0?,븹:jsbJr&WU.˥s:;AڥDQ(߳lŒPɑh"HS(Ȓkl7[e҄үBM$i1mQ^ hN68+ 9/S7pm&ꧪlϗLyr OBw%og4fݑvz(46hfL+mawkK 1vB,>5]e=au N9^R>|@o޴ʲ{||pK_ćKCͣjw KV&2U? 7Hnbώ0f3PI#m~@ t w_Eu|@3'G z}Ȕ~ܺQku/^joU*ι:+d0[͆P+]۩ Ϡؕ<ɗ˻\s,a4 XGԀR眗*`m2IA'PCRKTipq596v߹uE̓{ae5Hi x5D^Ve8- 5,_*~ap :7׈VJGZDg n6jnu/@hxjB}Bncv`A%ϙC:״(YXF+Fp<1; OEvjAEƑ=w) 5͙)âs4fP[}tGn0K;ѱUi,{~P^+ i Q4ٰ%DAfy>#Û4D5ڬQ[&tL:Ft Ξ&|Qj_p 4c4 6gN&h '_y(Ǚ>90RDaF)+򿝂uOg p#>_/~Bz#B4c0LMdMǠ 7"OWJ<)lU*p9pn ~MBF;':X%fRZMTG} V8W=hѰۚ:BI8K~t55j,[S:ď,6~PF.7&BBvs7d ve<Hd([V$Xp[3T"o-٫t A74$p%N+f?I'q ˲ N[a%uo> d{7s)0PNYlUPbഈ&]1\ʔ3[*}8EAIWjMx*F&xAuvȼ\U5!{kG'397z2Bǡ.yI}w/VYT '0 8 =j܅~"6@5٩ʠ'`(8`aъW݁PyOɛ[n)P,&q\ZϿysЬ:岷Z7xx }zSSw cЯ0X"SAmN^0ٛ~_Uw-xKՅSZZQg.dSgQ9D1|eKAֳht|pv?p 33m~hzˊ:a4@T>ae`o.Q ^+N{||aDYDelkY#iZS@nU5a9}k0zQp:[*SoKbW꬯{z '9pR1‡9T韋ԝ"ԏpׅS'F%` . r_Юyh(wK|JWF@( WJc"rK|=X$˴6 :|͠en'FAܦ*$P|`~jvZߋcs|uS.-Mn DžqdK Ѝ K.'#ɮjM3bؐ[E11 ?EqW _`ԸY ڎלYg,w mx.O6s @1Q؎{M'=laڢBSmp . T$*''~ ޴ʁ_ d`EÓ),,!+hN5 iVtE3>g@olO4,"SQT;߫YHtLtgn}hv(/Z|nwf5lݸ*.}1v)&xQ&KU^cl[XXNk'5m0 LvD>~w~G |=PnadBt~)'-]J4 ѷJ,1:9z]|_)H1/< [ 4Ux"0"@*$i |^`fu7e$_l0(۷Hl=Pj!-0${)A7dq{\=xsuqENA)\LpZs#oױB爭[0tN),rޔ3dҖ't ceu+/It(9fEV9BV1a-AJ+@_[O{+TKuqt>R:qf~0$fZ2v|"m~,KIDHq_,)ViR㯿aD&QQq]oauWǤ5د6ܿqTiCm7NȀgAo$Q!|^[YOʥ%;d׈5zJ>u4i&kbOP_E8Ǐ>N|} '/kȟ@_/\5/6w% 447ݶzW6/8K?$W[grQ,n{M( uoӄ|B%ڮ/hel)+_'T!fEa7H^-0rhg{ib=`!d+gޱ@TYﻢj۞l}iW6$lBJ.Na+b7Lt  T:xC:$?]Na*v*[s#v~Y o+^DL nYvB,Z"gE(ׯQzB~!{P.~'Zi)/\HĂGXwbsm2rU(~2zK2n̬SYnک>-$,l2{뷊 3IR W ǘS wQzKBz=B:3Z j -ZoIy')4le0;c^+WOPI0ׅ% #jEhYipgO] ?8+ؗ3[Ξ*(,@:Vv,$UsJG?1Of'cńP|Z#pM}~O΀"sHJ7S<]>Pe?[x݂dlk4'CI-0)S)b0?@ \ڂp?HL-FBadxoSygJ|GǾ`\#&_d嶗GWcS% GX|xm#@.N-Fc^ҏہY AD\>"H#Kl\|QM"'%> rxID'iɀkI cҁ!eKv jvŶIFQ`+i=9?#=*IU&BFKiї<A{qw[ ] }3!Ė֣U%S-`A&Z d<$j6rxO+  Svf (K|3}H88<|>n=z L"ѡj@Fmr }\9uVPqY.W4R?Dv[nMkuS5-\QcĀ1oo@Ŗ\xھMsK"~32'O~"=<["5f&Za;f3|ep}!SHt 0n<&Ίgk䡯V X̂}D AX($ mhG%ԗjqyӵO;4 Oǃ.@]G0L/mݟN3#9[cKj/r>2J~KP=g#Ic9c_˓w&N \n\hmL ^3a?@('TH_y #6wҦ8ߕ!fG!jX Ͽ5𑵲t|r(TAVmp~+iX*|dA c~}2zKB~xwvݣ{bZdLU4gW=q^^)yO-?%"<%nsKѦMÖxsB~y2P*DJ} ~1MyOlw{ќ$rZt0^]֖ٙ.ԀhS|5XQTBWQ픰j3>Y)(}.b[eG*B&;~t^daL.`#z+>bBXP+$FIY>Kʪm|ũwJ#LQG&`}* նVo+{J$|tq$Zktrxv]TH5F1&ռ*PԘg Yp N+Pt~Aud &e,oiu~\I|ɉ>e{ [#w30.#<[&et֪, =!-P|֘XXsReFZCq`} P8!/m`-Xgap@%Aa[&?WLyx(='Bcט8̇[ﯢM(;"$O@1i5J+VEJ Ed)JlJ5E͵z9Qbn1nd" 3T ysJS]|{ͽW~c0/%@DG]{![Oz~4IhρE"sy^L~:]&$8.D>)HĴSjdRxPG_:G6mCfzd^ } zLG֒" /YJi/=?袿1z~:u;l 3#ߢS6 _C%0._'< (p4R j_И BӘPڸx±WFOntp4E\KE8%O_gO"3b)wg EGwQK'(΍Sl*3Tm ~UO}nJzP#&On</d#8IX~vg/W{ WιVZSG (WA %ʐ3;ujJ(|-wv`m_#R,|kDA{Wi8}Em1&*=3 sӈyvۚҮ? Jc&0L2:Z)G>٘S?ͶFhd'y,zt˖`.ĆvCf.UA칢_^ Q:\,n1Nҷ\5HV2A- .CY2@=:mK&ll)%1.Dr9y_3 KDB!^o1O%%1`K!|lgUhIS1HoK/9b9|q3~UFCQz!Oyܐ @H)ו=TkVijƚB̘X5t0->ޡԑ @5XzWSoA)ҏɑ>`ynjJ1"6M3oxb+5ϱ2VL2Q I)}( `, fSJ~SykPBB򤘔%Ey]G7)k^@ls.VtPgoN pTtcǡjӛŻ:J[G((PH +jhy =1\v'UeܯbԿ'܀G>?`[|d:ޞcq>K:ZmdzIVo'0rbO=_3Mqcj֐>^oԦ+BDȌ~}ll_A/>'`퐗es"͹!{]8%:|x92S51ujZ}~Щa(|d+28^w6npZ0i,we:,|(>U>ͷ\*?}J@.Ո 78x Ss"SGReia? "2I'~έ{O_բ+};)=|s&{dƶ8<_-Te}eY(P Vzy7Μ|3 -0xk5boւȿN c,=eﳬ0<ڈAwϋ! Ju6˺C%^^fЁ ZHj:hB#KcS?9=.o4D2G.+:6!(/k#`c?JAae$G0jt1ax}Bԯ"]<96LKq\T_-Z-֗V^TNbN,t.3k9zSzzGVIR)brJTg>覹lWc clUg;Orp)E8x*[AT̂$;qxzʕYeSG5*m U]y=4CLH"- ~>nYok@˄S#deS5EVVll׶J\Uk÷5yvB`yN79O. ч_;H73) sy(e,E7vfX|ʜ&؁};R 5pByc{}p{?(gq5=cF&.[%鄟Iwf}q?mJ5T5@vAyLݎc̱Hp ҧ w_ ]zP/=h{""= j{ ej56 X*{0&m ]S-PdKnxo^ :W]Y.fZvֽWy(3Ex yO WLÂeXIunuv; 2Ag7 "n(TO=k U+(*o܌Vp*n9SJ HW"pT, 93Bյ\/1eC<> Ӑǯf 8V 4Jä}G `q4Vv2+VuN=e l\lsVS2l a>I&lDZV6U _Ok(fNez+v?# a$N,ߺJ](V+HPm΃m" jƖj[:ݙjx< 7t|_5*O`&7aWE~<pdž'(P6} Jr/g" 3ѵfqF:}1s=Gv( LWoE8K r$;g&waY#8,C1d0؂//9XURŻ%eŎ)%(ZkBA zi!@~_5w)LeӨb\W(e!Q_(\Jp`x}k㣶Պ=!A?6h}\e ԩ'Dli:'-pWڳ2ܧQχ-X*N i+xޖxowxXPa ˨\8WKoRӠDK&Yv_?Oso1tKZW-aa^HS[ ^hsR''`ǓBBɊ=8eres@6mv{;I>M|_EO#(Zo 2mkC73Hp96*NJ5l V"+{܆~u]&hF,ϊ9z ~+͐ gB[Ǫx$bJTe{?@IN'(HlK7?3_r_>pu[˅}|-3rx )V>Ԗs38cLe Hٮ^+=LEIWîts 1LV35 =_2J//uD8  feu]ʾ*v#,SIj,}Q$2͖SQZ(Ǩl齿u<_C"̨4.] l N?0}8ZJ5f_lV;,~Ӏ ҶG_6!3k%N)cq@|6eZe5ZZ/  Z:t^gcCs]e߬A%vcTK  HYCw !['# N6s?󾄆^ic$0mn{ȿAb`vլGk~p򹊐sBCAj'1cOf1 ܲPcU0,#])w$ye@ZeD̿ gA  7{hC C=nʌ%}.YhM?484(Z"A<~~Eexi/q`l Րe9h~6[Jua,-Ұf2nR'3Zv@Z qm;!>"7~ s?Qul'3<Ɋb*uxa/ݥҒCmm8Z{gD<_{U_//;,~hYm~Zbs/'wv/$CԲHe8jdP-E7i>)BwOtA ǔyT.h԰mRej.6m1`Su O1"Hyp+ Ty֡GTe;9V?hQTs%vU4u=Bk((/{`!+P-R73FXpV5_d=~TrO6/wTd?V;f:Tg7\SI$Z݁BǓC=+G~`&jK/=_W]@勈کĸgwZL{ji*蕚P(M^Ͷ(eAzDz8t~I~J7Q V*œw8g2ݲ`8)= [o!C~/NCLͨkMOi2OC0 g6S@:5roas0D`󨚕Ϧѵ6g]UF$@$y5Zq}:~,I {t$B tvX?l;b5HyhBv Kzn?/77W\]Su2~ȘrIUz kQdi[b9YEǨz@F/&ζlPN?>Nxq\0(yBtV9El: Y?:0wG-GU ~$` SʝKfMC֕0d9`QXI/cl1"\t?Fgmg<٧$R쀃 9 RpYk8LR50T:Z7pm}GsҰ 7Fn1'[-hzf3l,=,Ð{ `TZ*q0ޫ^J 6PJH°;{G;L*G@nj )j0v7dw+d8F9vFmyn8- &|ǃNX!iE&,鎂w[` g%"gdF$7 D$p5=WcՇ88~%^r}z b#a!  Bg&Am+@MEz"~S:AR>UҚSUf3sQGl˨ZnM?&ށ(`QLPUeuB7$eoG?ӳj<}lEOz  \ڦlx@>|{+v09*ű- ^]W6}}.2 C7hPnҹ{wj?e5B ~ÝLgx:gz`9@ߺ Oz£272+F6trb  ,8E~]ELڧZOKtxLt]2.Jx7rUk[i?Zp2ɶoc7J/* GGLN¿Ϡ{0eY 4vm@{*{NYtG"c ݭ,?jq]ovQ\d7UYLdiSZU 2#N Li?@<|(R깎WrU؜-(cCTkAwKj0c҄wk W;l'iiYԚ|OPKn2.&\ M_^?^yz\]1f!$!G3_Es_h:VQQl?nRH]tm2MR-f2GƺPy.?dt 5ώ-xVjUEɕܣT¯ t8ڳ$"eF ERߩ&`{pG\{STb3Ge9[e&;椏0[߲@jD0ʮy0kyɞ޺E^r=ӑWKT<<=_e潞K߃3n5O)zݭn|7u;|sG2N@o^a|m6vϖn2hQP육B0`=OI(\s@Xݖ3U7uu{v,L'UsAP}0n>z(9t_!&SdTds~I%/ҹ<|3cAs> v˖zX7l:߁Ӿt 4qNdpa~(hq3!imNޓ4.3*m#Be2L(cPiގt:dS1ZeY[Уf/3iK*&:/LunwJr08" eC$l:S/u B2K,V<oO- t&taQ_[4w_$xm`46ZMI`9XL(7oe0~kj1 ׫"NkkWegQ#ڀWyR0՞-XHH2 zao]UQ.;N5Z΍ J/V_.ܥ_CΑjmSuGjtݤr> ԗ3_OY5Qgd/8|l"/@rP ~jX:BkWKWVÍeN3׮+a Z@ >YWL:h9QdhDVWz nUb;ʓSFP&& ncJ{1Up!\)*6Iu_%x*8>\\q־.HW||{u`7q#~;^3KAwyé#AΤ@N=I2<}(4%E?(?IP[#BRu) Mݜfo|oPdzʪ8dաyc0mu|`BغQ-`RTMeMMU߆ԂPr xp(k +"n3z oLY!>WU,v 4q_O?l>0җ z~8Ρ|<s* v+< 8g: D9޸~^? ޼Y0h%sS,q>x `)JΫOP+%ze_yXK(>ޚ\yWh7ayT\=KY^ZfZ|+{ſYbDwg-9Ʒ~7H[t%v@ԞWmr^ntR|*hL>.i8EM|U<x>ރ@ES(}A~BUTՖPONK=bsM5"-D>w7b7 h=0bq!_pa` k5aѦX;_e?[\`cQ`&E ܺEg6?{lA:/(9Q)Q4*Fb|&%T՗P?+MQc"DbҌ_Vx-c5D@Ģʐi]YHoׯxh7yNGC~m"#,ʿ#yTcfQf.4anB!`{~-<,uo /D2r\(N&#I>Afqf4ԗ:jJv^AZ͓~0rTc cWFu䆝RS +]EDS6;ym+{/۾3`&N@ַv%3qFlo|fA5>ܱBf~5 K<R=SA?'AD֝p@ A.6^}~޳Vy{{2Eq{ *>Z't*:yQΠfsphtaZ_ͪSZi-RO[ʮ!V ȵYa9=&/yԦ&6PdյQ@cf]Eȭ>@6'6MgćUfwp#~ } Y[9s~Y{*%F+z㾯0Rjb.6{nZI(]^U>۸ٚTzGS9J9u'f*N 3OhגPG ұB;fVGi) :h93 J@cpθzq|TkOkr@6e"ŪI2`D櫂>5[؉e1V%Úri%aޗ bdGA ײX °}M5/}.K#$ O$ x_uafmń%RFSeMC]GYY mÿ  Iq,~b*Y[ %W;kC.GӐ 'xwM<&̝=Q*MYUGM,sag n|#RգoR}$ԩ{Ƥz > ##O%f;|K[is Gip$zU RⓃP hPʘZnj(zpt1ʶN(!0;_c9!7c{٭cī#=j{r&(0-Go*/މb5rS-~j@ҽ˜ !>>LY3mW7PmQ*m6̣ߪ؅({ϯ4^"`N06{0׾  E'/r66ǔ @>,}& u֨ȧWZylW=1<^12<>>1Y'/7p,3dos7ۙξP0mW"F5olG+nqVhm˟- ŕPP  {3P)FEX5.PPi̖-5$rS"Z [sEe ʫխ|˃膉 UR¶'R4ՓA#w M ߨBGR=B X_ϴM,y=l%骖Pu81__S8O3q~ps*5al>AoҐ((G3*Y Ͽ[>rS^.f/]m)%t/F K&IDYȉBwM0L1aP(b:1ṿ,Ս?ڇߊ@-==Ymk A2զ%Ek7}8WAA_ljKwxy6H.NDwbRq~׫vujMi+f1A8<}i" 晃TbZWUJI*z6& {R+3* mpfk+#wNAOµeaw'\m.L2"㈗#lK؈*,I z{LR[pY~{ o_^gE!6Rg\9n&R|7ި p~|\cawLi݆VtT$~ ŨFʠFQæ= ckc P쑌m:-ٚp6U~݆sn}MS4^ 5iとFq[] ie'8uߣWZkqN E>M=KӔթYVϫwvok)p~[dJX Y1-`,͊o{oQn`ZaLz*kjוwv`{7P oA͛6|wJPU:¢ 1`?]TUe׊CRs3Q~B-P;4YXC!) q٭* =78ej1^}`/A6;@>`5G%>$ÓW>gYAl'sf#hK{x]bo9aؚ/sV]s3% N!g[.1_ΪC5r7MkEhڃ{ًlp_J'c;7bZոOpVׇߥ2PΗpC+B Q^[ՄQ&f dE=IԞWuPnO+!*!,A|% Ҋ:[ۮ?ޣtN"!"9{y4k:` WER7ן};Lu/5Mym[ ej#L:UDx.$(ou*idL Y ࣍}a t+ק(%p~Қ@1~'zuLرw¹ZFdU魦@jCzhz|HP@[*2R0`9@4CFGؚ$#&x-Xr{wF,?ܘx_*6Oށ^gԪ\qpǭCzLSj $[q,=` /%OmFԂ˃(a\j5$%dN/wAjmm9ySp{M9QW)/JWC,vl] Q.qu@yUxyES5L)rkV4BWa>h.#B@GZ)*{(U /egR4Ϳj:Nz3a;ȷ }[=@Xtj6i R\N"cah8s6,GA;%FkYՔAY"ؘT.gVj-䏶b1 ! tsgND'6=XyBy pbOKӐԮŴ*]Jd:\tMJ9mcYhRFYe[J#/IaIoZEriUzqInw5Gxerwo;  dqؐO3&H+N6bR.~0L<"0@ɓw0쁏{_eV g[e} )1ZC%O,z V\(I/iϢn!|JZKr3V]Oq @6f N?zRm 0GL-Bi*Zu0!IovrN4/5έK[l <auCpڄvdߔM1.?A쒫ӎy5µ_x01+,=ukжK> /&Õw.eԽD˿s0f`S`5'OϹm\ ,h'F8R2W]mrT( ZTNn {^)2Xͽ^vy|B쏾B57g)A[(?;7JIMZjj R9$sP62h ewq2K |N0*LvL<@+(G2 p`~$ oTKE sgB!z\:;+O7Oł}c| O YVFb=Tvg'UҏvW_DždP'SF0 `$EWgM)J:D;t@ki ,HKʽ[n܁c ]cu 8w̼K9r?Xy~D 4͚N22zT~^;BcTcJ|K{]^\>L K"@ |oϴ7_ʛwn;bnʡVԮb[p=d}YR40vH0=0_/s(|O\SДYwI%u'cG7Jl"?FZR' 6[`0BtPİm:}0_}C0/˃O^-)WPy!djُ$IJyWeFc4ۭaз5U.O>X f[IF2?^~$^daJ㻙&R=">ifawL,;#%ho[kP9O0 Bw`* M?rn٥ۢ1>>_ޞ.i Z.Q5G=c/U{Q{joX**Uϩ<)|[Xh0VT<};,6'ބ6D2ec%6ф#!t`f< Q4Fú_. _G^Z;Ah{(',5w |KQ.U C /n=h 77 bT׳ȰsuV_1páY7x6N_ZGXB+Tt܏ $܄نyA1WJ!aA2,ɚڅ ('~+Wt髴s-mo5I8 3s:7?,~EL{]iFS*7/`cb<+ӑsIGRkq^" OS>.=+h%k)]ŹdAJq #>ڣw/(n-=㫪Oxdec%662N73I"Jj{eG"Xڽ~uuiPChtlX4f; v[ T/j=zGXRf͸7mwmu3b{R}>ة.|2!oJ '8UI' Dd[@)<{jOLkc>к wq`w_줅'KK\Q/9UHœ>I?qp+X}x>AxhpMLlfՋ͸Zџ}."I/__`'@G^6ш"FTBc!C"쿶ª@#W}5٦<0oN׶.ebWʕ$K͑N&18tp% Hl&C3RoFhJʗQxX5C?@C6*@E}mDžaϺReǢHi"WXo0eo 0dL=KыlVUX^ytǮ4U&h&= [χޝuK.A7D5ag4ya[Ώ桾?)֑ac3@6yvXOn_" |F ^TE.akLo-NAI8=v;J94xIm Å*3s/8<Srwf| 1[v &q\hUeZJz(Yjqf/ыQ&ER5ΔyizGVg/ϠFQxN@"$@M*2Qvʀa0Et1Oud@a}_?+bO`⣫Dq{[,𻚱{uO&V=AQFS7X^jY 7 R+N WͪJ9ˁf ~?Xĸ~mZTW v z$YMn0{qVٍjK_RVY~.̱'~OZIyqP5NnqvԎw4Ǥ?;)RɚLѪ"l$}d{e( e Lv_`" w©|QfljV6 f\i'{W}1C][D 9  "GVW47vddgxS~ i,<~ڼ9|.Kk}%9k d8&>"PHCDEI.pտ`^uSb{ʷᩓþ>_%3JK*K) Yog!cR$jE{Phd%q8lu{ oWr ѪZͣCAՑ͓#;[m^"{ﱴUP1-**$VO0: uX&Ѯwp#,.hz%)0*_7㡶;|·_qפ wa"-a0pbZ#P8Ђ@ҌJVv#Y91)[ͤmݽߑv J4;B%jY ɀ4O5?n|a^26ż@`UCYQqx8AӸ23Fo*g  +)p+b=v=^Yo<EPAqžPRyo$B*݂5 >3H=|:[^w1ffͿ'?dZ, O#{L6,`K"۲,E!8;)dK+x׷aۇNzfjT8 O쭫ij-u _70ӣNwn^KcӘB쨥MS&v_9 SQɴ\㏑HD TȆxKV s))LLޮmU i: , r0 lXwIPۇGF{M/m( )!yܼT>y#]8'T7ե7{w-LQb%ͳ}|{֐BCm\Rm=wHZA`MT~]0dS=U^Qj 4{0Ov+e<1 Ak(%za~)h.~_r?28s ʋ hϫ`W<bW:|1}/y'JKj8%ېW _7gEݶH̰;@b'&beTLmdy 60Id˽"j`!HG`x%3h*[G'K.E\q$:Uz/~F,D/Qm gC4%IC xilk cA@ pĽ#J)F#M'vWXɏ},0EN[M,=B IG%%= ȇFMI21`mzLN=gS/Ծ0sV_[f7 E}|{M:<gp+6JlSx[o5'݉dxM=YONFkˏZGOjgbo=E  z4fq| SK|ڽ-c:uٻsH^ى%~'o%&tTܣjUEM,ً[OX5~DW '@A6= z_m&wޣ܅2뮛~rԣ,e!s84 Lv0sE{Xv۪[qM ̇+۽Uj:&vlc]ChIG+:UxO>#{DNfuU /^Ud8"Z0;`yh_H@sjl.Yԝw)cѬN:2u"½JBfpS?Z7b> 1S \);^=+&ecvOO!OUYo yod<^D([9=p>CDzDD-Q".[ ĺK(a!DtZIt8!PFlFl%kwzʵ?=13 =9£ ؾ _[=ʪU k=ekD7ckڷo" ٺ O^˝p T <0A'rH/7Œ/]#C!Of8z;M?F9@P4ܿҕ6Ov6}mbL"NfMq iTDm.O:\8d !l9e6͆0ᙀ<(TaKc杗 ^ i?5Ln7 9ͅYӭ}̺?оLL /ß(R}M;כA IA|DB+Y/ ^,z>Zl~u)OB:Uncxn?(%3Nm5rh[>] jV}FCs5ÜQ V=H^MVs1BV_{Npq#nk-IFB{Hltvy~ԇA9YTr;uĢ( Ռn<~V,^K-JKx{u`qXZZW{]m{u6?>OuVD)=MFOZe77x*|Dc,?BFPʿ&!Ek+؎[5WJ!za*wwh47W V[_w⃊jLFr : yo#ѮE Y$}Ljܓj b'_I2bTy9j?f)%oLՀ%Mao[YRR"fiL:o)儜6_[Qx_U̳˖v5g""s,ֹ6ңsdžf#B kpJtj|%!\P=cw ~ & y#ʦ7㭗@55d=0wZ KH9"`~Yq_˵ GձzE!|*no x0[/WKGgם1RQEH,!׋˩Xra [/nܜ^;NSQaZ;*MX/c:`I"m2k$R_ex`rӇ{$I$d&=69\ <α5ۨu+u d0͸܁cA-jUe;0CJJmv(JrK_)gyUl"n2٨wMߟ %EWy "SAXuC넹 qX+ak{[Ij桑]°p|_62k"pC%Ӿۮu[ܢ95"gnB9DWerp^jl^ Zoߦ+ @}\:81D)u ׃-Lgk~⓴sMT Evvf-s|Xoth!ȹZۀ^'3\_5~KEk&>sjnCA2es ޠ |`!+5MVfj5ԾX|f[ΩFQGC1l_+{hy@-CDN5TCCNjNhW vK""N+r,FhpKJWTyk{aBB=w>W ߿+  GSY>>Xnuȭ" ^e0Se>/B0}U,u y-JS}=XM).9-Өgsq|5>>&c=YyrPHjDbro rr!UOa4` ɇn81A@?om"Ǒq:o!ԅRaמjSL)dI\q[] TW` @y^$qh>:<ikNyCxQ5ǀ7w|w_NZJŀ4oۓT}RCd`]6Am4 UW{A0{]w_Cy1 ?7 MWI8<4 /B#;]4^`\#Fu}d-0Z/֍"V1#VioGtxE?/yWy%V`Num8oj}K F"g'V6DxٲGi Pc@mE@'"UJqUhJ5FDɷlНx"䢜TpoLPϯ p}kP>Fk)Lߦ@u:Ub_,JmOL:nkmfw:^n(XM8!bdŷ耝h'_Lah"0M5ZҚKSdJ%`o._D<,i LFFEG%ΣѦx:"PЇZܬW!Q$Ouӣ;$EZa }zO4?X9S">,G{( w b:o#bsf:[eu4"bD߶є6TEe-+H@ BzAB(Iᅭ{[{ۃ0UBXlv-] QCb?7+_9.IcxỈҴ=UfYvZv.a*4DIϗx7~ΊtG0 ,{oUaz0=5FMKi&+B5-|'vdD*5hT5ntεG)ј#^( +^rnbdY|emu ْ:۴.CF| zfc =a 4/{6Otq}-bfy7ŞrlE Y F5[Gz Z,^2|q Zݰn8@/TȬ7Hm?%\$G窵ҭl"Fsˁwpj R2:J-_@kaqS*zQofuV"zREگd=grT@cʡE哟sMw/V_!G݇W>cUydIMߚ 饁zG@{Zwb=`BA5Yƥ!}^8Q 6C!Ө1 m_=56F o.nl.=%,{Hi\@ @N l+Sggn,$䯜N, ~0C"k-5$@O[f]~! )6WMjB3N*v<9+Zr^"HF헨;ev*rd9CQ3${AytJ ~M?N<L>r Ftv_~Gl[5RC4><@Y悺ҨK 6HqsV;tu׷88VV:[:5T9 C8+P}*6ROÌ9%**ԷTa S9ߦYh ߦCRG'wcw%#w$f,˓\o1N?!F2~;Z7_& A0,#Yx5{M_gø33%EK`1u$1e%s#z4L 59N QJ ^#ߟ  ED^LWh09h*"H8K)OB#mXnPF)c*%W&4y%IW SG%CS)_FiwDɉ^oMQkѓˇ{7U]Oo:wD|]F?߮Vrm4۬Rej]= ^޸J>[¬|OLU 8lӠW^M DmQ#/_w sFR r[(dRݣ{D{>sݶ $9@yjHpU:˳u4 -MDc-MbyJ©vnߝdv^y;SyThժ'!ֿB&`Fv|i2G) '(Zwyr&oL{H"~/c|[~T'l1=Ksk旱:cjJ ý_B8p11_{VruFM|x=(>/&0 rږ% 3 *?G/`q)=5kk;e|ɍˡѬ?wl},HOE,W.tؔSyi4#g$LyhGo_m("wC`0YNXbNrUWO[+Sk̕k4*ytDG}>V}q$`H9BIUz|J*+n U'c.І} Y]6\MJS 6Mսԣ kL"uii9p.}I4/`󆂷7|-2&@9)Me&G'~!R+*̮8<=6^Nz<s.r7;F ѴEk  >j{Ri#V-tLd_~X *k.aMWj15ԗ^MeZ8 Ĥ{F  7ȣOA>N@S~Zi^%=$BZ2P/^1 RٽcFT{B~㙲3&'=Pmײ&Q!}X$/Y~C6jaړn1Uڽc}[BF8> Z-|D }bZ?q~ǎ"t"HUȲo_߄y%?Sypو^3#F4# d^m'[*L2bxAn F?U>cL* ,ȯ-aÀ 굦%NxY'S!!7m(,KOՂ o UA[Y',05qD҅pu2ؑ݀  xI?I~::Zpt2՘FE9&GX>;-M7'MG".L(=+}X8_U'\s[$U%*8]hFHTn${@ՃZ<(:Wq( kDIM6ϣDXzhURU L{߂q7Wx'am9vg2w2Xu ei13D&UDa~aQ1R5+έ}OV riin ``Mq,'t64qm3:,^^@V|@)/ZGu9H (F"_QVTŴȣ$:_|YNS ]~8q C|Ҁ9^ľ鹊 >}RHGlL_Ee&G2\Δ r=~:{gaz 8<M ^?[WDF*&OůjP#ǁx1}?K}O֑[S *1ͮO`t;:#Ǣ F˳n{qVGv goUJn`i6 q3ʻγ~ٰ=!2ow"DvoAC~Lj#$J&ɏ_BynH;vPkfb!-ۚgLc!@zlF{ui2.oNQ;rw,kvǤ`"aY4 âJǝҒA3%;b#ם/6bbw0!ZS`3:ӷao LWiAZ_D]R@Ҷ ߛ.e5/#&2?̳)t{a%"@:UMJΙ8M_ k֞tb{mO>ᢷ5LaH$_`vyvMm@fW-% 0,47t~lZbL'J" ^L  "ܿ Y;>z)hFJ̄ kz#FHjTKvukPxaи3 =I`S+L[֧s/)k~V;l$hH=h69D7+lKpl݉W$?nXk4:UObD?\-ap1U-L=#-^ R Yt-| VIKJԊ1H̩?+imta vWAfDӂ[0.4¸ewvqF%me@4ZoB7bMuWd3R@xsBRТzW[ookc@2@+J{d!gZ'#t/n:o]9mGfӇbVL3%q0c߭Wܼd뗳1mj_yK߲t隓Qg-!VmEaa'[kB<؅غuX #,R+@L+_J$TcZ/ _\Ȕtd.0{,Í&“[kS/b]IP*bP(D.HUXr~,WݓſJ^pS=4P8_X5&OWCoPת߲sPXot `9N3ey17l0 "w0xHqj^k* ѩvj1E㷽W)hhY^.p\b2a$֌ ,kU;Gn,kVdtzwcT/Wpr'"ES>qZ f! -_& 0i#>Gt z\F'!$憔Fk8r,9,@ 'D#&Im-:Qj AyuV]G³_#q9- ]K#)D=o7PfVqH3Ӧ ̈ZgۆCĄGwI^-|?sGLnqG6E% _6R"lԾ2z+ e ,pR{Fx@5"Sd D . m&e =5W u^mXsk.] yHP x=/;XfӒi dfFe-%^nnAWs{Gmq G Uӟ*\Ml0U`0uJV b^ۦMlZ:MnNzW9Hz9B"`-i }-NnQ7aW>;yUzu\_P17 |&WŠ9Or1;)eA&[S;,(rK$]B zCZZĂZWor'k[ByˌSx{B/2Yta79%}7)#7~:R"WtF gm_ jWB!RJ籆BJe@5 z\-|]["~x(0@2UB}&9}xO9bZ8|n>N*'Rb  EЛV });X.UIM>UWJ% ڗ[W6Ji8,^)Irbn^e$CnV~%[2bck!\"n_  ~`bdx&hKʕl_|mC?򢻏 e7a,X 똸``pF=h(^+LH=3n%jbEkLbZ|j.S"L=G<`}(+_B(om6+?doݱ~V[+J3 6v$WsW,=1r%JLrbZ/%d%/d]PxV[}f(;?GKq WAnͬݭY>Fs}af蘃{ηs<Ƽd{/]c~c=G]V1>FffrV&ؙ̜I(cw/D2Dң 4-cV >Ҥɱ%k/P@34'MIqG#T?B^aELwl_dvbΈ\ruosH[FF)2A7/ ӳ`%)!]$׽y:!&Ws%{d9{mpQ YB;^2Aٽlk[ ' GOf& yc'Yj:bʔ2I-ƞ_3B5ߓ*?No pۡd0ӂ v i7[L0\j^4IUTmicG1;<Q3df/2_>__d/_A2_D&YID9{l9[./IsT'򋣶=^^P9S@1Ȫq yo/'hc?/"3y~z\ա"U<}![U3HHV$/[_k&ya2@ hj]}JYhBuFLA1 'x)USJ:"7PW'bZbIQ9̌. #! #(~D}Px2[qAW_־ jT:B-pcKCX^c[a~ ë:OE,~IBQRNU&oS皁sʆj"Z7拿A15}F*<3dM<~~;Nt;̇Xd*wy' 6u%N s\[48;yo-1f&ڔrqޢm-&G- 0ب/R]Ѽ1}i&#,K6NΫt0!8t)Xwҩ , χ,z ir&k}zc69C$)ao52><3_zP u&;ai?&Hlͼv]X hr8>K߭<%κ$e)d]C`_604!nxo:F٦%o ){^a#@`wt"ZȊr']bT qXAud`{^B0m a݅NgUhΫ(p g wmh$|1P=M{RZe̞Ep%(ԯ*t x7+NޗWB:F 2 q]}1ۢ/ Eӡ䷠f^Ecgzė\$}N zqީ#MD`aNK3 ̃e؜V%6 kj`81>vu+ LN*rek%`殍P.aNv~:lLvIGg?ƺbr퓬kSۄ@ iy/P B$"𜦻aV*Kn.oh~0]ԡÖ(lSOôLٞ(~,q}>D7r˜#mGM\pv>bWJN K2,-UG*S[G?_:WW3{u>Y"a~ )%xm_Mm2tER>B6UgH-線fz،T\Jڔ#&ZoljLbU Z :9f\cLs>5L7䮷Vm?RRL@3{ H*,Uq&sBYL;AF;((H,8dg8dz"_!Ca^hH S\(`w Z$E5'_-LP5UJl&jA |Py`'!@JRe=T1>q gezjzAX4 E1g 7L^F+򅬪~3h& KVHxoِ$>u֕שX0:,2V[dl}.dGl(x9):C 蚖e~|//(pBS说^4,*1ng5\rtzÎJ~YM8XRf5!ftd,%ʿr9U-sLy[ b$+Ƕbf;HM92 -9`4x*E,6ȸ_lT@6J D˿QKϲF& _O.Jd 3I] ĠݫJ82rl DZFK.BW/[ZbZN(  al_/J0d 1Rv[2MhCTpv8XTo9r IPP3ؾ_?0:[3# K=QCNeF'AernOBP^.'(s ]+T(lZ;j GNΨ5]?a=ߡJ 0u'YxZ 3~YèY[[=n6Q٠D[N8_eo8mEΉ܉^ь`sݷo#Ū-Θ3b͎oȓnjՋEGyVoŴηq `7*#g [FZ6Vʪs22 ,%ϡFHCvgݓJmT*ZymlC:|ec V۶c\X<]ͳ0^G-tB>"i[Azg{i|[}S2iDn9'5.;M /[恘bֻQJ}3@01-Q;1\W$5h`t#{r*4 /74Nj`vʫ/(_ΆA[Z-P?aaMa2˯p G4P1)gqdټUr*8bdtʌێN)~@R8CyZѸ۷hOY#^mTv:x甋!Y!vtrqfw‚!đb,RM{oRy1J{~W $M;-?>,׿OQ~c"&tDU}#^$pLrXW է!szӫ%|lQ0v,׃.&R-cukrC԰~Ӄ!.,}9D@sJъx. ?ݔDRzPh>yycϮ]<3GJ9A$Mz֟{2n=V%0c 7|#1eK焵> !CFHc-eɈ?-՜.R_#f 8ωsbHY};pIf4l_K5< ㌎_b^TC@ Z`MDuhbgک @ǍhWe=?lL3JsFr.k&e!$;A)nVzS2B^c>>jbSn=sP-3!Qi/@ s[fą=n`?c|W3UfB^u_/FZ /r///侷#H& wX)D#O(u\}RƁz#4'kf͌{ ~%~ֿM#h1I+2&0*ӭ !TtAL~^wv̩[9Vq;`z AlFx%~Z,无Bi83{1KRW&*KMO 7@ءhĨ?Ұn7ktV'XծNCpQEÉ;KCXd'{.Odr/y4<Ђ<Ɔ/V\lȬר j~CR?=w׌=^tʔ8ҾuRUBQ L4?Gs"AӁE1y:7-!ٮ@k"FR1˥fGܖjѲ>S,V?t =3}w8U)޸7]Vl]eG);4^}S,l{ae}$')pb? ߮S $~,D,P{-?+VG0qWcf~Y`{- _XkͭR(Wp" Iܟ3yFފ}م[%S վrxh̛jBq;q<9e(CfbɡA1%%^*|2G_!OMj}A'=K: L`G9/Rۀ oY]SĎɅ:o.aV-K?J`Tb ͤ^(Kz]eV\M`f'?V{1ZG.Yl@jf|&sU8 gl- Z,oY}5g[MXavgRN}@Z|MՔ듩5'HyB&|!hb!ٹsl/Mnҝ$c,BY=T#Y7ۇq1-R_D ToVs' XE{3(ЪCפ\oM-,tX%R!%J}>~uo&e+9ђ ٱHůjrٖ6 .h#ǔv;O N:;]LLY\)LW)}5rDU|˫~ j[+ ) hVdTzz [gw7Po>^U'ە5ii^&khJ[nV\y@yV)琻<N sN_+]|I岥Kϝ.׶3\iN ꉟ?Qk$E4"Ę! W'v*9?MZϱע@бmp5~N+1o:z1aƃӚHK"]\4\][_eJ .D bb':+\?M oZV)Q[!WUjedʚ0޳0{Aԑ:Ξt?pbpL C &\ϋ|`jxRҕ?y18\{Ё1>"ݙMv܇Ăҹ ^EwRO4k̰k|+zNȝ5*BŖ:;g0ЊNFBEMt)VPhVV6{!Ran|H@`Q6\Gt.w*!<eX=hPtL+$}t*s¸SKhyeuo<` X~z+ܧ. Y9yF5WIu"8ڠAcEi|BX2N7_Ydr28<7 >՗he笞hl51O_.XR[_n:ɸ@2Tn[7m$ZOi.wD]yݻ^":[}tD*xd gΎ0~_+?PAm--It7qD(Fs)3qVvֲKTɿ |~E,iq\U+cŮ.Uwj{3b!(k.)sPIf! bբaV\RݣG}H.~٠h%%kmTwX>h*uT [Z񺊝+$]W | D7.lA`e0UprwH/-hGϞeqs%aI(K_Km^uCFidyRzY.W`/n dѿW4&ƃ3o)֯ (Ggp,TSF,(}$0|{tX@ 8\k)70Of;@^GWƑH-Ʃ1f޶v"osL'6@\y~g&hkO0juNS=T!4LXӫ9~}X; ,LOE {dm\W"f=T1|w7ٓg[c.||f²f4+A.)OG_-n[E̚coI:?Wc6w2|/wx$]/%x]N'co ~atx:(eT$v4h9HbX[MYx*W5"LqD|mtbۓKVwml3lN.n9|۫'`iSކ =ӬJ֐ 99nW>[Kdd _Pz>zJb~NxF.8;E*|eU02?Msn?*i)߰{/dIqQnBL0o+%$Z^AG! 9P_d?|W )mV%81|yQ 787/?åMXi6)4ss%U@Y!gcc7~@řr3D\kJA<Ȁgs_X hO5[k2G}= (}]2uxv(^+\]&26]}c:zCNʵ=o%.Jr0e%[@ZK|]ZІ|I%qzT1pHUi;!xA m>ǢYK~Lx{̦y;έ1 }o6[#cQ=&%.u7-`b 7 V)x/mD6mmlgcj<{/"peQ`=ts]s›gZ?pe7(6:K - |aIՔi$;54bmF>3]&x#(;y߄[,V)'ϏO#ɁΊնH՞^GyFl!zE= =25__"AuU?rI: ?~%I'IJQf$*gR XG8>%QϷ%Rs)VԨtT@It(_uqBU7|XK뼪ș?;X2ReHֿ*dϰ&)h=zPD!ϟ`"\Up21)sߍwع$pم_z+ ( 0&{#˂AY mYL8" VM P϶W_@^fNh׳>NAEtZ*=]uƯ#}ƊEKl;N#7z8GLfkxbz,ǩ'bꑧH=d6aMu"/sK5PO4R$6gԝ-}g{%i.~k%/" Ufhe6S;\m!f>*jnG);Qf'!xbG.\|0bk*u&I`zx2/hC! DpI${G{YGY>?E{sFub FM/,+m!4q%Yg" *L>v9=UԜdZ8xX/醕Mo9{=>pUCMT~vuB+r_ٴC8r|P[_w6򢅮+zMq/uwlIJQF'GQ ҇AeoKDr_|Px w1dE@O{ quRdƳՈ^2je2}|%؉#8 xr?065=sidCm71\~~6=ȀE e'p~_N>Uh9!]x3R0>.MnFV!@D&\8LiԲyy~UlY?-ƪ|.G*+)K+QK ]TI1j|Ɋ3v䃛oU1%`}{INn.vEIhvaD,RD*u`ϊ5vW/QFSM)z1/<|޳BdQP$ lb-U1{/^D9 wd^D“MGVN"HC>Y<.CϦQswͽ9bɁHCI\ og#w]wGv8Żߨ[l~+p bFۯoqa.wAY,)=]|QWmxqHi?0{~d|>&&r(K LN2*^fs)ݯ2G=/mk &Y 3=2VeVOA8qaeX^z O(BAqJHOL"9WH  .lu!-9!)t4X/):·ՇLٹ l?n}DTij=?.TtƏ A?!*W.̜~Ͱ/sS)C IہUvTrޯш>;)$1$?"RFpsz41Fu_q{.4P331̣y-y@X%dkzI;uYrU0 kq|$:tXRItyǓʓY[3jqͻִ4EEO va4~q 8sB7[Tع}(ީAzCr`Ϥn)qӤ#QK!<8%E$]cDt#6+o5kPRj2SI+tؓ`MEv(to+ӓL8](?1d0fh]=d@AMi0('T9hACq@@eQ}f*~.U.xwQOMs"+aT9S0s-tLx{g*6ѓgTqNjK 3LMR 3;Д`ְW Ny^V}׺n;[ON٦/7{oEU@1E;-(&fM:IbMwun'כ!4J=@+jz)}r m|# $VO|ػ|s3N? ٯt"DWuaCΚ܋uG!ӕ=џzuEP7Qhf7d\Ud8mpWv/~_yXYBh-&uknjQj ׹%2.j,Ǟy.Ijx_QW^!+_#<${=K(a[]ŻE=.\颛 ,1Qhu~ŝF&{|d>t4S?!|Bq FQ~sCG=)O(yهf ~7悚`+x/r|b6,F+`&ƒG9,.E^pKnbi.e>*e TF*[ ,/~ ɏ}'4miȉӵ ׹G~ .=U4#tE>z~+-kUw.UwvVjxHmivu+nÌ#p15#Уv5a]hؓH݇XA!gTyp{fc.=?oC̤Ņ6 H5h|u5o׼%_(4ZK#\p3KAuSߝL_} 6{[JM^6 ѿ9%KN>֗ ЫVڕz@{]:85eCͿ+z֔D}W+$圤 +XeHFGb]]x {ֶ$Q~{!92ʥ[=o?=H|Y"h)az^ڀXѧ-?`8 oZv+kTf\\RdjIzmҍ_@Px?l[ZyZWs_B8>E}{,MrMy$lNGYX|~8GB,pZ3PmLP+,Z 5psR''k7:}25WQz֫tZ^o AOIO)o$헅#hDW/Xb.csܞ3a0 EY$ӻ?GyedYB|$gU×b"1\kVwlۏnIwμoʵ^? ~@mO888}*0vohȉ$!g`B3婔+ H 6v߱`stvTmE7ۅOLCQW_x(2[ͷHDpNZ;%o- 7mĥm0̝^>𺞃}˭[ݑdakrkhP{f:Z? kmD o@#)gZ/\[ Okm.Vh3X3MAQ l M7.Aߓ sq4) Lsȑ{ts $K5FUu zz!fz.A`{B|yaAKt\0<~KJ'mw3ķ:wo[|.:ht˷ 6VU V;~*džDuuEyl?j$ >U(^潢z=A(!oqz^WH ɁBo}0UoߢVlv6He ԅgwf ^9%x MYȫZFK%W|?!Z 8GȷАd)m@jtDžR+w\ 0tEh[n0p_S4Fom=_+k7/u>dѹj?k4DtJњnvƍﴡUy1+1t^5)·MA;c'I[o}`G(L.NdϨ٣S'cK!^]+I5^- kSKWJ5pH^{N{砲yGԵzy;}Y~4HM{pA8*`xO*uODk5[Mqqe;%*nw}C xDϞk~m؇R ЄNs9T \>4) :3/Uv5]y{݉E=_ns8<'_p~)\ UhhÞN>sf#4geBtTs@5ysN0J- = (hHoxӣp%Ru`h`:-~U_}3S5svƤZ -qhlyzAD?b ϐjaJݶ7߶np*]зFO:i }Lo"yyD 'gD -dwf{9--N؍^!nl@ᣭ,Ѽd78]A5+a/r rbŧ#[CZ5Anūu\eܒ2voT7zApX4Ǥ&;Ceq!'D}sR BJHK49 S#pv2ZZS|,,㇙%&\@oeMkwDkOʞ|$jة$VCAc|eH짞BCzոY/ 4h/y0ݶӡ°{_6 =+ z8Nu)0''~_Dw})ЂxlS:聂>4gSX`rn>Qs?G+/s>;tX;$~lHCtՠ$o]}xX~~+ȞpԦN*pF*ag-8&2ɿ.w Tjsc6E yl#-Ӹ^l;ɽ&e+^\"Xz? 6RBgO|?H"f0LTsb\<_mn?Of- º1A1~C~59đ&*bgu+4Xz^ <8g*v?h3MBǬ]eUPCw#ZIa% سqp6ˌ2?&mToPx8Bh@pSbovpNo/ y Wc> ٰB^J GzM)Z5ְ{,Ƅ^|hhQXZ/#9 |N ؒyn櫒S&xܨ}"EǨC"\ʵ2\,Լ#ah0J\ށ+89_mm:[)EA\Gx9p&A,u c kZIo&Q_sp tsGB cHE+9v\~MN ._IU@!nSZ;I00W\PPލfjcImb|qGYXܠUKc[}D/f}v՜2ct",[G}e>XR3 },Cdx%abF7q{ ͅv`סa} ol^-[HN?ww_ף4 7fqgy9Rqʎl$H$GO? S'tv ԃabI)k<jmHK`nħnϗ>KVW$Iٕp*JM CPbB_\N]YױJ]EPg/mquu TYނ+1L Y} lj"F-XJ${4UzPJ%g.-٨Q njX<#~lTd_64XV qvαZey.Ljq eDMv `ie-s~+I`&O%IKtW?]-+a>,1La{BIC|1X[v1XD=4 J,pTY${ZD+-( X_ن_$5K.bԪqF?!/lAvEQ vTeoW0plZɓ듿Vk793P@)R?8> iӮnnd+5mxuR".u/ KMa+o,yF)4c힖:>wwzI=g&fyeUYS =;ʏ}{p({eZ&Ng.5G|GT0% 2f_cLah! ܿ_P قq'OA[TaRg>yŭI^t}`UIԀ08!-+A/4>mA qd4ޱF+yW ^l 3s[7nJ'b%{La\F40IKW&L[њ H&S_ɥOCCt>jt&} p4]ëd؅f:7#a0ps]ؚNo9 J %/4-R?J,(  b h+뗿Sn6J[nK''>eoO:P&XQ:.0=ϑSȉA@+8a5c4'GeA,(>b%De1jh\@|Y@|žRo;Qvq!Y=k ){l f)9udWb0?(W0E]*ƞK::OX:)>xQk} &1@%$8viE: CBn7]:ፌa^'I! mzEiA2-VȮ< Px~< "y{,+~)=cVߢ>Z_ud#+)ؠa'x@7g"U`u)DJ2zNyc^pu= ]v.@(Jłӡ h @c[cl [ =~y(=3z_/n+K?a-eؕbfFUb/GaU7W jӃ::coۆc$_6)evs=_FS &WMȿfo x̨ba5veiAaq5ړ/J;)WhCu X6 99,\tY6U"|Y2s_3?!Ƙ:DHU޼u&vIﲐڽߠ++n.P`__oPI1jz7NKM\Z =, Ǥ)x&tFB;WҮd_^;rk1xfi 2&r}l1Pʓfr"]1jAn6 iƙu\l3g7Gby^TjwӭQTi:FƞSSIx 7&w !FdM@)h!ZǢ?Ud g}p'߽8Jhi_Oe܆Hl=l^>~ݗM p ϗI.)`YW,~*v*NJȜkgVr<":|g Hicn\RG1o"lZ?P}Q*~ H> >\C+S3P1eo ]hMp&Y״lWjv2K9OZ;A‹,y{ {){\Թc&-&LKkuX&R>|]jHtKpT[1I#+t4 hqCy_c0%ZTbcqJ@839h䮲$s2N5Ec)᠈r(H>olI;.G:k}s%8h-5 To!m6h{@x?K>ŨHMas$S1eAp}UxjVۂ>xcv7TE:v!ƚli+jXMK|814¯xߘ`@^Dz"`hqȨzu/F:` ȉa=\KLJj`p!'kĝT/)8"z}`XyaQ`nr7okX_sP)pȋ@%<ϧ?r,]۽o` pΗR£/{/1a')<(n\t#Ң)hM S4Ui͓bXHeT WvܫI7-,OSBbd˻G{cz\*ťsIH~fyݺGzܭ1.g8/|Υ-i6Cqz,'N0 _ d#;V-P *Pm硣DD)>d}.`W +>;QԸݼpbCgGZI:_]0ֹV^l)<,5.K c*aẖ>q<ۂ~@`FG\u(g~%Q{&ᐫD bkM OUId?ERrQg❤j!M]=pX+)2pSֿ|{B$l|m60s+5 6=_;C}Tv_'Cl#Vv#|.-ۚoG[VZ8 NDi-$?2 q&: cNS ڌmLDeq yIHτr#b 2٦_Pw:ιTq_M`Xb`T_aN|[Iy>.N@ÿ#d{2ANW ;YuPxqsyٱr45VND{`kŞ@+QscaCr-Z㬡:CG[FUZǕ)C \?=B,vGq8{$t[٬:ך]Ègą BطF  i "T"Bp( Fk躬v0$6Mi`䜚F]i&3Vs{}F_nUjJe1FTUmPPQ,S?_J;h0"JE4<% eF3-]odA5 >uJd>^|i*smS q"'.8u2YV?tI/̥MgFgloGiԢj!pZXS =h|a;|_GJ60)?R2Ыr"qg4Pa"/n%hRk;f)7_V>60$IS7G?`ď!\'GT+k~1/wmnM$}e.P ,! ju cMp{\3ZuF/؛ qگ<\>u}{/D:lDtXu\eGğ0#D VX3^4oTz yyɻ[Dl_1QטDE$oi4 ̊Q%3?;>nf/Nj@5Xv~~ ?=#tt:1eLC,_& KJ澗Xף]2$c#9봴9PC}%eq4@{,ya HcV-GU0g@/ |W"C _t}H5@ & XrOL >_*Ҙi[9N~߸`G*V(vK\M(d]Է]NXjE87IkDiԏdJA2ӬjI#=\%?٢2kܪڬRTb:P@"n6lwMP{׍_sRLS|ү#׊ݟp 5+Xש@绥 Wd Rm< q<"p;jWwcg. a2$Dw%b!B_*~Po+H'((FwYbLM-n [ζ~WPG[gJw%<2/)-+~AnGBGHtDÐ*gg=B@P;c :y elZx0bxAЉp*+{.$qU3%E0 ;ػ3 ^U|s%>@VC^8|m4(HÙ# 2j?AѮPO@oJ_ -CJX5 乢;f7.9-=srP4pkrP#<X\[\q #B"n$ȍɥJ}di4B\V̓&޳K  `I7ѰߨjEv_vt_L,y>\̞Zu4I]Xe2t. T|lp iASᮥԂEDP )eCtw.DJx/^L+ylAxjxmucS;[4[uE7Ib/UGoiOM+Hޝ~ VpubX!8V1C'Qeidp1Svba(%[5F:^A0%#z#ZUaP-\%K.jd+z~q , Ui0ƶx!>z;yG*I叨!kHD)x }wO:v#n=E˹P4#\@>pm$ԣ;,%d颍]0goy.@Z{L*c@^=4:Jbz&Tћ4Cuݍk.CM:Ѐ*2&H[zq 颸6߄9!q ! B+РO~Wg*Y"PW! kUD1u_;+ HkqX!R!e@ٸjFJUhA4op5:VK L"PX?uLqpFRq[zS¦'{`~Dwm/)̉tUp/n` i%8Mr3KtQrܪS3Z<2jD9fk8my[?N.Q@v%*^_,wx=mѫU ,aD[>;?!jbY+4"a]E@X RCo (;a-A*dW30ˏ^Cjxl~듘8X]ك]?܋K?" 8u-ƀlM5" 8A4v廋r~s@iB߰-? ]~' ;Ȥ|Ԙ"l2yfq1He:ǥ~eo@$ʹ,o,#c,gO9Mj{7izUU(BR R.*v0qV}O<ԓϣccA4ωzB 7u1 (CRQWlǝÿ 0?i}^6,$ "Ÿ\Q0r 4`;u#d4o%' s@i(p +Mmb1bNc{< W@7 3/M4! w?WZ *,݊!\](]e }0 ={²;k?jhk? ˤn)GEt[biO.# F{bT/I|2(S} l3xE'u"Ƿ4ee0s8C{♻Hndۗ1f&Y؋4GnETT=Zbqo3ql6~tZJvƺ`5M&w< &.@6|A@yߵP~il{8D6b1] E5q]TC8fo6Y[z&Wxn`#ؚ7'yŸqiOjq.UkU(#:SU;*$Jl_D'4B57rIWؕ-#Jzgܦ&fD|.aw.Z|h\\6xJy.jbTi7 t~H?Ga:臨vm쐞?Q&a$ XeH„~wgv eoAKV{~t("/?fa&B Ho8!9<^_F5җF:q֜WL|Ċ^|wEIvGRf԰x_a%nನC}F Ee bo͕&Ui%|U bEe9Lp 0-0*o^['#SONghhodEoT!GO.4]{-v笍qW/,;9g'L[\v]z{WrعZP~8Q'; GBq|>tӟLEٶ{QJn#;XUq1{vy/f1xf,jϯ 酳Eq(&-IJϯ TG9=›L.$߮{1Uv!ʤ줻 qڣ)B폍yz(%(T/8S3QfYFzgYdk5J&O^e["QVmmQ=.d/HFesϻ V%њV?_')ٹ4 4ȵ E$`m֞{.!hZf>a='>{gؿGH>KZgDM.D9ŨG!3%{6չqe#nG2 G)_4?Z2?rlS$m7F깦XS.-q@_#ƄD8^ׅ~/M/P$nģ=GaN_."4 u,5mt?gT]Aa'"Dk^ _)/'QY֟b!gJ9:}el #T8mVd'Gߋ(K[>RGB/m3I5)kSi _#}I3\x,P.=AC53S}%Bh/H?[iB$Ehfѝ;V;i.e_DQTbT$xy${'0ɠ5lNUfYM~^G}AƏ0żQ]|Ƭ/"D@VX~ s~~ls#޹ů ^x޹"rg ~ `M4㧤VQYz(2^+TYݚF& 6tty9d<54hR=j&ܔVOHI *}گ `_$$Ѓz1gئ0[cue Bu\ߞK1vǖ,y_K>ה.!?Fc`ےe]V)l j/V$q-B Ù~6lwҔD~j{Ț ZckѤmĭYXI(ғ׺)Ӄk@[2l^k''je><)se !G@{ʍ.xWu%\DYG{ 뿙V"eԬ0ƏOla6`xMٱޙ LI cÿ= *v Lp-Zv= v& %d60_ӊ,ADhP4gF'޹@$ƽ+rJm׵@ZaoMkS{ЭtpIuP,!6m}cw̔z~[NFOImX>J;Xɿz`!U^  Q׼Z,I$%!Cl3Sʚ;P| B~e DZ=tc6?8A?K#g08 'o1xE'{"!opmTvwplXbwqu׏gg-0xkY0(08d.qKe3/$z4>S |9k6L,6C߽ yX3t@yh ӏGL–$U2 k# }ѿ \fF|f:B6 C^2<JFxWo 6]Ά(D^=B'ٜjK`Р_)rb&)J!$|g,=VB*@X'|A%ʂ~aƷf 0nerҐ gvrl"ZWc虌s!N5BJ0< zhF{J6m{k갂0u2'VI]q#evuת"EK~+J3ڽ:)މ9h -6Xg +zs̏f@,!1x5gpY!PSNTvqxAĄ3\W}z1[4Ռ)t0!>6#$> 5U15u*n7rJNu T P 5,^o:G2xyiRlҁR}c|'JWMt9YѶMx{sjRRbikDHh؆U'mmvkWayT¸߯~2+`^˅5 S4f\A.6ޓg}g_r2h:0ɛnodEz! /\LXuyiJ\QdIi³@adU"#߲RҊ/Zþ?i˭6u!Փ\(t&b"y]JN ^8l_nK/ \3O.< e~pjoO. OXJ'U?Iw(I z&#>^У'mI@䎎PҰU_ }E1ݢ!_ |1H5mp:y]WPo% JʟIMݰLWB>U_”lr]|hUXR Q,,hY J @? ʞ( RtK d2(*hr ~/ KɃr29Aϙư;eI2s/?A,b;6mwc2:]hųzls,P۔ ^0b\4-J>WO]);/%8Ppk,3C3 d޺SWcYq6~ET.,9-ʺ 9QћIʝJ4՘B[AnJؘI*\2bڝL=zAk10].7̹b>c@z *$/e|F>W 햛Re.dRrG"υS"77'`+}aUȴuLZүb<3xeo\(irrbכjF-Q潦St/A4ʷ!9@H y:5Go'9Du2zZJf;GʲCt i[*X߅%W]ۻ[Fϯxts6NX߁&̍ϙŏr9fSl ).w@yd˝J9B,s\W-O5>f` D"JR%ҤMXؒkH+ٽpѩ"+f6z0ãV~/>WQq\y~t2=+}p+y/ehnOo-Թ8u^/Ve<I%R arq1؝|ߊ('5-AEGlJ|fܵ%b㢅qY}xǺ*=ؽl~ ΢/ʊ/d\c9YX|ޮE^6*GR,~7zo\ɥu[kQHIpU Q @GA@Ĭz*1cֿq)kFQݬkIs~(cEۓy&5Mޫkd!mCŤMe扊]t~hu4˺miM@PLH _ MooR(' 1ucfڎAG?b<ω*w7G^Gy~qpҧfx!j'5#=Yf8ƀ_* ᝧwUp6:J@@-Ϣz/|A5 es BD9_<k}Ku.0& de'Ge;dud Zzh~Į|x`4΄0WCZ`ɏ$vF>i{)Eߢͧ-~_.U>h>|`=l ҙan#ϩO=d~`zTeG ,U`cJHq (g2&ބN̊[jcC%ă.$, z>6]B`Ez[m/wy:DHN-lZ6& I/Y :-0jb2/&|M {EE3ovD YՌ %Μ>C:pX|F74>':W>41| H);jn.644kM:8֫/ꖚ. ~ !c_L{2kn*d}`,̧}/۞ͥP!;qf`iyM 8D@ ГS{Ezյ LdfW u1,NA*l<<5o7S%=^>Fe_ɠGTE\k}fLȴ[γ"Z8(@ΐs*iOF3ʱo~25_obIlH`](92} X| ?j2R4#Qop%T N#U]8m0zQ$\LNcb4JB.{?^N€S_#6s%7ۮUY&vG'vLxJ 4~tbG)/s 3%n%.TОzȚޢ[רBn֮!c [JgF~+*7F몹D.9jgamP]9^$B~` 8vE`68+/xV``3(9'7#,Wm&Gn}"I?wk,侙bS %=ć6*.&pcg.6ʲ*zs?۶[aQG-V?er/0riW<!2~+aȃm_'1}X3$I w T)I'w_ip?[M޼"$b,/ٍDF%~IӈDcE߈_P|ܿu ߐO;:-Rd77[ZIU[S_nedY5_ yy) sUt0Ld4ԔMB|>\UXvC^+J2Ž:QcCW6ћRkYhIIQԂ-27#7b}CdkXx[/)~mcz._Nf&k̳FcʷشuΩLFɋҶ)1}Tُ'H?C? ޿9a-o)u2LI=x7MoU9ZK_6|M&nMQWx5=ndâ( V6 E~ߑ Tۣk4u;=ƴ. ޚh -{uP g^\!7_~09բ8H/ wnZP?;-1Kwe|V,oƱ~P!}N9Xe<1~0(/ %j=ޭz߷JJ"0ﻞY=b)w<|| v \Bpݿc.ՠ ueR}JC:,[y!I}yA'ו 4p0]~'1)Yg|y)I;HqՅr⬋OK4I d6U (r)|'Gh*X @%/'o1_P' \QԚ7|i?&ɶ\&V ,Y1㺽`uN:%էQ3v.$˯Xl}0q7CK3 @dh~r@@o}=Î"p-TVu4q]ItM?jӅKLV :#ژ7q \Dwv< 7C1xKхdCA; xyާBZ3SXPv }T`X}BwWaXtps1_C6)c?02y /suwc.p?oBno8ekD O'|(T>3vC =Pػj:}8#69,YDԹ q/΀̗Q _sp`|^+_ NU1hWM?dg"oKҕ@ [=&Xɬ֣k&+@BR77C^ yyޖ2-OHk= ~I~(-0 g?mu&\ao1[~Wl6u=ѰN}QݴZyV\ɜew@dK4]LO6͉F]Fzy.+{%(~> W5,ҥ*BΉ^.@V_v+p[n<*}zY<9JC@y.}4}&AˣNoߩwpwkicG">|f^^ '6u9}.GfH2~oO|A?oWԩ/ծ<')\ftsІ3k[߷j`@>f'xXV)@5ȇ(,O_WCt ]vs9)ߟwIH-T&{=S<9Gh֬~=;\'D6xǕSz ^nZ{O[Y+*O$xx"cP:q ° b8Z3h|ZiB璾 *Lſ1\/87VdYy;e6sJq|Ӻ(BmB~pVXclU4VYy-ó{D܎?f ߉rڟŝ1s ۉTQBX*Y{ H֗%}a+\ I*?IJct]O9sTPe^gUǰ.Ȧ:2e:=9rTeMHHsRydi+G^D0lj֎B'u7߽GB@}{-hɆ+ϱ٬o9J^7a ᣟU;703Kcnlb_/.Qi4ٱ[%|)prϜ 2横g.$mq6־Go1To|?>\:7K)YGJ_r5bGГ]PH /u`DKV($ˏFB QN6\$9p3>0$ˍ %o8;&ԃe-fo_?k/dnI%y=&UlۢB$-\?㢏..K8;]]\E߭H\4\un /HOj].ݠ zXaX9ƨI(L'u^>K5xU_.|FsoYZ(8O^0S18Πկ6dɥPb8QĶKs{o, D3_QfX/%K&D!>قop|/' ֿllc[ ޱ F'9V~t58JyqLnw~5we.TNBh*BE/3.Zz'@3 NmIHܭǎ:z [M߫cYii1imłwh̼4>вDOII<~D+UkD=* \=@c8A%7 oך=m|$ьaҍI]e\ճfku;˧n=P"ppkFbc f^!Ch Qy71g^bmlґ; 拖,_ w%w|nx,MDSF̶Gc`98Y_;C}zgSUW6$F$9f5I,S_s&OEF@D\cIɍ?T&R9;S˕tR(xDh"l~wnu&ҝ.gDzྱwg)ƕ1zI|F?;uA`)^vQ7T?sҐkI+$~d)o0ܦ(8w>Uἲo%y7>DY ^+D,HoÚu.5 @,fx!xԳǑQ>ńwO1f[ Â2$V3/۝UVȧ,#Mk}3 9D?Oj6).^SI_IvqMk)$ ?p|K\UV,&RX۳&[BܣrKlLR-x$sfY( "o8Ac;mŬ쾭Fp7Rv%8KyEEd}Ŋz vȜ; ͟ŅF8LR)ݡQ+ ƅ]?^.6#OWӫ%{~ppCW|PȘI{0S>(^_,O$+KLq r=, hSe=ƁtU,J TB;v _IE~4[6"{"^XEڱJCЩVd-[gmuuǠ)/o!q*T=x_=?UL [1+Rx *VoDFUпGmSj @qC.$Բ~8Sn.\@ku_'V?PH$f<47)X>ȔeS|n4(\Hwt=G?:g=~\F|FLJUB%d\ f8TIB(#"]Ke ]1ͪᛜK =Nl+XγvV0Y@i] D lqKF%ǘVR- m.{ΜI=$eB+\|q5ҦX~^3_/M'ziIa ]>/b; H";?|\N*棵$# 4r z,9H Rߓ&WUݵrWưF~> Ӧ rK5:YyieK2UG2zϒ|)˜ GռI"fUk.xc)"bK({3cU}N&6 _HxRqqUQ 6z6H T,' <(ZKyj iH(J@ S3ezge.peLW0C]3m4A+Wh_^mǻS jWl/.?cK&q?k~xuܠv5l<"䕗.n0O+` ߑCF)_arPDrO>5z̻ͷ~>XV(cEE`̤rOYa%%C_TEl&~fje֗q}Dag퓇GZTȂp(!.<#/ $+0\)r#'f*z,aVX߄;D>TWI{`ǝ7⯵=bn=x~.&K* S?^ɑ'@ Ek;ʤPC'>PQm P{b 9D]λIOc*4%iŞO7x}2/p 5McѯJ#QV>> Ovt2x Ujd-G.Y_nXT9-:<^6{rqҼ!6EڀٙWF^F̌]-n3brvK >xW]?䧮'S١! dМH ҩi㙲 ޟOdY=?%Vf܄ $sNT2IyE@6 ϓ@q=ʆN03;_ TR ~OJB 1Z@SvNKqE詝QڜNZ1ApḺl\# F=IKNX&^ϵl8MaY't̠̑*\tOEQ8Kb{W<uuԸ(c#'}KY2Gۛㄜ E(~̷!l;w̑$۔y7R. > |@ml+~}וE'QK`?P"L!qk%}9..YI52!˶!b~ ν %Ǘ \>^^g[Ts#I|ky[+_ּylQG6E/wYƉy"\|YhBNf*A I}:nw_')619،D6A>ZndG/Rb dk;j`[ .O|.7Er[ڀgr`$joRV$ژrXѡآuZcN*8u 92cmG(xy1e2o'Pe }^eD!eB'4Gi8 h]'^$3Do9& kU9dm)6EF׍=UmUZ^Xj|rv΋Nz0Lo@ Ӿ90b̬k'5KMe8o۸~dIqba]VVZCvD7/_b>PFsxU9)R|^&f}^Obu8#O14f+K?}SOP7(A |1\iR|-LؤKtVR ʊ*?Zxp׻ȶ38_$4W*Udr9,9. G㪥)41T N%(M>_2A+REEՑis擥k!{h˞^ڳ `g݁͠ T WymUo9tمj0Jo'Pצ+7zF삝A\m'X.abYW2nwR<&pJ~" U̠fwp?]bc~h}t^SKgwoy#JҎc F]h{&& eS+í-N&#[Ƌ&yq5 ˣt ꆘJH z54^<ȑ%62}> {6k†vZXU҈}5jx_A2* Mve]<mS ^ 1<>*j.G1?p.y(pUUT55ҧHm/dZI$lq\0sTlX( -&%O~On8`NW|bFEˢ= c9i?ڨ lR?sEĽ kxګ.+kk^41q bQ02 歗%^;bwƂ?@ OQUwBF!@z2*|8VOOEL2_a̙W.b <;թrEX7Yj\ݞOOZlW=XDX9B |)xIc72̱8z4.+Eיw8ΒwNcY2 -eǮ? vy a+0i/"U?}YPTd\<<:Wܩr]XD#ZR=K| gA*m`~QWxa;Bz*Бﶥ{am2{5H6<[^߯O3wzGu!}`[\iwv{% B sp0,~;\W t>&akXȶ./XmoynRZx㉸Uܼ =Ea4pKU=wKgtb謹Ou7an:H kƱ}/Y`A2ؠ[ܿPPO HS6{Q?;)JyC>OoJziǻF'cI3o=!דri#{dm0.+0kr ~:kŬd#EEe/K'(פǬ/gA olӁZOQU @!Q:r`k<_&3Rc?4=z\z1w}]G`5̬p[ȏkW cg`/Ϲ˚0|}|N,48fvw;W6!o]?NWq|%?ᏇdιL  8|>${7V|A)o(<q?2ۨUtz$RD_R$v |d^[A.1Oz ~hk Em/]Б26}r;Cs"qm-G[-=ݶ)t+ߩ|-SZGyaGbp?Oh)pmG2f7ƙI=mAە١;L&YP C` JTgmcsur\phT9Ӏ_U^UprV t UŶ1>N,ih@F)`8 5(C[K"Hwk^,F~F)GI:Djfo6fǎnav:V,r |}zC\OWM}m$hTSkhٵ̩I Z&=\Dԟٱi @bG I,PpW{:o49S>MA6gx~)Yw.uzw۹(bӿKC6H/5"fX-usƋϮl aa⹊SH0E/P#^vCkD Uc#Zc5ա{)Ԭ+2q1L_Usp}I N[#'"$ Tng}107Ts s0 (cj(RJb_<rό7J*EGߴxS'9 R8z4߿Z̗ 98KAy % |X_O]_]<Ula]@n ۬9s 9I.0v&IaӰ**ʢ}6yk9{/NKK.z?p7ݝ0^IX ˧ =SqAꍮRϿW2W\*2ͼ(r Plo?'=?8)e^9Y7m'dę(b78WF>{ٷiqx;w'mit9XnOﴳz>y;v'bEG&2ݍ&3Z_M\TW 6ҽ-8*aP40FS>!6]Op26&Uvm q KrkZ8א bB 3@ujE^bx(]"W)<ڱny4\Ĉ&f>2MunE~uB=9_Ptv) yqWsc p2b+LEv?{-H>JYo>@ 3"nJ?"/ɷ5Tr07h^U!({Dk¿r^J ;/wޭ&ã6i*멻vy$s@"?[V|,(AqU&|?7qpkGhzxW}]}̳ݝj(_@b3@,~tJ"&?QكAP?:7=fN g1g&R^1XhQ|7s%1;X>^(zi=Ut;# H2_>sOE鮣V FVZ}TNU쾼%o ǧK?=˅<+/B/WŪe.Fa/Х _m̉w>#D5-1l\t^dxA<8۾Ldϫυ 6+jDSGyO`:'_6(hzWu+r:p~f_İeqQa%zFH]3j]WA@f/1Sk $U4E _GȵG8d%_#!o  B>T34 uaA}"߶q \պcJ( žڷ/۰bD+Kc_{e_|]BC3z,UA4:՞|S Gg=@Jv~V 9 5 yUjo$;EUeي%R.4N.5( lV@Y \[_nliZ5. i_%XNJKyoBEړ3 sJX6?XO;~Ynw5pg5 *f, +yi@c^Q~>*"㡣xxW9bxl^iY~IAXT|;j;I~Z #+W3d| ̫݁?Xx1#Aƨ0U+cm( ⿄؍ߊ`RGRk}W\IT7> #B\&z^Wuܑ8RL'@'k1Y5> | v.\`[x+zʇ<^KJ(Ԩp׫DZd#C( D/M=uMdQ0I?*7#]v%IeX@ 70NfyڲHi1q5hB}uƂHXN66Y-3Q59FBJU7$!xa?:}2Ijj;)wÁBh%g9Kcf4*zۑz(b!GʸPBթ:GYf+pCNAeO\W Ư([Waw +8뷥|#ޘR6aӘbğ3LLAF(abq$ՊN4 F;|5Љ_aOV='/~\Y]rerJ}MjƵB?IT28ޗzK8 C)DgM3xoaqGqJ W>FfTqnR1ZJ\e>剼=y TT}kAd$DElл}tI@Hq*`ް\ ,φӁvgZ); )i*^|[~ɲOt^ oP }P*byp|k__m[y%$-V3Kl_ˉ#ES o2t)KYͪ1.Z;tT5/t*7rpד(޳mCM4'#V!^k%FŦLirFk:3g&?yfA0ĵ Χ\=s4O]6*ߊ޽!} ?g c/g&r~VUv M%,^Ճt|8IȋI8ñSA߀a]`%/.9&!|{G33ׯ_خV~;*ȸfB4by~ k?D~ut9 t.u7;CPRCu2Q!b +;ɯcѷ.n>zƒK\˰uuB L֚՘!] ^Y*la2KTi! E\ADPWl,QTݱ/^3&q*kf_'Zg[l C#0߆c S#XhbyAZ͏v19Tr.AL^`er c9HpuF.m DGaJ@Ԩ` PL%cb^4p?Kv[d;s 5)>aZ5I-82܀׉N\=$;O2oWX+mhgB_{ѵ2Ő,^9wmzXHTP-㹉,S\3$ в[I8L;  /_!zHQ{GOix^䰗ƓV/͙QtWFSDowtnpQ  4XƋ|,;ͧK2;V}@KH\GQz*QR(oF&A>oϼh3OQtJUzc2sijs7J G{=љkȇA5>kP~f~(,rUMKra|Cw/3F*ܟ^$ҍǗ+=b5?Ѓ)`~\<ŔA=jMs   ;ޖZUO*ܝ6pشp(hQ䘯ghV*WZŽySƺ=^.}5i3\m83KX=k.KW(F1Hݿ;Uq쨟bTp]hqa$ ЕߏeHSa:Is|!m!k7Ž$l0hf0$`ZTO)g}~v62 el n*4dZpuX.#m]~O(6VmX_o:\h *&P]vJbϏ:)wµw 7dok{؆~tm8)\X@.cDULJ8g)&(\Τ*} V\᳎J=FfVa@U%{iWUw;KB<]6]6.Mc)%?˫a.^mͨLF(E\ Ԥ܄Nz@5+]{J+'e8F^%bb'+Y0--¡?E ȇ ێk^tHzuslͬbP:|8GSa=d!ss6plhrh'̤tA.>n*dDRm>rH]|Dhi" MWR#QJn3m  {d%zh$d#*^Zv8ȯ+ؗuicaNjMR􋳌yX/䯉$Kv:8twZU,M' y xtN_U32]K$;^Gu$)~Xޅʤ4{=pw} :B}GxM1zx$8Ub4nF$)pfV90-&qwC X$7z~P h1Y_O .ByՖ[}X7 ^؆AUɑ{;M H2ؒ"C[73yt7a-]Ue;Tıo!7m-io}[fZ[+U>i@0jS3I(~Oo``~z [^m !юډP3h @l+P#@Ns '~ŁÓU.u8gӰn'~Q"u?iGzD; soނ;^Ȝ&ʨߤm4uu7:4Pq:7XQs(p7t4_F\H&Jx ">s ƤY=Bmf,â?d6ѷH#`Jq }֨72x~`hFJU_=yG=Kזov'$D[dφB)U Vh,9=\.KAA/7Q4s`U:ٜ{brw/,ú`sʋ`!olÎ4}b^v*_EAG+srx7lut* FɵIw+/u7Wl]zvNÑdwR~/b,soSPrޫ;_MZ ^ 6UM h/o)KC@-z4e,Po~~zoY/(ɡ&ZN>lf[zlp}k b#Vx0{]\Hg56Z'JNk\uPW04WǏ{}q"~aJ&SUBss[3bu;g >eĕM-c|mDm:r eO>?W[$k:GtX[7+|#PH}m3ʉ9@=RNJGwH9-:ݤW͸Ѧ`FV,R!9ӖbI?A|O+xQKvPp zHX¸FC}2C@9[fbbgJ9\C'%LWˬ9xߓÞ*nk$N-n cKXU/'롟ʯ^$3 m:t'T>Y0 ѕ;(5`vNFnH=p R>}bsGܼ[S#=;`wi|mMq\I[_ KWÔXkyw!&>F~.8¢Q"aGe'Y٭m>XK- AB>=$a[4zl7#鰜N̓ZCP{eכi w7cpj ~us;PE\.*ٙ?9ԟ0^˓%W#^X[~"bƎ8UDURH2#_#J)گ=E]CE?ˋTk,fb)_ IX]ED+ʘ:s<ِ:0LM{a}t ɼ(2==S (A|ډf!Ib[(s #&xߕѨhA8#͢3O9m 0\n͝Fsw?:iopMI\p s %@D+*9juuU1=1d%qx-qQeZy oDω= r(U\좨8#_P CA6jvc$O ~%b__e(rjmn)yy\[@FG ypk wX1ޕvCz|yB|u {a:4fvAG`l+3T Vvv#Ax̓ 9`.ysuR54 .^0 UB8{)qz䌻b1)[bS`IvqXC~ B U킙/ºgS1&%!ĕ.k_[L)?2e~0<ͧx#s=#ZIۏh\8<AxDTX2XBal!ZLEUQ+JB/۔r=z7tJj2;/7`7HG]'G=|%FSz3~5E֬E]V/S1Q39 AW B,l;LBך-R&0ZE}#Լ4P2`HFa p5-pj Hi"3EQQK,/y5|<6oSmo;a6}++ϳ^YyX; -~B7A2gy b_GZ>R8RzbZHVc.ǒ|^zrw~+ӱ?zB7`!,^j ֭S,=^{EoGl Fiߤd;HOWZ[Vl߀p$fƣPuPXԁr0g/DUH{L8lkA>ŸdZ iU)YnZ^*Sd.D$4-*Șgτ &0Hsl%j,JL:R顐.ɱ5nD̛)*`4wm~NwѵE=0R0 \Ҝ>:XԷIUļ^  S~{9܍ 4|[/KWCT`t Vh93|`fՑ8O'0}\VryOh<+_ Ӭuh:(e?a$΂j/t*!_gwˤ <@p.* dj)3L&:_.$+;ȏw`H@)m |N/p#0@ivLx#Dw'R.J> ~J4Mq`?#z9* _B*yxGu*cm8 ͇^]yKJS+19ʐ~{^E/mAu2Cj }>GJҎDv1(B6|Q⏱ z7(?U^%' ~5xڵKIh?}=P*XM;$ZS,J>9 GUf_(g:"K2JP:W}ΐ kT&jYq| [7U 7h^P_̡T-)ݳ+ "6}A}A`AIzwy̪Zc&J<;XigYVߨю1 WSt`I|Ljg엲DT0MJ0*@ ]䳾k\|]9z5S# H[-yE9ݛ9*cASJr )cL<xwzjMf=̫< )|Il<385OR鰾yis#dm0<بgtFP z {oJi"-{51 N7g4N-3q[kE9V#6 cxb  5[Vzfa¾̚ISSNK}';*%p pA!SgտӦZ ]=Ax^WQi-|d-c~ʥvw% N[o ! f3>[k1 ּmw +{ kW>EUE2#롸b@),͐٢X$&}^LȔ3Km@1s)1C"MZי+Dr{Cuthf>nރ<;gd`Pjlү>R%YxR&$S)϶_XyIz* _0GD! :e>~R`GF+O=n/jK.=|Fg~7?r:4-n'p ;PL-T*8 C0_%q/Z}_234uelpvK0D%7r[{LQD$ȏo.9w7WY66!{M{c[=!QT7߫=mY>UWN2O=,D\ZJ/EО|)vo !P1Y5Ar|{Yjh Q.$"X􆒻yKps!?b]$d_|!O=.%3Ӄ:Tϛy=ݧaAwދ>ȼq/ܫWT7T))j`AI'?>͒풪xedpDòIixbBes\g27~fd愧quX*s WSޟ5poV@uu٩F1w>`x^=y{T/8~> 87n{ʴ=[I6=,[%\ KS1}EGIDh?J߳KQb9~l8[r طrIJP`{ ~;qXYٗ$*㧁*~ %L7tBod:O`8~+>)o59i7Q'_zt8q)l4Z8zM.lA3Mc饑ŸOMJ#"aKAO5}: MJ?w "_#H5V~ EDEDW z7Z7<]-ҀZa W}6U9kno6>XbΛrPs1nG p'kk'Һ DFǪsy QKQ0{w੹PspٲFذa륚]Lf]5on.ﰐ @;# n{1Р*mc/Yd3HS4 P_c2҉ϝ~QYxz:E gx@ 'Y֐J#pe*F̔i"7dWj[r!ESSbD]kfBf*KeJe  H⧢ԗ6dn] p8/U` ;ko5r0>ڮ~306.U =6ˏ{/Xf,egL>$)[#g-Ey;(?lcW$@W`n>_e”X3y@^c *ˊk eWQ2կ'r,!xI-s; e\/_W0nؖ4<|4;Clcw}EqUK-_$riєu<A5 =^;iXZӛ2~ǯDF7Im" }jM[F nAYu s,GG7sOq=0Ysn8G#6o]Jp봓Ƈ̎V[XԊ X{e%ma9>5˨.+_i[ETBS]\-CeTet4O73]מS~!ŀ:dMɯ_A`:*.2D3qgzG| hJcXNuwIn.u}1YOjk4m@ =^Zwsdi0JomgkPbX]ܓ)%G΋w L]ڭM[:O ]"hOK>vRZzPpk$: Ͷ SјzPWCY:IDIKaG CꙆyyZD[޸;*ԏ)}@t|n)a6tÍu> kFϴUduLj͈fwP{Ywt_piF~A//#ɗo9̎9y6z(l}?bF6 ?t&SxCyK6&0Wߥe.h&)ZBͥz--H/~\~&A]jңgKy%n׸+ iP7)nFu~rcI.ՃW@1 =VA)=ږ$dG}B' ?x=$)-z0 w9rϼA<ԸF|;$×cȻk&ЈU KvҖ0>PMECn`%پBHƉv yZM~޲{6'pAI^WA<_( dlycݸ4CΓ,zYB6LĘ*YPnR0 BWQ0?a8l;dp)S5.RJy> 뒡7Lu_ӮW|M6 rpLm!Tr^+DX6 jFo}ļ?pUM4)!Zb:}>b$dG|a Hs ͷ!sL@mZ}4`D5CZK^2%~۶!#(O ,~R7T8qrg@FO!*8h:QD xLmڒ*=GGz^9@+8hŚǹC%N0&!A;;oG~_ºkfo+4cV@`up,F7`eYu5?b56"/r3>ޘaqլ<|_k sʝVs}$8A_;\1;ZFd}|$ ۼ.1pEA y`| h04 fL'𿉀 |UiTz8"8ܗ'$bBM 'H^B<&)=f$H$:2zvPo{6Z/B/^/m:c$v3?+72%&/|_I-\\--"!X/l[$7ȷUZ0_wo.淙*9 Kjg◞ YmYYJ\VT,U7A߬a ,a6ͤ"-Ni(^LMEM|bm]|tĶN|K}c|Wܨ2е8,t@2$|[_YƳe{+Jـs s R.{WWevvG2P!NC{2eh.<-h7J$If$ lqƤKZXn6NYGDu(O<%4 %K|#|ڞL&H  7qFF5ZךwL) @Ӻ%*4(>ÓHvgx̿ƒR%t&Dv@BC3Ԙu)5a /ܠc92;yTm͔@m pe,]Ot__xǟUZl<լgM0_.-W$qjUF#_ $-3}moJH(tǻ(ѶUR~K>Y<1Z;+M8-/ƳKT-8T9!Jyff](?1w@U/af ]_$#)]]uUooimt?˾,?\ӭ~̶E^a>{~URu{Kc5 .CVqgq9fon~AHC֘7{KS(O` <@*\ZOeՐ"ʧcJ.wޫO^{OSS]e}W.R-)7  |i:g\4{Tϱq~*my9Ib`6K+̣!T;/ep 0 sÊfۻVD,dH.PYvB1hS5`.b#8toC? ݏgJx…O{c7%7вP$J9Nn* 'ôQ/κK_Qu*?T6pW8pM9?>m_tc ֲmHTև$t>@0llDa{b*:xE[nK,m0X="e"B,V>O߇4j߉.dv&qj,@_!@THw@*rf{6?BChp/ĝPLKDj쪮aJ4'$Rnxj?vaPNxNTwlBoWpJJW  *$&)ՆQ74%]o/0k=L}MFif ilhw!Op(_Z[~!mT yl?5S2b:`֍K:o5YYS!C^N8 3yAﱺ˂ >⮬  BOT 9JN`#~M$r$GǥY:z}`;q.p MVrLjaf}R.s}ˬZM-^X{a;ݯA! 1Cj6X56itk\6f~ׅS[Pf2,֋3t}|4]d:K jnU$4kOov7}V @oGӈ"H'L'K57xKH*qQ CI/y~q: Ŋc ;DfO؍7`*T]s, B_V>rA Nw,J|᳘=P%zI8S4&}av4vfQ7nE0bo۾HWº={Vo;1 ɮF+)N@~Z]S@n^/Y ?_7)fزGϪ"|n4 4*ED( zi2x`<ӭ֋Xuk *m>"RIلM|gz +[ؓCȣ ֗K@Eܽ8c9\qk)27;C۵lyU'Bs哛ڼ!$_TBUd ~*ع}S@}&gU#XeA:| UhrAkJ5늼L(Ϊ|%jGI](C>lLzgd+v)ZW)g.MN&axn,ıIMbB,R |%}&׿+IzG*V’@9ZGC,}<H)EgORji 7zY8|zցf]N>IQD '_cԲg5jȷpE'7'.k1P93ӣ9)jr$Bé@jx R|.ōǐ(L L'y; c/bl\wd)/EHtDdwAQJY Xb8Q΁tp-˟eR>k~5RbW!у[mY:xF.hB+{ Y!jc-_M6n+AH,De:ܟbnCy߶%5+HtM 4ޯ>wHyL\߀WnAuO`>Ύm\66`OJ`(xer/" B~TڊA!{ Oxu0}x`1r/ԟ tĽ m̨#9TAH7/fxE;o`8siݒd p!/z!#{h:T? xŏY]-EݱV t5V喷bEƔ7J|y1=lkɁ|7+jt}ۍԬT[tI;>"-!ֱq<2Ͳ<-wpNU6-2\bT@XBo'7ՁGQ7RvUbݺLEk=RNa%Mr~2님 S:AsaP=5lkl:9#cDHo.bxtIQz8@j$7Ut;1&wl ְZV;hte5x}$"3rVk.$)=ÇXnt~J!/(P]3YU8zo f ԕ SmYpz9: |`,.@glV:uⲆ^% j.I-9ЄQ#%2%5(Oeʐc?6!M;ttnu ns)'s!*@_u9/O# {{<z0]_GZ-.tz&rP =2Mݮ΃a'߶WxwtvD=SfuuÙgSʀހ#$JME>r:* e`fJBИ>xb\&*gpE8㸺%3"+~P0V"^E+W9(F)nX{ w"szʐ9X i'6nx(%m[|ЮAGA_PBAP@Af*=W!FwW6ʣ=z̯ƍiQ|~ޒz6ICU&`ʐpk[LXN?\6(G,_H !]H5/˷gkd |_zB̗q8(>>v}j?b EH˄h3S@Xgh15ö%R/4'_+kZh}6XVA6"K%/~g 'zWX#[F)8 mֳR{(`tB3|\D?"//"2y>w` ~X9ɭfZWQ0ĖO/S94cvW|%` yĕ1Ub1(g]x2cH] /֥ lYf>I)!@@@;Ђ$3}p ӊ %;ɻo^>X6. Ʌ5KImuLz_U23*7lt`ip e_ tGW*sNwgx7\OIi9viX?GբO=5[mǪ2>F}-(o՘#Tw]\g0_İG v4Z IP3Liϔbf᳒Ao}z8D(ުݧSCcer'Ѭ$&*߮wYfq9̩"\+ ftF+ $;xPMq%<>d~x.!0mRAK&cx5( 28 (x yi#7_ @cO)@w]|@]o/li qð$zX! '15p }%jV(ʹ] ] 7^1`2foL'FT~9_kA(Xko̩oVF45P9@BGBP+[dʈ·|tЖDfFI*%9 }B?7Bͺ]Ws >f$AjEG4!FXH%)w㿫[{u./mxz ]OP|;>[~naI")QXhbװ^(wnhLsaS1&ďK&u+j`hKEi{(ޞdL<"WHov4]A*cf<2v|} ΢TLB=Ax6E'W0kW~-TL '35Ɛ+ۂ&qo]*'2Ύ0&6vկ0:-vFmksk:z-~}VE,1~#ygq{eVOQkqQhun[mƤIڝP3SO-}E͖f'zן? h<-YumVꪔ 6{ﮒe3ӋrN/P<\ i!0Hjm}lm9~tXNBE߁д_o&'=h^'o}*Wfcpmؾvc†ڗQXs 8ގu~wz{;kgzMVשs7۵/ϡo?lqz_yY 2Qae1 $c\J:4Г| YP)CKWzcnɀt\t'ww5cYư :SHM>ʐIt7!Bj's[Kgp/j&GUVHJ Q.Y02M 1!oգkЇݻ()Hݳ|olNM$KLR8D]J@jW}fRrnuzC`TI!Oܮ|]UPH;52 xVmġPTz[tv={ oK]-wD5OըsI@_Cut 0{g9}*rŴ5s?4Ru[GC uC壻:J;9;q T>P8&|gW*cLu.W/XzXcZ-|C>q_GKuqz(\o/m:wLfIYhU??B_k%~Gk4Xjnqgꏡ[+FYvko;Y+NxL 4Xċ/(&Z-aG̾l Qs8&|%y4~e6B$ՋPʤW$R30L4uCǾ?.oAO8"泠okv׍4{yE3J~LMm8<=~Iu9˚hlD;^r;6-4fR4GPn@3&`3FfڮB"Vpbۼz7jdy\Z܄N~Sd`e5.j5$3䛅U*u+ ky,Gw68Ar|v7ν,-EYV ,i[l#҄[0L^<J6"O%Ty.v`;;Ga/ֿ0k(gbZvd/k^^gm#S*x^F뗭H%uKn7 [xuO$ȏ+ އ\p~A@]x#3i3ެ.LLQpʅV qvSm98b)'IN1ףu߂ el]QIZ~--LJk_d{J秝r{ٹo;b[hs XX''{k7mVrѫl9VTk.}Jvfo rMdn/m8;Rc9͟} DFj[j•}ݒֺA~dO_? H3?ZDporUUk:(-F+!?fܱ[9 #;^W|\̃^Uڀvܔ4Xu٧]>kS#<ӥ:'vBq>A_U_l,@E_kb_OBG#)"ɉVV8 RPI9nVFfK9( "dVGĥdgɁNmC۴q0nea;N7Q^`_}`/缙iF)H#47r̞s{xWrkVc3TOȜW'*:~rD5_%88>]=7&+~W_*Y o& RH1P|ߨpgnޖxSp7$oxx?Ut_[@R\MHesyv  Xt`=Qp$I=Jڮl`vnmFψ4S*nA=QO\N[3HxI"UkO*tr-vY)n66us+k dЃ﫩R6$?}X_E-!_>xn nsdmO2 vDP5Qv|~,ŗ fz"Gu`8gJ}kˏkٓܢ}Ku^e&J:ݵ&bC2oZ/׀֤9O^ڭ{Sdh*+[&@_Ey8鵾O}\U_/qM]nWoaOEl@k0]j[n`'J[TꍼL xF D}O>qcoJ΂s}LaXԑׂ2Jy%={4ī} WG>!XB+x&>0Ew3ӷ#Yǡ|{qdoT*wuu]H®šC5xRU׾1C/;)lVctM6٢&Gѕy..c z9w 108ܬr~ո]d8~^ |mr\o;pWrF} R-u}!/NoM#a}R g@)q,ZzTJՖE]7H,No$^C+IZmsΛ{e9 1 6qh|z766g l$܄oNqxNj3:Ca{>6ټsOZGr03ߖ^ݎIajPFbN׵u(HV^sC=RQuDu]\ܴEWNdvrԟSz ircSr6:Kgb Slqqp@iYxa9 DV~8nɉAڀ_j 8|C:a &'l[qX/P̵%I`s>&صW;| ]nH@r5u;_Ι 5O, O(WJM;QT sW@P&GۅtB|)%>Wq;>,7YPr"J1z0aFpSj[9/Ӂmd# %e(V\^V({ ͛5oT}`ë(9 7%7uJF!bx'qwzC W_G4f-(.'oi\bRl)&NGMUa\[0YQ&?7r%Ns}25;J?WJ7~jMdv[ɉhB@yNӿ x(=S(Sߋ%r&a@#o(B `:rFzqLJJqBez9(v=۲r)&('pi5 n4X:%a[FvUAƏtu/^ N6 e,sT^BsUnʟiʐ/cضÜ` =l9Po5H~[t:˅Cx;Ƀ i^; #NzCKtt!w5"8-@g٬aW|suʶ M[.n􆴅 q7UCzk&TiE.ftmu(E?Y~Cޠ>G$u\T>u~8Y#aת=A;IM1B??Y ٪A/]$<?Te&yUu8B6q \O>G4QAv~=.M./PUJ)[}}!p= -D!IPC_/\ a-.wD]60i{IL 5/ճCp"X7 W8twQŰ]+ DF88wi'!|(Na_p|4fFL 6?k:';g_3l?BqaH1t83̲㖙b]{Uj_n>nRbo ~EjD90-jOe#apV^f'N'za"zoR`){S}7?zwUnH刚JP }I+LՊsNPFrg7&APo|SDŽ_kމb1;Јwڗ^GzU2DJkltcEQS94X+tQ'4_xM<0XPNP Bpfx8gq65J꯹kZ$\=rK]vcjl)gH˶&{·߅IHz @4t4$[YAc 2!FvjUr*r~fga'%߂GJgE=fd強CD; h$+qzwYP;1-#̥YeNy@2튛f|H rkW݋ta248ɝQ6Dbt%oYr.*mu<`xZx: `6[pIީY;Hsevs,waͨ{F6,$%2$+vW~r8%ֱ<J7#ˬV3ac.=+5Ϫ1?džZ/"_=åN18e gؾrc?GA|kʃMХDS13+ޝWY/@sg  W?Q,f-kXd J'.KU(5H ,-GBvADw.r}il!3nݜynm`:;Xbfx?EIWWk } UnLs֍/ZH9em> ֏|ۜ6mwsr{}KdpGNU@oi<_7~Sot^2> 1; H4_vn ;O; bx#s7+ ۝5\e2O2sx97QS|0(mdQ˾S'[مu<긣d&+˙c@9āSm^Riuϱ-ju~Ӧa(uCHhmwD-AiǓ:,alk7]<~Q篼oVb?G(*Δ9ky4sR.;>~꜋4~b=nV[Y&y~#"6S3E޸ N*#/~د+Bn? )׸a㵼 nzztMwzh D|ihܓQ{i0Z n|9f:@و?ځ#G4zv_'yFǫn3f8Yw ,2qc0}QOڰ<W>/L} ux&f9Cks-.a|^ Nf^kDǃ^UU^( 7 -xڐP#,N EQxx3+߱'="B{Э(}oQ6To$_^ׁ:ϼy%zTrǹ:ZCɇp,?/D-$$2R?SJrAJU;Ϲ{[o ʛ?&CP0|[ ~Kv,o 80 ۙ f7A5}@g~Gx5mGXDbi$5)hnj(,:h ×5TM$` .'T]G.%gG_^E &_f!hg;ʊ'?~8㦷ȺmEz7gI6x̀ݝt-+e?n5~Cx 5>}`W6J~0T X]K؝} 8&6)<$sس\/w)8k߅CATtY9-A<پ~-7?-~f"Zޒ7k@V i enO 0uئ|\a Q=n2o]~~⎼ZZH$@Ԟ O~68 hλumVygU<3knJ4yXO5T|j=(ku%7RN`׆ ># MEċC!h^{гGCSې4 Pz'p@-]3ܑc{[>/K P2%g3_HvbBb>G#IZc&xeL 'fbѐ/R5y@#dhU9s$3Kr 'Mgst'&XPߢ~S݌ݾF=zAU1}r)3osv "(vG<(<6Te~M,%( 1pIyzG[hX/bcK4S;N;)2?Bb :f 5q{[I08 Ư: 1~!D~ v Xvk75<˽@-H8X<2b,}|g橜q/sidwnAd0[e ZvW~L?]r'^fuQ.{"|pK[WK&Ek\7cv P|%D^,V(>qP<}&z]؈;fK5Ht^,Bs;C9;4IDil8j< doKO)=[a$!~Ź(=CZyl뱏^/֝,EǺD!BVGiccv񘜪(3>.w@ ? 8w~khd&uh@bw \ZxZ_GEq$?U:ﬤn*@3ɧ|̣iBDĒKoz8I DꛠFF܏T ~ e'm51طʍ+l/1JIGtOcLCa6/uO[@,=7ш7/W^|YGr?(s#íc[fQ~,/v?>Hꗿ ZhWR+ $7C66tUDvo!^el7鸧~w 'w?t 3} &?mins{ճk_oRMv\οlGmftxh'ֺ\CZm7 B}QǾi:? YqhJC^LdY4 u  $b >~+ Œ(h Ӄ .M̌$I4f[N<٦.sHmGG:"P;)V"jTA>W\9e,9yhy惭FHmƗf3 loV v;1=&cMg 0*k[;) V\ܵ{;Y'|X j?[I1o5 9f]Rrnkl y]`j7F _OZ'yU)fް;{}*㫰}#|~GVS{[g@|>%<鈾VSHMRlH>qu?'!AÇ뷓eJ#ƾJc%*$N!8K*-݃#)2\fP̔qf̀=I9Uؤヮ=<_v=[PI5O{/\W AQEZuD@}m9I˝ =͉iA>w&GQHiPyX"r寥sm1َ9$WFjhm~ѸUƧO1[{VLSJVSzan==D=mQZPqNN9m{ol8j+DŽ]?@x&wɔވmX@]r$G=JycUT%c>xr轿;ԧy5*Mߝޱo(;>fMCgo'@Ӛmr%)ox,vy Ѭp RX;]!Qd5,~F..a]m="E0.D RЯ\jF ;C`н*m+{+?hb(%*||QrGVKde4VM}[Kg/Uʹ!K(m+\CB t_;b郸_&1i^jީp%YTf8]?t/{z1tAõusƻC}@P6|SlmM0õ=K S[ZbTqP,1D)qS"u~\()W_!D*Lv "EX?[/i>XPv$cEjugig7 s hbQK[]4m|B'lk?OTL9쓹m(V?vIrnqE3YW2mX ~b~(c㑵b1@9N! 8oar՗YgMFoEjS^$qUc׵/eA L]fV[qȳuG MeC"Es9>etlšNJ=Y(zTzy作UlXKMjpT''p+*gnmƹ/}Df^Ǹ$/`dinQ7Y!)LTUY[?灁ja"UD)\4k?L1 Dz!gqH+߬pJy`!Ԫg>0۔#}ZO'ЄPz0=`IW؂|WjMt%^C|t+ A#BX"q-DAv$5G5CD"A/ OdqI@~ZOaR%4Bd1 DN*٘)˜ey Il)߰*sBo2؞Zz#7o*x-cm'5t**x|󅸞#}eZ8GD_A嫉!PF͕˥GV'dEt^EoW9;6`> y %!~ቩ]8 |V"xy }mx少+$M#FJ)c=GFN_e{[,gO}/RX)JaƁ~9lġ3TPh q21gX11g-AڒT $ u/@&mTrR t?[i< r,|+C7@C҆n5kTF0tg5aw֚"=h'vMlIqB&:†%/r(̰o8d2[Xf79ޕ:}g< X_X䘱7S=qo+"%hRï/`«&t퇓 ]E4){Xǚj,dN(ͷ!MCem^li6]+CZs[M֒ z +9GI-77\$U [c_׎)?[1MU4|6<7%jg#JBz;sD6VvDe}[S=~<괇i DDz'x(C\B#^D,Oy[28DwPB>0Ǐ-0tUՠfٟ1C;Ͳtk~~MPoV ߈͂Ђgπ!wu19XL%i T-QWi^#M32 pr;Bd/:7cyľqOe\%Bhz=Ε{e` @h 7<7:cgԶ~q^bT<YDo/~_FϚK* Dq/eБ&,+C0ex5j$F=dĽW۲|j\04wl.XuԈP0B k?쏽QTs<,&Ffmu Rgpp'A5a%O(o~6RiYۦ8sG,n>ps[3oU/5tGNJds) Dc{^Vea_=#0¡β=6{>֋o1'TeIpP_1i}4!L%sbgM3ױٔ!K^ KNo`Zq!,E^"|ۄ $~߳ :>0I ބ2_a+)%ƒbŎSy/ܡCM>$ߵR,7^LzGzlDTIl~AWtbPg>On+ 1:oC= D<]3ԩ%|s+ŷoB: shF HG07U뷲mVq&ipHJ>[d^-ߗ+t>⩜!":>׻]LY򇋿aP=pPq"E֫;.m+E5nY@h#B_Thc]ܗIG&4>4y^Ozj^C WnG!2UX71a]tk(&8v]1^*R[5b9dqDrqa2=Z*QnV:T\eF瘖,׼6f5C~USES,;0 ^cbpN%Q9~Sy=BvRɕ,_qN3A- o{9Q{SAUmI4v5[-nV;?*k .2xSDd&!eepcR< }0O]8!uH+:$[ ~|۷s|km!dn-gmA* I Ưo&Jilϐ;unߖ?%ן˃>=iGhdb%4{[Xe>1O3V4_kjtɏ$ Sw ra0%vB#a7ՂEY0ybGZA L4쎩gD~u9+=` OK!99oP ,WTiQ$ykz m B$jx6媯g9qBXa|C׮WFo9~w[Q+o{.J5>9@?>e-.[htU,!,'j 8ԇZ{[̼?7P5 E|kex:ziZ}k*y'a,paGcWAwװggDVi؜WYs/E:]x4(N?-JP߆7 8UvuCJv9mo^ZĮթ3qbF=#A|d,㋗%|; `|jnucu?ء_ _ _H J| ?ٔz|roKh =6k\vqBoRtGcj"nl[EA0 ѭdNEh?ǔdn)3owsŇEtpuoٸ%xSK:l*(kݡv)AI+x؂0e}{"dvC* +e,}FNFnK~w9{/Ae_hzT~@c\$$2e*1iYڿ:t8>ԏLcQ7T"!*Tx[N`ƙr&9>"ܘzecCHB!0YyWzV޿K v D _sʉIˣn(yyʌGʸnB eFGwO6ٝ4P!"yR{[B$~p~!PXcpFL{XNFcΣvfVDqn .wGp 11h'u"ɏ 6>̍9]eyLePe;ٗ(zt$ㄧ*h-Ϧ_}LʔC Ѓ-~0v#!NsNUK.6q Ct늁dgHZ/7i/7X-zO[l%b]O6ٖZG7G2zvJ{:|brӏBCj yujV|G^J9OxtuPTLI#AhNz?mu􌐰;~ P:}i HN;?RKDf\+Wr%n˙ORՠ?{~iiH T([*ye}ȂPrslPM$K:d `1e_}0Kغ乙|p`} %ce+*tޥb# /K.~2EeG`h~Z\| f;}~w^}~beDJ:65a8$7?϶y/Caxyxkݸa;oʟ{/&Ub뼻}M\D`ghwF?dh3cw[~ 3$HŸvxlM&?lAP&לk-vPemO]5cDq?;>xFnMHm^w̶SkLn%[Q7+z%9L %p7R`jo~v/ׅ W;pp~~XMﴙ1a3DTF"/H4šGmѿFUE[F1oIu!C`?qf{Rm\\@NX-R23~ _hv%Ý4cd}{븧8(XPez6ffpp;}%~k$&fv{I؟4:S|93Rۆ3u+Nwc3FŻm6^ubC7Inv~;@7X1^"7+van3SٝQ yH7>n?S i@TGcJ@f,Qq'ܦX  eLCwx=?g> (u-hlοg7}6q>PzGJ-N;zTn;m)(~cee4=Sir W{T˜x0M#:m<]g=+я;hɳx^OX>L56:W!rzXh޹aZЮ9 PlAr\KW`I+E::n[9E`-:7 *z=봐v`PUg#o6DxtOw-fdO nT ߽34W\G9r B(ڨ zǨ |@::}NU87͡gElG9RŖQ|$vcd:}R6Ӷ@ !|Gd7E#qz!\F }6AЦ> ț¬o]1iykqax +sP5}JtoϾWSd/V^7mؘشųúk@PIS2DmUChX.HFñ@`wS}*|=;*\Ji#^Okz=oR5ť\ڗI'Vu3, Pj&.IƾC2@7Hvo ^?¶&z(bnf԰,ퟜ2-C̺3v_%m:sTW4tܠgͣJ51 {h~{FR7kIURE2`cT` E׀rc47Oa |v\NQ&jexr+bc[ߠ ]OZ@5K= {=W,\1n'%jih%d|;:\uGîzݹ}c8(t$،d8b²h@uH L5XOgjyCs~ΰzZkHVժA&[͟pia"Kd<Tꪌn8&Ke#riL1ϔIZ>?]9fKI\oØRM>59!4>N+|y5i =voQZkZrYXOgD:8cYw,q;\:r<;SJo}͚X*WCvqDJ$٫0y<̂H@,r"a.t?Zt!5 n1S*ėۗS#pɝl4yDoȺQm[gs$?ΫjI&yaGrc~y@5h/#oWgh$G$qb:R u.rAvY8,;poAQ6@Piد=sY+J+a_$]^ʑnH:nL?{뽂E߼:z-RyMC 'L"c|HnڽBt^~M߬U9wsDB,Q@,Lr4HN}z<t#ߴ*p4}@B= NPG/eyK=uzyQ((b1<]XqB h &r?\XρhL,&FmvƩCŒ9TG,~̍^ս:][ng_:w Gc&uR{X־UCAg~핮|͌mdc1.`PTx#^Ƨ:7@Rݪnw3]~"^$hZ' br4#3V4r<N&hrX<,~i]k}bOshx ᗬ܎wu~ߜ꽔yup9.*xDYeYqP;:jyx=5fFbhGU(' !ԆF\6Џty\ _Q$[MOQqu搌u9єX64,[AF++j3(ڽI(\<>p$\Z^ox֛\N=Wj>kpN[b,9Q!]c<_]x+.xSnGFzn( I5\>0$#^$fEsǷ޾@+br\i|gJ0Y? _b>?k<1;S/7v%4!H%ŗb^ g~i޼U齬-{9:0UF&Y}NUρSf ( 0OXj&\4H() R͉}J Bqx"h;lrNjEP# H3~ytr#ŭ@T1m@I0fj,;ΣyeO^1OSxuD<x=,Z,ŞJ(}(*hבMxӋ9-HƧ5g,:%CAlCPf droPwkv&5juK:&# XrUZəcM-g([ >\ ەq7;ptoG8Pm<yX!V.iAqP?ϡS<=buN6՗z %C T,?~/zp0ޙv-i?4Br&[5AGN!KE&9 $iFR3 ~4NGL镃O$Ba,cGjF0qMGn)QΜ%pl}̾o< #} 7UpQJ'ʺsNZhhwrof/B?~j\n@Z Z>mn f[ ڄjqVbzȉ#!Mf8$8*hL&)ǫV3b&1w-XqfT_QJ$cwd2ڛf7s?Ҕ 8kR:v$=t5J39:i%hU@c9CՈKQJyW2r >q-!UKmr˿L 3'8gaŐĮR6~5 o=+oSO tM.ʯ{7XBDW|no+3~y J)̟˱v5`ޙY`C4ںLc&v}W~01J('uG न O؏1xr%=Rg&LP,_L΍ղc#쬟9r_jZHp|R v,f\EL9}?[;.hR0:?ΊҪگSNwQ_sAMGWgʽԯU%FtBJB{eiin{m; 3}NޅKS 쌮TMRekqhL[ҙMF.jt0DwHbRߝrP﷚^bE#ƹQb٪u{PckFϣ3ߣNCЖ閙LF廉iW]ᨋk#D%Z=Sa:{tA[5ѾzzokBC)W"o>l_"|(ou8շf%̇῭乣|[Xj*SGWfMJzЗs_1vA'anvMVר0;O}P$q*G.a~ŋլdu*WpF1^Ht]=\~<#i'vT^T[PmIk9邰/*#_ Cj'JI:&yy_1TmMYJndLAX3ЫߒU1 zU1Fهt{?η=ty>;S{0L.U013S߭JygPLHd^X[C YTW[L L;|,l|l 7|^+0~^>_ug<e bU6zZ4$W~UgvtڞWy~!eV9ږckX@Zg0Hke-V|/2BOaxqCL}s\Ү.!yϗD[|cp<#''TCpXĝm:pS Tp=u1Kr&λb;{׈-)zͥ(%-0o/;׃5,fݎEz/ CG\f_ʕ=za>Qe](OһJ=LLgw PanY_=CXr>hMU9Mx-͇O`}{BQZ)Awo9 }Ɗ n%O)G?xWxtn898O |gh!\ y-ac{/@$lN1Y qp kR/qOן,rpU9߆2ohUvݙSA_#6ȹJP x=}Fy7DVLE;5=Q4E8l?kLN?hX `w4ksfkϊz'+=?kFBO:p$(C~{ҟh;z+CkXG~i٘)kkaor;wV %SZ? ʹ|iUdd*Na!qf'm̅^{Ŕ lU dNL>i+D=IlW%KFFMQL&BW]s{G gH:Dg,rxIb;cZRxk?b8TK-v'|$-y驋b{gFeoDpZP{( }~ZהZ4ǻ5 tDN)r[BRq^jS+c6.'|ďu/=-s'D81pO03=J@ZeNi D[dI"څsy8:9(1aU^@H:A ($YFl}elsEU+I: _S_:3߶ م Gr?4ߓq>jhf>]{[|"옝'u!Ɔ9tf,NXTҧIjP]QB)~ !&CGU\ tiw= mRc1 ԥg٠;]I>֩S(zp:]w*̼7G_~*JzDJo`Kr<}_1JaDF2򋁦!Wd\y蹇^;=aۻjʱ]ƣ)*t4yJNNŊ0UQ2BUON}:mDDZ۫L%#<`dje$Czm7%]}\vVoYa-r*UDZb"(QNs3l.Uv[vX0EGct'gÓ|O$mm4{mNfVP~TDV}n:~p{Ƿ0ftxʺxSx"ȩQG_A%gUF ujU4ZwZzP=ѾX[f)700tu: XF_y>AW= !7&DջeQ"tÚn8}բZa)О9'D0fo;Bm!Hȭ{EkZ-qؔt3(ZxCҾ(ðt leBá ޻qNh`;*&Hi ={L&ԣr{",3tslK3`aӝ'|ٍK*Fv$s<}_&|<_Vhr' ;w–_\ϹKmzq}u4@OA|Wi݄{fzw j>WwPa@uǟtQ>mBw, iѩ+Y{w+'ں֫ҹz!C@'ɸފa VonيSM'f-=)le4K`ꈰpgsL(:  +9߫ 1 Pӊ:|dkH[sc>`/CQ]]wn &i0e ATM aj`=D_֘8IS18CJWYRA'x=a{̈usľ!~TOkHeK( oj/>l^1Pż)isJPE l"nٰ %H9E~% Lö.:Ƚ7@/Yv&D烵ɗKw–4~gD9f'/[m[p[23g$ЖOr6R#wN kljK͖ WUmW&k6I_`sedP2ŗkرx ]9ʢ}C7q*; 2cmRQX~ɲYzS?san˞MI2Epw۬a:7x-˺E)k 3osIBNPsԈ26/tTC_c>{TŪB+eU"kBvz|#*H޳K!sqpP*)^}YiΏ'd6Y+P7a^3Aޘkg9; W3L}[_,>MMuݗ>1՚Ld?]/enWt*:-_#!=f)(d+rz>L-f3A+[:3pizCB&Vv3Udp(3D;Cg~pn8NLL-yX>c`BoK1?",rʸcE|4e?.*M_L74̜PP,Xz,8I$ :.5;ƪ<Ƞev.)oE~q]șd[o<ՙt Pxϛ[Cy/mNǗ%UsModzJnX1ѺF8 !w&$kQwy->q3o1qTpgبw8b!}NrDtO2cMlIߙi84ĄUˇlp)-Ecd+H$b/Q8sY?oHm,>H>FXP)2w8Rӝ k>#PO|1zcߕo—&?pw@ #~}қ=Dï/osXJ8kgQ˴ltyFo X% 8wH̩C{<"n7l#%,dzh%VfB`͟F\BLc9X pHlJW (pGCk?{az]`,u!mwOr{L5J#QW#yC ?{>]? gܿƿ'&{p=@mS6 | }v@{/@3 a⯫I 5Y$i2Mp#ȟAZ!zp[V!ݛx"  u}W {})8F7 :*Qrue,J( eijJC@c hut5UJiQ%EޓʹV҇`(5ĭѿCo"t (̑{DhXj_:@sF+|8a:jVU {\&N M ˷2L`%^Pǒ\ewI15PuC~'*%?xۍCCF f\O&ְ 9Ow [0tc$Fuap1HO#|C Fj79B."b l ғD0,Rd|ca:^B-6xvPbI9e5LU=Q#ƳQNW;eTef醊vw3Lm,xv &X҄uv5t4 /[#y~<  o/ .( 4N5Db.-.(B3_5fƿ ;IlX_` T  J2Z`ZsYL85+ J?A1g'@T]'N#Q>VOg2{zCԗg"0O ~\~0Z5,7 Q;Cw |F߀i#?N4 q8G456ӽLe,~b\p@i؈oppcfIzQ{G9hA/A4 H؁HĿW%<=7B :k,+Nî'x*5U. KⱱFu Q p"wo?!cɸk.p SX,B\!ҟg|4 \0 Ռ=Q==O<>z>.z{=z68Y_xG$i`1ɒN+ |\1 uAAF {+ U㿳:_> u`==6Ժ_5?-ނiTE1)+PH( ֑՞V0H)`7ՊR>4]" \>{z?yEz=ćooЁ4076+`=g l%H=kԃ6҅2>u3,z zԙm'(LC6>R40+=5pfTB{]H]bAX]؀@啙8\\<++UN8a_WR}黙L WQIDU :uOOYW_c%8C%A4J4J`05]@PkNa Gg.iZ]Q'#!3ua /G>&(uOXW%kl+LgRF| 2y6} 2^Tq`??$uyJuY\4d &paI-_JX5X$"+C:cZ_y+^X@.T[#B&!(aqYT^i:X?OX?d9v8%so6->Ty)ڮRt{zvY+Nnvov }QGW)PZ/o(oד:c "u h#)S}r-XhJo3׋@2uR"8q %@ʝO5[?S{w\ jsE$v…?] sxb[O,0ɣ_l wCp]O vvl(_4j :x\1=uwĖe Sh+!hΫN Z.X$airu^Gw{aV#s gPsڭ qwg@G*`;Kh.ǿX鸀@EnZv6wR AEiL `r\E(Dꅇ7E "1{9;qv/t ?+0O6KS`@slcV) !r#G@C#rƎ?PV|@4n_z! zATg8g!\f y HEH(O.w/~aH iw5xXl҈ N0r lK{M@?>LJ04)}Vpcc֚:SDv_Qu<f嵞 @Py:'i["ZzkIK+? tvjgK]ͥa=e.0?gh^(TU[Կj GH\.!S@l]1b@NDW {eO,B Cˆ!Zu6 iH8Ru-d( jBr:&  aB KI_KAZB3u$\k{y|0P:te_b^Q J8.-."UCi ç$gE{ H;\O=) .b6}a7` n#kBîkɭ ', |m'W2][e|Wɢĭ+v\\FNz }K a2T꫼H֥+uwX\G`U:ҵե$OJ&2n[}RGw /"vװbK.@Βus``84\4|j Db0~^?ؤ! tgU2K PjUDt3A ;NhxpX?)Bs6~h" >CN +MPq9b b oKB  hT[_+ t-BQO d>$\OY߁b=JdIIRQy߇D|AD ^] tD5ѫbP#cݽpli|?VL~ fǮE ҝvk ~;,dA6`0OQ93?x̋>'A8~`5OҼk! ]tTZRvdW@gp *okoLL] Z] b>P$;b5WGԵ g}-濒oG&|k4%] #u.' /#?CP.1qq? N~-OaA $Yֹxq^LC>Kr6vR'L!=rbZB3:d=qr5;3RBs2'Cgr Z(|0k(׽чK/ǔ8e; >&@e‚\7i?4&(>|ڟ"P~;1@;rEte0?b#Tܫ!uQ!.Qq+Ep>ܼyײ0v`|ϟmN/tNsX 7%ouO:كZ97?l? 88`'֫gVx|5m-@Z! {0NV!FGrXeK 2U/B\4oNtB,&[eٱ$(mY2?vkH /gmٞ'N6__ӵ^He1g@ֳsj0}\o0q_PZyW4VCYƎ ޹=}MEPSlmգ+G!8pC/^_'@2?8m8XkO-'5Y%OD{Lu9(DE"2 4v/kA6j[ ޿RI!??˘(<"U C&$7 u LGTD ep\k?mI@k;C ,L ?,AaPA/g0zs47vcl]KB\Rt]0>2^׭ K"y~L:iwbiv1uzb wAY.%DGU^ީ85?fte3ytAm}\:y.L$ק*#I8%s>i-ϗg,y5+4#}ދvyvΒj٧A؝˨W޹F)V'q-9Dvv/+m,61ӔdbLR^:|>N~Q6s-u;A%\ Wow!QCy,n1. |ӑuuZ8ӧ^? )T]-s'Z=䛩9 fՓng 1S)zjR)~g2D]4Sc E.ob9?{ {ftq`K\2jJhlzOs@ Pdb c.BAn@@K;sPvay$$|=TD:A'fdwDʝjBozhXĊ[hyao,E͕!V `m!YgwNB6`;ÆV",ܑUay0~8Pk!&TSl␟kqV`kB+uI%)aH Ɨ K):)bn΄Fp6*1I4~IڼZr 4>et(|0OA O֥{$X& 9<:Mn=բGՏNoqȢj ̠*XԠG<,=M`=^(ߥ4wK&EfbeG@1~k7ov.5rfG!fAIm=χM􅡒6e,e ^ ^8Xl 슱]6hyf:q5<Ⓒs;^EzMɱףy&n~jP1ޅMyk}I9τR &:gc:8FKcqt#LUI yF8aaVjJs*fPVpݸVcן ub[N-ᝁcмs(/)CNq4Uؘ}afgx$ G2Lpj~Gv|7ak{-D~DГ9Ĩy+[aTSMSuihXsgI |lBɜ/hp bӅr,T;+.'3gr}*J1iYrφ ũHG֒jv||O*oz7?T0}VgHzҽ|ql*MoJd&[³t٩t{ wZ*+ $()z,?>0u ;ԇt8ծ n< ,Cf(~а=5C`V 5D]_n KtTa޻1+t*l`7lO$eu'3|-Ѡ4p3I*Փ1WL3C{p4&'ӱ3{f)#Mûl*8g0pl?ڤ\.)u۶mX_:^O^#+}#ߊ6ʲ(xRWiO~~K{RY˟iȮ1qi=o).\ː4H69e!DV1{'㍓'B&_PN}P$v-#8FPc ,159cR=K[P_vemD_ .X~˥6l }Cle95۞-GxVoۤXYˋrRms{7Nf/ mRۼugE̳}yrwovtnRx7`1sۂp]KbkԵ &;=`>s-%yl̺l[$܏_SP}EUWծ&pe;0*۵UGu )aű^p^uTxjWxlG5mվ𫎚jWB㝲qܳ,'{uWqh,V,u5UeB<3Zr/ýԟ_\5ok5e2}?{YQ vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/0000755000175000017500000000000006766116004016544 5ustar mohuramohuravflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/8859-13.TXT.gz0000644000175000017500000000652306760640471020434 0ustar mohuramohura9A78859-13.TXTYr8}|0IUb655 KBJ[IrvP i4.iyzټOU.Wv;хw+~-&t=khRlw{o/>oOB8OcL.$ 8 Af%>wE~4_n]v^K7x5}-t X=o(q'ͮlfo c@f953Q.72w$jo9k1]NF,kw~vQĦIEfM1\^Nojk~o;:2_ns @>϶7fۦѻΚ}]Wt yOb+`D#[d*:wtytX6y}7@#vgې1jkN8p8ӻz̚flU+1f7{@fAsv gA5$nZewY$%JN C{S)3wyR վ^ E:㍗Zci|<'?hpZQJ)O~;G kړ քþ+݁нfli rkv99]F'#VbxtI^~ekk@V\} i$V8y.ȻDFGd*[1˾xҗv{ I>|DTT9Γ <Ȋrpž=e˞OJ=KaTq8щ`ώ0NKAgJ#tØS(PeP;5=u.9R5㟺dŤd`0Cգ }R9lu0*a1D0Pu<qHP;]a8;JɀǀVX1ј}%*5:J0X-URa0a>~6eQ>.C$}9Yr"\2' @u=]݃X{'Xˢߗ#e GLp|v. VrLwˠQQ%FW@eLzW+^.U潫q`2f2tT@eF}xeВb0lV.cuN5É^@ TF'q1b;ru<t=*p<9T`/[ԉ9I|`36CA՘6L@)f'{6ۜX|wlNs)c'6'n>6+v~ds <v1!Kb-~jsbUA_ٜ=>g6'.hԹ94tO |X%:V>tOԱiNSʧO>u|NS'֟Ա?:Sʧo>uCH8J%>+d$'ZE([P9e2d}>[8)>hZigIHj D'I KNy .,7tλH@ 8RAxޅ&1y.,2H.,1(]X`p"Hλ Fwaq @@wai ;'y| -|aQ | -|jnKh KIKh HKh KHG I&e0yzk<MG8 ̒qO,"M.e"|ǁzہ~1퀼vL;v;0v캡i`ݮiJȴ4vML; 覦*ӎw3!Gd?B#3Gf#?2!Gd?B#3Gf#?2/+wjYZLbxi%` ˩,ad\x邙|=u-nH-":-ВV\j(bɲ+ U(sTJZgPHeF_/v5c+ZҜ.<H˃]|H{alh"T_IHqPAͣ]]=B$փK==b}Vt T1 4>nQ!~H|tm`E왣;AlQ1W1w?stO#CF9iJ,ϤE Zđ^{ŠCAXI'ېڠvLSWe ꌛ$`|uh%CΥ$GM-ǵssv$"0O0A&xLV !%p3^9%c,B%c'eb^лzoCOd'[2RVoPS>f)AAJ4Ϻ =Ll-,}sXi[="E]؟S,ZÓASd*$(zv=V܊K!Ityx B+&F>1搶oeOe$UX'f"!53AV~;-eZECH-wJ# U.k`ۚATl>FZU,mh mAYngտ%%XfCPmC<8@b4f, `x3m@mIPmpT,oZfPmog[i֊kg[N?gTo!)HYHoH~,G?#?}ʫ'RRo zˋ)Y+""o6%>g>xˌ3nyM5=p/{*?w+/% \)vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/8859-14.TXT.gz0000644000175000017500000000642506760640473020440 0ustar mohuramohura;A78859-14.TXTYr8}|0IU.]̦"AcITH*獖X݊-8t ׯ&$Lb0 Á8llo ?vnhU}znzfݶRh0hP}zv@pm0qwy~U+!.[4_n}a]`v.ě[|;މl3 DZ{6,>*@.5k?f!{ߛm7]hv߶`+zދmĺ&D.fЉz v5M߯Vݖb%~m[of/ cY;:F,׻Ւ6nlBm94zS=o^n"{nŁApo "X7e">hF+W赊$n؝]qm3?,6ݪtYtAł|l(;i:w^S0HFٟMw*dV~w"(mڛ_imo3Y z;tv1y<?hxPH)N]ܫ#-j6[i_ UQͦii 5OO?o7\ԇZRҊ~nVSǶӹ|*28OX1;~PPXqVk+ڜ-D>PG|C!k~s4~d8! xs](iJ7ğ|E!~:mt.n< up߰?>v>~@RQ848lr^~D8p=KJ4 >7TT_;]5TIJi&B(VyOh$h8EU}LDQ6"2a!ٿʢ3c bBy1>L`OGEERjĨ0^d)qž-d1OITEx)dGSgsȯY,ELNHkP] u(ZZKH FC9sW)Ni@ńד'Y2R` u"X-d0$Nml3ˏAo(+qTp lk3_fyu:RmGex( Qf'\ڊ|4FNeIuwJ1 фn4IyI^%YI2J]2+y|W_g6s,Rylfl:"<LZ\]\ө&dVQ6ReOl(K5J윈G8q21}#p8O.pǑ.PxOX<B8PfB.JFqDryd8qdD*#UP0gG;(pbExY.#?p e9‘*dDT%ND.wA{ֱNͨDG n\DP~g\GMKQm \]dqA@sĺ 2, `wC(ctF& 0ܡ (JbB-nbqUw!W@qS҃3K=yF=}a)AOQO\s<35AOQO3AOQO_=yF=]1zzAOQO|'Ϩ=yRR(tɋU+ZIX=K-А"ӑFn}<xJ>߼8E}?S5+RnO2)oCCCC'CC?p! ?p! ?p! C~C~Cpi ?pa e%^^K` z zlnp1 .%…$^^K` z z@/ijbtPK?GpAAKG34'%HĘS&HĘiEb̋4Z "1:9HkN 'cN=Ez^V9sۇ5RM@$$iE$Cʹ"?c~I 2$1&ɵv0 ;$1nʋ7! ZH iz;=DBHëG_ ihZix MKHd4!#FCH_^O !}ixHѺM7Hh_z:N :+Htix rt~;$SnBAZ/H{S)ttR?5uO i )r 5^S$AjHHԐZOpʟ"RCI@iW HԐ/C*vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/8859-15.TXT.gz0000644000175000017500000000654306760640474020443 0ustar mohuramohura<T~o#[nd8??޿%|?z~?Q6*%־e`~} ';!Ŧ;7䮚ZOݞ%~8Sv s{rr򳡶 tQ ]S40./_E:9ACE%T\+ЮypU<`̡15LNG\'#,|2ǥȒANOw+ֿ;dA[ʪq;,S=iGk(H.!l*|vXByC;f`*wY]Heiշ/<1 a,q^BԮ{Bԅ]e˧he Gհ:An rȤw!ZE$$FzP*L[U< W]]?f]L*R uYQ9,uY8 $ǠUU /pgP]*%e8~l8+*qt88c@yˁ&{ٷIi !<5r;(.<@ '< 3l*8R=ρKPAvC'ւEu-}hX9Q$ϯ$N!W).q/Y=emد;c響n"B][RIPulI1'A@׵%qlI\sº-)$$~\ْ9 ڻ-)$pJ[ҿ0Ȗ%%nlKb3wAؒ]*[7%q[zȻ%5xɳg[O'ڶy>8+ o>>'o^ܢ>/gI&&@L$~=-"Ӟ†mOaﵧoOaﵧSd|@HQ{ &=~Ҟ _`OSXp\%¦ [J^ / x ,0x ,%V I^ /l#x ,%h!ߜ@ZOjP0%UOU"HI@1f5P1㐼5йqs8yf2|3z`JЌC4УqЋ8$%f)3R#Yh?DC!QЬfC?4Yh?DC!QЬfC?4/Q?5SEȆ܅*-] Q$rz4E(|Lҽ+5.cHVFOR񭯁U-GB,Pz,nNe1~*H)Yʔ[|2ydCZX6LȱAB[yQ W"QQWه u}!LQGh_92> dF?'hE|=($ U8aD|O@$uMxܷA(:<_ "MA]jL͹^JgoY n$D'JOm<)Wl |` bntXal=/:"xZֳ|^l֣Q݃z: ֳ_߳J~O01GU^ecP*z)O-<<ԩg/ -y;W)vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/8859-2.TXT.gz0000644000175000017500000000645106760640475020356 0ustar mohuramohura=A78859-2.TXTYYs8| Ta-Km-FRFKt$ `bwlqM7zϟ eNW PbO׳_g+鼹]GwcL-"jL6ţDvwЬnhfmkL˿xNq;~//yD]+o Q2l'ͮlfoT1 /lٮgLԻ0/!$j˗o8k1]NF,kB;N|jv;NWbSSâފv1\^N|5S57-F/79m@^϶7fۦQΚ}]W |1?";;d(*ۦ9AZzf6 Јz6z%5jVki_U fli 5w'ٜW{v9㩤4OV6Ʌ]zJѦ7`9 #@f0,jhn[< .j/(o/_^^=:޹ŋbEg[.P/\zWNNSh ]ogla#E')6D s:HltnwufY4ݭV,wwͻo盇-YA4-,6lXt HJ+i2}XhѐW+%znVʷO-mJ]D>1!fk܃G/h6WW"(Tr,L(]sfy,ACmrhqZhX ʋ!#< <8˯)%L%h %Xy]DACCeG#`")cc8OLH3E8RTrѸP{]e+R&E^6_ E mf ^LD%'6qR/A=e)dK[qYѩHMVq@U4d fҢQQ$F7j`fL[ndW l̯o39,J بO9,LZR \|U _Dl&*#ոq ,.t=sX72e70\ @7 nh A@2ML 6sjqS]݅p\iz\L >d]@l AГgizzb'Ϩ'ָ=yF=M=yF=}bAГg=yF=΃<1zC8J)⒮RbUoVQ>ڶy<XCI^&A֗_¥!Oɧ7/>>_)ϊEC&I& _v7-LJD|†C a!놨@ a! ?膰놰vCd|!l1>$6nۋai7Ň0| ak ?놰Ip a[ 6z zaK >  6z za+ 6z za 6z za h!ɤ=3j '^{$8ǓPI*T,Lh-A=k_=Ks q08hz=z==z5H^AC/㠠q$'8˴xzC?"?DC=!PzC?"?DC=!PGSS:{qxFxՉ||#kz]G;UzsL1c} (xV:Lrv$*'RtZL|C@=9L #<"YH1m;j-)’^yג( 6Ҍ/zߴMCKQxsHtf΀7>4Z|ZEJ17.Vq-VӎZ[n%Vkŭ t:3ym)a-$KgU!ÚVkdҒ+dx'ACGmJozp':4BsJZ m2>L LoDZ Ə % ib܁V[#AM%; ["Mg&PcȻcqe^.*š+,2+? /w1\jǁHRaTdT x0*Iq8R`>eo)MeF'h~).Q-(1C ᾚ#C8\|Ֆ:-sMoj7Q9RoqٖC DOJA"]A@+ 'A>$tCʂl˂V$t/}H%G+ABh@b Q Q d[ q4lU+e@E]E@Ewdm 0X/Y[ 2?kEI3 Ygtaݶ3÷ )>k F TvY} Z35zCFm>gwg|fмfYk<1,B;kv@*vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/8859-3.TXT.gz0000644000175000017500000000641106760640501020341 0ustar mohuramohuraAA78859-3.TXTYs۸3UyLUssSS8D卖XmEIo7%K4q<؞F|8|1{q_ZdRX a+f|KY7vCW/yT,~mJ"Ƹ:tQ%m?XoGoNv,ī_iZ+f)jUkI:r{YwYZ46gգ^Ri"߹r{5b\ZMvVn!بyS>lZaNcs|sζGq6Y.ݵJ^ yc!6TRS{A75ag2MX iNY’jGɀ IDA.smc_)Ytkڰ_O$Kz`Dlem"NKbCL%qmkumCp{Kr}]RItIrC] ؑ.-vKbW-uIL zDFΕ.OO-OhybqwiItIO'>9 G.EӱB&'R[:>ٶy>r(ͣ8/tlWG}oQWʳui{}¤ qk@ĵSp\)l7.p)l5.p6`X~ (ܠ?-n؟ 7Oa{qÕ)l-.p6xW)l+x4x–O x^]x^LXpHJvH6?v'=!R`W+PԳx0wE}uju鈀c}oH{哝i.WWSc"džPi;5i7[ޑD|!1(OxAq8\x $˅>,<v^?'>A)֞ bXlToZgX oR <֮dSE>G%^.ob<ֽA>UR C;r%6}^,6sK-5#kIظlm\s3q 8%,\jn@[j&Աo glKMz[l9t[¸NǶ%l[j>Rse' 5ѐ1&R;v瞎Y'@: gIk՚uN4zl: &- :i Zg='`801 ';֜Do1'7cIk˚5wL9iMYgIkWtU)vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/8859-5.TXT.gz0000644000175000017500000000632206760640502020345 0ustar mohuramohuraBA78859-5.TXT}[s_U< T]Z&I›b+Dmdȿ?{GqkV^_/K__eQ18}_l1]ճf^|UYѕs*qTkemh0.{xGa{ߴ#U_vQjmϚ?f?-hiwK'b!2mD[mW5/hzqWӲm~j.cg7}/Ymv[?,߾6b(Fm%%) ޮ͆"գXtaQbЮڍㆦ]mF4wJ^|՟5{CKYzQլ^jK3?ڪRwW۪]+ZŚԳ^G^!c+[j͢qO' y u?hJlV$z^ze=ڊ;Q yjTh4aHe+%Cf47_~xr5/;o,zAs+iE->Uv }PK  ݓiV y/zvm9}Q YVYejr[?^"짛7zR= -g mzM{,'هAqOn*6 9fT{xEk"/Zj}{q۷Ϯ4WQw3Qk7arIJlw];:ݢЦW-6 )8š*k29ojDr93b5bAym8j@I:-G>rwÊa=t]~عմ?>\?RT|" ƔܼMTQpmK_]/*jE"'z9A>Y1! OH3K[>5Ax_KJ" 1Iĥ b56 1 cq|ɂq>J& 0KHs=D=i$QYRdf*QmLjT5*A=9S`J< y<3سX~I#)"d6X a_',uuBpI5<4엒d2X p,/C_xnC 64Gd<"jiND8DW@5wI߀φtHtc`ii1-a?t(E.,(&j0`c/(5LF,~>  w:Ng&\6=&5Z-#7„&y:)TR{LdKSy9xh28 ;S I7aɦדTkK&42m滔y02ٯ,|1L, 3ٱ!_L3ٴh2\W&{uyCTL6*y1:2 X-Xc^qeǂ?q`e8h<|YIJ#cey0ry0YpF$7G`F)6@u2ς[Qz+RYqXb/i0<8g K%J2?f܆1uB6xO6뱠reA7 lS' YlK'Xm['bLщ6](a\=?mntK{׉R;ЉcCHYJH'0AD6NؠNt">0ru"<9Z><9ZH;ę'G3'GӔEEE'G?9E 9G&EcTLN>o-OCl;ȉ1/'C3Y4%C[ǁ|'/>.qUfAgw L'LQ0|:. qi  @\sZv8\wZA wpZ1 ?-qpĸ@ OK8`\0F%/.p`򴄣nrZc/x^8Rw~>w~>w~>w~>w~>w~>w~>w~&g!=_[nL՗NMi!40!4{jJ JGy ݣ^eA:N$U8[wtt{NigGw=\\~=Bև zc(C(eҨGzI^q ngr*HNzR M'Ƿ}jBj^CjҊ5VV)QQsD>DwF4}42!`4`J > ?Q}eFFa a'd6CiAJJ]d&>&%?FRc`(>(#K(>(E@CR{D$>$/H}HZ#44qwPiSA &>&/eE@CFfS~j0j2: j!zF>Fo 117Ǔeje*1ciYZ2թhe*+ciZ2) 3sFwo2,NEDt~6|RLWŬ%~զ(WҺP<Q!CY--뿅dmk{ -@Oe9\+qTl_~⡠cuU*\d s)?DP6e-vLm)fXnDVb"0vo6LVbѢnUb%FqI%~gUE,Vs]/sohTX]@>OϊuT!{\:Ϸy,Vt5g}(\XA!xc=-AU4Ot<k:z|^d ~>R\l{ |F.H{)[=|y϶ů|_wAX 5Ϟ5tǼXo!kM*<2s}؁'2\M'*ZHa} V:rC{,1'l<sxzLPbE:R){N>(iOvZ˾̊˕m`|WT`Ƿ7gj-64-͟o߽O ^ ft ]zM{8N0 'ROqɩh4R w7"vB=a.:jyXyN ][+CXi咚JlG׻>$HN[ZVaB aeL)vkt.cl1sMsc,^U.NHcu./駯=^ڃ|7QDnz,Ⱦtmͩ(+S}C{=s{?7gv'y;?i,}ɛh||8<*[l|sg[%!sRY]O uT5{*~Q5J$F2[BX'ӛYk &q: } w:WI*&5YZ=ʑ6ɘ0!~NIjZG=$b?ZNC&kx@c ڙGL䘝nB4E7,q3gJ&4Te*$J8 L+<43Y3*}+(fb7Cxdтh$9LjpG_TWP& է'trq(d P-HcH*Ʊe8 X1FeeA>fmeAyIPcqX1D9A,%)Ȃ"VQLev %K ܆[ S݆qlbpoq[:ihp'O_?9~v'O>䖟E]%~ /6IFrj0kqa: }ƅ=\^OzZ&!NU2cvVR}tj59՝ՓOcAqDdz=/t vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/8859-7.TXT.gz0000644000175000017500000000654606760640504020361 0ustar mohuramohuraDA78859-7.TXT[s۶_<'t ZʥoDǚv$9K7D>8.{}X$? eV\ ^t0!7t^_S{U^\ a]߭zdw!3g[Q?H Bs۬ćnhⷿշ?v]z^ 7ugjZXe;mvk3{W4Ӳvu>kf]~~lMkuD^a5v-z܉zۈeMz弛WneQlj4}X[ynִ!k[֫ى=_| {GKYbN׳mͼYi˶iSg;.+Zņ|1?"N;;b,Ms7z!l^?+6$z4|E>T!~K kz&۾+fli5glN׫=ӻZim?=~ ohoRh_u"U^^YJ~Q_񎨌*HaY!ʎRݓ]C'2eFZ<,u)~-O㽝!%\?|2>:Vn'nXQ KneJ◗;YAXz;k{\obaCׯSz6cBɑ {ł7έaKKgk+mM=cz_q\bOr|9}"z>E)0̎[ieȹq~X}.v߼}~~8`~y3zLyf G|x3~ ;>kt<,wp${[C黯4Z4ljSwvzx 8SIPV5ON3̗:|w*>JTCoIM,jWD)횻mtۗݕXq>0q^r8q^ YAiŻI^~V>vX|FqOzbh L4B{D*JƓHR)h*p$Wy5a O-iWbFUw c-6,&0bcKeZdWO:mlGxmXkcҗ Ȓ aX}7)0vĪyᥭ,}y6{8Reթ 0s,L l6M1!1%]+bJ8s7ٯ2=g6{&Ǖ*ٱQ9.lZR ^>ѪW|8ѳ((ĸ*Fl}~jk}2/Uqc:pاv48ιpx⸧ñr`;`q qS80 9p O= =0ÉN= es` ?'цWUO8a/Ի쟜s`R~:8\/wa{}p)%Ʌ7.{y=ts!qakD1D `D|X\z&܅oe,n`څnhX$Y\i"& Ia758]*qAD|,=`]D xAqIJ0y~'ژ֧@^1'C3e2d}>[ˋ`kYRF?c2owK8r| ;n-;-tK8h|XQCp@%0>n Nj0[ _uK8Z|g^8TxH K`OC^/n^/&x p%0A H^/"x p%8EH2). -Ary;x6LIS= X)Z1!o&s;v;,v;|v; v; v;l v; v; v;\ v; e~q6IiUV{GGԮGGԮGGԮGGԮGGԮGGԮGGԮGGԮDSSqw8r%`>|>{+!<J$٧Q1ۄD%>.[5 &ѓǠ&U2ҷѧ02F$5KLt)ZPF\Uz ?f"}'e>:^ccT7vڽlOӈy+bXpb=ީ TOŭ?I!z1p/fyReӂ:1YhL9_[EGUHyl#8ӳ b&#^dzbDOk/V\&t,è̼$utӘ_tO- ~ mm0&7Y@t7WJw䚄nj=>_E? e>2b_BIgX##߷r4$A82R<$*5Zh##~sClkt@P,{)F(t5X)F*ɻM4b59a+ijUHUF,SȔ*/B< I#bO"H0'xO#:)h0"H) ٽ'@nl,Ctv |N tn t+BC`*F3X[t Kl@u,UǠT8eǘT@66 CRH(c: @ 1@K !3!cV b}_bgyECU+mxQ~[F0NfY0P-$%rך_OIalO07J|~EՈ?կOmn^k7OMa'ƅ._[fM_Pyq_ӲY\ ﷧V7Cupڮ]ӻEY/l*, Qnz[E')iqQ6blִ!k*lrXkz5ZFUfQ4լjGMUYծjV!V/WP;jbGdPM[U=CZzj^~RJl NSk͍Ux;r̫jVjZJly=Vf^jP5-;3 y"tdTe,RX{oΚ ܴj|1'#ߕyNj.t-ֿx?ؔ3Z6=,gxhVti5ǥ+ > 7DC_/Fm(ܯ/:4rIJl﫷ܻ"u*tu3lRp [7O>yqCPw1FN.sѹX`Y/NH]h~(ܲ|#w~\?0ww{o*ޏdh/زM@۷pl'>VԸv?'hɢ^H)X\[>wx8}{dُ 1_san=BcGc!/_^4I8d dP(/dVt(hל66OӅRpB΢G$q>ݣ@e"O&4i 44YÉB5.)hg8d.t,9YbrLV)Qe*ջVyszW_]wdd^,ɊMaydt4V&ku}G_TWP& 5'"p Iii,}+X2 8 X1fAzϗM,+ Xs' yV1Gnjb91,T5=ςKQ|C+ԂEq-},haT&G,Ha)}$_$P\!}W,S'ج 뱠sOTA l0V(d>bN9! ʶǵ AA@1[ea} -\b} n6bG} 6c>dž{a9} n 'O|~rzw'OSONn?9~ ~rzįv+''8. ^%~ 6G2yt\5C帰kpqa>vswsypn4.C͸럇pqa Wpqa 78nxŅ1< c<[ on,|]p[/T< ~z§_w= 7~z­ă_p#/F< 7~z-ă_c Yrw< OxS&s茆KoͿ6>oͿ6>oͿ6>oͿRjJ/zϿ[ْ>rJ-I:K!%MG1%3~ %d eɝSqLo1 ]$UJ.}}-|FӤ' eS5"QDtF.IHEq YA:\(:ą6O e sg\IzעNJд_TI.FB A^˄30$;8K~'oJ[׊+FǢ27;x) h] % tҷ_BwL0@~]/J"/;a< :}>D>9ҟUD3HR@j"?22gC8CukV{!25TXF;;TH(rcKDu])e}p꺄z$~IAN/ % vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/8859-1.TXT.gz0000644000175000017500000000662106760640467020355 0ustar mohuramohura7A78859-1.TXT]o۸@/6d)KITl6{Jc_g،xp"9;Cׯղ(NKC"Nn-&t=i/nf;/>V!:'uvxTjg<O듃|=M_ݢnħۧj[&ES3ooy΅^vw"]M ! QV4n~ֳzs64Y=X>D^mn|ûE5_nEbYGpwz專j$6M>.Fl͚N#pMKZVj׫oh[2_ns:7zM]],+ņ|1=i^(]7j!l^;Zt<5'w|C^vf}=Ui+fՓov@vnjwVorS0H\ZOMl7:dދ`]Mг)3;GVI-}Zc"N+ )ũ{Fowz agx՚0e5_1jA_ի5ȭ~|Nt4}Y/%ֿx?al)m{Kh..5fgxE'"oqBo ͱ۳q o9s^Qyo׋0=o;?cI]N06nfuA\YNxZ}h#%WK¹Xd׬'A'^hvXܲz┻_?X9w>{Z9ëJE4,SJrjħ ׮d-jVk%~v?Vʛ'閎ϕ?4J|45/̅0_n( Z//_EEzel!S9X䉸V2Sp61ca|:b=)eC=>O▭Yet3̿f*R%vUOFa"> `L .ver'@t`?O v݃PLXO]jy02Ñ*"5q@һehr$ѵ;(uRHtTZZie^Ezub̺LcU>u(#h]僁dXu-jx1H:@uTBO|v ̳48:+*8qq:d0NhG9`8}~9`Ǒ}Z9@(x@8P lW_Qx '8 SÚJ5Hv p" ,/rx々,̎p(% L q-rUjrO$R|&l\fz((SCK(ks \͉Lgs☻z6@mN|]mNn`sJ :pv0椑A%ndsbB-nlsB89z\MlN=ȨwisЃzV=}f'gtzY5=zbUOvzV=}a'gWvzV=qAO=ծ=z^xAJ*aAJbEWncAExż\걆&$S赅>|zZ>W~ R,_t3<{I9Y %ǃD<݅ xn z.$絻p owBA^݅ˌYxA d v.04E.\^<Ë]x]xІpa݅ˊpQߢ.)>[C/E/]z-zbC/E/\J|ŷ pߢ.">[%ć^c &Ev{R|ŏN[}\?^̆J|V8b= )^؇,OicvL;0=v}ߴXoAvKдC?2@ЏM;W'=@3f?0 `?@3f?0 `_"Rj/BzϿ.Wd鐳PŢݕ"ik*E2Q>0*PR{@F2[u6$H +':JbJNFw$L(..q:c*D. LJ(OTDOŒ^=WE/TF:Q*":cSW)79 +@FnB` uc{SLCf}::(H;?&DE::t!x9C` &㓷TCJi!s|=l9qLs;,㷷T:XCTF50<./`C}eM+Iit#iڄw\BǞ`k ^jq1?,ɢ09MV/PI5_ PKdi?Y۬+=O"k۵t#,v`{ӔڐY9NmFMj/4vhGFodmהAʎ2(@둵Sm @D R }d|AD/ iAB 1"慢 oiV-OAj6Fjc#+bkV籊5+XHؚqdDl͈%ȏXI6NGړ{:F>|د߰o65!&F,5!&F, 5&mD2d ["&:/R.e1xsU7j3AYcPer~؍2@EmE>o-0`)vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/8859-10.TXT.gz0000644000175000017500000000644306760640470020431 0ustar mohuramohura8A78859-10.TXTr۸@U.&bbNjj6ǒR;ZcU%'۟nlADf.M y/WŻ\&b07{+ bb74%~6nYt'UfӮ="k߻彰rvYϷ~ٴÏfuk6If{.+׳BD˥(c'f״?[5uB+ݶy3 m`f۴[F̖buۈUM#yدݎ#"4iv[k: -nz_4;Q?Z}hkb].B~f.VM:oMZi[׋b /d;oĞApEfK[bI|^mMې*6ׂtn3on~VmE,{ :c!ٱ&MFsvj #O v?97۪(Y`\gmг3Xwyվ^vN:f)y<hŚtZSH)Nhowj rCdx4`Wbr}=}Y7-An#{z)V?NVo7S zFѩtځd`rKr6*snο 3w=O-69g|yu4~p [wT˛rEYL[(n}ZW]45 N7iqO ئ' Uɇ)ͯ\аY575f}}{{~wuwMn]] d4bhX^^|hES]- &OQ vvI9|;$>q:PbᅹQ+ULnKaP >;{MLITND tj1l?/s0ИOG\OFh\ʋ1{xi^~eO(2=<`$Xbl"*Jk{H̿I4(I> )cc$ONf&H#+af {J$*<:ifIJEQ*P,)&=^ Y%ЂfkOy"EB,(Ysrz.Jր{Ӓ=9EDzYbA,Ŵy:TP 9H.R[q"Y :[LǠVӸD=[,c<4͇RT**IN a-,WǣbaKez< }-w:'G6TYxmHkK2F <1J am㴘BTQ=e)y,qڬ,9qDU4fmfhUQWjPfXz+^6U'f͢j"˼Rb6+v5$vl-)Fmf.ҮoFxVP6 Qդb;U>§7/NQgfEI5GE$%" N8|߅K4߅ 0A Xa PQ Hq LI `i `߅K6߅ KN~.+x pQ K`KJ^/ x 0x p1 K`KI^/\Hx2 ^%8dZ>)h x]$x'AILaf SoJ6€AoC!yv;pu;x2|n`nJPCAۡ avH0Hu;?d=DC=!PzC?"?DC=!PzC?"?B#x=R^iJ g3H4 i2$RCn>ZÐH i.$Bv,$C>V!Va(d( 6!&Ầ5 5?{?n M׋v psiKq A4\Zz !3|;m Y 4k 3-!{!d>3p2ךA3i{ZAֵvZ#2@ d]0DGo@fL >~L4&S3@fA+R 3@_"zYFSw*vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/8859-9.TXT.gz0000644000175000017500000000664506760640505020364 0ustar mohuramohuraEA78859-9.TXTY]s8|N~٪81EsIRJ}%VE_'Io-L\>A{7(N˪CbuËحx9 M%~6lKiT$~,꿅q$:aٞ`>7Ka͛Y6'_Фx~vO^ѹNd{!|.JmŦ6?݌Mכٴz{A{d,vB"^-n=w%&z؊zӈEMz鼛viIk4y~ܬWt!+ZWݬي՝-z*z>4z,wB}iik6ْv&g'^xCĴVv'v ZEv4AE}lhbLg]Y<@Oc_3"3y g5g_׌!+jZ?d!zIyh6 mS8 R*ǵN#*Xjd AlJqBk f|yϘvrZoS~Ak{*ϖd>1[Qz6OI1_3YNrE 0zdݮ<}, AfY;]r)Դ qSOh[:l Nzp6TSq7W"oqBo-%͹g3;hj>_"-TUb;_}.IKbA#6f#z]?Wt"+/I_᫂oymXg_w1=.5޻|Nj~ԾB"Pqn|x0|%Зa6>%5dw'kWyCKq:Tg/*cڤr/vJ+tv\O5A+Ay!!BH#QZɄN wNG\4鈇dUUV _YyQQ2<(*R<`$Ha=z"t5.b0hI<(*pj;L粯'Dt@l2.F GUvzˎs<;PCணO; äaQ$z`,労LGUU< :W]]gLV#Uf>0cÜsH0iqKsu}C\X:LTJ'Q18 ,,hԸ+"Uru8ĸc}'wٗ J?Tw7xswQxnxd8XpNk=.SP~v7քWZe.ԗ̹̏U$g7"Wթ=]Y'fdђa?W#z`x @@1@@\,6o ^`upg]3{ 1: 7 /4eP@l%6xbxP@\]Ȩ{i5tUO_=uzBO]sSת'xzZ4fԵ+UO=uzbBO]ծ =uzAS7: GDTk燘oh] @C]P;OW˧o^\>_jϒEg?ÇLgT}v[n; LJ@|vC~Oq~;Ƈ4FC~6C~a! _Cb|H!l0>4vaC~ac ¶@/E/l*X–@/E/\ X 6z ,za+ 6z ,za 6z ,za h!oN ZWyb6TJFYYENc!|`qPqs8yff4|3zaKЌ4qЋ8(%f)3R#"h?DC3!fC?4"h?DC3!fC?4/?5.W$dBvWɤH&eX? ɬPR{dfnԱې F21QY|HJ0#z_9 GܷPw'Û;~PJ]7\(l@ 2"|L,bXd2+(W|KP*cQ1SW79`V2}@kcEݛ:#p1ܧ>HGDŽ̆.9k{FLǣF*ueq|"xaȷ='I(IΤ,-QhZ#Tk^pF 6W8F7&uQbA^˜_"aIuDi}y ]ֆJoZwgC-W^x'Y{+=Obk۵tc,v`{i_lmsJYFNmMjd[;xRc7k`ʎ2XckXcGՒU(>~3Ȍ@Af[$dmA!/ ˃$.+̉e<"\ "Eq%XK8OTH%Q$*AM$֚(Ck9-Eq$(l'tbHŰ_?`@5$jD5$jD!$BX+aܒ] k5P%`IkjeMrH,pu-ˡCe鉍AsyN,rۭP9wB(Kr#(_Yz@ַ~q(_Y:n&Pо4=|en+w;@AYǸnec+Ǟ6WȽӽ[fΟBE}jѽ)$Z$ox~ ɧɷ9~ ͧ~BE-nB)kV| .BEǧPzjQ)DZD)TZT-B!SWӽ,O-s3_wx)vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/README.TXT.gz0000644000175000017500000000032206463471235020522 0ustar mohuramohurar4README.TXT5N0D+FReQ$Pp7Ʉ#{۪ 帚yO[8y$YWo5ϙ RIyxzbC.C >SKjҸ%0Y֨e9&e+drl7!(ÌF=i3f97K:MUm/ዥjSK r{0{vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/ISO8859/8859-4.TXT.gz0000644000175000017500000000645706760640502020355 0ustar mohuramohuraBA78859-4.TXTYYs8| TaU9C/<@kItH*#ѱ*J3hꂈ>i??Ջ8/+7E ^o JjP/lg%v^_QOBX'fQ0U!5&N& Ŀ'a>VImfݼوwߛO_mzZsOٷx1G^aۥrZp>mŦ6_~F˦lLE}EIEC"^-n5ûy=[lEiĢzpvfeXD|:MF7FъYo6r7kburϖS5^kMhb=ll=k;i55lIXS:vOHqNB-&ph3w:4;[pJAͤwyIQkK64e*w#ˬfe3_Ev}sl,,+YdigW6suV5z5Fc5:OU~q0d YP̮/qcPqqC9rZڲr@;6PaqqCC}8qc\~FE222ʰ ց<8LA)! X^ps!ߏ9T8RU IeyqĸW-$ٌ,:=enدG;cȊ&,D))$:@뚒X\LI b]ϔrXv}S.wNn`J8 :pCSҿa)IQ)܅ZĔĮB84%z\MMI\=ȨweJbkAO=s3K=zbAO=X=gӘQO8 zQO?=g_zSϨ/= RqRD]+?ԋyKWNm^r8b.z8+0Otmᣏ!Oo^\]) EA&Q&0xvw [xNw xnw ۍyxSjr2q*Y%U6HT/OK>g!kVq߷8(z<=r}OAXR?㠦qя8hz=R~?@?:t?@?:tCOMb  ֕Yu#kz]Ň1mlמ2 =@bJhy mdm%ƒA}gU9~[(*-xo-IBB 2N%avkc]X =; &K[, Y{D^ޗrjԪp隋 =[ EPX quroZGZy.9+q1/tWUE31Ք>)*jewzZ=/j2k)RZ̯TbG w;MVQA WN _ALJ 5$b<:(p>XmÝpZƇfxˈO=( m"]0շ_ltPePi5B|Nm36>UFBv! ḍOhlL=W 6VWiFBm#1˛Sn Bڸ}OcA> t 4ڑ ~ijq HH_^uvH_>*@o(Q`ģ4\c@ﳏKa{= _e5&tO[7X75~.l?mm߰] x^X~ ѧw~ էkvBafSއ<6úɧ @iBA']S[ Y{ZtKC><(*vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/README.TXT0000644000175000017500000000047306535650653017125 0ustar mohuramohuraESTASIA: CJK cross reference mappings for standards such as KSC5601, GB2312, JIS0208, etc. to Unicode 2.0. ISO8859: These are the mapping tables of the ISO 8859 series (1 through 9) VENDORS: Miscellaneous mapping tables for small codesets, typically provided by vendors. TCVN: Chu Nom mapping & database. vflib3-3.6.14.dfsg/ccv/TBL/UNICODE/00_README0000644000175000017500000000024606535650653016744 0ustar mohuramohuraThis directory contains mapping tables to Unicode 2.0. These files are down loaded from Unicode (ftp://ftp.unicode.org/pub/UNIX/MAPPINGS/) Jan 14, 1997 H. Kakugawa vflib3-3.6.14.dfsg/ccv/TBL/RFC/0000755000175000017500000000000010752610107015071 5ustar mohuramohuravflib3-3.6.14.dfsg/ccv/TBL/RFC/mk-koi8.sh0000755000175000017500000000350406541633617016725 0ustar mohuramohura#! /bin/sh gzip -cd < ../UNICODE/ISO8859/8859-5.TXT.gz \ | sed 's/#.*//' \ | grep -v '^$' \ | awk '{printf("%s %s\n", $2, $1); }' \ | sort +0 > __tmp1.txt gzip -cd < KOI8-R.TXT.gz \ | sed 's/#.*//' \ | grep -v '^$' \ | awk '{printf("%s %s\n", $2, $1); }' \ | sort +0 > __tmp2.txt rm -f ISO8859-5-TO-KOI8-R.TXT ISO8859-5-TO-KOI8-R.TXT.gz touch ISO8859-5-TO-KOI8-R.TXT echo '# MAPPING TABLE FOR ISO8859-5 TO KOI8-R ' >> ISO8859-5-TO-KOI8-R.TXT echo '# BY HIROTSUGU KAKUGAWA ' >> ISO8859-5-TO-KOI8-R.TXT echo '# ' >> ISO8859-5-TO-KOI8-R.TXT echo '# COLUMN #1: ISO8859-5' >> ISO8859-5-TO-KOI8-R.TXT echo '# COLUMN #2: KOI8-R' >> ISO8859-5-TO-KOI8-R.TXT echo '# COLUMN #3: UNICODE' >> ISO8859-5-TO-KOI8-R.TXT echo '# ' >> ISO8859-5-TO-KOI8-R.TXT join __tmp1.txt __tmp2.txt \ | awk '{printf("%s\t%s\t%s\n", $2, $3, $1); }' \ | sort +0 >> ISO8859-5-TO-KOI8-R.TXT gzip ISO8859-5-TO-KOI8-R.TXT rm -f KOI8-R-TO-ISO8859-5.TXT KOI8-R-TO-ISO8859-5.TXT.gz touch KOI8-R-TO-ISO8859-5.TXT echo '# MAPPING TABLE FOR ISO8859-5 TO KOI8-R ' >> KOI8-R-TO-ISO8859-5.TXT echo '# BY HIROTSUGU KAKUGAWA ' >> KOI8-R-TO-ISO8859-5.TXT echo '# ' >> KOI8-R-TO-ISO8859-5.TXT echo '# COLUMN #1: ISO8859-5' >> KOI8-R-TO-ISO8859-5.TXT echo '# COLUMN #2: KOI8-R' >> KOI8-R-TO-ISO8859-5.TXT echo '# COLUMN #3: UNICODE' >> KOI8-R-TO-ISO8859-5.TXT echo '# ' >> KOI8-R-TO-ISO8859-5.TXT join __tmp1.txt __tmp2.txt \ | awk '{printf("%s\t%s\t%s\n", $3, $2, $1); }' \ | sort +0 > KOI8-R-TO-ISO8859-5.TXT gzip KOI8-R-TO-ISO8859-5.TXT rm -f __tmp1.txt __tmp2.txt #EOF vflib3-3.6.14.dfsg/ccv/TBL/RFC/KOI8-R.TXT.gz0000644000175000017500000000431706541623020017026 0ustar mohuramohura&5KOI8R.txt}O83B@.$FQT[ӲHr'[O'6;&ؙozlE`=RE֏M?O_>'}{IfOfzOOKNvM|zy~׿ݗo?>?I_~|MҢؒ?=3kmlyp4Q[Է5{36!ٛ™;u2#/] ݁"#U׶H9޺8Bʇs]]Sƾ;8-[h]=&Gvnh >7wWqq*\Riӳhv mo=oģ;էM;R{еMɩ4Us׌Gw@}tt{>g=j]j9Rw(I./{ CQ\_݃5Q|;G- St3ƒ$0LMM,Neldl6&${t@3bB l1"kPd *mY _6z2/[e *,/*Cj@6 }-U4kИlԱl9pxu3a0fhZ,.3_ vflib3-3.6.14.dfsg/ccv/TBL/RFC/ISO8859-5-TO-KOI8-R.TXT.gz0000644000175000017500000000215106541633636020506 0ustar mohuramohura75ISO8859-5-TO-KOI8-R.TXTMn8) d]C';2AڸH&=đ~qN?n?>o?Nk<}v~8pZ9quz}~߸P_ cǜϗ32#x$,s9 -s9#e.G Ae.G\Jn\F.s9/s9N0 ؖF/s9 aP< ax&à0y0(LAa0< aP< ax&à0y0(LAa0< P<x8.ápy8p(\Cp< P<x8.ápy8p(\Cp<GP<"x!#yE#(BG@<GP<"x!#yE#(BG@<GP<"x$)#Hy$ E#H(RGBH<GP<"x$)#Hy$ E#H(RGBH<M EGãAhP4y4<M EGãAhP4y4<M EGãAhP4y4<M EGãA1zc5厭<;VEA~o o3hfsl=I@+m~[ߺVP~v^~U]bU<4mpi{yh*^Wxt.nx7ܽk*Ǯ᪀;fܽ GĪ{yh*^z* xzs1xtU<ĪyC~`᪀>컦.*˴ x. Uuvyh*:*]VQxqU6 M[\ggh*:;CT"3ţΐXp UM.euO vflib3-3.6.14.dfsg/ccv/TBL/RFC/KOI8-R-TO-ISO8859-5.TXT.gz0000644000175000017500000000200106541633636020500 0ustar mohuramohura75KOI8-R-TO-ISO8859-5.TXT-K*DѶhL_UӀ4;>H r!c>~>G|;`\pF; zA^p$NP;z|w8`^pIw8";`;&xw8sax&à0y0(LAa0< aP< ax&à0y0(LAa0< aP< x8.ápy8p(\Cp< P<x8.ápy8p(\Cp< P<"x!#yE#(BG@<GP<"x!#yE#(BG@<GP<"x$)#Hy$ E#H(RGBH<GP<"x$)#Hy$ E#H(RGBH<GP<Qx%£(yEɣ((JGAQ(< GQP< Qx%£(yEɣ((JGAQ(< G^OyL[|[kkJo{ܩ)_`m-v(@lq+zZ`m/nMMiurO UkO.R \<[{ Q+omnO`{{6-]g~)XZ҇1vжzܠ\cMu)aL!0%6녟?|uZ g=gKg^KmL1E8 |CSFOi=z/Z>|$ևKmyO}͗ŇK?< vflib3-3.6.14.dfsg/ccv/Makefile.in0000644000175000017500000000132507006222141016077 0ustar mohuramohura# Makefile.in for VFlib CCV # by Hirotsugu Kakugawa (h.kakugwa@computer.org) makedefault: default include ../make-sub #------------------------------------------------- LIBTOOL=../libtool default all: @echo "" ALL: $(MAKE) mkcscv -rm *.ccv ./mkall mkcscv: mkcscv.c $(CC) $(VFCFLAGS) -o mkcscv mkcscv.c install: @if [ ! -d $(runtimedir)/ccv ] ; then \ ../recmkdir $(runtimedir)/${subdir_ccv}; fi @echo "Installing CCV files..." @for f in *.ccv ; do \ ../$(INSTALL_DATA) $$f $(runtimedir)/${subdir_ccv}; done uninstall: -$(RM) $(runtimedir)/${subdir_ccv}/* -$(RMDIR) $(runtimedir)/${subdir_ccv} veryclean distclean:: clean clean:: -$(RM) mkcscv wc: wc *.c *.h WC: wc *.c *.h *.in #EOF vflib3-3.6.14.dfsg/ccv/mkall0000755000175000017500000000576707006213352015102 0ustar mohuramohura#! /bin/sh ./mk-ccv-1 ISO8859-1 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-1.TXT.gz iso8859-1_unicode.ccv ./mk-ccv-1 ISO8859-2 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-2.TXT.gz iso8859-2_unicode.ccv ./mk-ccv-1 ISO8859-3 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-3.TXT.gz iso8859-3_unicode.ccv ./mk-ccv-1 ISO8859-4 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-4.TXT.gz iso8859-4_unicode.ccv ./mk-ccv-1 ISO8859-5 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-5.TXT.gz iso8859-5_unicode.ccv ./mk-ccv-1 ISO8859-6 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-6.TXT.gz iso8859-6_unicode.ccv ./mk-ccv-1 ISO8859-7 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-7.TXT.gz iso8859-7_unicode.ccv ./mk-ccv-1 ISO8859-8 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-8.TXT.gz iso8859-8_unicode.ccv ./mk-ccv-1 ISO8859-9 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-9.TXT.gz iso8859-9_unicode.ccv ./mk-ccv-1 ISO8859-10 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-10.TXT.gz iso8859-10_unicode.ccv ./mk-ccv-1 ISO8859-13 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-13.TXT.gz iso8859-13_unicode.ccv ./mk-ccv-1 ISO8859-14 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-14.TXT.gz iso8859-14_unicode.ccv ./mk-ccv-1 ISO8859-15 ISO UNICODE UNICODE \ TBL/UNICODE/ISO8859/8859-15.TXT.gz iso8859-15_unicode.ccv ./mk-ccv-1 ISO8859-5 ISO KOI8-R KOI8-R \ TBL/RFC/ISO8859-5-TO-KOI8-R.TXT.gz iso8859-5_koi8-r.ccv ./mk-ccv-1 KOI8-R KOI8-R ISO8859-5 ISO \ TBL/RFC/KOI8-R-TO-ISO8859-5.TXT.gz koi8-r_iso8859-5.ccv ./mk-ccv-1 KOI8-R KOI8-R UNICODE UNICODE \ TBL/RFC/KOI8-R.TXT.gz koi8-r_unicode.ccv ./mk-ccv-1 JISX0201 JIS UNICODE UNICODE \ TBL/UNICODE/EASTASIA/JIS/JIS0201.TXT.gz jisx0201_unicode.ccv ./mk-ccv-2 JISX0208 ISO2022,JIS UNICODE UNICODE \ TBL/UNICODE/EASTASIA/JIS/JIS0208.TXT.gz jisx0208_unicode.ccv ./mk-ccv-1 JISX0208 SJIS UNICODE UNICODE \ TBL/UNICODE/EASTASIA/JIS/JIS0208.TXT.gz jisx0208sjis_unicode.ccv ./mk-ccv-1 JISX0212 ISO2022,JIS UNICODE UNICODE \ TBL/UNICODE/EASTASIA/JIS/JIS0212.TXT.gz jisx0212_unicode.ccv ./mk-ccv-1 KSC5601 ISO2022 UNICODE UNICODE \ TBL/JSHIN/KSC5601.TXT.gz ksc5601_unicode.ccv ./mk-ccv-1 KSX1001 ISO2022 UNICODE UNICODE \ TBL/UNICODE/EASTASIA/KSC/KSX1001.TXT.gz ksx1001_unicode.ccv ./mk-ccv-1 GB2312 ISO2022 UNICODE UNICODE \ TBL/UNICODE/EASTASIA/GB/GB2312.TXT.gz gb2312_unicode.ccv ./mk-ccv-1 GB12345 ISO2022 UNICODE UNICODE \ TBL/UNICODE/EASTASIA/GB/GB12345.TXT.gz gb12345_unicode.ccv ./mk-ccv-1 BIG5 BIG5 UNICODE UNICODE \ TBL/UNICODE/EASTASIA/OTHER/BIG5.TXT.gz big5_unicode.ccv ./mk-ccv-cns1 CNS11643-1 ISO2022 UNICODE UNICODE \ TBL/UNICODE/EASTASIA/OTHER/CNS11643.TXT.gz cns11643-1_unicode.ccv ./mk-ccv-cns2 CNS11643-2 ISO2022 UNICODE UNICODE \ TBL/UNICODE/EASTASIA/OTHER/CNS11643.TXT.gz cns11643-2_unicode.ccv vflib3-3.6.14.dfsg/ccv/iso8859-1_unicode.ccv0000644000175000017500000000466607006213671017546 0ustar mohuramohura; Conversion table: ISO8859-1 ==> UNICODE (charset-external-name ISO8859-1) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00ff (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 0x00a1 0x00a2 0x00a3 0x00a4 0x00a5 0x00a6 0x00a7 0x00a8 0x00a9 0x00aa 0x00ab 0x00ac 0x00ad 0x00ae 0x00af 0x00b0 0x00b1 0x00b2 0x00b3 0x00b4 0x00b5 0x00b6 0x00b7 0x00b8 0x00b9 0x00ba 0x00bb 0x00bc 0x00bd 0x00be 0x00bf 0x00c0 0x00c1 0x00c2 0x00c3 0x00c4 0x00c5 0x00c6 0x00c7 0x00c8 0x00c9 0x00ca 0x00cb 0x00cc 0x00cd 0x00ce 0x00cf 0x00d0 0x00d1 0x00d2 0x00d3 0x00d4 0x00d5 0x00d6 0x00d7 0x00d8 0x00d9 0x00da 0x00db 0x00dc 0x00dd 0x00de 0x00df 0x00e0 0x00e1 0x00e2 0x00e3 0x00e4 0x00e5 0x00e6 0x00e7 0x00e8 0x00e9 0x00ea 0x00eb 0x00ec 0x00ed 0x00ee 0x00ef 0x00f0 0x00f1 0x00f2 0x00f3 0x00f4 0x00f5 0x00f6 0x00f7 0x00f8 0x00f9 0x00fa 0x00fb 0x00fc 0x00fd 0x00fe 0x00ff ) vflib3-3.6.14.dfsg/ccv/iso8859-2_unicode.ccv0000644000175000017500000000466607006213671017547 0ustar mohuramohura; Conversion table: ISO8859-2 ==> UNICODE (charset-external-name ISO8859-2) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00ff (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 0x0104 0x02d8 0x0141 0x00a4 0x013d 0x015a 0x00a7 0x00a8 0x0160 0x015e 0x0164 0x0179 0x00ad 0x017d 0x017b 0x00b0 0x0105 0x02db 0x0142 0x00b4 0x013e 0x015b 0x02c7 0x00b8 0x0161 0x015f 0x0165 0x017a 0x02dd 0x017e 0x017c 0x0154 0x00c1 0x00c2 0x0102 0x00c4 0x0139 0x0106 0x00c7 0x010c 0x00c9 0x0118 0x00cb 0x011a 0x00cd 0x00ce 0x010e 0x0110 0x0143 0x0147 0x00d3 0x00d4 0x0150 0x00d6 0x00d7 0x0158 0x016e 0x00da 0x0170 0x00dc 0x00dd 0x0162 0x00df 0x0155 0x00e1 0x00e2 0x0103 0x00e4 0x013a 0x0107 0x00e7 0x010d 0x00e9 0x0119 0x00eb 0x011b 0x00ed 0x00ee 0x010f 0x0111 0x0144 0x0148 0x00f3 0x00f4 0x0151 0x00f6 0x00f7 0x0159 0x016f 0x00fa 0x0171 0x00fc 0x00fd 0x0163 0x02d9 ) vflib3-3.6.14.dfsg/ccv/iso8859-3_unicode.ccv0000644000175000017500000000466607006213671017550 0ustar mohuramohura; Conversion table: ISO8859-3 ==> UNICODE (charset-external-name ISO8859-3) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00ff (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 0x0126 0x02d8 0x00a3 0x00a4 -1 0x0124 0x00a7 0x00a8 0x0130 0x015e 0x011e 0x0134 0x00ad -1 0x017b 0x00b0 0x0127 0x00b2 0x00b3 0x00b4 0x00b5 0x0125 0x00b7 0x00b8 0x0131 0x015f 0x011f 0x0135 0x00bd -1 0x017c 0x00c0 0x00c1 0x00c2 -1 0x00c4 0x010a 0x0108 0x00c7 0x00c8 0x00c9 0x00ca 0x00cb 0x00cc 0x00cd 0x00ce 0x00cf -1 0x00d1 0x00d2 0x00d3 0x00d4 0x0120 0x00d6 0x00d7 0x011c 0x00d9 0x00da 0x00db 0x00dc 0x016c 0x015c 0x00df 0x00e0 0x00e1 0x00e2 -1 0x00e4 0x010b 0x0109 0x00e7 0x00e8 0x00e9 0x00ea 0x00eb 0x00ec 0x00ed 0x00ee 0x00ef -1 0x00f1 0x00f2 0x00f3 0x00f4 0x0121 0x00f6 0x00f7 0x011d 0x00f9 0x00fa 0x00fb 0x00fc 0x016d 0x015d 0x02d9 ) vflib3-3.6.14.dfsg/ccv/iso8859-4_unicode.ccv0000644000175000017500000000466607006213671017551 0ustar mohuramohura; Conversion table: ISO8859-4 ==> UNICODE (charset-external-name ISO8859-4) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00ff (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 0x0104 0x0138 0x0156 0x00a4 0x0128 0x013b 0x00a7 0x00a8 0x0160 0x0112 0x0122 0x0166 0x00ad 0x017d 0x00af 0x00b0 0x0105 0x02db 0x0157 0x00b4 0x0129 0x013c 0x02c7 0x00b8 0x0161 0x0113 0x0123 0x0167 0x014a 0x017e 0x014b 0x0100 0x00c1 0x00c2 0x00c3 0x00c4 0x00c5 0x00c6 0x012e 0x010c 0x00c9 0x0118 0x00cb 0x0116 0x00cd 0x00ce 0x012a 0x0110 0x0145 0x014c 0x0136 0x00d4 0x00d5 0x00d6 0x00d7 0x00d8 0x0172 0x00da 0x00db 0x00dc 0x0168 0x016a 0x00df 0x0101 0x00e1 0x00e2 0x00e3 0x00e4 0x00e5 0x00e6 0x012f 0x010d 0x00e9 0x0119 0x00eb 0x0117 0x00ed 0x00ee 0x012b 0x0111 0x0146 0x014d 0x0137 0x00f4 0x00f5 0x00f6 0x00f7 0x00f8 0x0173 0x00fa 0x00fb 0x00fc 0x0169 0x016b 0x02d9 ) vflib3-3.6.14.dfsg/ccv/iso8859-5_unicode.ccv0000644000175000017500000000466607006213672017553 0ustar mohuramohura; Conversion table: ISO8859-5 ==> UNICODE (charset-external-name ISO8859-5) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00ff (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 0x0401 0x0402 0x0403 0x0404 0x0405 0x0406 0x0407 0x0408 0x0409 0x040a 0x040b 0x040c 0x00ad 0x040e 0x040f 0x0410 0x0411 0x0412 0x0413 0x0414 0x0415 0x0416 0x0417 0x0418 0x0419 0x041a 0x041b 0x041c 0x041d 0x041e 0x041f 0x0420 0x0421 0x0422 0x0423 0x0424 0x0425 0x0426 0x0427 0x0428 0x0429 0x042a 0x042b 0x042c 0x042d 0x042e 0x042f 0x0430 0x0431 0x0432 0x0433 0x0434 0x0435 0x0436 0x0437 0x0438 0x0439 0x043a 0x043b 0x043c 0x043d 0x043e 0x043f 0x0440 0x0441 0x0442 0x0443 0x0444 0x0445 0x0446 0x0447 0x0448 0x0449 0x044a 0x044b 0x044c 0x044d 0x044e 0x044f 0x2116 0x0451 0x0452 0x0453 0x0454 0x0455 0x0456 0x0457 0x0458 0x0459 0x045a 0x045b 0x045c 0x00a7 0x045e 0x045f ) vflib3-3.6.14.dfsg/ccv/iso8859-6_unicode.ccv0000644000175000017500000000452607006213672017547 0ustar mohuramohura; Conversion table: ISO8859-6 ==> UNICODE (charset-external-name ISO8859-6) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xf2) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00f2 (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 -1 -1 -1 0x00a4 -1 -1 -1 -1 -1 -1 -1 0x060c 0x00ad -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x061b -1 -1 -1 0x061f -1 0x0621 0x0622 0x0623 0x0624 0x0625 0x0626 0x0627 0x0628 0x0629 0x062a 0x062b 0x062c 0x062d 0x062e 0x062f 0x0630 0x0631 0x0632 0x0633 0x0634 0x0635 0x0636 0x0637 0x0638 0x0639 0x063a -1 -1 -1 -1 -1 0x0640 0x0641 0x0642 0x0643 0x0644 0x0645 0x0646 0x0647 0x0648 0x0649 0x064a 0x064b 0x064c 0x064d 0x064e 0x064f 0x0650 0x0651 0x0652 ) vflib3-3.6.14.dfsg/ccv/iso8859-7_unicode.ccv0000644000175000017500000000465707006213672017555 0ustar mohuramohura; Conversion table: ISO8859-7 ==> UNICODE (charset-external-name ISO8859-7) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xfe) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00fe (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 0x2018 0x2019 0x00a3 -1 -1 0x00a6 0x00a7 0x00a8 0x00a9 -1 0x00ab 0x00ac 0x00ad -1 0x2015 0x00b0 0x00b1 0x00b2 0x00b3 0x0384 0x0385 0x0386 0x00b7 0x0388 0x0389 0x038a 0x00bb 0x038c 0x00bd 0x038e 0x038f 0x0390 0x0391 0x0392 0x0393 0x0394 0x0395 0x0396 0x0397 0x0398 0x0399 0x039a 0x039b 0x039c 0x039d 0x039e 0x039f 0x03a0 0x03a1 -1 0x03a3 0x03a4 0x03a5 0x03a6 0x03a7 0x03a8 0x03a9 0x03aa 0x03ab 0x03ac 0x03ad 0x03ae 0x03af 0x03b0 0x03b1 0x03b2 0x03b3 0x03b4 0x03b5 0x03b6 0x03b7 0x03b8 0x03b9 0x03ba 0x03bb 0x03bc 0x03bd 0x03be 0x03bf 0x03c0 0x03c1 0x03c2 0x03c3 0x03c4 0x03c5 0x03c6 0x03c7 0x03c8 0x03c9 0x03ca 0x03cb 0x03cc 0x03cd 0x03ce ) vflib3-3.6.14.dfsg/ccv/iso8859-8_unicode.ccv0000644000175000017500000000462307006213672017547 0ustar mohuramohura; Conversion table: ISO8859-8 ==> UNICODE (charset-external-name ISO8859-8) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xfa) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00fa (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 -1 0x00a2 0x00a3 0x00a4 0x00a5 0x00a6 0x00a7 0x00a8 0x00a9 0x00d7 0x00ab 0x00ac 0x00ad 0x00ae 0x203e 0x00b0 0x00b1 0x00b2 0x00b3 0x00b4 0x00b5 0x00b6 0x00b7 0x00b8 0x00b9 0x00f7 0x00bb 0x00bc 0x00bd 0x00be -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x2017 0x05d0 0x05d1 0x05d2 0x05d3 0x05d4 0x05d5 0x05d6 0x05d7 0x05d8 0x05d9 0x05da 0x05db 0x05dc 0x05dd 0x05de 0x05df 0x05e0 0x05e1 0x05e2 0x05e3 0x05e4 0x05e5 0x05e6 0x05e7 0x05e8 0x05e9 0x05ea ) vflib3-3.6.14.dfsg/ccv/mk-ccv-20000755000175000017500000000033207006213657015310 0ustar mohuramohura#! /bin/sh CS1=$1 EN1=`echo $2 | sed 's/,/ /g'` CS2=$3 EN2=`echo $4 | sed 's/,/ /g'` gzip -cd $5 | sed 's/#.*$//' | grep '^.' | awk '{print $2, $3 }' \ | sort | ./mkcscv ${CS1} "${EN1}" ${CS2} "${EN2}" > $6 exit 0 vflib3-3.6.14.dfsg/ccv/iso8859-9_unicode.ccv0000644000175000017500000000466607006213672017557 0ustar mohuramohura; Conversion table: ISO8859-9 ==> UNICODE (charset-external-name ISO8859-9) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00ff (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 0x00a1 0x00a2 0x00a3 0x00a4 0x00a5 0x00a6 0x00a7 0x00a8 0x00a9 0x00aa 0x00ab 0x00ac 0x00ad 0x00ae 0x00af 0x00b0 0x00b1 0x00b2 0x00b3 0x00b4 0x00b5 0x00b6 0x00b7 0x00b8 0x00b9 0x00ba 0x00bb 0x00bc 0x00bd 0x00be 0x00bf 0x00c0 0x00c1 0x00c2 0x00c3 0x00c4 0x00c5 0x00c6 0x00c7 0x00c8 0x00c9 0x00ca 0x00cb 0x00cc 0x00cd 0x00ce 0x00cf 0x011e 0x00d1 0x00d2 0x00d3 0x00d4 0x00d5 0x00d6 0x00d7 0x00d8 0x00d9 0x00da 0x00db 0x00dc 0x0130 0x015e 0x00df 0x00e0 0x00e1 0x00e2 0x00e3 0x00e4 0x00e5 0x00e6 0x00e7 0x00e8 0x00e9 0x00ea 0x00eb 0x00ec 0x00ed 0x00ee 0x00ef 0x011f 0x00f1 0x00f2 0x00f3 0x00f4 0x00f5 0x00f6 0x00f7 0x00f8 0x00f9 0x00fa 0x00fb 0x00fc 0x0131 0x015f 0x00ff ) vflib3-3.6.14.dfsg/ccv/mkcscv.c0000644000175000017500000001065706774327504015520 0ustar mohuramohura/* * mkcscv2x.c - make code conversion table * by Hirotsugu Kakugawa * * 28 Jul 1997 */ /* * Copyright (C) 1997 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #define UNDEF -1L #define BASE 128 #define TABLE_SIZE 20000 struct conv_table { long code1; long code2; }; int block_size = 256; int compact = 0; void conv(struct conv_table*, FILE*, char **); int main(int argc, char **argv) { struct conv_table *cvtbl; argv++; argc--; compact = 0; if ((argc >= 1) && (strcmp(argv[0], "-c") == 0)){ compact = 1; argc--; argv++; } if (argc < 4){ fprintf(stderr, "Usage: mkcscv [-c] %s [block size]\n", "CS1-NAME CS1-ENC CS2-NAME CS2-ENC"); exit(1); } fprintf(stderr, "*** Making CCV file: (%s, %s) => (%s, %s)\n", argv[0], argv[1], argv[2], argv[3]); if (argc >= 5) block_size = atoi(argv[5]); cvtbl = (struct conv_table*)calloc(TABLE_SIZE+1, sizeof(struct conv_table)); if (cvtbl == NULL){ fprintf(stderr, "No memory\n"); exit(1); } conv(cvtbl, stdin, argv); return 0; } void conv(struct conv_table* cvtbl, FILE* fp, char **argv) { int c1min, c1max, c2min, c2max, c1, c2, blocks; int index, print_block, i, t; char line[BUFSIZ]; for (i = 0; i < TABLE_SIZE; i++){ cvtbl[i].code1 = UNDEF; cvtbl[i].code2 = UNDEF; } /* Input must be in code order. */ c1min = 0xffff; c1max = 0x00; c2min = block_size-1; c2max = 0x00; for (i = 0; ; i++){ if (fgets(line, sizeof(line), fp) == NULL) break; sscanf(line, "%li%li", &cvtbl[i].code1, &cvtbl[i].code2); c1 = cvtbl[i].code1 / block_size; c2 = cvtbl[i].code1 % block_size; if (c1min > c1) c1min = c1; if (c1max < c1) c1max = c1; if (c2min > c2) c2min = c2; if (c2max < c2) c2max = c2; } printf("; Conversion table: %s ==> %s\n", argv[0], argv[2]); printf("(charset-external-name %s)\n", argv[0]); printf("(charset-external-encoding %s)\n", argv[1]); printf("(charset-internal-name %s)\n", argv[2]); printf("(charset-internal-encoding %s)\n", argv[3]); if (compact == 0) printf("(table-type array)\n"); else printf("(table-type random-arrays)\n"); printf("; Code point C is converted to C' by the following formula:\n"); printf("; C' = Table[(c1 - c1min)*M + (c2 - c2min)],\n"); printf("; where c1 = C/B and c2 = C%%B, and M = c2max - c2min + 1.\n"); printf("; B is a block size given by the 'block-size:' parameter.\n"); printf("(c1-min 0x%x)\n", c1min); printf("(c1-max 0x%x)\n", c1max); printf("(c2-min 0x%x)\n", c2min); printf("(c2-max 0x%x)\n", c2max); printf("(block-size %d)\n", block_size); if (compact == 0){ printf("(nblocks %d)\n", c1max-c1min+1); } else { blocks = 0; index = 0; for (c1 = c1min; c1 <= c1max; c1++){ print_block = 0; for (c2 = c2min; c2 <= c2max; c2++){ if (cvtbl[index].code1 == c1*block_size+c2){ if (print_block == 0) blocks++; print_block = 1; index++; } } } printf("(nblocks %d)\n", blocks); } index = 0; for (c1 = c1min; c1 <= c1max; c1++){ if (compact == 0){ print_block = 1; } else { print_block = 0; for (c2 = c2min; c2 <= c2max; c2++){ if (cvtbl[index].code1 == c1*block_size+c2){ print_block = 1; break; } } } if (print_block == 1){ printf("; 0x%04x ... 0x%04x\n", c1*block_size+c2min, c1*block_size+c2max); printf("(block %d", c1-c1min); t = 0; for (c2 = c2min; c2 <= c2max; c2++){ if ((t % 8) == 0) printf("\n "); if (cvtbl[index].code1 == c1*block_size+c2) printf("0x%04lx ", cvtbl[index++].code2); else printf("-1 "); t++; } printf(")\n"); } } } /*EOF*/ vflib3-3.6.14.dfsg/ccv/iso8859-10_unicode.ccv0000644000175000017500000000467007006213672017622 0ustar mohuramohura; Conversion table: ISO8859-10 ==> UNICODE (charset-external-name ISO8859-10) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00ff (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 0x0104 0x0112 0x0122 0x0124 0x0128 0x0136 0x00a7 0x013b 0x0110 0x0160 0x0166 0x017d 0x00ad 0x016a 0x014a 0x00b0 0x0105 0x0113 0x0123 0x012b 0x0129 0x0137 0x00b7 0x013c 0x0111 0x0161 0x0167 0x017e 0x2015 0x016b 0x014b 0x0100 0x00c1 0x00c2 0x00c3 0x00c4 0x00c5 0x00c6 0x012e 0x010c 0x00c9 0x0118 0x00cb 0x0116 0x00cd 0x00ce 0x00cf 0x00d0 0x0145 0x014c 0x00d3 0x00d4 0x00d5 0x00d6 0x0168 0x00d8 0x0172 0x00da 0x00db 0x00dc 0x00dd 0x00de 0x00df 0x0101 0x00e1 0x00e2 0x00e3 0x00e4 0x00e5 0x00e6 0x012f 0x010d 0x00e9 0x0119 0x00eb 0x0117 0x00ed 0x00ee 0x00ef 0x00f0 0x0146 0x014d 0x00f3 0x00f4 0x00f5 0x00f6 0x0169 0x00f8 0x0173 0x00fa 0x00fb 0x00fc 0x00fd 0x00fe 0x0138 ) vflib3-3.6.14.dfsg/ccv/mk-ccv-cns10000755000175000017500000000021606774330027016016 0ustar mohuramohura#! /bin/sh gzip -cd $5 | sed 's/#.*$//' \ | grep '^0x1' \ | grep '^.' | awk '{print $1, $2 }' \ | sort | ./mkcscv -c $1 $2 $3 $4 > $6 exit 0 vflib3-3.6.14.dfsg/ccv/iso8859-13_unicode.ccv0000644000175000017500000000467007006213672017625 0ustar mohuramohura; Conversion table: ISO8859-13 ==> UNICODE (charset-external-name ISO8859-13) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00ff (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 0x201d 0x00a2 0x00a3 0x00a4 0x201e 0x00a6 0x00a7 0x00d8 0x00a9 0x0156 0x00ab 0x00ac 0x00ad 0x00ae 0x00c6 0x00b0 0x00b1 0x00b2 0x00b3 0x201c 0x00b5 0x00b6 0x00b7 0x00f8 0x00b9 0x0157 0x00bb 0x00bc 0x00bd 0x00be 0x00e6 0x0104 0x012e 0x0100 0x0106 0x00c4 0x00c5 0x0118 0x0112 0x010c 0x00c9 0x0179 0x0116 0x0122 0x0136 0x012a 0x013b 0x0160 0x0143 0x0145 0x00d3 0x014c 0x00d5 0x00d6 0x00d7 0x0172 0x0141 0x015a 0x016a 0x00dc 0x017b 0x017d 0x00df 0x0105 0x012f 0x0101 0x0107 0x00e4 0x00e5 0x0119 0x0113 0x010d 0x00e9 0x017a 0x0117 0x0123 0x0137 0x012b 0x013c 0x0161 0x0144 0x0146 0x00f3 0x014d 0x00f5 0x00f6 0x00f7 0x0173 0x0142 0x015b 0x016b 0x00fc 0x017c 0x017e 0x2019 ) vflib3-3.6.14.dfsg/ccv/iso8859-14_unicode.ccv0000644000175000017500000000467007006213672017626 0ustar mohuramohura; Conversion table: ISO8859-14 ==> UNICODE (charset-external-name ISO8859-14) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00ff (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 0x1e02 0x1e03 0x00a3 0x010a 0x010b 0x1e0a 0x00a7 0x1e80 0x00a9 0x1e82 0x1e0b 0x1ef2 0x00ad 0x00ae 0x0178 0x1e1e 0x1e1f 0x0120 0x0121 0x1e40 0x1e41 0x00b6 0x1e56 0x1e81 0x1e57 0x1e83 0x1e60 0x1ef3 0x1e84 0x1e85 0x1e61 0x00c0 0x00c1 0x00c2 0x00c3 0x00c4 0x00c5 0x00c6 0x00c7 0x00c8 0x00c9 0x00ca 0x00cb 0x00cc 0x00cd 0x00ce 0x00cf 0x0174 0x00d1 0x00d2 0x00d3 0x00d4 0x00d5 0x00d6 0x1e6a 0x00d8 0x00d9 0x00da 0x00db 0x00dc 0x00dd 0x0176 0x00df 0x00e0 0x00e1 0x00e2 0x00e3 0x00e4 0x00e5 0x00e6 0x00e7 0x00e8 0x00e9 0x00ea 0x00eb 0x00ec 0x00ed 0x00ee 0x00ef 0x0175 0x00f1 0x00f2 0x00f3 0x00f4 0x00f5 0x00f6 0x1e6b 0x00f8 0x00f9 0x00fa 0x00fb 0x00fc 0x00fd 0x0177 0x00ff ) vflib3-3.6.14.dfsg/ccv/iso8859-15_unicode.ccv0000644000175000017500000000467007006213672017627 0ustar mohuramohura; Conversion table: ISO8859-15 ==> UNICODE (charset-external-name ISO8859-15) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x0) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0000 ... 0x00ff (block 0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 0x000c 0x000d 0x000e 0x000f 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001a 0x001b 0x001c 0x001d 0x001e 0x001f 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e 0x007f 0x0080 0x0081 0x0082 0x0083 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x008a 0x008b 0x008c 0x008d 0x008e 0x008f 0x0090 0x0091 0x0092 0x0093 0x0094 0x0095 0x0096 0x0097 0x0098 0x0099 0x009a 0x009b 0x009c 0x009d 0x009e 0x009f 0x00a0 0x00a1 0x00a2 0x00a3 0x20ac 0x00a5 0x0160 0x00a7 0x0161 0x00a9 0x00aa 0x00ab 0x00ac 0x00ad 0x00ae 0x00af 0x00b0 0x00b1 0x00b2 0x00b3 0x017d 0x00b5 0x00b6 0x00b7 0x017e 0x00b9 0x00ba 0x00bb 0x0152 0x0153 0x0178 0x00bf 0x00c0 0x00c1 0x00c2 0x00c3 0x00c4 0x00c5 0x00c6 0x00c7 0x00c8 0x00c9 0x00ca 0x00cb 0x00cc 0x00cd 0x00ce 0x00cf 0x00d0 0x00d1 0x00d2 0x00d3 0x00d4 0x00d5 0x00d6 0x00d7 0x00d8 0x00d9 0x00da 0x00db 0x00dc 0x00dd 0x00de 0x00df 0x00e0 0x00e1 0x00e2 0x00e3 0x00e4 0x00e5 0x00e6 0x00e7 0x00e8 0x00e9 0x00ea 0x00eb 0x00ec 0x00ed 0x00ee 0x00ef 0x00f0 0x00f1 0x00f2 0x00f3 0x00f4 0x00f5 0x00f6 0x00f7 0x00f8 0x00f9 0x00fa 0x00fb 0x00fc 0x00fd 0x00fe 0x00ff ) vflib3-3.6.14.dfsg/ccv/iso8859-5_koi8-r.ccv0000644000175000017500000000413107006213672017221 0ustar mohuramohura; Conversion table: ISO8859-5 ==> KOI8-R (charset-external-name ISO8859-5) (charset-external-encoding ISO) (charset-internal-name KOI8-R) (charset-internal-encoding KOI8-R) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x20) (c2-max 0xf1) (block-size 256) (nblocks 1) ; 0x0020 ... 0x00f1 (block 0 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x009a 0x00b3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x00e1 0x00e2 0x00f7 0x00e7 0x00e4 0x00e5 0x00f6 0x00fa 0x00e9 0x00ea 0x00eb 0x00ec 0x00ed 0x00ee 0x00ef 0x00f0 0x00f2 0x00f3 0x00f4 0x00f5 0x00e6 0x00e8 0x00e3 0x00fe 0x00fb 0x00fd 0x00ff 0x00f9 0x00f8 0x00fc 0x00e0 0x00f1 0x00c1 0x00c2 0x00d7 0x00c7 0x00c4 0x00c5 0x00d6 0x00da 0x00c9 0x00ca 0x00cb 0x00cc 0x00cd 0x00ce 0x00cf 0x00d0 0x00d2 0x00d3 0x00d4 0x00d5 0x00c6 0x00c8 0x00c3 0x00de 0x00db 0x00dd 0x00df 0x00d9 0x00d8 0x00dc 0x00c0 0x00d1 -1 0x00a3 ) vflib3-3.6.14.dfsg/ccv/koi8-r_iso8859-5.ccv0000644000175000017500000000430007006213672017217 0ustar mohuramohura; Conversion table: KOI8-R ==> ISO8859-5 (charset-external-name KOI8-R) (charset-external-encoding KOI8-R) (charset-internal-name ISO8859-5) (charset-internal-encoding ISO) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x20) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0020 ... 0x00ff (block 0 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x00a0 -1 -1 -1 -1 -1 -1 -1 -1 0x00f1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x00a1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x00ee 0x00d0 0x00d1 0x00e6 0x00d4 0x00d5 0x00e4 0x00d3 0x00e5 0x00d8 0x00d9 0x00da 0x00db 0x00dc 0x00dd 0x00de 0x00df 0x00ef 0x00e0 0x00e1 0x00e2 0x00e3 0x00d6 0x00d2 0x00ec 0x00eb 0x00d7 0x00e8 0x00ed 0x00e9 0x00e7 0x00ea 0x00ce 0x00b0 0x00b1 0x00c6 0x00b4 0x00b5 0x00c4 0x00b3 0x00c5 0x00b8 0x00b9 0x00ba 0x00bb 0x00bc 0x00bd 0x00be 0x00bf 0x00cf 0x00c0 0x00c1 0x00c2 0x00c3 0x00b6 0x00b2 0x00cc 0x00cb 0x00b7 0x00c8 0x00cd 0x00c9 0x00c7 0x00ca ) vflib3-3.6.14.dfsg/ccv/koi8-r_unicode.ccv0000644000175000017500000000430007006213672017353 0ustar mohuramohura; Conversion table: KOI8-R ==> UNICODE (charset-external-name KOI8-R) (charset-external-encoding KOI8-R) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x20) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0020 ... 0x00ff (block 0 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e -1 0x2500 0x2502 0x250c 0x2510 0x2514 0x2518 0x251c 0x2524 0x252c 0x2534 0x253c 0x2580 0x2584 0x2588 0x258c 0x2590 0x2591 0x2592 0x2593 0x2320 0x25a0 0x2219 0x221a 0x2248 0x2264 0x2265 0x00a0 0x2321 0x00b0 0x00b2 0x00b7 0x00f7 0x2550 0x2551 0x2552 0x0451 0x2553 0x2554 0x2555 0x2556 0x2557 0x2558 0x2559 0x255a 0x255b 0x255c 0x255d 0x255e 0x255f 0x2560 0x2561 0x0401 0x2562 0x2563 0x2564 0x2565 0x2566 0x2567 0x2568 0x2569 0x256a 0x256b 0x256c 0x00a9 0x044e 0x0430 0x0431 0x0446 0x0434 0x0435 0x0444 0x0433 0x0445 0x0438 0x0439 0x043a 0x043b 0x043c 0x043d 0x043e 0x043f 0x044f 0x0440 0x0441 0x0442 0x0443 0x0436 0x0432 0x044c 0x044b 0x0437 0x0448 0x044d 0x0449 0x0447 0x044a 0x042e 0x0410 0x0411 0x0426 0x0414 0x0415 0x0424 0x0413 0x0425 0x0418 0x0419 0x041a 0x041b 0x041c 0x041d 0x041e 0x041f 0x042f 0x0420 0x0421 0x0422 0x0423 0x0416 0x0412 0x042c 0x042b 0x0417 0x0428 0x042d 0x0429 0x0427 0x042a ) vflib3-3.6.14.dfsg/ccv/jisx0201_unicode.ccv0000644000175000017500000000371507006213672017533 0ustar mohuramohura; Conversion table: JISX0201 ==> UNICODE (charset-external-name JISX0201) (charset-external-encoding JIS) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x20) (c2-max 0xdf) (block-size 256) (nblocks 1) ; 0x0020 ... 0x00df (block 0 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x00a5 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x203e -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0xff61 0xff62 0xff63 0xff64 0xff65 0xff66 0xff67 0xff68 0xff69 0xff6a 0xff6b 0xff6c 0xff6d 0xff6e 0xff6f 0xff70 0xff71 0xff72 0xff73 0xff74 0xff75 0xff76 0xff77 0xff78 0xff79 0xff7a 0xff7b 0xff7c 0xff7d 0xff7e 0xff7f 0xff80 0xff81 0xff82 0xff83 0xff84 0xff85 0xff86 0xff87 0xff88 0xff89 0xff8a 0xff8b 0xff8c 0xff8d 0xff8e 0xff8f 0xff90 0xff91 0xff92 0xff93 0xff94 0xff95 0xff96 0xff97 0xff98 0xff99 0xff9a 0xff9b 0xff9c 0xff9d 0xff9e 0xff9f ) vflib3-3.6.14.dfsg/ccv/jisx0208_unicode.ccv0000644000175000017500000017367407006213673017557 0ustar mohuramohura; Conversion table: JISX0208 ==> UNICODE (charset-external-name JISX0208) (charset-external-encoding ISO2022 JIS) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x21) (c1-max 0x74) (c2-min 0x21) (c2-max 0x7e) (block-size 256) (nblocks 84) ; 0x2121 ... 0x217e (block 0 0x3000 0x3001 0x3002 0xff0c 0xff0e 0x30fb 0xff1a 0xff1b 0xff1f 0xff01 0x309b 0x309c 0x00b4 0xff40 0x00a8 0xff3e 0xffe3 0xff3f 0x30fd 0x30fe 0x309d 0x309e 0x3003 0x4edd 0x3005 0x3006 0x3007 0x30fc 0x2015 0x2010 0xff0f 0x005c 0x301c 0x2016 0xff5c 0x2026 0x2025 0x2018 0x2019 0x201c 0x201d 0xff08 0xff09 0x3014 0x3015 0xff3b 0xff3d 0xff5b 0xff5d 0x3008 0x3009 0x300a 0x300b 0x300c 0x300d 0x300e 0x300f 0x3010 0x3011 0xff0b 0x2212 0x00b1 0x00d7 0x00f7 0xff1d 0x2260 0xff1c 0xff1e 0x2266 0x2267 0x221e 0x2234 0x2642 0x2640 0x00b0 0x2032 0x2033 0x2103 0xffe5 0xff04 0x00a2 0x00a3 0xff05 0xff03 0xff06 0xff0a 0xff20 0x00a7 0x2606 0x2605 0x25cb 0x25cf 0x25ce 0x25c7 ) ; 0x2221 ... 0x227e (block 1 0x25c6 0x25a1 0x25a0 0x25b3 0x25b2 0x25bd 0x25bc 0x203b 0x3012 0x2192 0x2190 0x2191 0x2193 0x3013 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x2208 0x220b 0x2286 0x2287 0x2282 0x2283 0x222a 0x2229 -1 -1 -1 -1 -1 -1 -1 -1 0x2227 0x2228 0x00ac 0x21d2 0x21d4 0x2200 0x2203 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x2220 0x22a5 0x2312 0x2202 0x2207 0x2261 0x2252 0x226a 0x226b 0x221a 0x223d 0x221d 0x2235 0x222b 0x222c -1 -1 -1 -1 -1 -1 -1 0x212b 0x2030 0x266f 0x266d 0x266a 0x2020 0x2021 0x00b6 -1 -1 -1 -1 0x25ef ) ; 0x2321 ... 0x237e (block 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0xff10 0xff11 0xff12 0xff13 0xff14 0xff15 0xff16 0xff17 0xff18 0xff19 -1 -1 -1 -1 -1 -1 -1 0xff21 0xff22 0xff23 0xff24 0xff25 0xff26 0xff27 0xff28 0xff29 0xff2a 0xff2b 0xff2c 0xff2d 0xff2e 0xff2f 0xff30 0xff31 0xff32 0xff33 0xff34 0xff35 0xff36 0xff37 0xff38 0xff39 0xff3a -1 -1 -1 -1 -1 -1 0xff41 0xff42 0xff43 0xff44 0xff45 0xff46 0xff47 0xff48 0xff49 0xff4a 0xff4b 0xff4c 0xff4d 0xff4e 0xff4f 0xff50 0xff51 0xff52 0xff53 0xff54 0xff55 0xff56 0xff57 0xff58 0xff59 0xff5a -1 -1 -1 -1 ) ; 0x2421 ... 0x247e (block 3 0x3041 0x3042 0x3043 0x3044 0x3045 0x3046 0x3047 0x3048 0x3049 0x304a 0x304b 0x304c 0x304d 0x304e 0x304f 0x3050 0x3051 0x3052 0x3053 0x3054 0x3055 0x3056 0x3057 0x3058 0x3059 0x305a 0x305b 0x305c 0x305d 0x305e 0x305f 0x3060 0x3061 0x3062 0x3063 0x3064 0x3065 0x3066 0x3067 0x3068 0x3069 0x306a 0x306b 0x306c 0x306d 0x306e 0x306f 0x3070 0x3071 0x3072 0x3073 0x3074 0x3075 0x3076 0x3077 0x3078 0x3079 0x307a 0x307b 0x307c 0x307d 0x307e 0x307f 0x3080 0x3081 0x3082 0x3083 0x3084 0x3085 0x3086 0x3087 0x3088 0x3089 0x308a 0x308b 0x308c 0x308d 0x308e 0x308f 0x3090 0x3091 0x3092 0x3093 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2521 ... 0x257e (block 4 0x30a1 0x30a2 0x30a3 0x30a4 0x30a5 0x30a6 0x30a7 0x30a8 0x30a9 0x30aa 0x30ab 0x30ac 0x30ad 0x30ae 0x30af 0x30b0 0x30b1 0x30b2 0x30b3 0x30b4 0x30b5 0x30b6 0x30b7 0x30b8 0x30b9 0x30ba 0x30bb 0x30bc 0x30bd 0x30be 0x30bf 0x30c0 0x30c1 0x30c2 0x30c3 0x30c4 0x30c5 0x30c6 0x30c7 0x30c8 0x30c9 0x30ca 0x30cb 0x30cc 0x30cd 0x30ce 0x30cf 0x30d0 0x30d1 0x30d2 0x30d3 0x30d4 0x30d5 0x30d6 0x30d7 0x30d8 0x30d9 0x30da 0x30db 0x30dc 0x30dd 0x30de 0x30df 0x30e0 0x30e1 0x30e2 0x30e3 0x30e4 0x30e5 0x30e6 0x30e7 0x30e8 0x30e9 0x30ea 0x30eb 0x30ec 0x30ed 0x30ee 0x30ef 0x30f0 0x30f1 0x30f2 0x30f3 0x30f4 0x30f5 0x30f6 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2621 ... 0x267e (block 5 0x0391 0x0392 0x0393 0x0394 0x0395 0x0396 0x0397 0x0398 0x0399 0x039a 0x039b 0x039c 0x039d 0x039e 0x039f 0x03a0 0x03a1 0x03a3 0x03a4 0x03a5 0x03a6 0x03a7 0x03a8 0x03a9 -1 -1 -1 -1 -1 -1 -1 -1 0x03b1 0x03b2 0x03b3 0x03b4 0x03b5 0x03b6 0x03b7 0x03b8 0x03b9 0x03ba 0x03bb 0x03bc 0x03bd 0x03be 0x03bf 0x03c0 0x03c1 0x03c3 0x03c4 0x03c5 0x03c6 0x03c7 0x03c8 0x03c9 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2721 ... 0x277e (block 6 0x0410 0x0411 0x0412 0x0413 0x0414 0x0415 0x0401 0x0416 0x0417 0x0418 0x0419 0x041a 0x041b 0x041c 0x041d 0x041e 0x041f 0x0420 0x0421 0x0422 0x0423 0x0424 0x0425 0x0426 0x0427 0x0428 0x0429 0x042a 0x042b 0x042c 0x042d 0x042e 0x042f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x0430 0x0431 0x0432 0x0433 0x0434 0x0435 0x0451 0x0436 0x0437 0x0438 0x0439 0x043a 0x043b 0x043c 0x043d 0x043e 0x043f 0x0440 0x0441 0x0442 0x0443 0x0444 0x0445 0x0446 0x0447 0x0448 0x0449 0x044a 0x044b 0x044c 0x044d 0x044e 0x044f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2821 ... 0x287e (block 7 0x2500 0x2502 0x250c 0x2510 0x2518 0x2514 0x251c 0x252c 0x2524 0x2534 0x253c 0x2501 0x2503 0x250f 0x2513 0x251b 0x2517 0x2523 0x2533 0x252b 0x253b 0x254b 0x2520 0x252f 0x2528 0x2537 0x253f 0x251d 0x2530 0x2525 0x2538 0x2542 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2921 ... 0x297e (block 8 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2a21 ... 0x2a7e (block 9 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2b21 ... 0x2b7e (block 10 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2c21 ... 0x2c7e (block 11 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2d21 ... 0x2d7e (block 12 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2e21 ... 0x2e7e (block 13 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2f21 ... 0x2f7e (block 14 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x3021 ... 0x307e (block 15 0x4e9c 0x5516 0x5a03 0x963f 0x54c0 0x611b 0x6328 0x59f6 0x9022 0x8475 0x831c 0x7a50 0x60aa 0x63e1 0x6e25 0x65ed 0x8466 0x82a6 0x9bf5 0x6893 0x5727 0x65a1 0x6271 0x5b9b 0x59d0 0x867b 0x98f4 0x7d62 0x7dbe 0x9b8e 0x6216 0x7c9f 0x88b7 0x5b89 0x5eb5 0x6309 0x6697 0x6848 0x95c7 0x978d 0x674f 0x4ee5 0x4f0a 0x4f4d 0x4f9d 0x5049 0x56f2 0x5937 0x59d4 0x5a01 0x5c09 0x60df 0x610f 0x6170 0x6613 0x6905 0x70ba 0x754f 0x7570 0x79fb 0x7dad 0x7def 0x80c3 0x840e 0x8863 0x8b02 0x9055 0x907a 0x533b 0x4e95 0x4ea5 0x57df 0x80b2 0x90c1 0x78ef 0x4e00 0x58f1 0x6ea2 0x9038 0x7a32 0x8328 0x828b 0x9c2f 0x5141 0x5370 0x54bd 0x54e1 0x56e0 0x59fb 0x5f15 0x98f2 0x6deb 0x80e4 0x852d ) ; 0x3121 ... 0x317e (block 16 0x9662 0x9670 0x96a0 0x97fb 0x540b 0x53f3 0x5b87 0x70cf 0x7fbd 0x8fc2 0x96e8 0x536f 0x9d5c 0x7aba 0x4e11 0x7893 0x81fc 0x6e26 0x5618 0x5504 0x6b1d 0x851a 0x9c3b 0x59e5 0x53a9 0x6d66 0x74dc 0x958f 0x5642 0x4e91 0x904b 0x96f2 0x834f 0x990c 0x53e1 0x55b6 0x5b30 0x5f71 0x6620 0x66f3 0x6804 0x6c38 0x6cf3 0x6d29 0x745b 0x76c8 0x7a4e 0x9834 0x82f1 0x885b 0x8a60 0x92ed 0x6db2 0x75ab 0x76ca 0x99c5 0x60a6 0x8b01 0x8d8a 0x95b2 0x698e 0x53ad 0x5186 0x5712 0x5830 0x5944 0x5bb4 0x5ef6 0x6028 0x63a9 0x63f4 0x6cbf 0x6f14 0x708e 0x7114 0x7159 0x71d5 0x733f 0x7e01 0x8276 0x82d1 0x8597 0x9060 0x925b 0x9d1b 0x5869 0x65bc 0x6c5a 0x7525 0x51f9 0x592e 0x5965 0x5f80 0x5fdc ) ; 0x3221 ... 0x327e (block 17 0x62bc 0x65fa 0x6a2a 0x6b27 0x6bb4 0x738b 0x7fc1 0x8956 0x9d2c 0x9d0e 0x9ec4 0x5ca1 0x6c96 0x837b 0x5104 0x5c4b 0x61b6 0x81c6 0x6876 0x7261 0x4e59 0x4ffa 0x5378 0x6069 0x6e29 0x7a4f 0x97f3 0x4e0b 0x5316 0x4eee 0x4f55 0x4f3d 0x4fa1 0x4f73 0x52a0 0x53ef 0x5609 0x590f 0x5ac1 0x5bb6 0x5be1 0x79d1 0x6687 0x679c 0x67b6 0x6b4c 0x6cb3 0x706b 0x73c2 0x798d 0x79be 0x7a3c 0x7b87 0x82b1 0x82db 0x8304 0x8377 0x83ef 0x83d3 0x8766 0x8ab2 0x5629 0x8ca8 0x8fe6 0x904e 0x971e 0x868a 0x4fc4 0x5ce8 0x6211 0x7259 0x753b 0x81e5 0x82bd 0x86fe 0x8cc0 0x96c5 0x9913 0x99d5 0x4ecb 0x4f1a 0x89e3 0x56de 0x584a 0x58ca 0x5efb 0x5feb 0x602a 0x6094 0x6062 0x61d0 0x6212 0x62d0 0x6539 ) ; 0x3321 ... 0x337e (block 18 0x9b41 0x6666 0x68b0 0x6d77 0x7070 0x754c 0x7686 0x7d75 0x82a5 0x87f9 0x958b 0x968e 0x8c9d 0x51f1 0x52be 0x5916 0x54b3 0x5bb3 0x5d16 0x6168 0x6982 0x6daf 0x788d 0x84cb 0x8857 0x8a72 0x93a7 0x9ab8 0x6d6c 0x99a8 0x86d9 0x57a3 0x67ff 0x86ce 0x920e 0x5283 0x5687 0x5404 0x5ed3 0x62e1 0x64b9 0x683c 0x6838 0x6bbb 0x7372 0x78ba 0x7a6b 0x899a 0x89d2 0x8d6b 0x8f03 0x90ed 0x95a3 0x9694 0x9769 0x5b66 0x5cb3 0x697d 0x984d 0x984e 0x639b 0x7b20 0x6a2b 0x6a7f 0x68b6 0x9c0d 0x6f5f 0x5272 0x559d 0x6070 0x62ec 0x6d3b 0x6e07 0x6ed1 0x845b 0x8910 0x8f44 0x4e14 0x9c39 0x53f6 0x691b 0x6a3a 0x9784 0x682a 0x515c 0x7ac3 0x84b2 0x91dc 0x938c 0x565b 0x9d28 0x6822 0x8305 0x8431 ) ; 0x3421 ... 0x347e (block 19 0x7ca5 0x5208 0x82c5 0x74e6 0x4e7e 0x4f83 0x51a0 0x5bd2 0x520a 0x52d8 0x52e7 0x5dfb 0x559a 0x582a 0x59e6 0x5b8c 0x5b98 0x5bdb 0x5e72 0x5e79 0x60a3 0x611f 0x6163 0x61be 0x63db 0x6562 0x67d1 0x6853 0x68fa 0x6b3e 0x6b53 0x6c57 0x6f22 0x6f97 0x6f45 0x74b0 0x7518 0x76e3 0x770b 0x7aff 0x7ba1 0x7c21 0x7de9 0x7f36 0x7ff0 0x809d 0x8266 0x839e 0x89b3 0x8acc 0x8cab 0x9084 0x9451 0x9593 0x9591 0x95a2 0x9665 0x97d3 0x9928 0x8218 0x4e38 0x542b 0x5cb8 0x5dcc 0x73a9 0x764c 0x773c 0x5ca9 0x7feb 0x8d0b 0x96c1 0x9811 0x9854 0x9858 0x4f01 0x4f0e 0x5371 0x559c 0x5668 0x57fa 0x5947 0x5b09 0x5bc4 0x5c90 0x5e0c 0x5e7e 0x5fcc 0x63ee 0x673a 0x65d7 0x65e2 0x671f 0x68cb 0x68c4 ) ; 0x3521 ... 0x357e (block 20 0x6a5f 0x5e30 0x6bc5 0x6c17 0x6c7d 0x757f 0x7948 0x5b63 0x7a00 0x7d00 0x5fbd 0x898f 0x8a18 0x8cb4 0x8d77 0x8ecc 0x8f1d 0x98e2 0x9a0e 0x9b3c 0x4e80 0x507d 0x5100 0x5993 0x5b9c 0x622f 0x6280 0x64ec 0x6b3a 0x72a0 0x7591 0x7947 0x7fa9 0x87fb 0x8abc 0x8b70 0x63ac 0x83ca 0x97a0 0x5409 0x5403 0x55ab 0x6854 0x6a58 0x8a70 0x7827 0x6775 0x9ecd 0x5374 0x5ba2 0x811a 0x8650 0x9006 0x4e18 0x4e45 0x4ec7 0x4f11 0x53ca 0x5438 0x5bae 0x5f13 0x6025 0x6551 0x673d 0x6c42 0x6c72 0x6ce3 0x7078 0x7403 0x7a76 0x7aae 0x7b08 0x7d1a 0x7cfe 0x7d66 0x65e7 0x725b 0x53bb 0x5c45 0x5de8 0x62d2 0x62e0 0x6319 0x6e20 0x865a 0x8a31 0x8ddd 0x92f8 0x6f01 0x79a6 0x9b5a 0x4ea8 0x4eab 0x4eac ) ; 0x3621 ... 0x367e (block 21 0x4f9b 0x4fa0 0x50d1 0x5147 0x7af6 0x5171 0x51f6 0x5354 0x5321 0x537f 0x53eb 0x55ac 0x5883 0x5ce1 0x5f37 0x5f4a 0x602f 0x6050 0x606d 0x631f 0x6559 0x6a4b 0x6cc1 0x72c2 0x72ed 0x77ef 0x80f8 0x8105 0x8208 0x854e 0x90f7 0x93e1 0x97ff 0x9957 0x9a5a 0x4ef0 0x51dd 0x5c2d 0x6681 0x696d 0x5c40 0x66f2 0x6975 0x7389 0x6850 0x7c81 0x50c5 0x52e4 0x5747 0x5dfe 0x9326 0x65a4 0x6b23 0x6b3d 0x7434 0x7981 0x79bd 0x7b4b 0x7dca 0x82b9 0x83cc 0x887f 0x895f 0x8b39 0x8fd1 0x91d1 0x541f 0x9280 0x4e5d 0x5036 0x53e5 0x533a 0x72d7 0x7396 0x77e9 0x82e6 0x8eaf 0x99c6 0x99c8 0x99d2 0x5177 0x611a 0x865e 0x55b0 0x7a7a 0x5076 0x5bd3 0x9047 0x9685 0x4e32 0x6adb 0x91e7 0x5c51 0x5c48 ) ; 0x3721 ... 0x377e (block 22 0x6398 0x7a9f 0x6c93 0x9774 0x8f61 0x7aaa 0x718a 0x9688 0x7c82 0x6817 0x7e70 0x6851 0x936c 0x52f2 0x541b 0x85ab 0x8a13 0x7fa4 0x8ecd 0x90e1 0x5366 0x8888 0x7941 0x4fc2 0x50be 0x5211 0x5144 0x5553 0x572d 0x73ea 0x578b 0x5951 0x5f62 0x5f84 0x6075 0x6176 0x6167 0x61a9 0x63b2 0x643a 0x656c 0x666f 0x6842 0x6e13 0x7566 0x7a3d 0x7cfb 0x7d4c 0x7d99 0x7e4b 0x7f6b 0x830e 0x834a 0x86cd 0x8a08 0x8a63 0x8b66 0x8efd 0x981a 0x9d8f 0x82b8 0x8fce 0x9be8 0x5287 0x621f 0x6483 0x6fc0 0x9699 0x6841 0x5091 0x6b20 0x6c7a 0x6f54 0x7a74 0x7d50 0x8840 0x8a23 0x6708 0x4ef6 0x5039 0x5026 0x5065 0x517c 0x5238 0x5263 0x55a7 0x570f 0x5805 0x5acc 0x5efa 0x61b2 0x61f8 0x62f3 0x6372 ) ; 0x3821 ... 0x387e (block 23 0x691c 0x6a29 0x727d 0x72ac 0x732e 0x7814 0x786f 0x7d79 0x770c 0x80a9 0x898b 0x8b19 0x8ce2 0x8ed2 0x9063 0x9375 0x967a 0x9855 0x9a13 0x9e78 0x5143 0x539f 0x53b3 0x5e7b 0x5f26 0x6e1b 0x6e90 0x7384 0x73fe 0x7d43 0x8237 0x8a00 0x8afa 0x9650 0x4e4e 0x500b 0x53e4 0x547c 0x56fa 0x59d1 0x5b64 0x5df1 0x5eab 0x5f27 0x6238 0x6545 0x67af 0x6e56 0x72d0 0x7cca 0x88b4 0x80a1 0x80e1 0x83f0 0x864e 0x8a87 0x8de8 0x9237 0x96c7 0x9867 0x9f13 0x4e94 0x4e92 0x4f0d 0x5348 0x5449 0x543e 0x5a2f 0x5f8c 0x5fa1 0x609f 0x68a7 0x6a8e 0x745a 0x7881 0x8a9e 0x8aa4 0x8b77 0x9190 0x4e5e 0x9bc9 0x4ea4 0x4f7c 0x4faf 0x5019 0x5016 0x5149 0x516c 0x529f 0x52b9 0x52fe 0x539a 0x53e3 0x5411 ) ; 0x3921 ... 0x397e (block 24 0x540e 0x5589 0x5751 0x57a2 0x597d 0x5b54 0x5b5d 0x5b8f 0x5de5 0x5de7 0x5df7 0x5e78 0x5e83 0x5e9a 0x5eb7 0x5f18 0x6052 0x614c 0x6297 0x62d8 0x63a7 0x653b 0x6602 0x6643 0x66f4 0x676d 0x6821 0x6897 0x69cb 0x6c5f 0x6d2a 0x6d69 0x6e2f 0x6e9d 0x7532 0x7687 0x786c 0x7a3f 0x7ce0 0x7d05 0x7d18 0x7d5e 0x7db1 0x8015 0x8003 0x80af 0x80b1 0x8154 0x818f 0x822a 0x8352 0x884c 0x8861 0x8b1b 0x8ca2 0x8cfc 0x90ca 0x9175 0x9271 0x783f 0x92fc 0x95a4 0x964d 0x9805 0x9999 0x9ad8 0x9d3b 0x525b 0x52ab 0x53f7 0x5408 0x58d5 0x62f7 0x6fe0 0x8c6a 0x8f5f 0x9eb9 0x514b 0x523b 0x544a 0x56fd 0x7a40 0x9177 0x9d60 0x9ed2 0x7344 0x6f09 0x8170 0x7511 0x5ffd 0x60da 0x9aa8 0x72db 0x8fbc ) ; 0x3a21 ... 0x3a7e (block 25 0x6b64 0x9803 0x4eca 0x56f0 0x5764 0x58be 0x5a5a 0x6068 0x61c7 0x660f 0x6606 0x6839 0x68b1 0x6df7 0x75d5 0x7d3a 0x826e 0x9b42 0x4e9b 0x4f50 0x53c9 0x5506 0x5d6f 0x5de6 0x5dee 0x67fb 0x6c99 0x7473 0x7802 0x8a50 0x9396 0x88df 0x5750 0x5ea7 0x632b 0x50b5 0x50ac 0x518d 0x6700 0x54c9 0x585e 0x59bb 0x5bb0 0x5f69 0x624d 0x63a1 0x683d 0x6b73 0x6e08 0x707d 0x91c7 0x7280 0x7815 0x7826 0x796d 0x658e 0x7d30 0x83dc 0x88c1 0x8f09 0x969b 0x5264 0x5728 0x6750 0x7f6a 0x8ca1 0x51b4 0x5742 0x962a 0x583a 0x698a 0x80b4 0x54b2 0x5d0e 0x57fc 0x7895 0x9dfa 0x4f5c 0x524a 0x548b 0x643e 0x6628 0x6714 0x67f5 0x7a84 0x7b56 0x7d22 0x932f 0x685c 0x9bad 0x7b39 0x5319 0x518a 0x5237 ) ; 0x3b21 ... 0x3b7e (block 26 0x5bdf 0x62f6 0x64ae 0x64e6 0x672d 0x6bba 0x85a9 0x96d1 0x7690 0x9bd6 0x634c 0x9306 0x9bab 0x76bf 0x6652 0x4e09 0x5098 0x53c2 0x5c71 0x60e8 0x6492 0x6563 0x685f 0x71e6 0x73ca 0x7523 0x7b97 0x7e82 0x8695 0x8b83 0x8cdb 0x9178 0x9910 0x65ac 0x66ab 0x6b8b 0x4ed5 0x4ed4 0x4f3a 0x4f7f 0x523a 0x53f8 0x53f2 0x55e3 0x56db 0x58eb 0x59cb 0x59c9 0x59ff 0x5b50 0x5c4d 0x5e02 0x5e2b 0x5fd7 0x601d 0x6307 0x652f 0x5b5c 0x65af 0x65bd 0x65e8 0x679d 0x6b62 0x6b7b 0x6c0f 0x7345 0x7949 0x79c1 0x7cf8 0x7d19 0x7d2b 0x80a2 0x8102 0x81f3 0x8996 0x8a5e 0x8a69 0x8a66 0x8a8c 0x8aee 0x8cc7 0x8cdc 0x96cc 0x98fc 0x6b6f 0x4e8b 0x4f3c 0x4f8d 0x5150 0x5b57 0x5bfa 0x6148 0x6301 0x6642 ) ; 0x3c21 ... 0x3c7e (block 27 0x6b21 0x6ecb 0x6cbb 0x723e 0x74bd 0x75d4 0x78c1 0x793a 0x800c 0x8033 0x81ea 0x8494 0x8f9e 0x6c50 0x9e7f 0x5f0f 0x8b58 0x9d2b 0x7afa 0x8ef8 0x5b8d 0x96eb 0x4e03 0x53f1 0x57f7 0x5931 0x5ac9 0x5ba4 0x6089 0x6e7f 0x6f06 0x75be 0x8cea 0x5b9f 0x8500 0x7be0 0x5072 0x67f4 0x829d 0x5c61 0x854a 0x7e1e 0x820e 0x5199 0x5c04 0x6368 0x8d66 0x659c 0x716e 0x793e 0x7d17 0x8005 0x8b1d 0x8eca 0x906e 0x86c7 0x90aa 0x501f 0x52fa 0x5c3a 0x6753 0x707c 0x7235 0x914c 0x91c8 0x932b 0x82e5 0x5bc2 0x5f31 0x60f9 0x4e3b 0x53d6 0x5b88 0x624b 0x6731 0x6b8a 0x72e9 0x73e0 0x7a2e 0x816b 0x8da3 0x9152 0x9996 0x5112 0x53d7 0x546a 0x5bff 0x6388 0x6a39 0x7dac 0x9700 0x56da 0x53ce 0x5468 ) ; 0x3d21 ... 0x3d7e (block 28 0x5b97 0x5c31 0x5dde 0x4fee 0x6101 0x62fe 0x6d32 0x79c0 0x79cb 0x7d42 0x7e4d 0x7fd2 0x81ed 0x821f 0x8490 0x8846 0x8972 0x8b90 0x8e74 0x8f2f 0x9031 0x914b 0x916c 0x96c6 0x919c 0x4ec0 0x4f4f 0x5145 0x5341 0x5f93 0x620e 0x67d4 0x6c41 0x6e0b 0x7363 0x7e26 0x91cd 0x9283 0x53d4 0x5919 0x5bbf 0x6dd1 0x795d 0x7e2e 0x7c9b 0x587e 0x719f 0x51fa 0x8853 0x8ff0 0x4fca 0x5cfb 0x6625 0x77ac 0x7ae3 0x821c 0x99ff 0x51c6 0x5faa 0x65ec 0x696f 0x6b89 0x6df3 0x6e96 0x6f64 0x76fe 0x7d14 0x5de1 0x9075 0x9187 0x9806 0x51e6 0x521d 0x6240 0x6691 0x66d9 0x6e1a 0x5eb6 0x7dd2 0x7f72 0x66f8 0x85af 0x85f7 0x8af8 0x52a9 0x53d9 0x5973 0x5e8f 0x5f90 0x6055 0x92e4 0x9664 0x50b7 0x511f ) ; 0x3e21 ... 0x3e7e (block 29 0x52dd 0x5320 0x5347 0x53ec 0x54e8 0x5546 0x5531 0x5617 0x5968 0x59be 0x5a3c 0x5bb5 0x5c06 0x5c0f 0x5c11 0x5c1a 0x5e84 0x5e8a 0x5ee0 0x5f70 0x627f 0x6284 0x62db 0x638c 0x6377 0x6607 0x660c 0x662d 0x6676 0x677e 0x68a2 0x6a1f 0x6a35 0x6cbc 0x6d88 0x6e09 0x6e58 0x713c 0x7126 0x7167 0x75c7 0x7701 0x785d 0x7901 0x7965 0x79f0 0x7ae0 0x7b11 0x7ca7 0x7d39 0x8096 0x83d6 0x848b 0x8549 0x885d 0x88f3 0x8a1f 0x8a3c 0x8a54 0x8a73 0x8c61 0x8cde 0x91a4 0x9266 0x937e 0x9418 0x969c 0x9798 0x4e0a 0x4e08 0x4e1e 0x4e57 0x5197 0x5270 0x57ce 0x5834 0x58cc 0x5b22 0x5e38 0x60c5 0x64fe 0x6761 0x6756 0x6d44 0x72b6 0x7573 0x7a63 0x84b8 0x8b72 0x91b8 0x9320 0x5631 0x57f4 0x98fe ) ; 0x3f21 ... 0x3f7e (block 30 0x62ed 0x690d 0x6b96 0x71ed 0x7e54 0x8077 0x8272 0x89e6 0x98df 0x8755 0x8fb1 0x5c3b 0x4f38 0x4fe1 0x4fb5 0x5507 0x5a20 0x5bdd 0x5be9 0x5fc3 0x614e 0x632f 0x65b0 0x664b 0x68ee 0x699b 0x6d78 0x6df1 0x7533 0x75b9 0x771f 0x795e 0x79e6 0x7d33 0x81e3 0x82af 0x85aa 0x89aa 0x8a3a 0x8eab 0x8f9b 0x9032 0x91dd 0x9707 0x4eba 0x4ec1 0x5203 0x5875 0x58ec 0x5c0b 0x751a 0x5c3d 0x814e 0x8a0a 0x8fc5 0x9663 0x976d 0x7b25 0x8acf 0x9808 0x9162 0x56f3 0x53a8 0x9017 0x5439 0x5782 0x5e25 0x63a8 0x6c34 0x708a 0x7761 0x7c8b 0x7fe0 0x8870 0x9042 0x9154 0x9310 0x9318 0x968f 0x745e 0x9ac4 0x5d07 0x5d69 0x6570 0x67a2 0x8da8 0x96db 0x636e 0x6749 0x6919 0x83c5 0x9817 0x96c0 0x88fe ) ; 0x4021 ... 0x407e (block 31 0x6f84 0x647a 0x5bf8 0x4e16 0x702c 0x755d 0x662f 0x51c4 0x5236 0x52e2 0x59d3 0x5f81 0x6027 0x6210 0x653f 0x6574 0x661f 0x6674 0x68f2 0x6816 0x6b63 0x6e05 0x7272 0x751f 0x76db 0x7cbe 0x8056 0x58f0 0x88fd 0x897f 0x8aa0 0x8a93 0x8acb 0x901d 0x9192 0x9752 0x9759 0x6589 0x7a0e 0x8106 0x96bb 0x5e2d 0x60dc 0x621a 0x65a5 0x6614 0x6790 0x77f3 0x7a4d 0x7c4d 0x7e3e 0x810a 0x8cac 0x8d64 0x8de1 0x8e5f 0x78a9 0x5207 0x62d9 0x63a5 0x6442 0x6298 0x8a2d 0x7a83 0x7bc0 0x8aac 0x96ea 0x7d76 0x820c 0x8749 0x4ed9 0x5148 0x5343 0x5360 0x5ba3 0x5c02 0x5c16 0x5ddd 0x6226 0x6247 0x64b0 0x6813 0x6834 0x6cc9 0x6d45 0x6d17 0x67d3 0x6f5c 0x714e 0x717d 0x65cb 0x7a7f 0x7bad 0x7dda ) ; 0x4121 ... 0x417e (block 32 0x7e4a 0x7fa8 0x817a 0x821b 0x8239 0x85a6 0x8a6e 0x8cce 0x8df5 0x9078 0x9077 0x92ad 0x9291 0x9583 0x9bae 0x524d 0x5584 0x6f38 0x7136 0x5168 0x7985 0x7e55 0x81b3 0x7cce 0x564c 0x5851 0x5ca8 0x63aa 0x66fe 0x66fd 0x695a 0x72d9 0x758f 0x758e 0x790e 0x7956 0x79df 0x7c97 0x7d20 0x7d44 0x8607 0x8a34 0x963b 0x9061 0x9f20 0x50e7 0x5275 0x53cc 0x53e2 0x5009 0x55aa 0x58ee 0x594f 0x723d 0x5b8b 0x5c64 0x531d 0x60e3 0x60f3 0x635c 0x6383 0x633f 0x63bb 0x64cd 0x65e9 0x66f9 0x5de3 0x69cd 0x69fd 0x6f15 0x71e5 0x4e89 0x75e9 0x76f8 0x7a93 0x7cdf 0x7dcf 0x7d9c 0x8061 0x8349 0x8358 0x846c 0x84bc 0x85fb 0x88c5 0x8d70 0x9001 0x906d 0x9397 0x971c 0x9a12 0x50cf 0x5897 0x618e ) ; 0x4221 ... 0x427e (block 33 0x81d3 0x8535 0x8d08 0x9020 0x4fc3 0x5074 0x5247 0x5373 0x606f 0x6349 0x675f 0x6e2c 0x8db3 0x901f 0x4fd7 0x5c5e 0x8cca 0x65cf 0x7d9a 0x5352 0x8896 0x5176 0x63c3 0x5b58 0x5b6b 0x5c0a 0x640d 0x6751 0x905c 0x4ed6 0x591a 0x592a 0x6c70 0x8a51 0x553e 0x5815 0x59a5 0x60f0 0x6253 0x67c1 0x8235 0x6955 0x9640 0x99c4 0x9a28 0x4f53 0x5806 0x5bfe 0x8010 0x5cb1 0x5e2f 0x5f85 0x6020 0x614b 0x6234 0x66ff 0x6cf0 0x6ede 0x80ce 0x817f 0x82d4 0x888b 0x8cb8 0x9000 0x902e 0x968a 0x9edb 0x9bdb 0x4ee3 0x53f0 0x5927 0x7b2c 0x918d 0x984c 0x9df9 0x6edd 0x7027 0x5353 0x5544 0x5b85 0x6258 0x629e 0x62d3 0x6ca2 0x6fef 0x7422 0x8a17 0x9438 0x6fc1 0x8afe 0x8338 0x51e7 0x86f8 0x53ea ) ; 0x4321 ... 0x437e (block 34 0x53e9 0x4f46 0x9054 0x8fb0 0x596a 0x8131 0x5dfd 0x7aea 0x8fbf 0x68da 0x8c37 0x72f8 0x9c48 0x6a3d 0x8ab0 0x4e39 0x5358 0x5606 0x5766 0x62c5 0x63a2 0x65e6 0x6b4e 0x6de1 0x6e5b 0x70ad 0x77ed 0x7aef 0x7baa 0x7dbb 0x803d 0x80c6 0x86cb 0x8a95 0x935b 0x56e3 0x58c7 0x5f3e 0x65ad 0x6696 0x6a80 0x6bb5 0x7537 0x8ac7 0x5024 0x77e5 0x5730 0x5f1b 0x6065 0x667a 0x6c60 0x75f4 0x7a1a 0x7f6e 0x81f4 0x8718 0x9045 0x99b3 0x7bc9 0x755c 0x7af9 0x7b51 0x84c4 0x9010 0x79e9 0x7a92 0x8336 0x5ae1 0x7740 0x4e2d 0x4ef2 0x5b99 0x5fe0 0x62bd 0x663c 0x67f1 0x6ce8 0x866b 0x8877 0x8a3b 0x914e 0x92f3 0x99d0 0x6a17 0x7026 0x732a 0x82e7 0x8457 0x8caf 0x4e01 0x5146 0x51cb 0x558b 0x5bf5 ) ; 0x4421 ... 0x447e (block 35 0x5e16 0x5e33 0x5e81 0x5f14 0x5f35 0x5f6b 0x5fb4 0x61f2 0x6311 0x66a2 0x671d 0x6f6e 0x7252 0x753a 0x773a 0x8074 0x8139 0x8178 0x8776 0x8abf 0x8adc 0x8d85 0x8df3 0x929a 0x9577 0x9802 0x9ce5 0x52c5 0x6357 0x76f4 0x6715 0x6c88 0x73cd 0x8cc3 0x93ae 0x9673 0x6d25 0x589c 0x690e 0x69cc 0x8ffd 0x939a 0x75db 0x901a 0x585a 0x6802 0x63b4 0x69fb 0x4f43 0x6f2c 0x67d8 0x8fbb 0x8526 0x7db4 0x9354 0x693f 0x6f70 0x576a 0x58f7 0x5b2c 0x7d2c 0x722a 0x540a 0x91e3 0x9db4 0x4ead 0x4f4e 0x505c 0x5075 0x5243 0x8c9e 0x5448 0x5824 0x5b9a 0x5e1d 0x5e95 0x5ead 0x5ef7 0x5f1f 0x608c 0x62b5 0x633a 0x63d0 0x68af 0x6c40 0x7887 0x798e 0x7a0b 0x7de0 0x8247 0x8a02 0x8ae6 0x8e44 0x9013 ) ; 0x4521 ... 0x457e (block 36 0x90b8 0x912d 0x91d8 0x9f0e 0x6ce5 0x6458 0x64e2 0x6575 0x6ef4 0x7684 0x7b1b 0x9069 0x93d1 0x6eba 0x54f2 0x5fb9 0x64a4 0x8f4d 0x8fed 0x9244 0x5178 0x586b 0x5929 0x5c55 0x5e97 0x6dfb 0x7e8f 0x751c 0x8cbc 0x8ee2 0x985b 0x70b9 0x4f1d 0x6bbf 0x6fb1 0x7530 0x96fb 0x514e 0x5410 0x5835 0x5857 0x59ac 0x5c60 0x5f92 0x6597 0x675c 0x6e21 0x767b 0x83df 0x8ced 0x9014 0x90fd 0x934d 0x7825 0x783a 0x52aa 0x5ea6 0x571f 0x5974 0x6012 0x5012 0x515a 0x51ac 0x51cd 0x5200 0x5510 0x5854 0x5858 0x5957 0x5b95 0x5cf6 0x5d8b 0x60bc 0x6295 0x642d 0x6771 0x6843 0x68bc 0x68df 0x76d7 0x6dd8 0x6e6f 0x6d9b 0x706f 0x71c8 0x5f53 0x75d8 0x7977 0x7b49 0x7b54 0x7b52 0x7cd6 0x7d71 0x5230 ) ; 0x4621 ... 0x467e (block 37 0x8463 0x8569 0x85e4 0x8a0e 0x8b04 0x8c46 0x8e0f 0x9003 0x900f 0x9419 0x9676 0x982d 0x9a30 0x95d8 0x50cd 0x52d5 0x540c 0x5802 0x5c0e 0x61a7 0x649e 0x6d1e 0x77b3 0x7ae5 0x80f4 0x8404 0x9053 0x9285 0x5ce0 0x9d07 0x533f 0x5f97 0x5fb3 0x6d9c 0x7279 0x7763 0x79bf 0x7be4 0x6bd2 0x72ec 0x8aad 0x6803 0x6a61 0x51f8 0x7a81 0x6934 0x5c4a 0x9cf6 0x82eb 0x5bc5 0x9149 0x701e 0x5678 0x5c6f 0x60c7 0x6566 0x6c8c 0x8c5a 0x9041 0x9813 0x5451 0x66c7 0x920d 0x5948 0x90a3 0x5185 0x4e4d 0x51ea 0x8599 0x8b0e 0x7058 0x637a 0x934b 0x6962 0x99b4 0x7e04 0x7577 0x5357 0x6960 0x8edf 0x96e3 0x6c5d 0x4e8c 0x5c3c 0x5f10 0x8fe9 0x5302 0x8cd1 0x8089 0x8679 0x5eff 0x65e5 0x4e73 0x5165 ) ; 0x4721 ... 0x477e (block 38 0x5982 0x5c3f 0x97ee 0x4efb 0x598a 0x5fcd 0x8a8d 0x6fe1 0x79b0 0x7962 0x5be7 0x8471 0x732b 0x71b1 0x5e74 0x5ff5 0x637b 0x649a 0x71c3 0x7c98 0x4e43 0x5efc 0x4e4b 0x57dc 0x56a2 0x60a9 0x6fc3 0x7d0d 0x80fd 0x8133 0x81bf 0x8fb2 0x8997 0x86a4 0x5df4 0x628a 0x64ad 0x8987 0x6777 0x6ce2 0x6d3e 0x7436 0x7834 0x5a46 0x7f75 0x82ad 0x99ac 0x4ff3 0x5ec3 0x62dd 0x6392 0x6557 0x676f 0x76c3 0x724c 0x80cc 0x80ba 0x8f29 0x914d 0x500d 0x57f9 0x5a92 0x6885 0x6973 0x7164 0x72fd 0x8cb7 0x58f2 0x8ce0 0x966a 0x9019 0x877f 0x79e4 0x77e7 0x8429 0x4f2f 0x5265 0x535a 0x62cd 0x67cf 0x6cca 0x767d 0x7b94 0x7c95 0x8236 0x8584 0x8feb 0x66dd 0x6f20 0x7206 0x7e1b 0x83ab 0x99c1 0x9ea6 ) ; 0x4821 ... 0x487e (block 39 0x51fd 0x7bb1 0x7872 0x7bb8 0x8087 0x7b48 0x6ae8 0x5e61 0x808c 0x7551 0x7560 0x516b 0x9262 0x6e8c 0x767a 0x9197 0x9aea 0x4f10 0x7f70 0x629c 0x7b4f 0x95a5 0x9ce9 0x567a 0x5859 0x86e4 0x96bc 0x4f34 0x5224 0x534a 0x53cd 0x53db 0x5e06 0x642c 0x6591 0x677f 0x6c3e 0x6c4e 0x7248 0x72af 0x73ed 0x7554 0x7e41 0x822c 0x85e9 0x8ca9 0x7bc4 0x91c6 0x7169 0x9812 0x98ef 0x633d 0x6669 0x756a 0x76e4 0x78d0 0x8543 0x86ee 0x532a 0x5351 0x5426 0x5983 0x5e87 0x5f7c 0x60b2 0x6249 0x6279 0x62ab 0x6590 0x6bd4 0x6ccc 0x75b2 0x76ae 0x7891 0x79d8 0x7dcb 0x7f77 0x80a5 0x88ab 0x8ab9 0x8cbb 0x907f 0x975e 0x98db 0x6a0b 0x7c38 0x5099 0x5c3e 0x5fae 0x6787 0x6bd8 0x7435 0x7709 0x7f8e ) ; 0x4921 ... 0x497e (block 40 0x9f3b 0x67ca 0x7a17 0x5339 0x758b 0x9aed 0x5f66 0x819d 0x83f1 0x8098 0x5f3c 0x5fc5 0x7562 0x7b46 0x903c 0x6867 0x59eb 0x5a9b 0x7d10 0x767e 0x8b2c 0x4ff5 0x5f6a 0x6a19 0x6c37 0x6f02 0x74e2 0x7968 0x8868 0x8a55 0x8c79 0x5edf 0x63cf 0x75c5 0x79d2 0x82d7 0x9328 0x92f2 0x849c 0x86ed 0x9c2d 0x54c1 0x5f6c 0x658c 0x6d5c 0x7015 0x8ca7 0x8cd3 0x983b 0x654f 0x74f6 0x4e0d 0x4ed8 0x57e0 0x592b 0x5a66 0x5bcc 0x51a8 0x5e03 0x5e9c 0x6016 0x6276 0x6577 0x65a7 0x666e 0x6d6e 0x7236 0x7b26 0x8150 0x819a 0x8299 0x8b5c 0x8ca0 0x8ce6 0x8d74 0x961c 0x9644 0x4fae 0x64ab 0x6b66 0x821e 0x8461 0x856a 0x90e8 0x5c01 0x6953 0x98a8 0x847a 0x8557 0x4f0f 0x526f 0x5fa9 0x5e45 0x670d ) ; 0x4a21 ... 0x4a7e (block 41 0x798f 0x8179 0x8907 0x8986 0x6df5 0x5f17 0x6255 0x6cb8 0x4ecf 0x7269 0x9b92 0x5206 0x543b 0x5674 0x58b3 0x61a4 0x626e 0x711a 0x596e 0x7c89 0x7cde 0x7d1b 0x96f0 0x6587 0x805e 0x4e19 0x4f75 0x5175 0x5840 0x5e63 0x5e73 0x5f0a 0x67c4 0x4e26 0x853d 0x9589 0x965b 0x7c73 0x9801 0x50fb 0x58c1 0x7656 0x78a7 0x5225 0x77a5 0x8511 0x7b86 0x504f 0x5909 0x7247 0x7bc7 0x7de8 0x8fba 0x8fd4 0x904d 0x4fbf 0x52c9 0x5a29 0x5f01 0x97ad 0x4fdd 0x8217 0x92ea 0x5703 0x6355 0x6b69 0x752b 0x88dc 0x8f14 0x7a42 0x52df 0x5893 0x6155 0x620a 0x66ae 0x6bcd 0x7c3f 0x83e9 0x5023 0x4ff8 0x5305 0x5446 0x5831 0x5949 0x5b9d 0x5cf0 0x5cef 0x5d29 0x5e96 0x62b1 0x6367 0x653e 0x65b9 0x670b ) ; 0x4b21 ... 0x4b7e (block 42 0x6cd5 0x6ce1 0x70f9 0x7832 0x7e2b 0x80de 0x82b3 0x840c 0x84ec 0x8702 0x8912 0x8a2a 0x8c4a 0x90a6 0x92d2 0x98fd 0x9cf3 0x9d6c 0x4e4f 0x4ea1 0x508d 0x5256 0x574a 0x59a8 0x5e3d 0x5fd8 0x5fd9 0x623f 0x66b4 0x671b 0x67d0 0x68d2 0x5192 0x7d21 0x80aa 0x81a8 0x8b00 0x8c8c 0x8cbf 0x927e 0x9632 0x5420 0x982c 0x5317 0x50d5 0x535c 0x58a8 0x64b2 0x6734 0x7267 0x7766 0x7a46 0x91e6 0x52c3 0x6ca1 0x6b86 0x5800 0x5e4c 0x5954 0x672c 0x7ffb 0x51e1 0x76c6 0x6469 0x78e8 0x9b54 0x9ebb 0x57cb 0x59b9 0x6627 0x679a 0x6bce 0x54e9 0x69d9 0x5e55 0x819c 0x6795 0x9baa 0x67fe 0x9c52 0x685d 0x4ea6 0x4fe3 0x53c8 0x62b9 0x672b 0x6cab 0x8fc4 0x4fad 0x7e6d 0x9ebf 0x4e07 0x6162 0x6e80 ) ; 0x4c21 ... 0x4c7e (block 43 0x6f2b 0x8513 0x5473 0x672a 0x9b45 0x5df3 0x7b95 0x5cac 0x5bc6 0x871c 0x6e4a 0x84d1 0x7a14 0x8108 0x5999 0x7c8d 0x6c11 0x7720 0x52d9 0x5922 0x7121 0x725f 0x77db 0x9727 0x9d61 0x690b 0x5a7f 0x5a18 0x51a5 0x540d 0x547d 0x660e 0x76df 0x8ff7 0x9298 0x9cf4 0x59ea 0x725d 0x6ec5 0x514d 0x68c9 0x7dbf 0x7dec 0x9762 0x9eba 0x6478 0x6a21 0x8302 0x5984 0x5b5f 0x6bdb 0x731b 0x76f2 0x7db2 0x8017 0x8499 0x5132 0x6728 0x9ed9 0x76ee 0x6762 0x52ff 0x9905 0x5c24 0x623b 0x7c7e 0x8cb0 0x554f 0x60b6 0x7d0b 0x9580 0x5301 0x4e5f 0x51b6 0x591c 0x723a 0x8036 0x91ce 0x5f25 0x77e2 0x5384 0x5f79 0x7d04 0x85ac 0x8a33 0x8e8d 0x9756 0x67f3 0x85ae 0x9453 0x6109 0x6108 0x6cb9 0x7652 ) ; 0x4d21 ... 0x4d7e (block 44 0x8aed 0x8f38 0x552f 0x4f51 0x512a 0x52c7 0x53cb 0x5ba5 0x5e7d 0x60a0 0x6182 0x63d6 0x6709 0x67da 0x6e67 0x6d8c 0x7336 0x7337 0x7531 0x7950 0x88d5 0x8a98 0x904a 0x9091 0x90f5 0x96c4 0x878d 0x5915 0x4e88 0x4f59 0x4e0e 0x8a89 0x8f3f 0x9810 0x50ad 0x5e7c 0x5996 0x5bb9 0x5eb8 0x63da 0x63fa 0x64c1 0x66dc 0x694a 0x69d8 0x6d0b 0x6eb6 0x7194 0x7528 0x7aaf 0x7f8a 0x8000 0x8449 0x84c9 0x8981 0x8b21 0x8e0a 0x9065 0x967d 0x990a 0x617e 0x6291 0x6b32 0x6c83 0x6d74 0x7fcc 0x7ffc 0x6dc0 0x7f85 0x87ba 0x88f8 0x6765 0x83b1 0x983c 0x96f7 0x6d1b 0x7d61 0x843d 0x916a 0x4e71 0x5375 0x5d50 0x6b04 0x6feb 0x85cd 0x862d 0x89a7 0x5229 0x540f 0x5c65 0x674e 0x68a8 0x7406 0x7483 ) ; 0x4e21 ... 0x4e7e (block 45 0x75e2 0x88cf 0x88e1 0x91cc 0x96e2 0x9678 0x5f8b 0x7387 0x7acb 0x844e 0x63a0 0x7565 0x5289 0x6d41 0x6e9c 0x7409 0x7559 0x786b 0x7c92 0x9686 0x7adc 0x9f8d 0x4fb6 0x616e 0x65c5 0x865c 0x4e86 0x4eae 0x50da 0x4e21 0x51cc 0x5bee 0x6599 0x6881 0x6dbc 0x731f 0x7642 0x77ad 0x7a1c 0x7ce7 0x826f 0x8ad2 0x907c 0x91cf 0x9675 0x9818 0x529b 0x7dd1 0x502b 0x5398 0x6797 0x6dcb 0x71d0 0x7433 0x81e8 0x8f2a 0x96a3 0x9c57 0x9e9f 0x7460 0x5841 0x6d99 0x7d2f 0x985e 0x4ee4 0x4f36 0x4f8b 0x51b7 0x52b1 0x5dba 0x601c 0x73b2 0x793c 0x82d3 0x9234 0x96b7 0x96f6 0x970a 0x9e97 0x9f62 0x66a6 0x6b74 0x5217 0x52a3 0x70c8 0x88c2 0x5ec9 0x604b 0x6190 0x6f23 0x7149 0x7c3e 0x7df4 0x806f ) ; 0x4f21 ... 0x4f7e (block 46 0x84ee 0x9023 0x932c 0x5442 0x9b6f 0x6ad3 0x7089 0x8cc2 0x8def 0x9732 0x52b4 0x5a41 0x5eca 0x5f04 0x6717 0x697c 0x6994 0x6d6a 0x6f0f 0x7262 0x72fc 0x7bed 0x8001 0x807e 0x874b 0x90ce 0x516d 0x9e93 0x7984 0x808b 0x9332 0x8ad6 0x502d 0x548c 0x8a71 0x6b6a 0x8cc4 0x8107 0x60d1 0x67a0 0x9df2 0x4e99 0x4e98 0x9c10 0x8a6b 0x85c1 0x8568 0x6900 0x6e7e 0x7897 0x8155 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x5021 ... 0x507e (block 47 0x5f0c 0x4e10 0x4e15 0x4e2a 0x4e31 0x4e36 0x4e3c 0x4e3f 0x4e42 0x4e56 0x4e58 0x4e82 0x4e85 0x8c6b 0x4e8a 0x8212 0x5f0d 0x4e8e 0x4e9e 0x4e9f 0x4ea0 0x4ea2 0x4eb0 0x4eb3 0x4eb6 0x4ece 0x4ecd 0x4ec4 0x4ec6 0x4ec2 0x4ed7 0x4ede 0x4eed 0x4edf 0x4ef7 0x4f09 0x4f5a 0x4f30 0x4f5b 0x4f5d 0x4f57 0x4f47 0x4f76 0x4f88 0x4f8f 0x4f98 0x4f7b 0x4f69 0x4f70 0x4f91 0x4f6f 0x4f86 0x4f96 0x5118 0x4fd4 0x4fdf 0x4fce 0x4fd8 0x4fdb 0x4fd1 0x4fda 0x4fd0 0x4fe4 0x4fe5 0x501a 0x5028 0x5014 0x502a 0x5025 0x5005 0x4f1c 0x4ff6 0x5021 0x5029 0x502c 0x4ffe 0x4fef 0x5011 0x5006 0x5043 0x5047 0x6703 0x5055 0x5050 0x5048 0x505a 0x5056 0x506c 0x5078 0x5080 0x509a 0x5085 0x50b4 0x50b2 ) ; 0x5121 ... 0x517e (block 48 0x50c9 0x50ca 0x50b3 0x50c2 0x50d6 0x50de 0x50e5 0x50ed 0x50e3 0x50ee 0x50f9 0x50f5 0x5109 0x5101 0x5102 0x5116 0x5115 0x5114 0x511a 0x5121 0x513a 0x5137 0x513c 0x513b 0x513f 0x5140 0x5152 0x514c 0x5154 0x5162 0x7af8 0x5169 0x516a 0x516e 0x5180 0x5182 0x56d8 0x518c 0x5189 0x518f 0x5191 0x5193 0x5195 0x5196 0x51a4 0x51a6 0x51a2 0x51a9 0x51aa 0x51ab 0x51b3 0x51b1 0x51b2 0x51b0 0x51b5 0x51bd 0x51c5 0x51c9 0x51db 0x51e0 0x8655 0x51e9 0x51ed 0x51f0 0x51f5 0x51fe 0x5204 0x520b 0x5214 0x520e 0x5227 0x522a 0x522e 0x5233 0x5239 0x524f 0x5244 0x524b 0x524c 0x525e 0x5254 0x526a 0x5274 0x5269 0x5273 0x527f 0x527d 0x528d 0x5294 0x5292 0x5271 0x5288 0x5291 0x8fa8 ) ; 0x5221 ... 0x527e (block 49 0x8fa7 0x52ac 0x52ad 0x52bc 0x52b5 0x52c1 0x52cd 0x52d7 0x52de 0x52e3 0x52e6 0x98ed 0x52e0 0x52f3 0x52f5 0x52f8 0x52f9 0x5306 0x5308 0x7538 0x530d 0x5310 0x530f 0x5315 0x531a 0x5323 0x532f 0x5331 0x5333 0x5338 0x5340 0x5346 0x5345 0x4e17 0x5349 0x534d 0x51d6 0x535e 0x5369 0x536e 0x5918 0x537b 0x5377 0x5382 0x5396 0x53a0 0x53a6 0x53a5 0x53ae 0x53b0 0x53b6 0x53c3 0x7c12 0x96d9 0x53df 0x66fc 0x71ee 0x53ee 0x53e8 0x53ed 0x53fa 0x5401 0x543d 0x5440 0x542c 0x542d 0x543c 0x542e 0x5436 0x5429 0x541d 0x544e 0x548f 0x5475 0x548e 0x545f 0x5471 0x5477 0x5470 0x5492 0x547b 0x5480 0x5476 0x5484 0x5490 0x5486 0x54c7 0x54a2 0x54b8 0x54a5 0x54ac 0x54c4 0x54c8 0x54a8 ) ; 0x5321 ... 0x537e (block 50 0x54ab 0x54c2 0x54a4 0x54be 0x54bc 0x54d8 0x54e5 0x54e6 0x550f 0x5514 0x54fd 0x54ee 0x54ed 0x54fa 0x54e2 0x5539 0x5540 0x5563 0x554c 0x552e 0x555c 0x5545 0x5556 0x5557 0x5538 0x5533 0x555d 0x5599 0x5580 0x54af 0x558a 0x559f 0x557b 0x557e 0x5598 0x559e 0x55ae 0x557c 0x5583 0x55a9 0x5587 0x55a8 0x55da 0x55c5 0x55df 0x55c4 0x55dc 0x55e4 0x55d4 0x5614 0x55f7 0x5616 0x55fe 0x55fd 0x561b 0x55f9 0x564e 0x5650 0x71df 0x5634 0x5636 0x5632 0x5638 0x566b 0x5664 0x562f 0x566c 0x566a 0x5686 0x5680 0x568a 0x56a0 0x5694 0x568f 0x56a5 0x56ae 0x56b6 0x56b4 0x56c2 0x56bc 0x56c1 0x56c3 0x56c0 0x56c8 0x56ce 0x56d1 0x56d3 0x56d7 0x56ee 0x56f9 0x5700 0x56ff 0x5704 0x5709 ) ; 0x5421 ... 0x547e (block 51 0x5708 0x570b 0x570d 0x5713 0x5718 0x5716 0x55c7 0x571c 0x5726 0x5737 0x5738 0x574e 0x573b 0x5740 0x574f 0x5769 0x57c0 0x5788 0x5761 0x577f 0x5789 0x5793 0x57a0 0x57b3 0x57a4 0x57aa 0x57b0 0x57c3 0x57c6 0x57d4 0x57d2 0x57d3 0x580a 0x57d6 0x57e3 0x580b 0x5819 0x581d 0x5872 0x5821 0x5862 0x584b 0x5870 0x6bc0 0x5852 0x583d 0x5879 0x5885 0x58b9 0x589f 0x58ab 0x58ba 0x58de 0x58bb 0x58b8 0x58ae 0x58c5 0x58d3 0x58d1 0x58d7 0x58d9 0x58d8 0x58e5 0x58dc 0x58e4 0x58df 0x58ef 0x58fa 0x58f9 0x58fb 0x58fc 0x58fd 0x5902 0x590a 0x5910 0x591b 0x68a6 0x5925 0x592c 0x592d 0x5932 0x5938 0x593e 0x7ad2 0x5955 0x5950 0x594e 0x595a 0x5958 0x5962 0x5960 0x5967 0x596c 0x5969 ) ; 0x5521 ... 0x557e (block 52 0x5978 0x5981 0x599d 0x4f5e 0x4fab 0x59a3 0x59b2 0x59c6 0x59e8 0x59dc 0x598d 0x59d9 0x59da 0x5a25 0x5a1f 0x5a11 0x5a1c 0x5a09 0x5a1a 0x5a40 0x5a6c 0x5a49 0x5a35 0x5a36 0x5a62 0x5a6a 0x5a9a 0x5abc 0x5abe 0x5acb 0x5ac2 0x5abd 0x5ae3 0x5ad7 0x5ae6 0x5ae9 0x5ad6 0x5afa 0x5afb 0x5b0c 0x5b0b 0x5b16 0x5b32 0x5ad0 0x5b2a 0x5b36 0x5b3e 0x5b43 0x5b45 0x5b40 0x5b51 0x5b55 0x5b5a 0x5b5b 0x5b65 0x5b69 0x5b70 0x5b73 0x5b75 0x5b78 0x6588 0x5b7a 0x5b80 0x5b83 0x5ba6 0x5bb8 0x5bc3 0x5bc7 0x5bc9 0x5bd4 0x5bd0 0x5be4 0x5be6 0x5be2 0x5bde 0x5be5 0x5beb 0x5bf0 0x5bf6 0x5bf3 0x5c05 0x5c07 0x5c08 0x5c0d 0x5c13 0x5c20 0x5c22 0x5c28 0x5c38 0x5c39 0x5c41 0x5c46 0x5c4e 0x5c53 ) ; 0x5621 ... 0x567e (block 53 0x5c50 0x5c4f 0x5b71 0x5c6c 0x5c6e 0x4e62 0x5c76 0x5c79 0x5c8c 0x5c91 0x5c94 0x599b 0x5cab 0x5cbb 0x5cb6 0x5cbc 0x5cb7 0x5cc5 0x5cbe 0x5cc7 0x5cd9 0x5ce9 0x5cfd 0x5cfa 0x5ced 0x5d8c 0x5cea 0x5d0b 0x5d15 0x5d17 0x5d5c 0x5d1f 0x5d1b 0x5d11 0x5d14 0x5d22 0x5d1a 0x5d19 0x5d18 0x5d4c 0x5d52 0x5d4e 0x5d4b 0x5d6c 0x5d73 0x5d76 0x5d87 0x5d84 0x5d82 0x5da2 0x5d9d 0x5dac 0x5dae 0x5dbd 0x5d90 0x5db7 0x5dbc 0x5dc9 0x5dcd 0x5dd3 0x5dd2 0x5dd6 0x5ddb 0x5deb 0x5df2 0x5df5 0x5e0b 0x5e1a 0x5e19 0x5e11 0x5e1b 0x5e36 0x5e37 0x5e44 0x5e43 0x5e40 0x5e4e 0x5e57 0x5e54 0x5e5f 0x5e62 0x5e64 0x5e47 0x5e75 0x5e76 0x5e7a 0x9ebc 0x5e7f 0x5ea0 0x5ec1 0x5ec2 0x5ec8 0x5ed0 0x5ecf ) ; 0x5721 ... 0x577e (block 54 0x5ed6 0x5ee3 0x5edd 0x5eda 0x5edb 0x5ee2 0x5ee1 0x5ee8 0x5ee9 0x5eec 0x5ef1 0x5ef3 0x5ef0 0x5ef4 0x5ef8 0x5efe 0x5f03 0x5f09 0x5f5d 0x5f5c 0x5f0b 0x5f11 0x5f16 0x5f29 0x5f2d 0x5f38 0x5f41 0x5f48 0x5f4c 0x5f4e 0x5f2f 0x5f51 0x5f56 0x5f57 0x5f59 0x5f61 0x5f6d 0x5f73 0x5f77 0x5f83 0x5f82 0x5f7f 0x5f8a 0x5f88 0x5f91 0x5f87 0x5f9e 0x5f99 0x5f98 0x5fa0 0x5fa8 0x5fad 0x5fbc 0x5fd6 0x5ffb 0x5fe4 0x5ff8 0x5ff1 0x5fdd 0x60b3 0x5fff 0x6021 0x6060 0x6019 0x6010 0x6029 0x600e 0x6031 0x601b 0x6015 0x602b 0x6026 0x600f 0x603a 0x605a 0x6041 0x606a 0x6077 0x605f 0x604a 0x6046 0x604d 0x6063 0x6043 0x6064 0x6042 0x606c 0x606b 0x6059 0x6081 0x608d 0x60e7 0x6083 0x609a ) ; 0x5821 ... 0x587e (block 55 0x6084 0x609b 0x6096 0x6097 0x6092 0x60a7 0x608b 0x60e1 0x60b8 0x60e0 0x60d3 0x60b4 0x5ff0 0x60bd 0x60c6 0x60b5 0x60d8 0x614d 0x6115 0x6106 0x60f6 0x60f7 0x6100 0x60f4 0x60fa 0x6103 0x6121 0x60fb 0x60f1 0x610d 0x610e 0x6147 0x613e 0x6128 0x6127 0x614a 0x613f 0x613c 0x612c 0x6134 0x613d 0x6142 0x6144 0x6173 0x6177 0x6158 0x6159 0x615a 0x616b 0x6174 0x616f 0x6165 0x6171 0x615f 0x615d 0x6153 0x6175 0x6199 0x6196 0x6187 0x61ac 0x6194 0x619a 0x618a 0x6191 0x61ab 0x61ae 0x61cc 0x61ca 0x61c9 0x61f7 0x61c8 0x61c3 0x61c6 0x61ba 0x61cb 0x7f79 0x61cd 0x61e6 0x61e3 0x61f6 0x61fa 0x61f4 0x61ff 0x61fd 0x61fc 0x61fe 0x6200 0x6208 0x6209 0x620d 0x620c 0x6214 0x621b ) ; 0x5921 ... 0x597e (block 56 0x621e 0x6221 0x622a 0x622e 0x6230 0x6232 0x6233 0x6241 0x624e 0x625e 0x6263 0x625b 0x6260 0x6268 0x627c 0x6282 0x6289 0x627e 0x6292 0x6293 0x6296 0x62d4 0x6283 0x6294 0x62d7 0x62d1 0x62bb 0x62cf 0x62ff 0x62c6 0x64d4 0x62c8 0x62dc 0x62cc 0x62ca 0x62c2 0x62c7 0x629b 0x62c9 0x630c 0x62ee 0x62f1 0x6327 0x6302 0x6308 0x62ef 0x62f5 0x6350 0x633e 0x634d 0x641c 0x634f 0x6396 0x638e 0x6380 0x63ab 0x6376 0x63a3 0x638f 0x6389 0x639f 0x63b5 0x636b 0x6369 0x63be 0x63e9 0x63c0 0x63c6 0x63e3 0x63c9 0x63d2 0x63f6 0x63c4 0x6416 0x6434 0x6406 0x6413 0x6426 0x6436 0x651d 0x6417 0x6428 0x640f 0x6467 0x646f 0x6476 0x644e 0x652a 0x6495 0x6493 0x64a5 0x64a9 0x6488 0x64bc ) ; 0x5a21 ... 0x5a7e (block 57 0x64da 0x64d2 0x64c5 0x64c7 0x64bb 0x64d8 0x64c2 0x64f1 0x64e7 0x8209 0x64e0 0x64e1 0x62ac 0x64e3 0x64ef 0x652c 0x64f6 0x64f4 0x64f2 0x64fa 0x6500 0x64fd 0x6518 0x651c 0x6505 0x6524 0x6523 0x652b 0x6534 0x6535 0x6537 0x6536 0x6538 0x754b 0x6548 0x6556 0x6555 0x654d 0x6558 0x655e 0x655d 0x6572 0x6578 0x6582 0x6583 0x8b8a 0x659b 0x659f 0x65ab 0x65b7 0x65c3 0x65c6 0x65c1 0x65c4 0x65cc 0x65d2 0x65db 0x65d9 0x65e0 0x65e1 0x65f1 0x6772 0x660a 0x6603 0x65fb 0x6773 0x6635 0x6636 0x6634 0x661c 0x664f 0x6644 0x6649 0x6641 0x665e 0x665d 0x6664 0x6667 0x6668 0x665f 0x6662 0x6670 0x6683 0x6688 0x668e 0x6689 0x6684 0x6698 0x669d 0x66c1 0x66b9 0x66c9 0x66be 0x66bc ) ; 0x5b21 ... 0x5b7e (block 58 0x66c4 0x66b8 0x66d6 0x66da 0x66e0 0x663f 0x66e6 0x66e9 0x66f0 0x66f5 0x66f7 0x670f 0x6716 0x671e 0x6726 0x6727 0x9738 0x672e 0x673f 0x6736 0x6741 0x6738 0x6737 0x6746 0x675e 0x6760 0x6759 0x6763 0x6764 0x6789 0x6770 0x67a9 0x677c 0x676a 0x678c 0x678b 0x67a6 0x67a1 0x6785 0x67b7 0x67ef 0x67b4 0x67ec 0x67b3 0x67e9 0x67b8 0x67e4 0x67de 0x67dd 0x67e2 0x67ee 0x67b9 0x67ce 0x67c6 0x67e7 0x6a9c 0x681e 0x6846 0x6829 0x6840 0x684d 0x6832 0x684e 0x68b3 0x682b 0x6859 0x6863 0x6877 0x687f 0x689f 0x688f 0x68ad 0x6894 0x689d 0x689b 0x6883 0x6aae 0x68b9 0x6874 0x68b5 0x68a0 0x68ba 0x690f 0x688d 0x687e 0x6901 0x68ca 0x6908 0x68d8 0x6922 0x6926 0x68e1 0x690c 0x68cd ) ; 0x5c21 ... 0x5c7e (block 59 0x68d4 0x68e7 0x68d5 0x6936 0x6912 0x6904 0x68d7 0x68e3 0x6925 0x68f9 0x68e0 0x68ef 0x6928 0x692a 0x691a 0x6923 0x6921 0x68c6 0x6979 0x6977 0x695c 0x6978 0x696b 0x6954 0x697e 0x696e 0x6939 0x6974 0x693d 0x6959 0x6930 0x6961 0x695e 0x695d 0x6981 0x696a 0x69b2 0x69ae 0x69d0 0x69bf 0x69c1 0x69d3 0x69be 0x69ce 0x5be8 0x69ca 0x69dd 0x69bb 0x69c3 0x69a7 0x6a2e 0x6991 0x69a0 0x699c 0x6995 0x69b4 0x69de 0x69e8 0x6a02 0x6a1b 0x69ff 0x6b0a 0x69f9 0x69f2 0x69e7 0x6a05 0x69b1 0x6a1e 0x69ed 0x6a14 0x69eb 0x6a0a 0x6a12 0x6ac1 0x6a23 0x6a13 0x6a44 0x6a0c 0x6a72 0x6a36 0x6a78 0x6a47 0x6a62 0x6a59 0x6a66 0x6a48 0x6a38 0x6a22 0x6a90 0x6a8d 0x6aa0 0x6a84 0x6aa2 0x6aa3 ) ; 0x5d21 ... 0x5d7e (block 60 0x6a97 0x8617 0x6abb 0x6ac3 0x6ac2 0x6ab8 0x6ab3 0x6aac 0x6ade 0x6ad1 0x6adf 0x6aaa 0x6ada 0x6aea 0x6afb 0x6b05 0x8616 0x6afa 0x6b12 0x6b16 0x9b31 0x6b1f 0x6b38 0x6b37 0x76dc 0x6b39 0x98ee 0x6b47 0x6b43 0x6b49 0x6b50 0x6b59 0x6b54 0x6b5b 0x6b5f 0x6b61 0x6b78 0x6b79 0x6b7f 0x6b80 0x6b84 0x6b83 0x6b8d 0x6b98 0x6b95 0x6b9e 0x6ba4 0x6baa 0x6bab 0x6baf 0x6bb2 0x6bb1 0x6bb3 0x6bb7 0x6bbc 0x6bc6 0x6bcb 0x6bd3 0x6bdf 0x6bec 0x6beb 0x6bf3 0x6bef 0x9ebe 0x6c08 0x6c13 0x6c14 0x6c1b 0x6c24 0x6c23 0x6c5e 0x6c55 0x6c62 0x6c6a 0x6c82 0x6c8d 0x6c9a 0x6c81 0x6c9b 0x6c7e 0x6c68 0x6c73 0x6c92 0x6c90 0x6cc4 0x6cf1 0x6cd3 0x6cbd 0x6cd7 0x6cc5 0x6cdd 0x6cae 0x6cb1 0x6cbe ) ; 0x5e21 ... 0x5e7e (block 61 0x6cba 0x6cdb 0x6cef 0x6cd9 0x6cea 0x6d1f 0x884d 0x6d36 0x6d2b 0x6d3d 0x6d38 0x6d19 0x6d35 0x6d33 0x6d12 0x6d0c 0x6d63 0x6d93 0x6d64 0x6d5a 0x6d79 0x6d59 0x6d8e 0x6d95 0x6fe4 0x6d85 0x6df9 0x6e15 0x6e0a 0x6db5 0x6dc7 0x6de6 0x6db8 0x6dc6 0x6dec 0x6dde 0x6dcc 0x6de8 0x6dd2 0x6dc5 0x6dfa 0x6dd9 0x6de4 0x6dd5 0x6dea 0x6dee 0x6e2d 0x6e6e 0x6e2e 0x6e19 0x6e72 0x6e5f 0x6e3e 0x6e23 0x6e6b 0x6e2b 0x6e76 0x6e4d 0x6e1f 0x6e43 0x6e3a 0x6e4e 0x6e24 0x6eff 0x6e1d 0x6e38 0x6e82 0x6eaa 0x6e98 0x6ec9 0x6eb7 0x6ed3 0x6ebd 0x6eaf 0x6ec4 0x6eb2 0x6ed4 0x6ed5 0x6e8f 0x6ea5 0x6ec2 0x6e9f 0x6f41 0x6f11 0x704c 0x6eec 0x6ef8 0x6efe 0x6f3f 0x6ef2 0x6f31 0x6eef 0x6f32 0x6ecc ) ; 0x5f21 ... 0x5f7e (block 62 0x6f3e 0x6f13 0x6ef7 0x6f86 0x6f7a 0x6f78 0x6f81 0x6f80 0x6f6f 0x6f5b 0x6ff3 0x6f6d 0x6f82 0x6f7c 0x6f58 0x6f8e 0x6f91 0x6fc2 0x6f66 0x6fb3 0x6fa3 0x6fa1 0x6fa4 0x6fb9 0x6fc6 0x6faa 0x6fdf 0x6fd5 0x6fec 0x6fd4 0x6fd8 0x6ff1 0x6fee 0x6fdb 0x7009 0x700b 0x6ffa 0x7011 0x7001 0x700f 0x6ffe 0x701b 0x701a 0x6f74 0x701d 0x7018 0x701f 0x7030 0x703e 0x7032 0x7051 0x7063 0x7099 0x7092 0x70af 0x70f1 0x70ac 0x70b8 0x70b3 0x70ae 0x70df 0x70cb 0x70dd 0x70d9 0x7109 0x70fd 0x711c 0x7119 0x7165 0x7155 0x7188 0x7166 0x7162 0x714c 0x7156 0x716c 0x718f 0x71fb 0x7184 0x7195 0x71a8 0x71ac 0x71d7 0x71b9 0x71be 0x71d2 0x71c9 0x71d4 0x71ce 0x71e0 0x71ec 0x71e7 0x71f5 0x71fc ) ; 0x6021 ... 0x607e (block 63 0x71f9 0x71ff 0x720d 0x7210 0x721b 0x7228 0x722d 0x722c 0x7230 0x7232 0x723b 0x723c 0x723f 0x7240 0x7246 0x724b 0x7258 0x7274 0x727e 0x7282 0x7281 0x7287 0x7292 0x7296 0x72a2 0x72a7 0x72b9 0x72b2 0x72c3 0x72c6 0x72c4 0x72ce 0x72d2 0x72e2 0x72e0 0x72e1 0x72f9 0x72f7 0x500f 0x7317 0x730a 0x731c 0x7316 0x731d 0x7334 0x732f 0x7329 0x7325 0x733e 0x734e 0x734f 0x9ed8 0x7357 0x736a 0x7368 0x7370 0x7378 0x7375 0x737b 0x737a 0x73c8 0x73b3 0x73ce 0x73bb 0x73c0 0x73e5 0x73ee 0x73de 0x74a2 0x7405 0x746f 0x7425 0x73f8 0x7432 0x743a 0x7455 0x743f 0x745f 0x7459 0x7441 0x745c 0x7469 0x7470 0x7463 0x746a 0x7476 0x747e 0x748b 0x749e 0x74a7 0x74ca 0x74cf 0x74d4 0x73f1 ) ; 0x6121 ... 0x617e (block 64 0x74e0 0x74e3 0x74e7 0x74e9 0x74ee 0x74f2 0x74f0 0x74f1 0x74f8 0x74f7 0x7504 0x7503 0x7505 0x750c 0x750e 0x750d 0x7515 0x7513 0x751e 0x7526 0x752c 0x753c 0x7544 0x754d 0x754a 0x7549 0x755b 0x7546 0x755a 0x7569 0x7564 0x7567 0x756b 0x756d 0x7578 0x7576 0x7586 0x7587 0x7574 0x758a 0x7589 0x7582 0x7594 0x759a 0x759d 0x75a5 0x75a3 0x75c2 0x75b3 0x75c3 0x75b5 0x75bd 0x75b8 0x75bc 0x75b1 0x75cd 0x75ca 0x75d2 0x75d9 0x75e3 0x75de 0x75fe 0x75ff 0x75fc 0x7601 0x75f0 0x75fa 0x75f2 0x75f3 0x760b 0x760d 0x7609 0x761f 0x7627 0x7620 0x7621 0x7622 0x7624 0x7634 0x7630 0x763b 0x7647 0x7648 0x7646 0x765c 0x7658 0x7661 0x7662 0x7668 0x7669 0x766a 0x7667 0x766c 0x7670 ) ; 0x6221 ... 0x627e (block 65 0x7672 0x7676 0x7678 0x767c 0x7680 0x7683 0x7688 0x768b 0x768e 0x7696 0x7693 0x7699 0x769a 0x76b0 0x76b4 0x76b8 0x76b9 0x76ba 0x76c2 0x76cd 0x76d6 0x76d2 0x76de 0x76e1 0x76e5 0x76e7 0x76ea 0x862f 0x76fb 0x7708 0x7707 0x7704 0x7729 0x7724 0x771e 0x7725 0x7726 0x771b 0x7737 0x7738 0x7747 0x775a 0x7768 0x776b 0x775b 0x7765 0x777f 0x777e 0x7779 0x778e 0x778b 0x7791 0x77a0 0x779e 0x77b0 0x77b6 0x77b9 0x77bf 0x77bc 0x77bd 0x77bb 0x77c7 0x77cd 0x77d7 0x77da 0x77dc 0x77e3 0x77ee 0x77fc 0x780c 0x7812 0x7926 0x7820 0x792a 0x7845 0x788e 0x7874 0x7886 0x787c 0x789a 0x788c 0x78a3 0x78b5 0x78aa 0x78af 0x78d1 0x78c6 0x78cb 0x78d4 0x78be 0x78bc 0x78c5 0x78ca 0x78ec ) ; 0x6321 ... 0x637e (block 66 0x78e7 0x78da 0x78fd 0x78f4 0x7907 0x7912 0x7911 0x7919 0x792c 0x792b 0x7940 0x7960 0x7957 0x795f 0x795a 0x7955 0x7953 0x797a 0x797f 0x798a 0x799d 0x79a7 0x9f4b 0x79aa 0x79ae 0x79b3 0x79b9 0x79ba 0x79c9 0x79d5 0x79e7 0x79ec 0x79e1 0x79e3 0x7a08 0x7a0d 0x7a18 0x7a19 0x7a20 0x7a1f 0x7980 0x7a31 0x7a3b 0x7a3e 0x7a37 0x7a43 0x7a57 0x7a49 0x7a61 0x7a62 0x7a69 0x9f9d 0x7a70 0x7a79 0x7a7d 0x7a88 0x7a97 0x7a95 0x7a98 0x7a96 0x7aa9 0x7ac8 0x7ab0 0x7ab6 0x7ac5 0x7ac4 0x7abf 0x9083 0x7ac7 0x7aca 0x7acd 0x7acf 0x7ad5 0x7ad3 0x7ad9 0x7ada 0x7add 0x7ae1 0x7ae2 0x7ae6 0x7aed 0x7af0 0x7b02 0x7b0f 0x7b0a 0x7b06 0x7b33 0x7b18 0x7b19 0x7b1e 0x7b35 0x7b28 0x7b36 0x7b50 ) ; 0x6421 ... 0x647e (block 67 0x7b7a 0x7b04 0x7b4d 0x7b0b 0x7b4c 0x7b45 0x7b75 0x7b65 0x7b74 0x7b67 0x7b70 0x7b71 0x7b6c 0x7b6e 0x7b9d 0x7b98 0x7b9f 0x7b8d 0x7b9c 0x7b9a 0x7b8b 0x7b92 0x7b8f 0x7b5d 0x7b99 0x7bcb 0x7bc1 0x7bcc 0x7bcf 0x7bb4 0x7bc6 0x7bdd 0x7be9 0x7c11 0x7c14 0x7be6 0x7be5 0x7c60 0x7c00 0x7c07 0x7c13 0x7bf3 0x7bf7 0x7c17 0x7c0d 0x7bf6 0x7c23 0x7c27 0x7c2a 0x7c1f 0x7c37 0x7c2b 0x7c3d 0x7c4c 0x7c43 0x7c54 0x7c4f 0x7c40 0x7c50 0x7c58 0x7c5f 0x7c64 0x7c56 0x7c65 0x7c6c 0x7c75 0x7c83 0x7c90 0x7ca4 0x7cad 0x7ca2 0x7cab 0x7ca1 0x7ca8 0x7cb3 0x7cb2 0x7cb1 0x7cae 0x7cb9 0x7cbd 0x7cc0 0x7cc5 0x7cc2 0x7cd8 0x7cd2 0x7cdc 0x7ce2 0x9b3b 0x7cef 0x7cf2 0x7cf4 0x7cf6 0x7cfa 0x7d06 ) ; 0x6521 ... 0x657e (block 68 0x7d02 0x7d1c 0x7d15 0x7d0a 0x7d45 0x7d4b 0x7d2e 0x7d32 0x7d3f 0x7d35 0x7d46 0x7d73 0x7d56 0x7d4e 0x7d72 0x7d68 0x7d6e 0x7d4f 0x7d63 0x7d93 0x7d89 0x7d5b 0x7d8f 0x7d7d 0x7d9b 0x7dba 0x7dae 0x7da3 0x7db5 0x7dc7 0x7dbd 0x7dab 0x7e3d 0x7da2 0x7daf 0x7ddc 0x7db8 0x7d9f 0x7db0 0x7dd8 0x7ddd 0x7de4 0x7dde 0x7dfb 0x7df2 0x7de1 0x7e05 0x7e0a 0x7e23 0x7e21 0x7e12 0x7e31 0x7e1f 0x7e09 0x7e0b 0x7e22 0x7e46 0x7e66 0x7e3b 0x7e35 0x7e39 0x7e43 0x7e37 0x7e32 0x7e3a 0x7e67 0x7e5d 0x7e56 0x7e5e 0x7e59 0x7e5a 0x7e79 0x7e6a 0x7e69 0x7e7c 0x7e7b 0x7e83 0x7dd5 0x7e7d 0x8fae 0x7e7f 0x7e88 0x7e89 0x7e8c 0x7e92 0x7e90 0x7e93 0x7e94 0x7e96 0x7e8e 0x7e9b 0x7e9c 0x7f38 0x7f3a ) ; 0x6621 ... 0x667e (block 69 0x7f45 0x7f4c 0x7f4d 0x7f4e 0x7f50 0x7f51 0x7f55 0x7f54 0x7f58 0x7f5f 0x7f60 0x7f68 0x7f69 0x7f67 0x7f78 0x7f82 0x7f86 0x7f83 0x7f88 0x7f87 0x7f8c 0x7f94 0x7f9e 0x7f9d 0x7f9a 0x7fa3 0x7faf 0x7fb2 0x7fb9 0x7fae 0x7fb6 0x7fb8 0x8b71 0x7fc5 0x7fc6 0x7fca 0x7fd5 0x7fd4 0x7fe1 0x7fe6 0x7fe9 0x7ff3 0x7ff9 0x98dc 0x8006 0x8004 0x800b 0x8012 0x8018 0x8019 0x801c 0x8021 0x8028 0x803f 0x803b 0x804a 0x8046 0x8052 0x8058 0x805a 0x805f 0x8062 0x8068 0x8073 0x8072 0x8070 0x8076 0x8079 0x807d 0x807f 0x8084 0x8086 0x8085 0x809b 0x8093 0x809a 0x80ad 0x5190 0x80ac 0x80db 0x80e5 0x80d9 0x80dd 0x80c4 0x80da 0x80d6 0x8109 0x80ef 0x80f1 0x811b 0x8129 0x8123 0x812f 0x814b ) ; 0x6721 ... 0x677e (block 70 0x968b 0x8146 0x813e 0x8153 0x8151 0x80fc 0x8171 0x816e 0x8165 0x8166 0x8174 0x8183 0x8188 0x818a 0x8180 0x8182 0x81a0 0x8195 0x81a4 0x81a3 0x815f 0x8193 0x81a9 0x81b0 0x81b5 0x81be 0x81b8 0x81bd 0x81c0 0x81c2 0x81ba 0x81c9 0x81cd 0x81d1 0x81d9 0x81d8 0x81c8 0x81da 0x81df 0x81e0 0x81e7 0x81fa 0x81fb 0x81fe 0x8201 0x8202 0x8205 0x8207 0x820a 0x820d 0x8210 0x8216 0x8229 0x822b 0x8238 0x8233 0x8240 0x8259 0x8258 0x825d 0x825a 0x825f 0x8264 0x8262 0x8268 0x826a 0x826b 0x822e 0x8271 0x8277 0x8278 0x827e 0x828d 0x8292 0x82ab 0x829f 0x82bb 0x82ac 0x82e1 0x82e3 0x82df 0x82d2 0x82f4 0x82f3 0x82fa 0x8393 0x8303 0x82fb 0x82f9 0x82de 0x8306 0x82dc 0x8309 0x82d9 ) ; 0x6821 ... 0x687e (block 71 0x8335 0x8334 0x8316 0x8332 0x8331 0x8340 0x8339 0x8350 0x8345 0x832f 0x832b 0x8317 0x8318 0x8385 0x839a 0x83aa 0x839f 0x83a2 0x8396 0x8323 0x838e 0x8387 0x838a 0x837c 0x83b5 0x8373 0x8375 0x83a0 0x8389 0x83a8 0x83f4 0x8413 0x83eb 0x83ce 0x83fd 0x8403 0x83d8 0x840b 0x83c1 0x83f7 0x8407 0x83e0 0x83f2 0x840d 0x8422 0x8420 0x83bd 0x8438 0x8506 0x83fb 0x846d 0x842a 0x843c 0x855a 0x8484 0x8477 0x846b 0x84ad 0x846e 0x8482 0x8469 0x8446 0x842c 0x846f 0x8479 0x8435 0x84ca 0x8462 0x84b9 0x84bf 0x849f 0x84d9 0x84cd 0x84bb 0x84da 0x84d0 0x84c1 0x84c6 0x84d6 0x84a1 0x8521 0x84ff 0x84f4 0x8517 0x8518 0x852c 0x851f 0x8515 0x8514 0x84fc 0x8540 0x8563 0x8558 0x8548 ) ; 0x6921 ... 0x697e (block 72 0x8541 0x8602 0x854b 0x8555 0x8580 0x85a4 0x8588 0x8591 0x858a 0x85a8 0x856d 0x8594 0x859b 0x85ea 0x8587 0x859c 0x8577 0x857e 0x8590 0x85c9 0x85ba 0x85cf 0x85b9 0x85d0 0x85d5 0x85dd 0x85e5 0x85dc 0x85f9 0x860a 0x8613 0x860b 0x85fe 0x85fa 0x8606 0x8622 0x861a 0x8630 0x863f 0x864d 0x4e55 0x8654 0x865f 0x8667 0x8671 0x8693 0x86a3 0x86a9 0x86aa 0x868b 0x868c 0x86b6 0x86af 0x86c4 0x86c6 0x86b0 0x86c9 0x8823 0x86ab 0x86d4 0x86de 0x86e9 0x86ec 0x86df 0x86db 0x86ef 0x8712 0x8706 0x8708 0x8700 0x8703 0x86fb 0x8711 0x8709 0x870d 0x86f9 0x870a 0x8734 0x873f 0x8737 0x873b 0x8725 0x8729 0x871a 0x8760 0x875f 0x8778 0x874c 0x874e 0x8774 0x8757 0x8768 0x876e 0x8759 ) ; 0x6a21 ... 0x6a7e (block 73 0x8753 0x8763 0x876a 0x8805 0x87a2 0x879f 0x8782 0x87af 0x87cb 0x87bd 0x87c0 0x87d0 0x96d6 0x87ab 0x87c4 0x87b3 0x87c7 0x87c6 0x87bb 0x87ef 0x87f2 0x87e0 0x880f 0x880d 0x87fe 0x87f6 0x87f7 0x880e 0x87d2 0x8811 0x8816 0x8815 0x8822 0x8821 0x8831 0x8836 0x8839 0x8827 0x883b 0x8844 0x8842 0x8852 0x8859 0x885e 0x8862 0x886b 0x8881 0x887e 0x889e 0x8875 0x887d 0x88b5 0x8872 0x8882 0x8897 0x8892 0x88ae 0x8899 0x88a2 0x888d 0x88a4 0x88b0 0x88bf 0x88b1 0x88c3 0x88c4 0x88d4 0x88d8 0x88d9 0x88dd 0x88f9 0x8902 0x88fc 0x88f4 0x88e8 0x88f2 0x8904 0x890c 0x890a 0x8913 0x8943 0x891e 0x8925 0x892a 0x892b 0x8941 0x8944 0x893b 0x8936 0x8938 0x894c 0x891d 0x8960 0x895e ) ; 0x6b21 ... 0x6b7e (block 74 0x8966 0x8964 0x896d 0x896a 0x896f 0x8974 0x8977 0x897e 0x8983 0x8988 0x898a 0x8993 0x8998 0x89a1 0x89a9 0x89a6 0x89ac 0x89af 0x89b2 0x89ba 0x89bd 0x89bf 0x89c0 0x89da 0x89dc 0x89dd 0x89e7 0x89f4 0x89f8 0x8a03 0x8a16 0x8a10 0x8a0c 0x8a1b 0x8a1d 0x8a25 0x8a36 0x8a41 0x8a5b 0x8a52 0x8a46 0x8a48 0x8a7c 0x8a6d 0x8a6c 0x8a62 0x8a85 0x8a82 0x8a84 0x8aa8 0x8aa1 0x8a91 0x8aa5 0x8aa6 0x8a9a 0x8aa3 0x8ac4 0x8acd 0x8ac2 0x8ada 0x8aeb 0x8af3 0x8ae7 0x8ae4 0x8af1 0x8b14 0x8ae0 0x8ae2 0x8af7 0x8ade 0x8adb 0x8b0c 0x8b07 0x8b1a 0x8ae1 0x8b16 0x8b10 0x8b17 0x8b20 0x8b33 0x97ab 0x8b26 0x8b2b 0x8b3e 0x8b28 0x8b41 0x8b4c 0x8b4f 0x8b4e 0x8b49 0x8b56 0x8b5b 0x8b5a 0x8b6b ) ; 0x6c21 ... 0x6c7e (block 75 0x8b5f 0x8b6c 0x8b6f 0x8b74 0x8b7d 0x8b80 0x8b8c 0x8b8e 0x8b92 0x8b93 0x8b96 0x8b99 0x8b9a 0x8c3a 0x8c41 0x8c3f 0x8c48 0x8c4c 0x8c4e 0x8c50 0x8c55 0x8c62 0x8c6c 0x8c78 0x8c7a 0x8c82 0x8c89 0x8c85 0x8c8a 0x8c8d 0x8c8e 0x8c94 0x8c7c 0x8c98 0x621d 0x8cad 0x8caa 0x8cbd 0x8cb2 0x8cb3 0x8cae 0x8cb6 0x8cc8 0x8cc1 0x8ce4 0x8ce3 0x8cda 0x8cfd 0x8cfa 0x8cfb 0x8d04 0x8d05 0x8d0a 0x8d07 0x8d0f 0x8d0d 0x8d10 0x9f4e 0x8d13 0x8ccd 0x8d14 0x8d16 0x8d67 0x8d6d 0x8d71 0x8d73 0x8d81 0x8d99 0x8dc2 0x8dbe 0x8dba 0x8dcf 0x8dda 0x8dd6 0x8dcc 0x8ddb 0x8dcb 0x8dea 0x8deb 0x8ddf 0x8de3 0x8dfc 0x8e08 0x8e09 0x8dff 0x8e1d 0x8e1e 0x8e10 0x8e1f 0x8e42 0x8e35 0x8e30 0x8e34 0x8e4a ) ; 0x6d21 ... 0x6d7e (block 76 0x8e47 0x8e49 0x8e4c 0x8e50 0x8e48 0x8e59 0x8e64 0x8e60 0x8e2a 0x8e63 0x8e55 0x8e76 0x8e72 0x8e7c 0x8e81 0x8e87 0x8e85 0x8e84 0x8e8b 0x8e8a 0x8e93 0x8e91 0x8e94 0x8e99 0x8eaa 0x8ea1 0x8eac 0x8eb0 0x8ec6 0x8eb1 0x8ebe 0x8ec5 0x8ec8 0x8ecb 0x8edb 0x8ee3 0x8efc 0x8efb 0x8eeb 0x8efe 0x8f0a 0x8f05 0x8f15 0x8f12 0x8f19 0x8f13 0x8f1c 0x8f1f 0x8f1b 0x8f0c 0x8f26 0x8f33 0x8f3b 0x8f39 0x8f45 0x8f42 0x8f3e 0x8f4c 0x8f49 0x8f46 0x8f4e 0x8f57 0x8f5c 0x8f62 0x8f63 0x8f64 0x8f9c 0x8f9f 0x8fa3 0x8fad 0x8faf 0x8fb7 0x8fda 0x8fe5 0x8fe2 0x8fea 0x8fef 0x9087 0x8ff4 0x9005 0x8ff9 0x8ffa 0x9011 0x9015 0x9021 0x900d 0x901e 0x9016 0x900b 0x9027 0x9036 0x9035 0x9039 0x8ff8 ) ; 0x6e21 ... 0x6e7e (block 77 0x904f 0x9050 0x9051 0x9052 0x900e 0x9049 0x903e 0x9056 0x9058 0x905e 0x9068 0x906f 0x9076 0x96a8 0x9072 0x9082 0x907d 0x9081 0x9080 0x908a 0x9089 0x908f 0x90a8 0x90af 0x90b1 0x90b5 0x90e2 0x90e4 0x6248 0x90db 0x9102 0x9112 0x9119 0x9132 0x9130 0x914a 0x9156 0x9158 0x9163 0x9165 0x9169 0x9173 0x9172 0x918b 0x9189 0x9182 0x91a2 0x91ab 0x91af 0x91aa 0x91b5 0x91b4 0x91ba 0x91c0 0x91c1 0x91c9 0x91cb 0x91d0 0x91d6 0x91df 0x91e1 0x91db 0x91fc 0x91f5 0x91f6 0x921e 0x91ff 0x9214 0x922c 0x9215 0x9211 0x925e 0x9257 0x9245 0x9249 0x9264 0x9248 0x9295 0x923f 0x924b 0x9250 0x929c 0x9296 0x9293 0x929b 0x925a 0x92cf 0x92b9 0x92b7 0x92e9 0x930f 0x92fa 0x9344 0x932e ) ; 0x6f21 ... 0x6f7e (block 78 0x9319 0x9322 0x931a 0x9323 0x933a 0x9335 0x933b 0x935c 0x9360 0x937c 0x936e 0x9356 0x93b0 0x93ac 0x93ad 0x9394 0x93b9 0x93d6 0x93d7 0x93e8 0x93e5 0x93d8 0x93c3 0x93dd 0x93d0 0x93c8 0x93e4 0x941a 0x9414 0x9413 0x9403 0x9407 0x9410 0x9436 0x942b 0x9435 0x9421 0x943a 0x9441 0x9452 0x9444 0x945b 0x9460 0x9462 0x945e 0x946a 0x9229 0x9470 0x9475 0x9477 0x947d 0x945a 0x947c 0x947e 0x9481 0x947f 0x9582 0x9587 0x958a 0x9594 0x9596 0x9598 0x9599 0x95a0 0x95a8 0x95a7 0x95ad 0x95bc 0x95bb 0x95b9 0x95be 0x95ca 0x6ff6 0x95c3 0x95cd 0x95cc 0x95d5 0x95d4 0x95d6 0x95dc 0x95e1 0x95e5 0x95e2 0x9621 0x9628 0x962e 0x962f 0x9642 0x964c 0x964f 0x964b 0x9677 0x965c 0x965e ) ; 0x7021 ... 0x707e (block 79 0x965d 0x965f 0x9666 0x9672 0x966c 0x968d 0x9698 0x9695 0x9697 0x96aa 0x96a7 0x96b1 0x96b2 0x96b0 0x96b4 0x96b6 0x96b8 0x96b9 0x96ce 0x96cb 0x96c9 0x96cd 0x894d 0x96dc 0x970d 0x96d5 0x96f9 0x9704 0x9706 0x9708 0x9713 0x970e 0x9711 0x970f 0x9716 0x9719 0x9724 0x972a 0x9730 0x9739 0x973d 0x973e 0x9744 0x9746 0x9748 0x9742 0x9749 0x975c 0x9760 0x9764 0x9766 0x9768 0x52d2 0x976b 0x9771 0x9779 0x9785 0x977c 0x9781 0x977a 0x9786 0x978b 0x978f 0x9790 0x979c 0x97a8 0x97a6 0x97a3 0x97b3 0x97b4 0x97c3 0x97c6 0x97c8 0x97cb 0x97dc 0x97ed 0x9f4f 0x97f2 0x7adf 0x97f6 0x97f5 0x980f 0x980c 0x9838 0x9824 0x9821 0x9837 0x983d 0x9846 0x984f 0x984b 0x986b 0x986f 0x9870 ) ; 0x7121 ... 0x717e (block 80 0x9871 0x9874 0x9873 0x98aa 0x98af 0x98b1 0x98b6 0x98c4 0x98c3 0x98c6 0x98e9 0x98eb 0x9903 0x9909 0x9912 0x9914 0x9918 0x9921 0x991d 0x991e 0x9924 0x9920 0x992c 0x992e 0x993d 0x993e 0x9942 0x9949 0x9945 0x9950 0x994b 0x9951 0x9952 0x994c 0x9955 0x9997 0x9998 0x99a5 0x99ad 0x99ae 0x99bc 0x99df 0x99db 0x99dd 0x99d8 0x99d1 0x99ed 0x99ee 0x99f1 0x99f2 0x99fb 0x99f8 0x9a01 0x9a0f 0x9a05 0x99e2 0x9a19 0x9a2b 0x9a37 0x9a45 0x9a42 0x9a40 0x9a43 0x9a3e 0x9a55 0x9a4d 0x9a5b 0x9a57 0x9a5f 0x9a62 0x9a65 0x9a64 0x9a69 0x9a6b 0x9a6a 0x9aad 0x9ab0 0x9abc 0x9ac0 0x9acf 0x9ad1 0x9ad3 0x9ad4 0x9ade 0x9adf 0x9ae2 0x9ae3 0x9ae6 0x9aef 0x9aeb 0x9aee 0x9af4 0x9af1 0x9af7 ) ; 0x7221 ... 0x727e (block 81 0x9afb 0x9b06 0x9b18 0x9b1a 0x9b1f 0x9b22 0x9b23 0x9b25 0x9b27 0x9b28 0x9b29 0x9b2a 0x9b2e 0x9b2f 0x9b32 0x9b44 0x9b43 0x9b4f 0x9b4d 0x9b4e 0x9b51 0x9b58 0x9b74 0x9b93 0x9b83 0x9b91 0x9b96 0x9b97 0x9b9f 0x9ba0 0x9ba8 0x9bb4 0x9bc0 0x9bca 0x9bb9 0x9bc6 0x9bcf 0x9bd1 0x9bd2 0x9be3 0x9be2 0x9be4 0x9bd4 0x9be1 0x9c3a 0x9bf2 0x9bf1 0x9bf0 0x9c15 0x9c14 0x9c09 0x9c13 0x9c0c 0x9c06 0x9c08 0x9c12 0x9c0a 0x9c04 0x9c2e 0x9c1b 0x9c25 0x9c24 0x9c21 0x9c30 0x9c47 0x9c32 0x9c46 0x9c3e 0x9c5a 0x9c60 0x9c67 0x9c76 0x9c78 0x9ce7 0x9cec 0x9cf0 0x9d09 0x9d08 0x9ceb 0x9d03 0x9d06 0x9d2a 0x9d26 0x9daf 0x9d23 0x9d1f 0x9d44 0x9d15 0x9d12 0x9d41 0x9d3f 0x9d3e 0x9d46 0x9d48 ) ; 0x7321 ... 0x737e (block 82 0x9d5d 0x9d5e 0x9d64 0x9d51 0x9d50 0x9d59 0x9d72 0x9d89 0x9d87 0x9dab 0x9d6f 0x9d7a 0x9d9a 0x9da4 0x9da9 0x9db2 0x9dc4 0x9dc1 0x9dbb 0x9db8 0x9dba 0x9dc6 0x9dcf 0x9dc2 0x9dd9 0x9dd3 0x9df8 0x9de6 0x9ded 0x9def 0x9dfd 0x9e1a 0x9e1b 0x9e1e 0x9e75 0x9e79 0x9e7d 0x9e81 0x9e88 0x9e8b 0x9e8c 0x9e92 0x9e95 0x9e91 0x9e9d 0x9ea5 0x9ea9 0x9eb8 0x9eaa 0x9ead 0x9761 0x9ecc 0x9ece 0x9ecf 0x9ed0 0x9ed4 0x9edc 0x9ede 0x9edd 0x9ee0 0x9ee5 0x9ee8 0x9eef 0x9ef4 0x9ef6 0x9ef7 0x9ef9 0x9efb 0x9efc 0x9efd 0x9f07 0x9f08 0x76b7 0x9f15 0x9f21 0x9f2c 0x9f3e 0x9f4a 0x9f52 0x9f54 0x9f63 0x9f5f 0x9f60 0x9f61 0x9f66 0x9f67 0x9f6c 0x9f6a 0x9f77 0x9f72 0x9f76 0x9f95 0x9f9c 0x9fa0 ) ; 0x7421 ... 0x747e (block 83 0x582f 0x69c7 0x9059 0x7464 0x51dc 0x7199 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) vflib3-3.6.14.dfsg/ccv/jisx0208sjis_unicode.ccv0000644000175000017500000046211407006213673020436 0ustar mohuramohura; Conversion table: JISX0208 ==> UNICODE (charset-external-name JISX0208) (charset-external-encoding SJIS) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x81) (c1-max 0xea) (c2-min 0x40) (c2-max 0xfc) (block-size 256) (nblocks 106) ; 0x8140 ... 0x81fc (block 0 0x2121 0x2122 0x2123 0x2124 0x2125 0x2126 0x2127 0x2128 0x2129 0x212a 0x212b 0x212c 0x212d 0x212e 0x212f 0x2130 0x2131 0x2132 0x2133 0x2134 0x2135 0x2136 0x2137 0x2138 0x2139 0x213a 0x213b 0x213c 0x213d 0x213e 0x213f 0x2140 0x2141 0x2142 0x2143 0x2144 0x2145 0x2146 0x2147 0x2148 0x2149 0x214a 0x214b 0x214c 0x214d 0x214e 0x214f 0x2150 0x2151 0x2152 0x2153 0x2154 0x2155 0x2156 0x2157 0x2158 0x2159 0x215a 0x215b 0x215c 0x215d 0x215e 0x215f -1 0x2160 0x2161 0x2162 0x2163 0x2164 0x2165 0x2166 0x2167 0x2168 0x2169 0x216a 0x216b 0x216c 0x216d 0x216e 0x216f 0x2170 0x2171 0x2172 0x2173 0x2174 0x2175 0x2176 0x2177 0x2178 0x2179 0x217a 0x217b 0x217c 0x217d 0x217e 0x2221 0x2222 0x2223 0x2224 0x2225 0x2226 0x2227 0x2228 0x2229 0x222a 0x222b 0x222c 0x222d 0x222e -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x223a 0x223b 0x223c 0x223d 0x223e 0x223f 0x2240 0x2241 -1 -1 -1 -1 -1 -1 -1 -1 0x224a 0x224b 0x224c 0x224d 0x224e 0x224f 0x2250 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x225c 0x225d 0x225e 0x225f 0x2260 0x2261 0x2262 0x2263 0x2264 0x2265 0x2266 0x2267 0x2268 0x2269 0x226a -1 -1 -1 -1 -1 -1 -1 0x2272 0x2273 0x2274 0x2275 0x2276 0x2277 0x2278 0x2279 -1 -1 -1 -1 0x227e ) ; 0x8240 ... 0x82fc (block 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x2330 0x2331 0x2332 0x2333 0x2334 0x2335 0x2336 0x2337 0x2338 0x2339 -1 -1 -1 -1 -1 -1 -1 0x2341 0x2342 0x2343 0x2344 0x2345 0x2346 0x2347 0x2348 0x2349 0x234a 0x234b 0x234c 0x234d 0x234e 0x234f 0x2350 0x2351 0x2352 0x2353 0x2354 0x2355 0x2356 0x2357 0x2358 0x2359 0x235a -1 -1 -1 -1 -1 -1 -1 0x2361 0x2362 0x2363 0x2364 0x2365 0x2366 0x2367 0x2368 0x2369 0x236a 0x236b 0x236c 0x236d 0x236e 0x236f 0x2370 0x2371 0x2372 0x2373 0x2374 0x2375 0x2376 0x2377 0x2378 0x2379 0x237a -1 -1 -1 -1 0x2421 0x2422 0x2423 0x2424 0x2425 0x2426 0x2427 0x2428 0x2429 0x242a 0x242b 0x242c 0x242d 0x242e 0x242f 0x2430 0x2431 0x2432 0x2433 0x2434 0x2435 0x2436 0x2437 0x2438 0x2439 0x243a 0x243b 0x243c 0x243d 0x243e 0x243f 0x2440 0x2441 0x2442 0x2443 0x2444 0x2445 0x2446 0x2447 0x2448 0x2449 0x244a 0x244b 0x244c 0x244d 0x244e 0x244f 0x2450 0x2451 0x2452 0x2453 0x2454 0x2455 0x2456 0x2457 0x2458 0x2459 0x245a 0x245b 0x245c 0x245d 0x245e 0x245f 0x2460 0x2461 0x2462 0x2463 0x2464 0x2465 0x2466 0x2467 0x2468 0x2469 0x246a 0x246b 0x246c 0x246d 0x246e 0x246f 0x2470 0x2471 0x2472 0x2473 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x8340 ... 0x83fc (block 2 0x2521 0x2522 0x2523 0x2524 0x2525 0x2526 0x2527 0x2528 0x2529 0x252a 0x252b 0x252c 0x252d 0x252e 0x252f 0x2530 0x2531 0x2532 0x2533 0x2534 0x2535 0x2536 0x2537 0x2538 0x2539 0x253a 0x253b 0x253c 0x253d 0x253e 0x253f 0x2540 0x2541 0x2542 0x2543 0x2544 0x2545 0x2546 0x2547 0x2548 0x2549 0x254a 0x254b 0x254c 0x254d 0x254e 0x254f 0x2550 0x2551 0x2552 0x2553 0x2554 0x2555 0x2556 0x2557 0x2558 0x2559 0x255a 0x255b 0x255c 0x255d 0x255e 0x255f -1 0x2560 0x2561 0x2562 0x2563 0x2564 0x2565 0x2566 0x2567 0x2568 0x2569 0x256a 0x256b 0x256c 0x256d 0x256e 0x256f 0x2570 0x2571 0x2572 0x2573 0x2574 0x2575 0x2576 -1 -1 -1 -1 -1 -1 -1 -1 0x2621 0x2622 0x2623 0x2624 0x2625 0x2626 0x2627 0x2628 0x2629 0x262a 0x262b 0x262c 0x262d 0x262e 0x262f 0x2630 0x2631 0x2632 0x2633 0x2634 0x2635 0x2636 0x2637 0x2638 -1 -1 -1 -1 -1 -1 -1 -1 0x2641 0x2642 0x2643 0x2644 0x2645 0x2646 0x2647 0x2648 0x2649 0x264a 0x264b 0x264c 0x264d 0x264e 0x264f 0x2650 0x2651 0x2652 0x2653 0x2654 0x2655 0x2656 0x2657 0x2658 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x8440 ... 0x84fc (block 3 0x2721 0x2722 0x2723 0x2724 0x2725 0x2726 0x2727 0x2728 0x2729 0x272a 0x272b 0x272c 0x272d 0x272e 0x272f 0x2730 0x2731 0x2732 0x2733 0x2734 0x2735 0x2736 0x2737 0x2738 0x2739 0x273a 0x273b 0x273c 0x273d 0x273e 0x273f 0x2740 0x2741 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x2751 0x2752 0x2753 0x2754 0x2755 0x2756 0x2757 0x2758 0x2759 0x275a 0x275b 0x275c 0x275d 0x275e 0x275f -1 0x2760 0x2761 0x2762 0x2763 0x2764 0x2765 0x2766 0x2767 0x2768 0x2769 0x276a 0x276b 0x276c 0x276d 0x276e 0x276f 0x2770 0x2771 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x2821 0x2822 0x2823 0x2824 0x2825 0x2826 0x2827 0x2828 0x2829 0x282a 0x282b 0x282c 0x282d 0x282e 0x282f 0x2830 0x2831 0x2832 0x2833 0x2834 0x2835 0x2836 0x2837 0x2838 0x2839 0x283a 0x283b 0x283c 0x283d 0x283e 0x283f 0x2840 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x8540 ... 0x85fc (block 4 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x8640 ... 0x86fc (block 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x8740 ... 0x87fc (block 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x8840 ... 0x88fc (block 7 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x3021 0x3022 0x3023 0x3024 0x3025 0x3026 0x3027 0x3028 0x3029 0x302a 0x302b 0x302c 0x302d 0x302e 0x302f 0x3030 0x3031 0x3032 0x3033 0x3034 0x3035 0x3036 0x3037 0x3038 0x3039 0x303a 0x303b 0x303c 0x303d 0x303e 0x303f 0x3040 0x3041 0x3042 0x3043 0x3044 0x3045 0x3046 0x3047 0x3048 0x3049 0x304a 0x304b 0x304c 0x304d 0x304e 0x304f 0x3050 0x3051 0x3052 0x3053 0x3054 0x3055 0x3056 0x3057 0x3058 0x3059 0x305a 0x305b 0x305c 0x305d 0x305e 0x305f 0x3060 0x3061 0x3062 0x3063 0x3064 0x3065 0x3066 0x3067 0x3068 0x3069 0x306a 0x306b 0x306c 0x306d 0x306e 0x306f 0x3070 0x3071 0x3072 0x3073 0x3074 0x3075 0x3076 0x3077 0x3078 0x3079 0x307a 0x307b 0x307c 0x307d 0x307e ) ; 0x8940 ... 0x89fc (block 8 0x3121 0x3122 0x3123 0x3124 0x3125 0x3126 0x3127 0x3128 0x3129 0x312a 0x312b 0x312c 0x312d 0x312e 0x312f 0x3130 0x3131 0x3132 0x3133 0x3134 0x3135 0x3136 0x3137 0x3138 0x3139 0x313a 0x313b 0x313c 0x313d 0x313e 0x313f 0x3140 0x3141 0x3142 0x3143 0x3144 0x3145 0x3146 0x3147 0x3148 0x3149 0x314a 0x314b 0x314c 0x314d 0x314e 0x314f 0x3150 0x3151 0x3152 0x3153 0x3154 0x3155 0x3156 0x3157 0x3158 0x3159 0x315a 0x315b 0x315c 0x315d 0x315e 0x315f -1 0x3160 0x3161 0x3162 0x3163 0x3164 0x3165 0x3166 0x3167 0x3168 0x3169 0x316a 0x316b 0x316c 0x316d 0x316e 0x316f 0x3170 0x3171 0x3172 0x3173 0x3174 0x3175 0x3176 0x3177 0x3178 0x3179 0x317a 0x317b 0x317c 0x317d 0x317e 0x3221 0x3222 0x3223 0x3224 0x3225 0x3226 0x3227 0x3228 0x3229 0x322a 0x322b 0x322c 0x322d 0x322e 0x322f 0x3230 0x3231 0x3232 0x3233 0x3234 0x3235 0x3236 0x3237 0x3238 0x3239 0x323a 0x323b 0x323c 0x323d 0x323e 0x323f 0x3240 0x3241 0x3242 0x3243 0x3244 0x3245 0x3246 0x3247 0x3248 0x3249 0x324a 0x324b 0x324c 0x324d 0x324e 0x324f 0x3250 0x3251 0x3252 0x3253 0x3254 0x3255 0x3256 0x3257 0x3258 0x3259 0x325a 0x325b 0x325c 0x325d 0x325e 0x325f 0x3260 0x3261 0x3262 0x3263 0x3264 0x3265 0x3266 0x3267 0x3268 0x3269 0x326a 0x326b 0x326c 0x326d 0x326e 0x326f 0x3270 0x3271 0x3272 0x3273 0x3274 0x3275 0x3276 0x3277 0x3278 0x3279 0x327a 0x327b 0x327c 0x327d 0x327e ) ; 0x8a40 ... 0x8afc (block 9 0x3321 0x3322 0x3323 0x3324 0x3325 0x3326 0x3327 0x3328 0x3329 0x332a 0x332b 0x332c 0x332d 0x332e 0x332f 0x3330 0x3331 0x3332 0x3333 0x3334 0x3335 0x3336 0x3337 0x3338 0x3339 0x333a 0x333b 0x333c 0x333d 0x333e 0x333f 0x3340 0x3341 0x3342 0x3343 0x3344 0x3345 0x3346 0x3347 0x3348 0x3349 0x334a 0x334b 0x334c 0x334d 0x334e 0x334f 0x3350 0x3351 0x3352 0x3353 0x3354 0x3355 0x3356 0x3357 0x3358 0x3359 0x335a 0x335b 0x335c 0x335d 0x335e 0x335f -1 0x3360 0x3361 0x3362 0x3363 0x3364 0x3365 0x3366 0x3367 0x3368 0x3369 0x336a 0x336b 0x336c 0x336d 0x336e 0x336f 0x3370 0x3371 0x3372 0x3373 0x3374 0x3375 0x3376 0x3377 0x3378 0x3379 0x337a 0x337b 0x337c 0x337d 0x337e 0x3421 0x3422 0x3423 0x3424 0x3425 0x3426 0x3427 0x3428 0x3429 0x342a 0x342b 0x342c 0x342d 0x342e 0x342f 0x3430 0x3431 0x3432 0x3433 0x3434 0x3435 0x3436 0x3437 0x3438 0x3439 0x343a 0x343b 0x343c 0x343d 0x343e 0x343f 0x3440 0x3441 0x3442 0x3443 0x3444 0x3445 0x3446 0x3447 0x3448 0x3449 0x344a 0x344b 0x344c 0x344d 0x344e 0x344f 0x3450 0x3451 0x3452 0x3453 0x3454 0x3455 0x3456 0x3457 0x3458 0x3459 0x345a 0x345b 0x345c 0x345d 0x345e 0x345f 0x3460 0x3461 0x3462 0x3463 0x3464 0x3465 0x3466 0x3467 0x3468 0x3469 0x346a 0x346b 0x346c 0x346d 0x346e 0x346f 0x3470 0x3471 0x3472 0x3473 0x3474 0x3475 0x3476 0x3477 0x3478 0x3479 0x347a 0x347b 0x347c 0x347d 0x347e ) ; 0x8b40 ... 0x8bfc (block 10 0x3521 0x3522 0x3523 0x3524 0x3525 0x3526 0x3527 0x3528 0x3529 0x352a 0x352b 0x352c 0x352d 0x352e 0x352f 0x3530 0x3531 0x3532 0x3533 0x3534 0x3535 0x3536 0x3537 0x3538 0x3539 0x353a 0x353b 0x353c 0x353d 0x353e 0x353f 0x3540 0x3541 0x3542 0x3543 0x3544 0x3545 0x3546 0x3547 0x3548 0x3549 0x354a 0x354b 0x354c 0x354d 0x354e 0x354f 0x3550 0x3551 0x3552 0x3553 0x3554 0x3555 0x3556 0x3557 0x3558 0x3559 0x355a 0x355b 0x355c 0x355d 0x355e 0x355f -1 0x3560 0x3561 0x3562 0x3563 0x3564 0x3565 0x3566 0x3567 0x3568 0x3569 0x356a 0x356b 0x356c 0x356d 0x356e 0x356f 0x3570 0x3571 0x3572 0x3573 0x3574 0x3575 0x3576 0x3577 0x3578 0x3579 0x357a 0x357b 0x357c 0x357d 0x357e 0x3621 0x3622 0x3623 0x3624 0x3625 0x3626 0x3627 0x3628 0x3629 0x362a 0x362b 0x362c 0x362d 0x362e 0x362f 0x3630 0x3631 0x3632 0x3633 0x3634 0x3635 0x3636 0x3637 0x3638 0x3639 0x363a 0x363b 0x363c 0x363d 0x363e 0x363f 0x3640 0x3641 0x3642 0x3643 0x3644 0x3645 0x3646 0x3647 0x3648 0x3649 0x364a 0x364b 0x364c 0x364d 0x364e 0x364f 0x3650 0x3651 0x3652 0x3653 0x3654 0x3655 0x3656 0x3657 0x3658 0x3659 0x365a 0x365b 0x365c 0x365d 0x365e 0x365f 0x3660 0x3661 0x3662 0x3663 0x3664 0x3665 0x3666 0x3667 0x3668 0x3669 0x366a 0x366b 0x366c 0x366d 0x366e 0x366f 0x3670 0x3671 0x3672 0x3673 0x3674 0x3675 0x3676 0x3677 0x3678 0x3679 0x367a 0x367b 0x367c 0x367d 0x367e ) ; 0x8c40 ... 0x8cfc (block 11 0x3721 0x3722 0x3723 0x3724 0x3725 0x3726 0x3727 0x3728 0x3729 0x372a 0x372b 0x372c 0x372d 0x372e 0x372f 0x3730 0x3731 0x3732 0x3733 0x3734 0x3735 0x3736 0x3737 0x3738 0x3739 0x373a 0x373b 0x373c 0x373d 0x373e 0x373f 0x3740 0x3741 0x3742 0x3743 0x3744 0x3745 0x3746 0x3747 0x3748 0x3749 0x374a 0x374b 0x374c 0x374d 0x374e 0x374f 0x3750 0x3751 0x3752 0x3753 0x3754 0x3755 0x3756 0x3757 0x3758 0x3759 0x375a 0x375b 0x375c 0x375d 0x375e 0x375f -1 0x3760 0x3761 0x3762 0x3763 0x3764 0x3765 0x3766 0x3767 0x3768 0x3769 0x376a 0x376b 0x376c 0x376d 0x376e 0x376f 0x3770 0x3771 0x3772 0x3773 0x3774 0x3775 0x3776 0x3777 0x3778 0x3779 0x377a 0x377b 0x377c 0x377d 0x377e 0x3821 0x3822 0x3823 0x3824 0x3825 0x3826 0x3827 0x3828 0x3829 0x382a 0x382b 0x382c 0x382d 0x382e 0x382f 0x3830 0x3831 0x3832 0x3833 0x3834 0x3835 0x3836 0x3837 0x3838 0x3839 0x383a 0x383b 0x383c 0x383d 0x383e 0x383f 0x3840 0x3841 0x3842 0x3843 0x3844 0x3845 0x3846 0x3847 0x3848 0x3849 0x384a 0x384b 0x384c 0x384d 0x384e 0x384f 0x3850 0x3851 0x3852 0x3853 0x3854 0x3855 0x3856 0x3857 0x3858 0x3859 0x385a 0x385b 0x385c 0x385d 0x385e 0x385f 0x3860 0x3861 0x3862 0x3863 0x3864 0x3865 0x3866 0x3867 0x3868 0x3869 0x386a 0x386b 0x386c 0x386d 0x386e 0x386f 0x3870 0x3871 0x3872 0x3873 0x3874 0x3875 0x3876 0x3877 0x3878 0x3879 0x387a 0x387b 0x387c 0x387d 0x387e ) ; 0x8d40 ... 0x8dfc (block 12 0x3921 0x3922 0x3923 0x3924 0x3925 0x3926 0x3927 0x3928 0x3929 0x392a 0x392b 0x392c 0x392d 0x392e 0x392f 0x3930 0x3931 0x3932 0x3933 0x3934 0x3935 0x3936 0x3937 0x3938 0x3939 0x393a 0x393b 0x393c 0x393d 0x393e 0x393f 0x3940 0x3941 0x3942 0x3943 0x3944 0x3945 0x3946 0x3947 0x3948 0x3949 0x394a 0x394b 0x394c 0x394d 0x394e 0x394f 0x3950 0x3951 0x3952 0x3953 0x3954 0x3955 0x3956 0x3957 0x3958 0x3959 0x395a 0x395b 0x395c 0x395d 0x395e 0x395f -1 0x3960 0x3961 0x3962 0x3963 0x3964 0x3965 0x3966 0x3967 0x3968 0x3969 0x396a 0x396b 0x396c 0x396d 0x396e 0x396f 0x3970 0x3971 0x3972 0x3973 0x3974 0x3975 0x3976 0x3977 0x3978 0x3979 0x397a 0x397b 0x397c 0x397d 0x397e 0x3a21 0x3a22 0x3a23 0x3a24 0x3a25 0x3a26 0x3a27 0x3a28 0x3a29 0x3a2a 0x3a2b 0x3a2c 0x3a2d 0x3a2e 0x3a2f 0x3a30 0x3a31 0x3a32 0x3a33 0x3a34 0x3a35 0x3a36 0x3a37 0x3a38 0x3a39 0x3a3a 0x3a3b 0x3a3c 0x3a3d 0x3a3e 0x3a3f 0x3a40 0x3a41 0x3a42 0x3a43 0x3a44 0x3a45 0x3a46 0x3a47 0x3a48 0x3a49 0x3a4a 0x3a4b 0x3a4c 0x3a4d 0x3a4e 0x3a4f 0x3a50 0x3a51 0x3a52 0x3a53 0x3a54 0x3a55 0x3a56 0x3a57 0x3a58 0x3a59 0x3a5a 0x3a5b 0x3a5c 0x3a5d 0x3a5e 0x3a5f 0x3a60 0x3a61 0x3a62 0x3a63 0x3a64 0x3a65 0x3a66 0x3a67 0x3a68 0x3a69 0x3a6a 0x3a6b 0x3a6c 0x3a6d 0x3a6e 0x3a6f 0x3a70 0x3a71 0x3a72 0x3a73 0x3a74 0x3a75 0x3a76 0x3a77 0x3a78 0x3a79 0x3a7a 0x3a7b 0x3a7c 0x3a7d 0x3a7e ) ; 0x8e40 ... 0x8efc (block 13 0x3b21 0x3b22 0x3b23 0x3b24 0x3b25 0x3b26 0x3b27 0x3b28 0x3b29 0x3b2a 0x3b2b 0x3b2c 0x3b2d 0x3b2e 0x3b2f 0x3b30 0x3b31 0x3b32 0x3b33 0x3b34 0x3b35 0x3b36 0x3b37 0x3b38 0x3b39 0x3b3a 0x3b3b 0x3b3c 0x3b3d 0x3b3e 0x3b3f 0x3b40 0x3b41 0x3b42 0x3b43 0x3b44 0x3b45 0x3b46 0x3b47 0x3b48 0x3b49 0x3b4a 0x3b4b 0x3b4c 0x3b4d 0x3b4e 0x3b4f 0x3b50 0x3b51 0x3b52 0x3b53 0x3b54 0x3b55 0x3b56 0x3b57 0x3b58 0x3b59 0x3b5a 0x3b5b 0x3b5c 0x3b5d 0x3b5e 0x3b5f -1 0x3b60 0x3b61 0x3b62 0x3b63 0x3b64 0x3b65 0x3b66 0x3b67 0x3b68 0x3b69 0x3b6a 0x3b6b 0x3b6c 0x3b6d 0x3b6e 0x3b6f 0x3b70 0x3b71 0x3b72 0x3b73 0x3b74 0x3b75 0x3b76 0x3b77 0x3b78 0x3b79 0x3b7a 0x3b7b 0x3b7c 0x3b7d 0x3b7e 0x3c21 0x3c22 0x3c23 0x3c24 0x3c25 0x3c26 0x3c27 0x3c28 0x3c29 0x3c2a 0x3c2b 0x3c2c 0x3c2d 0x3c2e 0x3c2f 0x3c30 0x3c31 0x3c32 0x3c33 0x3c34 0x3c35 0x3c36 0x3c37 0x3c38 0x3c39 0x3c3a 0x3c3b 0x3c3c 0x3c3d 0x3c3e 0x3c3f 0x3c40 0x3c41 0x3c42 0x3c43 0x3c44 0x3c45 0x3c46 0x3c47 0x3c48 0x3c49 0x3c4a 0x3c4b 0x3c4c 0x3c4d 0x3c4e 0x3c4f 0x3c50 0x3c51 0x3c52 0x3c53 0x3c54 0x3c55 0x3c56 0x3c57 0x3c58 0x3c59 0x3c5a 0x3c5b 0x3c5c 0x3c5d 0x3c5e 0x3c5f 0x3c60 0x3c61 0x3c62 0x3c63 0x3c64 0x3c65 0x3c66 0x3c67 0x3c68 0x3c69 0x3c6a 0x3c6b 0x3c6c 0x3c6d 0x3c6e 0x3c6f 0x3c70 0x3c71 0x3c72 0x3c73 0x3c74 0x3c75 0x3c76 0x3c77 0x3c78 0x3c79 0x3c7a 0x3c7b 0x3c7c 0x3c7d 0x3c7e ) ; 0x8f40 ... 0x8ffc (block 14 0x3d21 0x3d22 0x3d23 0x3d24 0x3d25 0x3d26 0x3d27 0x3d28 0x3d29 0x3d2a 0x3d2b 0x3d2c 0x3d2d 0x3d2e 0x3d2f 0x3d30 0x3d31 0x3d32 0x3d33 0x3d34 0x3d35 0x3d36 0x3d37 0x3d38 0x3d39 0x3d3a 0x3d3b 0x3d3c 0x3d3d 0x3d3e 0x3d3f 0x3d40 0x3d41 0x3d42 0x3d43 0x3d44 0x3d45 0x3d46 0x3d47 0x3d48 0x3d49 0x3d4a 0x3d4b 0x3d4c 0x3d4d 0x3d4e 0x3d4f 0x3d50 0x3d51 0x3d52 0x3d53 0x3d54 0x3d55 0x3d56 0x3d57 0x3d58 0x3d59 0x3d5a 0x3d5b 0x3d5c 0x3d5d 0x3d5e 0x3d5f -1 0x3d60 0x3d61 0x3d62 0x3d63 0x3d64 0x3d65 0x3d66 0x3d67 0x3d68 0x3d69 0x3d6a 0x3d6b 0x3d6c 0x3d6d 0x3d6e 0x3d6f 0x3d70 0x3d71 0x3d72 0x3d73 0x3d74 0x3d75 0x3d76 0x3d77 0x3d78 0x3d79 0x3d7a 0x3d7b 0x3d7c 0x3d7d 0x3d7e 0x3e21 0x3e22 0x3e23 0x3e24 0x3e25 0x3e26 0x3e27 0x3e28 0x3e29 0x3e2a 0x3e2b 0x3e2c 0x3e2d 0x3e2e 0x3e2f 0x3e30 0x3e31 0x3e32 0x3e33 0x3e34 0x3e35 0x3e36 0x3e37 0x3e38 0x3e39 0x3e3a 0x3e3b 0x3e3c 0x3e3d 0x3e3e 0x3e3f 0x3e40 0x3e41 0x3e42 0x3e43 0x3e44 0x3e45 0x3e46 0x3e47 0x3e48 0x3e49 0x3e4a 0x3e4b 0x3e4c 0x3e4d 0x3e4e 0x3e4f 0x3e50 0x3e51 0x3e52 0x3e53 0x3e54 0x3e55 0x3e56 0x3e57 0x3e58 0x3e59 0x3e5a 0x3e5b 0x3e5c 0x3e5d 0x3e5e 0x3e5f 0x3e60 0x3e61 0x3e62 0x3e63 0x3e64 0x3e65 0x3e66 0x3e67 0x3e68 0x3e69 0x3e6a 0x3e6b 0x3e6c 0x3e6d 0x3e6e 0x3e6f 0x3e70 0x3e71 0x3e72 0x3e73 0x3e74 0x3e75 0x3e76 0x3e77 0x3e78 0x3e79 0x3e7a 0x3e7b 0x3e7c 0x3e7d 0x3e7e ) ; 0x9040 ... 0x90fc (block 15 0x3f21 0x3f22 0x3f23 0x3f24 0x3f25 0x3f26 0x3f27 0x3f28 0x3f29 0x3f2a 0x3f2b 0x3f2c 0x3f2d 0x3f2e 0x3f2f 0x3f30 0x3f31 0x3f32 0x3f33 0x3f34 0x3f35 0x3f36 0x3f37 0x3f38 0x3f39 0x3f3a 0x3f3b 0x3f3c 0x3f3d 0x3f3e 0x3f3f 0x3f40 0x3f41 0x3f42 0x3f43 0x3f44 0x3f45 0x3f46 0x3f47 0x3f48 0x3f49 0x3f4a 0x3f4b 0x3f4c 0x3f4d 0x3f4e 0x3f4f 0x3f50 0x3f51 0x3f52 0x3f53 0x3f54 0x3f55 0x3f56 0x3f57 0x3f58 0x3f59 0x3f5a 0x3f5b 0x3f5c 0x3f5d 0x3f5e 0x3f5f -1 0x3f60 0x3f61 0x3f62 0x3f63 0x3f64 0x3f65 0x3f66 0x3f67 0x3f68 0x3f69 0x3f6a 0x3f6b 0x3f6c 0x3f6d 0x3f6e 0x3f6f 0x3f70 0x3f71 0x3f72 0x3f73 0x3f74 0x3f75 0x3f76 0x3f77 0x3f78 0x3f79 0x3f7a 0x3f7b 0x3f7c 0x3f7d 0x3f7e 0x4021 0x4022 0x4023 0x4024 0x4025 0x4026 0x4027 0x4028 0x4029 0x402a 0x402b 0x402c 0x402d 0x402e 0x402f 0x4030 0x4031 0x4032 0x4033 0x4034 0x4035 0x4036 0x4037 0x4038 0x4039 0x403a 0x403b 0x403c 0x403d 0x403e 0x403f 0x4040 0x4041 0x4042 0x4043 0x4044 0x4045 0x4046 0x4047 0x4048 0x4049 0x404a 0x404b 0x404c 0x404d 0x404e 0x404f 0x4050 0x4051 0x4052 0x4053 0x4054 0x4055 0x4056 0x4057 0x4058 0x4059 0x405a 0x405b 0x405c 0x405d 0x405e 0x405f 0x4060 0x4061 0x4062 0x4063 0x4064 0x4065 0x4066 0x4067 0x4068 0x4069 0x406a 0x406b 0x406c 0x406d 0x406e 0x406f 0x4070 0x4071 0x4072 0x4073 0x4074 0x4075 0x4076 0x4077 0x4078 0x4079 0x407a 0x407b 0x407c 0x407d 0x407e ) ; 0x9140 ... 0x91fc (block 16 0x4121 0x4122 0x4123 0x4124 0x4125 0x4126 0x4127 0x4128 0x4129 0x412a 0x412b 0x412c 0x412d 0x412e 0x412f 0x4130 0x4131 0x4132 0x4133 0x4134 0x4135 0x4136 0x4137 0x4138 0x4139 0x413a 0x413b 0x413c 0x413d 0x413e 0x413f 0x4140 0x4141 0x4142 0x4143 0x4144 0x4145 0x4146 0x4147 0x4148 0x4149 0x414a 0x414b 0x414c 0x414d 0x414e 0x414f 0x4150 0x4151 0x4152 0x4153 0x4154 0x4155 0x4156 0x4157 0x4158 0x4159 0x415a 0x415b 0x415c 0x415d 0x415e 0x415f -1 0x4160 0x4161 0x4162 0x4163 0x4164 0x4165 0x4166 0x4167 0x4168 0x4169 0x416a 0x416b 0x416c 0x416d 0x416e 0x416f 0x4170 0x4171 0x4172 0x4173 0x4174 0x4175 0x4176 0x4177 0x4178 0x4179 0x417a 0x417b 0x417c 0x417d 0x417e 0x4221 0x4222 0x4223 0x4224 0x4225 0x4226 0x4227 0x4228 0x4229 0x422a 0x422b 0x422c 0x422d 0x422e 0x422f 0x4230 0x4231 0x4232 0x4233 0x4234 0x4235 0x4236 0x4237 0x4238 0x4239 0x423a 0x423b 0x423c 0x423d 0x423e 0x423f 0x4240 0x4241 0x4242 0x4243 0x4244 0x4245 0x4246 0x4247 0x4248 0x4249 0x424a 0x424b 0x424c 0x424d 0x424e 0x424f 0x4250 0x4251 0x4252 0x4253 0x4254 0x4255 0x4256 0x4257 0x4258 0x4259 0x425a 0x425b 0x425c 0x425d 0x425e 0x425f 0x4260 0x4261 0x4262 0x4263 0x4264 0x4265 0x4266 0x4267 0x4268 0x4269 0x426a 0x426b 0x426c 0x426d 0x426e 0x426f 0x4270 0x4271 0x4272 0x4273 0x4274 0x4275 0x4276 0x4277 0x4278 0x4279 0x427a 0x427b 0x427c 0x427d 0x427e ) ; 0x9240 ... 0x92fc (block 17 0x4321 0x4322 0x4323 0x4324 0x4325 0x4326 0x4327 0x4328 0x4329 0x432a 0x432b 0x432c 0x432d 0x432e 0x432f 0x4330 0x4331 0x4332 0x4333 0x4334 0x4335 0x4336 0x4337 0x4338 0x4339 0x433a 0x433b 0x433c 0x433d 0x433e 0x433f 0x4340 0x4341 0x4342 0x4343 0x4344 0x4345 0x4346 0x4347 0x4348 0x4349 0x434a 0x434b 0x434c 0x434d 0x434e 0x434f 0x4350 0x4351 0x4352 0x4353 0x4354 0x4355 0x4356 0x4357 0x4358 0x4359 0x435a 0x435b 0x435c 0x435d 0x435e 0x435f -1 0x4360 0x4361 0x4362 0x4363 0x4364 0x4365 0x4366 0x4367 0x4368 0x4369 0x436a 0x436b 0x436c 0x436d 0x436e 0x436f 0x4370 0x4371 0x4372 0x4373 0x4374 0x4375 0x4376 0x4377 0x4378 0x4379 0x437a 0x437b 0x437c 0x437d 0x437e 0x4421 0x4422 0x4423 0x4424 0x4425 0x4426 0x4427 0x4428 0x4429 0x442a 0x442b 0x442c 0x442d 0x442e 0x442f 0x4430 0x4431 0x4432 0x4433 0x4434 0x4435 0x4436 0x4437 0x4438 0x4439 0x443a 0x443b 0x443c 0x443d 0x443e 0x443f 0x4440 0x4441 0x4442 0x4443 0x4444 0x4445 0x4446 0x4447 0x4448 0x4449 0x444a 0x444b 0x444c 0x444d 0x444e 0x444f 0x4450 0x4451 0x4452 0x4453 0x4454 0x4455 0x4456 0x4457 0x4458 0x4459 0x445a 0x445b 0x445c 0x445d 0x445e 0x445f 0x4460 0x4461 0x4462 0x4463 0x4464 0x4465 0x4466 0x4467 0x4468 0x4469 0x446a 0x446b 0x446c 0x446d 0x446e 0x446f 0x4470 0x4471 0x4472 0x4473 0x4474 0x4475 0x4476 0x4477 0x4478 0x4479 0x447a 0x447b 0x447c 0x447d 0x447e ) ; 0x9340 ... 0x93fc (block 18 0x4521 0x4522 0x4523 0x4524 0x4525 0x4526 0x4527 0x4528 0x4529 0x452a 0x452b 0x452c 0x452d 0x452e 0x452f 0x4530 0x4531 0x4532 0x4533 0x4534 0x4535 0x4536 0x4537 0x4538 0x4539 0x453a 0x453b 0x453c 0x453d 0x453e 0x453f 0x4540 0x4541 0x4542 0x4543 0x4544 0x4545 0x4546 0x4547 0x4548 0x4549 0x454a 0x454b 0x454c 0x454d 0x454e 0x454f 0x4550 0x4551 0x4552 0x4553 0x4554 0x4555 0x4556 0x4557 0x4558 0x4559 0x455a 0x455b 0x455c 0x455d 0x455e 0x455f -1 0x4560 0x4561 0x4562 0x4563 0x4564 0x4565 0x4566 0x4567 0x4568 0x4569 0x456a 0x456b 0x456c 0x456d 0x456e 0x456f 0x4570 0x4571 0x4572 0x4573 0x4574 0x4575 0x4576 0x4577 0x4578 0x4579 0x457a 0x457b 0x457c 0x457d 0x457e 0x4621 0x4622 0x4623 0x4624 0x4625 0x4626 0x4627 0x4628 0x4629 0x462a 0x462b 0x462c 0x462d 0x462e 0x462f 0x4630 0x4631 0x4632 0x4633 0x4634 0x4635 0x4636 0x4637 0x4638 0x4639 0x463a 0x463b 0x463c 0x463d 0x463e 0x463f 0x4640 0x4641 0x4642 0x4643 0x4644 0x4645 0x4646 0x4647 0x4648 0x4649 0x464a 0x464b 0x464c 0x464d 0x464e 0x464f 0x4650 0x4651 0x4652 0x4653 0x4654 0x4655 0x4656 0x4657 0x4658 0x4659 0x465a 0x465b 0x465c 0x465d 0x465e 0x465f 0x4660 0x4661 0x4662 0x4663 0x4664 0x4665 0x4666 0x4667 0x4668 0x4669 0x466a 0x466b 0x466c 0x466d 0x466e 0x466f 0x4670 0x4671 0x4672 0x4673 0x4674 0x4675 0x4676 0x4677 0x4678 0x4679 0x467a 0x467b 0x467c 0x467d 0x467e ) ; 0x9440 ... 0x94fc (block 19 0x4721 0x4722 0x4723 0x4724 0x4725 0x4726 0x4727 0x4728 0x4729 0x472a 0x472b 0x472c 0x472d 0x472e 0x472f 0x4730 0x4731 0x4732 0x4733 0x4734 0x4735 0x4736 0x4737 0x4738 0x4739 0x473a 0x473b 0x473c 0x473d 0x473e 0x473f 0x4740 0x4741 0x4742 0x4743 0x4744 0x4745 0x4746 0x4747 0x4748 0x4749 0x474a 0x474b 0x474c 0x474d 0x474e 0x474f 0x4750 0x4751 0x4752 0x4753 0x4754 0x4755 0x4756 0x4757 0x4758 0x4759 0x475a 0x475b 0x475c 0x475d 0x475e 0x475f -1 0x4760 0x4761 0x4762 0x4763 0x4764 0x4765 0x4766 0x4767 0x4768 0x4769 0x476a 0x476b 0x476c 0x476d 0x476e 0x476f 0x4770 0x4771 0x4772 0x4773 0x4774 0x4775 0x4776 0x4777 0x4778 0x4779 0x477a 0x477b 0x477c 0x477d 0x477e 0x4821 0x4822 0x4823 0x4824 0x4825 0x4826 0x4827 0x4828 0x4829 0x482a 0x482b 0x482c 0x482d 0x482e 0x482f 0x4830 0x4831 0x4832 0x4833 0x4834 0x4835 0x4836 0x4837 0x4838 0x4839 0x483a 0x483b 0x483c 0x483d 0x483e 0x483f 0x4840 0x4841 0x4842 0x4843 0x4844 0x4845 0x4846 0x4847 0x4848 0x4849 0x484a 0x484b 0x484c 0x484d 0x484e 0x484f 0x4850 0x4851 0x4852 0x4853 0x4854 0x4855 0x4856 0x4857 0x4858 0x4859 0x485a 0x485b 0x485c 0x485d 0x485e 0x485f 0x4860 0x4861 0x4862 0x4863 0x4864 0x4865 0x4866 0x4867 0x4868 0x4869 0x486a 0x486b 0x486c 0x486d 0x486e 0x486f 0x4870 0x4871 0x4872 0x4873 0x4874 0x4875 0x4876 0x4877 0x4878 0x4879 0x487a 0x487b 0x487c 0x487d 0x487e ) ; 0x9540 ... 0x95fc (block 20 0x4921 0x4922 0x4923 0x4924 0x4925 0x4926 0x4927 0x4928 0x4929 0x492a 0x492b 0x492c 0x492d 0x492e 0x492f 0x4930 0x4931 0x4932 0x4933 0x4934 0x4935 0x4936 0x4937 0x4938 0x4939 0x493a 0x493b 0x493c 0x493d 0x493e 0x493f 0x4940 0x4941 0x4942 0x4943 0x4944 0x4945 0x4946 0x4947 0x4948 0x4949 0x494a 0x494b 0x494c 0x494d 0x494e 0x494f 0x4950 0x4951 0x4952 0x4953 0x4954 0x4955 0x4956 0x4957 0x4958 0x4959 0x495a 0x495b 0x495c 0x495d 0x495e 0x495f -1 0x4960 0x4961 0x4962 0x4963 0x4964 0x4965 0x4966 0x4967 0x4968 0x4969 0x496a 0x496b 0x496c 0x496d 0x496e 0x496f 0x4970 0x4971 0x4972 0x4973 0x4974 0x4975 0x4976 0x4977 0x4978 0x4979 0x497a 0x497b 0x497c 0x497d 0x497e 0x4a21 0x4a22 0x4a23 0x4a24 0x4a25 0x4a26 0x4a27 0x4a28 0x4a29 0x4a2a 0x4a2b 0x4a2c 0x4a2d 0x4a2e 0x4a2f 0x4a30 0x4a31 0x4a32 0x4a33 0x4a34 0x4a35 0x4a36 0x4a37 0x4a38 0x4a39 0x4a3a 0x4a3b 0x4a3c 0x4a3d 0x4a3e 0x4a3f 0x4a40 0x4a41 0x4a42 0x4a43 0x4a44 0x4a45 0x4a46 0x4a47 0x4a48 0x4a49 0x4a4a 0x4a4b 0x4a4c 0x4a4d 0x4a4e 0x4a4f 0x4a50 0x4a51 0x4a52 0x4a53 0x4a54 0x4a55 0x4a56 0x4a57 0x4a58 0x4a59 0x4a5a 0x4a5b 0x4a5c 0x4a5d 0x4a5e 0x4a5f 0x4a60 0x4a61 0x4a62 0x4a63 0x4a64 0x4a65 0x4a66 0x4a67 0x4a68 0x4a69 0x4a6a 0x4a6b 0x4a6c 0x4a6d 0x4a6e 0x4a6f 0x4a70 0x4a71 0x4a72 0x4a73 0x4a74 0x4a75 0x4a76 0x4a77 0x4a78 0x4a79 0x4a7a 0x4a7b 0x4a7c 0x4a7d 0x4a7e ) ; 0x9640 ... 0x96fc (block 21 0x4b21 0x4b22 0x4b23 0x4b24 0x4b25 0x4b26 0x4b27 0x4b28 0x4b29 0x4b2a 0x4b2b 0x4b2c 0x4b2d 0x4b2e 0x4b2f 0x4b30 0x4b31 0x4b32 0x4b33 0x4b34 0x4b35 0x4b36 0x4b37 0x4b38 0x4b39 0x4b3a 0x4b3b 0x4b3c 0x4b3d 0x4b3e 0x4b3f 0x4b40 0x4b41 0x4b42 0x4b43 0x4b44 0x4b45 0x4b46 0x4b47 0x4b48 0x4b49 0x4b4a 0x4b4b 0x4b4c 0x4b4d 0x4b4e 0x4b4f 0x4b50 0x4b51 0x4b52 0x4b53 0x4b54 0x4b55 0x4b56 0x4b57 0x4b58 0x4b59 0x4b5a 0x4b5b 0x4b5c 0x4b5d 0x4b5e 0x4b5f -1 0x4b60 0x4b61 0x4b62 0x4b63 0x4b64 0x4b65 0x4b66 0x4b67 0x4b68 0x4b69 0x4b6a 0x4b6b 0x4b6c 0x4b6d 0x4b6e 0x4b6f 0x4b70 0x4b71 0x4b72 0x4b73 0x4b74 0x4b75 0x4b76 0x4b77 0x4b78 0x4b79 0x4b7a 0x4b7b 0x4b7c 0x4b7d 0x4b7e 0x4c21 0x4c22 0x4c23 0x4c24 0x4c25 0x4c26 0x4c27 0x4c28 0x4c29 0x4c2a 0x4c2b 0x4c2c 0x4c2d 0x4c2e 0x4c2f 0x4c30 0x4c31 0x4c32 0x4c33 0x4c34 0x4c35 0x4c36 0x4c37 0x4c38 0x4c39 0x4c3a 0x4c3b 0x4c3c 0x4c3d 0x4c3e 0x4c3f 0x4c40 0x4c41 0x4c42 0x4c43 0x4c44 0x4c45 0x4c46 0x4c47 0x4c48 0x4c49 0x4c4a 0x4c4b 0x4c4c 0x4c4d 0x4c4e 0x4c4f 0x4c50 0x4c51 0x4c52 0x4c53 0x4c54 0x4c55 0x4c56 0x4c57 0x4c58 0x4c59 0x4c5a 0x4c5b 0x4c5c 0x4c5d 0x4c5e 0x4c5f 0x4c60 0x4c61 0x4c62 0x4c63 0x4c64 0x4c65 0x4c66 0x4c67 0x4c68 0x4c69 0x4c6a 0x4c6b 0x4c6c 0x4c6d 0x4c6e 0x4c6f 0x4c70 0x4c71 0x4c72 0x4c73 0x4c74 0x4c75 0x4c76 0x4c77 0x4c78 0x4c79 0x4c7a 0x4c7b 0x4c7c 0x4c7d 0x4c7e ) ; 0x9740 ... 0x97fc (block 22 0x4d21 0x4d22 0x4d23 0x4d24 0x4d25 0x4d26 0x4d27 0x4d28 0x4d29 0x4d2a 0x4d2b 0x4d2c 0x4d2d 0x4d2e 0x4d2f 0x4d30 0x4d31 0x4d32 0x4d33 0x4d34 0x4d35 0x4d36 0x4d37 0x4d38 0x4d39 0x4d3a 0x4d3b 0x4d3c 0x4d3d 0x4d3e 0x4d3f 0x4d40 0x4d41 0x4d42 0x4d43 0x4d44 0x4d45 0x4d46 0x4d47 0x4d48 0x4d49 0x4d4a 0x4d4b 0x4d4c 0x4d4d 0x4d4e 0x4d4f 0x4d50 0x4d51 0x4d52 0x4d53 0x4d54 0x4d55 0x4d56 0x4d57 0x4d58 0x4d59 0x4d5a 0x4d5b 0x4d5c 0x4d5d 0x4d5e 0x4d5f -1 0x4d60 0x4d61 0x4d62 0x4d63 0x4d64 0x4d65 0x4d66 0x4d67 0x4d68 0x4d69 0x4d6a 0x4d6b 0x4d6c 0x4d6d 0x4d6e 0x4d6f 0x4d70 0x4d71 0x4d72 0x4d73 0x4d74 0x4d75 0x4d76 0x4d77 0x4d78 0x4d79 0x4d7a 0x4d7b 0x4d7c 0x4d7d 0x4d7e 0x4e21 0x4e22 0x4e23 0x4e24 0x4e25 0x4e26 0x4e27 0x4e28 0x4e29 0x4e2a 0x4e2b 0x4e2c 0x4e2d 0x4e2e 0x4e2f 0x4e30 0x4e31 0x4e32 0x4e33 0x4e34 0x4e35 0x4e36 0x4e37 0x4e38 0x4e39 0x4e3a 0x4e3b 0x4e3c 0x4e3d 0x4e3e 0x4e3f 0x4e40 0x4e41 0x4e42 0x4e43 0x4e44 0x4e45 0x4e46 0x4e47 0x4e48 0x4e49 0x4e4a 0x4e4b 0x4e4c 0x4e4d 0x4e4e 0x4e4f 0x4e50 0x4e51 0x4e52 0x4e53 0x4e54 0x4e55 0x4e56 0x4e57 0x4e58 0x4e59 0x4e5a 0x4e5b 0x4e5c 0x4e5d 0x4e5e 0x4e5f 0x4e60 0x4e61 0x4e62 0x4e63 0x4e64 0x4e65 0x4e66 0x4e67 0x4e68 0x4e69 0x4e6a 0x4e6b 0x4e6c 0x4e6d 0x4e6e 0x4e6f 0x4e70 0x4e71 0x4e72 0x4e73 0x4e74 0x4e75 0x4e76 0x4e77 0x4e78 0x4e79 0x4e7a 0x4e7b 0x4e7c 0x4e7d 0x4e7e ) ; 0x9840 ... 0x98fc (block 23 0x4f21 0x4f22 0x4f23 0x4f24 0x4f25 0x4f26 0x4f27 0x4f28 0x4f29 0x4f2a 0x4f2b 0x4f2c 0x4f2d 0x4f2e 0x4f2f 0x4f30 0x4f31 0x4f32 0x4f33 0x4f34 0x4f35 0x4f36 0x4f37 0x4f38 0x4f39 0x4f3a 0x4f3b 0x4f3c 0x4f3d 0x4f3e 0x4f3f 0x4f40 0x4f41 0x4f42 0x4f43 0x4f44 0x4f45 0x4f46 0x4f47 0x4f48 0x4f49 0x4f4a 0x4f4b 0x4f4c 0x4f4d 0x4f4e 0x4f4f 0x4f50 0x4f51 0x4f52 0x4f53 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x5021 0x5022 0x5023 0x5024 0x5025 0x5026 0x5027 0x5028 0x5029 0x502a 0x502b 0x502c 0x502d 0x502e 0x502f 0x5030 0x5031 0x5032 0x5033 0x5034 0x5035 0x5036 0x5037 0x5038 0x5039 0x503a 0x503b 0x503c 0x503d 0x503e 0x503f 0x5040 0x5041 0x5042 0x5043 0x5044 0x5045 0x5046 0x5047 0x5048 0x5049 0x504a 0x504b 0x504c 0x504d 0x504e 0x504f 0x5050 0x5051 0x5052 0x5053 0x5054 0x5055 0x5056 0x5057 0x5058 0x5059 0x505a 0x505b 0x505c 0x505d 0x505e 0x505f 0x5060 0x5061 0x5062 0x5063 0x5064 0x5065 0x5066 0x5067 0x5068 0x5069 0x506a 0x506b 0x506c 0x506d 0x506e 0x506f 0x5070 0x5071 0x5072 0x5073 0x5074 0x5075 0x5076 0x5077 0x5078 0x5079 0x507a 0x507b 0x507c 0x507d 0x507e ) ; 0x9940 ... 0x99fc (block 24 0x5121 0x5122 0x5123 0x5124 0x5125 0x5126 0x5127 0x5128 0x5129 0x512a 0x512b 0x512c 0x512d 0x512e 0x512f 0x5130 0x5131 0x5132 0x5133 0x5134 0x5135 0x5136 0x5137 0x5138 0x5139 0x513a 0x513b 0x513c 0x513d 0x513e 0x513f 0x5140 0x5141 0x5142 0x5143 0x5144 0x5145 0x5146 0x5147 0x5148 0x5149 0x514a 0x514b 0x514c 0x514d 0x514e 0x514f 0x5150 0x5151 0x5152 0x5153 0x5154 0x5155 0x5156 0x5157 0x5158 0x5159 0x515a 0x515b 0x515c 0x515d 0x515e 0x515f -1 0x5160 0x5161 0x5162 0x5163 0x5164 0x5165 0x5166 0x5167 0x5168 0x5169 0x516a 0x516b 0x516c 0x516d 0x516e 0x516f 0x5170 0x5171 0x5172 0x5173 0x5174 0x5175 0x5176 0x5177 0x5178 0x5179 0x517a 0x517b 0x517c 0x517d 0x517e 0x5221 0x5222 0x5223 0x5224 0x5225 0x5226 0x5227 0x5228 0x5229 0x522a 0x522b 0x522c 0x522d 0x522e 0x522f 0x5230 0x5231 0x5232 0x5233 0x5234 0x5235 0x5236 0x5237 0x5238 0x5239 0x523a 0x523b 0x523c 0x523d 0x523e 0x523f 0x5240 0x5241 0x5242 0x5243 0x5244 0x5245 0x5246 0x5247 0x5248 0x5249 0x524a 0x524b 0x524c 0x524d 0x524e 0x524f 0x5250 0x5251 0x5252 0x5253 0x5254 0x5255 0x5256 0x5257 0x5258 0x5259 0x525a 0x525b 0x525c 0x525d 0x525e 0x525f 0x5260 0x5261 0x5262 0x5263 0x5264 0x5265 0x5266 0x5267 0x5268 0x5269 0x526a 0x526b 0x526c 0x526d 0x526e 0x526f 0x5270 0x5271 0x5272 0x5273 0x5274 0x5275 0x5276 0x5277 0x5278 0x5279 0x527a 0x527b 0x527c 0x527d 0x527e ) ; 0x9a40 ... 0x9afc (block 25 0x5321 0x5322 0x5323 0x5324 0x5325 0x5326 0x5327 0x5328 0x5329 0x532a 0x532b 0x532c 0x532d 0x532e 0x532f 0x5330 0x5331 0x5332 0x5333 0x5334 0x5335 0x5336 0x5337 0x5338 0x5339 0x533a 0x533b 0x533c 0x533d 0x533e 0x533f 0x5340 0x5341 0x5342 0x5343 0x5344 0x5345 0x5346 0x5347 0x5348 0x5349 0x534a 0x534b 0x534c 0x534d 0x534e 0x534f 0x5350 0x5351 0x5352 0x5353 0x5354 0x5355 0x5356 0x5357 0x5358 0x5359 0x535a 0x535b 0x535c 0x535d 0x535e 0x535f -1 0x5360 0x5361 0x5362 0x5363 0x5364 0x5365 0x5366 0x5367 0x5368 0x5369 0x536a 0x536b 0x536c 0x536d 0x536e 0x536f 0x5370 0x5371 0x5372 0x5373 0x5374 0x5375 0x5376 0x5377 0x5378 0x5379 0x537a 0x537b 0x537c 0x537d 0x537e 0x5421 0x5422 0x5423 0x5424 0x5425 0x5426 0x5427 0x5428 0x5429 0x542a 0x542b 0x542c 0x542d 0x542e 0x542f 0x5430 0x5431 0x5432 0x5433 0x5434 0x5435 0x5436 0x5437 0x5438 0x5439 0x543a 0x543b 0x543c 0x543d 0x543e 0x543f 0x5440 0x5441 0x5442 0x5443 0x5444 0x5445 0x5446 0x5447 0x5448 0x5449 0x544a 0x544b 0x544c 0x544d 0x544e 0x544f 0x5450 0x5451 0x5452 0x5453 0x5454 0x5455 0x5456 0x5457 0x5458 0x5459 0x545a 0x545b 0x545c 0x545d 0x545e 0x545f 0x5460 0x5461 0x5462 0x5463 0x5464 0x5465 0x5466 0x5467 0x5468 0x5469 0x546a 0x546b 0x546c 0x546d 0x546e 0x546f 0x5470 0x5471 0x5472 0x5473 0x5474 0x5475 0x5476 0x5477 0x5478 0x5479 0x547a 0x547b 0x547c 0x547d 0x547e ) ; 0x9b40 ... 0x9bfc (block 26 0x5521 0x5522 0x5523 0x5524 0x5525 0x5526 0x5527 0x5528 0x5529 0x552a 0x552b 0x552c 0x552d 0x552e 0x552f 0x5530 0x5531 0x5532 0x5533 0x5534 0x5535 0x5536 0x5537 0x5538 0x5539 0x553a 0x553b 0x553c 0x553d 0x553e 0x553f 0x5540 0x5541 0x5542 0x5543 0x5544 0x5545 0x5546 0x5547 0x5548 0x5549 0x554a 0x554b 0x554c 0x554d 0x554e 0x554f 0x5550 0x5551 0x5552 0x5553 0x5554 0x5555 0x5556 0x5557 0x5558 0x5559 0x555a 0x555b 0x555c 0x555d 0x555e 0x555f -1 0x5560 0x5561 0x5562 0x5563 0x5564 0x5565 0x5566 0x5567 0x5568 0x5569 0x556a 0x556b 0x556c 0x556d 0x556e 0x556f 0x5570 0x5571 0x5572 0x5573 0x5574 0x5575 0x5576 0x5577 0x5578 0x5579 0x557a 0x557b 0x557c 0x557d 0x557e 0x5621 0x5622 0x5623 0x5624 0x5625 0x5626 0x5627 0x5628 0x5629 0x562a 0x562b 0x562c 0x562d 0x562e 0x562f 0x5630 0x5631 0x5632 0x5633 0x5634 0x5635 0x5636 0x5637 0x5638 0x5639 0x563a 0x563b 0x563c 0x563d 0x563e 0x563f 0x5640 0x5641 0x5642 0x5643 0x5644 0x5645 0x5646 0x5647 0x5648 0x5649 0x564a 0x564b 0x564c 0x564d 0x564e 0x564f 0x5650 0x5651 0x5652 0x5653 0x5654 0x5655 0x5656 0x5657 0x5658 0x5659 0x565a 0x565b 0x565c 0x565d 0x565e 0x565f 0x5660 0x5661 0x5662 0x5663 0x5664 0x5665 0x5666 0x5667 0x5668 0x5669 0x566a 0x566b 0x566c 0x566d 0x566e 0x566f 0x5670 0x5671 0x5672 0x5673 0x5674 0x5675 0x5676 0x5677 0x5678 0x5679 0x567a 0x567b 0x567c 0x567d 0x567e ) ; 0x9c40 ... 0x9cfc (block 27 0x5721 0x5722 0x5723 0x5724 0x5725 0x5726 0x5727 0x5728 0x5729 0x572a 0x572b 0x572c 0x572d 0x572e 0x572f 0x5730 0x5731 0x5732 0x5733 0x5734 0x5735 0x5736 0x5737 0x5738 0x5739 0x573a 0x573b 0x573c 0x573d 0x573e 0x573f 0x5740 0x5741 0x5742 0x5743 0x5744 0x5745 0x5746 0x5747 0x5748 0x5749 0x574a 0x574b 0x574c 0x574d 0x574e 0x574f 0x5750 0x5751 0x5752 0x5753 0x5754 0x5755 0x5756 0x5757 0x5758 0x5759 0x575a 0x575b 0x575c 0x575d 0x575e 0x575f -1 0x5760 0x5761 0x5762 0x5763 0x5764 0x5765 0x5766 0x5767 0x5768 0x5769 0x576a 0x576b 0x576c 0x576d 0x576e 0x576f 0x5770 0x5771 0x5772 0x5773 0x5774 0x5775 0x5776 0x5777 0x5778 0x5779 0x577a 0x577b 0x577c 0x577d 0x577e 0x5821 0x5822 0x5823 0x5824 0x5825 0x5826 0x5827 0x5828 0x5829 0x582a 0x582b 0x582c 0x582d 0x582e 0x582f 0x5830 0x5831 0x5832 0x5833 0x5834 0x5835 0x5836 0x5837 0x5838 0x5839 0x583a 0x583b 0x583c 0x583d 0x583e 0x583f 0x5840 0x5841 0x5842 0x5843 0x5844 0x5845 0x5846 0x5847 0x5848 0x5849 0x584a 0x584b 0x584c 0x584d 0x584e 0x584f 0x5850 0x5851 0x5852 0x5853 0x5854 0x5855 0x5856 0x5857 0x5858 0x5859 0x585a 0x585b 0x585c 0x585d 0x585e 0x585f 0x5860 0x5861 0x5862 0x5863 0x5864 0x5865 0x5866 0x5867 0x5868 0x5869 0x586a 0x586b 0x586c 0x586d 0x586e 0x586f 0x5870 0x5871 0x5872 0x5873 0x5874 0x5875 0x5876 0x5877 0x5878 0x5879 0x587a 0x587b 0x587c 0x587d 0x587e ) ; 0x9d40 ... 0x9dfc (block 28 0x5921 0x5922 0x5923 0x5924 0x5925 0x5926 0x5927 0x5928 0x5929 0x592a 0x592b 0x592c 0x592d 0x592e 0x592f 0x5930 0x5931 0x5932 0x5933 0x5934 0x5935 0x5936 0x5937 0x5938 0x5939 0x593a 0x593b 0x593c 0x593d 0x593e 0x593f 0x5940 0x5941 0x5942 0x5943 0x5944 0x5945 0x5946 0x5947 0x5948 0x5949 0x594a 0x594b 0x594c 0x594d 0x594e 0x594f 0x5950 0x5951 0x5952 0x5953 0x5954 0x5955 0x5956 0x5957 0x5958 0x5959 0x595a 0x595b 0x595c 0x595d 0x595e 0x595f -1 0x5960 0x5961 0x5962 0x5963 0x5964 0x5965 0x5966 0x5967 0x5968 0x5969 0x596a 0x596b 0x596c 0x596d 0x596e 0x596f 0x5970 0x5971 0x5972 0x5973 0x5974 0x5975 0x5976 0x5977 0x5978 0x5979 0x597a 0x597b 0x597c 0x597d 0x597e 0x5a21 0x5a22 0x5a23 0x5a24 0x5a25 0x5a26 0x5a27 0x5a28 0x5a29 0x5a2a 0x5a2b 0x5a2c 0x5a2d 0x5a2e 0x5a2f 0x5a30 0x5a31 0x5a32 0x5a33 0x5a34 0x5a35 0x5a36 0x5a37 0x5a38 0x5a39 0x5a3a 0x5a3b 0x5a3c 0x5a3d 0x5a3e 0x5a3f 0x5a40 0x5a41 0x5a42 0x5a43 0x5a44 0x5a45 0x5a46 0x5a47 0x5a48 0x5a49 0x5a4a 0x5a4b 0x5a4c 0x5a4d 0x5a4e 0x5a4f 0x5a50 0x5a51 0x5a52 0x5a53 0x5a54 0x5a55 0x5a56 0x5a57 0x5a58 0x5a59 0x5a5a 0x5a5b 0x5a5c 0x5a5d 0x5a5e 0x5a5f 0x5a60 0x5a61 0x5a62 0x5a63 0x5a64 0x5a65 0x5a66 0x5a67 0x5a68 0x5a69 0x5a6a 0x5a6b 0x5a6c 0x5a6d 0x5a6e 0x5a6f 0x5a70 0x5a71 0x5a72 0x5a73 0x5a74 0x5a75 0x5a76 0x5a77 0x5a78 0x5a79 0x5a7a 0x5a7b 0x5a7c 0x5a7d 0x5a7e ) ; 0x9e40 ... 0x9efc (block 29 0x5b21 0x5b22 0x5b23 0x5b24 0x5b25 0x5b26 0x5b27 0x5b28 0x5b29 0x5b2a 0x5b2b 0x5b2c 0x5b2d 0x5b2e 0x5b2f 0x5b30 0x5b31 0x5b32 0x5b33 0x5b34 0x5b35 0x5b36 0x5b37 0x5b38 0x5b39 0x5b3a 0x5b3b 0x5b3c 0x5b3d 0x5b3e 0x5b3f 0x5b40 0x5b41 0x5b42 0x5b43 0x5b44 0x5b45 0x5b46 0x5b47 0x5b48 0x5b49 0x5b4a 0x5b4b 0x5b4c 0x5b4d 0x5b4e 0x5b4f 0x5b50 0x5b51 0x5b52 0x5b53 0x5b54 0x5b55 0x5b56 0x5b57 0x5b58 0x5b59 0x5b5a 0x5b5b 0x5b5c 0x5b5d 0x5b5e 0x5b5f -1 0x5b60 0x5b61 0x5b62 0x5b63 0x5b64 0x5b65 0x5b66 0x5b67 0x5b68 0x5b69 0x5b6a 0x5b6b 0x5b6c 0x5b6d 0x5b6e 0x5b6f 0x5b70 0x5b71 0x5b72 0x5b73 0x5b74 0x5b75 0x5b76 0x5b77 0x5b78 0x5b79 0x5b7a 0x5b7b 0x5b7c 0x5b7d 0x5b7e 0x5c21 0x5c22 0x5c23 0x5c24 0x5c25 0x5c26 0x5c27 0x5c28 0x5c29 0x5c2a 0x5c2b 0x5c2c 0x5c2d 0x5c2e 0x5c2f 0x5c30 0x5c31 0x5c32 0x5c33 0x5c34 0x5c35 0x5c36 0x5c37 0x5c38 0x5c39 0x5c3a 0x5c3b 0x5c3c 0x5c3d 0x5c3e 0x5c3f 0x5c40 0x5c41 0x5c42 0x5c43 0x5c44 0x5c45 0x5c46 0x5c47 0x5c48 0x5c49 0x5c4a 0x5c4b 0x5c4c 0x5c4d 0x5c4e 0x5c4f 0x5c50 0x5c51 0x5c52 0x5c53 0x5c54 0x5c55 0x5c56 0x5c57 0x5c58 0x5c59 0x5c5a 0x5c5b 0x5c5c 0x5c5d 0x5c5e 0x5c5f 0x5c60 0x5c61 0x5c62 0x5c63 0x5c64 0x5c65 0x5c66 0x5c67 0x5c68 0x5c69 0x5c6a 0x5c6b 0x5c6c 0x5c6d 0x5c6e 0x5c6f 0x5c70 0x5c71 0x5c72 0x5c73 0x5c74 0x5c75 0x5c76 0x5c77 0x5c78 0x5c79 0x5c7a 0x5c7b 0x5c7c 0x5c7d 0x5c7e ) ; 0x9f40 ... 0x9ffc (block 30 0x5d21 0x5d22 0x5d23 0x5d24 0x5d25 0x5d26 0x5d27 0x5d28 0x5d29 0x5d2a 0x5d2b 0x5d2c 0x5d2d 0x5d2e 0x5d2f 0x5d30 0x5d31 0x5d32 0x5d33 0x5d34 0x5d35 0x5d36 0x5d37 0x5d38 0x5d39 0x5d3a 0x5d3b 0x5d3c 0x5d3d 0x5d3e 0x5d3f 0x5d40 0x5d41 0x5d42 0x5d43 0x5d44 0x5d45 0x5d46 0x5d47 0x5d48 0x5d49 0x5d4a 0x5d4b 0x5d4c 0x5d4d 0x5d4e 0x5d4f 0x5d50 0x5d51 0x5d52 0x5d53 0x5d54 0x5d55 0x5d56 0x5d57 0x5d58 0x5d59 0x5d5a 0x5d5b 0x5d5c 0x5d5d 0x5d5e 0x5d5f -1 0x5d60 0x5d61 0x5d62 0x5d63 0x5d64 0x5d65 0x5d66 0x5d67 0x5d68 0x5d69 0x5d6a 0x5d6b 0x5d6c 0x5d6d 0x5d6e 0x5d6f 0x5d70 0x5d71 0x5d72 0x5d73 0x5d74 0x5d75 0x5d76 0x5d77 0x5d78 0x5d79 0x5d7a 0x5d7b 0x5d7c 0x5d7d 0x5d7e 0x5e21 0x5e22 0x5e23 0x5e24 0x5e25 0x5e26 0x5e27 0x5e28 0x5e29 0x5e2a 0x5e2b 0x5e2c 0x5e2d 0x5e2e 0x5e2f 0x5e30 0x5e31 0x5e32 0x5e33 0x5e34 0x5e35 0x5e36 0x5e37 0x5e38 0x5e39 0x5e3a 0x5e3b 0x5e3c 0x5e3d 0x5e3e 0x5e3f 0x5e40 0x5e41 0x5e42 0x5e43 0x5e44 0x5e45 0x5e46 0x5e47 0x5e48 0x5e49 0x5e4a 0x5e4b 0x5e4c 0x5e4d 0x5e4e 0x5e4f 0x5e50 0x5e51 0x5e52 0x5e53 0x5e54 0x5e55 0x5e56 0x5e57 0x5e58 0x5e59 0x5e5a 0x5e5b 0x5e5c 0x5e5d 0x5e5e 0x5e5f 0x5e60 0x5e61 0x5e62 0x5e63 0x5e64 0x5e65 0x5e66 0x5e67 0x5e68 0x5e69 0x5e6a 0x5e6b 0x5e6c 0x5e6d 0x5e6e 0x5e6f 0x5e70 0x5e71 0x5e72 0x5e73 0x5e74 0x5e75 0x5e76 0x5e77 0x5e78 0x5e79 0x5e7a 0x5e7b 0x5e7c 0x5e7d 0x5e7e ) ; 0xa040 ... 0xa0fc (block 31 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xa140 ... 0xa1fc (block 32 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xa240 ... 0xa2fc (block 33 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xa340 ... 0xa3fc (block 34 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xa440 ... 0xa4fc (block 35 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xa540 ... 0xa5fc (block 36 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xa640 ... 0xa6fc (block 37 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xa740 ... 0xa7fc (block 38 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xa840 ... 0xa8fc (block 39 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xa940 ... 0xa9fc (block 40 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xaa40 ... 0xaafc (block 41 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xab40 ... 0xabfc (block 42 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xac40 ... 0xacfc (block 43 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xad40 ... 0xadfc (block 44 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xae40 ... 0xaefc (block 45 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xaf40 ... 0xaffc (block 46 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xb040 ... 0xb0fc (block 47 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xb140 ... 0xb1fc (block 48 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xb240 ... 0xb2fc (block 49 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xb340 ... 0xb3fc (block 50 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xb440 ... 0xb4fc (block 51 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xb540 ... 0xb5fc (block 52 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xb640 ... 0xb6fc (block 53 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xb740 ... 0xb7fc (block 54 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xb840 ... 0xb8fc (block 55 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xb940 ... 0xb9fc (block 56 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xba40 ... 0xbafc (block 57 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xbb40 ... 0xbbfc (block 58 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xbc40 ... 0xbcfc (block 59 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xbd40 ... 0xbdfc (block 60 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xbe40 ... 0xbefc (block 61 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xbf40 ... 0xbffc (block 62 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xc040 ... 0xc0fc (block 63 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xc140 ... 0xc1fc (block 64 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xc240 ... 0xc2fc (block 65 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xc340 ... 0xc3fc (block 66 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xc440 ... 0xc4fc (block 67 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xc540 ... 0xc5fc (block 68 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xc640 ... 0xc6fc (block 69 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xc740 ... 0xc7fc (block 70 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xc840 ... 0xc8fc (block 71 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xc940 ... 0xc9fc (block 72 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xca40 ... 0xcafc (block 73 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xcb40 ... 0xcbfc (block 74 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xcc40 ... 0xccfc (block 75 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xcd40 ... 0xcdfc (block 76 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xce40 ... 0xcefc (block 77 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xcf40 ... 0xcffc (block 78 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xd040 ... 0xd0fc (block 79 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xd140 ... 0xd1fc (block 80 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xd240 ... 0xd2fc (block 81 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xd340 ... 0xd3fc (block 82 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xd440 ... 0xd4fc (block 83 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xd540 ... 0xd5fc (block 84 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xd640 ... 0xd6fc (block 85 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xd740 ... 0xd7fc (block 86 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xd840 ... 0xd8fc (block 87 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xd940 ... 0xd9fc (block 88 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xda40 ... 0xdafc (block 89 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xdb40 ... 0xdbfc (block 90 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xdc40 ... 0xdcfc (block 91 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xdd40 ... 0xddfc (block 92 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xde40 ... 0xdefc (block 93 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xdf40 ... 0xdffc (block 94 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xe040 ... 0xe0fc (block 95 0x5f21 0x5f22 0x5f23 0x5f24 0x5f25 0x5f26 0x5f27 0x5f28 0x5f29 0x5f2a 0x5f2b 0x5f2c 0x5f2d 0x5f2e 0x5f2f 0x5f30 0x5f31 0x5f32 0x5f33 0x5f34 0x5f35 0x5f36 0x5f37 0x5f38 0x5f39 0x5f3a 0x5f3b 0x5f3c 0x5f3d 0x5f3e 0x5f3f 0x5f40 0x5f41 0x5f42 0x5f43 0x5f44 0x5f45 0x5f46 0x5f47 0x5f48 0x5f49 0x5f4a 0x5f4b 0x5f4c 0x5f4d 0x5f4e 0x5f4f 0x5f50 0x5f51 0x5f52 0x5f53 0x5f54 0x5f55 0x5f56 0x5f57 0x5f58 0x5f59 0x5f5a 0x5f5b 0x5f5c 0x5f5d 0x5f5e 0x5f5f -1 0x5f60 0x5f61 0x5f62 0x5f63 0x5f64 0x5f65 0x5f66 0x5f67 0x5f68 0x5f69 0x5f6a 0x5f6b 0x5f6c 0x5f6d 0x5f6e 0x5f6f 0x5f70 0x5f71 0x5f72 0x5f73 0x5f74 0x5f75 0x5f76 0x5f77 0x5f78 0x5f79 0x5f7a 0x5f7b 0x5f7c 0x5f7d 0x5f7e 0x6021 0x6022 0x6023 0x6024 0x6025 0x6026 0x6027 0x6028 0x6029 0x602a 0x602b 0x602c 0x602d 0x602e 0x602f 0x6030 0x6031 0x6032 0x6033 0x6034 0x6035 0x6036 0x6037 0x6038 0x6039 0x603a 0x603b 0x603c 0x603d 0x603e 0x603f 0x6040 0x6041 0x6042 0x6043 0x6044 0x6045 0x6046 0x6047 0x6048 0x6049 0x604a 0x604b 0x604c 0x604d 0x604e 0x604f 0x6050 0x6051 0x6052 0x6053 0x6054 0x6055 0x6056 0x6057 0x6058 0x6059 0x605a 0x605b 0x605c 0x605d 0x605e 0x605f 0x6060 0x6061 0x6062 0x6063 0x6064 0x6065 0x6066 0x6067 0x6068 0x6069 0x606a 0x606b 0x606c 0x606d 0x606e 0x606f 0x6070 0x6071 0x6072 0x6073 0x6074 0x6075 0x6076 0x6077 0x6078 0x6079 0x607a 0x607b 0x607c 0x607d 0x607e ) ; 0xe140 ... 0xe1fc (block 96 0x6121 0x6122 0x6123 0x6124 0x6125 0x6126 0x6127 0x6128 0x6129 0x612a 0x612b 0x612c 0x612d 0x612e 0x612f 0x6130 0x6131 0x6132 0x6133 0x6134 0x6135 0x6136 0x6137 0x6138 0x6139 0x613a 0x613b 0x613c 0x613d 0x613e 0x613f 0x6140 0x6141 0x6142 0x6143 0x6144 0x6145 0x6146 0x6147 0x6148 0x6149 0x614a 0x614b 0x614c 0x614d 0x614e 0x614f 0x6150 0x6151 0x6152 0x6153 0x6154 0x6155 0x6156 0x6157 0x6158 0x6159 0x615a 0x615b 0x615c 0x615d 0x615e 0x615f -1 0x6160 0x6161 0x6162 0x6163 0x6164 0x6165 0x6166 0x6167 0x6168 0x6169 0x616a 0x616b 0x616c 0x616d 0x616e 0x616f 0x6170 0x6171 0x6172 0x6173 0x6174 0x6175 0x6176 0x6177 0x6178 0x6179 0x617a 0x617b 0x617c 0x617d 0x617e 0x6221 0x6222 0x6223 0x6224 0x6225 0x6226 0x6227 0x6228 0x6229 0x622a 0x622b 0x622c 0x622d 0x622e 0x622f 0x6230 0x6231 0x6232 0x6233 0x6234 0x6235 0x6236 0x6237 0x6238 0x6239 0x623a 0x623b 0x623c 0x623d 0x623e 0x623f 0x6240 0x6241 0x6242 0x6243 0x6244 0x6245 0x6246 0x6247 0x6248 0x6249 0x624a 0x624b 0x624c 0x624d 0x624e 0x624f 0x6250 0x6251 0x6252 0x6253 0x6254 0x6255 0x6256 0x6257 0x6258 0x6259 0x625a 0x625b 0x625c 0x625d 0x625e 0x625f 0x6260 0x6261 0x6262 0x6263 0x6264 0x6265 0x6266 0x6267 0x6268 0x6269 0x626a 0x626b 0x626c 0x626d 0x626e 0x626f 0x6270 0x6271 0x6272 0x6273 0x6274 0x6275 0x6276 0x6277 0x6278 0x6279 0x627a 0x627b 0x627c 0x627d 0x627e ) ; 0xe240 ... 0xe2fc (block 97 0x6321 0x6322 0x6323 0x6324 0x6325 0x6326 0x6327 0x6328 0x6329 0x632a 0x632b 0x632c 0x632d 0x632e 0x632f 0x6330 0x6331 0x6332 0x6333 0x6334 0x6335 0x6336 0x6337 0x6338 0x6339 0x633a 0x633b 0x633c 0x633d 0x633e 0x633f 0x6340 0x6341 0x6342 0x6343 0x6344 0x6345 0x6346 0x6347 0x6348 0x6349 0x634a 0x634b 0x634c 0x634d 0x634e 0x634f 0x6350 0x6351 0x6352 0x6353 0x6354 0x6355 0x6356 0x6357 0x6358 0x6359 0x635a 0x635b 0x635c 0x635d 0x635e 0x635f -1 0x6360 0x6361 0x6362 0x6363 0x6364 0x6365 0x6366 0x6367 0x6368 0x6369 0x636a 0x636b 0x636c 0x636d 0x636e 0x636f 0x6370 0x6371 0x6372 0x6373 0x6374 0x6375 0x6376 0x6377 0x6378 0x6379 0x637a 0x637b 0x637c 0x637d 0x637e 0x6421 0x6422 0x6423 0x6424 0x6425 0x6426 0x6427 0x6428 0x6429 0x642a 0x642b 0x642c 0x642d 0x642e 0x642f 0x6430 0x6431 0x6432 0x6433 0x6434 0x6435 0x6436 0x6437 0x6438 0x6439 0x643a 0x643b 0x643c 0x643d 0x643e 0x643f 0x6440 0x6441 0x6442 0x6443 0x6444 0x6445 0x6446 0x6447 0x6448 0x6449 0x644a 0x644b 0x644c 0x644d 0x644e 0x644f 0x6450 0x6451 0x6452 0x6453 0x6454 0x6455 0x6456 0x6457 0x6458 0x6459 0x645a 0x645b 0x645c 0x645d 0x645e 0x645f 0x6460 0x6461 0x6462 0x6463 0x6464 0x6465 0x6466 0x6467 0x6468 0x6469 0x646a 0x646b 0x646c 0x646d 0x646e 0x646f 0x6470 0x6471 0x6472 0x6473 0x6474 0x6475 0x6476 0x6477 0x6478 0x6479 0x647a 0x647b 0x647c 0x647d 0x647e ) ; 0xe340 ... 0xe3fc (block 98 0x6521 0x6522 0x6523 0x6524 0x6525 0x6526 0x6527 0x6528 0x6529 0x652a 0x652b 0x652c 0x652d 0x652e 0x652f 0x6530 0x6531 0x6532 0x6533 0x6534 0x6535 0x6536 0x6537 0x6538 0x6539 0x653a 0x653b 0x653c 0x653d 0x653e 0x653f 0x6540 0x6541 0x6542 0x6543 0x6544 0x6545 0x6546 0x6547 0x6548 0x6549 0x654a 0x654b 0x654c 0x654d 0x654e 0x654f 0x6550 0x6551 0x6552 0x6553 0x6554 0x6555 0x6556 0x6557 0x6558 0x6559 0x655a 0x655b 0x655c 0x655d 0x655e 0x655f -1 0x6560 0x6561 0x6562 0x6563 0x6564 0x6565 0x6566 0x6567 0x6568 0x6569 0x656a 0x656b 0x656c 0x656d 0x656e 0x656f 0x6570 0x6571 0x6572 0x6573 0x6574 0x6575 0x6576 0x6577 0x6578 0x6579 0x657a 0x657b 0x657c 0x657d 0x657e 0x6621 0x6622 0x6623 0x6624 0x6625 0x6626 0x6627 0x6628 0x6629 0x662a 0x662b 0x662c 0x662d 0x662e 0x662f 0x6630 0x6631 0x6632 0x6633 0x6634 0x6635 0x6636 0x6637 0x6638 0x6639 0x663a 0x663b 0x663c 0x663d 0x663e 0x663f 0x6640 0x6641 0x6642 0x6643 0x6644 0x6645 0x6646 0x6647 0x6648 0x6649 0x664a 0x664b 0x664c 0x664d 0x664e 0x664f 0x6650 0x6651 0x6652 0x6653 0x6654 0x6655 0x6656 0x6657 0x6658 0x6659 0x665a 0x665b 0x665c 0x665d 0x665e 0x665f 0x6660 0x6661 0x6662 0x6663 0x6664 0x6665 0x6666 0x6667 0x6668 0x6669 0x666a 0x666b 0x666c 0x666d 0x666e 0x666f 0x6670 0x6671 0x6672 0x6673 0x6674 0x6675 0x6676 0x6677 0x6678 0x6679 0x667a 0x667b 0x667c 0x667d 0x667e ) ; 0xe440 ... 0xe4fc (block 99 0x6721 0x6722 0x6723 0x6724 0x6725 0x6726 0x6727 0x6728 0x6729 0x672a 0x672b 0x672c 0x672d 0x672e 0x672f 0x6730 0x6731 0x6732 0x6733 0x6734 0x6735 0x6736 0x6737 0x6738 0x6739 0x673a 0x673b 0x673c 0x673d 0x673e 0x673f 0x6740 0x6741 0x6742 0x6743 0x6744 0x6745 0x6746 0x6747 0x6748 0x6749 0x674a 0x674b 0x674c 0x674d 0x674e 0x674f 0x6750 0x6751 0x6752 0x6753 0x6754 0x6755 0x6756 0x6757 0x6758 0x6759 0x675a 0x675b 0x675c 0x675d 0x675e 0x675f -1 0x6760 0x6761 0x6762 0x6763 0x6764 0x6765 0x6766 0x6767 0x6768 0x6769 0x676a 0x676b 0x676c 0x676d 0x676e 0x676f 0x6770 0x6771 0x6772 0x6773 0x6774 0x6775 0x6776 0x6777 0x6778 0x6779 0x677a 0x677b 0x677c 0x677d 0x677e 0x6821 0x6822 0x6823 0x6824 0x6825 0x6826 0x6827 0x6828 0x6829 0x682a 0x682b 0x682c 0x682d 0x682e 0x682f 0x6830 0x6831 0x6832 0x6833 0x6834 0x6835 0x6836 0x6837 0x6838 0x6839 0x683a 0x683b 0x683c 0x683d 0x683e 0x683f 0x6840 0x6841 0x6842 0x6843 0x6844 0x6845 0x6846 0x6847 0x6848 0x6849 0x684a 0x684b 0x684c 0x684d 0x684e 0x684f 0x6850 0x6851 0x6852 0x6853 0x6854 0x6855 0x6856 0x6857 0x6858 0x6859 0x685a 0x685b 0x685c 0x685d 0x685e 0x685f 0x6860 0x6861 0x6862 0x6863 0x6864 0x6865 0x6866 0x6867 0x6868 0x6869 0x686a 0x686b 0x686c 0x686d 0x686e 0x686f 0x6870 0x6871 0x6872 0x6873 0x6874 0x6875 0x6876 0x6877 0x6878 0x6879 0x687a 0x687b 0x687c 0x687d 0x687e ) ; 0xe540 ... 0xe5fc (block 100 0x6921 0x6922 0x6923 0x6924 0x6925 0x6926 0x6927 0x6928 0x6929 0x692a 0x692b 0x692c 0x692d 0x692e 0x692f 0x6930 0x6931 0x6932 0x6933 0x6934 0x6935 0x6936 0x6937 0x6938 0x6939 0x693a 0x693b 0x693c 0x693d 0x693e 0x693f 0x6940 0x6941 0x6942 0x6943 0x6944 0x6945 0x6946 0x6947 0x6948 0x6949 0x694a 0x694b 0x694c 0x694d 0x694e 0x694f 0x6950 0x6951 0x6952 0x6953 0x6954 0x6955 0x6956 0x6957 0x6958 0x6959 0x695a 0x695b 0x695c 0x695d 0x695e 0x695f -1 0x6960 0x6961 0x6962 0x6963 0x6964 0x6965 0x6966 0x6967 0x6968 0x6969 0x696a 0x696b 0x696c 0x696d 0x696e 0x696f 0x6970 0x6971 0x6972 0x6973 0x6974 0x6975 0x6976 0x6977 0x6978 0x6979 0x697a 0x697b 0x697c 0x697d 0x697e 0x6a21 0x6a22 0x6a23 0x6a24 0x6a25 0x6a26 0x6a27 0x6a28 0x6a29 0x6a2a 0x6a2b 0x6a2c 0x6a2d 0x6a2e 0x6a2f 0x6a30 0x6a31 0x6a32 0x6a33 0x6a34 0x6a35 0x6a36 0x6a37 0x6a38 0x6a39 0x6a3a 0x6a3b 0x6a3c 0x6a3d 0x6a3e 0x6a3f 0x6a40 0x6a41 0x6a42 0x6a43 0x6a44 0x6a45 0x6a46 0x6a47 0x6a48 0x6a49 0x6a4a 0x6a4b 0x6a4c 0x6a4d 0x6a4e 0x6a4f 0x6a50 0x6a51 0x6a52 0x6a53 0x6a54 0x6a55 0x6a56 0x6a57 0x6a58 0x6a59 0x6a5a 0x6a5b 0x6a5c 0x6a5d 0x6a5e 0x6a5f 0x6a60 0x6a61 0x6a62 0x6a63 0x6a64 0x6a65 0x6a66 0x6a67 0x6a68 0x6a69 0x6a6a 0x6a6b 0x6a6c 0x6a6d 0x6a6e 0x6a6f 0x6a70 0x6a71 0x6a72 0x6a73 0x6a74 0x6a75 0x6a76 0x6a77 0x6a78 0x6a79 0x6a7a 0x6a7b 0x6a7c 0x6a7d 0x6a7e ) ; 0xe640 ... 0xe6fc (block 101 0x6b21 0x6b22 0x6b23 0x6b24 0x6b25 0x6b26 0x6b27 0x6b28 0x6b29 0x6b2a 0x6b2b 0x6b2c 0x6b2d 0x6b2e 0x6b2f 0x6b30 0x6b31 0x6b32 0x6b33 0x6b34 0x6b35 0x6b36 0x6b37 0x6b38 0x6b39 0x6b3a 0x6b3b 0x6b3c 0x6b3d 0x6b3e 0x6b3f 0x6b40 0x6b41 0x6b42 0x6b43 0x6b44 0x6b45 0x6b46 0x6b47 0x6b48 0x6b49 0x6b4a 0x6b4b 0x6b4c 0x6b4d 0x6b4e 0x6b4f 0x6b50 0x6b51 0x6b52 0x6b53 0x6b54 0x6b55 0x6b56 0x6b57 0x6b58 0x6b59 0x6b5a 0x6b5b 0x6b5c 0x6b5d 0x6b5e 0x6b5f -1 0x6b60 0x6b61 0x6b62 0x6b63 0x6b64 0x6b65 0x6b66 0x6b67 0x6b68 0x6b69 0x6b6a 0x6b6b 0x6b6c 0x6b6d 0x6b6e 0x6b6f 0x6b70 0x6b71 0x6b72 0x6b73 0x6b74 0x6b75 0x6b76 0x6b77 0x6b78 0x6b79 0x6b7a 0x6b7b 0x6b7c 0x6b7d 0x6b7e 0x6c21 0x6c22 0x6c23 0x6c24 0x6c25 0x6c26 0x6c27 0x6c28 0x6c29 0x6c2a 0x6c2b 0x6c2c 0x6c2d 0x6c2e 0x6c2f 0x6c30 0x6c31 0x6c32 0x6c33 0x6c34 0x6c35 0x6c36 0x6c37 0x6c38 0x6c39 0x6c3a 0x6c3b 0x6c3c 0x6c3d 0x6c3e 0x6c3f 0x6c40 0x6c41 0x6c42 0x6c43 0x6c44 0x6c45 0x6c46 0x6c47 0x6c48 0x6c49 0x6c4a 0x6c4b 0x6c4c 0x6c4d 0x6c4e 0x6c4f 0x6c50 0x6c51 0x6c52 0x6c53 0x6c54 0x6c55 0x6c56 0x6c57 0x6c58 0x6c59 0x6c5a 0x6c5b 0x6c5c 0x6c5d 0x6c5e 0x6c5f 0x6c60 0x6c61 0x6c62 0x6c63 0x6c64 0x6c65 0x6c66 0x6c67 0x6c68 0x6c69 0x6c6a 0x6c6b 0x6c6c 0x6c6d 0x6c6e 0x6c6f 0x6c70 0x6c71 0x6c72 0x6c73 0x6c74 0x6c75 0x6c76 0x6c77 0x6c78 0x6c79 0x6c7a 0x6c7b 0x6c7c 0x6c7d 0x6c7e ) ; 0xe740 ... 0xe7fc (block 102 0x6d21 0x6d22 0x6d23 0x6d24 0x6d25 0x6d26 0x6d27 0x6d28 0x6d29 0x6d2a 0x6d2b 0x6d2c 0x6d2d 0x6d2e 0x6d2f 0x6d30 0x6d31 0x6d32 0x6d33 0x6d34 0x6d35 0x6d36 0x6d37 0x6d38 0x6d39 0x6d3a 0x6d3b 0x6d3c 0x6d3d 0x6d3e 0x6d3f 0x6d40 0x6d41 0x6d42 0x6d43 0x6d44 0x6d45 0x6d46 0x6d47 0x6d48 0x6d49 0x6d4a 0x6d4b 0x6d4c 0x6d4d 0x6d4e 0x6d4f 0x6d50 0x6d51 0x6d52 0x6d53 0x6d54 0x6d55 0x6d56 0x6d57 0x6d58 0x6d59 0x6d5a 0x6d5b 0x6d5c 0x6d5d 0x6d5e 0x6d5f -1 0x6d60 0x6d61 0x6d62 0x6d63 0x6d64 0x6d65 0x6d66 0x6d67 0x6d68 0x6d69 0x6d6a 0x6d6b 0x6d6c 0x6d6d 0x6d6e 0x6d6f 0x6d70 0x6d71 0x6d72 0x6d73 0x6d74 0x6d75 0x6d76 0x6d77 0x6d78 0x6d79 0x6d7a 0x6d7b 0x6d7c 0x6d7d 0x6d7e 0x6e21 0x6e22 0x6e23 0x6e24 0x6e25 0x6e26 0x6e27 0x6e28 0x6e29 0x6e2a 0x6e2b 0x6e2c 0x6e2d 0x6e2e 0x6e2f 0x6e30 0x6e31 0x6e32 0x6e33 0x6e34 0x6e35 0x6e36 0x6e37 0x6e38 0x6e39 0x6e3a 0x6e3b 0x6e3c 0x6e3d 0x6e3e 0x6e3f 0x6e40 0x6e41 0x6e42 0x6e43 0x6e44 0x6e45 0x6e46 0x6e47 0x6e48 0x6e49 0x6e4a 0x6e4b 0x6e4c 0x6e4d 0x6e4e 0x6e4f 0x6e50 0x6e51 0x6e52 0x6e53 0x6e54 0x6e55 0x6e56 0x6e57 0x6e58 0x6e59 0x6e5a 0x6e5b 0x6e5c 0x6e5d 0x6e5e 0x6e5f 0x6e60 0x6e61 0x6e62 0x6e63 0x6e64 0x6e65 0x6e66 0x6e67 0x6e68 0x6e69 0x6e6a 0x6e6b 0x6e6c 0x6e6d 0x6e6e 0x6e6f 0x6e70 0x6e71 0x6e72 0x6e73 0x6e74 0x6e75 0x6e76 0x6e77 0x6e78 0x6e79 0x6e7a 0x6e7b 0x6e7c 0x6e7d 0x6e7e ) ; 0xe840 ... 0xe8fc (block 103 0x6f21 0x6f22 0x6f23 0x6f24 0x6f25 0x6f26 0x6f27 0x6f28 0x6f29 0x6f2a 0x6f2b 0x6f2c 0x6f2d 0x6f2e 0x6f2f 0x6f30 0x6f31 0x6f32 0x6f33 0x6f34 0x6f35 0x6f36 0x6f37 0x6f38 0x6f39 0x6f3a 0x6f3b 0x6f3c 0x6f3d 0x6f3e 0x6f3f 0x6f40 0x6f41 0x6f42 0x6f43 0x6f44 0x6f45 0x6f46 0x6f47 0x6f48 0x6f49 0x6f4a 0x6f4b 0x6f4c 0x6f4d 0x6f4e 0x6f4f 0x6f50 0x6f51 0x6f52 0x6f53 0x6f54 0x6f55 0x6f56 0x6f57 0x6f58 0x6f59 0x6f5a 0x6f5b 0x6f5c 0x6f5d 0x6f5e 0x6f5f -1 0x6f60 0x6f61 0x6f62 0x6f63 0x6f64 0x6f65 0x6f66 0x6f67 0x6f68 0x6f69 0x6f6a 0x6f6b 0x6f6c 0x6f6d 0x6f6e 0x6f6f 0x6f70 0x6f71 0x6f72 0x6f73 0x6f74 0x6f75 0x6f76 0x6f77 0x6f78 0x6f79 0x6f7a 0x6f7b 0x6f7c 0x6f7d 0x6f7e 0x7021 0x7022 0x7023 0x7024 0x7025 0x7026 0x7027 0x7028 0x7029 0x702a 0x702b 0x702c 0x702d 0x702e 0x702f 0x7030 0x7031 0x7032 0x7033 0x7034 0x7035 0x7036 0x7037 0x7038 0x7039 0x703a 0x703b 0x703c 0x703d 0x703e 0x703f 0x7040 0x7041 0x7042 0x7043 0x7044 0x7045 0x7046 0x7047 0x7048 0x7049 0x704a 0x704b 0x704c 0x704d 0x704e 0x704f 0x7050 0x7051 0x7052 0x7053 0x7054 0x7055 0x7056 0x7057 0x7058 0x7059 0x705a 0x705b 0x705c 0x705d 0x705e 0x705f 0x7060 0x7061 0x7062 0x7063 0x7064 0x7065 0x7066 0x7067 0x7068 0x7069 0x706a 0x706b 0x706c 0x706d 0x706e 0x706f 0x7070 0x7071 0x7072 0x7073 0x7074 0x7075 0x7076 0x7077 0x7078 0x7079 0x707a 0x707b 0x707c 0x707d 0x707e ) ; 0xe940 ... 0xe9fc (block 104 0x7121 0x7122 0x7123 0x7124 0x7125 0x7126 0x7127 0x7128 0x7129 0x712a 0x712b 0x712c 0x712d 0x712e 0x712f 0x7130 0x7131 0x7132 0x7133 0x7134 0x7135 0x7136 0x7137 0x7138 0x7139 0x713a 0x713b 0x713c 0x713d 0x713e 0x713f 0x7140 0x7141 0x7142 0x7143 0x7144 0x7145 0x7146 0x7147 0x7148 0x7149 0x714a 0x714b 0x714c 0x714d 0x714e 0x714f 0x7150 0x7151 0x7152 0x7153 0x7154 0x7155 0x7156 0x7157 0x7158 0x7159 0x715a 0x715b 0x715c 0x715d 0x715e 0x715f -1 0x7160 0x7161 0x7162 0x7163 0x7164 0x7165 0x7166 0x7167 0x7168 0x7169 0x716a 0x716b 0x716c 0x716d 0x716e 0x716f 0x7170 0x7171 0x7172 0x7173 0x7174 0x7175 0x7176 0x7177 0x7178 0x7179 0x717a 0x717b 0x717c 0x717d 0x717e 0x7221 0x7222 0x7223 0x7224 0x7225 0x7226 0x7227 0x7228 0x7229 0x722a 0x722b 0x722c 0x722d 0x722e 0x722f 0x7230 0x7231 0x7232 0x7233 0x7234 0x7235 0x7236 0x7237 0x7238 0x7239 0x723a 0x723b 0x723c 0x723d 0x723e 0x723f 0x7240 0x7241 0x7242 0x7243 0x7244 0x7245 0x7246 0x7247 0x7248 0x7249 0x724a 0x724b 0x724c 0x724d 0x724e 0x724f 0x7250 0x7251 0x7252 0x7253 0x7254 0x7255 0x7256 0x7257 0x7258 0x7259 0x725a 0x725b 0x725c 0x725d 0x725e 0x725f 0x7260 0x7261 0x7262 0x7263 0x7264 0x7265 0x7266 0x7267 0x7268 0x7269 0x726a 0x726b 0x726c 0x726d 0x726e 0x726f 0x7270 0x7271 0x7272 0x7273 0x7274 0x7275 0x7276 0x7277 0x7278 0x7279 0x727a 0x727b 0x727c 0x727d 0x727e ) ; 0xea40 ... 0xeafc (block 105 0x7321 0x7322 0x7323 0x7324 0x7325 0x7326 0x7327 0x7328 0x7329 0x732a 0x732b 0x732c 0x732d 0x732e 0x732f 0x7330 0x7331 0x7332 0x7333 0x7334 0x7335 0x7336 0x7337 0x7338 0x7339 0x733a 0x733b 0x733c 0x733d 0x733e 0x733f 0x7340 0x7341 0x7342 0x7343 0x7344 0x7345 0x7346 0x7347 0x7348 0x7349 0x734a 0x734b 0x734c 0x734d 0x734e 0x734f 0x7350 0x7351 0x7352 0x7353 0x7354 0x7355 0x7356 0x7357 0x7358 0x7359 0x735a 0x735b 0x735c 0x735d 0x735e 0x735f -1 0x7360 0x7361 0x7362 0x7363 0x7364 0x7365 0x7366 0x7367 0x7368 0x7369 0x736a 0x736b 0x736c 0x736d 0x736e 0x736f 0x7370 0x7371 0x7372 0x7373 0x7374 0x7375 0x7376 0x7377 0x7378 0x7379 0x737a 0x737b 0x737c 0x737d 0x737e 0x7421 0x7422 0x7423 0x7424 0x7425 0x7426 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) vflib3-3.6.14.dfsg/ccv/jisx0212_unicode.ccv0000644000175000017500000016012407006213674017535 0ustar mohuramohura; Conversion table: JISX0212 ==> UNICODE (charset-external-name JISX0212) (charset-external-encoding ISO2022 JIS) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x22) (c1-max 0x6d) (c2-min 0x21) (c2-max 0x7e) (block-size 256) (nblocks 76) ; 0x2221 ... 0x227e (block 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x02d8 0x02c7 0x00b8 0x02d9 0x02dd 0x00af 0x02db 0x02da 0x007e 0x0384 0x0385 -1 -1 -1 -1 -1 -1 -1 -1 0x00a1 0x00a6 0x00bf -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x00ba 0x00aa 0x00a9 0x00ae 0x2122 0x00a4 0x2116 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2321 ... 0x237e (block 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2421 ... 0x247e (block 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2521 ... 0x257e (block 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2621 ... 0x267e (block 4 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x0386 0x0388 0x0389 0x038a 0x03aa -1 0x038c -1 0x038e 0x03ab -1 0x038f -1 -1 -1 -1 0x03ac 0x03ad 0x03ae 0x03af 0x03ca 0x0390 0x03cc 0x03c2 0x03cd 0x03cb 0x03b0 0x03ce -1 -1 ) ; 0x2721 ... 0x277e (block 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x0402 0x0403 0x0404 0x0405 0x0406 0x0407 0x0408 0x0409 0x040a 0x040b 0x040c 0x040e 0x040f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x0452 0x0453 0x0454 0x0455 0x0456 0x0457 0x0458 0x0459 0x045a 0x045b 0x045c 0x045e 0x045f ) ; 0x2821 ... 0x287e (block 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2921 ... 0x297e (block 7 0x00c6 0x0110 -1 0x0126 -1 0x0132 -1 0x0141 0x013f -1 0x014a 0x00d8 0x0152 -1 0x0166 0x00de -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x00e6 0x0111 0x00f0 0x0127 0x0131 0x0133 0x0138 0x0142 0x0140 0x0149 0x014b 0x00f8 0x0153 0x00df 0x0167 0x00fe -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2a21 ... 0x2a7e (block 8 0x00c1 0x00c0 0x00c4 0x00c2 0x0102 0x01cd 0x0100 0x0104 0x00c5 0x00c3 0x0106 0x0108 0x010c 0x00c7 0x010a 0x010e 0x00c9 0x00c8 0x00cb 0x00ca 0x011a 0x0116 0x0112 0x0118 -1 0x011c 0x011e 0x0122 0x0120 0x0124 0x00cd 0x00cc 0x00cf 0x00ce 0x01cf 0x0130 0x012a 0x012e 0x0128 0x0134 0x0136 0x0139 0x013d 0x013b 0x0143 0x0147 0x0145 0x00d1 0x00d3 0x00d2 0x00d6 0x00d4 0x01d1 0x0150 0x014c 0x00d5 0x0154 0x0158 0x0156 0x015a 0x015c 0x0160 0x015e 0x0164 0x0162 0x00da 0x00d9 0x00dc 0x00db 0x016c 0x01d3 0x0170 0x016a 0x0172 0x016e 0x0168 0x01d7 0x01db 0x01d9 0x01d5 0x0174 0x00dd 0x0178 0x0176 0x0179 0x017d 0x017b -1 -1 -1 -1 -1 -1 -1 ) ; 0x2b21 ... 0x2b7e (block 9 0x00e1 0x00e0 0x00e4 0x00e2 0x0103 0x01ce 0x0101 0x0105 0x00e5 0x00e3 0x0107 0x0109 0x010d 0x00e7 0x010b 0x010f 0x00e9 0x00e8 0x00eb 0x00ea 0x011b 0x0117 0x0113 0x0119 0x01f5 0x011d 0x011f -1 0x0121 0x0125 0x00ed 0x00ec 0x00ef 0x00ee 0x01d0 -1 0x012b 0x012f 0x0129 0x0135 0x0137 0x013a 0x013e 0x013c 0x0144 0x0148 0x0146 0x00f1 0x00f3 0x00f2 0x00f6 0x00f4 0x01d2 0x0151 0x014d 0x00f5 0x0155 0x0159 0x0157 0x015b 0x015d 0x0161 0x015f 0x0165 0x0163 0x00fa 0x00f9 0x00fc 0x00fb 0x016d 0x01d4 0x0171 0x016b 0x0173 0x016f 0x0169 0x01d8 0x01dc 0x01da 0x01d6 0x0175 0x00fd 0x00ff 0x0177 0x017a 0x017e 0x017c -1 -1 -1 -1 -1 -1 -1 ) ; 0x2c21 ... 0x2c7e (block 10 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2d21 ... 0x2d7e (block 11 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2e21 ... 0x2e7e (block 12 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2f21 ... 0x2f7e (block 13 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x3021 ... 0x307e (block 14 0x4e02 0x4e04 0x4e05 0x4e0c 0x4e12 0x4e1f 0x4e23 0x4e24 0x4e28 0x4e2b 0x4e2e 0x4e2f 0x4e30 0x4e35 0x4e40 0x4e41 0x4e44 0x4e47 0x4e51 0x4e5a 0x4e5c 0x4e63 0x4e68 0x4e69 0x4e74 0x4e75 0x4e79 0x4e7f 0x4e8d 0x4e96 0x4e97 0x4e9d 0x4eaf 0x4eb9 0x4ec3 0x4ed0 0x4eda 0x4edb 0x4ee0 0x4ee1 0x4ee2 0x4ee8 0x4eef 0x4ef1 0x4ef3 0x4ef5 0x4efd 0x4efe 0x4eff 0x4f00 0x4f02 0x4f03 0x4f08 0x4f0b 0x4f0c 0x4f12 0x4f15 0x4f16 0x4f17 0x4f19 0x4f2e 0x4f31 0x4f60 0x4f33 0x4f35 0x4f37 0x4f39 0x4f3b 0x4f3e 0x4f40 0x4f42 0x4f48 0x4f49 0x4f4b 0x4f4c 0x4f52 0x4f54 0x4f56 0x4f58 0x4f5f 0x4f63 0x4f6a 0x4f6c 0x4f6e 0x4f71 0x4f77 0x4f78 0x4f79 0x4f7a 0x4f7d 0x4f7e 0x4f81 0x4f82 0x4f84 ) ; 0x3121 ... 0x317e (block 15 0x4f85 0x4f89 0x4f8a 0x4f8c 0x4f8e 0x4f90 0x4f92 0x4f93 0x4f94 0x4f97 0x4f99 0x4f9a 0x4f9e 0x4f9f 0x4fb2 0x4fb7 0x4fb9 0x4fbb 0x4fbc 0x4fbd 0x4fbe 0x4fc0 0x4fc1 0x4fc5 0x4fc6 0x4fc8 0x4fc9 0x4fcb 0x4fcc 0x4fcd 0x4fcf 0x4fd2 0x4fdc 0x4fe0 0x4fe2 0x4ff0 0x4ff2 0x4ffc 0x4ffd 0x4fff 0x5000 0x5001 0x5004 0x5007 0x500a 0x500c 0x500e 0x5010 0x5013 0x5017 0x5018 0x501b 0x501c 0x501d 0x501e 0x5022 0x5027 0x502e 0x5030 0x5032 0x5033 0x5035 0x5040 0x5041 0x5042 0x5045 0x5046 0x504a 0x504c 0x504e 0x5051 0x5052 0x5053 0x5057 0x5059 0x505f 0x5060 0x5062 0x5063 0x5066 0x5067 0x506a 0x506d 0x5070 0x5071 0x503b 0x5081 0x5083 0x5084 0x5086 0x508a 0x508e 0x508f 0x5090 ) ; 0x3221 ... 0x327e (block 16 0x5092 0x5093 0x5094 0x5096 0x509b 0x509c 0x509e 0x509f 0x50a0 0x50a1 0x50a2 0x50aa 0x50af 0x50b0 0x50b9 0x50ba 0x50bd 0x50c0 0x50c3 0x50c4 0x50c7 0x50cc 0x50ce 0x50d0 0x50d3 0x50d4 0x50d8 0x50dc 0x50dd 0x50df 0x50e2 0x50e4 0x50e6 0x50e8 0x50e9 0x50ef 0x50f1 0x50f6 0x50fa 0x50fe 0x5103 0x5106 0x5107 0x5108 0x510b 0x510c 0x510d 0x510e 0x50f2 0x5110 0x5117 0x5119 0x511b 0x511c 0x511d 0x511e 0x5123 0x5127 0x5128 0x512c 0x512d 0x512f 0x5131 0x5133 0x5134 0x5135 0x5138 0x5139 0x5142 0x514a 0x514f 0x5153 0x5155 0x5157 0x5158 0x515f 0x5164 0x5166 0x517e 0x5183 0x5184 0x518b 0x518e 0x5198 0x519d 0x51a1 0x51a3 0x51ad 0x51b8 0x51ba 0x51bc 0x51be 0x51bf 0x51c2 ) ; 0x3321 ... 0x337e (block 17 0x51c8 0x51cf 0x51d1 0x51d2 0x51d3 0x51d5 0x51d8 0x51de 0x51e2 0x51e5 0x51ee 0x51f2 0x51f3 0x51f4 0x51f7 0x5201 0x5202 0x5205 0x5212 0x5213 0x5215 0x5216 0x5218 0x5222 0x5228 0x5231 0x5232 0x5235 0x523c 0x5245 0x5249 0x5255 0x5257 0x5258 0x525a 0x525c 0x525f 0x5260 0x5261 0x5266 0x526e 0x5277 0x5278 0x5279 0x5280 0x5282 0x5285 0x528a 0x528c 0x5293 0x5295 0x5296 0x5297 0x5298 0x529a 0x529c 0x52a4 0x52a5 0x52a6 0x52a7 0x52af 0x52b0 0x52b6 0x52b7 0x52b8 0x52ba 0x52bb 0x52bd 0x52c0 0x52c4 0x52c6 0x52c8 0x52cc 0x52cf 0x52d1 0x52d4 0x52d6 0x52db 0x52dc 0x52e1 0x52e5 0x52e8 0x52e9 0x52ea 0x52ec 0x52f0 0x52f1 0x52f4 0x52f6 0x52f7 0x5300 0x5303 0x530a 0x530b ) ; 0x3421 ... 0x347e (block 18 0x530c 0x5311 0x5313 0x5318 0x531b 0x531c 0x531e 0x531f 0x5325 0x5327 0x5328 0x5329 0x532b 0x532c 0x532d 0x5330 0x5332 0x5335 0x533c 0x533d 0x533e 0x5342 0x534c 0x534b 0x5359 0x535b 0x5361 0x5363 0x5365 0x536c 0x536d 0x5372 0x5379 0x537e 0x5383 0x5387 0x5388 0x538e 0x5393 0x5394 0x5399 0x539d 0x53a1 0x53a4 0x53aa 0x53ab 0x53af 0x53b2 0x53b4 0x53b5 0x53b7 0x53b8 0x53ba 0x53bd 0x53c0 0x53c5 0x53cf 0x53d2 0x53d3 0x53d5 0x53da 0x53dd 0x53de 0x53e0 0x53e6 0x53e7 0x53f5 0x5402 0x5413 0x541a 0x5421 0x5427 0x5428 0x542a 0x542f 0x5431 0x5434 0x5435 0x5443 0x5444 0x5447 0x544d 0x544f 0x545e 0x5462 0x5464 0x5466 0x5467 0x5469 0x546b 0x546d 0x546e 0x5474 0x547f ) ; 0x3521 ... 0x357e (block 19 0x5481 0x5483 0x5485 0x5488 0x5489 0x548d 0x5491 0x5495 0x5496 0x549c 0x549f 0x54a1 0x54a6 0x54a7 0x54a9 0x54aa 0x54ad 0x54ae 0x54b1 0x54b7 0x54b9 0x54ba 0x54bb 0x54bf 0x54c6 0x54ca 0x54cd 0x54ce 0x54e0 0x54ea 0x54ec 0x54ef 0x54f6 0x54fc 0x54fe 0x54ff 0x5500 0x5501 0x5505 0x5508 0x5509 0x550c 0x550d 0x550e 0x5515 0x552a 0x552b 0x5532 0x5535 0x5536 0x553b 0x553c 0x553d 0x5541 0x5547 0x5549 0x554a 0x554d 0x5550 0x5551 0x5558 0x555a 0x555b 0x555e 0x5560 0x5561 0x5564 0x5566 0x557f 0x5581 0x5582 0x5586 0x5588 0x558e 0x558f 0x5591 0x5592 0x5593 0x5594 0x5597 0x55a3 0x55a4 0x55ad 0x55b2 0x55bf 0x55c1 0x55c3 0x55c6 0x55c9 0x55cb 0x55cc 0x55ce 0x55d1 0x55d2 ) ; 0x3621 ... 0x367e (block 20 0x55d3 0x55d7 0x55d8 0x55db 0x55de 0x55e2 0x55e9 0x55f6 0x55ff 0x5605 0x5608 0x560a 0x560d 0x560e 0x560f 0x5610 0x5611 0x5612 0x5619 0x562c 0x5630 0x5633 0x5635 0x5637 0x5639 0x563b 0x563c 0x563d 0x563f 0x5640 0x5641 0x5643 0x5644 0x5646 0x5649 0x564b 0x564d 0x564f 0x5654 0x565e 0x5660 0x5661 0x5662 0x5663 0x5666 0x5669 0x566d 0x566f 0x5671 0x5672 0x5675 0x5684 0x5685 0x5688 0x568b 0x568c 0x5695 0x5699 0x569a 0x569d 0x569e 0x569f 0x56a6 0x56a7 0x56a8 0x56a9 0x56ab 0x56ac 0x56ad 0x56b1 0x56b3 0x56b7 0x56be 0x56c5 0x56c9 0x56ca 0x56cb 0x56cf 0x56d0 0x56cc 0x56cd 0x56d9 0x56dc 0x56dd 0x56df 0x56e1 0x56e4 0x56e5 0x56e6 0x56e7 0x56e8 0x56f1 0x56eb 0x56ed ) ; 0x3721 ... 0x377e (block 21 0x56f6 0x56f7 0x5701 0x5702 0x5707 0x570a 0x570c 0x5711 0x5715 0x571a 0x571b 0x571d 0x5720 0x5722 0x5723 0x5724 0x5725 0x5729 0x572a 0x572c 0x572e 0x572f 0x5733 0x5734 0x573d 0x573e 0x573f 0x5745 0x5746 0x574c 0x574d 0x5752 0x5762 0x5765 0x5767 0x5768 0x576b 0x576d 0x576e 0x576f 0x5770 0x5771 0x5773 0x5774 0x5775 0x5777 0x5779 0x577a 0x577b 0x577c 0x577e 0x5781 0x5783 0x578c 0x5794 0x5797 0x5799 0x579a 0x579c 0x579d 0x579e 0x579f 0x57a1 0x5795 0x57a7 0x57a8 0x57a9 0x57ac 0x57b8 0x57bd 0x57c7 0x57c8 0x57cc 0x57cf 0x57d5 0x57dd 0x57de 0x57e4 0x57e6 0x57e7 0x57e9 0x57ed 0x57f0 0x57f5 0x57f6 0x57f8 0x57fd 0x57fe 0x57ff 0x5803 0x5804 0x5808 0x5809 0x57e1 ) ; 0x3821 ... 0x387e (block 22 0x580c 0x580d 0x581b 0x581e 0x581f 0x5820 0x5826 0x5827 0x582d 0x5832 0x5839 0x583f 0x5849 0x584c 0x584d 0x584f 0x5850 0x5855 0x585f 0x5861 0x5864 0x5867 0x5868 0x5878 0x587c 0x587f 0x5880 0x5881 0x5887 0x5888 0x5889 0x588a 0x588c 0x588d 0x588f 0x5890 0x5894 0x5896 0x589d 0x58a0 0x58a1 0x58a2 0x58a6 0x58a9 0x58b1 0x58b2 0x58c4 0x58bc 0x58c2 0x58c8 0x58cd 0x58ce 0x58d0 0x58d2 0x58d4 0x58d6 0x58da 0x58dd 0x58e1 0x58e2 0x58e9 0x58f3 0x5905 0x5906 0x590b 0x590c 0x5912 0x5913 0x5914 0x8641 0x591d 0x5921 0x5923 0x5924 0x5928 0x592f 0x5930 0x5933 0x5935 0x5936 0x593f 0x5943 0x5946 0x5952 0x5953 0x5959 0x595b 0x595d 0x595e 0x595f 0x5961 0x5963 0x596b 0x596d ) ; 0x3921 ... 0x397e (block 23 0x596f 0x5972 0x5975 0x5976 0x5979 0x597b 0x597c 0x598b 0x598c 0x598e 0x5992 0x5995 0x5997 0x599f 0x59a4 0x59a7 0x59ad 0x59ae 0x59af 0x59b0 0x59b3 0x59b7 0x59ba 0x59bc 0x59c1 0x59c3 0x59c4 0x59c8 0x59ca 0x59cd 0x59d2 0x59dd 0x59de 0x59df 0x59e3 0x59e4 0x59e7 0x59ee 0x59ef 0x59f1 0x59f2 0x59f4 0x59f7 0x5a00 0x5a04 0x5a0c 0x5a0d 0x5a0e 0x5a12 0x5a13 0x5a1e 0x5a23 0x5a24 0x5a27 0x5a28 0x5a2a 0x5a2d 0x5a30 0x5a44 0x5a45 0x5a47 0x5a48 0x5a4c 0x5a50 0x5a55 0x5a5e 0x5a63 0x5a65 0x5a67 0x5a6d 0x5a77 0x5a7a 0x5a7b 0x5a7e 0x5a8b 0x5a90 0x5a93 0x5a96 0x5a99 0x5a9c 0x5a9e 0x5a9f 0x5aa0 0x5aa2 0x5aa7 0x5aac 0x5ab1 0x5ab2 0x5ab3 0x5ab5 0x5ab8 0x5aba 0x5abb 0x5abf ) ; 0x3a21 ... 0x3a7e (block 24 0x5ac4 0x5ac6 0x5ac8 0x5acf 0x5ada 0x5adc 0x5ae0 0x5ae5 0x5aea 0x5aee 0x5af5 0x5af6 0x5afd 0x5b00 0x5b01 0x5b08 0x5b17 0x5b34 0x5b19 0x5b1b 0x5b1d 0x5b21 0x5b25 0x5b2d 0x5b38 0x5b41 0x5b4b 0x5b4c 0x5b52 0x5b56 0x5b5e 0x5b68 0x5b6e 0x5b6f 0x5b7c 0x5b7d 0x5b7e 0x5b7f 0x5b81 0x5b84 0x5b86 0x5b8a 0x5b8e 0x5b90 0x5b91 0x5b93 0x5b94 0x5b96 0x5ba8 0x5ba9 0x5bac 0x5bad 0x5baf 0x5bb1 0x5bb2 0x5bb7 0x5bba 0x5bbc 0x5bc0 0x5bc1 0x5bcd 0x5bcf 0x5bd6 0x5bd7 0x5bd8 0x5bd9 0x5bda 0x5be0 0x5bef 0x5bf1 0x5bf4 0x5bfd 0x5c0c 0x5c17 0x5c1e 0x5c1f 0x5c23 0x5c26 0x5c29 0x5c2b 0x5c2c 0x5c2e 0x5c30 0x5c32 0x5c35 0x5c36 0x5c59 0x5c5a 0x5c5c 0x5c62 0x5c63 0x5c67 0x5c68 0x5c69 ) ; 0x3b21 ... 0x3b7e (block 25 0x5c6d 0x5c70 0x5c74 0x5c75 0x5c7a 0x5c7b 0x5c7c 0x5c7d 0x5c87 0x5c88 0x5c8a 0x5c8f 0x5c92 0x5c9d 0x5c9f 0x5ca0 0x5ca2 0x5ca3 0x5ca6 0x5caa 0x5cb2 0x5cb4 0x5cb5 0x5cba 0x5cc9 0x5ccb 0x5cd2 0x5cdd 0x5cd7 0x5cee 0x5cf1 0x5cf2 0x5cf4 0x5d01 0x5d06 0x5d0d 0x5d12 0x5d2b 0x5d23 0x5d24 0x5d26 0x5d27 0x5d31 0x5d34 0x5d39 0x5d3d 0x5d3f 0x5d42 0x5d43 0x5d46 0x5d48 0x5d55 0x5d51 0x5d59 0x5d4a 0x5d5f 0x5d60 0x5d61 0x5d62 0x5d64 0x5d6a 0x5d6d 0x5d70 0x5d79 0x5d7a 0x5d7e 0x5d7f 0x5d81 0x5d83 0x5d88 0x5d8a 0x5d92 0x5d93 0x5d94 0x5d95 0x5d99 0x5d9b 0x5d9f 0x5da0 0x5da7 0x5dab 0x5db0 0x5db4 0x5db8 0x5db9 0x5dc3 0x5dc7 0x5dcb 0x5dd0 0x5dce 0x5dd8 0x5dd9 0x5de0 0x5de4 ) ; 0x3c21 ... 0x3c7e (block 26 0x5de9 0x5df8 0x5df9 0x5e00 0x5e07 0x5e0d 0x5e12 0x5e14 0x5e15 0x5e18 0x5e1f 0x5e20 0x5e2e 0x5e28 0x5e32 0x5e35 0x5e3e 0x5e4b 0x5e50 0x5e49 0x5e51 0x5e56 0x5e58 0x5e5b 0x5e5c 0x5e5e 0x5e68 0x5e6a 0x5e6b 0x5e6c 0x5e6d 0x5e6e 0x5e70 0x5e80 0x5e8b 0x5e8e 0x5ea2 0x5ea4 0x5ea5 0x5ea8 0x5eaa 0x5eac 0x5eb1 0x5eb3 0x5ebd 0x5ebe 0x5ebf 0x5ec6 0x5ecc 0x5ecb 0x5ece 0x5ed1 0x5ed2 0x5ed4 0x5ed5 0x5edc 0x5ede 0x5ee5 0x5eeb 0x5f02 0x5f06 0x5f07 0x5f08 0x5f0e 0x5f19 0x5f1c 0x5f1d 0x5f21 0x5f22 0x5f23 0x5f24 0x5f28 0x5f2b 0x5f2c 0x5f2e 0x5f30 0x5f34 0x5f36 0x5f3b 0x5f3d 0x5f3f 0x5f40 0x5f44 0x5f45 0x5f47 0x5f4d 0x5f50 0x5f54 0x5f58 0x5f5b 0x5f60 0x5f63 0x5f64 0x5f67 ) ; 0x3d21 ... 0x3d7e (block 27 0x5f6f 0x5f72 0x5f74 0x5f75 0x5f78 0x5f7a 0x5f7d 0x5f7e 0x5f89 0x5f8d 0x5f8f 0x5f96 0x5f9c 0x5f9d 0x5fa2 0x5fa7 0x5fab 0x5fa4 0x5fac 0x5faf 0x5fb0 0x5fb1 0x5fb8 0x5fc4 0x5fc7 0x5fc8 0x5fc9 0x5fcb 0x5fd0 0x5fd1 0x5fd2 0x5fd3 0x5fd4 0x5fde 0x5fe1 0x5fe2 0x5fe8 0x5fe9 0x5fea 0x5fec 0x5fed 0x5fee 0x5fef 0x5ff2 0x5ff3 0x5ff6 0x5ffa 0x5ffc 0x6007 0x600a 0x600d 0x6013 0x6014 0x6017 0x6018 0x601a 0x601f 0x6024 0x602d 0x6033 0x6035 0x6040 0x6047 0x6048 0x6049 0x604c 0x6051 0x6054 0x6056 0x6057 0x605d 0x6061 0x6067 0x6071 0x607e 0x607f 0x6082 0x6086 0x6088 0x608a 0x608e 0x6091 0x6093 0x6095 0x6098 0x609d 0x609e 0x60a2 0x60a4 0x60a5 0x60a8 0x60b0 0x60b1 0x60b7 ) ; 0x3e21 ... 0x3e7e (block 28 0x60bb 0x60be 0x60c2 0x60c4 0x60c8 0x60c9 0x60ca 0x60cb 0x60ce 0x60cf 0x60d4 0x60d5 0x60d9 0x60db 0x60dd 0x60de 0x60e2 0x60e5 0x60f2 0x60f5 0x60f8 0x60fc 0x60fd 0x6102 0x6107 0x610a 0x610c 0x6110 0x6111 0x6112 0x6113 0x6114 0x6116 0x6117 0x6119 0x611c 0x611e 0x6122 0x612a 0x612b 0x6130 0x6131 0x6135 0x6136 0x6137 0x6139 0x6141 0x6145 0x6146 0x6149 0x615e 0x6160 0x616c 0x6172 0x6178 0x617b 0x617c 0x617f 0x6180 0x6181 0x6183 0x6184 0x618b 0x618d 0x6192 0x6193 0x6197 0x6198 0x619c 0x619d 0x619f 0x61a0 0x61a5 0x61a8 0x61aa 0x61ad 0x61b8 0x61b9 0x61bc 0x61c0 0x61c1 0x61c2 0x61ce 0x61cf 0x61d5 0x61dc 0x61dd 0x61de 0x61df 0x61e1 0x61e2 0x61e7 0x61e9 0x61e5 ) ; 0x3f21 ... 0x3f7e (block 29 0x61ec 0x61ed 0x61ef 0x6201 0x6203 0x6204 0x6207 0x6213 0x6215 0x621c 0x6220 0x6222 0x6223 0x6227 0x6229 0x622b 0x6239 0x623d 0x6242 0x6243 0x6244 0x6246 0x624c 0x6250 0x6251 0x6252 0x6254 0x6256 0x625a 0x625c 0x6264 0x626d 0x626f 0x6273 0x627a 0x627d 0x628d 0x628e 0x628f 0x6290 0x62a6 0x62a8 0x62b3 0x62b6 0x62b7 0x62ba 0x62be 0x62bf 0x62c4 0x62ce 0x62d5 0x62d6 0x62da 0x62ea 0x62f2 0x62f4 0x62fc 0x62fd 0x6303 0x6304 0x630a 0x630b 0x630d 0x6310 0x6313 0x6316 0x6318 0x6329 0x632a 0x632d 0x6335 0x6336 0x6339 0x633c 0x6341 0x6342 0x6343 0x6344 0x6346 0x634a 0x634b 0x634e 0x6352 0x6353 0x6354 0x6358 0x635b 0x6365 0x6366 0x636c 0x636d 0x6371 0x6374 0x6375 ) ; 0x4021 ... 0x407e (block 30 0x6378 0x637c 0x637d 0x637f 0x6382 0x6384 0x6387 0x638a 0x6390 0x6394 0x6395 0x6399 0x639a 0x639e 0x63a4 0x63a6 0x63ad 0x63ae 0x63af 0x63bd 0x63c1 0x63c5 0x63c8 0x63ce 0x63d1 0x63d3 0x63d4 0x63d5 0x63dc 0x63e0 0x63e5 0x63ea 0x63ec 0x63f2 0x63f3 0x63f5 0x63f8 0x63f9 0x6409 0x640a 0x6410 0x6412 0x6414 0x6418 0x641e 0x6420 0x6422 0x6424 0x6425 0x6429 0x642a 0x642f 0x6430 0x6435 0x643d 0x643f 0x644b 0x644f 0x6451 0x6452 0x6453 0x6454 0x645a 0x645b 0x645c 0x645d 0x645f 0x6460 0x6461 0x6463 0x646d 0x6473 0x6474 0x647b 0x647d 0x6485 0x6487 0x648f 0x6490 0x6491 0x6498 0x6499 0x649b 0x649d 0x649f 0x64a1 0x64a3 0x64a6 0x64a8 0x64ac 0x64b3 0x64bd 0x64be 0x64bf ) ; 0x4121 ... 0x417e (block 31 0x64c4 0x64c9 0x64ca 0x64cb 0x64cc 0x64ce 0x64d0 0x64d1 0x64d5 0x64d7 0x64e4 0x64e5 0x64e9 0x64ea 0x64ed 0x64f0 0x64f5 0x64f7 0x64fb 0x64ff 0x6501 0x6504 0x6508 0x6509 0x650a 0x650f 0x6513 0x6514 0x6516 0x6519 0x651b 0x651e 0x651f 0x6522 0x6526 0x6529 0x652e 0x6531 0x653a 0x653c 0x653d 0x6543 0x6547 0x6549 0x6550 0x6552 0x6554 0x655f 0x6560 0x6567 0x656b 0x657a 0x657d 0x6581 0x6585 0x658a 0x6592 0x6595 0x6598 0x659d 0x65a0 0x65a3 0x65a6 0x65ae 0x65b2 0x65b3 0x65b4 0x65bf 0x65c2 0x65c8 0x65c9 0x65ce 0x65d0 0x65d4 0x65d6 0x65d8 0x65df 0x65f0 0x65f2 0x65f4 0x65f5 0x65f9 0x65fe 0x65ff 0x6600 0x6604 0x6608 0x6609 0x660d 0x6611 0x6612 0x6615 0x6616 0x661d ) ; 0x4221 ... 0x427e (block 32 0x661e 0x6621 0x6622 0x6623 0x6624 0x6626 0x6629 0x662a 0x662b 0x662c 0x662e 0x6630 0x6631 0x6633 0x6639 0x6637 0x6640 0x6645 0x6646 0x664a 0x664c 0x6651 0x664e 0x6657 0x6658 0x6659 0x665b 0x665c 0x6660 0x6661 0x66fb 0x666a 0x666b 0x666c 0x667e 0x6673 0x6675 0x667f 0x6677 0x6678 0x6679 0x667b 0x6680 0x667c 0x668b 0x668c 0x668d 0x6690 0x6692 0x6699 0x669a 0x669b 0x669c 0x669f 0x66a0 0x66a4 0x66ad 0x66b1 0x66b2 0x66b5 0x66bb 0x66bf 0x66c0 0x66c2 0x66c3 0x66c8 0x66cc 0x66ce 0x66cf 0x66d4 0x66db 0x66df 0x66e8 0x66eb 0x66ec 0x66ee 0x66fa 0x6705 0x6707 0x670e 0x6713 0x6719 0x671c 0x6720 0x6722 0x6733 0x673e 0x6745 0x6747 0x6748 0x674c 0x6754 0x6755 0x675d ) ; 0x4321 ... 0x437e (block 33 0x6766 0x676c 0x676e 0x6774 0x6776 0x677b 0x6781 0x6784 0x678e 0x678f 0x6791 0x6793 0x6796 0x6798 0x6799 0x679b 0x67b0 0x67b1 0x67b2 0x67b5 0x67bb 0x67bc 0x67bd 0x67f9 0x67c0 0x67c2 0x67c3 0x67c5 0x67c8 0x67c9 0x67d2 0x67d7 0x67d9 0x67dc 0x67e1 0x67e6 0x67f0 0x67f2 0x67f6 0x67f7 0x6852 0x6814 0x6819 0x681d 0x681f 0x6828 0x6827 0x682c 0x682d 0x682f 0x6830 0x6831 0x6833 0x683b 0x683f 0x6844 0x6845 0x684a 0x684c 0x6855 0x6857 0x6858 0x685b 0x686b 0x686e 0x686f 0x6870 0x6871 0x6872 0x6875 0x6879 0x687a 0x687b 0x687c 0x6882 0x6884 0x6886 0x6888 0x6896 0x6898 0x689a 0x689c 0x68a1 0x68a3 0x68a5 0x68a9 0x68aa 0x68ae 0x68b2 0x68bb 0x68c5 0x68c8 0x68cc 0x68cf ) ; 0x4421 ... 0x447e (block 34 0x68d0 0x68d1 0x68d3 0x68d6 0x68d9 0x68dc 0x68dd 0x68e5 0x68e8 0x68ea 0x68eb 0x68ec 0x68ed 0x68f0 0x68f1 0x68f5 0x68f6 0x68fb 0x68fc 0x68fd 0x6906 0x6909 0x690a 0x6910 0x6911 0x6913 0x6916 0x6917 0x6931 0x6933 0x6935 0x6938 0x693b 0x6942 0x6945 0x6949 0x694e 0x6957 0x695b 0x6963 0x6964 0x6965 0x6966 0x6968 0x6969 0x696c 0x6970 0x6971 0x6972 0x697a 0x697b 0x697f 0x6980 0x698d 0x6992 0x6996 0x6998 0x69a1 0x69a5 0x69a6 0x69a8 0x69ab 0x69ad 0x69af 0x69b7 0x69b8 0x69ba 0x69bc 0x69c5 0x69c8 0x69d1 0x69d6 0x69d7 0x69e2 0x69e5 0x69ee 0x69ef 0x69f1 0x69f3 0x69f5 0x69fe 0x6a00 0x6a01 0x6a03 0x6a0f 0x6a11 0x6a15 0x6a1a 0x6a1d 0x6a20 0x6a24 0x6a28 0x6a30 0x6a32 ) ; 0x4521 ... 0x457e (block 35 0x6a34 0x6a37 0x6a3b 0x6a3e 0x6a3f 0x6a45 0x6a46 0x6a49 0x6a4a 0x6a4e 0x6a50 0x6a51 0x6a52 0x6a55 0x6a56 0x6a5b 0x6a64 0x6a67 0x6a6a 0x6a71 0x6a73 0x6a7e 0x6a81 0x6a83 0x6a86 0x6a87 0x6a89 0x6a8b 0x6a91 0x6a9b 0x6a9d 0x6a9e 0x6a9f 0x6aa5 0x6aab 0x6aaf 0x6ab0 0x6ab1 0x6ab4 0x6abd 0x6abe 0x6abf 0x6ac6 0x6ac9 0x6ac8 0x6acc 0x6ad0 0x6ad4 0x6ad5 0x6ad6 0x6adc 0x6add 0x6ae4 0x6ae7 0x6aec 0x6af0 0x6af1 0x6af2 0x6afc 0x6afd 0x6b02 0x6b03 0x6b06 0x6b07 0x6b09 0x6b0f 0x6b10 0x6b11 0x6b17 0x6b1b 0x6b1e 0x6b24 0x6b28 0x6b2b 0x6b2c 0x6b2f 0x6b35 0x6b36 0x6b3b 0x6b3f 0x6b46 0x6b4a 0x6b4d 0x6b52 0x6b56 0x6b58 0x6b5d 0x6b60 0x6b67 0x6b6b 0x6b6e 0x6b70 0x6b75 0x6b7d ) ; 0x4621 ... 0x467e (block 36 0x6b7e 0x6b82 0x6b85 0x6b97 0x6b9b 0x6b9f 0x6ba0 0x6ba2 0x6ba3 0x6ba8 0x6ba9 0x6bac 0x6bad 0x6bae 0x6bb0 0x6bb8 0x6bb9 0x6bbd 0x6bbe 0x6bc3 0x6bc4 0x6bc9 0x6bcc 0x6bd6 0x6bda 0x6be1 0x6be3 0x6be6 0x6be7 0x6bee 0x6bf1 0x6bf7 0x6bf9 0x6bff 0x6c02 0x6c04 0x6c05 0x6c09 0x6c0d 0x6c0e 0x6c10 0x6c12 0x6c19 0x6c1f 0x6c26 0x6c27 0x6c28 0x6c2c 0x6c2e 0x6c33 0x6c35 0x6c36 0x6c3a 0x6c3b 0x6c3f 0x6c4a 0x6c4b 0x6c4d 0x6c4f 0x6c52 0x6c54 0x6c59 0x6c5b 0x6c5c 0x6c6b 0x6c6d 0x6c6f 0x6c74 0x6c76 0x6c78 0x6c79 0x6c7b 0x6c85 0x6c86 0x6c87 0x6c89 0x6c94 0x6c95 0x6c97 0x6c98 0x6c9c 0x6c9f 0x6cb0 0x6cb2 0x6cb4 0x6cc2 0x6cc6 0x6ccd 0x6ccf 0x6cd0 0x6cd1 0x6cd2 0x6cd4 0x6cd6 ) ; 0x4721 ... 0x477e (block 37 0x6cda 0x6cdc 0x6ce0 0x6ce7 0x6ce9 0x6ceb 0x6cec 0x6cee 0x6cf2 0x6cf4 0x6d04 0x6d07 0x6d0a 0x6d0e 0x6d0f 0x6d11 0x6d13 0x6d1a 0x6d26 0x6d27 0x6d28 0x6c67 0x6d2e 0x6d2f 0x6d31 0x6d39 0x6d3c 0x6d3f 0x6d57 0x6d5e 0x6d5f 0x6d61 0x6d65 0x6d67 0x6d6f 0x6d70 0x6d7c 0x6d82 0x6d87 0x6d91 0x6d92 0x6d94 0x6d96 0x6d97 0x6d98 0x6daa 0x6dac 0x6db4 0x6db7 0x6db9 0x6dbd 0x6dbf 0x6dc4 0x6dc8 0x6dca 0x6dce 0x6dcf 0x6dd6 0x6ddb 0x6ddd 0x6ddf 0x6de0 0x6de2 0x6de5 0x6de9 0x6def 0x6df0 0x6df4 0x6df6 0x6dfc 0x6e00 0x6e04 0x6e1e 0x6e22 0x6e27 0x6e32 0x6e36 0x6e39 0x6e3b 0x6e3c 0x6e44 0x6e45 0x6e48 0x6e49 0x6e4b 0x6e4f 0x6e51 0x6e52 0x6e53 0x6e54 0x6e57 0x6e5c 0x6e5d 0x6e5e ) ; 0x4821 ... 0x487e (block 38 0x6e62 0x6e63 0x6e68 0x6e73 0x6e7b 0x6e7d 0x6e8d 0x6e93 0x6e99 0x6ea0 0x6ea7 0x6ead 0x6eae 0x6eb1 0x6eb3 0x6ebb 0x6ebf 0x6ec0 0x6ec1 0x6ec3 0x6ec7 0x6ec8 0x6eca 0x6ecd 0x6ece 0x6ecf 0x6eeb 0x6eed 0x6eee 0x6ef9 0x6efb 0x6efd 0x6f04 0x6f08 0x6f0a 0x6f0c 0x6f0d 0x6f16 0x6f18 0x6f1a 0x6f1b 0x6f26 0x6f29 0x6f2a 0x6f2f 0x6f30 0x6f33 0x6f36 0x6f3b 0x6f3c 0x6f2d 0x6f4f 0x6f51 0x6f52 0x6f53 0x6f57 0x6f59 0x6f5a 0x6f5d 0x6f5e 0x6f61 0x6f62 0x6f68 0x6f6c 0x6f7d 0x6f7e 0x6f83 0x6f87 0x6f88 0x6f8b 0x6f8c 0x6f8d 0x6f90 0x6f92 0x6f93 0x6f94 0x6f96 0x6f9a 0x6f9f 0x6fa0 0x6fa5 0x6fa6 0x6fa7 0x6fa8 0x6fae 0x6faf 0x6fb0 0x6fb5 0x6fb6 0x6fbc 0x6fc5 0x6fc7 0x6fc8 0x6fca ) ; 0x4921 ... 0x497e (block 39 0x6fda 0x6fde 0x6fe8 0x6fe9 0x6ff0 0x6ff5 0x6ff9 0x6ffc 0x6ffd 0x7000 0x7005 0x7006 0x7007 0x700d 0x7017 0x7020 0x7023 0x702f 0x7034 0x7037 0x7039 0x703c 0x7043 0x7044 0x7048 0x7049 0x704a 0x704b 0x7054 0x7055 0x705d 0x705e 0x704e 0x7064 0x7065 0x706c 0x706e 0x7075 0x7076 0x707e 0x7081 0x7085 0x7086 0x7094 0x7095 0x7096 0x7097 0x7098 0x709b 0x70a4 0x70ab 0x70b0 0x70b1 0x70b4 0x70b7 0x70ca 0x70d1 0x70d3 0x70d4 0x70d5 0x70d6 0x70d8 0x70dc 0x70e4 0x70fa 0x7103 0x7104 0x7105 0x7106 0x7107 0x710b 0x710c 0x710f 0x711e 0x7120 0x712b 0x712d 0x712f 0x7130 0x7131 0x7138 0x7141 0x7145 0x7146 0x7147 0x714a 0x714b 0x7150 0x7152 0x7157 0x715a 0x715c 0x715e 0x7160 ) ; 0x4a21 ... 0x4a7e (block 40 0x7168 0x7179 0x7180 0x7185 0x7187 0x718c 0x7192 0x719a 0x719b 0x71a0 0x71a2 0x71af 0x71b0 0x71b2 0x71b3 0x71ba 0x71bf 0x71c0 0x71c1 0x71c4 0x71cb 0x71cc 0x71d3 0x71d6 0x71d9 0x71da 0x71dc 0x71f8 0x71fe 0x7200 0x7207 0x7208 0x7209 0x7213 0x7217 0x721a 0x721d 0x721f 0x7224 0x722b 0x722f 0x7234 0x7238 0x7239 0x7241 0x7242 0x7243 0x7245 0x724e 0x724f 0x7250 0x7253 0x7255 0x7256 0x725a 0x725c 0x725e 0x7260 0x7263 0x7268 0x726b 0x726e 0x726f 0x7271 0x7277 0x7278 0x727b 0x727c 0x727f 0x7284 0x7289 0x728d 0x728e 0x7293 0x729b 0x72a8 0x72ad 0x72ae 0x72b1 0x72b4 0x72be 0x72c1 0x72c7 0x72c9 0x72cc 0x72d5 0x72d6 0x72d8 0x72df 0x72e5 0x72f3 0x72f4 0x72fa 0x72fb ) ; 0x4b21 ... 0x4b7e (block 41 0x72fe 0x7302 0x7304 0x7305 0x7307 0x730b 0x730d 0x7312 0x7313 0x7318 0x7319 0x731e 0x7322 0x7324 0x7327 0x7328 0x732c 0x7331 0x7332 0x7335 0x733a 0x733b 0x733d 0x7343 0x734d 0x7350 0x7352 0x7356 0x7358 0x735d 0x735e 0x735f 0x7360 0x7366 0x7367 0x7369 0x736b 0x736c 0x736e 0x736f 0x7371 0x7377 0x7379 0x737c 0x7380 0x7381 0x7383 0x7385 0x7386 0x738e 0x7390 0x7393 0x7395 0x7397 0x7398 0x739c 0x739e 0x739f 0x73a0 0x73a2 0x73a5 0x73a6 0x73aa 0x73ab 0x73ad 0x73b5 0x73b7 0x73b9 0x73bc 0x73bd 0x73bf 0x73c5 0x73c6 0x73c9 0x73cb 0x73cc 0x73cf 0x73d2 0x73d3 0x73d6 0x73d9 0x73dd 0x73e1 0x73e3 0x73e6 0x73e7 0x73e9 0x73f4 0x73f5 0x73f7 0x73f9 0x73fa 0x73fb 0x73fd ) ; 0x4c21 ... 0x4c7e (block 42 0x73ff 0x7400 0x7401 0x7404 0x7407 0x740a 0x7411 0x741a 0x741b 0x7424 0x7426 0x7428 0x7429 0x742a 0x742b 0x742c 0x742d 0x742e 0x742f 0x7430 0x7431 0x7439 0x7440 0x7443 0x7444 0x7446 0x7447 0x744b 0x744d 0x7451 0x7452 0x7457 0x745d 0x7462 0x7466 0x7467 0x7468 0x746b 0x746d 0x746e 0x7471 0x7472 0x7480 0x7481 0x7485 0x7486 0x7487 0x7489 0x748f 0x7490 0x7491 0x7492 0x7498 0x7499 0x749a 0x749c 0x749f 0x74a0 0x74a1 0x74a3 0x74a6 0x74a8 0x74a9 0x74aa 0x74ab 0x74ae 0x74af 0x74b1 0x74b2 0x74b5 0x74b9 0x74bb 0x74bf 0x74c8 0x74c9 0x74cc 0x74d0 0x74d3 0x74d8 0x74da 0x74db 0x74de 0x74df 0x74e4 0x74e8 0x74ea 0x74eb 0x74ef 0x74f4 0x74fa 0x74fb 0x74fc 0x74ff 0x7506 ) ; 0x4d21 ... 0x4d7e (block 43 0x7512 0x7516 0x7517 0x7520 0x7521 0x7524 0x7527 0x7529 0x752a 0x752f 0x7536 0x7539 0x753d 0x753e 0x753f 0x7540 0x7543 0x7547 0x7548 0x754e 0x7550 0x7552 0x7557 0x755e 0x755f 0x7561 0x756f 0x7571 0x7579 0x757a 0x757b 0x757c 0x757d 0x757e 0x7581 0x7585 0x7590 0x7592 0x7593 0x7595 0x7599 0x759c 0x75a2 0x75a4 0x75b4 0x75ba 0x75bf 0x75c0 0x75c1 0x75c4 0x75c6 0x75cc 0x75ce 0x75cf 0x75d7 0x75dc 0x75df 0x75e0 0x75e1 0x75e4 0x75e7 0x75ec 0x75ee 0x75ef 0x75f1 0x75f9 0x7600 0x7602 0x7603 0x7604 0x7607 0x7608 0x760a 0x760c 0x760f 0x7612 0x7613 0x7615 0x7616 0x7619 0x761b 0x761c 0x761d 0x761e 0x7623 0x7625 0x7626 0x7629 0x762d 0x7632 0x7633 0x7635 0x7638 0x7639 ) ; 0x4e21 ... 0x4e7e (block 44 0x763a 0x763c 0x764a 0x7640 0x7641 0x7643 0x7644 0x7645 0x7649 0x764b 0x7655 0x7659 0x765f 0x7664 0x7665 0x766d 0x766e 0x766f 0x7671 0x7674 0x7681 0x7685 0x768c 0x768d 0x7695 0x769b 0x769c 0x769d 0x769f 0x76a0 0x76a2 0x76a3 0x76a4 0x76a5 0x76a6 0x76a7 0x76a8 0x76aa 0x76ad 0x76bd 0x76c1 0x76c5 0x76c9 0x76cb 0x76cc 0x76ce 0x76d4 0x76d9 0x76e0 0x76e6 0x76e8 0x76ec 0x76f0 0x76f1 0x76f6 0x76f9 0x76fc 0x7700 0x7706 0x770a 0x770e 0x7712 0x7714 0x7715 0x7717 0x7719 0x771a 0x771c 0x7722 0x7728 0x772d 0x772e 0x772f 0x7734 0x7735 0x7736 0x7739 0x773d 0x773e 0x7742 0x7745 0x7746 0x774a 0x774d 0x774e 0x774f 0x7752 0x7756 0x7757 0x775c 0x775e 0x775f 0x7760 0x7762 ) ; 0x4f21 ... 0x4f7e (block 45 0x7764 0x7767 0x776a 0x776c 0x7770 0x7772 0x7773 0x7774 0x777a 0x777d 0x7780 0x7784 0x778c 0x778d 0x7794 0x7795 0x7796 0x779a 0x779f 0x77a2 0x77a7 0x77aa 0x77ae 0x77af 0x77b1 0x77b5 0x77be 0x77c3 0x77c9 0x77d1 0x77d2 0x77d5 0x77d9 0x77de 0x77df 0x77e0 0x77e4 0x77e6 0x77ea 0x77ec 0x77f0 0x77f1 0x77f4 0x77f8 0x77fb 0x7805 0x7806 0x7809 0x780d 0x780e 0x7811 0x781d 0x7821 0x7822 0x7823 0x782d 0x782e 0x7830 0x7835 0x7837 0x7843 0x7844 0x7847 0x7848 0x784c 0x784e 0x7852 0x785c 0x785e 0x7860 0x7861 0x7863 0x7864 0x7868 0x786a 0x786e 0x787a 0x787e 0x788a 0x788f 0x7894 0x7898 0x78a1 0x789d 0x789e 0x789f 0x78a4 0x78a8 0x78ac 0x78ad 0x78b0 0x78b1 0x78b2 0x78b3 ) ; 0x5021 ... 0x507e (block 46 0x78bb 0x78bd 0x78bf 0x78c7 0x78c8 0x78c9 0x78cc 0x78ce 0x78d2 0x78d3 0x78d5 0x78d6 0x78e4 0x78db 0x78df 0x78e0 0x78e1 0x78e6 0x78ea 0x78f2 0x78f3 0x7900 0x78f6 0x78f7 0x78fa 0x78fb 0x78ff 0x7906 0x790c 0x7910 0x791a 0x791c 0x791e 0x791f 0x7920 0x7925 0x7927 0x7929 0x792d 0x7931 0x7934 0x7935 0x793b 0x793d 0x793f 0x7944 0x7945 0x7946 0x794a 0x794b 0x794f 0x7951 0x7954 0x7958 0x795b 0x795c 0x7967 0x7969 0x796b 0x7972 0x7979 0x797b 0x797c 0x797e 0x798b 0x798c 0x7991 0x7993 0x7994 0x7995 0x7996 0x7998 0x799b 0x799c 0x79a1 0x79a8 0x79a9 0x79ab 0x79af 0x79b1 0x79b4 0x79b8 0x79bb 0x79c2 0x79c4 0x79c7 0x79c8 0x79ca 0x79cf 0x79d4 0x79d6 0x79da 0x79dd 0x79de ) ; 0x5121 ... 0x517e (block 47 0x79e0 0x79e2 0x79e5 0x79ea 0x79eb 0x79ed 0x79f1 0x79f8 0x79fc 0x7a02 0x7a03 0x7a07 0x7a09 0x7a0a 0x7a0c 0x7a11 0x7a15 0x7a1b 0x7a1e 0x7a21 0x7a27 0x7a2b 0x7a2d 0x7a2f 0x7a30 0x7a34 0x7a35 0x7a38 0x7a39 0x7a3a 0x7a44 0x7a45 0x7a47 0x7a48 0x7a4c 0x7a55 0x7a56 0x7a59 0x7a5c 0x7a5d 0x7a5f 0x7a60 0x7a65 0x7a67 0x7a6a 0x7a6d 0x7a75 0x7a78 0x7a7e 0x7a80 0x7a82 0x7a85 0x7a86 0x7a8a 0x7a8b 0x7a90 0x7a91 0x7a94 0x7a9e 0x7aa0 0x7aa3 0x7aac 0x7ab3 0x7ab5 0x7ab9 0x7abb 0x7abc 0x7ac6 0x7ac9 0x7acc 0x7ace 0x7ad1 0x7adb 0x7ae8 0x7ae9 0x7aeb 0x7aec 0x7af1 0x7af4 0x7afb 0x7afd 0x7afe 0x7b07 0x7b14 0x7b1f 0x7b23 0x7b27 0x7b29 0x7b2a 0x7b2b 0x7b2d 0x7b2e 0x7b2f 0x7b30 ) ; 0x5221 ... 0x527e (block 48 0x7b31 0x7b34 0x7b3d 0x7b3f 0x7b40 0x7b41 0x7b47 0x7b4e 0x7b55 0x7b60 0x7b64 0x7b66 0x7b69 0x7b6a 0x7b6d 0x7b6f 0x7b72 0x7b73 0x7b77 0x7b84 0x7b89 0x7b8e 0x7b90 0x7b91 0x7b96 0x7b9b 0x7b9e 0x7ba0 0x7ba5 0x7bac 0x7baf 0x7bb0 0x7bb2 0x7bb5 0x7bb6 0x7bba 0x7bbb 0x7bbc 0x7bbd 0x7bc2 0x7bc5 0x7bc8 0x7bca 0x7bd4 0x7bd6 0x7bd7 0x7bd9 0x7bda 0x7bdb 0x7be8 0x7bea 0x7bf2 0x7bf4 0x7bf5 0x7bf8 0x7bf9 0x7bfa 0x7bfc 0x7bfe 0x7c01 0x7c02 0x7c03 0x7c04 0x7c06 0x7c09 0x7c0b 0x7c0c 0x7c0e 0x7c0f 0x7c19 0x7c1b 0x7c20 0x7c25 0x7c26 0x7c28 0x7c2c 0x7c31 0x7c33 0x7c34 0x7c36 0x7c39 0x7c3a 0x7c46 0x7c4a 0x7c55 0x7c51 0x7c52 0x7c53 0x7c59 0x7c5a 0x7c5b 0x7c5c 0x7c5d 0x7c5e ) ; 0x5321 ... 0x537e (block 49 0x7c61 0x7c63 0x7c67 0x7c69 0x7c6d 0x7c6e 0x7c70 0x7c72 0x7c79 0x7c7c 0x7c7d 0x7c86 0x7c87 0x7c8f 0x7c94 0x7c9e 0x7ca0 0x7ca6 0x7cb0 0x7cb6 0x7cb7 0x7cba 0x7cbb 0x7cbc 0x7cbf 0x7cc4 0x7cc7 0x7cc8 0x7cc9 0x7ccd 0x7ccf 0x7cd3 0x7cd4 0x7cd5 0x7cd7 0x7cd9 0x7cda 0x7cdd 0x7ce6 0x7ce9 0x7ceb 0x7cf5 0x7d03 0x7d07 0x7d08 0x7d09 0x7d0f 0x7d11 0x7d12 0x7d13 0x7d16 0x7d1d 0x7d1e 0x7d23 0x7d26 0x7d2a 0x7d2d 0x7d31 0x7d3c 0x7d3d 0x7d3e 0x7d40 0x7d41 0x7d47 0x7d48 0x7d4d 0x7d51 0x7d53 0x7d57 0x7d59 0x7d5a 0x7d5c 0x7d5d 0x7d65 0x7d67 0x7d6a 0x7d70 0x7d78 0x7d7a 0x7d7b 0x7d7f 0x7d81 0x7d82 0x7d83 0x7d85 0x7d86 0x7d88 0x7d8b 0x7d8c 0x7d8d 0x7d91 0x7d96 0x7d97 0x7d9d ) ; 0x5421 ... 0x547e (block 50 0x7d9e 0x7da6 0x7da7 0x7daa 0x7db3 0x7db6 0x7db7 0x7db9 0x7dc2 0x7dc3 0x7dc4 0x7dc5 0x7dc6 0x7dcc 0x7dcd 0x7dce 0x7dd7 0x7dd9 0x7e00 0x7de2 0x7de5 0x7de6 0x7dea 0x7deb 0x7ded 0x7df1 0x7df5 0x7df6 0x7df9 0x7dfa 0x7e08 0x7e10 0x7e11 0x7e15 0x7e17 0x7e1c 0x7e1d 0x7e20 0x7e27 0x7e28 0x7e2c 0x7e2d 0x7e2f 0x7e33 0x7e36 0x7e3f 0x7e44 0x7e45 0x7e47 0x7e4e 0x7e50 0x7e52 0x7e58 0x7e5f 0x7e61 0x7e62 0x7e65 0x7e6b 0x7e6e 0x7e6f 0x7e73 0x7e78 0x7e7e 0x7e81 0x7e86 0x7e87 0x7e8a 0x7e8d 0x7e91 0x7e95 0x7e98 0x7e9a 0x7e9d 0x7e9e 0x7f3c 0x7f3b 0x7f3d 0x7f3e 0x7f3f 0x7f43 0x7f44 0x7f47 0x7f4f 0x7f52 0x7f53 0x7f5b 0x7f5c 0x7f5d 0x7f61 0x7f63 0x7f64 0x7f65 0x7f66 0x7f6d ) ; 0x5521 ... 0x557e (block 51 0x7f71 0x7f7d 0x7f7e 0x7f7f 0x7f80 0x7f8b 0x7f8d 0x7f8f 0x7f90 0x7f91 0x7f96 0x7f97 0x7f9c 0x7fa1 0x7fa2 0x7fa6 0x7faa 0x7fad 0x7fb4 0x7fbc 0x7fbf 0x7fc0 0x7fc3 0x7fc8 0x7fce 0x7fcf 0x7fdb 0x7fdf 0x7fe3 0x7fe5 0x7fe8 0x7fec 0x7fee 0x7fef 0x7ff2 0x7ffa 0x7ffd 0x7ffe 0x7fff 0x8007 0x8008 0x800a 0x800d 0x800e 0x800f 0x8011 0x8013 0x8014 0x8016 0x801d 0x801e 0x801f 0x8020 0x8024 0x8026 0x802c 0x802e 0x8030 0x8034 0x8035 0x8037 0x8039 0x803a 0x803c 0x803e 0x8040 0x8044 0x8060 0x8064 0x8066 0x806d 0x8071 0x8075 0x8081 0x8088 0x808e 0x809c 0x809e 0x80a6 0x80a7 0x80ab 0x80b8 0x80b9 0x80c8 0x80cd 0x80cf 0x80d2 0x80d4 0x80d5 0x80d7 0x80d8 0x80e0 0x80ed 0x80ee ) ; 0x5621 ... 0x567e (block 52 0x80f0 0x80f2 0x80f3 0x80f6 0x80f9 0x80fa 0x80fe 0x8103 0x810b 0x8116 0x8117 0x8118 0x811c 0x811e 0x8120 0x8124 0x8127 0x812c 0x8130 0x8135 0x813a 0x813c 0x8145 0x8147 0x814a 0x814c 0x8152 0x8157 0x8160 0x8161 0x8167 0x8168 0x8169 0x816d 0x816f 0x8177 0x8181 0x8190 0x8184 0x8185 0x8186 0x818b 0x818e 0x8196 0x8198 0x819b 0x819e 0x81a2 0x81ae 0x81b2 0x81b4 0x81bb 0x81cb 0x81c3 0x81c5 0x81ca 0x81ce 0x81cf 0x81d5 0x81d7 0x81db 0x81dd 0x81de 0x81e1 0x81e4 0x81eb 0x81ec 0x81f0 0x81f1 0x81f2 0x81f5 0x81f6 0x81f8 0x81f9 0x81fd 0x81ff 0x8200 0x8203 0x820f 0x8213 0x8214 0x8219 0x821a 0x821d 0x8221 0x8222 0x8228 0x8232 0x8234 0x823a 0x8243 0x8244 0x8245 0x8246 ) ; 0x5721 ... 0x577e (block 53 0x824b 0x824e 0x824f 0x8251 0x8256 0x825c 0x8260 0x8263 0x8267 0x826d 0x8274 0x827b 0x827d 0x827f 0x8280 0x8281 0x8283 0x8284 0x8287 0x8289 0x828a 0x828e 0x8291 0x8294 0x8296 0x8298 0x829a 0x829b 0x82a0 0x82a1 0x82a3 0x82a4 0x82a7 0x82a8 0x82a9 0x82aa 0x82ae 0x82b0 0x82b2 0x82b4 0x82b7 0x82ba 0x82bc 0x82be 0x82bf 0x82c6 0x82d0 0x82d5 0x82da 0x82e0 0x82e2 0x82e4 0x82e8 0x82ea 0x82ed 0x82ef 0x82f6 0x82f7 0x82fd 0x82fe 0x8300 0x8301 0x8307 0x8308 0x830a 0x830b 0x8354 0x831b 0x831d 0x831e 0x831f 0x8321 0x8322 0x832c 0x832d 0x832e 0x8330 0x8333 0x8337 0x833a 0x833c 0x833d 0x8342 0x8343 0x8344 0x8347 0x834d 0x834e 0x8351 0x8355 0x8356 0x8357 0x8370 0x8378 ) ; 0x5821 ... 0x587e (block 54 0x837d 0x837f 0x8380 0x8382 0x8384 0x8386 0x838d 0x8392 0x8394 0x8395 0x8398 0x8399 0x839b 0x839c 0x839d 0x83a6 0x83a7 0x83a9 0x83ac 0x83be 0x83bf 0x83c0 0x83c7 0x83c9 0x83cf 0x83d0 0x83d1 0x83d4 0x83dd 0x8353 0x83e8 0x83ea 0x83f6 0x83f8 0x83f9 0x83fc 0x8401 0x8406 0x840a 0x840f 0x8411 0x8415 0x8419 0x83ad 0x842f 0x8439 0x8445 0x8447 0x8448 0x844a 0x844d 0x844f 0x8451 0x8452 0x8456 0x8458 0x8459 0x845a 0x845c 0x8460 0x8464 0x8465 0x8467 0x846a 0x8470 0x8473 0x8474 0x8476 0x8478 0x847c 0x847d 0x8481 0x8485 0x8492 0x8493 0x8495 0x849e 0x84a6 0x84a8 0x84a9 0x84aa 0x84af 0x84b1 0x84b4 0x84ba 0x84bd 0x84be 0x84c0 0x84c2 0x84c7 0x84c8 0x84cc 0x84cf 0x84d3 ) ; 0x5921 ... 0x597e (block 55 0x84dc 0x84e7 0x84ea 0x84ef 0x84f0 0x84f1 0x84f2 0x84f7 0x8532 0x84fa 0x84fb 0x84fd 0x8502 0x8503 0x8507 0x850c 0x850e 0x8510 0x851c 0x851e 0x8522 0x8523 0x8524 0x8525 0x8527 0x852a 0x852b 0x852f 0x8533 0x8534 0x8536 0x853f 0x8546 0x854f 0x8550 0x8551 0x8552 0x8553 0x8556 0x8559 0x855c 0x855d 0x855e 0x855f 0x8560 0x8561 0x8562 0x8564 0x856b 0x856f 0x8579 0x857a 0x857b 0x857d 0x857f 0x8581 0x8585 0x8586 0x8589 0x858b 0x858c 0x858f 0x8593 0x8598 0x859d 0x859f 0x85a0 0x85a2 0x85a5 0x85a7 0x85b4 0x85b6 0x85b7 0x85b8 0x85bc 0x85bd 0x85be 0x85bf 0x85c2 0x85c7 0x85ca 0x85cb 0x85ce 0x85ad 0x85d8 0x85da 0x85df 0x85e0 0x85e6 0x85e8 0x85ed 0x85f3 0x85f6 0x85fc ) ; 0x5a21 ... 0x5a7e (block 56 0x85ff 0x8600 0x8604 0x8605 0x860d 0x860e 0x8610 0x8611 0x8612 0x8618 0x8619 0x861b 0x861e 0x8621 0x8627 0x8629 0x8636 0x8638 0x863a 0x863c 0x863d 0x8640 0x8642 0x8646 0x8652 0x8653 0x8656 0x8657 0x8658 0x8659 0x865d 0x8660 0x8661 0x8662 0x8663 0x8664 0x8669 0x866c 0x866f 0x8675 0x8676 0x8677 0x867a 0x868d 0x8691 0x8696 0x8698 0x869a 0x869c 0x86a1 0x86a6 0x86a7 0x86a8 0x86ad 0x86b1 0x86b3 0x86b4 0x86b5 0x86b7 0x86b8 0x86b9 0x86bf 0x86c0 0x86c1 0x86c3 0x86c5 0x86d1 0x86d2 0x86d5 0x86d7 0x86da 0x86dc 0x86e0 0x86e3 0x86e5 0x86e7 0x8688 0x86fa 0x86fc 0x86fd 0x8704 0x8705 0x8707 0x870b 0x870e 0x870f 0x8710 0x8713 0x8714 0x8719 0x871e 0x871f 0x8721 0x8723 ) ; 0x5b21 ... 0x5b7e (block 57 0x8728 0x872e 0x872f 0x8731 0x8732 0x8739 0x873a 0x873c 0x873d 0x873e 0x8740 0x8743 0x8745 0x874d 0x8758 0x875d 0x8761 0x8764 0x8765 0x876f 0x8771 0x8772 0x877b 0x8783 0x8784 0x8785 0x8786 0x8787 0x8788 0x8789 0x878b 0x878c 0x8790 0x8793 0x8795 0x8797 0x8798 0x8799 0x879e 0x87a0 0x87a3 0x87a7 0x87ac 0x87ad 0x87ae 0x87b1 0x87b5 0x87be 0x87bf 0x87c1 0x87c8 0x87c9 0x87ca 0x87ce 0x87d5 0x87d6 0x87d9 0x87da 0x87dc 0x87df 0x87e2 0x87e3 0x87e4 0x87ea 0x87eb 0x87ed 0x87f1 0x87f3 0x87f8 0x87fa 0x87ff 0x8801 0x8803 0x8806 0x8809 0x880a 0x880b 0x8810 0x8819 0x8812 0x8813 0x8814 0x8818 0x881a 0x881b 0x881c 0x881e 0x881f 0x8828 0x882d 0x882e 0x8830 0x8832 0x8835 ) ; 0x5c21 ... 0x5c7e (block 58 0x883a 0x883c 0x8841 0x8843 0x8845 0x8848 0x8849 0x884a 0x884b 0x884e 0x8851 0x8855 0x8856 0x8858 0x885a 0x885c 0x885f 0x8860 0x8864 0x8869 0x8871 0x8879 0x887b 0x8880 0x8898 0x889a 0x889b 0x889c 0x889f 0x88a0 0x88a8 0x88aa 0x88ba 0x88bd 0x88be 0x88c0 0x88ca 0x88cb 0x88cc 0x88cd 0x88ce 0x88d1 0x88d2 0x88d3 0x88db 0x88de 0x88e7 0x88ef 0x88f0 0x88f1 0x88f5 0x88f7 0x8901 0x8906 0x890d 0x890e 0x890f 0x8915 0x8916 0x8918 0x8919 0x891a 0x891c 0x8920 0x8926 0x8927 0x8928 0x8930 0x8931 0x8932 0x8935 0x8939 0x893a 0x893e 0x8940 0x8942 0x8945 0x8946 0x8949 0x894f 0x8952 0x8957 0x895a 0x895b 0x895c 0x8961 0x8962 0x8963 0x896b 0x896e 0x8970 0x8973 0x8975 0x897a ) ; 0x5d21 ... 0x5d7e (block 59 0x897b 0x897c 0x897d 0x8989 0x898d 0x8990 0x8994 0x8995 0x899b 0x899c 0x899f 0x89a0 0x89a5 0x89b0 0x89b4 0x89b5 0x89b6 0x89b7 0x89bc 0x89d4 0x89d5 0x89d6 0x89d7 0x89d8 0x89e5 0x89e9 0x89eb 0x89ed 0x89f1 0x89f3 0x89f6 0x89f9 0x89fd 0x89ff 0x8a04 0x8a05 0x8a07 0x8a0f 0x8a11 0x8a12 0x8a14 0x8a15 0x8a1e 0x8a20 0x8a22 0x8a24 0x8a26 0x8a2b 0x8a2c 0x8a2f 0x8a35 0x8a37 0x8a3d 0x8a3e 0x8a40 0x8a43 0x8a45 0x8a47 0x8a49 0x8a4d 0x8a4e 0x8a53 0x8a56 0x8a57 0x8a58 0x8a5c 0x8a5d 0x8a61 0x8a65 0x8a67 0x8a75 0x8a76 0x8a77 0x8a79 0x8a7a 0x8a7b 0x8a7e 0x8a7f 0x8a80 0x8a83 0x8a86 0x8a8b 0x8a8f 0x8a90 0x8a92 0x8a96 0x8a97 0x8a99 0x8a9f 0x8aa7 0x8aa9 0x8aae 0x8aaf 0x8ab3 ) ; 0x5e21 ... 0x5e7e (block 60 0x8ab6 0x8ab7 0x8abb 0x8abe 0x8ac3 0x8ac6 0x8ac8 0x8ac9 0x8aca 0x8ad1 0x8ad3 0x8ad4 0x8ad5 0x8ad7 0x8add 0x8adf 0x8aec 0x8af0 0x8af4 0x8af5 0x8af6 0x8afc 0x8aff 0x8b05 0x8b06 0x8b0b 0x8b11 0x8b1c 0x8b1e 0x8b1f 0x8b0a 0x8b2d 0x8b30 0x8b37 0x8b3c 0x8b42 0x8b43 0x8b44 0x8b45 0x8b46 0x8b48 0x8b52 0x8b53 0x8b54 0x8b59 0x8b4d 0x8b5e 0x8b63 0x8b6d 0x8b76 0x8b78 0x8b79 0x8b7c 0x8b7e 0x8b81 0x8b84 0x8b85 0x8b8b 0x8b8d 0x8b8f 0x8b94 0x8b95 0x8b9c 0x8b9e 0x8b9f 0x8c38 0x8c39 0x8c3d 0x8c3e 0x8c45 0x8c47 0x8c49 0x8c4b 0x8c4f 0x8c51 0x8c53 0x8c54 0x8c57 0x8c58 0x8c5b 0x8c5d 0x8c59 0x8c63 0x8c64 0x8c66 0x8c68 0x8c69 0x8c6d 0x8c73 0x8c75 0x8c76 0x8c7b 0x8c7e 0x8c86 ) ; 0x5f21 ... 0x5f7e (block 61 0x8c87 0x8c8b 0x8c90 0x8c92 0x8c93 0x8c99 0x8c9b 0x8c9c 0x8ca4 0x8cb9 0x8cba 0x8cc5 0x8cc6 0x8cc9 0x8ccb 0x8ccf 0x8cd6 0x8cd5 0x8cd9 0x8cdd 0x8ce1 0x8ce8 0x8cec 0x8cef 0x8cf0 0x8cf2 0x8cf5 0x8cf7 0x8cf8 0x8cfe 0x8cff 0x8d01 0x8d03 0x8d09 0x8d12 0x8d17 0x8d1b 0x8d65 0x8d69 0x8d6c 0x8d6e 0x8d7f 0x8d82 0x8d84 0x8d88 0x8d8d 0x8d90 0x8d91 0x8d95 0x8d9e 0x8d9f 0x8da0 0x8da6 0x8dab 0x8dac 0x8daf 0x8db2 0x8db5 0x8db7 0x8db9 0x8dbb 0x8dc0 0x8dc5 0x8dc6 0x8dc7 0x8dc8 0x8dca 0x8dce 0x8dd1 0x8dd4 0x8dd5 0x8dd7 0x8dd9 0x8de4 0x8de5 0x8de7 0x8dec 0x8df0 0x8dbc 0x8df1 0x8df2 0x8df4 0x8dfd 0x8e01 0x8e04 0x8e05 0x8e06 0x8e0b 0x8e11 0x8e14 0x8e16 0x8e20 0x8e21 0x8e22 ) ; 0x6021 ... 0x607e (block 62 0x8e23 0x8e26 0x8e27 0x8e31 0x8e33 0x8e36 0x8e37 0x8e38 0x8e39 0x8e3d 0x8e40 0x8e41 0x8e4b 0x8e4d 0x8e4e 0x8e4f 0x8e54 0x8e5b 0x8e5c 0x8e5d 0x8e5e 0x8e61 0x8e62 0x8e69 0x8e6c 0x8e6d 0x8e6f 0x8e70 0x8e71 0x8e79 0x8e7a 0x8e7b 0x8e82 0x8e83 0x8e89 0x8e90 0x8e92 0x8e95 0x8e9a 0x8e9b 0x8e9d 0x8e9e 0x8ea2 0x8ea7 0x8ea9 0x8ead 0x8eae 0x8eb3 0x8eb5 0x8eba 0x8ebb 0x8ec0 0x8ec1 0x8ec3 0x8ec4 0x8ec7 0x8ecf 0x8ed1 0x8ed4 0x8edc 0x8ee8 0x8eee 0x8ef0 0x8ef1 0x8ef7 0x8ef9 0x8efa 0x8eed 0x8f00 0x8f02 0x8f07 0x8f08 0x8f0f 0x8f10 0x8f16 0x8f17 0x8f18 0x8f1e 0x8f20 0x8f21 0x8f23 0x8f25 0x8f27 0x8f28 0x8f2c 0x8f2d 0x8f2e 0x8f34 0x8f35 0x8f36 0x8f37 0x8f3a 0x8f40 0x8f41 ) ; 0x6121 ... 0x617e (block 63 0x8f43 0x8f47 0x8f4f 0x8f51 0x8f52 0x8f53 0x8f54 0x8f55 0x8f58 0x8f5d 0x8f5e 0x8f65 0x8f9d 0x8fa0 0x8fa1 0x8fa4 0x8fa5 0x8fa6 0x8fb5 0x8fb6 0x8fb8 0x8fbe 0x8fc0 0x8fc1 0x8fc6 0x8fca 0x8fcb 0x8fcd 0x8fd0 0x8fd2 0x8fd3 0x8fd5 0x8fe0 0x8fe3 0x8fe4 0x8fe8 0x8fee 0x8ff1 0x8ff5 0x8ff6 0x8ffb 0x8ffe 0x9002 0x9004 0x9008 0x900c 0x9018 0x901b 0x9028 0x9029 0x902f 0x902a 0x902c 0x902d 0x9033 0x9034 0x9037 0x903f 0x9043 0x9044 0x904c 0x905b 0x905d 0x9062 0x9066 0x9067 0x906c 0x9070 0x9074 0x9079 0x9085 0x9088 0x908b 0x908c 0x908e 0x9090 0x9095 0x9097 0x9098 0x9099 0x909b 0x90a0 0x90a1 0x90a2 0x90a5 0x90b0 0x90b2 0x90b3 0x90b4 0x90b6 0x90bd 0x90cc 0x90be 0x90c3 ) ; 0x6221 ... 0x627e (block 64 0x90c4 0x90c5 0x90c7 0x90c8 0x90d5 0x90d7 0x90d8 0x90d9 0x90dc 0x90dd 0x90df 0x90e5 0x90d2 0x90f6 0x90eb 0x90ef 0x90f0 0x90f4 0x90fe 0x90ff 0x9100 0x9104 0x9105 0x9106 0x9108 0x910d 0x9110 0x9114 0x9116 0x9117 0x9118 0x911a 0x911c 0x911e 0x9120 0x9125 0x9122 0x9123 0x9127 0x9129 0x912e 0x912f 0x9131 0x9134 0x9136 0x9137 0x9139 0x913a 0x913c 0x913d 0x9143 0x9147 0x9148 0x914f 0x9153 0x9157 0x9159 0x915a 0x915b 0x9161 0x9164 0x9167 0x916d 0x9174 0x9179 0x917a 0x917b 0x9181 0x9183 0x9185 0x9186 0x918a 0x918e 0x9191 0x9193 0x9194 0x9195 0x9198 0x919e 0x91a1 0x91a6 0x91a8 0x91ac 0x91ad 0x91ae 0x91b0 0x91b1 0x91b2 0x91b3 0x91b6 0x91bb 0x91bc 0x91bd 0x91bf ) ; 0x6321 ... 0x637e (block 65 0x91c2 0x91c3 0x91c5 0x91d3 0x91d4 0x91d7 0x91d9 0x91da 0x91de 0x91e4 0x91e5 0x91e9 0x91ea 0x91ec 0x91ed 0x91ee 0x91ef 0x91f0 0x91f1 0x91f7 0x91f9 0x91fb 0x91fd 0x9200 0x9201 0x9204 0x9205 0x9206 0x9207 0x9209 0x920a 0x920c 0x9210 0x9212 0x9213 0x9216 0x9218 0x921c 0x921d 0x9223 0x9224 0x9225 0x9226 0x9228 0x922e 0x922f 0x9230 0x9233 0x9235 0x9236 0x9238 0x9239 0x923a 0x923c 0x923e 0x9240 0x9242 0x9243 0x9246 0x9247 0x924a 0x924d 0x924e 0x924f 0x9251 0x9258 0x9259 0x925c 0x925d 0x9260 0x9261 0x9265 0x9267 0x9268 0x9269 0x926e 0x926f 0x9270 0x9275 0x9276 0x9277 0x9278 0x9279 0x927b 0x927c 0x927d 0x927f 0x9288 0x9289 0x928a 0x928d 0x928e 0x9292 0x9297 ) ; 0x6421 ... 0x647e (block 66 0x9299 0x929f 0x92a0 0x92a4 0x92a5 0x92a7 0x92a8 0x92ab 0x92af 0x92b2 0x92b6 0x92b8 0x92ba 0x92bb 0x92bc 0x92bd 0x92bf 0x92c0 0x92c1 0x92c2 0x92c3 0x92c5 0x92c6 0x92c7 0x92c8 0x92cb 0x92cc 0x92cd 0x92ce 0x92d0 0x92d3 0x92d5 0x92d7 0x92d8 0x92d9 0x92dc 0x92dd 0x92df 0x92e0 0x92e1 0x92e3 0x92e5 0x92e7 0x92e8 0x92ec 0x92ee 0x92f0 0x92f9 0x92fb 0x92ff 0x9300 0x9302 0x9308 0x930d 0x9311 0x9314 0x9315 0x931c 0x931d 0x931e 0x931f 0x9321 0x9324 0x9325 0x9327 0x9329 0x932a 0x9333 0x9334 0x9336 0x9337 0x9347 0x9348 0x9349 0x9350 0x9351 0x9352 0x9355 0x9357 0x9358 0x935a 0x935e 0x9364 0x9365 0x9367 0x9369 0x936a 0x936d 0x936f 0x9370 0x9371 0x9373 0x9374 0x9376 ) ; 0x6521 ... 0x657e (block 67 0x937a 0x937d 0x937f 0x9380 0x9381 0x9382 0x9388 0x938a 0x938b 0x938d 0x938f 0x9392 0x9395 0x9398 0x939b 0x939e 0x93a1 0x93a3 0x93a4 0x93a6 0x93a8 0x93ab 0x93b4 0x93b5 0x93b6 0x93ba 0x93a9 0x93c1 0x93c4 0x93c5 0x93c6 0x93c7 0x93c9 0x93ca 0x93cb 0x93cc 0x93cd 0x93d3 0x93d9 0x93dc 0x93de 0x93df 0x93e2 0x93e6 0x93e7 0x93f9 0x93f7 0x93f8 0x93fa 0x93fb 0x93fd 0x9401 0x9402 0x9404 0x9408 0x9409 0x940d 0x940e 0x940f 0x9415 0x9416 0x9417 0x941f 0x942e 0x942f 0x9431 0x9432 0x9433 0x9434 0x943b 0x943f 0x943d 0x9443 0x9445 0x9448 0x944a 0x944c 0x9455 0x9459 0x945c 0x945f 0x9461 0x9463 0x9468 0x946b 0x946d 0x946e 0x946f 0x9471 0x9472 0x9484 0x9483 0x9578 0x9579 ) ; 0x6621 ... 0x667e (block 68 0x957e 0x9584 0x9588 0x958c 0x958d 0x958e 0x959d 0x959e 0x959f 0x95a1 0x95a6 0x95a9 0x95ab 0x95ac 0x95b4 0x95b6 0x95ba 0x95bd 0x95bf 0x95c6 0x95c8 0x95c9 0x95cb 0x95d0 0x95d1 0x95d2 0x95d3 0x95d9 0x95da 0x95dd 0x95de 0x95df 0x95e0 0x95e4 0x95e6 0x961d 0x961e 0x9622 0x9624 0x9625 0x9626 0x962c 0x9631 0x9633 0x9637 0x9638 0x9639 0x963a 0x963c 0x963d 0x9641 0x9652 0x9654 0x9656 0x9657 0x9658 0x9661 0x966e 0x9674 0x967b 0x967c 0x967e 0x967f 0x9681 0x9682 0x9683 0x9684 0x9689 0x9691 0x9696 0x969a 0x969d 0x969f 0x96a4 0x96a5 0x96a6 0x96a9 0x96ae 0x96af 0x96b3 0x96ba 0x96ca 0x96d2 0x5db2 0x96d8 0x96da 0x96dd 0x96de 0x96df 0x96e9 0x96ef 0x96f1 0x96fa 0x9702 ) ; 0x6721 ... 0x677e (block 69 0x9703 0x9705 0x9709 0x971a 0x971b 0x971d 0x9721 0x9722 0x9723 0x9728 0x9731 0x9733 0x9741 0x9743 0x974a 0x974e 0x974f 0x9755 0x9757 0x9758 0x975a 0x975b 0x9763 0x9767 0x976a 0x976e 0x9773 0x9776 0x9777 0x9778 0x977b 0x977d 0x977f 0x9780 0x9789 0x9795 0x9796 0x9797 0x9799 0x979a 0x979e 0x979f 0x97a2 0x97ac 0x97ae 0x97b1 0x97b2 0x97b5 0x97b6 0x97b8 0x97b9 0x97ba 0x97bc 0x97be 0x97bf 0x97c1 0x97c4 0x97c5 0x97c7 0x97c9 0x97ca 0x97cc 0x97cd 0x97ce 0x97d0 0x97d1 0x97d4 0x97d7 0x97d8 0x97d9 0x97dd 0x97de 0x97e0 0x97db 0x97e1 0x97e4 0x97ef 0x97f1 0x97f4 0x97f7 0x97f8 0x97fa 0x9807 0x980a 0x9819 0x980d 0x980e 0x9814 0x9816 0x981c 0x981e 0x9820 0x9823 0x9826 ) ; 0x6821 ... 0x687e (block 70 0x982b 0x982e 0x982f 0x9830 0x9832 0x9833 0x9835 0x9825 0x983e 0x9844 0x9847 0x984a 0x9851 0x9852 0x9853 0x9856 0x9857 0x9859 0x985a 0x9862 0x9863 0x9865 0x9866 0x986a 0x986c 0x98ab 0x98ad 0x98ae 0x98b0 0x98b4 0x98b7 0x98b8 0x98ba 0x98bb 0x98bf 0x98c2 0x98c5 0x98c8 0x98cc 0x98e1 0x98e3 0x98e5 0x98e6 0x98e7 0x98ea 0x98f3 0x98f6 0x9902 0x9907 0x9908 0x9911 0x9915 0x9916 0x9917 0x991a 0x991b 0x991c 0x991f 0x9922 0x9926 0x9927 0x992b 0x9931 0x9932 0x9933 0x9934 0x9935 0x9939 0x993a 0x993b 0x993c 0x9940 0x9941 0x9946 0x9947 0x9948 0x994d 0x994e 0x9954 0x9958 0x9959 0x995b 0x995c 0x995e 0x995f 0x9960 0x999b 0x999d 0x999f 0x99a6 0x99b0 0x99b1 0x99b2 0x99b5 ) ; 0x6921 ... 0x697e (block 71 0x99b9 0x99ba 0x99bd 0x99bf 0x99c3 0x99c9 0x99d3 0x99d4 0x99d9 0x99da 0x99dc 0x99de 0x99e7 0x99ea 0x99eb 0x99ec 0x99f0 0x99f4 0x99f5 0x99f9 0x99fd 0x99fe 0x9a02 0x9a03 0x9a04 0x9a0b 0x9a0c 0x9a10 0x9a11 0x9a16 0x9a1e 0x9a20 0x9a22 0x9a23 0x9a24 0x9a27 0x9a2d 0x9a2e 0x9a33 0x9a35 0x9a36 0x9a38 0x9a47 0x9a41 0x9a44 0x9a4a 0x9a4b 0x9a4c 0x9a4e 0x9a51 0x9a54 0x9a56 0x9a5d 0x9aaa 0x9aac 0x9aae 0x9aaf 0x9ab2 0x9ab4 0x9ab5 0x9ab6 0x9ab9 0x9abb 0x9abe 0x9abf 0x9ac1 0x9ac3 0x9ac6 0x9ac8 0x9ace 0x9ad0 0x9ad2 0x9ad5 0x9ad6 0x9ad7 0x9adb 0x9adc 0x9ae0 0x9ae4 0x9ae5 0x9ae7 0x9ae9 0x9aec 0x9af2 0x9af3 0x9af5 0x9af9 0x9afa 0x9afd 0x9aff 0x9b00 0x9b01 0x9b02 0x9b03 ) ; 0x6a21 ... 0x6a7e (block 72 0x9b04 0x9b05 0x9b08 0x9b09 0x9b0b 0x9b0c 0x9b0d 0x9b0e 0x9b10 0x9b12 0x9b16 0x9b19 0x9b1b 0x9b1c 0x9b20 0x9b26 0x9b2b 0x9b2d 0x9b33 0x9b34 0x9b35 0x9b37 0x9b39 0x9b3a 0x9b3d 0x9b48 0x9b4b 0x9b4c 0x9b55 0x9b56 0x9b57 0x9b5b 0x9b5e 0x9b61 0x9b63 0x9b65 0x9b66 0x9b68 0x9b6a 0x9b6b 0x9b6c 0x9b6d 0x9b6e 0x9b73 0x9b75 0x9b77 0x9b78 0x9b79 0x9b7f 0x9b80 0x9b84 0x9b85 0x9b86 0x9b87 0x9b89 0x9b8a 0x9b8b 0x9b8d 0x9b8f 0x9b90 0x9b94 0x9b9a 0x9b9d 0x9b9e 0x9ba6 0x9ba7 0x9ba9 0x9bac 0x9bb0 0x9bb1 0x9bb2 0x9bb7 0x9bb8 0x9bbb 0x9bbc 0x9bbe 0x9bbf 0x9bc1 0x9bc7 0x9bc8 0x9bce 0x9bd0 0x9bd7 0x9bd8 0x9bdd 0x9bdf 0x9be5 0x9be7 0x9bea 0x9beb 0x9bef 0x9bf3 0x9bf7 0x9bf8 ) ; 0x6b21 ... 0x6b7e (block 73 0x9bf9 0x9bfa 0x9bfd 0x9bff 0x9c00 0x9c02 0x9c0b 0x9c0f 0x9c11 0x9c16 0x9c18 0x9c19 0x9c1a 0x9c1c 0x9c1e 0x9c22 0x9c23 0x9c26 0x9c27 0x9c28 0x9c29 0x9c2a 0x9c31 0x9c35 0x9c36 0x9c37 0x9c3d 0x9c41 0x9c43 0x9c44 0x9c45 0x9c49 0x9c4a 0x9c4e 0x9c4f 0x9c50 0x9c53 0x9c54 0x9c56 0x9c58 0x9c5b 0x9c5d 0x9c5e 0x9c5f 0x9c63 0x9c69 0x9c6a 0x9c5c 0x9c6b 0x9c68 0x9c6e 0x9c70 0x9c72 0x9c75 0x9c77 0x9c7b 0x9ce6 0x9cf2 0x9cf7 0x9cf9 0x9d0b 0x9d02 0x9d11 0x9d17 0x9d18 0x9d1c 0x9d1d 0x9d1e 0x9d2f 0x9d30 0x9d32 0x9d33 0x9d34 0x9d3a 0x9d3c 0x9d45 0x9d3d 0x9d42 0x9d43 0x9d47 0x9d4a 0x9d53 0x9d54 0x9d5f 0x9d63 0x9d62 0x9d65 0x9d69 0x9d6a 0x9d6b 0x9d70 0x9d76 0x9d77 0x9d7b ) ; 0x6c21 ... 0x6c7e (block 74 0x9d7c 0x9d7e 0x9d83 0x9d84 0x9d86 0x9d8a 0x9d8d 0x9d8e 0x9d92 0x9d93 0x9d95 0x9d96 0x9d97 0x9d98 0x9da1 0x9daa 0x9dac 0x9dae 0x9db1 0x9db5 0x9db9 0x9dbc 0x9dbf 0x9dc3 0x9dc7 0x9dc9 0x9dca 0x9dd4 0x9dd5 0x9dd6 0x9dd7 0x9dda 0x9dde 0x9ddf 0x9de0 0x9de5 0x9de7 0x9de9 0x9deb 0x9dee 0x9df0 0x9df3 0x9df4 0x9dfe 0x9e0a 0x9e02 0x9e07 0x9e0e 0x9e10 0x9e11 0x9e12 0x9e15 0x9e16 0x9e19 0x9e1c 0x9e1d 0x9e7a 0x9e7b 0x9e7c 0x9e80 0x9e82 0x9e83 0x9e84 0x9e85 0x9e87 0x9e8e 0x9e8f 0x9e96 0x9e98 0x9e9b 0x9e9e 0x9ea4 0x9ea8 0x9eac 0x9eae 0x9eaf 0x9eb0 0x9eb3 0x9eb4 0x9eb5 0x9ec6 0x9ec8 0x9ecb 0x9ed5 0x9edf 0x9ee4 0x9ee7 0x9eec 0x9eed 0x9eee 0x9ef0 0x9ef1 0x9ef2 0x9ef5 ) ; 0x6d21 ... 0x6d7e (block 75 0x9ef8 0x9eff 0x9f02 0x9f03 0x9f09 0x9f0f 0x9f10 0x9f11 0x9f12 0x9f14 0x9f16 0x9f17 0x9f19 0x9f1a 0x9f1b 0x9f1f 0x9f22 0x9f26 0x9f2a 0x9f2b 0x9f2f 0x9f31 0x9f32 0x9f34 0x9f37 0x9f39 0x9f3a 0x9f3c 0x9f3d 0x9f3f 0x9f41 0x9f43 0x9f44 0x9f45 0x9f46 0x9f47 0x9f53 0x9f55 0x9f56 0x9f57 0x9f58 0x9f5a 0x9f5d 0x9f5e 0x9f68 0x9f69 0x9f6d 0x9f6e 0x9f6f 0x9f70 0x9f71 0x9f73 0x9f75 0x9f7a 0x9f7d 0x9f8f 0x9f90 0x9f91 0x9f92 0x9f94 0x9f96 0x9f97 0x9f9e 0x9fa1 0x9fa2 0x9fa3 0x9fa5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) vflib3-3.6.14.dfsg/ccv/ksc5601_unicode.ccv0000644000175000017500000021101307006213674017341 0ustar mohuramohura; Conversion table: KSC5601 ==> UNICODE (charset-external-name KSC5601) (charset-external-encoding ISO2022) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x21) (c1-max 0x7d) (c2-min 0x21) (c2-max 0x7e) (block-size 256) (nblocks 93) ; 0x2121 ... 0x217e (block 0 0x3000 0x3001 0x3002 0x00b7 0x2025 0x2026 0x00a8 0x3003 0x00ad 0x2015 0x2225 0xff3c 0x223c 0x2018 0x2019 0x201c 0x201d 0x3014 0x3015 0x3008 0x3009 0x300a 0x300b 0x300c 0x300d 0x300e 0x300f 0x3010 0x3011 0x00b1 0x00d7 0x00f7 0x2260 0x2264 0x2265 0x221e 0x2234 0x00b0 0x2032 0x2033 0x2103 0x212b 0xffe0 0xffe1 0xffe5 0x2642 0x2640 0x2220 0x22a5 0x2312 0x2202 0x2207 0x2261 0x2252 0x00a7 0x203b 0x2606 0x2605 0x25cb 0x25cf 0x25ce 0x25c7 0x25c6 0x25a1 0x25a0 0x25b3 0x25b2 0x25bd 0x25bc 0x2192 0x2190 0x2191 0x2193 0x2194 0x3013 0x226a 0x226b 0x221a 0x223d 0x221d 0x2235 0x222b 0x222c 0x2208 0x220b 0x2286 0x2287 0x2282 0x2283 0x222a 0x2229 0x2227 0x2228 0xffe2 ) ; 0x2221 ... 0x227e (block 1 0x21d2 0x21d4 0x2200 0x2203 0x00b4 0xff5e 0x02c7 0x02d8 0x02dd 0x02da 0x02d9 0x00b8 0x02db 0x00a1 0x00bf 0x02d0 0x222e 0x2211 0x220f 0x00a4 0x2109 0x2030 0x25c1 0x25c0 0x25b7 0x25b6 0x2664 0x2660 0x2661 0x2665 0x2667 0x2663 0x2299 0x25c8 0x25a3 0x25d0 0x25d1 0x2592 0x25a4 0x25a5 0x25a8 0x25a7 0x25a6 0x25a9 0x2668 0x260f 0x260e 0x261c 0x261e 0x00b6 0x2020 0x2021 0x2195 0x2197 0x2199 0x2196 0x2198 0x266d 0x2669 0x266a 0x266c 0x327f 0x321c 0x2116 0x33c7 0x2122 0x33c2 0x33d8 0x2121 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2321 ... 0x237e (block 2 0xff01 0xff02 0xff03 0xff04 0xff05 0xff06 0xff07 0xff08 0xff09 0xff0a 0xff0b 0xff0c 0xff0d 0xff0e 0xff0f 0xff10 0xff11 0xff12 0xff13 0xff14 0xff15 0xff16 0xff17 0xff18 0xff19 0xff1a 0xff1b 0xff1c 0xff1d 0xff1e 0xff1f 0xff20 0xff21 0xff22 0xff23 0xff24 0xff25 0xff26 0xff27 0xff28 0xff29 0xff2a 0xff2b 0xff2c 0xff2d 0xff2e 0xff2f 0xff30 0xff31 0xff32 0xff33 0xff34 0xff35 0xff36 0xff37 0xff38 0xff39 0xff3a 0xff3b 0xffe6 0xff3d 0xff3e 0xff3f 0xff40 0xff41 0xff42 0xff43 0xff44 0xff45 0xff46 0xff47 0xff48 0xff49 0xff4a 0xff4b 0xff4c 0xff4d 0xff4e 0xff4f 0xff50 0xff51 0xff52 0xff53 0xff54 0xff55 0xff56 0xff57 0xff58 0xff59 0xff5a 0xff5b 0xff5c 0xff5d 0xffe3 ) ; 0x2421 ... 0x247e (block 3 0x3131 0x3132 0x3133 0x3134 0x3135 0x3136 0x3137 0x3138 0x3139 0x313a 0x313b 0x313c 0x313d 0x313e 0x313f 0x3140 0x3141 0x3142 0x3143 0x3144 0x3145 0x3146 0x3147 0x3148 0x3149 0x314a 0x314b 0x314c 0x314d 0x314e 0x314f 0x3150 0x3151 0x3152 0x3153 0x3154 0x3155 0x3156 0x3157 0x3158 0x3159 0x315a 0x315b 0x315c 0x315d 0x315e 0x315f 0x3160 0x3161 0x3162 0x3163 0x3164 0x3165 0x3166 0x3167 0x3168 0x3169 0x316a 0x316b 0x316c 0x316d 0x316e 0x316f 0x3170 0x3171 0x3172 0x3173 0x3174 0x3175 0x3176 0x3177 0x3178 0x3179 0x317a 0x317b 0x317c 0x317d 0x317e 0x317f 0x3180 0x3181 0x3182 0x3183 0x3184 0x3185 0x3186 0x3187 0x3188 0x3189 0x318a 0x318b 0x318c 0x318d 0x318e ) ; 0x2521 ... 0x257e (block 4 0x2170 0x2171 0x2172 0x2173 0x2174 0x2175 0x2176 0x2177 0x2178 0x2179 -1 -1 -1 -1 -1 0x2160 0x2161 0x2162 0x2163 0x2164 0x2165 0x2166 0x2167 0x2168 0x2169 -1 -1 -1 -1 -1 -1 -1 0x0391 0x0392 0x0393 0x0394 0x0395 0x0396 0x0397 0x0398 0x0399 0x039a 0x039b 0x039c 0x039d 0x039e 0x039f 0x03a0 0x03a1 0x03a3 0x03a4 0x03a5 0x03a6 0x03a7 0x03a8 0x03a9 -1 -1 -1 -1 -1 -1 -1 -1 0x03b1 0x03b2 0x03b3 0x03b4 0x03b5 0x03b6 0x03b7 0x03b8 0x03b9 0x03ba 0x03bb 0x03bc 0x03bd 0x03be 0x03bf 0x03c0 0x03c1 0x03c3 0x03c4 0x03c5 0x03c6 0x03c7 0x03c8 0x03c9 -1 -1 -1 -1 -1 -1 ) ; 0x2621 ... 0x267e (block 5 0x2500 0x2502 0x250c 0x2510 0x2518 0x2514 0x251c 0x252c 0x2524 0x2534 0x253c 0x2501 0x2503 0x250f 0x2513 0x251b 0x2517 0x2523 0x2533 0x252b 0x253b 0x254b 0x2520 0x252f 0x2528 0x2537 0x253f 0x251d 0x2530 0x2525 0x2538 0x2542 0x2512 0x2511 0x251a 0x2519 0x2516 0x2515 0x250e 0x250d 0x251e 0x251f 0x2521 0x2522 0x2526 0x2527 0x2529 0x252a 0x252d 0x252e 0x2531 0x2532 0x2535 0x2536 0x2539 0x253a 0x253d 0x253e 0x2540 0x2541 0x2543 0x2544 0x2545 0x2546 0x2547 0x2548 0x2549 0x254a -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2721 ... 0x277e (block 6 0x3395 0x3396 0x3397 0x2113 0x3398 0x33c4 0x33a3 0x33a4 0x33a5 0x33a6 0x3399 0x339a 0x339b 0x339c 0x339d 0x339e 0x339f 0x33a0 0x33a1 0x33a2 0x33ca 0x338d 0x338e 0x338f 0x33cf 0x3388 0x3389 0x33c8 0x33a7 0x33a8 0x33b0 0x33b1 0x33b2 0x33b3 0x33b4 0x33b5 0x33b6 0x33b7 0x33b8 0x33b9 0x3380 0x3381 0x3382 0x3383 0x3384 0x33ba 0x33bb 0x33bc 0x33bd 0x33be 0x33bf 0x3390 0x3391 0x3392 0x3393 0x3394 0x2126 0x33c0 0x33c1 0x338a 0x338b 0x338c 0x33d6 0x33c5 0x33ad 0x33ae 0x33af 0x33db 0x33a9 0x33aa 0x33ab 0x33ac 0x33dd 0x33d0 0x33d3 0x33c3 0x33c9 0x33dc 0x33c6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2821 ... 0x287e (block 7 0x00c6 0x00d0 0x00aa 0x0126 -1 0x0132 -1 0x013f 0x0141 0x00d8 0x0152 0x00ba 0x00de 0x0166 0x014a -1 0x3260 0x3261 0x3262 0x3263 0x3264 0x3265 0x3266 0x3267 0x3268 0x3269 0x326a 0x326b 0x326c 0x326d 0x326e 0x326f 0x3270 0x3271 0x3272 0x3273 0x3274 0x3275 0x3276 0x3277 0x3278 0x3279 0x327a 0x327b 0x24d0 0x24d1 0x24d2 0x24d3 0x24d4 0x24d5 0x24d6 0x24d7 0x24d8 0x24d9 0x24da 0x24db 0x24dc 0x24dd 0x24de 0x24df 0x24e0 0x24e1 0x24e2 0x24e3 0x24e4 0x24e5 0x24e6 0x24e7 0x24e8 0x24e9 0x2460 0x2461 0x2462 0x2463 0x2464 0x2465 0x2466 0x2467 0x2468 0x2469 0x246a 0x246b 0x246c 0x246d 0x246e 0x00bd 0x2153 0x2154 0x00bc 0x00be 0x215b 0x215c 0x215d 0x215e ) ; 0x2921 ... 0x297e (block 8 0x00e6 0x0111 0x00f0 0x0127 0x0131 0x0133 0x0138 0x0140 0x0142 0x00f8 0x0153 0x00df 0x00fe 0x0167 0x014b 0x0149 0x3200 0x3201 0x3202 0x3203 0x3204 0x3205 0x3206 0x3207 0x3208 0x3209 0x320a 0x320b 0x320c 0x320d 0x320e 0x320f 0x3210 0x3211 0x3212 0x3213 0x3214 0x3215 0x3216 0x3217 0x3218 0x3219 0x321a 0x321b 0x249c 0x249d 0x249e 0x249f 0x24a0 0x24a1 0x24a2 0x24a3 0x24a4 0x24a5 0x24a6 0x24a7 0x24a8 0x24a9 0x24aa 0x24ab 0x24ac 0x24ad 0x24ae 0x24af 0x24b0 0x24b1 0x24b2 0x24b3 0x24b4 0x24b5 0x2474 0x2475 0x2476 0x2477 0x2478 0x2479 0x247a 0x247b 0x247c 0x247d 0x247e 0x247f 0x2480 0x2481 0x2482 0x00b9 0x00b2 0x00b3 0x2074 0x207f 0x2081 0x2082 0x2083 0x2084 ) ; 0x2a21 ... 0x2a7e (block 9 0x3041 0x3042 0x3043 0x3044 0x3045 0x3046 0x3047 0x3048 0x3049 0x304a 0x304b 0x304c 0x304d 0x304e 0x304f 0x3050 0x3051 0x3052 0x3053 0x3054 0x3055 0x3056 0x3057 0x3058 0x3059 0x305a 0x305b 0x305c 0x305d 0x305e 0x305f 0x3060 0x3061 0x3062 0x3063 0x3064 0x3065 0x3066 0x3067 0x3068 0x3069 0x306a 0x306b 0x306c 0x306d 0x306e 0x306f 0x3070 0x3071 0x3072 0x3073 0x3074 0x3075 0x3076 0x3077 0x3078 0x3079 0x307a 0x307b 0x307c 0x307d 0x307e 0x307f 0x3080 0x3081 0x3082 0x3083 0x3084 0x3085 0x3086 0x3087 0x3088 0x3089 0x308a 0x308b 0x308c 0x308d 0x308e 0x308f 0x3090 0x3091 0x3092 0x3093 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2b21 ... 0x2b7e (block 10 0x30a1 0x30a2 0x30a3 0x30a4 0x30a5 0x30a6 0x30a7 0x30a8 0x30a9 0x30aa 0x30ab 0x30ac 0x30ad 0x30ae 0x30af 0x30b0 0x30b1 0x30b2 0x30b3 0x30b4 0x30b5 0x30b6 0x30b7 0x30b8 0x30b9 0x30ba 0x30bb 0x30bc 0x30bd 0x30be 0x30bf 0x30c0 0x30c1 0x30c2 0x30c3 0x30c4 0x30c5 0x30c6 0x30c7 0x30c8 0x30c9 0x30ca 0x30cb 0x30cc 0x30cd 0x30ce 0x30cf 0x30d0 0x30d1 0x30d2 0x30d3 0x30d4 0x30d5 0x30d6 0x30d7 0x30d8 0x30d9 0x30da 0x30db 0x30dc 0x30dd 0x30de 0x30df 0x30e0 0x30e1 0x30e2 0x30e3 0x30e4 0x30e5 0x30e6 0x30e7 0x30e8 0x30e9 0x30ea 0x30eb 0x30ec 0x30ed 0x30ee 0x30ef 0x30f0 0x30f1 0x30f2 0x30f3 0x30f4 0x30f5 0x30f6 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2c21 ... 0x2c7e (block 11 0x0410 0x0411 0x0412 0x0413 0x0414 0x0415 0x0401 0x0416 0x0417 0x0418 0x0419 0x041a 0x041b 0x041c 0x041d 0x041e 0x041f 0x0420 0x0421 0x0422 0x0423 0x0424 0x0425 0x0426 0x0427 0x0428 0x0429 0x042a 0x042b 0x042c 0x042d 0x042e 0x042f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x0430 0x0431 0x0432 0x0433 0x0434 0x0435 0x0451 0x0436 0x0437 0x0438 0x0439 0x043a 0x043b 0x043c 0x043d 0x043e 0x043f 0x0440 0x0441 0x0442 0x0443 0x0444 0x0445 0x0446 0x0447 0x0448 0x0449 0x044a 0x044b 0x044c 0x044d 0x044e 0x044f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2d21 ... 0x2d7e (block 12 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2e21 ... 0x2e7e (block 13 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2f21 ... 0x2f7e (block 14 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x3021 ... 0x307e (block 15 0xac00 0xac01 0xac04 0xac07 0xac08 0xac09 0xac0a 0xac10 0xac11 0xac12 0xac13 0xac14 0xac15 0xac16 0xac17 0xac19 0xac1a 0xac1b 0xac1c 0xac1d 0xac20 0xac24 0xac2c 0xac2d 0xac2f 0xac30 0xac31 0xac38 0xac39 0xac3c 0xac40 0xac4b 0xac4d 0xac54 0xac58 0xac5c 0xac70 0xac71 0xac74 0xac77 0xac78 0xac7a 0xac80 0xac81 0xac83 0xac84 0xac85 0xac86 0xac89 0xac8a 0xac8b 0xac8c 0xac90 0xac94 0xac9c 0xac9d 0xac9f 0xaca0 0xaca1 0xaca8 0xaca9 0xacaa 0xacac 0xacaf 0xacb0 0xacb8 0xacb9 0xacbb 0xacbc 0xacbd 0xacc1 0xacc4 0xacc8 0xaccc 0xacd5 0xacd7 0xace0 0xace1 0xace4 0xace7 0xace8 0xacea 0xacec 0xacef 0xacf0 0xacf1 0xacf3 0xacf5 0xacf6 0xacfc 0xacfd 0xad00 0xad04 0xad06 ) ; 0x3121 ... 0x317e (block 16 0xad0c 0xad0d 0xad0f 0xad11 0xad18 0xad1c 0xad20 0xad29 0xad2c 0xad2d 0xad34 0xad35 0xad38 0xad3c 0xad44 0xad45 0xad47 0xad49 0xad50 0xad54 0xad58 0xad61 0xad63 0xad6c 0xad6d 0xad70 0xad73 0xad74 0xad75 0xad76 0xad7b 0xad7c 0xad7d 0xad7f 0xad81 0xad82 0xad88 0xad89 0xad8c 0xad90 0xad9c 0xad9d 0xada4 0xadb7 0xadc0 0xadc1 0xadc4 0xadc8 0xadd0 0xadd1 0xadd3 0xaddc 0xade0 0xade4 0xadf8 0xadf9 0xadfc 0xadff 0xae00 0xae01 0xae08 0xae09 0xae0b 0xae0d 0xae14 0xae30 0xae31 0xae34 0xae37 0xae38 0xae3a 0xae40 0xae41 0xae43 0xae45 0xae46 0xae4a 0xae4c 0xae4d 0xae4e 0xae50 0xae54 0xae56 0xae5c 0xae5d 0xae5f 0xae60 0xae61 0xae65 0xae68 0xae69 0xae6c 0xae70 0xae78 ) ; 0x3221 ... 0x327e (block 17 0xae79 0xae7b 0xae7c 0xae7d 0xae84 0xae85 0xae8c 0xaebc 0xaebd 0xaebe 0xaec0 0xaec4 0xaecc 0xaecd 0xaecf 0xaed0 0xaed1 0xaed8 0xaed9 0xaedc 0xaee8 0xaeeb 0xaeed 0xaef4 0xaef8 0xaefc 0xaf07 0xaf08 0xaf0d 0xaf10 0xaf2c 0xaf2d 0xaf30 0xaf32 0xaf34 0xaf3c 0xaf3d 0xaf3f 0xaf41 0xaf42 0xaf43 0xaf48 0xaf49 0xaf50 0xaf5c 0xaf5d 0xaf64 0xaf65 0xaf79 0xaf80 0xaf84 0xaf88 0xaf90 0xaf91 0xaf95 0xaf9c 0xafb8 0xafb9 0xafbc 0xafc0 0xafc7 0xafc8 0xafc9 0xafcb 0xafcd 0xafce 0xafd4 0xafdc 0xafe8 0xafe9 0xaff0 0xaff1 0xaff4 0xaff8 0xb000 0xb001 0xb004 0xb00c 0xb010 0xb014 0xb01c 0xb01d 0xb028 0xb044 0xb045 0xb048 0xb04a 0xb04c 0xb04e 0xb053 0xb054 0xb055 0xb057 0xb059 ) ; 0x3321 ... 0x337e (block 18 0xb05d 0xb07c 0xb07d 0xb080 0xb084 0xb08c 0xb08d 0xb08f 0xb091 0xb098 0xb099 0xb09a 0xb09c 0xb09f 0xb0a0 0xb0a1 0xb0a2 0xb0a8 0xb0a9 0xb0ab 0xb0ac 0xb0ad 0xb0ae 0xb0af 0xb0b1 0xb0b3 0xb0b4 0xb0b5 0xb0b8 0xb0bc 0xb0c4 0xb0c5 0xb0c7 0xb0c8 0xb0c9 0xb0d0 0xb0d1 0xb0d4 0xb0d8 0xb0e0 0xb0e5 0xb108 0xb109 0xb10b 0xb10c 0xb110 0xb112 0xb113 0xb118 0xb119 0xb11b 0xb11c 0xb11d 0xb123 0xb124 0xb125 0xb128 0xb12c 0xb134 0xb135 0xb137 0xb138 0xb139 0xb140 0xb141 0xb144 0xb148 0xb150 0xb151 0xb154 0xb155 0xb158 0xb15c 0xb160 0xb178 0xb179 0xb17c 0xb180 0xb182 0xb188 0xb189 0xb18b 0xb18d 0xb192 0xb193 0xb194 0xb198 0xb19c 0xb1a8 0xb1cc 0xb1d0 0xb1d4 0xb1dc 0xb1dd ) ; 0x3421 ... 0x347e (block 19 0xb1df 0xb1e8 0xb1e9 0xb1ec 0xb1f0 0xb1f9 0xb1fb 0xb1fd 0xb204 0xb205 0xb208 0xb20b 0xb20c 0xb214 0xb215 0xb217 0xb219 0xb220 0xb234 0xb23c 0xb258 0xb25c 0xb260 0xb268 0xb269 0xb274 0xb275 0xb27c 0xb284 0xb285 0xb289 0xb290 0xb291 0xb294 0xb298 0xb299 0xb29a 0xb2a0 0xb2a1 0xb2a3 0xb2a5 0xb2a6 0xb2aa 0xb2ac 0xb2b0 0xb2b4 0xb2c8 0xb2c9 0xb2cc 0xb2d0 0xb2d2 0xb2d8 0xb2d9 0xb2db 0xb2dd 0xb2e2 0xb2e4 0xb2e5 0xb2e6 0xb2e8 0xb2eb 0xb2ec 0xb2ed 0xb2ee 0xb2ef 0xb2f3 0xb2f4 0xb2f5 0xb2f7 0xb2f8 0xb2f9 0xb2fa 0xb2fb 0xb2ff 0xb300 0xb301 0xb304 0xb308 0xb310 0xb311 0xb313 0xb314 0xb315 0xb31c 0xb354 0xb355 0xb356 0xb358 0xb35b 0xb35c 0xb35e 0xb35f 0xb364 0xb365 ) ; 0x3521 ... 0x357e (block 20 0xb367 0xb369 0xb36b 0xb36e 0xb370 0xb371 0xb374 0xb378 0xb380 0xb381 0xb383 0xb384 0xb385 0xb38c 0xb390 0xb394 0xb3a0 0xb3a1 0xb3a8 0xb3ac 0xb3c4 0xb3c5 0xb3c8 0xb3cb 0xb3cc 0xb3ce 0xb3d0 0xb3d4 0xb3d5 0xb3d7 0xb3d9 0xb3db 0xb3dd 0xb3e0 0xb3e4 0xb3e8 0xb3fc 0xb410 0xb418 0xb41c 0xb420 0xb428 0xb429 0xb42b 0xb434 0xb450 0xb451 0xb454 0xb458 0xb460 0xb461 0xb463 0xb465 0xb46c 0xb480 0xb488 0xb49d 0xb4a4 0xb4a8 0xb4ac 0xb4b5 0xb4b7 0xb4b9 0xb4c0 0xb4c4 0xb4c8 0xb4d0 0xb4d5 0xb4dc 0xb4dd 0xb4e0 0xb4e3 0xb4e4 0xb4e6 0xb4ec 0xb4ed 0xb4ef 0xb4f1 0xb4f8 0xb514 0xb515 0xb518 0xb51b 0xb51c 0xb524 0xb525 0xb527 0xb528 0xb529 0xb52a 0xb530 0xb531 0xb534 0xb538 ) ; 0x3621 ... 0x367e (block 21 0xb540 0xb541 0xb543 0xb544 0xb545 0xb54b 0xb54c 0xb54d 0xb550 0xb554 0xb55c 0xb55d 0xb55f 0xb560 0xb561 0xb5a0 0xb5a1 0xb5a4 0xb5a8 0xb5aa 0xb5ab 0xb5b0 0xb5b1 0xb5b3 0xb5b4 0xb5b5 0xb5bb 0xb5bc 0xb5bd 0xb5c0 0xb5c4 0xb5cc 0xb5cd 0xb5cf 0xb5d0 0xb5d1 0xb5d8 0xb5ec 0xb610 0xb611 0xb614 0xb618 0xb625 0xb62c 0xb634 0xb648 0xb664 0xb668 0xb69c 0xb69d 0xb6a0 0xb6a4 0xb6ab 0xb6ac 0xb6b1 0xb6d4 0xb6f0 0xb6f4 0xb6f8 0xb700 0xb701 0xb705 0xb728 0xb729 0xb72c 0xb72f 0xb730 0xb738 0xb739 0xb73b 0xb744 0xb748 0xb74c 0xb754 0xb755 0xb760 0xb764 0xb768 0xb770 0xb771 0xb773 0xb775 0xb77c 0xb77d 0xb780 0xb784 0xb78c 0xb78d 0xb78f 0xb790 0xb791 0xb792 0xb796 0xb797 ) ; 0x3721 ... 0x377e (block 22 0xb798 0xb799 0xb79c 0xb7a0 0xb7a8 0xb7a9 0xb7ab 0xb7ac 0xb7ad 0xb7b4 0xb7b5 0xb7b8 0xb7c7 0xb7c9 0xb7ec 0xb7ed 0xb7f0 0xb7f4 0xb7fc 0xb7fd 0xb7ff 0xb800 0xb801 0xb807 0xb808 0xb809 0xb80c 0xb810 0xb818 0xb819 0xb81b 0xb81d 0xb824 0xb825 0xb828 0xb82c 0xb834 0xb835 0xb837 0xb838 0xb839 0xb840 0xb844 0xb851 0xb853 0xb85c 0xb85d 0xb860 0xb864 0xb86c 0xb86d 0xb86f 0xb871 0xb878 0xb87c 0xb88d 0xb8a8 0xb8b0 0xb8b4 0xb8b8 0xb8c0 0xb8c1 0xb8c3 0xb8c5 0xb8cc 0xb8d0 0xb8d4 0xb8dd 0xb8df 0xb8e1 0xb8e8 0xb8e9 0xb8ec 0xb8f0 0xb8f8 0xb8f9 0xb8fb 0xb8fd 0xb904 0xb918 0xb920 0xb93c 0xb93d 0xb940 0xb944 0xb94c 0xb94f 0xb951 0xb958 0xb959 0xb95c 0xb960 0xb968 0xb969 ) ; 0x3821 ... 0x387e (block 23 0xb96b 0xb96d 0xb974 0xb975 0xb978 0xb97c 0xb984 0xb985 0xb987 0xb989 0xb98a 0xb98d 0xb98e 0xb9ac 0xb9ad 0xb9b0 0xb9b4 0xb9bc 0xb9bd 0xb9bf 0xb9c1 0xb9c8 0xb9c9 0xb9cc 0xb9ce 0xb9cf 0xb9d0 0xb9d1 0xb9d2 0xb9d8 0xb9d9 0xb9db 0xb9dd 0xb9de 0xb9e1 0xb9e3 0xb9e4 0xb9e5 0xb9e8 0xb9ec 0xb9f4 0xb9f5 0xb9f7 0xb9f8 0xb9f9 0xb9fa 0xba00 0xba01 0xba08 0xba15 0xba38 0xba39 0xba3c 0xba40 0xba42 0xba48 0xba49 0xba4b 0xba4d 0xba4e 0xba53 0xba54 0xba55 0xba58 0xba5c 0xba64 0xba65 0xba67 0xba68 0xba69 0xba70 0xba71 0xba74 0xba78 0xba83 0xba84 0xba85 0xba87 0xba8c 0xbaa8 0xbaa9 0xbaab 0xbaac 0xbab0 0xbab2 0xbab8 0xbab9 0xbabb 0xbabd 0xbac4 0xbac8 0xbad8 0xbad9 0xbafc ) ; 0x3921 ... 0x397e (block 24 0xbb00 0xbb04 0xbb0d 0xbb0f 0xbb11 0xbb18 0xbb1c 0xbb20 0xbb29 0xbb2b 0xbb34 0xbb35 0xbb36 0xbb38 0xbb3b 0xbb3c 0xbb3d 0xbb3e 0xbb44 0xbb45 0xbb47 0xbb49 0xbb4d 0xbb4f 0xbb50 0xbb54 0xbb58 0xbb61 0xbb63 0xbb6c 0xbb88 0xbb8c 0xbb90 0xbba4 0xbba8 0xbbac 0xbbb4 0xbbb7 0xbbc0 0xbbc4 0xbbc8 0xbbd0 0xbbd3 0xbbf8 0xbbf9 0xbbfc 0xbbff 0xbc00 0xbc02 0xbc08 0xbc09 0xbc0b 0xbc0c 0xbc0d 0xbc0f 0xbc11 0xbc14 0xbc15 0xbc16 0xbc17 0xbc18 0xbc1b 0xbc1c 0xbc1d 0xbc1e 0xbc1f 0xbc24 0xbc25 0xbc27 0xbc29 0xbc2d 0xbc30 0xbc31 0xbc34 0xbc38 0xbc40 0xbc41 0xbc43 0xbc44 0xbc45 0xbc49 0xbc4c 0xbc4d 0xbc50 0xbc5d 0xbc84 0xbc85 0xbc88 0xbc8b 0xbc8c 0xbc8e 0xbc94 0xbc95 0xbc97 ) ; 0x3a21 ... 0x3a7e (block 25 0xbc99 0xbc9a 0xbca0 0xbca1 0xbca4 0xbca7 0xbca8 0xbcb0 0xbcb1 0xbcb3 0xbcb4 0xbcb5 0xbcbc 0xbcbd 0xbcc0 0xbcc4 0xbccd 0xbccf 0xbcd0 0xbcd1 0xbcd5 0xbcd8 0xbcdc 0xbcf4 0xbcf5 0xbcf6 0xbcf8 0xbcfc 0xbd04 0xbd05 0xbd07 0xbd09 0xbd10 0xbd14 0xbd24 0xbd2c 0xbd40 0xbd48 0xbd49 0xbd4c 0xbd50 0xbd58 0xbd59 0xbd64 0xbd68 0xbd80 0xbd81 0xbd84 0xbd87 0xbd88 0xbd89 0xbd8a 0xbd90 0xbd91 0xbd93 0xbd95 0xbd99 0xbd9a 0xbd9c 0xbda4 0xbdb0 0xbdb8 0xbdd4 0xbdd5 0xbdd8 0xbddc 0xbde9 0xbdf0 0xbdf4 0xbdf8 0xbe00 0xbe03 0xbe05 0xbe0c 0xbe0d 0xbe10 0xbe14 0xbe1c 0xbe1d 0xbe1f 0xbe44 0xbe45 0xbe48 0xbe4c 0xbe4e 0xbe54 0xbe55 0xbe57 0xbe59 0xbe5a 0xbe5b 0xbe60 0xbe61 0xbe64 ) ; 0x3b21 ... 0x3b7e (block 26 0xbe68 0xbe6a 0xbe70 0xbe71 0xbe73 0xbe74 0xbe75 0xbe7b 0xbe7c 0xbe7d 0xbe80 0xbe84 0xbe8c 0xbe8d 0xbe8f 0xbe90 0xbe91 0xbe98 0xbe99 0xbea8 0xbed0 0xbed1 0xbed4 0xbed7 0xbed8 0xbee0 0xbee3 0xbee4 0xbee5 0xbeec 0xbf01 0xbf08 0xbf09 0xbf18 0xbf19 0xbf1b 0xbf1c 0xbf1d 0xbf40 0xbf41 0xbf44 0xbf48 0xbf50 0xbf51 0xbf55 0xbf94 0xbfb0 0xbfc5 0xbfcc 0xbfcd 0xbfd0 0xbfd4 0xbfdc 0xbfdf 0xbfe1 0xc03c 0xc051 0xc058 0xc05c 0xc060 0xc068 0xc069 0xc090 0xc091 0xc094 0xc098 0xc0a0 0xc0a1 0xc0a3 0xc0a5 0xc0ac 0xc0ad 0xc0af 0xc0b0 0xc0b3 0xc0b4 0xc0b5 0xc0b6 0xc0bc 0xc0bd 0xc0bf 0xc0c0 0xc0c1 0xc0c5 0xc0c8 0xc0c9 0xc0cc 0xc0d0 0xc0d8 0xc0d9 0xc0db 0xc0dc 0xc0dd 0xc0e4 ) ; 0x3c21 ... 0x3c7e (block 27 0xc0e5 0xc0e8 0xc0ec 0xc0f4 0xc0f5 0xc0f7 0xc0f9 0xc100 0xc104 0xc108 0xc110 0xc115 0xc11c 0xc11d 0xc11e 0xc11f 0xc120 0xc123 0xc124 0xc126 0xc127 0xc12c 0xc12d 0xc12f 0xc130 0xc131 0xc136 0xc138 0xc139 0xc13c 0xc140 0xc148 0xc149 0xc14b 0xc14c 0xc14d 0xc154 0xc155 0xc158 0xc15c 0xc164 0xc165 0xc167 0xc168 0xc169 0xc170 0xc174 0xc178 0xc185 0xc18c 0xc18d 0xc18e 0xc190 0xc194 0xc196 0xc19c 0xc19d 0xc19f 0xc1a1 0xc1a5 0xc1a8 0xc1a9 0xc1ac 0xc1b0 0xc1bd 0xc1c4 0xc1c8 0xc1cc 0xc1d4 0xc1d7 0xc1d8 0xc1e0 0xc1e4 0xc1e8 0xc1f0 0xc1f1 0xc1f3 0xc1fc 0xc1fd 0xc200 0xc204 0xc20c 0xc20d 0xc20f 0xc211 0xc218 0xc219 0xc21c 0xc21f 0xc220 0xc228 0xc229 0xc22b 0xc22d ) ; 0x3d21 ... 0x3d7e (block 28 0xc22f 0xc231 0xc232 0xc234 0xc248 0xc250 0xc251 0xc254 0xc258 0xc260 0xc265 0xc26c 0xc26d 0xc270 0xc274 0xc27c 0xc27d 0xc27f 0xc281 0xc288 0xc289 0xc290 0xc298 0xc29b 0xc29d 0xc2a4 0xc2a5 0xc2a8 0xc2ac 0xc2ad 0xc2b4 0xc2b5 0xc2b7 0xc2b9 0xc2dc 0xc2dd 0xc2e0 0xc2e3 0xc2e4 0xc2eb 0xc2ec 0xc2ed 0xc2ef 0xc2f1 0xc2f6 0xc2f8 0xc2f9 0xc2fb 0xc2fc 0xc300 0xc308 0xc309 0xc30c 0xc30d 0xc313 0xc314 0xc315 0xc318 0xc31c 0xc324 0xc325 0xc328 0xc329 0xc345 0xc368 0xc369 0xc36c 0xc370 0xc372 0xc378 0xc379 0xc37c 0xc37d 0xc384 0xc388 0xc38c 0xc3c0 0xc3d8 0xc3d9 0xc3dc 0xc3df 0xc3e0 0xc3e2 0xc3e8 0xc3e9 0xc3ed 0xc3f4 0xc3f5 0xc3f8 0xc408 0xc410 0xc424 0xc42c 0xc430 ) ; 0x3e21 ... 0x3e7e (block 29 0xc434 0xc43c 0xc43d 0xc448 0xc464 0xc465 0xc468 0xc46c 0xc474 0xc475 0xc479 0xc480 0xc494 0xc49c 0xc4b8 0xc4bc 0xc4e9 0xc4f0 0xc4f1 0xc4f4 0xc4f8 0xc4fa 0xc4ff 0xc500 0xc501 0xc50c 0xc510 0xc514 0xc51c 0xc528 0xc529 0xc52c 0xc530 0xc538 0xc539 0xc53b 0xc53d 0xc544 0xc545 0xc548 0xc549 0xc54a 0xc54c 0xc54d 0xc54e 0xc553 0xc554 0xc555 0xc557 0xc558 0xc559 0xc55d 0xc55e 0xc560 0xc561 0xc564 0xc568 0xc570 0xc571 0xc573 0xc574 0xc575 0xc57c 0xc57d 0xc580 0xc584 0xc587 0xc58c 0xc58d 0xc58f 0xc591 0xc595 0xc597 0xc598 0xc59c 0xc5a0 0xc5a9 0xc5b4 0xc5b5 0xc5b8 0xc5b9 0xc5bb 0xc5bc 0xc5bd 0xc5be 0xc5c4 0xc5c5 0xc5c6 0xc5c7 0xc5c8 0xc5c9 0xc5ca 0xc5cc 0xc5ce ) ; 0x3f21 ... 0x3f7e (block 30 0xc5d0 0xc5d1 0xc5d4 0xc5d8 0xc5e0 0xc5e1 0xc5e3 0xc5e5 0xc5ec 0xc5ed 0xc5ee 0xc5f0 0xc5f4 0xc5f6 0xc5f7 0xc5fc 0xc5fd 0xc5fe 0xc5ff 0xc600 0xc601 0xc605 0xc606 0xc607 0xc608 0xc60c 0xc610 0xc618 0xc619 0xc61b 0xc61c 0xc624 0xc625 0xc628 0xc62c 0xc62d 0xc62e 0xc630 0xc633 0xc634 0xc635 0xc637 0xc639 0xc63b 0xc640 0xc641 0xc644 0xc648 0xc650 0xc651 0xc653 0xc654 0xc655 0xc65c 0xc65d 0xc660 0xc66c 0xc66f 0xc671 0xc678 0xc679 0xc67c 0xc680 0xc688 0xc689 0xc68b 0xc68d 0xc694 0xc695 0xc698 0xc69c 0xc6a4 0xc6a5 0xc6a7 0xc6a9 0xc6b0 0xc6b1 0xc6b4 0xc6b8 0xc6b9 0xc6ba 0xc6c0 0xc6c1 0xc6c3 0xc6c5 0xc6cc 0xc6cd 0xc6d0 0xc6d4 0xc6dc 0xc6dd 0xc6e0 0xc6e1 0xc6e8 ) ; 0x4021 ... 0x407e (block 31 0xc6e9 0xc6ec 0xc6f0 0xc6f8 0xc6f9 0xc6fd 0xc704 0xc705 0xc708 0xc70c 0xc714 0xc715 0xc717 0xc719 0xc720 0xc721 0xc724 0xc728 0xc730 0xc731 0xc733 0xc735 0xc737 0xc73c 0xc73d 0xc740 0xc744 0xc74a 0xc74c 0xc74d 0xc74f 0xc751 0xc752 0xc753 0xc754 0xc755 0xc756 0xc757 0xc758 0xc75c 0xc760 0xc768 0xc76b 0xc774 0xc775 0xc778 0xc77c 0xc77d 0xc77e 0xc783 0xc784 0xc785 0xc787 0xc788 0xc789 0xc78a 0xc78e 0xc790 0xc791 0xc794 0xc796 0xc797 0xc798 0xc79a 0xc7a0 0xc7a1 0xc7a3 0xc7a4 0xc7a5 0xc7a6 0xc7ac 0xc7ad 0xc7b0 0xc7b4 0xc7bc 0xc7bd 0xc7bf 0xc7c0 0xc7c1 0xc7c8 0xc7c9 0xc7cc 0xc7ce 0xc7d0 0xc7d8 0xc7dd 0xc7e4 0xc7e8 0xc7ec 0xc800 0xc801 0xc804 0xc808 0xc80a ) ; 0x4121 ... 0x417e (block 32 0xc810 0xc811 0xc813 0xc815 0xc816 0xc81c 0xc81d 0xc820 0xc824 0xc82c 0xc82d 0xc82f 0xc831 0xc838 0xc83c 0xc840 0xc848 0xc849 0xc84c 0xc84d 0xc854 0xc870 0xc871 0xc874 0xc878 0xc87a 0xc880 0xc881 0xc883 0xc885 0xc886 0xc887 0xc88b 0xc88c 0xc88d 0xc894 0xc89d 0xc89f 0xc8a1 0xc8a8 0xc8bc 0xc8bd 0xc8c4 0xc8c8 0xc8cc 0xc8d4 0xc8d5 0xc8d7 0xc8d9 0xc8e0 0xc8e1 0xc8e4 0xc8f5 0xc8fc 0xc8fd 0xc900 0xc904 0xc905 0xc906 0xc90c 0xc90d 0xc90f 0xc911 0xc918 0xc92c 0xc934 0xc950 0xc951 0xc954 0xc958 0xc960 0xc961 0xc963 0xc96c 0xc970 0xc974 0xc97c 0xc988 0xc989 0xc98c 0xc990 0xc998 0xc999 0xc99b 0xc99d 0xc9c0 0xc9c1 0xc9c4 0xc9c7 0xc9c8 0xc9ca 0xc9d0 0xc9d1 0xc9d3 ) ; 0x4221 ... 0x427e (block 33 0xc9d5 0xc9d6 0xc9d9 0xc9da 0xc9dc 0xc9dd 0xc9e0 0xc9e2 0xc9e4 0xc9e7 0xc9ec 0xc9ed 0xc9ef 0xc9f0 0xc9f1 0xc9f8 0xc9f9 0xc9fc 0xca00 0xca08 0xca09 0xca0b 0xca0c 0xca0d 0xca14 0xca18 0xca29 0xca4c 0xca4d 0xca50 0xca54 0xca5c 0xca5d 0xca5f 0xca60 0xca61 0xca68 0xca7d 0xca84 0xca98 0xcabc 0xcabd 0xcac0 0xcac4 0xcacc 0xcacd 0xcacf 0xcad1 0xcad3 0xcad8 0xcad9 0xcae0 0xcaec 0xcaf4 0xcb08 0xcb10 0xcb14 0xcb18 0xcb20 0xcb21 0xcb41 0xcb48 0xcb49 0xcb4c 0xcb50 0xcb58 0xcb59 0xcb5d 0xcb64 0xcb78 0xcb79 0xcb9c 0xcbb8 0xcbd4 0xcbe4 0xcbe7 0xcbe9 0xcc0c 0xcc0d 0xcc10 0xcc14 0xcc1c 0xcc1d 0xcc21 0xcc22 0xcc27 0xcc28 0xcc29 0xcc2c 0xcc2e 0xcc30 0xcc38 0xcc39 0xcc3b ) ; 0x4321 ... 0x437e (block 34 0xcc3c 0xcc3d 0xcc3e 0xcc44 0xcc45 0xcc48 0xcc4c 0xcc54 0xcc55 0xcc57 0xcc58 0xcc59 0xcc60 0xcc64 0xcc66 0xcc68 0xcc70 0xcc75 0xcc98 0xcc99 0xcc9c 0xcca0 0xcca8 0xcca9 0xccab 0xccac 0xccad 0xccb4 0xccb5 0xccb8 0xccbc 0xccc4 0xccc5 0xccc7 0xccc9 0xccd0 0xccd4 0xcce4 0xccec 0xccf0 0xcd01 0xcd08 0xcd09 0xcd0c 0xcd10 0xcd18 0xcd19 0xcd1b 0xcd1d 0xcd24 0xcd28 0xcd2c 0xcd39 0xcd5c 0xcd60 0xcd64 0xcd6c 0xcd6d 0xcd6f 0xcd71 0xcd78 0xcd88 0xcd94 0xcd95 0xcd98 0xcd9c 0xcda4 0xcda5 0xcda7 0xcda9 0xcdb0 0xcdc4 0xcdcc 0xcdd0 0xcde8 0xcdec 0xcdf0 0xcdf8 0xcdf9 0xcdfb 0xcdfd 0xce04 0xce08 0xce0c 0xce14 0xce19 0xce20 0xce21 0xce24 0xce28 0xce30 0xce31 0xce33 0xce35 ) ; 0x4421 ... 0x447e (block 35 0xce58 0xce59 0xce5c 0xce5f 0xce60 0xce61 0xce68 0xce69 0xce6b 0xce6d 0xce74 0xce75 0xce78 0xce7c 0xce84 0xce85 0xce87 0xce89 0xce90 0xce91 0xce94 0xce98 0xcea0 0xcea1 0xcea3 0xcea4 0xcea5 0xceac 0xcead 0xcec1 0xcee4 0xcee5 0xcee8 0xceeb 0xceec 0xcef4 0xcef5 0xcef7 0xcef8 0xcef9 0xcf00 0xcf01 0xcf04 0xcf08 0xcf10 0xcf11 0xcf13 0xcf15 0xcf1c 0xcf20 0xcf24 0xcf2c 0xcf2d 0xcf2f 0xcf30 0xcf31 0xcf38 0xcf54 0xcf55 0xcf58 0xcf5c 0xcf64 0xcf65 0xcf67 0xcf69 0xcf70 0xcf71 0xcf74 0xcf78 0xcf80 0xcf85 0xcf8c 0xcfa1 0xcfa8 0xcfb0 0xcfc4 0xcfe0 0xcfe1 0xcfe4 0xcfe8 0xcff0 0xcff1 0xcff3 0xcff5 0xcffc 0xd000 0xd004 0xd011 0xd018 0xd02d 0xd034 0xd035 0xd038 0xd03c ) ; 0x4521 ... 0x457e (block 36 0xd044 0xd045 0xd047 0xd049 0xd050 0xd054 0xd058 0xd060 0xd06c 0xd06d 0xd070 0xd074 0xd07c 0xd07d 0xd081 0xd0a4 0xd0a5 0xd0a8 0xd0ac 0xd0b4 0xd0b5 0xd0b7 0xd0b9 0xd0c0 0xd0c1 0xd0c4 0xd0c8 0xd0c9 0xd0d0 0xd0d1 0xd0d3 0xd0d4 0xd0d5 0xd0dc 0xd0dd 0xd0e0 0xd0e4 0xd0ec 0xd0ed 0xd0ef 0xd0f0 0xd0f1 0xd0f8 0xd10d 0xd130 0xd131 0xd134 0xd138 0xd13a 0xd140 0xd141 0xd143 0xd144 0xd145 0xd14c 0xd14d 0xd150 0xd154 0xd15c 0xd15d 0xd15f 0xd161 0xd168 0xd16c 0xd17c 0xd184 0xd188 0xd1a0 0xd1a1 0xd1a4 0xd1a8 0xd1b0 0xd1b1 0xd1b3 0xd1b5 0xd1ba 0xd1bc 0xd1c0 0xd1d8 0xd1f4 0xd1f8 0xd207 0xd209 0xd210 0xd22c 0xd22d 0xd230 0xd234 0xd23c 0xd23d 0xd23f 0xd241 0xd248 0xd25c ) ; 0x4621 ... 0x467e (block 37 0xd264 0xd280 0xd281 0xd284 0xd288 0xd290 0xd291 0xd295 0xd29c 0xd2a0 0xd2a4 0xd2ac 0xd2b1 0xd2b8 0xd2b9 0xd2bc 0xd2bf 0xd2c0 0xd2c2 0xd2c8 0xd2c9 0xd2cb 0xd2d4 0xd2d8 0xd2dc 0xd2e4 0xd2e5 0xd2f0 0xd2f1 0xd2f4 0xd2f8 0xd300 0xd301 0xd303 0xd305 0xd30c 0xd30d 0xd30e 0xd310 0xd314 0xd316 0xd31c 0xd31d 0xd31f 0xd320 0xd321 0xd325 0xd328 0xd329 0xd32c 0xd330 0xd338 0xd339 0xd33b 0xd33c 0xd33d 0xd344 0xd345 0xd37c 0xd37d 0xd380 0xd384 0xd38c 0xd38d 0xd38f 0xd390 0xd391 0xd398 0xd399 0xd39c 0xd3a0 0xd3a8 0xd3a9 0xd3ab 0xd3ad 0xd3b4 0xd3b8 0xd3bc 0xd3c4 0xd3c5 0xd3c8 0xd3c9 0xd3d0 0xd3d8 0xd3e1 0xd3e3 0xd3ec 0xd3ed 0xd3f0 0xd3f4 0xd3fc 0xd3fd 0xd3ff 0xd401 ) ; 0x4721 ... 0x477e (block 38 0xd408 0xd41d 0xd440 0xd444 0xd45c 0xd460 0xd464 0xd46d 0xd46f 0xd478 0xd479 0xd47c 0xd47f 0xd480 0xd482 0xd488 0xd489 0xd48b 0xd48d 0xd494 0xd4a9 0xd4cc 0xd4d0 0xd4d4 0xd4dc 0xd4df 0xd4e8 0xd4ec 0xd4f0 0xd4f8 0xd4fb 0xd4fd 0xd504 0xd508 0xd50c 0xd514 0xd515 0xd517 0xd53c 0xd53d 0xd540 0xd544 0xd54c 0xd54d 0xd54f 0xd551 0xd558 0xd559 0xd55c 0xd560 0xd565 0xd568 0xd569 0xd56b 0xd56d 0xd574 0xd575 0xd578 0xd57c 0xd584 0xd585 0xd587 0xd588 0xd589 0xd590 0xd5a5 0xd5c8 0xd5c9 0xd5cc 0xd5d0 0xd5d2 0xd5d8 0xd5d9 0xd5db 0xd5dd 0xd5e4 0xd5e5 0xd5e8 0xd5ec 0xd5f4 0xd5f5 0xd5f7 0xd5f9 0xd600 0xd601 0xd604 0xd608 0xd610 0xd611 0xd613 0xd614 0xd615 0xd61c 0xd620 ) ; 0x4821 ... 0x487e (block 39 0xd624 0xd62d 0xd638 0xd639 0xd63c 0xd640 0xd645 0xd648 0xd649 0xd64b 0xd64d 0xd651 0xd654 0xd655 0xd658 0xd65c 0xd667 0xd669 0xd670 0xd671 0xd674 0xd683 0xd685 0xd68c 0xd68d 0xd690 0xd694 0xd69d 0xd69f 0xd6a1 0xd6a8 0xd6ac 0xd6b0 0xd6b9 0xd6bb 0xd6c4 0xd6c5 0xd6c8 0xd6cc 0xd6d1 0xd6d4 0xd6d7 0xd6d9 0xd6e0 0xd6e4 0xd6e8 0xd6f0 0xd6f5 0xd6fc 0xd6fd 0xd700 0xd704 0xd711 0xd718 0xd719 0xd71c 0xd720 0xd728 0xd729 0xd72b 0xd72d 0xd734 0xd735 0xd738 0xd73c 0xd744 0xd747 0xd749 0xd750 0xd751 0xd754 0xd756 0xd757 0xd758 0xd759 0xd760 0xd761 0xd763 0xd765 0xd769 0xd76c 0xd770 0xd774 0xd77c 0xd77d 0xd781 0xd788 0xd789 0xd78c 0xd790 0xd798 0xd799 0xd79b 0xd79d ) ; 0x4921 ... 0x497e (block 40 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x4a21 ... 0x4a7e (block 41 0x4f3d 0x4f73 0x5047 0x50f9 0x52a0 0x53ef 0x5475 0x54e5 0x5609 0x5ac1 0x5bb6 0x6687 0x67b6 0x67b7 0x67ef 0x6b4c 0x73c2 0x75c2 0x7a3c 0x82db 0x8304 0x8857 0x8888 0x8a36 0x8cc8 0x8dcf 0x8efb 0x8fe6 0x99d5 0x523b 0x5374 0x5404 0x606a 0x6164 0x6bbc 0x73cf 0x811a 0x89ba 0x89d2 0x95a3 0x4f83 0x520a 0x58be 0x5978 0x59e6 0x5e72 0x5e79 0x61c7 0x63c0 0x6746 0x67ec 0x687f 0x6f97 0x764e 0x770b 0x78f5 0x7a08 0x7aff 0x7c21 0x809d 0x826e 0x8271 0x8aeb 0x9593 0x4e6b 0x559d 0x66f7 0x6e34 0x78a3 0x7aed 0x845b 0x8910 0x874e 0x97a8 0x52d8 0x574e 0x582a 0x5d4c 0x611f 0x61be 0x6221 0x6562 0x67d1 0x6a44 0x6e1b 0x7518 0x75b3 0x76e3 0x77b0 0x7d3a 0x90af 0x9451 0x9452 0x9f95 ) ; 0x4b21 ... 0x4b7e (block 42 0x5323 0x5cac 0x7532 0x80db 0x9240 0x9598 0x525b 0x5808 0x59dc 0x5ca1 0x5d17 0x5eb7 0x5f3a 0x5f4a 0x6177 0x6c5f 0x757a 0x7586 0x7ce0 0x7d73 0x7db1 0x7f8c 0x8154 0x8221 0x8591 0x8941 0x8b1b 0x92fc 0x964d 0x9c47 0x4ecb 0x4ef7 0x500b 0x51f1 0x584f 0x6137 0x613e 0x6168 0x6539 0x69ea 0x6f11 0x75a5 0x7686 0x76d6 0x7b87 0x82a5 0x84cb 0xf900 0x93a7 0x958b 0x5580 0x5ba2 0x5751 0xf901 0x7cb3 0x7fb9 0x91b5 0x5028 0x53bb 0x5c45 0x5de8 0x62d2 0x636e 0x64da 0x64e7 0x6e20 0x70ac 0x795b 0x8ddd 0x8e1e 0xf902 0x907d 0x9245 0x92f8 0x4e7e 0x4ef6 0x5065 0x5dfe 0x5efa 0x6106 0x6957 0x8171 0x8654 0x8e47 0x9375 0x9a2b 0x4e5e 0x5091 0x6770 0x6840 0x5109 0x528d 0x5292 0x6aa2 ) ; 0x4c21 ... 0x4c7e (block 43 0x77bc 0x9210 0x9ed4 0x52ab 0x602f 0x8ff2 0x5048 0x61a9 0x63ed 0x64ca 0x683c 0x6a84 0x6fc0 0x8188 0x89a1 0x9694 0x5805 0x727d 0x72ac 0x7504 0x7d79 0x7e6d 0x80a9 0x898b 0x8b74 0x9063 0x9d51 0x6289 0x6c7a 0x6f54 0x7d50 0x7f3a 0x8a23 0x517c 0x614a 0x7b9d 0x8b19 0x9257 0x938c 0x4eac 0x4fd3 0x501e 0x50be 0x5106 0x52c1 0x52cd 0x537f 0x5770 0x5883 0x5e9a 0x5f91 0x6176 0x61ac 0x64ce 0x656c 0x666f 0x66bb 0x66f4 0x6897 0x6d87 0x7085 0x70f1 0x749f 0x74a5 0x74ca 0x75d9 0x786c 0x78ec 0x7adf 0x7af6 0x7d45 0x7d93 0x8015 0x803f 0x811b 0x8396 0x8b66 0x8f15 0x9015 0x93e1 0x9803 0x9838 0x9a5a 0x9be8 0x4fc2 0x5553 0x583a 0x5951 0x5b63 0x5c46 0x60b8 0x6212 0x6842 0x68b0 ) ; 0x4d21 ... 0x4d7e (block 44 0x68e8 0x6eaa 0x754c 0x7678 0x78ce 0x7a3d 0x7cfb 0x7e6b 0x7e7c 0x8a08 0x8aa1 0x8c3f 0x968e 0x9dc4 0x53e4 0x53e9 0x544a 0x5471 0x56fa 0x59d1 0x5b64 0x5c3b 0x5eab 0x62f7 0x6537 0x6545 0x6572 0x66a0 0x67af 0x69c1 0x6cbd 0x75fc 0x7690 0x777e 0x7a3f 0x7f94 0x8003 0x80a1 0x818f 0x82e6 0x82fd 0x83f0 0x85c1 0x8831 0x88b4 0x8aa5 0xf903 0x8f9c 0x932e 0x96c7 0x9867 0x9ad8 0x9f13 0x54ed 0x659b 0x66f2 0x688f 0x7a40 0x8c37 0x9d60 0x56f0 0x5764 0x5d11 0x6606 0x68b1 0x68cd 0x6efe 0x7428 0x889e 0x9be4 0x6c68 0xf904 0x9aa8 0x4f9b 0x516c 0x5171 0x529f 0x5b54 0x5de5 0x6050 0x606d 0x62f1 0x63a7 0x653b 0x73d9 0x7a7a 0x86a3 0x8ca2 0x978f 0x4e32 0x5be1 0x6208 0x679c 0x74dc ) ; 0x4e21 ... 0x4e7e (block 45 0x79d1 0x83d3 0x8a87 0x8ab2 0x8de8 0x904e 0x934b 0x9846 0x5ed3 0x69e8 0x85ff 0x90ed 0xf905 0x51a0 0x5b98 0x5bec 0x6163 0x68fa 0x6b3e 0x704c 0x742f 0x74d8 0x7ba1 0x7f50 0x83c5 0x89c0 0x8cab 0x95dc 0x9928 0x522e 0x605d 0x62ec 0x9002 0x4f8a 0x5149 0x5321 0x58d9 0x5ee3 0x66e0 0x6d38 0x709a 0x72c2 0x73d6 0x7b50 0x80f1 0x945b 0x5366 0x639b 0x7f6b 0x4e56 0x5080 0x584a 0x58de 0x602a 0x6127 0x62d0 0x69d0 0x9b41 0x5b8f 0x7d18 0x80b1 0x8f5f 0x4ea4 0x50d1 0x54ac 0x55ac 0x5b0c 0x5da0 0x5de7 0x652a 0x654e 0x6821 0x6a4b 0x72e1 0x768e 0x77ef 0x7d5e 0x7ff9 0x81a0 0x854e 0x86df 0x8f03 0x8f4e 0x90ca 0x9903 0x9a55 0x9bab 0x4e18 0x4e45 0x4e5d 0x4ec7 0x4ff1 0x5177 0x52fe ) ; 0x4f21 ... 0x4f7e (block 46 0x5340 0x53e3 0x53e5 0x548e 0x5614 0x5775 0x57a2 0x5bc7 0x5d87 0x5ed0 0x61fc 0x62d8 0x6551 0x67b8 0x67e9 0x69cb 0x6b50 0x6bc6 0x6bec 0x6c42 0x6e9d 0x7078 0x72d7 0x7396 0x7403 0x77bf 0x77e9 0x7a76 0x7d7f 0x8009 0x81fc 0x8205 0x820a 0x82df 0x8862 0x8b33 0x8cfc 0x8ec0 0x9011 0x90b1 0x9264 0x92b6 0x99d2 0x9a45 0x9ce9 0x9dd7 0x9f9c 0x570b 0x5c40 0x83ca 0x97a0 0x97ab 0x9eb4 0x541b 0x7a98 0x7fa4 0x88d9 0x8ecd 0x90e1 0x5800 0x5c48 0x6398 0x7a9f 0x5bae 0x5f13 0x7a79 0x7aae 0x828e 0x8eac 0x5026 0x5238 0x52f8 0x5377 0x5708 0x62f3 0x6372 0x6b0a 0x6dc3 0x7737 0x53a5 0x7357 0x8568 0x8e76 0x95d5 0x673a 0x6ac3 0x6f70 0x8a6d 0x8ecc 0x994b 0xf906 0x6677 0x6b78 0x8cb4 ) ; 0x5021 ... 0x507e (block 47 0x9b3c 0xf907 0x53eb 0x572d 0x594e 0x63c6 0x69fb 0x73ea 0x7845 0x7aba 0x7ac5 0x7cfe 0x8475 0x898f 0x8d73 0x9035 0x95a8 0x52fb 0x5747 0x7547 0x7b60 0x83cc 0x921e 0xf908 0x6a58 0x514b 0x524b 0x5287 0x621f 0x68d8 0x6975 0x9699 0x50c5 0x52a4 0x52e4 0x61c3 0x65a4 0x6839 0x69ff 0x747e 0x7b4b 0x82b9 0x83eb 0x89b2 0x8b39 0x8fd1 0x9949 0xf909 0x4eca 0x5997 0x64d2 0x6611 0x6a8e 0x7434 0x7981 0x79bd 0x82a9 0x887e 0x887f 0x895f 0xf90a 0x9326 0x4f0b 0x53ca 0x6025 0x6271 0x6c72 0x7d1a 0x7d66 0x4e98 0x5162 0x77dc 0x80af 0x4f01 0x4f0e 0x5176 0x5180 0x55dc 0x5668 0x573b 0x57fa 0x57fc 0x5914 0x5947 0x5993 0x5bc4 0x5c90 0x5d0e 0x5df1 0x5e7e 0x5fcc 0x6280 0x65d7 0x65e3 ) ; 0x5121 ... 0x517e (block 48 0x671e 0x671f 0x675e 0x68cb 0x68c4 0x6a5f 0x6b3a 0x6c23 0x6c7d 0x6c82 0x6dc7 0x7398 0x7426 0x742a 0x7482 0x74a3 0x7578 0x757f 0x7881 0x78ef 0x7941 0x7947 0x7948 0x797a 0x7b95 0x7d00 0x7dba 0x7f88 0x8006 0x802d 0x808c 0x8a18 0x8b4f 0x8c48 0x8d77 0x9321 0x9324 0x98e2 0x9951 0x9a0e 0x9a0f 0x9a65 0x9e92 0x7dca 0x4f76 0x5409 0x62ee 0x6854 0x91d1 0x55ab 0x513a 0xf90b 0xf90c 0x5a1c 0x61e6 0xf90d 0x62cf 0x62ff 0xf90e 0xf90f 0xf910 0xf911 0xf912 0xf913 0x90a3 0xf914 0xf915 0xf916 0xf917 0xf918 0x8afe 0xf919 0xf91a 0xf91b 0xf91c 0x6696 0xf91d 0x7156 0xf91e 0xf91f 0x96e3 0xf920 0x634f 0x637a 0x5357 0xf921 0x678f 0x6960 0x6e73 0xf922 0x7537 0xf923 0xf924 0xf925 ) ; 0x5221 ... 0x527e (block 49 0x7d0d 0xf926 0xf927 0x8872 0x56ca 0x5a18 0xf928 0xf929 0xf92a 0xf92b 0xf92c 0x4e43 0xf92d 0x5167 0x5948 0x67f0 0x8010 0xf92e 0x5973 0x5e74 0x649a 0x79ca 0x5ff5 0x606c 0x62c8 0x637b 0x5be7 0x5bd7 0x52aa 0xf92f 0x5974 0x5f29 0x6012 0xf930 0xf931 0xf932 0x7459 0xf933 0xf934 0xf935 0xf936 0xf937 0xf938 0x99d1 0xf939 0xf93a 0xf93b 0xf93c 0xf93d 0xf93e 0xf93f 0xf940 0xf941 0xf942 0xf943 0x6fc3 0xf944 0xf945 0x81bf 0x8fb2 0x60f1 0xf946 0xf947 0x8166 0xf948 0xf949 0x5c3f 0xf94a 0xf94b 0xf94c 0xf94d 0xf94e 0xf94f 0xf950 0xf951 0x5ae9 0x8a25 0x677b 0x7d10 0xf952 0xf953 0xf954 0xf955 0xf956 0xf957 0x80fd 0xf958 0xf959 0x5c3c 0x6ce5 0x533f 0x6eba 0x591a 0x8336 ) ; 0x5321 ... 0x537e (block 50 0x4e39 0x4eb6 0x4f46 0x55ae 0x5718 0x58c7 0x5f56 0x65b7 0x65e6 0x6a80 0x6bb5 0x6e4d 0x77ed 0x7aef 0x7c1e 0x7dde 0x86cb 0x8892 0x9132 0x935b 0x64bb 0x6fbe 0x737a 0x75b8 0x9054 0x5556 0x574d 0x61ba 0x64d4 0x66c7 0x6de1 0x6e5b 0x6f6d 0x6fb9 0x75f0 0x8043 0x81bd 0x8541 0x8983 0x8ac7 0x8b5a 0x931f 0x6c93 0x7553 0x7b54 0x8e0f 0x905d 0x5510 0x5802 0x5858 0x5e62 0x6207 0x649e 0x68e0 0x7576 0x7cd6 0x87b3 0x9ee8 0x4ee3 0x5788 0x576e 0x5927 0x5c0d 0x5cb1 0x5e36 0x5f85 0x6234 0x64e1 0x73b3 0x81fa 0x888b 0x8cb8 0x968a 0x9edb 0x5b85 0x5fb7 0x60b3 0x5012 0x5200 0x5230 0x5716 0x5835 0x5857 0x5c0e 0x5c60 0x5cf6 0x5d8b 0x5ea6 0x5f92 0x60bc 0x6311 0x6389 0x6417 0x6843 ) ; 0x5421 ... 0x547e (block 51 0x68f9 0x6ac2 0x6dd8 0x6e21 0x6ed4 0x6fe4 0x71fe 0x76dc 0x7779 0x79b1 0x7a3b 0x8404 0x89a9 0x8ced 0x8df3 0x8e48 0x9003 0x9014 0x9053 0x90fd 0x934d 0x9676 0x97dc 0x6bd2 0x7006 0x7258 0x72a2 0x7368 0x7763 0x79bf 0x7be4 0x7e9b 0x8b80 0x58a9 0x60c7 0x6566 0x65fd 0x66be 0x6c8c 0x711e 0x71c9 0x8c5a 0x9813 0x4e6d 0x7a81 0x4edd 0x51ac 0x51cd 0x52d5 0x540c 0x61a7 0x6771 0x6850 0x68df 0x6d1e 0x6f7c 0x75bc 0x77b3 0x7ae5 0x80f4 0x8463 0x9285 0x515c 0x6597 0x675c 0x6793 0x75d8 0x7ac7 0x8373 0xf95a 0x8c46 0x9017 0x982d 0x5c6f 0x81c0 0x829a 0x9041 0x906f 0x920d 0x5f97 0x5d9d 0x6a59 0x71c8 0x767b 0x7b49 0x85e4 0x8b04 0x9127 0x9a30 0x5587 0x61f6 0xf95b 0x7669 0x7f85 ) ; 0x5521 ... 0x557e (block 52 0x863f 0x87ba 0x88f8 0x908f 0xf95c 0x6d1b 0x70d9 0x73de 0x7d61 0x843d 0xf95d 0x916a 0x99f1 0xf95e 0x4e82 0x5375 0x6b04 0x6b12 0x703e 0x721b 0x862d 0x9e1e 0x524c 0x8fa3 0x5d50 0x64e5 0x652c 0x6b16 0x6feb 0x7c43 0x7e9c 0x85cd 0x8964 0x89bd 0x62c9 0x81d8 0x881f 0x5eca 0x6717 0x6d6a 0x72fc 0x7405 0x746f 0x8782 0x90de 0x4f86 0x5d0d 0x5fa0 0x840a 0x51b7 0x63a0 0x7565 0x4eae 0x5006 0x5169 0x51c9 0x6881 0x6a11 0x7cae 0x7cb1 0x7ce7 0x826f 0x8ad2 0x8f1b 0x91cf 0x4fb6 0x5137 0x52f5 0x5442 0x5eec 0x616e 0x623e 0x65c5 0x6ada 0x6ffe 0x792a 0x85dc 0x8823 0x95ad 0x9a62 0x9a6a 0x9e97 0x9ece 0x529b 0x66c6 0x6b77 0x701d 0x792b 0x8f62 0x9742 0x6190 0x6200 0x6523 0x6f23 ) ; 0x5621 ... 0x567e (block 53 0x7149 0x7489 0x7df4 0x806f 0x84ee 0x8f26 0x9023 0x934a 0x51bd 0x5217 0x52a3 0x6d0c 0x70c8 0x88c2 0x5ec9 0x6582 0x6bae 0x6fc2 0x7c3e 0x7375 0x4ee4 0x4f36 0x56f9 0xf95f 0x5cba 0x5dba 0x601c 0x73b2 0x7b2d 0x7f9a 0x7fce 0x8046 0x901e 0x9234 0x96f6 0x9748 0x9818 0x9f61 0x4f8b 0x6fa7 0x79ae 0x91b4 0x96b7 0x52de 0xf960 0x6488 0x64c4 0x6ad3 0x6f5e 0x7018 0x7210 0x76e7 0x8001 0x8606 0x865c 0x8def 0x8f05 0x9732 0x9b6f 0x9dfa 0x9e75 0x788c 0x797f 0x7da0 0x83c9 0x9304 0x9e7f 0x9e93 0x8ad6 0x58df 0x5f04 0x6727 0x7027 0x74cf 0x7c60 0x807e 0x5121 0x7028 0x7262 0x78ca 0x8cc2 0x8cda 0x8cf4 0x96f7 0x4e86 0x50da 0x5bee 0x5ed6 0x6599 0x71ce 0x7642 0x77ad 0x804a 0x84fc ) ; 0x5721 ... 0x577e (block 54 0x907c 0x9b27 0x9f8d 0x58d8 0x5a41 0x5c62 0x6a13 0x6dda 0x6f0f 0x763b 0x7d2f 0x7e37 0x851e 0x8938 0x93e4 0x964b 0x5289 0x65d2 0x67f3 0x69b4 0x6d41 0x6e9c 0x700f 0x7409 0x7460 0x7559 0x7624 0x786b 0x8b2c 0x985e 0x516d 0x622e 0x9678 0x4f96 0x502b 0x5d19 0x6dea 0x7db8 0x8f2a 0x5f8b 0x6144 0x6817 0xf961 0x9686 0x52d2 0x808b 0x51dc 0x51cc 0x695e 0x7a1c 0x7dbe 0x83f1 0x9675 0x4fda 0x5229 0x5398 0x540f 0x550e 0x5c65 0x60a7 0x674e 0x68a8 0x6d6c 0x7281 0x72f8 0x7406 0x7483 0xf962 0x75e2 0x7c6c 0x7f79 0x7fb8 0x8389 0x88cf 0x88e1 0x91cc 0x91d0 0x96e2 0x9bc9 0x541d 0x6f7e 0x71d0 0x7498 0x85fa 0x8eaa 0x96a3 0x9c57 0x9e9f 0x6797 0x6dcb 0x7433 0x81e8 0x9716 0x782c ) ; 0x5821 ... 0x587e (block 55 0x7acb 0x7b20 0x7c92 0x6469 0x746a 0x75f2 0x78bc 0x78e8 0x99ac 0x9b54 0x9ebb 0x5bde 0x5e55 0x6f20 0x819c 0x83ab 0x9088 0x4e07 0x534d 0x5a29 0x5dd2 0x5f4e 0x6162 0x633d 0x6669 0x66fc 0x6eff 0x6f2b 0x7063 0x779e 0x842c 0x8513 0x883b 0x8f13 0x9945 0x9c3b 0x551c 0x62b9 0x672b 0x6cab 0x8309 0x896a 0x977a 0x4ea1 0x5984 0x5fd8 0x5fd9 0x671b 0x7db2 0x7f54 0x8292 0x832b 0x83bd 0x8f1e 0x9099 0x57cb 0x59b9 0x5a92 0x5bd0 0x6627 0x679a 0x6885 0x6bcf 0x7164 0x7f75 0x8cb7 0x8ce3 0x9081 0x9b45 0x8108 0x8c8a 0x964c 0x9a40 0x9ea5 0x5b5f 0x6c13 0x731b 0x76f2 0x76df 0x840c 0x51aa 0x8993 0x514d 0x5195 0x52c9 0x68c9 0x6c94 0x7704 0x7720 0x7dbf 0x7dec 0x9762 0x9eb5 0x6ec5 ) ; 0x5921 ... 0x597e (block 56 0x8511 0x51a5 0x540d 0x547d 0x660e 0x669d 0x6927 0x6e9f 0x76bf 0x7791 0x8317 0x84c2 0x879f 0x9169 0x9298 0x9cf4 0x8882 0x4fae 0x5192 0x52df 0x59c6 0x5e3d 0x6155 0x6478 0x6479 0x66ae 0x67d0 0x6a21 0x6bcd 0x6bdb 0x725f 0x7261 0x7441 0x7738 0x77db 0x8017 0x82bc 0x8305 0x8b00 0x8b28 0x8c8c 0x6728 0x6c90 0x7267 0x76ee 0x7766 0x7a46 0x9da9 0x6b7f 0x6c92 0x5922 0x6726 0x8499 0x536f 0x5893 0x5999 0x5edf 0x63cf 0x6634 0x6773 0x6e3a 0x732b 0x7ad7 0x82d7 0x9328 0x52d9 0x5deb 0x61ae 0x61cb 0x620a 0x62c7 0x64ab 0x65e0 0x6959 0x6b66 0x6bcb 0x7121 0x73f7 0x755d 0x7e46 0x821e 0x8302 0x856a 0x8aa3 0x8cbf 0x9727 0x9d61 0x58a8 0x9ed8 0x5011 0x520e 0x543b 0x554f 0x6587 ) ; 0x5a21 ... 0x5a7e (block 57 0x6c76 0x7d0a 0x7d0b 0x805e 0x868a 0x9580 0x96ef 0x52ff 0x6c95 0x7269 0x5473 0x5a9a 0x5c3e 0x5d4b 0x5f4c 0x5fae 0x672a 0x68b6 0x6963 0x6e3c 0x6e44 0x7709 0x7c73 0x7f8e 0x8587 0x8b0e 0x8ff7 0x9761 0x9ef4 0x5cb7 0x60b6 0x610d 0x61ab 0x654f 0x65fb 0x65fc 0x6c11 0x6cef 0x739f 0x73c9 0x7de1 0x9594 0x5bc6 0x871c 0x8b10 0x525d 0x535a 0x62cd 0x640f 0x64b2 0x6734 0x6a38 0x6cca 0x73c0 0x749e 0x7b94 0x7c95 0x7e1b 0x818a 0x8236 0x8584 0x8feb 0x96f9 0x99c1 0x4f34 0x534a 0x53cd 0x53db 0x62cc 0x642c 0x6500 0x6591 0x69c3 0x6cee 0x6f58 0x73ed 0x7554 0x7622 0x76e4 0x76fc 0x78d0 0x78fb 0x792c 0x7d46 0x822c 0x87e0 0x8fd4 0x9812 0x98ef 0x52c3 0x62d4 0x64a5 0x6e24 0x6f51 ) ; 0x5b21 ... 0x5b7e (block 58 0x767c 0x8dcb 0x91b1 0x9262 0x9aee 0x9b43 0x5023 0x508d 0x574a 0x59a8 0x5c28 0x5e47 0x5f77 0x623f 0x653e 0x65b9 0x65c1 0x6609 0x678b 0x699c 0x6ec2 0x78c5 0x7d21 0x80aa 0x8180 0x822b 0x82b3 0x84a1 0x868c 0x8a2a 0x8b17 0x90a6 0x9632 0x9f90 0x500d 0x4ff3 0xf963 0x57f9 0x5f98 0x62dc 0x6392 0x676f 0x6e43 0x7119 0x76c3 0x80cc 0x80da 0x88f4 0x88f5 0x8919 0x8ce0 0x8f29 0x914d 0x966a 0x4f2f 0x4f70 0x5e1b 0x67cf 0x6822 0x767d 0x767e 0x9b44 0x5e61 0x6a0a 0x7169 0x71d4 0x756a 0xf964 0x7e41 0x8543 0x85e9 0x98dc 0x4f10 0x7b4f 0x7f70 0x95a5 0x51e1 0x5e06 0x68b5 0x6c3e 0x6c4e 0x6cdb 0x72af 0x7bc4 0x8303 0x6cd5 0x743a 0x50fb 0x5288 0x58c1 0x64d8 0x6a97 0x74a7 0x7656 ) ; 0x5c21 ... 0x5c7e (block 59 0x78a7 0x8617 0x95e2 0x9739 0xf965 0x535e 0x5f01 0x8b8a 0x8fa8 0x8faf 0x908a 0x5225 0x77a5 0x9c49 0x9f08 0x4e19 0x5002 0x5175 0x5c5b 0x5e77 0x661e 0x663a 0x67c4 0x68c5 0x70b3 0x7501 0x75c5 0x79c9 0x7add 0x8f27 0x9920 0x9a08 0x4fdd 0x5821 0x5831 0x5bf6 0x666e 0x6b65 0x6d11 0x6e7a 0x6f7d 0x73e4 0x752b 0x83e9 0x88dc 0x8913 0x8b5c 0x8f14 0x4f0f 0x50d5 0x5310 0x535c 0x5b93 0x5fa9 0x670d 0x798f 0x8179 0x832f 0x8514 0x8907 0x8986 0x8f39 0x8f3b 0x99a5 0x9c12 0x672c 0x4e76 0x4ff8 0x5949 0x5c01 0x5cef 0x5cf0 0x6367 0x68d2 0x70fd 0x71a2 0x742b 0x7e2b 0x84ec 0x8702 0x9022 0x92d2 0x9cf3 0x4e0d 0x4ed8 0x4fef 0x5085 0x5256 0x526f 0x5426 0x5490 0x57e0 0x592b 0x5a66 ) ; 0x5d21 ... 0x5d7e (block 60 0x5b5a 0x5b75 0x5bcc 0x5e9c 0xf966 0x6276 0x6577 0x65a7 0x6d6e 0x6ea5 0x7236 0x7b26 0x7c3f 0x7f36 0x8150 0x8151 0x819a 0x8240 0x8299 0x83a9 0x8a03 0x8ca0 0x8ce6 0x8cfb 0x8d74 0x8dba 0x90e8 0x91dc 0x961c 0x9644 0x99d9 0x9ce7 0x5317 0x5206 0x5429 0x5674 0x58b3 0x5954 0x596e 0x5fff 0x61a4 0x626e 0x6610 0x6c7e 0x711a 0x76c6 0x7c89 0x7cde 0x7d1b 0x82ac 0x8cc1 0x96f0 0xf967 0x4f5b 0x5f17 0x5f7f 0x62c2 0x5d29 0x670b 0x68da 0x787c 0x7e43 0x9d6c 0x4e15 0x5099 0x5315 0x532a 0x5351 0x5983 0x5a62 0x5e87 0x60b2 0x618a 0x6249 0x6279 0x6590 0x6787 0x69a7 0x6bd4 0x6bd6 0x6bd7 0x6bd8 0x6cb8 0xf968 0x7435 0x75fa 0x7812 0x7891 0x79d5 0x79d8 0x7c83 0x7dcb 0x7fe1 0x80a5 ) ; 0x5e21 ... 0x5e7e (block 61 0x813e 0x81c2 0x83f2 0x871a 0x88e8 0x8ab9 0x8b6c 0x8cbb 0x9119 0x975e 0x98db 0x9f3b 0x56ac 0x5b2a 0x5f6c 0x658c 0x6ab3 0x6baf 0x6d5c 0x6ff1 0x7015 0x725d 0x73ad 0x8ca7 0x8cd3 0x983b 0x6191 0x6c37 0x8058 0x9a01 0x4e4d 0x4e8b 0x4e9b 0x4ed5 0x4f3a 0x4f3c 0x4f7f 0x4fdf 0x50ff 0x53f2 0x53f8 0x5506 0x55e3 0x56db 0x58eb 0x5962 0x5a11 0x5beb 0x5bfa 0x5c04 0x5df3 0x5e2b 0x5f99 0x601d 0x6368 0x659c 0x65af 0x67f6 0x67fb 0x68ad 0x6b7b 0x6c99 0x6cd7 0x6e23 0x7009 0x7345 0x7802 0x793e 0x7940 0x7960 0x79c1 0x7be9 0x7d17 0x7d72 0x8086 0x820d 0x838e 0x84d1 0x86c7 0x88df 0x8a50 0x8a5e 0x8b1d 0x8cdc 0x8d66 0x8fad 0x90aa 0x98fc 0x99df 0x9e9d 0x524a 0xf969 0x6714 0xf96a ) ; 0x5f21 ... 0x5f7e (block 62 0x5098 0x522a 0x5c71 0x6563 0x6c55 0x73ca 0x7523 0x759d 0x7b97 0x849c 0x9178 0x9730 0x4e77 0x6492 0x6bba 0x715e 0x85a9 0x4e09 0xf96b 0x6749 0x68ee 0x6e17 0x829f 0x8518 0x886b 0x63f7 0x6f81 0x9212 0x98af 0x4e0a 0x50b7 0x50cf 0x511f 0x5546 0x55aa 0x5617 0x5b40 0x5c19 0x5ce0 0x5e38 0x5e8a 0x5ea0 0x5ec2 0x60f3 0x6851 0x6a61 0x6e58 0x723d 0x7240 0x72c0 0x76f8 0x7965 0x7bb1 0x7fd4 0x88f3 0x89f4 0x8a73 0x8c61 0x8cde 0x971c 0x585e 0x74bd 0x8cfd 0x55c7 0xf96c 0x7a61 0x7d22 0x8272 0x7272 0x751f 0x7525 0xf96d 0x7b19 0x5885 0x58fb 0x5dbc 0x5e8f 0x5eb6 0x5f90 0x6055 0x6292 0x637f 0x654d 0x6691 0x66d9 0x66f8 0x6816 0x68f2 0x7280 0x745e 0x7b6e 0x7d6e 0x7dd6 0x7f72 ) ; 0x6021 ... 0x607e (block 63 0x80e5 0x8212 0x85af 0x897f 0x8a93 0x901d 0x92e4 0x9ecd 0x9f20 0x5915 0x596d 0x5e2d 0x60dc 0x6614 0x6673 0x6790 0x6c50 0x6dc5 0x6f5f 0x77f3 0x78a9 0x84c6 0x91cb 0x932b 0x4ed9 0x50ca 0x5148 0x5584 0x5b0b 0x5ba3 0x6247 0x657e 0x65cb 0x6e32 0x717d 0x7401 0x7444 0x7487 0x74bf 0x766c 0x79aa 0x7dda 0x7e55 0x7fa8 0x817a 0x81b3 0x8239 0x861a 0x87ec 0x8a75 0x8de3 0x9078 0x9291 0x9425 0x994d 0x9bae 0x5368 0x5c51 0x6954 0x6cc4 0x6d29 0x6e2b 0x820c 0x859b 0x893b 0x8a2d 0x8aaa 0x96ea 0x9f67 0x5261 0x66b9 0x6bb2 0x7e96 0x87fe 0x8d0d 0x9583 0x965d 0x651d 0x6d89 0x71ee 0xf96e 0x57ce 0x59d3 0x5bac 0x6027 0x60fa 0x6210 0x661f 0x665f 0x7329 0x73f9 0x76db 0x7701 0x7b6c ) ; 0x6121 ... 0x617e (block 64 0x8056 0x8072 0x8165 0x8aa0 0x9192 0x4e16 0x52e2 0x6b72 0x6d17 0x7a05 0x7b39 0x7d30 0xf96f 0x8cb0 0x53ec 0x562f 0x5851 0x5bb5 0x5c0f 0x5c11 0x5de2 0x6240 0x6383 0x6414 0x662d 0x68b3 0x6cbc 0x6d88 0x6eaf 0x701f 0x70a4 0x71d2 0x7526 0x758f 0x758e 0x7619 0x7b11 0x7be0 0x7c2b 0x7d20 0x7d39 0x852c 0x856d 0x8607 0x8a34 0x900d 0x9061 0x90b5 0x92b7 0x97f6 0x9a37 0x4fd7 0x5c6c 0x675f 0x6d91 0x7c9f 0x7e8c 0x8b16 0x8d16 0x901f 0x5b6b 0x5dfd 0x640d 0x84c0 0x905c 0x98e1 0x7387 0x5b8b 0x609a 0x677e 0x6dde 0x8a1f 0x8aa6 0x9001 0x980c 0x5237 0xf970 0x7051 0x788e 0x9396 0x8870 0x91d7 0x4fee 0x53d7 0x55fd 0x56da 0x5782 0x58fd 0x5ac2 0x5b88 0x5cab 0x5cc0 0x5e25 0x6101 ) ; 0x6221 ... 0x627e (block 65 0x620d 0x624b 0x6388 0x641c 0x6536 0x6578 0x6a39 0x6b8a 0x6c34 0x6d19 0x6f31 0x71e7 0x72e9 0x7378 0x7407 0x74b2 0x7626 0x7761 0x79c0 0x7a57 0x7aea 0x7cb9 0x7d8f 0x7dac 0x7e61 0x7f9e 0x8129 0x8331 0x8490 0x84da 0x85ea 0x8896 0x8ab0 0x8b90 0x8f38 0x9042 0x9083 0x916c 0x9296 0x92b9 0x968b 0x96a7 0x96a8 0x96d6 0x9700 0x9808 0x9996 0x9ad3 0x9b1a 0x53d4 0x587e 0x5919 0x5b70 0x5bbf 0x6dd1 0x6f5a 0x719f 0x7421 0x74b9 0x8085 0x83fd 0x5de1 0x5f87 0x5faa 0x6042 0x65ec 0x6812 0x696f 0x6a53 0x6b89 0x6d35 0x6df3 0x73e3 0x76fe 0x77ac 0x7b4d 0x7d14 0x8123 0x821c 0x8340 0x84f4 0x8563 0x8a62 0x8ac4 0x9187 0x931e 0x9806 0x99b4 0x620c 0x8853 0x8ff0 0x9265 0x5d07 0x5d27 ) ; 0x6321 ... 0x637e (block 66 0x5d69 0x745f 0x819d 0x8768 0x6fd5 0x62fe 0x7fd2 0x8936 0x8972 0x4e1e 0x4e58 0x50e7 0x52dd 0x5347 0x627f 0x6607 0x7e69 0x8805 0x965e 0x4f8d 0x5319 0x5636 0x59cb 0x5aa4 0x5c38 0x5c4e 0x5c4d 0x5e02 0x5f11 0x6043 0x65bd 0x662f 0x6642 0x67be 0x67f4 0x731c 0x77e2 0x793a 0x7fc5 0x8494 0x84cd 0x8996 0x8a66 0x8a69 0x8ae1 0x8c55 0x8c7a 0x57f4 0x5bd4 0x5f0f 0x606f 0x62ed 0x690d 0x6b96 0x6e5c 0x7184 0x7bd2 0x8755 0x8b58 0x8efe 0x98df 0x98fe 0x4f38 0x4f81 0x4fe1 0x547b 0x5a20 0x5bb8 0x613c 0x65b0 0x6668 0x71fc 0x7533 0x795e 0x7d33 0x814e 0x81e3 0x8398 0x85aa 0x85ce 0x8703 0x8a0a 0x8eab 0x8f9b 0xf971 0x8fc5 0x5931 0x5ba4 0x5be6 0x6089 0x5be9 0x5c0b 0x5fc3 0x6c81 ) ; 0x6421 ... 0x647e (block 67 0xf972 0x6df1 0x700b 0x751a 0x82af 0x8af6 0x4ec0 0x5341 0xf973 0x96d9 0x6c0f 0x4e9e 0x4fc4 0x5152 0x555e 0x5a25 0x5ce8 0x6211 0x7259 0x82bd 0x83aa 0x86fe 0x8859 0x8a1d 0x963f 0x96c5 0x9913 0x9d09 0x9d5d 0x580a 0x5cb3 0x5dbd 0x5e44 0x60e1 0x6115 0x63e1 0x6a02 0x6e25 0x9102 0x9354 0x984e 0x9c10 0x9f77 0x5b89 0x5cb8 0x6309 0x664f 0x6848 0x773c 0x96c1 0x978d 0x9854 0x9b9f 0x65a1 0x8b01 0x8ecb 0x95bc 0x5535 0x5ca9 0x5dd6 0x5eb5 0x6697 0x764c 0x83f4 0x95c7 0x58d3 0x62bc 0x72ce 0x9d28 0x4ef0 0x592e 0x600f 0x663b 0x6b83 0x79e7 0x9d26 0x5393 0x54c0 0x57c3 0x5d16 0x611b 0x66d6 0x6daf 0x788d 0x827e 0x9698 0x9744 0x5384 0x627c 0x6396 0x6db2 0x7e0a 0x814b 0x984d ) ; 0x6521 ... 0x657e (block 68 0x6afb 0x7f4c 0x9daf 0x9e1a 0x4e5f 0x503b 0x51b6 0x591c 0x60f9 0x63f6 0x6930 0x723a 0x8036 0xf974 0x91ce 0x5f31 0xf975 0xf976 0x7d04 0x82e5 0x846f 0x84bb 0x85e5 0x8e8d 0xf977 0x4f6f 0xf978 0xf979 0x58e4 0x5b43 0x6059 0x63da 0x6518 0x656d 0x6698 0xf97a 0x694a 0x6a23 0x6d0b 0x7001 0x716c 0x75d2 0x760d 0x79b3 0x7a70 0xf97b 0x7f8a 0xf97c 0x8944 0xf97d 0x8b93 0x91c0 0x967d 0xf97e 0x990a 0x5704 0x5fa1 0x65bc 0x6f01 0x7600 0x79a6 0x8a9e 0x99ad 0x9b5a 0x9f6c 0x5104 0x61b6 0x6291 0x6a8d 0x81c6 0x5043 0x5830 0x5f66 0x7109 0x8a00 0x8afa 0x5b7c 0x8616 0x4ffa 0x513c 0x56b4 0x5944 0x63a9 0x6df9 0x5daa 0x696d 0x5186 0x4e88 0x4f59 0xf97f 0xf980 0xf981 0x5982 0xf982 ) ; 0x6621 ... 0x667e (block 69 0xf983 0x6b5f 0x6c5d 0xf984 0x74b5 0x7916 0xf985 0x8207 0x8245 0x8339 0x8f3f 0x8f5d 0xf986 0x9918 0xf987 0xf988 0xf989 0x4ea6 0xf98a 0x57df 0x5f79 0x6613 0xf98b 0xf98c 0x75ab 0x7e79 0x8b6f 0xf98d 0x9006 0x9a5b 0x56a5 0x5827 0x59f8 0x5a1f 0x5bb4 0xf98e 0x5ef6 0xf98f 0xf990 0x6350 0x633b 0xf991 0x693d 0x6c87 0x6cbf 0x6d8e 0x6d93 0x6df5 0x6f14 0xf992 0x70df 0x7136 0x7159 0xf993 0x71c3 0x71d5 0xf994 0x784f 0x786f 0xf995 0x7b75 0x7de3 0xf996 0x7e2f 0xf997 0x884d 0x8edf 0xf998 0xf999 0xf99a 0x925b 0xf99b 0x9cf6 0xf99c 0xf99d 0xf99e 0x6085 0x6d85 0xf99f 0x71b1 0xf9a0 0xf9a1 0x95b1 0x53ad 0xf9a2 0xf9a3 0xf9a4 0x67d3 0xf9a5 0x708e 0x7130 0x7430 0x8276 0x82d2 ) ; 0x6721 ... 0x677e (block 70 0xf9a6 0x95bb 0x9ae5 0x9e7d 0x66c4 0xf9a7 0x71c1 0x8449 0xf9a8 0xf9a9 0x584b 0xf9aa 0xf9ab 0x5db8 0x5f71 0xf9ac 0x6620 0x668e 0x6979 0x69ae 0x6c38 0x6cf3 0x6e36 0x6f41 0x6fda 0x701b 0x702f 0x7150 0x71df 0x7370 0xf9ad 0x745b 0xf9ae 0x74d4 0x76c8 0x7a4e 0x7e93 0xf9af 0xf9b0 0x82f1 0x8a60 0x8fce 0xf9b1 0x9348 0xf9b2 0x9719 0xf9b3 0xf9b4 0x4e42 0x502a 0xf9b5 0x5208 0x53e1 0x66f3 0x6c6d 0x6fca 0x730a 0x777f 0x7a62 0x82ae 0x85dd 0x8602 0xf9b6 0x88d4 0x8a63 0x8b7d 0x8c6b 0xf9b7 0x92b3 0xf9b8 0x9713 0x9810 0x4e94 0x4f0d 0x4fc9 0x50b2 0x5348 0x543e 0x5433 0x55da 0x5862 0x58ba 0x5967 0x5a1b 0x5be4 0x609f 0xf9b9 0x61ca 0x6556 0x65ff 0x6664 0x68a7 0x6c5a 0x6fb3 ) ; 0x6821 ... 0x687e (block 71 0x70cf 0x71ac 0x7352 0x7b7d 0x8708 0x8aa4 0x9c32 0x9f07 0x5c4b 0x6c83 0x7344 0x7389 0x923a 0x6eab 0x7465 0x761f 0x7a69 0x7e15 0x860a 0x5140 0x58c5 0x64c1 0x74ee 0x7515 0x7670 0x7fc1 0x9095 0x96cd 0x9954 0x6e26 0x74e6 0x7aa9 0x7aaa 0x81e5 0x86d9 0x8778 0x8a1b 0x5a49 0x5b8c 0x5b9b 0x68a1 0x6900 0x6d63 0x73a9 0x7413 0x742c 0x7897 0x7de9 0x7feb 0x8118 0x8155 0x839e 0x8c4c 0x962e 0x9811 0x66f0 0x5f80 0x65fa 0x6789 0x6c6a 0x738b 0x502d 0x5a03 0x6b6a 0x77ee 0x5916 0x5d6c 0x5dcd 0x7325 0x754f 0xf9ba 0xf9bb 0x50e5 0x51f9 0x582f 0x592d 0x5996 0x59da 0x5be5 0xf9bc 0xf9bd 0x5da2 0x62d7 0x6416 0x6493 0x64fe 0xf9be 0x66dc 0xf9bf 0x6a48 0xf9c0 0x71ff 0x7464 0xf9c1 ) ; 0x6921 ... 0x697e (block 72 0x7a88 0x7aaf 0x7e47 0x7e5e 0x8000 0x8170 0xf9c2 0x87ef 0x8981 0x8b20 0x9059 0xf9c3 0x9080 0x9952 0x617e 0x6b32 0x6d74 0x7e1f 0x8925 0x8fb1 0x4fd1 0x50ad 0x5197 0x52c7 0x57c7 0x5889 0x5bb9 0x5eb8 0x6142 0x6995 0x6d8c 0x6e67 0x6eb6 0x7194 0x7462 0x7528 0x752c 0x8073 0x8338 0x84c9 0x8e0a 0x9394 0x93de 0xf9c4 0x4e8e 0x4f51 0x5076 0x512a 0x53c8 0x53cb 0x53f3 0x5b87 0x5bd3 0x5c24 0x611a 0x6182 0x65f4 0x725b 0x7397 0x7440 0x76c2 0x7950 0x7991 0x79b9 0x7d06 0x7fbd 0x828b 0x85d5 0x865e 0x8fc2 0x9047 0x90f5 0x91ea 0x9685 0x96e8 0x96e9 0x52d6 0x5f67 0x65ed 0x6631 0x682f 0x715c 0x7a36 0x90c1 0x980a 0x4e91 0xf9c5 0x6a52 0x6b9e 0x6f90 0x7189 0x8018 0x82b8 0x8553 ) ; 0x6a21 ... 0x6a7e (block 73 0x904b 0x9695 0x96f2 0x97fb 0x851a 0x9b31 0x4e90 0x718a 0x96c4 0x5143 0x539f 0x54e1 0x5713 0x5712 0x57a3 0x5a9b 0x5ac4 0x5bc3 0x6028 0x613f 0x63f4 0x6c85 0x6d39 0x6e72 0x6e90 0x7230 0x733f 0x7457 0x82d1 0x8881 0x8f45 0x9060 0xf9c6 0x9662 0x9858 0x9d1b 0x6708 0x8d8a 0x925e 0x4f4d 0x5049 0x50de 0x5371 0x570d 0x59d4 0x5a01 0x5c09 0x6170 0x6690 0x6e2d 0x7232 0x744b 0x7def 0x80c3 0x840e 0x8466 0x853f 0x875f 0x885b 0x8918 0x8b02 0x9055 0x97cb 0x9b4f 0x4e73 0x4f91 0x5112 0x516a 0xf9c7 0x552f 0x55a9 0x5b7a 0x5ba5 0x5e7c 0x5e7d 0x5ebe 0x60a0 0x60df 0x6108 0x6109 0x63c4 0x6538 0x6709 0xf9c8 0x67d4 0x67da 0xf9c9 0x6961 0x6962 0x6cb9 0x6d27 0xf9ca 0x6e38 0xf9cb ) ; 0x6b21 ... 0x6b7e (block 74 0x6fe1 0x7336 0x7337 0xf9cc 0x745c 0x7531 0xf9cd 0x7652 0xf9ce 0xf9cf 0x7dad 0x81fe 0x8438 0x88d5 0x8a98 0x8adb 0x8aed 0x8e30 0x8e42 0x904a 0x903e 0x907a 0x9149 0x91c9 0x936e 0xf9d0 0xf9d1 0x5809 0xf9d2 0x6bd3 0x8089 0x80b2 0xf9d3 0xf9d4 0x5141 0x596b 0x5c39 0xf9d5 0xf9d6 0x6f64 0x73a7 0x80e4 0x8d07 0xf9d7 0x9217 0x958f 0xf9d8 0xf9d9 0xf9da 0xf9db 0x807f 0x620e 0x701c 0x7d68 0x878d 0xf9dc 0x57a0 0x6069 0x6147 0x6bb7 0x8abe 0x9280 0x96b1 0x4e59 0x541f 0x6deb 0x852d 0x9670 0x97f3 0x98ee 0x63d6 0x6ce3 0x9091 0x51dd 0x61c9 0x81ba 0x9df9 0x4f9d 0x501a 0x5100 0x5b9c 0x610f 0x61ff 0x64ec 0x6905 0x6bc5 0x7591 0x77e3 0x7fa9 0x8264 0x858f 0x87fb 0x8863 0x8abc ) ; 0x6c21 ... 0x6c7e (block 75 0x8b70 0x91ab 0x4e8c 0x4ee5 0x4f0a 0xf9dd 0xf9de 0x5937 0x59e8 0xf9df 0x5df2 0x5f1b 0x5f5b 0x6021 0xf9e0 0xf9e1 0xf9e2 0xf9e3 0x723e 0x73e5 0xf9e4 0x7570 0x75cd 0xf9e5 0x79fb 0xf9e6 0x800c 0x8033 0x8084 0x82e1 0x8351 0xf9e7 0xf9e8 0x8cbd 0x8cb3 0x9087 0xf9e9 0xf9ea 0x98f4 0x990c 0xf9eb 0xf9ec 0x7037 0x76ca 0x7fca 0x7fcc 0x7ffc 0x8b1a 0x4eba 0x4ec1 0x5203 0x5370 0xf9ed 0x54bd 0x56e0 0x59fb 0x5bc5 0x5f15 0x5fcd 0x6e6e 0xf9ee 0xf9ef 0x7d6a 0x8335 0xf9f0 0x8693 0x8a8d 0xf9f1 0x976d 0x9777 0xf9f2 0xf9f3 0x4e00 0x4f5a 0x4f7e 0x58f9 0x65e5 0x6ea2 0x9038 0x93b0 0x99b9 0x4efb 0x58ec 0x598a 0x59d9 0x6041 0xf9f4 0xf9f5 0x7a14 0xf9f6 0x834f 0x8cc3 0x5165 0x5344 ) ; 0x6d21 ... 0x6d7e (block 76 0xf9f7 0xf9f8 0xf9f9 0x4ecd 0x5269 0x5b55 0x82bf 0x4ed4 0x523a 0x54a8 0x59c9 0x59ff 0x5b50 0x5b57 0x5b5c 0x6063 0x6148 0x6ecb 0x7099 0x716e 0x7386 0x74f7 0x75b5 0x78c1 0x7d2b 0x8005 0x81ea 0x8328 0x8517 0x85c9 0x8aee 0x8cc7 0x96cc 0x4f5c 0x52fa 0x56bc 0x65ab 0x6628 0x707c 0x70b8 0x7235 0x7dbd 0x828d 0x914c 0x96c0 0x9d72 0x5b71 0x68e7 0x6b98 0x6f7a 0x76de 0x5c91 0x66ab 0x6f5b 0x7bb4 0x7c2a 0x8836 0x96dc 0x4e08 0x4ed7 0x5320 0x5834 0x58bb 0x58ef 0x596c 0x5c07 0x5e33 0x5e84 0x5f35 0x638c 0x66b2 0x6756 0x6a1f 0x6aa3 0x6b0c 0x6f3f 0x7246 0xf9fa 0x7350 0x748b 0x7ae0 0x7ca7 0x8178 0x81df 0x81e7 0x838a 0x846c 0x8523 0x8594 0x85cf 0x88dd 0x8d13 0x91ac 0x9577 ) ; 0x6e21 ... 0x6e7e (block 77 0x969c 0x518d 0x54c9 0x5728 0x5bb0 0x624d 0x6750 0x683d 0x6893 0x6e3d 0x6ed3 0x707d 0x7e21 0x88c1 0x8ca1 0x8f09 0x9f4b 0x9f4e 0x722d 0x7b8f 0x8acd 0x931a 0x4f47 0x4f4e 0x5132 0x5480 0x59d0 0x5e95 0x62b5 0x6775 0x696e 0x6a17 0x6cae 0x6e1a 0x72d9 0x732a 0x75bd 0x7bb8 0x7d35 0x82e7 0x83f9 0x8457 0x85f7 0x8a5b 0x8caf 0x8e87 0x9019 0x90b8 0x96ce 0x9f5f 0x52e3 0x540a 0x5ae1 0x5bc2 0x6458 0x6575 0x6ef4 0x72c4 0xf9fb 0x7684 0x7a4d 0x7b1b 0x7c4d 0x7e3e 0x7fdf 0x837b 0x8b2b 0x8cca 0x8d64 0x8de1 0x8e5f 0x8fea 0x8ff9 0x9069 0x93d1 0x4f43 0x4f7a 0x50b3 0x5168 0x5178 0x524d 0x526a 0x5861 0x587c 0x5960 0x5c08 0x5c55 0x5edb 0x609b 0x6230 0x6813 0x6bbf 0x6c08 0x6fb1 ) ; 0x6f21 ... 0x6f7e (block 78 0x714e 0x7420 0x7530 0x7538 0x7551 0x7672 0x7b4c 0x7b8b 0x7bad 0x7bc6 0x7e8f 0x8a6e 0x8f3e 0x8f49 0x923f 0x9293 0x9322 0x942b 0x96fb 0x985a 0x986b 0x991e 0x5207 0x622a 0x6298 0x6d59 0x7664 0x7aca 0x7bc0 0x7d76 0x5360 0x5cbe 0x5e97 0x6f38 0x70b9 0x7c98 0x9711 0x9b8e 0x9ede 0x63a5 0x647a 0x8776 0x4e01 0x4e95 0x4ead 0x505c 0x5075 0x5448 0x59c3 0x5b9a 0x5e40 0x5ead 0x5ef7 0x5f81 0x60c5 0x633a 0x653f 0x6574 0x65cc 0x6676 0x6678 0x67fe 0x6968 0x6a89 0x6b63 0x6c40 0x6dc0 0x6de8 0x6e1f 0x6e5e 0x701e 0x70a1 0x738e 0x73fd 0x753a 0x775b 0x7887 0x798e 0x7a0b 0x7a7d 0x7cbe 0x7d8e 0x8247 0x8a02 0x8aea 0x8c9e 0x912d 0x914a 0x91d8 0x9266 0x92cc 0x9320 0x9706 0x9756 ) ; 0x7021 ... 0x707e (block 79 0x975c 0x9802 0x9f0e 0x5236 0x5291 0x557c 0x5824 0x5e1d 0x5f1f 0x608c 0x63d0 0x68af 0x6fdf 0x796d 0x7b2c 0x81cd 0x85ba 0x88fd 0x8af8 0x8e44 0x918d 0x9664 0x969b 0x973d 0x984c 0x9f4a 0x4fce 0x5146 0x51cb 0x52a9 0x5632 0x5f14 0x5f6b 0x63aa 0x64cd 0x65e9 0x6641 0x66fa 0x66f9 0x671d 0x689d 0x68d7 0x69fd 0x6f15 0x6f6e 0x7167 0x71e5 0x722a 0x74aa 0x773a 0x7956 0x795a 0x79df 0x7a20 0x7a95 0x7c97 0x7cdf 0x7d44 0x7e70 0x8087 0x85fb 0x86a4 0x8a54 0x8abf 0x8d99 0x8e81 0x9020 0x906d 0x91e3 0x963b 0x96d5 0x9ce5 0x65cf 0x7c07 0x8db3 0x93c3 0x5b58 0x5c0a 0x5352 0x62d9 0x731d 0x5027 0x5b97 0x5f9e 0x60b0 0x616b 0x68d5 0x6dd9 0x742e 0x7a2e 0x7d42 0x7d9c 0x7e31 0x816b ) ; 0x7121 ... 0x717e (block 80 0x8e2a 0x8e35 0x937e 0x9418 0x4f50 0x5750 0x5de6 0x5ea7 0x632b 0x7f6a 0x4e3b 0x4f4f 0x4f8f 0x505a 0x59dd 0x80c4 0x546a 0x5468 0x55fe 0x594f 0x5b99 0x5dde 0x5eda 0x665d 0x6731 0x67f1 0x682a 0x6ce8 0x6d32 0x6e4a 0x6f8d 0x70b7 0x73e0 0x7587 0x7c4c 0x7d02 0x7d2c 0x7da2 0x821f 0x86db 0x8a3b 0x8a85 0x8d70 0x8e8a 0x8f33 0x9031 0x914e 0x9152 0x9444 0x99d0 0x7af9 0x7ca5 0x4fca 0x5101 0x51c6 0x57c8 0x5bef 0x5cfb 0x6659 0x6a3d 0x6d5a 0x6e96 0x6fec 0x710c 0x756f 0x7ae3 0x8822 0x9021 0x9075 0x96cb 0x99ff 0x8301 0x4e2d 0x4ef2 0x8846 0x91cd 0x537d 0x6adb 0x696b 0x6c41 0x847a 0x589e 0x618e 0x66fe 0x62ef 0x70dd 0x7511 0x75c7 0x7e52 0x84b8 0x8b49 0x8d08 0x4e4b 0x53ea ) ; 0x7221 ... 0x727e (block 81 0x54ab 0x5730 0x5740 0x5fd7 0x6301 0x6307 0x646f 0x652f 0x65e8 0x667a 0x679d 0x67b3 0x6b62 0x6c60 0x6c9a 0x6f2c 0x77e5 0x7825 0x7949 0x7957 0x7d19 0x80a2 0x8102 0x81f3 0x829d 0x82b7 0x8718 0x8a8c 0xf9fc 0x8d04 0x8dbe 0x9072 0x76f4 0x7a19 0x7a37 0x7e54 0x8077 0x5507 0x55d4 0x5875 0x632f 0x6422 0x6649 0x664b 0x686d 0x699b 0x6b84 0x6d25 0x6eb1 0x73cd 0x7468 0x74a1 0x755b 0x75b9 0x76e1 0x771e 0x778b 0x79e6 0x7e09 0x7e1d 0x81fb 0x852f 0x8897 0x8a3a 0x8cd1 0x8eeb 0x8fb0 0x9032 0x93ad 0x9663 0x9673 0x9707 0x4f84 0x53f1 0x59ea 0x5ac9 0x5e19 0x684e 0x74c6 0x75be 0x79e9 0x7a92 0x81a3 0x86ed 0x8cea 0x8dcc 0x8fed 0x659f 0x6715 0xf9fd 0x57f7 0x6f57 0x7ddd 0x8f2f ) ; 0x7321 ... 0x737e (block 82 0x93f6 0x96c6 0x5fb5 0x61f2 0x6f84 0x4e14 0x4f98 0x501f 0x53c9 0x55df 0x5d6f 0x5dee 0x6b21 0x6b64 0x78cb 0x7b9a 0xf9fe 0x8e49 0x8eca 0x906e 0x6349 0x643e 0x7740 0x7a84 0x932f 0x947f 0x9f6a 0x64b0 0x6faf 0x71e6 0x74a8 0x74da 0x7ac4 0x7c12 0x7e82 0x7cb2 0x7e98 0x8b9a 0x8d0a 0x947d 0x9910 0x994c 0x5239 0x5bdf 0x64e6 0x672d 0x7d2e 0x50ed 0x53c3 0x5879 0x6158 0x6159 0x61fa 0x65ac 0x7ad9 0x8b92 0x8b96 0x5009 0x5021 0x5275 0x5531 0x5a3c 0x5ee0 0x5f70 0x6134 0x655e 0x660c 0x6636 0x66a2 0x69cd 0x6ec4 0x6f32 0x7316 0x7621 0x7a93 0x8139 0x8259 0x83d6 0x84bc 0x50b5 0x57f0 0x5bc0 0x5be8 0x5f69 0x63a1 0x7826 0x7db5 0x83dc 0x8521 0x91c7 0x91f5 0x518a 0x67f5 0x7b56 ) ; 0x7421 ... 0x747e (block 83 0x8cac 0x51c4 0x59bb 0x60bd 0x8655 0x501c 0xf9ff 0x5254 0x5c3a 0x617d 0x621a 0x62d3 0x64f2 0x65a5 0x6ecc 0x7620 0x810a 0x8e60 0x965f 0x96bb 0x4edf 0x5343 0x5598 0x5929 0x5ddd 0x64c5 0x6cc9 0x6dfa 0x7394 0x7a7f 0x821b 0x85a6 0x8ce4 0x8e10 0x9077 0x91e7 0x95e1 0x9621 0x97c6 0x51f8 0x54f2 0x5586 0x5fb9 0x64a4 0x6f88 0x7db4 0x8f1f 0x8f4d 0x9435 0x50c9 0x5c16 0x6cbe 0x6dfb 0x751b 0x77bb 0x7c3d 0x7c64 0x8a79 0x8ac2 0x581e 0x59be 0x5e16 0x6377 0x7252 0x758a 0x776b 0x8adc 0x8cbc 0x8f12 0x5ef3 0x6674 0x6df8 0x807d 0x83c1 0x8acb 0x9751 0x9bd6 0xfa00 0x5243 0x66ff 0x6d95 0x6eef 0x7de0 0x8ae6 0x902e 0x905e 0x9ad4 0x521d 0x527f 0x54e8 0x6194 0x6284 0x62db 0x68a2 ) ; 0x7521 ... 0x757e (block 84 0x6912 0x695a 0x6a35 0x7092 0x7126 0x785d 0x7901 0x790e 0x79d2 0x7a0d 0x8096 0x8278 0x82d5 0x8349 0x8549 0x8c82 0x8d85 0x9162 0x918b 0x91ae 0x4fc3 0x56d1 0x71ed 0x77d7 0x8700 0x89f8 0x5bf8 0x5fd6 0x6751 0x90a8 0x53e2 0x585a 0x5bf5 0x60a4 0x6181 0x6460 0x7e3d 0x8070 0x8525 0x9283 0x64ae 0x50ac 0x5d14 0x6700 0x589c 0x62bd 0x63a8 0x690e 0x6978 0x6a1e 0x6e6b 0x76ba 0x79cb 0x82bb 0x8429 0x8acf 0x8da8 0x8ffd 0x9112 0x914b 0x919c 0x9310 0x9318 0x939a 0x96db 0x9a36 0x9c0d 0x4e11 0x755c 0x795d 0x7afa 0x7b51 0x7bc9 0x7e2e 0x84c4 0x8e59 0x8e74 0x8ef8 0x9010 0x6625 0x693f 0x7443 0x51fa 0x672e 0x9edc 0x5145 0x5fe0 0x6c96 0x87f2 0x885d 0x8877 0x60b4 0x81b5 0x8403 ) ; 0x7621 ... 0x767e (block 85 0x8d05 0x53d6 0x5439 0x5634 0x5a36 0x5c31 0x708a 0x7fe0 0x805a 0x8106 0x81ed 0x8da3 0x9189 0x9a5f 0x9df2 0x5074 0x4ec4 0x53a0 0x60fb 0x6e2c 0x5c64 0x4f88 0x5024 0x55e4 0x5cd9 0x5e5f 0x6065 0x6894 0x6cbb 0x6dc4 0x71be 0x75d4 0x75f4 0x7661 0x7a1a 0x7a49 0x7dc7 0x7dfb 0x7f6e 0x81f4 0x86a9 0x8f1c 0x96c9 0x99b3 0x9f52 0x5247 0x52c5 0x98ed 0x89aa 0x4e03 0x67d2 0x6f06 0x4fb5 0x5be2 0x6795 0x6c88 0x6d78 0x741b 0x7827 0x91dd 0x937c 0x87c4 0x79e4 0x7a31 0x5feb 0x4ed6 0x54a4 0x553e 0x58ae 0x59a5 0x60f0 0x6253 0x62d6 0x6736 0x6955 0x8235 0x9640 0x99b1 0x99dd 0x502c 0x5353 0x5544 0x577c 0xfa01 0x6258 0xfa02 0x64e2 0x666b 0x67dd 0x6fc1 0x6fef 0x7422 0x7438 0x8a17 ) ; 0x7721 ... 0x777e (block 86 0x9438 0x5451 0x5606 0x5766 0x5f48 0x619a 0x6b4e 0x7058 0x70ad 0x7dbb 0x8a95 0x596a 0x812b 0x63a2 0x7708 0x803d 0x8caa 0x5854 0x642d 0x69bb 0x5b95 0x5e11 0x6e6f 0xfa03 0x8569 0x514c 0x53f0 0x592a 0x6020 0x614b 0x6b86 0x6c70 0x6cf0 0x7b1e 0x80ce 0x82d4 0x8dc6 0x90b0 0x98b1 0xfa04 0x64c7 0x6fa4 0x6491 0x6504 0x514e 0x5410 0x571f 0x8a0e 0x615f 0x6876 0xfa05 0x75db 0x7b52 0x7d71 0x901a 0x5806 0x69cc 0x817f 0x892a 0x9000 0x9839 0x5078 0x5957 0x59ac 0x6295 0x900f 0x9b2a 0x615d 0x7279 0x95d6 0x5761 0x5a46 0x5df4 0x628a 0x64ad 0x64fa 0x6777 0x6ce2 0x6d3e 0x722c 0x7436 0x7834 0x7f77 0x82ad 0x8ddb 0x9817 0x5224 0x5742 0x677f 0x7248 0x74e3 0x8ca9 0x8fa6 0x9211 ) ; 0x7821 ... 0x787e (block 87 0x962a 0x516b 0x53ed 0x634c 0x4f69 0x5504 0x6096 0x6557 0x6c9b 0x6d7f 0x724c 0x72fd 0x7a17 0x8987 0x8c9d 0x5f6d 0x6f8e 0x70f9 0x81a8 0x610e 0x4fbf 0x504f 0x6241 0x7247 0x7bc7 0x7de8 0x7fe9 0x904d 0x97ad 0x9a19 0x8cb6 0x576a 0x5e73 0x67b0 0x840d 0x8a55 0x5420 0x5b16 0x5e63 0x5ee2 0x5f0a 0x6583 0x80ba 0x853d 0x9589 0x965b 0x4f48 0x5305 0x530d 0x530f 0x5486 0x54fa 0x5703 0x5e03 0x6016 0x629b 0x62b1 0x6355 0xfa06 0x6ce1 0x6d66 0x75b1 0x7832 0x80de 0x812f 0x82de 0x8461 0x84b2 0x888d 0x8912 0x900b 0x92ea 0x98fd 0x9b91 0x5e45 0x66b4 0x66dd 0x7011 0x7206 0xfa07 0x4ff5 0x527d 0x5f6a 0x6153 0x6753 0x6a19 0x6f02 0x74e2 0x7968 0x8868 0x8c79 0x98c7 0x98c4 0x9a43 ) ; 0x7921 ... 0x797e (block 88 0x54c1 0x7a1f 0x6953 0x8af7 0x8c4a 0x98a8 0x99ae 0x5f7c 0x62ab 0x75b2 0x76ae 0x88ab 0x907f 0x9642 0x5339 0x5f3c 0x5fc5 0x6ccc 0x73cc 0x7562 0x758b 0x7b46 0x82fe 0x999d 0x4e4f 0x903c 0x4e0b 0x4f55 0x53a6 0x590f 0x5ec8 0x6630 0x6cb3 0x7455 0x8377 0x8766 0x8cc0 0x9050 0x971e 0x9c15 0x58d1 0x5b78 0x8650 0x8b14 0x9db4 0x5bd2 0x6068 0x608d 0x65f1 0x6c57 0x6f22 0x6fa3 0x701a 0x7f55 0x7ff0 0x9591 0x9592 0x9650 0x97d3 0x5272 0x8f44 0x51fd 0x542b 0x54b8 0x5563 0x558a 0x6abb 0x6db5 0x7dd8 0x8266 0x929c 0x9677 0x9e79 0x5408 0x54c8 0x76d2 0x86e4 0x95a4 0x95d4 0x965c 0x4ea2 0x4f09 0x59ee 0x5ae6 0x5df7 0x6052 0x6297 0x676d 0x6841 0x6c86 0x6e2f 0x7f38 0x809b 0x822a ) ; 0x7a21 ... 0x7a7e (block 89 0xfa08 0xfa09 0x9805 0x4ea5 0x5055 0x54b3 0x5793 0x595a 0x5b69 0x5bb3 0x61c8 0x6977 0x6d77 0x7023 0x87f9 0x89e3 0x8a72 0x8ae7 0x9082 0x99ed 0x9ab8 0x52be 0x6838 0x5016 0x5e78 0x674f 0x8347 0x884c 0x4eab 0x5411 0x56ae 0x73e6 0x9115 0x97ff 0x9909 0x9957 0x9999 0x5653 0x589f 0x865b 0x8a31 0x61b2 0x6af6 0x737b 0x8ed2 0x6b47 0x96aa 0x9a57 0x5955 0x7200 0x8d6b 0x9769 0x4fd4 0x5cf4 0x5f26 0x61f8 0x665b 0x6ceb 0x70ab 0x7384 0x73b9 0x73fe 0x7729 0x774d 0x7d43 0x7d62 0x7e23 0x8237 0x8852 0xfa0a 0x8ce2 0x9249 0x986f 0x5b51 0x7a74 0x8840 0x9801 0x5acc 0x4fe0 0x5354 0x593e 0x5cfd 0x633e 0x6d79 0x72f9 0x8105 0x8107 0x83a2 0x92cf 0x9830 0x4ea8 0x5144 0x5211 0x578b ) ; 0x7b21 ... 0x7b7e (block 90 0x5f62 0x6cc2 0x6ece 0x7005 0x7050 0x70af 0x7192 0x73e9 0x7469 0x834a 0x87a2 0x8861 0x9008 0x90a2 0x93a3 0x99a8 0x516e 0x5f57 0x60e0 0x6167 0x66b3 0x8559 0x8e4a 0x91af 0x978b 0x4e4e 0x4e92 0x547c 0x58d5 0x58fa 0x597d 0x5cb5 0x5f27 0x6236 0x6248 0x660a 0x6667 0x6beb 0x6d69 0x6dcf 0x6e56 0x6ef8 0x6f94 0x6fe0 0x6fe9 0x705d 0x72d0 0x7425 0x745a 0x74e0 0x7693 0x795c 0x7cca 0x7e1e 0x80e1 0x82a6 0x846b 0x84bf 0x864e 0x865f 0x8774 0x8b77 0x8c6a 0x93ac 0x9800 0x9865 0x60d1 0x6216 0x9177 0x5a5a 0x660f 0x6df7 0x6e3e 0x743f 0x9b42 0x5ffd 0x60da 0x7b0f 0x54c4 0x5f18 0x6c5e 0x6cd3 0x6d2a 0x70d8 0x7d05 0x8679 0x8a0c 0x9d3b 0x5316 0x548c 0x5b05 0x6a3a 0x706b 0x7575 ) ; 0x7c21 ... 0x7c7e (block 91 0x798d 0x79be 0x82b1 0x83ef 0x8a71 0x8b41 0x8ca8 0x9774 0xfa0b 0x64f4 0x652b 0x78ba 0x78bb 0x7a6b 0x4e38 0x559a 0x5950 0x5ba6 0x5e7b 0x60a3 0x63db 0x6b61 0x6665 0x6853 0x6e19 0x7165 0x74b0 0x7d08 0x9084 0x9a69 0x9c25 0x6d3b 0x6ed1 0x733e 0x8c41 0x95ca 0x51f0 0x5e4c 0x5fa8 0x604d 0x60f6 0x6130 0x614c 0x6643 0x6644 0x69a5 0x6cc1 0x6e5f 0x6ec9 0x6f62 0x714c 0x749c 0x7687 0x7bc1 0x7c27 0x8352 0x8757 0x9051 0x968d 0x9ec3 0x532f 0x56de 0x5efb 0x5f8a 0x6062 0x6094 0x61f7 0x6666 0x6703 0x6a9c 0x6dee 0x6fae 0x7070 0x736a 0x7e6a 0x81be 0x8334 0x86d4 0x8aa8 0x8cc4 0x5283 0x7372 0x5b96 0x6a6b 0x9404 0x54ee 0x5686 0x5b5d 0x6548 0x6585 0x66c9 0x689f 0x6d8d 0x6dc6 ) ; 0x7d21 ... 0x7d7e (block 92 0x723b 0x80b4 0x9175 0x9a4d 0x4faf 0x5019 0x539a 0x540e 0x543c 0x5589 0x55c5 0x5e3f 0x5f8c 0x673d 0x7166 0x73dd 0x9005 0x52db 0x52f3 0x5864 0x58ce 0x7104 0x718f 0x71fb 0x85b0 0x8a13 0x6688 0x85a8 0x55a7 0x6684 0x714a 0x8431 0x5349 0x5599 0x6bc1 0x5f59 0x5fbd 0x63ee 0x6689 0x7147 0x8af1 0x8f1d 0x9ebe 0x4f11 0x643a 0x70cb 0x7566 0x8667 0x6064 0x8b4e 0x9df8 0x5147 0x51f6 0x5308 0x6d36 0x80f8 0x9ed1 0x6615 0x6b23 0x7098 0x75d5 0x5403 0x5c79 0x7d07 0x8a16 0x6b20 0x6b3d 0x6b46 0x5438 0x6070 0x6d3d 0x7fd5 0x8208 0x50d6 0x51de 0x559c 0x566b 0x56cd 0x59ec 0x5b09 0x5e0c 0x6199 0x6198 0x6231 0x665e 0x66e6 0x7199 0x71b9 0x71ba 0x72a7 0x79a7 0x7a00 0x7fb2 0x8a70 ) vflib3-3.6.14.dfsg/ccv/ksx1001_unicode.ccv0000644000175000017500000021101307006213675017355 0ustar mohuramohura; Conversion table: KSX1001 ==> UNICODE (charset-external-name KSX1001) (charset-external-encoding ISO2022) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x21) (c1-max 0x7d) (c2-min 0x21) (c2-max 0x7e) (block-size 256) (nblocks 93) ; 0x2121 ... 0x217e (block 0 0x3000 0x3001 0x3002 0x00b7 0x2025 0x2026 0x00a8 0x3003 0x00ad 0x2015 0x2225 0xff3c 0x223c 0x2018 0x2019 0x201c 0x201d 0x3014 0x3015 0x3008 0x3009 0x300a 0x300b 0x300c 0x300d 0x300e 0x300f 0x3010 0x3011 0x00b1 0x00d7 0x00f7 0x2260 0x2264 0x2265 0x221e 0x2234 0x00b0 0x2032 0x2033 0x2103 0x212b 0xffe0 0xffe1 0xffe5 0x2642 0x2640 0x2220 0x22a5 0x2312 0x2202 0x2207 0x2261 0x2252 0x00a7 0x203b 0x2606 0x2605 0x25cb 0x25cf 0x25ce 0x25c7 0x25c6 0x25a1 0x25a0 0x25b3 0x25b2 0x25bd 0x25bc 0x2192 0x2190 0x2191 0x2193 0x2194 0x3013 0x226a 0x226b 0x221a 0x223d 0x221d 0x2235 0x222b 0x222c 0x2208 0x220b 0x2286 0x2287 0x2282 0x2283 0x222a 0x2229 0x2227 0x2228 0xffe2 ) ; 0x2221 ... 0x227e (block 1 0x21d2 0x21d4 0x2200 0x2203 0x00b4 0xff5e 0x02c7 0x02d8 0x02dd 0x02da 0x02d9 0x00b8 0x02db 0x00a1 0x00bf 0x02d0 0x222e 0x2211 0x220f 0x00a4 0x2109 0x2030 0x25c1 0x25c0 0x25b7 0x25b6 0x2664 0x2660 0x2661 0x2665 0x2667 0x2663 0x2299 0x25c8 0x25a3 0x25d0 0x25d1 0x2592 0x25a4 0x25a5 0x25a8 0x25a7 0x25a6 0x25a9 0x2668 0x260f 0x260e 0x261c 0x261e 0x00b6 0x2020 0x2021 0x2195 0x2197 0x2199 0x2196 0x2198 0x266d 0x2669 0x266a 0x266c 0x327f 0x321c 0x2116 0x33c7 0x2122 0x33c2 0x33d8 0x2121 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2321 ... 0x237e (block 2 0xff01 0xff02 0xff03 0xff04 0xff05 0xff06 0xff07 0xff08 0xff09 0xff0a 0xff0b 0xff0c 0xff0d 0xff0e 0xff0f 0xff10 0xff11 0xff12 0xff13 0xff14 0xff15 0xff16 0xff17 0xff18 0xff19 0xff1a 0xff1b 0xff1c 0xff1d 0xff1e 0xff1f 0xff20 0xff21 0xff22 0xff23 0xff24 0xff25 0xff26 0xff27 0xff28 0xff29 0xff2a 0xff2b 0xff2c 0xff2d 0xff2e 0xff2f 0xff30 0xff31 0xff32 0xff33 0xff34 0xff35 0xff36 0xff37 0xff38 0xff39 0xff3a 0xff3b 0xffe6 0xff3d 0xff3e 0xff3f 0xff40 0xff41 0xff42 0xff43 0xff44 0xff45 0xff46 0xff47 0xff48 0xff49 0xff4a 0xff4b 0xff4c 0xff4d 0xff4e 0xff4f 0xff50 0xff51 0xff52 0xff53 0xff54 0xff55 0xff56 0xff57 0xff58 0xff59 0xff5a 0xff5b 0xff5c 0xff5d 0xffe3 ) ; 0x2421 ... 0x247e (block 3 0x3131 0x3132 0x3133 0x3134 0x3135 0x3136 0x3137 0x3138 0x3139 0x313a 0x313b 0x313c 0x313d 0x313e 0x313f 0x3140 0x3141 0x3142 0x3143 0x3144 0x3145 0x3146 0x3147 0x3148 0x3149 0x314a 0x314b 0x314c 0x314d 0x314e 0x314f 0x3150 0x3151 0x3152 0x3153 0x3154 0x3155 0x3156 0x3157 0x3158 0x3159 0x315a 0x315b 0x315c 0x315d 0x315e 0x315f 0x3160 0x3161 0x3162 0x3163 0x3164 0x3165 0x3166 0x3167 0x3168 0x3169 0x316a 0x316b 0x316c 0x316d 0x316e 0x316f 0x3170 0x3171 0x3172 0x3173 0x3174 0x3175 0x3176 0x3177 0x3178 0x3179 0x317a 0x317b 0x317c 0x317d 0x317e 0x317f 0x3180 0x3181 0x3182 0x3183 0x3184 0x3185 0x3186 0x3187 0x3188 0x3189 0x318a 0x318b 0x318c 0x318d 0x318e ) ; 0x2521 ... 0x257e (block 4 0x2170 0x2171 0x2172 0x2173 0x2174 0x2175 0x2176 0x2177 0x2178 0x2179 -1 -1 -1 -1 -1 0x2160 0x2161 0x2162 0x2163 0x2164 0x2165 0x2166 0x2167 0x2168 0x2169 -1 -1 -1 -1 -1 -1 -1 0x0391 0x0392 0x0393 0x0394 0x0395 0x0396 0x0397 0x0398 0x0399 0x039a 0x039b 0x039c 0x039d 0x039e 0x039f 0x03a0 0x03a1 0x03a3 0x03a4 0x03a5 0x03a6 0x03a7 0x03a8 0x03a9 -1 -1 -1 -1 -1 -1 -1 -1 0x03b1 0x03b2 0x03b3 0x03b4 0x03b5 0x03b6 0x03b7 0x03b8 0x03b9 0x03ba 0x03bb 0x03bc 0x03bd 0x03be 0x03bf 0x03c0 0x03c1 0x03c3 0x03c4 0x03c5 0x03c6 0x03c7 0x03c8 0x03c9 -1 -1 -1 -1 -1 -1 ) ; 0x2621 ... 0x267e (block 5 0x2500 0x2502 0x250c 0x2510 0x2518 0x2514 0x251c 0x252c 0x2524 0x2534 0x253c 0x2501 0x2503 0x250f 0x2513 0x251b 0x2517 0x2523 0x2533 0x252b 0x253b 0x254b 0x2520 0x252f 0x2528 0x2537 0x253f 0x251d 0x2530 0x2525 0x2538 0x2542 0x2512 0x2511 0x251a 0x2519 0x2516 0x2515 0x250e 0x250d 0x251e 0x251f 0x2521 0x2522 0x2526 0x2527 0x2529 0x252a 0x252d 0x252e 0x2531 0x2532 0x2535 0x2536 0x2539 0x253a 0x253d 0x253e 0x2540 0x2541 0x2543 0x2544 0x2545 0x2546 0x2547 0x2548 0x2549 0x254a -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2721 ... 0x277e (block 6 0x3395 0x3396 0x3397 0x2113 0x3398 0x33c4 0x33a3 0x33a4 0x33a5 0x33a6 0x3399 0x339a 0x339b 0x339c 0x339d 0x339e 0x339f 0x33a0 0x33a1 0x33a2 0x33ca 0x338d 0x338e 0x338f 0x33cf 0x3388 0x3389 0x33c8 0x33a7 0x33a8 0x33b0 0x33b1 0x33b2 0x33b3 0x33b4 0x33b5 0x33b6 0x33b7 0x33b8 0x33b9 0x3380 0x3381 0x3382 0x3383 0x3384 0x33ba 0x33bb 0x33bc 0x33bd 0x33be 0x33bf 0x3390 0x3391 0x3392 0x3393 0x3394 0x2126 0x33c0 0x33c1 0x338a 0x338b 0x338c 0x33d6 0x33c5 0x33ad 0x33ae 0x33af 0x33db 0x33a9 0x33aa 0x33ab 0x33ac 0x33dd 0x33d0 0x33d3 0x33c3 0x33c9 0x33dc 0x33c6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2821 ... 0x287e (block 7 0x00c6 0x00d0 0x00aa 0x0126 -1 0x0132 -1 0x013f 0x0141 0x00d8 0x0152 0x00ba 0x00de 0x0166 0x014a -1 0x3260 0x3261 0x3262 0x3263 0x3264 0x3265 0x3266 0x3267 0x3268 0x3269 0x326a 0x326b 0x326c 0x326d 0x326e 0x326f 0x3270 0x3271 0x3272 0x3273 0x3274 0x3275 0x3276 0x3277 0x3278 0x3279 0x327a 0x327b 0x24d0 0x24d1 0x24d2 0x24d3 0x24d4 0x24d5 0x24d6 0x24d7 0x24d8 0x24d9 0x24da 0x24db 0x24dc 0x24dd 0x24de 0x24df 0x24e0 0x24e1 0x24e2 0x24e3 0x24e4 0x24e5 0x24e6 0x24e7 0x24e8 0x24e9 0x2460 0x2461 0x2462 0x2463 0x2464 0x2465 0x2466 0x2467 0x2468 0x2469 0x246a 0x246b 0x246c 0x246d 0x246e 0x00bd 0x2153 0x2154 0x00bc 0x00be 0x215b 0x215c 0x215d 0x215e ) ; 0x2921 ... 0x297e (block 8 0x00e6 0x0111 0x00f0 0x0127 0x0131 0x0133 0x0138 0x0140 0x0142 0x00f8 0x0153 0x00df 0x00fe 0x0167 0x014b 0x0149 0x3200 0x3201 0x3202 0x3203 0x3204 0x3205 0x3206 0x3207 0x3208 0x3209 0x320a 0x320b 0x320c 0x320d 0x320e 0x320f 0x3210 0x3211 0x3212 0x3213 0x3214 0x3215 0x3216 0x3217 0x3218 0x3219 0x321a 0x321b 0x249c 0x249d 0x249e 0x249f 0x24a0 0x24a1 0x24a2 0x24a3 0x24a4 0x24a5 0x24a6 0x24a7 0x24a8 0x24a9 0x24aa 0x24ab 0x24ac 0x24ad 0x24ae 0x24af 0x24b0 0x24b1 0x24b2 0x24b3 0x24b4 0x24b5 0x2474 0x2475 0x2476 0x2477 0x2478 0x2479 0x247a 0x247b 0x247c 0x247d 0x247e 0x247f 0x2480 0x2481 0x2482 0x00b9 0x00b2 0x00b3 0x2074 0x207f 0x2081 0x2082 0x2083 0x2084 ) ; 0x2a21 ... 0x2a7e (block 9 0x3041 0x3042 0x3043 0x3044 0x3045 0x3046 0x3047 0x3048 0x3049 0x304a 0x304b 0x304c 0x304d 0x304e 0x304f 0x3050 0x3051 0x3052 0x3053 0x3054 0x3055 0x3056 0x3057 0x3058 0x3059 0x305a 0x305b 0x305c 0x305d 0x305e 0x305f 0x3060 0x3061 0x3062 0x3063 0x3064 0x3065 0x3066 0x3067 0x3068 0x3069 0x306a 0x306b 0x306c 0x306d 0x306e 0x306f 0x3070 0x3071 0x3072 0x3073 0x3074 0x3075 0x3076 0x3077 0x3078 0x3079 0x307a 0x307b 0x307c 0x307d 0x307e 0x307f 0x3080 0x3081 0x3082 0x3083 0x3084 0x3085 0x3086 0x3087 0x3088 0x3089 0x308a 0x308b 0x308c 0x308d 0x308e 0x308f 0x3090 0x3091 0x3092 0x3093 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2b21 ... 0x2b7e (block 10 0x30a1 0x30a2 0x30a3 0x30a4 0x30a5 0x30a6 0x30a7 0x30a8 0x30a9 0x30aa 0x30ab 0x30ac 0x30ad 0x30ae 0x30af 0x30b0 0x30b1 0x30b2 0x30b3 0x30b4 0x30b5 0x30b6 0x30b7 0x30b8 0x30b9 0x30ba 0x30bb 0x30bc 0x30bd 0x30be 0x30bf 0x30c0 0x30c1 0x30c2 0x30c3 0x30c4 0x30c5 0x30c6 0x30c7 0x30c8 0x30c9 0x30ca 0x30cb 0x30cc 0x30cd 0x30ce 0x30cf 0x30d0 0x30d1 0x30d2 0x30d3 0x30d4 0x30d5 0x30d6 0x30d7 0x30d8 0x30d9 0x30da 0x30db 0x30dc 0x30dd 0x30de 0x30df 0x30e0 0x30e1 0x30e2 0x30e3 0x30e4 0x30e5 0x30e6 0x30e7 0x30e8 0x30e9 0x30ea 0x30eb 0x30ec 0x30ed 0x30ee 0x30ef 0x30f0 0x30f1 0x30f2 0x30f3 0x30f4 0x30f5 0x30f6 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2c21 ... 0x2c7e (block 11 0x0410 0x0411 0x0412 0x0413 0x0414 0x0415 0x0401 0x0416 0x0417 0x0418 0x0419 0x041a 0x041b 0x041c 0x041d 0x041e 0x041f 0x0420 0x0421 0x0422 0x0423 0x0424 0x0425 0x0426 0x0427 0x0428 0x0429 0x042a 0x042b 0x042c 0x042d 0x042e 0x042f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x0430 0x0431 0x0432 0x0433 0x0434 0x0435 0x0451 0x0436 0x0437 0x0438 0x0439 0x043a 0x043b 0x043c 0x043d 0x043e 0x043f 0x0440 0x0441 0x0442 0x0443 0x0444 0x0445 0x0446 0x0447 0x0448 0x0449 0x044a 0x044b 0x044c 0x044d 0x044e 0x044f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2d21 ... 0x2d7e (block 12 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2e21 ... 0x2e7e (block 13 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2f21 ... 0x2f7e (block 14 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x3021 ... 0x307e (block 15 0xac00 0xac01 0xac04 0xac07 0xac08 0xac09 0xac0a 0xac10 0xac11 0xac12 0xac13 0xac14 0xac15 0xac16 0xac17 0xac19 0xac1a 0xac1b 0xac1c 0xac1d 0xac20 0xac24 0xac2c 0xac2d 0xac2f 0xac30 0xac31 0xac38 0xac39 0xac3c 0xac40 0xac4b 0xac4d 0xac54 0xac58 0xac5c 0xac70 0xac71 0xac74 0xac77 0xac78 0xac7a 0xac80 0xac81 0xac83 0xac84 0xac85 0xac86 0xac89 0xac8a 0xac8b 0xac8c 0xac90 0xac94 0xac9c 0xac9d 0xac9f 0xaca0 0xaca1 0xaca8 0xaca9 0xacaa 0xacac 0xacaf 0xacb0 0xacb8 0xacb9 0xacbb 0xacbc 0xacbd 0xacc1 0xacc4 0xacc8 0xaccc 0xacd5 0xacd7 0xace0 0xace1 0xace4 0xace7 0xace8 0xacea 0xacec 0xacef 0xacf0 0xacf1 0xacf3 0xacf5 0xacf6 0xacfc 0xacfd 0xad00 0xad04 0xad06 ) ; 0x3121 ... 0x317e (block 16 0xad0c 0xad0d 0xad0f 0xad11 0xad18 0xad1c 0xad20 0xad29 0xad2c 0xad2d 0xad34 0xad35 0xad38 0xad3c 0xad44 0xad45 0xad47 0xad49 0xad50 0xad54 0xad58 0xad61 0xad63 0xad6c 0xad6d 0xad70 0xad73 0xad74 0xad75 0xad76 0xad7b 0xad7c 0xad7d 0xad7f 0xad81 0xad82 0xad88 0xad89 0xad8c 0xad90 0xad9c 0xad9d 0xada4 0xadb7 0xadc0 0xadc1 0xadc4 0xadc8 0xadd0 0xadd1 0xadd3 0xaddc 0xade0 0xade4 0xadf8 0xadf9 0xadfc 0xadff 0xae00 0xae01 0xae08 0xae09 0xae0b 0xae0d 0xae14 0xae30 0xae31 0xae34 0xae37 0xae38 0xae3a 0xae40 0xae41 0xae43 0xae45 0xae46 0xae4a 0xae4c 0xae4d 0xae4e 0xae50 0xae54 0xae56 0xae5c 0xae5d 0xae5f 0xae60 0xae61 0xae65 0xae68 0xae69 0xae6c 0xae70 0xae78 ) ; 0x3221 ... 0x327e (block 17 0xae79 0xae7b 0xae7c 0xae7d 0xae84 0xae85 0xae8c 0xaebc 0xaebd 0xaebe 0xaec0 0xaec4 0xaecc 0xaecd 0xaecf 0xaed0 0xaed1 0xaed8 0xaed9 0xaedc 0xaee8 0xaeeb 0xaeed 0xaef4 0xaef8 0xaefc 0xaf07 0xaf08 0xaf0d 0xaf10 0xaf2c 0xaf2d 0xaf30 0xaf32 0xaf34 0xaf3c 0xaf3d 0xaf3f 0xaf41 0xaf42 0xaf43 0xaf48 0xaf49 0xaf50 0xaf5c 0xaf5d 0xaf64 0xaf65 0xaf79 0xaf80 0xaf84 0xaf88 0xaf90 0xaf91 0xaf95 0xaf9c 0xafb8 0xafb9 0xafbc 0xafc0 0xafc7 0xafc8 0xafc9 0xafcb 0xafcd 0xafce 0xafd4 0xafdc 0xafe8 0xafe9 0xaff0 0xaff1 0xaff4 0xaff8 0xb000 0xb001 0xb004 0xb00c 0xb010 0xb014 0xb01c 0xb01d 0xb028 0xb044 0xb045 0xb048 0xb04a 0xb04c 0xb04e 0xb053 0xb054 0xb055 0xb057 0xb059 ) ; 0x3321 ... 0x337e (block 18 0xb05d 0xb07c 0xb07d 0xb080 0xb084 0xb08c 0xb08d 0xb08f 0xb091 0xb098 0xb099 0xb09a 0xb09c 0xb09f 0xb0a0 0xb0a1 0xb0a2 0xb0a8 0xb0a9 0xb0ab 0xb0ac 0xb0ad 0xb0ae 0xb0af 0xb0b1 0xb0b3 0xb0b4 0xb0b5 0xb0b8 0xb0bc 0xb0c4 0xb0c5 0xb0c7 0xb0c8 0xb0c9 0xb0d0 0xb0d1 0xb0d4 0xb0d8 0xb0e0 0xb0e5 0xb108 0xb109 0xb10b 0xb10c 0xb110 0xb112 0xb113 0xb118 0xb119 0xb11b 0xb11c 0xb11d 0xb123 0xb124 0xb125 0xb128 0xb12c 0xb134 0xb135 0xb137 0xb138 0xb139 0xb140 0xb141 0xb144 0xb148 0xb150 0xb151 0xb154 0xb155 0xb158 0xb15c 0xb160 0xb178 0xb179 0xb17c 0xb180 0xb182 0xb188 0xb189 0xb18b 0xb18d 0xb192 0xb193 0xb194 0xb198 0xb19c 0xb1a8 0xb1cc 0xb1d0 0xb1d4 0xb1dc 0xb1dd ) ; 0x3421 ... 0x347e (block 19 0xb1df 0xb1e8 0xb1e9 0xb1ec 0xb1f0 0xb1f9 0xb1fb 0xb1fd 0xb204 0xb205 0xb208 0xb20b 0xb20c 0xb214 0xb215 0xb217 0xb219 0xb220 0xb234 0xb23c 0xb258 0xb25c 0xb260 0xb268 0xb269 0xb274 0xb275 0xb27c 0xb284 0xb285 0xb289 0xb290 0xb291 0xb294 0xb298 0xb299 0xb29a 0xb2a0 0xb2a1 0xb2a3 0xb2a5 0xb2a6 0xb2aa 0xb2ac 0xb2b0 0xb2b4 0xb2c8 0xb2c9 0xb2cc 0xb2d0 0xb2d2 0xb2d8 0xb2d9 0xb2db 0xb2dd 0xb2e2 0xb2e4 0xb2e5 0xb2e6 0xb2e8 0xb2eb 0xb2ec 0xb2ed 0xb2ee 0xb2ef 0xb2f3 0xb2f4 0xb2f5 0xb2f7 0xb2f8 0xb2f9 0xb2fa 0xb2fb 0xb2ff 0xb300 0xb301 0xb304 0xb308 0xb310 0xb311 0xb313 0xb314 0xb315 0xb31c 0xb354 0xb355 0xb356 0xb358 0xb35b 0xb35c 0xb35e 0xb35f 0xb364 0xb365 ) ; 0x3521 ... 0x357e (block 20 0xb367 0xb369 0xb36b 0xb36e 0xb370 0xb371 0xb374 0xb378 0xb380 0xb381 0xb383 0xb384 0xb385 0xb38c 0xb390 0xb394 0xb3a0 0xb3a1 0xb3a8 0xb3ac 0xb3c4 0xb3c5 0xb3c8 0xb3cb 0xb3cc 0xb3ce 0xb3d0 0xb3d4 0xb3d5 0xb3d7 0xb3d9 0xb3db 0xb3dd 0xb3e0 0xb3e4 0xb3e8 0xb3fc 0xb410 0xb418 0xb41c 0xb420 0xb428 0xb429 0xb42b 0xb434 0xb450 0xb451 0xb454 0xb458 0xb460 0xb461 0xb463 0xb465 0xb46c 0xb480 0xb488 0xb49d 0xb4a4 0xb4a8 0xb4ac 0xb4b5 0xb4b7 0xb4b9 0xb4c0 0xb4c4 0xb4c8 0xb4d0 0xb4d5 0xb4dc 0xb4dd 0xb4e0 0xb4e3 0xb4e4 0xb4e6 0xb4ec 0xb4ed 0xb4ef 0xb4f1 0xb4f8 0xb514 0xb515 0xb518 0xb51b 0xb51c 0xb524 0xb525 0xb527 0xb528 0xb529 0xb52a 0xb530 0xb531 0xb534 0xb538 ) ; 0x3621 ... 0x367e (block 21 0xb540 0xb541 0xb543 0xb544 0xb545 0xb54b 0xb54c 0xb54d 0xb550 0xb554 0xb55c 0xb55d 0xb55f 0xb560 0xb561 0xb5a0 0xb5a1 0xb5a4 0xb5a8 0xb5aa 0xb5ab 0xb5b0 0xb5b1 0xb5b3 0xb5b4 0xb5b5 0xb5bb 0xb5bc 0xb5bd 0xb5c0 0xb5c4 0xb5cc 0xb5cd 0xb5cf 0xb5d0 0xb5d1 0xb5d8 0xb5ec 0xb610 0xb611 0xb614 0xb618 0xb625 0xb62c 0xb634 0xb648 0xb664 0xb668 0xb69c 0xb69d 0xb6a0 0xb6a4 0xb6ab 0xb6ac 0xb6b1 0xb6d4 0xb6f0 0xb6f4 0xb6f8 0xb700 0xb701 0xb705 0xb728 0xb729 0xb72c 0xb72f 0xb730 0xb738 0xb739 0xb73b 0xb744 0xb748 0xb74c 0xb754 0xb755 0xb760 0xb764 0xb768 0xb770 0xb771 0xb773 0xb775 0xb77c 0xb77d 0xb780 0xb784 0xb78c 0xb78d 0xb78f 0xb790 0xb791 0xb792 0xb796 0xb797 ) ; 0x3721 ... 0x377e (block 22 0xb798 0xb799 0xb79c 0xb7a0 0xb7a8 0xb7a9 0xb7ab 0xb7ac 0xb7ad 0xb7b4 0xb7b5 0xb7b8 0xb7c7 0xb7c9 0xb7ec 0xb7ed 0xb7f0 0xb7f4 0xb7fc 0xb7fd 0xb7ff 0xb800 0xb801 0xb807 0xb808 0xb809 0xb80c 0xb810 0xb818 0xb819 0xb81b 0xb81d 0xb824 0xb825 0xb828 0xb82c 0xb834 0xb835 0xb837 0xb838 0xb839 0xb840 0xb844 0xb851 0xb853 0xb85c 0xb85d 0xb860 0xb864 0xb86c 0xb86d 0xb86f 0xb871 0xb878 0xb87c 0xb88d 0xb8a8 0xb8b0 0xb8b4 0xb8b8 0xb8c0 0xb8c1 0xb8c3 0xb8c5 0xb8cc 0xb8d0 0xb8d4 0xb8dd 0xb8df 0xb8e1 0xb8e8 0xb8e9 0xb8ec 0xb8f0 0xb8f8 0xb8f9 0xb8fb 0xb8fd 0xb904 0xb918 0xb920 0xb93c 0xb93d 0xb940 0xb944 0xb94c 0xb94f 0xb951 0xb958 0xb959 0xb95c 0xb960 0xb968 0xb969 ) ; 0x3821 ... 0x387e (block 23 0xb96b 0xb96d 0xb974 0xb975 0xb978 0xb97c 0xb984 0xb985 0xb987 0xb989 0xb98a 0xb98d 0xb98e 0xb9ac 0xb9ad 0xb9b0 0xb9b4 0xb9bc 0xb9bd 0xb9bf 0xb9c1 0xb9c8 0xb9c9 0xb9cc 0xb9ce 0xb9cf 0xb9d0 0xb9d1 0xb9d2 0xb9d8 0xb9d9 0xb9db 0xb9dd 0xb9de 0xb9e1 0xb9e3 0xb9e4 0xb9e5 0xb9e8 0xb9ec 0xb9f4 0xb9f5 0xb9f7 0xb9f8 0xb9f9 0xb9fa 0xba00 0xba01 0xba08 0xba15 0xba38 0xba39 0xba3c 0xba40 0xba42 0xba48 0xba49 0xba4b 0xba4d 0xba4e 0xba53 0xba54 0xba55 0xba58 0xba5c 0xba64 0xba65 0xba67 0xba68 0xba69 0xba70 0xba71 0xba74 0xba78 0xba83 0xba84 0xba85 0xba87 0xba8c 0xbaa8 0xbaa9 0xbaab 0xbaac 0xbab0 0xbab2 0xbab8 0xbab9 0xbabb 0xbabd 0xbac4 0xbac8 0xbad8 0xbad9 0xbafc ) ; 0x3921 ... 0x397e (block 24 0xbb00 0xbb04 0xbb0d 0xbb0f 0xbb11 0xbb18 0xbb1c 0xbb20 0xbb29 0xbb2b 0xbb34 0xbb35 0xbb36 0xbb38 0xbb3b 0xbb3c 0xbb3d 0xbb3e 0xbb44 0xbb45 0xbb47 0xbb49 0xbb4d 0xbb4f 0xbb50 0xbb54 0xbb58 0xbb61 0xbb63 0xbb6c 0xbb88 0xbb8c 0xbb90 0xbba4 0xbba8 0xbbac 0xbbb4 0xbbb7 0xbbc0 0xbbc4 0xbbc8 0xbbd0 0xbbd3 0xbbf8 0xbbf9 0xbbfc 0xbbff 0xbc00 0xbc02 0xbc08 0xbc09 0xbc0b 0xbc0c 0xbc0d 0xbc0f 0xbc11 0xbc14 0xbc15 0xbc16 0xbc17 0xbc18 0xbc1b 0xbc1c 0xbc1d 0xbc1e 0xbc1f 0xbc24 0xbc25 0xbc27 0xbc29 0xbc2d 0xbc30 0xbc31 0xbc34 0xbc38 0xbc40 0xbc41 0xbc43 0xbc44 0xbc45 0xbc49 0xbc4c 0xbc4d 0xbc50 0xbc5d 0xbc84 0xbc85 0xbc88 0xbc8b 0xbc8c 0xbc8e 0xbc94 0xbc95 0xbc97 ) ; 0x3a21 ... 0x3a7e (block 25 0xbc99 0xbc9a 0xbca0 0xbca1 0xbca4 0xbca7 0xbca8 0xbcb0 0xbcb1 0xbcb3 0xbcb4 0xbcb5 0xbcbc 0xbcbd 0xbcc0 0xbcc4 0xbccd 0xbccf 0xbcd0 0xbcd1 0xbcd5 0xbcd8 0xbcdc 0xbcf4 0xbcf5 0xbcf6 0xbcf8 0xbcfc 0xbd04 0xbd05 0xbd07 0xbd09 0xbd10 0xbd14 0xbd24 0xbd2c 0xbd40 0xbd48 0xbd49 0xbd4c 0xbd50 0xbd58 0xbd59 0xbd64 0xbd68 0xbd80 0xbd81 0xbd84 0xbd87 0xbd88 0xbd89 0xbd8a 0xbd90 0xbd91 0xbd93 0xbd95 0xbd99 0xbd9a 0xbd9c 0xbda4 0xbdb0 0xbdb8 0xbdd4 0xbdd5 0xbdd8 0xbddc 0xbde9 0xbdf0 0xbdf4 0xbdf8 0xbe00 0xbe03 0xbe05 0xbe0c 0xbe0d 0xbe10 0xbe14 0xbe1c 0xbe1d 0xbe1f 0xbe44 0xbe45 0xbe48 0xbe4c 0xbe4e 0xbe54 0xbe55 0xbe57 0xbe59 0xbe5a 0xbe5b 0xbe60 0xbe61 0xbe64 ) ; 0x3b21 ... 0x3b7e (block 26 0xbe68 0xbe6a 0xbe70 0xbe71 0xbe73 0xbe74 0xbe75 0xbe7b 0xbe7c 0xbe7d 0xbe80 0xbe84 0xbe8c 0xbe8d 0xbe8f 0xbe90 0xbe91 0xbe98 0xbe99 0xbea8 0xbed0 0xbed1 0xbed4 0xbed7 0xbed8 0xbee0 0xbee3 0xbee4 0xbee5 0xbeec 0xbf01 0xbf08 0xbf09 0xbf18 0xbf19 0xbf1b 0xbf1c 0xbf1d 0xbf40 0xbf41 0xbf44 0xbf48 0xbf50 0xbf51 0xbf55 0xbf94 0xbfb0 0xbfc5 0xbfcc 0xbfcd 0xbfd0 0xbfd4 0xbfdc 0xbfdf 0xbfe1 0xc03c 0xc051 0xc058 0xc05c 0xc060 0xc068 0xc069 0xc090 0xc091 0xc094 0xc098 0xc0a0 0xc0a1 0xc0a3 0xc0a5 0xc0ac 0xc0ad 0xc0af 0xc0b0 0xc0b3 0xc0b4 0xc0b5 0xc0b6 0xc0bc 0xc0bd 0xc0bf 0xc0c0 0xc0c1 0xc0c5 0xc0c8 0xc0c9 0xc0cc 0xc0d0 0xc0d8 0xc0d9 0xc0db 0xc0dc 0xc0dd 0xc0e4 ) ; 0x3c21 ... 0x3c7e (block 27 0xc0e5 0xc0e8 0xc0ec 0xc0f4 0xc0f5 0xc0f7 0xc0f9 0xc100 0xc104 0xc108 0xc110 0xc115 0xc11c 0xc11d 0xc11e 0xc11f 0xc120 0xc123 0xc124 0xc126 0xc127 0xc12c 0xc12d 0xc12f 0xc130 0xc131 0xc136 0xc138 0xc139 0xc13c 0xc140 0xc148 0xc149 0xc14b 0xc14c 0xc14d 0xc154 0xc155 0xc158 0xc15c 0xc164 0xc165 0xc167 0xc168 0xc169 0xc170 0xc174 0xc178 0xc185 0xc18c 0xc18d 0xc18e 0xc190 0xc194 0xc196 0xc19c 0xc19d 0xc19f 0xc1a1 0xc1a5 0xc1a8 0xc1a9 0xc1ac 0xc1b0 0xc1bd 0xc1c4 0xc1c8 0xc1cc 0xc1d4 0xc1d7 0xc1d8 0xc1e0 0xc1e4 0xc1e8 0xc1f0 0xc1f1 0xc1f3 0xc1fc 0xc1fd 0xc200 0xc204 0xc20c 0xc20d 0xc20f 0xc211 0xc218 0xc219 0xc21c 0xc21f 0xc220 0xc228 0xc229 0xc22b 0xc22d ) ; 0x3d21 ... 0x3d7e (block 28 0xc22f 0xc231 0xc232 0xc234 0xc248 0xc250 0xc251 0xc254 0xc258 0xc260 0xc265 0xc26c 0xc26d 0xc270 0xc274 0xc27c 0xc27d 0xc27f 0xc281 0xc288 0xc289 0xc290 0xc298 0xc29b 0xc29d 0xc2a4 0xc2a5 0xc2a8 0xc2ac 0xc2ad 0xc2b4 0xc2b5 0xc2b7 0xc2b9 0xc2dc 0xc2dd 0xc2e0 0xc2e3 0xc2e4 0xc2eb 0xc2ec 0xc2ed 0xc2ef 0xc2f1 0xc2f6 0xc2f8 0xc2f9 0xc2fb 0xc2fc 0xc300 0xc308 0xc309 0xc30c 0xc30d 0xc313 0xc314 0xc315 0xc318 0xc31c 0xc324 0xc325 0xc328 0xc329 0xc345 0xc368 0xc369 0xc36c 0xc370 0xc372 0xc378 0xc379 0xc37c 0xc37d 0xc384 0xc388 0xc38c 0xc3c0 0xc3d8 0xc3d9 0xc3dc 0xc3df 0xc3e0 0xc3e2 0xc3e8 0xc3e9 0xc3ed 0xc3f4 0xc3f5 0xc3f8 0xc408 0xc410 0xc424 0xc42c 0xc430 ) ; 0x3e21 ... 0x3e7e (block 29 0xc434 0xc43c 0xc43d 0xc448 0xc464 0xc465 0xc468 0xc46c 0xc474 0xc475 0xc479 0xc480 0xc494 0xc49c 0xc4b8 0xc4bc 0xc4e9 0xc4f0 0xc4f1 0xc4f4 0xc4f8 0xc4fa 0xc4ff 0xc500 0xc501 0xc50c 0xc510 0xc514 0xc51c 0xc528 0xc529 0xc52c 0xc530 0xc538 0xc539 0xc53b 0xc53d 0xc544 0xc545 0xc548 0xc549 0xc54a 0xc54c 0xc54d 0xc54e 0xc553 0xc554 0xc555 0xc557 0xc558 0xc559 0xc55d 0xc55e 0xc560 0xc561 0xc564 0xc568 0xc570 0xc571 0xc573 0xc574 0xc575 0xc57c 0xc57d 0xc580 0xc584 0xc587 0xc58c 0xc58d 0xc58f 0xc591 0xc595 0xc597 0xc598 0xc59c 0xc5a0 0xc5a9 0xc5b4 0xc5b5 0xc5b8 0xc5b9 0xc5bb 0xc5bc 0xc5bd 0xc5be 0xc5c4 0xc5c5 0xc5c6 0xc5c7 0xc5c8 0xc5c9 0xc5ca 0xc5cc 0xc5ce ) ; 0x3f21 ... 0x3f7e (block 30 0xc5d0 0xc5d1 0xc5d4 0xc5d8 0xc5e0 0xc5e1 0xc5e3 0xc5e5 0xc5ec 0xc5ed 0xc5ee 0xc5f0 0xc5f4 0xc5f6 0xc5f7 0xc5fc 0xc5fd 0xc5fe 0xc5ff 0xc600 0xc601 0xc605 0xc606 0xc607 0xc608 0xc60c 0xc610 0xc618 0xc619 0xc61b 0xc61c 0xc624 0xc625 0xc628 0xc62c 0xc62d 0xc62e 0xc630 0xc633 0xc634 0xc635 0xc637 0xc639 0xc63b 0xc640 0xc641 0xc644 0xc648 0xc650 0xc651 0xc653 0xc654 0xc655 0xc65c 0xc65d 0xc660 0xc66c 0xc66f 0xc671 0xc678 0xc679 0xc67c 0xc680 0xc688 0xc689 0xc68b 0xc68d 0xc694 0xc695 0xc698 0xc69c 0xc6a4 0xc6a5 0xc6a7 0xc6a9 0xc6b0 0xc6b1 0xc6b4 0xc6b8 0xc6b9 0xc6ba 0xc6c0 0xc6c1 0xc6c3 0xc6c5 0xc6cc 0xc6cd 0xc6d0 0xc6d4 0xc6dc 0xc6dd 0xc6e0 0xc6e1 0xc6e8 ) ; 0x4021 ... 0x407e (block 31 0xc6e9 0xc6ec 0xc6f0 0xc6f8 0xc6f9 0xc6fd 0xc704 0xc705 0xc708 0xc70c 0xc714 0xc715 0xc717 0xc719 0xc720 0xc721 0xc724 0xc728 0xc730 0xc731 0xc733 0xc735 0xc737 0xc73c 0xc73d 0xc740 0xc744 0xc74a 0xc74c 0xc74d 0xc74f 0xc751 0xc752 0xc753 0xc754 0xc755 0xc756 0xc757 0xc758 0xc75c 0xc760 0xc768 0xc76b 0xc774 0xc775 0xc778 0xc77c 0xc77d 0xc77e 0xc783 0xc784 0xc785 0xc787 0xc788 0xc789 0xc78a 0xc78e 0xc790 0xc791 0xc794 0xc796 0xc797 0xc798 0xc79a 0xc7a0 0xc7a1 0xc7a3 0xc7a4 0xc7a5 0xc7a6 0xc7ac 0xc7ad 0xc7b0 0xc7b4 0xc7bc 0xc7bd 0xc7bf 0xc7c0 0xc7c1 0xc7c8 0xc7c9 0xc7cc 0xc7ce 0xc7d0 0xc7d8 0xc7dd 0xc7e4 0xc7e8 0xc7ec 0xc800 0xc801 0xc804 0xc808 0xc80a ) ; 0x4121 ... 0x417e (block 32 0xc810 0xc811 0xc813 0xc815 0xc816 0xc81c 0xc81d 0xc820 0xc824 0xc82c 0xc82d 0xc82f 0xc831 0xc838 0xc83c 0xc840 0xc848 0xc849 0xc84c 0xc84d 0xc854 0xc870 0xc871 0xc874 0xc878 0xc87a 0xc880 0xc881 0xc883 0xc885 0xc886 0xc887 0xc88b 0xc88c 0xc88d 0xc894 0xc89d 0xc89f 0xc8a1 0xc8a8 0xc8bc 0xc8bd 0xc8c4 0xc8c8 0xc8cc 0xc8d4 0xc8d5 0xc8d7 0xc8d9 0xc8e0 0xc8e1 0xc8e4 0xc8f5 0xc8fc 0xc8fd 0xc900 0xc904 0xc905 0xc906 0xc90c 0xc90d 0xc90f 0xc911 0xc918 0xc92c 0xc934 0xc950 0xc951 0xc954 0xc958 0xc960 0xc961 0xc963 0xc96c 0xc970 0xc974 0xc97c 0xc988 0xc989 0xc98c 0xc990 0xc998 0xc999 0xc99b 0xc99d 0xc9c0 0xc9c1 0xc9c4 0xc9c7 0xc9c8 0xc9ca 0xc9d0 0xc9d1 0xc9d3 ) ; 0x4221 ... 0x427e (block 33 0xc9d5 0xc9d6 0xc9d9 0xc9da 0xc9dc 0xc9dd 0xc9e0 0xc9e2 0xc9e4 0xc9e7 0xc9ec 0xc9ed 0xc9ef 0xc9f0 0xc9f1 0xc9f8 0xc9f9 0xc9fc 0xca00 0xca08 0xca09 0xca0b 0xca0c 0xca0d 0xca14 0xca18 0xca29 0xca4c 0xca4d 0xca50 0xca54 0xca5c 0xca5d 0xca5f 0xca60 0xca61 0xca68 0xca7d 0xca84 0xca98 0xcabc 0xcabd 0xcac0 0xcac4 0xcacc 0xcacd 0xcacf 0xcad1 0xcad3 0xcad8 0xcad9 0xcae0 0xcaec 0xcaf4 0xcb08 0xcb10 0xcb14 0xcb18 0xcb20 0xcb21 0xcb41 0xcb48 0xcb49 0xcb4c 0xcb50 0xcb58 0xcb59 0xcb5d 0xcb64 0xcb78 0xcb79 0xcb9c 0xcbb8 0xcbd4 0xcbe4 0xcbe7 0xcbe9 0xcc0c 0xcc0d 0xcc10 0xcc14 0xcc1c 0xcc1d 0xcc21 0xcc22 0xcc27 0xcc28 0xcc29 0xcc2c 0xcc2e 0xcc30 0xcc38 0xcc39 0xcc3b ) ; 0x4321 ... 0x437e (block 34 0xcc3c 0xcc3d 0xcc3e 0xcc44 0xcc45 0xcc48 0xcc4c 0xcc54 0xcc55 0xcc57 0xcc58 0xcc59 0xcc60 0xcc64 0xcc66 0xcc68 0xcc70 0xcc75 0xcc98 0xcc99 0xcc9c 0xcca0 0xcca8 0xcca9 0xccab 0xccac 0xccad 0xccb4 0xccb5 0xccb8 0xccbc 0xccc4 0xccc5 0xccc7 0xccc9 0xccd0 0xccd4 0xcce4 0xccec 0xccf0 0xcd01 0xcd08 0xcd09 0xcd0c 0xcd10 0xcd18 0xcd19 0xcd1b 0xcd1d 0xcd24 0xcd28 0xcd2c 0xcd39 0xcd5c 0xcd60 0xcd64 0xcd6c 0xcd6d 0xcd6f 0xcd71 0xcd78 0xcd88 0xcd94 0xcd95 0xcd98 0xcd9c 0xcda4 0xcda5 0xcda7 0xcda9 0xcdb0 0xcdc4 0xcdcc 0xcdd0 0xcde8 0xcdec 0xcdf0 0xcdf8 0xcdf9 0xcdfb 0xcdfd 0xce04 0xce08 0xce0c 0xce14 0xce19 0xce20 0xce21 0xce24 0xce28 0xce30 0xce31 0xce33 0xce35 ) ; 0x4421 ... 0x447e (block 35 0xce58 0xce59 0xce5c 0xce5f 0xce60 0xce61 0xce68 0xce69 0xce6b 0xce6d 0xce74 0xce75 0xce78 0xce7c 0xce84 0xce85 0xce87 0xce89 0xce90 0xce91 0xce94 0xce98 0xcea0 0xcea1 0xcea3 0xcea4 0xcea5 0xceac 0xcead 0xcec1 0xcee4 0xcee5 0xcee8 0xceeb 0xceec 0xcef4 0xcef5 0xcef7 0xcef8 0xcef9 0xcf00 0xcf01 0xcf04 0xcf08 0xcf10 0xcf11 0xcf13 0xcf15 0xcf1c 0xcf20 0xcf24 0xcf2c 0xcf2d 0xcf2f 0xcf30 0xcf31 0xcf38 0xcf54 0xcf55 0xcf58 0xcf5c 0xcf64 0xcf65 0xcf67 0xcf69 0xcf70 0xcf71 0xcf74 0xcf78 0xcf80 0xcf85 0xcf8c 0xcfa1 0xcfa8 0xcfb0 0xcfc4 0xcfe0 0xcfe1 0xcfe4 0xcfe8 0xcff0 0xcff1 0xcff3 0xcff5 0xcffc 0xd000 0xd004 0xd011 0xd018 0xd02d 0xd034 0xd035 0xd038 0xd03c ) ; 0x4521 ... 0x457e (block 36 0xd044 0xd045 0xd047 0xd049 0xd050 0xd054 0xd058 0xd060 0xd06c 0xd06d 0xd070 0xd074 0xd07c 0xd07d 0xd081 0xd0a4 0xd0a5 0xd0a8 0xd0ac 0xd0b4 0xd0b5 0xd0b7 0xd0b9 0xd0c0 0xd0c1 0xd0c4 0xd0c8 0xd0c9 0xd0d0 0xd0d1 0xd0d3 0xd0d4 0xd0d5 0xd0dc 0xd0dd 0xd0e0 0xd0e4 0xd0ec 0xd0ed 0xd0ef 0xd0f0 0xd0f1 0xd0f8 0xd10d 0xd130 0xd131 0xd134 0xd138 0xd13a 0xd140 0xd141 0xd143 0xd144 0xd145 0xd14c 0xd14d 0xd150 0xd154 0xd15c 0xd15d 0xd15f 0xd161 0xd168 0xd16c 0xd17c 0xd184 0xd188 0xd1a0 0xd1a1 0xd1a4 0xd1a8 0xd1b0 0xd1b1 0xd1b3 0xd1b5 0xd1ba 0xd1bc 0xd1c0 0xd1d8 0xd1f4 0xd1f8 0xd207 0xd209 0xd210 0xd22c 0xd22d 0xd230 0xd234 0xd23c 0xd23d 0xd23f 0xd241 0xd248 0xd25c ) ; 0x4621 ... 0x467e (block 37 0xd264 0xd280 0xd281 0xd284 0xd288 0xd290 0xd291 0xd295 0xd29c 0xd2a0 0xd2a4 0xd2ac 0xd2b1 0xd2b8 0xd2b9 0xd2bc 0xd2bf 0xd2c0 0xd2c2 0xd2c8 0xd2c9 0xd2cb 0xd2d4 0xd2d8 0xd2dc 0xd2e4 0xd2e5 0xd2f0 0xd2f1 0xd2f4 0xd2f8 0xd300 0xd301 0xd303 0xd305 0xd30c 0xd30d 0xd30e 0xd310 0xd314 0xd316 0xd31c 0xd31d 0xd31f 0xd320 0xd321 0xd325 0xd328 0xd329 0xd32c 0xd330 0xd338 0xd339 0xd33b 0xd33c 0xd33d 0xd344 0xd345 0xd37c 0xd37d 0xd380 0xd384 0xd38c 0xd38d 0xd38f 0xd390 0xd391 0xd398 0xd399 0xd39c 0xd3a0 0xd3a8 0xd3a9 0xd3ab 0xd3ad 0xd3b4 0xd3b8 0xd3bc 0xd3c4 0xd3c5 0xd3c8 0xd3c9 0xd3d0 0xd3d8 0xd3e1 0xd3e3 0xd3ec 0xd3ed 0xd3f0 0xd3f4 0xd3fc 0xd3fd 0xd3ff 0xd401 ) ; 0x4721 ... 0x477e (block 38 0xd408 0xd41d 0xd440 0xd444 0xd45c 0xd460 0xd464 0xd46d 0xd46f 0xd478 0xd479 0xd47c 0xd47f 0xd480 0xd482 0xd488 0xd489 0xd48b 0xd48d 0xd494 0xd4a9 0xd4cc 0xd4d0 0xd4d4 0xd4dc 0xd4df 0xd4e8 0xd4ec 0xd4f0 0xd4f8 0xd4fb 0xd4fd 0xd504 0xd508 0xd50c 0xd514 0xd515 0xd517 0xd53c 0xd53d 0xd540 0xd544 0xd54c 0xd54d 0xd54f 0xd551 0xd558 0xd559 0xd55c 0xd560 0xd565 0xd568 0xd569 0xd56b 0xd56d 0xd574 0xd575 0xd578 0xd57c 0xd584 0xd585 0xd587 0xd588 0xd589 0xd590 0xd5a5 0xd5c8 0xd5c9 0xd5cc 0xd5d0 0xd5d2 0xd5d8 0xd5d9 0xd5db 0xd5dd 0xd5e4 0xd5e5 0xd5e8 0xd5ec 0xd5f4 0xd5f5 0xd5f7 0xd5f9 0xd600 0xd601 0xd604 0xd608 0xd610 0xd611 0xd613 0xd614 0xd615 0xd61c 0xd620 ) ; 0x4821 ... 0x487e (block 39 0xd624 0xd62d 0xd638 0xd639 0xd63c 0xd640 0xd645 0xd648 0xd649 0xd64b 0xd64d 0xd651 0xd654 0xd655 0xd658 0xd65c 0xd667 0xd669 0xd670 0xd671 0xd674 0xd683 0xd685 0xd68c 0xd68d 0xd690 0xd694 0xd69d 0xd69f 0xd6a1 0xd6a8 0xd6ac 0xd6b0 0xd6b9 0xd6bb 0xd6c4 0xd6c5 0xd6c8 0xd6cc 0xd6d1 0xd6d4 0xd6d7 0xd6d9 0xd6e0 0xd6e4 0xd6e8 0xd6f0 0xd6f5 0xd6fc 0xd6fd 0xd700 0xd704 0xd711 0xd718 0xd719 0xd71c 0xd720 0xd728 0xd729 0xd72b 0xd72d 0xd734 0xd735 0xd738 0xd73c 0xd744 0xd747 0xd749 0xd750 0xd751 0xd754 0xd756 0xd757 0xd758 0xd759 0xd760 0xd761 0xd763 0xd765 0xd769 0xd76c 0xd770 0xd774 0xd77c 0xd77d 0xd781 0xd788 0xd789 0xd78c 0xd790 0xd798 0xd799 0xd79b 0xd79d ) ; 0x4921 ... 0x497e (block 40 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x4a21 ... 0x4a7e (block 41 0x4f3d 0x4f73 0x5047 0x50f9 0x52a0 0x53ef 0x5475 0x54e5 0x5609 0x5ac1 0x5bb6 0x6687 0x67b6 0x67b7 0x67ef 0x6b4c 0x73c2 0x75c2 0x7a3c 0x82db 0x8304 0x8857 0x8888 0x8a36 0x8cc8 0x8dcf 0x8efb 0x8fe6 0x99d5 0x523b 0x5374 0x5404 0x606a 0x6164 0x6bbc 0x73cf 0x811a 0x89ba 0x89d2 0x95a3 0x4f83 0x520a 0x58be 0x5978 0x59e6 0x5e72 0x5e79 0x61c7 0x63c0 0x6746 0x67ec 0x687f 0x6f97 0x764e 0x770b 0x78f5 0x7a08 0x7aff 0x7c21 0x809d 0x826e 0x8271 0x8aeb 0x9593 0x4e6b 0x559d 0x66f7 0x6e34 0x78a3 0x7aed 0x845b 0x8910 0x874e 0x97a8 0x52d8 0x574e 0x582a 0x5d4c 0x611f 0x61be 0x6221 0x6562 0x67d1 0x6a44 0x6e1b 0x7518 0x75b3 0x76e3 0x77b0 0x7d3a 0x90af 0x9451 0x9452 0x9f95 ) ; 0x4b21 ... 0x4b7e (block 42 0x5323 0x5cac 0x7532 0x80db 0x9240 0x9598 0x525b 0x5808 0x59dc 0x5ca1 0x5d17 0x5eb7 0x5f3a 0x5f4a 0x6177 0x6c5f 0x757a 0x7586 0x7ce0 0x7d73 0x7db1 0x7f8c 0x8154 0x8221 0x8591 0x8941 0x8b1b 0x92fc 0x964d 0x9c47 0x4ecb 0x4ef7 0x500b 0x51f1 0x584f 0x6137 0x613e 0x6168 0x6539 0x69ea 0x6f11 0x75a5 0x7686 0x76d6 0x7b87 0x82a5 0x84cb 0xf900 0x93a7 0x958b 0x5580 0x5ba2 0x5751 0xf901 0x7cb3 0x7fb9 0x91b5 0x5028 0x53bb 0x5c45 0x5de8 0x62d2 0x636e 0x64da 0x64e7 0x6e20 0x70ac 0x795b 0x8ddd 0x8e1e 0xf902 0x907d 0x9245 0x92f8 0x4e7e 0x4ef6 0x5065 0x5dfe 0x5efa 0x6106 0x6957 0x8171 0x8654 0x8e47 0x9375 0x9a2b 0x4e5e 0x5091 0x6770 0x6840 0x5109 0x528d 0x5292 0x6aa2 ) ; 0x4c21 ... 0x4c7e (block 43 0x77bc 0x9210 0x9ed4 0x52ab 0x602f 0x8ff2 0x5048 0x61a9 0x63ed 0x64ca 0x683c 0x6a84 0x6fc0 0x8188 0x89a1 0x9694 0x5805 0x727d 0x72ac 0x7504 0x7d79 0x7e6d 0x80a9 0x898b 0x8b74 0x9063 0x9d51 0x6289 0x6c7a 0x6f54 0x7d50 0x7f3a 0x8a23 0x517c 0x614a 0x7b9d 0x8b19 0x9257 0x938c 0x4eac 0x4fd3 0x501e 0x50be 0x5106 0x52c1 0x52cd 0x537f 0x5770 0x5883 0x5e9a 0x5f91 0x6176 0x61ac 0x64ce 0x656c 0x666f 0x66bb 0x66f4 0x6897 0x6d87 0x7085 0x70f1 0x749f 0x74a5 0x74ca 0x75d9 0x786c 0x78ec 0x7adf 0x7af6 0x7d45 0x7d93 0x8015 0x803f 0x811b 0x8396 0x8b66 0x8f15 0x9015 0x93e1 0x9803 0x9838 0x9a5a 0x9be8 0x4fc2 0x5553 0x583a 0x5951 0x5b63 0x5c46 0x60b8 0x6212 0x6842 0x68b0 ) ; 0x4d21 ... 0x4d7e (block 44 0x68e8 0x6eaa 0x754c 0x7678 0x78ce 0x7a3d 0x7cfb 0x7e6b 0x7e7c 0x8a08 0x8aa1 0x8c3f 0x968e 0x9dc4 0x53e4 0x53e9 0x544a 0x5471 0x56fa 0x59d1 0x5b64 0x5c3b 0x5eab 0x62f7 0x6537 0x6545 0x6572 0x66a0 0x67af 0x69c1 0x6cbd 0x75fc 0x7690 0x777e 0x7a3f 0x7f94 0x8003 0x80a1 0x818f 0x82e6 0x82fd 0x83f0 0x85c1 0x8831 0x88b4 0x8aa5 0xf903 0x8f9c 0x932e 0x96c7 0x9867 0x9ad8 0x9f13 0x54ed 0x659b 0x66f2 0x688f 0x7a40 0x8c37 0x9d60 0x56f0 0x5764 0x5d11 0x6606 0x68b1 0x68cd 0x6efe 0x7428 0x889e 0x9be4 0x6c68 0xf904 0x9aa8 0x4f9b 0x516c 0x5171 0x529f 0x5b54 0x5de5 0x6050 0x606d 0x62f1 0x63a7 0x653b 0x73d9 0x7a7a 0x86a3 0x8ca2 0x978f 0x4e32 0x5be1 0x6208 0x679c 0x74dc ) ; 0x4e21 ... 0x4e7e (block 45 0x79d1 0x83d3 0x8a87 0x8ab2 0x8de8 0x904e 0x934b 0x9846 0x5ed3 0x69e8 0x85ff 0x90ed 0xf905 0x51a0 0x5b98 0x5bec 0x6163 0x68fa 0x6b3e 0x704c 0x742f 0x74d8 0x7ba1 0x7f50 0x83c5 0x89c0 0x8cab 0x95dc 0x9928 0x522e 0x605d 0x62ec 0x9002 0x4f8a 0x5149 0x5321 0x58d9 0x5ee3 0x66e0 0x6d38 0x709a 0x72c2 0x73d6 0x7b50 0x80f1 0x945b 0x5366 0x639b 0x7f6b 0x4e56 0x5080 0x584a 0x58de 0x602a 0x6127 0x62d0 0x69d0 0x9b41 0x5b8f 0x7d18 0x80b1 0x8f5f 0x4ea4 0x50d1 0x54ac 0x55ac 0x5b0c 0x5da0 0x5de7 0x652a 0x654e 0x6821 0x6a4b 0x72e1 0x768e 0x77ef 0x7d5e 0x7ff9 0x81a0 0x854e 0x86df 0x8f03 0x8f4e 0x90ca 0x9903 0x9a55 0x9bab 0x4e18 0x4e45 0x4e5d 0x4ec7 0x4ff1 0x5177 0x52fe ) ; 0x4f21 ... 0x4f7e (block 46 0x5340 0x53e3 0x53e5 0x548e 0x5614 0x5775 0x57a2 0x5bc7 0x5d87 0x5ed0 0x61fc 0x62d8 0x6551 0x67b8 0x67e9 0x69cb 0x6b50 0x6bc6 0x6bec 0x6c42 0x6e9d 0x7078 0x72d7 0x7396 0x7403 0x77bf 0x77e9 0x7a76 0x7d7f 0x8009 0x81fc 0x8205 0x820a 0x82df 0x8862 0x8b33 0x8cfc 0x8ec0 0x9011 0x90b1 0x9264 0x92b6 0x99d2 0x9a45 0x9ce9 0x9dd7 0x9f9c 0x570b 0x5c40 0x83ca 0x97a0 0x97ab 0x9eb4 0x541b 0x7a98 0x7fa4 0x88d9 0x8ecd 0x90e1 0x5800 0x5c48 0x6398 0x7a9f 0x5bae 0x5f13 0x7a79 0x7aae 0x828e 0x8eac 0x5026 0x5238 0x52f8 0x5377 0x5708 0x62f3 0x6372 0x6b0a 0x6dc3 0x7737 0x53a5 0x7357 0x8568 0x8e76 0x95d5 0x673a 0x6ac3 0x6f70 0x8a6d 0x8ecc 0x994b 0xf906 0x6677 0x6b78 0x8cb4 ) ; 0x5021 ... 0x507e (block 47 0x9b3c 0xf907 0x53eb 0x572d 0x594e 0x63c6 0x69fb 0x73ea 0x7845 0x7aba 0x7ac5 0x7cfe 0x8475 0x898f 0x8d73 0x9035 0x95a8 0x52fb 0x5747 0x7547 0x7b60 0x83cc 0x921e 0xf908 0x6a58 0x514b 0x524b 0x5287 0x621f 0x68d8 0x6975 0x9699 0x50c5 0x52a4 0x52e4 0x61c3 0x65a4 0x6839 0x69ff 0x747e 0x7b4b 0x82b9 0x83eb 0x89b2 0x8b39 0x8fd1 0x9949 0xf909 0x4eca 0x5997 0x64d2 0x6611 0x6a8e 0x7434 0x7981 0x79bd 0x82a9 0x887e 0x887f 0x895f 0xf90a 0x9326 0x4f0b 0x53ca 0x6025 0x6271 0x6c72 0x7d1a 0x7d66 0x4e98 0x5162 0x77dc 0x80af 0x4f01 0x4f0e 0x5176 0x5180 0x55dc 0x5668 0x573b 0x57fa 0x57fc 0x5914 0x5947 0x5993 0x5bc4 0x5c90 0x5d0e 0x5df1 0x5e7e 0x5fcc 0x6280 0x65d7 0x65e3 ) ; 0x5121 ... 0x517e (block 48 0x671e 0x671f 0x675e 0x68cb 0x68c4 0x6a5f 0x6b3a 0x6c23 0x6c7d 0x6c82 0x6dc7 0x7398 0x7426 0x742a 0x7482 0x74a3 0x7578 0x757f 0x7881 0x78ef 0x7941 0x7947 0x7948 0x797a 0x7b95 0x7d00 0x7dba 0x7f88 0x8006 0x802d 0x808c 0x8a18 0x8b4f 0x8c48 0x8d77 0x9321 0x9324 0x98e2 0x9951 0x9a0e 0x9a0f 0x9a65 0x9e92 0x7dca 0x4f76 0x5409 0x62ee 0x6854 0x91d1 0x55ab 0x513a 0xf90b 0xf90c 0x5a1c 0x61e6 0xf90d 0x62cf 0x62ff 0xf90e 0xf90f 0xf910 0xf911 0xf912 0xf913 0x90a3 0xf914 0xf915 0xf916 0xf917 0xf918 0x8afe 0xf919 0xf91a 0xf91b 0xf91c 0x6696 0xf91d 0x7156 0xf91e 0xf91f 0x96e3 0xf920 0x634f 0x637a 0x5357 0xf921 0x678f 0x6960 0x6e73 0xf922 0x7537 0xf923 0xf924 0xf925 ) ; 0x5221 ... 0x527e (block 49 0x7d0d 0xf926 0xf927 0x8872 0x56ca 0x5a18 0xf928 0xf929 0xf92a 0xf92b 0xf92c 0x4e43 0xf92d 0x5167 0x5948 0x67f0 0x8010 0xf92e 0x5973 0x5e74 0x649a 0x79ca 0x5ff5 0x606c 0x62c8 0x637b 0x5be7 0x5bd7 0x52aa 0xf92f 0x5974 0x5f29 0x6012 0xf930 0xf931 0xf932 0x7459 0xf933 0xf934 0xf935 0xf936 0xf937 0xf938 0x99d1 0xf939 0xf93a 0xf93b 0xf93c 0xf93d 0xf93e 0xf93f 0xf940 0xf941 0xf942 0xf943 0x6fc3 0xf944 0xf945 0x81bf 0x8fb2 0x60f1 0xf946 0xf947 0x8166 0xf948 0xf949 0x5c3f 0xf94a 0xf94b 0xf94c 0xf94d 0xf94e 0xf94f 0xf950 0xf951 0x5ae9 0x8a25 0x677b 0x7d10 0xf952 0xf953 0xf954 0xf955 0xf956 0xf957 0x80fd 0xf958 0xf959 0x5c3c 0x6ce5 0x533f 0x6eba 0x591a 0x8336 ) ; 0x5321 ... 0x537e (block 50 0x4e39 0x4eb6 0x4f46 0x55ae 0x5718 0x58c7 0x5f56 0x65b7 0x65e6 0x6a80 0x6bb5 0x6e4d 0x77ed 0x7aef 0x7c1e 0x7dde 0x86cb 0x8892 0x9132 0x935b 0x64bb 0x6fbe 0x737a 0x75b8 0x9054 0x5556 0x574d 0x61ba 0x64d4 0x66c7 0x6de1 0x6e5b 0x6f6d 0x6fb9 0x75f0 0x8043 0x81bd 0x8541 0x8983 0x8ac7 0x8b5a 0x931f 0x6c93 0x7553 0x7b54 0x8e0f 0x905d 0x5510 0x5802 0x5858 0x5e62 0x6207 0x649e 0x68e0 0x7576 0x7cd6 0x87b3 0x9ee8 0x4ee3 0x5788 0x576e 0x5927 0x5c0d 0x5cb1 0x5e36 0x5f85 0x6234 0x64e1 0x73b3 0x81fa 0x888b 0x8cb8 0x968a 0x9edb 0x5b85 0x5fb7 0x60b3 0x5012 0x5200 0x5230 0x5716 0x5835 0x5857 0x5c0e 0x5c60 0x5cf6 0x5d8b 0x5ea6 0x5f92 0x60bc 0x6311 0x6389 0x6417 0x6843 ) ; 0x5421 ... 0x547e (block 51 0x68f9 0x6ac2 0x6dd8 0x6e21 0x6ed4 0x6fe4 0x71fe 0x76dc 0x7779 0x79b1 0x7a3b 0x8404 0x89a9 0x8ced 0x8df3 0x8e48 0x9003 0x9014 0x9053 0x90fd 0x934d 0x9676 0x97dc 0x6bd2 0x7006 0x7258 0x72a2 0x7368 0x7763 0x79bf 0x7be4 0x7e9b 0x8b80 0x58a9 0x60c7 0x6566 0x65fd 0x66be 0x6c8c 0x711e 0x71c9 0x8c5a 0x9813 0x4e6d 0x7a81 0x4edd 0x51ac 0x51cd 0x52d5 0x540c 0x61a7 0x6771 0x6850 0x68df 0x6d1e 0x6f7c 0x75bc 0x77b3 0x7ae5 0x80f4 0x8463 0x9285 0x515c 0x6597 0x675c 0x6793 0x75d8 0x7ac7 0x8373 0xf95a 0x8c46 0x9017 0x982d 0x5c6f 0x81c0 0x829a 0x9041 0x906f 0x920d 0x5f97 0x5d9d 0x6a59 0x71c8 0x767b 0x7b49 0x85e4 0x8b04 0x9127 0x9a30 0x5587 0x61f6 0xf95b 0x7669 0x7f85 ) ; 0x5521 ... 0x557e (block 52 0x863f 0x87ba 0x88f8 0x908f 0xf95c 0x6d1b 0x70d9 0x73de 0x7d61 0x843d 0xf95d 0x916a 0x99f1 0xf95e 0x4e82 0x5375 0x6b04 0x6b12 0x703e 0x721b 0x862d 0x9e1e 0x524c 0x8fa3 0x5d50 0x64e5 0x652c 0x6b16 0x6feb 0x7c43 0x7e9c 0x85cd 0x8964 0x89bd 0x62c9 0x81d8 0x881f 0x5eca 0x6717 0x6d6a 0x72fc 0x7405 0x746f 0x8782 0x90de 0x4f86 0x5d0d 0x5fa0 0x840a 0x51b7 0x63a0 0x7565 0x4eae 0x5006 0x5169 0x51c9 0x6881 0x6a11 0x7cae 0x7cb1 0x7ce7 0x826f 0x8ad2 0x8f1b 0x91cf 0x4fb6 0x5137 0x52f5 0x5442 0x5eec 0x616e 0x623e 0x65c5 0x6ada 0x6ffe 0x792a 0x85dc 0x8823 0x95ad 0x9a62 0x9a6a 0x9e97 0x9ece 0x529b 0x66c6 0x6b77 0x701d 0x792b 0x8f62 0x9742 0x6190 0x6200 0x6523 0x6f23 ) ; 0x5621 ... 0x567e (block 53 0x7149 0x7489 0x7df4 0x806f 0x84ee 0x8f26 0x9023 0x934a 0x51bd 0x5217 0x52a3 0x6d0c 0x70c8 0x88c2 0x5ec9 0x6582 0x6bae 0x6fc2 0x7c3e 0x7375 0x4ee4 0x4f36 0x56f9 0xf95f 0x5cba 0x5dba 0x601c 0x73b2 0x7b2d 0x7f9a 0x7fce 0x8046 0x901e 0x9234 0x96f6 0x9748 0x9818 0x9f61 0x4f8b 0x6fa7 0x79ae 0x91b4 0x96b7 0x52de 0xf960 0x6488 0x64c4 0x6ad3 0x6f5e 0x7018 0x7210 0x76e7 0x8001 0x8606 0x865c 0x8def 0x8f05 0x9732 0x9b6f 0x9dfa 0x9e75 0x788c 0x797f 0x7da0 0x83c9 0x9304 0x9e7f 0x9e93 0x8ad6 0x58df 0x5f04 0x6727 0x7027 0x74cf 0x7c60 0x807e 0x5121 0x7028 0x7262 0x78ca 0x8cc2 0x8cda 0x8cf4 0x96f7 0x4e86 0x50da 0x5bee 0x5ed6 0x6599 0x71ce 0x7642 0x77ad 0x804a 0x84fc ) ; 0x5721 ... 0x577e (block 54 0x907c 0x9b27 0x9f8d 0x58d8 0x5a41 0x5c62 0x6a13 0x6dda 0x6f0f 0x763b 0x7d2f 0x7e37 0x851e 0x8938 0x93e4 0x964b 0x5289 0x65d2 0x67f3 0x69b4 0x6d41 0x6e9c 0x700f 0x7409 0x7460 0x7559 0x7624 0x786b 0x8b2c 0x985e 0x516d 0x622e 0x9678 0x4f96 0x502b 0x5d19 0x6dea 0x7db8 0x8f2a 0x5f8b 0x6144 0x6817 0xf961 0x9686 0x52d2 0x808b 0x51dc 0x51cc 0x695e 0x7a1c 0x7dbe 0x83f1 0x9675 0x4fda 0x5229 0x5398 0x540f 0x550e 0x5c65 0x60a7 0x674e 0x68a8 0x6d6c 0x7281 0x72f8 0x7406 0x7483 0xf962 0x75e2 0x7c6c 0x7f79 0x7fb8 0x8389 0x88cf 0x88e1 0x91cc 0x91d0 0x96e2 0x9bc9 0x541d 0x6f7e 0x71d0 0x7498 0x85fa 0x8eaa 0x96a3 0x9c57 0x9e9f 0x6797 0x6dcb 0x7433 0x81e8 0x9716 0x782c ) ; 0x5821 ... 0x587e (block 55 0x7acb 0x7b20 0x7c92 0x6469 0x746a 0x75f2 0x78bc 0x78e8 0x99ac 0x9b54 0x9ebb 0x5bde 0x5e55 0x6f20 0x819c 0x83ab 0x9088 0x4e07 0x534d 0x5a29 0x5dd2 0x5f4e 0x6162 0x633d 0x6669 0x66fc 0x6eff 0x6f2b 0x7063 0x779e 0x842c 0x8513 0x883b 0x8f13 0x9945 0x9c3b 0x551c 0x62b9 0x672b 0x6cab 0x8309 0x896a 0x977a 0x4ea1 0x5984 0x5fd8 0x5fd9 0x671b 0x7db2 0x7f54 0x8292 0x832b 0x83bd 0x8f1e 0x9099 0x57cb 0x59b9 0x5a92 0x5bd0 0x6627 0x679a 0x6885 0x6bcf 0x7164 0x7f75 0x8cb7 0x8ce3 0x9081 0x9b45 0x8108 0x8c8a 0x964c 0x9a40 0x9ea5 0x5b5f 0x6c13 0x731b 0x76f2 0x76df 0x840c 0x51aa 0x8993 0x514d 0x5195 0x52c9 0x68c9 0x6c94 0x7704 0x7720 0x7dbf 0x7dec 0x9762 0x9eb5 0x6ec5 ) ; 0x5921 ... 0x597e (block 56 0x8511 0x51a5 0x540d 0x547d 0x660e 0x669d 0x6927 0x6e9f 0x76bf 0x7791 0x8317 0x84c2 0x879f 0x9169 0x9298 0x9cf4 0x8882 0x4fae 0x5192 0x52df 0x59c6 0x5e3d 0x6155 0x6478 0x6479 0x66ae 0x67d0 0x6a21 0x6bcd 0x6bdb 0x725f 0x7261 0x7441 0x7738 0x77db 0x8017 0x82bc 0x8305 0x8b00 0x8b28 0x8c8c 0x6728 0x6c90 0x7267 0x76ee 0x7766 0x7a46 0x9da9 0x6b7f 0x6c92 0x5922 0x6726 0x8499 0x536f 0x5893 0x5999 0x5edf 0x63cf 0x6634 0x6773 0x6e3a 0x732b 0x7ad7 0x82d7 0x9328 0x52d9 0x5deb 0x61ae 0x61cb 0x620a 0x62c7 0x64ab 0x65e0 0x6959 0x6b66 0x6bcb 0x7121 0x73f7 0x755d 0x7e46 0x821e 0x8302 0x856a 0x8aa3 0x8cbf 0x9727 0x9d61 0x58a8 0x9ed8 0x5011 0x520e 0x543b 0x554f 0x6587 ) ; 0x5a21 ... 0x5a7e (block 57 0x6c76 0x7d0a 0x7d0b 0x805e 0x868a 0x9580 0x96ef 0x52ff 0x6c95 0x7269 0x5473 0x5a9a 0x5c3e 0x5d4b 0x5f4c 0x5fae 0x672a 0x68b6 0x6963 0x6e3c 0x6e44 0x7709 0x7c73 0x7f8e 0x8587 0x8b0e 0x8ff7 0x9761 0x9ef4 0x5cb7 0x60b6 0x610d 0x61ab 0x654f 0x65fb 0x65fc 0x6c11 0x6cef 0x739f 0x73c9 0x7de1 0x9594 0x5bc6 0x871c 0x8b10 0x525d 0x535a 0x62cd 0x640f 0x64b2 0x6734 0x6a38 0x6cca 0x73c0 0x749e 0x7b94 0x7c95 0x7e1b 0x818a 0x8236 0x8584 0x8feb 0x96f9 0x99c1 0x4f34 0x534a 0x53cd 0x53db 0x62cc 0x642c 0x6500 0x6591 0x69c3 0x6cee 0x6f58 0x73ed 0x7554 0x7622 0x76e4 0x76fc 0x78d0 0x78fb 0x792c 0x7d46 0x822c 0x87e0 0x8fd4 0x9812 0x98ef 0x52c3 0x62d4 0x64a5 0x6e24 0x6f51 ) ; 0x5b21 ... 0x5b7e (block 58 0x767c 0x8dcb 0x91b1 0x9262 0x9aee 0x9b43 0x5023 0x508d 0x574a 0x59a8 0x5c28 0x5e47 0x5f77 0x623f 0x653e 0x65b9 0x65c1 0x6609 0x678b 0x699c 0x6ec2 0x78c5 0x7d21 0x80aa 0x8180 0x822b 0x82b3 0x84a1 0x868c 0x8a2a 0x8b17 0x90a6 0x9632 0x9f90 0x500d 0x4ff3 0xf963 0x57f9 0x5f98 0x62dc 0x6392 0x676f 0x6e43 0x7119 0x76c3 0x80cc 0x80da 0x88f4 0x88f5 0x8919 0x8ce0 0x8f29 0x914d 0x966a 0x4f2f 0x4f70 0x5e1b 0x67cf 0x6822 0x767d 0x767e 0x9b44 0x5e61 0x6a0a 0x7169 0x71d4 0x756a 0xf964 0x7e41 0x8543 0x85e9 0x98dc 0x4f10 0x7b4f 0x7f70 0x95a5 0x51e1 0x5e06 0x68b5 0x6c3e 0x6c4e 0x6cdb 0x72af 0x7bc4 0x8303 0x6cd5 0x743a 0x50fb 0x5288 0x58c1 0x64d8 0x6a97 0x74a7 0x7656 ) ; 0x5c21 ... 0x5c7e (block 59 0x78a7 0x8617 0x95e2 0x9739 0xf965 0x535e 0x5f01 0x8b8a 0x8fa8 0x8faf 0x908a 0x5225 0x77a5 0x9c49 0x9f08 0x4e19 0x5002 0x5175 0x5c5b 0x5e77 0x661e 0x663a 0x67c4 0x68c5 0x70b3 0x7501 0x75c5 0x79c9 0x7add 0x8f27 0x9920 0x9a08 0x4fdd 0x5821 0x5831 0x5bf6 0x666e 0x6b65 0x6d11 0x6e7a 0x6f7d 0x73e4 0x752b 0x83e9 0x88dc 0x8913 0x8b5c 0x8f14 0x4f0f 0x50d5 0x5310 0x535c 0x5b93 0x5fa9 0x670d 0x798f 0x8179 0x832f 0x8514 0x8907 0x8986 0x8f39 0x8f3b 0x99a5 0x9c12 0x672c 0x4e76 0x4ff8 0x5949 0x5c01 0x5cef 0x5cf0 0x6367 0x68d2 0x70fd 0x71a2 0x742b 0x7e2b 0x84ec 0x8702 0x9022 0x92d2 0x9cf3 0x4e0d 0x4ed8 0x4fef 0x5085 0x5256 0x526f 0x5426 0x5490 0x57e0 0x592b 0x5a66 ) ; 0x5d21 ... 0x5d7e (block 60 0x5b5a 0x5b75 0x5bcc 0x5e9c 0xf966 0x6276 0x6577 0x65a7 0x6d6e 0x6ea5 0x7236 0x7b26 0x7c3f 0x7f36 0x8150 0x8151 0x819a 0x8240 0x8299 0x83a9 0x8a03 0x8ca0 0x8ce6 0x8cfb 0x8d74 0x8dba 0x90e8 0x91dc 0x961c 0x9644 0x99d9 0x9ce7 0x5317 0x5206 0x5429 0x5674 0x58b3 0x5954 0x596e 0x5fff 0x61a4 0x626e 0x6610 0x6c7e 0x711a 0x76c6 0x7c89 0x7cde 0x7d1b 0x82ac 0x8cc1 0x96f0 0xf967 0x4f5b 0x5f17 0x5f7f 0x62c2 0x5d29 0x670b 0x68da 0x787c 0x7e43 0x9d6c 0x4e15 0x5099 0x5315 0x532a 0x5351 0x5983 0x5a62 0x5e87 0x60b2 0x618a 0x6249 0x6279 0x6590 0x6787 0x69a7 0x6bd4 0x6bd6 0x6bd7 0x6bd8 0x6cb8 0xf968 0x7435 0x75fa 0x7812 0x7891 0x79d5 0x79d8 0x7c83 0x7dcb 0x7fe1 0x80a5 ) ; 0x5e21 ... 0x5e7e (block 61 0x813e 0x81c2 0x83f2 0x871a 0x88e8 0x8ab9 0x8b6c 0x8cbb 0x9119 0x975e 0x98db 0x9f3b 0x56ac 0x5b2a 0x5f6c 0x658c 0x6ab3 0x6baf 0x6d5c 0x6ff1 0x7015 0x725d 0x73ad 0x8ca7 0x8cd3 0x983b 0x6191 0x6c37 0x8058 0x9a01 0x4e4d 0x4e8b 0x4e9b 0x4ed5 0x4f3a 0x4f3c 0x4f7f 0x4fdf 0x50ff 0x53f2 0x53f8 0x5506 0x55e3 0x56db 0x58eb 0x5962 0x5a11 0x5beb 0x5bfa 0x5c04 0x5df3 0x5e2b 0x5f99 0x601d 0x6368 0x659c 0x65af 0x67f6 0x67fb 0x68ad 0x6b7b 0x6c99 0x6cd7 0x6e23 0x7009 0x7345 0x7802 0x793e 0x7940 0x7960 0x79c1 0x7be9 0x7d17 0x7d72 0x8086 0x820d 0x838e 0x84d1 0x86c7 0x88df 0x8a50 0x8a5e 0x8b1d 0x8cdc 0x8d66 0x8fad 0x90aa 0x98fc 0x99df 0x9e9d 0x524a 0xf969 0x6714 0xf96a ) ; 0x5f21 ... 0x5f7e (block 62 0x5098 0x522a 0x5c71 0x6563 0x6c55 0x73ca 0x7523 0x759d 0x7b97 0x849c 0x9178 0x9730 0x4e77 0x6492 0x6bba 0x715e 0x85a9 0x4e09 0xf96b 0x6749 0x68ee 0x6e17 0x829f 0x8518 0x886b 0x63f7 0x6f81 0x9212 0x98af 0x4e0a 0x50b7 0x50cf 0x511f 0x5546 0x55aa 0x5617 0x5b40 0x5c19 0x5ce0 0x5e38 0x5e8a 0x5ea0 0x5ec2 0x60f3 0x6851 0x6a61 0x6e58 0x723d 0x7240 0x72c0 0x76f8 0x7965 0x7bb1 0x7fd4 0x88f3 0x89f4 0x8a73 0x8c61 0x8cde 0x971c 0x585e 0x74bd 0x8cfd 0x55c7 0xf96c 0x7a61 0x7d22 0x8272 0x7272 0x751f 0x7525 0xf96d 0x7b19 0x5885 0x58fb 0x5dbc 0x5e8f 0x5eb6 0x5f90 0x6055 0x6292 0x637f 0x654d 0x6691 0x66d9 0x66f8 0x6816 0x68f2 0x7280 0x745e 0x7b6e 0x7d6e 0x7dd6 0x7f72 ) ; 0x6021 ... 0x607e (block 63 0x80e5 0x8212 0x85af 0x897f 0x8a93 0x901d 0x92e4 0x9ecd 0x9f20 0x5915 0x596d 0x5e2d 0x60dc 0x6614 0x6673 0x6790 0x6c50 0x6dc5 0x6f5f 0x77f3 0x78a9 0x84c6 0x91cb 0x932b 0x4ed9 0x50ca 0x5148 0x5584 0x5b0b 0x5ba3 0x6247 0x657e 0x65cb 0x6e32 0x717d 0x7401 0x7444 0x7487 0x74bf 0x766c 0x79aa 0x7dda 0x7e55 0x7fa8 0x817a 0x81b3 0x8239 0x861a 0x87ec 0x8a75 0x8de3 0x9078 0x9291 0x9425 0x994d 0x9bae 0x5368 0x5c51 0x6954 0x6cc4 0x6d29 0x6e2b 0x820c 0x859b 0x893b 0x8a2d 0x8aaa 0x96ea 0x9f67 0x5261 0x66b9 0x6bb2 0x7e96 0x87fe 0x8d0d 0x9583 0x965d 0x651d 0x6d89 0x71ee 0xf96e 0x57ce 0x59d3 0x5bac 0x6027 0x60fa 0x6210 0x661f 0x665f 0x7329 0x73f9 0x76db 0x7701 0x7b6c ) ; 0x6121 ... 0x617e (block 64 0x8056 0x8072 0x8165 0x8aa0 0x9192 0x4e16 0x52e2 0x6b72 0x6d17 0x7a05 0x7b39 0x7d30 0xf96f 0x8cb0 0x53ec 0x562f 0x5851 0x5bb5 0x5c0f 0x5c11 0x5de2 0x6240 0x6383 0x6414 0x662d 0x68b3 0x6cbc 0x6d88 0x6eaf 0x701f 0x70a4 0x71d2 0x7526 0x758f 0x758e 0x7619 0x7b11 0x7be0 0x7c2b 0x7d20 0x7d39 0x852c 0x856d 0x8607 0x8a34 0x900d 0x9061 0x90b5 0x92b7 0x97f6 0x9a37 0x4fd7 0x5c6c 0x675f 0x6d91 0x7c9f 0x7e8c 0x8b16 0x8d16 0x901f 0x5b6b 0x5dfd 0x640d 0x84c0 0x905c 0x98e1 0x7387 0x5b8b 0x609a 0x677e 0x6dde 0x8a1f 0x8aa6 0x9001 0x980c 0x5237 0xf970 0x7051 0x788e 0x9396 0x8870 0x91d7 0x4fee 0x53d7 0x55fd 0x56da 0x5782 0x58fd 0x5ac2 0x5b88 0x5cab 0x5cc0 0x5e25 0x6101 ) ; 0x6221 ... 0x627e (block 65 0x620d 0x624b 0x6388 0x641c 0x6536 0x6578 0x6a39 0x6b8a 0x6c34 0x6d19 0x6f31 0x71e7 0x72e9 0x7378 0x7407 0x74b2 0x7626 0x7761 0x79c0 0x7a57 0x7aea 0x7cb9 0x7d8f 0x7dac 0x7e61 0x7f9e 0x8129 0x8331 0x8490 0x84da 0x85ea 0x8896 0x8ab0 0x8b90 0x8f38 0x9042 0x9083 0x916c 0x9296 0x92b9 0x968b 0x96a7 0x96a8 0x96d6 0x9700 0x9808 0x9996 0x9ad3 0x9b1a 0x53d4 0x587e 0x5919 0x5b70 0x5bbf 0x6dd1 0x6f5a 0x719f 0x7421 0x74b9 0x8085 0x83fd 0x5de1 0x5f87 0x5faa 0x6042 0x65ec 0x6812 0x696f 0x6a53 0x6b89 0x6d35 0x6df3 0x73e3 0x76fe 0x77ac 0x7b4d 0x7d14 0x8123 0x821c 0x8340 0x84f4 0x8563 0x8a62 0x8ac4 0x9187 0x931e 0x9806 0x99b4 0x620c 0x8853 0x8ff0 0x9265 0x5d07 0x5d27 ) ; 0x6321 ... 0x637e (block 66 0x5d69 0x745f 0x819d 0x8768 0x6fd5 0x62fe 0x7fd2 0x8936 0x8972 0x4e1e 0x4e58 0x50e7 0x52dd 0x5347 0x627f 0x6607 0x7e69 0x8805 0x965e 0x4f8d 0x5319 0x5636 0x59cb 0x5aa4 0x5c38 0x5c4e 0x5c4d 0x5e02 0x5f11 0x6043 0x65bd 0x662f 0x6642 0x67be 0x67f4 0x731c 0x77e2 0x793a 0x7fc5 0x8494 0x84cd 0x8996 0x8a66 0x8a69 0x8ae1 0x8c55 0x8c7a 0x57f4 0x5bd4 0x5f0f 0x606f 0x62ed 0x690d 0x6b96 0x6e5c 0x7184 0x7bd2 0x8755 0x8b58 0x8efe 0x98df 0x98fe 0x4f38 0x4f81 0x4fe1 0x547b 0x5a20 0x5bb8 0x613c 0x65b0 0x6668 0x71fc 0x7533 0x795e 0x7d33 0x814e 0x81e3 0x8398 0x85aa 0x85ce 0x8703 0x8a0a 0x8eab 0x8f9b 0xf971 0x8fc5 0x5931 0x5ba4 0x5be6 0x6089 0x5be9 0x5c0b 0x5fc3 0x6c81 ) ; 0x6421 ... 0x647e (block 67 0xf972 0x6df1 0x700b 0x751a 0x82af 0x8af6 0x4ec0 0x5341 0xf973 0x96d9 0x6c0f 0x4e9e 0x4fc4 0x5152 0x555e 0x5a25 0x5ce8 0x6211 0x7259 0x82bd 0x83aa 0x86fe 0x8859 0x8a1d 0x963f 0x96c5 0x9913 0x9d09 0x9d5d 0x580a 0x5cb3 0x5dbd 0x5e44 0x60e1 0x6115 0x63e1 0x6a02 0x6e25 0x9102 0x9354 0x984e 0x9c10 0x9f77 0x5b89 0x5cb8 0x6309 0x664f 0x6848 0x773c 0x96c1 0x978d 0x9854 0x9b9f 0x65a1 0x8b01 0x8ecb 0x95bc 0x5535 0x5ca9 0x5dd6 0x5eb5 0x6697 0x764c 0x83f4 0x95c7 0x58d3 0x62bc 0x72ce 0x9d28 0x4ef0 0x592e 0x600f 0x663b 0x6b83 0x79e7 0x9d26 0x5393 0x54c0 0x57c3 0x5d16 0x611b 0x66d6 0x6daf 0x788d 0x827e 0x9698 0x9744 0x5384 0x627c 0x6396 0x6db2 0x7e0a 0x814b 0x984d ) ; 0x6521 ... 0x657e (block 68 0x6afb 0x7f4c 0x9daf 0x9e1a 0x4e5f 0x503b 0x51b6 0x591c 0x60f9 0x63f6 0x6930 0x723a 0x8036 0xf974 0x91ce 0x5f31 0xf975 0xf976 0x7d04 0x82e5 0x846f 0x84bb 0x85e5 0x8e8d 0xf977 0x4f6f 0xf978 0xf979 0x58e4 0x5b43 0x6059 0x63da 0x6518 0x656d 0x6698 0xf97a 0x694a 0x6a23 0x6d0b 0x7001 0x716c 0x75d2 0x760d 0x79b3 0x7a70 0xf97b 0x7f8a 0xf97c 0x8944 0xf97d 0x8b93 0x91c0 0x967d 0xf97e 0x990a 0x5704 0x5fa1 0x65bc 0x6f01 0x7600 0x79a6 0x8a9e 0x99ad 0x9b5a 0x9f6c 0x5104 0x61b6 0x6291 0x6a8d 0x81c6 0x5043 0x5830 0x5f66 0x7109 0x8a00 0x8afa 0x5b7c 0x8616 0x4ffa 0x513c 0x56b4 0x5944 0x63a9 0x6df9 0x5daa 0x696d 0x5186 0x4e88 0x4f59 0xf97f 0xf980 0xf981 0x5982 0xf982 ) ; 0x6621 ... 0x667e (block 69 0xf983 0x6b5f 0x6c5d 0xf984 0x74b5 0x7916 0xf985 0x8207 0x8245 0x8339 0x8f3f 0x8f5d 0xf986 0x9918 0xf987 0xf988 0xf989 0x4ea6 0xf98a 0x57df 0x5f79 0x6613 0xf98b 0xf98c 0x75ab 0x7e79 0x8b6f 0xf98d 0x9006 0x9a5b 0x56a5 0x5827 0x59f8 0x5a1f 0x5bb4 0xf98e 0x5ef6 0xf98f 0xf990 0x6350 0x633b 0xf991 0x693d 0x6c87 0x6cbf 0x6d8e 0x6d93 0x6df5 0x6f14 0xf992 0x70df 0x7136 0x7159 0xf993 0x71c3 0x71d5 0xf994 0x784f 0x786f 0xf995 0x7b75 0x7de3 0xf996 0x7e2f 0xf997 0x884d 0x8edf 0xf998 0xf999 0xf99a 0x925b 0xf99b 0x9cf6 0xf99c 0xf99d 0xf99e 0x6085 0x6d85 0xf99f 0x71b1 0xf9a0 0xf9a1 0x95b1 0x53ad 0xf9a2 0xf9a3 0xf9a4 0x67d3 0xf9a5 0x708e 0x7130 0x7430 0x8276 0x82d2 ) ; 0x6721 ... 0x677e (block 70 0xf9a6 0x95bb 0x9ae5 0x9e7d 0x66c4 0xf9a7 0x71c1 0x8449 0xf9a8 0xf9a9 0x584b 0xf9aa 0xf9ab 0x5db8 0x5f71 0xf9ac 0x6620 0x668e 0x6979 0x69ae 0x6c38 0x6cf3 0x6e36 0x6f41 0x6fda 0x701b 0x702f 0x7150 0x71df 0x7370 0xf9ad 0x745b 0xf9ae 0x74d4 0x76c8 0x7a4e 0x7e93 0xf9af 0xf9b0 0x82f1 0x8a60 0x8fce 0xf9b1 0x9348 0xf9b2 0x9719 0xf9b3 0xf9b4 0x4e42 0x502a 0xf9b5 0x5208 0x53e1 0x66f3 0x6c6d 0x6fca 0x730a 0x777f 0x7a62 0x82ae 0x85dd 0x8602 0xf9b6 0x88d4 0x8a63 0x8b7d 0x8c6b 0xf9b7 0x92b3 0xf9b8 0x9713 0x9810 0x4e94 0x4f0d 0x4fc9 0x50b2 0x5348 0x543e 0x5433 0x55da 0x5862 0x58ba 0x5967 0x5a1b 0x5be4 0x609f 0xf9b9 0x61ca 0x6556 0x65ff 0x6664 0x68a7 0x6c5a 0x6fb3 ) ; 0x6821 ... 0x687e (block 71 0x70cf 0x71ac 0x7352 0x7b7d 0x8708 0x8aa4 0x9c32 0x9f07 0x5c4b 0x6c83 0x7344 0x7389 0x923a 0x6eab 0x7465 0x761f 0x7a69 0x7e15 0x860a 0x5140 0x58c5 0x64c1 0x74ee 0x7515 0x7670 0x7fc1 0x9095 0x96cd 0x9954 0x6e26 0x74e6 0x7aa9 0x7aaa 0x81e5 0x86d9 0x8778 0x8a1b 0x5a49 0x5b8c 0x5b9b 0x68a1 0x6900 0x6d63 0x73a9 0x7413 0x742c 0x7897 0x7de9 0x7feb 0x8118 0x8155 0x839e 0x8c4c 0x962e 0x9811 0x66f0 0x5f80 0x65fa 0x6789 0x6c6a 0x738b 0x502d 0x5a03 0x6b6a 0x77ee 0x5916 0x5d6c 0x5dcd 0x7325 0x754f 0xf9ba 0xf9bb 0x50e5 0x51f9 0x582f 0x592d 0x5996 0x59da 0x5be5 0xf9bc 0xf9bd 0x5da2 0x62d7 0x6416 0x6493 0x64fe 0xf9be 0x66dc 0xf9bf 0x6a48 0xf9c0 0x71ff 0x7464 0xf9c1 ) ; 0x6921 ... 0x697e (block 72 0x7a88 0x7aaf 0x7e47 0x7e5e 0x8000 0x8170 0xf9c2 0x87ef 0x8981 0x8b20 0x9059 0xf9c3 0x9080 0x9952 0x617e 0x6b32 0x6d74 0x7e1f 0x8925 0x8fb1 0x4fd1 0x50ad 0x5197 0x52c7 0x57c7 0x5889 0x5bb9 0x5eb8 0x6142 0x6995 0x6d8c 0x6e67 0x6eb6 0x7194 0x7462 0x7528 0x752c 0x8073 0x8338 0x84c9 0x8e0a 0x9394 0x93de 0xf9c4 0x4e8e 0x4f51 0x5076 0x512a 0x53c8 0x53cb 0x53f3 0x5b87 0x5bd3 0x5c24 0x611a 0x6182 0x65f4 0x725b 0x7397 0x7440 0x76c2 0x7950 0x7991 0x79b9 0x7d06 0x7fbd 0x828b 0x85d5 0x865e 0x8fc2 0x9047 0x90f5 0x91ea 0x9685 0x96e8 0x96e9 0x52d6 0x5f67 0x65ed 0x6631 0x682f 0x715c 0x7a36 0x90c1 0x980a 0x4e91 0xf9c5 0x6a52 0x6b9e 0x6f90 0x7189 0x8018 0x82b8 0x8553 ) ; 0x6a21 ... 0x6a7e (block 73 0x904b 0x9695 0x96f2 0x97fb 0x851a 0x9b31 0x4e90 0x718a 0x96c4 0x5143 0x539f 0x54e1 0x5713 0x5712 0x57a3 0x5a9b 0x5ac4 0x5bc3 0x6028 0x613f 0x63f4 0x6c85 0x6d39 0x6e72 0x6e90 0x7230 0x733f 0x7457 0x82d1 0x8881 0x8f45 0x9060 0xf9c6 0x9662 0x9858 0x9d1b 0x6708 0x8d8a 0x925e 0x4f4d 0x5049 0x50de 0x5371 0x570d 0x59d4 0x5a01 0x5c09 0x6170 0x6690 0x6e2d 0x7232 0x744b 0x7def 0x80c3 0x840e 0x8466 0x853f 0x875f 0x885b 0x8918 0x8b02 0x9055 0x97cb 0x9b4f 0x4e73 0x4f91 0x5112 0x516a 0xf9c7 0x552f 0x55a9 0x5b7a 0x5ba5 0x5e7c 0x5e7d 0x5ebe 0x60a0 0x60df 0x6108 0x6109 0x63c4 0x6538 0x6709 0xf9c8 0x67d4 0x67da 0xf9c9 0x6961 0x6962 0x6cb9 0x6d27 0xf9ca 0x6e38 0xf9cb ) ; 0x6b21 ... 0x6b7e (block 74 0x6fe1 0x7336 0x7337 0xf9cc 0x745c 0x7531 0xf9cd 0x7652 0xf9ce 0xf9cf 0x7dad 0x81fe 0x8438 0x88d5 0x8a98 0x8adb 0x8aed 0x8e30 0x8e42 0x904a 0x903e 0x907a 0x9149 0x91c9 0x936e 0xf9d0 0xf9d1 0x5809 0xf9d2 0x6bd3 0x8089 0x80b2 0xf9d3 0xf9d4 0x5141 0x596b 0x5c39 0xf9d5 0xf9d6 0x6f64 0x73a7 0x80e4 0x8d07 0xf9d7 0x9217 0x958f 0xf9d8 0xf9d9 0xf9da 0xf9db 0x807f 0x620e 0x701c 0x7d68 0x878d 0xf9dc 0x57a0 0x6069 0x6147 0x6bb7 0x8abe 0x9280 0x96b1 0x4e59 0x541f 0x6deb 0x852d 0x9670 0x97f3 0x98ee 0x63d6 0x6ce3 0x9091 0x51dd 0x61c9 0x81ba 0x9df9 0x4f9d 0x501a 0x5100 0x5b9c 0x610f 0x61ff 0x64ec 0x6905 0x6bc5 0x7591 0x77e3 0x7fa9 0x8264 0x858f 0x87fb 0x8863 0x8abc ) ; 0x6c21 ... 0x6c7e (block 75 0x8b70 0x91ab 0x4e8c 0x4ee5 0x4f0a 0xf9dd 0xf9de 0x5937 0x59e8 0xf9df 0x5df2 0x5f1b 0x5f5b 0x6021 0xf9e0 0xf9e1 0xf9e2 0xf9e3 0x723e 0x73e5 0xf9e4 0x7570 0x75cd 0xf9e5 0x79fb 0xf9e6 0x800c 0x8033 0x8084 0x82e1 0x8351 0xf9e7 0xf9e8 0x8cbd 0x8cb3 0x9087 0xf9e9 0xf9ea 0x98f4 0x990c 0xf9eb 0xf9ec 0x7037 0x76ca 0x7fca 0x7fcc 0x7ffc 0x8b1a 0x4eba 0x4ec1 0x5203 0x5370 0xf9ed 0x54bd 0x56e0 0x59fb 0x5bc5 0x5f15 0x5fcd 0x6e6e 0xf9ee 0xf9ef 0x7d6a 0x8335 0xf9f0 0x8693 0x8a8d 0xf9f1 0x976d 0x9777 0xf9f2 0xf9f3 0x4e00 0x4f5a 0x4f7e 0x58f9 0x65e5 0x6ea2 0x9038 0x93b0 0x99b9 0x4efb 0x58ec 0x598a 0x59d9 0x6041 0xf9f4 0xf9f5 0x7a14 0xf9f6 0x834f 0x8cc3 0x5165 0x5344 ) ; 0x6d21 ... 0x6d7e (block 76 0xf9f7 0xf9f8 0xf9f9 0x4ecd 0x5269 0x5b55 0x82bf 0x4ed4 0x523a 0x54a8 0x59c9 0x59ff 0x5b50 0x5b57 0x5b5c 0x6063 0x6148 0x6ecb 0x7099 0x716e 0x7386 0x74f7 0x75b5 0x78c1 0x7d2b 0x8005 0x81ea 0x8328 0x8517 0x85c9 0x8aee 0x8cc7 0x96cc 0x4f5c 0x52fa 0x56bc 0x65ab 0x6628 0x707c 0x70b8 0x7235 0x7dbd 0x828d 0x914c 0x96c0 0x9d72 0x5b71 0x68e7 0x6b98 0x6f7a 0x76de 0x5c91 0x66ab 0x6f5b 0x7bb4 0x7c2a 0x8836 0x96dc 0x4e08 0x4ed7 0x5320 0x5834 0x58bb 0x58ef 0x596c 0x5c07 0x5e33 0x5e84 0x5f35 0x638c 0x66b2 0x6756 0x6a1f 0x6aa3 0x6b0c 0x6f3f 0x7246 0xf9fa 0x7350 0x748b 0x7ae0 0x7ca7 0x8178 0x81df 0x81e7 0x838a 0x846c 0x8523 0x8594 0x85cf 0x88dd 0x8d13 0x91ac 0x9577 ) ; 0x6e21 ... 0x6e7e (block 77 0x969c 0x518d 0x54c9 0x5728 0x5bb0 0x624d 0x6750 0x683d 0x6893 0x6e3d 0x6ed3 0x707d 0x7e21 0x88c1 0x8ca1 0x8f09 0x9f4b 0x9f4e 0x722d 0x7b8f 0x8acd 0x931a 0x4f47 0x4f4e 0x5132 0x5480 0x59d0 0x5e95 0x62b5 0x6775 0x696e 0x6a17 0x6cae 0x6e1a 0x72d9 0x732a 0x75bd 0x7bb8 0x7d35 0x82e7 0x83f9 0x8457 0x85f7 0x8a5b 0x8caf 0x8e87 0x9019 0x90b8 0x96ce 0x9f5f 0x52e3 0x540a 0x5ae1 0x5bc2 0x6458 0x6575 0x6ef4 0x72c4 0xf9fb 0x7684 0x7a4d 0x7b1b 0x7c4d 0x7e3e 0x7fdf 0x837b 0x8b2b 0x8cca 0x8d64 0x8de1 0x8e5f 0x8fea 0x8ff9 0x9069 0x93d1 0x4f43 0x4f7a 0x50b3 0x5168 0x5178 0x524d 0x526a 0x5861 0x587c 0x5960 0x5c08 0x5c55 0x5edb 0x609b 0x6230 0x6813 0x6bbf 0x6c08 0x6fb1 ) ; 0x6f21 ... 0x6f7e (block 78 0x714e 0x7420 0x7530 0x7538 0x7551 0x7672 0x7b4c 0x7b8b 0x7bad 0x7bc6 0x7e8f 0x8a6e 0x8f3e 0x8f49 0x923f 0x9293 0x9322 0x942b 0x96fb 0x985a 0x986b 0x991e 0x5207 0x622a 0x6298 0x6d59 0x7664 0x7aca 0x7bc0 0x7d76 0x5360 0x5cbe 0x5e97 0x6f38 0x70b9 0x7c98 0x9711 0x9b8e 0x9ede 0x63a5 0x647a 0x8776 0x4e01 0x4e95 0x4ead 0x505c 0x5075 0x5448 0x59c3 0x5b9a 0x5e40 0x5ead 0x5ef7 0x5f81 0x60c5 0x633a 0x653f 0x6574 0x65cc 0x6676 0x6678 0x67fe 0x6968 0x6a89 0x6b63 0x6c40 0x6dc0 0x6de8 0x6e1f 0x6e5e 0x701e 0x70a1 0x738e 0x73fd 0x753a 0x775b 0x7887 0x798e 0x7a0b 0x7a7d 0x7cbe 0x7d8e 0x8247 0x8a02 0x8aea 0x8c9e 0x912d 0x914a 0x91d8 0x9266 0x92cc 0x9320 0x9706 0x9756 ) ; 0x7021 ... 0x707e (block 79 0x975c 0x9802 0x9f0e 0x5236 0x5291 0x557c 0x5824 0x5e1d 0x5f1f 0x608c 0x63d0 0x68af 0x6fdf 0x796d 0x7b2c 0x81cd 0x85ba 0x88fd 0x8af8 0x8e44 0x918d 0x9664 0x969b 0x973d 0x984c 0x9f4a 0x4fce 0x5146 0x51cb 0x52a9 0x5632 0x5f14 0x5f6b 0x63aa 0x64cd 0x65e9 0x6641 0x66fa 0x66f9 0x671d 0x689d 0x68d7 0x69fd 0x6f15 0x6f6e 0x7167 0x71e5 0x722a 0x74aa 0x773a 0x7956 0x795a 0x79df 0x7a20 0x7a95 0x7c97 0x7cdf 0x7d44 0x7e70 0x8087 0x85fb 0x86a4 0x8a54 0x8abf 0x8d99 0x8e81 0x9020 0x906d 0x91e3 0x963b 0x96d5 0x9ce5 0x65cf 0x7c07 0x8db3 0x93c3 0x5b58 0x5c0a 0x5352 0x62d9 0x731d 0x5027 0x5b97 0x5f9e 0x60b0 0x616b 0x68d5 0x6dd9 0x742e 0x7a2e 0x7d42 0x7d9c 0x7e31 0x816b ) ; 0x7121 ... 0x717e (block 80 0x8e2a 0x8e35 0x937e 0x9418 0x4f50 0x5750 0x5de6 0x5ea7 0x632b 0x7f6a 0x4e3b 0x4f4f 0x4f8f 0x505a 0x59dd 0x80c4 0x546a 0x5468 0x55fe 0x594f 0x5b99 0x5dde 0x5eda 0x665d 0x6731 0x67f1 0x682a 0x6ce8 0x6d32 0x6e4a 0x6f8d 0x70b7 0x73e0 0x7587 0x7c4c 0x7d02 0x7d2c 0x7da2 0x821f 0x86db 0x8a3b 0x8a85 0x8d70 0x8e8a 0x8f33 0x9031 0x914e 0x9152 0x9444 0x99d0 0x7af9 0x7ca5 0x4fca 0x5101 0x51c6 0x57c8 0x5bef 0x5cfb 0x6659 0x6a3d 0x6d5a 0x6e96 0x6fec 0x710c 0x756f 0x7ae3 0x8822 0x9021 0x9075 0x96cb 0x99ff 0x8301 0x4e2d 0x4ef2 0x8846 0x91cd 0x537d 0x6adb 0x696b 0x6c41 0x847a 0x589e 0x618e 0x66fe 0x62ef 0x70dd 0x7511 0x75c7 0x7e52 0x84b8 0x8b49 0x8d08 0x4e4b 0x53ea ) ; 0x7221 ... 0x727e (block 81 0x54ab 0x5730 0x5740 0x5fd7 0x6301 0x6307 0x646f 0x652f 0x65e8 0x667a 0x679d 0x67b3 0x6b62 0x6c60 0x6c9a 0x6f2c 0x77e5 0x7825 0x7949 0x7957 0x7d19 0x80a2 0x8102 0x81f3 0x829d 0x82b7 0x8718 0x8a8c 0xf9fc 0x8d04 0x8dbe 0x9072 0x76f4 0x7a19 0x7a37 0x7e54 0x8077 0x5507 0x55d4 0x5875 0x632f 0x6422 0x6649 0x664b 0x686d 0x699b 0x6b84 0x6d25 0x6eb1 0x73cd 0x7468 0x74a1 0x755b 0x75b9 0x76e1 0x771e 0x778b 0x79e6 0x7e09 0x7e1d 0x81fb 0x852f 0x8897 0x8a3a 0x8cd1 0x8eeb 0x8fb0 0x9032 0x93ad 0x9663 0x9673 0x9707 0x4f84 0x53f1 0x59ea 0x5ac9 0x5e19 0x684e 0x74c6 0x75be 0x79e9 0x7a92 0x81a3 0x86ed 0x8cea 0x8dcc 0x8fed 0x659f 0x6715 0xf9fd 0x57f7 0x6f57 0x7ddd 0x8f2f ) ; 0x7321 ... 0x737e (block 82 0x93f6 0x96c6 0x5fb5 0x61f2 0x6f84 0x4e14 0x4f98 0x501f 0x53c9 0x55df 0x5d6f 0x5dee 0x6b21 0x6b64 0x78cb 0x7b9a 0xf9fe 0x8e49 0x8eca 0x906e 0x6349 0x643e 0x7740 0x7a84 0x932f 0x947f 0x9f6a 0x64b0 0x6faf 0x71e6 0x74a8 0x74da 0x7ac4 0x7c12 0x7e82 0x7cb2 0x7e98 0x8b9a 0x8d0a 0x947d 0x9910 0x994c 0x5239 0x5bdf 0x64e6 0x672d 0x7d2e 0x50ed 0x53c3 0x5879 0x6158 0x6159 0x61fa 0x65ac 0x7ad9 0x8b92 0x8b96 0x5009 0x5021 0x5275 0x5531 0x5a3c 0x5ee0 0x5f70 0x6134 0x655e 0x660c 0x6636 0x66a2 0x69cd 0x6ec4 0x6f32 0x7316 0x7621 0x7a93 0x8139 0x8259 0x83d6 0x84bc 0x50b5 0x57f0 0x5bc0 0x5be8 0x5f69 0x63a1 0x7826 0x7db5 0x83dc 0x8521 0x91c7 0x91f5 0x518a 0x67f5 0x7b56 ) ; 0x7421 ... 0x747e (block 83 0x8cac 0x51c4 0x59bb 0x60bd 0x8655 0x501c 0xf9ff 0x5254 0x5c3a 0x617d 0x621a 0x62d3 0x64f2 0x65a5 0x6ecc 0x7620 0x810a 0x8e60 0x965f 0x96bb 0x4edf 0x5343 0x5598 0x5929 0x5ddd 0x64c5 0x6cc9 0x6dfa 0x7394 0x7a7f 0x821b 0x85a6 0x8ce4 0x8e10 0x9077 0x91e7 0x95e1 0x9621 0x97c6 0x51f8 0x54f2 0x5586 0x5fb9 0x64a4 0x6f88 0x7db4 0x8f1f 0x8f4d 0x9435 0x50c9 0x5c16 0x6cbe 0x6dfb 0x751b 0x77bb 0x7c3d 0x7c64 0x8a79 0x8ac2 0x581e 0x59be 0x5e16 0x6377 0x7252 0x758a 0x776b 0x8adc 0x8cbc 0x8f12 0x5ef3 0x6674 0x6df8 0x807d 0x83c1 0x8acb 0x9751 0x9bd6 0xfa00 0x5243 0x66ff 0x6d95 0x6eef 0x7de0 0x8ae6 0x902e 0x905e 0x9ad4 0x521d 0x527f 0x54e8 0x6194 0x6284 0x62db 0x68a2 ) ; 0x7521 ... 0x757e (block 84 0x6912 0x695a 0x6a35 0x7092 0x7126 0x785d 0x7901 0x790e 0x79d2 0x7a0d 0x8096 0x8278 0x82d5 0x8349 0x8549 0x8c82 0x8d85 0x9162 0x918b 0x91ae 0x4fc3 0x56d1 0x71ed 0x77d7 0x8700 0x89f8 0x5bf8 0x5fd6 0x6751 0x90a8 0x53e2 0x585a 0x5bf5 0x60a4 0x6181 0x6460 0x7e3d 0x8070 0x8525 0x9283 0x64ae 0x50ac 0x5d14 0x6700 0x589c 0x62bd 0x63a8 0x690e 0x6978 0x6a1e 0x6e6b 0x76ba 0x79cb 0x82bb 0x8429 0x8acf 0x8da8 0x8ffd 0x9112 0x914b 0x919c 0x9310 0x9318 0x939a 0x96db 0x9a36 0x9c0d 0x4e11 0x755c 0x795d 0x7afa 0x7b51 0x7bc9 0x7e2e 0x84c4 0x8e59 0x8e74 0x8ef8 0x9010 0x6625 0x693f 0x7443 0x51fa 0x672e 0x9edc 0x5145 0x5fe0 0x6c96 0x87f2 0x885d 0x8877 0x60b4 0x81b5 0x8403 ) ; 0x7621 ... 0x767e (block 85 0x8d05 0x53d6 0x5439 0x5634 0x5a36 0x5c31 0x708a 0x7fe0 0x805a 0x8106 0x81ed 0x8da3 0x9189 0x9a5f 0x9df2 0x5074 0x4ec4 0x53a0 0x60fb 0x6e2c 0x5c64 0x4f88 0x5024 0x55e4 0x5cd9 0x5e5f 0x6065 0x6894 0x6cbb 0x6dc4 0x71be 0x75d4 0x75f4 0x7661 0x7a1a 0x7a49 0x7dc7 0x7dfb 0x7f6e 0x81f4 0x86a9 0x8f1c 0x96c9 0x99b3 0x9f52 0x5247 0x52c5 0x98ed 0x89aa 0x4e03 0x67d2 0x6f06 0x4fb5 0x5be2 0x6795 0x6c88 0x6d78 0x741b 0x7827 0x91dd 0x937c 0x87c4 0x79e4 0x7a31 0x5feb 0x4ed6 0x54a4 0x553e 0x58ae 0x59a5 0x60f0 0x6253 0x62d6 0x6736 0x6955 0x8235 0x9640 0x99b1 0x99dd 0x502c 0x5353 0x5544 0x577c 0xfa01 0x6258 0xfa02 0x64e2 0x666b 0x67dd 0x6fc1 0x6fef 0x7422 0x7438 0x8a17 ) ; 0x7721 ... 0x777e (block 86 0x9438 0x5451 0x5606 0x5766 0x5f48 0x619a 0x6b4e 0x7058 0x70ad 0x7dbb 0x8a95 0x596a 0x812b 0x63a2 0x7708 0x803d 0x8caa 0x5854 0x642d 0x69bb 0x5b95 0x5e11 0x6e6f 0xfa03 0x8569 0x514c 0x53f0 0x592a 0x6020 0x614b 0x6b86 0x6c70 0x6cf0 0x7b1e 0x80ce 0x82d4 0x8dc6 0x90b0 0x98b1 0xfa04 0x64c7 0x6fa4 0x6491 0x6504 0x514e 0x5410 0x571f 0x8a0e 0x615f 0x6876 0xfa05 0x75db 0x7b52 0x7d71 0x901a 0x5806 0x69cc 0x817f 0x892a 0x9000 0x9839 0x5078 0x5957 0x59ac 0x6295 0x900f 0x9b2a 0x615d 0x7279 0x95d6 0x5761 0x5a46 0x5df4 0x628a 0x64ad 0x64fa 0x6777 0x6ce2 0x6d3e 0x722c 0x7436 0x7834 0x7f77 0x82ad 0x8ddb 0x9817 0x5224 0x5742 0x677f 0x7248 0x74e3 0x8ca9 0x8fa6 0x9211 ) ; 0x7821 ... 0x787e (block 87 0x962a 0x516b 0x53ed 0x634c 0x4f69 0x5504 0x6096 0x6557 0x6c9b 0x6d7f 0x724c 0x72fd 0x7a17 0x8987 0x8c9d 0x5f6d 0x6f8e 0x70f9 0x81a8 0x610e 0x4fbf 0x504f 0x6241 0x7247 0x7bc7 0x7de8 0x7fe9 0x904d 0x97ad 0x9a19 0x8cb6 0x576a 0x5e73 0x67b0 0x840d 0x8a55 0x5420 0x5b16 0x5e63 0x5ee2 0x5f0a 0x6583 0x80ba 0x853d 0x9589 0x965b 0x4f48 0x5305 0x530d 0x530f 0x5486 0x54fa 0x5703 0x5e03 0x6016 0x629b 0x62b1 0x6355 0xfa06 0x6ce1 0x6d66 0x75b1 0x7832 0x80de 0x812f 0x82de 0x8461 0x84b2 0x888d 0x8912 0x900b 0x92ea 0x98fd 0x9b91 0x5e45 0x66b4 0x66dd 0x7011 0x7206 0xfa07 0x4ff5 0x527d 0x5f6a 0x6153 0x6753 0x6a19 0x6f02 0x74e2 0x7968 0x8868 0x8c79 0x98c7 0x98c4 0x9a43 ) ; 0x7921 ... 0x797e (block 88 0x54c1 0x7a1f 0x6953 0x8af7 0x8c4a 0x98a8 0x99ae 0x5f7c 0x62ab 0x75b2 0x76ae 0x88ab 0x907f 0x9642 0x5339 0x5f3c 0x5fc5 0x6ccc 0x73cc 0x7562 0x758b 0x7b46 0x82fe 0x999d 0x4e4f 0x903c 0x4e0b 0x4f55 0x53a6 0x590f 0x5ec8 0x6630 0x6cb3 0x7455 0x8377 0x8766 0x8cc0 0x9050 0x971e 0x9c15 0x58d1 0x5b78 0x8650 0x8b14 0x9db4 0x5bd2 0x6068 0x608d 0x65f1 0x6c57 0x6f22 0x6fa3 0x701a 0x7f55 0x7ff0 0x9591 0x9592 0x9650 0x97d3 0x5272 0x8f44 0x51fd 0x542b 0x54b8 0x5563 0x558a 0x6abb 0x6db5 0x7dd8 0x8266 0x929c 0x9677 0x9e79 0x5408 0x54c8 0x76d2 0x86e4 0x95a4 0x95d4 0x965c 0x4ea2 0x4f09 0x59ee 0x5ae6 0x5df7 0x6052 0x6297 0x676d 0x6841 0x6c86 0x6e2f 0x7f38 0x809b 0x822a ) ; 0x7a21 ... 0x7a7e (block 89 0xfa08 0xfa09 0x9805 0x4ea5 0x5055 0x54b3 0x5793 0x595a 0x5b69 0x5bb3 0x61c8 0x6977 0x6d77 0x7023 0x87f9 0x89e3 0x8a72 0x8ae7 0x9082 0x99ed 0x9ab8 0x52be 0x6838 0x5016 0x5e78 0x674f 0x8347 0x884c 0x4eab 0x5411 0x56ae 0x73e6 0x9115 0x97ff 0x9909 0x9957 0x9999 0x5653 0x589f 0x865b 0x8a31 0x61b2 0x6af6 0x737b 0x8ed2 0x6b47 0x96aa 0x9a57 0x5955 0x7200 0x8d6b 0x9769 0x4fd4 0x5cf4 0x5f26 0x61f8 0x665b 0x6ceb 0x70ab 0x7384 0x73b9 0x73fe 0x7729 0x774d 0x7d43 0x7d62 0x7e23 0x8237 0x8852 0xfa0a 0x8ce2 0x9249 0x986f 0x5b51 0x7a74 0x8840 0x9801 0x5acc 0x4fe0 0x5354 0x593e 0x5cfd 0x633e 0x6d79 0x72f9 0x8105 0x8107 0x83a2 0x92cf 0x9830 0x4ea8 0x5144 0x5211 0x578b ) ; 0x7b21 ... 0x7b7e (block 90 0x5f62 0x6cc2 0x6ece 0x7005 0x7050 0x70af 0x7192 0x73e9 0x7469 0x834a 0x87a2 0x8861 0x9008 0x90a2 0x93a3 0x99a8 0x516e 0x5f57 0x60e0 0x6167 0x66b3 0x8559 0x8e4a 0x91af 0x978b 0x4e4e 0x4e92 0x547c 0x58d5 0x58fa 0x597d 0x5cb5 0x5f27 0x6236 0x6248 0x660a 0x6667 0x6beb 0x6d69 0x6dcf 0x6e56 0x6ef8 0x6f94 0x6fe0 0x6fe9 0x705d 0x72d0 0x7425 0x745a 0x74e0 0x7693 0x795c 0x7cca 0x7e1e 0x80e1 0x82a6 0x846b 0x84bf 0x864e 0x865f 0x8774 0x8b77 0x8c6a 0x93ac 0x9800 0x9865 0x60d1 0x6216 0x9177 0x5a5a 0x660f 0x6df7 0x6e3e 0x743f 0x9b42 0x5ffd 0x60da 0x7b0f 0x54c4 0x5f18 0x6c5e 0x6cd3 0x6d2a 0x70d8 0x7d05 0x8679 0x8a0c 0x9d3b 0x5316 0x548c 0x5b05 0x6a3a 0x706b 0x7575 ) ; 0x7c21 ... 0x7c7e (block 91 0x798d 0x79be 0x82b1 0x83ef 0x8a71 0x8b41 0x8ca8 0x9774 0xfa0b 0x64f4 0x652b 0x78ba 0x78bb 0x7a6b 0x4e38 0x559a 0x5950 0x5ba6 0x5e7b 0x60a3 0x63db 0x6b61 0x6665 0x6853 0x6e19 0x7165 0x74b0 0x7d08 0x9084 0x9a69 0x9c25 0x6d3b 0x6ed1 0x733e 0x8c41 0x95ca 0x51f0 0x5e4c 0x5fa8 0x604d 0x60f6 0x6130 0x614c 0x6643 0x6644 0x69a5 0x6cc1 0x6e5f 0x6ec9 0x6f62 0x714c 0x749c 0x7687 0x7bc1 0x7c27 0x8352 0x8757 0x9051 0x968d 0x9ec3 0x532f 0x56de 0x5efb 0x5f8a 0x6062 0x6094 0x61f7 0x6666 0x6703 0x6a9c 0x6dee 0x6fae 0x7070 0x736a 0x7e6a 0x81be 0x8334 0x86d4 0x8aa8 0x8cc4 0x5283 0x7372 0x5b96 0x6a6b 0x9404 0x54ee 0x5686 0x5b5d 0x6548 0x6585 0x66c9 0x689f 0x6d8d 0x6dc6 ) ; 0x7d21 ... 0x7d7e (block 92 0x723b 0x80b4 0x9175 0x9a4d 0x4faf 0x5019 0x539a 0x540e 0x543c 0x5589 0x55c5 0x5e3f 0x5f8c 0x673d 0x7166 0x73dd 0x9005 0x52db 0x52f3 0x5864 0x58ce 0x7104 0x718f 0x71fb 0x85b0 0x8a13 0x6688 0x85a8 0x55a7 0x6684 0x714a 0x8431 0x5349 0x5599 0x6bc1 0x5f59 0x5fbd 0x63ee 0x6689 0x7147 0x8af1 0x8f1d 0x9ebe 0x4f11 0x643a 0x70cb 0x7566 0x8667 0x6064 0x8b4e 0x9df8 0x5147 0x51f6 0x5308 0x6d36 0x80f8 0x9ed1 0x6615 0x6b23 0x7098 0x75d5 0x5403 0x5c79 0x7d07 0x8a16 0x6b20 0x6b3d 0x6b46 0x5438 0x6070 0x6d3d 0x7fd5 0x8208 0x50d6 0x51de 0x559c 0x566b 0x56cd 0x59ec 0x5b09 0x5e0c 0x6199 0x6198 0x6231 0x665e 0x66e6 0x7199 0x71b9 0x71ba 0x72a7 0x79a7 0x7a00 0x7fb2 0x8a70 ) vflib3-3.6.14.dfsg/ccv/gb2312_unicode.ccv0000644000175000017500000020017307006213675017153 0ustar mohuramohura; Conversion table: GB2312 ==> UNICODE (charset-external-name GB2312) (charset-external-encoding ISO2022) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x21) (c1-max 0x77) (c2-min 0x21) (c2-max 0x7e) (block-size 256) (nblocks 87) ; 0x2121 ... 0x217e (block 0 0x3000 0x3001 0x3002 0x30fb 0x02c9 0x02c7 0x00a8 0x3003 0x3005 0x2015 0xff5e 0x2225 0x2026 0x2018 0x2019 0x201c 0x201d 0x3014 0x3015 0x3008 0x3009 0x300a 0x300b 0x300c 0x300d 0x300e 0x300f 0x3016 0x3017 0x3010 0x3011 0x00b1 0x00d7 0x00f7 0x2236 0x2227 0x2228 0x2211 0x220f 0x222a 0x2229 0x2208 0x2237 0x221a 0x22a5 0x2225 0x2220 0x2312 0x2299 0x222b 0x222e 0x2261 0x224c 0x2248 0x223d 0x221d 0x2260 0x226e 0x226f 0x2264 0x2265 0x221e 0x2235 0x2234 0x2642 0x2640 0x00b0 0x2032 0x2033 0x2103 0xff04 0x00a4 0xffe0 0xffe1 0x2030 0x00a7 0x2116 0x2606 0x2605 0x25cb 0x25cf 0x25ce 0x25c7 0x25c6 0x25a1 0x25a0 0x25b3 0x25b2 0x203b 0x2192 0x2190 0x2191 0x2193 0x3013 ) ; 0x2221 ... 0x227e (block 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x2488 0x2489 0x248a 0x248b 0x248c 0x248d 0x248e 0x248f 0x2490 0x2491 0x2492 0x2493 0x2494 0x2495 0x2496 0x2497 0x2498 0x2499 0x249a 0x249b 0x2474 0x2475 0x2476 0x2477 0x2478 0x2479 0x247a 0x247b 0x247c 0x247d 0x247e 0x247f 0x2480 0x2481 0x2482 0x2483 0x2484 0x2485 0x2486 0x2487 0x2460 0x2461 0x2462 0x2463 0x2464 0x2465 0x2466 0x2467 0x2468 0x2469 -1 -1 0x3220 0x3221 0x3222 0x3223 0x3224 0x3225 0x3226 0x3227 0x3228 0x3229 -1 -1 0x2160 0x2161 0x2162 0x2163 0x2164 0x2165 0x2166 0x2167 0x2168 0x2169 0x216a 0x216b -1 -1 ) ; 0x2321 ... 0x237e (block 2 0xff01 0xff02 0xff03 0xffe5 0xff05 0xff06 0xff07 0xff08 0xff09 0xff0a 0xff0b 0xff0c 0xff0d 0xff0e 0xff0f 0xff10 0xff11 0xff12 0xff13 0xff14 0xff15 0xff16 0xff17 0xff18 0xff19 0xff1a 0xff1b 0xff1c 0xff1d 0xff1e 0xff1f 0xff20 0xff21 0xff22 0xff23 0xff24 0xff25 0xff26 0xff27 0xff28 0xff29 0xff2a 0xff2b 0xff2c 0xff2d 0xff2e 0xff2f 0xff30 0xff31 0xff32 0xff33 0xff34 0xff35 0xff36 0xff37 0xff38 0xff39 0xff3a 0xff3b 0xff3c 0xff3d 0xff3e 0xff3f 0xff40 0xff41 0xff42 0xff43 0xff44 0xff45 0xff46 0xff47 0xff48 0xff49 0xff4a 0xff4b 0xff4c 0xff4d 0xff4e 0xff4f 0xff50 0xff51 0xff52 0xff53 0xff54 0xff55 0xff56 0xff57 0xff58 0xff59 0xff5a 0xff5b 0xff5c 0xff5d 0xffe3 ) ; 0x2421 ... 0x247e (block 3 0x3041 0x3042 0x3043 0x3044 0x3045 0x3046 0x3047 0x3048 0x3049 0x304a 0x304b 0x304c 0x304d 0x304e 0x304f 0x3050 0x3051 0x3052 0x3053 0x3054 0x3055 0x3056 0x3057 0x3058 0x3059 0x305a 0x305b 0x305c 0x305d 0x305e 0x305f 0x3060 0x3061 0x3062 0x3063 0x3064 0x3065 0x3066 0x3067 0x3068 0x3069 0x306a 0x306b 0x306c 0x306d 0x306e 0x306f 0x3070 0x3071 0x3072 0x3073 0x3074 0x3075 0x3076 0x3077 0x3078 0x3079 0x307a 0x307b 0x307c 0x307d 0x307e 0x307f 0x3080 0x3081 0x3082 0x3083 0x3084 0x3085 0x3086 0x3087 0x3088 0x3089 0x308a 0x308b 0x308c 0x308d 0x308e 0x308f 0x3090 0x3091 0x3092 0x3093 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2521 ... 0x257e (block 4 0x30a1 0x30a2 0x30a3 0x30a4 0x30a5 0x30a6 0x30a7 0x30a8 0x30a9 0x30aa 0x30ab 0x30ac 0x30ad 0x30ae 0x30af 0x30b0 0x30b1 0x30b2 0x30b3 0x30b4 0x30b5 0x30b6 0x30b7 0x30b8 0x30b9 0x30ba 0x30bb 0x30bc 0x30bd 0x30be 0x30bf 0x30c0 0x30c1 0x30c2 0x30c3 0x30c4 0x30c5 0x30c6 0x30c7 0x30c8 0x30c9 0x30ca 0x30cb 0x30cc 0x30cd 0x30ce 0x30cf 0x30d0 0x30d1 0x30d2 0x30d3 0x30d4 0x30d5 0x30d6 0x30d7 0x30d8 0x30d9 0x30da 0x30db 0x30dc 0x30dd 0x30de 0x30df 0x30e0 0x30e1 0x30e2 0x30e3 0x30e4 0x30e5 0x30e6 0x30e7 0x30e8 0x30e9 0x30ea 0x30eb 0x30ec 0x30ed 0x30ee 0x30ef 0x30f0 0x30f1 0x30f2 0x30f3 0x30f4 0x30f5 0x30f6 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2621 ... 0x267e (block 5 0x0391 0x0392 0x0393 0x0394 0x0395 0x0396 0x0397 0x0398 0x0399 0x039a 0x039b 0x039c 0x039d 0x039e 0x039f 0x03a0 0x03a1 0x03a3 0x03a4 0x03a5 0x03a6 0x03a7 0x03a8 0x03a9 -1 -1 -1 -1 -1 -1 -1 -1 0x03b1 0x03b2 0x03b3 0x03b4 0x03b5 0x03b6 0x03b7 0x03b8 0x03b9 0x03ba 0x03bb 0x03bc 0x03bd 0x03be 0x03bf 0x03c0 0x03c1 0x03c3 0x03c4 0x03c5 0x03c6 0x03c7 0x03c8 0x03c9 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2721 ... 0x277e (block 6 0x0410 0x0411 0x0412 0x0413 0x0414 0x0415 0x0401 0x0416 0x0417 0x0418 0x0419 0x041a 0x041b 0x041c 0x041d 0x041e 0x041f 0x0420 0x0421 0x0422 0x0423 0x0424 0x0425 0x0426 0x0427 0x0428 0x0429 0x042a 0x042b 0x042c 0x042d 0x042e 0x042f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x0430 0x0431 0x0432 0x0433 0x0434 0x0435 0x0451 0x0436 0x0437 0x0438 0x0439 0x043a 0x043b 0x043c 0x043d 0x043e 0x043f 0x0440 0x0441 0x0442 0x0443 0x0444 0x0445 0x0446 0x0447 0x0448 0x0449 0x044a 0x044b 0x044c 0x044d 0x044e 0x044f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2821 ... 0x287e (block 7 0x0101 0x00e1 0x01ce 0x00e0 0x0113 0x00e9 0x011b 0x00e8 0x012b 0x00ed 0x01d0 0x00ec 0x014d 0x00f3 0x01d2 0x00f2 0x016b 0x00fa 0x01d4 0x00f9 0x01d6 0x01d8 0x01da 0x01dc 0x00fc 0x00ea -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x3105 0x3106 0x3107 0x3108 0x3109 0x310a 0x310b 0x310c 0x310d 0x310e 0x310f 0x3110 0x3111 0x3112 0x3113 0x3114 0x3115 0x3116 0x3117 0x3118 0x3119 0x311a 0x311b 0x311c 0x311d 0x311e 0x311f 0x3120 0x3121 0x3122 0x3123 0x3124 0x3125 0x3126 0x3127 0x3128 0x3129 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2921 ... 0x297e (block 8 -1 -1 -1 0x2500 0x2501 0x2502 0x2503 0x2504 0x2505 0x2506 0x2507 0x2508 0x2509 0x250a 0x250b 0x250c 0x250d 0x250e 0x250f 0x2510 0x2511 0x2512 0x2513 0x2514 0x2515 0x2516 0x2517 0x2518 0x2519 0x251a 0x251b 0x251c 0x251d 0x251e 0x251f 0x2520 0x2521 0x2522 0x2523 0x2524 0x2525 0x2526 0x2527 0x2528 0x2529 0x252a 0x252b 0x252c 0x252d 0x252e 0x252f 0x2530 0x2531 0x2532 0x2533 0x2534 0x2535 0x2536 0x2537 0x2538 0x2539 0x253a 0x253b 0x253c 0x253d 0x253e 0x253f 0x2540 0x2541 0x2542 0x2543 0x2544 0x2545 0x2546 0x2547 0x2548 0x2549 0x254a 0x254b -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2a21 ... 0x2a7e (block 9 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2b21 ... 0x2b7e (block 10 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2c21 ... 0x2c7e (block 11 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2d21 ... 0x2d7e (block 12 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2e21 ... 0x2e7e (block 13 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2f21 ... 0x2f7e (block 14 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x3021 ... 0x307e (block 15 0x554a 0x963f 0x57c3 0x6328 0x54ce 0x5509 0x54c0 0x7691 0x764c 0x853c 0x77ee 0x827e 0x788d 0x7231 0x9698 0x978d 0x6c28 0x5b89 0x4ffa 0x6309 0x6697 0x5cb8 0x80fa 0x6848 0x80ae 0x6602 0x76ce 0x51f9 0x6556 0x71ac 0x7ff1 0x8884 0x50b2 0x5965 0x61ca 0x6fb3 0x82ad 0x634c 0x6252 0x53ed 0x5427 0x7b06 0x516b 0x75a4 0x5df4 0x62d4 0x8dcb 0x9776 0x628a 0x8019 0x575d 0x9738 0x7f62 0x7238 0x767d 0x67cf 0x767e 0x6446 0x4f70 0x8d25 0x62dc 0x7a17 0x6591 0x73ed 0x642c 0x6273 0x822c 0x9881 0x677f 0x7248 0x626e 0x62cc 0x4f34 0x74e3 0x534a 0x529e 0x7eca 0x90a6 0x5e2e 0x6886 0x699c 0x8180 0x7ed1 0x68d2 0x78c5 0x868c 0x9551 0x508d 0x8c24 0x82de 0x80de 0x5305 0x8912 0x5265 ) ; 0x3121 ... 0x317e (block 16 0x8584 0x96f9 0x4fdd 0x5821 0x9971 0x5b9d 0x62b1 0x62a5 0x66b4 0x8c79 0x9c8d 0x7206 0x676f 0x7891 0x60b2 0x5351 0x5317 0x8f88 0x80cc 0x8d1d 0x94a1 0x500d 0x72c8 0x5907 0x60eb 0x7119 0x88ab 0x5954 0x82ef 0x672c 0x7b28 0x5d29 0x7ef7 0x752d 0x6cf5 0x8e66 0x8ff8 0x903c 0x9f3b 0x6bd4 0x9119 0x7b14 0x5f7c 0x78a7 0x84d6 0x853d 0x6bd5 0x6bd9 0x6bd6 0x5e01 0x5e87 0x75f9 0x95ed 0x655d 0x5f0a 0x5fc5 0x8f9f 0x58c1 0x81c2 0x907f 0x965b 0x97ad 0x8fb9 0x7f16 0x8d2c 0x6241 0x4fbf 0x53d8 0x535e 0x8fa8 0x8fa9 0x8fab 0x904d 0x6807 0x5f6a 0x8198 0x8868 0x9cd6 0x618b 0x522b 0x762a 0x5f6c 0x658c 0x6fd2 0x6ee8 0x5bbe 0x6448 0x5175 0x51b0 0x67c4 0x4e19 0x79c9 0x997c 0x70b3 ) ; 0x3221 ... 0x327e (block 17 0x75c5 0x5e76 0x73bb 0x83e0 0x64ad 0x62e8 0x94b5 0x6ce2 0x535a 0x52c3 0x640f 0x94c2 0x7b94 0x4f2f 0x5e1b 0x8236 0x8116 0x818a 0x6e24 0x6cca 0x9a73 0x6355 0x535c 0x54fa 0x8865 0x57e0 0x4e0d 0x5e03 0x6b65 0x7c3f 0x90e8 0x6016 0x64e6 0x731c 0x88c1 0x6750 0x624d 0x8d22 0x776c 0x8e29 0x91c7 0x5f69 0x83dc 0x8521 0x9910 0x53c2 0x8695 0x6b8b 0x60ed 0x60e8 0x707f 0x82cd 0x8231 0x4ed3 0x6ca7 0x85cf 0x64cd 0x7cd9 0x69fd 0x66f9 0x8349 0x5395 0x7b56 0x4fa7 0x518c 0x6d4b 0x5c42 0x8e6d 0x63d2 0x53c9 0x832c 0x8336 0x67e5 0x78b4 0x643d 0x5bdf 0x5c94 0x5dee 0x8be7 0x62c6 0x67f4 0x8c7a 0x6400 0x63ba 0x8749 0x998b 0x8c17 0x7f20 0x94f2 0x4ea7 0x9610 0x98a4 0x660c 0x7316 ) ; 0x3321 ... 0x337e (block 18 0x573a 0x5c1d 0x5e38 0x957f 0x507f 0x80a0 0x5382 0x655e 0x7545 0x5531 0x5021 0x8d85 0x6284 0x949e 0x671d 0x5632 0x6f6e 0x5de2 0x5435 0x7092 0x8f66 0x626f 0x64a4 0x63a3 0x5f7b 0x6f88 0x90f4 0x81e3 0x8fb0 0x5c18 0x6668 0x5ff1 0x6c89 0x9648 0x8d81 0x886c 0x6491 0x79f0 0x57ce 0x6a59 0x6210 0x5448 0x4e58 0x7a0b 0x60e9 0x6f84 0x8bda 0x627f 0x901e 0x9a8b 0x79e4 0x5403 0x75f4 0x6301 0x5319 0x6c60 0x8fdf 0x5f1b 0x9a70 0x803b 0x9f7f 0x4f88 0x5c3a 0x8d64 0x7fc5 0x65a5 0x70bd 0x5145 0x51b2 0x866b 0x5d07 0x5ba0 0x62bd 0x916c 0x7574 0x8e0c 0x7a20 0x6101 0x7b79 0x4ec7 0x7ef8 0x7785 0x4e11 0x81ed 0x521d 0x51fa 0x6a71 0x53a8 0x8e87 0x9504 0x96cf 0x6ec1 0x9664 0x695a ) ; 0x3421 ... 0x347e (block 19 0x7840 0x50a8 0x77d7 0x6410 0x89e6 0x5904 0x63e3 0x5ddd 0x7a7f 0x693d 0x4f20 0x8239 0x5598 0x4e32 0x75ae 0x7a97 0x5e62 0x5e8a 0x95ef 0x521b 0x5439 0x708a 0x6376 0x9524 0x5782 0x6625 0x693f 0x9187 0x5507 0x6df3 0x7eaf 0x8822 0x6233 0x7ef0 0x75b5 0x8328 0x78c1 0x96cc 0x8f9e 0x6148 0x74f7 0x8bcd 0x6b64 0x523a 0x8d50 0x6b21 0x806a 0x8471 0x56f1 0x5306 0x4ece 0x4e1b 0x51d1 0x7c97 0x918b 0x7c07 0x4fc3 0x8e7f 0x7be1 0x7a9c 0x6467 0x5d14 0x50ac 0x8106 0x7601 0x7cb9 0x6dec 0x7fe0 0x6751 0x5b58 0x5bf8 0x78cb 0x64ae 0x6413 0x63aa 0x632b 0x9519 0x642d 0x8fbe 0x7b54 0x7629 0x6253 0x5927 0x5446 0x6b79 0x50a3 0x6234 0x5e26 0x6b86 0x4ee3 0x8d37 0x888b 0x5f85 0x902e ) ; 0x3521 ... 0x357e (block 20 0x6020 0x803d 0x62c5 0x4e39 0x5355 0x90f8 0x63b8 0x80c6 0x65e6 0x6c2e 0x4f46 0x60ee 0x6de1 0x8bde 0x5f39 0x86cb 0x5f53 0x6321 0x515a 0x8361 0x6863 0x5200 0x6363 0x8e48 0x5012 0x5c9b 0x7977 0x5bfc 0x5230 0x7a3b 0x60bc 0x9053 0x76d7 0x5fb7 0x5f97 0x7684 0x8e6c 0x706f 0x767b 0x7b49 0x77aa 0x51f3 0x9093 0x5824 0x4f4e 0x6ef4 0x8fea 0x654c 0x7b1b 0x72c4 0x6da4 0x7fdf 0x5ae1 0x62b5 0x5e95 0x5730 0x8482 0x7b2c 0x5e1d 0x5f1f 0x9012 0x7f14 0x98a0 0x6382 0x6ec7 0x7898 0x70b9 0x5178 0x975b 0x57ab 0x7535 0x4f43 0x7538 0x5e97 0x60e6 0x5960 0x6dc0 0x6bbf 0x7889 0x53fc 0x96d5 0x51cb 0x5201 0x6389 0x540a 0x9493 0x8c03 0x8dcc 0x7239 0x789f 0x8776 0x8fed 0x8c0d 0x53e0 ) ; 0x3621 ... 0x367e (block 21 0x4e01 0x76ef 0x53ee 0x9489 0x9876 0x9f0e 0x952d 0x5b9a 0x8ba2 0x4e22 0x4e1c 0x51ac 0x8463 0x61c2 0x52a8 0x680b 0x4f97 0x606b 0x51bb 0x6d1e 0x515c 0x6296 0x6597 0x9661 0x8c46 0x9017 0x75d8 0x90fd 0x7763 0x6bd2 0x728a 0x72ec 0x8bfb 0x5835 0x7779 0x8d4c 0x675c 0x9540 0x809a 0x5ea6 0x6e21 0x5992 0x7aef 0x77ed 0x953b 0x6bb5 0x65ad 0x7f0e 0x5806 0x5151 0x961f 0x5bf9 0x58a9 0x5428 0x8e72 0x6566 0x987f 0x56e4 0x949d 0x76fe 0x9041 0x6387 0x54c6 0x591a 0x593a 0x579b 0x8eb2 0x6735 0x8dfa 0x8235 0x5241 0x60f0 0x5815 0x86fe 0x5ce8 0x9e45 0x4fc4 0x989d 0x8bb9 0x5a25 0x6076 0x5384 0x627c 0x904f 0x9102 0x997f 0x6069 0x800c 0x513f 0x8033 0x5c14 0x9975 0x6d31 0x4e8c ) ; 0x3721 ... 0x377e (block 22 0x8d30 0x53d1 0x7f5a 0x7b4f 0x4f10 0x4e4f 0x9600 0x6cd5 0x73d0 0x85e9 0x5e06 0x756a 0x7ffb 0x6a0a 0x77fe 0x9492 0x7e41 0x51e1 0x70e6 0x53cd 0x8fd4 0x8303 0x8d29 0x72af 0x996d 0x6cdb 0x574a 0x82b3 0x65b9 0x80aa 0x623f 0x9632 0x59a8 0x4eff 0x8bbf 0x7eba 0x653e 0x83f2 0x975e 0x5561 0x98de 0x80a5 0x532a 0x8bfd 0x5420 0x80ba 0x5e9f 0x6cb8 0x8d39 0x82ac 0x915a 0x5429 0x6c1b 0x5206 0x7eb7 0x575f 0x711a 0x6c7e 0x7c89 0x594b 0x4efd 0x5fff 0x6124 0x7caa 0x4e30 0x5c01 0x67ab 0x8702 0x5cf0 0x950b 0x98ce 0x75af 0x70fd 0x9022 0x51af 0x7f1d 0x8bbd 0x5949 0x51e4 0x4f5b 0x5426 0x592b 0x6577 0x80a4 0x5b75 0x6276 0x62c2 0x8f90 0x5e45 0x6c1f 0x7b26 0x4f0f 0x4fd8 0x670d ) ; 0x3821 ... 0x387e (block 23 0x6d6e 0x6daa 0x798f 0x88b1 0x5f17 0x752b 0x629a 0x8f85 0x4fef 0x91dc 0x65a7 0x812f 0x8151 0x5e9c 0x8150 0x8d74 0x526f 0x8986 0x8d4b 0x590d 0x5085 0x4ed8 0x961c 0x7236 0x8179 0x8d1f 0x5bcc 0x8ba3 0x9644 0x5987 0x7f1a 0x5490 0x5676 0x560e 0x8be5 0x6539 0x6982 0x9499 0x76d6 0x6e89 0x5e72 0x7518 0x6746 0x67d1 0x7aff 0x809d 0x8d76 0x611f 0x79c6 0x6562 0x8d63 0x5188 0x521a 0x94a2 0x7f38 0x809b 0x7eb2 0x5c97 0x6e2f 0x6760 0x7bd9 0x768b 0x9ad8 0x818f 0x7f94 0x7cd5 0x641e 0x9550 0x7a3f 0x544a 0x54e5 0x6b4c 0x6401 0x6208 0x9e3d 0x80f3 0x7599 0x5272 0x9769 0x845b 0x683c 0x86e4 0x9601 0x9694 0x94ec 0x4e2a 0x5404 0x7ed9 0x6839 0x8ddf 0x8015 0x66f4 0x5e9a 0x7fb9 ) ; 0x3921 ... 0x397e (block 24 0x57c2 0x803f 0x6897 0x5de5 0x653b 0x529f 0x606d 0x9f9a 0x4f9b 0x8eac 0x516c 0x5bab 0x5f13 0x5de9 0x6c5e 0x62f1 0x8d21 0x5171 0x94a9 0x52fe 0x6c9f 0x82df 0x72d7 0x57a2 0x6784 0x8d2d 0x591f 0x8f9c 0x83c7 0x5495 0x7b8d 0x4f30 0x6cbd 0x5b64 0x59d1 0x9f13 0x53e4 0x86ca 0x9aa8 0x8c37 0x80a1 0x6545 0x987e 0x56fa 0x96c7 0x522e 0x74dc 0x5250 0x5be1 0x6302 0x8902 0x4e56 0x62d0 0x602a 0x68fa 0x5173 0x5b98 0x51a0 0x89c2 0x7ba1 0x9986 0x7f50 0x60ef 0x704c 0x8d2f 0x5149 0x5e7f 0x901b 0x7470 0x89c4 0x572d 0x7845 0x5f52 0x9f9f 0x95fa 0x8f68 0x9b3c 0x8be1 0x7678 0x6842 0x67dc 0x8dea 0x8d35 0x523d 0x8f8a 0x6eda 0x68cd 0x9505 0x90ed 0x56fd 0x679c 0x88f9 0x8fc7 0x54c8 ) ; 0x3a21 ... 0x3a7e (block 25 0x9ab8 0x5b69 0x6d77 0x6c26 0x4ea5 0x5bb3 0x9a87 0x9163 0x61a8 0x90af 0x97e9 0x542b 0x6db5 0x5bd2 0x51fd 0x558a 0x7f55 0x7ff0 0x64bc 0x634d 0x65f1 0x61be 0x608d 0x710a 0x6c57 0x6c49 0x592f 0x676d 0x822a 0x58d5 0x568e 0x8c6a 0x6beb 0x90dd 0x597d 0x8017 0x53f7 0x6d69 0x5475 0x559d 0x8377 0x83cf 0x6838 0x79be 0x548c 0x4f55 0x5408 0x76d2 0x8c89 0x9602 0x6cb3 0x6db8 0x8d6b 0x8910 0x9e64 0x8d3a 0x563f 0x9ed1 0x75d5 0x5f88 0x72e0 0x6068 0x54fc 0x4ea8 0x6a2a 0x8861 0x6052 0x8f70 0x54c4 0x70d8 0x8679 0x9e3f 0x6d2a 0x5b8f 0x5f18 0x7ea2 0x5589 0x4faf 0x7334 0x543c 0x539a 0x5019 0x540e 0x547c 0x4e4e 0x5ffd 0x745a 0x58f6 0x846b 0x80e1 0x8774 0x72d0 0x7cca 0x6e56 ) ; 0x3b21 ... 0x3b7e (block 26 0x5f27 0x864e 0x552c 0x62a4 0x4e92 0x6caa 0x6237 0x82b1 0x54d7 0x534e 0x733e 0x6ed1 0x753b 0x5212 0x5316 0x8bdd 0x69d0 0x5f8a 0x6000 0x6dee 0x574f 0x6b22 0x73af 0x6853 0x8fd8 0x7f13 0x6362 0x60a3 0x5524 0x75ea 0x8c62 0x7115 0x6da3 0x5ba6 0x5e7b 0x8352 0x614c 0x9ec4 0x78fa 0x8757 0x7c27 0x7687 0x51f0 0x60f6 0x714c 0x6643 0x5e4c 0x604d 0x8c0e 0x7070 0x6325 0x8f89 0x5fbd 0x6062 0x86d4 0x56de 0x6bc1 0x6094 0x6167 0x5349 0x60e0 0x6666 0x8d3f 0x79fd 0x4f1a 0x70e9 0x6c47 0x8bb3 0x8bf2 0x7ed8 0x8364 0x660f 0x5a5a 0x9b42 0x6d51 0x6df7 0x8c41 0x6d3b 0x4f19 0x706b 0x83b7 0x6216 0x60d1 0x970d 0x8d27 0x7978 0x51fb 0x573e 0x57fa 0x673a 0x7578 0x7a3d 0x79ef 0x7b95 ) ; 0x3c21 ... 0x3c7e (block 27 0x808c 0x9965 0x8ff9 0x6fc0 0x8ba5 0x9e21 0x59ec 0x7ee9 0x7f09 0x5409 0x6781 0x68d8 0x8f91 0x7c4d 0x96c6 0x53ca 0x6025 0x75be 0x6c72 0x5373 0x5ac9 0x7ea7 0x6324 0x51e0 0x810a 0x5df1 0x84df 0x6280 0x5180 0x5b63 0x4f0e 0x796d 0x5242 0x60b8 0x6d4e 0x5bc4 0x5bc2 0x8ba1 0x8bb0 0x65e2 0x5fcc 0x9645 0x5993 0x7ee7 0x7eaa 0x5609 0x67b7 0x5939 0x4f73 0x5bb6 0x52a0 0x835a 0x988a 0x8d3e 0x7532 0x94be 0x5047 0x7a3c 0x4ef7 0x67b6 0x9a7e 0x5ac1 0x6b7c 0x76d1 0x575a 0x5c16 0x7b3a 0x95f4 0x714e 0x517c 0x80a9 0x8270 0x5978 0x7f04 0x8327 0x68c0 0x67ec 0x78b1 0x7877 0x62e3 0x6361 0x7b80 0x4fed 0x526a 0x51cf 0x8350 0x69db 0x9274 0x8df5 0x8d31 0x89c1 0x952e 0x7bad 0x4ef6 ) ; 0x3d21 ... 0x3d7e (block 28 0x5065 0x8230 0x5251 0x996f 0x6e10 0x6e85 0x6da7 0x5efa 0x50f5 0x59dc 0x5c06 0x6d46 0x6c5f 0x7586 0x848b 0x6868 0x5956 0x8bb2 0x5320 0x9171 0x964d 0x8549 0x6912 0x7901 0x7126 0x80f6 0x4ea4 0x90ca 0x6d47 0x9a84 0x5a07 0x56bc 0x6405 0x94f0 0x77eb 0x4fa5 0x811a 0x72e1 0x89d2 0x997a 0x7f34 0x7ede 0x527f 0x6559 0x9175 0x8f7f 0x8f83 0x53eb 0x7a96 0x63ed 0x63a5 0x7686 0x79f8 0x8857 0x9636 0x622a 0x52ab 0x8282 0x6854 0x6770 0x6377 0x776b 0x7aed 0x6d01 0x7ed3 0x89e3 0x59d0 0x6212 0x85c9 0x82a5 0x754c 0x501f 0x4ecb 0x75a5 0x8beb 0x5c4a 0x5dfe 0x7b4b 0x65a4 0x91d1 0x4eca 0x6d25 0x895f 0x7d27 0x9526 0x4ec5 0x8c28 0x8fdb 0x9773 0x664b 0x7981 0x8fd1 0x70ec 0x6d78 ) ; 0x3e21 ... 0x3e7e (block 29 0x5c3d 0x52b2 0x8346 0x5162 0x830e 0x775b 0x6676 0x9cb8 0x4eac 0x60ca 0x7cbe 0x7cb3 0x7ecf 0x4e95 0x8b66 0x666f 0x9888 0x9759 0x5883 0x656c 0x955c 0x5f84 0x75c9 0x9756 0x7adf 0x7ade 0x51c0 0x70af 0x7a98 0x63ea 0x7a76 0x7ea0 0x7396 0x97ed 0x4e45 0x7078 0x4e5d 0x9152 0x53a9 0x6551 0x65e7 0x81fc 0x8205 0x548e 0x5c31 0x759a 0x97a0 0x62d8 0x72d9 0x75bd 0x5c45 0x9a79 0x83ca 0x5c40 0x5480 0x77e9 0x4e3e 0x6cae 0x805a 0x62d2 0x636e 0x5de8 0x5177 0x8ddd 0x8e1e 0x952f 0x4ff1 0x53e5 0x60e7 0x70ac 0x5267 0x6350 0x9e43 0x5a1f 0x5026 0x7737 0x5377 0x7ee2 0x6485 0x652b 0x6289 0x6398 0x5014 0x7235 0x89c9 0x51b3 0x8bc0 0x7edd 0x5747 0x83cc 0x94a7 0x519b 0x541b 0x5cfb ) ; 0x3f21 ... 0x3f7e (block 30 0x4fca 0x7ae3 0x6d5a 0x90e1 0x9a8f 0x5580 0x5496 0x5361 0x54af 0x5f00 0x63e9 0x6977 0x51ef 0x6168 0x520a 0x582a 0x52d8 0x574e 0x780d 0x770b 0x5eb7 0x6177 0x7ce0 0x625b 0x6297 0x4ea2 0x7095 0x8003 0x62f7 0x70e4 0x9760 0x5777 0x82db 0x67ef 0x68f5 0x78d5 0x9897 0x79d1 0x58f3 0x54b3 0x53ef 0x6e34 0x514b 0x523b 0x5ba2 0x8bfe 0x80af 0x5543 0x57a6 0x6073 0x5751 0x542d 0x7a7a 0x6050 0x5b54 0x63a7 0x62a0 0x53e3 0x6263 0x5bc7 0x67af 0x54ed 0x7a9f 0x82e6 0x9177 0x5e93 0x88e4 0x5938 0x57ae 0x630e 0x8de8 0x80ef 0x5757 0x7b77 0x4fa9 0x5feb 0x5bbd 0x6b3e 0x5321 0x7b50 0x72c2 0x6846 0x77ff 0x7736 0x65f7 0x51b5 0x4e8f 0x76d4 0x5cbf 0x7aa5 0x8475 0x594e 0x9b41 0x5080 ) ; 0x4021 ... 0x407e (block 31 0x9988 0x6127 0x6e83 0x5764 0x6606 0x6346 0x56f0 0x62ec 0x6269 0x5ed3 0x9614 0x5783 0x62c9 0x5587 0x8721 0x814a 0x8fa3 0x5566 0x83b1 0x6765 0x8d56 0x84dd 0x5a6a 0x680f 0x62e6 0x7bee 0x9611 0x5170 0x6f9c 0x8c30 0x63fd 0x89c8 0x61d2 0x7f06 0x70c2 0x6ee5 0x7405 0x6994 0x72fc 0x5eca 0x90ce 0x6717 0x6d6a 0x635e 0x52b3 0x7262 0x8001 0x4f6c 0x59e5 0x916a 0x70d9 0x6d9d 0x52d2 0x4e50 0x96f7 0x956d 0x857e 0x78ca 0x7d2f 0x5121 0x5792 0x64c2 0x808b 0x7c7b 0x6cea 0x68f1 0x695e 0x51b7 0x5398 0x68a8 0x7281 0x9ece 0x7bf1 0x72f8 0x79bb 0x6f13 0x7406 0x674e 0x91cc 0x9ca4 0x793c 0x8389 0x8354 0x540f 0x6817 0x4e3d 0x5389 0x52b1 0x783e 0x5386 0x5229 0x5088 0x4f8b 0x4fd0 ) ; 0x4121 ... 0x417e (block 32 0x75e2 0x7acb 0x7c92 0x6ca5 0x96b6 0x529b 0x7483 0x54e9 0x4fe9 0x8054 0x83b2 0x8fde 0x9570 0x5ec9 0x601c 0x6d9f 0x5e18 0x655b 0x8138 0x94fe 0x604b 0x70bc 0x7ec3 0x7cae 0x51c9 0x6881 0x7cb1 0x826f 0x4e24 0x8f86 0x91cf 0x667e 0x4eae 0x8c05 0x64a9 0x804a 0x50da 0x7597 0x71ce 0x5be5 0x8fbd 0x6f66 0x4e86 0x6482 0x9563 0x5ed6 0x6599 0x5217 0x88c2 0x70c8 0x52a3 0x730e 0x7433 0x6797 0x78f7 0x9716 0x4e34 0x90bb 0x9cde 0x6dcb 0x51db 0x8d41 0x541d 0x62ce 0x73b2 0x83f1 0x96f6 0x9f84 0x94c3 0x4f36 0x7f9a 0x51cc 0x7075 0x9675 0x5cad 0x9886 0x53e6 0x4ee4 0x6e9c 0x7409 0x69b4 0x786b 0x998f 0x7559 0x5218 0x7624 0x6d41 0x67f3 0x516d 0x9f99 0x804b 0x5499 0x7b3c 0x7abf ) ; 0x4221 ... 0x427e (block 33 0x9686 0x5784 0x62e2 0x9647 0x697c 0x5a04 0x6402 0x7bd3 0x6f0f 0x964b 0x82a6 0x5362 0x9885 0x5e90 0x7089 0x63b3 0x5364 0x864f 0x9c81 0x9e93 0x788c 0x9732 0x8def 0x8d42 0x9e7f 0x6f5e 0x7984 0x5f55 0x9646 0x622e 0x9a74 0x5415 0x94dd 0x4fa3 0x65c5 0x5c65 0x5c61 0x7f15 0x8651 0x6c2f 0x5f8b 0x7387 0x6ee4 0x7eff 0x5ce6 0x631b 0x5b6a 0x6ee6 0x5375 0x4e71 0x63a0 0x7565 0x62a1 0x8f6e 0x4f26 0x4ed1 0x6ca6 0x7eb6 0x8bba 0x841d 0x87ba 0x7f57 0x903b 0x9523 0x7ba9 0x9aa1 0x88f8 0x843d 0x6d1b 0x9a86 0x7edc 0x5988 0x9ebb 0x739b 0x7801 0x8682 0x9a6c 0x9a82 0x561b 0x5417 0x57cb 0x4e70 0x9ea6 0x5356 0x8fc8 0x8109 0x7792 0x9992 0x86ee 0x6ee1 0x8513 0x66fc 0x6162 0x6f2b ) ; 0x4321 ... 0x437e (block 34 0x8c29 0x8292 0x832b 0x76f2 0x6c13 0x5fd9 0x83bd 0x732b 0x8305 0x951a 0x6bdb 0x77db 0x94c6 0x536f 0x8302 0x5192 0x5e3d 0x8c8c 0x8d38 0x4e48 0x73ab 0x679a 0x6885 0x9176 0x9709 0x7164 0x6ca1 0x7709 0x5a92 0x9541 0x6bcf 0x7f8e 0x6627 0x5bd0 0x59b9 0x5a9a 0x95e8 0x95f7 0x4eec 0x840c 0x8499 0x6aac 0x76df 0x9530 0x731b 0x68a6 0x5b5f 0x772f 0x919a 0x9761 0x7cdc 0x8ff7 0x8c1c 0x5f25 0x7c73 0x79d8 0x89c5 0x6ccc 0x871c 0x5bc6 0x5e42 0x68c9 0x7720 0x7ef5 0x5195 0x514d 0x52c9 0x5a29 0x7f05 0x9762 0x82d7 0x63cf 0x7784 0x85d0 0x79d2 0x6e3a 0x5e99 0x5999 0x8511 0x706d 0x6c11 0x62bf 0x76bf 0x654f 0x60af 0x95fd 0x660e 0x879f 0x9e23 0x94ed 0x540d 0x547d 0x8c2c 0x6478 ) ; 0x4421 ... 0x447e (block 35 0x6479 0x8611 0x6a21 0x819c 0x78e8 0x6469 0x9b54 0x62b9 0x672b 0x83ab 0x58a8 0x9ed8 0x6cab 0x6f20 0x5bde 0x964c 0x8c0b 0x725f 0x67d0 0x62c7 0x7261 0x4ea9 0x59c6 0x6bcd 0x5893 0x66ae 0x5e55 0x52df 0x6155 0x6728 0x76ee 0x7766 0x7267 0x7a46 0x62ff 0x54ea 0x5450 0x94a0 0x90a3 0x5a1c 0x7eb3 0x6c16 0x4e43 0x5976 0x8010 0x5948 0x5357 0x7537 0x96be 0x56ca 0x6320 0x8111 0x607c 0x95f9 0x6dd6 0x5462 0x9981 0x5185 0x5ae9 0x80fd 0x59ae 0x9713 0x502a 0x6ce5 0x5c3c 0x62df 0x4f60 0x533f 0x817b 0x9006 0x6eba 0x852b 0x62c8 0x5e74 0x78be 0x64b5 0x637b 0x5ff5 0x5a18 0x917f 0x9e1f 0x5c3f 0x634f 0x8042 0x5b7d 0x556e 0x954a 0x954d 0x6d85 0x60a8 0x67e0 0x72de 0x51dd 0x5b81 ) ; 0x4521 ... 0x457e (block 36 0x62e7 0x6cde 0x725b 0x626d 0x94ae 0x7ebd 0x8113 0x6d53 0x519c 0x5f04 0x5974 0x52aa 0x6012 0x5973 0x6696 0x8650 0x759f 0x632a 0x61e6 0x7cef 0x8bfa 0x54e6 0x6b27 0x9e25 0x6bb4 0x85d5 0x5455 0x5076 0x6ca4 0x556a 0x8db4 0x722c 0x5e15 0x6015 0x7436 0x62cd 0x6392 0x724c 0x5f98 0x6e43 0x6d3e 0x6500 0x6f58 0x76d8 0x78d0 0x76fc 0x7554 0x5224 0x53db 0x4e53 0x5e9e 0x65c1 0x802a 0x80d6 0x629b 0x5486 0x5228 0x70ae 0x888d 0x8dd1 0x6ce1 0x5478 0x80da 0x57f9 0x88f4 0x8d54 0x966a 0x914d 0x4f69 0x6c9b 0x55b7 0x76c6 0x7830 0x62a8 0x70f9 0x6f8e 0x5f6d 0x84ec 0x68da 0x787c 0x7bf7 0x81a8 0x670b 0x9e4f 0x6367 0x78b0 0x576f 0x7812 0x9739 0x6279 0x62ab 0x5288 0x7435 0x6bd7 ) ; 0x4621 ... 0x467e (block 37 0x5564 0x813e 0x75b2 0x76ae 0x5339 0x75de 0x50fb 0x5c41 0x8b6c 0x7bc7 0x504f 0x7247 0x9a97 0x98d8 0x6f02 0x74e2 0x7968 0x6487 0x77a5 0x62fc 0x9891 0x8d2b 0x54c1 0x8058 0x4e52 0x576a 0x82f9 0x840d 0x5e73 0x51ed 0x74f6 0x8bc4 0x5c4f 0x5761 0x6cfc 0x9887 0x5a46 0x7834 0x9b44 0x8feb 0x7c95 0x5256 0x6251 0x94fa 0x4ec6 0x8386 0x8461 0x83e9 0x84b2 0x57d4 0x6734 0x5703 0x666e 0x6d66 0x8c31 0x66dd 0x7011 0x671f 0x6b3a 0x6816 0x621a 0x59bb 0x4e03 0x51c4 0x6f06 0x67d2 0x6c8f 0x5176 0x68cb 0x5947 0x6b67 0x7566 0x5d0e 0x8110 0x9f50 0x65d7 0x7948 0x7941 0x9a91 0x8d77 0x5c82 0x4e5e 0x4f01 0x542f 0x5951 0x780c 0x5668 0x6c14 0x8fc4 0x5f03 0x6c7d 0x6ce3 0x8bab 0x6390 ) ; 0x4721 ... 0x477e (block 38 0x6070 0x6d3d 0x7275 0x6266 0x948e 0x94c5 0x5343 0x8fc1 0x7b7e 0x4edf 0x8c26 0x4e7e 0x9ed4 0x94b1 0x94b3 0x524d 0x6f5c 0x9063 0x6d45 0x8c34 0x5811 0x5d4c 0x6b20 0x6b49 0x67aa 0x545b 0x8154 0x7f8c 0x5899 0x8537 0x5f3a 0x62a2 0x6a47 0x9539 0x6572 0x6084 0x6865 0x77a7 0x4e54 0x4fa8 0x5de7 0x9798 0x64ac 0x7fd8 0x5ced 0x4fcf 0x7a8d 0x5207 0x8304 0x4e14 0x602f 0x7a83 0x94a6 0x4fb5 0x4eb2 0x79e6 0x7434 0x52e4 0x82b9 0x64d2 0x79bd 0x5bdd 0x6c81 0x9752 0x8f7b 0x6c22 0x503e 0x537f 0x6e05 0x64ce 0x6674 0x6c30 0x60c5 0x9877 0x8bf7 0x5e86 0x743c 0x7a77 0x79cb 0x4e18 0x90b1 0x7403 0x6c42 0x56da 0x914b 0x6cc5 0x8d8b 0x533a 0x86c6 0x66f2 0x8eaf 0x5c48 0x9a71 0x6e20 ) ; 0x4821 ... 0x487e (block 39 0x53d6 0x5a36 0x9f8b 0x8da3 0x53bb 0x5708 0x98a7 0x6743 0x919b 0x6cc9 0x5168 0x75ca 0x62f3 0x72ac 0x5238 0x529d 0x7f3a 0x7094 0x7638 0x5374 0x9e4a 0x69b7 0x786e 0x96c0 0x88d9 0x7fa4 0x7136 0x71c3 0x5189 0x67d3 0x74e4 0x58e4 0x6518 0x56b7 0x8ba9 0x9976 0x6270 0x7ed5 0x60f9 0x70ed 0x58ec 0x4ec1 0x4eba 0x5fcd 0x97e7 0x4efb 0x8ba4 0x5203 0x598a 0x7eab 0x6254 0x4ecd 0x65e5 0x620e 0x8338 0x84c9 0x8363 0x878d 0x7194 0x6eb6 0x5bb9 0x7ed2 0x5197 0x63c9 0x67d4 0x8089 0x8339 0x8815 0x5112 0x5b7a 0x5982 0x8fb1 0x4e73 0x6c5d 0x5165 0x8925 0x8f6f 0x962e 0x854a 0x745e 0x9510 0x95f0 0x6da6 0x82e5 0x5f31 0x6492 0x6d12 0x8428 0x816e 0x9cc3 0x585e 0x8d5b 0x4e09 0x53c1 ) ; 0x4921 ... 0x497e (block 40 0x4f1e 0x6563 0x6851 0x55d3 0x4e27 0x6414 0x9a9a 0x626b 0x5ac2 0x745f 0x8272 0x6da9 0x68ee 0x50e7 0x838e 0x7802 0x6740 0x5239 0x6c99 0x7eb1 0x50bb 0x5565 0x715e 0x7b5b 0x6652 0x73ca 0x82eb 0x6749 0x5c71 0x5220 0x717d 0x886b 0x95ea 0x9655 0x64c5 0x8d61 0x81b3 0x5584 0x6c55 0x6247 0x7f2e 0x5892 0x4f24 0x5546 0x8d4f 0x664c 0x4e0a 0x5c1a 0x88f3 0x68a2 0x634e 0x7a0d 0x70e7 0x828d 0x52fa 0x97f6 0x5c11 0x54e8 0x90b5 0x7ecd 0x5962 0x8d4a 0x86c7 0x820c 0x820d 0x8d66 0x6444 0x5c04 0x6151 0x6d89 0x793e 0x8bbe 0x7837 0x7533 0x547b 0x4f38 0x8eab 0x6df1 0x5a20 0x7ec5 0x795e 0x6c88 0x5ba1 0x5a76 0x751a 0x80be 0x614e 0x6e17 0x58f0 0x751f 0x7525 0x7272 0x5347 0x7ef3 ) ; 0x4a21 ... 0x4a7e (block 41 0x7701 0x76db 0x5269 0x80dc 0x5723 0x5e08 0x5931 0x72ee 0x65bd 0x6e7f 0x8bd7 0x5c38 0x8671 0x5341 0x77f3 0x62fe 0x65f6 0x4ec0 0x98df 0x8680 0x5b9e 0x8bc6 0x53f2 0x77e2 0x4f7f 0x5c4e 0x9a76 0x59cb 0x5f0f 0x793a 0x58eb 0x4e16 0x67ff 0x4e8b 0x62ed 0x8a93 0x901d 0x52bf 0x662f 0x55dc 0x566c 0x9002 0x4ed5 0x4f8d 0x91ca 0x9970 0x6c0f 0x5e02 0x6043 0x5ba4 0x89c6 0x8bd5 0x6536 0x624b 0x9996 0x5b88 0x5bff 0x6388 0x552e 0x53d7 0x7626 0x517d 0x852c 0x67a2 0x68b3 0x6b8a 0x6292 0x8f93 0x53d4 0x8212 0x6dd1 0x758f 0x4e66 0x8d4e 0x5b70 0x719f 0x85af 0x6691 0x66d9 0x7f72 0x8700 0x9ecd 0x9f20 0x5c5e 0x672f 0x8ff0 0x6811 0x675f 0x620d 0x7ad6 0x5885 0x5eb6 0x6570 0x6f31 ) ; 0x4b21 ... 0x4b7e (block 42 0x6055 0x5237 0x800d 0x6454 0x8870 0x7529 0x5e05 0x6813 0x62f4 0x971c 0x53cc 0x723d 0x8c01 0x6c34 0x7761 0x7a0e 0x542e 0x77ac 0x987a 0x821c 0x8bf4 0x7855 0x6714 0x70c1 0x65af 0x6495 0x5636 0x601d 0x79c1 0x53f8 0x4e1d 0x6b7b 0x8086 0x5bfa 0x55e3 0x56db 0x4f3a 0x4f3c 0x9972 0x5df3 0x677e 0x8038 0x6002 0x9882 0x9001 0x5b8b 0x8bbc 0x8bf5 0x641c 0x8258 0x64de 0x55fd 0x82cf 0x9165 0x4fd7 0x7d20 0x901f 0x7c9f 0x50f3 0x5851 0x6eaf 0x5bbf 0x8bc9 0x8083 0x9178 0x849c 0x7b97 0x867d 0x968b 0x968f 0x7ee5 0x9ad3 0x788e 0x5c81 0x7a57 0x9042 0x96a7 0x795f 0x5b59 0x635f 0x7b0b 0x84d1 0x68ad 0x5506 0x7f29 0x7410 0x7d22 0x9501 0x6240 0x584c 0x4ed6 0x5b83 0x5979 0x5854 ) ; 0x4c21 ... 0x4c7e (block 43 0x736d 0x631e 0x8e4b 0x8e0f 0x80ce 0x82d4 0x62ac 0x53f0 0x6cf0 0x915e 0x592a 0x6001 0x6c70 0x574d 0x644a 0x8d2a 0x762b 0x6ee9 0x575b 0x6a80 0x75f0 0x6f6d 0x8c2d 0x8c08 0x5766 0x6bef 0x8892 0x78b3 0x63a2 0x53f9 0x70ad 0x6c64 0x5858 0x642a 0x5802 0x68e0 0x819b 0x5510 0x7cd6 0x5018 0x8eba 0x6dcc 0x8d9f 0x70eb 0x638f 0x6d9b 0x6ed4 0x7ee6 0x8404 0x6843 0x9003 0x6dd8 0x9676 0x8ba8 0x5957 0x7279 0x85e4 0x817e 0x75bc 0x8a8a 0x68af 0x5254 0x8e22 0x9511 0x63d0 0x9898 0x8e44 0x557c 0x4f53 0x66ff 0x568f 0x60d5 0x6d95 0x5243 0x5c49 0x5929 0x6dfb 0x586b 0x7530 0x751c 0x606c 0x8214 0x8146 0x6311 0x6761 0x8fe2 0x773a 0x8df3 0x8d34 0x94c1 0x5e16 0x5385 0x542c 0x70c3 ) ; 0x4d21 ... 0x4d7e (block 44 0x6c40 0x5ef7 0x505c 0x4ead 0x5ead 0x633a 0x8247 0x901a 0x6850 0x916e 0x77b3 0x540c 0x94dc 0x5f64 0x7ae5 0x6876 0x6345 0x7b52 0x7edf 0x75db 0x5077 0x6295 0x5934 0x900f 0x51f8 0x79c3 0x7a81 0x56fe 0x5f92 0x9014 0x6d82 0x5c60 0x571f 0x5410 0x5154 0x6e4d 0x56e2 0x63a8 0x9893 0x817f 0x8715 0x892a 0x9000 0x541e 0x5c6f 0x81c0 0x62d6 0x6258 0x8131 0x9e35 0x9640 0x9a6e 0x9a7c 0x692d 0x59a5 0x62d3 0x553e 0x6316 0x54c7 0x86d9 0x6d3c 0x5a03 0x74e6 0x889c 0x6b6a 0x5916 0x8c4c 0x5f2f 0x6e7e 0x73a9 0x987d 0x4e38 0x70f7 0x5b8c 0x7897 0x633d 0x665a 0x7696 0x60cb 0x5b9b 0x5a49 0x4e07 0x8155 0x6c6a 0x738b 0x4ea1 0x6789 0x7f51 0x5f80 0x65fa 0x671b 0x5fd8 0x5984 0x5a01 ) ; 0x4e21 ... 0x4e7e (block 45 0x5dcd 0x5fae 0x5371 0x97e6 0x8fdd 0x6845 0x56f4 0x552f 0x60df 0x4e3a 0x6f4d 0x7ef4 0x82c7 0x840e 0x59d4 0x4f1f 0x4f2a 0x5c3e 0x7eac 0x672a 0x851a 0x5473 0x754f 0x80c3 0x5582 0x9b4f 0x4f4d 0x6e2d 0x8c13 0x5c09 0x6170 0x536b 0x761f 0x6e29 0x868a 0x6587 0x95fb 0x7eb9 0x543b 0x7a33 0x7d0a 0x95ee 0x55e1 0x7fc1 0x74ee 0x631d 0x8717 0x6da1 0x7a9d 0x6211 0x65a1 0x5367 0x63e1 0x6c83 0x5deb 0x545c 0x94a8 0x4e4c 0x6c61 0x8bec 0x5c4b 0x65e0 0x829c 0x68a7 0x543e 0x5434 0x6bcb 0x6b66 0x4e94 0x6342 0x5348 0x821e 0x4f0d 0x4fae 0x575e 0x620a 0x96fe 0x6664 0x7269 0x52ff 0x52a1 0x609f 0x8bef 0x6614 0x7199 0x6790 0x897f 0x7852 0x77fd 0x6670 0x563b 0x5438 0x9521 0x727a ) ; 0x4f21 ... 0x4f7e (block 46 0x7a00 0x606f 0x5e0c 0x6089 0x819d 0x5915 0x60dc 0x7184 0x70ef 0x6eaa 0x6c50 0x7280 0x6a84 0x88ad 0x5e2d 0x4e60 0x5ab3 0x559c 0x94e3 0x6d17 0x7cfb 0x9699 0x620f 0x7ec6 0x778e 0x867e 0x5323 0x971e 0x8f96 0x6687 0x5ce1 0x4fa0 0x72ed 0x4e0b 0x53a6 0x590f 0x5413 0x6380 0x9528 0x5148 0x4ed9 0x9c9c 0x7ea4 0x54b8 0x8d24 0x8854 0x8237 0x95f2 0x6d8e 0x5f26 0x5acc 0x663e 0x9669 0x73b0 0x732e 0x53bf 0x817a 0x9985 0x7fa1 0x5baa 0x9677 0x9650 0x7ebf 0x76f8 0x53a2 0x9576 0x9999 0x7bb1 0x8944 0x6e58 0x4e61 0x7fd4 0x7965 0x8be6 0x60f3 0x54cd 0x4eab 0x9879 0x5df7 0x6a61 0x50cf 0x5411 0x8c61 0x8427 0x785d 0x9704 0x524a 0x54ee 0x56a3 0x9500 0x6d88 0x5bb5 0x6dc6 0x6653 ) ; 0x5021 ... 0x507e (block 47 0x5c0f 0x5b5d 0x6821 0x8096 0x5578 0x7b11 0x6548 0x6954 0x4e9b 0x6b47 0x874e 0x978b 0x534f 0x631f 0x643a 0x90aa 0x659c 0x80c1 0x8c10 0x5199 0x68b0 0x5378 0x87f9 0x61c8 0x6cc4 0x6cfb 0x8c22 0x5c51 0x85aa 0x82af 0x950c 0x6b23 0x8f9b 0x65b0 0x5ffb 0x5fc3 0x4fe1 0x8845 0x661f 0x8165 0x7329 0x60fa 0x5174 0x5211 0x578b 0x5f62 0x90a2 0x884c 0x9192 0x5e78 0x674f 0x6027 0x59d3 0x5144 0x51f6 0x80f8 0x5308 0x6c79 0x96c4 0x718a 0x4f11 0x4fee 0x7f9e 0x673d 0x55c5 0x9508 0x79c0 0x8896 0x7ee3 0x589f 0x620c 0x9700 0x865a 0x5618 0x987b 0x5f90 0x8bb8 0x84c4 0x9157 0x53d9 0x65ed 0x5e8f 0x755c 0x6064 0x7d6e 0x5a7f 0x7eea 0x7eed 0x8f69 0x55a7 0x5ba3 0x60ac 0x65cb 0x7384 ) ; 0x5121 ... 0x517e (block 48 0x9009 0x7663 0x7729 0x7eda 0x9774 0x859b 0x5b66 0x7a74 0x96ea 0x8840 0x52cb 0x718f 0x5faa 0x65ec 0x8be2 0x5bfb 0x9a6f 0x5de1 0x6b89 0x6c5b 0x8bad 0x8baf 0x900a 0x8fc5 0x538b 0x62bc 0x9e26 0x9e2d 0x5440 0x4e2b 0x82bd 0x7259 0x869c 0x5d16 0x8859 0x6daf 0x96c5 0x54d1 0x4e9a 0x8bb6 0x7109 0x54bd 0x9609 0x70df 0x6df9 0x76d0 0x4e25 0x7814 0x8712 0x5ca9 0x5ef6 0x8a00 0x989c 0x960e 0x708e 0x6cbf 0x5944 0x63a9 0x773c 0x884d 0x6f14 0x8273 0x5830 0x71d5 0x538c 0x781a 0x96c1 0x5501 0x5f66 0x7130 0x5bb4 0x8c1a 0x9a8c 0x6b83 0x592e 0x9e2f 0x79e7 0x6768 0x626c 0x4f6f 0x75a1 0x7f8a 0x6d0b 0x9633 0x6c27 0x4ef0 0x75d2 0x517b 0x6837 0x6f3e 0x9080 0x8170 0x5996 0x7476 ) ; 0x5221 ... 0x527e (block 49 0x6447 0x5c27 0x9065 0x7a91 0x8c23 0x59da 0x54ac 0x8200 0x836f 0x8981 0x8000 0x6930 0x564e 0x8036 0x7237 0x91ce 0x51b6 0x4e5f 0x9875 0x6396 0x4e1a 0x53f6 0x66f3 0x814b 0x591c 0x6db2 0x4e00 0x58f9 0x533b 0x63d6 0x94f1 0x4f9d 0x4f0a 0x8863 0x9890 0x5937 0x9057 0x79fb 0x4eea 0x80f0 0x7591 0x6c82 0x5b9c 0x59e8 0x5f5d 0x6905 0x8681 0x501a 0x5df2 0x4e59 0x77e3 0x4ee5 0x827a 0x6291 0x6613 0x9091 0x5c79 0x4ebf 0x5f79 0x81c6 0x9038 0x8084 0x75ab 0x4ea6 0x88d4 0x610f 0x6bc5 0x5fc6 0x4e49 0x76ca 0x6ea2 0x8be3 0x8bae 0x8c0a 0x8bd1 0x5f02 0x7ffc 0x7fcc 0x7ece 0x8335 0x836b 0x56e0 0x6bb7 0x97f3 0x9634 0x59fb 0x541f 0x94f6 0x6deb 0x5bc5 0x996e 0x5c39 0x5f15 0x9690 ) ; 0x5321 ... 0x537e (block 50 0x5370 0x82f1 0x6a31 0x5a74 0x9e70 0x5e94 0x7f28 0x83b9 0x8424 0x8425 0x8367 0x8747 0x8fce 0x8d62 0x76c8 0x5f71 0x9896 0x786c 0x6620 0x54df 0x62e5 0x4f63 0x81c3 0x75c8 0x5eb8 0x96cd 0x8e0a 0x86f9 0x548f 0x6cf3 0x6d8c 0x6c38 0x607f 0x52c7 0x7528 0x5e7d 0x4f18 0x60a0 0x5fe7 0x5c24 0x7531 0x90ae 0x94c0 0x72b9 0x6cb9 0x6e38 0x9149 0x6709 0x53cb 0x53f3 0x4f51 0x91c9 0x8bf1 0x53c8 0x5e7c 0x8fc2 0x6de4 0x4e8e 0x76c2 0x6986 0x865e 0x611a 0x8206 0x4f59 0x4fde 0x903e 0x9c7c 0x6109 0x6e1d 0x6e14 0x9685 0x4e88 0x5a31 0x96e8 0x4e0e 0x5c7f 0x79b9 0x5b87 0x8bed 0x7fbd 0x7389 0x57df 0x828b 0x90c1 0x5401 0x9047 0x55bb 0x5cea 0x5fa1 0x6108 0x6b32 0x72f1 0x80b2 0x8a89 ) ; 0x5421 ... 0x547e (block 51 0x6d74 0x5bd3 0x88d5 0x9884 0x8c6b 0x9a6d 0x9e33 0x6e0a 0x51a4 0x5143 0x57a3 0x8881 0x539f 0x63f4 0x8f95 0x56ed 0x5458 0x5706 0x733f 0x6e90 0x7f18 0x8fdc 0x82d1 0x613f 0x6028 0x9662 0x66f0 0x7ea6 0x8d8a 0x8dc3 0x94a5 0x5cb3 0x7ca4 0x6708 0x60a6 0x9605 0x8018 0x4e91 0x90e7 0x5300 0x9668 0x5141 0x8fd0 0x8574 0x915d 0x6655 0x97f5 0x5b55 0x531d 0x7838 0x6742 0x683d 0x54c9 0x707e 0x5bb0 0x8f7d 0x518d 0x5728 0x54b1 0x6512 0x6682 0x8d5e 0x8d43 0x810f 0x846c 0x906d 0x7cdf 0x51ff 0x85fb 0x67a3 0x65e9 0x6fa1 0x86a4 0x8e81 0x566a 0x9020 0x7682 0x7076 0x71e5 0x8d23 0x62e9 0x5219 0x6cfd 0x8d3c 0x600e 0x589e 0x618e 0x66fe 0x8d60 0x624e 0x55b3 0x6e23 0x672d 0x8f67 ) ; 0x5521 ... 0x557e (block 52 0x94e1 0x95f8 0x7728 0x6805 0x69a8 0x548b 0x4e4d 0x70b8 0x8bc8 0x6458 0x658b 0x5b85 0x7a84 0x503a 0x5be8 0x77bb 0x6be1 0x8a79 0x7c98 0x6cbe 0x76cf 0x65a9 0x8f97 0x5d2d 0x5c55 0x8638 0x6808 0x5360 0x6218 0x7ad9 0x6e5b 0x7efd 0x6a1f 0x7ae0 0x5f70 0x6f33 0x5f20 0x638c 0x6da8 0x6756 0x4e08 0x5e10 0x8d26 0x4ed7 0x80c0 0x7634 0x969c 0x62db 0x662d 0x627e 0x6cbc 0x8d75 0x7167 0x7f69 0x5146 0x8087 0x53ec 0x906e 0x6298 0x54f2 0x86f0 0x8f99 0x8005 0x9517 0x8517 0x8fd9 0x6d59 0x73cd 0x659f 0x771f 0x7504 0x7827 0x81fb 0x8d1e 0x9488 0x4fa6 0x6795 0x75b9 0x8bca 0x9707 0x632f 0x9547 0x9635 0x84b8 0x6323 0x7741 0x5f81 0x72f0 0x4e89 0x6014 0x6574 0x62ef 0x6b63 0x653f ) ; 0x5621 ... 0x567e (block 53 0x5e27 0x75c7 0x90d1 0x8bc1 0x829d 0x679d 0x652f 0x5431 0x8718 0x77e5 0x80a2 0x8102 0x6c41 0x4e4b 0x7ec7 0x804c 0x76f4 0x690d 0x6b96 0x6267 0x503c 0x4f84 0x5740 0x6307 0x6b62 0x8dbe 0x53ea 0x65e8 0x7eb8 0x5fd7 0x631a 0x63b7 0x81f3 0x81f4 0x7f6e 0x5e1c 0x5cd9 0x5236 0x667a 0x79e9 0x7a1a 0x8d28 0x7099 0x75d4 0x6ede 0x6cbb 0x7a92 0x4e2d 0x76c5 0x5fe0 0x949f 0x8877 0x7ec8 0x79cd 0x80bf 0x91cd 0x4ef2 0x4f17 0x821f 0x5468 0x5dde 0x6d32 0x8bcc 0x7ca5 0x8f74 0x8098 0x5e1a 0x5492 0x76b1 0x5b99 0x663c 0x9aa4 0x73e0 0x682a 0x86db 0x6731 0x732a 0x8bf8 0x8bdb 0x9010 0x7af9 0x70db 0x716e 0x62c4 0x77a9 0x5631 0x4e3b 0x8457 0x67f1 0x52a9 0x86c0 0x8d2e 0x94f8 0x7b51 ) ; 0x5721 ... 0x577e (block 54 0x4f4f 0x6ce8 0x795d 0x9a7b 0x6293 0x722a 0x62fd 0x4e13 0x7816 0x8f6c 0x64b0 0x8d5a 0x7bc6 0x6869 0x5e84 0x88c5 0x5986 0x649e 0x58ee 0x72b6 0x690e 0x9525 0x8ffd 0x8d58 0x5760 0x7f00 0x8c06 0x51c6 0x6349 0x62d9 0x5353 0x684c 0x7422 0x8301 0x914c 0x5544 0x7740 0x707c 0x6d4a 0x5179 0x54a8 0x8d44 0x59ff 0x6ecb 0x6dc4 0x5b5c 0x7d2b 0x4ed4 0x7c7d 0x6ed3 0x5b50 0x81ea 0x6e0d 0x5b57 0x9b03 0x68d5 0x8e2a 0x5b97 0x7efc 0x603b 0x7eb5 0x90b9 0x8d70 0x594f 0x63cd 0x79df 0x8db3 0x5352 0x65cf 0x7956 0x8bc5 0x963b 0x7ec4 0x94bb 0x7e82 0x5634 0x9189 0x6700 0x7f6a 0x5c0a 0x9075 0x6628 0x5de6 0x4f50 0x67de 0x505a 0x4f5c 0x5750 0x5ea7 -1 -1 -1 -1 -1 ) ; 0x5821 ... 0x587e (block 55 0x4e8d 0x4e0c 0x5140 0x4e10 0x5eff 0x5345 0x4e15 0x4e98 0x4e1e 0x9b32 0x5b6c 0x5669 0x4e28 0x79ba 0x4e3f 0x5315 0x4e47 0x592d 0x723b 0x536e 0x6c10 0x56df 0x80e4 0x9997 0x6bd3 0x777e 0x9f17 0x4e36 0x4e9f 0x9f10 0x4e5c 0x4e69 0x4e93 0x8288 0x5b5b 0x556c 0x560f 0x4ec4 0x538d 0x539d 0x53a3 0x53a5 0x53ae 0x9765 0x8d5d 0x531a 0x53f5 0x5326 0x532e 0x533e 0x8d5c 0x5366 0x5363 0x5202 0x5208 0x520e 0x522d 0x5233 0x523f 0x5240 0x524c 0x525e 0x5261 0x525c 0x84af 0x527d 0x5282 0x5281 0x5290 0x5293 0x5182 0x7f54 0x4ebb 0x4ec3 0x4ec9 0x4ec2 0x4ee8 0x4ee1 0x4eeb 0x4ede 0x4f1b 0x4ef3 0x4f22 0x4f64 0x4ef5 0x4f25 0x4f27 0x4f09 0x4f2b 0x4f5e 0x4f67 0x6538 0x4f5a 0x4f5d ) ; 0x5921 ... 0x597e (block 56 0x4f5f 0x4f57 0x4f32 0x4f3d 0x4f76 0x4f74 0x4f91 0x4f89 0x4f83 0x4f8f 0x4f7e 0x4f7b 0x4faa 0x4f7c 0x4fac 0x4f94 0x4fe6 0x4fe8 0x4fea 0x4fc5 0x4fda 0x4fe3 0x4fdc 0x4fd1 0x4fdf 0x4ff8 0x5029 0x504c 0x4ff3 0x502c 0x500f 0x502e 0x502d 0x4ffe 0x501c 0x500c 0x5025 0x5028 0x507e 0x5043 0x5055 0x5048 0x504e 0x506c 0x507b 0x50a5 0x50a7 0x50a9 0x50ba 0x50d6 0x5106 0x50ed 0x50ec 0x50e6 0x50ee 0x5107 0x510b 0x4edd 0x6c3d 0x4f58 0x4f65 0x4fce 0x9fa0 0x6c46 0x7c74 0x516e 0x5dfd 0x9ec9 0x9998 0x5181 0x5914 0x52f9 0x530d 0x8a07 0x5310 0x51eb 0x5919 0x5155 0x4ea0 0x5156 0x4eb3 0x886e 0x88a4 0x4eb5 0x8114 0x88d2 0x7980 0x5b34 0x8803 0x7fb8 0x51ab 0x51b1 0x51bd 0x51bc ) ; 0x5a21 ... 0x5a7e (block 57 0x51c7 0x5196 0x51a2 0x51a5 0x8ba0 0x8ba6 0x8ba7 0x8baa 0x8bb4 0x8bb5 0x8bb7 0x8bc2 0x8bc3 0x8bcb 0x8bcf 0x8bce 0x8bd2 0x8bd3 0x8bd4 0x8bd6 0x8bd8 0x8bd9 0x8bdc 0x8bdf 0x8be0 0x8be4 0x8be8 0x8be9 0x8bee 0x8bf0 0x8bf3 0x8bf6 0x8bf9 0x8bfc 0x8bff 0x8c00 0x8c02 0x8c04 0x8c07 0x8c0c 0x8c0f 0x8c11 0x8c12 0x8c14 0x8c15 0x8c16 0x8c19 0x8c1b 0x8c18 0x8c1d 0x8c1f 0x8c20 0x8c21 0x8c25 0x8c27 0x8c2a 0x8c2b 0x8c2e 0x8c2f 0x8c32 0x8c33 0x8c35 0x8c36 0x5369 0x537a 0x961d 0x9622 0x9621 0x9631 0x962a 0x963d 0x963c 0x9642 0x9649 0x9654 0x965f 0x9667 0x966c 0x9672 0x9674 0x9688 0x968d 0x9697 0x96b0 0x9097 0x909b 0x909d 0x9099 0x90ac 0x90a1 0x90b4 0x90b3 0x90b6 0x90ba ) ; 0x5b21 ... 0x5b7e (block 58 0x90b8 0x90b0 0x90cf 0x90c5 0x90be 0x90d0 0x90c4 0x90c7 0x90d3 0x90e6 0x90e2 0x90dc 0x90d7 0x90db 0x90eb 0x90ef 0x90fe 0x9104 0x9122 0x911e 0x9123 0x9131 0x912f 0x9139 0x9143 0x9146 0x520d 0x5942 0x52a2 0x52ac 0x52ad 0x52be 0x54ff 0x52d0 0x52d6 0x52f0 0x53df 0x71ee 0x77cd 0x5ef4 0x51f5 0x51fc 0x9b2f 0x53b6 0x5f01 0x755a 0x5def 0x574c 0x57a9 0x57a1 0x587e 0x58bc 0x58c5 0x58d1 0x5729 0x572c 0x572a 0x5733 0x5739 0x572e 0x572f 0x575c 0x573b 0x5742 0x5769 0x5785 0x576b 0x5786 0x577c 0x577b 0x5768 0x576d 0x5776 0x5773 0x57ad 0x57a4 0x578c 0x57b2 0x57cf 0x57a7 0x57b4 0x5793 0x57a0 0x57d5 0x57d8 0x57da 0x57d9 0x57d2 0x57b8 0x57f4 0x57ef 0x57f8 0x57e4 0x57dd ) ; 0x5c21 ... 0x5c7e (block 59 0x580b 0x580d 0x57fd 0x57ed 0x5800 0x581e 0x5819 0x5844 0x5820 0x5865 0x586c 0x5881 0x5889 0x589a 0x5880 0x99a8 0x9f19 0x61ff 0x8279 0x827d 0x827f 0x828f 0x828a 0x82a8 0x8284 0x828e 0x8291 0x8297 0x8299 0x82ab 0x82b8 0x82be 0x82b0 0x82c8 0x82ca 0x82e3 0x8298 0x82b7 0x82ae 0x82cb 0x82cc 0x82c1 0x82a9 0x82b4 0x82a1 0x82aa 0x829f 0x82c4 0x82ce 0x82a4 0x82e1 0x8309 0x82f7 0x82e4 0x830f 0x8307 0x82dc 0x82f4 0x82d2 0x82d8 0x830c 0x82fb 0x82d3 0x8311 0x831a 0x8306 0x8314 0x8315 0x82e0 0x82d5 0x831c 0x8351 0x835b 0x835c 0x8308 0x8392 0x833c 0x8334 0x8331 0x839b 0x835e 0x832f 0x834f 0x8347 0x8343 0x835f 0x8340 0x8317 0x8360 0x832d 0x833a 0x8333 0x8366 0x8365 ) ; 0x5d21 ... 0x5d7e (block 60 0x8368 0x831b 0x8369 0x836c 0x836a 0x836d 0x836e 0x83b0 0x8378 0x83b3 0x83b4 0x83a0 0x83aa 0x8393 0x839c 0x8385 0x837c 0x83b6 0x83a9 0x837d 0x83b8 0x837b 0x8398 0x839e 0x83a8 0x83ba 0x83bc 0x83c1 0x8401 0x83e5 0x83d8 0x5807 0x8418 0x840b 0x83dd 0x83fd 0x83d6 0x841c 0x8438 0x8411 0x8406 0x83d4 0x83df 0x840f 0x8403 0x83f8 0x83f9 0x83ea 0x83c5 0x83c0 0x8426 0x83f0 0x83e1 0x845c 0x8451 0x845a 0x8459 0x8473 0x8487 0x8488 0x847a 0x8489 0x8478 0x843c 0x8446 0x8469 0x8476 0x848c 0x848e 0x8431 0x846d 0x84c1 0x84cd 0x84d0 0x84e6 0x84bd 0x84d3 0x84ca 0x84bf 0x84ba 0x84e0 0x84a1 0x84b9 0x84b4 0x8497 0x84e5 0x84e3 0x850c 0x750d 0x8538 0x84f0 0x8539 0x851f 0x853a ) ; 0x5e21 ... 0x5e7e (block 61 0x8556 0x853b 0x84ff 0x84fc 0x8559 0x8548 0x8568 0x8564 0x855e 0x857a 0x77a2 0x8543 0x8572 0x857b 0x85a4 0x85a8 0x8587 0x858f 0x8579 0x85ae 0x859c 0x8585 0x85b9 0x85b7 0x85b0 0x85d3 0x85c1 0x85dc 0x85ff 0x8627 0x8605 0x8629 0x8616 0x863c 0x5efe 0x5f08 0x593c 0x5941 0x8037 0x5955 0x595a 0x5958 0x530f 0x5c22 0x5c25 0x5c2c 0x5c34 0x624c 0x626a 0x629f 0x62bb 0x62ca 0x62da 0x62d7 0x62ee 0x6322 0x62f6 0x6339 0x634b 0x6343 0x63ad 0x63f6 0x6371 0x637a 0x638e 0x63b4 0x636d 0x63ac 0x638a 0x6369 0x63ae 0x63bc 0x63f2 0x63f8 0x63e0 0x63ff 0x63c4 0x63de 0x63ce 0x6452 0x63c6 0x63be 0x6445 0x6441 0x640b 0x641b 0x6420 0x640c 0x6426 0x6421 0x645e 0x6484 0x646d 0x6496 ) ; 0x5f21 ... 0x5f7e (block 62 0x647a 0x64b7 0x64b8 0x6499 0x64ba 0x64c0 0x64d0 0x64d7 0x64e4 0x64e2 0x6509 0x6525 0x652e 0x5f0b 0x5fd2 0x7519 0x5f11 0x535f 0x53f1 0x53fd 0x53e9 0x53e8 0x53fb 0x5412 0x5416 0x5406 0x544b 0x5452 0x5453 0x5454 0x5456 0x5443 0x5421 0x5457 0x5459 0x5423 0x5432 0x5482 0x5494 0x5477 0x5471 0x5464 0x549a 0x549b 0x5484 0x5476 0x5466 0x549d 0x54d0 0x54ad 0x54c2 0x54b4 0x54d2 0x54a7 0x54a6 0x54d3 0x54d4 0x5472 0x54a3 0x54d5 0x54bb 0x54bf 0x54cc 0x54d9 0x54da 0x54dc 0x54a9 0x54aa 0x54a4 0x54dd 0x54cf 0x54de 0x551b 0x54e7 0x5520 0x54fd 0x5514 0x54f3 0x5522 0x5523 0x550f 0x5511 0x5527 0x552a 0x5567 0x558f 0x55b5 0x5549 0x556d 0x5541 0x5555 0x553f 0x5550 0x553c ) ; 0x6021 ... 0x607e (block 63 0x5537 0x5556 0x5575 0x5576 0x5577 0x5533 0x5530 0x555c 0x558b 0x55d2 0x5583 0x55b1 0x55b9 0x5588 0x5581 0x559f 0x557e 0x55d6 0x5591 0x557b 0x55df 0x55bd 0x55be 0x5594 0x5599 0x55ea 0x55f7 0x55c9 0x561f 0x55d1 0x55eb 0x55ec 0x55d4 0x55e6 0x55dd 0x55c4 0x55ef 0x55e5 0x55f2 0x55f3 0x55cc 0x55cd 0x55e8 0x55f5 0x55e4 0x8f94 0x561e 0x5608 0x560c 0x5601 0x5624 0x5623 0x55fe 0x5600 0x5627 0x562d 0x5658 0x5639 0x5657 0x562c 0x564d 0x5662 0x5659 0x565c 0x564c 0x5654 0x5686 0x5664 0x5671 0x566b 0x567b 0x567c 0x5685 0x5693 0x56af 0x56d4 0x56d7 0x56dd 0x56e1 0x56f5 0x56eb 0x56f9 0x56ff 0x5704 0x570a 0x5709 0x571c 0x5e0f 0x5e19 0x5e14 0x5e11 0x5e31 0x5e3b 0x5e3c ) ; 0x6121 ... 0x617e (block 64 0x5e37 0x5e44 0x5e54 0x5e5b 0x5e5e 0x5e61 0x5c8c 0x5c7a 0x5c8d 0x5c90 0x5c96 0x5c88 0x5c98 0x5c99 0x5c91 0x5c9a 0x5c9c 0x5cb5 0x5ca2 0x5cbd 0x5cac 0x5cab 0x5cb1 0x5ca3 0x5cc1 0x5cb7 0x5cc4 0x5cd2 0x5ce4 0x5ccb 0x5ce5 0x5d02 0x5d03 0x5d27 0x5d26 0x5d2e 0x5d24 0x5d1e 0x5d06 0x5d1b 0x5d58 0x5d3e 0x5d34 0x5d3d 0x5d6c 0x5d5b 0x5d6f 0x5d5d 0x5d6b 0x5d4b 0x5d4a 0x5d69 0x5d74 0x5d82 0x5d99 0x5d9d 0x8c73 0x5db7 0x5dc5 0x5f73 0x5f77 0x5f82 0x5f87 0x5f89 0x5f8c 0x5f95 0x5f99 0x5f9c 0x5fa8 0x5fad 0x5fb5 0x5fbc 0x8862 0x5f61 0x72ad 0x72b0 0x72b4 0x72b7 0x72b8 0x72c3 0x72c1 0x72ce 0x72cd 0x72d2 0x72e8 0x72ef 0x72e9 0x72f2 0x72f4 0x72f7 0x7301 0x72f3 0x7303 0x72fa ) ; 0x6221 ... 0x627e (block 65 0x72fb 0x7317 0x7313 0x7321 0x730a 0x731e 0x731d 0x7315 0x7322 0x7339 0x7325 0x732c 0x7338 0x7331 0x7350 0x734d 0x7357 0x7360 0x736c 0x736f 0x737e 0x821b 0x5925 0x98e7 0x5924 0x5902 0x9963 0x9967 0x9968 0x9969 0x996a 0x996b 0x996c 0x9974 0x9977 0x997d 0x9980 0x9984 0x9987 0x998a 0x998d 0x9990 0x9991 0x9993 0x9994 0x9995 0x5e80 0x5e91 0x5e8b 0x5e96 0x5ea5 0x5ea0 0x5eb9 0x5eb5 0x5ebe 0x5eb3 0x8d53 0x5ed2 0x5ed1 0x5edb 0x5ee8 0x5eea 0x81ba 0x5fc4 0x5fc9 0x5fd6 0x5fcf 0x6003 0x5fee 0x6004 0x5fe1 0x5fe4 0x5ffe 0x6005 0x6006 0x5fea 0x5fed 0x5ff8 0x6019 0x6035 0x6026 0x601b 0x600f 0x600d 0x6029 0x602b 0x600a 0x603f 0x6021 0x6078 0x6079 0x607b 0x607a 0x6042 ) ; 0x6321 ... 0x637e (block 66 0x606a 0x607d 0x6096 0x609a 0x60ad 0x609d 0x6083 0x6092 0x608c 0x609b 0x60ec 0x60bb 0x60b1 0x60dd 0x60d8 0x60c6 0x60da 0x60b4 0x6120 0x6126 0x6115 0x6123 0x60f4 0x6100 0x610e 0x612b 0x614a 0x6175 0x61ac 0x6194 0x61a7 0x61b7 0x61d4 0x61f5 0x5fdd 0x96b3 0x95e9 0x95eb 0x95f1 0x95f3 0x95f5 0x95f6 0x95fc 0x95fe 0x9603 0x9604 0x9606 0x9608 0x960a 0x960b 0x960c 0x960d 0x960f 0x9612 0x9615 0x9616 0x9617 0x9619 0x961a 0x4e2c 0x723f 0x6215 0x6c35 0x6c54 0x6c5c 0x6c4a 0x6ca3 0x6c85 0x6c90 0x6c94 0x6c8c 0x6c68 0x6c69 0x6c74 0x6c76 0x6c86 0x6ca9 0x6cd0 0x6cd4 0x6cad 0x6cf7 0x6cf8 0x6cf1 0x6cd7 0x6cb2 0x6ce0 0x6cd6 0x6cfa 0x6ceb 0x6cee 0x6cb1 0x6cd3 0x6cef 0x6cfe ) ; 0x6421 ... 0x647e (block 67 0x6d39 0x6d27 0x6d0c 0x6d43 0x6d48 0x6d07 0x6d04 0x6d19 0x6d0e 0x6d2b 0x6d4d 0x6d2e 0x6d35 0x6d1a 0x6d4f 0x6d52 0x6d54 0x6d33 0x6d91 0x6d6f 0x6d9e 0x6da0 0x6d5e 0x6d93 0x6d94 0x6d5c 0x6d60 0x6d7c 0x6d63 0x6e1a 0x6dc7 0x6dc5 0x6dde 0x6e0e 0x6dbf 0x6de0 0x6e11 0x6de6 0x6ddd 0x6dd9 0x6e16 0x6dab 0x6e0c 0x6dae 0x6e2b 0x6e6e 0x6e4e 0x6e6b 0x6eb2 0x6e5f 0x6e86 0x6e53 0x6e54 0x6e32 0x6e25 0x6e44 0x6edf 0x6eb1 0x6e98 0x6ee0 0x6f2d 0x6ee2 0x6ea5 0x6ea7 0x6ebd 0x6ebb 0x6eb7 0x6ed7 0x6eb4 0x6ecf 0x6e8f 0x6ec2 0x6e9f 0x6f62 0x6f46 0x6f47 0x6f24 0x6f15 0x6ef9 0x6f2f 0x6f36 0x6f4b 0x6f74 0x6f2a 0x6f09 0x6f29 0x6f89 0x6f8d 0x6f8c 0x6f78 0x6f72 0x6f7c 0x6f7a 0x6fd1 ) ; 0x6521 ... 0x657e (block 68 0x6fc9 0x6fa7 0x6fb9 0x6fb6 0x6fc2 0x6fe1 0x6fee 0x6fde 0x6fe0 0x6fef 0x701a 0x7023 0x701b 0x7039 0x7035 0x704f 0x705e 0x5b80 0x5b84 0x5b95 0x5b93 0x5ba5 0x5bb8 0x752f 0x9a9e 0x6434 0x5be4 0x5bee 0x8930 0x5bf0 0x8e47 0x8b07 0x8fb6 0x8fd3 0x8fd5 0x8fe5 0x8fee 0x8fe4 0x8fe9 0x8fe6 0x8ff3 0x8fe8 0x9005 0x9004 0x900b 0x9026 0x9011 0x900d 0x9016 0x9021 0x9035 0x9036 0x902d 0x902f 0x9044 0x9051 0x9052 0x9050 0x9068 0x9058 0x9062 0x905b 0x66b9 0x9074 0x907d 0x9082 0x9088 0x9083 0x908b 0x5f50 0x5f57 0x5f56 0x5f58 0x5c3b 0x54ab 0x5c50 0x5c59 0x5b71 0x5c63 0x5c66 0x7fbc 0x5f2a 0x5f29 0x5f2d 0x8274 0x5f3c 0x9b3b 0x5c6e 0x5981 0x5983 0x598d 0x59a9 0x59aa 0x59a3 ) ; 0x6621 ... 0x667e (block 69 0x5997 0x59ca 0x59ab 0x599e 0x59a4 0x59d2 0x59b2 0x59af 0x59d7 0x59be 0x5a05 0x5a06 0x59dd 0x5a08 0x59e3 0x59d8 0x59f9 0x5a0c 0x5a09 0x5a32 0x5a34 0x5a11 0x5a23 0x5a13 0x5a40 0x5a67 0x5a4a 0x5a55 0x5a3c 0x5a62 0x5a75 0x80ec 0x5aaa 0x5a9b 0x5a77 0x5a7a 0x5abe 0x5aeb 0x5ab2 0x5ad2 0x5ad4 0x5ab8 0x5ae0 0x5ae3 0x5af1 0x5ad6 0x5ae6 0x5ad8 0x5adc 0x5b09 0x5b17 0x5b16 0x5b32 0x5b37 0x5b40 0x5c15 0x5c1c 0x5b5a 0x5b65 0x5b73 0x5b51 0x5b53 0x5b62 0x9a75 0x9a77 0x9a78 0x9a7a 0x9a7f 0x9a7d 0x9a80 0x9a81 0x9a85 0x9a88 0x9a8a 0x9a90 0x9a92 0x9a93 0x9a96 0x9a98 0x9a9b 0x9a9c 0x9a9d 0x9a9f 0x9aa0 0x9aa2 0x9aa3 0x9aa5 0x9aa7 0x7e9f 0x7ea1 0x7ea3 0x7ea5 0x7ea8 0x7ea9 ) ; 0x6721 ... 0x677e (block 70 0x7ead 0x7eb0 0x7ebe 0x7ec0 0x7ec1 0x7ec2 0x7ec9 0x7ecb 0x7ecc 0x7ed0 0x7ed4 0x7ed7 0x7edb 0x7ee0 0x7ee1 0x7ee8 0x7eeb 0x7eee 0x7eef 0x7ef1 0x7ef2 0x7f0d 0x7ef6 0x7efa 0x7efb 0x7efe 0x7f01 0x7f02 0x7f03 0x7f07 0x7f08 0x7f0b 0x7f0c 0x7f0f 0x7f11 0x7f12 0x7f17 0x7f19 0x7f1c 0x7f1b 0x7f1f 0x7f21 0x7f22 0x7f23 0x7f24 0x7f25 0x7f26 0x7f27 0x7f2a 0x7f2b 0x7f2c 0x7f2d 0x7f2f 0x7f30 0x7f31 0x7f32 0x7f33 0x7f35 0x5e7a 0x757f 0x5ddb 0x753e 0x9095 0x738e 0x7391 0x73ae 0x73a2 0x739f 0x73cf 0x73c2 0x73d1 0x73b7 0x73b3 0x73c0 0x73c9 0x73c8 0x73e5 0x73d9 0x987c 0x740a 0x73e9 0x73e7 0x73de 0x73ba 0x73f2 0x740f 0x742a 0x745b 0x7426 0x7425 0x7428 0x7430 0x742e 0x742c ) ; 0x6821 ... 0x687e (block 71 0x741b 0x741a 0x7441 0x745c 0x7457 0x7455 0x7459 0x7477 0x746d 0x747e 0x749c 0x748e 0x7480 0x7481 0x7487 0x748b 0x749e 0x74a8 0x74a9 0x7490 0x74a7 0x74d2 0x74ba 0x97ea 0x97eb 0x97ec 0x674c 0x6753 0x675e 0x6748 0x6769 0x67a5 0x6787 0x676a 0x6773 0x6798 0x67a7 0x6775 0x67a8 0x679e 0x67ad 0x678b 0x6777 0x677c 0x67f0 0x6809 0x67d8 0x680a 0x67e9 0x67b0 0x680c 0x67d9 0x67b5 0x67da 0x67b3 0x67dd 0x6800 0x67c3 0x67b8 0x67e2 0x680e 0x67c1 0x67fd 0x6832 0x6833 0x6860 0x6861 0x684e 0x6862 0x6844 0x6864 0x6883 0x681d 0x6855 0x6866 0x6841 0x6867 0x6840 0x683e 0x684a 0x6849 0x6829 0x68b5 0x688f 0x6874 0x6877 0x6893 0x686b 0x68c2 0x696e 0x68fc 0x691f 0x6920 0x68f9 ) ; 0x6921 ... 0x697e (block 72 0x6924 0x68f0 0x690b 0x6901 0x6957 0x68e3 0x6910 0x6971 0x6939 0x6960 0x6942 0x695d 0x6984 0x696b 0x6980 0x6998 0x6978 0x6934 0x69cc 0x6987 0x6988 0x69ce 0x6989 0x6966 0x6963 0x6979 0x699b 0x69a7 0x69bb 0x69ab 0x69ad 0x69d4 0x69b1 0x69c1 0x69ca 0x69df 0x6995 0x69e0 0x698d 0x69ff 0x6a2f 0x69ed 0x6a17 0x6a18 0x6a65 0x69f2 0x6a44 0x6a3e 0x6aa0 0x6a50 0x6a5b 0x6a35 0x6a8e 0x6a79 0x6a3d 0x6a28 0x6a58 0x6a7c 0x6a91 0x6a90 0x6aa9 0x6a97 0x6aab 0x7337 0x7352 0x6b81 0x6b82 0x6b87 0x6b84 0x6b92 0x6b93 0x6b8d 0x6b9a 0x6b9b 0x6ba1 0x6baa 0x8f6b 0x8f6d 0x8f71 0x8f72 0x8f73 0x8f75 0x8f76 0x8f78 0x8f77 0x8f79 0x8f7a 0x8f7c 0x8f7e 0x8f81 0x8f82 0x8f84 0x8f87 0x8f8b ) ; 0x6a21 ... 0x6a7e (block 73 0x8f8d 0x8f8e 0x8f8f 0x8f98 0x8f9a 0x8ece 0x620b 0x6217 0x621b 0x621f 0x6222 0x6221 0x6225 0x6224 0x622c 0x81e7 0x74ef 0x74f4 0x74ff 0x750f 0x7511 0x7513 0x6534 0x65ee 0x65ef 0x65f0 0x660a 0x6619 0x6772 0x6603 0x6615 0x6600 0x7085 0x66f7 0x661d 0x6634 0x6631 0x6636 0x6635 0x8006 0x665f 0x6654 0x6641 0x664f 0x6656 0x6661 0x6657 0x6677 0x6684 0x668c 0x66a7 0x669d 0x66be 0x66db 0x66dc 0x66e6 0x66e9 0x8d32 0x8d33 0x8d36 0x8d3b 0x8d3d 0x8d40 0x8d45 0x8d46 0x8d48 0x8d49 0x8d47 0x8d4d 0x8d55 0x8d59 0x89c7 0x89ca 0x89cb 0x89cc 0x89ce 0x89cf 0x89d0 0x89d1 0x726e 0x729f 0x725d 0x7266 0x726f 0x727e 0x727f 0x7284 0x728b 0x728d 0x728f 0x7292 0x6308 0x6332 0x63b0 ) ; 0x6b21 ... 0x6b7e (block 74 0x643f 0x64d8 0x8004 0x6bea 0x6bf3 0x6bfd 0x6bf5 0x6bf9 0x6c05 0x6c07 0x6c06 0x6c0d 0x6c15 0x6c18 0x6c19 0x6c1a 0x6c21 0x6c29 0x6c24 0x6c2a 0x6c32 0x6535 0x6555 0x656b 0x724d 0x7252 0x7256 0x7230 0x8662 0x5216 0x809f 0x809c 0x8093 0x80bc 0x670a 0x80bd 0x80b1 0x80ab 0x80ad 0x80b4 0x80b7 0x80e7 0x80e8 0x80e9 0x80ea 0x80db 0x80c2 0x80c4 0x80d9 0x80cd 0x80d7 0x6710 0x80dd 0x80eb 0x80f1 0x80f4 0x80ed 0x810d 0x810e 0x80f2 0x80fc 0x6715 0x8112 0x8c5a 0x8136 0x811e 0x812c 0x8118 0x8132 0x8148 0x814c 0x8153 0x8174 0x8159 0x815a 0x8171 0x8160 0x8169 0x817c 0x817d 0x816d 0x8167 0x584d 0x5ab5 0x8188 0x8182 0x8191 0x6ed5 0x81a3 0x81aa 0x81cc 0x6726 0x81ca 0x81bb ) ; 0x6c21 ... 0x6c7e (block 75 0x81c1 0x81a6 0x6b24 0x6b37 0x6b39 0x6b43 0x6b46 0x6b59 0x98d1 0x98d2 0x98d3 0x98d5 0x98d9 0x98da 0x6bb3 0x5f40 0x6bc2 0x89f3 0x6590 0x9f51 0x6593 0x65bc 0x65c6 0x65c4 0x65c3 0x65cc 0x65ce 0x65d2 0x65d6 0x7080 0x709c 0x7096 0x709d 0x70bb 0x70c0 0x70b7 0x70ab 0x70b1 0x70e8 0x70ca 0x7110 0x7113 0x7116 0x712f 0x7131 0x7173 0x715c 0x7168 0x7145 0x7172 0x714a 0x7178 0x717a 0x7198 0x71b3 0x71b5 0x71a8 0x71a0 0x71e0 0x71d4 0x71e7 0x71f9 0x721d 0x7228 0x706c 0x7118 0x7166 0x71b9 0x623e 0x623d 0x6243 0x6248 0x6249 0x793b 0x7940 0x7946 0x7949 0x795b 0x795c 0x7953 0x795a 0x7962 0x7957 0x7960 0x796f 0x7967 0x797a 0x7985 0x798a 0x799a 0x79a7 0x79b3 0x5fd1 0x5fd0 ) ; 0x6d21 ... 0x6d7e (block 76 0x603c 0x605d 0x605a 0x6067 0x6041 0x6059 0x6063 0x60ab 0x6106 0x610d 0x615d 0x61a9 0x619d 0x61cb 0x61d1 0x6206 0x8080 0x807f 0x6c93 0x6cf6 0x6dfc 0x77f6 0x77f8 0x7800 0x7809 0x7817 0x7818 0x7811 0x65ab 0x782d 0x781c 0x781d 0x7839 0x783a 0x783b 0x781f 0x783c 0x7825 0x782c 0x7823 0x7829 0x784e 0x786d 0x7856 0x7857 0x7826 0x7850 0x7847 0x784c 0x786a 0x789b 0x7893 0x789a 0x7887 0x789c 0x78a1 0x78a3 0x78b2 0x78b9 0x78a5 0x78d4 0x78d9 0x78c9 0x78ec 0x78f2 0x7905 0x78f4 0x7913 0x7924 0x791e 0x7934 0x9f9b 0x9ef9 0x9efb 0x9efc 0x76f1 0x7704 0x770d 0x76f9 0x7707 0x7708 0x771a 0x7722 0x7719 0x772d 0x7726 0x7735 0x7738 0x7750 0x7751 0x7747 0x7743 0x775a 0x7768 ) ; 0x6e21 ... 0x6e7e (block 77 0x7762 0x7765 0x777f 0x778d 0x777d 0x7780 0x778c 0x7791 0x779f 0x77a0 0x77b0 0x77b5 0x77bd 0x753a 0x7540 0x754e 0x754b 0x7548 0x755b 0x7572 0x7579 0x7583 0x7f58 0x7f61 0x7f5f 0x8a48 0x7f68 0x7f74 0x7f71 0x7f79 0x7f81 0x7f7e 0x76cd 0x76e5 0x8832 0x9485 0x9486 0x9487 0x948b 0x948a 0x948c 0x948d 0x948f 0x9490 0x9494 0x9497 0x9495 0x949a 0x949b 0x949c 0x94a3 0x94a4 0x94ab 0x94aa 0x94ad 0x94ac 0x94af 0x94b0 0x94b2 0x94b4 0x94b6 0x94b7 0x94b8 0x94b9 0x94ba 0x94bc 0x94bd 0x94bf 0x94c4 0x94c8 0x94c9 0x94ca 0x94cb 0x94cc 0x94cd 0x94ce 0x94d0 0x94d1 0x94d2 0x94d5 0x94d6 0x94d7 0x94d9 0x94d8 0x94db 0x94de 0x94df 0x94e0 0x94e2 0x94e4 0x94e5 0x94e7 0x94e8 0x94ea ) ; 0x6f21 ... 0x6f7e (block 78 0x94e9 0x94eb 0x94ee 0x94ef 0x94f3 0x94f4 0x94f5 0x94f7 0x94f9 0x94fc 0x94fd 0x94ff 0x9503 0x9502 0x9506 0x9507 0x9509 0x950a 0x950d 0x950e 0x950f 0x9512 0x9513 0x9514 0x9515 0x9516 0x9518 0x951b 0x951d 0x951e 0x951f 0x9522 0x952a 0x952b 0x9529 0x952c 0x9531 0x9532 0x9534 0x9536 0x9537 0x9538 0x953c 0x953e 0x953f 0x9542 0x9535 0x9544 0x9545 0x9546 0x9549 0x954c 0x954e 0x954f 0x9552 0x9553 0x9554 0x9556 0x9557 0x9558 0x9559 0x955b 0x955e 0x955f 0x955d 0x9561 0x9562 0x9564 0x9565 0x9566 0x9567 0x9568 0x9569 0x956a 0x956b 0x956c 0x956f 0x9571 0x9572 0x9573 0x953a 0x77e7 0x77ec 0x96c9 0x79d5 0x79ed 0x79e3 0x79eb 0x7a06 0x5d47 0x7a03 0x7a02 0x7a1e 0x7a14 ) ; 0x7021 ... 0x707e (block 79 0x7a39 0x7a37 0x7a51 0x9ecf 0x99a5 0x7a70 0x7688 0x768e 0x7693 0x7699 0x76a4 0x74de 0x74e0 0x752c 0x9e20 0x9e22 0x9e28 0x9e29 0x9e2a 0x9e2b 0x9e2c 0x9e32 0x9e31 0x9e36 0x9e38 0x9e37 0x9e39 0x9e3a 0x9e3e 0x9e41 0x9e42 0x9e44 0x9e46 0x9e47 0x9e48 0x9e49 0x9e4b 0x9e4c 0x9e4e 0x9e51 0x9e55 0x9e57 0x9e5a 0x9e5b 0x9e5c 0x9e5e 0x9e63 0x9e66 0x9e67 0x9e68 0x9e69 0x9e6a 0x9e6b 0x9e6c 0x9e71 0x9e6d 0x9e73 0x7592 0x7594 0x7596 0x75a0 0x759d 0x75ac 0x75a3 0x75b3 0x75b4 0x75b8 0x75c4 0x75b1 0x75b0 0x75c3 0x75c2 0x75d6 0x75cd 0x75e3 0x75e8 0x75e6 0x75e4 0x75eb 0x75e7 0x7603 0x75f1 0x75fc 0x75ff 0x7610 0x7600 0x7605 0x760c 0x7617 0x760a 0x7625 0x7618 0x7615 0x7619 ) ; 0x7121 ... 0x717e (block 80 0x761b 0x763c 0x7622 0x7620 0x7640 0x762d 0x7630 0x763f 0x7635 0x7643 0x763e 0x7633 0x764d 0x765e 0x7654 0x765c 0x7656 0x766b 0x766f 0x7fca 0x7ae6 0x7a78 0x7a79 0x7a80 0x7a86 0x7a88 0x7a95 0x7aa6 0x7aa0 0x7aac 0x7aa8 0x7aad 0x7ab3 0x8864 0x8869 0x8872 0x887d 0x887f 0x8882 0x88a2 0x88c6 0x88b7 0x88bc 0x88c9 0x88e2 0x88ce 0x88e3 0x88e5 0x88f1 0x891a 0x88fc 0x88e8 0x88fe 0x88f0 0x8921 0x8919 0x8913 0x891b 0x890a 0x8934 0x892b 0x8936 0x8941 0x8966 0x897b 0x758b 0x80e5 0x76b2 0x76b4 0x77dc 0x8012 0x8014 0x8016 0x801c 0x8020 0x8022 0x8025 0x8026 0x8027 0x8029 0x8028 0x8031 0x800b 0x8035 0x8043 0x8046 0x804d 0x8052 0x8069 0x8071 0x8983 0x9878 0x9880 0x9883 ) ; 0x7221 ... 0x727e (block 81 0x9889 0x988c 0x988d 0x988f 0x9894 0x989a 0x989b 0x989e 0x989f 0x98a1 0x98a2 0x98a5 0x98a6 0x864d 0x8654 0x866c 0x866e 0x867f 0x867a 0x867c 0x867b 0x86a8 0x868d 0x868b 0x86ac 0x869d 0x86a7 0x86a3 0x86aa 0x8693 0x86a9 0x86b6 0x86c4 0x86b5 0x86ce 0x86b0 0x86ba 0x86b1 0x86af 0x86c9 0x86cf 0x86b4 0x86e9 0x86f1 0x86f2 0x86ed 0x86f3 0x86d0 0x8713 0x86de 0x86f4 0x86df 0x86d8 0x86d1 0x8703 0x8707 0x86f8 0x8708 0x870a 0x870d 0x8709 0x8723 0x873b 0x871e 0x8725 0x872e 0x871a 0x873e 0x8748 0x8734 0x8731 0x8729 0x8737 0x873f 0x8782 0x8722 0x877d 0x877e 0x877b 0x8760 0x8770 0x874c 0x876e 0x878b 0x8753 0x8763 0x877c 0x8764 0x8759 0x8765 0x8793 0x87af 0x87a8 0x87d2 ) ; 0x7321 ... 0x737e (block 82 0x87c6 0x8788 0x8785 0x87ad 0x8797 0x8783 0x87ab 0x87e5 0x87ac 0x87b5 0x87b3 0x87cb 0x87d3 0x87bd 0x87d1 0x87c0 0x87ca 0x87db 0x87ea 0x87e0 0x87ee 0x8816 0x8813 0x87fe 0x880a 0x881b 0x8821 0x8839 0x883c 0x7f36 0x7f42 0x7f44 0x7f45 0x8210 0x7afa 0x7afd 0x7b08 0x7b03 0x7b04 0x7b15 0x7b0a 0x7b2b 0x7b0f 0x7b47 0x7b38 0x7b2a 0x7b19 0x7b2e 0x7b31 0x7b20 0x7b25 0x7b24 0x7b33 0x7b3e 0x7b1e 0x7b58 0x7b5a 0x7b45 0x7b75 0x7b4c 0x7b5d 0x7b60 0x7b6e 0x7b7b 0x7b62 0x7b72 0x7b71 0x7b90 0x7ba6 0x7ba7 0x7bb8 0x7bac 0x7b9d 0x7ba8 0x7b85 0x7baa 0x7b9c 0x7ba2 0x7bab 0x7bb4 0x7bd1 0x7bc1 0x7bcc 0x7bdd 0x7bda 0x7be5 0x7be6 0x7bea 0x7c0c 0x7bfe 0x7bfc 0x7c0f 0x7c16 0x7c0b ) ; 0x7421 ... 0x747e (block 83 0x7c1f 0x7c2a 0x7c26 0x7c38 0x7c41 0x7c40 0x81fe 0x8201 0x8202 0x8204 0x81ec 0x8844 0x8221 0x8222 0x8223 0x822d 0x822f 0x8228 0x822b 0x8238 0x823b 0x8233 0x8234 0x823e 0x8244 0x8249 0x824b 0x824f 0x825a 0x825f 0x8268 0x887e 0x8885 0x8888 0x88d8 0x88df 0x895e 0x7f9d 0x7f9f 0x7fa7 0x7faf 0x7fb0 0x7fb2 0x7c7c 0x6549 0x7c91 0x7c9d 0x7c9c 0x7c9e 0x7ca2 0x7cb2 0x7cbc 0x7cbd 0x7cc1 0x7cc7 0x7ccc 0x7ccd 0x7cc8 0x7cc5 0x7cd7 0x7ce8 0x826e 0x66a8 0x7fbf 0x7fce 0x7fd5 0x7fe5 0x7fe1 0x7fe6 0x7fe9 0x7fee 0x7ff3 0x7cf8 0x7d77 0x7da6 0x7dae 0x7e47 0x7e9b 0x9eb8 0x9eb4 0x8d73 0x8d84 0x8d94 0x8d91 0x8db1 0x8d67 0x8d6d 0x8c47 0x8c49 0x914a 0x9150 0x914e 0x914f 0x9164 ) ; 0x7521 ... 0x757e (block 84 0x9162 0x9161 0x9170 0x9169 0x916f 0x917d 0x917e 0x9172 0x9174 0x9179 0x918c 0x9185 0x9190 0x918d 0x9191 0x91a2 0x91a3 0x91aa 0x91ad 0x91ae 0x91af 0x91b5 0x91b4 0x91ba 0x8c55 0x9e7e 0x8db8 0x8deb 0x8e05 0x8e59 0x8e69 0x8db5 0x8dbf 0x8dbc 0x8dba 0x8dc4 0x8dd6 0x8dd7 0x8dda 0x8dde 0x8dce 0x8dcf 0x8ddb 0x8dc6 0x8dec 0x8df7 0x8df8 0x8de3 0x8df9 0x8dfb 0x8de4 0x8e09 0x8dfd 0x8e14 0x8e1d 0x8e1f 0x8e2c 0x8e2e 0x8e23 0x8e2f 0x8e3a 0x8e40 0x8e39 0x8e35 0x8e3d 0x8e31 0x8e49 0x8e41 0x8e42 0x8e51 0x8e52 0x8e4a 0x8e70 0x8e76 0x8e7c 0x8e6f 0x8e74 0x8e85 0x8e8f 0x8e94 0x8e90 0x8e9c 0x8e9e 0x8c78 0x8c82 0x8c8a 0x8c85 0x8c98 0x8c94 0x659b 0x89d6 0x89de 0x89da 0x89dc ) ; 0x7621 ... 0x767e (block 85 0x89e5 0x89eb 0x89ef 0x8a3e 0x8b26 0x9753 0x96e9 0x96f3 0x96ef 0x9706 0x9701 0x9708 0x970f 0x970e 0x972a 0x972d 0x9730 0x973e 0x9f80 0x9f83 0x9f85 0x9f86 0x9f87 0x9f88 0x9f89 0x9f8a 0x9f8c 0x9efe 0x9f0b 0x9f0d 0x96b9 0x96bc 0x96bd 0x96ce 0x96d2 0x77bf 0x96e0 0x928e 0x92ae 0x92c8 0x933e 0x936a 0x93ca 0x938f 0x943e 0x946b 0x9c7f 0x9c82 0x9c85 0x9c86 0x9c87 0x9c88 0x7a23 0x9c8b 0x9c8e 0x9c90 0x9c91 0x9c92 0x9c94 0x9c95 0x9c9a 0x9c9b 0x9c9e 0x9c9f 0x9ca0 0x9ca1 0x9ca2 0x9ca3 0x9ca5 0x9ca6 0x9ca7 0x9ca8 0x9ca9 0x9cab 0x9cad 0x9cae 0x9cb0 0x9cb1 0x9cb2 0x9cb3 0x9cb4 0x9cb5 0x9cb6 0x9cb7 0x9cba 0x9cbb 0x9cbc 0x9cbd 0x9cc4 0x9cc5 0x9cc6 0x9cc7 0x9cca 0x9ccb ) ; 0x7721 ... 0x777e (block 86 0x9ccc 0x9ccd 0x9cce 0x9ccf 0x9cd0 0x9cd3 0x9cd4 0x9cd5 0x9cd7 0x9cd8 0x9cd9 0x9cdc 0x9cdd 0x9cdf 0x9ce2 0x977c 0x9785 0x9791 0x9792 0x9794 0x97af 0x97ab 0x97a3 0x97b2 0x97b4 0x9ab1 0x9ab0 0x9ab7 0x9e58 0x9ab6 0x9aba 0x9abc 0x9ac1 0x9ac0 0x9ac5 0x9ac2 0x9acb 0x9acc 0x9ad1 0x9b45 0x9b43 0x9b47 0x9b49 0x9b48 0x9b4d 0x9b51 0x98e8 0x990d 0x992e 0x9955 0x9954 0x9adf 0x9ae1 0x9ae6 0x9aef 0x9aeb 0x9afb 0x9aed 0x9af9 0x9b08 0x9b0f 0x9b13 0x9b1f 0x9b23 0x9ebd 0x9ebe 0x7e3b 0x9e82 0x9e87 0x9e88 0x9e8b 0x9e92 0x93d6 0x9e9d 0x9e9f 0x9edb 0x9edc 0x9edd 0x9ee0 0x9edf 0x9ee2 0x9ee9 0x9ee7 0x9ee5 0x9eea 0x9eef 0x9f22 0x9f2c 0x9f2f 0x9f39 0x9f37 0x9f3d 0x9f3e 0x9f44 ) vflib3-3.6.14.dfsg/ccv/mk-ccv-cns20000755000175000017500000000021606774330061016015 0ustar mohuramohura#! /bin/sh gzip -cd $5 | sed 's/#.*$//' \ | grep '^0x2' \ | grep '^.' | awk '{print $1, $2 }' \ | sort | ./mkcscv -c $1 $2 $3 $4 > $6 exit 0 vflib3-3.6.14.dfsg/ccv/gb12345_unicode.ccv0000644000175000017500000020312707006213676017245 0ustar mohuramohura; Conversion table: GB12345 ==> UNICODE (charset-external-name GB12345) (charset-external-encoding ISO2022) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x21) (c1-max 0x79) (c2-min 0x21) (c2-max 0x7e) (block-size 256) (nblocks 89) ; 0x2121 ... 0x217e (block 0 0x3000 0x3001 0x3002 0x30fb 0x02c9 0x02c7 0x00a8 0x3003 0x3005 0x2015 0xff5e 0x2225 0x2026 0x2018 0x2019 0x201c 0x201d 0x3014 0x3015 0x3008 0x3009 0x300a 0x300b 0x300c 0x300d 0x300e 0x300f 0x3016 0x3017 0x3010 0x3011 0x00b1 0x00d7 0x00f7 0x2236 0x2227 0x2228 0x2211 0x220f 0x222a 0x2229 0x2208 0x2237 0x221a 0x22a5 0x2225 0x2220 0x2312 0x2299 0x222b 0x222e 0x2261 0x224c 0x2248 0x223d 0x221d 0x2260 0x226e 0x226f 0x2264 0x2265 0x221e 0x2235 0x2234 0x2642 0x2640 0x00b0 0x2032 0x2033 0x2103 0xff04 0x00a4 0xffe0 0xffe1 0x2030 0x00a7 0x2116 0x2606 0x2605 0x25cb 0x25cf 0x25ce 0x25c7 0x25c6 0x25a1 0x25a0 0x25b3 0x25b2 0x203b 0x2192 0x2190 0x2191 0x2193 0x3013 ) ; 0x2221 ... 0x227e (block 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x2488 0x2489 0x248a 0x248b 0x248c 0x248d 0x248e 0x248f 0x2490 0x2491 0x2492 0x2493 0x2494 0x2495 0x2496 0x2497 0x2498 0x2499 0x249a 0x249b 0x2474 0x2475 0x2476 0x2477 0x2478 0x2479 0x247a 0x247b 0x247c 0x247d 0x247e 0x247f 0x2480 0x2481 0x2482 0x2483 0x2484 0x2485 0x2486 0x2487 0x2460 0x2461 0x2462 0x2463 0x2464 0x2465 0x2466 0x2467 0x2468 0x2469 -1 -1 0x3220 0x3221 0x3222 0x3223 0x3224 0x3225 0x3226 0x3227 0x3228 0x3229 -1 -1 0x2160 0x2161 0x2162 0x2163 0x2164 0x2165 0x2166 0x2167 0x2168 0x2169 0x216a 0x216b -1 -1 ) ; 0x2321 ... 0x237e (block 2 0xff01 0xff02 0xff03 0xffe5 0xff05 0xff06 0xff07 0xff08 0xff09 0xff0a 0xff0b 0xff0c 0xff0d 0xff0e 0xff0f 0xff10 0xff11 0xff12 0xff13 0xff14 0xff15 0xff16 0xff17 0xff18 0xff19 0xff1a 0xff1b 0xff1c 0xff1d 0xff1e 0xff1f 0xff20 0xff21 0xff22 0xff23 0xff24 0xff25 0xff26 0xff27 0xff28 0xff29 0xff2a 0xff2b 0xff2c 0xff2d 0xff2e 0xff2f 0xff30 0xff31 0xff32 0xff33 0xff34 0xff35 0xff36 0xff37 0xff38 0xff39 0xff3a 0xff3b 0xff3c 0xff3d 0xff3e 0xff3f 0xff40 0xff41 0xff42 0xff43 0xff44 0xff45 0xff46 0xff47 0xff48 0xff49 0xff4a 0xff4b 0xff4c 0xff4d 0xff4e 0xff4f 0xff50 0xff51 0xff52 0xff53 0xff54 0xff55 0xff56 0xff57 0xff58 0xff59 0xff5a 0xff5b 0xff5c 0xff5d 0xffe3 ) ; 0x2421 ... 0x247e (block 3 0x3041 0x3042 0x3043 0x3044 0x3045 0x3046 0x3047 0x3048 0x3049 0x304a 0x304b 0x304c 0x304d 0x304e 0x304f 0x3050 0x3051 0x3052 0x3053 0x3054 0x3055 0x3056 0x3057 0x3058 0x3059 0x305a 0x305b 0x305c 0x305d 0x305e 0x305f 0x3060 0x3061 0x3062 0x3063 0x3064 0x3065 0x3066 0x3067 0x3068 0x3069 0x306a 0x306b 0x306c 0x306d 0x306e 0x306f 0x3070 0x3071 0x3072 0x3073 0x3074 0x3075 0x3076 0x3077 0x3078 0x3079 0x307a 0x307b 0x307c 0x307d 0x307e 0x307f 0x3080 0x3081 0x3082 0x3083 0x3084 0x3085 0x3086 0x3087 0x3088 0x3089 0x308a 0x308b 0x308c 0x308d 0x308e 0x308f 0x3090 0x3091 0x3092 0x3093 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2521 ... 0x257e (block 4 0x30a1 0x30a2 0x30a3 0x30a4 0x30a5 0x30a6 0x30a7 0x30a8 0x30a9 0x30aa 0x30ab 0x30ac 0x30ad 0x30ae 0x30af 0x30b0 0x30b1 0x30b2 0x30b3 0x30b4 0x30b5 0x30b6 0x30b7 0x30b8 0x30b9 0x30ba 0x30bb 0x30bc 0x30bd 0x30be 0x30bf 0x30c0 0x30c1 0x30c2 0x30c3 0x30c4 0x30c5 0x30c6 0x30c7 0x30c8 0x30c9 0x30ca 0x30cb 0x30cc 0x30cd 0x30ce 0x30cf 0x30d0 0x30d1 0x30d2 0x30d3 0x30d4 0x30d5 0x30d6 0x30d7 0x30d8 0x30d9 0x30da 0x30db 0x30dc 0x30dd 0x30de 0x30df 0x30e0 0x30e1 0x30e2 0x30e3 0x30e4 0x30e5 0x30e6 0x30e7 0x30e8 0x30e9 0x30ea 0x30eb 0x30ec 0x30ed 0x30ee 0x30ef 0x30f0 0x30f1 0x30f2 0x30f3 0x30f4 0x30f5 0x30f6 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2621 ... 0x267e (block 5 0x0391 0x0392 0x0393 0x0394 0x0395 0x0396 0x0397 0x0398 0x0399 0x039a 0x039b 0x039c 0x039d 0x039e 0x039f 0x03a0 0x03a1 0x03a3 0x03a4 0x03a5 0x03a6 0x03a7 0x03a8 0x03a9 -1 -1 -1 -1 -1 -1 -1 -1 0x03b1 0x03b2 0x03b3 0x03b4 0x03b5 0x03b6 0x03b7 0x03b8 0x03b9 0x03ba 0x03bb 0x03bc 0x03bd 0x03be 0x03bf 0x03c0 0x03c1 0x03c3 0x03c4 0x03c5 0x03c6 0x03c7 0x03c8 0x03c9 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2721 ... 0x277e (block 6 0x0410 0x0411 0x0412 0x0413 0x0414 0x0415 0x0401 0x0416 0x0417 0x0418 0x0419 0x041a 0x041b 0x041c 0x041d 0x041e 0x041f 0x0420 0x0421 0x0422 0x0423 0x0424 0x0425 0x0426 0x0427 0x0428 0x0429 0x042a 0x042b 0x042c 0x042d 0x042e 0x042f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x0430 0x0431 0x0432 0x0433 0x0434 0x0435 0x0451 0x0436 0x0437 0x0438 0x0439 0x043a 0x043b 0x043c 0x043d 0x043e 0x043f 0x0440 0x0441 0x0442 0x0443 0x0444 0x0445 0x0446 0x0447 0x0448 0x0449 0x044a 0x044b 0x044c 0x044d 0x044e 0x044f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2821 ... 0x287e (block 7 0x0101 0x00e1 0x01ce 0x00e0 0x0113 0x00e9 0x011b 0x00e8 0x012b 0x00ed 0x01d0 0x00ec 0x014d 0x00f3 0x01d2 0x00f2 0x016b 0x00fa 0x01d4 0x00f9 0x01d6 0x01d8 0x01da 0x01dc 0x00fc 0x00ea -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x3105 0x3106 0x3107 0x3108 0x3109 0x310a 0x310b 0x310c 0x310d 0x310e 0x310f 0x3110 0x3111 0x3112 0x3113 0x3114 0x3115 0x3116 0x3117 0x3118 0x3119 0x311a 0x311b 0x311c 0x311d 0x311e 0x311f 0x3120 0x3121 0x3122 0x3123 0x3124 0x3125 0x3126 0x3127 0x3128 0x3129 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2921 ... 0x297e (block 8 -1 -1 -1 0x2500 0x2501 0x2502 0x2503 0x2504 0x2505 0x2506 0x2507 0x2508 0x2509 0x250a 0x250b 0x250c 0x250d 0x250e 0x250f 0x2510 0x2511 0x2512 0x2513 0x2514 0x2515 0x2516 0x2517 0x2518 0x2519 0x251a 0x251b 0x251c 0x251d 0x251e 0x251f 0x2520 0x2521 0x2522 0x2523 0x2524 0x2525 0x2526 0x2527 0x2528 0x2529 0x252a 0x252b 0x252c 0x252d 0x252e 0x252f 0x2530 0x2531 0x2532 0x2533 0x2534 0x2535 0x2536 0x2537 0x2538 0x2539 0x253a 0x253b 0x253c 0x253d 0x253e 0x253f 0x2540 0x2541 0x2542 0x2543 0x2544 0x2545 0x2546 0x2547 0x2548 0x2549 0x254a 0x254b -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2a21 ... 0x2a7e (block 9 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2b21 ... 0x2b7e (block 10 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2c21 ... 0x2c7e (block 11 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2d21 ... 0x2d7e (block 12 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2e21 ... 0x2e7e (block 13 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x2f21 ... 0x2f7e (block 14 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x3021 ... 0x307e (block 15 0x554a 0x963f 0x57c3 0x6328 0x54ce 0x5509 0x54c0 0x769a 0x764c 0x85f9 0x77ee 0x827e 0x7919 0x611b 0x9698 0x978d 0x6c28 0x5b89 0x4ffa 0x6309 0x6697 0x5cb8 0x80fa 0x6848 0x9aaf 0x6602 0x76ce 0x51f9 0x6556 0x71ac 0x7ff1 0x8956 0x50b2 0x5965 0x61ca 0x6fb3 0x82ad 0x634c 0x6252 0x53ed 0x5427 0x7b06 0x516b 0x75a4 0x5df4 0x62d4 0x8dcb 0x9776 0x628a 0x8019 0x58e9 0x9738 0x7f77 0x7238 0x767d 0x67cf 0x767e 0x64fa 0x4f70 0x6557 0x62dc 0x7a17 0x6591 0x73ed 0x642c 0x6273 0x822c 0x9812 0x677f 0x7248 0x626e 0x62cc 0x4f34 0x74e3 0x534a 0x8fa6 0x7d46 0x90a6 0x5e6b 0x6886 0x699c 0x8180 0x7d81 0x68d2 0x78c5 0x868c 0x938a 0x508d 0x8b17 0x82de 0x80de 0x5305 0x8912 0x5265 ) ; 0x3121 ... 0x317e (block 16 0x8584 0x96f9 0x4fdd 0x5821 0x98fd 0x5bf6 0x62b1 0x5831 0x66b4 0x8c79 0x9b91 0x7206 0x676f 0x7891 0x60b2 0x5351 0x5317 0x8f29 0x80cc 0x8c9d 0x92c7 0x500d 0x72fd 0x5099 0x618a 0x7119 0x88ab 0x5954 0x82ef 0x672c 0x7b28 0x5d29 0x7db3 0x752d 0x6cf5 0x8e66 0x8ff8 0x903c 0x9f3b 0x6bd4 0x9119 0x7b46 0x5f7c 0x78a7 0x84d6 0x853d 0x7562 0x6583 0x6bd6 0x5e63 0x5e87 0x75f9 0x9589 0x655d 0x5f0a 0x5fc5 0x8f9f 0x58c1 0x81c2 0x907f 0x965b 0x97ad 0x908a 0x7de8 0x8cb6 0x6241 0x4fbf 0x8b8a 0x535e 0x8fa8 0x8faf 0x8fae 0x904d 0x6a19 0x5f6a 0x8198 0x8868 0x9c49 0x618b 0x522b 0x765f 0x5f6c 0x658c 0x7015 0x6ff1 0x8cd3 0x64ef 0x5175 0x51b0 0x67c4 0x4e19 0x79c9 0x9905 0x70b3 ) ; 0x3221 ... 0x327e (block 17 0x75c5 0x5e76 0x73bb 0x83e0 0x64ad 0x64a5 0x9262 0x6ce2 0x535a 0x52c3 0x640f 0x9251 0x7b94 0x4f2f 0x5e1b 0x8236 0x8116 0x818a 0x6e24 0x6cca 0x99c1 0x6355 0x535c 0x54fa 0x88dc 0x57e0 0x4e0d 0x5e03 0x6b65 0x7c3f 0x90e8 0x6016 0x64e6 0x731c 0x88c1 0x6750 0x624d 0x8ca1 0x776c 0x8e29 0x91c7 0x5f69 0x83dc 0x8521 0x9910 0x53c3 0x8836 0x6b98 0x615a 0x6158 0x71e6 0x84bc 0x8259 0x5009 0x6ec4 0x85cf 0x64cd 0x7cd9 0x69fd 0x66f9 0x8349 0x53a0 0x7b56 0x5074 0x518c 0x6e2c 0x5c64 0x8e6d 0x63d2 0x53c9 0x832c 0x8336 0x67e5 0x78b4 0x643d 0x5bdf 0x5c94 0x5dee 0x8a6b 0x62c6 0x67f4 0x8c7a 0x6519 0x647b 0x87ec 0x995e 0x8b92 0x7e8f 0x93df 0x7523 0x95e1 0x986b 0x660c 0x7316 ) ; 0x3321 ... 0x337e (block 18 0x5834 0x5617 0x5e38 0x9577 0x511f 0x8178 0x5ee0 0x655e 0x66a2 0x5531 0x5021 0x8d85 0x6284 0x9214 0x671d 0x5632 0x6f6e 0x5de2 0x5435 0x7092 0x8eca 0x626f 0x64a4 0x63a3 0x5fb9 0x6f88 0x90f4 0x81e3 0x8fb0 0x5875 0x6668 0x5ff1 0x6c89 0x9673 0x8d81 0x896f 0x6491 0x7a31 0x57ce 0x6a59 0x6210 0x5448 0x4e58 0x7a0b 0x61f2 0x6f84 0x8aa0 0x627f 0x901e 0x9a01 0x79e4 0x5403 0x75f4 0x6301 0x5319 0x6c60 0x9072 0x5f1b 0x99b3 0x803b 0x9f52 0x4f88 0x5c3a 0x8d64 0x7fc5 0x65a5 0x71be 0x5145 0x885d 0x87f2 0x5d07 0x5bf5 0x62bd 0x916c 0x7587 0x8e8a 0x7a20 0x6101 0x7c4c 0x4ec7 0x7da2 0x7785 0x919c 0x81ed 0x521d 0x51fa 0x6a71 0x53a8 0x8e87 0x92e4 0x96db 0x6ec1 0x9664 0x695a ) ; 0x3421 ... 0x347e (block 19 0x790e 0x5132 0x77d7 0x6410 0x89f8 0x8655 0x63e3 0x5ddd 0x7a7f 0x693d 0x50b3 0x8239 0x5598 0x4e32 0x7621 0x7a97 0x5e62 0x5e8a 0x95d6 0x5275 0x5439 0x708a 0x6376 0x9318 0x5782 0x6625 0x693f 0x9187 0x5507 0x6df3 0x7d14 0x8822 0x6233 0x7dbd 0x75b5 0x8328 0x78c1 0x96cc 0x8fad 0x6148 0x74f7 0x8a5e 0x6b64 0x523a 0x8cdc 0x6b21 0x8070 0x8471 0x56f1 0x5306 0x5f9e 0x53e2 0x51d1 0x7c97 0x918b 0x7c07 0x4fc3 0x8ea5 0x7be1 0x7ac4 0x6467 0x5d14 0x50ac 0x8106 0x7601 0x7cb9 0x6dec 0x7fe0 0x6751 0x5b58 0x5bf8 0x78cb 0x64ae 0x6413 0x63aa 0x632b 0x932f 0x642d 0x9054 0x7b54 0x7629 0x6253 0x5927 0x5446 0x6b79 0x50a3 0x6234 0x5e36 0x6b86 0x4ee3 0x8cb8 0x888b 0x5f85 0x902e ) ; 0x3521 ... 0x357e (block 20 0x6020 0x803d 0x64d4 0x4e39 0x55ae 0x9132 0x64a3 0x81bd 0x65e6 0x6c2e 0x4f46 0x619a 0x6de1 0x8a95 0x5f48 0x86cb 0x7576 0x64cb 0x9ee8 0x8569 0x6a94 0x5200 0x6417 0x8e48 0x5012 0x5cf6 0x79b1 0x5c0e 0x5230 0x7a3b 0x60bc 0x9053 0x76d7 0x5fb7 0x5f97 0x7684 0x8e6c 0x71c8 0x767b 0x7b49 0x77aa 0x51f3 0x9127 0x5824 0x4f4e 0x6ef4 0x8fea 0x6575 0x7b1b 0x72c4 0x6ecc 0x7fdf 0x5ae1 0x62b5 0x5e95 0x5730 0x8482 0x7b2c 0x5e1d 0x5f1f 0x905e 0x7de0 0x985b 0x6382 0x6ec7 0x7898 0x9ede 0x5178 0x975b 0x588a 0x96fb 0x4f43 0x7538 0x5e97 0x60e6 0x5960 0x6fb1 0x6bbf 0x7889 0x53fc 0x96d5 0x51cb 0x5201 0x6389 0x540a 0x91e3 0x8abf 0x8dcc 0x7239 0x789f 0x8776 0x8fed 0x8adc 0x758a ) ; 0x3621 ... 0x367e (block 21 0x4e01 0x76ef 0x53ee 0x91d8 0x9802 0x9f0e 0x9320 0x5b9a 0x8a02 0x4e22 0x6771 0x51ac 0x8463 0x61c2 0x52d5 0x68df 0x4f97 0x606b 0x51cd 0x6d1e 0x515c 0x6296 0x9b25 0x9661 0x8c46 0x9017 0x75d8 0x90fd 0x7763 0x6bd2 0x72a2 0x7368 0x8b80 0x5835 0x7779 0x8ced 0x675c 0x934d 0x809a 0x5ea6 0x6e21 0x5992 0x7aef 0x77ed 0x935b 0x6bb5 0x65b7 0x7dde 0x5806 0x5151 0x968a 0x5c0d 0x58a9 0x5678 0x8e72 0x6566 0x9813 0x56e4 0x920d 0x76fe 0x9041 0x6387 0x54c6 0x591a 0x596a 0x579b 0x8eb2 0x6735 0x8dfa 0x8235 0x5241 0x60f0 0x58ae 0x86fe 0x5ce8 0x9d5d 0x4fc4 0x984d 0x8a1b 0x5a25 0x60e1 0x5384 0x627c 0x904f 0x9102 0x9913 0x6069 0x800c 0x5152 0x8033 0x723e 0x990c 0x6d31 0x4e8c ) ; 0x3721 ... 0x377e (block 22 0x8cb3 0x767c 0x7f70 0x7b4f 0x4f10 0x4e4f 0x95a5 0x6cd5 0x73d0 0x85e9 0x5e06 0x756a 0x7ffb 0x6a0a 0x792c 0x91e9 0x7e41 0x51e1 0x7169 0x53cd 0x8fd4 0x7bc4 0x8ca9 0x72af 0x98ef 0x6cdb 0x574a 0x82b3 0x65b9 0x80aa 0x623f 0x9632 0x59a8 0x4eff 0x8a2a 0x7d21 0x653e 0x83f2 0x975e 0x5561 0x98db 0x80a5 0x532a 0x8ab9 0x5420 0x80ba 0x5ee2 0x6cb8 0x8cbb 0x82ac 0x915a 0x5429 0x6c1b 0x5206 0x7d1b 0x58b3 0x711a 0x6c7e 0x7c89 0x596e 0x4efd 0x5fff 0x61a4 0x7cde 0x8c50 0x5c01 0x6953 0x8702 0x5cf0 0x92d2 0x98a8 0x760b 0x70fd 0x9022 0x99ae 0x7e2b 0x8af7 0x5949 0x9cf3 0x4f5b 0x5426 0x592b 0x6577 0x819a 0x5b75 0x6276 0x62c2 0x8f3b 0x5e45 0x6c1f 0x7b26 0x4f0f 0x4fd8 0x670d ) ; 0x3821 ... 0x387e (block 23 0x6d6e 0x6daa 0x798f 0x88b1 0x5f17 0x752b 0x64ab 0x8f14 0x4fef 0x91dc 0x65a7 0x812f 0x8151 0x5e9c 0x8150 0x8d74 0x526f 0x8986 0x8ce6 0x5fa9 0x5085 0x4ed8 0x961c 0x7236 0x8179 0x8ca0 0x5bcc 0x8a03 0x9644 0x5a66 0x7e1b 0x5490 0x5676 0x560e 0x8a72 0x6539 0x6982 0x9223 0x84cb 0x6e89 0x5e79 0x7518 0x6746 0x67d1 0x7aff 0x809d 0x8d95 0x611f 0x79c6 0x6562 0x8d1b 0x5ca1 0x525b 0x92fc 0x7f38 0x809b 0x7db1 0x5d17 0x6e2f 0x6760 0x7bd9 0x768b 0x9ad8 0x818f 0x7f94 0x7cd5 0x641e 0x93ac 0x7a3f 0x544a 0x54e5 0x6b4c 0x64f1 0x6208 0x9d3f 0x80f3 0x7599 0x5272 0x9769 0x845b 0x683c 0x86e4 0x95a3 0x9694 0x927b 0x500b 0x5404 0x7d66 0x6839 0x8ddf 0x8015 0x66f4 0x5e9a 0x7fb9 ) ; 0x3921 ... 0x397e (block 24 0x57c2 0x803f 0x6897 0x5de5 0x653b 0x529f 0x606d 0x9f94 0x4f9b 0x8eac 0x516c 0x5bab 0x5f13 0x978f 0x6c5e 0x62f1 0x8ca2 0x5171 0x920e 0x52fe 0x6e9d 0x82df 0x72d7 0x57a2 0x69cb 0x8cfc 0x591f 0x8f9c 0x83c7 0x5495 0x7b8d 0x4f30 0x6cbd 0x5b64 0x59d1 0x9f13 0x53e4 0x8831 0x9aa8 0x8c37 0x80a1 0x6545 0x9867 0x56fa 0x96c7 0x522e 0x74dc 0x526e 0x5be1 0x6302 0x8902 0x4e56 0x62d0 0x602a 0x68fa 0x95dc 0x5b98 0x51a0 0x89c0 0x7ba1 0x9928 0x7f50 0x6163 0x704c 0x8cab 0x5149 0x5ee3 0x901b 0x7470 0x898f 0x572d 0x7845 0x6b78 0x9f9c 0x95a8 0x8ecc 0x9b3c 0x8a6d 0x7678 0x6842 0x6ac3 0x8dea 0x8cb4 0x528a 0x8f25 0x6eda 0x68cd 0x934b 0x90ed 0x570b 0x679c 0x88f9 0x904e 0x54c8 ) ; 0x3a21 ... 0x3a7e (block 25 0x9ab8 0x5b69 0x6d77 0x6c26 0x4ea5 0x5bb3 0x99ed 0x9163 0x61a8 0x90af 0x97d3 0x542b 0x6db5 0x5bd2 0x51fd 0x558a 0x7f55 0x7ff0 0x64bc 0x634d 0x65f1 0x61be 0x608d 0x710a 0x6c57 0x6f22 0x592f 0x676d 0x822a 0x58d5 0x568e 0x8c6a 0x6beb 0x90dd 0x597d 0x8017 0x865f 0x6d69 0x5475 0x559d 0x8377 0x83cf 0x6838 0x79be 0x548c 0x4f55 0x5408 0x76d2 0x8c89 0x95a1 0x6cb3 0x6db8 0x8d6b 0x8910 0x9db4 0x8cc0 0x563f 0x9ed1 0x75d5 0x5f88 0x72e0 0x6068 0x54fc 0x4ea8 0x6a2a 0x8861 0x6052 0x8f5f 0x54c4 0x70d8 0x8679 0x9d3b 0x6d2a 0x5b8f 0x5f18 0x7d05 0x5589 0x4faf 0x7334 0x543c 0x539a 0x5019 0x5f8c 0x547c 0x4e4e 0x5ffd 0x745a 0x58fa 0x846b 0x80e1 0x8774 0x72d0 0x7cca 0x6e56 ) ; 0x3b21 ... 0x3b7e (block 26 0x5f27 0x864e 0x552c 0x8b77 0x4e92 0x6eec 0x6237 0x82b1 0x5629 0x83ef 0x733e 0x6ed1 0x756b 0x5283 0x5316 0x8a71 0x69d0 0x5f8a 0x61f7 0x6dee 0x58de 0x6b61 0x74b0 0x6853 0x9084 0x7de9 0x63db 0x60a3 0x559a 0x7613 0x8c62 0x7165 0x6e19 0x5ba6 0x5e7b 0x8352 0x614c 0x9ec4 0x78fa 0x8757 0x7c27 0x7687 0x51f0 0x60f6 0x714c 0x6643 0x5e4c 0x604d 0x8b0a 0x7070 0x63ee 0x8f1d 0x5fbd 0x6062 0x86d4 0x56de 0x6bc1 0x6094 0x6167 0x5349 0x60e0 0x6666 0x8cc4 0x7a62 0x6703 0x71f4 0x532f 0x8af1 0x8aa8 0x7e6a 0x8477 0x660f 0x5a5a 0x9b42 0x6e3e 0x6df7 0x8c41 0x6d3b 0x4f19 0x706b 0x7372 0x6216 0x60d1 0x970d 0x8ca8 0x798d 0x64ca 0x573e 0x57fa 0x6a5f 0x7578 0x7a3d 0x7a4d 0x7b95 ) ; 0x3c21 ... 0x3c7e (block 27 0x808c 0x9951 0x8ff9 0x6fc0 0x8b4f 0x9dc4 0x59ec 0x7e3e 0x7ddd 0x5409 0x6975 0x68d8 0x8f2f 0x7c4d 0x96c6 0x53ca 0x6025 0x75be 0x6c72 0x5373 0x5ac9 0x7d1a 0x64e0 0x5e7e 0x810a 0x5df1 0x858a 0x6280 0x5180 0x5b63 0x4f0e 0x796d 0x5291 0x60b8 0x6fdf 0x5bc4 0x5bc2 0x8a08 0x8a18 0x65e2 0x5fcc 0x969b 0x5993 0x7e7c 0x7d00 0x5609 0x67b7 0x593e 0x4f73 0x5bb6 0x52a0 0x83a2 0x9830 0x8cc8 0x7532 0x9240 0x5047 0x7a3c 0x50f9 0x67b6 0x99d5 0x5ac1 0x6bb2 0x76e3 0x5805 0x5c16 0x7b8b 0x9593 0x714e 0x517c 0x80a9 0x8271 0x5978 0x7dd8 0x7e6d 0x6aa2 0x67ec 0x78b1 0x9e7c 0x63c0 0x64bf 0x7c21 0x5109 0x526a 0x51cf 0x85a6 0x6abb 0x9452 0x8e10 0x8ce4 0x898b 0x9375 0x7bad 0x4ef6 ) ; 0x3d21 ... 0x3d7e (block 28 0x5065 0x8266 0x528d 0x991e 0x6f38 0x6ffa 0x6f97 0x5efa 0x50f5 0x59dc 0x5c07 0x6f3f 0x6c5f 0x7586 0x8523 0x69f3 0x596c 0x8b1b 0x5320 0x91ac 0x964d 0x8549 0x6912 0x7901 0x7126 0x81a0 0x4ea4 0x90ca 0x6f86 0x9a55 0x5b0c 0x56bc 0x652a 0x9278 0x77ef 0x50e5 0x811a 0x72e1 0x89d2 0x9903 0x7e73 0x7d5e 0x527f 0x6559 0x9175 0x8f4e 0x8f03 0x53eb 0x7a96 0x63ed 0x63a5 0x7686 0x79f8 0x8857 0x968e 0x622a 0x52ab 0x7bc0 0x6854 0x6770 0x6377 0x776b 0x7aed 0x6f54 0x7d50 0x89e3 0x59d0 0x6212 0x85c9 0x82a5 0x754c 0x501f 0x4ecb 0x75a5 0x8aa1 0x5c4a 0x5dfe 0x7b4b 0x65a4 0x91d1 0x4eca 0x6d25 0x895f 0x7dca 0x9326 0x50c5 0x8b39 0x9032 0x9773 0x6649 0x7981 0x8fd1 0x71fc 0x6d78 ) ; 0x3e21 ... 0x3e7e (block 29 0x76e1 0x52c1 0x8346 0x5162 0x8396 0x775b 0x6676 0x9be8 0x4eac 0x9a5a 0x7cbe 0x7cb3 0x7d93 0x4e95 0x8b66 0x666f 0x9838 0x975c 0x5883 0x656c 0x93e1 0x5f91 0x75d9 0x9756 0x7adf 0x7af6 0x51c8 0x70af 0x7a98 0x63ea 0x7a76 0x7cfe 0x7396 0x97ed 0x4e45 0x7078 0x4e5d 0x9152 0x53a9 0x6551 0x820a 0x81fc 0x8205 0x548e 0x5c31 0x759a 0x97a0 0x62d8 0x72d9 0x75bd 0x5c45 0x99d2 0x83ca 0x5c40 0x5480 0x77e9 0x8209 0x6cae 0x805a 0x62d2 0x64da 0x5de8 0x5177 0x8ddd 0x8e1e 0x92f8 0x4ff1 0x53e5 0x61fc 0x70ac 0x5287 0x6350 0x9d51 0x5a1f 0x5026 0x7737 0x5377 0x7d79 0x6485 0x652b 0x6289 0x6398 0x5014 0x7235 0x89ba 0x51b3 0x8a23 0x7d76 0x5747 0x83cc 0x921e 0x8ecd 0x541b 0x5cfb ) ; 0x3f21 ... 0x3f7e (block 30 0x4fca 0x7ae3 0x6d5a 0x90e1 0x99ff 0x5580 0x5496 0x5361 0x54af 0x958b 0x63e9 0x6977 0x51f1 0x6168 0x520a 0x582a 0x52d8 0x574e 0x780d 0x770b 0x5eb7 0x6177 0x7ce0 0x625b 0x6297 0x4ea2 0x7095 0x8003 0x62f7 0x70e4 0x9760 0x5777 0x82db 0x67ef 0x68f5 0x78d5 0x9846 0x79d1 0x6bbb 0x54b3 0x53ef 0x6e34 0x514b 0x523b 0x5ba2 0x8ab2 0x80af 0x5543 0x58be 0x61c7 0x5751 0x542d 0x7a7a 0x6050 0x5b54 0x63a7 0x6473 0x53e3 0x6263 0x5bc7 0x67af 0x54ed 0x7a9f 0x82e6 0x9177 0x5eab 0x8932 0x8a87 0x57ae 0x630e 0x8de8 0x80ef 0x584a 0x7b77 0x5108 0x5feb 0x5bec 0x6b3e 0x5321 0x7b50 0x72c2 0x6846 0x7926 0x7736 0x66e0 0x51b5 0x8667 0x76d4 0x5dcb 0x7aba 0x8475 0x594e 0x9b41 0x5080 ) ; 0x4021 ... 0x407e (block 31 0x994b 0x6127 0x6f70 0x5764 0x6606 0x6346 0x56f0 0x62ec 0x64f4 0x5ed3 0x95ca 0x5783 0x62c9 0x5587 0x881f 0x81d8 0x8fa3 0x5566 0x840a 0x4f86 0x8cf4 0x85cd 0x5a6a 0x6b04 0x6514 0x7c43 0x95cc 0x862d 0x703e 0x8b95 0x652c 0x89bd 0x61f6 0x7e9c 0x721b 0x6feb 0x7405 0x6994 0x72fc 0x5eca 0x90ce 0x6717 0x6d6a 0x6488 0x52de 0x7262 0x8001 0x4f6c 0x59e5 0x916a 0x70d9 0x6f87 0x52d2 0x6a02 0x96f7 0x9433 0x857e 0x78ca 0x7d2f 0x5121 0x58d8 0x64c2 0x808b 0x985e 0x6cea 0x68f1 0x695e 0x51b7 0x5398 0x68a8 0x7281 0x9ece 0x7c6c 0x72f8 0x96e2 0x7055 0x7406 0x674e 0x88cf 0x9bc9 0x79ae 0x8389 0x8354 0x540f 0x6817 0x9e97 0x53b2 0x52f5 0x792b 0x6b77 0x5229 0x5088 0x4f8b 0x4fd0 ) ; 0x4121 ... 0x417e (block 32 0x75e2 0x7acb 0x7c92 0x701d 0x96b8 0x529b 0x7483 0x54e9 0x5006 0x806f 0x84ee 0x9023 0x942e 0x5ec9 0x6190 0x6f23 0x7c3e 0x6582 0x81c9 0x93c8 0x6200 0x7149 0x7df4 0x7ce7 0x51c9 0x6881 0x7cb1 0x826f 0x5169 0x8f1b 0x91cf 0x667e 0x4eae 0x8ad2 0x64a9 0x804a 0x50da 0x7642 0x71ce 0x5be5 0x907c 0x6f66 0x4e86 0x6482 0x9410 0x5ed6 0x6599 0x5217 0x88c2 0x70c8 0x52a3 0x7375 0x7433 0x6797 0x78f7 0x9716 0x81e8 0x9130 0x9c57 0x6dcb 0x51db 0x8cc3 0x541d 0x62ce 0x73b2 0x83f1 0x96f6 0x9f61 0x9234 0x4f36 0x7f9a 0x51cc 0x9748 0x9675 0x5dba 0x9818 0x53e6 0x4ee4 0x6e9c 0x7409 0x69b4 0x786b 0x993e 0x7559 0x5289 0x7624 0x6d41 0x67f3 0x516d 0x9f8d 0x807e 0x56a8 0x7c60 0x7abf ) ; 0x4221 ... 0x427e (block 33 0x9686 0x58df 0x650f 0x96b4 0x6a13 0x5a41 0x645f 0x7c0d 0x6f0f 0x964b 0x8606 0x76e7 0x9871 0x5eec 0x7210 0x64c4 0x6ef7 0x865c 0x9b6f 0x9e93 0x788c 0x9732 0x8def 0x8cc2 0x9e7f 0x6f5e 0x7984 0x9332 0x9678 0x622e 0x9a62 0x5415 0x92c1 0x4fa3 0x65c5 0x5c65 0x5c62 0x7e37 0x616e 0x6c2f 0x5f8b 0x7387 0x6ffe 0x7dd1 0x5dd2 0x6523 0x5b7f 0x7064 0x5375 0x4e82 0x63a0 0x7565 0x6384 0x8f2a 0x502b 0x4f96 0x6dea 0x7db8 0x8ad6 0x863f 0x87ba 0x7f85 0x908f 0x947c 0x7c6e 0x9a3e 0x88f8 0x843d 0x6d1b 0x99f1 0x7d61 0x5abd 0x9ebb 0x746a 0x78bc 0x879e 0x99ac 0x99e1 0x561b 0x55ce 0x57cb 0x8cb7 0x9ea5 0x8ce3 0x9081 0x8109 0x779e 0x9945 0x883b 0x6eff 0x8513 0x66fc 0x6162 0x6f2b ) ; 0x4321 ... 0x437e (block 34 0x8b3e 0x8292 0x832b 0x76f2 0x6c13 0x5fd9 0x83bd 0x732b 0x8305 0x9328 0x6bdb 0x77db 0x925a 0x536f 0x8302 0x5192 0x5e3d 0x8c8c 0x8cbf 0x9ebd 0x73ab 0x679a 0x6885 0x9176 0x9709 0x7164 0x6ca1 0x7709 0x5a92 0x9382 0x6bcf 0x7f8e 0x6627 0x5bd0 0x59b9 0x5a9a 0x9580 0x60b6 0x5011 0x840c 0x8499 0x6aac 0x76df 0x9333 0x731b 0x5922 0x5b5f 0x772f 0x919a 0x9761 0x7cdc 0x8ff7 0x8b0e 0x5f4c 0x7c73 0x79d8 0x8993 0x6ccc 0x871c 0x5bc6 0x5e42 0x68c9 0x7720 0x7dbf 0x5195 0x514d 0x52c9 0x5a29 0x7dec 0x9762 0x82d7 0x63cf 0x7784 0x85d0 0x79d2 0x6e3a 0x5edf 0x5999 0x8511 0x6ec5 0x6c11 0x62bf 0x76bf 0x654f 0x61ab 0x95a9 0x660e 0x879f 0x9cf4 0x9298 0x540d 0x547d 0x8b2c 0x6478 ) ; 0x4421 ... 0x447e (block 35 0x6479 0x8611 0x6a21 0x819c 0x78e8 0x6469 0x9b54 0x62b9 0x672b 0x83ab 0x58a8 0x9ed8 0x6cab 0x6f20 0x5bde 0x964c 0x8b00 0x725f 0x67d0 0x62c7 0x7261 0x755d 0x59c6 0x6bcd 0x5893 0x66ae 0x5e55 0x52df 0x6155 0x6728 0x76ee 0x7766 0x7267 0x7a46 0x62ff 0x54ea 0x5450 0x9209 0x90a3 0x5a1c 0x7d0d 0x6c16 0x4e43 0x5976 0x8010 0x5948 0x5357 0x7537 0x96e3 0x56ca 0x6493 0x8166 0x60f1 0x9b27 0x6dd6 0x5462 0x9912 0x5185 0x5ae9 0x80fd 0x59ae 0x9713 0x502a 0x6ce5 0x5c3c 0x64ec 0x4f60 0x533f 0x81a9 0x9006 0x6eba 0x852b 0x62c8 0x5e74 0x78be 0x6506 0x637b 0x5ff5 0x5a18 0x91c0 0x9ce5 0x5c3f 0x634f 0x8076 0x5b7d 0x5699 0x9477 0x93b3 0x6d85 0x60a8 0x6ab8 0x7370 0x51dd 0x5be7 ) ; 0x4521 ... 0x457e (block 36 0x64f0 0x6fd8 0x725b 0x626d 0x9215 0x7d10 0x81bf 0x6fc3 0x8fb2 0x5f04 0x5974 0x52aa 0x6012 0x5973 0x6696 0x8650 0x7627 0x632a 0x61e6 0x7cef 0x8afe 0x54e6 0x6b50 0x9dd7 0x6bc6 0x85d5 0x5614 0x5076 0x6f1a 0x556a 0x8db4 0x722c 0x5e15 0x6015 0x7436 0x62cd 0x6392 0x724c 0x5f98 0x6e43 0x6d3e 0x6500 0x6f58 0x76e4 0x78d0 0x76fc 0x7554 0x5224 0x53db 0x4e53 0x9f90 0x65c1 0x802a 0x80d6 0x629b 0x5486 0x5228 0x70ae 0x888d 0x8dd1 0x6ce1 0x5478 0x80da 0x57f9 0x88f4 0x8ce0 0x966a 0x914d 0x4f69 0x6c9b 0x5674 0x76c6 0x7830 0x62a8 0x70f9 0x6f8e 0x5f6d 0x84ec 0x68da 0x787c 0x7bf7 0x81a8 0x670b 0x9d6c 0x6367 0x78b0 0x576f 0x7812 0x9739 0x6279 0x62ab 0x5288 0x7435 0x6bd7 ) ; 0x4621 ... 0x467e (block 37 0x5564 0x813e 0x75b2 0x76ae 0x5339 0x75de 0x50fb 0x5c41 0x8b6c 0x7bc7 0x504f 0x7247 0x9a19 0x98c4 0x6f02 0x74e2 0x7968 0x6487 0x77a5 0x62fc 0x983b 0x8ca7 0x54c1 0x8058 0x4e52 0x576a 0x860b 0x840d 0x5e73 0x6191 0x74f6 0x8a55 0x5c4f 0x5761 0x6f51 0x9817 0x5a46 0x7834 0x9b44 0x8feb 0x7c95 0x5256 0x64b2 0x92ea 0x50d5 0x8386 0x8461 0x83e9 0x84b2 0x57d4 0x6a38 0x5703 0x666e 0x6d66 0x8b5c 0x66dd 0x7011 0x671f 0x6b3a 0x68f2 0x621a 0x59bb 0x4e03 0x51c4 0x6f06 0x67d2 0x6c8f 0x5176 0x68cb 0x5947 0x6b67 0x7566 0x5d0e 0x81cd 0x9f4a 0x65d7 0x7948 0x7941 0x9a0e 0x8d77 0x8c48 0x4e5e 0x4f01 0x5553 0x5951 0x780c 0x5668 0x6c23 0x8fc4 0x68c4 0x6c7d 0x6ce3 0x8a16 0x6390 ) ; 0x4721 ... 0x477e (block 38 0x6070 0x6d3d 0x727d 0x6266 0x91fa 0x925b 0x5343 0x9077 0x7c3d 0x4edf 0x8b19 0x4e7e 0x9ed4 0x9322 0x9257 0x524d 0x6f5b 0x9063 0x6dfa 0x8b74 0x5879 0x5d4c 0x6b20 0x6b49 0x69cd 0x55c6 0x8154 0x7f8c 0x58bb 0x8594 0x5f3a 0x6436 0x6a47 0x936c 0x6572 0x6084 0x6a4b 0x77a7 0x55ac 0x50d1 0x5de7 0x9798 0x64ac 0x7ff9 0x5ced 0x4fcf 0x7ac5 0x5207 0x8304 0x4e14 0x602f 0x7aca 0x6b3d 0x4fb5 0x89aa 0x79e6 0x7434 0x52e4 0x82b9 0x64d2 0x79bd 0x5be2 0x6c81 0x9752 0x8f15 0x6c2b 0x50be 0x537f 0x6e05 0x64ce 0x6674 0x6c30 0x60c5 0x9803 0x8acb 0x6176 0x74ca 0x7aae 0x79cb 0x4e18 0x90b1 0x7403 0x6c42 0x56da 0x914b 0x6cc5 0x8da8 0x5340 0x86c6 0x66f2 0x8ec0 0x5c48 0x9a45 0x6e20 ) ; 0x4821 ... 0x487e (block 39 0x53d6 0x5a36 0x9f72 0x8da3 0x53bb 0x5708 0x9874 0x6b0a 0x919b 0x6cc9 0x5168 0x75ca 0x62f3 0x72ac 0x5238 0x52f8 0x7f3a 0x7094 0x7638 0x5374 0x9d72 0x69b7 0x78ba 0x96c0 0x88d9 0x7fa4 0x7136 0x71c3 0x5189 0x67d3 0x74e4 0x58e4 0x6518 0x56b7 0x8b93 0x9952 0x64fe 0x7e5e 0x60f9 0x71b1 0x58ec 0x4ec1 0x4eba 0x5fcd 0x97cc 0x4efb 0x8a8d 0x5203 0x598a 0x7d09 0x6254 0x4ecd 0x65e5 0x620e 0x8338 0x84c9 0x69ae 0x878d 0x7194 0x6eb6 0x5bb9 0x7d68 0x5197 0x63c9 0x67d4 0x8089 0x8339 0x8815 0x5112 0x5b7a 0x5982 0x8fb1 0x4e73 0x6c5d 0x5165 0x8925 0x8edf 0x962e 0x854a 0x745e 0x92ed 0x958f 0x6f64 0x82e5 0x5f31 0x6492 0x7051 0x85a9 0x816e 0x9c13 0x585e 0x8cfd 0x4e09 0x53c1 ) ; 0x4921 ... 0x497e (block 40 0x5098 0x6563 0x6851 0x55d3 0x55aa 0x6414 0x9a37 0x6383 0x5ac2 0x745f 0x8272 0x6f80 0x68ee 0x50e7 0x838e 0x7802 0x6bba 0x5239 0x6c99 0x7d17 0x50bb 0x5565 0x715e 0x7be9 0x66ec 0x73ca 0x82eb 0x6749 0x5c71 0x5220 0x717d 0x886b 0x9583 0x965d 0x64c5 0x8d0d 0x81b3 0x5584 0x6c55 0x6247 0x7e55 0x5892 0x50b7 0x5546 0x8cde 0x664c 0x4e0a 0x5c1a 0x88f3 0x68a2 0x634e 0x7a0d 0x71d2 0x828d 0x52fa 0x97f6 0x5c11 0x54e8 0x90b5 0x7d39 0x5962 0x8cd2 0x86c7 0x820c 0x6368 0x8d66 0x651d 0x5c04 0x61fe 0x6d89 0x793e 0x8a2d 0x7837 0x7533 0x547b 0x4f38 0x8eab 0x6df1 0x5a20 0x7d33 0x795e 0x6c88 0x5be9 0x5b38 0x751a 0x814e 0x614e 0x6ef2 0x8072 0x751f 0x7525 0x7272 0x5347 0x7e69 ) ; 0x4a21 ... 0x4a7e (block 41 0x7701 0x76db 0x5269 0x52dd 0x8056 0x5e2b 0x5931 0x7345 0x65bd 0x6fd5 0x8a69 0x5c38 0x8671 0x5341 0x77f3 0x62fe 0x6642 0x4ec0 0x98df 0x8755 0x5be6 0x8b58 0x53f2 0x77e2 0x4f7f 0x5c4e 0x99db 0x59cb 0x5f0f 0x793a 0x58eb 0x4e16 0x67ff 0x4e8b 0x62ed 0x8a93 0x901d 0x52e2 0x662f 0x55dc 0x566c 0x9069 0x4ed5 0x4f8d 0x91cb 0x98fe 0x6c0f 0x5e02 0x6043 0x5ba4 0x8996 0x8a66 0x6536 0x624b 0x9996 0x5b88 0x58fd 0x6388 0x552e 0x53d7 0x7626 0x7378 0x852c 0x6a1e 0x68b3 0x6b8a 0x6292 0x8f38 0x53d4 0x8212 0x6dd1 0x758f 0x66f8 0x8d16 0x5b70 0x719f 0x85af 0x6691 0x66d9 0x7f72 0x8700 0x9ecd 0x9f20 0x5c6c 0x8853 0x8ff0 0x6a39 0x675f 0x620d 0x7aea 0x5885 0x5eb6 0x6578 0x6f31 ) ; 0x4b21 ... 0x4b7e (block 42 0x6055 0x5237 0x800d 0x6454 0x8870 0x7529 0x5e25 0x6813 0x62f4 0x971c 0x96d9 0x723d 0x8ab0 0x6c34 0x7761 0x7a0e 0x542e 0x77ac 0x9806 0x821c 0x8aac 0x78a9 0x6714 0x720d 0x65af 0x6495 0x5636 0x601d 0x79c1 0x53f8 0x7d72 0x6b7b 0x8086 0x5bfa 0x55e3 0x56db 0x4f3a 0x4f3c 0x98fc 0x5df3 0x9b06 0x8073 0x616b 0x980c 0x9001 0x5b8b 0x8a1f 0x8aa6 0x641c 0x8258 0x64fb 0x55fd 0x8607 0x9165 0x4fd7 0x7d20 0x901f 0x7c9f 0x50f3 0x5851 0x6eaf 0x5bbf 0x8a34 0x8085 0x9178 0x849c 0x7b97 0x96d6 0x968b 0x96a8 0x7d8f 0x9ad3 0x788e 0x6b72 0x7a57 0x9042 0x96a7 0x795f 0x5b6b 0x640d 0x7b0b 0x84d1 0x68ad 0x5506 0x7e2e 0x7463 0x7d22 0x9396 0x6240 0x584c 0x4ed6 0x5b83 0x5979 0x5854 ) ; 0x4c21 ... 0x4c7e (block 43 0x737a 0x64bb 0x8e4b 0x8e0f 0x80ce 0x82d4 0x62ac 0x81fa 0x6cf0 0x915e 0x592a 0x614b 0x6c70 0x574d 0x6524 0x8caa 0x7671 0x7058 0x58c7 0x6a80 0x75f0 0x6f6d 0x8b5a 0x8ac7 0x5766 0x6bef 0x8892 0x78b3 0x63a2 0x5606 0x70ad 0x6e6f 0x5858 0x642a 0x5802 0x68e0 0x819b 0x5510 0x7cd6 0x5018 0x8eba 0x6dcc 0x8d9f 0x71d9 0x638f 0x6fe4 0x6ed4 0x7e27 0x8404 0x6843 0x9003 0x6dd8 0x9676 0x8a0e 0x5957 0x7279 0x85e4 0x9a30 0x75bc 0x8b04 0x68af 0x5254 0x8e22 0x92bb 0x63d0 0x984c 0x8e44 0x557c 0x9ad4 0x66ff 0x568f 0x60d5 0x6d95 0x5243 0x5c49 0x5929 0x6dfb 0x586b 0x7530 0x751c 0x606c 0x8214 0x8146 0x6311 0x689d 0x8fe2 0x773a 0x8df3 0x8cbc 0x9435 0x5e16 0x5ef3 0x807d 0x70f4 ) ; 0x4d21 ... 0x4d7e (block 44 0x6c40 0x5ef7 0x505c 0x4ead 0x5ead 0x633a 0x8247 0x901a 0x6850 0x916e 0x77b3 0x540c 0x9285 0x5f64 0x7ae5 0x6876 0x6345 0x7b52 0x7d71 0x75db 0x5077 0x6295 0x982d 0x900f 0x51f8 0x79c3 0x7a81 0x5716 0x5f92 0x9014 0x5857 0x5c60 0x571f 0x5410 0x5154 0x6e4d 0x5718 0x63a8 0x983d 0x817f 0x8715 0x892a 0x9000 0x541e 0x5c6f 0x81c0 0x62d6 0x6258 0x8131 0x9d15 0x9640 0x99b1 0x99dd 0x6a62 0x59a5 0x62d3 0x553e 0x6316 0x54c7 0x86d9 0x7aaa 0x5a03 0x74e6 0x896a 0x6b6a 0x5916 0x8c4c 0x5f4e 0x7063 0x73a9 0x9811 0x4e38 0x70f7 0x5b8c 0x7897 0x633d 0x665a 0x7696 0x60cb 0x5b9b 0x5a49 0x842c 0x8155 0x6c6a 0x738b 0x4ea1 0x6789 0x7db2 0x5f80 0x65fa 0x671b 0x5fd8 0x5984 0x5a01 ) ; 0x4e21 ... 0x4e7e (block 45 0x5dcd 0x5fae 0x5371 0x97cb 0x9055 0x6845 0x570d 0x552f 0x60df 0x7232 0x6ff0 0x7dad 0x8466 0x840e 0x59d4 0x5049 0x50de 0x5c3e 0x7def 0x672a 0x851a 0x5473 0x754f 0x80c3 0x5582 0x9b4f 0x4f4d 0x6e2d 0x8b02 0x5c09 0x6170 0x885b 0x761f 0x6e29 0x868a 0x6587 0x805e 0x7d0b 0x543b 0x7a69 0x7d0a 0x554f 0x55e1 0x7fc1 0x74ee 0x64be 0x8778 0x6e26 0x7aa9 0x6211 0x65a1 0x5367 0x63e1 0x6c83 0x5deb 0x55da 0x93a2 0x70cf 0x6c61 0x8aa3 0x5c4b 0x7121 0x856a 0x68a7 0x543e 0x5434 0x6bcb 0x6b66 0x4e94 0x6342 0x5348 0x821e 0x4f0d 0x4fae 0x5862 0x620a 0x9727 0x6664 0x7269 0x52ff 0x52d9 0x609f 0x8aa4 0x6614 0x7199 0x6790 0x897f 0x7852 0x77fd 0x6670 0x563b 0x5438 0x932b 0x72a7 ) ; 0x4f21 ... 0x4f7e (block 46 0x7a00 0x606f 0x5e0c 0x6089 0x819d 0x5915 0x60dc 0x7184 0x70ef 0x6eaa 0x6c50 0x7280 0x6a84 0x8972 0x5e2d 0x7fd2 0x5ab3 0x559c 0x9291 0x6d17 0x7cfb 0x9699 0x6232 0x7d30 0x778e 0x8766 0x5323 0x971e 0x8f44 0x6687 0x5cfd 0x4fe0 0x72f9 0x4e0b 0x53a6 0x590f 0x5687 0x6380 0x9341 0x5148 0x4ed9 0x9bae 0x7e96 0x54b8 0x8ce2 0x929c 0x8237 0x9591 0x6d8e 0x5f26 0x5acc 0x986f 0x96aa 0x73fe 0x737b 0x7e23 0x817a 0x9921 0x7fa1 0x61b2 0x9677 0x9650 0x7dab 0x76f8 0x53a2 0x9472 0x9999 0x7bb1 0x8944 0x6e58 0x9109 0x7fd4 0x7965 0x8a73 0x60f3 0x97ff 0x4eab 0x9805 0x5df7 0x6a61 0x50cf 0x5411 0x8c61 0x856d 0x785d 0x9704 0x524a 0x54ee 0x56c2 0x92b7 0x6d88 0x5bb5 0x6dc6 0x66c9 ) ; 0x5021 ... 0x507e (block 47 0x5c0f 0x5b5d 0x6821 0x8096 0x562f 0x7b11 0x6548 0x6954 0x4e9b 0x6b47 0x874e 0x978b 0x5354 0x633e 0x643a 0x90aa 0x659c 0x8105 0x8ae7 0x5beb 0x68b0 0x5378 0x87f9 0x61c8 0x6cc4 0x7009 0x8b1d 0x5c51 0x85aa 0x82af 0x92c5 0x6b23 0x8f9b 0x65b0 0x5ffb 0x5fc3 0x4fe1 0x91c1 0x661f 0x8165 0x7329 0x60fa 0x8208 0x5211 0x578b 0x5f62 0x90a2 0x884c 0x9192 0x5e78 0x674f 0x6027 0x59d3 0x5144 0x51f6 0x80f8 0x5308 0x6c79 0x96c4 0x718a 0x4f11 0x4fee 0x7f9e 0x673d 0x55c5 0x92b9 0x79c0 0x8896 0x7d89 0x589f 0x620c 0x9700 0x865a 0x5618 0x9808 0x5f90 0x8a31 0x84c4 0x9157 0x53d9 0x65ed 0x5e8f 0x755c 0x6064 0x7d6e 0x5a7f 0x7dd2 0x7e8c 0x8ed2 0x55a7 0x5ba3 0x61f8 0x65cb 0x7384 ) ; 0x5121 ... 0x517e (block 48 0x9078 0x766c 0x7729 0x7d62 0x9774 0x859b 0x5b78 0x7a74 0x96ea 0x8840 0x52db 0x718f 0x5faa 0x65ec 0x8a62 0x5c0b 0x99b4 0x5de1 0x6b89 0x6c5b 0x8a13 0x8a0a 0x905c 0x8fc5 0x58d3 0x62bc 0x9d09 0x9d28 0x5440 0x4e2b 0x82bd 0x7259 0x869c 0x5d16 0x8859 0x6daf 0x96c5 0x555e 0x4e9e 0x8a1d 0x7109 0x54bd 0x95b9 0x70df 0x6df9 0x9e7d 0x56b4 0x7814 0x8712 0x5ca9 0x5ef6 0x8a00 0x9854 0x95bb 0x708e 0x6cbf 0x5944 0x63a9 0x773c 0x884d 0x6f14 0x8277 0x5830 0x71d5 0x53ad 0x786f 0x96c1 0x5501 0x5f66 0x7130 0x5bb4 0x8afa 0x9a57 0x6b83 0x592e 0x9d26 0x79e7 0x694a 0x63da 0x4f6f 0x760d 0x7f8a 0x6d0b 0x967d 0x6c27 0x4ef0 0x7662 0x990a 0x6a23 0x6f3e 0x9080 0x8170 0x5996 0x7476 ) ; 0x5221 ... 0x527e (block 49 0x6447 0x582f 0x9065 0x7a91 0x8b21 0x59da 0x54ac 0x8200 0x85e5 0x8981 0x8000 0x6930 0x564e 0x8036 0x723a 0x91ce 0x51b6 0x4e5f 0x9801 0x6396 0x696d 0x8449 0x66f3 0x814b 0x591c 0x6db2 0x4e00 0x58f9 0x91ab 0x63d6 0x92a5 0x4f9d 0x4f0a 0x8863 0x9824 0x5937 0x907a 0x79fb 0x5100 0x80f0 0x7591 0x6c82 0x5b9c 0x59e8 0x5f5d 0x6905 0x87fb 0x501a 0x5df2 0x4e59 0x77e3 0x4ee5 0x85dd 0x6291 0x6613 0x9091 0x5c79 0x5104 0x5f79 0x81c6 0x9038 0x8084 0x75ab 0x4ea6 0x88d4 0x610f 0x6bc5 0x61b6 0x7fa9 0x76ca 0x6ea2 0x8a63 0x8b70 0x8abc 0x8b6f 0x5f02 0x7ffc 0x7fcc 0x7e79 0x8335 0x852d 0x56e0 0x6bb7 0x97f3 0x9670 0x59fb 0x541f 0x9280 0x6deb 0x5bc5 0x98f2 0x5c39 0x5f15 0x96b1 ) ; 0x5321 ... 0x537e (block 50 0x5370 0x82f1 0x6afb 0x5b30 0x9df9 0x61c9 0x7e93 0x7469 0x87a2 0x71df 0x7192 0x8805 0x8fce 0x8d0f 0x76c8 0x5f71 0x7a4e 0x786c 0x6620 0x55b2 0x64c1 0x50ad 0x81c3 0x7670 0x5eb8 0x96cd 0x8e34 0x86f9 0x548f 0x6cf3 0x6d8c 0x6c38 0x607f 0x52c7 0x7528 0x5e7d 0x512a 0x60a0 0x6182 0x5c24 0x7531 0x90f5 0x923e 0x7336 0x6cb9 0x6e38 0x9149 0x6709 0x53cb 0x53f3 0x4f51 0x91c9 0x8a98 0x53c8 0x5e7c 0x8fc2 0x6de4 0x4e8e 0x76c2 0x6986 0x865e 0x611a 0x8f3f 0x9918 0x4fde 0x903e 0x9b5a 0x6109 0x6e1d 0x6f01 0x9685 0x4e88 0x5a31 0x96e8 0x8207 0x5dbc 0x79b9 0x5b87 0x8a9e 0x7fbd 0x7389 0x57df 0x828b 0x9b31 0x5401 0x9047 0x55bb 0x5cea 0x5fa1 0x6108 0x6b32 0x7344 0x80b2 0x8b7d ) ; 0x5421 ... 0x547e (block 51 0x6d74 0x5bd3 0x88d5 0x9810 0x8c6b 0x99ad 0x9d1b 0x6df5 0x51a4 0x5143 0x57a3 0x8881 0x539f 0x63f4 0x8f45 0x5712 0x54e1 0x5713 0x733f 0x6e90 0x7de3 0x9060 0x82d1 0x9858 0x6028 0x9662 0x66f0 0x7d04 0x8d8a 0x8e8d 0x9470 0x5cb3 0x7ca4 0x6708 0x60a6 0x95b2 0x8018 0x96f2 0x9116 0x5300 0x9695 0x5141 0x904b 0x85f4 0x9196 0x6688 0x97f5 0x5b55 0x531d 0x7838 0x96dc 0x683d 0x54c9 0x707e 0x5bb0 0x8f09 0x518d 0x5728 0x54b1 0x6522 0x66ab 0x8d0a 0x8d1c 0x81df 0x846c 0x906d 0x7cdf 0x947f 0x85fb 0x68d7 0x65e9 0x6fa1 0x86a4 0x8e81 0x566a 0x9020 0x7682 0x7ac8 0x71e5 0x8cac 0x64c7 0x5247 0x6fa4 0x8cca 0x600e 0x589e 0x618e 0x66fe 0x8d08 0x624e 0x55b3 0x6e23 0x672d 0x8ecb ) ; 0x5521 ... 0x557e (block 52 0x9358 0x9598 0x7728 0x6805 0x69a8 0x548b 0x4e4d 0x70b8 0x8a50 0x6458 0x9f4b 0x5b85 0x7a84 0x50b5 0x5be8 0x77bb 0x6c08 0x8a79 0x7c98 0x6cbe 0x76de 0x65ac 0x8f3e 0x5d84 0x5c55 0x8638 0x68e7 0x5360 0x6230 0x7ad9 0x6e5b 0x7dbb 0x6a1f 0x7ae0 0x5f70 0x6f33 0x5f35 0x638c 0x6f32 0x6756 0x4e08 0x5e33 0x8cec 0x4ed7 0x8139 0x7634 0x969c 0x62db 0x662d 0x627e 0x6cbc 0x8d99 0x7167 0x7f69 0x5146 0x8087 0x53ec 0x906e 0x6298 0x54f2 0x87c4 0x8f4d 0x8005 0x937a 0x8517 0x9019 0x6d59 0x73cd 0x659f 0x771f 0x7504 0x7827 0x81fb 0x8c9e 0x91dd 0x5075 0x6795 0x75b9 0x8a3a 0x9707 0x632f 0x93ae 0x9663 0x84b8 0x6399 0x775c 0x5f81 0x7319 0x722d 0x6014 0x6574 0x62ef 0x6b63 0x653f ) ; 0x5621 ... 0x567e (block 53 0x5e40 0x7665 0x912d 0x8b49 0x829d 0x679d 0x652f 0x5431 0x8718 0x77e5 0x80a2 0x8102 0x6c41 0x4e4b 0x7e54 0x8077 0x76f4 0x690d 0x6b96 0x57f7 0x503c 0x4f84 0x5740 0x6307 0x6b62 0x8dbe 0x8879 0x65e8 0x7d19 0x5fd7 0x646f 0x64f2 0x81f3 0x81f4 0x7f6e 0x5e5f 0x5cd9 0x5236 0x667a 0x79e9 0x7a1a 0x8cea 0x7099 0x75d4 0x6eef 0x6cbb 0x7a92 0x4e2d 0x76c5 0x5fe0 0x9418 0x8877 0x7d42 0x7a2e 0x816b 0x91cd 0x4ef2 0x8846 0x821f 0x5468 0x5dde 0x6d32 0x8b05 0x7ca5 0x8ef8 0x8098 0x5e1a 0x5492 0x76ba 0x5b99 0x665d 0x9a5f 0x73e0 0x682a 0x86db 0x6731 0x732a 0x8af8 0x8a85 0x9010 0x7af9 0x71ed 0x716e 0x62c4 0x77da 0x56d1 0x4e3b 0x8457 0x67f1 0x52a9 0x86c0 0x8caf 0x9444 0x7bc9 ) ; 0x5721 ... 0x577e (block 54 0x4f4f 0x6ce8 0x795d 0x99d0 0x6293 0x722a 0x62fd 0x5c08 0x78da 0x8f49 0x64b0 0x8cfa 0x7bc6 0x6a01 0x838a 0x88dd 0x599d 0x649e 0x58ef 0x72c0 0x690e 0x9310 0x8ffd 0x8d05 0x589c 0x7db4 0x8ac4 0x6e96 0x6349 0x62d9 0x5353 0x684c 0x7422 0x8301 0x914c 0x5544 0x7740 0x707c 0x6fc1 0x5179 0x54a8 0x8cc7 0x59ff 0x6ecb 0x6dc4 0x5b5c 0x7d2b 0x4ed4 0x7c7d 0x6ed3 0x5b50 0x81ea 0x6f2c 0x5b57 0x9b03 0x68d5 0x8e2a 0x5b97 0x7d9c 0x7e3d 0x7e31 0x9112 0x8d70 0x594f 0x63cd 0x79df 0x8db3 0x5352 0x65cf 0x7956 0x8a5b 0x963b 0x7d44 0x947d 0x7e82 0x5634 0x9189 0x6700 0x7f6a 0x5c0a 0x9075 0x6628 0x5de6 0x4f50 0x67de 0x505a 0x4f5c 0x5750 0x5ea7 -1 -1 -1 -1 -1 ) ; 0x5821 ... 0x587e (block 55 0x4e8d 0x4e0c 0x5140 0x4e10 0x5eff 0x5345 0x4e15 0x4e98 0x4e1e 0x9b32 0x5b6c 0x5669 0x4e28 0x79ba 0x4e3f 0x5315 0x4e47 0x592d 0x723b 0x536e 0x6c10 0x56df 0x80e4 0x9997 0x6bd3 0x777e 0x9f17 0x4e36 0x4e9f 0x9f10 0x4e5c 0x4e69 0x4e93 0x8288 0x5b5b 0x55c7 0x560f 0x4ec4 0x5399 0x539d 0x53b4 0x53a5 0x53ae 0x9768 0x8d0b 0x531a 0x53f5 0x532d 0x5331 0x533e 0x8cfe 0x5366 0x5363 0x5202 0x5208 0x520e 0x5244 0x5233 0x528c 0x5274 0x524c 0x525e 0x5261 0x525c 0x84af 0x527d 0x5282 0x5281 0x5290 0x5293 0x5182 0x7f54 0x4ebb 0x4ec3 0x4ec9 0x4ec2 0x4ee8 0x4ee1 0x4eeb 0x4ede 0x50b4 0x4ef3 0x4f22 0x4f64 0x4ef5 0x5000 0x5096 0x4f09 0x4f47 0x4f5e 0x4f67 0x6538 0x4f5a 0x4f5d ) ; 0x5921 ... 0x597e (block 56 0x4f5f 0x4f57 0x4f32 0x4f3d 0x4f76 0x4f74 0x4f91 0x4f89 0x4f83 0x4f8f 0x4f7e 0x4f7b 0x5115 0x4f7c 0x5102 0x4f94 0x5114 0x513c 0x5137 0x4fc5 0x4fda 0x4fe3 0x4fdc 0x4fd1 0x4fdf 0x4ff8 0x5029 0x504c 0x4ff3 0x502c 0x500f 0x502e 0x502d 0x4ffe 0x501c 0x500c 0x5025 0x5028 0x50e8 0x5043 0x5055 0x5048 0x504e 0x506c 0x50c2 0x513b 0x5110 0x513a 0x50ba 0x50d6 0x5106 0x50ed 0x50ec 0x50e6 0x50ee 0x5107 0x510b 0x4edd 0x6c3d 0x4f58 0x50c9 0x4fce 0x9fa0 0x6c46 0x7cf4 0x516e 0x5dfd 0x9ecc 0x9998 0x56c5 0x5914 0x52f9 0x530d 0x8a07 0x5310 0x9cec 0x5919 0x5155 0x4ea0 0x5156 0x4eb3 0x886e 0x88a4 0x893b 0x81e0 0x88d2 0x7980 0x5b34 0x8803 0x7fb8 0x51ab 0x51b1 0x51bd 0x51bc ) ; 0x5a21 ... 0x5a7e (block 57 0x51c7 0x5196 0x51a2 0x51a5 0x8a01 0x8a10 0x8a0c 0x8a15 0x8b33 0x8a4e 0x8a25 0x8a41 0x8a36 0x8a46 0x8a54 0x8a58 0x8a52 0x8a86 0x8a84 0x8a7f 0x8a70 0x8a7c 0x8a75 0x8a6c 0x8a6e 0x8acd 0x8ae2 0x8a61 0x8a9a 0x8aa5 0x8a91 0x8a92 0x8acf 0x8ad1 0x8ac9 0x8adb 0x8ad7 0x8ac2 0x8ab6 0x8af6 0x8aeb 0x8b14 0x8b01 0x8ae4 0x8aed 0x8afc 0x8af3 0x8ae6 0x8aee 0x8ade 0x8b28 0x8b9c 0x8b16 0x8b1a 0x8b10 0x8b2b 0x8b2d 0x8b56 0x8b59 0x8b4e 0x8b9e 0x8b6b 0x8b96 0x5369 0x537a 0x961d 0x9622 0x9621 0x9631 0x962a 0x963d 0x963c 0x9642 0x9658 0x9654 0x965f 0x9689 0x966c 0x9672 0x9674 0x9688 0x968d 0x9697 0x96b0 0x9097 0x909b 0x913a 0x9099 0x9114 0x90a1 0x90b4 0x90b3 0x90b6 0x9134 ) ; 0x5b21 ... 0x5b7e (block 58 0x90b8 0x90b0 0x90df 0x90c5 0x90be 0x9136 0x90c4 0x90c7 0x9106 0x9148 0x90e2 0x90dc 0x90d7 0x90db 0x90eb 0x90ef 0x90fe 0x9104 0x9122 0x911e 0x9123 0x9131 0x912f 0x9139 0x9143 0x9146 0x82bb 0x5950 0x52f1 0x52ac 0x52ad 0x52be 0x54ff 0x52d0 0x52d6 0x52f0 0x53df 0x71ee 0x77cd 0x5ef4 0x51f5 0x51fc 0x9b2f 0x53b6 0x5f01 0x755a 0x5df0 0x574c 0x580a 0x57a1 0x587e 0x58bc 0x58c5 0x58d1 0x5729 0x572c 0x572a 0x5733 0x58d9 0x572e 0x572f 0x58e2 0x573b 0x5742 0x5769 0x58e0 0x576b 0x58da 0x577c 0x577b 0x5768 0x576d 0x5776 0x5773 0x57e1 0x57a4 0x578c 0x584f 0x57cf 0x57a7 0x5816 0x5793 0x57a0 0x57d5 0x5852 0x581d 0x5864 0x57d2 0x57b8 0x57f4 0x57ef 0x57f8 0x57e4 0x57dd ) ; 0x5c21 ... 0x5c7e (block 59 0x580b 0x580d 0x57fd 0x57ed 0x5800 0x581e 0x5819 0x5844 0x5820 0x5865 0x586c 0x5881 0x5889 0x589a 0x5880 0x99a8 0x9f19 0x61ff 0x8279 0x827d 0x827f 0x828f 0x828a 0x82a8 0x8284 0x828e 0x8291 0x858c 0x8299 0x82ab 0x8553 0x82be 0x82b0 0x85f6 0x82ca 0x82e3 0x8298 0x82b7 0x82ae 0x83a7 0x8407 0x84ef 0x82a9 0x82b4 0x82a1 0x82aa 0x829f 0x82c4 0x82e7 0x82a4 0x82e1 0x8309 0x82f7 0x82e4 0x8622 0x8307 0x82dc 0x82f4 0x82d2 0x82d8 0x830c 0x82fb 0x82d3 0x8526 0x831a 0x8306 0x584b 0x7162 0x82e0 0x82d5 0x831c 0x8351 0x8558 0x84fd 0x8308 0x8392 0x833c 0x8334 0x8331 0x839b 0x854e 0x832f 0x834f 0x8347 0x8343 0x8588 0x8340 0x8317 0x85ba 0x832d 0x833a 0x8333 0x7296 0x6ece ) ; 0x5d21 ... 0x5d7e (block 60 0x8541 0x831b 0x85ce 0x8552 0x84c0 0x8452 0x8464 0x83b0 0x8378 0x8494 0x8435 0x83a0 0x83aa 0x8393 0x839c 0x8385 0x837c 0x859f 0x83a9 0x837d 0x8555 0x837b 0x8398 0x839e 0x83a8 0x9daf 0x8493 0x83c1 0x8401 0x83e5 0x83d8 0x5807 0x8418 0x840b 0x83dd 0x83fd 0x83d6 0x841c 0x8438 0x8411 0x8406 0x83d4 0x83df 0x840f 0x8403 0x83f8 0x83f9 0x83ea 0x83c5 0x83c0 0x7e08 0x83f0 0x83e1 0x845c 0x8451 0x845a 0x8459 0x8473 0x8546 0x8488 0x847a 0x8562 0x8478 0x843c 0x8446 0x8469 0x8476 0x851e 0x848e 0x8431 0x846d 0x84c1 0x84cd 0x84d0 0x9a40 0x84bd 0x84d3 0x84ca 0x84bf 0x84ba 0x863a 0x84a1 0x84b9 0x84b4 0x8497 0x93a3 0x8577 0x850c 0x750d 0x8538 0x84f0 0x861e 0x851f 0x85fa ) ; 0x5e21 ... 0x5e7e (block 61 0x8556 0x853b 0x84ff 0x84fc 0x8559 0x8548 0x8568 0x8564 0x855e 0x857a 0x77a2 0x8543 0x8604 0x857b 0x85a4 0x85a8 0x8587 0x858f 0x8579 0x85ea 0x859c 0x8585 0x85b9 0x85b7 0x85b0 0x861a 0x85c1 0x85dc 0x85ff 0x8627 0x8605 0x8629 0x8616 0x863c 0x5efe 0x5f08 0x593c 0x5969 0x8037 0x5955 0x595a 0x5958 0x530f 0x5c22 0x5c25 0x5c2c 0x5c37 0x624c 0x636b 0x6476 0x62bb 0x62ca 0x62da 0x62d7 0x62ee 0x649f 0x62f6 0x6339 0x634b 0x6343 0x63ad 0x63f6 0x6371 0x637a 0x638e 0x6451 0x636d 0x63ac 0x638a 0x6369 0x63ae 0x645c 0x63f2 0x63f8 0x63e0 0x64b3 0x63c4 0x63de 0x63ce 0x6452 0x63c6 0x63be 0x6504 0x6441 0x640b 0x641b 0x6420 0x640c 0x6426 0x6421 0x645e 0x6516 0x646d 0x6496 ) ; 0x5f21 ... 0x5f7e (block 62 0x647a 0x64f7 0x64fc 0x6499 0x651b 0x64c0 0x64d0 0x64d7 0x64e4 0x64e2 0x6509 0x6525 0x652e 0x5f0b 0x5fd2 0x7519 0x5f11 0x535f 0x53f1 0x5630 0x53e9 0x53e8 0x53fb 0x5412 0x5416 0x5406 0x544b 0x5638 0x56c8 0x5454 0x56a6 0x5443 0x5421 0x5504 0x54bc 0x5423 0x5432 0x5482 0x5494 0x5477 0x5471 0x5464 0x549a 0x5680 0x5484 0x5476 0x5466 0x565d 0x54d0 0x54ad 0x54c2 0x54b4 0x5660 0x54a7 0x54a6 0x5635 0x55f6 0x5472 0x54a3 0x5666 0x54bb 0x54bf 0x54cc 0x5672 0x54da 0x568c 0x54a9 0x54aa 0x54a4 0x5665 0x54cf 0x54de 0x561c 0x54e7 0x562e 0x54fd 0x5514 0x54f3 0x55e9 0x5523 0x550f 0x5511 0x5527 0x552a 0x5616 0x558f 0x55b5 0x5549 0x56c0 0x5541 0x5555 0x553f 0x5550 0x553c ) ; 0x6021 ... 0x607e (block 63 0x5537 0x5556 0x5575 0x5576 0x5577 0x5533 0x5530 0x555c 0x558b 0x55d2 0x5583 0x55b1 0x55b9 0x5588 0x5581 0x559f 0x557e 0x55d6 0x5591 0x557b 0x55df 0x560d 0x56b3 0x5594 0x5599 0x55ea 0x55f7 0x55c9 0x561f 0x55d1 0x56c1 0x55ec 0x55d4 0x55e6 0x55dd 0x55c4 0x55ef 0x55e5 0x55f2 0x566f 0x55cc 0x55cd 0x55e8 0x55f5 0x55e4 0x8f61 0x561e 0x5608 0x560c 0x5601 0x56b6 0x5623 0x55fe 0x5600 0x5627 0x562d 0x5658 0x5639 0x5657 0x562c 0x564d 0x5662 0x5659 0x5695 0x564c 0x5654 0x5686 0x5664 0x5671 0x566b 0x567b 0x567c 0x5685 0x5693 0x56af 0x56d4 0x56d7 0x56dd 0x56e1 0x5707 0x56eb 0x56f9 0x56ff 0x5704 0x570a 0x5709 0x571c 0x5e43 0x5e19 0x5e14 0x5e11 0x5e6c 0x5e58 0x5e57 ) ; 0x6121 ... 0x617e (block 64 0x5e37 0x5e44 0x5e54 0x5e5b 0x5e5e 0x5e61 0x5c8c 0x5c7a 0x5c8d 0x5c90 0x5d87 0x5c88 0x5cf4 0x5c99 0x5c91 0x5d50 0x5c9c 0x5cb5 0x5ca2 0x5d2c 0x5cac 0x5cab 0x5cb1 0x5ca3 0x5cc1 0x5cb7 0x5da7 0x5cd2 0x5da0 0x5ccb 0x5d22 0x5d97 0x5d0d 0x5d27 0x5d26 0x5d2e 0x5d24 0x5d1e 0x5d06 0x5d1b 0x5db8 0x5d3e 0x5d34 0x5d3d 0x5d6c 0x5d5b 0x5d6f 0x5d81 0x5d6b 0x5d4b 0x5d4a 0x5d69 0x5d74 0x5d82 0x5d99 0x5d9d 0x8c73 0x5db7 0x5dd4 0x5f73 0x5f77 0x5f82 0x5f87 0x5f89 0x540e 0x5fa0 0x5f99 0x5f9c 0x5fa8 0x5fad 0x5fb5 0x5fbc 0x8862 0x5f61 0x72ad 0x72b0 0x72b4 0x7377 0x7341 0x72c3 0x72c1 0x72ce 0x72cd 0x72d2 0x72e8 0x736a 0x72e9 0x733b 0x72f4 0x72f7 0x7301 0x72f3 0x736b 0x72fa ) ; 0x6221 ... 0x627e (block 65 0x72fb 0x7317 0x7313 0x7380 0x730a 0x731e 0x731d 0x737c 0x7322 0x7339 0x7325 0x732c 0x7338 0x7331 0x7350 0x734d 0x7357 0x7360 0x736c 0x736f 0x737e 0x821b 0x5925 0x98e7 0x5924 0x5902 0x98e0 0x9933 0x98e9 0x993c 0x98ea 0x98eb 0x98ed 0x98f4 0x9909 0x9911 0x4f59 0x991b 0x9937 0x993f 0x9943 0x9948 0x9949 0x994a 0x994c 0x9962 0x5e80 0x5ee1 0x5e8b 0x5e96 0x5ea5 0x5ea0 0x5eb9 0x5eb5 0x5ebe 0x5eb3 0x8ce1 0x5ed2 0x5ed1 0x5edb 0x5ee8 0x5eea 0x81ba 0x5fc4 0x5fc9 0x5fd6 0x61fa 0x61ae 0x5fee 0x616a 0x5fe1 0x5fe4 0x613e 0x60b5 0x6134 0x5fea 0x5fed 0x5ff8 0x6019 0x6035 0x6026 0x601b 0x600f 0x600d 0x6029 0x602b 0x600a 0x61cc 0x6021 0x615f 0x61e8 0x60fb 0x6137 0x6042 ) ; 0x6321 ... 0x637e (block 66 0x606a 0x60f2 0x6096 0x609a 0x6173 0x609d 0x6083 0x6092 0x608c 0x609b 0x611c 0x60bb 0x60b1 0x60dd 0x60d8 0x60c6 0x60da 0x60b4 0x6120 0x6192 0x6115 0x6123 0x60f4 0x6100 0x610e 0x612b 0x614a 0x6175 0x61ac 0x6194 0x61a7 0x61b7 0x61d4 0x61f5 0x5fdd 0x96b3 0x9582 0x9586 0x95c8 0x958e 0x9594 0x958c 0x95e5 0x95ad 0x95ab 0x9b2e 0x95ac 0x95be 0x95b6 0x9b29 0x95bf 0x95bd 0x95bc 0x95c3 0x95cb 0x95d4 0x95d0 0x95d5 0x95de 0x4e2c 0x723f 0x6215 0x6c35 0x6c54 0x6c5c 0x6c4a 0x7043 0x6c85 0x6c90 0x6c94 0x6c8c 0x6c68 0x6c69 0x6c74 0x6c76 0x6c86 0x6f59 0x6cd0 0x6cd4 0x6cad 0x7027 0x7018 0x6cf1 0x6cd7 0x6cb2 0x6ce0 0x6cd6 0x6ffc 0x6ceb 0x6cee 0x6cb1 0x6cd3 0x6cef 0x6d87 ) ; 0x6421 ... 0x647e (block 67 0x6d39 0x6d27 0x6d0c 0x6d79 0x6e5e 0x6d07 0x6d04 0x6d19 0x6d0e 0x6d2b 0x6fae 0x6d2e 0x6d35 0x6d1a 0x700f 0x6ef8 0x6f6f 0x6d33 0x6d91 0x6d6f 0x6df6 0x6f7f 0x6d5e 0x6d93 0x6d94 0x6d5c 0x6d60 0x6d7c 0x6d63 0x6e1a 0x6dc7 0x6dc5 0x6dde 0x7006 0x6dbf 0x6de0 0x6fa0 0x6de6 0x6ddd 0x6dd9 0x700b 0x6dab 0x6e0c 0x6dae 0x6e2b 0x6e6e 0x6e4e 0x6e6b 0x6eb2 0x6e5f 0x6e86 0x6e53 0x6e54 0x6e32 0x6e25 0x6e44 0x7067 0x6eb1 0x6e98 0x7044 0x6f2d 0x7005 0x6ea5 0x6ea7 0x6ebd 0x6ebb 0x6eb7 0x6f77 0x6eb4 0x6ecf 0x6e8f 0x6ec2 0x6e9f 0x6f62 0x7020 0x701f 0x6f24 0x6f15 0x6ef9 0x6f2f 0x6f36 0x7032 0x6f74 0x6f2a 0x6f09 0x6f29 0x6f89 0x6f8d 0x6f8c 0x6f78 0x6f72 0x6f7c 0x6f7a 0x7028 ) ; 0x6521 ... 0x657e (block 68 0x6fc9 0x6fa7 0x6fb9 0x6fb6 0x6fc2 0x6fe1 0x6fee 0x6fde 0x6fe0 0x6fef 0x701a 0x7023 0x701b 0x7039 0x7035 0x705d 0x705e 0x5b80 0x5b84 0x5b95 0x5b93 0x5ba5 0x5bb8 0x752f 0x9a2b 0x6434 0x5be4 0x5bee 0x8930 0x5bf0 0x8e47 0x8b07 0x8fb6 0x8fd3 0x8fd5 0x8fe5 0x8fee 0x8fe4 0x9087 0x8fe6 0x9015 0x8fe8 0x9005 0x9004 0x900b 0x9090 0x9011 0x900d 0x9016 0x9021 0x9035 0x9036 0x902d 0x902f 0x9044 0x9051 0x9052 0x9050 0x9068 0x9058 0x9062 0x905b 0x66b9 0x9074 0x907d 0x9082 0x9088 0x9083 0x908b 0x5f50 0x5f57 0x5f56 0x5f58 0x5c3b 0x54ab 0x5c50 0x5c59 0x5b71 0x5c63 0x5c68 0x7fbc 0x5f33 0x5f29 0x5f2d 0x8274 0x5f3c 0x9b3b 0x5c6e 0x5981 0x5983 0x598d 0x5af5 0x5ad7 0x59a3 ) ; 0x6621 ... 0x667e (block 69 0x5997 0x59ca 0x5b00 0x599e 0x59a4 0x59d2 0x59b2 0x59af 0x59d7 0x59be 0x5a6d 0x5b08 0x59dd 0x5b4c 0x59e3 0x59d8 0x59f9 0x5a0c 0x5a09 0x5aa7 0x5afb 0x5a11 0x5a23 0x5a13 0x5a40 0x5a67 0x5a4a 0x5a55 0x5a3c 0x5a62 0x5b0b 0x80ec 0x5aaa 0x5a9b 0x5a77 0x5a7a 0x5abe 0x5aeb 0x5ab2 0x5b21 0x5b2a 0x5ab8 0x5ae0 0x5ae3 0x5b19 0x5ad6 0x5ae6 0x5ad8 0x5adc 0x5b09 0x5b17 0x5b16 0x5b32 0x5b37 0x5b40 0x5c15 0x5c1c 0x5b5a 0x5b65 0x5b73 0x5b51 0x5b53 0x5b62 0x99d4 0x99df 0x99d9 0x9a36 0x9a5b 0x99d1 0x99d8 0x9a4d 0x9a4a 0x99e2 0x9a6a 0x9a0f 0x9a0d 0x9a05 0x9a42 0x9a2d 0x9a16 0x9a41 0x9a2e 0x9a38 0x9a43 0x9a44 0x9a4f 0x9a65 0x9a64 0x7cf9 0x7d06 0x7d02 0x7d07 0x7d08 0x7e8a ) ; 0x6721 ... 0x677e (block 70 0x7d1c 0x7d15 0x7d13 0x7d3a 0x7d32 0x7d31 0x7e10 0x7d3c 0x7d40 0x7d3f 0x7d5d 0x7d4e 0x7d73 0x7d86 0x7d83 0x7d88 0x7dbe 0x7dba 0x7dcb 0x7dd4 0x7dc4 0x7d9e 0x7dac 0x7db9 0x7da3 0x7db0 0x7dc7 0x7dd9 0x7dd7 0x7df9 0x7df2 0x7e62 0x7de6 0x7df6 0x7df1 0x7e0b 0x7de1 0x7e09 0x7e1d 0x7e1f 0x7e1e 0x7e2d 0x7e0a 0x7e11 0x7e7d 0x7e39 0x7e35 0x7e32 0x7e46 0x7e45 0x7e88 0x7e5a 0x7e52 0x7e6e 0x7e7e 0x7e70 0x7e6f 0x7e98 0x5e7a 0x757f 0x5ddb 0x753e 0x9095 0x738e 0x74a3 0x744b 0x73a2 0x739f 0x73cf 0x73c2 0x74cf 0x73b7 0x73b3 0x73c0 0x73c9 0x73c8 0x73e5 0x73d9 0x980a 0x740a 0x73e9 0x73e7 0x73de 0x74bd 0x743f 0x7489 0x742a 0x745b 0x7426 0x7425 0x7428 0x7430 0x742e 0x742c ) ; 0x6821 ... 0x687e (block 71 0x741b 0x741a 0x7441 0x745c 0x7457 0x7455 0x7459 0x74a6 0x746d 0x747e 0x749c 0x74d4 0x7480 0x7481 0x7487 0x748b 0x749e 0x74a8 0x74a9 0x7490 0x74a7 0x74da 0x74ba 0x97d9 0x97de 0x97dc 0x674c 0x6753 0x675e 0x6748 0x69aa 0x6aea 0x6787 0x676a 0x6773 0x6798 0x6898 0x6775 0x68d6 0x6a05 0x689f 0x678b 0x6777 0x677c 0x67f0 0x6adb 0x67d8 0x6af3 0x67e9 0x67b0 0x6ae8 0x67d9 0x67b5 0x67da 0x67b3 0x67dd 0x6800 0x67c3 0x67b8 0x67e2 0x6adf 0x67c1 0x6a89 0x6832 0x6833 0x690f 0x6a48 0x684e 0x6968 0x6844 0x69bf 0x6883 0x681d 0x6855 0x6a3a 0x6841 0x6a9c 0x6840 0x6b12 0x684a 0x6849 0x6829 0x68b5 0x688f 0x6874 0x6877 0x6893 0x686b 0x6b1e 0x696e 0x68fc 0x6add 0x69e7 0x68f9 ) ; 0x6921 ... 0x697e (block 72 0x6b0f 0x68f0 0x690b 0x6901 0x6957 0x68e3 0x6910 0x6971 0x6939 0x6960 0x6942 0x695d 0x6b16 0x696b 0x6980 0x6998 0x6978 0x6934 0x69cc 0x6aec 0x6ada 0x69ce 0x6af8 0x6966 0x6963 0x6979 0x699b 0x69a7 0x69bb 0x69ab 0x69ad 0x69d4 0x69b1 0x69c1 0x69ca 0x6ab3 0x6995 0x6ae7 0x698d 0x69ff 0x6aa3 0x69ed 0x6a17 0x6a18 0x6a65 0x69f2 0x6a44 0x6a3e 0x6aa0 0x6a50 0x6a5b 0x6a35 0x6a8e 0x6ad3 0x6a3d 0x6a28 0x6a58 0x6ade 0x6a91 0x6a90 0x6aa9 0x6a97 0x6aab 0x7337 0x7352 0x6b81 0x6b82 0x6ba4 0x6b84 0x6b9e 0x6bae 0x6b8d 0x6bab 0x6b9b 0x6baf 0x6baa 0x8ed4 0x8edb 0x8ef2 0x8efb 0x8f64 0x8ef9 0x8efc 0x8eeb 0x8ee4 0x8f62 0x8efa 0x8efe 0x8f0a 0x8f07 0x8f05 0x8f12 0x8f26 0x8f1e ) ; 0x6a21 ... 0x6a7e (block 73 0x8f1f 0x8f1c 0x8f33 0x8f46 0x8f54 0x8ece 0x6214 0x6227 0x621b 0x621f 0x6222 0x6221 0x6225 0x6224 0x6229 0x81e7 0x750c 0x74f4 0x74ff 0x750f 0x7511 0x7513 0x6534 0x65ee 0x65ef 0x65f0 0x660a 0x66c7 0x6772 0x6603 0x6615 0x6600 0x7085 0x66f7 0x661d 0x6634 0x6631 0x6636 0x6635 0x8006 0x665f 0x66c4 0x6641 0x664f 0x6689 0x6661 0x6657 0x6677 0x6684 0x668c 0x66d6 0x669d 0x66be 0x66db 0x66dc 0x66e6 0x66e9 0x8cc1 0x8cb0 0x8cba 0x8cbd 0x8d04 0x8cb2 0x8cc5 0x8d10 0x8cd1 0x8cda 0x8cd5 0x8ceb 0x8ce7 0x8cfb 0x8998 0x89ac 0x89a1 0x89bf 0x89a6 0x89af 0x89b2 0x89b7 0x726e 0x729f 0x725d 0x7266 0x726f 0x727e 0x727f 0x7284 0x728b 0x728d 0x728f 0x7292 0x6308 0x6332 0x63b0 ) ; 0x6b21 ... 0x6b7e (block 74 0x643f 0x64d8 0x8004 0x6bea 0x6bf3 0x6bfd 0x6bff 0x6bf9 0x6c05 0x6c0c 0x6c06 0x6c0d 0x6c15 0x6c18 0x6c19 0x6c1a 0x6c21 0x6c2c 0x6c24 0x6c2a 0x6c32 0x6535 0x6555 0x656b 0x7258 0x7252 0x7256 0x7230 0x8662 0x5216 0x809f 0x809c 0x8093 0x80bc 0x670a 0x80bd 0x80b1 0x80ab 0x80ad 0x80b4 0x80b7 0x6727 0x8156 0x80e9 0x81da 0x80db 0x80c2 0x80c4 0x80d9 0x80cd 0x80d7 0x6710 0x80dd 0x811b 0x80f1 0x80f4 0x80ed 0x81be 0x810e 0x80f2 0x80fc 0x6715 0x8112 0x8c5a 0x8161 0x811e 0x812c 0x8118 0x8132 0x8148 0x814c 0x8153 0x8174 0x8159 0x815a 0x8171 0x8160 0x8169 0x817c 0x817d 0x816d 0x8167 0x584d 0x5ab5 0x8188 0x8182 0x81cf 0x6ed5 0x81a3 0x81aa 0x81cc 0x6726 0x81ca 0x81bb ) ; 0x6c21 ... 0x6c7e (block 75 0x81c1 0x81a6 0x6b5f 0x6b37 0x6b39 0x6b43 0x6b46 0x6b59 0x98ae 0x98af 0x98b6 0x98bc 0x98c6 0x98c8 0x6bb3 0x5f40 0x8f42 0x89f3 0x6590 0x9f4f 0x6595 0x65bc 0x65c6 0x65c4 0x65c3 0x65cc 0x65ce 0x65d2 0x65d6 0x716c 0x7152 0x7096 0x7197 0x70bb 0x70c0 0x70b7 0x70ab 0x70b1 0x71c1 0x70ca 0x7110 0x7113 0x71dc 0x712f 0x7131 0x7173 0x715c 0x7168 0x7145 0x7172 0x714a 0x7178 0x717a 0x7198 0x71b3 0x71b5 0x71a8 0x71a0 0x71e0 0x71d4 0x71e7 0x71f9 0x721d 0x7228 0x706c 0x71fe 0x7166 0x71b9 0x623e 0x623d 0x6243 0x6248 0x6249 0x793b 0x7940 0x7946 0x7949 0x795b 0x795c 0x7953 0x795a 0x79b0 0x7957 0x7960 0x798e 0x7967 0x797a 0x79aa 0x798a 0x799a 0x79a7 0x79b3 0x5fd1 0x5fd0 ) ; 0x6d21 ... 0x6d7e (block 76 0x61df 0x605d 0x605a 0x6067 0x6041 0x6059 0x6063 0x6164 0x6106 0x610d 0x615d 0x61a9 0x619d 0x61cb 0x61e3 0x6207 0x8080 0x807f 0x6c93 0x6fa9 0x6dfc 0x78ef 0x77f8 0x78ad 0x7809 0x7868 0x7818 0x7811 0x65ab 0x782d 0x78b8 0x781d 0x7839 0x792a 0x7931 0x781f 0x783c 0x7825 0x782c 0x7823 0x7829 0x784e 0x786d 0x7864 0x78fd 0x7826 0x7850 0x7847 0x784c 0x786a 0x78e7 0x7893 0x789a 0x7887 0x78e3 0x78a1 0x78a3 0x78b2 0x78b9 0x78a5 0x78d4 0x78d9 0x78c9 0x78ec 0x78f2 0x7905 0x78f4 0x7913 0x7924 0x791e 0x7934 0x9f95 0x9ef9 0x9efb 0x9efc 0x76f1 0x7704 0x7798 0x76f9 0x7707 0x7708 0x771a 0x7722 0x7719 0x772d 0x7726 0x7735 0x7738 0x775e 0x77bc 0x7747 0x7743 0x775a 0x7768 ) ; 0x6e21 ... 0x6e7e (block 77 0x7762 0x7765 0x777f 0x778d 0x777d 0x7780 0x778c 0x7791 0x779f 0x77a0 0x77b0 0x77b5 0x77bd 0x753a 0x7540 0x754e 0x754b 0x7548 0x755b 0x7572 0x7579 0x7583 0x7f58 0x7f61 0x7f5f 0x8a48 0x7f68 0x7f86 0x7f71 0x7f79 0x7f88 0x7f7e 0x76cd 0x76e5 0x8832 0x91d2 0x91d3 0x91d4 0x91d9 0x91d7 0x91d5 0x91f7 0x91e7 0x91e4 0x9346 0x91f5 0x91f9 0x9208 0x9226 0x9245 0x9211 0x9210 0x9201 0x9227 0x9204 0x9225 0x9200 0x923a 0x9266 0x9237 0x9233 0x9255 0x923d 0x9238 0x925e 0x926c 0x926d 0x923f 0x9460 0x9230 0x9249 0x9248 0x924d 0x922e 0x9239 0x9438 0x92ac 0x92a0 0x927a 0x92aa 0x92ee 0x92cf 0x9403 0x92e3 0x943a 0x92b1 0x92a6 0x93a7 0x9296 0x92cc 0x92a9 0x93f5 0x9293 0x927f ) ; 0x6f21 ... 0x6f7e (block 78 0x93a9 0x929a 0x931a 0x92ab 0x9283 0x940b 0x92a8 0x92a3 0x9412 0x9338 0x92f1 0x93d7 0x92e5 0x92f0 0x92ef 0x92e8 0x92bc 0x92dd 0x92f6 0x9426 0x9427 0x92c3 0x92df 0x92e6 0x9312 0x9306 0x9369 0x931b 0x9340 0x9301 0x9315 0x932e 0x9343 0x9307 0x9308 0x931f 0x9319 0x9365 0x9347 0x9376 0x9354 0x9364 0x93aa 0x9370 0x9384 0x93e4 0x93d8 0x9428 0x9387 0x93cc 0x9398 0x93b8 0x93bf 0x93a6 0x93b0 0x93b5 0x944c 0x93e2 0x93dc 0x93dd 0x93cd 0x93de 0x93c3 0x93c7 0x93d1 0x9414 0x941d 0x93f7 0x9465 0x9413 0x946d 0x9420 0x9479 0x93f9 0x9419 0x944a 0x9432 0x943f 0x9454 0x9463 0x937e 0x77e7 0x77ec 0x96c9 0x79d5 0x79ed 0x79e3 0x79eb 0x7a06 0x5d47 0x7a03 0x7a02 0x7a1e 0x7a14 ) ; 0x7021 ... 0x707e (block 79 0x7a39 0x7a37 0x7a61 0x9ecf 0x99a5 0x7a70 0x7688 0x768e 0x7693 0x7699 0x76a4 0x74de 0x74e0 0x752c 0x9ce9 0x9cf6 0x9d07 0x9d06 0x9d23 0x9d87 0x9e15 0x9d1d 0x9d1f 0x9de5 0x9d2f 0x9dd9 0x9d30 0x9d42 0x9e1e 0x9d53 0x9e1d 0x9d60 0x9d52 0x9df3 0x9d5c 0x9d61 0x9d93 0x9d6a 0x9d6f 0x9d89 0x9d98 0x9d9a 0x9dc0 0x9da5 0x9da9 0x9dc2 0x9dbc 0x9e1a 0x9dd3 0x9dda 0x9def 0x9de6 0x9df2 0x9df8 0x9e0c 0x9dfa 0x9e1b 0x7592 0x7594 0x7664 0x7658 0x759d 0x7667 0x75a3 0x75b3 0x75b4 0x75b8 0x75c4 0x75b1 0x75b0 0x75c3 0x75c2 0x7602 0x75cd 0x75e3 0x7646 0x75e6 0x75e4 0x7647 0x75e7 0x7603 0x75f1 0x75fc 0x75ff 0x7610 0x7600 0x7649 0x760c 0x761e 0x760a 0x7625 0x763b 0x7615 0x7619 ) ; 0x7121 ... 0x717e (block 80 0x761b 0x763c 0x7622 0x7620 0x7640 0x762d 0x7630 0x766d 0x7635 0x7643 0x766e 0x7633 0x764d 0x7669 0x7654 0x765c 0x7656 0x7672 0x766f 0x7fca 0x7ae6 0x7a78 0x7a79 0x7a80 0x7a86 0x7a88 0x7a95 0x7ac7 0x7aa0 0x7aac 0x7aa8 0x7ab6 0x7ab3 0x8864 0x8869 0x8872 0x887d 0x887f 0x8882 0x88a2 0x8960 0x88b7 0x88bc 0x88c9 0x8933 0x88ce 0x895d 0x8947 0x88f1 0x891a 0x88fc 0x88e8 0x88fe 0x88f0 0x8921 0x8919 0x8913 0x8938 0x890a 0x8964 0x892b 0x8936 0x8941 0x8966 0x897b 0x758b 0x80e5 0x76b8 0x76b4 0x77dc 0x8012 0x8014 0x8016 0x801c 0x8020 0x802e 0x8025 0x8026 0x802c 0x8029 0x8028 0x8031 0x800b 0x8035 0x8043 0x8046 0x8079 0x8052 0x8075 0x8071 0x8983 0x9807 0x980e 0x980f ) ; 0x7221 ... 0x727e (block 81 0x9821 0x981c 0x6f41 0x9826 0x9837 0x984e 0x9853 0x9873 0x9862 0x9859 0x9865 0x986c 0x9870 0x864d 0x8654 0x866c 0x87e3 0x8806 0x867a 0x867c 0x867b 0x86a8 0x868d 0x868b 0x8706 0x869d 0x86a7 0x86a3 0x86aa 0x8693 0x86a9 0x86b6 0x86c4 0x86b5 0x8823 0x86b0 0x86ba 0x86b1 0x86af 0x86c9 0x87f6 0x86b4 0x86e9 0x86fa 0x87ef 0x86ed 0x8784 0x86d0 0x8713 0x86de 0x8810 0x86df 0x86d8 0x86d1 0x8703 0x8707 0x86f8 0x8708 0x870a 0x870d 0x8709 0x8723 0x873b 0x871e 0x8725 0x872e 0x871a 0x873e 0x87c8 0x8734 0x8731 0x8729 0x8737 0x873f 0x8782 0x8722 0x877d 0x8811 0x877b 0x8760 0x8770 0x874c 0x876e 0x878b 0x8753 0x8763 0x87bb 0x8764 0x8759 0x8765 0x8793 0x87af 0x87ce 0x87d2 ) ; 0x7321 ... 0x737e (block 82 0x87c6 0x8788 0x8785 0x87ad 0x8797 0x8783 0x87ab 0x87e5 0x87ac 0x87b5 0x87b3 0x87cb 0x87d3 0x87bd 0x87d1 0x87c0 0x87ca 0x87db 0x87ea 0x87e0 0x87ee 0x8816 0x8813 0x87fe 0x880a 0x881b 0x8821 0x8839 0x883c 0x7f36 0x7f4c 0x7f44 0x7f45 0x8210 0x7afa 0x7afd 0x7b08 0x7be4 0x7b04 0x7b67 0x7b0a 0x7b2b 0x7b0f 0x7b47 0x7b38 0x7b2a 0x7b19 0x7b2e 0x7b31 0x7b20 0x7b25 0x7b24 0x7b33 0x7c69 0x7b1e 0x7b58 0x7bf3 0x7b45 0x7b75 0x7b4c 0x7b8f 0x7b60 0x7b6e 0x7b7b 0x7b62 0x7b72 0x7b71 0x7b90 0x7c00 0x7bcb 0x7bb8 0x7bac 0x7b9d 0x7c5c 0x7b85 0x7c1e 0x7b9c 0x7ba2 0x7c2b 0x7bb4 0x7c23 0x7bc1 0x7bcc 0x7bdd 0x7bda 0x7be5 0x7be6 0x7bea 0x7c0c 0x7bfe 0x7bfc 0x7c0f 0x7c6a 0x7c0b ) ; 0x7421 ... 0x747e (block 83 0x7c1f 0x7c2a 0x7c26 0x7c38 0x7c5f 0x7c40 0x81fe 0x8201 0x8202 0x8204 0x81ec 0x8844 0x8221 0x8222 0x8264 0x822d 0x822f 0x8228 0x822b 0x8238 0x826b 0x8233 0x8234 0x823e 0x8244 0x8249 0x824b 0x824f 0x825a 0x825f 0x8268 0x887e 0x88ca 0x8888 0x88d8 0x88df 0x895e 0x7f9d 0x7fa5 0x7fa7 0x7faf 0x7fb0 0x7fb2 0x7c7c 0x6549 0x7c91 0x7cf2 0x7cf6 0x7c9e 0x7ca2 0x7cb2 0x7cbc 0x7cbd 0x7cdd 0x7cc7 0x7ccc 0x7ccd 0x7cc8 0x7cc5 0x7cd7 0x7ce8 0x826e 0x66a8 0x7fbf 0x7fce 0x7fd5 0x7fe5 0x7fe1 0x7fe6 0x7fe9 0x7fee 0x7ff3 0x7cf8 0x7e36 0x7da6 0x7dae 0x7e47 0x7e9b 0x9ea9 0x9eb4 0x8d73 0x8d84 0x8d94 0x8d91 0x8db2 0x8d67 0x8d6d 0x8c47 0x8c49 0x914a 0x9150 0x914e 0x914f 0x9164 ) ; 0x7521 ... 0x757e (block 84 0x9162 0x9161 0x9170 0x9169 0x916f 0x91c5 0x91c3 0x9172 0x9174 0x9179 0x918c 0x9185 0x9190 0x918d 0x9191 0x91a2 0x91a3 0x91aa 0x91ad 0x91ae 0x91af 0x91b5 0x91b4 0x91ba 0x8c55 0x9e7a 0x8e89 0x8deb 0x8e05 0x8e59 0x8e69 0x8db5 0x8dbf 0x8dbc 0x8dba 0x8e4c 0x8dd6 0x8dd7 0x8dda 0x8e92 0x8dce 0x8dcf 0x8ddb 0x8dc6 0x8dec 0x8e7a 0x8e55 0x8de3 0x8e9a 0x8e8b 0x8de4 0x8e09 0x8dfd 0x8e14 0x8e1d 0x8e1f 0x8e93 0x8e2e 0x8e23 0x8e91 0x8e3a 0x8e40 0x8e39 0x8e35 0x8e3d 0x8e31 0x8e49 0x8e41 0x8e42 0x8ea1 0x8e63 0x8e4a 0x8e70 0x8e76 0x8e7c 0x8e6f 0x8e74 0x8e85 0x8eaa 0x8e94 0x8e90 0x8ea6 0x8e9e 0x8c78 0x8c82 0x8c8a 0x8c85 0x8c98 0x8c94 0x659b 0x89d6 0x89f4 0x89da 0x89dc ) ; 0x7621 ... 0x767e (block 85 0x89e5 0x89eb 0x89f6 0x8a3e 0x8b26 0x975a 0x96e9 0x9742 0x96ef 0x9706 0x973d 0x9708 0x970f 0x970e 0x972a 0x9744 0x9730 0x973e 0x9f54 0x9f5f 0x9f59 0x9f60 0x9f5c 0x9f66 0x9f6c 0x9f6a 0x9f77 0x9efd 0x9eff 0x9f09 0x96b9 0x96bc 0x96bd 0x96ce 0x96d2 0x77bf 0x8b8e 0x928e 0x947e 0x92c8 0x93e8 0x936a 0x93ca 0x938f 0x943e 0x946b 0x9b77 0x9b74 0x9b81 0x9b83 0x9b8e 0x9c78 0x7a4c 0x9b92 0x9c5f 0x9b90 0x9bad 0x9b9a 0x9baa 0x9b9e 0x9c6d 0x9bab 0x9b9d 0x9c58 0x9bc1 0x9c7a 0x9c31 0x9c39 0x9c23 0x9c37 0x9bc0 0x9bca 0x9bc7 0x9bfd 0x9bd6 0x9bea 0x9beb 0x9be1 0x9be4 0x9be7 0x9bdd 0x9be2 0x9bf0 0x9bdb 0x9bf4 0x9bd4 0x9c5d 0x9c08 0x9c10 0x9c0d 0x9c12 0x9c09 0x9bff 0x9c20 ) ; 0x7721 ... 0x777e (block 86 0x9c32 0x9c2d 0x9c28 0x9c25 0x9c29 0x9c33 0x9c3e 0x9c48 0x9c3b 0x9c35 0x9c45 0x9c56 0x9c54 0x9c52 0x9c67 0x977c 0x9785 0x97c3 0x97bd 0x9794 0x97c9 0x97ab 0x97a3 0x97b2 0x97b4 0x9ab1 0x9ab0 0x9ab7 0x9dbb 0x9ab6 0x9aba 0x9abc 0x9ac1 0x9ac0 0x9acf 0x9ac2 0x9ad6 0x9ad5 0x9ad1 0x9b45 0x9b43 0x9b58 0x9b4e 0x9b48 0x9b4d 0x9b51 0x9957 0x995c 0x992e 0x9955 0x9954 0x9adf 0x9ae1 0x9ae6 0x9aef 0x9aeb 0x9afb 0x9aed 0x9af9 0x9b08 0x9b0f 0x9b22 0x9b1f 0x9b23 0x4e48 0x9ebe 0x7e3b 0x9e82 0x9e87 0x9e88 0x9e8b 0x9e92 0x93d6 0x9e9d 0x9e9f 0x9edb 0x9edc 0x9edd 0x9ee0 0x9edf 0x9ee2 0x9ef7 0x9ee7 0x9ee5 0x9ef2 0x9eef 0x9f22 0x9f2c 0x9f2f 0x9f39 0x9f37 0x9f3d 0x9f3e 0x9f44 ) ; 0x7821 ... 0x787e (block 87 0x896c 0x95c6 0x9336 0x5f46 0x8514 0x7e94 0x5382 0x51b2 0x4e11 0x9f63 0x5679 0x515a 0x6dc0 0x9f15 0x6597 0x5641 0x9aee 0x8303 0x4e30 0x8907 0x5e72 0x7a40 0x98b3 0x5e7f 0x95a4 0x9b0d 0x5212 0x8ff4 0x5f59 0x7a6b 0x98e2 0x51e0 0x50a2 0x4ef7 0x8350 0x8591 0x5118 0x636e 0x6372 0x524b 0x5938 0x774f 0x8721 0x814a 0x7e8d 0x91cc 0x66c6 0x5e18 0x77ad 0x9e75 0x56c9 0x9ef4 0x6fdb 0x61de 0x77c7 0x7030 0x9eb5 0x884a 0x95e2 0x82f9 0x51ed 0x6251 0x4ec6 0x6734 0x97c6 0x7c64 0x7e34 0x97a6 0x9eaf 0x786e 0x820d 0x672f 0x677e 0x56cc 0x53f0 0x98b1 0x6aaf 0x7f4e 0x6d82 0x7cf0 0x4e07 0x4fc2 0x7e6b 0x9e79 0x56ae 0x9b1a 0x846f 0x53f6 0x90c1 0x79a6 0x7c72 0x613f 0x4e91 0x9ad2 ) ; 0x7921 ... 0x797e (block 88 0x75c7 0x96bb 0x53ea 0x7dfb 0x88fd 0x79cd 0x7843 0x7b51 0x51c6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) vflib3-3.6.14.dfsg/ccv/big5_unicode.ccv0000644000175000017500000040347107006213677017111 0ustar mohuramohura; Conversion table: BIG5 ==> UNICODE (charset-external-name BIG5) (charset-external-encoding BIG5) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0xa1) (c1-max 0xf9) (c2-min 0x40) (c2-max 0xfe) (block-size 256) (nblocks 89) ; 0xa140 ... 0xa1fe (block 0 0x3000 0xff0c 0x3001 0x3002 0xff0e 0x2022 0xff1b 0xff1a 0xff1f 0xff01 0xfe30 0x2026 0x2025 0xfe50 0xff64 0xfe52 0x00b7 0xfe54 0xfe55 0xfe56 0xfe57 0xff5c 0x2013 0xfe31 0x2014 0xfe33 0xfffd 0xfe34 0xfe4f 0xff08 0xff09 0xfe35 0xfe36 0xff5b 0xff5d 0xfe37 0xfe38 0x3014 0x3015 0xfe39 0xfe3a 0x3010 0x3011 0xfe3b 0xfe3c 0x300a 0x300b 0xfe3d 0xfe3e 0x3008 0x3009 0xfe3f 0xfe40 0x300c 0x300d 0xfe41 0xfe42 0x300e 0x300f 0xfe43 0xfe44 0xfe59 0xfe5a -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0xfe5b 0xfe5c 0xfe5d 0xfe5e 0x2018 0x2019 0x201c 0x201d 0x301d 0x301e 0x2035 0x2032 0xff03 0xff06 0xff0a 0x203b 0x00a7 0x3003 0x25cb 0x25cf 0x25b3 0x25b2 0x25ce 0x2606 0x2605 0x25c7 0x25c6 0x25a1 0x25a0 0x25bd 0x25bc 0x32a3 0x2105 0x203e 0xfffd 0xff3f 0xfffd 0xfe49 0xfe4a 0xfe4d 0xfe4e 0xfe4b 0xfe4c 0xfe5f 0xfe60 0xfe61 0xff0b 0xff0d 0x00d7 0x00f7 0x00b1 0x221a 0xff1c 0xff1e 0xff1d 0x2266 0x2267 0x2260 0x221e 0x2252 0x2261 0xfe62 0xfe63 0xfe64 0xfe65 0xfe66 0x223c 0x2229 0x222a 0x22a5 0x2220 0x221f 0x22bf 0x33d2 0x33d1 0x222b 0x222e 0x2235 0x2234 0x2640 0x2642 0x2641 0x2609 0x2191 0x2193 0x2190 0x2192 0x2196 0x2197 0x2199 0x2198 0x2225 0x2223 0xfffd ) ; 0xa240 ... 0xa2fe (block 1 0xfffd 0xff0f 0xff3c 0xff04 0x00a5 0x3012 0x00a2 0x00a3 0xff05 0xff20 0x2103 0x2109 0xfe69 0xfe6a 0xfe6b 0x33d5 0x339c 0x339d 0x339e 0x33ce 0x33a1 0x338e 0x338f 0x33c4 0x00b0 0x5159 0x515b 0x515e 0x515d 0x5161 0x5163 0x55e7 0x74e9 0x7cce 0x2581 0x2582 0x2583 0x2584 0x2585 0x2586 0x2587 0x2588 0x258f 0x258e 0x258d 0x258c 0x258b 0x258a 0x2589 0x253c 0x2534 0x252c 0x2524 0x251c 0x2594 0x2500 0x2502 0x2595 0x250c 0x2510 0x2514 0x2518 0x256d -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x256e 0x2570 0x256f 0x2550 0x255e 0x256a 0x2561 0x25e2 0x25e3 0x25e5 0x25e4 0x2571 0x2572 0x2573 0xff10 0xff11 0xff12 0xff13 0xff14 0xff15 0xff16 0xff17 0xff18 0xff19 0x2160 0x2161 0x2162 0x2163 0x2164 0x2165 0x2166 0x2167 0x2168 0x2169 0x3021 0x3022 0x3023 0x3024 0x3025 0x3026 0x3027 0x3028 0x3029 0xfffd 0x5344 0xfffd 0xff21 0xff22 0xff23 0xff24 0xff25 0xff26 0xff27 0xff28 0xff29 0xff2a 0xff2b 0xff2c 0xff2d 0xff2e 0xff2f 0xff30 0xff31 0xff32 0xff33 0xff34 0xff35 0xff36 0xff37 0xff38 0xff39 0xff3a 0xff41 0xff42 0xff43 0xff44 0xff45 0xff46 0xff47 0xff48 0xff49 0xff4a 0xff4b 0xff4c 0xff4d 0xff4e 0xff4f 0xff50 0xff51 0xff52 0xff53 0xff54 0xff55 0xff56 ) ; 0xa340 ... 0xa3fe (block 2 0xff57 0xff58 0xff59 0xff5a 0x0391 0x0392 0x0393 0x0394 0x0395 0x0396 0x0397 0x0398 0x0399 0x039a 0x039b 0x039c 0x039d 0x039e 0x039f 0x03a0 0x03a1 0x03a3 0x03a4 0x03a5 0x03a6 0x03a7 0x03a8 0x03a9 0x03b1 0x03b2 0x03b3 0x03b4 0x03b5 0x03b6 0x03b7 0x03b8 0x03b9 0x03ba 0x03bb 0x03bc 0x03bd 0x03be 0x03bf 0x03c0 0x03c1 0x03c3 0x03c4 0x03c5 0x03c6 0x03c7 0x03c8 0x03c9 0x3105 0x3106 0x3107 0x3108 0x3109 0x310a 0x310b 0x310c 0x310d 0x310e 0x310f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x3110 0x3111 0x3112 0x3113 0x3114 0x3115 0x3116 0x3117 0x3118 0x3119 0x311a 0x311b 0x311c 0x311d 0x311e 0x311f 0x3120 0x3121 0x3122 0x3123 0x3124 0x3125 0x3126 0x3127 0x3128 0x3129 0x02d9 0x02c9 0x02ca 0x02c7 0x02cb -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xa440 ... 0xa4fe (block 3 0x4e00 0x4e59 0x4e01 0x4e03 0x4e43 0x4e5d 0x4e86 0x4e8c 0x4eba 0x513f 0x5165 0x516b 0x51e0 0x5200 0x5201 0x529b 0x5315 0x5341 0x535c 0x53c8 0x4e09 0x4e0b 0x4e08 0x4e0a 0x4e2b 0x4e38 0x51e1 0x4e45 0x4e48 0x4e5f 0x4e5e 0x4e8e 0x4ea1 0x5140 0x5203 0x52fa 0x5343 0x53c9 0x53e3 0x571f 0x58eb 0x5915 0x5927 0x5973 0x5b50 0x5b51 0x5b53 0x5bf8 0x5c0f 0x5c22 0x5c38 0x5c71 0x5ddd 0x5de5 0x5df1 0x5df2 0x5df3 0x5dfe 0x5e72 0x5efe 0x5f0b 0x5f13 0x624d -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x4e11 0x4e10 0x4e0d 0x4e2d 0x4e30 0x4e39 0x4e4b 0x5c39 0x4e88 0x4e91 0x4e95 0x4e92 0x4e94 0x4ea2 0x4ec1 0x4ec0 0x4ec3 0x4ec6 0x4ec7 0x4ecd 0x4eca 0x4ecb 0x4ec4 0x5143 0x5141 0x5167 0x516d 0x516e 0x516c 0x5197 0x51f6 0x5206 0x5207 0x5208 0x52fb 0x52fe 0x52ff 0x5316 0x5339 0x5348 0x5347 0x5345 0x535e 0x5384 0x53cb 0x53ca 0x53cd 0x58ec 0x5929 0x592b 0x592a 0x592d 0x5b54 0x5c11 0x5c24 0x5c3a 0x5c6f 0x5df4 0x5e7b 0x5eff 0x5f14 0x5f15 0x5fc3 0x6208 0x6236 0x624b 0x624e 0x652f 0x6587 0x6597 0x65a4 0x65b9 0x65e5 0x66f0 0x6708 0x6728 0x6b20 0x6b62 0x6b79 0x6bcb 0x6bd4 0x6bdb 0x6c0f 0x6c34 0x706b 0x722a 0x7236 0x723b 0x7247 0x7259 0x725b 0x72ac 0x738b 0x4e19 ) ; 0xa540 ... 0xa5fe (block 4 0x4e16 0x4e15 0x4e14 0x4e18 0x4e3b 0x4e4d 0x4e4f 0x4e4e 0x4ee5 0x4ed8 0x4ed4 0x4ed5 0x4ed6 0x4ed7 0x4ee3 0x4ee4 0x4ed9 0x4ede 0x5145 0x5144 0x5189 0x518a 0x51ac 0x51f9 0x51fa 0x51f8 0x520a 0x52a0 0x529f 0x5305 0x5306 0x5317 0x531d 0x4edf 0x534a 0x5349 0x5361 0x5360 0x536f 0x536e 0x53bb 0x53ef 0x53e4 0x53f3 0x53ec 0x53ee 0x53e9 0x53e8 0x53fc 0x53f8 0x53f5 0x53eb 0x53e6 0x53ea 0x53f2 0x53f1 0x53f0 0x53e5 0x53ed 0x53fb 0x56db 0x56da 0x5916 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x592e 0x5931 0x5974 0x5976 0x5b55 0x5b83 0x5c3c 0x5de8 0x5de7 0x5de6 0x5e02 0x5e03 0x5e73 0x5e7c 0x5f01 0x5f18 0x5f17 0x5fc5 0x620a 0x6253 0x6254 0x6252 0x6251 0x65a5 0x65e6 0x672e 0x672c 0x672a 0x672b 0x672d 0x6b63 0x6bcd 0x6c11 0x6c10 0x6c38 0x6c41 0x6c40 0x6c3e 0x72af 0x7384 0x7389 0x74dc 0x74e6 0x7518 0x751f 0x7528 0x7529 0x7530 0x7531 0x7532 0x7533 0x758b 0x767d 0x76ae 0x76bf 0x76ee 0x77db 0x77e2 0x77f3 0x793a 0x79be 0x7a74 0x7acb 0x4e1e 0x4e1f 0x4e52 0x4e53 0x4e69 0x4e99 0x4ea4 0x4ea6 0x4ea5 0x4eff 0x4f09 0x4f19 0x4f0a 0x4f15 0x4f0d 0x4f10 0x4f11 0x4f0f 0x4ef2 0x4ef6 0x4efb 0x4ef0 0x4ef3 0x4efd 0x4f01 0x4f0b 0x5149 0x5147 0x5146 0x5148 0x5168 ) ; 0xa640 ... 0xa6fe (block 5 0x5171 0x518d 0x51b0 0x5217 0x5211 0x5212 0x520e 0x5216 0x52a3 0x5308 0x5321 0x5320 0x5370 0x5371 0x5409 0x540f 0x540c 0x540a 0x5410 0x5401 0x540b 0x5404 0x5411 0x540d 0x5408 0x5403 0x540e 0x5406 0x5412 0x56e0 0x56de 0x56dd 0x5733 0x5730 0x5728 0x572d 0x572c 0x572f 0x5729 0x5919 0x591a 0x5937 0x5938 0x5984 0x5978 0x5983 0x597d 0x5979 0x5982 0x5981 0x5b57 0x5b58 0x5b87 0x5b88 0x5b85 0x5b89 0x5bfa 0x5c16 0x5c79 0x5dde 0x5e06 0x5e76 0x5e74 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x5f0f 0x5f1b 0x5fd9 0x5fd6 0x620e 0x620c 0x620d 0x6210 0x6263 0x625b 0x6258 0x6536 0x65e9 0x65e8 0x65ec 0x65ed 0x66f2 0x66f3 0x6709 0x673d 0x6734 0x6731 0x6735 0x6b21 0x6b64 0x6b7b 0x6c16 0x6c5d 0x6c57 0x6c59 0x6c5f 0x6c60 0x6c50 0x6c55 0x6c61 0x6c5b 0x6c4d 0x6c4e 0x7070 0x725f 0x725d 0x767e 0x7af9 0x7c73 0x7cf8 0x7f36 0x7f8a 0x7fbd 0x8001 0x8003 0x800c 0x8012 0x8033 0x807f 0x8089 0x808b 0x808c 0x81e3 0x81ea 0x81f3 0x81fc 0x820c 0x821b 0x821f 0x826e 0x8272 0x827e 0x866b 0x8840 0x884c 0x8863 0x897f 0x9621 0x4e32 0x4ea8 0x4f4d 0x4f4f 0x4f47 0x4f57 0x4f5e 0x4f34 0x4f5b 0x4f55 0x4f30 0x4f50 0x4f51 0x4f3d 0x4f3a 0x4f38 0x4f43 0x4f54 0x4f3c 0x4f46 0x4f63 ) ; 0xa740 ... 0xa7fe (block 6 0x4f5c 0x4f60 0x4f2f 0x4f4e 0x4f36 0x4f59 0x4f5d 0x4f48 0x4f5a 0x514c 0x514b 0x514d 0x5175 0x51b6 0x51b7 0x5225 0x5224 0x5229 0x522a 0x5228 0x52ab 0x52a9 0x52aa 0x52ac 0x5323 0x5373 0x5375 0x541d 0x542d 0x541e 0x543e 0x5426 0x544e 0x5427 0x5446 0x5443 0x5433 0x5448 0x5442 0x541b 0x5429 0x544a 0x5439 0x543b 0x5438 0x542e 0x5435 0x5436 0x5420 0x543c 0x5440 0x5431 0x542b 0x541f 0x542c 0x56ea 0x56f0 0x56e4 0x56eb 0x574a 0x5751 0x5740 0x574d -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x5747 0x574e 0x573e 0x5750 0x574f 0x573b 0x58ef 0x593e 0x599d 0x5992 0x59a8 0x599e 0x59a3 0x5999 0x5996 0x598d 0x59a4 0x5993 0x598a 0x59a5 0x5b5d 0x5b5c 0x5b5a 0x5b5b 0x5b8c 0x5b8b 0x5b8f 0x5c2c 0x5c40 0x5c41 0x5c3f 0x5c3e 0x5c90 0x5c91 0x5c94 0x5c8c 0x5deb 0x5e0c 0x5e8f 0x5e87 0x5e8a 0x5ef7 0x5f04 0x5f1f 0x5f64 0x5f62 0x5f77 0x5f79 0x5fd8 0x5fcc 0x5fd7 0x5fcd 0x5ff1 0x5feb 0x5ff8 0x5fea 0x6212 0x6211 0x6284 0x6297 0x6296 0x6280 0x6276 0x6289 0x626d 0x628a 0x627c 0x627e 0x6279 0x6273 0x6292 0x626f 0x6298 0x626e 0x6295 0x6293 0x6291 0x6286 0x6539 0x653b 0x6538 0x65f1 0x66f4 0x675f 0x674e 0x674f 0x6750 0x6751 0x675c 0x6756 0x675e 0x6749 0x6746 0x6760 ) ; 0xa840 ... 0xa8fe (block 7 0x6753 0x6757 0x6b65 0x6bcf 0x6c42 0x6c5e 0x6c99 0x6c81 0x6c88 0x6c89 0x6c85 0x6c9b 0x6c6a 0x6c7a 0x6c90 0x6c70 0x6c8c 0x6c68 0x6c96 0x6c92 0x6c7d 0x6c83 0x6c72 0x6c7e 0x6c74 0x6c86 0x6c76 0x6c8d 0x6c94 0x6c98 0x6c82 0x7076 0x707c 0x707d 0x7078 0x7262 0x7261 0x7260 0x72c4 0x72c2 0x7396 0x752c 0x752b 0x7537 0x7538 0x7682 0x76ef 0x77e3 0x79c1 0x79c0 0x79bf 0x7a76 0x7cfb 0x7f55 0x8096 0x8093 0x809d 0x8098 0x809b 0x809a 0x80b2 0x826f 0x8292 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x828b 0x828d 0x898b 0x89d2 0x8a00 0x8c37 0x8c46 0x8c55 0x8c9d 0x8d64 0x8d70 0x8db3 0x8eab 0x8eca 0x8f9b 0x8fb0 0x8fc2 0x8fc6 0x8fc5 0x8fc4 0x5de1 0x9091 0x90a2 0x90aa 0x90a6 0x90a3 0x9149 0x91c6 0x91cc 0x9632 0x962e 0x9631 0x962a 0x962c 0x4e26 0x4e56 0x4e73 0x4e8b 0x4e9b 0x4e9e 0x4eab 0x4eac 0x4f6f 0x4f9d 0x4f8d 0x4f73 0x4f7f 0x4f6c 0x4f9b 0x4f8b 0x4f86 0x4f83 0x4f70 0x4f75 0x4f88 0x4f69 0x4f7b 0x4f96 0x4f7e 0x4f8f 0x4f91 0x4f7a 0x5154 0x5152 0x5155 0x5169 0x5177 0x5176 0x5178 0x51bd 0x51fd 0x523b 0x5238 0x5237 0x523a 0x5230 0x522e 0x5236 0x5241 0x52be 0x52bb 0x5352 0x5354 0x5353 0x5351 0x5366 0x5377 0x5378 0x5379 0x53d6 0x53d4 0x53d7 0x5473 0x5475 ) ; 0xa940 ... 0xa9fe (block 8 0x5496 0x5478 0x5495 0x5480 0x547b 0x5477 0x5484 0x5492 0x5486 0x547c 0x5490 0x5471 0x5476 0x548c 0x549a 0x5462 0x5468 0x548b 0x547d 0x548e 0x56fa 0x5783 0x5777 0x576a 0x5769 0x5761 0x5766 0x5764 0x577c 0x591c 0x5949 0x5947 0x5948 0x5944 0x5954 0x59be 0x59bb 0x59d4 0x59b9 0x59ae 0x59d1 0x59c6 0x59d0 0x59cd 0x59cb 0x59d3 0x59ca 0x59af 0x59b3 0x59d2 0x59c5 0x5b5f 0x5b64 0x5b63 0x5b97 0x5b9a 0x5b98 0x5b9c 0x5b99 0x5b9b 0x5c1a 0x5c48 0x5c45 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x5c46 0x5cb7 0x5ca1 0x5cb8 0x5ca9 0x5cab 0x5cb1 0x5cb3 0x5e18 0x5e1a 0x5e16 0x5e15 0x5e1b 0x5e11 0x5e78 0x5e9a 0x5e97 0x5e9c 0x5e95 0x5e96 0x5ef6 0x5f26 0x5f27 0x5f29 0x5f80 0x5f81 0x5f7f 0x5f7c 0x5fdd 0x5fe0 0x5ffd 0x5ff5 0x5fff 0x600f 0x6014 0x602f 0x6035 0x6016 0x602a 0x6015 0x6021 0x6027 0x6029 0x602b 0x601b 0x6216 0x6215 0x623f 0x623e 0x6240 0x627f 0x62c9 0x62cc 0x62c4 0x62bf 0x62c2 0x62b9 0x62d2 0x62db 0x62ab 0x62d3 0x62d4 0x62cb 0x62c8 0x62a8 0x62bd 0x62bc 0x62d0 0x62d9 0x62c7 0x62cd 0x62b5 0x62da 0x62b1 0x62d8 0x62d6 0x62d7 0x62c6 0x62ac 0x62ce 0x653e 0x65a7 0x65bc 0x65fa 0x6614 0x6613 0x660c 0x6606 0x6602 0x660e 0x6600 0x660f 0x6615 0x660a ) ; 0xaa40 ... 0xaafe (block 9 0x6607 0x670d 0x670b 0x676d 0x678b 0x6795 0x6771 0x679c 0x6773 0x6777 0x6787 0x679d 0x6797 0x676f 0x6770 0x677f 0x6789 0x677e 0x6790 0x6775 0x679a 0x6793 0x677c 0x676a 0x6772 0x6b23 0x6b66 0x6b67 0x6b7f 0x6c13 0x6c1b 0x6ce3 0x6ce8 0x6cf3 0x6cb1 0x6ccc 0x6ce5 0x6cb3 0x6cbd 0x6cbe 0x6cbc 0x6ce2 0x6cab 0x6cd5 0x6cd3 0x6cb8 0x6cc4 0x6cb9 0x6cc1 0x6cae 0x6cd7 0x6cc5 0x6cf1 0x6cbf 0x6cbb 0x6ce1 0x6cdb 0x6cca 0x6cac 0x6cef 0x6cdc 0x6cd6 0x6ce0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x7095 0x708e 0x7092 0x708a 0x7099 0x722c 0x722d 0x7238 0x7248 0x7267 0x7269 0x72c0 0x72ce 0x72d9 0x72d7 0x72d0 0x73a9 0x73a8 0x739f 0x73ab 0x73a5 0x753d 0x759d 0x7599 0x759a 0x7684 0x76c2 0x76f2 0x76f4 0x77e5 0x77fd 0x793e 0x7940 0x7941 0x79c9 0x79c8 0x7a7a 0x7a79 0x7afa 0x7cfe 0x7f54 0x7f8c 0x7f8b 0x8005 0x80ba 0x80a5 0x80a2 0x80b1 0x80a1 0x80ab 0x80a9 0x80b4 0x80aa 0x80af 0x81e5 0x81fe 0x820d 0x82b3 0x829d 0x8299 0x82ad 0x82bd 0x829f 0x82b9 0x82b1 0x82ac 0x82a5 0x82af 0x82b8 0x82a3 0x82b0 0x82be 0x82b7 0x864e 0x8671 0x521d 0x8868 0x8ecb 0x8fce 0x8fd4 0x8fd1 0x90b5 0x90b8 0x90b1 0x90b6 0x91c7 0x91d1 0x9577 0x9580 0x961c 0x9640 0x963f 0x963b 0x9644 ) ; 0xab40 ... 0xabfe (block 10 0x9642 0x96b9 0x96e8 0x9752 0x975e 0x4e9f 0x4ead 0x4eae 0x4fe1 0x4fb5 0x4faf 0x4fbf 0x4fe0 0x4fd1 0x4fcf 0x4fdd 0x4fc3 0x4fb6 0x4fd8 0x4fdf 0x4fca 0x4fd7 0x4fae 0x4fd0 0x4fc4 0x4fc2 0x4fda 0x4fce 0x4fde 0x4fb7 0x5157 0x5192 0x5191 0x51a0 0x524e 0x5243 0x524a 0x524d 0x524c 0x524b 0x5247 0x52c7 0x52c9 0x52c3 0x52c1 0x530d 0x5357 0x537b 0x539a 0x53db 0x54ac 0x54c0 0x54a8 0x54ce 0x54c9 0x54b8 0x54a6 0x54b3 0x54c7 0x54c2 0x54bd 0x54aa 0x54c1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x54c4 0x54c8 0x54af 0x54ab 0x54b1 0x54bb 0x54a9 0x54a7 0x54bf 0x56ff 0x5782 0x578b 0x57a0 0x57a3 0x57a2 0x57ce 0x57ae 0x5793 0x5955 0x5951 0x594f 0x594e 0x5950 0x59dc 0x59d8 0x59ff 0x59e3 0x59e8 0x5a03 0x59e5 0x59ea 0x59da 0x59e6 0x5a01 0x59fb 0x5b69 0x5ba3 0x5ba6 0x5ba4 0x5ba2 0x5ba5 0x5c01 0x5c4e 0x5c4f 0x5c4d 0x5c4b 0x5cd9 0x5cd2 0x5df7 0x5e1d 0x5e25 0x5e1f 0x5e7d 0x5ea0 0x5ea6 0x5efa 0x5f08 0x5f2d 0x5f65 0x5f88 0x5f85 0x5f8a 0x5f8b 0x5f87 0x5f8c 0x5f89 0x6012 0x601d 0x6020 0x6025 0x600e 0x6028 0x604d 0x6070 0x6068 0x6062 0x6046 0x6043 0x606c 0x606b 0x606a 0x6064 0x6241 0x62dc 0x6316 0x6309 0x62fc 0x62ed 0x6301 0x62ee 0x62fd 0x6307 0x62f1 0x62f7 ) ; 0xac40 ... 0xacfe (block 11 0x62ef 0x62ec 0x62fe 0x62f4 0x6311 0x6302 0x653f 0x6545 0x65ab 0x65bd 0x65e2 0x6625 0x662d 0x6620 0x6627 0x662f 0x661f 0x6628 0x6631 0x6624 0x66f7 0x67ff 0x67d3 0x67f1 0x67d4 0x67d0 0x67ec 0x67b6 0x67af 0x67f5 0x67e9 0x67ef 0x67c4 0x67d1 0x67b4 0x67da 0x67e5 0x67b8 0x67cf 0x67de 0x67f3 0x67b0 0x67d9 0x67e2 0x67dd 0x67d2 0x6b6a 0x6b83 0x6b86 0x6bb5 0x6bd2 0x6bd7 0x6c1f 0x6cc9 0x6d0b 0x6d32 0x6d2a 0x6d41 0x6d25 0x6d0c 0x6d31 0x6d1e 0x6d17 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x6d3b 0x6d3d 0x6d3e 0x6d36 0x6d1b 0x6cf5 0x6d39 0x6d27 0x6d38 0x6d29 0x6d2e 0x6d35 0x6d0e 0x6d2b 0x70ab 0x70ba 0x70b3 0x70ac 0x70af 0x70ad 0x70b8 0x70ae 0x70a4 0x7230 0x7272 0x726f 0x7274 0x72e9 0x72e0 0x72e1 0x73b7 0x73ca 0x73bb 0x73b2 0x73cd 0x73c0 0x73b3 0x751a 0x752d 0x754f 0x754c 0x754e 0x754b 0x75ab 0x75a4 0x75a5 0x75a2 0x75a3 0x7678 0x7686 0x7687 0x7688 0x76c8 0x76c6 0x76c3 0x76c5 0x7701 0x76f9 0x76f8 0x7709 0x770b 0x76fe 0x76fc 0x7707 0x77dc 0x7802 0x7814 0x780c 0x780d 0x7946 0x7949 0x7948 0x7947 0x79b9 0x79ba 0x79d1 0x79d2 0x79cb 0x7a7f 0x7a81 0x7aff 0x7afd 0x7c7d 0x7d02 0x7d05 0x7d00 0x7d09 0x7d07 0x7d04 0x7d06 0x7f38 0x7f8e 0x7fbf 0x8004 ) ; 0xad40 ... 0xadfe (block 12 0x8010 0x800d 0x8011 0x8036 0x80d6 0x80e5 0x80da 0x80c3 0x80c4 0x80cc 0x80e1 0x80db 0x80ce 0x80de 0x80e4 0x80dd 0x81f4 0x8222 0x82e7 0x8303 0x8305 0x82e3 0x82db 0x82e6 0x8304 0x82e5 0x8302 0x8309 0x82d2 0x82d7 0x82f1 0x8301 0x82dc 0x82d4 0x82d1 0x82de 0x82d3 0x82df 0x82ef 0x8306 0x8650 0x8679 0x867b 0x867a 0x884d 0x886b 0x8981 0x89d4 0x8a08 0x8a02 0x8a03 0x8c9e 0x8ca0 0x8d74 0x8d73 0x8db4 0x8ecd 0x8ecc 0x8ff0 0x8fe6 0x8fe2 0x8fea 0x8fe5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x8fed 0x8feb 0x8fe4 0x8fe8 0x90ca 0x90ce 0x90c1 0x90c3 0x914b 0x914a 0x91cd 0x9582 0x9650 0x964b 0x964c 0x964d 0x9762 0x9769 0x97cb 0x97ed 0x97f3 0x9801 0x98a8 0x98db 0x98df 0x9996 0x9999 0x4e58 0x4eb3 0x500c 0x500d 0x5023 0x4fef 0x5026 0x5025 0x4ff8 0x5029 0x5016 0x5006 0x503c 0x501f 0x501a 0x5012 0x5011 0x4ffa 0x5000 0x5014 0x5028 0x4ff1 0x5021 0x500b 0x5019 0x5018 0x4ff3 0x4fee 0x502d 0x502a 0x4ffe 0x502b 0x5009 0x517c 0x51a4 0x51a5 0x51a2 0x51cd 0x51cc 0x51c6 0x51cb 0x5256 0x525c 0x5254 0x525b 0x525d 0x532a 0x537f 0x539f 0x539d 0x53df 0x54e8 0x5510 0x5501 0x5537 0x54fc 0x54e5 0x54f2 0x5506 0x54fa 0x5514 0x54e9 0x54ed 0x54e1 0x5509 0x54ee 0x54ea ) ; 0xae40 ... 0xaefe (block 13 0x54e6 0x5527 0x5507 0x54fd 0x550f 0x5703 0x5704 0x57c2 0x57d4 0x57cb 0x57c3 0x5809 0x590f 0x5957 0x5958 0x595a 0x5a11 0x5a18 0x5a1c 0x5a1f 0x5a1b 0x5a13 0x59ec 0x5a20 0x5a23 0x5a29 0x5a25 0x5a0c 0x5a09 0x5b6b 0x5c58 0x5bb0 0x5bb3 0x5bb6 0x5bb4 0x5bae 0x5bb5 0x5bb9 0x5bb8 0x5c04 0x5c51 0x5c55 0x5c50 0x5ced 0x5cfd 0x5cfb 0x5cea 0x5ce8 0x5cf0 0x5cf6 0x5d01 0x5cf4 0x5dee 0x5e2d 0x5e2b 0x5eab 0x5ead 0x5ea7 0x5f31 0x5f92 0x5f91 0x5f90 0x6059 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x6063 0x6065 0x6050 0x6055 0x606d 0x6069 0x606f 0x6084 0x609f 0x609a 0x608d 0x6094 0x608c 0x6085 0x6096 0x6247 0x62f3 0x6308 0x62ff 0x634e 0x633e 0x632f 0x6355 0x6342 0x6346 0x634f 0x6349 0x633a 0x6350 0x633d 0x632a 0x632b 0x6328 0x634d 0x634c 0x6548 0x6549 0x6599 0x65c1 0x65c5 0x6642 0x6649 0x664f 0x6643 0x6652 0x664c 0x6645 0x6641 0x66f8 0x6714 0x6715 0x6717 0x6821 0x6838 0x6848 0x6846 0x6853 0x6839 0x6842 0x6854 0x6829 0x68b3 0x6817 0x684c 0x6851 0x683d 0x67f4 0x6850 0x6840 0x683c 0x6843 0x682a 0x6845 0x6813 0x6818 0x6841 0x6b8a 0x6b89 0x6bb7 0x6c23 0x6c27 0x6c28 0x6c26 0x6c24 0x6cf0 0x6d6a 0x6d95 0x6d88 0x6d87 0x6d66 0x6d78 0x6d77 0x6d59 0x6d93 ) ; 0xaf40 ... 0xaffe (block 14 0x6d6c 0x6d89 0x6d6e 0x6d5a 0x6d74 0x6d69 0x6d8c 0x6d8a 0x6d79 0x6d85 0x6d65 0x6d94 0x70ca 0x70d8 0x70e4 0x70d9 0x70c8 0x70cf 0x7239 0x7279 0x72fc 0x72f9 0x72fd 0x72f8 0x72f7 0x7386 0x73ed 0x7409 0x73ee 0x73e0 0x73ea 0x73de 0x7554 0x755d 0x755c 0x755a 0x7559 0x75be 0x75c5 0x75c7 0x75b2 0x75b3 0x75bd 0x75bc 0x75b9 0x75c2 0x75b8 0x768b 0x76b0 0x76ca 0x76cd 0x76ce 0x7729 0x771f 0x7720 0x7728 0x77e9 0x7830 0x7827 0x7838 0x781d 0x7834 0x7837 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x7825 0x782d 0x7820 0x781f 0x7832 0x7955 0x7950 0x7960 0x795f 0x7956 0x795e 0x795d 0x7957 0x795a 0x79e4 0x79e3 0x79e7 0x79df 0x79e6 0x79e9 0x79d8 0x7a84 0x7a88 0x7ad9 0x7b06 0x7b11 0x7c89 0x7d21 0x7d17 0x7d0b 0x7d0a 0x7d20 0x7d22 0x7d14 0x7d10 0x7d15 0x7d1a 0x7d1c 0x7d0d 0x7d19 0x7d1b 0x7f3a 0x7f5f 0x7f94 0x7fc5 0x7fc1 0x8006 0x8018 0x8015 0x8019 0x8017 0x803d 0x803f 0x80f1 0x8102 0x80f0 0x8105 0x80ed 0x80f4 0x8106 0x80f8 0x80f3 0x8108 0x80fd 0x810a 0x80fc 0x80ef 0x81ed 0x81ec 0x8200 0x8210 0x822a 0x822b 0x8228 0x822c 0x82bb 0x832b 0x8352 0x8354 0x834a 0x8338 0x8350 0x8349 0x8335 0x8334 0x834f 0x8332 0x8339 0x8336 0x8317 0x8340 0x8331 0x8328 0x8343 ) ; 0xb040 ... 0xb0fe (block 15 0x8654 0x868a 0x86aa 0x8693 0x86a4 0x86a9 0x868c 0x86a3 0x869c 0x8870 0x8877 0x8881 0x8882 0x887d 0x8879 0x8a18 0x8a10 0x8a0e 0x8a0c 0x8a15 0x8a0a 0x8a17 0x8a13 0x8a16 0x8a0f 0x8a11 0x8c48 0x8c7a 0x8c79 0x8ca1 0x8ca2 0x8d77 0x8eac 0x8ed2 0x8ed4 0x8ecf 0x8fb1 0x9001 0x9006 0x8ff7 0x9000 0x8ffa 0x8ff4 0x9003 0x8ffd 0x9005 0x8ff8 0x9095 0x90e1 0x90dd 0x90e2 0x9152 0x914d 0x914c 0x91d8 0x91dd 0x91d7 0x91dc 0x91d9 0x9583 0x9662 0x9663 0x9661 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x965b 0x965d 0x9664 0x9658 0x965e 0x96bb 0x98e2 0x99ac 0x9aa8 0x9ad8 0x9b25 0x9b32 0x9b3c 0x4e7e 0x507a 0x507d 0x505c 0x5047 0x5043 0x504c 0x505a 0x5049 0x5065 0x5076 0x504e 0x5055 0x5075 0x5074 0x5077 0x504f 0x500f 0x506f 0x506d 0x515c 0x5195 0x51f0 0x526a 0x526f 0x52d2 0x52d9 0x52d8 0x52d5 0x5310 0x530f 0x5319 0x533f 0x5340 0x533e 0x53c3 0x66fc 0x5546 0x556a 0x5566 0x5544 0x555e 0x5561 0x5543 0x554a 0x5531 0x5556 0x554f 0x5555 0x552f 0x5564 0x5538 0x552e 0x555c 0x552c 0x5563 0x5533 0x5541 0x5557 0x5708 0x570b 0x5709 0x57df 0x5805 0x580a 0x5806 0x57e0 0x57e4 0x57fa 0x5802 0x5835 0x57f7 0x57f9 0x5920 0x5962 0x5a36 0x5a41 0x5a49 0x5a66 0x5a6a 0x5a40 ) ; 0xb140 ... 0xb1fe (block 16 0x5a3c 0x5a62 0x5a5a 0x5a46 0x5a4a 0x5b70 0x5bc7 0x5bc5 0x5bc4 0x5bc2 0x5bbf 0x5bc6 0x5c09 0x5c08 0x5c07 0x5c60 0x5c5c 0x5c5d 0x5d07 0x5d06 0x5d0e 0x5d1b 0x5d16 0x5d22 0x5d11 0x5d29 0x5d14 0x5d19 0x5d24 0x5d27 0x5d17 0x5de2 0x5e38 0x5e36 0x5e33 0x5e37 0x5eb7 0x5eb8 0x5eb6 0x5eb5 0x5ebe 0x5f35 0x5f37 0x5f57 0x5f6c 0x5f69 0x5f6b 0x5f97 0x5f99 0x5f9e 0x5f98 0x5fa1 0x5fa0 0x5f9c 0x607f 0x60a3 0x6089 0x60a0 0x60a8 0x60cb 0x60b4 0x60e6 0x60bd -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x60c5 0x60bb 0x60b5 0x60dc 0x60bc 0x60d8 0x60d5 0x60c6 0x60df 0x60b8 0x60da 0x60c7 0x621a 0x621b 0x6248 0x63a0 0x63a7 0x6372 0x6396 0x63a2 0x63a5 0x6377 0x6367 0x6398 0x63aa 0x6371 0x63a9 0x6389 0x6383 0x639b 0x636b 0x63a8 0x6384 0x6388 0x6399 0x63a1 0x63ac 0x6392 0x638f 0x6380 0x637b 0x6369 0x6368 0x637a 0x655d 0x6556 0x6551 0x6559 0x6557 0x555f 0x654f 0x6558 0x6555 0x6554 0x659c 0x659b 0x65ac 0x65cf 0x65cb 0x65cc 0x65ce 0x665d 0x665a 0x6664 0x6668 0x6666 0x665e 0x66f9 0x52d7 0x671b 0x6881 0x68af 0x68a2 0x6893 0x68b5 0x687f 0x6876 0x68b1 0x68a7 0x6897 0x68b0 0x6883 0x68c4 0x68ad 0x6886 0x6885 0x6894 0x689d 0x68a8 0x689f 0x68a1 0x6882 0x6b32 0x6bba ) ; 0xb240 ... 0xb2fe (block 17 0x6beb 0x6bec 0x6c2b 0x6d8e 0x6dbc 0x6df3 0x6dd9 0x6db2 0x6de1 0x6dcc 0x6de4 0x6dfb 0x6dfa 0x6e05 0x6dc7 0x6dcb 0x6daf 0x6dd1 0x6dae 0x6dde 0x6df9 0x6db8 0x6df7 0x6df5 0x6dc5 0x6dd2 0x6e1a 0x6db5 0x6dda 0x6deb 0x6dd8 0x6dea 0x6df1 0x6dee 0x6de8 0x6dc6 0x6dc4 0x6daa 0x6dec 0x6dbf 0x6de6 0x70f9 0x7109 0x710a 0x70fd 0x70ef 0x723d 0x727d 0x7281 0x731c 0x731b 0x7316 0x7313 0x7319 0x7387 0x7405 0x740a 0x7403 0x7406 0x73fe 0x740d 0x74e0 0x74f6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x74f7 0x751c 0x7522 0x7565 0x7566 0x7562 0x7570 0x758f 0x75d4 0x75d5 0x75b5 0x75ca 0x75cd 0x768e 0x76d4 0x76d2 0x76db 0x7737 0x773e 0x773c 0x7736 0x7738 0x773a 0x786b 0x7843 0x784e 0x7965 0x7968 0x796d 0x79fb 0x7a92 0x7a95 0x7b20 0x7b28 0x7b1b 0x7b2c 0x7b26 0x7b19 0x7b1e 0x7b2e 0x7c92 0x7c97 0x7c95 0x7d46 0x7d43 0x7d71 0x7d2e 0x7d39 0x7d3c 0x7d40 0x7d30 0x7d33 0x7d44 0x7d2f 0x7d42 0x7d32 0x7d31 0x7f3d 0x7f9e 0x7f9a 0x7fcc 0x7fce 0x7fd2 0x801c 0x804a 0x8046 0x812f 0x8116 0x8123 0x812b 0x8129 0x8130 0x8124 0x8202 0x8235 0x8237 0x8236 0x8239 0x838e 0x839e 0x8398 0x8378 0x83a2 0x8396 0x83bd 0x83ab 0x8392 0x838a 0x8393 0x8389 0x83a0 0x8377 0x837b 0x837c ) ; 0xb340 ... 0xb3fe (block 18 0x8386 0x83a7 0x8655 0x5f6a 0x86c7 0x86c0 0x86b6 0x86c4 0x86b5 0x86c6 0x86cb 0x86b1 0x86af 0x86c9 0x8853 0x889e 0x8888 0x88ab 0x8892 0x8896 0x888d 0x888b 0x8993 0x898f 0x8a2a 0x8a1d 0x8a23 0x8a25 0x8a31 0x8a2d 0x8a1f 0x8a1b 0x8a22 0x8c49 0x8c5a 0x8ca9 0x8cac 0x8cab 0x8ca8 0x8caa 0x8ca7 0x8d67 0x8d66 0x8dbe 0x8dba 0x8edb 0x8edf 0x9019 0x900d 0x901a 0x9017 0x9023 0x901f 0x901d 0x9010 0x9015 0x901e 0x9020 0x900f 0x9022 0x9016 0x901b 0x9014 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x90e8 0x90ed 0x90fd 0x9157 0x91ce 0x91f5 0x91e6 0x91e3 0x91e7 0x91ed 0x91e9 0x9589 0x966a 0x9675 0x9673 0x9678 0x9670 0x9674 0x9676 0x9677 0x966c 0x96c0 0x96ea 0x96e9 0x7ae0 0x7adf 0x9802 0x9803 0x9b5a 0x9ce5 0x9e75 0x9e7f 0x9ea5 0x9ebb 0x50a2 0x508d 0x5085 0x5099 0x5091 0x5080 0x5096 0x5098 0x509a 0x6700 0x51f1 0x5272 0x5274 0x5275 0x5269 0x52de 0x52dd 0x52db 0x535a 0x53a5 0x557b 0x5580 0x55a7 0x557c 0x558a 0x559d 0x5598 0x5582 0x559c 0x55aa 0x5594 0x5587 0x558b 0x5583 0x55b3 0x55ae 0x559f 0x553e 0x55b2 0x559a 0x55bb 0x55ac 0x55b1 0x557e 0x5589 0x55ab 0x5599 0x570d 0x582f 0x582a 0x5834 0x5824 0x5830 0x5831 0x5821 0x581d 0x5820 0x58f9 0x58fa 0x5960 ) ; 0xb440 ... 0xb4fe (block 19 0x5a77 0x5a9a 0x5a7f 0x5a92 0x5a9b 0x5aa7 0x5b73 0x5b71 0x5bd2 0x5bcc 0x5bd3 0x5bd0 0x5c0a 0x5c0b 0x5c31 0x5d4c 0x5d50 0x5d34 0x5d47 0x5dfd 0x5e45 0x5e3d 0x5e40 0x5e43 0x5e7e 0x5eca 0x5ec1 0x5ec2 0x5ec4 0x5f3c 0x5f6d 0x5fa9 0x5faa 0x5fa8 0x60d1 0x60e1 0x60b2 0x60b6 0x60e0 0x611c 0x6123 0x60fa 0x6115 0x60f0 0x60fb 0x60f4 0x6168 0x60f1 0x610e 0x60f6 0x6109 0x6100 0x6112 0x621f 0x6249 0x63a3 0x638c 0x63cf 0x63c0 0x63e9 0x63c9 0x63c6 0x63cd -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x63d2 0x63e3 0x63d0 0x63e1 0x63d6 0x63ed 0x63ee 0x6376 0x63f4 0x63ea 0x63db 0x6452 0x63da 0x63f9 0x655e 0x6566 0x6562 0x6563 0x6591 0x6590 0x65af 0x666e 0x6670 0x6674 0x6676 0x666f 0x6691 0x667a 0x667e 0x6677 0x66fe 0x66ff 0x671f 0x671d 0x68fa 0x68d5 0x68e0 0x68d8 0x68d7 0x6905 0x68df 0x68f5 0x68ee 0x68e7 0x68f9 0x68d2 0x68f2 0x68e3 0x68cb 0x68cd 0x690d 0x6912 0x690e 0x68c9 0x68da 0x696e 0x68fb 0x6b3e 0x6b3a 0x6b3d 0x6b98 0x6b96 0x6bbc 0x6bef 0x6c2e 0x6c2f 0x6c2c 0x6e2f 0x6e38 0x6e54 0x6e21 0x6e32 0x6e67 0x6e4a 0x6e20 0x6e25 0x6e23 0x6e1b 0x6e5b 0x6e58 0x6e24 0x6e56 0x6e6e 0x6e2d 0x6e26 0x6e6f 0x6e34 0x6e4d 0x6e3a 0x6e2c 0x6e43 0x6e1d 0x6e3e 0x6ecb ) ; 0xb540 ... 0xb5fe (block 20 0x6e89 0x6e19 0x6e4e 0x6e63 0x6e44 0x6e72 0x6e69 0x6e5f 0x7119 0x711a 0x7126 0x7130 0x7121 0x7136 0x716e 0x711c 0x724c 0x7284 0x7280 0x7336 0x7325 0x7334 0x7329 0x743a 0x742a 0x7433 0x7422 0x7425 0x7435 0x7436 0x7434 0x742f 0x741b 0x7426 0x7428 0x7525 0x7526 0x756b 0x756a 0x75e2 0x75db 0x75e3 0x75d9 0x75d8 0x75de 0x75e0 0x767b 0x767c 0x7696 0x7693 0x76b4 0x76dc 0x774f 0x77ed 0x785d 0x786c 0x786f 0x7a0d 0x7a08 0x7a0b 0x7a05 0x7a00 0x7a98 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x7a97 0x7a96 0x7ae5 0x7ae3 0x7b49 0x7b56 0x7b46 0x7b50 0x7b52 0x7b54 0x7b4d 0x7b4b 0x7b4f 0x7b51 0x7c9f 0x7ca5 0x7d5e 0x7d50 0x7d68 0x7d55 0x7d2b 0x7d6e 0x7d72 0x7d61 0x7d66 0x7d62 0x7d70 0x7d73 0x5584 0x7fd4 0x7fd5 0x800b 0x8052 0x8085 0x8155 0x8154 0x814b 0x8151 0x814e 0x8139 0x8146 0x813e 0x814c 0x8153 0x8174 0x8212 0x821c 0x83e9 0x8403 0x83f8 0x840d 0x83e0 0x83c5 0x840b 0x83c1 0x83ef 0x83f1 0x83f4 0x8457 0x840a 0x83f0 0x840c 0x83cc 0x83fd 0x83f2 0x83ca 0x8438 0x840e 0x8404 0x83dc 0x8407 0x83d4 0x83df 0x865b 0x86df 0x86d9 0x86ed 0x86d4 0x86db 0x86e4 0x86d0 0x86de 0x8857 0x88c1 0x88c2 0x88b1 0x8983 0x8996 0x8a3b 0x8a60 0x8a55 0x8a5e 0x8a3c 0x8a41 ) ; 0xb640 ... 0xb6fe (block 21 0x8a54 0x8a5b 0x8a50 0x8a46 0x8a34 0x8a3a 0x8a36 0x8a56 0x8c61 0x8c82 0x8caf 0x8cbc 0x8cb3 0x8cbd 0x8cc1 0x8cbb 0x8cc0 0x8cb4 0x8cb7 0x8cb6 0x8cbf 0x8cb8 0x8d8a 0x8d85 0x8d81 0x8dce 0x8ddd 0x8dcb 0x8dda 0x8dd1 0x8dcc 0x8ddb 0x8dc6 0x8efb 0x8ef8 0x8efc 0x8f9c 0x902e 0x9035 0x9031 0x9038 0x9032 0x9036 0x9102 0x90f5 0x9109 0x90fe 0x9163 0x9165 0x91cf 0x9214 0x9215 0x9223 0x9209 0x921e 0x920d 0x9210 0x9207 0x9211 0x9594 0x958f 0x958b 0x9591 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x9593 0x9592 0x958e 0x968a 0x968e 0x968b 0x967d 0x9685 0x9686 0x968d 0x9672 0x9684 0x96c1 0x96c5 0x96c4 0x96c6 0x96c7 0x96ef 0x96f2 0x97cc 0x9805 0x9806 0x9808 0x98e7 0x98ea 0x98ef 0x98e9 0x98f2 0x98ed 0x99ae 0x99ad 0x9ec3 0x9ecd 0x9ed1 0x4e82 0x50ad 0x50b5 0x50b2 0x50b3 0x50c5 0x50be 0x50ac 0x50b7 0x50bb 0x50af 0x50c7 0x527f 0x5277 0x527d 0x52df 0x52e6 0x52e4 0x52e2 0x52e3 0x532f 0x55df 0x55e8 0x55d3 0x55e6 0x55ce 0x55dc 0x55c7 0x55d1 0x55e3 0x55e4 0x55ef 0x55da 0x55e1 0x55c5 0x55c6 0x55e5 0x55c9 0x5712 0x5713 0x585e 0x5851 0x5858 0x5857 0x585a 0x5854 0x586b 0x584c 0x586d 0x584a 0x5862 0x5852 0x584b 0x5967 0x5ac1 0x5ac9 0x5acc 0x5abe 0x5abd 0x5abc ) ; 0xb740 ... 0xb7fe (block 22 0x5ab3 0x5ac2 0x5ab2 0x5d69 0x5d6f 0x5e4c 0x5e79 0x5ec9 0x5ec8 0x5f12 0x5f59 0x5fac 0x5fae 0x611a 0x610f 0x6148 0x611f 0x60f3 0x611b 0x60f9 0x6101 0x6108 0x614e 0x614c 0x6144 0x614d 0x613e 0x6134 0x6127 0x610d 0x6106 0x6137 0x6221 0x6222 0x6413 0x643e 0x641e 0x642a 0x642d 0x643d 0x642c 0x640f 0x641c 0x6414 0x640d 0x6436 0x6416 0x6417 0x6406 0x656c 0x659f 0x65b0 0x6697 0x6689 0x6687 0x6688 0x6696 0x6684 0x6698 0x668d 0x6703 0x6994 0x696d -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x695a 0x6977 0x6960 0x6954 0x6975 0x6930 0x6982 0x694a 0x6968 0x696b 0x695e 0x6953 0x6979 0x6986 0x695d 0x6963 0x695b 0x6b47 0x6b72 0x6bc0 0x6bbf 0x6bd3 0x6bfd 0x6ea2 0x6eaf 0x6ed3 0x6eb6 0x6ec2 0x6e90 0x6e9d 0x6ec7 0x6ec5 0x6ea5 0x6e98 0x6ebc 0x6eba 0x6eab 0x6ed1 0x6e96 0x6e9c 0x6ec4 0x6ed4 0x6eaa 0x6ea7 0x6eb4 0x714e 0x7159 0x7169 0x7164 0x7149 0x7167 0x715c 0x716c 0x7166 0x714c 0x7165 0x715e 0x7146 0x7168 0x7156 0x723a 0x7252 0x7337 0x7345 0x733f 0x733e 0x746f 0x745a 0x7455 0x745f 0x745e 0x7441 0x743f 0x7459 0x745b 0x745c 0x7576 0x7578 0x7600 0x75f0 0x7601 0x75f2 0x75f1 0x75fa 0x75ff 0x75f4 0x75f3 0x76de 0x76df 0x775b 0x776b 0x7766 0x775e 0x7763 ) ; 0xb840 ... 0xb8fe (block 23 0x7779 0x776a 0x776c 0x775c 0x7765 0x7768 0x7762 0x77ee 0x788e 0x78b0 0x7897 0x7898 0x788c 0x7889 0x787c 0x7891 0x7893 0x787f 0x797a 0x797f 0x7981 0x842c 0x79bd 0x7a1c 0x7a1a 0x7a20 0x7a14 0x7a1f 0x7a1e 0x7a9f 0x7aa0 0x7b77 0x7bc0 0x7b60 0x7b6e 0x7b67 0x7cb1 0x7cb3 0x7cb5 0x7d93 0x7d79 0x7d91 0x7d81 0x7d8f 0x7d5b 0x7f6e 0x7f69 0x7f6a 0x7f72 0x7fa9 0x7fa8 0x7fa4 0x8056 0x8058 0x8086 0x8084 0x8171 0x8170 0x8178 0x8165 0x816e 0x8173 0x816b -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x8179 0x817a 0x8166 0x8205 0x8247 0x8482 0x8477 0x843d 0x8431 0x8475 0x8466 0x846b 0x8449 0x846c 0x845b 0x843c 0x8435 0x8461 0x8463 0x8469 0x846d 0x8446 0x865e 0x865c 0x865f 0x86f9 0x8713 0x8708 0x8707 0x8700 0x86fe 0x86fb 0x8702 0x8703 0x8706 0x870a 0x8859 0x88df 0x88d4 0x88d9 0x88dc 0x88d8 0x88dd 0x88e1 0x88ca 0x88d5 0x88d2 0x899c 0x89e3 0x8a6b 0x8a72 0x8a73 0x8a66 0x8a69 0x8a70 0x8a87 0x8a7c 0x8a63 0x8aa0 0x8a71 0x8a85 0x8a6d 0x8a62 0x8a6e 0x8a6c 0x8a79 0x8a7b 0x8a3e 0x8a68 0x8c62 0x8c8a 0x8c89 0x8cca 0x8cc7 0x8cc8 0x8cc4 0x8cb2 0x8cc3 0x8cc2 0x8cc5 0x8de1 0x8ddf 0x8de8 0x8def 0x8df3 0x8dfa 0x8dea 0x8de4 0x8de6 0x8eb2 0x8f03 0x8f09 0x8efe 0x8f0a ) ; 0xb940 ... 0xb9fe (block 24 0x8f9f 0x8fb2 0x904b 0x904a 0x9053 0x9042 0x9054 0x903c 0x9055 0x9050 0x9047 0x904f 0x904e 0x904d 0x9051 0x903e 0x9041 0x9112 0x9117 0x916c 0x916a 0x9169 0x91c9 0x9237 0x9257 0x9238 0x923d 0x9240 0x923e 0x925b 0x924b 0x9264 0x9251 0x9234 0x9249 0x924d 0x9245 0x9239 0x923f 0x925a 0x9598 0x9698 0x9694 0x9695 0x96cd 0x96cb 0x96c9 0x96ca 0x96f7 0x96fb 0x96f9 0x96f6 0x9756 0x9774 0x9776 0x9810 0x9811 0x9813 0x980a 0x9812 0x980c 0x98fc 0x98f4 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x98fd 0x98fe 0x99b3 0x99b1 0x99b4 0x9ae1 0x9ce9 0x9e82 0x9f0e 0x9f13 0x9f20 0x50e7 0x50ee 0x50e5 0x50d6 0x50ed 0x50da 0x50d5 0x50cf 0x50d1 0x50f1 0x50ce 0x50e9 0x5162 0x51f3 0x5283 0x5282 0x5331 0x53ad 0x55fe 0x5600 0x561b 0x5617 0x55fd 0x5614 0x5606 0x5609 0x560d 0x560e 0x55f7 0x5616 0x561f 0x5608 0x5610 0x55f6 0x5718 0x5716 0x5875 0x587e 0x5883 0x5893 0x588a 0x5879 0x5885 0x587d 0x58fd 0x5925 0x5922 0x5924 0x596a 0x5969 0x5ae1 0x5ae6 0x5ae9 0x5ad7 0x5ad6 0x5ad8 0x5ae3 0x5b75 0x5bde 0x5be7 0x5be1 0x5be5 0x5be6 0x5be8 0x5be2 0x5be4 0x5bdf 0x5c0d 0x5c62 0x5d84 0x5d87 0x5e5b 0x5e63 0x5e55 0x5e57 0x5e54 0x5ed3 0x5ed6 0x5f0a 0x5f46 0x5f70 0x5fb9 0x6147 ) ; 0xba40 ... 0xbafe (block 25 0x613f 0x614b 0x6177 0x6162 0x6163 0x615f 0x615a 0x6158 0x6175 0x622a 0x6487 0x6458 0x6454 0x64a4 0x6478 0x645f 0x647a 0x6451 0x6467 0x6434 0x646d 0x647b 0x6572 0x65a1 0x65d7 0x65d6 0x66a2 0x66a8 0x669d 0x699c 0x69a8 0x6995 0x69c1 0x69ae 0x69d3 0x69cb 0x699b 0x69b7 0x69bb 0x69ab 0x69b4 0x69d0 0x69cd 0x69ad 0x69cc 0x69a6 0x69c3 0x69a3 0x6b49 0x6b4c 0x6c33 0x6f33 0x6f14 0x6efe 0x6f13 0x6ef4 0x6f29 0x6f3e 0x6f20 0x6f2c 0x6f0f 0x6f02 0x6f22 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x6eff 0x6eef 0x6f06 0x6f31 0x6f38 0x6f32 0x6f23 0x6f15 0x6f2b 0x6f2f 0x6f88 0x6f2a 0x6eec 0x6f01 0x6ef2 0x6ecc 0x6ef7 0x7194 0x7199 0x717d 0x718a 0x7184 0x7192 0x723e 0x7292 0x7296 0x7344 0x7350 0x7464 0x7463 0x746a 0x7470 0x746d 0x7504 0x7591 0x7627 0x760d 0x760b 0x7609 0x7613 0x76e1 0x76e3 0x7784 0x777d 0x777f 0x7761 0x78c1 0x789f 0x78a7 0x78b3 0x78a9 0x78a3 0x798e 0x798f 0x798d 0x7a2e 0x7a31 0x7aaa 0x7aa9 0x7aed 0x7aef 0x7ba1 0x7b95 0x7b8b 0x7b75 0x7b97 0x7b9d 0x7b94 0x7b8f 0x7bb8 0x7b87 0x7b84 0x7cb9 0x7cbd 0x7cbe 0x7dbb 0x7db0 0x7d9c 0x7dbd 0x7dbe 0x7da0 0x7dca 0x7db4 0x7db2 0x7db1 0x7dba 0x7da2 0x7dbf 0x7db5 0x7db8 0x7dad 0x7dd2 0x7dc7 0x7dac ) ; 0xbb40 ... 0xbbfe (block 26 0x7f70 0x7fe0 0x7fe1 0x7fdf 0x805e 0x805a 0x8087 0x8150 0x8180 0x818f 0x8188 0x818a 0x817f 0x8182 0x81e7 0x81fa 0x8207 0x8214 0x821e 0x824b 0x84c9 0x84bf 0x84c6 0x84c4 0x8499 0x849e 0x84b2 0x849c 0x84cb 0x84b8 0x84c0 0x84d3 0x8490 0x84bc 0x84d1 0x84ca 0x873f 0x871c 0x873b 0x8722 0x8725 0x8734 0x8718 0x8755 0x8737 0x8729 0x88f3 0x8902 0x88f4 0x88f9 0x88f8 0x88fd 0x88e8 0x891a 0x88ef 0x8aa6 0x8a8c 0x8a9e 0x8aa3 0x8a8d 0x8aa1 0x8a93 0x8aa4 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x8aaa 0x8aa5 0x8aa8 0x8a98 0x8a91 0x8a9a 0x8aa7 0x8c6a 0x8c8d 0x8c8c 0x8cd3 0x8cd1 0x8cd2 0x8d6b 0x8d99 0x8d95 0x8dfc 0x8f14 0x8f12 0x8f15 0x8f13 0x8fa3 0x9060 0x9058 0x905c 0x9063 0x9059 0x905e 0x9062 0x905d 0x905b 0x9119 0x9118 0x911e 0x9175 0x9178 0x9177 0x9174 0x9278 0x9280 0x9285 0x9298 0x9296 0x927b 0x9293 0x929c 0x92a8 0x927c 0x9291 0x95a1 0x95a8 0x95a9 0x95a3 0x95a5 0x95a4 0x9699 0x969c 0x969b 0x96cc 0x96d2 0x9700 0x977c 0x9785 0x97f6 0x9817 0x9818 0x98af 0x98b1 0x9903 0x9905 0x990c 0x9909 0x99c1 0x9aaf 0x9ab0 0x9ae6 0x9b41 0x9b42 0x9cf4 0x9cf6 0x9cf3 0x9ebc 0x9f3b 0x9f4a 0x5104 0x5100 0x50fb 0x50f5 0x50f9 0x5102 0x5108 0x5109 0x5105 0x51dc ) ; 0xbc40 ... 0xbcfe (block 27 0x5287 0x5288 0x5289 0x528d 0x528a 0x52f0 0x53b2 0x562e 0x563b 0x5639 0x5632 0x563f 0x5634 0x5629 0x5653 0x564e 0x5657 0x5674 0x5636 0x562f 0x5630 0x5880 0x589f 0x589e 0x58b3 0x589c 0x58ae 0x58a9 0x58a6 0x596d 0x5b09 0x5afb 0x5b0b 0x5af5 0x5b0c 0x5b08 0x5bee 0x5bec 0x5be9 0x5beb 0x5c64 0x5c65 0x5d9d 0x5d94 0x5e62 0x5e5f 0x5e61 0x5ee2 0x5eda 0x5edf 0x5edd 0x5ee3 0x5ee0 0x5f48 0x5f71 0x5fb7 0x5fb5 0x6176 0x6167 0x616e 0x615d 0x6155 0x6182 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x617c 0x6170 0x616b 0x617e 0x61a7 0x6190 0x61ab 0x618e 0x61ac 0x619a 0x61a4 0x6194 0x61ae 0x622e 0x6469 0x646f 0x6479 0x649e 0x64b2 0x6488 0x6490 0x64b0 0x64a5 0x6493 0x6495 0x64a9 0x6492 0x64ae 0x64ad 0x64ab 0x649a 0x64ac 0x6499 0x64a2 0x64b3 0x6575 0x6577 0x6578 0x66ae 0x66ab 0x66b4 0x66b1 0x6a23 0x6a1f 0x69e8 0x6a01 0x6a1e 0x6a19 0x69fd 0x6a21 0x6a13 0x6a0a 0x69f3 0x6a02 0x6a05 0x69ed 0x6a11 0x6b50 0x6b4e 0x6ba4 0x6bc5 0x6bc6 0x6f3f 0x6f7c 0x6f84 0x6f51 0x6f66 0x6f54 0x6f86 0x6f6d 0x6f5b 0x6f78 0x6f6e 0x6f8e 0x6f7a 0x6f70 0x6f64 0x6f97 0x6f58 0x6ed5 0x6f6f 0x6f60 0x6f5f 0x719f 0x71ac 0x71b1 0x71a8 0x7256 0x729b 0x734e 0x7357 0x7469 0x748b 0x7483 ) ; 0xbd40 ... 0xbdfe (block 28 0x747e 0x7480 0x757f 0x7620 0x7629 0x761f 0x7624 0x7626 0x7621 0x7622 0x769a 0x76ba 0x76e4 0x778e 0x7787 0x778c 0x7791 0x778b 0x78cb 0x78c5 0x78ba 0x78ca 0x78be 0x78d5 0x78bc 0x78d0 0x7a3f 0x7a3c 0x7a40 0x7a3d 0x7a37 0x7a3b 0x7aaf 0x7aae 0x7bad 0x7bb1 0x7bc4 0x7bb4 0x7bc6 0x7bc7 0x7bc1 0x7ba0 0x7bcc 0x7cca 0x7de0 0x7df4 0x7def 0x7dfb 0x7dd8 0x7dec 0x7ddd 0x7de8 0x7de3 0x7dda 0x7dde 0x7de9 0x7d9e 0x7dd9 0x7df2 0x7df9 0x7f75 0x7f77 0x7faf -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x7fe9 0x8026 0x819b 0x819c 0x819d 0x81a0 0x819a 0x8198 0x8517 0x853d 0x851a 0x84ee 0x852c 0x852d 0x8513 0x8511 0x8523 0x8521 0x8514 0x84ec 0x8525 0x84ff 0x8506 0x8782 0x8774 0x8776 0x8760 0x8766 0x8778 0x8768 0x8759 0x8757 0x874c 0x8753 0x885b 0x885d 0x8910 0x8907 0x8912 0x8913 0x8915 0x890a 0x8abc 0x8ad2 0x8ac7 0x8ac4 0x8a95 0x8acb 0x8af8 0x8ab2 0x8ac9 0x8ac2 0x8abf 0x8ab0 0x8ad6 0x8acd 0x8ab6 0x8ab9 0x8adb 0x8c4c 0x8c4e 0x8c6c 0x8ce0 0x8cde 0x8ce6 0x8ce4 0x8cec 0x8ced 0x8ce2 0x8ce3 0x8cdc 0x8cea 0x8ce1 0x8d6d 0x8d9f 0x8da3 0x8e2b 0x8e10 0x8e1d 0x8e22 0x8e0f 0x8e29 0x8e1f 0x8e21 0x8e1e 0x8eba 0x8f1d 0x8f1b 0x8f1f 0x8f29 0x8f26 0x8f2a 0x8f1c 0x8f1e ) ; 0xbe40 ... 0xbefe (block 29 0x8f25 0x9069 0x906e 0x9068 0x906d 0x9077 0x9130 0x912d 0x9127 0x9131 0x9187 0x9189 0x918b 0x9183 0x92c5 0x92bb 0x92b7 0x92ea 0x92ac 0x92e4 0x92c1 0x92b3 0x92bc 0x92d2 0x92c7 0x92f0 0x92b2 0x95ad 0x95b1 0x9704 0x9706 0x9707 0x9709 0x9760 0x978d 0x978b 0x978f 0x9821 0x982b 0x981c 0x98b3 0x990a 0x9913 0x9912 0x9918 0x99dd 0x99d0 0x99df 0x99db 0x99d1 0x99d5 0x99d2 0x99d9 0x9ab7 0x9aee 0x9aef 0x9b27 0x9b45 0x9b44 0x9b77 0x9b6f 0x9d06 0x9d09 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x9d03 0x9ea9 0x9ebe 0x9ece 0x58a8 0x9f52 0x5112 0x5118 0x5114 0x5110 0x5115 0x5180 0x51aa 0x51dd 0x5291 0x5293 0x52f3 0x5659 0x566b 0x5679 0x5669 0x5664 0x5678 0x566a 0x5668 0x5665 0x5671 0x566f 0x566c 0x5662 0x5676 0x58c1 0x58be 0x58c7 0x58c5 0x596e 0x5b1d 0x5b34 0x5b78 0x5bf0 0x5c0e 0x5f4a 0x61b2 0x6191 0x61a9 0x618a 0x61cd 0x61b6 0x61be 0x61ca 0x61c8 0x6230 0x64c5 0x64c1 0x64cb 0x64bb 0x64bc 0x64da 0x64c4 0x64c7 0x64c2 0x64cd 0x64bf 0x64d2 0x64d4 0x64be 0x6574 0x66c6 0x66c9 0x66b9 0x66c4 0x66c7 0x66b8 0x6a3d 0x6a38 0x6a3a 0x6a59 0x6a6b 0x6a58 0x6a39 0x6a44 0x6a62 0x6a61 0x6a4b 0x6a47 0x6a35 0x6a5f 0x6a48 0x6b59 0x6b77 0x6c05 0x6fc2 0x6fb1 0x6fa1 ) ; 0xbf40 ... 0xbffe (block 30 0x6fc3 0x6fa4 0x6fc1 0x6fa7 0x6fb3 0x6fc0 0x6fb9 0x6fb6 0x6fa6 0x6fa0 0x6fb4 0x71be 0x71c9 0x71d0 0x71d2 0x71c8 0x71d5 0x71b9 0x71ce 0x71d9 0x71dc 0x71c3 0x71c4 0x7368 0x749c 0x74a3 0x7498 0x749f 0x749e 0x74e2 0x750c 0x750d 0x7634 0x7638 0x763a 0x76e7 0x76e5 0x77a0 0x779e 0x779f 0x77a5 0x78e8 0x78da 0x78ec 0x78e7 0x79a6 0x7a4d 0x7a4e 0x7a46 0x7a4c 0x7a4b 0x7aba 0x7bd9 0x7c11 0x7bc9 0x7be4 0x7bdb 0x7be1 0x7be9 0x7be6 0x7cd5 0x7cd6 0x7e0a -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x7e11 0x7e08 0x7e1b 0x7e23 0x7e1e 0x7e1d 0x7e09 0x7e10 0x7f79 0x7fb2 0x7ff0 0x7ff1 0x7fee 0x8028 0x81b3 0x81a9 0x81a8 0x81fb 0x8208 0x8258 0x8259 0x854a 0x8559 0x8548 0x8568 0x8569 0x8543 0x8549 0x856d 0x856a 0x855e 0x8783 0x879f 0x879e 0x87a2 0x878d 0x8861 0x892a 0x8932 0x8925 0x892b 0x8921 0x89aa 0x89a6 0x8ae6 0x8afa 0x8aeb 0x8af1 0x8b00 0x8adc 0x8ae7 0x8aee 0x8afe 0x8b01 0x8b02 0x8af7 0x8aed 0x8af3 0x8af6 0x8afc 0x8c6b 0x8c6d 0x8c93 0x8cf4 0x8e44 0x8e31 0x8e34 0x8e42 0x8e39 0x8e35 0x8f3b 0x8f2f 0x8f38 0x8f33 0x8fa8 0x8fa6 0x9075 0x9074 0x9078 0x9072 0x907c 0x907a 0x9134 0x9192 0x9320 0x9336 0x92f8 0x9333 0x932f 0x9322 0x92fc 0x932b 0x9304 0x931a ) ; 0xc040 ... 0xc0fe (block 31 0x9310 0x9326 0x9321 0x9315 0x932e 0x9319 0x95bb 0x96a7 0x96a8 0x96aa 0x96d5 0x970e 0x9711 0x9716 0x970d 0x9713 0x970f 0x975b 0x975c 0x9766 0x9798 0x9830 0x9838 0x983b 0x9837 0x982d 0x9839 0x9824 0x9910 0x9928 0x991e 0x991b 0x9921 0x991a 0x99ed 0x99e2 0x99f1 0x9ab8 0x9abc 0x9afb 0x9aed 0x9b28 0x9b91 0x9d15 0x9d23 0x9d26 0x9d28 0x9d12 0x9d1b 0x9ed8 0x9ed4 0x9f8d 0x9f9c 0x512a 0x511f 0x5121 0x5132 0x52f5 0x568e 0x5680 0x5690 0x5685 0x5687 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x568f 0x58d5 0x58d3 0x58d1 0x58ce 0x5b30 0x5b2a 0x5b24 0x5b7a 0x5c37 0x5c68 0x5dbc 0x5dba 0x5dbd 0x5db8 0x5e6b 0x5f4c 0x5fbd 0x61c9 0x61c2 0x61c7 0x61e6 0x61cb 0x6232 0x6234 0x64ce 0x64ca 0x64d8 0x64e0 0x64f0 0x64e6 0x64ec 0x64f1 0x64e2 0x64ed 0x6582 0x6583 0x66d9 0x66d6 0x6a80 0x6a94 0x6a84 0x6aa2 0x6a9c 0x6adb 0x6aa3 0x6a7e 0x6a97 0x6a90 0x6aa0 0x6b5c 0x6bae 0x6bda 0x6c08 0x6fd8 0x6ff1 0x6fdf 0x6fe0 0x6fdb 0x6fe4 0x6feb 0x6fef 0x6f80 0x6fec 0x6fe1 0x6fe9 0x6fd5 0x6fee 0x6ff0 0x71e7 0x71df 0x71ee 0x71e6 0x71e5 0x71ed 0x71ec 0x71f4 0x71e0 0x7235 0x7246 0x7370 0x7372 0x74a9 0x74b0 0x74a6 0x74a8 0x7646 0x7642 0x764c 0x76ea 0x77b3 0x77aa 0x77b0 0x77ac ) ; 0xc140 ... 0xc1fe (block 32 0x77a7 0x77ad 0x77ef 0x78f7 0x78fa 0x78f4 0x78ef 0x7901 0x79a7 0x79aa 0x7a57 0x7abf 0x7c07 0x7c0d 0x7bfe 0x7bf7 0x7c0c 0x7be0 0x7ce0 0x7cdc 0x7cde 0x7ce2 0x7cdf 0x7cd9 0x7cdd 0x7e2e 0x7e3e 0x7e46 0x7e37 0x7e32 0x7e43 0x7e2b 0x7e3d 0x7e31 0x7e45 0x7e41 0x7e34 0x7e39 0x7e48 0x7e35 0x7e3f 0x7e2f 0x7f44 0x7ff3 0x7ffc 0x8071 0x8072 0x8070 0x806f 0x8073 0x81c6 0x81c3 0x81ba 0x81c2 0x81c0 0x81bf 0x81bd 0x81c9 0x81be 0x81e8 0x8209 0x8271 0x85aa -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x8584 0x857e 0x859c 0x8591 0x8594 0x85af 0x859b 0x8587 0x85a8 0x858a 0x8667 0x87c0 0x87d1 0x87b3 0x87d2 0x87c6 0x87ab 0x87bb 0x87ba 0x87c8 0x87cb 0x893b 0x8936 0x8944 0x8938 0x893d 0x89ac 0x8b0e 0x8b17 0x8b19 0x8b1b 0x8b0a 0x8b20 0x8b1d 0x8b04 0x8b10 0x8c41 0x8c3f 0x8c73 0x8cfa 0x8cfd 0x8cfc 0x8cf8 0x8cfb 0x8da8 0x8e49 0x8e4b 0x8e48 0x8e4a 0x8f44 0x8f3e 0x8f42 0x8f45 0x8f3f 0x907f 0x907d 0x9084 0x9081 0x9082 0x9080 0x9139 0x91a3 0x919e 0x919c 0x934d 0x9382 0x9328 0x9375 0x934a 0x9365 0x934b 0x9318 0x937e 0x936c 0x935b 0x9370 0x935a 0x9354 0x95ca 0x95cb 0x95cc 0x95c8 0x95c6 0x96b1 0x96b8 0x96d6 0x971c 0x971e 0x97a0 0x97d3 0x9846 0x98b6 0x9935 0x9a01 ) ; 0xc240 ... 0xc2fe (block 33 0x99ff 0x9bae 0x9bab 0x9baa 0x9bad 0x9d3b 0x9d3f 0x9e8b 0x9ecf 0x9ede 0x9edc 0x9edd 0x9edb 0x9f3e 0x9f4b 0x53e2 0x5695 0x56ae 0x58d9 0x58d8 0x5b38 0x5f5d 0x61e3 0x6233 0x64f4 0x64f2 0x64fe 0x6506 0x64fa 0x64fb 0x64f7 0x65b7 0x66dc 0x6726 0x6ab3 0x6aac 0x6ac3 0x6abb 0x6ab8 0x6ac2 0x6aae 0x6aaf 0x6b5f 0x6b78 0x6baf 0x7009 0x700b 0x6ffe 0x7006 0x6ffa 0x7011 0x700f 0x71fb 0x71fc 0x71fe 0x71f8 0x7377 0x7375 0x74a7 0x74bf 0x7515 0x7656 0x7658 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x7652 0x77bd 0x77bf 0x77bb 0x77bc 0x790e 0x79ae 0x7a61 0x7a62 0x7a60 0x7ac4 0x7ac5 0x7c2b 0x7c27 0x7c2a 0x7c1e 0x7c23 0x7c21 0x7ce7 0x7e54 0x7e55 0x7e5e 0x7e5a 0x7e61 0x7e52 0x7e59 0x7f48 0x7ff9 0x7ffb 0x8077 0x8076 0x81cd 0x81cf 0x820a 0x85cf 0x85a9 0x85cd 0x85d0 0x85c9 0x85b0 0x85ba 0x85b9 0x85a6 0x87ef 0x87ec 0x87f2 0x87e0 0x8986 0x89b2 0x89f4 0x8b28 0x8b39 0x8b2c 0x8b2b 0x8c50 0x8d05 0x8e59 0x8e63 0x8e66 0x8e64 0x8e5f 0x8e55 0x8ec0 0x8f49 0x8f4d 0x9087 0x9083 0x9088 0x91ab 0x91ac 0x91d0 0x9394 0x938a 0x9396 0x93a2 0x93b3 0x93ae 0x93ac 0x93b0 0x9398 0x939a 0x9397 0x95d4 0x95d6 0x95d0 0x95d5 0x96e2 0x96dc 0x96d9 0x96db 0x96de 0x9724 0x97a3 0x97a6 ) ; 0xc340 ... 0xc3fe (block 34 0x97ad 0x97f9 0x984d 0x984f 0x984c 0x984e 0x9853 0x98ba 0x993e 0x993f 0x993d 0x992e 0x99a5 0x9a0e 0x9ac1 0x9b03 0x9b06 0x9b4f 0x9b4e 0x9b4d 0x9bca 0x9bc9 0x9bfd 0x9bc8 0x9bc0 0x9d51 0x9d5d 0x9d60 0x9ee0 0x9f15 0x9f2c 0x5133 0x56a5 0x58de 0x58df 0x58e2 0x5bf5 0x9f90 0x5eec 0x61f2 0x61f7 0x61f6 0x61f5 0x6500 0x650f 0x66e0 0x66dd 0x6ae5 0x6add 0x6ada 0x6ad3 0x701b 0x701f 0x7028 0x701a 0x701d 0x7015 0x7018 0x7206 0x720d 0x7258 0x72a2 0x7378 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x737a 0x74bd 0x74ca 0x74e3 0x7587 0x7586 0x765f 0x7661 0x77c7 0x7919 0x79b1 0x7a6b 0x7a69 0x7c3e 0x7c3f 0x7c38 0x7c3d 0x7c37 0x7c40 0x7e6b 0x7e6d 0x7e79 0x7e69 0x7e6a 0x7f85 0x7e73 0x7fb6 0x7fb9 0x7fb8 0x81d8 0x85e9 0x85dd 0x85ea 0x85d5 0x85e4 0x85e5 0x85f7 0x87fb 0x8805 0x880d 0x87f9 0x87fe 0x8960 0x895f 0x8956 0x895e 0x8b41 0x8b5c 0x8b58 0x8b49 0x8b5a 0x8b4e 0x8b4f 0x8b46 0x8b59 0x8d08 0x8d0a 0x8e7c 0x8e72 0x8e87 0x8e76 0x8e6c 0x8e7a 0x8e74 0x8f54 0x8f4e 0x8fad 0x908a 0x908b 0x91b1 0x91ae 0x93e1 0x93d1 0x93df 0x93c3 0x93c8 0x93dc 0x93dd 0x93d6 0x93e2 0x93cd 0x93d8 0x93e4 0x93d7 0x93e8 0x95dc 0x96b4 0x96e3 0x972a 0x9727 0x9761 0x97dc 0x97fb 0x985e ) ; 0xc440 ... 0xc4fe (block 35 0x9858 0x985b 0x98bc 0x9945 0x9949 0x9a16 0x9a19 0x9b0d 0x9be8 0x9be7 0x9bd6 0x9bdb 0x9d89 0x9d61 0x9d72 0x9d6a 0x9d6c 0x9e92 0x9e97 0x9e93 0x9eb4 0x52f8 0x56a8 0x56b7 0x56b6 0x56b4 0x56bc 0x58e4 0x5b40 0x5b43 0x5b7d 0x5bf6 0x5dc9 0x61f8 0x61fa 0x6518 0x6514 0x6519 0x66e6 0x6727 0x6aec 0x703e 0x7030 0x7032 0x7210 0x737b 0x74cf 0x7662 0x7665 0x7926 0x792a 0x792c 0x792b 0x7ac7 0x7af6 0x7c4c 0x7c43 0x7c4d 0x7cef 0x7cf0 0x8fae 0x7e7d 0x7e7c -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x7e82 0x7f4c 0x8000 0x81da 0x8266 0x85fb 0x85f9 0x8611 0x85fa 0x8606 0x860b 0x8607 0x860a 0x8814 0x8815 0x8964 0x89ba 0x89f8 0x8b70 0x8b6c 0x8b66 0x8b6f 0x8b5f 0x8b6b 0x8d0f 0x8d0d 0x8e89 0x8e81 0x8e85 0x8e82 0x91b4 0x91cb 0x9418 0x9403 0x93fd 0x95e1 0x9730 0x98c4 0x9952 0x9951 0x99a8 0x9a2b 0x9a30 0x9a37 0x9a35 0x9c13 0x9c0d 0x9e79 0x9eb5 0x9ee8 0x9f2f 0x9f5f 0x9f63 0x9f61 0x5137 0x5138 0x56c1 0x56c0 0x56c2 0x5914 0x5c6c 0x5dcd 0x61fc 0x61fe 0x651d 0x651c 0x6595 0x66e9 0x6afb 0x6b04 0x6afa 0x6bb2 0x704c 0x721b 0x72a7 0x74d6 0x74d4 0x7669 0x77d3 0x7c50 0x7e8f 0x7e8c 0x7fbc 0x8617 0x862d 0x861a 0x8823 0x8822 0x8821 0x881f 0x896a 0x896c 0x89bd 0x8b74 ) ; 0xc540 ... 0xc5fe (block 36 0x8b77 0x8b7d 0x8d13 0x8e8a 0x8e8d 0x8e8b 0x8f5f 0x8faf 0x91ba 0x942e 0x9433 0x9435 0x943a 0x9438 0x9432 0x942b 0x95e2 0x9738 0x9739 0x9732 0x97ff 0x9867 0x9865 0x9957 0x9a45 0x9a43 0x9a40 0x9a3e 0x9acf 0x9b54 0x9b51 0x9c2d 0x9c25 0x9daf 0x9db4 0x9dc2 0x9db8 0x9e9d 0x9eef 0x9f19 0x9f5c 0x9f66 0x9f67 0x513c 0x513b 0x56c8 0x56ca 0x56c9 0x5b7f 0x5dd4 0x5dd2 0x5f4e 0x61ff 0x6524 0x6b0a 0x6b61 0x7051 0x7058 0x7380 0x74e4 0x758a 0x766e 0x766c -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x79b3 0x7c60 0x7c5f 0x807e 0x807d 0x81df 0x8972 0x896f 0x89fc 0x8b80 0x8d16 0x8d17 0x8e91 0x8e93 0x8f61 0x9148 0x9444 0x9451 0x9452 0x973d 0x973e 0x97c3 0x97c1 0x986b 0x9955 0x9a55 0x9a4d 0x9ad2 0x9b1a 0x9c49 0x9c31 0x9c3e 0x9c3b 0x9dd3 0x9dd7 0x9f34 0x9f6c 0x9f6a 0x9f94 0x56cc 0x5dd6 0x6200 0x6523 0x652b 0x652a 0x66ec 0x6b10 0x74da 0x7aca 0x7c64 0x7c63 0x7c65 0x7e93 0x7e96 0x7e94 0x81e2 0x8638 0x863f 0x8831 0x8b8a 0x9090 0x908f 0x9463 0x9460 0x9464 0x9768 0x986f 0x995c 0x9a5a 0x9a5b 0x9a57 0x9ad3 0x9ad4 0x9ad1 0x9c54 0x9c57 0x9c56 0x9de5 0x9e9f 0x9ef4 0x56d1 0x58e9 0x652c 0x705e 0x7671 0x7672 0x77d7 0x7f50 0x7f88 0x8836 0x8839 0x8862 0x8b93 0x8b92 ) ; 0xc640 ... 0xc6fe (block 37 0x8b96 0x8277 0x8d1b 0x91c0 0x946a 0x9742 0x9748 0x9744 0x97c6 0x9870 0x9a5f 0x9b22 0x9b58 0x9c5f 0x9df9 0x9dfa 0x9e7c 0x9e7d 0x9f07 0x9f77 0x9f72 0x5ef3 0x6b16 0x7063 0x7c6c 0x7c6e 0x883b 0x89c0 0x8ea1 0x91c1 0x9472 0x9470 0x9871 0x995e 0x9ad6 0x9b23 0x9ecc 0x7064 0x77da 0x8b9a 0x9477 0x97c9 0x9a62 0x9a65 0x7e9c 0x8b9c 0x8eaa 0x91c5 0x947d 0x947e 0x947c 0x9c77 0x9c78 0x9ef7 0x8c54 0x947f 0x9e1a 0x7228 0x9a6a 0x9b31 0x9e1b 0x9e1e 0x7c72 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x30fe 0x309d 0x309e 0x3005 0x3041 0x3042 0x3043 0x3044 0x3045 0x3046 0x3047 0x3048 0x3049 0x304a 0x304b 0x304c 0x304d 0x304e 0x304f 0x3050 0x3051 0x3052 0x3053 0x3054 0x3055 0x3056 0x3057 0x3058 0x3059 0x305a 0x305b 0x305c 0x305d 0x305e 0x305f 0x3060 0x3061 0x3062 0x3063 0x3064 0x3065 0x3066 0x3067 0x3068 0x3069 0x306a 0x306b 0x306c 0x306d 0x306e 0x306f 0x3070 0x3071 0x3072 0x3073 0x3074 0x3075 0x3076 0x3077 0x3078 0x3079 0x307a 0x307b 0x307c 0x307d 0x307e 0x307f 0x3080 0x3081 0x3082 0x3083 0x3084 0x3085 0x3086 0x3087 0x3088 0x3089 0x308a 0x308b 0x308c 0x308d 0x308e 0x308f 0x3090 0x3091 0x3092 0x3093 0x30a1 0x30a2 0x30a3 0x30a4 0x30a5 0x30a6 0x30a7 ) ; 0xc740 ... 0xc7fe (block 38 0x30a8 0x30a9 0x30aa 0x30ab 0x30ac 0x30ad 0x30ae 0x30af 0x30b0 0x30b1 0x30b2 0x30b3 0x30b4 0x30b5 0x30b6 0x30b7 0x30b8 0x30b9 0x30ba 0x30bb 0x30bc 0x30bd 0x30be 0x30bf 0x30c0 0x30c1 0x30c2 0x30c3 0x30c4 0x30c5 0x30c6 0x30c7 0x30c8 0x30c9 0x30ca 0x30cb 0x30cc 0x30cd 0x30ce 0x30cf 0x30d0 0x30d1 0x30d2 0x30d3 0x30d4 0x30d5 0x30d6 0x30d7 0x30d8 0x30d9 0x30da 0x30db 0x30dc 0x30dd 0x30de 0x30df 0x30e0 0x30e1 0x30e2 0x30e3 0x30e4 0x30e5 0x30e6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x30e7 0x30e8 0x30e9 0x30ea 0x30eb 0x30ec 0x30ed 0x30ee 0x30ef 0x30f0 0x30f1 0x30f2 0x30f3 0x30f4 0x30f5 0x30f6 0x0414 0x0415 0x0401 0x0416 0x0417 0x0418 0x0419 0x041a 0x041b 0x041c 0x0423 0x0424 0x0425 0x0426 0x0427 0x0428 0x0429 0x042a 0x042b 0x042c 0x042d 0x042e 0x042f 0x0430 0x0431 0x0432 0x0433 0x0434 0x0435 0x0451 0x0436 0x0437 0x0438 0x0439 0x043a 0x043b 0x043c 0x043d 0x043e 0x043f 0x0440 0x0441 0x0442 0x0443 0x0444 0x0445 0x0446 0x0447 0x0448 0x0449 0x044a 0x044b 0x044c 0x044d 0x044e 0x044f 0x2460 0x2461 0x2462 0x2463 0x2464 0x2465 0x2466 0x2467 0x2468 0x2469 0x2474 0x2475 0x2476 0x2477 0x2478 0x2479 0x247a 0x247b 0x247c 0x247d -1 -1 ) ; 0xc840 ... 0xc8fe (block 39 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0xc940 ... 0xc9fe (block 40 0x4e42 0x4e5c 0x51f5 0x531a 0x5382 0x4e07 0x4e0c 0x4e47 0x4e8d 0x56d7 0xfa0c 0x5c6e 0x5f73 0x4e0f 0x5187 0x4e0e 0x4e2e 0x4e93 0x4ec2 0x4ec9 0x4ec8 0x5198 0x52fc 0x536c 0x53b9 0x5720 0x5903 0x592c 0x5c10 0x5dff 0x65e1 0x6bb3 0x6bcc 0x6c14 0x723f 0x4e31 0x4e3c 0x4ee8 0x4edc 0x4ee9 0x4ee1 0x4edd 0x4eda 0x520c 0x531c 0x534c 0x5722 0x5723 0x5917 0x592f 0x5b81 0x5b84 0x5c12 0x5c3b 0x5c74 0x5c73 0x5e04 0x5e80 0x5e82 0x5fc9 0x6209 0x6250 0x6c15 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x6c36 0x6c43 0x6c3f 0x6c3b 0x72ae 0x72b0 0x738a 0x79b8 0x808a 0x961e 0x4f0e 0x4f18 0x4f2c 0x4ef5 0x4f14 0x4ef1 0x4f00 0x4ef7 0x4f08 0x4f1d 0x4f02 0x4f05 0x4f22 0x4f13 0x4f04 0x4ef4 0x4f12 0x51b1 0x5213 0x5209 0x5210 0x52a6 0x5322 0x531f 0x534d 0x538a 0x5407 0x56e1 0x56df 0x572e 0x572a 0x5734 0x593c 0x5980 0x597c 0x5985 0x597b 0x597e 0x5977 0x597f 0x5b56 0x5c15 0x5c25 0x5c7c 0x5c7a 0x5c7b 0x5c7e 0x5ddf 0x5e75 0x5e84 0x5f02 0x5f1a 0x5f74 0x5fd5 0x5fd4 0x5fcf 0x625c 0x625e 0x6264 0x6261 0x6266 0x6262 0x6259 0x6260 0x625a 0x6265 0x65ef 0x65ee 0x673e 0x6739 0x6738 0x673b 0x673a 0x673f 0x673c 0x6733 0x6c18 0x6c46 0x6c52 0x6c5c 0x6c4f 0x6c4a 0x6c54 0x6c4b ) ; 0xca40 ... 0xcafe (block 41 0x6c4c 0x7071 0x725e 0x72b4 0x72b5 0x738e 0x752a 0x767f 0x7a75 0x7f51 0x8278 0x827c 0x8280 0x827d 0x827f 0x864d 0x897e 0x9099 0x9097 0x9098 0x909b 0x9094 0x9622 0x9624 0x9620 0x9623 0x4f56 0x4f3b 0x4f62 0x4f49 0x4f53 0x4f64 0x4f3e 0x4f67 0x4f52 0x4f5f 0x4f41 0x4f58 0x4f2d 0x4f33 0x4f3f 0x4f61 0x518f 0x51b9 0x521c 0x521e 0x5221 0x52ad 0x52ae 0x5309 0x5363 0x5372 0x538e 0x538f 0x5430 0x5437 0x542a 0x5454 0x5445 0x5419 0x541c 0x5425 0x5418 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x543d 0x544f 0x5441 0x5428 0x5424 0x5447 0x56ee 0x56e7 0x56e5 0x5741 0x5745 0x574c 0x5749 0x574b 0x5752 0x5906 0x5940 0x59a6 0x5998 0x59a0 0x5997 0x598e 0x59a2 0x5990 0x598f 0x59a7 0x59a1 0x5b8e 0x5b92 0x5c28 0x5c2a 0x5c8d 0x5c8f 0x5c88 0x5c8b 0x5c89 0x5c92 0x5c8a 0x5c86 0x5c93 0x5c95 0x5de0 0x5e0a 0x5e0e 0x5e8b 0x5e89 0x5e8c 0x5e88 0x5e8d 0x5f05 0x5f1d 0x5f78 0x5f76 0x5fd2 0x5fd1 0x5fd0 0x5fed 0x5fe8 0x5fee 0x5ff3 0x5fe1 0x5fe4 0x5fe3 0x5ffa 0x5fef 0x5ff7 0x5ffb 0x6000 0x5ff4 0x623a 0x6283 0x628c 0x628e 0x628f 0x6294 0x6287 0x6271 0x627b 0x627a 0x6270 0x6281 0x6288 0x6277 0x627d 0x6272 0x6274 0x6537 0x65f0 0x65f4 0x65f3 0x65f2 0x65f5 0x6745 0x6747 ) ; 0xcb40 ... 0xcbfe (block 42 0x6759 0x6755 0x674c 0x6748 0x675d 0x674d 0x675a 0x674b 0x6bd0 0x6c19 0x6c1a 0x6c78 0x6c67 0x6c6b 0x6c84 0x6c8b 0x6c8f 0x6c71 0x6c6f 0x6c69 0x6c9a 0x6c6d 0x6c87 0x6c95 0x6c9c 0x6c66 0x6c73 0x6c65 0x6c7b 0x6c8e 0x7074 0x707a 0x7263 0x72bf 0x72bd 0x72c3 0x72c6 0x72c1 0x72ba 0x72c5 0x7395 0x7397 0x7393 0x7394 0x7392 0x753a 0x7539 0x7594 0x7595 0x7681 0x793d 0x8034 0x8095 0x8099 0x8090 0x8092 0x809c 0x8290 0x828f 0x8285 0x828e 0x8291 0x8293 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x828a 0x8283 0x8284 0x8c78 0x8fc9 0x8fbf 0x909f 0x90a1 0x90a5 0x909e 0x90a7 0x90a0 0x9630 0x9628 0x962f 0x962d 0x4e33 0x4f98 0x4f7c 0x4f85 0x4f7d 0x4f80 0x4f87 0x4f76 0x4f74 0x4f89 0x4f84 0x4f77 0x4f4c 0x4f97 0x4f6a 0x4f9a 0x4f79 0x4f81 0x4f78 0x4f90 0x4f9c 0x4f94 0x4f9e 0x4f92 0x4f82 0x4f95 0x4f6b 0x4f6e 0x519e 0x51bc 0x51be 0x5235 0x5232 0x5233 0x5246 0x5231 0x52bc 0x530a 0x530b 0x533c 0x5392 0x5394 0x5487 0x547f 0x5481 0x5491 0x5482 0x5488 0x546b 0x547a 0x547e 0x5465 0x546c 0x5474 0x5466 0x548d 0x546f 0x5461 0x5460 0x5498 0x5463 0x5467 0x5464 0x56f7 0x56f9 0x576f 0x5772 0x576d 0x576b 0x5771 0x5770 0x5776 0x5780 0x5775 0x577b 0x5773 0x5774 0x5762 ) ; 0xcc40 ... 0xccfe (block 43 0x5768 0x577d 0x590c 0x5945 0x59b5 0x59ba 0x59cf 0x59ce 0x59b2 0x59cc 0x59c1 0x59b6 0x59bc 0x59c3 0x59d6 0x59b1 0x59bd 0x59c0 0x59c8 0x59b4 0x59c7 0x5b62 0x5b65 0x5b93 0x5b95 0x5c44 0x5c47 0x5cae 0x5ca4 0x5ca0 0x5cb5 0x5caf 0x5ca8 0x5cac 0x5c9f 0x5ca3 0x5cad 0x5ca2 0x5caa 0x5ca7 0x5c9d 0x5ca5 0x5cb6 0x5cb0 0x5ca6 0x5e17 0x5e14 0x5e19 0x5f28 0x5f22 0x5f23 0x5f24 0x5f54 0x5f82 0x5f7e 0x5f7d 0x5fde 0x5fe5 0x602d 0x6026 0x6019 0x6032 0x600b -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x6034 0x600a 0x6017 0x6033 0x601a 0x601e 0x602c 0x6022 0x600d 0x6010 0x602e 0x6013 0x6011 0x600c 0x6009 0x601c 0x6214 0x623d 0x62ad 0x62b4 0x62d1 0x62be 0x62aa 0x62b6 0x62ca 0x62ae 0x62b3 0x62af 0x62bb 0x62a9 0x62b0 0x62b8 0x653d 0x65a8 0x65bb 0x6609 0x65fc 0x6604 0x6612 0x6608 0x65fb 0x6603 0x660b 0x660d 0x6605 0x65fd 0x6611 0x6610 0x66f6 0x670a 0x6785 0x676c 0x678e 0x6792 0x6776 0x677b 0x6798 0x6786 0x6784 0x6774 0x678d 0x678c 0x677a 0x679f 0x6791 0x6799 0x6783 0x677d 0x6781 0x6778 0x6779 0x6794 0x6b25 0x6b80 0x6b7e 0x6bde 0x6c1d 0x6c93 0x6cec 0x6ceb 0x6cee 0x6cd9 0x6cb6 0x6cd4 0x6cad 0x6ce7 0x6cb7 0x6cd0 0x6cc2 0x6cba 0x6cc3 0x6cc6 0x6ced 0x6cf2 ) ; 0xcd40 ... 0xcdfe (block 44 0x6cd2 0x6cdd 0x6cb4 0x6c8a 0x6c9d 0x6c80 0x6cde 0x6cc0 0x6d30 0x6ccd 0x6cc7 0x6cb0 0x6cf9 0x6ccf 0x6ce9 0x6cd1 0x7094 0x7098 0x7085 0x7093 0x7086 0x7084 0x7091 0x7096 0x7082 0x709a 0x7083 0x726a 0x72d6 0x72cb 0x72d8 0x72c9 0x72dc 0x72d2 0x72d4 0x72da 0x72cc 0x72d1 0x73a4 0x73a1 0x73ad 0x73a6 0x73a2 0x73a0 0x73ac 0x739d 0x74dd 0x74e8 0x753f 0x7540 0x753e 0x758c 0x7598 0x76af 0x76f3 0x76f1 0x76f0 0x76f5 0x77f8 0x77fc 0x77f9 0x77fb 0x77fa -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x77f7 0x7942 0x793f 0x79c5 0x7a78 0x7a7b 0x7afb 0x7c75 0x7cfd 0x8035 0x808f 0x80ae 0x80a3 0x80b8 0x80b5 0x80ad 0x8220 0x82a0 0x82c0 0x82ab 0x829a 0x8298 0x829b 0x82b5 0x82a7 0x82ae 0x82bc 0x829e 0x82ba 0x82b4 0x82a8 0x82a1 0x82a9 0x82c2 0x82a4 0x82c3 0x82b6 0x82a2 0x8670 0x866f 0x866d 0x866e 0x8c56 0x8fd2 0x8fcb 0x8fd3 0x8fcd 0x8fd6 0x8fd5 0x8fd7 0x90b2 0x90b4 0x90af 0x90b3 0x90b0 0x9639 0x963d 0x963c 0x963a 0x9643 0x4fcd 0x4fc5 0x4fd3 0x4fb2 0x4fc9 0x4fcb 0x4fc1 0x4fd4 0x4fdc 0x4fd9 0x4fbb 0x4fb3 0x4fdb 0x4fc7 0x4fd6 0x4fba 0x4fc0 0x4fb9 0x4fec 0x5244 0x5249 0x52c0 0x52c2 0x533d 0x537c 0x5397 0x5396 0x5399 0x5398 0x54ba 0x54a1 0x54ad 0x54a5 0x54cf ) ; 0xce40 ... 0xcefe (block 45 0x54c3 0x830d 0x54b7 0x54ae 0x54d6 0x54b6 0x54c5 0x54c6 0x54a0 0x5470 0x54bc 0x54a2 0x54be 0x5472 0x54de 0x54b0 0x57b5 0x579e 0x579f 0x57a4 0x578c 0x5797 0x579d 0x579b 0x5794 0x5798 0x578f 0x5799 0x57a5 0x579a 0x5795 0x58f4 0x590d 0x5953 0x59e1 0x59de 0x59ee 0x5a00 0x59f1 0x59dd 0x59fa 0x59fd 0x59fc 0x59f6 0x59e4 0x59f2 0x59f7 0x59db 0x59e9 0x59f3 0x59f5 0x59e0 0x59fe 0x59f4 0x59ed 0x5ba8 0x5c4c 0x5cd0 0x5cd8 0x5ccc 0x5cd7 0x5ccb 0x5cdb -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x5cde 0x5cda 0x5cc9 0x5cc7 0x5cca 0x5cd6 0x5cd3 0x5cd4 0x5ccf 0x5cc8 0x5cc6 0x5cce 0x5cdf 0x5cf8 0x5df9 0x5e21 0x5e22 0x5e23 0x5e20 0x5e24 0x5eb0 0x5ea4 0x5ea2 0x5e9b 0x5ea3 0x5ea5 0x5f07 0x5f2e 0x5f56 0x5f86 0x6037 0x6039 0x6054 0x6072 0x605e 0x6045 0x6053 0x6047 0x6049 0x605b 0x604c 0x6040 0x6042 0x605f 0x6024 0x6044 0x6058 0x6066 0x606e 0x6242 0x6243 0x62cf 0x630d 0x630b 0x62f5 0x630e 0x6303 0x62eb 0x62f9 0x630f 0x630c 0x62f8 0x62f6 0x6300 0x6313 0x6314 0x62fa 0x6315 0x62fb 0x62f0 0x6541 0x6543 0x65aa 0x65bf 0x6636 0x6621 0x6632 0x6635 0x661c 0x6626 0x6622 0x6633 0x662b 0x663a 0x661d 0x6634 0x6639 0x662e 0x670f 0x6710 0x67c1 0x67f2 0x67c8 0x67ba ) ; 0xcf40 ... 0xcffe (block 46 0x67dc 0x67bb 0x67f8 0x67d8 0x67c0 0x67b7 0x67c5 0x67eb 0x67e4 0x67df 0x67b5 0x67cd 0x67b3 0x67f7 0x67f6 0x67ee 0x67e3 0x67c2 0x67b9 0x67ce 0x67e7 0x67f0 0x67b2 0x67fc 0x67c6 0x67ed 0x67cc 0x67ae 0x67e6 0x67db 0x67fa 0x67c9 0x67ca 0x67c3 0x67ea 0x67cb 0x6b28 0x6b82 0x6b84 0x6bb6 0x6bd6 0x6bd8 0x6be0 0x6c20 0x6c21 0x6d28 0x6d34 0x6d2d 0x6d1f 0x6d3c 0x6d3f 0x6d12 0x6d0a 0x6cda 0x6d33 0x6d04 0x6d19 0x6d3a 0x6d1a 0x6d11 0x6d00 0x6d1d 0x6d42 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x6d01 0x6d18 0x6d37 0x6d03 0x6d0f 0x6d40 0x6d07 0x6d20 0x6d2c 0x6d08 0x6d22 0x6d09 0x6d10 0x70b7 0x709f 0x70be 0x70b1 0x70b0 0x70a1 0x70b4 0x70b5 0x70a9 0x7241 0x7249 0x724a 0x726c 0x7270 0x7273 0x726e 0x72ca 0x72e4 0x72e8 0x72eb 0x72df 0x72ea 0x72e6 0x72e3 0x7385 0x73cc 0x73c2 0x73c8 0x73c5 0x73b9 0x73b6 0x73b5 0x73b4 0x73eb 0x73bf 0x73c7 0x73be 0x73c3 0x73c6 0x73b8 0x73cb 0x74ec 0x74ee 0x752e 0x7547 0x7548 0x75a7 0x75aa 0x7679 0x76c4 0x7708 0x7703 0x7704 0x7705 0x770a 0x76f7 0x76fb 0x76fa 0x77e7 0x77e8 0x7806 0x7811 0x7812 0x7805 0x7810 0x780f 0x780e 0x7809 0x7803 0x7813 0x794a 0x794c 0x794b 0x7945 0x7944 0x79d5 0x79cd 0x79cf 0x79d6 0x79ce 0x7a80 ) ; 0xd040 ... 0xd0fe (block 47 0x7a7e 0x7ad1 0x7b00 0x7b01 0x7c7a 0x7c78 0x7c79 0x7c7f 0x7c80 0x7c81 0x7d03 0x7d08 0x7d01 0x7f58 0x7f91 0x7f8d 0x7fbe 0x8007 0x800e 0x800f 0x8014 0x8037 0x80d8 0x80c7 0x80e0 0x80d1 0x80c8 0x80c2 0x80d0 0x80c5 0x80e3 0x80d9 0x80dc 0x80ca 0x80d5 0x80c9 0x80cf 0x80d7 0x80e6 0x80cd 0x81ff 0x8221 0x8294 0x82d9 0x82fe 0x82f9 0x8307 0x82e8 0x8300 0x82d5 0x833a 0x82eb 0x82d6 0x82f4 0x82ec 0x82e1 0x82f2 0x82f5 0x830c 0x82fb 0x82f6 0x82f0 0x82ea -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x82e4 0x82e0 0x82fa 0x82f3 0x82ed 0x8677 0x8674 0x867c 0x8673 0x8841 0x884e 0x8867 0x886a 0x8869 0x89d3 0x8a04 0x8a07 0x8d72 0x8fe3 0x8fe1 0x8fee 0x8fe0 0x90f1 0x90bd 0x90bf 0x90d5 0x90c5 0x90be 0x90c7 0x90cb 0x90c8 0x91d4 0x91d3 0x9654 0x964f 0x9651 0x9653 0x964a 0x964e 0x501e 0x5005 0x5007 0x5013 0x5022 0x5030 0x501b 0x4ff5 0x4ff4 0x5033 0x5037 0x502c 0x4ff6 0x4ff7 0x5017 0x501c 0x5020 0x5027 0x5035 0x502f 0x5031 0x500e 0x515a 0x5194 0x5193 0x51ca 0x51c4 0x51c5 0x51c8 0x51ce 0x5261 0x525a 0x5252 0x525e 0x525f 0x5255 0x5262 0x52cd 0x530e 0x539e 0x5526 0x54e2 0x5517 0x5512 0x54e7 0x54f3 0x54e4 0x551a 0x54ff 0x5504 0x5508 0x54eb 0x5511 0x5505 0x54f1 ) ; 0xd140 ... 0xd1fe (block 48 0x550a 0x54fb 0x54f7 0x54f8 0x54e0 0x550e 0x5503 0x550b 0x5701 0x5702 0x57cc 0x5832 0x57d5 0x57d2 0x57ba 0x57c6 0x57bd 0x57bc 0x57b8 0x57b6 0x57bf 0x57c7 0x57d0 0x57b9 0x57c1 0x590e 0x594a 0x5a19 0x5a16 0x5a2d 0x5a2e 0x5a15 0x5a0f 0x5a17 0x5a0a 0x5a1e 0x5a33 0x5b6c 0x5ba7 0x5bad 0x5bac 0x5c03 0x5c56 0x5c54 0x5cec 0x5cff 0x5cee 0x5cf1 0x5cf7 0x5d00 0x5cf9 0x5e29 0x5e28 0x5ea8 0x5eae 0x5eaa 0x5eac 0x5f33 0x5f30 0x5f67 0x605d 0x605a 0x6067 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x6041 0x60a2 0x6088 0x6080 0x6092 0x6081 0x609d 0x6083 0x6095 0x609b 0x6097 0x6087 0x609c 0x608e 0x6219 0x6246 0x62f2 0x6310 0x6356 0x632c 0x6344 0x6345 0x6336 0x6343 0x63e4 0x6339 0x634b 0x634a 0x633c 0x6329 0x6341 0x6334 0x6358 0x6354 0x6359 0x632d 0x6347 0x6333 0x635a 0x6351 0x6338 0x6357 0x6340 0x6348 0x654a 0x6546 0x65c6 0x65c3 0x65c4 0x65c2 0x664a 0x665f 0x6647 0x6651 0x6712 0x6713 0x681f 0x681a 0x6849 0x6832 0x6833 0x683b 0x684b 0x684f 0x6816 0x6831 0x681c 0x6835 0x682b 0x682d 0x682f 0x684e 0x6844 0x6834 0x681d 0x6812 0x6814 0x6826 0x6828 0x682e 0x684d 0x683a 0x6825 0x6820 0x6b2c 0x6b2f 0x6b2d 0x6b31 0x6b34 0x6b6d 0x8082 0x6b88 0x6be6 0x6be4 ) ; 0xd240 ... 0xd2fe (block 49 0x6be8 0x6be3 0x6be2 0x6be7 0x6c25 0x6d7a 0x6d63 0x6d64 0x6d76 0x6d0d 0x6d61 0x6d92 0x6d58 0x6d62 0x6d6d 0x6d6f 0x6d91 0x6d8d 0x6def 0x6d7f 0x6d86 0x6d5e 0x6d67 0x6d60 0x6d97 0x6d70 0x6d7c 0x6d5f 0x6d82 0x6d98 0x6d2f 0x6d68 0x6d8b 0x6d7e 0x6d80 0x6d84 0x6d16 0x6d83 0x6d7b 0x6d7d 0x6d75 0x6d90 0x70dc 0x70d3 0x70d1 0x70dd 0x70cb 0x7f39 0x70e2 0x70d7 0x70d2 0x70de 0x70e0 0x70d4 0x70cd 0x70c5 0x70c6 0x70c7 0x70da 0x70ce 0x70e1 0x7242 0x7278 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x7277 0x7276 0x7300 0x72fa 0x72f4 0x72fe 0x72f6 0x72f3 0x72fb 0x7301 0x73d3 0x73d9 0x73e5 0x73d6 0x73bc 0x73e7 0x73e3 0x73e9 0x73dc 0x73d2 0x73db 0x73d4 0x73dd 0x73da 0x73d7 0x73d8 0x73e8 0x74de 0x74df 0x74f4 0x74f5 0x7521 0x755b 0x755f 0x75b0 0x75c1 0x75bb 0x75c4 0x75c0 0x75bf 0x75b6 0x75ba 0x768a 0x76c9 0x771d 0x771b 0x7710 0x7713 0x7712 0x7723 0x7711 0x7715 0x7719 0x771a 0x7722 0x7727 0x7823 0x782c 0x7822 0x7835 0x782f 0x7828 0x782e 0x782b 0x7821 0x7829 0x7833 0x782a 0x7831 0x7954 0x795b 0x794f 0x795c 0x7953 0x7952 0x7951 0x79eb 0x79ec 0x79e0 0x79ee 0x79ed 0x79ea 0x79dc 0x79de 0x79dd 0x7a86 0x7a89 0x7a85 0x7a8b 0x7a8c 0x7a8a 0x7a87 0x7ad8 0x7b10 ) ; 0xd340 ... 0xd3fe (block 50 0x7b04 0x7b13 0x7b05 0x7b0f 0x7b08 0x7b0a 0x7b0e 0x7b09 0x7b12 0x7c84 0x7c91 0x7c8a 0x7c8c 0x7c88 0x7c8d 0x7c85 0x7d1e 0x7d1d 0x7d11 0x7d0e 0x7d18 0x7d16 0x7d13 0x7d1f 0x7d12 0x7d0f 0x7d0c 0x7f5c 0x7f61 0x7f5e 0x7f60 0x7f5d 0x7f5b 0x7f96 0x7f92 0x7fc3 0x7fc2 0x7fc0 0x8016 0x803e 0x8039 0x80fa 0x80f2 0x80f9 0x80f5 0x8101 0x80fb 0x8100 0x8201 0x822f 0x8225 0x8333 0x832d 0x8344 0x8319 0x8351 0x8325 0x8356 0x833f 0x8341 0x8326 0x831c 0x8322 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x8342 0x834e 0x831b 0x832a 0x8308 0x833c 0x834d 0x8316 0x8324 0x8320 0x8337 0x832f 0x8329 0x8347 0x8345 0x834c 0x8353 0x831e 0x832c 0x834b 0x8327 0x8348 0x8653 0x8652 0x86a2 0x86a8 0x8696 0x868d 0x8691 0x869e 0x8687 0x8697 0x8686 0x868b 0x869a 0x8685 0x86a5 0x8699 0x86a1 0x86a7 0x8695 0x8698 0x868e 0x869d 0x8690 0x8694 0x8843 0x8844 0x886d 0x8875 0x8876 0x8872 0x8880 0x8871 0x887f 0x886f 0x8883 0x887e 0x8874 0x887c 0x8a12 0x8c47 0x8c57 0x8c7b 0x8ca4 0x8ca3 0x8d76 0x8d78 0x8db5 0x8db7 0x8db6 0x8ed1 0x8ed3 0x8ffe 0x8ff5 0x9002 0x8fff 0x8ffb 0x9004 0x8ffc 0x8ff6 0x90d6 0x90e0 0x90d9 0x90da 0x90e3 0x90df 0x90e5 0x90d8 0x90db 0x90d7 0x90dc 0x90e4 0x9150 ) ; 0xd440 ... 0xd4fe (block 51 0x914e 0x914f 0x91d5 0x91e2 0x91da 0x965c 0x965f 0x96bc 0x98e3 0x9adf 0x9b2f 0x4e7f 0x5070 0x506a 0x5061 0x505e 0x5060 0x5053 0x504b 0x505d 0x5072 0x5048 0x504d 0x5041 0x505b 0x504a 0x5062 0x5015 0x5045 0x505f 0x5069 0x506b 0x5063 0x5064 0x5046 0x5040 0x506e 0x5073 0x5057 0x5051 0x51d0 0x526b 0x526d 0x526c 0x526e 0x52d6 0x52d3 0x532d 0x539c 0x5575 0x5576 0x553c 0x554d 0x5550 0x5534 0x552a 0x5551 0x5562 0x5536 0x5535 0x5530 0x5552 0x5545 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x550c 0x5532 0x5565 0x554e 0x5539 0x5548 0x552d 0x553b 0x5540 0x554b 0x570a 0x5707 0x57fb 0x5814 0x57e2 0x57f6 0x57dc 0x57f4 0x5800 0x57ed 0x57fd 0x5808 0x57f8 0x580b 0x57f3 0x57cf 0x5807 0x57ee 0x57e3 0x57f2 0x57e5 0x57ec 0x57e1 0x580e 0x57fc 0x5810 0x57e7 0x5801 0x580c 0x57f1 0x57e9 0x57f0 0x580d 0x5804 0x595c 0x5a60 0x5a58 0x5a55 0x5a67 0x5a5e 0x5a38 0x5a35 0x5a6d 0x5a50 0x5a5f 0x5a65 0x5a6c 0x5a53 0x5a64 0x5a57 0x5a43 0x5a5d 0x5a52 0x5a44 0x5a5b 0x5a48 0x5a8e 0x5a3e 0x5a4d 0x5a39 0x5a4c 0x5a70 0x5a69 0x5a47 0x5a51 0x5a56 0x5a42 0x5a5c 0x5b72 0x5b6e 0x5bc1 0x5bc0 0x5c59 0x5d1e 0x5d0b 0x5d1d 0x5d1a 0x5d20 0x5d0c 0x5d28 0x5d0d 0x5d26 0x5d25 0x5d0f ) ; 0xd540 ... 0xd5fe (block 52 0x5d30 0x5d12 0x5d23 0x5d1f 0x5d2e 0x5e3e 0x5e34 0x5eb1 0x5eb4 0x5eb9 0x5eb2 0x5eb3 0x5f36 0x5f38 0x5f9b 0x5f96 0x5f9f 0x608a 0x6090 0x6086 0x60be 0x60b0 0x60ba 0x60d3 0x60d4 0x60cf 0x60e4 0x60d9 0x60dd 0x60c8 0x60b1 0x60db 0x60b7 0x60ca 0x60bf 0x60c3 0x60cd 0x60c0 0x6332 0x6365 0x638a 0x6382 0x637d 0x63bd 0x639e 0x63ad 0x639d 0x6397 0x63ab 0x638e 0x636f 0x6387 0x6390 0x636e 0x63af 0x6375 0x639c 0x636d 0x63ae 0x637c 0x63a4 0x633b 0x639f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x6378 0x6385 0x6381 0x6391 0x638d 0x6370 0x6553 0x65cd 0x6665 0x6661 0x665b 0x6659 0x665c 0x6662 0x6718 0x6879 0x6887 0x6890 0x689c 0x686d 0x686e 0x68ae 0x68ab 0x6956 0x686f 0x68a3 0x68ac 0x68a9 0x6875 0x6874 0x68b2 0x688f 0x6877 0x6892 0x687c 0x686b 0x6872 0x68aa 0x6880 0x6871 0x687e 0x689b 0x6896 0x688b 0x68a0 0x6889 0x68a4 0x6878 0x687b 0x6891 0x688c 0x688a 0x687d 0x6b36 0x6b33 0x6b37 0x6b38 0x6b91 0x6b8f 0x6b8d 0x6b8e 0x6b8c 0x6c2a 0x6dc0 0x6dab 0x6db4 0x6db3 0x6e74 0x6dac 0x6de9 0x6de2 0x6db7 0x6df6 0x6dd4 0x6e00 0x6dc8 0x6de0 0x6ddf 0x6dd6 0x6dbe 0x6de5 0x6ddc 0x6ddd 0x6ddb 0x6df4 0x6dca 0x6dbd 0x6ded 0x6df0 0x6dba 0x6dd5 0x6dc2 0x6dcf 0x6dc9 ) ; 0xd640 ... 0xd6fe (block 53 0x6dd0 0x6df2 0x6dd3 0x6dfd 0x6dd7 0x6dcd 0x6de3 0x6dbb 0x70fa 0x710d 0x70f7 0x7117 0x70f4 0x710c 0x70f0 0x7104 0x70f3 0x7110 0x70fc 0x70ff 0x7106 0x7113 0x7100 0x70f8 0x70f6 0x710b 0x7102 0x710e 0x727e 0x727b 0x727c 0x727f 0x731d 0x7317 0x7307 0x7311 0x7318 0x730a 0x7308 0x72ff 0x730f 0x731e 0x7388 0x73f6 0x73f8 0x73f5 0x7404 0x7401 0x73fd 0x7407 0x7400 0x73fa 0x73fc 0x73ff 0x740c 0x740b 0x73f4 0x7408 0x7564 0x7563 0x75ce 0x75d2 0x75cf -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x75cb 0x75cc 0x75d1 0x75d0 0x768f 0x7689 0x76d3 0x7739 0x772f 0x772d 0x7731 0x7732 0x7734 0x7733 0x773d 0x7725 0x773b 0x7735 0x7848 0x7852 0x7849 0x784d 0x784a 0x784c 0x7826 0x7845 0x7850 0x7964 0x7967 0x7969 0x796a 0x7963 0x796b 0x7961 0x79bb 0x79fa 0x79f8 0x79f6 0x79f7 0x7a8f 0x7a94 0x7a90 0x7b35 0x7b47 0x7b34 0x7b25 0x7b30 0x7b22 0x7b24 0x7b33 0x7b18 0x7b2a 0x7b1d 0x7b31 0x7b2b 0x7b2d 0x7b2f 0x7b32 0x7b38 0x7b1a 0x7b23 0x7c94 0x7c98 0x7c96 0x7ca3 0x7d35 0x7d3d 0x7d38 0x7d36 0x7d3a 0x7d45 0x7d2c 0x7d29 0x7d41 0x7d47 0x7d3e 0x7d3f 0x7d4a 0x7d3b 0x7d28 0x7f63 0x7f95 0x7f9c 0x7f9d 0x7f9b 0x7fca 0x7fcb 0x7fcd 0x7fd0 0x7fd1 0x7fc7 0x7fcf 0x7fc9 0x801f ) ; 0xd740 ... 0xd7fe (block 54 0x801e 0x801b 0x8047 0x8043 0x8048 0x8118 0x8125 0x8119 0x811b 0x812d 0x811f 0x812c 0x811e 0x8121 0x8115 0x8127 0x811d 0x8122 0x8211 0x8238 0x8233 0x823a 0x8234 0x8232 0x8274 0x8390 0x83a3 0x83a8 0x838d 0x837a 0x8373 0x83a4 0x8374 0x838f 0x8381 0x8395 0x8399 0x8375 0x8394 0x83a9 0x837d 0x8383 0x838c 0x839d 0x839b 0x83aa 0x838b 0x837e 0x83a5 0x83af 0x8388 0x8397 0x83b0 0x837f 0x83a6 0x8387 0x83ae 0x8376 0x839a 0x8659 0x8656 0x86bf 0x86b7 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x86c2 0x86c1 0x86c5 0x86ba 0x86b0 0x86c8 0x86b9 0x86b3 0x86b8 0x86cc 0x86b4 0x86bb 0x86bc 0x86c3 0x86bd 0x86be 0x8852 0x8889 0x8895 0x88a8 0x88a2 0x88aa 0x889a 0x8891 0x88a1 0x889f 0x8898 0x88a7 0x8899 0x889b 0x8897 0x88a4 0x88ac 0x888c 0x8893 0x888e 0x8982 0x89d6 0x89d9 0x89d5 0x8a30 0x8a27 0x8a2c 0x8a1e 0x8c39 0x8c3b 0x8c5c 0x8c5d 0x8c7d 0x8ca5 0x8d7d 0x8d7b 0x8d79 0x8dbc 0x8dc2 0x8db9 0x8dbf 0x8dc1 0x8ed8 0x8ede 0x8edd 0x8edc 0x8ed7 0x8ee0 0x8ee1 0x9024 0x900b 0x9011 0x901c 0x900c 0x9021 0x90ef 0x90ea 0x90f0 0x90f4 0x90f2 0x90f3 0x90d4 0x90eb 0x90ec 0x90e9 0x9156 0x9158 0x915a 0x9153 0x9155 0x91ec 0x91f4 0x91f1 0x91f3 0x91f8 0x91e4 0x91f9 0x91ea ) ; 0xd840 ... 0xd8fe (block 55 0x91eb 0x91f7 0x91e8 0x91ee 0x957a 0x9586 0x9588 0x967c 0x966d 0x966b 0x9671 0x966f 0x96bf 0x976a 0x9804 0x98e5 0x9997 0x509b 0x5095 0x5094 0x509e 0x508b 0x50a3 0x5083 0x508c 0x508e 0x509d 0x5068 0x509c 0x5092 0x5082 0x5087 0x515f 0x51d4 0x5312 0x5311 0x53a4 0x53a7 0x5591 0x55a8 0x55a5 0x55ad 0x5577 0x5645 0x55a2 0x5593 0x5588 0x558f 0x55b5 0x5581 0x55a3 0x5592 0x55a4 0x557d 0x558c 0x55a6 0x557f 0x5595 0x55a1 0x558e 0x570c 0x5829 0x5837 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x5819 0x581e 0x5827 0x5823 0x5828 0x57f5 0x5848 0x5825 0x581c 0x581b 0x5833 0x583f 0x5836 0x582e 0x5839 0x5838 0x582d 0x582c 0x583b 0x5961 0x5aaf 0x5a94 0x5a9f 0x5a7a 0x5aa2 0x5a9e 0x5a78 0x5aa6 0x5a7c 0x5aa5 0x5aac 0x5a95 0x5aae 0x5a37 0x5a84 0x5a8a 0x5a97 0x5a83 0x5a8b 0x5aa9 0x5a7b 0x5a7d 0x5a8c 0x5a9c 0x5a8f 0x5a93 0x5a9d 0x5bea 0x5bcd 0x5bcb 0x5bd4 0x5bd1 0x5bca 0x5bce 0x5c0c 0x5c30 0x5d37 0x5d43 0x5d6b 0x5d41 0x5d4b 0x5d3f 0x5d35 0x5d51 0x5d4e 0x5d55 0x5d33 0x5d3a 0x5d52 0x5d3d 0x5d31 0x5d59 0x5d42 0x5d39 0x5d49 0x5d38 0x5d3c 0x5d32 0x5d36 0x5d40 0x5d45 0x5e44 0x5e41 0x5f58 0x5fa6 0x5fa5 0x5fab 0x60c9 0x60b9 0x60cc 0x60e2 0x60ce 0x60c4 0x6114 ) ; 0xd940 ... 0xd9fe (block 56 0x60f2 0x610a 0x6116 0x6105 0x60f5 0x6113 0x60f8 0x60fc 0x60fe 0x60c1 0x6103 0x6118 0x611d 0x6110 0x60ff 0x6104 0x610b 0x624a 0x6394 0x63b1 0x63b0 0x63ce 0x63e5 0x63e8 0x63ef 0x63c3 0x649d 0x63f3 0x63ca 0x63e0 0x63f6 0x63d5 0x63f2 0x63f5 0x6461 0x63df 0x63be 0x63dd 0x63dc 0x63c4 0x63d8 0x63d3 0x63c2 0x63c7 0x63cc 0x63cb 0x63c8 0x63f0 0x63d7 0x63d9 0x6532 0x6567 0x656a 0x6564 0x655c 0x6568 0x6565 0x658c 0x659d 0x659e 0x65ae 0x65d0 0x65d2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x667c 0x666c 0x667b 0x6680 0x6671 0x6679 0x666a 0x6672 0x6701 0x690c 0x68d3 0x6904 0x68dc 0x692a 0x68ec 0x68ea 0x68f1 0x690f 0x68d6 0x68f7 0x68eb 0x68e4 0x68f6 0x6913 0x6910 0x68f3 0x68e1 0x6907 0x68cc 0x6908 0x6970 0x68b4 0x6911 0x68ef 0x68c6 0x6914 0x68f8 0x68d0 0x68fd 0x68fc 0x68e8 0x690b 0x690a 0x6917 0x68ce 0x68c8 0x68dd 0x68de 0x68e6 0x68f4 0x68d1 0x6906 0x68d4 0x68e9 0x6915 0x6925 0x68c7 0x6b39 0x6b3b 0x6b3f 0x6b3c 0x6b94 0x6b97 0x6b99 0x6b95 0x6bbd 0x6bf0 0x6bf2 0x6bf3 0x6c30 0x6dfc 0x6e46 0x6e47 0x6e1f 0x6e49 0x6e88 0x6e3c 0x6e3d 0x6e45 0x6e62 0x6e2b 0x6e3f 0x6e41 0x6e5d 0x6e73 0x6e1c 0x6e33 0x6e4b 0x6e40 0x6e51 0x6e3b 0x6e03 0x6e2e 0x6e5e ) ; 0xda40 ... 0xdafe (block 57 0x6e68 0x6e5c 0x6e61 0x6e31 0x6e28 0x6e60 0x6e71 0x6e6b 0x6e39 0x6e22 0x6e30 0x6e53 0x6e65 0x6e27 0x6e78 0x6e64 0x6e77 0x6e55 0x6e79 0x6e52 0x6e66 0x6e35 0x6e36 0x6e5a 0x7120 0x711e 0x712f 0x70fb 0x712e 0x7131 0x7123 0x7125 0x7122 0x7132 0x711f 0x7128 0x713a 0x711b 0x724b 0x725a 0x7288 0x7289 0x7286 0x7285 0x728b 0x7312 0x730b 0x7330 0x7322 0x7331 0x7333 0x7327 0x7332 0x732d 0x7326 0x7323 0x7335 0x730c 0x742e 0x742c 0x7430 0x742b 0x7416 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x741a 0x7421 0x742d 0x7431 0x7424 0x7423 0x741d 0x7429 0x7420 0x7432 0x74fb 0x752f 0x756f 0x756c 0x75e7 0x75da 0x75e1 0x75e6 0x75dd 0x75df 0x75e4 0x75d7 0x7695 0x7692 0x76da 0x7746 0x7747 0x7744 0x774d 0x7745 0x774a 0x774e 0x774b 0x774c 0x77de 0x77ec 0x7860 0x7864 0x7865 0x785c 0x786d 0x7871 0x786a 0x786e 0x7870 0x7869 0x7868 0x785e 0x7862 0x7974 0x7973 0x7972 0x7970 0x7a02 0x7a0a 0x7a03 0x7a0c 0x7a04 0x7a99 0x7ae6 0x7ae4 0x7b4a 0x7b3b 0x7b44 0x7b48 0x7b4c 0x7b4e 0x7b40 0x7b58 0x7b45 0x7ca2 0x7c9e 0x7ca8 0x7ca1 0x7d58 0x7d6f 0x7d63 0x7d53 0x7d56 0x7d67 0x7d6a 0x7d4f 0x7d6d 0x7d5c 0x7d6b 0x7d52 0x7d54 0x7d69 0x7d51 0x7d5f 0x7d4e 0x7f3e 0x7f3f 0x7f65 ) ; 0xdb40 ... 0xdbfe (block 58 0x7f66 0x7fa2 0x7fa0 0x7fa1 0x7fd7 0x8051 0x804f 0x8050 0x80fe 0x80d4 0x8143 0x814a 0x8152 0x814f 0x8147 0x813d 0x814d 0x813a 0x81e6 0x81ee 0x81f7 0x81f8 0x81f9 0x8204 0x823c 0x823d 0x823f 0x8275 0x833b 0x83cf 0x83f9 0x8423 0x83c0 0x83e8 0x8412 0x83e7 0x83e4 0x83fc 0x83f6 0x8410 0x83c6 0x83c8 0x83eb 0x83e3 0x83bf 0x8401 0x83dd 0x83e5 0x83d8 0x83ff 0x83e1 0x83cb 0x83ce 0x83d6 0x83f5 0x83c9 0x8409 0x840f 0x83de 0x8411 0x8406 0x83c2 0x83f3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x83d5 0x83fa 0x83c7 0x83d1 0x83ea 0x8413 0x83c3 0x83ec 0x83ee 0x83c4 0x83fb 0x83d7 0x83e2 0x841b 0x83db 0x83fe 0x86d8 0x86e2 0x86e6 0x86d3 0x86e3 0x86da 0x86ea 0x86dd 0x86eb 0x86dc 0x86ec 0x86e9 0x86d7 0x86e8 0x86d1 0x8848 0x8856 0x8855 0x88ba 0x88d7 0x88b9 0x88b8 0x88c0 0x88be 0x88b6 0x88bc 0x88b7 0x88bd 0x88b2 0x8901 0x88c9 0x8995 0x8998 0x8997 0x89dd 0x89da 0x89db 0x8a4e 0x8a4d 0x8a39 0x8a59 0x8a40 0x8a57 0x8a58 0x8a44 0x8a45 0x8a52 0x8a48 0x8a51 0x8a4a 0x8a4c 0x8a4f 0x8c5f 0x8c81 0x8c80 0x8cba 0x8cbe 0x8cb0 0x8cb9 0x8cb5 0x8d84 0x8d80 0x8d89 0x8dd8 0x8dd3 0x8dcd 0x8dc7 0x8dd6 0x8ddc 0x8dcf 0x8dd5 0x8dd9 0x8dc8 0x8dd7 0x8dc5 0x8eef 0x8ef7 0x8efa ) ; 0xdc40 ... 0xdcfe (block 59 0x8ef9 0x8ee6 0x8eee 0x8ee5 0x8ef5 0x8ee7 0x8ee8 0x8ef6 0x8eeb 0x8ef1 0x8eec 0x8ef4 0x8ee9 0x902d 0x9034 0x902f 0x9106 0x912c 0x9104 0x90ff 0x90fc 0x9108 0x90f9 0x90fb 0x9101 0x9100 0x9107 0x9105 0x9103 0x9161 0x9164 0x915f 0x9162 0x9160 0x9201 0x920a 0x9225 0x9203 0x921a 0x9226 0x920f 0x920c 0x9200 0x9212 0x91ff 0x91fd 0x9206 0x9204 0x9227 0x9202 0x921c 0x9224 0x9219 0x9217 0x9205 0x9216 0x957b 0x958d 0x958c 0x9590 0x9687 0x967e 0x9688 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x9689 0x9683 0x9680 0x96c2 0x96c8 0x96c3 0x96f1 0x96f0 0x976c 0x9770 0x976e 0x9807 0x98a9 0x98eb 0x9ce6 0x9ef9 0x4e83 0x4e84 0x4eb6 0x50bd 0x50bf 0x50c6 0x50ae 0x50c4 0x50ca 0x50b4 0x50c8 0x50c2 0x50b0 0x50c1 0x50ba 0x50b1 0x50cb 0x50c9 0x50b6 0x50b8 0x51d7 0x527a 0x5278 0x527b 0x527c 0x55c3 0x55db 0x55cc 0x55d0 0x55cb 0x55ca 0x55dd 0x55c0 0x55d4 0x55c4 0x55e9 0x55bf 0x55d2 0x558d 0x55cf 0x55d5 0x55e2 0x55d6 0x55c8 0x55f2 0x55cd 0x55d9 0x55c2 0x5714 0x5853 0x5868 0x5864 0x584f 0x584d 0x5849 0x586f 0x5855 0x584e 0x585d 0x5859 0x5865 0x585b 0x583d 0x5863 0x5871 0x58fc 0x5ac7 0x5ac4 0x5acb 0x5aba 0x5ab8 0x5ab1 0x5ab5 0x5ab0 0x5abf 0x5ac8 0x5abb 0x5ac6 ) ; 0xdd40 ... 0xddfe (block 60 0x5ab7 0x5ac0 0x5aca 0x5ab4 0x5ab6 0x5acd 0x5ab9 0x5a90 0x5bd6 0x5bd8 0x5bd9 0x5c1f 0x5c33 0x5d71 0x5d63 0x5d4a 0x5d65 0x5d72 0x5d6c 0x5d5e 0x5d68 0x5d67 0x5d62 0x5df0 0x5e4f 0x5e4e 0x5e4a 0x5e4d 0x5e4b 0x5ec5 0x5ecc 0x5ec6 0x5ecb 0x5ec7 0x5f40 0x5faf 0x5fad 0x60f7 0x6149 0x614a 0x612b 0x6145 0x6136 0x6132 0x612e 0x6146 0x612f 0x614f 0x6129 0x6140 0x6220 0x9168 0x6223 0x6225 0x6224 0x63c5 0x63f1 0x63eb 0x6410 0x6412 0x6409 0x6420 0x6424 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x6433 0x6443 0x641f 0x6415 0x6418 0x6439 0x6437 0x6422 0x6423 0x640c 0x6426 0x6430 0x6428 0x6441 0x6435 0x642f 0x640a 0x641a 0x6440 0x6425 0x6427 0x640b 0x63e7 0x641b 0x642e 0x6421 0x640e 0x656f 0x6592 0x65d3 0x6686 0x668c 0x6695 0x6690 0x668b 0x668a 0x6699 0x6694 0x6678 0x6720 0x6966 0x695f 0x6938 0x694e 0x6962 0x6971 0x693f 0x6945 0x696a 0x6939 0x6942 0x6957 0x6959 0x697a 0x6948 0x6949 0x6935 0x696c 0x6933 0x693d 0x6965 0x68f0 0x6978 0x6934 0x6969 0x6940 0x696f 0x6944 0x6976 0x6958 0x6941 0x6974 0x694c 0x693b 0x694b 0x6937 0x695c 0x694f 0x6951 0x6932 0x6952 0x692f 0x697b 0x693c 0x6b46 0x6b45 0x6b43 0x6b42 0x6b48 0x6b41 0x6b9b 0xfa0d 0x6bfb 0x6bfc ) ; 0xde40 ... 0xdefe (block 61 0x6bf9 0x6bf7 0x6bf8 0x6e9b 0x6ed6 0x6ec8 0x6e8f 0x6ec0 0x6e9f 0x6e93 0x6e94 0x6ea0 0x6eb1 0x6eb9 0x6ec6 0x6ed2 0x6ebd 0x6ec1 0x6e9e 0x6ec9 0x6eb7 0x6eb0 0x6ecd 0x6ea6 0x6ecf 0x6eb2 0x6ebe 0x6ec3 0x6edc 0x6ed8 0x6e99 0x6e92 0x6e8e 0x6e8d 0x6ea4 0x6ea1 0x6ebf 0x6eb3 0x6ed0 0x6eca 0x6e97 0x6eae 0x6ea3 0x7147 0x7154 0x7152 0x7163 0x7160 0x7141 0x715d 0x7162 0x7172 0x7178 0x716a 0x7161 0x7142 0x7158 0x7143 0x714b 0x7170 0x715f 0x7150 0x7153 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x7144 0x714d 0x715a 0x724f 0x728d 0x728c 0x7291 0x7290 0x728e 0x733c 0x7342 0x733b 0x733a 0x7340 0x734a 0x7349 0x7444 0x744a 0x744b 0x7452 0x7451 0x7457 0x7440 0x744f 0x7450 0x744e 0x7442 0x7446 0x744d 0x7454 0x74e1 0x74ff 0x74fe 0x74fd 0x751d 0x7579 0x7577 0x6983 0x75ef 0x760f 0x7603 0x75f7 0x75fe 0x75fc 0x75f9 0x75f8 0x7610 0x75fb 0x75f6 0x75ed 0x75f5 0x75fd 0x7699 0x76b5 0x76dd 0x7755 0x775f 0x7760 0x7752 0x7756 0x775a 0x7769 0x7767 0x7754 0x7759 0x776d 0x77e0 0x7887 0x789a 0x7894 0x788f 0x7884 0x7895 0x7885 0x7886 0x78a1 0x7883 0x7879 0x7899 0x7880 0x7896 0x787b 0x797c 0x7982 0x797d 0x7979 0x7a11 0x7a18 0x7a19 0x7a12 0x7a17 0x7a15 0x7a22 0x7a13 ) ; 0xdf40 ... 0xdffe (block 62 0x7a1b 0x7a10 0x7aa3 0x7aa2 0x7a9e 0x7aeb 0x7b66 0x7b64 0x7b6d 0x7b74 0x7b69 0x7b72 0x7b65 0x7b73 0x7b71 0x7b70 0x7b61 0x7b78 0x7b76 0x7b63 0x7cb2 0x7cb4 0x7caf 0x7d88 0x7d86 0x7d80 0x7d8d 0x7d7f 0x7d85 0x7d7a 0x7d8e 0x7d7b 0x7d83 0x7d7c 0x7d8c 0x7d94 0x7d84 0x7d7d 0x7d92 0x7f6d 0x7f6b 0x7f67 0x7f68 0x7f6c 0x7fa6 0x7fa5 0x7fa7 0x7fdb 0x7fdc 0x8021 0x8164 0x8160 0x8177 0x815c 0x8169 0x815b 0x8162 0x8172 0x6721 0x815e 0x8176 0x8167 0x816f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x8144 0x8161 0x821d 0x8249 0x8244 0x8240 0x8242 0x8245 0x84f1 0x843f 0x8456 0x8476 0x8479 0x848f 0x848d 0x8465 0x8451 0x8440 0x8486 0x8467 0x8430 0x844d 0x847d 0x845a 0x8459 0x8474 0x8473 0x845d 0x8507 0x845e 0x8437 0x843a 0x8434 0x847a 0x8443 0x8478 0x8432 0x8445 0x8429 0x83d9 0x844b 0x842f 0x8442 0x842d 0x845f 0x8470 0x8439 0x844e 0x844c 0x8452 0x846f 0x84c5 0x848e 0x843b 0x8447 0x8436 0x8433 0x8468 0x847e 0x8444 0x842b 0x8460 0x8454 0x846e 0x8450 0x870b 0x8704 0x86f7 0x870c 0x86fa 0x86d6 0x86f5 0x874d 0x86f8 0x870e 0x8709 0x8701 0x86f6 0x870d 0x8705 0x88d6 0x88cb 0x88cd 0x88ce 0x88de 0x88db 0x88da 0x88cc 0x88d0 0x8985 0x899b 0x89df 0x89e5 0x89e4 ) ; 0xe040 ... 0xe0fe (block 63 0x89e1 0x89e0 0x89e2 0x89dc 0x89e6 0x8a76 0x8a86 0x8a7f 0x8a61 0x8a3f 0x8a77 0x8a82 0x8a84 0x8a75 0x8a83 0x8a81 0x8a74 0x8a7a 0x8c3c 0x8c4b 0x8c4a 0x8c65 0x8c64 0x8c66 0x8c86 0x8c84 0x8c85 0x8ccc 0x8d68 0x8d69 0x8d91 0x8d8c 0x8d8e 0x8d8f 0x8d8d 0x8d93 0x8d94 0x8d90 0x8d92 0x8df0 0x8de0 0x8dec 0x8df1 0x8dee 0x8dd0 0x8de9 0x8de3 0x8de2 0x8de7 0x8df2 0x8deb 0x8df4 0x8f06 0x8eff 0x8f01 0x8f00 0x8f05 0x8f07 0x8f08 0x8f02 0x8f0b 0x9052 0x903f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x9044 0x9049 0x903d 0x9110 0x910d 0x910f 0x9111 0x9116 0x9114 0x910b 0x910e 0x916e 0x916f 0x9248 0x9252 0x9230 0x923a 0x9266 0x9233 0x9265 0x925e 0x9283 0x922e 0x924a 0x9246 0x926d 0x926c 0x924f 0x9260 0x9267 0x926f 0x9236 0x9261 0x9270 0x9231 0x9254 0x9263 0x9250 0x9272 0x924e 0x9253 0x924c 0x9256 0x9232 0x959f 0x959c 0x959e 0x959b 0x9692 0x9693 0x9691 0x9697 0x96ce 0x96fa 0x96fd 0x96f8 0x96f5 0x9773 0x9777 0x9778 0x9772 0x980f 0x980d 0x980e 0x98ac 0x98f6 0x98f9 0x99af 0x99b2 0x99b0 0x99b5 0x9aad 0x9aab 0x9b5b 0x9cea 0x9ced 0x9ce7 0x9e80 0x9efd 0x50e6 0x50d4 0x50d7 0x50e8 0x50f3 0x50db 0x50ea 0x50dd 0x50e4 0x50d3 0x50ec 0x50f0 0x50ef 0x50e3 0x50e0 ) ; 0xe140 ... 0xe1fe (block 64 0x51d8 0x5280 0x5281 0x52e9 0x52eb 0x5330 0x53ac 0x5627 0x5615 0x560c 0x5612 0x55fc 0x560f 0x561c 0x5601 0x5613 0x5602 0x55fa 0x561d 0x5604 0x55ff 0x55f9 0x5889 0x587c 0x5890 0x5898 0x5886 0x5881 0x587f 0x5874 0x588b 0x587a 0x5887 0x5891 0x588e 0x5876 0x5882 0x5888 0x587b 0x5894 0x588f 0x58fe 0x596b 0x5adc 0x5aee 0x5ae5 0x5ad5 0x5aea 0x5ada 0x5aed 0x5aeb 0x5af3 0x5ae2 0x5ae0 0x5adb 0x5aec 0x5ade 0x5add 0x5ad9 0x5ae8 0x5adf 0x5b77 0x5be0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x5be3 0x5c63 0x5d82 0x5d80 0x5d7d 0x5d86 0x5d7a 0x5d81 0x5d77 0x5d8a 0x5d89 0x5d88 0x5d7e 0x5d7c 0x5d8d 0x5d79 0x5d7f 0x5e58 0x5e59 0x5e53 0x5ed8 0x5ed1 0x5ed7 0x5ece 0x5edc 0x5ed5 0x5ed9 0x5ed2 0x5ed4 0x5f44 0x5f43 0x5f6f 0x5fb6 0x612c 0x6128 0x6141 0x615e 0x6171 0x6173 0x6152 0x6153 0x6172 0x616c 0x6180 0x6174 0x6154 0x617a 0x615b 0x6165 0x613b 0x616a 0x6161 0x6156 0x6229 0x6227 0x622b 0x642b 0x644d 0x645b 0x645d 0x6474 0x6476 0x6472 0x6473 0x647d 0x6475 0x6466 0x64a6 0x644e 0x6482 0x645e 0x645c 0x644b 0x6453 0x6460 0x6450 0x647f 0x643f 0x646c 0x646b 0x6459 0x6465 0x6477 0x6573 0x65a0 0x66a1 0x66a0 0x669f 0x6705 0x6704 0x6722 0x69b1 0x69b6 0x69c9 ) ; 0xe240 ... 0xe2fe (block 65 0x69a0 0x69ce 0x6996 0x69b0 0x69ac 0x69bc 0x6991 0x6999 0x698e 0x69a7 0x698d 0x69a9 0x69be 0x69af 0x69bf 0x69c4 0x69bd 0x69a4 0x69d4 0x69b9 0x69ca 0x699a 0x69cf 0x69b3 0x6993 0x69aa 0x69a1 0x699e 0x69d9 0x6997 0x6990 0x69c2 0x69b5 0x69a5 0x69c6 0x6b4a 0x6b4d 0x6b4b 0x6b9e 0x6b9f 0x6ba0 0x6bc3 0x6bc4 0x6bfe 0x6ece 0x6ef5 0x6ef1 0x6f03 0x6f25 0x6ef8 0x6f37 0x6efb 0x6f2e 0x6f09 0x6f4e 0x6f19 0x6f1a 0x6f27 0x6f18 0x6f3b 0x6f12 0x6eed 0x6f0a -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x6f36 0x6f73 0x6ef9 0x6eee 0x6f2d 0x6f40 0x6f30 0x6f3c 0x6f35 0x6eeb 0x6f07 0x6f0e 0x6f43 0x6f05 0x6efd 0x6ef6 0x6f39 0x6f1c 0x6efc 0x6f3a 0x6f1f 0x6f0d 0x6f1e 0x6f08 0x6f21 0x7187 0x7190 0x7189 0x7180 0x7185 0x7182 0x718f 0x717b 0x7186 0x7181 0x7197 0x7244 0x7253 0x7297 0x7295 0x7293 0x7343 0x734d 0x7351 0x734c 0x7462 0x7473 0x7471 0x7475 0x7472 0x7467 0x746e 0x7500 0x7502 0x7503 0x757d 0x7590 0x7616 0x7608 0x760c 0x7615 0x7611 0x760a 0x7614 0x76b8 0x7781 0x777c 0x7785 0x7782 0x776e 0x7780 0x776f 0x777e 0x7783 0x78b2 0x78aa 0x78b4 0x78ad 0x78a8 0x787e 0x78ab 0x789e 0x78a5 0x78a0 0x78ac 0x78a2 0x78a4 0x7998 0x798a 0x798b 0x7996 0x7995 0x7994 0x7993 ) ; 0xe340 ... 0xe3fe (block 66 0x7997 0x7988 0x7992 0x7990 0x7a2b 0x7a4a 0x7a30 0x7a2f 0x7a28 0x7a26 0x7aa8 0x7aab 0x7aac 0x7aee 0x7b88 0x7b9c 0x7b8a 0x7b91 0x7b90 0x7b96 0x7b8d 0x7b8c 0x7b9b 0x7b8e 0x7b85 0x7b98 0x5284 0x7b99 0x7ba4 0x7b82 0x7cbb 0x7cbf 0x7cbc 0x7cba 0x7da7 0x7db7 0x7dc2 0x7da3 0x7daa 0x7dc1 0x7dc0 0x7dc5 0x7d9d 0x7dce 0x7dc4 0x7dc6 0x7dcb 0x7dcc 0x7daf 0x7db9 0x7d96 0x7dbc 0x7d9f 0x7da6 0x7dae 0x7da9 0x7da1 0x7dc9 0x7f73 0x7fe2 0x7fe3 0x7fe5 0x7fde -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x8024 0x805d 0x805c 0x8189 0x8186 0x8183 0x8187 0x818d 0x818c 0x818b 0x8215 0x8497 0x84a4 0x84a1 0x849f 0x84ba 0x84ce 0x84c2 0x84ac 0x84ae 0x84ab 0x84b9 0x84b4 0x84c1 0x84cd 0x84aa 0x849a 0x84b1 0x84d0 0x849d 0x84a7 0x84bb 0x84a2 0x8494 0x84c7 0x84cc 0x849b 0x84a9 0x84af 0x84a8 0x84d6 0x8498 0x84b6 0x84cf 0x84a0 0x84d7 0x84d4 0x84d2 0x84db 0x84b0 0x8491 0x8661 0x8733 0x8723 0x8728 0x876b 0x8740 0x872e 0x871e 0x8721 0x8719 0x871b 0x8743 0x872c 0x8741 0x873e 0x8746 0x8720 0x8732 0x872a 0x872d 0x873c 0x8712 0x873a 0x8731 0x8735 0x8742 0x8726 0x8727 0x8738 0x8724 0x871a 0x8730 0x8711 0x88f7 0x88e7 0x88f1 0x88f2 0x88fa 0x88fe 0x88ee 0x88fc 0x88f6 0x88fb ) ; 0xe440 ... 0xe4fe (block 67 0x88f0 0x88ec 0x88eb 0x899d 0x89a1 0x899f 0x899e 0x89e9 0x89eb 0x89e8 0x8aab 0x8a99 0x8a8b 0x8a92 0x8a8f 0x8a96 0x8c3d 0x8c68 0x8c69 0x8cd5 0x8ccf 0x8cd7 0x8d96 0x8e09 0x8e02 0x8dff 0x8e0d 0x8dfd 0x8e0a 0x8e03 0x8e07 0x8e06 0x8e05 0x8dfe 0x8e00 0x8e04 0x8f10 0x8f11 0x8f0e 0x8f0d 0x9123 0x911c 0x9120 0x9122 0x911f 0x911d 0x911a 0x9124 0x9121 0x911b 0x917a 0x9172 0x9179 0x9173 0x92a5 0x92a4 0x9276 0x929b 0x927a 0x92a0 0x9294 0x92aa 0x928d -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x92a6 0x929a 0x92ab 0x9279 0x9297 0x927f 0x92a3 0x92ee 0x928e 0x9282 0x9295 0x92a2 0x927d 0x9288 0x92a1 0x928a 0x9286 0x928c 0x9299 0x92a7 0x927e 0x9287 0x92a9 0x929d 0x928b 0x922d 0x969e 0x96a1 0x96ff 0x9758 0x977d 0x977a 0x977e 0x9783 0x9780 0x9782 0x977b 0x9784 0x9781 0x977f 0x97ce 0x97cd 0x9816 0x98ad 0x98ae 0x9902 0x9900 0x9907 0x999d 0x999c 0x99c3 0x99b9 0x99bb 0x99ba 0x99c2 0x99bd 0x99c7 0x9ab1 0x9ae3 0x9ae7 0x9b3e 0x9b3f 0x9b60 0x9b61 0x9b5f 0x9cf1 0x9cf2 0x9cf5 0x9ea7 0x50ff 0x5103 0x5130 0x50f8 0x5106 0x5107 0x50f6 0x50fe 0x510b 0x510c 0x50fd 0x510a 0x528b 0x528c 0x52f1 0x52ef 0x5648 0x5642 0x564c 0x5635 0x5641 0x564a 0x5649 0x5646 0x5658 ) ; 0xe540 ... 0xe5fe (block 68 0x565a 0x5640 0x5633 0x563d 0x562c 0x563e 0x5638 0x562a 0x563a 0x571a 0x58ab 0x589d 0x58b1 0x58a0 0x58a3 0x58af 0x58ac 0x58a5 0x58a1 0x58ff 0x5aff 0x5af4 0x5afd 0x5af7 0x5af6 0x5b03 0x5af8 0x5b02 0x5af9 0x5b01 0x5b07 0x5b05 0x5b0f 0x5c67 0x5d99 0x5d97 0x5d9f 0x5d92 0x5da2 0x5d93 0x5d95 0x5da0 0x5d9c 0x5da1 0x5d9a 0x5d9e 0x5e69 0x5e5d 0x5e60 0x5e5c 0x7df3 0x5edb 0x5ede 0x5ee1 0x5f49 0x5fb2 0x618b 0x6183 0x6179 0x61b1 0x61b0 0x61a2 0x6189 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x619b 0x6193 0x61af 0x61ad 0x619f 0x6192 0x61aa 0x61a1 0x618d 0x6166 0x61b3 0x622d 0x646e 0x6470 0x6496 0x64a0 0x6485 0x6497 0x649c 0x648f 0x648b 0x648a 0x648c 0x64a3 0x649f 0x6468 0x64b1 0x6498 0x6576 0x657a 0x6579 0x657b 0x65b2 0x65b3 0x66b5 0x66b0 0x66a9 0x66b2 0x66b7 0x66aa 0x66af 0x6a00 0x6a06 0x6a17 0x69e5 0x69f8 0x6a15 0x69f1 0x69e4 0x6a20 0x69ff 0x69ec 0x69e2 0x6a1b 0x6a1d 0x69fe 0x6a27 0x69f2 0x69ee 0x6a14 0x69f7 0x69e7 0x6a40 0x6a08 0x69e6 0x69fb 0x6a0d 0x69fc 0x69eb 0x6a09 0x6a04 0x6a18 0x6a25 0x6a0f 0x69f6 0x6a26 0x6a07 0x69f4 0x6a16 0x6b51 0x6ba5 0x6ba3 0x6ba2 0x6ba6 0x6c01 0x6c00 0x6bff 0x6c02 0x6f41 0x6f26 0x6f7e 0x6f87 0x6fc6 0x6f92 ) ; 0xe640 ... 0xe6fe (block 69 0x6f8d 0x6f89 0x6f8c 0x6f62 0x6f4f 0x6f85 0x6f5a 0x6f96 0x6f76 0x6f6c 0x6f82 0x6f55 0x6f72 0x6f52 0x6f50 0x6f57 0x6f94 0x6f93 0x6f5d 0x6f00 0x6f61 0x6f6b 0x6f7d 0x6f67 0x6f90 0x6f53 0x6f8b 0x6f69 0x6f7f 0x6f95 0x6f63 0x6f77 0x6f6a 0x6f7b 0x71b2 0x71af 0x719b 0x71b0 0x71a0 0x719a 0x71a9 0x71b5 0x719d 0x71a5 0x719e 0x71a4 0x71a1 0x71aa 0x719c 0x71a7 0x71b3 0x7298 0x729a 0x7358 0x7352 0x735e 0x735f 0x7360 0x735d 0x735b 0x7361 0x735a 0x7359 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x7362 0x7487 0x7489 0x748a 0x7486 0x7481 0x747d 0x7485 0x7488 0x747c 0x7479 0x7508 0x7507 0x757e 0x7625 0x761e 0x7619 0x761d 0x761c 0x7623 0x761a 0x7628 0x761b 0x769c 0x769d 0x769e 0x769b 0x778d 0x778f 0x7789 0x7788 0x78cd 0x78bb 0x78cf 0x78cc 0x78d1 0x78ce 0x78d4 0x78c8 0x78c3 0x78c4 0x78c9 0x799a 0x79a1 0x79a0 0x799c 0x79a2 0x799b 0x6b76 0x7a39 0x7ab2 0x7ab4 0x7ab3 0x7bb7 0x7bcb 0x7bbe 0x7bac 0x7bce 0x7baf 0x7bb9 0x7bca 0x7bb5 0x7cc5 0x7cc8 0x7ccc 0x7ccb 0x7df7 0x7ddb 0x7dea 0x7de7 0x7dd7 0x7de1 0x7e03 0x7dfa 0x7de6 0x7df6 0x7df1 0x7df0 0x7dee 0x7ddf 0x7f76 0x7fac 0x7fb0 0x7fad 0x7fed 0x7feb 0x7fea 0x7fec 0x7fe6 0x7fe8 0x8064 0x8067 0x81a3 0x819f ) ; 0xe740 ... 0xe7fe (block 70 0x819e 0x8195 0x81a2 0x8199 0x8197 0x8216 0x824f 0x8253 0x8252 0x8250 0x824e 0x8251 0x8524 0x853b 0x850f 0x8500 0x8529 0x850e 0x8509 0x850d 0x851f 0x850a 0x8527 0x851c 0x84fb 0x852b 0x84fa 0x8508 0x850c 0x84f4 0x852a 0x84f2 0x8515 0x84f7 0x84eb 0x84f3 0x84fc 0x8512 0x84ea 0x84e9 0x8516 0x84fe 0x8528 0x851d 0x852e 0x8502 0x84fd 0x851e 0x84f6 0x8531 0x8526 0x84e7 0x84e8 0x84f0 0x84ef 0x84f9 0x8518 0x8520 0x8530 0x850b 0x8519 0x852f 0x8662 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x8756 0x8763 0x8764 0x8777 0x87e1 0x8773 0x8758 0x8754 0x875b 0x8752 0x8761 0x875a 0x8751 0x875e 0x876d 0x876a 0x8750 0x874e 0x875f 0x875d 0x876f 0x876c 0x877a 0x876e 0x875c 0x8765 0x874f 0x877b 0x8775 0x8762 0x8767 0x8769 0x885a 0x8905 0x890c 0x8914 0x890b 0x8917 0x8918 0x8919 0x8906 0x8916 0x8911 0x890e 0x8909 0x89a2 0x89a4 0x89a3 0x89ed 0x89f0 0x89ec 0x8acf 0x8ac6 0x8ab8 0x8ad3 0x8ad1 0x8ad4 0x8ad5 0x8abb 0x8ad7 0x8abe 0x8ac0 0x8ac5 0x8ad8 0x8ac3 0x8aba 0x8abd 0x8ad9 0x8c3e 0x8c4d 0x8c8f 0x8ce5 0x8cdf 0x8cd9 0x8ce8 0x8cda 0x8cdd 0x8ce7 0x8da0 0x8d9c 0x8da1 0x8d9b 0x8e20 0x8e23 0x8e25 0x8e24 0x8e2e 0x8e15 0x8e1b 0x8e16 0x8e11 0x8e19 0x8e26 0x8e27 ) ; 0xe840 ... 0xe8fe (block 71 0x8e14 0x8e12 0x8e18 0x8e13 0x8e1c 0x8e17 0x8e1a 0x8f2c 0x8f24 0x8f18 0x8f1a 0x8f20 0x8f23 0x8f16 0x8f17 0x9073 0x9070 0x906f 0x9067 0x906b 0x912f 0x912b 0x9129 0x912a 0x9132 0x9126 0x912e 0x9185 0x9186 0x918a 0x9181 0x9182 0x9184 0x9180 0x92d0 0x92c3 0x92c4 0x92c0 0x92d9 0x92b6 0x92cf 0x92f1 0x92df 0x92d8 0x92e9 0x92d7 0x92dd 0x92cc 0x92ef 0x92c2 0x92e8 0x92ca 0x92c8 0x92ce 0x92e6 0x92cd 0x92d5 0x92c9 0x92e0 0x92de 0x92e7 0x92d1 0x92d3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x92b5 0x92e1 0x92c6 0x92b4 0x957c 0x95ac 0x95ab 0x95ae 0x95b0 0x96a4 0x96a2 0x96d3 0x9705 0x9708 0x9702 0x975a 0x978a 0x978e 0x9788 0x97d0 0x97cf 0x981e 0x981d 0x9826 0x9829 0x9828 0x9820 0x981b 0x9827 0x98b2 0x9908 0x98fa 0x9911 0x9914 0x9916 0x9917 0x9915 0x99dc 0x99cd 0x99cf 0x99d3 0x99d4 0x99ce 0x99c9 0x99d6 0x99d8 0x99cb 0x99d7 0x99cc 0x9ab3 0x9aec 0x9aeb 0x9af3 0x9af2 0x9af1 0x9b46 0x9b43 0x9b67 0x9b74 0x9b71 0x9b66 0x9b76 0x9b75 0x9b70 0x9b68 0x9b64 0x9b6c 0x9cfc 0x9cfa 0x9cfd 0x9cff 0x9cf7 0x9d07 0x9d00 0x9cf9 0x9cfb 0x9d08 0x9d05 0x9d04 0x9e83 0x9ed3 0x9f0f 0x9f10 0x511c 0x5113 0x5117 0x511a 0x5111 0x51de 0x5334 0x53e1 0x5670 0x5660 0x566e ) ; 0xe940 ... 0xe9fe (block 72 0x5673 0x5666 0x5663 0x566d 0x5672 0x565e 0x5677 0x571c 0x571b 0x58c8 0x58bd 0x58c9 0x58bf 0x58ba 0x58c2 0x58bc 0x58c6 0x5b17 0x5b19 0x5b1b 0x5b21 0x5b14 0x5b13 0x5b10 0x5b16 0x5b28 0x5b1a 0x5b20 0x5b1e 0x5bef 0x5dac 0x5db1 0x5da9 0x5da7 0x5db5 0x5db0 0x5dae 0x5daa 0x5da8 0x5db2 0x5dad 0x5daf 0x5db4 0x5e67 0x5e68 0x5e66 0x5e6f 0x5ee9 0x5ee7 0x5ee6 0x5ee8 0x5ee5 0x5f4b 0x5fbc 0x619d 0x61a8 0x6196 0x61c5 0x61b4 0x61c6 0x61c1 0x61cc 0x61ba -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x61bf 0x61b8 0x618c 0x64d7 0x64d6 0x64d0 0x64cf 0x64c9 0x64bd 0x6489 0x64c3 0x64db 0x64f3 0x64d9 0x6533 0x657f 0x657c 0x65a2 0x66c8 0x66be 0x66c0 0x66ca 0x66cb 0x66cf 0x66bd 0x66bb 0x66ba 0x66cc 0x6723 0x6a34 0x6a66 0x6a49 0x6a67 0x6a32 0x6a68 0x6a3e 0x6a5d 0x6a6d 0x6a76 0x6a5b 0x6a51 0x6a28 0x6a5a 0x6a3b 0x6a3f 0x6a41 0x6a6a 0x6a64 0x6a50 0x6a4f 0x6a54 0x6a6f 0x6a69 0x6a60 0x6a3c 0x6a5e 0x6a56 0x6a55 0x6a4d 0x6a4e 0x6a46 0x6b55 0x6b54 0x6b56 0x6ba7 0x6baa 0x6bab 0x6bc8 0x6bc7 0x6c04 0x6c03 0x6c06 0x6fad 0x6fcb 0x6fa3 0x6fc7 0x6fbc 0x6fce 0x6fc8 0x6f5e 0x6fc4 0x6fbd 0x6f9e 0x6fca 0x6fa8 0x7004 0x6fa5 0x6fae 0x6fba 0x6fac 0x6faa 0x6fcf 0x6fbf 0x6fb8 ) ; 0xea40 ... 0xeafe (block 73 0x6fa2 0x6fc9 0x6fab 0x6fcd 0x6faf 0x6fb2 0x6fb0 0x71c5 0x71c2 0x71bf 0x71b8 0x71d6 0x71c0 0x71c1 0x71cb 0x71d4 0x71ca 0x71c7 0x71cf 0x71bd 0x71d8 0x71bc 0x71c6 0x71da 0x71db 0x729d 0x729e 0x7369 0x7366 0x7367 0x736c 0x7365 0x736b 0x736a 0x747f 0x749a 0x74a0 0x7494 0x7492 0x7495 0x74a1 0x750b 0x7580 0x762f 0x762d 0x7631 0x763d 0x7633 0x763c 0x7635 0x7632 0x7630 0x76bb 0x76e6 0x779a 0x779d 0x77a1 0x779c 0x779b 0x77a2 0x77a3 0x7795 0x7799 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x7797 0x78dd 0x78e9 0x78e5 0x78ea 0x78de 0x78e3 0x78db 0x78e1 0x78e2 0x78ed 0x78df 0x78e0 0x79a4 0x7a44 0x7a48 0x7a47 0x7ab6 0x7ab8 0x7ab5 0x7ab1 0x7ab7 0x7bde 0x7be3 0x7be7 0x7bdd 0x7bd5 0x7be5 0x7bda 0x7be8 0x7bf9 0x7bd4 0x7bea 0x7be2 0x7bdc 0x7beb 0x7bd8 0x7bdf 0x7cd2 0x7cd4 0x7cd7 0x7cd0 0x7cd1 0x7e12 0x7e21 0x7e17 0x7e0c 0x7e1f 0x7e20 0x7e13 0x7e0e 0x7e1c 0x7e15 0x7e1a 0x7e22 0x7e0b 0x7e0f 0x7e16 0x7e0d 0x7e14 0x7e25 0x7e24 0x7f43 0x7f7b 0x7f7c 0x7f7a 0x7fb1 0x7fef 0x802a 0x8029 0x806c 0x81b1 0x81a6 0x81ae 0x81b9 0x81b5 0x81ab 0x81b0 0x81ac 0x81b4 0x81b2 0x81b7 0x81a7 0x81f2 0x8255 0x8256 0x8257 0x8556 0x8545 0x856b 0x854d 0x8553 0x8561 0x8558 ) ; 0xeb40 ... 0xebfe (block 74 0x8540 0x8546 0x8564 0x8541 0x8562 0x8544 0x8551 0x8547 0x8563 0x853e 0x855b 0x8571 0x854e 0x856e 0x8575 0x8555 0x8567 0x8560 0x858c 0x8566 0x855d 0x8554 0x8565 0x856c 0x8663 0x8665 0x8664 0x879b 0x878f 0x8797 0x8793 0x8792 0x8788 0x8781 0x8796 0x8798 0x8779 0x8787 0x87a3 0x8785 0x8790 0x8791 0x879d 0x8784 0x8794 0x879c 0x879a 0x8789 0x891e 0x8926 0x8930 0x892d 0x892e 0x8927 0x8931 0x8922 0x8929 0x8923 0x892f 0x892c 0x891f 0x89f1 0x8ae0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x8ae2 0x8af2 0x8af4 0x8af5 0x8add 0x8b14 0x8ae4 0x8adf 0x8af0 0x8ac8 0x8ade 0x8ae1 0x8ae8 0x8aff 0x8aef 0x8afb 0x8c91 0x8c92 0x8c90 0x8cf5 0x8cee 0x8cf1 0x8cf0 0x8cf3 0x8d6c 0x8d6e 0x8da5 0x8da7 0x8e33 0x8e3e 0x8e38 0x8e40 0x8e45 0x8e36 0x8e3c 0x8e3d 0x8e41 0x8e30 0x8e3f 0x8ebd 0x8f36 0x8f2e 0x8f35 0x8f32 0x8f39 0x8f37 0x8f34 0x9076 0x9079 0x907b 0x9086 0x90fa 0x9133 0x9135 0x9136 0x9193 0x9190 0x9191 0x918d 0x918f 0x9327 0x931e 0x9308 0x931f 0x9306 0x930f 0x937a 0x9338 0x933c 0x931b 0x9323 0x9312 0x9301 0x9346 0x932d 0x930e 0x930d 0x92cb 0x931d 0x92fa 0x9325 0x9313 0x92f9 0x92f7 0x9334 0x9302 0x9324 0x92ff 0x9329 0x9339 0x9335 0x932a 0x9314 0x930c ) ; 0xec40 ... 0xecfe (block 75 0x930b 0x92fe 0x9309 0x9300 0x92fb 0x9316 0x95bc 0x95cd 0x95be 0x95b9 0x95ba 0x95b6 0x95bf 0x95b5 0x95bd 0x96a9 0x96d4 0x970b 0x9712 0x9710 0x9799 0x9797 0x9794 0x97f0 0x97f8 0x9835 0x982f 0x9832 0x9924 0x991f 0x9927 0x9929 0x999e 0x99ee 0x99ec 0x99e5 0x99e4 0x99f0 0x99e3 0x99ea 0x99e9 0x99e7 0x9ab9 0x9abf 0x9ab4 0x9abb 0x9af6 0x9afa 0x9af9 0x9af7 0x9b33 0x9b80 0x9b85 0x9b87 0x9b7c 0x9b7e 0x9b7b 0x9b82 0x9b93 0x9b92 0x9b90 0x9b7a 0x9b95 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x9b7d 0x9b88 0x9d25 0x9d17 0x9d20 0x9d1e 0x9d14 0x9d29 0x9d1d 0x9d18 0x9d22 0x9d10 0x9d19 0x9d1f 0x9e88 0x9e86 0x9e87 0x9eae 0x9ead 0x9ed5 0x9ed6 0x9efa 0x9f12 0x9f3d 0x5126 0x5125 0x5122 0x5124 0x5120 0x5129 0x52f4 0x5693 0x568c 0x568d 0x5686 0x5684 0x5683 0x567e 0x5682 0x567f 0x5681 0x58d6 0x58d4 0x58cf 0x58d2 0x5b2d 0x5b25 0x5b32 0x5b23 0x5b2c 0x5b27 0x5b26 0x5b2f 0x5b2e 0x5b7b 0x5bf1 0x5bf2 0x5db7 0x5e6c 0x5e6a 0x5fbe 0x5fbb 0x61c3 0x61b5 0x61bc 0x61e7 0x61e0 0x61e5 0x61e4 0x61e8 0x61de 0x64ef 0x64e9 0x64e3 0x64eb 0x64e4 0x64e8 0x6581 0x6580 0x65b6 0x65da 0x66d2 0x6a8d 0x6a96 0x6a81 0x6aa5 0x6a89 0x6a9f 0x6a9b 0x6aa1 0x6a9e 0x6a87 0x6a93 0x6a8e ) ; 0xed40 ... 0xedfe (block 76 0x6a95 0x6a83 0x6aa8 0x6aa4 0x6a91 0x6a7f 0x6aa6 0x6a9a 0x6a85 0x6a8c 0x6a92 0x6b5b 0x6bad 0x6c09 0x6fcc 0x6fa9 0x6ff4 0x6fd4 0x6fe3 0x6fdc 0x6fed 0x6fe7 0x6fe6 0x6fde 0x6ff2 0x6fdd 0x6fe2 0x6fe8 0x71e1 0x71f1 0x71e8 0x71f2 0x71e4 0x71f0 0x71e2 0x7373 0x736e 0x736f 0x7497 0x74b2 0x74ab 0x7490 0x74aa 0x74ad 0x74b1 0x74a5 0x74af 0x7510 0x7511 0x7512 0x750f 0x7584 0x7643 0x7648 0x7649 0x7647 0x76a4 0x76e9 0x77b5 0x77ab 0x77b2 0x77b7 0x77b6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x77b4 0x77b1 0x77a8 0x77f0 0x78f3 0x78fd 0x7902 0x78fb 0x78fc 0x78f2 0x7905 0x78f9 0x78fe 0x7904 0x79ab 0x79a8 0x7a5c 0x7a5b 0x7a56 0x7a58 0x7a54 0x7a5a 0x7abe 0x7ac0 0x7ac1 0x7c05 0x7c0f 0x7bf2 0x7c00 0x7bff 0x7bfb 0x7c0e 0x7bf4 0x7c0b 0x7bf3 0x7c02 0x7c09 0x7c03 0x7c01 0x7bf8 0x7bfd 0x7c06 0x7bf0 0x7bf1 0x7c10 0x7c0a 0x7ce8 0x7e2d 0x7e3c 0x7e42 0x7e33 0x9848 0x7e38 0x7e2a 0x7e49 0x7e40 0x7e47 0x7e29 0x7e4c 0x7e30 0x7e3b 0x7e36 0x7e44 0x7e3a 0x7f45 0x7f7f 0x7f7e 0x7f7d 0x7ff4 0x7ff2 0x802c 0x81bb 0x81c4 0x81cc 0x81ca 0x81c5 0x81c7 0x81bc 0x81e9 0x825b 0x825a 0x825c 0x8583 0x8580 0x858f 0x85a7 0x8595 0x85a0 0x858b 0x85a3 0x857b 0x85a4 0x859a 0x859e ) ; 0xee40 ... 0xeefe (block 77 0x8577 0x857c 0x8589 0x85a1 0x857a 0x8578 0x8557 0x858e 0x8596 0x8586 0x858d 0x8599 0x859d 0x8581 0x85a2 0x8582 0x8588 0x8585 0x8579 0x8576 0x8598 0x8590 0x859f 0x8668 0x87be 0x87aa 0x87ad 0x87c5 0x87b0 0x87ac 0x87b9 0x87b5 0x87bc 0x87ae 0x87c9 0x87c3 0x87c2 0x87cc 0x87b7 0x87af 0x87c4 0x87ca 0x87b4 0x87b6 0x87bf 0x87b8 0x87bd 0x87de 0x87b2 0x8935 0x8933 0x893c 0x893e 0x8941 0x8952 0x8937 0x8942 0x89ad 0x89af 0x89ae 0x89f2 0x89f3 0x8b1e -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x8b18 0x8b16 0x8b11 0x8b05 0x8b0b 0x8b22 0x8b0f 0x8b12 0x8b15 0x8b07 0x8b0d 0x8b08 0x8b06 0x8b1c 0x8b13 0x8b1a 0x8c4f 0x8c70 0x8c72 0x8c71 0x8c6f 0x8c95 0x8c94 0x8cf9 0x8d6f 0x8e4e 0x8e4d 0x8e53 0x8e50 0x8e4c 0x8e47 0x8f43 0x8f40 0x9085 0x907e 0x9138 0x919a 0x91a2 0x919b 0x9199 0x919f 0x91a1 0x919d 0x91a0 0x93a1 0x9383 0x93af 0x9364 0x9356 0x9347 0x937c 0x9358 0x935c 0x9376 0x9349 0x9350 0x9351 0x9360 0x936d 0x938f 0x934c 0x936a 0x9379 0x9357 0x9355 0x9352 0x934f 0x9371 0x9377 0x937b 0x9361 0x935e 0x9363 0x9367 0x9380 0x934e 0x9359 0x95c7 0x95c0 0x95c9 0x95c3 0x95c5 0x95b7 0x96ae 0x96b0 0x96ac 0x9720 0x971f 0x9718 0x971d 0x9719 0x979a 0x97a1 0x979c ) ; 0xef40 ... 0xeffe (block 78 0x979e 0x979d 0x97d5 0x97d4 0x97f1 0x9841 0x9844 0x984a 0x9849 0x9845 0x9843 0x9925 0x992b 0x992c 0x992a 0x9933 0x9932 0x992f 0x992d 0x9931 0x9930 0x9998 0x99a3 0x99a1 0x9a02 0x99fa 0x99f4 0x99f7 0x99f9 0x99f8 0x99f6 0x99fb 0x99fd 0x99fe 0x99fc 0x9a03 0x9abe 0x9afe 0x9afd 0x9b01 0x9afc 0x9b48 0x9b9a 0x9ba8 0x9b9e 0x9b9b 0x9ba6 0x9ba1 0x9ba5 0x9ba4 0x9b86 0x9ba2 0x9ba0 0x9baf 0x9d33 0x9d41 0x9d67 0x9d36 0x9d2e 0x9d2f 0x9d31 0x9d38 0x9d30 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x9d45 0x9d42 0x9d43 0x9d3e 0x9d37 0x9d40 0x9d3d 0x7ff5 0x9d2d 0x9e8a 0x9e89 0x9e8d 0x9eb0 0x9ec8 0x9eda 0x9efb 0x9eff 0x9f24 0x9f23 0x9f22 0x9f54 0x9fa0 0x5131 0x512d 0x512e 0x5698 0x569c 0x5697 0x569a 0x569d 0x5699 0x5970 0x5b3c 0x5c69 0x5c6a 0x5dc0 0x5e6d 0x5e6e 0x61d8 0x61df 0x61ed 0x61ee 0x61f1 0x61ea 0x61f0 0x61eb 0x61d6 0x61e9 0x64ff 0x6504 0x64fd 0x64f8 0x6501 0x6503 0x64fc 0x6594 0x65db 0x66da 0x66db 0x66d8 0x6ac5 0x6ab9 0x6abd 0x6ae1 0x6ac6 0x6aba 0x6ab6 0x6ab7 0x6ac7 0x6ab4 0x6aad 0x6b5e 0x6bc9 0x6c0b 0x7007 0x700c 0x700d 0x7001 0x7005 0x7014 0x700e 0x6fff 0x7000 0x6ffb 0x7026 0x6ffc 0x6ff7 0x700a 0x7201 0x71ff 0x71f9 0x7203 0x71fd 0x7376 ) ; 0xf040 ... 0xf0fe (block 79 0x74b8 0x74c0 0x74b5 0x74c1 0x74be 0x74b6 0x74bb 0x74c2 0x7514 0x7513 0x765c 0x7664 0x7659 0x7650 0x7653 0x7657 0x765a 0x76a6 0x76bd 0x76ec 0x77c2 0x77ba 0x78ff 0x790c 0x7913 0x7914 0x7909 0x7910 0x7912 0x7911 0x79ad 0x79ac 0x7a5f 0x7c1c 0x7c29 0x7c19 0x7c20 0x7c1f 0x7c2d 0x7c1d 0x7c26 0x7c28 0x7c22 0x7c25 0x7c30 0x7e5c 0x7e50 0x7e56 0x7e63 0x7e58 0x7e62 0x7e5f 0x7e51 0x7e60 0x7e57 0x7e53 0x7fb5 0x7fb3 0x7ff7 0x7ff8 0x8075 0x81d1 0x81d2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x81d0 0x825f 0x825e 0x85b4 0x85c6 0x85c0 0x85c3 0x85c2 0x85b3 0x85b5 0x85bd 0x85c7 0x85c4 0x85bf 0x85cb 0x85ce 0x85c8 0x85c5 0x85b1 0x85b6 0x85d2 0x8624 0x85b8 0x85b7 0x85be 0x8669 0x87e7 0x87e6 0x87e2 0x87db 0x87eb 0x87ea 0x87e5 0x87df 0x87f3 0x87e4 0x87d4 0x87dc 0x87d3 0x87ed 0x87d8 0x87e3 0x87a4 0x87d7 0x87d9 0x8801 0x87f4 0x87e8 0x87dd 0x8953 0x894b 0x894f 0x894c 0x8946 0x8950 0x8951 0x8949 0x8b2a 0x8b27 0x8b23 0x8b33 0x8b30 0x8b35 0x8b47 0x8b2f 0x8b3c 0x8b3e 0x8b31 0x8b25 0x8b37 0x8b26 0x8b36 0x8b2e 0x8b24 0x8b3b 0x8b3d 0x8b3a 0x8c42 0x8c75 0x8c99 0x8c98 0x8c97 0x8cfe 0x8d04 0x8d02 0x8d00 0x8e5c 0x8e62 0x8e60 0x8e57 0x8e56 0x8e5e 0x8e65 0x8e67 ) ; 0xf140 ... 0xf1fe (block 80 0x8e5b 0x8e5a 0x8e61 0x8e5d 0x8e69 0x8e54 0x8f46 0x8f47 0x8f48 0x8f4b 0x9128 0x913a 0x913b 0x913e 0x91a8 0x91a5 0x91a7 0x91af 0x91aa 0x93b5 0x938c 0x9392 0x93b7 0x939b 0x939d 0x9389 0x93a7 0x938e 0x93aa 0x939e 0x93a6 0x9395 0x9388 0x9399 0x939f 0x938d 0x93b1 0x9391 0x93b2 0x93a4 0x93a8 0x93b4 0x93a3 0x93a5 0x95d2 0x95d3 0x95d1 0x96b3 0x96d7 0x96da 0x5dc2 0x96df 0x96d8 0x96dd 0x9723 0x9722 0x9725 0x97ac 0x97ae 0x97a8 0x97ab 0x97a4 0x97aa -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x97a2 0x97a5 0x97d7 0x97d9 0x97d6 0x97d8 0x97fa 0x9850 0x9851 0x9852 0x98b8 0x9941 0x993c 0x993a 0x9a0f 0x9a0b 0x9a09 0x9a0d 0x9a04 0x9a11 0x9a0a 0x9a05 0x9a07 0x9a06 0x9ac0 0x9adc 0x9b08 0x9b04 0x9b05 0x9b29 0x9b35 0x9b4a 0x9b4c 0x9b4b 0x9bc7 0x9bc6 0x9bc3 0x9bbf 0x9bc1 0x9bb5 0x9bb8 0x9bd3 0x9bb6 0x9bc4 0x9bb9 0x9bbd 0x9d5c 0x9d53 0x9d4f 0x9d4a 0x9d5b 0x9d4b 0x9d59 0x9d56 0x9d4c 0x9d57 0x9d52 0x9d54 0x9d5f 0x9d58 0x9d5a 0x9e8e 0x9e8c 0x9edf 0x9f01 0x9f00 0x9f16 0x9f25 0x9f2b 0x9f2a 0x9f29 0x9f28 0x9f4c 0x9f55 0x5134 0x5135 0x5296 0x52f7 0x53b4 0x56ab 0x56ad 0x56a6 0x56a7 0x56aa 0x56ac 0x58da 0x58dd 0x58db 0x5912 0x5b3d 0x5b3e 0x5b3f 0x5dc3 0x5e70 ) ; 0xf240 ... 0xf2fe (block 81 0x5fbf 0x61fb 0x6507 0x6510 0x650d 0x6509 0x650c 0x650e 0x6584 0x65de 0x65dd 0x66de 0x6ae7 0x6ae0 0x6acc 0x6ad1 0x6ad9 0x6acb 0x6adf 0x6adc 0x6ad0 0x6aeb 0x6acf 0x6acd 0x6ade 0x6b60 0x6bb0 0x6c0c 0x7019 0x7027 0x7020 0x7016 0x702b 0x7021 0x7022 0x7023 0x7029 0x7017 0x7024 0x701c 0x702a 0x720c 0x720a 0x7207 0x7202 0x7205 0x72a5 0x72a6 0x72a4 0x72a3 0x72a1 0x74cb 0x74c5 0x74b7 0x74c3 0x7516 0x7660 0x77c9 0x77ca 0x77c4 0x77f1 0x791d 0x791b -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x7921 0x791c 0x7917 0x791e 0x79b0 0x7a67 0x7a68 0x7c33 0x7c3c 0x7c39 0x7c2c 0x7c3b 0x7cec 0x7cea 0x7e76 0x7e75 0x7e78 0x7e70 0x7e77 0x7e6f 0x7e7a 0x7e72 0x7e74 0x7e68 0x7f4b 0x7f4a 0x7f83 0x7f86 0x7fb7 0x7ffd 0x7ffe 0x8078 0x81d7 0x81d5 0x8264 0x8261 0x8263 0x85eb 0x85f1 0x85ed 0x85d9 0x85e1 0x85e8 0x85da 0x85d7 0x85ec 0x85f2 0x85f8 0x85d8 0x85df 0x85e3 0x85dc 0x85d1 0x85f0 0x85e6 0x85ef 0x85de 0x85e2 0x8800 0x87fa 0x8803 0x87f6 0x87f7 0x8809 0x880c 0x880b 0x8806 0x87fc 0x8808 0x87ff 0x880a 0x8802 0x8962 0x895a 0x895b 0x8957 0x8961 0x895c 0x8958 0x895d 0x8959 0x8988 0x89b7 0x89b6 0x89f6 0x8b50 0x8b48 0x8b4a 0x8b40 0x8b53 0x8b56 0x8b54 0x8b4b 0x8b55 ) ; 0xf340 ... 0xf3fe (block 82 0x8b51 0x8b42 0x8b52 0x8b57 0x8c43 0x8c77 0x8c76 0x8c9a 0x8d06 0x8d07 0x8d09 0x8dac 0x8daa 0x8dad 0x8dab 0x8e6d 0x8e78 0x8e73 0x8e6a 0x8e6f 0x8e7b 0x8ec2 0x8f52 0x8f51 0x8f4f 0x8f50 0x8f53 0x8fb4 0x9140 0x913f 0x91b0 0x91ad 0x93de 0x93c7 0x93cf 0x93c2 0x93da 0x93d0 0x93f9 0x93ec 0x93cc 0x93d9 0x93a9 0x93e6 0x93ca 0x93d4 0x93ee 0x93e3 0x93d5 0x93c4 0x93ce 0x93c0 0x93d2 0x93e7 0x957d 0x95da 0x95db 0x96e1 0x9729 0x972b 0x972c 0x9728 0x9726 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x97b3 0x97b7 0x97b6 0x97dd 0x97de 0x97df 0x985c 0x9859 0x985d 0x9857 0x98bf 0x98bd 0x98bb 0x98be 0x9948 0x9947 0x9943 0x99a6 0x99a7 0x9a1a 0x9a15 0x9a25 0x9a1d 0x9a24 0x9a1b 0x9a22 0x9a20 0x9a27 0x9a23 0x9a1e 0x9a1c 0x9a14 0x9ac2 0x9b0b 0x9b0a 0x9b0e 0x9b0c 0x9b37 0x9bea 0x9beb 0x9be0 0x9bde 0x9be4 0x9be6 0x9be2 0x9bf0 0x9bd4 0x9bd7 0x9bec 0x9bdc 0x9bd9 0x9be5 0x9bd5 0x9be1 0x9bda 0x9d77 0x9d81 0x9d8a 0x9d84 0x9d88 0x9d71 0x9d80 0x9d78 0x9d86 0x9d8b 0x9d8c 0x9d7d 0x9d6b 0x9d74 0x9d75 0x9d70 0x9d69 0x9d85 0x9d73 0x9d7b 0x9d82 0x9d6f 0x9d79 0x9d7f 0x9d87 0x9d68 0x9e94 0x9e91 0x9ec0 0x9efc 0x9f2d 0x9f40 0x9f41 0x9f4d 0x9f56 0x9f57 0x9f58 0x5337 0x56b2 ) ; 0xf440 ... 0xf4fe (block 83 0x56b5 0x56b3 0x58e3 0x5b45 0x5dc6 0x5dc7 0x5eee 0x5eef 0x5fc0 0x5fc1 0x61f9 0x6517 0x6516 0x6515 0x6513 0x65df 0x66e8 0x66e3 0x66e4 0x6af3 0x6af0 0x6aea 0x6ae8 0x6af9 0x6af1 0x6aee 0x6aef 0x703c 0x7035 0x702f 0x7037 0x7034 0x7031 0x7042 0x7038 0x703f 0x703a 0x7039 0x7040 0x703b 0x7033 0x7041 0x7213 0x7214 0x72a8 0x737d 0x737c 0x74ba 0x76ab 0x76aa 0x76be 0x76ed 0x77cc 0x77ce 0x77cf 0x77cd 0x77f2 0x7925 0x7923 0x7927 0x7928 0x7924 0x7929 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x79b2 0x7a6e 0x7a6c 0x7a6d 0x7af7 0x7c49 0x7c48 0x7c4a 0x7c47 0x7c45 0x7cee 0x7e7b 0x7e7e 0x7e81 0x7e80 0x7fba 0x7fff 0x8079 0x81db 0x81d9 0x820b 0x8268 0x8269 0x8622 0x85ff 0x8601 0x85fe 0x861b 0x8600 0x85f6 0x8604 0x8609 0x8605 0x860c 0x85fd 0x8819 0x8810 0x8811 0x8817 0x8813 0x8816 0x8963 0x8966 0x89b9 0x89f7 0x8b60 0x8b6a 0x8b5d 0x8b68 0x8b63 0x8b65 0x8b67 0x8b6d 0x8dae 0x8e86 0x8e88 0x8e84 0x8f59 0x8f56 0x8f57 0x8f55 0x8f58 0x8f5a 0x908d 0x9143 0x9141 0x91b7 0x91b5 0x91b2 0x91b3 0x940b 0x9413 0x93fb 0x9420 0x940f 0x9414 0x93fe 0x9415 0x9410 0x9428 0x9419 0x940d 0x93f5 0x9400 0x93f7 0x9407 0x940e 0x9416 0x9412 0x93fa 0x9409 0x93f8 0x940a 0x93ff ) ; 0xf540 ... 0xf5fe (block 84 0x93fc 0x940c 0x93f6 0x9411 0x9406 0x95de 0x95e0 0x95df 0x972e 0x972f 0x97b9 0x97bb 0x97fd 0x97fe 0x9860 0x9862 0x9863 0x985f 0x98c1 0x98c2 0x9950 0x994e 0x9959 0x994c 0x994b 0x9953 0x9a32 0x9a34 0x9a31 0x9a2c 0x9a2a 0x9a36 0x9a29 0x9a2e 0x9a38 0x9a2d 0x9ac7 0x9aca 0x9ac6 0x9b10 0x9b12 0x9b11 0x9c0b 0x9c08 0x9bf7 0x9c05 0x9c12 0x9bf8 0x9c40 0x9c07 0x9c0e 0x9c06 0x9c17 0x9c14 0x9c09 0x9d9f 0x9d99 0x9da4 0x9d9d 0x9d92 0x9d98 0x9d90 0x9d9b -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x9da0 0x9d94 0x9d9c 0x9daa 0x9d97 0x9da1 0x9d9a 0x9da2 0x9da8 0x9d9e 0x9da3 0x9dbf 0x9da9 0x9d96 0x9da6 0x9da7 0x9e99 0x9e9b 0x9e9a 0x9ee5 0x9ee4 0x9ee7 0x9ee6 0x9f30 0x9f2e 0x9f5b 0x9f60 0x9f5e 0x9f5d 0x9f59 0x9f91 0x513a 0x5139 0x5298 0x5297 0x56c3 0x56bd 0x56be 0x5b48 0x5b47 0x5dcb 0x5dcf 0x5ef1 0x61fd 0x651b 0x6b02 0x6afc 0x6b03 0x6af8 0x6b00 0x7043 0x7044 0x704a 0x7048 0x7049 0x7045 0x7046 0x721d 0x721a 0x7219 0x737e 0x7517 0x766a 0x77d0 0x792d 0x7931 0x792f 0x7c54 0x7c53 0x7cf2 0x7e8a 0x7e87 0x7e88 0x7e8b 0x7e86 0x7e8d 0x7f4d 0x7fbb 0x8030 0x81dd 0x8618 0x862a 0x8626 0x861f 0x8623 0x861c 0x8619 0x8627 0x862e 0x8621 0x8620 0x8629 0x861e 0x8625 ) ; 0xf640 ... 0xf6fe (block 85 0x8829 0x881d 0x881b 0x8820 0x8824 0x881c 0x882b 0x884a 0x896d 0x8969 0x896e 0x896b 0x89fa 0x8b79 0x8b78 0x8b45 0x8b7a 0x8b7b 0x8d10 0x8d14 0x8daf 0x8e8e 0x8e8c 0x8f5e 0x8f5b 0x8f5d 0x9146 0x9144 0x9145 0x91b9 0x943f 0x943b 0x9436 0x9429 0x943d 0x943c 0x9430 0x9439 0x942a 0x9437 0x942c 0x9440 0x9431 0x95e5 0x95e4 0x95e3 0x9735 0x973a 0x97bf 0x97e1 0x9864 0x98c9 0x98c6 0x98c0 0x9958 0x9956 0x9a39 0x9a3d 0x9a46 0x9a44 0x9a42 0x9a41 0x9a3a -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x9a3f 0x9acd 0x9b15 0x9b17 0x9b18 0x9b16 0x9b3a 0x9b52 0x9c2b 0x9c1d 0x9c1c 0x9c2c 0x9c23 0x9c28 0x9c29 0x9c24 0x9c21 0x9db7 0x9db6 0x9dbc 0x9dc1 0x9dc7 0x9dca 0x9dcf 0x9dbe 0x9dc5 0x9dc3 0x9dbb 0x9db5 0x9dce 0x9db9 0x9dba 0x9dac 0x9dc8 0x9db1 0x9dad 0x9dcc 0x9db3 0x9dcd 0x9db2 0x9e7a 0x9e9c 0x9eeb 0x9eee 0x9eed 0x9f1b 0x9f18 0x9f1a 0x9f31 0x9f4e 0x9f65 0x9f64 0x9f92 0x4eb9 0x56c6 0x56c5 0x56cb 0x5971 0x5b4b 0x5b4c 0x5dd5 0x5dd1 0x5ef2 0x6521 0x6520 0x6526 0x6522 0x6b0b 0x6b08 0x6b09 0x6c0d 0x7055 0x7056 0x7057 0x7052 0x721e 0x721f 0x72a9 0x737f 0x74d8 0x74d5 0x74d9 0x74d7 0x766d 0x76ad 0x7935 0x79b4 0x7a70 0x7a71 0x7c57 0x7c5c 0x7c59 0x7c5b 0x7c5a ) ; 0xf740 ... 0xf7fe (block 86 0x7cf4 0x7cf1 0x7e91 0x7f4f 0x7f87 0x81de 0x826b 0x8634 0x8635 0x8633 0x862c 0x8632 0x8636 0x882c 0x8828 0x8826 0x882a 0x8825 0x8971 0x89bf 0x89be 0x89fb 0x8b7e 0x8b84 0x8b82 0x8b86 0x8b85 0x8b7f 0x8d15 0x8e95 0x8e94 0x8e9a 0x8e92 0x8e90 0x8e96 0x8e97 0x8f60 0x8f62 0x9147 0x944c 0x9450 0x944a 0x944b 0x944f 0x9447 0x9445 0x9448 0x9449 0x9446 0x973f 0x97e3 0x986a 0x9869 0x98cb 0x9954 0x995b 0x9a4e 0x9a53 0x9a54 0x9a4c 0x9a4f 0x9a48 0x9a4a -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x9a49 0x9a52 0x9a50 0x9ad0 0x9b19 0x9b2b 0x9b3b 0x9b56 0x9b55 0x9c46 0x9c48 0x9c3f 0x9c44 0x9c39 0x9c33 0x9c41 0x9c3c 0x9c37 0x9c34 0x9c32 0x9c3d 0x9c36 0x9ddb 0x9dd2 0x9dde 0x9dda 0x9dcb 0x9dd0 0x9ddc 0x9dd1 0x9ddf 0x9de9 0x9dd9 0x9dd8 0x9dd6 0x9df5 0x9dd5 0x9ddd 0x9eb6 0x9ef0 0x9f35 0x9f33 0x9f32 0x9f42 0x9f6b 0x9f95 0x9fa2 0x513d 0x5299 0x58e8 0x58e7 0x5972 0x5b4d 0x5dd8 0x882f 0x5f4f 0x6201 0x6203 0x6204 0x6529 0x6525 0x6596 0x66eb 0x6b11 0x6b12 0x6b0f 0x6bca 0x705b 0x705a 0x7222 0x7382 0x7381 0x7383 0x7670 0x77d4 0x7c67 0x7c66 0x7e95 0x826c 0x863a 0x8640 0x8639 0x863c 0x8631 0x863b 0x863e 0x8830 0x8832 0x882e 0x8833 0x8976 0x8974 0x8973 0x89fe ) ; 0xf840 ... 0xf8fe (block 87 0x8b8c 0x8b8e 0x8b8b 0x8b88 0x8c45 0x8d19 0x8e98 0x8f64 0x8f63 0x91bc 0x9462 0x9455 0x945d 0x9457 0x945e 0x97c4 0x97c5 0x9800 0x9a56 0x9a59 0x9b1e 0x9b1f 0x9b20 0x9c52 0x9c58 0x9c50 0x9c4a 0x9c4d 0x9c4b 0x9c55 0x9c59 0x9c4c 0x9c4e 0x9dfb 0x9df7 0x9def 0x9de3 0x9deb 0x9df8 0x9de4 0x9df6 0x9de1 0x9dee 0x9de6 0x9df2 0x9df0 0x9de2 0x9dec 0x9df4 0x9df3 0x9de8 0x9ded 0x9ec2 0x9ed0 0x9ef2 0x9ef3 0x9f06 0x9f1c 0x9f38 0x9f37 0x9f36 0x9f43 0x9f4f -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x9f71 0x9f70 0x9f6e 0x9f6f 0x56d3 0x56cd 0x5b4e 0x5c6d 0x652d 0x66ed 0x66ee 0x6b13 0x705f 0x7061 0x705d 0x7060 0x7223 0x74db 0x74e5 0x77d5 0x7938 0x79b7 0x79b6 0x7c6a 0x7e97 0x7f89 0x826d 0x8643 0x8838 0x8837 0x8835 0x884b 0x8b94 0x8b95 0x8e9e 0x8e9f 0x8ea0 0x8e9d 0x91be 0x91bd 0x91c2 0x946b 0x9468 0x9469 0x96e5 0x9746 0x9743 0x9747 0x97c7 0x97e5 0x9a5e 0x9ad5 0x9b59 0x9c63 0x9c67 0x9c66 0x9c62 0x9c5e 0x9c60 0x9e02 0x9dfe 0x9e07 0x9e03 0x9e06 0x9e05 0x9e00 0x9e01 0x9e09 0x9dff 0x9dfd 0x9e04 0x9ea0 0x9f1e 0x9f46 0x9f74 0x9f75 0x9f76 0x56d4 0x652e 0x65b8 0x6b18 0x6b19 0x6b17 0x6b1a 0x7062 0x7226 0x72aa 0x77d8 0x77d9 0x7939 0x7c69 0x7c6b 0x7cf6 0x7e9a ) ; 0xf940 ... 0xf9fe (block 88 0x7e98 0x7e9b 0x7e99 0x81e0 0x81e1 0x8646 0x8647 0x8648 0x8979 0x897a 0x897c 0x897b 0x89ff 0x8b98 0x8b99 0x8ea5 0x8ea4 0x8ea3 0x946e 0x946d 0x946f 0x9471 0x9473 0x9749 0x9872 0x995f 0x9c68 0x9c6e 0x9c6d 0x9e0b 0x9e0d 0x9e10 0x9e0f 0x9e12 0x9e11 0x9ea1 0x9ef5 0x9f09 0x9f47 0x9f78 0x9f7b 0x9f7a 0x9f79 0x571e 0x7066 0x7c6f 0x883c 0x8db2 0x8ea6 0x91c3 0x9474 0x9478 0x9476 0x9475 0x9a60 0x9c74 0x9c73 0x9c71 0x9c75 0x9e14 0x9e13 0x9ef6 0x9f0a -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x9fa4 0x7068 0x7065 0x7cf7 0x866a 0x883e 0x883d 0x883f 0x8b9e 0x8c9c 0x8ea9 0x8ec9 0x974b 0x9873 0x9874 0x98cc 0x9961 0x99ab 0x9a64 0x9a66 0x9a67 0x9b24 0x9e15 0x9e17 0x9f48 0x6207 0x6b1e 0x7227 0x864c 0x8ea8 0x9482 0x9480 0x9481 0x9a69 0x9a68 0x9b2e 0x9e19 0x7229 0x864b 0x8b9f 0x9483 0x9c79 0x9eb7 0x7675 0x9a6b 0x9c7a 0x9e1d 0x7069 0x706a 0x9ea4 0x9f7e 0x9f49 0x9f98 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) vflib3-3.6.14.dfsg/ccv/cns11643-1_unicode.ccv0000644000175000017500000014026507006213677017602 0ustar mohuramohura; Conversion table: CNS11643-1 ==> UNICODE (charset-external-name CNS11643-1) (charset-external-encoding ISO2022) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type random-arrays) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x121) (c1-max 0x17d) (c2-min 0x21) (c2-max 0x7e) (block-size 256) (nblocks 65) ; 0x12121 ... 0x1217e (block 0 0x3000 0xff0c 0x3001 0x3002 0xff0e 0x30fb 0xff1b 0xff1a 0xff1f 0xff01 0xfe30 0x2026 0x2025 0xfe50 0xfe51 0xfe52 0x00b7 0xfe54 0xfe55 0xfe56 0xfe57 0xfe31 0x2014 0xfe32 0x2013 -1 -1 -1 -1 0xff08 0xff09 0xfe35 0xfe36 0xff5b 0xff5d 0xfe37 0xfe38 0x3014 0x3015 0xfe39 0xfe3a 0x3010 0x3011 0xfe3b 0xfe3c 0x300a 0x300b 0xfe3d 0xfe3e 0x3008 0x3009 0xfe3f 0xfe40 0x300c 0x300d 0xfe41 0xfe42 0x300e 0x300f 0xfe43 0xfe44 0xfe59 0xfe5a 0xfe5b 0xfe5c 0xfe5d 0xfe5e 0x2018 0x2019 0x201c 0x201d 0x301d 0x301e 0x2032 0x2035 0xff03 0xff06 0xff0a 0x203b 0x00a7 0x3003 0x25cb 0x25cf 0x25b3 0x25b2 0x25ce 0x2606 0x2605 0x25c7 0x25c6 0x25a1 0x25a0 0x25bd 0x25bc ) ; 0x12221 ... 0x1227e (block 1 0x32a3 0x2105 0x203e -1 0xff3f -1 0xfe49 0xfe4a 0xfe4d 0xfe4e 0xfe4b 0xfe4c 0xfe5f 0xfe60 0xfe61 0xff0b 0xff0d 0x00d7 0x00f7 0x00b1 0x221a 0xff1c 0xff1e 0xff1d 0x2266 0x2267 0x2260 0x221e 0x2252 0x2261 0xfe62 0xfe63 0xfe64 0xfe66 0xfe65 0x223c 0x2229 0x222a 0x22a5 0x2220 0x221f 0x22bf 0x33d2 0x33d1 0x222b 0x222e 0x2235 0x2234 0x2640 0x2642 0x2641 0x2609 0x2191 0x2193 0x2192 0x2190 0x2196 0x2197 0x2199 0x2198 0x2016 0xff5c 0xff0f 0xff3c 0x2215 0xfe68 0xff04 0xffe5 0x3012 0xffe0 0xffe1 0xff05 0xff20 0x2103 0x2109 0xfe69 0xfe6a 0xfe6b 0x33d5 0x339c 0x339d 0x339e 0x33ce 0x33a1 0x338e 0x338f 0x33c4 0x00b0 0x5159 0x515b 0x515e 0x515d 0x5161 0x5163 ) ; 0x12321 ... 0x1237e (block 2 0x55e7 0x74e9 0x7cce 0x2581 0x2582 0x2583 0x2584 0x2585 0x2586 0x2587 0x2588 0x258f 0x258e 0x258d 0x258c 0x258b 0x258a 0x2589 0x253c 0x2534 0x252c 0x2524 0x251c 0x2594 0x2500 0x2502 0x2595 0x250c 0x2510 0x2514 0x2518 0x256d 0x256e 0x2570 0x256f 0x2550 0x255e 0x256a 0x2561 0x25e2 0x25e3 0x25e5 0x25e4 0x2571 0x2572 0x2573 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x12421 ... 0x1247e (block 3 0xff10 0xff11 0xff12 0xff13 0xff14 0xff15 0xff16 0xff17 0xff18 0xff19 0x2160 0x2161 0x2162 0x2163 0x2164 0x2165 0x2166 0x2167 0x2168 0x2169 0x3021 0x3022 0x3023 0x3024 0x3025 0x3026 0x3027 0x3028 0x3029 -1 0x5344 -1 0xff21 0xff22 0xff23 0xff24 0xff25 0xff26 0xff27 0xff28 0xff29 0xff2a 0xff2b 0xff2c 0xff2d 0xff2e 0xff2f 0xff30 0xff31 0xff32 0xff33 0xff34 0xff35 0xff36 0xff37 0xff38 0xff39 0xff3a 0xff41 0xff42 0xff43 0xff44 0xff45 0xff46 0xff47 0xff48 0xff49 0xff4a 0xff4b 0xff4c 0xff4d 0xff4e 0xff4f 0xff50 0xff51 0xff52 0xff53 0xff54 0xff55 0xff56 0xff57 0xff58 0xff59 0xff5a 0x0391 0x0392 0x0393 0x0394 0x0395 0x0396 0x0397 0x0398 0x0399 0x039a ) ; 0x12521 ... 0x1257e (block 4 0x039b 0x039c 0x039d 0x039e 0x039f 0x03a0 0x03a1 0x03a3 0x03a4 0x03a5 0x03a6 0x03a7 0x03a8 0x03a9 0x03b1 0x03b2 0x03b3 0x03b4 0x03b5 0x03b6 0x03b7 0x03b8 0x03b9 0x03ba 0x03bb 0x03bc 0x03bd 0x03be 0x03bf 0x03c0 0x03c1 0x03c3 0x03c4 0x03c5 0x03c6 0x03c7 0x03c8 0x03c9 0x3105 0x3106 0x3107 0x3108 0x3109 0x310a 0x310b 0x310c 0x310d 0x310e 0x310f 0x3110 0x3111 0x3112 0x3113 0x3114 0x3115 0x3116 0x3117 0x3118 0x3119 0x311a 0x311b 0x311c 0x311d 0x311e 0x311f 0x3120 0x3121 0x3122 0x3123 0x3124 0x3125 0x3126 0x3127 0x3128 0x3129 0x02d9 0x02c9 0x02ca 0x02c7 0x02cb -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x12621 ... 0x1267e (block 5 0x2460 0x2461 0x2462 0x2463 0x2464 0x2465 0x2466 0x2467 0x2468 0x2469 0x2474 0x2475 0x2476 0x2477 0x2478 0x2479 0x247a 0x247b 0x247c 0x247d 0x2170 0x2171 0x2172 0x2173 0x2174 0x2175 0x2176 0x2177 0x2178 0x2179 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x14221 ... 0x1427e (block 33 0x2400 0x2401 0x2402 0x2403 0x2404 0x2405 0x2406 0x2407 0x2408 0x2409 0x240a 0x240b 0x240c 0x240d 0x240e 0x240f 0x2410 0x2411 0x2412 0x2413 0x2414 0x2415 0x2416 0x2417 0x2418 0x2419 0x241a 0x241b 0x241c 0x241d 0x241e 0x241f 0x2421 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ; 0x14421 ... 0x1447e (block 35 0x4e00 0x4e59 0x4e01 0x4e03 0x4e43 0x4e5d 0x4e86 0x4e8c 0x4eba 0x513f 0x5165 0x516b 0x51e0 0x5200 0x5201 0x529b 0x5315 0x5341 0x535c 0x53c8 0x4e09 0x4e0b 0x4e08 0x4e0a 0x4e2b 0x4e38 0x51e1 0x4e45 0x4e48 0x4e5f 0x4e5e 0x4e8e 0x4ea1 0x5140 0x5203 0x52fa 0x5343 0x53c9 0x53e3 0x571f 0x58eb 0x5915 0x5927 0x5973 0x5b50 0x5b51 0x5b53 0x5bf8 0x5c0f 0x5c22 0x5c38 0x5c71 0x5ddd 0x5de5 0x5df1 0x5df2 0x5df3 0x5dfe 0x5e72 0x5efe 0x5f0b 0x5f13 0x624d 0x4e11 0x4e10 0x4e0d 0x4e2d 0x4e30 0x4e39 0x4e4b 0x5c39 0x4e88 0x4e91 0x4e95 0x4e92 0x4e94 0x4ea2 0x4ec1 0x4ec0 0x4ec3 0x4ec6 0x4ec7 0x4ecd 0x4eca 0x4ecb 0x4ec4 0x5143 0x5141 0x5167 0x516d 0x516e 0x516c 0x5197 0x51f6 ) ; 0x14521 ... 0x1457e (block 36 0x5206 0x5207 0x5208 0x52fb 0x52fe 0x52ff 0x5316 0x5339 0x5348 0x5347 0x5345 0x535e 0x5384 0x53cb 0x53ca 0x53cd 0x58ec 0x5929 0x592b 0x592a 0x592d 0x5b54 0x5c11 0x5c24 0x5c3a 0x5c6f 0x5df4 0x5e7b 0x5eff 0x5f14 0x5f15 0x5fc3 0x6208 0x6236 0x624b 0x624e 0x652f 0x6587 0x6597 0x65a4 0x65b9 0x65e5 0x66f0 0x6708 0x6728 0x6b20 0x6b62 0x6b79 0x6bcb 0x6bd4 0x6bdb 0x6c0f 0x6c34 0x706b 0x722a 0x7236 0x723b 0x7247 0x7259 0x725b 0x72ac 0x738b 0x4e19 0x4e16 0x4e15 0x4e14 0x4e18 0x4e3b 0x4e4d 0x4e4f 0x4e4e 0x4ee5 0x4ed8 0x4ed4 0x4ed5 0x4ed6 0x4ed7 0x4ee3 0x4ee4 0x4ed9 0x4ede 0x5145 0x5144 0x5189 0x518a 0x51ac 0x51f9 0x51fa 0x51f8 0x520a 0x52a0 0x529f 0x5305 0x5306 ) ; 0x14621 ... 0x1467e (block 37 0x5317 0x531d 0x4edf 0x534a 0x5349 0x5361 0x5360 0x536f 0x536e 0x53bb 0x53ef 0x53e4 0x53f3 0x53ec 0x53ee 0x53e9 0x53e8 0x53fc 0x53f8 0x53f5 0x53eb 0x53e6 0x53ea 0x53f2 0x53f1 0x53f0 0x53e5 0x53ed 0x53fb 0x56db 0x56da 0x5916 0x592e 0x5931 0x5974 0x5976 0x5b55 0x5b83 0x5c3c 0x5de8 0x5de7 0x5de6 0x5e02 0x5e03 0x5e73 0x5e7c 0x5f01 0x5f18 0x5f17 0x5fc5 0x620a 0x6253 0x6254 0x6252 0x6251 0x65a5 0x65e6 0x672e 0x672c 0x672a 0x672b 0x672d 0x6b63 0x6bcd 0x6c11 0x6c10 0x6c38 0x6c41 0x6c40 0x6c3e 0x72af 0x7384 0x7389 0x74dc 0x74e6 0x7518 0x751f 0x7528 0x7529 0x7530 0x7531 0x7532 0x7533 0x758b 0x767d 0x76ae 0x76bf 0x76ee 0x77db 0x77e2 0x77f3 0x793a 0x79be 0x7a74 ) ; 0x14721 ... 0x1477e (block 38 0x7acb 0x4e1e 0x4e1f 0x4e52 0x4e53 0x4e69 0x4e99 0x4ea4 0x4ea6 0x4ea5 0x4eff 0x4f09 0x4f19 0x4f0a 0x4f15 0x4f0d 0x4f10 0x4f11 0x4f0f 0x4ef2 0x4ef6 0x4efb 0x4ef0 0x4ef3 0x4efd 0x4f01 0x4f0b 0x5149 0x5147 0x5146 0x5148 0x5168 0x5171 0x518d 0x51b0 0x5217 0x5211 0x5212 0x520e 0x5216 0x52a3 0x5308 0x5321 0x5320 0x5370 0x5371 0x5409 0x540f 0x540c 0x540a 0x5410 0x5401 0x540b 0x5404 0x5411 0x540d 0x5408 0x5403 0x540e 0x5406 0x5412 0x56e0 0x56de 0x56dd 0x5733 0x5730 0x5728 0x572d 0x572c 0x572f 0x5729 0x5919 0x591a 0x5937 0x5938 0x5984 0x5978 0x5983 0x597d 0x5979 0x5982 0x5981 0x5b57 0x5b58 0x5b87 0x5b88 0x5b85 0x5b89 0x5bfa 0x5c16 0x5c79 0x5dde 0x5e06 0x5e76 ) ; 0x14821 ... 0x1487e (block 39 0x5e74 0x5f0f 0x5f1b 0x5fd9 0x5fd6 0x620e 0x620c 0x620d 0x6210 0x6263 0x625b 0x6258 0x6536 0x65e9 0x65e8 0x65ec 0x65ed 0x66f2 0x66f3 0x6709 0x673d 0x6734 0x6731 0x6735 0x6b21 0x6b64 0x6b7b 0x6c16 0x6c5d 0x6c57 0x6c59 0x6c5f 0x6c60 0x6c50 0x6c55 0x6c61 0x6c5b 0x6c4d 0x6c4e 0x7070 0x725f 0x725d 0x767e 0x7af9 0x7c73 0x7cf8 0x7f36 0x7f8a 0x7fbd 0x8001 0x8003 0x800c 0x8012 0x8033 0x807f 0x8089 0x808b 0x808c 0x81e3 0x81ea 0x81f3 0x81fc 0x820c 0x821b 0x821f 0x826e 0x8272 0x827e 0x866b 0x8840 0x884c 0x8863 0x897f 0x9621 0x4e32 0x4ea8 0x4f4d 0x4f4f 0x4f47 0x4f57 0x4f5e 0x4f34 0x4f5b 0x4f55 0x4f30 0x4f50 0x4f51 0x4f3d 0x4f3a 0x4f38 0x4f43 0x4f54 0x4f3c 0x4f46 ) ; 0x14921 ... 0x1497e (block 40 0x4f63 0x4f5c 0x4f60 0x4f2f 0x4f4e 0x4f36 0x4f59 0x4f5d 0x4f48 0x4f5a 0x514c 0x514b 0x514d 0x5175 0x51b6 0x51b7 0x5225 0x5224 0x5229 0x522a 0x5228 0x52ab 0x52a9 0x52aa 0x52ac 0x5323 0x5373 0x5375 0x541d 0x542d 0x541e 0x543e 0x5426 0x544e 0x5427 0x5446 0x5443 0x5433 0x5448 0x5442 0x541b 0x5429 0x544a 0x5439 0x543b 0x5438 0x542e 0x5435 0x5436 0x5420 0x543c 0x5440 0x5431 0x542b 0x541f 0x542c 0x56ea 0x56f0 0x56e4 0x56eb 0x574a 0x5751 0x5740 0x574d 0x5747 0x574e 0x573e 0x5750 0x574f 0x573b 0x58ef 0x593e 0x599d 0x5992 0x59a8 0x599e 0x59a3 0x5999 0x5996 0x598d 0x59a4 0x5993 0x598a 0x59a5 0x5b5d 0x5b5c 0x5b5a 0x5b5b 0x5b8c 0x5b8b 0x5b8f 0x5c2c 0x5c40 0x5c41 ) ; 0x14a21 ... 0x14a7e (block 41 0x5c3f 0x5c3e 0x5c90 0x5c91 0x5c94 0x5c8c 0x5deb 0x5e0c 0x5e8f 0x5e87 0x5e8a 0x5ef7 0x5f04 0x5f1f 0x5f64 0x5f62 0x5f77 0x5f79 0x5fd8 0x5fcc 0x5fd7 0x5fcd 0x5ff1 0x5feb 0x5ff8 0x5fea 0x6212 0x6211 0x6284 0x6297 0x6296 0x6280 0x6276 0x6289 0x626d 0x628a 0x627c 0x627e 0x6279 0x6273 0x6292 0x626f 0x6298 0x626e 0x6295 0x6293 0x6291 0x6286 0x6539 0x653b 0x6538 0x65f1 0x66f4 0x675f 0x674e 0x674f 0x6750 0x6751 0x675c 0x6756 0x675e 0x6749 0x6746 0x6760 0x6753 0x6757 0x6b65 0x6bcf 0x6c42 0x6c5e 0x6c99 0x6c81 0x6c88 0x6c89 0x6c85 0x6c9b 0x6c6a 0x6c7a 0x6c90 0x6c70 0x6c8c 0x6c68 0x6c96 0x6c92 0x6c7d 0x6c83 0x6c72 0x6c7e 0x6c74 0x6c86 0x6c76 0x6c8d 0x6c94 0x6c98 ) ; 0x14b21 ... 0x14b7e (block 42 0x6c82 0x7076 0x707c 0x707d 0x7078 0x7262 0x7261 0x7260 0x72c4 0x72c2 0x7396 0x752c 0x752b 0x7537 0x7538 0x7682 0x76ef 0x77e3 0x79c1 0x79c0 0x79bf 0x7a76 0x7cfb 0x7f55 0x8096 0x8093 0x809d 0x8098 0x809b 0x809a 0x80b2 0x826f 0x8292 0x828b 0x828d 0x898b 0x89d2 0x8a00 0x8c37 0x8c46 0x8c55 0x8c9d 0x8d64 0x8d70 0x8db3 0x8eab 0x8eca 0x8f9b 0x8fb0 0x8fc2 0x8fc6 0x8fc5 0x8fc4 0x5de1 0x9091 0x90a2 0x90aa 0x90a6 0x90a3 0x9149 0x91c6 0x91cc 0x9632 0x962e 0x9631 0x962a 0x962c 0x4e26 0x4e56 0x4e73 0x4e8b 0x4e9b 0x4e9e 0x4eab 0x4eac 0x4f6f 0x4f9d 0x4f8d 0x4f73 0x4f7f 0x4f6c 0x4f9b 0x4f8b 0x4f86 0x4f83 0x4f70 0x4f75 0x4f88 0x4f69 0x4f7b 0x4f96 0x4f7e 0x4f8f 0x4f91 ) ; 0x14c21 ... 0x14c7e (block 43 0x4f7a 0x5154 0x5152 0x5155 0x5169 0x5177 0x5176 0x5178 0x51bd 0x51fd 0x523b 0x5238 0x5237 0x523a 0x5230 0x522e 0x5236 0x5241 0x52be 0x52bb 0x5352 0x5354 0x5353 0x5351 0x5366 0x5377 0x5378 0x5379 0x53d6 0x53d4 0x53d7 0x5473 0x5475 0x5496 0x5478 0x5495 0x5480 0x547b 0x5477 0x5484 0x5492 0x5486 0x547c 0x5490 0x5471 0x5476 0x548c 0x549a 0x5462 0x5468 0x548b 0x547d 0x548e 0x56fa 0x5783 0x5777 0x576a 0x5769 0x5761 0x5766 0x5764 0x577c 0x591c 0x5949 0x5947 0x5948 0x5944 0x5954 0x59be 0x59bb 0x59d4 0x59b9 0x59ae 0x59d1 0x59c6 0x59d0 0x59cd 0x59cb 0x59d3 0x59ca 0x59af 0x59b3 0x59d2 0x59c5 0x5b5f 0x5b64 0x5b63 0x5b97 0x5b9a 0x5b98 0x5b9c 0x5b99 0x5b9b 0x5c1a ) ; 0x14d21 ... 0x14d7e (block 44 0x5c48 0x5c45 0x5c46 0x5cb7 0x5ca1 0x5cb8 0x5ca9 0x5cab 0x5cb1 0x5cb3 0x5e18 0x5e1a 0x5e16 0x5e15 0x5e1b 0x5e11 0x5e78 0x5e9a 0x5e97 0x5e9c 0x5e95 0x5e96 0x5ef6 0x5f26 0x5f27 0x5f29 0x5f80 0x5f81 0x5f7f 0x5f7c 0x5fdd 0x5fe0 0x5ffd 0x5ff5 0x5fff 0x600f 0x6014 0x602f 0x6035 0x6016 0x602a 0x6015 0x6021 0x6027 0x6029 0x602b 0x601b 0x6216 0x6215 0x623f 0x623e 0x6240 0x627f 0x62c9 0x62cc 0x62c4 0x62bf 0x62c2 0x62b9 0x62d2 0x62db 0x62ab 0x62d3 0x62d4 0x62cb 0x62c8 0x62a8 0x62bd 0x62bc 0x62d0 0x62d9 0x62c7 0x62cd 0x62b5 0x62da 0x62b1 0x62d8 0x62d6 0x62d7 0x62c6 0x62ac 0x62ce 0x653e 0x65a7 0x65bc 0x65fa 0x6614 0x6613 0x660c 0x6606 0x6602 0x660e 0x6600 0x660f ) ; 0x14e21 ... 0x14e7e (block 45 0x6615 0x660a 0x6607 0x670d 0x670b 0x676d 0x678b 0x6795 0x6771 0x679c 0x6773 0x6777 0x6787 0x679d 0x6797 0x676f 0x6770 0x677f 0x6789 0x677e 0x6790 0x6775 0x679a 0x6793 0x677c 0x676a 0x6772 0x6b23 0x6b66 0x6b67 0x6b7f 0x6c13 0x6c1b 0x6ce3 0x6ce8 0x6cf3 0x6cb1 0x6ccc 0x6ce5 0x6cb3 0x6cbd 0x6cbe 0x6cbc 0x6ce2 0x6cab 0x6cd5 0x6cd3 0x6cb8 0x6cc4 0x6cb9 0x6cc1 0x6cae 0x6cd7 0x6cc5 0x6cf1 0x6cbf 0x6cbb 0x6ce1 0x6cdb 0x6cca 0x6cac 0x6cef 0x6cdc 0x6cd6 0x6ce0 0x7095 0x708e 0x7092 0x708a 0x7099 0x722c 0x722d 0x7238 0x7248 0x7267 0x7269 0x72c0 0x72ce 0x72d9 0x72d7 0x72d0 0x73a9 0x73a8 0x739f 0x73ab 0x73a5 0x753d 0x759d 0x7599 0x759a 0x7684 0x76c2 0x76f2 0x76f4 ) ; 0x14f21 ... 0x14f7e (block 46 0x77e5 0x77fd 0x793e 0x7940 0x7941 0x79c9 0x79c8 0x7a7a 0x7a79 0x7afa 0x7cfe 0x7f54 0x7f8c 0x7f8b 0x8005 0x80ba 0x80a5 0x80a2 0x80b1 0x80a1 0x80ab 0x80a9 0x80b4 0x80aa 0x80af 0x81e5 0x81fe 0x820d 0x82b3 0x829d 0x8299 0x82ad 0x82bd 0x829f 0x82b9 0x82b1 0x82ac 0x82a5 0x82af 0x82b8 0x82a3 0x82b0 0x82be 0x82b7 0x864e 0x8671 0x521d 0x8868 0x8ecb 0x8fce 0x8fd4 0x8fd1 0x90b5 0x90b8 0x90b1 0x90b6 0x91c7 0x91d1 0x9577 0x9580 0x961c 0x9640 0x963f 0x963b 0x9644 0x9642 0x96b9 0x96e8 0x9752 0x975e 0x4e9f 0x4ead 0x4eae 0x4fe1 0x4fb5 0x4faf 0x4fbf 0x4fe0 0x4fd1 0x4fcf 0x4fdd 0x4fc3 0x4fb6 0x4fd8 0x4fdf 0x4fca 0x4fd7 0x4fae 0x4fd0 0x4fc4 0x4fc2 0x4fda 0x4fce 0x4fde ) ; 0x15021 ... 0x1507e (block 47 0x4fb7 0x5157 0x5192 0x5191 0x51a0 0x524e 0x5243 0x524a 0x524d 0x524c 0x524b 0x5247 0x52c7 0x52c9 0x52c3 0x52c1 0x530d 0x5357 0x537b 0x539a 0x53db 0x54ac 0x54c0 0x54a8 0x54ce 0x54c9 0x54b8 0x54a6 0x54b3 0x54c7 0x54c2 0x54bd 0x54aa 0x54c1 0x54c4 0x54c8 0x54af 0x54ab 0x54b1 0x54bb 0x54a9 0x54a7 0x54bf 0x56ff 0x5782 0x578b 0x57a0 0x57a3 0x57a2 0x57ce 0x57ae 0x5793 0x5955 0x5951 0x594f 0x594e 0x5950 0x59dc 0x59d8 0x59ff 0x59e3 0x59e8 0x5a03 0x59e5 0x59ea 0x59da 0x59e6 0x5a01 0x59fb 0x5b69 0x5ba3 0x5ba6 0x5ba4 0x5ba2 0x5ba5 0x5c01 0x5c4e 0x5c4f 0x5c4d 0x5c4b 0x5cd9 0x5cd2 0x5df7 0x5e1d 0x5e25 0x5e1f 0x5e7d 0x5ea0 0x5ea6 0x5efa 0x5f08 0x5f2d 0x5f65 0x5f88 ) ; 0x15121 ... 0x1517e (block 48 0x5f85 0x5f8a 0x5f8b 0x5f87 0x5f8c 0x5f89 0x6012 0x601d 0x6020 0x6025 0x600e 0x6028 0x604d 0x6070 0x6068 0x6062 0x6046 0x6043 0x606c 0x606b 0x606a 0x6064 0x6241 0x62dc 0x6316 0x6309 0x62fc 0x62ed 0x6301 0x62ee 0x62fd 0x6307 0x62f1 0x62f7 0x62ef 0x62ec 0x62fe 0x62f4 0x6311 0x6302 0x653f 0x6545 0x65ab 0x65bd 0x65e2 0x6625 0x662d 0x6620 0x6627 0x662f 0x661f 0x6628 0x6631 0x6624 0x66f7 0x67ff 0x67d3 0x67f1 0x67d4 0x67d0 0x67ec 0x67b6 0x67af 0x67f5 0x67e9 0x67ef 0x67c4 0x67d1 0x67b4 0x67da 0x67e5 0x67b8 0x67cf 0x67de 0x67f3 0x67b0 0x67d9 0x67e2 0x67dd 0x67d2 0x6b6a 0x6b83 0x6b86 0x6bb5 0x6bd2 0x6bd7 0x6c1f 0x6cc9 0x6d0b 0x6d32 0x6d2a 0x6d41 0x6d25 0x6d0c ) ; 0x15221 ... 0x1527e (block 49 0x6d31 0x6d1e 0x6d17 0x6d3b 0x6d3d 0x6d3e 0x6d36 0x6d1b 0x6cf5 0x6d39 0x6d27 0x6d38 0x6d29 0x6d2e 0x6d35 0x6d0e 0x6d2b 0x70ab 0x70ba 0x70b3 0x70ac 0x70af 0x70ad 0x70b8 0x70ae 0x70a4 0x7230 0x7272 0x726f 0x7274 0x72e9 0x72e0 0x72e1 0x73b7 0x73ca 0x73bb 0x73b2 0x73cd 0x73c0 0x73b3 0x751a 0x752d 0x754f 0x754c 0x754e 0x754b 0x75ab 0x75a4 0x75a5 0x75a2 0x75a3 0x7678 0x7686 0x7687 0x7688 0x76c8 0x76c6 0x76c3 0x76c5 0x7701 0x76f9 0x76f8 0x7709 0x770b 0x76fe 0x76fc 0x7707 0x77dc 0x7802 0x7814 0x780c 0x780d 0x7946 0x7949 0x7948 0x7947 0x79b9 0x79ba 0x79d1 0x79d2 0x79cb 0x7a7f 0x7a81 0x7aff 0x7afd 0x7c7d 0x7d02 0x7d05 0x7d00 0x7d09 0x7d07 0x7d04 0x7d06 0x7f38 ) ; 0x15321 ... 0x1537e (block 50 0x7f8e 0x7fbf 0x8010 0x800d 0x8011 0x8036 0x80d6 0x80e5 0x80da 0x80c3 0x80c4 0x80cc 0x80e1 0x80db 0x80ce 0x80de 0x80e4 0x80dd 0x81f4 0x8222 0x82e7 0x8303 0x8305 0x82e3 0x82db 0x82e6 0x8304 0x82e5 0x8302 0x8309 0x82d2 0x82d7 0x82f1 0x8301 0x82dc 0x82d4 0x82d1 0x82de 0x82d3 0x82df 0x82ef 0x8306 0x8650 0x8679 0x867b 0x867a 0x884d 0x886b 0x8981 0x89d4 0x8a08 0x8a02 0x8a03 0x8c9e 0x8ca0 0x8d74 0x8d73 0x8db4 0x8ecd 0x8ecc 0x8ff0 0x8fe6 0x8fe2 0x8fea 0x8fe5 0x8fed 0x8feb 0x8fe4 0x8fe8 0x90ca 0x90ce 0x90c1 0x90c3 0x914b 0x914a 0x91cd 0x9582 0x9650 0x964b 0x964c 0x964d 0x9762 0x9769 0x97cb 0x97ed 0x97f3 0x9801 0x98a8 0x98db 0x98df 0x9996 0x9999 0x4e58 0x4eb3 ) ; 0x15421 ... 0x1547e (block 51 0x500c 0x500d 0x5023 0x4fef 0x5026 0x5025 0x4ff8 0x5029 0x5016 0x5006 0x503c 0x501f 0x501a 0x5012 0x5011 0x4ffa 0x5000 0x5014 0x5028 0x4ff1 0x5021 0x500b 0x5019 0x5018 0x4ff3 0x4fee 0x502d 0x502a 0x4ffe 0x502b 0x5009 0x517c 0x51a4 0x51a5 0x51a2 0x51cd 0x51cc 0x51c6 0x51cb 0x5256 0x525c 0x5254 0x525b 0x525d 0x532a 0x537f 0x539f 0x539d 0x53df 0x54e8 0x5510 0x5501 0x5537 0x54fc 0x54e5 0x54f2 0x5506 0x54fa 0x5514 0x54e9 0x54ed 0x54e1 0x5509 0x54ee 0x54ea 0x54e6 0x5527 0x5507 0x54fd 0x550f 0x5703 0x5704 0x57c2 0x57d4 0x57cb 0x57c3 0x5809 0x590f 0x5957 0x5958 0x595a 0x5a11 0x5a18 0x5a1c 0x5a1f 0x5a1b 0x5a13 0x59ec 0x5a20 0x5a23 0x5a29 0x5a25 0x5a0c 0x5a09 ) ; 0x15521 ... 0x1557e (block 52 0x5b6b 0x5c58 0x5bb0 0x5bb3 0x5bb6 0x5bb4 0x5bae 0x5bb5 0x5bb9 0x5bb8 0x5c04 0x5c51 0x5c55 0x5c50 0x5ced 0x5cfd 0x5cfb 0x5cea 0x5ce8 0x5cf0 0x5cf6 0x5d01 0x5cf4 0x5dee 0x5e2d 0x5e2b 0x5eab 0x5ead 0x5ea7 0x5f31 0x5f92 0x5f91 0x5f90 0x6059 0x6063 0x6065 0x6050 0x6055 0x606d 0x6069 0x606f 0x6084 0x609f 0x609a 0x608d 0x6094 0x608c 0x6085 0x6096 0x6247 0x62f3 0x6308 0x62ff 0x634e 0x633e 0x632f 0x6355 0x6342 0x6346 0x634f 0x6349 0x633a 0x6350 0x633d 0x632a 0x632b 0x6328 0x634d 0x634c 0x6548 0x6549 0x6599 0x65c1 0x65c5 0x6642 0x6649 0x664f 0x6643 0x6652 0x664c 0x6645 0x6641 0x66f8 0x6714 0x6715 0x6717 0x6821 0x6838 0x6848 0x6846 0x6853 0x6839 0x6842 0x6854 ) ; 0x15621 ... 0x1567e (block 53 0x6829 0x68b3 0x6817 0x684c 0x6851 0x683d 0x67f4 0x6850 0x6840 0x683c 0x6843 0x682a 0x6845 0x6813 0x6818 0x6841 0x6b8a 0x6b89 0x6bb7 0x6c23 0x6c27 0x6c28 0x6c26 0x6c24 0x6cf0 0x6d6a 0x6d95 0x6d88 0x6d87 0x6d66 0x6d78 0x6d77 0x6d59 0x6d93 0x6d6c 0x6d89 0x6d6e 0x6d5a 0x6d74 0x6d69 0x6d8c 0x6d8a 0x6d79 0x6d85 0x6d65 0x6d94 0x70ca 0x70d8 0x70e4 0x70d9 0x70c8 0x70cf 0x7239 0x7279 0x72fc 0x72f9 0x72fd 0x72f8 0x72f7 0x7386 0x73ed 0x7409 0x73ee 0x73e0 0x73ea 0x73de 0x7554 0x755d 0x755c 0x755a 0x7559 0x75be 0x75c5 0x75c7 0x75b2 0x75b3 0x75bd 0x75bc 0x75b9 0x75c2 0x75b8 0x768b 0x76b0 0x76ca 0x76cd 0x76ce 0x7729 0x771f 0x7720 0x7728 0x77e9 0x7830 0x7827 0x7838 ) ; 0x15721 ... 0x1577e (block 54 0x781d 0x7834 0x7837 0x7825 0x782d 0x7820 0x781f 0x7832 0x7955 0x7950 0x7960 0x795f 0x7956 0x795e 0x795d 0x7957 0x795a 0x79e4 0x79e3 0x79e7 0x79df 0x79e6 0x79e9 0x79d8 0x7a84 0x7a88 0x7ad9 0x7b06 0x7b11 0x7c89 0x7d21 0x7d17 0x7d0b 0x7d0a 0x7d20 0x7d22 0x7d14 0x7d10 0x7d15 0x7d1a 0x7d1c 0x7d0d 0x7d19 0x7d1b 0x7f3a 0x7f5f 0x7f94 0x7fc5 0x7fc1 0x8006 0x8004 0x8018 0x8015 0x8019 0x8017 0x803d 0x803f 0x80f1 0x8102 0x80f0 0x8105 0x80ed 0x80f4 0x8106 0x80f8 0x80f3 0x8108 0x80fd 0x810a 0x80fc 0x80ef 0x81ed 0x81ec 0x8200 0x8210 0x822a 0x822b 0x8228 0x822c 0x82bb 0x832b 0x8352 0x8354 0x834a 0x8338 0x8350 0x8349 0x8335 0x8334 0x834f 0x8332 0x8339 0x8336 0x8317 ) ; 0x15821 ... 0x1587e (block 55 0x8340 0x8331 0x8328 0x8343 0x8654 0x868a 0x86aa 0x8693 0x86a4 0x86a9 0x868c 0x86a3 0x869c 0x8870 0x8877 0x8881 0x8882 0x887d 0x8879 0x8a18 0x8a10 0x8a0e 0x8a0c 0x8a15 0x8a0a 0x8a17 0x8a13 0x8a16 0x8a0f 0x8a11 0x8c48 0x8c7a 0x8c79 0x8ca1 0x8ca2 0x8d77 0x8eac 0x8ed2 0x8ed4 0x8ecf 0x8fb1 0x9001 0x9006 0x8ff7 0x9000 0x8ffa 0x8ff4 0x9003 0x8ffd 0x9005 0x8ff8 0x9095 0x90e1 0x90dd 0x90e2 0x9152 0x914d 0x914c 0x91d8 0x91dd 0x91d7 0x91dc 0x91d9 0x9583 0x9662 0x9663 0x9661 0x965b 0x965d 0x9664 0x9658 0x965e 0x96bb 0x98e2 0x99ac 0x9aa8 0x9ad8 0x9b25 0x9b32 0x9b3c 0x4e7e 0x507a 0x507d 0x505c 0x5047 0x5043 0x504c 0x505a 0x5049 0x5065 0x5076 0x504e 0x5055 0x5075 ) ; 0x15921 ... 0x1597e (block 56 0x5074 0x5077 0x504f 0x500f 0x506f 0x506d 0x515c 0x5195 0x51f0 0x526a 0x526f 0x52d2 0x52d9 0x52d8 0x52d5 0x5310 0x530f 0x5319 0x533f 0x5340 0x533e 0x53c3 0x66fc 0x5546 0x556a 0x5566 0x5544 0x555e 0x5561 0x5543 0x554a 0x5531 0x5556 0x554f 0x5555 0x552f 0x5564 0x5538 0x552e 0x555c 0x552c 0x5563 0x5533 0x5541 0x5557 0x5708 0x570b 0x5709 0x57df 0x5805 0x580a 0x5806 0x57e0 0x57e4 0x57fa 0x5802 0x5835 0x57f7 0x57f9 0x5920 0x5962 0x5a36 0x5a41 0x5a49 0x5a66 0x5a6a 0x5a40 0x5a3c 0x5a62 0x5a5a 0x5a46 0x5a4a 0x5b70 0x5bc7 0x5bc5 0x5bc4 0x5bc2 0x5bbf 0x5bc6 0x5c09 0x5c08 0x5c07 0x5c60 0x5c5c 0x5c5d 0x5d07 0x5d06 0x5d0e 0x5d1b 0x5d16 0x5d22 0x5d11 0x5d29 0x5d14 ) ; 0x15a21 ... 0x15a7e (block 57 0x5d19 0x5d24 0x5d27 0x5d17 0x5de2 0x5e38 0x5e36 0x5e33 0x5e37 0x5eb7 0x5eb8 0x5eb6 0x5eb5 0x5ebe 0x5f35 0x5f37 0x5f57 0x5f6c 0x5f69 0x5f6b 0x5f97 0x5f99 0x5f9e 0x5f98 0x5fa1 0x5fa0 0x5f9c 0x607f 0x60a3 0x6089 0x60a0 0x60a8 0x60cb 0x60b4 0x60e6 0x60bd 0x60c5 0x60bb 0x60b5 0x60dc 0x60bc 0x60d8 0x60d5 0x60c6 0x60df 0x60b8 0x60da 0x60c7 0x621a 0x621b 0x6248 0x63a0 0x63a7 0x6372 0x6396 0x63a2 0x63a5 0x6377 0x6367 0x6398 0x63aa 0x6371 0x63a9 0x6389 0x6383 0x639b 0x636b 0x63a8 0x6384 0x6388 0x6399 0x63a1 0x63ac 0x6392 0x638f 0x6380 0x637b 0x6369 0x6368 0x637a 0x655d 0x6556 0x6551 0x6559 0x6557 0x555f 0x654f 0x6558 0x6555 0x6554 0x659c 0x659b 0x65ac 0x65cf ) ; 0x15b21 ... 0x15b7e (block 58 0x65cb 0x65cc 0x65ce 0x665d 0x665a 0x6664 0x6668 0x6666 0x665e 0x66f9 0x52d7 0x671b 0x6881 0x68af 0x68a2 0x6893 0x68b5 0x687f 0x6876 0x68b1 0x68a7 0x6897 0x68b0 0x6883 0x68c4 0x68ad 0x6886 0x6885 0x6894 0x689d 0x68a8 0x689f 0x68a1 0x6882 0x6b32 0x6bba 0x6beb 0x6bec 0x6c2b 0x6d8e 0x6dbc 0x6df3 0x6dd9 0x6db2 0x6de1 0x6dcc 0x6de4 0x6dfb 0x6dfa 0x6e05 0x6dc7 0x6dcb 0x6daf 0x6dd1 0x6dae 0x6dde 0x6df9 0x6db8 0x6df7 0x6df5 0x6dc5 0x6dd2 0x6e1a 0x6db5 0x6dda 0x6deb 0x6dd8 0x6dea 0x6df1 0x6dee 0x6de8 0x6dc6 0x6dc4 0x6daa 0x6dec 0x6dbf 0x6de6 0x70f9 0x7109 0x710a 0x70fd 0x70ef 0x723d 0x727d 0x7281 0x731c 0x731b 0x7316 0x7313 0x7319 0x7387 0x7405 0x740a 0x7403 ) ; 0x15c21 ... 0x15c7e (block 59 0x7406 0x73fe 0x740d 0x74e0 0x74f6 0x74f7 0x751c 0x7522 0x7565 0x7566 0x7562 0x7570 0x758f 0x75d4 0x75d5 0x75b5 0x75ca 0x75cd 0x768e 0x76d4 0x76d2 0x76db 0x7737 0x773e 0x773c 0x7736 0x7738 0x773a 0x786b 0x7843 0x784e 0x7965 0x7968 0x796d 0x79fb 0x7a92 0x7a95 0x7b20 0x7b28 0x7b1b 0x7b2c 0x7b26 0x7b19 0x7b1e 0x7b2e 0x7c92 0x7c97 0x7c95 0x7d46 0x7d43 0x7d71 0x7d2e 0x7d39 0x7d3c 0x7d40 0x7d30 0x7d33 0x7d44 0x7d2f 0x7d42 0x7d32 0x7d31 0x7f3d 0x7f9e 0x7f9a 0x7fcc 0x7fce 0x7fd2 0x801c 0x804a 0x8046 0x812f 0x8116 0x8123 0x812b 0x8129 0x8130 0x8124 0x8202 0x8235 0x8237 0x8236 0x8239 0x838e 0x839e 0x8398 0x8378 0x83a2 0x8396 0x83bd 0x83ab 0x8392 0x838a 0x8393 ) ; 0x15d21 ... 0x15d7e (block 60 0x8389 0x83a0 0x8377 0x837b 0x837c 0x8386 0x83a7 0x8655 0x5f6a 0x86c7 0x86c0 0x86b6 0x86c4 0x86b5 0x86c6 0x86cb 0x86b1 0x86af 0x86c9 0x8853 0x889e 0x8888 0x88ab 0x8892 0x8896 0x888d 0x888b 0x8993 0x898f 0x8a2a 0x8a1d 0x8a23 0x8a25 0x8a31 0x8a2d 0x8a1f 0x8a1b 0x8a22 0x8c49 0x8c5a 0x8ca9 0x8cac 0x8cab 0x8ca8 0x8caa 0x8ca7 0x8d67 0x8d66 0x8dbe 0x8dba 0x8edb 0x8edf 0x9019 0x900d 0x901a 0x9017 0x9023 0x901f 0x901d 0x9010 0x9015 0x901e 0x9020 0x900f 0x9022 0x9016 0x901b 0x9014 0x90e8 0x90ed 0x90fd 0x9157 0x91ce 0x91f5 0x91e6 0x91e3 0x91e7 0x91ed 0x91e9 0x9589 0x966a 0x9675 0x9673 0x9678 0x9670 0x9674 0x9676 0x9677 0x966c 0x96c0 0x96ea 0x96e9 0x7ae0 0x7adf ) ; 0x15e21 ... 0x15e7e (block 61 0x9802 0x9803 0x9b5a 0x9ce5 0x9e75 0x9e7f 0x9ea5 0x9ebb 0x50a2 0x508d 0x5085 0x5099 0x5091 0x5080 0x5096 0x5098 0x509a 0x6700 0x51f1 0x5272 0x5274 0x5275 0x5269 0x52de 0x52dd 0x52db 0x535a 0x53a5 0x557b 0x5580 0x55a7 0x557c 0x558a 0x559d 0x5598 0x5582 0x559c 0x55aa 0x5594 0x5587 0x558b 0x5583 0x55b3 0x55ae 0x559f 0x553e 0x55b2 0x559a 0x55bb 0x55ac 0x55b1 0x557e 0x5589 0x55ab 0x5599 0x570d 0x582f 0x582a 0x5834 0x5824 0x5830 0x5831 0x5821 0x581d 0x5820 0x58f9 0x58fa 0x5960 0x5a77 0x5a9a 0x5a7f 0x5a92 0x5a9b 0x5aa7 0x5b73 0x5b71 0x5bd2 0x5bcc 0x5bd3 0x5bd0 0x5c0a 0x5c0b 0x5c31 0x5d4c 0x5d50 0x5d34 0x5d47 0x5dfd 0x5e45 0x5e3d 0x5e40 0x5e43 0x5e7e 0x5eca ) ; 0x15f21 ... 0x15f7e (block 62 0x5ec1 0x5ec2 0x5ec4 0x5f3c 0x5f6d 0x5fa9 0x5faa 0x5fa8 0x60d1 0x60e1 0x60b2 0x60b6 0x60e0 0x611c 0x6123 0x60fa 0x6115 0x60f0 0x60fb 0x60f4 0x6168 0x60f1 0x610e 0x60f6 0x6109 0x6100 0x6112 0x621f 0x6249 0x63a3 0x638c 0x63cf 0x63c0 0x63e9 0x63c9 0x63c6 0x63cd 0x63d2 0x63e3 0x63d0 0x63e1 0x63d6 0x63ed 0x63ee 0x6376 0x63f4 0x63ea 0x63db 0x6452 0x63da 0x63f9 0x655e 0x6566 0x6562 0x6563 0x6591 0x6590 0x65af 0x666e 0x6670 0x6674 0x6676 0x666f 0x6691 0x667a 0x667e 0x6677 0x66fe 0x66ff 0x671f 0x671d 0x68fa 0x68d5 0x68e0 0x68d8 0x68d7 0x6905 0x68df 0x68f5 0x68ee 0x68e7 0x68f9 0x68d2 0x68f2 0x68e3 0x68cb 0x68cd 0x690d 0x6912 0x690e 0x68c9 0x68da 0x696e 0x68fb ) ; 0x16021 ... 0x1607e (block 63 0x6b3e 0x6b3a 0x6b3d 0x6b98 0x6b96 0x6bbc 0x6bef 0x6c2e 0x6c2f 0x6c2c 0x6e2f 0x6e38 0x6e54 0x6e21 0x6e32 0x6e67 0x6e4a 0x6e20 0x6e25 0x6e23 0x6e1b 0x6e5b 0x6e58 0x6e24 0x6e56 0x6e6e 0x6e2d 0x6e26 0x6e6f 0x6e34 0x6e4d 0x6e3a 0x6e2c 0x6e43 0x6e1d 0x6e3e 0x6ecb 0x6e89 0x6e19 0x6e4e 0x6e63 0x6e44 0x6e72 0x6e69 0x6e5f 0x7119 0x711a 0x7126 0x7130 0x7121 0x7136 0x716e 0x711c 0x724c 0x7284 0x7280 0x7336 0x7325 0x7334 0x7329 0x743a 0x742a 0x7433 0x7422 0x7425 0x7435 0x7436 0x7434 0x742f 0x741b 0x7426 0x7428 0x7525 0x7526 0x756b 0x756a 0x75e2 0x75db 0x75e3 0x75d9 0x75d8 0x75de 0x75e0 0x767b 0x767c 0x7696 0x7693 0x76b4 0x76dc 0x774f 0x77ed 0x785d 0x786c 0x786f ) ; 0x16121 ... 0x1617e (block 64 0x7a0d 0x7a08 0x7a0b 0x7a05 0x7a00 0x7a98 0x7a97 0x7a96 0x7ae5 0x7ae3 0x7b49 0x7b56 0x7b46 0x7b50 0x7b52 0x7b54 0x7b4d 0x7b4b 0x7b4f 0x7b51 0x7c9f 0x7ca5 0x7d5e 0x7d50 0x7d68 0x7d55 0x7d2b 0x7d6e 0x7d72 0x7d61 0x7d66 0x7d62 0x7d70 0x7d73 0x5584 0x7fd4 0x7fd5 0x800b 0x8052 0x8085 0x8155 0x8154 0x814b 0x8151 0x814e 0x8139 0x8146 0x813e 0x814c 0x8153 0x8174 0x8212 0x821c 0x83e9 0x8403 0x83f8 0x840d 0x83e0 0x83c5 0x840b 0x83c1 0x83ef 0x83f1 0x83f4 0x8457 0x840a 0x83f0 0x840c 0x83cc 0x83fd 0x83f2 0x83ca 0x8438 0x840e 0x8404 0x83dc 0x8407 0x83d4 0x83df 0x865b 0x86df 0x86d9 0x86ed 0x86d4 0x86db 0x86e4 0x86d0 0x86de 0x8857 0x88c1 0x88c2 0x88b1 0x8983 0x8996 ) ; 0x16221 ... 0x1627e (block 65 0x8a3b 0x8a60 0x8a55 0x8a5e 0x8a3c 0x8a41 0x8a54 0x8a5b 0x8a50 0x8a46 0x8a34 0x8a3a 0x8a36 0x8a56 0x8c61 0x8c82 0x8caf 0x8cbc 0x8cb3 0x8cbd 0x8cc1 0x8cbb 0x8cc0 0x8cb4 0x8cb7 0x8cb6 0x8cbf 0x8cb8 0x8d8a 0x8d85 0x8d81 0x8dce 0x8ddd 0x8dcb 0x8dda 0x8dd1 0x8dcc 0x8ddb 0x8dc6 0x8efb 0x8ef8 0x8efc 0x8f9c 0x902e 0x9035 0x9031 0x9038 0x9032 0x9036 0x9102 0x90f5 0x9109 0x90fe 0x9163 0x9165 0x91cf 0x9214 0x9215 0x9223 0x9209 0x921e 0x920d 0x9210 0x9207 0x9211 0x9594 0x958f 0x958b 0x9591 0x9593 0x9592 0x958e 0x968a 0x968e 0x968b 0x967d 0x9685 0x9686 0x968d 0x9672 0x9684 0x96c1 0x96c5 0x96c4 0x96c6 0x96c7 0x96ef 0x96f2 0x97cc 0x9805 0x9806 0x9808 0x98e7 0x98ea ) ; 0x16321 ... 0x1637e (block 66 0x98ef 0x98e9 0x98f2 0x98ed 0x99ae 0x99ad 0x9ec3 0x9ecd 0x9ed1 0x4e82 0x50ad 0x50b5 0x50b2 0x50b3 0x50c5 0x50be 0x50ac 0x50b7 0x50bb 0x50af 0x50c7 0x527f 0x5277 0x527d 0x52df 0x52e6 0x52e4 0x52e2 0x52e3 0x532f 0x55df 0x55e8 0x55d3 0x55e6 0x55ce 0x55dc 0x55c7 0x55d1 0x55e3 0x55e4 0x55ef 0x55da 0x55e1 0x55c5 0x55c6 0x55e5 0x55c9 0x5712 0x5713 0x585e 0x5851 0x5858 0x5857 0x585a 0x5854 0x586b 0x584c 0x586d 0x584a 0x5862 0x5852 0x584b 0x5967 0x5ac1 0x5ac9 0x5acc 0x5abe 0x5abd 0x5abc 0x5ab3 0x5ac2 0x5ab2 0x5d69 0x5d6f 0x5e4c 0x5e79 0x5ec9 0x5ec8 0x5f12 0x5f59 0x5fac 0x5fae 0x611a 0x610f 0x6148 0x611f 0x60f3 0x611b 0x60f9 0x6101 0x6108 0x614e 0x614c 0x6144 ) ; 0x16421 ... 0x1647e (block 67 0x614d 0x613e 0x6134 0x6127 0x610d 0x6106 0x6137 0x6221 0x6222 0x6413 0x643e 0x641e 0x642a 0x642d 0x643d 0x642c 0x640f 0x641c 0x6414 0x640d 0x6436 0x6416 0x6417 0x6406 0x656c 0x659f 0x65b0 0x6697 0x6689 0x6687 0x6688 0x6696 0x6684 0x6698 0x668d 0x6703 0x6994 0x696d 0x695a 0x6977 0x6960 0x6954 0x6975 0x6930 0x6982 0x694a 0x6968 0x696b 0x695e 0x6953 0x6979 0x6986 0x695d 0x6963 0x695b 0x6b47 0x6b72 0x6bc0 0x6bbf 0x6bd3 0x6bfd 0x6ea2 0x6eaf 0x6ed3 0x6eb6 0x6ec2 0x6e90 0x6e9d 0x6ec7 0x6ec5 0x6ea5 0x6e98 0x6ebc 0x6eba 0x6eab 0x6ed1 0x6e96 0x6e9c 0x6ec4 0x6ed4 0x6eaa 0x6ea7 0x6eb4 0x714e 0x7159 0x7169 0x7164 0x7149 0x7167 0x715c 0x716c 0x7166 0x714c 0x7165 ) ; 0x16521 ... 0x1657e (block 68 0x715e 0x7146 0x7168 0x7156 0x723a 0x7252 0x7337 0x7345 0x733f 0x733e 0x746f 0x745a 0x7455 0x745f 0x745e 0x7441 0x743f 0x7459 0x745b 0x745c 0x7576 0x7578 0x7600 0x75f0 0x7601 0x75f2 0x75f1 0x75fa 0x75ff 0x75f4 0x75f3 0x76de 0x76df 0x775b 0x776b 0x7766 0x775e 0x7763 0x7779 0x776a 0x776c 0x775c 0x7765 0x7768 0x7762 0x77ee 0x788e 0x78b0 0x7897 0x7898 0x788c 0x7889 0x787c 0x7891 0x7893 0x787f 0x797a 0x797f 0x7981 0x842c 0x79bd 0x7a1c 0x7a1a 0x7a20 0x7a14 0x7a1f 0x7a1e 0x7a9f 0x7aa0 0x7b77 0x7bc0 0x7b60 0x7b6e 0x7b67 0x7cb1 0x7cb3 0x7cb5 0x7d93 0x7d79 0x7d91 0x7d81 0x7d8f 0x7d5b 0x7f6e 0x7f69 0x7f6a 0x7f72 0x7fa9 0x7fa8 0x7fa4 0x8056 0x8058 0x8086 0x8084 ) ; 0x16621 ... 0x1667e (block 69 0x8171 0x8170 0x8178 0x8165 0x816e 0x8173 0x816b 0x8179 0x817a 0x8166 0x8205 0x8247 0x8482 0x8477 0x843d 0x8431 0x8475 0x8466 0x846b 0x8449 0x846c 0x845b 0x843c 0x8435 0x8461 0x8463 0x8469 0x846d 0x8446 0x865e 0x865c 0x865f 0x86f9 0x8713 0x8708 0x8707 0x8700 0x86fe 0x86fb 0x8702 0x8703 0x8706 0x870a 0x8859 0x88df 0x88d4 0x88d9 0x88dc 0x88d8 0x88dd 0x88e1 0x88ca 0x88d5 0x88d2 0x899c 0x89e3 0x8a6b 0x8a72 0x8a73 0x8a66 0x8a69 0x8a70 0x8a87 0x8a7c 0x8a63 0x8aa0 0x8a71 0x8a85 0x8a6d 0x8a62 0x8a6e 0x8a6c 0x8a79 0x8a7b 0x8a3e 0x8a68 0x8c62 0x8c8a 0x8c89 0x8cca 0x8cc7 0x8cc8 0x8cc4 0x8cb2 0x8cc3 0x8cc2 0x8cc5 0x8de1 0x8ddf 0x8de8 0x8def 0x8df3 0x8dfa 0x8dea ) ; 0x16721 ... 0x1677e (block 70 0x8de4 0x8de6 0x8eb2 0x8f03 0x8f09 0x8efe 0x8f0a 0x8f9f 0x8fb2 0x904b 0x904a 0x9053 0x9042 0x9054 0x903c 0x9055 0x9050 0x9047 0x904f 0x904e 0x904d 0x9051 0x903e 0x9041 0x9112 0x9117 0x916c 0x916a 0x9169 0x91c9 0x9237 0x9257 0x9238 0x923d 0x9240 0x923e 0x925b 0x924b 0x9264 0x9251 0x9234 0x9249 0x924d 0x9245 0x9239 0x923f 0x925a 0x9598 0x9698 0x9694 0x9695 0x96cd 0x96cb 0x96c9 0x96ca 0x96f7 0x96fb 0x96f9 0x96f6 0x9756 0x9774 0x9776 0x9810 0x9811 0x9813 0x980a 0x9812 0x980c 0x98fc 0x98f4 0x98fd 0x98fe 0x99b3 0x99b1 0x99b4 0x9ae1 0x9ce9 0x9e82 0x9f0e 0x9f13 0x9f20 0x50e7 0x50ee 0x50e5 0x50d6 0x50ed 0x50da 0x50d5 0x50cf 0x50d1 0x50f1 0x50ce 0x50e9 0x5162 ) ; 0x16821 ... 0x1687e (block 71 0x51f3 0x5283 0x5282 0x5331 0x53ad 0x55fe 0x5600 0x561b 0x5617 0x55fd 0x5614 0x5606 0x5609 0x560d 0x560e 0x55f7 0x5616 0x561f 0x5608 0x5610 0x55f6 0x5718 0x5716 0x5875 0x587e 0x5883 0x5893 0x588a 0x5879 0x5885 0x587d 0x58fd 0x5925 0x5922 0x5924 0x596a 0x5969 0x5ae1 0x5ae6 0x5ae9 0x5ad7 0x5ad6 0x5ad8 0x5ae3 0x5b75 0x5bde 0x5be7 0x5be1 0x5be5 0x5be6 0x5be8 0x5be2 0x5be4 0x5bdf 0x5c0d 0x5c62 0x5d84 0x5d87 0x5e5b 0x5e63 0x5e55 0x5e57 0x5e54 0x5ed3 0x5ed6 0x5f0a 0x5f46 0x5f70 0x5fb9 0x6147 0x613f 0x614b 0x6177 0x6162 0x6163 0x615f 0x615a 0x6158 0x6175 0x622a 0x6487 0x6458 0x6454 0x64a4 0x6478 0x645f 0x647a 0x6451 0x6467 0x6434 0x646d 0x647b 0x6572 0x65a1 ) ; 0x16921 ... 0x1697e (block 72 0x65d7 0x65d6 0x66a2 0x66a8 0x669d 0x699c 0x69a8 0x6995 0x69c1 0x69ae 0x69d3 0x69cb 0x699b 0x69b7 0x69bb 0x69ab 0x69b4 0x69d0 0x69cd 0x69ad 0x69cc 0x69a6 0x69c3 0x69a3 0x6b49 0x6b4c 0x6c33 0x6f33 0x6f14 0x6efe 0x6f13 0x6ef4 0x6f29 0x6f3e 0x6f20 0x6f2c 0x6f0f 0x6f02 0x6f22 0x6eff 0x6eef 0x6f06 0x6f31 0x6f38 0x6f32 0x6f23 0x6f15 0x6f2b 0x6f2f 0x6f88 0x6f2a 0x6eec 0x6f01 0x6ef2 0x6ecc 0x6ef7 0x7194 0x7199 0x717d 0x718a 0x7184 0x7192 0x723e 0x7292 0x7296 0x7344 0x7350 0x7464 0x7463 0x746a 0x7470 0x746d 0x7504 0x7591 0x7627 0x760d 0x760b 0x7609 0x7613 0x76e1 0x76e3 0x7784 0x777d 0x777f 0x7761 0x78c1 0x789f 0x78a7 0x78b3 0x78a9 0x78a3 0x798e 0x798f 0x798d ) ; 0x16a21 ... 0x16a7e (block 73 0x7a2e 0x7a31 0x7aaa 0x7aa9 0x7aed 0x7aef 0x7ba1 0x7b95 0x7b8b 0x7b75 0x7b97 0x7b9d 0x7b94 0x7b8f 0x7bb8 0x7b87 0x7b84 0x7cb9 0x7cbd 0x7cbe 0x7dbb 0x7db0 0x7d9c 0x7dbd 0x7dbe 0x7da0 0x7dca 0x7db4 0x7db2 0x7db1 0x7dba 0x7da2 0x7dbf 0x7db5 0x7db8 0x7dad 0x7dd2 0x7dc7 0x7dac 0x7f70 0x7fe0 0x7fe1 0x7fdf 0x805e 0x805a 0x8087 0x8150 0x8180 0x818f 0x8188 0x818a 0x817f 0x8182 0x81e7 0x81fa 0x8207 0x8214 0x821e 0x824b 0x84c9 0x84bf 0x84c6 0x84c4 0x8499 0x849e 0x84b2 0x849c 0x84cb 0x84b8 0x84c0 0x84d3 0x8490 0x84bc 0x84d1 0x84ca 0x873f 0x871c 0x873b 0x8722 0x8725 0x8734 0x8718 0x8755 0x8737 0x8729 0x88f3 0x8902 0x88f4 0x88f9 0x88f8 0x88fd 0x88e8 0x891a 0x88ef ) ; 0x16b21 ... 0x16b7e (block 74 0x8aa6 0x8a8c 0x8a9e 0x8aa3 0x8a8d 0x8aa1 0x8a93 0x8aa4 0x8aaa 0x8aa5 0x8aa8 0x8a98 0x8a91 0x8a9a 0x8aa7 0x8c6a 0x8c8d 0x8c8c 0x8cd3 0x8cd1 0x8cd2 0x8d6b 0x8d99 0x8d95 0x8dfc 0x8f14 0x8f12 0x8f15 0x8f13 0x8fa3 0x9060 0x9058 0x905c 0x9063 0x9059 0x905e 0x9062 0x905d 0x905b 0x9119 0x9118 0x911e 0x9175 0x9178 0x9177 0x9174 0x9278 0x92ac 0x9280 0x9285 0x9298 0x9296 0x927b 0x9293 0x929c 0x92a8 0x927c 0x9291 0x95a1 0x95a8 0x95a9 0x95a3 0x95a5 0x95a4 0x9699 0x969c 0x969b 0x96cc 0x96d2 0x9700 0x977c 0x9785 0x97f6 0x9817 0x9818 0x98af 0x98b1 0x9903 0x9905 0x990c 0x9909 0x99c1 0x9aaf 0x9ab0 0x9ae6 0x9b41 0x9b42 0x9cf4 0x9cf6 0x9cf3 0x9ebc 0x9f3b 0x9f4a 0x5104 ) ; 0x16c21 ... 0x16c7e (block 75 0x5100 0x50fb 0x50f5 0x50f9 0x5102 0x5108 0x5109 0x5105 0x51dc 0x5287 0x5288 0x5289 0x528d 0x528a 0x52f0 0x53b2 0x562e 0x563b 0x5639 0x5632 0x563f 0x5634 0x5629 0x5653 0x564e 0x5657 0x5674 0x5636 0x562f 0x5630 0x5880 0x589f 0x589e 0x58b3 0x589c 0x58ae 0x58a9 0x58a6 0x596d 0x5b09 0x5afb 0x5b0b 0x5af5 0x5b0c 0x5b08 0x5bee 0x5bec 0x5be9 0x5beb 0x5c64 0x5c65 0x5d9d 0x5d94 0x5e62 0x5e5f 0x5e61 0x5ee2 0x5eda 0x5edf 0x5edd 0x5ee3 0x5ee0 0x5f48 0x5f71 0x5fb7 0x5fb5 0x6176 0x6167 0x616e 0x615d 0x6155 0x6182 0x617c 0x6170 0x616b 0x617e 0x61a7 0x6190 0x61ab 0x618e 0x61ac 0x619a 0x61a4 0x6194 0x61ae 0x622e 0x6469 0x646f 0x6479 0x649e 0x64b2 0x6488 0x6490 0x64b0 ) ; 0x16d21 ... 0x16d7e (block 76 0x64a5 0x6493 0x6495 0x64a9 0x6492 0x64ae 0x64ad 0x64ab 0x649a 0x64ac 0x6499 0x64a2 0x64b3 0x6575 0x6577 0x6578 0x66ae 0x66ab 0x66b4 0x66b1 0x6a23 0x6a1f 0x69e8 0x6a01 0x6a1e 0x6a19 0x69fd 0x6a21 0x6a13 0x6a0a 0x69f3 0x6a02 0x6a05 0x69ed 0x6a11 0x6b50 0x6b4e 0x6ba4 0x6bc5 0x6bc6 0x6f3f 0x6f7c 0x6f84 0x6f51 0x6f66 0x6f54 0x6f86 0x6f6d 0x6f5b 0x6f78 0x6f6e 0x6f8e 0x6f7a 0x6f70 0x6f64 0x6f97 0x6f58 0x6ed5 0x6f6f 0x6f60 0x6f5f 0x719f 0x71ac 0x71b1 0x71a8 0x7256 0x729b 0x734e 0x7357 0x7469 0x748b 0x7483 0x747e 0x7480 0x757f 0x7620 0x7629 0x761f 0x7624 0x7626 0x7621 0x7622 0x769a 0x76ba 0x76e4 0x778e 0x7787 0x778c 0x7791 0x778b 0x78cb 0x78c5 0x78ba 0x78ca ) ; 0x16e21 ... 0x16e7e (block 77 0x78be 0x78d5 0x78bc 0x78d0 0x7a3f 0x7a3c 0x7a40 0x7a3d 0x7a37 0x7a3b 0x7aaf 0x7aae 0x7bad 0x7bb1 0x7bc4 0x7bb4 0x7bc6 0x7bc7 0x7bc1 0x7ba0 0x7bcc 0x7cca 0x7de0 0x7df4 0x7def 0x7dfb 0x7dd8 0x7dec 0x7ddd 0x7de8 0x7de3 0x7dda 0x7dde 0x7de9 0x7d9e 0x7dd9 0x7df2 0x7df9 0x7f75 0x7f77 0x7faf 0x7fe9 0x8026 0x819b 0x819c 0x819d 0x81a0 0x819a 0x8198 0x8517 0x853d 0x851a 0x84ee 0x852c 0x852d 0x8513 0x8511 0x8523 0x8521 0x8514 0x84ec 0x8525 0x84ff 0x8506 0x8782 0x8774 0x8776 0x8760 0x8766 0x8778 0x8768 0x8759 0x8757 0x874c 0x8753 0x885b 0x885d 0x8910 0x8907 0x8912 0x8913 0x8915 0x890a 0x8abc 0x8ad2 0x8ac7 0x8ac4 0x8a95 0x8acb 0x8af8 0x8ab2 0x8ac9 0x8ac2 0x8abf ) ; 0x16f21 ... 0x16f7e (block 78 0x8ab0 0x8ad6 0x8acd 0x8ab6 0x8ab9 0x8adb 0x8c4c 0x8c4e 0x8c6c 0x8ce0 0x8cde 0x8ce6 0x8ce4 0x8cec 0x8ced 0x8ce2 0x8ce3 0x8cdc 0x8cea 0x8ce1 0x8d6d 0x8d9f 0x8da3 0x8e2b 0x8e10 0x8e1d 0x8e22 0x8e0f 0x8e29 0x8e1f 0x8e21 0x8e1e 0x8eba 0x8f1d 0x8f1b 0x8f1f 0x8f29 0x8f26 0x8f2a 0x8f1c 0x8f1e 0x8f25 0x9069 0x906e 0x9068 0x906d 0x9077 0x9130 0x912d 0x9127 0x9131 0x9187 0x9189 0x918b 0x9183 0x92c5 0x92bb 0x92b7 0x92ea 0x92e4 0x92c1 0x92b3 0x92bc 0x92d2 0x92c7 0x92f0 0x92b2 0x95ad 0x95b1 0x9704 0x9706 0x9707 0x9709 0x9760 0x978d 0x978b 0x978f 0x9821 0x982b 0x981c 0x98b3 0x990a 0x9913 0x9912 0x9918 0x99dd 0x99d0 0x99df 0x99db 0x99d1 0x99d5 0x99d2 0x99d9 0x9ab7 ) ; 0x17021 ... 0x1707e (block 79 0x9aee 0x9aef 0x9b27 0x9b45 0x9b44 0x9b77 0x9b6f 0x9d06 0x9d09 0x9d03 0x9ea9 0x9ebe 0x9ece 0x58a8 0x9f52 0x5112 0x5118 0x5114 0x5110 0x5115 0x5180 0x51aa 0x51dd 0x5291 0x5293 0x52f3 0x5659 0x566b 0x5679 0x5669 0x5664 0x5678 0x566a 0x5668 0x5665 0x5671 0x566f 0x566c 0x5662 0x5676 0x58c1 0x58be 0x58c7 0x58c5 0x596e 0x5b1d 0x5b34 0x5b78 0x5bf0 0x5c0e 0x5f4a 0x61b2 0x6191 0x61a9 0x618a 0x61cd 0x61b6 0x61be 0x61ca 0x61c8 0x6230 0x64c5 0x64c1 0x64cb 0x64bb 0x64bc 0x64da 0x64c4 0x64c7 0x64c2 0x64cd 0x64bf 0x64d2 0x64d4 0x64be 0x6574 0x66c6 0x66c9 0x66b9 0x66c4 0x66c7 0x66b8 0x6a3d 0x6a38 0x6a3a 0x6a59 0x6a6b 0x6a58 0x6a39 0x6a44 0x6a62 0x6a61 0x6a4b 0x6a47 ) ; 0x17121 ... 0x1717e (block 80 0x6a35 0x6a5f 0x6a48 0x6b59 0x6b77 0x6c05 0x6fc2 0x6fb1 0x6fa1 0x6fc3 0x6fa4 0x6fc1 0x6fa7 0x6fb3 0x6fc0 0x6fb9 0x6fb6 0x6fa6 0x6fa0 0x6fb4 0x71be 0x71c9 0x71d0 0x71d2 0x71c8 0x71d5 0x71b9 0x71ce 0x71d9 0x71dc 0x71c3 0x71c4 0x7368 0x749c 0x74a3 0x7498 0x749f 0x749e 0x74e2 0x750c 0x750d 0x7634 0x7638 0x763a 0x76e7 0x76e5 0x77a0 0x779e 0x779f 0x77a5 0x78e8 0x78da 0x78ec 0x78e7 0x79a6 0x7a4d 0x7a4e 0x7a46 0x7a4c 0x7a4b 0x7aba 0x7bd9 0x7c11 0x7bc9 0x7be4 0x7bdb 0x7be1 0x7be9 0x7be6 0x7cd5 0x7cd6 0x7e0a 0x7e11 0x7e08 0x7e1b 0x7e23 0x7e1e 0x7e1d 0x7e09 0x7e10 0x7f79 0x7fb2 0x7ff0 0x7ff1 0x7fee 0x8028 0x81b3 0x81a9 0x81a8 0x81fb 0x8208 0x8258 0x8259 0x854a ) ; 0x17221 ... 0x1727e (block 81 0x8559 0x8548 0x8568 0x8569 0x8543 0x8549 0x856d 0x856a 0x855e 0x8783 0x879f 0x879e 0x87a2 0x878d 0x8861 0x892a 0x8932 0x8925 0x892b 0x8921 0x89aa 0x89a6 0x8ae6 0x8afa 0x8aeb 0x8af1 0x8b00 0x8adc 0x8ae7 0x8aee 0x8afe 0x8b01 0x8b02 0x8af7 0x8aed 0x8af3 0x8af6 0x8afc 0x8c6b 0x8c6d 0x8c93 0x8cf4 0x8e44 0x8e31 0x8e34 0x8e42 0x8e39 0x8e35 0x8f3b 0x8f2f 0x8f38 0x8f33 0x8fa8 0x8fa6 0x9075 0x9074 0x9078 0x9072 0x907c 0x907a 0x9134 0x9192 0x9320 0x9336 0x92f8 0x9333 0x932f 0x9322 0x92fc 0x932b 0x9304 0x931a 0x9310 0x9326 0x9321 0x9315 0x932e 0x9319 0x95bb 0x96a7 0x96a8 0x96aa 0x96d5 0x970e 0x9711 0x9716 0x970d 0x9713 0x970f 0x975b 0x975c 0x9766 0x9798 0x9830 ) ; 0x17321 ... 0x1737e (block 82 0x9838 0x983b 0x9837 0x982d 0x9839 0x9824 0x9910 0x9928 0x991e 0x991b 0x9921 0x991a 0x99ed 0x99e2 0x99f1 0x9ab8 0x9abc 0x9afb 0x9aed 0x9b28 0x9b91 0x9d15 0x9d23 0x9d26 0x9d28 0x9d12 0x9d1b 0x9ed8 0x9ed4 0x9f8d 0x9f9c 0x512a 0x511f 0x5121 0x5132 0x52f5 0x568e 0x5680 0x5690 0x5685 0x5687 0x568f 0x58d5 0x58d3 0x58d1 0x58ce 0x5b30 0x5b2a 0x5b24 0x5b7a 0x5c37 0x5c68 0x5dbc 0x5dba 0x5dbd 0x5db8 0x5e6b 0x5f4c 0x5fbd 0x61c9 0x61c2 0x61c7 0x61e6 0x61cb 0x6232 0x6234 0x64ce 0x64ca 0x64d8 0x64e0 0x64f0 0x64e6 0x64ec 0x64f1 0x64e2 0x64ed 0x6582 0x6583 0x66d9 0x66d6 0x6a80 0x6a94 0x6a84 0x6aa2 0x6a9c 0x6adb 0x6aa3 0x6a7e 0x6a97 0x6a90 0x6aa0 0x6b5c 0x6bae 0x6bda ) ; 0x17421 ... 0x1747e (block 83 0x6c08 0x6fd8 0x6ff1 0x6fdf 0x6fe0 0x6fdb 0x6fe4 0x6feb 0x6fef 0x6f80 0x6fec 0x6fe1 0x6fe9 0x6fd5 0x6fee 0x6ff0 0x71e7 0x71df 0x71ee 0x71e6 0x71e5 0x71ed 0x71ec 0x71f4 0x71e0 0x7235 0x7246 0x7370 0x7372 0x74a9 0x74b0 0x74a6 0x74a8 0x7646 0x7642 0x764c 0x76ea 0x77b3 0x77aa 0x77b0 0x77ac 0x77a7 0x77ad 0x77ef 0x78f7 0x78fa 0x78f4 0x78ef 0x7901 0x79a7 0x79aa 0x7a57 0x7abf 0x7c07 0x7c0d 0x7bfe 0x7bf7 0x7c0c 0x7be0 0x7ce0 0x7cdc 0x7cde 0x7ce2 0x7cdf 0x7cd9 0x7cdd 0x7e2e 0x7e3e 0x7e46 0x7e37 0x7e32 0x7e43 0x7e2b 0x7e3d 0x7e31 0x7e45 0x7e41 0x7e34 0x7e39 0x7e48 0x7e35 0x7e3f 0x7e2f 0x7f44 0x7ff3 0x7ffc 0x8071 0x8072 0x8070 0x806f 0x8073 0x81c6 0x81c3 0x81ba ) ; 0x17521 ... 0x1757e (block 84 0x81c2 0x81c0 0x81bf 0x81bd 0x81c9 0x81be 0x81e8 0x8209 0x8271 0x85aa 0x8584 0x857e 0x859c 0x8591 0x8594 0x85af 0x859b 0x8587 0x85a8 0x858a 0x85a6 0x8667 0x87c0 0x87d1 0x87b3 0x87d2 0x87c6 0x87ab 0x87bb 0x87ba 0x87c8 0x87cb 0x893b 0x8936 0x8944 0x8938 0x893d 0x89ac 0x8b0e 0x8b17 0x8b19 0x8b1b 0x8b0a 0x8b20 0x8b1d 0x8b04 0x8b10 0x8c41 0x8c3f 0x8c73 0x8cfa 0x8cfd 0x8cfc 0x8cf8 0x8cfb 0x8da8 0x8e49 0x8e4b 0x8e48 0x8e4a 0x8f44 0x8f3e 0x8f42 0x8f45 0x8f3f 0x907f 0x907d 0x9084 0x9081 0x9082 0x9080 0x9139 0x91a3 0x919e 0x919c 0x934d 0x9382 0x9328 0x9375 0x934a 0x9365 0x934b 0x9318 0x937e 0x936c 0x935b 0x9370 0x935a 0x9354 0x95ca 0x95cb 0x95cc 0x95c8 0x95c6 ) ; 0x17621 ... 0x1767e (block 85 0x96b1 0x96b8 0x96d6 0x971c 0x971e 0x97a0 0x97d3 0x9846 0x98b6 0x9935 0x9a01 0x99ff 0x9bae 0x9bab 0x9baa 0x9bad 0x9d3b 0x9d3f 0x9e8b 0x9ecf 0x9ede 0x9edc 0x9edd 0x9edb 0x9f3e 0x9f4b 0x53e2 0x5695 0x56ae 0x58d9 0x58d8 0x5b38 0x5f5e 0x61e3 0x6233 0x64f4 0x64f2 0x64fe 0x6506 0x64fa 0x64fb 0x64f7 0x65b7 0x66dc 0x6726 0x6ab3 0x6aac 0x6ac3 0x6abb 0x6ab8 0x6ac2 0x6aae 0x6aaf 0x6b5f 0x6b78 0x6baf 0x7009 0x700b 0x6ffe 0x7006 0x6ffa 0x7011 0x700f 0x71fb 0x71fc 0x71fe 0x71f8 0x7377 0x7375 0x74a7 0x74bf 0x7515 0x7656 0x7658 0x7652 0x77bd 0x77bf 0x77bb 0x77bc 0x790e 0x79ae 0x7a61 0x7a62 0x7a60 0x7ac4 0x7ac5 0x7c2b 0x7c27 0x7c2a 0x7c1e 0x7c23 0x7c21 0x7ce7 0x7e54 ) ; 0x17721 ... 0x1777e (block 86 0x7e55 0x7e5e 0x7e5a 0x7e61 0x7e52 0x7e59 0x7f48 0x7ff9 0x7ffb 0x8077 0x8076 0x81cd 0x81cf 0x820a 0x85cf 0x85a9 0x85cd 0x85d0 0x85c9 0x85b0 0x85ba 0x85b9 0x87ef 0x87ec 0x87f2 0x87e0 0x8986 0x89b2 0x89f4 0x8b28 0x8b39 0x8b2c 0x8b2b 0x8c50 0x8d05 0x8e59 0x8e63 0x8e66 0x8e64 0x8e5f 0x8e55 0x8ec0 0x8f49 0x8f4d 0x9087 0x9083 0x9088 0x91ab 0x91ac 0x91d0 0x9394 0x938a 0x9396 0x93a2 0x93b3 0x93ae 0x93ac 0x93b0 0x9398 0x939a 0x9397 0x95d4 0x95d6 0x95d0 0x95d5 0x96e2 0x96dc 0x96d9 0x96db 0x96de 0x9724 0x97a3 0x97a6 0x97ad 0x97f9 0x984d 0x984f 0x984c 0x984e 0x9853 0x98ba 0x993e 0x993f 0x993d 0x992e 0x99a5 0x9a0e 0x9ac1 0x9b03 0x9b06 0x9b4f 0x9b4e 0x9b4d 0x9bca ) ; 0x17821 ... 0x1787e (block 87 0x9bc9 0x9bfd 0x9bc8 0x9bc0 0x9d51 0x9d5d 0x9d60 0x9ee0 0x9f15 0x9f2c 0x5133 0x56a5 0x56a8 0x58de 0x58df 0x58e2 0x5bf5 0x9f90 0x5eec 0x61f2 0x61f7 0x61f6 0x61f5 0x6500 0x650f 0x66e0 0x66dd 0x6ae5 0x6add 0x6ada 0x6ad3 0x701b 0x701f 0x7028 0x701a 0x701d 0x7015 0x7018 0x7206 0x720d 0x7258 0x72a2 0x7378 0x737a 0x74bd 0x74ca 0x74e3 0x7587 0x7586 0x765f 0x7661 0x77c7 0x7919 0x79b1 0x7a6b 0x7a69 0x7c3e 0x7c3f 0x7c38 0x7c3d 0x7c37 0x7c40 0x7e6b 0x7e6d 0x7e79 0x7e69 0x7e6a 0x7e73 0x7f85 0x7fb6 0x7fb9 0x7fb8 0x81d8 0x85e9 0x85dd 0x85ea 0x85d5 0x85e4 0x85e5 0x85f7 0x87fb 0x8805 0x880d 0x87f9 0x87fe 0x8960 0x895f 0x8956 0x895e 0x8b41 0x8b5c 0x8b58 0x8b49 0x8b5a ) ; 0x17921 ... 0x1797e (block 88 0x8b4e 0x8b4f 0x8b46 0x8b59 0x8d08 0x8d0a 0x8e7c 0x8e72 0x8e87 0x8e76 0x8e6c 0x8e7a 0x8e74 0x8f54 0x8f4e 0x8fad 0x908a 0x908b 0x91b1 0x91ae 0x93e1 0x93d1 0x93df 0x93c3 0x93c8 0x93dc 0x93dd 0x93d6 0x93e2 0x93cd 0x93d8 0x93e4 0x93d7 0x93e8 0x95dc 0x96b4 0x96e3 0x972a 0x9727 0x9761 0x97dc 0x97fb 0x985e 0x9858 0x985b 0x98bc 0x9945 0x9949 0x9a16 0x9a19 0x9b0d 0x9be8 0x9be7 0x9bd6 0x9bdb 0x9d89 0x9d61 0x9d72 0x9d6a 0x9d6c 0x9e92 0x9e97 0x9e93 0x9eb4 0x52f8 0x56b7 0x56b6 0x56b4 0x56bc 0x58e4 0x5b40 0x5b43 0x5b7d 0x5bf6 0x5dc9 0x61f8 0x61fa 0x6518 0x6514 0x6519 0x66e6 0x6727 0x6aec 0x703e 0x7030 0x7032 0x7210 0x737b 0x74cf 0x7662 0x7665 0x7926 0x792a 0x792c ) ; 0x17a21 ... 0x17a7e (block 89 0x792b 0x7ac7 0x7af6 0x7c4c 0x7c43 0x7c4d 0x7cef 0x7cf0 0x8fae 0x7e7d 0x7e7c 0x7e82 0x7f4c 0x8000 0x81da 0x8266 0x85fb 0x85f9 0x8611 0x85fa 0x8606 0x860b 0x8607 0x860a 0x8814 0x8815 0x8964 0x89ba 0x89f8 0x8b70 0x8b6c 0x8b66 0x8b6f 0x8b5f 0x8b6b 0x8d0f 0x8d0d 0x8e89 0x8e81 0x8e85 0x8e82 0x91b4 0x91cb 0x9418 0x9403 0x93fd 0x95e1 0x9730 0x98c4 0x9952 0x9951 0x99a8 0x9a2b 0x9a30 0x9a37 0x9a35 0x9c13 0x9c0d 0x9e79 0x9eb5 0x9ee8 0x9f2f 0x9f5f 0x9f63 0x9f61 0x5137 0x5138 0x56c1 0x56c0 0x56c2 0x5914 0x5c6c 0x5dcd 0x61fc 0x61fe 0x651d 0x651c 0x6595 0x66e9 0x6afb 0x6b04 0x6afa 0x6bb2 0x704c 0x721b 0x72a7 0x74d6 0x74d4 0x7669 0x77d3 0x7c50 0x7e8f 0x7e8c 0x7fbc ) ; 0x17b21 ... 0x17b7e (block 90 0x8617 0x862d 0x861a 0x8823 0x8822 0x8821 0x881f 0x896a 0x896c 0x89bd 0x8b74 0x8b77 0x8b7d 0x8d13 0x8e8a 0x8e8d 0x8e8b 0x8f5f 0x8faf 0x91ba 0x942e 0x9433 0x9435 0x943a 0x9438 0x9432 0x942b 0x95e2 0x9738 0x9739 0x9732 0x97ff 0x9867 0x9865 0x9957 0x9a45 0x9a43 0x9a40 0x9a3e 0x9acf 0x9b54 0x9b51 0x9c2d 0x9c25 0x9daf 0x9db4 0x9dc2 0x9db8 0x9e9d 0x9eef 0x9f19 0x9f5c 0x9f66 0x9f67 0x513c 0x513b 0x56c8 0x56ca 0x56c9 0x5b7f 0x5dd4 0x5dd2 0x5f4e 0x61ff 0x6524 0x6b0a 0x6b61 0x7051 0x7058 0x7380 0x74e4 0x758a 0x766e 0x766c 0x79b3 0x7c60 0x7c5f 0x807e 0x807d 0x81df 0x8972 0x896f 0x89fc 0x8b80 0x8d16 0x8d17 0x8e91 0x8e93 0x8f61 0x9148 0x9444 0x9451 0x9452 0x973d ) ; 0x17c21 ... 0x17c7e (block 91 0x973e 0x97c3 0x97c1 0x986b 0x9955 0x9a55 0x9a4d 0x9ad2 0x9b1a 0x9c49 0x9c31 0x9c3e 0x9c3b 0x9dd3 0x9dd7 0x9f34 0x9f6c 0x9f6a 0x9f94 0x56cc 0x5dd6 0x6200 0x6523 0x652b 0x652a 0x66ec 0x6b10 0x74da 0x7aca 0x7c64 0x7c63 0x7c65 0x7e93 0x7e96 0x7e94 0x81e2 0x8638 0x863f 0x8831 0x8b8a 0x9090 0x908f 0x9463 0x9460 0x9464 0x9768 0x986f 0x995c 0x9a5a 0x9a5b 0x9a57 0x9ad3 0x9ad4 0x9ad1 0x9c54 0x9c57 0x9c56 0x9de5 0x9e9f 0x9ef4 0x56d1 0x58e9 0x652c 0x705e 0x7671 0x7672 0x77d7 0x7f50 0x7f88 0x8836 0x8839 0x8862 0x8b93 0x8b92 0x8b96 0x8277 0x8d1b 0x91c0 0x946a 0x9742 0x9748 0x9744 0x97c6 0x9870 0x9a5f 0x9b22 0x9b58 0x9c5f 0x9df9 0x9dfa 0x9e7c 0x9e7d 0x9f07 0x9f77 ) ; 0x17d21 ... 0x17d7e (block 92 0x9f72 0x5ef3 0x6b16 0x7063 0x7c6c 0x7c6e 0x883b 0x89c0 0x8ea1 0x91c1 0x9472 0x9470 0x9871 0x995e 0x9ad6 0x9b23 0x9ecc 0x7064 0x77da 0x8b9a 0x9477 0x97c9 0x9a62 0x9a65 0x7e9c 0x8b9c 0x8eaa 0x91c5 0x947d 0x947e 0x947c 0x9c77 0x9c78 0x9ef7 0x8c54 0x947f 0x9e1a 0x7228 0x9a6a 0x9b31 0x9e1b 0x9e1e 0x7c72 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) vflib3-3.6.14.dfsg/ccv/cns11643-2_unicode.ccv0000644000175000017500000017122007006213700017561 0ustar mohuramohura; Conversion table: CNS11643-2 ==> UNICODE (charset-external-name CNS11643-2) (charset-external-encoding ISO2022) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type random-arrays) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x221) (c1-max 0x272) (c2-min 0x21) (c2-max 0x7e) (block-size 256) (nblocks 82) ; 0x22121 ... 0x2217e (block 0 0x4e42 0x4e5c 0x51f5 0x531a 0x5382 0x4e07 0x4e0c 0x4e47 0x4e8d 0x56d7 0x5c6e 0x5f73 0x4e0f 0x5187 0x4e0e 0x4e2e 0x4e93 0x4ec2 0x4ec9 0x4ec8 0x5198 0x52fc 0x536c 0x53b9 0x5720 0x5903 0x592c 0x5c10 0x5dff 0x65e1 0x6bb3 0x6bcc 0x6c14 0x723f 0x4e31 0x4e3c 0x4ee8 0x4edc 0x4ee9 0x4ee1 0x4edd 0x4eda 0x520c 0x5209 0x531c 0x534c 0x5722 0x5723 0x5917 0x592f 0x5b81 0x5b84 0x5c12 0x5c3b 0x5c74 0x5c73 0x5e04 0x5e80 0x5e82 0x5fc9 0x6209 0x6250 0x6c15 0x6c36 0x6c43 0x6c3f 0x6c3b 0x72ae 0x72b0 0x738a 0x79b8 0x808a 0x961e 0x4f0e 0x4f18 0x4f2c 0x4ef5 0x4f14 0x4ef1 0x4f00 0x4ef7 0x4f08 0x4f1d 0x4f02 0x4f05 0x4f22 0x4f13 0x4f04 0x4ef4 0x4f12 0x51b1 0x5213 0x5210 0x52a6 ) ; 0x22221 ... 0x2227e (block 1 0x5322 0x531f 0x534d 0x538a 0x5407 0x56e1 0x56df 0x572e 0x572a 0x5734 0x593c 0x5980 0x597c 0x5985 0x597b 0x597e 0x5977 0x597f 0x5b56 0x5c15 0x5c25 0x5c7c 0x5c7a 0x5c7b 0x5c7e 0x5ddf 0x5e75 0x5e84 0x5f02 0x5f1a 0x5f74 0x5fd5 0x5fd4 0x5fcf 0x625c 0x625e 0x6264 0x6261 0x6266 0x6262 0x6259 0x6260 0x625a 0x6265 0x6537 0x65ef 0x65ee 0x673e 0x6739 0x6738 0x673b 0x673a 0x673f 0x673c 0x6733 0x6c18 0x6c46 0x6c52 0x6c5c 0x6c4f 0x6c4a 0x6c54 0x6c4b 0x6c4c 0x7071 0x725e 0x72b4 0x72b5 0x738e 0x752a 0x767f 0x7a75 0x7f51 0x8278 0x827c 0x8280 0x827d 0x827f 0x864d 0x897e 0x9099 0x9097 0x9098 0x909b 0x9094 0x9622 0x9624 0x9620 0x9623 0x4f56 0x4f3b 0x4f62 0x4f49 0x4f53 ) ; 0x22321 ... 0x2237e (block 2 0x4f64 0x4f3e 0x4f67 0x4f52 0x4f5f 0x4f41 0x4f58 0x4f2d 0x4f33 0x4f3f 0x4f61 0x518f 0x51b9 0x521c 0x521e 0x5221 0x52ad 0x52ae 0x5309 0x5363 0x5372 0x538e 0x538f 0x5430 0x5437 0x542a 0x5454 0x5445 0x5419 0x541c 0x5425 0x5418 0x543d 0x544f 0x5441 0x5428 0x5424 0x5447 0x56ee 0x56e7 0x56e5 0x5741 0x5745 0x574c 0x5749 0x574b 0x5752 0x5906 0x5940 0x59a6 0x5998 0x59a0 0x5997 0x598e 0x59a2 0x5990 0x598f 0x59a7 0x59a1 0x5b8e 0x5b92 0x5c28 0x5c2a 0x5c8d 0x5c8f 0x5c88 0x5c8b 0x5c89 0x5c92 0x5c8a 0x5c86 0x5c93 0x5c95 0x5de0 0x5e0a 0x5e0e 0x5e8b 0x5e89 0x5e8c 0x5e88 0x5e8d 0x5f05 0x5f1d 0x5f78 0x5f76 0x5fd2 0x5fd1 0x5fd0 0x5fed 0x5fe8 0x5fee 0x5ff3 0x5fe1 0x5fe4 ) ; 0x22421 ... 0x2247e (block 3 0x5fe3 0x5ffa 0x5fef 0x5ff7 0x5ffb 0x6000 0x5ff4 0x623a 0x6283 0x628c 0x628e 0x628f 0x6294 0x6287 0x6271 0x627b 0x627a 0x6270 0x6281 0x6288 0x6277 0x627d 0x6272 0x6274 0x65f0 0x65f4 0x65f3 0x65f2 0x65f5 0x6745 0x6747 0x6759 0x6755 0x674c 0x6748 0x675d 0x674d 0x675a 0x674b 0x6bd0 0x6c19 0x6c1a 0x6c78 0x6c67 0x6c6b 0x6c84 0x6c8b 0x6c8f 0x6c71 0x6c6f 0x6c69 0x6c9a 0x6c6d 0x6c87 0x6c95 0x6c9c 0x6c66 0x6c73 0x6c65 0x6c7b 0x6c8e 0x7074 0x707a 0x7263 0x72bf 0x72bd 0x72c3 0x72c6 0x72c1 0x72ba 0x72c5 0x7395 0x7397 0x7393 0x7394 0x7392 0x753a 0x7539 0x7594 0x7595 0x7681 0x793d 0x8034 0x8095 0x8099 0x8090 0x8092 0x809c 0x8290 0x828f 0x8285 0x828e 0x8291 0x8293 ) ; 0x22521 ... 0x2257e (block 4 0x828a 0x8283 0x8284 0x8c78 0x8fc9 0x8fbf 0x909f 0x90a1 0x90a5 0x909e 0x90a7 0x90a0 0x9630 0x9628 0x962f 0x962d 0x4e33 0x4f98 0x4f7c 0x4f85 0x4f7d 0x4f80 0x4f87 0x4f76 0x4f74 0x4f89 0x4f84 0x4f77 0x4f4c 0x4f97 0x4f6a 0x4f9a 0x4f79 0x4f81 0x4f78 0x4f90 0x4f9c 0x4f94 0x4f9e 0x4f92 0x4f82 0x4f95 0x4f6b 0x4f6e 0x519e 0x51bc 0x51be 0x5235 0x5232 0x5233 0x5246 0x5231 0x52bc 0x530a 0x530b 0x533c 0x5392 0x5394 0x5487 0x547f 0x5481 0x5491 0x5482 0x5488 0x546b 0x547a 0x547e 0x5465 0x546c 0x5474 0x5466 0x548d 0x546f 0x5461 0x5460 0x5498 0x5463 0x5467 0x5464 0x56f7 0x56f9 0x576f 0x5772 0x576d 0x576b 0x5771 0x5770 0x5776 0x5780 0x5775 0x577b 0x5773 0x5774 0x5762 ) ; 0x22621 ... 0x2267e (block 5 0x5768 0x577d 0x590c 0x5945 0x59b5 0x59ba 0x59cf 0x59ce 0x59b2 0x59cc 0x59c1 0x59b6 0x59bc 0x59c3 0x59d6 0x59b1 0x59bd 0x59c0 0x59c8 0x59b4 0x59c7 0x5b62 0x5b65 0x5b93 0x5b95 0x5c44 0x5c47 0x5cae 0x5ca4 0x5ca0 0x5cb5 0x5caf 0x5ca8 0x5cac 0x5c9f 0x5ca3 0x5cad 0x5ca2 0x5caa 0x5ca7 0x5c9d 0x5ca5 0x5cb6 0x5cb0 0x5ca6 0x5e17 0x5e14 0x5e19 0x5f28 0x5f22 0x5f23 0x5f24 0x5f54 0x5f82 0x5f7e 0x5f7d 0x5fde 0x5fe5 0x602d 0x6026 0x6019 0x6032 0x600b 0x6034 0x600a 0x6017 0x6033 0x601a 0x601e 0x602c 0x6022 0x600d 0x6010 0x602e 0x6013 0x6011 0x600c 0x6009 0x601c 0x6214 0x623d 0x62ad 0x62b4 0x62d1 0x62be 0x62aa 0x62b6 0x62ca 0x62ae 0x62b3 0x62af 0x62bb 0x62a9 0x62b0 ) ; 0x22721 ... 0x2277e (block 6 0x62b8 0x653d 0x65a8 0x65bb 0x6609 0x65fc 0x6604 0x6612 0x6608 0x65fb 0x6603 0x660b 0x660d 0x6605 0x65fd 0x6611 0x6610 0x66f6 0x670a 0x6785 0x676c 0x678e 0x6792 0x6776 0x677b 0x6798 0x6786 0x6784 0x6774 0x678d 0x678c 0x677a 0x679f 0x6791 0x6799 0x6783 0x677d 0x6781 0x6778 0x6779 0x6794 0x6b25 0x6b80 0x6b7e 0x6bde 0x6c1d 0x6c93 0x6cec 0x6ceb 0x6cee 0x6cd9 0x6cb6 0x6cd4 0x6cad 0x6ce7 0x6cb7 0x6cd0 0x6cc2 0x6cba 0x6cc3 0x6cc6 0x6ced 0x6cf2 0x6cd2 0x6cdd 0x6cb4 0x6c8a 0x6c9d 0x6c80 0x6cde 0x6cc0 0x6d30 0x6ccd 0x6cc7 0x6cb0 0x6cf9 0x6ccf 0x6ce9 0x6cd1 0x7094 0x7098 0x7085 0x7093 0x7086 0x7084 0x7091 0x7096 0x7082 0x709a 0x7083 0x726a 0x72d6 0x72cb 0x72d8 ) ; 0x22821 ... 0x2287e (block 7 0x72c9 0x72dc 0x72d2 0x72d4 0x72da 0x72cc 0x72d1 0x73a4 0x73a1 0x73ad 0x73a6 0x73a2 0x73a0 0x73ac 0x739d 0x74dd 0x74e8 0x753f 0x7540 0x753e 0x758c 0x7598 0x76af 0x76f3 0x76f1 0x76f0 0x76f5 0x77f8 0x77fc 0x77f9 0x77fb 0x77fa 0x77f7 0x7942 0x793f 0x79c5 0x7a78 0x7a7b 0x7afb 0x7c75 0x7cfd 0x8035 0x808f 0x80ae 0x80a3 0x80b8 0x80b5 0x80ad 0x8220 0x82a0 0x82c0 0x82ab 0x829a 0x8298 0x829b 0x82b5 0x82a7 0x82ae 0x82bc 0x829e 0x82ba 0x82b4 0x82a8 0x82a1 0x82a9 0x82c2 0x82a4 0x82c3 0x82b6 0x82a2 0x8670 0x866f 0x866d 0x866e 0x8c56 0x8fd2 0x8fcb 0x8fd3 0x8fcd 0x8fd6 0x8fd5 0x8fd7 0x90b2 0x90b4 0x90af 0x90b3 0x90b0 0x9639 0x963d 0x963c 0x963a 0x9643 0x4fcd 0x4fc5 ) ; 0x22921 ... 0x2297e (block 8 0x4fd3 0x4fb2 0x4fc9 0x4fcb 0x4fc1 0x4fd4 0x4fdc 0x4fd9 0x4fbb 0x4fb3 0x4fdb 0x4fc7 0x4fd6 0x4fba 0x4fc0 0x4fb9 0x4fec 0x5244 0x5249 0x52c0 0x52c2 0x533d 0x537c 0x5397 0x5396 0x5399 0x5398 0x54ba 0x54a1 0x54ad 0x54a5 0x54cf 0x54c3 0x830d 0x54b7 0x54ae 0x54d6 0x54b6 0x54c5 0x54c6 0x54a0 0x5470 0x54bc 0x54a2 0x54be 0x5472 0x54de 0x54b0 0x57b5 0x579e 0x579f 0x57a4 0x578c 0x5797 0x579d 0x579b 0x5794 0x5798 0x578f 0x5799 0x57a5 0x579a 0x5795 0x58f4 0x590d 0x5953 0x59e1 0x59de 0x59ee 0x5a00 0x59f1 0x59dd 0x59fa 0x59fd 0x59fc 0x59f6 0x59e4 0x59f2 0x59f7 0x59db 0x59e9 0x59f3 0x59f5 0x59e0 0x59fe 0x59f4 0x59ed 0x5ba8 0x5c4c 0x5cd0 0x5cd8 0x5ccc 0x5cd7 0x5ccb ) ; 0x22a21 ... 0x22a7e (block 9 0x5cdb 0x5cde 0x5cda 0x5cc9 0x5cc7 0x5cca 0x5cd6 0x5cd3 0x5cd4 0x5ccf 0x5cc8 0x5cc6 0x5cce 0x5cdf 0x5cf8 0x5df9 0x5e21 0x5e22 0x5e23 0x5e20 0x5e24 0x5eb0 0x5ea4 0x5ea2 0x5e9b 0x5ea3 0x5ea5 0x5f07 0x5f2e 0x5f56 0x5f86 0x6037 0x6039 0x6054 0x6072 0x605e 0x6045 0x6053 0x6047 0x6049 0x605b 0x604c 0x6040 0x6042 0x605f 0x6024 0x6044 0x6058 0x6066 0x606e 0x6242 0x6243 0x62cf 0x630d 0x630b 0x62f5 0x630e 0x6303 0x62eb 0x62f9 0x630f 0x630c 0x62f8 0x62f6 0x6300 0x6313 0x6314 0x62fa 0x6315 0x62fb 0x62f0 0x6541 0x6543 0x65aa 0x65bf 0x6636 0x6621 0x6632 0x6635 0x661c 0x6626 0x6622 0x6633 0x662b 0x663a 0x661d 0x6634 0x6639 0x662e 0x670f 0x6710 0x67c1 0x67f2 0x67c8 ) ; 0x22b21 ... 0x22b7e (block 10 0x67ba 0x67dc 0x67bb 0x67f8 0x67d8 0x67c0 0x67b7 0x67c5 0x67eb 0x67e4 0x67df 0x67b5 0x67cd 0x67b3 0x67f7 0x67f6 0x67ee 0x67e3 0x67c2 0x67b9 0x67ce 0x67e7 0x67f0 0x67b2 0x67fc 0x67c6 0x67ed 0x67cc 0x67ae 0x67e6 0x67db 0x67fa 0x67c9 0x67ca 0x67c3 0x67ea 0x67cb 0x6b28 0x6b82 0x6b84 0x6bb6 0x6bd6 0x6bd8 0x6be0 0x6c20 0x6c21 0x6d28 0x6d34 0x6d2d 0x6d1f 0x6d3c 0x6d3f 0x6d12 0x6d0a 0x6cda 0x6d33 0x6d04 0x6d19 0x6d3a 0x6d1a 0x6d11 0x6d00 0x6d1d 0x6d42 0x6d01 0x6d18 0x6d37 0x6d03 0x6d0f 0x6d40 0x6d07 0x6d20 0x6d2c 0x6d08 0x6d22 0x6d09 0x6d10 0x70b7 0x709f 0x70be 0x70b1 0x70b0 0x70a1 0x70b4 0x70b5 0x70a9 0x7241 0x7249 0x724a 0x726c 0x7270 0x7273 0x726e 0x72ca ) ; 0x22c21 ... 0x22c7e (block 11 0x72e4 0x72e8 0x72eb 0x72df 0x72ea 0x72e6 0x72e3 0x7385 0x73cc 0x73c2 0x73c8 0x73c5 0x73b9 0x73b6 0x73b5 0x73b4 0x73eb 0x73bf 0x73c7 0x73be 0x73c3 0x73c6 0x73b8 0x73cb 0x74ec 0x74ee 0x752e 0x7547 0x7548 0x75a7 0x75aa 0x7679 0x76c4 0x7708 0x7703 0x7704 0x7705 0x770a 0x76f7 0x76fb 0x76fa 0x77e7 0x77e8 0x7806 0x7811 0x7812 0x7805 0x7810 0x780f 0x780e 0x7809 0x7803 0x7813 0x794a 0x794c 0x794b 0x7945 0x7944 0x79d5 0x79cd 0x79cf 0x79d6 0x79ce 0x7a80 0x7a7e 0x7ad1 0x7b00 0x7b01 0x7c7a 0x7c78 0x7c79 0x7c7f 0x7c80 0x7c81 0x7d03 0x7d08 0x7d01 0x7f58 0x7f91 0x7f8d 0x7fbe 0x8007 0x800e 0x800f 0x8014 0x8037 0x80d8 0x80c7 0x80e0 0x80d1 0x80c8 0x80c2 0x80d0 0x80c5 ) ; 0x22d21 ... 0x22d7e (block 12 0x80e3 0x80d9 0x80dc 0x80ca 0x80d5 0x80c9 0x80cf 0x80d7 0x80e6 0x80cd 0x81ff 0x8221 0x8294 0x82d9 0x82fe 0x82f9 0x8307 0x82e8 0x8300 0x82d5 0x833a 0x82eb 0x82d6 0x82f4 0x82ec 0x82e1 0x82f2 0x82f5 0x830c 0x82fb 0x82f6 0x82f0 0x82ea 0x82e4 0x82e0 0x82fa 0x82f3 0x82ed 0x8677 0x8674 0x867c 0x8673 0x8841 0x884e 0x8867 0x886a 0x8869 0x89d3 0x8a04 0x8a07 0x8d72 0x8fe3 0x8fe1 0x8fee 0x8fe0 0x90f1 0x90bd 0x90bf 0x90d5 0x90c5 0x90be 0x90c7 0x90cb 0x90c8 0x91d4 0x91d3 0x9654 0x964f 0x9651 0x9653 0x964a 0x964e 0x501e 0x5005 0x5007 0x5013 0x5022 0x5030 0x501b 0x4ff5 0x4ff4 0x5033 0x5037 0x502c 0x4ff6 0x4ff7 0x5017 0x501c 0x5020 0x5027 0x5035 0x502f 0x5031 0x500e ) ; 0x22e21 ... 0x22e7e (block 13 0x515a 0x5194 0x5193 0x51ca 0x51c4 0x51c5 0x51c8 0x51ce 0x5261 0x525a 0x5252 0x525e 0x525f 0x5255 0x5262 0x52cd 0x530e 0x539e 0x5526 0x54e2 0x5517 0x5512 0x54e7 0x54f3 0x54e4 0x551a 0x54ff 0x5504 0x5508 0x54eb 0x5511 0x5505 0x54f1 0x550a 0x54fb 0x54f7 0x54f8 0x54e0 0x550e 0x5503 0x550b 0x5701 0x5702 0x57cc 0x5832 0x57d5 0x57d2 0x57ba 0x57c6 0x57bd 0x57bc 0x57b8 0x57b6 0x57bf 0x57c7 0x57d0 0x57b9 0x57c1 0x590e 0x594a 0x5a19 0x5a16 0x5a2d 0x5a2e 0x5a15 0x5a0f 0x5a17 0x5a0a 0x5a1e 0x5a33 0x5b6c 0x5ba7 0x5bad 0x5bac 0x5c03 0x5c56 0x5c54 0x5cec 0x5cff 0x5cee 0x5cf1 0x5cf7 0x5d00 0x5cf9 0x5e29 0x5e28 0x5ea8 0x5eae 0x5eaa 0x5eac 0x5f33 0x5f30 0x5f67 0x605d ) ; 0x22f21 ... 0x22f7e (block 14 0x605a 0x6067 0x6041 0x60a2 0x6088 0x6080 0x6092 0x6081 0x609d 0x6083 0x6095 0x609b 0x6097 0x6087 0x609c 0x608e 0x6219 0x6246 0x62f2 0x6310 0x6356 0x632c 0x6344 0x6345 0x6336 0x6343 0x63e4 0x6339 0x634b 0x634a 0x633c 0x6329 0x6341 0x6334 0x6358 0x6354 0x6359 0x632d 0x6347 0x6333 0x635a 0x6351 0x6338 0x6357 0x6340 0x6348 0x654a 0x6546 0x65c6 0x65c3 0x65c4 0x65c2 0x664a 0x665f 0x6647 0x6651 0x6712 0x6713 0x681f 0x681a 0x6849 0x6832 0x6833 0x683b 0x684b 0x684f 0x6816 0x6831 0x681c 0x6835 0x682b 0x682d 0x682f 0x684e 0x6844 0x6834 0x681d 0x6812 0x6814 0x6826 0x6828 0x682e 0x684d 0x683a 0x6825 0x6820 0x6b2c 0x6b2f 0x6b2d 0x6b31 0x6b34 0x6b6d 0x8082 0x6b88 ) ; 0x23021 ... 0x2307e (block 15 0x6be6 0x6be4 0x6be8 0x6be3 0x6be2 0x6be7 0x6c25 0x6d7a 0x6d63 0x6d64 0x6d76 0x6d0d 0x6d61 0x6d92 0x6d58 0x6d62 0x6d6d 0x6d6f 0x6d91 0x6d8d 0x6def 0x6d7f 0x6d86 0x6d5e 0x6d67 0x6d60 0x6d97 0x6d70 0x6d7c 0x6d5f 0x6d82 0x6d98 0x6d2f 0x6d68 0x6d8b 0x6d7e 0x6d80 0x6d84 0x6d16 0x6d83 0x6d7b 0x6d7d 0x6d75 0x6d90 0x70dc 0x70d3 0x70d1 0x70dd 0x70cb 0x7f39 0x70e2 0x70d7 0x70d2 0x70de 0x70e0 0x70d4 0x70cd 0x70c5 0x70c6 0x70c7 0x70da 0x70ce 0x70e1 0x7242 0x7278 0x7277 0x7276 0x7300 0x72fa 0x72f4 0x72fe 0x72f6 0x72f3 0x72fb 0x7301 0x73d3 0x73d9 0x73e5 0x73d6 0x73bc 0x73e7 0x73e3 0x73e9 0x73dc 0x73d2 0x73db 0x73d4 0x73dd 0x73da 0x73d7 0x73d8 0x73e8 0x74de 0x74df ) ; 0x23121 ... 0x2317e (block 16 0x74f4 0x74f5 0x7521 0x755b 0x755f 0x75b0 0x75c1 0x75bb 0x75c4 0x75c0 0x75bf 0x75b6 0x75ba 0x768a 0x76c9 0x771d 0x771b 0x7710 0x7713 0x7712 0x7723 0x7711 0x7715 0x7719 0x771a 0x7722 0x7727 0x7823 0x782c 0x7822 0x7835 0x782f 0x7828 0x782e 0x782b 0x7821 0x7829 0x7833 0x782a 0x7831 0x7954 0x795b 0x794f 0x795c 0x7953 0x7952 0x7951 0x79eb 0x79ec 0x79e0 0x79ee 0x79ed 0x79ea 0x79dc 0x79de 0x79dd 0x7a86 0x7a89 0x7a85 0x7a8b 0x7a8c 0x7a8a 0x7a87 0x7ad8 0x7b10 0x7b04 0x7b13 0x7b05 0x7b0f 0x7b08 0x7b0a 0x7b0e 0x7b09 0x7b12 0x7c84 0x7c91 0x7c8a 0x7c8c 0x7c88 0x7c8d 0x7c85 0x7d1e 0x7d1d 0x7d11 0x7d0e 0x7d18 0x7d16 0x7d13 0x7d1f 0x7d12 0x7d0f 0x7d0c 0x7f5c 0x7f61 ) ; 0x23221 ... 0x2327e (block 17 0x7f5e 0x7f60 0x7f5d 0x7f5b 0x7f96 0x7f92 0x7fc3 0x7fc2 0x7fc0 0x8016 0x803e 0x8039 0x80fa 0x80f2 0x80f9 0x80f5 0x8101 0x80fb 0x8100 0x8201 0x822f 0x8225 0x8333 0x832d 0x8344 0x8319 0x8351 0x8325 0x8356 0x833f 0x8341 0x8326 0x831c 0x8322 0x8342 0x834e 0x831b 0x832a 0x8308 0x833c 0x834d 0x8316 0x8324 0x8320 0x8337 0x832f 0x8329 0x8347 0x8345 0x834c 0x8353 0x831e 0x832c 0x834b 0x8327 0x8348 0x8653 0x8652 0x86a2 0x86a8 0x8696 0x868d 0x8691 0x869e 0x8687 0x8697 0x8686 0x868b 0x869a 0x8685 0x86a5 0x8699 0x86a1 0x86a7 0x8695 0x8698 0x868e 0x869d 0x8690 0x8694 0x8843 0x8844 0x886d 0x8875 0x8876 0x8872 0x8880 0x8871 0x887f 0x886f 0x8883 0x887e 0x8874 0x887c ) ; 0x23321 ... 0x2337e (block 18 0x8a12 0x8c47 0x8c57 0x8c7b 0x8ca4 0x8ca3 0x8d76 0x8d78 0x8db5 0x8db7 0x8db6 0x8ed1 0x8ed3 0x8ffe 0x8ff5 0x9002 0x8fff 0x8ffb 0x9004 0x8ffc 0x8ff6 0x90d6 0x90e0 0x90d9 0x90da 0x90e3 0x90df 0x90e5 0x90d8 0x90db 0x90d7 0x90dc 0x90e4 0x9150 0x914e 0x914f 0x91d5 0x91e2 0x91da 0x965c 0x965f 0x96bc 0x98e3 0x9adf 0x9b2f 0x4e7f 0x5070 0x506a 0x5061 0x505e 0x5060 0x5053 0x504b 0x505d 0x5072 0x5048 0x504d 0x5041 0x505b 0x504a 0x5062 0x5015 0x5045 0x505f 0x5069 0x506b 0x5063 0x5064 0x5046 0x5040 0x506e 0x5073 0x5057 0x5051 0x51d0 0x526b 0x526d 0x526c 0x526e 0x52d6 0x52d3 0x532d 0x539c 0x5575 0x5576 0x553c 0x554d 0x5550 0x5534 0x552a 0x5551 0x5562 0x5536 0x5535 ) ; 0x23421 ... 0x2347e (block 19 0x5530 0x5552 0x5545 0x550c 0x5532 0x5565 0x554e 0x5539 0x5548 0x552d 0x553b 0x5540 0x554b 0x570a 0x5707 0x57fb 0x5814 0x57e2 0x57f6 0x57dc 0x57f4 0x5800 0x57ed 0x57fd 0x5808 0x57f8 0x580b 0x57f3 0x57cf 0x5807 0x57ee 0x57e3 0x57f2 0x57e5 0x57ec 0x57e1 0x580e 0x57fc 0x5810 0x57e7 0x5801 0x580c 0x57f1 0x57e9 0x57f0 0x580d 0x5804 0x595c 0x5a60 0x5a58 0x5a55 0x5a67 0x5a5e 0x5a38 0x5a35 0x5a6d 0x5a50 0x5a5f 0x5a65 0x5a6c 0x5a53 0x5a64 0x5a57 0x5a43 0x5a5d 0x5a52 0x5a44 0x5a5b 0x5a48 0x5a8e 0x5a3e 0x5a4d 0x5a39 0x5a4c 0x5a70 0x5a69 0x5a47 0x5a51 0x5a56 0x5a42 0x5a5c 0x5b72 0x5b6e 0x5bc1 0x5bc0 0x5c59 0x5d1e 0x5d0b 0x5d1d 0x5d1a 0x5d20 0x5d0c 0x5d28 0x5d0d ) ; 0x23521 ... 0x2357e (block 20 0x5d26 0x5d25 0x5d0f 0x5d30 0x5d12 0x5d23 0x5d1f 0x5d2e 0x5e3e 0x5e34 0x5eb1 0x5eb4 0x5eb9 0x5eb2 0x5eb3 0x5f36 0x5f38 0x5f9b 0x5f96 0x5f9f 0x608a 0x6090 0x6086 0x60be 0x60b0 0x60ba 0x60d3 0x60d4 0x60cf 0x60e4 0x60d9 0x60dd 0x60c8 0x60b1 0x60db 0x60b7 0x60ca 0x60bf 0x60c3 0x60cd 0x60c0 0x6332 0x6365 0x638a 0x6382 0x637d 0x63bd 0x639e 0x63ad 0x639d 0x6397 0x63ab 0x638e 0x636f 0x6387 0x6390 0x636e 0x63af 0x6375 0x639c 0x636d 0x63ae 0x637c 0x63a4 0x633b 0x639f 0x6378 0x6385 0x6381 0x6391 0x638d 0x6370 0x6553 0x65cd 0x6665 0x6661 0x665b 0x6659 0x665c 0x6662 0x6718 0x6879 0x6887 0x6890 0x689c 0x686d 0x686e 0x68ae 0x68ab 0x6956 0x686f 0x68a3 0x68ac 0x68a9 ) ; 0x23621 ... 0x2367e (block 21 0x6875 0x6874 0x68b2 0x688f 0x6877 0x6892 0x687c 0x686b 0x6872 0x68aa 0x6880 0x6871 0x687e 0x689b 0x6896 0x688b 0x68a0 0x6889 0x68a4 0x6878 0x687b 0x6891 0x688c 0x688a 0x687d 0x6b36 0x6b33 0x6b37 0x6b38 0x6b91 0x6b8f 0x6b8d 0x6b8e 0x6b8c 0x6c2a 0x6dc0 0x6dab 0x6db4 0x6db3 0x6e74 0x6dac 0x6de9 0x6de2 0x6db7 0x6df6 0x6dd4 0x6e00 0x6dc8 0x6de0 0x6ddf 0x6dd6 0x6dbe 0x6de5 0x6ddc 0x6ddd 0x6ddb 0x6df4 0x6dca 0x6dbd 0x6ded 0x6df0 0x6dba 0x6dd5 0x6dc2 0x6dcf 0x6dc9 0x6dd0 0x6df2 0x6dd3 0x6dfd 0x6dd7 0x6dcd 0x6de3 0x6dbb 0x70fa 0x710d 0x70f7 0x7117 0x70f4 0x710c 0x70f0 0x7104 0x70f3 0x7110 0x70fc 0x70ff 0x7106 0x7113 0x7100 0x70f8 0x70f6 0x710b 0x7102 0x710e ) ; 0x23721 ... 0x2377e (block 22 0x727e 0x727b 0x727c 0x727f 0x731d 0x7317 0x7307 0x7311 0x7318 0x730a 0x7308 0x72ff 0x730f 0x731e 0x7388 0x73f6 0x73f8 0x73f5 0x7404 0x7401 0x73fd 0x7407 0x7400 0x73fa 0x73fc 0x73ff 0x740c 0x740b 0x73f4 0x7408 0x7564 0x7563 0x75ce 0x75d2 0x75cf 0x75cb 0x75cc 0x75d1 0x75d0 0x768f 0x7689 0x76d3 0x7739 0x772f 0x772d 0x7731 0x7732 0x7734 0x7733 0x773d 0x7725 0x773b 0x7735 0x7848 0x7852 0x7849 0x784d 0x784a 0x784c 0x7826 0x7845 0x7850 0x7964 0x7967 0x7969 0x796a 0x7963 0x796b 0x7961 0x79bb 0x79fa 0x79f8 0x79f6 0x79f7 0x7a8f 0x7a94 0x7a90 0x7b35 0x7b3b 0x7b34 0x7b25 0x7b30 0x7b22 0x7b24 0x7b33 0x7b18 0x7b2a 0x7b1d 0x7b31 0x7b2b 0x7b2d 0x7b2f 0x7b32 0x7b38 ) ; 0x23821 ... 0x2387e (block 23 0x7b1a 0x7b23 0x7c94 0x7c98 0x7c96 0x7ca3 0x7d35 0x7d3d 0x7d38 0x7d36 0x7d3a 0x7d45 0x7d2c 0x7d29 0x7d41 0x7d47 0x7d3e 0x7d3f 0x7d4a 0x7d3b 0x7d28 0x7f63 0x7f95 0x7f9c 0x7f9d 0x7f9b 0x7fca 0x7fcb 0x7fcd 0x7fd0 0x7fd1 0x7fc7 0x7fcf 0x7fc9 0x801f 0x801e 0x801b 0x8047 0x8043 0x8048 0x8118 0x8125 0x8119 0x811b 0x812d 0x811f 0x812c 0x811e 0x8121 0x8115 0x8127 0x811d 0x8122 0x8211 0x8238 0x8233 0x823a 0x8234 0x8232 0x8274 0x8390 0x83a3 0x83a8 0x838d 0x837a 0x8373 0x83a4 0x8374 0x838f 0x8381 0x8395 0x8399 0x8375 0x8394 0x83a9 0x837d 0x8383 0x838c 0x839d 0x839b 0x83aa 0x838b 0x837e 0x83a5 0x83af 0x8388 0x8397 0x83b0 0x837f 0x83a6 0x8387 0x83ae 0x8376 0x8659 ) ; 0x23921 ... 0x2397e (block 24 0x8656 0x86bf 0x86b7 0x86c2 0x86c1 0x86c5 0x86ba 0x86b0 0x86c8 0x86b9 0x86b3 0x86b8 0x86cc 0x86b4 0x86bb 0x86bc 0x86c3 0x86bd 0x86be 0x8852 0x8889 0x8895 0x88a8 0x88a2 0x88aa 0x889a 0x8891 0x88a1 0x889f 0x8898 0x88a7 0x8899 0x889b 0x8897 0x88a4 0x88ac 0x888c 0x8893 0x888e 0x8982 0x89d6 0x89d9 0x89d5 0x8a30 0x8a27 0x8a2c 0x8a1e 0x8c39 0x8c3b 0x8c5c 0x8c5d 0x8c7d 0x8ca5 0x8d7d 0x8d7b 0x8d79 0x8dbc 0x8dc2 0x8db9 0x8dbf 0x8dc1 0x8ed8 0x8ede 0x8edd 0x8edc 0x8ed7 0x8ee0 0x8ee1 0x9024 0x900b 0x9011 0x901c 0x900c 0x9021 0x90ef 0x90ea 0x90f0 0x90f4 0x90f2 0x90f3 0x90d4 0x90eb 0x90ec 0x90e9 0x9156 0x9158 0x915a 0x9153 0x9155 0x91ec 0x91f4 0x91f1 0x91f3 0x91f8 ) ; 0x23a21 ... 0x23a7e (block 25 0x91e4 0x91f9 0x91ea 0x91eb 0x91f7 0x91e8 0x91ee 0x957a 0x9586 0x9588 0x967c 0x966d 0x966b 0x9671 0x966f 0x96bf 0x976a 0x9804 0x98e5 0x9997 0x509b 0x5095 0x5094 0x509e 0x508b 0x50a3 0x5083 0x508c 0x508e 0x509d 0x5068 0x509c 0x5092 0x5082 0x5087 0x515f 0x51d4 0x5312 0x5311 0x53a4 0x53a7 0x5591 0x55a8 0x55a5 0x55ad 0x5577 0x5645 0x55a2 0x5593 0x5588 0x558f 0x55b5 0x5581 0x55a3 0x5592 0x55a4 0x557d 0x558c 0x55a6 0x557f 0x5595 0x55a1 0x558e 0x570c 0x5829 0x5837 0x5819 0x581e 0x5827 0x5823 0x5828 0x57f5 0x5848 0x5825 0x581c 0x581b 0x5833 0x583f 0x5836 0x582e 0x5839 0x5838 0x582d 0x582c 0x583b 0x5961 0x5aaf 0x5a94 0x5a9f 0x5a7a 0x5aa2 0x5a9e 0x5a78 0x5aa6 ) ; 0x23b21 ... 0x23b7e (block 26 0x5a7c 0x5aa5 0x5aac 0x5a95 0x5aae 0x5a37 0x5a84 0x5a8a 0x5a97 0x5a83 0x5a8b 0x5aa9 0x5a7b 0x5a7d 0x5a8c 0x5a9c 0x5a8f 0x5a93 0x5a9d 0x5bea 0x5bcd 0x5bcb 0x5bd4 0x5bd1 0x5bca 0x5bce 0x5c0c 0x5c30 0x5d37 0x5d43 0x5d6b 0x5d41 0x5d4b 0x5d3f 0x5d35 0x5d51 0x5d4e 0x5d55 0x5d33 0x5d3a 0x5d52 0x5d3d 0x5d31 0x5d59 0x5d42 0x5d39 0x5d49 0x5d38 0x5d3c 0x5d32 0x5d36 0x5d40 0x5d45 0x5e44 0x5e41 0x5f58 0x5fa6 0x5fa5 0x5fab 0x60c9 0x60b9 0x60cc 0x60e2 0x60ce 0x60c4 0x6114 0x60f2 0x610a 0x6116 0x6105 0x60f5 0x6113 0x60f8 0x60fc 0x60fe 0x60c1 0x6103 0x6118 0x611d 0x6110 0x60ff 0x6104 0x610b 0x624a 0x6394 0x63b1 0x63b0 0x63ce 0x63e5 0x63e8 0x63ef 0x63c3 0x649d 0x63f3 ) ; 0x23c21 ... 0x23c7e (block 27 0x63ca 0x63e0 0x63f6 0x63d5 0x63f2 0x63f5 0x6461 0x63df 0x63be 0x63dd 0x63dc 0x63c4 0x63d8 0x63d3 0x63c2 0x63c7 0x63cc 0x63cb 0x63c8 0x63f0 0x63d7 0x63d9 0x6532 0x6567 0x656a 0x6564 0x655c 0x6568 0x6565 0x658c 0x659d 0x659e 0x65ae 0x65d0 0x65d2 0x667c 0x666c 0x667b 0x6680 0x6671 0x6679 0x666a 0x6672 0x6701 0x690c 0x68d3 0x6904 0x68dc 0x692a 0x68ec 0x68ea 0x68f1 0x690f 0x68d6 0x68f7 0x68eb 0x68e4 0x68f6 0x6913 0x6910 0x68f3 0x68e1 0x6907 0x68cc 0x6908 0x6970 0x68b4 0x6911 0x68ef 0x68c6 0x6914 0x68f8 0x68d0 0x68fd 0x68fc 0x68e8 0x690b 0x690a 0x6917 0x68ce 0x68c8 0x68dd 0x68de 0x68e6 0x68f4 0x68d1 0x6906 0x68d4 0x68e9 0x6915 0x6925 0x68c7 0x6b39 0x6b3b ) ; 0x23d21 ... 0x23d7e (block 28 0x6b3f 0x6b3c 0x6b94 0x6b97 0x6b99 0x6b95 0x6bbd 0x6bf0 0x6bf2 0x6bf3 0x6c30 0x6dfc 0x6e46 0x6e47 0x6e1f 0x6e49 0x6e88 0x6e3c 0x6e3d 0x6e45 0x6e62 0x6e2b 0x6e3f 0x6e41 0x6e5d 0x6e73 0x6e1c 0x6e33 0x6e4b 0x6e40 0x6e51 0x6e3b 0x6e03 0x6e2e 0x6e5e 0x6e68 0x6e5c 0x6e61 0x6e31 0x6e28 0x6e60 0x6e71 0x6e6b 0x6e39 0x6e22 0x6e30 0x6e53 0x6e65 0x6e27 0x6e78 0x6e64 0x6e77 0x6e55 0x6e79 0x6e52 0x6e66 0x6e35 0x6e36 0x6e5a 0x7120 0x711e 0x712f 0x70fb 0x712e 0x7131 0x7123 0x7125 0x7122 0x7132 0x711f 0x7128 0x713a 0x711b 0x724b 0x725a 0x7288 0x7289 0x7286 0x7285 0x728b 0x7312 0x730b 0x7330 0x7322 0x7331 0x7333 0x7327 0x7332 0x732d 0x7326 0x7323 0x7335 0x730c 0x742e ) ; 0x23e21 ... 0x23e7e (block 29 0x742c 0x7430 0x742b 0x7416 0x741a 0x7421 0x742d 0x7431 0x7424 0x7423 0x741d 0x7429 0x7420 0x7432 0x74fb 0x752f 0x756f 0x756c 0x75e7 0x75da 0x75e1 0x75e6 0x75dd 0x75df 0x75e4 0x75d7 0x7695 0x7692 0x76da 0x7746 0x7747 0x7744 0x774d 0x7745 0x774a 0x774e 0x774b 0x774c 0x77de 0x77ec 0x7860 0x7864 0x7865 0x785c 0x786d 0x7871 0x786a 0x786e 0x7870 0x7869 0x7868 0x785e 0x7862 0x7974 0x7973 0x7972 0x7970 0x7a02 0x7a0a 0x7a03 0x7a0c 0x7a04 0x7a99 0x7ae6 0x7ae4 0x7b4a 0x7b47 0x7b44 0x7b48 0x7b4c 0x7b4e 0x7b40 0x7b58 0x7b45 0x7ca2 0x7c9e 0x7ca8 0x7ca1 0x7d58 0x7d6f 0x7d63 0x7d53 0x7d56 0x7d67 0x7d6a 0x7d4f 0x7d6d 0x7d5c 0x7d6b 0x7d52 0x7d54 0x7d69 0x7d51 0x7d5f ) ; 0x23f21 ... 0x23f7e (block 30 0x7d4e 0x7f3e 0x7f3f 0x7f65 0x7f66 0x7fa2 0x7fa0 0x7fa1 0x7fd7 0x8051 0x804f 0x8050 0x80fe 0x80d4 0x8143 0x814a 0x8152 0x814f 0x8147 0x813d 0x814d 0x813a 0x81e6 0x81ee 0x81f7 0x81f8 0x81f9 0x8204 0x823c 0x823d 0x823f 0x8275 0x833b 0x83cf 0x83f9 0x8423 0x83c0 0x83e8 0x8412 0x83e7 0x83e4 0x83fc 0x83f6 0x8410 0x83c6 0x83c8 0x83eb 0x83e3 0x83bf 0x8401 0x83dd 0x83e5 0x83d8 0x83ff 0x83e1 0x83cb 0x83ce 0x83d6 0x83f5 0x83c9 0x8409 0x840f 0x83de 0x8411 0x8406 0x83c2 0x83f3 0x83d5 0x83fa 0x83c7 0x83d1 0x83ea 0x8413 0x839a 0x83c3 0x83ec 0x83ee 0x83c4 0x83fb 0x83d7 0x83e2 0x841b 0x83db 0x83fe 0x86d8 0x86e2 0x86e6 0x86d3 0x86e3 0x86da 0x86ea 0x86dd 0x86eb 0x86dc ) ; 0x24021 ... 0x2407e (block 31 0x86ec 0x86e9 0x86d7 0x86e8 0x86d1 0x8848 0x8856 0x8855 0x88ba 0x88d7 0x88b9 0x88b8 0x88c0 0x88be 0x88b6 0x88bc 0x88b7 0x88bd 0x88b2 0x8901 0x88c9 0x8995 0x8998 0x8997 0x89dd 0x89da 0x89db 0x8a4e 0x8a4d 0x8a39 0x8a59 0x8a40 0x8a57 0x8a58 0x8a44 0x8a45 0x8a52 0x8a48 0x8a51 0x8a4a 0x8a4c 0x8a4f 0x8c5f 0x8c81 0x8c80 0x8cba 0x8cbe 0x8cb0 0x8cb9 0x8cb5 0x8d84 0x8d80 0x8d89 0x8dd8 0x8dd3 0x8dcd 0x8dc7 0x8dd6 0x8ddc 0x8dcf 0x8dd5 0x8dd9 0x8dc8 0x8dd7 0x8dc5 0x8eef 0x8ef7 0x8efa 0x8ef9 0x8ee6 0x8eee 0x8ee5 0x8ef5 0x8ee7 0x8ee8 0x8ef6 0x8eeb 0x8ef1 0x8eec 0x8ef4 0x8ee9 0x902d 0x9034 0x902f 0x9106 0x912c 0x9104 0x90ff 0x90fc 0x9108 0x90f9 0x90fb 0x9101 0x9100 ) ; 0x24121 ... 0x2417e (block 32 0x9107 0x9105 0x9103 0x9161 0x9164 0x915f 0x9162 0x9160 0x9201 0x920a 0x9225 0x9203 0x921a 0x9226 0x920f 0x920c 0x9200 0x9212 0x91ff 0x91fd 0x9206 0x9204 0x9227 0x9202 0x921c 0x9224 0x9219 0x9217 0x9205 0x9216 0x957b 0x958d 0x958c 0x9590 0x9687 0x967e 0x9688 0x9689 0x9683 0x9680 0x96c2 0x96c8 0x96c3 0x96f1 0x96f0 0x976c 0x9770 0x976e 0x9807 0x98a9 0x98eb 0x9ce6 0x9ef9 0x4e83 0x4e84 0x4eb6 0x50bd 0x50bf 0x50c6 0x50ae 0x50c4 0x50ca 0x50b4 0x50c8 0x50c2 0x50b0 0x50c1 0x50ba 0x50b1 0x50cb 0x50c9 0x50b6 0x50b8 0x51d7 0x527a 0x5278 0x527b 0x527c 0x55c3 0x55db 0x55cc 0x55d0 0x55cb 0x55ca 0x55dd 0x55c0 0x55d4 0x55c4 0x55e9 0x55bf 0x55d2 0x558d 0x55cf 0x55d5 ) ; 0x24221 ... 0x2427e (block 33 0x55e2 0x55d6 0x55c8 0x55f2 0x55cd 0x55d9 0x55c2 0x5714 0x5853 0x5868 0x5864 0x584f 0x584d 0x5849 0x586f 0x5855 0x584e 0x585d 0x5859 0x5865 0x585b 0x583d 0x5863 0x5871 0x58fc 0x5ac7 0x5ac4 0x5acb 0x5aba 0x5ab8 0x5ab1 0x5ab5 0x5ab0 0x5abf 0x5ac8 0x5abb 0x5ac6 0x5ab7 0x5ac0 0x5aca 0x5ab4 0x5ab6 0x5acd 0x5ab9 0x5a90 0x5bd6 0x5bd8 0x5bd9 0x5c1f 0x5c33 0x5d71 0x5d63 0x5d4a 0x5d65 0x5d72 0x5d6c 0x5d5e 0x5d68 0x5d67 0x5d62 0x5df0 0x5e4f 0x5e4e 0x5e4a 0x5e4d 0x5e4b 0x5ec5 0x5ecc 0x5ec6 0x5ecb 0x5ec7 0x5f40 0x5faf 0x5fad 0x60f7 0x6149 0x614a 0x612b 0x6145 0x6136 0x6132 0x612e 0x6146 0x612f 0x614f 0x6129 0x6140 0x6220 0x9168 0x6223 0x6225 0x6224 0x63c5 0x63f1 ) ; 0x24321 ... 0x2437e (block 34 0x63eb 0x6410 0x6412 0x6409 0x6420 0x6424 0x6433 0x6443 0x641f 0x6415 0x6418 0x6439 0x6437 0x6422 0x6423 0x640c 0x6426 0x6430 0x6428 0x6441 0x6435 0x642f 0x640a 0x641a 0x6440 0x6425 0x6427 0x640b 0x63e7 0x641b 0x642e 0x6421 0x640e 0x656f 0x6592 0x65d3 0x6686 0x668c 0x6695 0x6690 0x668b 0x668a 0x6699 0x6694 0x6678 0x6720 0x6966 0x695f 0x6938 0x694e 0x6962 0x6971 0x693f 0x6945 0x696a 0x6939 0x6942 0x6957 0x6959 0x697a 0x6948 0x6949 0x6935 0x696c 0x6933 0x693d 0x6965 0x68f0 0x6978 0x6934 0x6969 0x6940 0x696f 0x6944 0x6976 0x6958 0x6941 0x6974 0x694c 0x693b 0x694b 0x6937 0x695c 0x694f 0x6951 0x6932 0x6952 0x692f 0x697b 0x693c 0x6b46 0x6b45 0x6b43 0x6b42 ) ; 0x24421 ... 0x2447e (block 35 0x6b48 0x6b41 0x6b9b 0x6bfb 0x6bfc 0x6bf9 0x6bf7 0x6bf8 0x6e9b 0x6ed6 0x6ec8 0x6e8f 0x6ec0 0x6e9f 0x6e93 0x6e94 0x6ea0 0x6eb1 0x6eb9 0x6ec6 0x6ed2 0x6ebd 0x6ec1 0x6e9e 0x6ec9 0x6eb7 0x6eb0 0x6ecd 0x6ea6 0x6ecf 0x6eb2 0x6ebe 0x6ec3 0x6edc 0x6ed8 0x6e99 0x6e92 0x6e8e 0x6e8d 0x6ea4 0x6ea1 0x6ebf 0x6eb3 0x6ed0 0x6eca 0x6e97 0x6eae 0x6ea3 0x7147 0x7154 0x7152 0x7163 0x7160 0x7141 0x715d 0x7162 0x7172 0x7178 0x716a 0x7161 0x7142 0x7158 0x7143 0x714b 0x7170 0x715f 0x7150 0x7153 0x7144 0x714d 0x715a 0x724f 0x728d 0x728c 0x7291 0x7290 0x728e 0x733c 0x7342 0x733b 0x733a 0x7340 0x734a 0x7349 0x7444 0x744a 0x744b 0x7452 0x7451 0x7457 0x7440 0x744f 0x7450 0x744e ) ; 0x24521 ... 0x2457e (block 36 0x7442 0x7446 0x744d 0x7454 0x74e1 0x74ff 0x74fe 0x74fd 0x751d 0x7579 0x7577 0x6983 0x75ef 0x760f 0x7603 0x75f7 0x75fe 0x75fc 0x75f9 0x75f8 0x7610 0x75fb 0x75f6 0x75ed 0x75f5 0x75fd 0x7699 0x76b5 0x76dd 0x7755 0x775f 0x7760 0x7752 0x7756 0x775a 0x7769 0x7767 0x7754 0x7759 0x776d 0x77e0 0x7887 0x789a 0x7894 0x788f 0x7884 0x7895 0x7885 0x7886 0x78a1 0x7883 0x7879 0x7899 0x7880 0x7896 0x787b 0x797c 0x7982 0x797d 0x7979 0x7a11 0x7a18 0x7a19 0x7a12 0x7a17 0x7a15 0x7a22 0x7a13 0x7a1b 0x7a10 0x7aa3 0x7aa2 0x7a9e 0x7aeb 0x7b66 0x7b64 0x7b6d 0x7b74 0x7b69 0x7b72 0x7b65 0x7b73 0x7b71 0x7b70 0x7b61 0x7b78 0x7b76 0x7b63 0x7cb2 0x7cb4 0x7caf 0x7d88 0x7d86 0x7d80 ) ; 0x24621 ... 0x2467e (block 37 0x7d8d 0x7d7f 0x7d85 0x7d7a 0x7d8e 0x7d7b 0x7d83 0x7d7c 0x7d8c 0x7d94 0x7d84 0x7d7d 0x7d92 0x7f6d 0x7f6b 0x7f67 0x7f68 0x7f6c 0x7fa6 0x7fa5 0x7fa7 0x7fdb 0x7fdc 0x8021 0x8164 0x8160 0x8177 0x815c 0x8169 0x815b 0x8162 0x8172 0x6721 0x815e 0x8176 0x8167 0x816f 0x8144 0x8161 0x821d 0x8249 0x8244 0x8240 0x8242 0x8245 0x84f1 0x843f 0x8456 0x8476 0x8479 0x848f 0x848d 0x8465 0x8451 0x8440 0x8486 0x8467 0x8430 0x844d 0x847d 0x845a 0x8459 0x8474 0x8473 0x845d 0x8507 0x845e 0x8437 0x843a 0x8434 0x847a 0x8443 0x8478 0x8432 0x8445 0x8429 0x83d9 0x844b 0x842f 0x8442 0x842d 0x845f 0x8470 0x8439 0x844e 0x844c 0x8452 0x846f 0x84c5 0x848e 0x843b 0x8447 0x8436 0x8433 ) ; 0x24721 ... 0x2477e (block 38 0x8468 0x847e 0x8444 0x842b 0x8460 0x8454 0x846e 0x8450 0x870b 0x8704 0x86f7 0x870c 0x86fa 0x86d6 0x86f5 0x874d 0x86f8 0x870e 0x8709 0x8701 0x86f6 0x870d 0x8705 0x88d6 0x88cb 0x88cd 0x88ce 0x88de 0x88db 0x88da 0x88cc 0x88d0 0x8985 0x899b 0x89df 0x89e5 0x89e4 0x89e1 0x89e0 0x89e2 0x89dc 0x89e6 0x8a76 0x8a86 0x8a7f 0x8a61 0x8a3f 0x8a77 0x8a82 0x8a84 0x8a75 0x8a83 0x8a81 0x8a74 0x8a7a 0x8c3c 0x8c4b 0x8c4a 0x8c65 0x8c64 0x8c66 0x8c86 0x8c84 0x8c85 0x8ccc 0x8d68 0x8d69 0x8d91 0x8d8c 0x8d8e 0x8d8f 0x8d8d 0x8d93 0x8d94 0x8d90 0x8d92 0x8df0 0x8de0 0x8dec 0x8df1 0x8dee 0x8dd0 0x8de9 0x8de3 0x8de2 0x8de7 0x8df2 0x8deb 0x8df4 0x8f06 0x8eff 0x8f01 0x8f00 0x8f05 ) ; 0x24821 ... 0x2487e (block 39 0x8f07 0x8f08 0x8f02 0x8f0b 0x9052 0x903f 0x9044 0x9049 0x903d 0x9110 0x910d 0x910f 0x9111 0x9116 0x9114 0x910b 0x910e 0x916e 0x916f 0x9248 0x9252 0x9230 0x923a 0x9266 0x9233 0x9265 0x925e 0x9283 0x922e 0x924a 0x9246 0x926d 0x926c 0x924f 0x9260 0x9267 0x926f 0x9236 0x9261 0x9270 0x9231 0x9254 0x9263 0x9250 0x9272 0x924e 0x9253 0x924c 0x9256 0x9232 0x959f 0x959c 0x959e 0x959b 0x9692 0x9693 0x9691 0x9697 0x96ce 0x96fa 0x96fd 0x96f8 0x96f5 0x9773 0x9777 0x9778 0x9772 0x980f 0x980d 0x980e 0x98ac 0x98f6 0x98f9 0x99af 0x99b2 0x99b0 0x99b5 0x9aad 0x9aab 0x9b5b 0x9cea 0x9ced 0x9ce7 0x9e80 0x9efd 0x50e6 0x50d4 0x50d7 0x50e8 0x50f3 0x50db 0x50ea 0x50dd 0x50e4 ) ; 0x24921 ... 0x2497e (block 40 0x50d3 0x50ec 0x50f0 0x50ef 0x50e3 0x50e0 0x51d8 0x5280 0x5281 0x52e9 0x52eb 0x5330 0x53ac 0x5627 0x5615 0x560c 0x5612 0x55fc 0x560f 0x561c 0x5601 0x5613 0x5602 0x55fa 0x561d 0x5604 0x55ff 0x55f9 0x5889 0x587c 0x5890 0x5898 0x5886 0x5881 0x587f 0x5874 0x588b 0x587a 0x5887 0x5891 0x588e 0x5876 0x5882 0x5888 0x587b 0x5894 0x588f 0x58fe 0x596b 0x5adc 0x5aee 0x5ae5 0x5ad5 0x5aea 0x5ada 0x5aed 0x5aeb 0x5af3 0x5ae2 0x5ae0 0x5adb 0x5aec 0x5ade 0x5add 0x5ad9 0x5ae8 0x5adf 0x5b77 0x5be0 0x5be3 0x5c63 0x5d82 0x5d80 0x5d7d 0x5d86 0x5d7a 0x5d81 0x5d77 0x5d8a 0x5d89 0x5d88 0x5d7e 0x5d7c 0x5d8d 0x5d79 0x5d7f 0x5e58 0x5e59 0x5e53 0x5ed8 0x5ed1 0x5ed7 0x5ece 0x5edc ) ; 0x24a21 ... 0x24a7e (block 41 0x5ed5 0x5ed9 0x5ed2 0x5ed4 0x5f44 0x5f43 0x5f6f 0x5fb6 0x612c 0x6128 0x6141 0x615e 0x6171 0x6173 0x6152 0x6153 0x6172 0x616c 0x6180 0x6174 0x6154 0x617a 0x615b 0x6165 0x613b 0x616a 0x6161 0x6156 0x6229 0x6227 0x622b 0x642b 0x644d 0x645b 0x645d 0x6474 0x6476 0x6472 0x6473 0x647d 0x6475 0x6466 0x64a6 0x644e 0x6482 0x645e 0x645c 0x644b 0x6453 0x6460 0x6450 0x647f 0x643f 0x646c 0x646b 0x6459 0x6465 0x6477 0x6573 0x65a0 0x66a1 0x66a0 0x669f 0x6705 0x6704 0x6722 0x69b1 0x69b6 0x69c9 0x69a0 0x69ce 0x6996 0x69b0 0x69ac 0x69bc 0x6991 0x6999 0x698e 0x69a7 0x698d 0x69a9 0x69be 0x69af 0x69bf 0x69c4 0x69bd 0x69a4 0x69d4 0x69b9 0x69ca 0x699a 0x69cf 0x69b3 0x6993 ) ; 0x24b21 ... 0x24b7e (block 42 0x69aa 0x69a1 0x699e 0x69d9 0x6997 0x6990 0x69c2 0x69b5 0x69a5 0x69c6 0x6b4a 0x6b4d 0x6b4b 0x6b9e 0x6b9f 0x6ba0 0x6bc3 0x6bc4 0x6bfe 0x6ece 0x6ef5 0x6ef1 0x6f03 0x6f25 0x6ef8 0x6f37 0x6efb 0x6f2e 0x6f09 0x6f4e 0x6f19 0x6f1a 0x6f27 0x6f18 0x6f3b 0x6f12 0x6eed 0x6f0a 0x6f36 0x6f73 0x6ef9 0x6eee 0x6f2d 0x6f40 0x6f30 0x6f3c 0x6f35 0x6eeb 0x6f07 0x6f0e 0x6f43 0x6f05 0x6efd 0x6ef6 0x6f39 0x6f1c 0x6efc 0x6f3a 0x6f1f 0x6f0d 0x6f1e 0x6f08 0x6f21 0x7187 0x7190 0x7189 0x7180 0x7185 0x7182 0x718f 0x717b 0x7186 0x7181 0x7197 0x7244 0x7253 0x7297 0x7295 0x7293 0x7343 0x734d 0x7351 0x734c 0x7462 0x7473 0x7471 0x7475 0x7472 0x7467 0x746e 0x7500 0x7502 0x7503 0x757d ) ; 0x24c21 ... 0x24c7e (block 43 0x7590 0x7616 0x7608 0x760c 0x7615 0x7611 0x760a 0x7614 0x76b8 0x7781 0x777c 0x7785 0x7782 0x776e 0x7780 0x776f 0x777e 0x7783 0x78b2 0x78aa 0x78b4 0x78ad 0x78a8 0x787e 0x78ab 0x789e 0x78a5 0x78a0 0x78ac 0x78a2 0x78a4 0x7998 0x798a 0x798b 0x7996 0x7995 0x7994 0x7993 0x7997 0x7988 0x7992 0x7990 0x7a2b 0x7a4a 0x7a30 0x7a2f 0x7a28 0x7a26 0x7aa8 0x7aab 0x7aac 0x7aee 0x7b88 0x7b9c 0x7b8a 0x7b91 0x7b90 0x7b96 0x7b8d 0x7b8c 0x7b9b 0x7b8e 0x7b85 0x7b98 0x5284 0x7b99 0x7ba4 0x7b82 0x7cbb 0x7cbf 0x7cbc 0x7cba 0x7da7 0x7db7 0x7dc2 0x7da3 0x7daa 0x7dc1 0x7dc0 0x7dc5 0x7d9d 0x7dce 0x7dc4 0x7dc6 0x7dcb 0x7dcc 0x7daf 0x7db9 0x7d96 0x7dbc 0x7d9f 0x7da6 0x7dae 0x7da9 ) ; 0x24d21 ... 0x24d7e (block 44 0x7da1 0x7dc9 0x7f73 0x7fe2 0x7fe3 0x7fe5 0x7fde 0x8024 0x805d 0x805c 0x8189 0x8186 0x8183 0x8187 0x818d 0x818c 0x818b 0x8215 0x8497 0x84a4 0x84a1 0x849f 0x84ba 0x84ce 0x84c2 0x84ac 0x84ae 0x84ab 0x84b9 0x84b4 0x84c1 0x84cd 0x84aa 0x849a 0x84b1 0x84d0 0x849d 0x84a7 0x84bb 0x84a2 0x8494 0x84c7 0x84cc 0x849b 0x84a9 0x84af 0x84a8 0x84d6 0x8498 0x84b6 0x84cf 0x84a0 0x84d7 0x84d4 0x84d2 0x84db 0x84b0 0x8491 0x8661 0x8733 0x8723 0x8728 0x876b 0x8740 0x872e 0x871e 0x8721 0x8719 0x871b 0x8743 0x872c 0x8741 0x873e 0x8746 0x8720 0x8732 0x872a 0x872d 0x873c 0x8712 0x873a 0x8731 0x8735 0x8742 0x8726 0x8727 0x8738 0x8724 0x871a 0x8730 0x8711 0x88f7 0x88e7 0x88f1 ) ; 0x24e21 ... 0x24e7e (block 45 0x88f2 0x88fa 0x88fe 0x88ee 0x88fc 0x88f6 0x88fb 0x88f0 0x88ec 0x88eb 0x899d 0x89a1 0x899f 0x899e 0x89e9 0x89eb 0x89e8 0x8aab 0x8a99 0x8a8b 0x8a92 0x8a8f 0x8a96 0x8c3d 0x8c68 0x8c69 0x8cd5 0x8ccf 0x8cd7 0x8d96 0x8e09 0x8e02 0x8dff 0x8e0d 0x8dfd 0x8e0a 0x8e03 0x8e07 0x8e06 0x8e05 0x8dfe 0x8e00 0x8e04 0x8f10 0x8f11 0x8f0e 0x8f0d 0x9123 0x911c 0x9120 0x9122 0x911f 0x911d 0x911a 0x9124 0x9121 0x911b 0x917a 0x9172 0x9179 0x9173 0x92a5 0x92a4 0x9276 0x929b 0x927a 0x92a0 0x9294 0x92aa 0x928d 0x92a6 0x929a 0x92ab 0x9279 0x9297 0x927f 0x92a3 0x92ee 0x928e 0x9282 0x9295 0x92a2 0x927d 0x9288 0x92a1 0x928a 0x9286 0x928c 0x9299 0x92a7 0x927e 0x9287 0x92a9 0x929d ) ; 0x24f21 ... 0x24f7e (block 46 0x928b 0x922d 0x969e 0x96a1 0x96ff 0x9758 0x977d 0x977a 0x977e 0x9783 0x9780 0x9782 0x977b 0x9784 0x9781 0x977f 0x97ce 0x97cd 0x9816 0x98ad 0x98ae 0x9902 0x9900 0x9907 0x999d 0x999c 0x99c3 0x99b9 0x99bb 0x99ba 0x99c2 0x99bd 0x99c7 0x9ab1 0x9ae3 0x9ae7 0x9b3e 0x9b3f 0x9b60 0x9b61 0x9b5f 0x9cf1 0x9cf2 0x9cf5 0x9ea7 0x50ff 0x5103 0x5130 0x50f8 0x5106 0x5107 0x50f6 0x50fe 0x510b 0x510c 0x50fd 0x510a 0x528b 0x528c 0x52f1 0x52ef 0x5648 0x5642 0x564c 0x5635 0x5641 0x564a 0x5649 0x5646 0x5658 0x565a 0x5640 0x5633 0x563d 0x562c 0x563e 0x5638 0x562a 0x563a 0x571a 0x58ab 0x589d 0x58b1 0x58a0 0x58a3 0x58af 0x58ac 0x58a5 0x58a1 0x58ff 0x5aff 0x5af4 0x5afd 0x5af7 ) ; 0x25021 ... 0x2507e (block 47 0x5af6 0x5b03 0x5af8 0x5b02 0x5af9 0x5b01 0x5b07 0x5b05 0x5b0f 0x5c67 0x5d99 0x5d97 0x5d9f 0x5d92 0x5da2 0x5d93 0x5d95 0x5da0 0x5d9c 0x5da1 0x5d9a 0x5d9e 0x5e69 0x5e5d 0x5e60 0x5e5c 0x7df3 0x5edb 0x5ede 0x5ee1 0x5f49 0x5fb2 0x618b 0x6183 0x6179 0x61b1 0x61b0 0x61a2 0x6189 0x619b 0x6193 0x61af 0x61ad 0x619f 0x6192 0x61aa 0x61a1 0x618d 0x6166 0x61b3 0x622d 0x646e 0x6470 0x6496 0x64a0 0x6485 0x6497 0x649c 0x648f 0x648b 0x648a 0x648c 0x64a3 0x649f 0x6468 0x64b1 0x6498 0x6576 0x657a 0x6579 0x657b 0x65b2 0x65b3 0x66b5 0x66b0 0x66a9 0x66b2 0x66b7 0x66aa 0x66af 0x6a00 0x6a06 0x6a17 0x69e5 0x69f8 0x6a15 0x69f1 0x69e4 0x6a20 0x69ff 0x69ec 0x69e2 0x6a1b 0x6a1d ) ; 0x25121 ... 0x2517e (block 48 0x69fe 0x6a27 0x69f2 0x69ee 0x6a14 0x69f7 0x69e7 0x6a40 0x6a08 0x69e6 0x69fb 0x6a0d 0x69fc 0x69eb 0x6a09 0x6a04 0x6a18 0x6a25 0x6a0f 0x69f6 0x6a26 0x6a07 0x69f4 0x6a16 0x6b51 0x6ba5 0x6ba3 0x6ba2 0x6ba6 0x6c01 0x6c00 0x6bff 0x6c02 0x6f41 0x6f26 0x6f7e 0x6f87 0x6fc6 0x6f92 0x6f8d 0x6f89 0x6f8c 0x6f62 0x6f4f 0x6f85 0x6f5a 0x6f96 0x6f76 0x6f6c 0x6f82 0x6f55 0x6f72 0x6f52 0x6f50 0x6f57 0x6f94 0x6f93 0x6f5d 0x6f00 0x6f61 0x6f6b 0x6f7d 0x6f67 0x6f90 0x6f53 0x6f8b 0x6f69 0x6f7f 0x6f95 0x6f63 0x6f77 0x6f6a 0x6f7b 0x71b2 0x71af 0x719b 0x71b0 0x71a0 0x719a 0x71a9 0x71b5 0x719d 0x71a5 0x719e 0x71a4 0x71a1 0x71aa 0x719c 0x71a7 0x71b3 0x7298 0x729a 0x7358 0x7352 ) ; 0x25221 ... 0x2527e (block 49 0x735e 0x735f 0x7360 0x735d 0x735b 0x7361 0x735a 0x7359 0x7362 0x7487 0x7489 0x748a 0x7486 0x7481 0x747d 0x7485 0x7488 0x747c 0x7479 0x7508 0x7507 0x757e 0x7625 0x761e 0x7619 0x761d 0x761c 0x7623 0x761a 0x7628 0x761b 0x769c 0x769d 0x769e 0x769b 0x778d 0x778f 0x7789 0x7788 0x78cd 0x78bb 0x78cf 0x78cc 0x78d1 0x78ce 0x78d4 0x78c8 0x78c3 0x78c4 0x78c9 0x799a 0x79a1 0x79a0 0x799c 0x79a2 0x799b 0x6b76 0x7a39 0x7ab2 0x7ab4 0x7ab3 0x7bb7 0x7bcb 0x7bbe 0x7bac 0x7bce 0x7baf 0x7bb9 0x7bca 0x7bb5 0x7cc5 0x7cc8 0x7ccc 0x7ccb 0x7df7 0x7ddb 0x7dea 0x7de7 0x7dd7 0x7de1 0x7e03 0x7dfa 0x7de6 0x7df6 0x7df1 0x7df0 0x7dee 0x7ddf 0x7f76 0x7fac 0x7fb0 0x7fad 0x7fed 0x7feb ) ; 0x25321 ... 0x2537e (block 50 0x7fea 0x7fec 0x7fe6 0x7fe8 0x8064 0x8067 0x81a3 0x819f 0x819e 0x8195 0x81a2 0x8199 0x8197 0x8216 0x824f 0x8253 0x8252 0x8250 0x824e 0x8251 0x8524 0x853b 0x850f 0x8500 0x8529 0x850e 0x8509 0x850d 0x851f 0x850a 0x8527 0x851c 0x84fb 0x852b 0x84fa 0x8508 0x850c 0x84f4 0x852a 0x84f2 0x8515 0x84f7 0x84eb 0x84f3 0x84fc 0x8512 0x84ea 0x84e9 0x8516 0x84fe 0x8528 0x851d 0x852e 0x8502 0x84fd 0x851e 0x84f6 0x8531 0x8526 0x84e7 0x84e8 0x84f0 0x84ef 0x84f9 0x8518 0x8520 0x8530 0x850b 0x8519 0x852f 0x8662 0x8756 0x8763 0x8764 0x8777 0x87e1 0x8773 0x8758 0x8754 0x875b 0x8752 0x8761 0x875a 0x8751 0x875e 0x876d 0x876a 0x8750 0x874e 0x875f 0x875d 0x876f 0x876c 0x877a ) ; 0x25421 ... 0x2547e (block 51 0x876e 0x875c 0x8765 0x874f 0x877b 0x8775 0x8762 0x8767 0x8769 0x885a 0x8905 0x890c 0x8914 0x890b 0x8917 0x8918 0x8919 0x8906 0x8916 0x8911 0x890e 0x8909 0x89a2 0x89a4 0x89a3 0x89ed 0x89f0 0x89ec 0x8acf 0x8ac6 0x8ab8 0x8ad3 0x8ad1 0x8ad4 0x8ad5 0x8abb 0x8ad7 0x8abe 0x8ac0 0x8ac5 0x8ad8 0x8ac3 0x8aba 0x8abd 0x8ad9 0x8c3e 0x8c4d 0x8c8f 0x8ce5 0x8cdf 0x8cd9 0x8ce8 0x8cda 0x8cdd 0x8ce7 0x8da0 0x8d9c 0x8da1 0x8d9b 0x8e20 0x8e23 0x8e25 0x8e24 0x8e2e 0x8e15 0x8e1b 0x8e16 0x8e11 0x8e19 0x8e26 0x8e27 0x8e14 0x8e12 0x8e18 0x8e13 0x8e1c 0x8e17 0x8e1a 0x8f2c 0x8f24 0x8f18 0x8f1a 0x8f20 0x8f23 0x8f16 0x8f17 0x9073 0x9070 0x906f 0x9067 0x906b 0x912f 0x912b 0x9129 ) ; 0x25521 ... 0x2557e (block 52 0x912a 0x9132 0x9126 0x912e 0x9185 0x9186 0x918a 0x9181 0x9182 0x9184 0x9180 0x92d0 0x92c3 0x92c4 0x92c0 0x92d9 0x92b6 0x92cf 0x92f1 0x92df 0x92d8 0x92e9 0x92d7 0x92dd 0x92cc 0x92ef 0x92c2 0x92e8 0x92ca 0x92c8 0x92ce 0x92e6 0x92cd 0x92d5 0x92c9 0x92e0 0x92de 0x92e7 0x92d1 0x92d3 0x92b5 0x92e1 0x9325 0x92c6 0x92b4 0x957c 0x95ac 0x95ab 0x95ae 0x95b0 0x96a4 0x96a2 0x96d3 0x9705 0x9708 0x9702 0x975a 0x978a 0x978e 0x9788 0x97d0 0x97cf 0x981e 0x981d 0x9826 0x9829 0x9828 0x9820 0x981b 0x9827 0x98b2 0x9908 0x98fa 0x9911 0x9914 0x9916 0x9917 0x9915 0x99dc 0x99cd 0x99cf 0x99d3 0x99d4 0x99ce 0x99c9 0x99d6 0x99d8 0x99cb 0x99d7 0x99cc 0x9ab3 0x9aec 0x9aeb 0x9af3 ) ; 0x25621 ... 0x2567e (block 53 0x9af2 0x9af1 0x9b46 0x9b43 0x9b67 0x9b74 0x9b71 0x9b66 0x9b76 0x9b75 0x9b70 0x9b68 0x9b64 0x9b6c 0x9cfc 0x9cfa 0x9cfd 0x9cff 0x9cf7 0x9d07 0x9d00 0x9cf9 0x9cfb 0x9d08 0x9d05 0x9d04 0x9e83 0x9ed3 0x9f0f 0x9f10 0x511c 0x5113 0x5117 0x511a 0x5111 0x51de 0x5334 0x53e1 0x5670 0x5660 0x566e 0x5673 0x5666 0x5663 0x566d 0x5672 0x565e 0x5677 0x571c 0x571b 0x58c8 0x58bd 0x58c9 0x58bf 0x58ba 0x58c2 0x58bc 0x58c6 0x5b17 0x5b19 0x5b1b 0x5b21 0x5b14 0x5b13 0x5b10 0x5b16 0x5b28 0x5b1a 0x5b20 0x5b1e 0x5bef 0x5dac 0x5db1 0x5da9 0x5da7 0x5db5 0x5db0 0x5dae 0x5daa 0x5da8 0x5db2 0x5dad 0x5daf 0x5db4 0x5e67 0x5e68 0x5e66 0x5e6f 0x5ee9 0x5ee7 0x5ee6 0x5ee8 0x5ee5 0x5f4b ) ; 0x25721 ... 0x2577e (block 54 0x5fbc 0x5fbb 0x619d 0x61a8 0x6196 0x61c5 0x61b4 0x61c6 0x61c1 0x61cc 0x61ba 0x61bf 0x61b8 0x618c 0x64d7 0x64d6 0x64d0 0x64cf 0x64c9 0x64bd 0x6489 0x64c3 0x64db 0x64f3 0x64d9 0x6533 0x657f 0x657c 0x65a2 0x66c8 0x66be 0x66c0 0x66ca 0x66cb 0x66cf 0x66bd 0x66bb 0x66ba 0x66cc 0x6723 0x6a34 0x6a66 0x6a49 0x6a67 0x6a32 0x6a68 0x6a3e 0x6a5d 0x6a6d 0x6a76 0x6a5b 0x6a51 0x6a28 0x6a5a 0x6a3b 0x6a3f 0x6a41 0x6a6a 0x6a64 0x6a50 0x6a4f 0x6a54 0x6a6f 0x6a69 0x6a60 0x6a3c 0x6a5e 0x6a56 0x6a55 0x6a4d 0x6a4e 0x6a46 0x6b55 0x6b54 0x6b56 0x6ba7 0x6baa 0x6bab 0x6bc8 0x6bc7 0x6c04 0x6c03 0x6c06 0x6fad 0x6fcb 0x6fa3 0x6fc7 0x6fbc 0x6fce 0x6fc8 0x6f5e 0x6fc4 0x6fbd 0x6f9e ) ; 0x25821 ... 0x2587e (block 55 0x6fca 0x6fa8 0x7004 0x6fa5 0x6fae 0x6fba 0x6fac 0x6faa 0x6fcf 0x6fbf 0x6fb8 0x6fa2 0x6fc9 0x6fab 0x6fcd 0x6faf 0x6fb2 0x6fb0 0x71c5 0x71c2 0x71bf 0x71b8 0x71d6 0x71c0 0x71c1 0x71cb 0x71d4 0x71ca 0x71c7 0x71cf 0x71bd 0x71d8 0x71bc 0x71c6 0x71da 0x71db 0x729d 0x729e 0x7369 0x7366 0x7367 0x736c 0x7365 0x736b 0x736a 0x747f 0x749a 0x74a0 0x7494 0x7492 0x7495 0x74a1 0x750b 0x7580 0x762f 0x762d 0x7631 0x763d 0x7633 0x763c 0x7635 0x7632 0x7630 0x76bb 0x76e6 0x779a 0x779d 0x77a1 0x779c 0x779b 0x77a2 0x77a3 0x7795 0x7799 0x7797 0x78dd 0x78e9 0x78e5 0x78ea 0x78de 0x78e3 0x78db 0x78e1 0x78e2 0x78ed 0x78df 0x78e0 0x79a4 0x7a44 0x7a48 0x7a47 0x7ab6 0x7ab8 0x7ab5 ) ; 0x25921 ... 0x2597e (block 56 0x7ab1 0x7ab7 0x7bde 0x7be3 0x7be7 0x7bdd 0x7bd5 0x7be5 0x7bda 0x7be8 0x7bf9 0x7bd4 0x7bea 0x7be2 0x7bdc 0x7beb 0x7bd8 0x7bdf 0x7cd2 0x7cd4 0x7cd7 0x7cd0 0x7cd1 0x7e12 0x7e21 0x7e17 0x7e0c 0x7e1f 0x7e20 0x7e13 0x7e0e 0x7e1c 0x7e15 0x7e1a 0x7e22 0x7e0b 0x7e0f 0x7e16 0x7e0d 0x7e14 0x7e25 0x7e24 0x7f43 0x7f7b 0x7f7c 0x7f7a 0x7fb1 0x7fef 0x802a 0x8029 0x806c 0x81b1 0x81a6 0x81ae 0x81b9 0x81b5 0x81ab 0x81b0 0x81ac 0x81b4 0x81b2 0x81b7 0x81a7 0x81f2 0x8255 0x8256 0x8257 0x8556 0x8545 0x856b 0x854d 0x8553 0x8561 0x8558 0x8540 0x8546 0x8564 0x8541 0x8562 0x8544 0x8551 0x8547 0x8563 0x853e 0x855b 0x8571 0x854e 0x856e 0x8575 0x8555 0x8567 0x8560 0x858c 0x8566 ) ; 0x25a21 ... 0x25a7e (block 57 0x855d 0x8554 0x8565 0x856c 0x8663 0x8665 0x8664 0x87a4 0x879b 0x878f 0x8797 0x8793 0x8792 0x8788 0x8781 0x8796 0x8798 0x8779 0x8787 0x87a3 0x8785 0x8790 0x8791 0x879d 0x8784 0x8794 0x879c 0x879a 0x8789 0x891e 0x8926 0x8930 0x892d 0x892e 0x8927 0x8931 0x8922 0x8929 0x8923 0x892f 0x892c 0x891f 0x89f1 0x8ae0 0x8ae2 0x8af2 0x8af4 0x8af5 0x8add 0x8b14 0x8ae4 0x8adf 0x8af0 0x8ac8 0x8ade 0x8ae1 0x8ae8 0x8aff 0x8aef 0x8afb 0x8c91 0x8c92 0x8c90 0x8cf5 0x8cee 0x8cf1 0x8cf0 0x8cf3 0x8d6c 0x8d6e 0x8da5 0x8da7 0x8e33 0x8e3e 0x8e38 0x8e40 0x8e45 0x8e36 0x8e3c 0x8e3d 0x8e41 0x8e30 0x8e3f 0x8ebd 0x8f36 0x8f2e 0x8f35 0x8f32 0x8f39 0x8f37 0x8f34 0x9076 0x9079 0x907b ) ; 0x25b21 ... 0x25b7e (block 58 0x9086 0x90fa 0x9133 0x9135 0x9136 0x9193 0x9190 0x9191 0x918d 0x918f 0x9327 0x931e 0x9308 0x931f 0x9306 0x930f 0x937a 0x9338 0x933c 0x931b 0x9323 0x9312 0x9301 0x9346 0x932d 0x930e 0x930d 0x92cb 0x931d 0x92fa 0x9313 0x92f9 0x92f7 0x9334 0x9302 0x9324 0x92ff 0x9329 0x9339 0x9335 0x932a 0x9314 0x930c 0x930b 0x92fe 0x9309 0x9300 0x92fb 0x9316 0x95bc 0x95cd 0x95be 0x95b9 0x95ba 0x95b6 0x95bf 0x95b5 0x95bd 0x96a9 0x96d4 0x970b 0x9712 0x9710 0x9799 0x9797 0x9794 0x97f0 0x97f8 0x9835 0x982f 0x9832 0x9924 0x991f 0x9927 0x9929 0x999e 0x99ee 0x99ec 0x99e5 0x99e4 0x99f0 0x99e3 0x99ea 0x99e9 0x99e7 0x9ab9 0x9abf 0x9ab4 0x9abb 0x9af6 0x9afa 0x9af9 0x9af7 0x9b33 ) ; 0x25c21 ... 0x25c7e (block 59 0x9b80 0x9b85 0x9b87 0x9b7c 0x9b7e 0x9b7b 0x9b82 0x9b93 0x9b92 0x9b90 0x9b7a 0x9b95 0x9b7d 0x9b88 0x9d25 0x9d17 0x9d20 0x9d1e 0x9d14 0x9d29 0x9d1d 0x9d18 0x9d22 0x9d10 0x9d19 0x9d1f 0x9e88 0x9e86 0x9e87 0x9eae 0x9ead 0x9ed5 0x9ed6 0x9efa 0x9f12 0x9f3d 0x5126 0x5125 0x5122 0x5124 0x5120 0x5129 0x52f4 0x5693 0x568c 0x568d 0x5686 0x5684 0x5683 0x567e 0x5682 0x567f 0x5681 0x58d6 0x58d4 0x58cf 0x58d2 0x5b2d 0x5b25 0x5b32 0x5b23 0x5b2c 0x5b27 0x5b26 0x5b2f 0x5b2e 0x5b7b 0x5bf1 0x5bf2 0x5db7 0x5e6c 0x5e6a 0x5fbe 0x61c3 0x61b5 0x61bc 0x61e7 0x61e0 0x61e5 0x61e4 0x61e8 0x61de 0x64ef 0x64e9 0x64e3 0x64eb 0x64e4 0x64e8 0x6581 0x6580 0x65b6 0x65da 0x66d2 0x6a8d ) ; 0x25d21 ... 0x25d7e (block 60 0x6a96 0x6a81 0x6aa5 0x6a89 0x6a9f 0x6a9b 0x6aa1 0x6a9e 0x6a87 0x6a93 0x6a8e 0x6a95 0x6a83 0x6aa8 0x6aa4 0x6a91 0x6a7f 0x6aa6 0x6a9a 0x6a85 0x6a8c 0x6a92 0x6b5b 0x6bad 0x6c09 0x6fcc 0x6fa9 0x6ff4 0x6fd4 0x6fe3 0x6fdc 0x6fed 0x6fe7 0x6fe6 0x6fde 0x6ff2 0x6fdd 0x6fe2 0x6fe8 0x71e1 0x71f1 0x71e8 0x71f2 0x71e4 0x71f0 0x71e2 0x7373 0x736e 0x736f 0x7497 0x74b2 0x74ab 0x7490 0x74aa 0x74ad 0x74b1 0x74a5 0x74af 0x7510 0x7511 0x7512 0x750f 0x7584 0x7643 0x7648 0x7649 0x7647 0x76a4 0x76e9 0x77b5 0x77ab 0x77b2 0x77b7 0x77b6 0x77b4 0x77b1 0x77a8 0x77f0 0x78f3 0x78fd 0x7902 0x78fb 0x78fc 0x78ff 0x78f2 0x7905 0x78f9 0x78fe 0x7904 0x79ab 0x79a8 0x7a5c 0x7a5b 0x7a56 ) ; 0x25e21 ... 0x25e7e (block 61 0x7a58 0x7a54 0x7a5a 0x7abe 0x7ac0 0x7ac1 0x7c05 0x7c0f 0x7bf2 0x7c00 0x7bff 0x7bfb 0x7c0e 0x7bf4 0x7c0b 0x7bf3 0x7c02 0x7c09 0x7c03 0x7c01 0x7bf8 0x7bfd 0x7c06 0x7bf0 0x7bf1 0x7c10 0x7c0a 0x7ce8 0x7e2d 0x7e3c 0x7e42 0x7e33 0x9848 0x7e38 0x7e2a 0x7e49 0x7e40 0x7e47 0x7e29 0x7e4c 0x7e30 0x7e3b 0x7e36 0x7e44 0x7e3a 0x7f45 0x7f7f 0x7f7e 0x7f7d 0x7ff4 0x7ff2 0x802c 0x81bb 0x81c4 0x81cc 0x81ca 0x81c5 0x81c7 0x81bc 0x81e9 0x825b 0x825a 0x825c 0x8583 0x8580 0x858f 0x85a7 0x8595 0x85a0 0x858b 0x85a3 0x857b 0x85a4 0x859a 0x859e 0x8577 0x857c 0x8589 0x85a1 0x857a 0x8578 0x8557 0x858e 0x8596 0x8586 0x858d 0x8599 0x859d 0x8581 0x85a2 0x8582 0x8588 0x8585 0x8579 ) ; 0x25f21 ... 0x25f7e (block 62 0x8576 0x8598 0x8590 0x859f 0x8668 0x87be 0x87aa 0x87ad 0x87c5 0x87b0 0x87ac 0x87b9 0x87b5 0x87bc 0x87ae 0x87c9 0x87c3 0x87c2 0x87cc 0x87b7 0x87af 0x87c4 0x87ca 0x87b4 0x87b6 0x87bf 0x87b8 0x87bd 0x87de 0x87b2 0x8935 0x8933 0x893c 0x893e 0x8941 0x8952 0x8937 0x8942 0x89ad 0x89af 0x89ae 0x89f2 0x89f3 0x8b1e 0x8b18 0x8b16 0x8b11 0x8b05 0x8b0b 0x8b22 0x8b0f 0x8b12 0x8b15 0x8b07 0x8b0d 0x8b08 0x8b06 0x8b1c 0x8b13 0x8b1a 0x8c4f 0x8c70 0x8c72 0x8c71 0x8c6f 0x8c95 0x8c94 0x8cf9 0x8d6f 0x8e4e 0x8e4d 0x8e53 0x8e50 0x8e4c 0x8e47 0x8f43 0x8f40 0x9085 0x907e 0x9138 0x919a 0x91a2 0x919b 0x9199 0x919f 0x91a1 0x919d 0x91a0 0x93a1 0x9383 0x93af 0x9364 0x9356 0x9347 ) ; 0x26021 ... 0x2607e (block 63 0x937c 0x9358 0x935c 0x9376 0x9349 0x9350 0x9351 0x9360 0x936d 0x938f 0x934c 0x936a 0x9379 0x9357 0x9355 0x9352 0x934f 0x9371 0x9377 0x937b 0x9361 0x935e 0x9363 0x9367 0x934e 0x9359 0x95c7 0x95c0 0x95c9 0x95c3 0x95c5 0x95b7 0x96ae 0x96b0 0x96ac 0x9720 0x971f 0x9718 0x971d 0x9719 0x979a 0x97a1 0x979c 0x979e 0x979d 0x97d5 0x97d4 0x97f1 0x9841 0x9844 0x984a 0x9849 0x9845 0x9843 0x9925 0x992b 0x992c 0x992a 0x9933 0x9932 0x992f 0x992d 0x9931 0x9930 0x9998 0x99a3 0x99a1 0x9a02 0x99fa 0x99f4 0x99f7 0x99f9 0x99f8 0x99f6 0x99fb 0x99fd 0x99fe 0x99fc 0x9a03 0x9abe 0x9afe 0x9afd 0x9b01 0x9afc 0x9b48 0x9b9a 0x9ba8 0x9b9e 0x9b9b 0x9ba6 0x9ba1 0x9ba5 0x9ba4 0x9b86 ) ; 0x26121 ... 0x2617e (block 64 0x9ba2 0x9ba0 0x9baf 0x9d33 0x9d41 0x9d67 0x9d36 0x9d2e 0x9d2f 0x9d31 0x9d38 0x9d30 0x9d45 0x9d42 0x9d43 0x9d3e 0x9d37 0x9d40 0x9d3d 0x7ff5 0x9d2d 0x9e8a 0x9e89 0x9e8d 0x9eb0 0x9ec8 0x9eda 0x9efb 0x9eff 0x9f24 0x9f23 0x9f22 0x9f54 0x9fa0 0x5131 0x512d 0x512e 0x5698 0x569c 0x5697 0x569a 0x569d 0x5699 0x5970 0x5b3c 0x5c69 0x5c6a 0x5dc0 0x5e6d 0x5e6e 0x61d8 0x61df 0x61ed 0x61ee 0x61f1 0x61ea 0x61f0 0x61eb 0x61d6 0x61e9 0x64ff 0x6504 0x64fd 0x64f8 0x6501 0x6503 0x64fc 0x6594 0x65db 0x66da 0x66db 0x66d8 0x6ac5 0x6ab9 0x6abd 0x6ae1 0x6ac6 0x6aba 0x6ab6 0x6ab7 0x6ac7 0x6ab4 0x6aad 0x6b5e 0x6bc9 0x6c0b 0x7007 0x700c 0x700d 0x7001 0x7005 0x7014 0x700e 0x6fff ) ; 0x26221 ... 0x2627e (block 65 0x7000 0x6ffb 0x7026 0x6ffc 0x6ff7 0x700a 0x7201 0x71ff 0x71f9 0x7203 0x71fd 0x7376 0x74b8 0x74c0 0x74b5 0x74c1 0x74be 0x74b6 0x74bb 0x74c2 0x7514 0x7513 0x765c 0x7664 0x7659 0x7650 0x7653 0x7657 0x765a 0x76a6 0x76bd 0x76ec 0x77c2 0x77ba 0x790c 0x7913 0x7914 0x7909 0x7910 0x7912 0x7911 0x79ad 0x79ac 0x7a5f 0x7c1c 0x7c29 0x7c19 0x7c20 0x7c1f 0x7c2d 0x7c1d 0x7c26 0x7c28 0x7c22 0x7c25 0x7c30 0x7e5c 0x7e50 0x7e56 0x7e63 0x7e58 0x7e62 0x7e5f 0x7e51 0x7e60 0x7e57 0x7e53 0x7fb5 0x7fb3 0x7ff7 0x7ff8 0x8075 0x81d1 0x81d2 0x81d0 0x825f 0x825e 0x85b4 0x85c6 0x85c0 0x85c3 0x85c2 0x85b3 0x85b5 0x85bd 0x85c7 0x85c4 0x85bf 0x85cb 0x85ce 0x85c8 0x85c5 0x85b1 0x85b6 ) ; 0x26321 ... 0x2637e (block 66 0x85d2 0x8624 0x85b8 0x85b7 0x85be 0x8669 0x87e7 0x87e6 0x87e2 0x87db 0x87eb 0x87ea 0x87e5 0x87df 0x87f3 0x87e4 0x87d4 0x87dc 0x87d3 0x87ed 0x87d8 0x87e3 0x87d7 0x87d9 0x8801 0x87f4 0x87e8 0x87dd 0x8953 0x894b 0x894f 0x894c 0x8946 0x8950 0x8951 0x8949 0x8b2a 0x8b27 0x8b23 0x8b33 0x8b30 0x8b35 0x8b47 0x8b2f 0x8b3c 0x8b3e 0x8b31 0x8b25 0x8b37 0x8b26 0x8b36 0x8b2e 0x8b24 0x8b3b 0x8b3d 0x8b3a 0x8c42 0x8c75 0x8c99 0x8c98 0x8c97 0x8cfe 0x8d04 0x8d02 0x8d00 0x8e5c 0x8e62 0x8e60 0x8e57 0x8e56 0x8e5e 0x8e65 0x8e67 0x8e5b 0x8e5a 0x8e61 0x8e5d 0x8e69 0x8e54 0x8f46 0x8f47 0x8f48 0x8f4b 0x9128 0x913a 0x913b 0x913e 0x91a8 0x91a5 0x91a7 0x91af 0x91aa 0x93b5 0x938c ) ; 0x26421 ... 0x2647e (block 67 0x9392 0x93b7 0x939b 0x939d 0x9389 0x93a7 0x938e 0x93aa 0x939e 0x93a6 0x9395 0x9388 0x9399 0x939f 0x9380 0x938d 0x93b1 0x9391 0x93b2 0x93a4 0x93a8 0x93b4 0x93a3 0x95d2 0x95d3 0x95d1 0x96b3 0x96d7 0x96da 0x5dc2 0x96df 0x96d8 0x96dd 0x9723 0x9722 0x9725 0x97ac 0x97ae 0x97a8 0x97ab 0x97a4 0x97aa 0x97a2 0x97a5 0x97d7 0x97d9 0x97d6 0x97d8 0x97fa 0x9850 0x9851 0x9852 0x98b8 0x9941 0x993c 0x993a 0x9a0f 0x9a0b 0x9a09 0x9a0d 0x9a04 0x9a11 0x9a0a 0x9a05 0x9a07 0x9a06 0x9ac0 0x9adc 0x9b08 0x9b04 0x9b05 0x9b29 0x9b35 0x9b4a 0x9b4c 0x9b4b 0x9bc7 0x9bc6 0x9bc3 0x9bbf 0x9bc1 0x9bb5 0x9bb8 0x9bd3 0x9bb6 0x9bc4 0x9bb9 0x9bbd 0x9d5c 0x9d53 0x9d4f 0x9d4a 0x9d5b 0x9d4b ) ; 0x26521 ... 0x2657e (block 68 0x9d59 0x9d56 0x9d4c 0x9d57 0x9d52 0x9d54 0x9d5f 0x9d58 0x9d5a 0x9e8e 0x9e8c 0x9edf 0x9f01 0x9f00 0x9f16 0x9f25 0x9f2b 0x9f2a 0x9f29 0x9f28 0x9f4c 0x9f55 0x5134 0x5135 0x5296 0x52f7 0x53b4 0x56ab 0x56ad 0x56a6 0x56a7 0x56aa 0x56ac 0x58da 0x58dd 0x58db 0x5912 0x5b3d 0x5b3e 0x5b3f 0x5dc3 0x5e70 0x5fbf 0x61fb 0x6507 0x6510 0x650d 0x6509 0x650c 0x650e 0x6584 0x65de 0x65dd 0x66de 0x6ae7 0x6ae0 0x6acc 0x6ad1 0x6ad9 0x6acb 0x6adf 0x6adc 0x6ad0 0x6aeb 0x6acf 0x6acd 0x6ade 0x6b60 0x6bb0 0x6c0c 0x7019 0x7027 0x7020 0x7016 0x702b 0x7021 0x7022 0x7023 0x7029 0x7017 0x7024 0x701c 0x720c 0x720a 0x7207 0x7202 0x7205 0x72a5 0x72a6 0x72a4 0x72a3 0x72a1 0x74cb 0x74c5 ) ; 0x26621 ... 0x2667e (block 69 0x74b7 0x74c3 0x7516 0x7660 0x77c9 0x77ca 0x77c4 0x77f1 0x791d 0x791b 0x7921 0x791c 0x7917 0x791e 0x79b0 0x7a67 0x7a68 0x7c33 0x7c3c 0x7c39 0x7c2c 0x7c3b 0x7cec 0x7cea 0x7e76 0x7e75 0x7e78 0x7e70 0x7e77 0x7e6f 0x7e7a 0x7e72 0x7e74 0x7e68 0x7f4b 0x7f4a 0x7f83 0x7f86 0x7fb7 0x7ffd 0x7ffe 0x8078 0x81d7 0x81d5 0x820b 0x8264 0x8261 0x8263 0x85eb 0x85f1 0x85ed 0x85d9 0x85e1 0x85e8 0x85da 0x85d7 0x85ec 0x85f2 0x85f8 0x85d8 0x85df 0x85e3 0x85dc 0x85d1 0x85f0 0x85e6 0x85ef 0x85de 0x85e2 0x8800 0x87fa 0x8803 0x87f6 0x87f7 0x8809 0x880c 0x880b 0x8806 0x87fc 0x8808 0x87ff 0x880a 0x8802 0x8962 0x895a 0x895b 0x8957 0x8961 0x895c 0x8958 0x895d 0x8959 0x8988 0x89b7 ) ; 0x26721 ... 0x2677e (block 70 0x89b6 0x89f6 0x8b50 0x8b48 0x8b4a 0x8b40 0x8b53 0x8b56 0x8b54 0x8b4b 0x8b55 0x8b51 0x8b42 0x8b52 0x8b57 0x8c43 0x8c77 0x8c76 0x8c9a 0x8d06 0x8d07 0x8d09 0x8dac 0x8daa 0x8dad 0x8dab 0x8e6d 0x8e78 0x8e73 0x8e6a 0x8e6f 0x8e7b 0x8ec2 0x8f52 0x8f51 0x8f4f 0x8f50 0x8f53 0x8fb4 0x9140 0x913f 0x91b0 0x91ad 0x93de 0x93c7 0x93cf 0x93c2 0x93da 0x93d0 0x93f9 0x93ec 0x93cc 0x93d9 0x93a9 0x93e6 0x93ca 0x93d4 0x93ee 0x93e3 0x93d5 0x93c4 0x93ce 0x93c0 0x93d2 0x93a5 0x93e7 0x957d 0x95da 0x95db 0x96e1 0x9729 0x972b 0x972c 0x9728 0x9726 0x97b3 0x97b7 0x97b6 0x97dd 0x97de 0x97df 0x985c 0x9859 0x985d 0x9857 0x98bf 0x98bd 0x98bb 0x98be 0x9948 0x9947 0x9943 0x99a6 0x99a7 ) ; 0x26821 ... 0x2687e (block 71 0x9a1a 0x9a15 0x9a25 0x9a1d 0x9a24 0x9a1b 0x9a22 0x9a20 0x9a27 0x9a23 0x9a1e 0x9a1c 0x9a14 0x9ac2 0x9b0b 0x9b0a 0x9b0e 0x9b0c 0x9b37 0x9bea 0x9beb 0x9be0 0x9bde 0x9be4 0x9be6 0x9be2 0x9bf0 0x9bd4 0x9bd7 0x9bec 0x9bdc 0x9bd9 0x9be5 0x9bd5 0x9be1 0x9bda 0x9d77 0x9d81 0x9d8a 0x9d84 0x9d88 0x9d71 0x9d80 0x9d78 0x9d86 0x9d8b 0x9d8c 0x9d7d 0x9d6b 0x9d74 0x9d75 0x9d70 0x9d69 0x9d85 0x9d73 0x9d7b 0x9d82 0x9d6f 0x9d79 0x9d7f 0x9d87 0x9d68 0x9e94 0x9e91 0x9ec0 0x9efc 0x9f2d 0x9f40 0x9f41 0x9f4d 0x9f56 0x9f57 0x9f58 0x5337 0x56b2 0x56b5 0x56b3 0x58e3 0x5b45 0x5dc6 0x5dc7 0x5eee 0x5eef 0x5fc0 0x5fc1 0x61f9 0x6517 0x6516 0x6515 0x6513 0x65df 0x66e8 0x66e3 0x66e4 ) ; 0x26921 ... 0x2697e (block 72 0x6af3 0x6af0 0x6aea 0x6ae8 0x6af9 0x6af1 0x6aee 0x6aef 0x703c 0x7035 0x702f 0x7037 0x7034 0x7031 0x7042 0x7038 0x703f 0x703a 0x7039 0x702a 0x7040 0x703b 0x7033 0x7041 0x7213 0x7214 0x72a8 0x737d 0x737c 0x74ba 0x76ab 0x76aa 0x76be 0x76ed 0x77cc 0x77ce 0x77cf 0x77cd 0x77f2 0x7925 0x7923 0x7927 0x7928 0x7924 0x7929 0x79b2 0x7a6e 0x7a6c 0x7a6d 0x7af7 0x7c49 0x7c48 0x7c4a 0x7c47 0x7c45 0x7cee 0x7e7b 0x7e7e 0x7e81 0x7e80 0x7fba 0x7fff 0x8079 0x81db 0x81d9 0x8268 0x8269 0x8622 0x85ff 0x8601 0x85fe 0x861b 0x8600 0x85f6 0x8604 0x8609 0x8605 0x860c 0x85fd 0x8819 0x8810 0x8811 0x8817 0x8813 0x8816 0x8963 0x8966 0x89b9 0x89f7 0x8b60 0x8b6a 0x8b5d 0x8b68 0x8b63 ) ; 0x26a21 ... 0x26a7e (block 73 0x8b65 0x8b67 0x8b6d 0x8dae 0x8e86 0x8e88 0x8e84 0x8f59 0x8f56 0x8f57 0x8f55 0x8f58 0x8f5a 0x908d 0x9143 0x9141 0x91b7 0x91b5 0x91b2 0x91b3 0x940b 0x9413 0x93fb 0x9420 0x940f 0x9414 0x93fe 0x9415 0x9410 0x9428 0x9419 0x940d 0x93f5 0x9400 0x93f7 0x9407 0x940e 0x9416 0x9412 0x93fa 0x9409 0x93f8 0x943c 0x940a 0x93ff 0x93fc 0x940c 0x93f6 0x9411 0x9406 0x95de 0x95e0 0x95df 0x972e 0x972f 0x97b9 0x97bb 0x97fd 0x97fe 0x9860 0x9862 0x9863 0x985f 0x98c1 0x98c2 0x9950 0x994e 0x9959 0x994c 0x994b 0x9953 0x9a32 0x9a34 0x9a31 0x9a2c 0x9a2a 0x9a36 0x9a29 0x9a2e 0x9a38 0x9a2d 0x9ac7 0x9aca 0x9ac6 0x9b10 0x9b12 0x9b11 0x9c0b 0x9c08 0x9bf7 0x9c05 0x9c12 0x9bf8 0x9c40 ) ; 0x26b21 ... 0x26b7e (block 74 0x9c07 0x9c0e 0x9c06 0x9c17 0x9c14 0x9c09 0x9d9f 0x9d99 0x9da4 0x9d9d 0x9d92 0x9d98 0x9d90 0x9d9b 0x9da0 0x9d94 0x9d9c 0x9daa 0x9d97 0x9da1 0x9d9a 0x9da2 0x9da8 0x9d9e 0x9da3 0x9dbf 0x9da9 0x9d96 0x9da6 0x9da7 0x9e99 0x9e9b 0x9e9a 0x9ee5 0x9ee4 0x9ee7 0x9ee6 0x9f30 0x9f2e 0x9f5b 0x9f60 0x9f5e 0x9f5d 0x9f59 0x9f91 0x513a 0x5139 0x5298 0x5297 0x56c3 0x56bd 0x56be 0x5b48 0x5b47 0x5dcb 0x5dcf 0x5ef1 0x61fd 0x651b 0x6b02 0x6afc 0x6b03 0x6af8 0x6b00 0x7043 0x7044 0x704a 0x7048 0x7049 0x7045 0x7046 0x721d 0x721a 0x7219 0x737e 0x7517 0x766a 0x77d0 0x792d 0x7931 0x792f 0x7c54 0x7c53 0x7cf2 0x7e8a 0x7e87 0x7e88 0x7e8b 0x7e86 0x7e8d 0x7f4d 0x7fbb 0x8030 0x81dd ) ; 0x26c21 ... 0x26c7e (block 75 0x8618 0x862a 0x8626 0x861f 0x8623 0x861c 0x8619 0x8627 0x862e 0x8621 0x8620 0x8629 0x861e 0x8625 0x8829 0x881d 0x881b 0x8820 0x8824 0x881c 0x882b 0x884a 0x896d 0x8969 0x896e 0x896b 0x89fa 0x8b79 0x8b78 0x8b45 0x8b7a 0x8b7b 0x8d10 0x8d14 0x8daf 0x8e8e 0x8e8c 0x8f5e 0x8f5b 0x8f5d 0x9146 0x9144 0x9145 0x91b9 0x943f 0x943b 0x9436 0x9429 0x943d 0x9430 0x9439 0x942a 0x9437 0x942c 0x9440 0x9431 0x95e5 0x95e4 0x95e3 0x9735 0x973a 0x97bf 0x97e1 0x9864 0x98c9 0x98c6 0x98c0 0x9958 0x9956 0x9a39 0x9a3d 0x9a46 0x9a44 0x9a42 0x9a41 0x9a3a 0x9a3f 0x9acd 0x9b15 0x9b17 0x9b18 0x9b16 0x9b3a 0x9b52 0x9c2b 0x9c1d 0x9c1c 0x9c2c 0x9c23 0x9c28 0x9c29 0x9c24 0x9c21 0x9db7 ) ; 0x26d21 ... 0x26d7e (block 76 0x9db6 0x9dbc 0x9dc1 0x9dc7 0x9dca 0x9dcf 0x9dbe 0x9dc5 0x9dc3 0x9dbb 0x9db5 0x9dce 0x9db9 0x9dba 0x9dac 0x9dc8 0x9db1 0x9dad 0x9dcc 0x9db3 0x9dcd 0x9db2 0x9e7a 0x9e9c 0x9eeb 0x9eee 0x9eed 0x9f1b 0x9f18 0x9f1a 0x9f31 0x9f4e 0x9f65 0x9f64 0x9f92 0x4eb9 0x56c6 0x56c5 0x56cb 0x5971 0x5b4b 0x5b4c 0x5dd5 0x5dd1 0x5ef2 0x6521 0x6520 0x6526 0x6522 0x6b0b 0x6b08 0x6b09 0x6c0d 0x7055 0x7056 0x7057 0x7052 0x721e 0x721f 0x72a9 0x737f 0x74d8 0x74d5 0x74d9 0x74d7 0x766d 0x76ad 0x7935 0x79b4 0x7a70 0x7a71 0x7c57 0x7c5c 0x7c59 0x7c5b 0x7c5a 0x7cf4 0x7cf1 0x7e91 0x7f4f 0x7f87 0x81de 0x826b 0x8634 0x8635 0x8633 0x862c 0x8632 0x8636 0x882c 0x8828 0x8826 0x882a 0x8825 ) ; 0x26e21 ... 0x26e7e (block 77 0x8971 0x89bf 0x89be 0x89fb 0x8b7e 0x8b84 0x8b82 0x8b86 0x8b85 0x8b7f 0x8d15 0x8e95 0x8e94 0x8e9a 0x8e92 0x8e90 0x8e96 0x8e97 0x8f60 0x8f62 0x9147 0x944c 0x9450 0x944a 0x944b 0x944f 0x9447 0x9445 0x9448 0x9449 0x9446 0x973f 0x97e3 0x986a 0x9869 0x98cb 0x9954 0x995b 0x9a4e 0x9a53 0x9a54 0x9a4c 0x9a4f 0x9a48 0x9a4a 0x9a49 0x9a52 0x9a50 0x9ad0 0x9b19 0x9b2b 0x9b3b 0x9b56 0x9b55 0x9c46 0x9c48 0x9c3f 0x9c44 0x9c39 0x9c33 0x9c41 0x9c3c 0x9c37 0x9c34 0x9c32 0x9c3d 0x9c36 0x9ddb 0x9dd2 0x9dde 0x9dda 0x9dcb 0x9dd0 0x9ddc 0x9dd1 0x9ddf 0x9de9 0x9dd9 0x9dd8 0x9dd6 0x9df5 0x9dd5 0x9ddd 0x9eb6 0x9ef0 0x9f35 0x9f33 0x9f32 0x9f42 0x9f6b 0x9f95 0x9fa2 0x513d 0x5299 ) ; 0x26f21 ... 0x26f7e (block 78 0x58e8 0x58e7 0x5972 0x5b4d 0x5dd8 0x882f 0x5f4f 0x6201 0x6203 0x6204 0x6529 0x6525 0x6596 0x66eb 0x6b11 0x6b12 0x6b0f 0x6bca 0x705b 0x705a 0x7222 0x7382 0x7381 0x7383 0x7670 0x77d4 0x7c67 0x7c66 0x7e95 0x826c 0x863a 0x8640 0x8639 0x863c 0x8631 0x863b 0x863e 0x8830 0x8832 0x882e 0x8833 0x8976 0x8974 0x8973 0x89fe 0x8b8c 0x8b8e 0x8b8b 0x8b88 0x8c45 0x8d19 0x8e98 0x8f64 0x8f63 0x91bc 0x9462 0x9455 0x945d 0x9457 0x945e 0x97c4 0x97c5 0x9800 0x9a56 0x9a59 0x9b1e 0x9b1f 0x9b20 0x9c52 0x9c58 0x9c50 0x9c4a 0x9c4d 0x9c4b 0x9c55 0x9c59 0x9c4c 0x9c4e 0x9dfb 0x9df7 0x9def 0x9de3 0x9deb 0x9df8 0x9de4 0x9df6 0x9de1 0x9dee 0x9de6 0x9df2 0x9df0 0x9de2 0x9dec 0x9df4 ) ; 0x27021 ... 0x2707e (block 79 0x9df3 0x9de8 0x9ded 0x9ec2 0x9ed0 0x9ef2 0x9ef3 0x9f06 0x9f1c 0x9f38 0x9f37 0x9f36 0x9f43 0x9f4f 0x9f71 0x9f70 0x9f6e 0x9f6f 0x56d3 0x56cd 0x5b4e 0x5c6d 0x652d 0x66ed 0x66ee 0x6b13 0x705f 0x7061 0x705d 0x7060 0x7223 0x74db 0x74e5 0x77d5 0x7938 0x79b7 0x79b6 0x7c6a 0x7e97 0x7f89 0x826d 0x8643 0x8838 0x8837 0x8835 0x884b 0x8b94 0x8b95 0x8e9e 0x8e9f 0x8ea0 0x8e9d 0x91be 0x91bd 0x91c2 0x946b 0x9468 0x9469 0x96e5 0x9746 0x9743 0x9747 0x97c7 0x97e5 0x9a5e 0x9ad5 0x9b59 0x9c63 0x9c67 0x9c66 0x9c62 0x9c5e 0x9c60 0x9e02 0x9dfe 0x9e07 0x9e03 0x9e06 0x9e05 0x9e00 0x9e01 0x9e09 0x9dff 0x9dfd 0x9e04 0x9ea0 0x9f1e 0x9f46 0x9f74 0x9f75 0x9f76 0x56d4 0x652e 0x65b8 ) ; 0x27121 ... 0x2717e (block 80 0x6b18 0x6b19 0x6b17 0x6b1a 0x7062 0x7226 0x72aa 0x77d8 0x77d9 0x7939 0x7c69 0x7c6b 0x7cf6 0x7e9a 0x7e98 0x7e9b 0x7e99 0x81e0 0x81e1 0x8646 0x8647 0x8648 0x8979 0x897a 0x897c 0x897b 0x89ff 0x8b98 0x8b99 0x8ea5 0x8ea4 0x8ea3 0x946e 0x946d 0x946f 0x9471 0x9473 0x9749 0x9872 0x995f 0x9c68 0x9c6e 0x9c6d 0x9e0b 0x9e0d 0x9e10 0x9e0f 0x9e12 0x9e11 0x9ea1 0x9ef5 0x9f09 0x9f47 0x9f78 0x9f7b 0x9f7a 0x9f79 0x571e 0x7066 0x7c6f 0x883c 0x8db2 0x8ea6 0x91c3 0x9474 0x9478 0x9476 0x9475 0x9a60 0x9b2e 0x9c74 0x9c73 0x9c71 0x9c75 0x9e14 0x9e13 0x9ef6 0x9f0a 0x9fa4 0x7068 0x7065 0x7cf7 0x866a 0x883e 0x883d 0x883f 0x8b9e 0x8c9c 0x8ea9 0x8ec9 0x974b 0x9873 0x9874 0x98cc ) ; 0x27221 ... 0x2727e (block 81 0x9961 0x99ab 0x9a64 0x9a66 0x9a67 0x9b24 0x9e15 0x9e17 0x9f48 0x6207 0x6b1e 0x7227 0x864c 0x8ea8 0x9482 0x9480 0x9481 0x9a69 0x9a68 0x9e19 0x864b 0x8b9f 0x9483 0x9c79 0x9eb7 0x7675 0x9a6b 0x9c7a 0x9e1d 0x7069 0x706a 0x7229 0x9ea4 0x9f7e 0x9f49 0x9f98 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) vflib3-3.6.14.dfsg/src/0000755000175000017500000000000010400435232014044 5ustar mohuramohuravflib3-3.6.14.dfsg/src/Test/0000755000175000017500000000000007371632507015004 5ustar mohuramohuravflib3-3.6.14.dfsg/src/Test/tfm-2a0000644000175000017500000000104307027605557016016 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open2 cmr10.tfm -1 1.0 1.0 open2 cmr10.tfm 36 1.0 1.0 bitmap2 !0 0x67 1.0 1.0 bitmap2 !0 0x67 1.2 1.2 bitmap2 !0 0x67 1.4 1.4 bitmap2 !1 0x67 1.0 1.0 bitmap2 !1 0x67 1.2 1.2 bitmap2 !1 0x67 1.4 1.4 property !0 RESOLUTION_X property !0 RESOLUTION_Y property !0 POINT_SIZE property !0 PIXEL_SIZE property !1 RESOLUTION_X property !1 RESOLUTION_Y property !1 POINT_SIZE property !1 PIXEL_SIZE quit vflib3-3.6.14.dfsg/src/Test/bdf-1b0000644000175000017500000000056507027605317015765 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 bdf-latin1 -1 open1 bdf-latin1 -1 1.2 1.2 bitmap1 !0 0x67 1 bitmap1 !0 0x67 1.2 1.2 bitmap1 !0 0x67 1.4 1.4 bitmap1 !0 0x67 1.6 1.6 bitmap1 !1 0x67 bitmap1 !1 0x67 1.2 1.2 bitmap1 !1 0x67 1.4 1.4 bitmap1 !1 0x67 1.6 1.6 quit vflib3-3.6.14.dfsg/src/Test/bdf-1c0000644000175000017500000000065407027605321015760 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 bdf-font1 open1 bdf-font2 open1 bdf-fontx property !0 FONT_CLASS property !0 PROP1 property !0 PROP2 property !0 PROPX property !1 FONT_CLASS property !1 PROP1 property !1 PROP2 property !1 PROPX property !2 FONT_CLASS property !2 PROP1 property !2 PROP2 property !2 PROPX quit vflib3-3.6.14.dfsg/src/Test/zeit-1a0000644000175000017500000000101207027605601016164 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 mincho open1 mincho2 bitmap1 !0 0x4142 bitmap1 !1 0x4142 property !0 POINT_SIZE property !0 RESOLUTION_X property !0 RESOLUTION_Y property !1 POINT_SIZE property !1 RESOLUTION_X property !1 RESOLUTION_Y property !0 FONT_CLASS property !1 FONT_CLASS property !0 CHARSET_REGISTRY property !0 CHARSET_ENCODING property !1 CHARSET_REGISTRY property !1 CHARSET_ENCODING quit vflib3-3.6.14.dfsg/src/Test/type1-1c0000644000175000017500000000046607027605572016300 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vfserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 cmr10.pk -1 1.0 1.0 300 300 open1 cmr10.pk -1 1.2 1.2 300 300 bitmap1 !0 0x67 1.0 1.0 bitmap1 !1 0x67 1.0 1.0 metric1 !0 0x67 1.0 1.0 metric1 !1 0x67 1.0 1.0 quit vflib3-3.6.14.dfsg/src/Test/zeit-1b0000644000175000017500000000100007027605603016164 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 mincho open1 mincho -1 1.2 1.2 open1 mincho2 bitmap1 !0 0x4567 1.0 1.0 bitmap1 !0 0x4567 1.2 1.2 bitmap1 !0 0x4567 1.4 1.4 bitmap1 !0 0x4567 1.6 1.6 bitmap1 !1 0x4567 1.0 1.0 bitmap1 !1 0x4567 1.2 1.2 bitmap1 !1 0x4567 1.4 1.4 bitmap1 !1 0x4567 1.6 1.6 bitmap1 !2 0x4567 1.0 1.0 bitmap1 !2 0x4567 1.2 1.2 bitmap1 !2 0x4567 1.4 1.4 bitmap1 !2 0x4567 1.6 1.6 quit vflib3-3.6.14.dfsg/src/Test/zeit-1c0000644000175000017500000000057407027605604016205 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 mincho open1 mincho 10 open1 mincho 12 open1 goth13 open1 maru08 open1 min08 open1 min13 metric1 !0 0x4567 metric1 !1 0x4567 metric1 !2 0x4567 metric1 !3 0x4567 metric1 !4 0x4567 metric1 !5 0x4567 metric1 !6 0x4567 quit vflib3-3.6.14.dfsg/src/Test/zeit-2a0000644000175000017500000000064407027605610016177 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open2 mincho open2 mincho2 bitmap2 0 0x4142 bitmap2 1 0x4142 property !0 PIXEL_SIZE property !1 PIXEL_SIZE property !0 FONT_CLASS property !1 FONT_CLASS property !0 CHARSET_REGISTRY property !0 CHARSET_ENCODING property !1 CHARSET_REGISTRY property !1 CHARSET_ENCODING quit vflib3-3.6.14.dfsg/src/Test/jg-1b0000644000175000017500000000100407027605336015620 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 zkyo0by open1 zkyo0byA -1 1.2 1.2 open1 zkyo0byB bitmap1 !0 0x4567 1.0 1.0 bitmap1 !0 0x4567 1.2 1.2 bitmap1 !0 0x4567 1.4 1.4 bitmap1 !0 0x4567 1.6 1.6 bitmap1 !1 0x4567 1.0 1.0 bitmap1 !1 0x4567 1.2 1.2 bitmap1 !1 0x4567 1.4 1.4 bitmap1 !1 0x4567 1.6 1.6 bitmap1 !2 0x4567 1.0 1.0 bitmap1 !2 0x4567 1.2 1.2 bitmap1 !2 0x4567 1.4 1.4 bitmap1 !2 0x4567 1.6 1.6 quit vflib3-3.6.14.dfsg/src/Test/jg-1a0000644000175000017500000000110307027605335015616 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 zkyo0by open1 zkyo0byA bitmap1 !0 0x2122 bitmap1 !0 0x2123 bitmap1 !0 0x2124 bitmap1 !0 0x4142 bitmap1 !1 0x4142 property !0 POINT_SIZE property !0 RESOLUTION_X property !0 RESOLUTION_Y property !1 POINT_SIZE property !1 RESOLUTION_X property !1 RESOLUTION_Y property !0 FONT_CLASS property !1 FONT_CLASS property !0 CHARSET_REGISTRY property !0 CHARSET_ENCODING property !1 CHARSET_REGISTRY property !1 CHARSET_ENCODING quit vflib3-3.6.14.dfsg/src/Test/zeit-1d0000644000175000017500000000046207027605605016203 0ustar mohuramohuraCOMMENT VFlib 3. COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 mincho open1 goth13 open1 maru08 open1 min08 open1 min12 bitmap1 !0 0x4567 bitmap1 !1 0x4567 bitmap1 !2 0x4567 bitmap1 !3 0x4567 bitmap1 !4 0x4567 quit vflib3-3.6.14.dfsg/src/Test/pk-1a0000644000175000017500000000212207027605532015631 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 cmr10.300pk open1 cmr10.pk -1 1.0 1.0 300 300 open1 cmr10.pk -1 1.2 1.2 300 300 open1 cmr10.300pk -1 1.0 1.0 600 600 open1 cmr10.300pk -1 1.2 1.2 600 600 open1 cmr10.400pk -1 1.2 1.2 -1 -1 bitmap1 !0 0x67 1.0 1.0 bitmap1 !0 0x67 1.2 1.2 bitmap1 !0 0x67 1.4 1.4 bitmap1 !1 0x67 1.0 1.0 bitmap1 !1 0x67 1.2 1.2 bitmap1 !1 0x67 1.4 1.4 bitmap1 !2 0x67 1.0 1.0 bitmap1 !2 0x67 1.2 1.2 bitmap1 !2 0x67 1.4 1.4 bitmap1 !3 0x67 1.0 1.0 bitmap1 !3 0x67 1.2 1.2 bitmap1 !3 0x67 1.4 1.4 bitmap1 !4 0x67 1.0 1.0 bitmap1 !4 0x67 1.2 1.2 bitmap1 !4 0x67 1.4 1.4 bitmap1 !5 0x67 1.0 1.0 bitmap1 !5 0x67 1.2 1.2 bitmap1 !5 0x67 1.4 1.4 property !0 RESOLUTION_X property !0 RESOLUTION_Y property !0 POINT_SIZE property !1 RESOLUTION_X property !1 RESOLUTION_Y property !1 POINT_SIZE property !2 RESOLUTION_X property !2 RESOLUTION_Y property !2 POINT_SIZE property !3 RESOLUTION_X property !3 RESOLUTION_Y property !3 POINT_SIZE quit vflib3-3.6.14.dfsg/src/Test/tfm-1a0000644000175000017500000000214307027605554016014 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 cmr10.300tfm open1 cmr10.tfm -1 1.0 1.0 300 300 open1 cmr10.tfm -1 1.2 1.2 300 300 open1 cmr10.300tfm -1 1.0 1.0 600 600 open1 cmr10.300tfm -1 1.2 1.2 600 600 metric1 !0 0x67 1.0 1.0 bitmap1 !0 0x67 1.0 1.0 bitmap1 !0 0x67 1.2 1.2 bitmap1 !0 0x67 1.4 1.4 metric1 !1 0x67 1.0 1.0 bitmap1 !1 0x67 1.0 1.0 bitmap1 !1 0x67 1.2 1.2 bitmap1 !1 0x67 1.4 1.4 metric1 !2 0x67 1.0 1.0 bitmap1 !2 0x67 1.0 1.0 bitmap1 !2 0x67 1.2 1.2 bitmap1 !2 0x67 1.4 1.4 metric1 !3 0x67 1.0 1.0 bitmap1 !3 0x67 1.0 1.0 bitmap1 !3 0x67 1.2 1.2 bitmap1 !3 0x67 1.4 1.4 metric1 !4 0x67 1.0 1.0 bitmap1 !4 0x67 1.0 1.0 bitmap1 !4 0x67 1.2 1.2 bitmap1 !4 0x67 1.4 1.4 property !0 RESOLUTION_X property !0 RESOLUTION_Y property !0 POINT_SIZE property !1 RESOLUTION_X property !1 RESOLUTION_Y property !1 POINT_SIZE property !2 RESOLUTION_X property !2 RESOLUTION_Y property !2 POINT_SIZE property !3 RESOLUTION_X property !3 RESOLUTION_Y property !3 POINT_SIZE quit vflib3-3.6.14.dfsg/src/Test/tfm-1b0000644000175000017500000000213207027605556016015 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 cmr10.300tfm -1 1.2 1.2 open1 cmr10.360tfm -1 1.0 1.0 open1 cmr10.400tfm -1 1.2 1.2 open1 cmr10.300tfm -1 1.2 1.2 400 400 open1 CMR10A.TFM 10 1.0 1.0 open1 CMR10B.TFM 10 1.0 1.0 metric1 !0 0x67 1.0 1.0 bitmap1 !0 0x67 1.0 1.0 bitmap1 !0 0x67 1.2 1.2 bitmap1 !0 0x67 1.4 1.4 metric1 !1 0x67 1.0 1.0 bitmap1 !1 0x67 1.0 1.0 bitmap1 !1 0x67 1.2 1.2 bitmap1 !1 0x67 1.4 1.4 metric1 !2 0x67 1.0 1.0 bitmap1 !2 0x67 1.0 1.0 bitmap1 !2 0x67 1.2 1.2 bitmap1 !2 0x67 1.4 1.4 metric1 !3 0x67 1.0 1.0 bitmap1 !3 0x67 1.0 1.0 bitmap1 !3 0x67 1.2 1.2 bitmap1 !3 0x67 1.4 1.4 bitmap1 !4 0x67 1.0 1.0 bitmap1 !5 0x67 1.0 1.0 bitmap1 !4 0x67 1.2 1.2 bitmap1 !5 0x67 1.2 1.2 bitmap1 !4 0x67 1.4 1.4 bitmap1 !5 0x67 1.4 1.4 property !0 RESOLUTION_X property !0 RESOLUTION_Y property !0 POINT_SIZE property !1 RESOLUTION_X property !1 RESOLUTION_Y property !1 POINT_SIZE property !2 RESOLUTION_X property !2 RESOLUTION_Y property !2 POINT_SIZE quit vflib3-3.6.14.dfsg/src/Test/ttf-1a0000644000175000017500000000045107027605561016021 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 ttf-font1 open1 ttf-font2 open1 ttf-font3 bitmap1 !0 0x4321 bitmap1 !1 0x4321 bitmap1 !2 0x4321 property !0 POINT_SIZE property !0 FONT_CLASS quit vflib3-3.6.14.dfsg/src/Test/ttf-1b0000644000175000017500000000101007027605563016014 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 ttf-font1 open1 ttf-font1 -1 1.2 1.2 open1 ttf-font2 bitmap1 !0 0x4567 1.0 1.0 bitmap1 !0 0x4567 1.2 1.2 bitmap1 !0 0x4567 1.4 1.4 bitmap1 !0 0x4567 1.6 1.6 bitmap1 !1 0x4567 1.0 1.0 bitmap1 !1 0x4567 1.2 1.2 bitmap1 !1 0x4567 1.4 1.4 bitmap1 !1 0x4567 1.6 1.6 bitmap1 !2 0x4567 1.0 1.0 bitmap1 !2 0x4567 1.2 1.2 bitmap1 !2 0x4567 1.4 1.4 bitmap1 !2 0x4567 1.6 1.6 quit vflib3-3.6.14.dfsg/src/Test/ttf-1c0000644000175000017500000000055107027605564016027 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 ttf-fontA open1 ttf-fontB open1 ttf-fontC open1 ttf-activa__ open1 ttf-activa_b bitmap1 !0 0x4567 1.0 1.0 bitmap1 !1 0x4567 1.0 1.0 bitmap1 !2 0x4567 1.0 1.0 bitmap1 !3 0x67 1.0 1.0 bitmap1 !4 0x67 1.0 1.0 quit vflib3-3.6.14.dfsg/src/Test/ttf-1d0000644000175000017500000000057507027605566016040 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 ttf-fontAa open1 ttf-fontAb open1 ttf-fontAc bitmap1 !0 0x4567 1.0 1.0 bitmap1 !1 0x4567 1.0 1.0 bitmap1 !2 0x4567 1.0 1.0 bitmap1 !0 0x4567 1.0 1.0 bitmap1 !0 0x4567 0.5 1.0 bitmap1 !0 0x4567 2.0 1.0 bitmap1 !0 0x4567 1.0 2.0 quit vflib3-3.6.14.dfsg/src/Test/test-1a0000644000175000017500000000211207027605537016202 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 f5ajchm3-ttf open1 dfhsmw5-ttc open1 mincho-zeit open1 zkyo0by-jg open1 dfhsm3-comic open1 activa-ttf open1 cmr10-pk open1 cmr10-tfm open1 timR24-pcf open1 latin1-bdf bitmap1 !0 0x4567 bitmap1 !1 0x4567 bitmap1 !2 0x4567 bitmap1 !3 0x4567 bitmap1 !6 0x4567 bitmap1 !7 0x67 bitmap1 !8 0x67 bitmap1 !9 0x67 bitmap1 !10 0x67 bitmap1 !11 0x67 bitmap1 !0 0x4567 1.2 1.2 bitmap1 !1 0x4567 1.2 1.2 bitmap1 !2 0x4567 1.2 1.2 bitmap1 !3 0x4567 1.2 1.2 bitmap1 !6 0x4567 1.2 1.2 bitmap1 !6 0x67 1.2 1.2 bitmap1 !7 0x67 1.2 1.2 bitmap1 !8 0x67 1.2 1.2 bitmap1 !9 0x67 1.2 1.2 bitmap1 !10 0x67 1.2 1.2 bitmap1 !11 0x67 1.2 1.2 bitmap1 !0 0x4567 1.4 1.4 bitmap1 !1 0x4567 1.4 1.4 bitmap1 !2 0x4567 1.4 1.4 bitmap1 !3 0x4567 1.4 1.4 bitmap1 !6 0x4567 1.4 1.4 bitmap1 !7 0x67 1.4 1.4 bitmap1 !8 0x67 1.4 1.4 bitmap1 !9 0x67 1.4 1.4 bitmap1 !10 0x67 1.4 1.4 bitmap1 !11 0x67 1.4 1.4 quit vflib3-3.6.14.dfsg/src/Test/test-1b0000644000175000017500000000231207027605541016200 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 f5ajchm3-ttf -1 1.2 1.2 open1 dfhsmw5-ttc -1 1.2 1.2 open1 mincho-zeit -1 1.2 1.2 open1 zkyo0by-jg -1 1.2 1.2 open1 dfhsm3-comic -1 1.2 1.2 open1 activa-ttf -1 1.2 1.2 open1 cmr10-pk -1 1.2 1.2 open1 cmr10-tfm -1 1.2 1.2 open1 timR24-pcf -1 1.2 1.2 open1 latin1-bdf -1 1.2 1.2 bitmap1 !0 0x4567 bitmap1 !1 0x4567 bitmap1 !2 0x4567 bitmap1 !3 0x4567 bitmap1 !6 0x4567 bitmap1 !7 0x67 bitmap1 !8 0x67 bitmap1 !9 0x67 bitmap1 !10 0x67 bitmap1 !11 0x67 bitmap1 !0 0x4567 1.2 1.2 bitmap1 !1 0x4567 1.2 1.2 bitmap1 !2 0x4567 1.2 1.2 bitmap1 !3 0x4567 1.2 1.2 bitmap1 !6 0x4567 1.2 1.2 bitmap1 !7 0x67 1.2 1.2 bitmap1 !8 0x67 1.2 1.2 bitmap1 !9 0x67 1.2 1.2 bitmap1 !10 0x67 1.2 1.2 bitmap1 !11 0x67 1.2 1.2 bitmap1 !0 0x4567 1.4 1.4 bitmap1 !1 0x4567 1.4 1.4 bitmap1 !2 0x4567 1.4 1.4 bitmap1 !3 0x4567 1.4 1.4 bitmap1 !6 0x4567 1.4 1.4 bitmap1 !7 0x67 1.4 1.4 bitmap1 !8 0x67 1.4 1.4 bitmap1 !9 0x67 1.4 1.4 bitmap1 !10 0x67 1.4 1.4 bitmap1 !11 0x67 1.4 1.4 quit vflib3-3.6.14.dfsg/src/Test/test-1c0000644000175000017500000000231207027605542016202 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 f5ajchm3-ttf 10 1.0 1.0 open1 dfhsmw5-ttc 10 1.0 1.0 open1 mincho-zeit 10 1.0 1.0 open1 zkyo0by-jg 10 1.0 1.0 open1 dfhsm3-comic 10 1.0 1.0 open1 activa-ttf 10 1.0 1.0 open1 cmr10-pk 10 1.0 1.0 open1 cmr10-tfm 10 1.0 1.0 open1 timR24-pcf 10 1.2 1.2 open1 latin1-bdf 10 1.2 1.2 bitmap1 !0 0x4567 bitmap1 !1 0x4567 bitmap1 !2 0x4567 bitmap1 !3 0x4567 bitmap1 !6 0x4567 bitmap1 !7 0x67 bitmap1 !8 0x67 bitmap1 !9 0x67 bitmap1 !10 0x67 bitmap1 !11 0x67 bitmap1 !0 0x4567 1.2 1.2 bitmap1 !1 0x4567 1.2 1.2 bitmap1 !2 0x4567 1.2 1.2 bitmap1 !3 0x4567 1.2 1.2 bitmap1 !6 0x4567 1.2 1.2 bitmap1 !7 0x67 1.2 1.2 bitmap1 !8 0x67 1.2 1.2 bitmap1 !9 0x67 1.2 1.2 bitmap1 !10 0x67 1.2 1.2 bitmap1 !11 0x67 1.2 1.2 bitmap1 !0 0x4567 1.4 1.4 bitmap1 !1 0x4567 1.4 1.4 bitmap1 !2 0x4567 1.4 1.4 bitmap1 !3 0x4567 1.4 1.4 bitmap1 !6 0x4567 1.4 1.4 bitmap1 !7 0x67 1.4 1.4 bitmap1 !8 0x67 1.4 1.4 bitmap1 !9 0x67 1.4 1.4 bitmap1 !10 0x67 1.4 1.4 bitmap1 !11 0x67 1.4 1.4 quit vflib3-3.6.14.dfsg/src/Test/test-1d0000644000175000017500000000244407027605544016213 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 f5ajchm3-ttf 10 1.0 1.0 200 200 open1 dfhsmw5-ttc 10 1.0 1.0 200 200 open1 mincho-zeit 10 1.0 1.0 200 200 open1 zkyo0by-jg 10 1.0 1.0 200 200 open1 dfhsm3-comic 10 1.0 1.0 200 200 open1 activa-ttf 10 1.0 1.0 200 200 open1 cmr10-pk 10 1.0 1.0 200 200 open1 cmr10-tfm 10 1.0 1.0 200 200 open1 timR24-pcf 10 1.0 1.0 200 200 open1 latin1-bdf 10 1.0 1.0 200 200 bitmap1 !0 0x4567 bitmap1 !1 0x4567 bitmap1 !2 0x4567 bitmap1 !3 0x4567 bitmap1 !6 0x4567 bitmap1 !7 0x67 bitmap1 !8 0x67 bitmap1 !9 0x67 bitmap1 !10 0x67 bitmap1 !11 0x67 bitmap1 !0 0x4567 1.2 1.2 bitmap1 !1 0x4567 1.2 1.2 bitmap1 !2 0x4567 1.2 1.2 bitmap1 !3 0x4567 1.2 1.2 bitmap1 !6 0x4567 1.2 1.2 bitmap1 !7 0x67 1.2 1.2 bitmap1 !8 0x67 1.2 1.2 bitmap1 !9 0x67 1.2 1.2 bitmap1 !10 0x67 1.2 1.2 bitmap1 !11 0x67 1.2 1.2 bitmap1 !0 0x4567 1.4 1.4 bitmap1 !1 0x4567 1.4 1.4 bitmap1 !2 0x4567 1.4 1.4 bitmap1 !3 0x4567 1.4 1.4 bitmap1 !6 0x4567 1.4 1.4 bitmap1 !7 0x67 1.4 1.4 bitmap1 !8 0x67 1.4 1.4 bitmap1 !9 0x67 1.4 1.4 bitmap1 !10 0x67 1.4 1.4 bitmap1 !11 0x67 1.4 1.4 quit vflib3-3.6.14.dfsg/src/Test/jtex-1a0000644000175000017500000000176607027605340016203 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 min8.pk -1 1.0 1.0 300 300 open1 min9.pk -1 1.2 1.2 300 300 open1 min10.pk -1 1.0 1.0 300 300 bitmap1 !0 0x2122 bitmap1 !0 0x2123 bitmap1 !0 0x2126 bitmap1 !0 0x2127 bitmap1 !0 0x2128 bitmap1 !0 0x2129 bitmap1 !0 0x212a bitmap1 !0 0x4567 bitmap1 !0 0x4568 bitmap1 !1 0x2122 bitmap1 !1 0x2123 bitmap1 !1 0x2126 bitmap1 !1 0x2127 bitmap1 !1 0x2128 bitmap1 !1 0x2129 bitmap1 !1 0x212a bitmap1 !1 0x4567 bitmap1 !1 0x4568 bitmap1 !2 0x2122 bitmap1 !2 0x2123 bitmap1 !2 0x2126 bitmap1 !2 0x2127 bitmap1 !2 0x2128 bitmap1 !2 0x2129 bitmap1 !2 0x212a bitmap1 !2 0x4567 bitmap1 !2 0x4568 property !0 FONT_CLASS property !0 CHARSET_REGISTRY property !0 CHARSET_ENCODING property !1 POINT_SIZE property !1 PIXEL_SIZE property !1 RESOLUTION_X property !1 RESOLUTION_Y property !2 POINT_SIZE property !2 PIXEL_SIZE property !2 RESOLUTION_X property !2 RESOLUTION_Y quit vflib3-3.6.14.dfsg/src/Test/comic-1a0000644000175000017500000000073007027605330016310 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 dfhsmw3-ttf open1 dfhsgw3-ttf open1 dfhsm3-comic bitmap1 !0 0x2422 bitmap1 !0 0x2424 bitmap1 !0 0x3026 bitmap1 !1 0x2422 bitmap1 !1 0x2424 bitmap1 !1 0x3026 bitmap1 !2 0x2422 bitmap1 !2 0x2424 bitmap1 !2 0x3026 property !2 CHARSET_REGISTRY property !2 CHARSET_ENCODING property !2 POINT_SIZE property !2 FONT_CLASS quit vflib3-3.6.14.dfsg/src/Test/jtex-1b0000644000175000017500000000600307027605342016173 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 goth10.pk -1 1.0 1.0 300 300 comment char_type 1 bitmap1 !0 0x214b bitmap1 !0 0x214d bitmap1 !0 0x214f bitmap1 !0 0x2151 bitmap1 !0 0x2153 bitmap1 !0 0x2155 bitmap1 !0 0x2157 bitmap1 !0 0x2159 bitmap1 !0 0x215b comment char_type 2 bitmap1 !0 0x212b bitmap1 !0 0x212c comment char_type 3 bitmap1 !0 0x2136 bitmap1 !0 0x2137 bitmap1 !0 0x2139 bitmap1 !0 0x2169 bitmap1 !0 0x216a bitmap1 !0 0x2170 bitmap1 !0 0x2171 bitmap1 !0 0x2172 bitmap1 !0 0x2421 bitmap1 !0 0x2423 bitmap1 !0 0x2425 bitmap1 !0 0x2427 bitmap1 !0 0x2429 bitmap1 !0 0x2443 bitmap1 !0 0x2463 bitmap1 !0 0x2465 bitmap1 !0 0x2467 bitmap1 !0 0x246e bitmap1 !0 0x2521 bitmap1 !0 0x2523 bitmap1 !0 0x2525 bitmap1 !0 0x2527 bitmap1 !0 0x2529 bitmap1 !0 0x2543 bitmap1 !0 0x2567 bitmap1 !0 0x2563 bitmap1 !0 0x2565 bitmap1 !0 0x2567 bitmap1 !0 0x256e bitmap1 !0 0x2575 bitmap1 !0 0x2576 comment char_type 4 bitmap1 !0 0x2126 bitmap1 !0 0x2127 bitmap1 !0 0x2128 bitmap1 !0 0x212d bitmap1 !0 0x212e bitmap1 !0 0x213e bitmap1 !0 0x2142 bitmap1 !0 0x2143 bitmap1 !0 0x2146 bitmap1 !0 0x2147 comment char_type 5 bitmap1 !0 0x2129 bitmap1 !0 0x212f bitmap1 !0 0x2130 bitmap1 !0 0x2133 bitmap1 !0 0x2135 bitmap1 !0 0x2148 bitmap1 !0 0x2149 bitmap1 !0 0x216b bitmap1 !0 0x216c bitmap1 !0 0x216d bitmap1 !0 0x2178 comment char_type 6 bitmap1 !0 0x214a bitmap1 !0 0x214c bitmap1 !0 0x214e bitmap1 !0 0x2150 bitmap1 !0 0x2152 bitmap1 !0 0x2154 bitmap1 !0 0x2156 bitmap1 !0 0x2158 bitmap1 !0 0x215a comment char_type 7 bitmap1 !0 0x2426 bitmap1 !0 0x242f bitmap1 !0 0x2430 bitmap1 !0 0x2431 bitmap1 !0 0x2432 bitmap1 !0 0x243a bitmap1 !0 0x246a bitmap1 !0 0x2546 bitmap1 !0 0x2547 bitmap1 !0 0x2564 comment char_type 8 bitmap1 !0 0x2124 bitmap1 !0 0x2125 comment char_type 9 bitmap1 !0 0x2122 bitmap1 !0 0x2123 comment char_type 10 bitmap1 !0 0x2522 bitmap1 !0 0x2524 bitmap1 !0 0x2526 bitmap1 !0 0x252a bitmap1 !0 0x2531 bitmap1 !0 0x2532 bitmap1 !0 0x2535 bitmap1 !0 0x2536 bitmap1 !0 0x253d bitmap1 !0 0x253e bitmap1 !0 0x2541 bitmap1 !0 0x2542 bitmap1 !0 0x2544 bitmap1 !0 0x2545 bitmap1 !0 0x2548 bitmap1 !0 0x2549 bitmap1 !0 0x254a bitmap1 !0 0x2555 bitmap1 !0 0x2556 bitmap1 !0 0x2557 bitmap1 !0 0x255f bitmap1 !0 0x2561 bitmap1 !0 0x2569 bitmap1 !0 0x256a bitmap1 !0 0x256f bitmap1 !0 0x2572 comment char_type 11 bitmap1 !0 0x252f bitmap1 !0 0x2530 bitmap1 !0 0x253f bitmap1 !0 0x2540 comment char_type 12 bitmap1 !0 0x254e comment char_type 0 bitmap1 !0 0x2221 bitmap1 !0 0x2223 bitmap1 !0 0x2224 bitmap1 !0 0x2229 bitmap1 !0 0x213b bitmap1 !0 0x2341 bitmap1 !0 0x2342 bitmap1 !0 0x2343 bitmap1 !0 0x2361 bitmap1 !0 0x2362 bitmap1 !0 0x2363 bitmap1 !0 0x3026 bitmap1 !0 0x302a bitmap1 !0 0x3170 quit vflib3-3.6.14.dfsg/src/Test/bdf-2a0000644000175000017500000000077307027605324015764 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open2 etl24-latin1.bdf open2 etl24-latin1.bdf -1 2 2 open2 etl24-latin1.bdf -1 1 2 open2 etl24-latin1.bdf -1 2 1 open2 bdf-font1 bitmap2 !0 0x67 bitmap2 !1 0x67 bitmap2 !2 0x67 bitmap2 !3 0x67 property !0 CHARSET_REGISTRY property !0 CHARSET_ENCODING property !0 POINT_SIZE property !4 CHARSET_REGISTRY property !4 CHARSET_ENCODING property !4 POINT_SIZE quit vflib3-3.6.14.dfsg/src/Test/bdf-2b0000644000175000017500000000074007027605326015761 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open2 bdf-font1 -1 open2 bdf-font1 -1 1.2 1.2 open2 bdf-font2 -1 bitmap2 !0 0x67 1 bitmap2 !0 0x67 1.2 1.2 bitmap2 !0 0x67 1.4 1.4 bitmap2 !0 0x67 1.6 1.6 bitmap2 !1 0x67 bitmap2 !1 0x67 1.2 1.2 bitmap2 !1 0x67 1.4 1.4 bitmap2 !1 0x67 1.6 1.6 bitmap2 !2 0x67 bitmap2 !2 0x67 1.2 1.2 bitmap2 !2 0x67 1.4 1.4 bitmap2 !2 0x67 1.6 1.6 quit vflib3-3.6.14.dfsg/src/Test/jtex-2a0000644000175000017500000000146307027605531016200 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open2 min10.pk 32 1.0 1.0 open2 min8.pk 24 1.0 1.0 open2 min8.pk 24 1.2 1.2 bitmap2 !0 0x2122 bitmap2 !0 0x2123 bitmap2 !0 0x2126 bitmap2 !0 0x2127 bitmap2 !0 0x2128 bitmap2 !0 0x2129 bitmap2 !0 0x212a bitmap2 !0 0x4567 bitmap2 !0 0x4568 bitmap2 !1 0x2122 bitmap2 !1 0x2123 bitmap2 !1 0x2126 bitmap2 !1 0x2127 bitmap2 !1 0x2128 bitmap2 !1 0x2129 bitmap2 !1 0x212a bitmap2 !1 0x4567 bitmap2 !1 0x4568 bitmap2 !2 0x2122 bitmap2 !2 0x2123 bitmap2 !2 0x2126 bitmap2 !2 0x2127 bitmap2 !2 0x2128 bitmap2 !2 0x2129 bitmap2 !2 0x212a bitmap2 !2 0x4567 bitmap2 !2 0x4568 property !0 CHARSET_REGISTRY property !0 CHARSET_ENCODING property !0 POINT_SIZE property !0 FONT_CLASS quit vflib3-3.6.14.dfsg/src/Test/jtex-1c0000644000175000017500000004650107027605344016205 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE DEBUG BITMAP 1 OPEN1 min10.pk -1.00 1.0000 1.0000 300.00 300.00 BITMAP1 !0 0x2121 BITMAP1 !0 0x2122 BITMAP1 !0 0x2123 BITMAP1 !0 0x2124 BITMAP1 !0 0x2125 BITMAP1 !0 0x2126 BITMAP1 !0 0x2127 BITMAP1 !0 0x2128 BITMAP1 !0 0x2129 BITMAP1 !0 0x212a BITMAP1 !0 0x212b BITMAP1 !0 0x212c BITMAP1 !0 0x212d BITMAP1 !0 0x212e BITMAP1 !0 0x212f BITMAP1 !0 0x2130 BITMAP1 !0 0x2131 BITMAP1 !0 0x2132 BITMAP1 !0 0x2133 BITMAP1 !0 0x2134 BITMAP1 !0 0x2135 BITMAP1 !0 0x2136 BITMAP1 !0 0x2137 BITMAP1 !0 0x2138 BITMAP1 !0 0x2139 BITMAP1 !0 0x213a BITMAP1 !0 0x213b BITMAP1 !0 0x213c BITMAP1 !0 0x213d BITMAP1 !0 0x213e BITMAP1 !0 0x213f BITMAP1 !0 0x2140 BITMAP1 !0 0x2141 BITMAP1 !0 0x2142 BITMAP1 !0 0x2143 BITMAP1 !0 0x2144 BITMAP1 !0 0x2145 BITMAP1 !0 0x2146 BITMAP1 !0 0x2147 BITMAP1 !0 0x2148 BITMAP1 !0 0x2149 BITMAP1 !0 0x214a BITMAP1 !0 0x214b BITMAP1 !0 0x214c BITMAP1 !0 0x214d BITMAP1 !0 0x214e BITMAP1 !0 0x214f BITMAP1 !0 0x2150 BITMAP1 !0 0x2151 BITMAP1 !0 0x2152 BITMAP1 !0 0x2153 BITMAP1 !0 0x2154 BITMAP1 !0 0x2155 BITMAP1 !0 0x2156 BITMAP1 !0 0x2157 BITMAP1 !0 0x2158 BITMAP1 !0 0x2159 BITMAP1 !0 0x215a BITMAP1 !0 0x215b BITMAP1 !0 0x215c BITMAP1 !0 0x215d BITMAP1 !0 0x215e BITMAP1 !0 0x215f BITMAP1 !0 0x2160 BITMAP1 !0 0x2161 BITMAP1 !0 0x2162 BITMAP1 !0 0x2163 BITMAP1 !0 0x2164 BITMAP1 !0 0x2165 BITMAP1 !0 0x2166 BITMAP1 !0 0x2167 BITMAP1 !0 0x2168 BITMAP1 !0 0x2169 BITMAP1 !0 0x216a BITMAP1 !0 0x216b BITMAP1 !0 0x216c BITMAP1 !0 0x216d BITMAP1 !0 0x216e BITMAP1 !0 0x216f BITMAP1 !0 0x2170 BITMAP1 !0 0x2171 BITMAP1 !0 0x2172 BITMAP1 !0 0x2173 BITMAP1 !0 0x2174 BITMAP1 !0 0x2175 BITMAP1 !0 0x2176 BITMAP1 !0 0x2177 BITMAP1 !0 0x2178 BITMAP1 !0 0x2179 BITMAP1 !0 0x217a BITMAP1 !0 0x217b BITMAP1 !0 0x217c BITMAP1 !0 0x217d BITMAP1 !0 0x217e BITMAP1 !0 0x2221 BITMAP1 !0 0x2222 BITMAP1 !0 0x2223 BITMAP1 !0 0x2224 BITMAP1 !0 0x2225 BITMAP1 !0 0x2226 BITMAP1 !0 0x2227 BITMAP1 !0 0x2228 BITMAP1 !0 0x2229 BITMAP1 !0 0x222a BITMAP1 !0 0x222b BITMAP1 !0 0x222c BITMAP1 !0 0x222d BITMAP1 !0 0x222e BITMAP1 !0 0x223a BITMAP1 !0 0x223b BITMAP1 !0 0x223c BITMAP1 !0 0x223d BITMAP1 !0 0x223e BITMAP1 !0 0x223f BITMAP1 !0 0x2240 BITMAP1 !0 0x2241 BITMAP1 !0 0x224a BITMAP1 !0 0x224b BITMAP1 !0 0x224c BITMAP1 !0 0x224d BITMAP1 !0 0x224e BITMAP1 !0 0x224f BITMAP1 !0 0x2250 BITMAP1 !0 0x225c BITMAP1 !0 0x225d BITMAP1 !0 0x225e BITMAP1 !0 0x225f BITMAP1 !0 0x2260 BITMAP1 !0 0x2261 BITMAP1 !0 0x2262 BITMAP1 !0 0x2263 BITMAP1 !0 0x2264 BITMAP1 !0 0x2265 BITMAP1 !0 0x2266 BITMAP1 !0 0x2267 BITMAP1 !0 0x2268 BITMAP1 !0 0x2269 BITMAP1 !0 0x226a BITMAP1 !0 0x2272 BITMAP1 !0 0x2273 BITMAP1 !0 0x2274 BITMAP1 !0 0x2275 BITMAP1 !0 0x2276 BITMAP1 !0 0x2277 BITMAP1 !0 0x2278 BITMAP1 !0 0x2279 BITMAP1 !0 0x227e BITMAP1 !0 0x2331 BITMAP1 !0 0x2332 BITMAP1 !0 0x2333 BITMAP1 !0 0x2334 BITMAP1 !0 0x2335 BITMAP1 !0 0x2336 BITMAP1 !0 0x2337 BITMAP1 !0 0x2338 BITMAP1 !0 0x2339 BITMAP1 !0 0x2341 BITMAP1 !0 0x2342 BITMAP1 !0 0x2343 BITMAP1 !0 0x2344 BITMAP1 !0 0x2345 BITMAP1 !0 0x2346 BITMAP1 !0 0x2347 BITMAP1 !0 0x2348 BITMAP1 !0 0x2349 BITMAP1 !0 0x234a BITMAP1 !0 0x234b BITMAP1 !0 0x234c BITMAP1 !0 0x234d BITMAP1 !0 0x234e BITMAP1 !0 0x234f BITMAP1 !0 0x2350 BITMAP1 !0 0x2351 BITMAP1 !0 0x2352 BITMAP1 !0 0x2353 BITMAP1 !0 0x2354 BITMAP1 !0 0x2355 BITMAP1 !0 0x2356 BITMAP1 !0 0x2357 BITMAP1 !0 0x2358 BITMAP1 !0 0x2359 BITMAP1 !0 0x235a BITMAP1 !0 0x2361 BITMAP1 !0 0x2362 BITMAP1 !0 0x2363 BITMAP1 !0 0x2364 BITMAP1 !0 0x2365 BITMAP1 !0 0x2366 BITMAP1 !0 0x2367 BITMAP1 !0 0x2368 BITMAP1 !0 0x2369 BITMAP1 !0 0x236a BITMAP1 !0 0x236b BITMAP1 !0 0x236c BITMAP1 !0 0x236d BITMAP1 !0 0x236e BITMAP1 !0 0x236f BITMAP1 !0 0x2370 BITMAP1 !0 0x2371 BITMAP1 !0 0x2372 BITMAP1 !0 0x2373 BITMAP1 !0 0x2374 BITMAP1 !0 0x2375 BITMAP1 !0 0x2376 BITMAP1 !0 0x2377 BITMAP1 !0 0x2378 BITMAP1 !0 0x2379 BITMAP1 !0 0x237a BITMAP1 !0 0x2421 BITMAP1 !0 0x2422 BITMAP1 !0 0x2423 BITMAP1 !0 0x2424 BITMAP1 !0 0x2425 BITMAP1 !0 0x2426 BITMAP1 !0 0x2427 BITMAP1 !0 0x2428 BITMAP1 !0 0x2429 BITMAP1 !0 0x242a BITMAP1 !0 0x242b BITMAP1 !0 0x242c BITMAP1 !0 0x242d BITMAP1 !0 0x242e BITMAP1 !0 0x242f BITMAP1 !0 0x2430 BITMAP1 !0 0x2431 BITMAP1 !0 0x2432 BITMAP1 !0 0x2433 BITMAP1 !0 0x2434 BITMAP1 !0 0x2435 BITMAP1 !0 0x2436 BITMAP1 !0 0x2437 BITMAP1 !0 0x2438 BITMAP1 !0 0x2439 BITMAP1 !0 0x243a BITMAP1 !0 0x243b BITMAP1 !0 0x243c BITMAP1 !0 0x243d BITMAP1 !0 0x243e BITMAP1 !0 0x243f BITMAP1 !0 0x2440 BITMAP1 !0 0x2441 BITMAP1 !0 0x2442 BITMAP1 !0 0x2443 BITMAP1 !0 0x2444 BITMAP1 !0 0x2445 BITMAP1 !0 0x2446 BITMAP1 !0 0x2447 BITMAP1 !0 0x2448 BITMAP1 !0 0x2449 BITMAP1 !0 0x244a BITMAP1 !0 0x244b BITMAP1 !0 0x244c BITMAP1 !0 0x244d BITMAP1 !0 0x244e BITMAP1 !0 0x244f BITMAP1 !0 0x2450 BITMAP1 !0 0x2451 BITMAP1 !0 0x2452 BITMAP1 !0 0x2453 BITMAP1 !0 0x2454 BITMAP1 !0 0x2455 BITMAP1 !0 0x2456 BITMAP1 !0 0x2457 BITMAP1 !0 0x2458 BITMAP1 !0 0x2459 BITMAP1 !0 0x245a BITMAP1 !0 0x245b BITMAP1 !0 0x245c BITMAP1 !0 0x245d BITMAP1 !0 0x245e BITMAP1 !0 0x245f BITMAP1 !0 0x2460 BITMAP1 !0 0x2461 BITMAP1 !0 0x2462 BITMAP1 !0 0x2463 BITMAP1 !0 0x2464 BITMAP1 !0 0x2465 BITMAP1 !0 0x2466 BITMAP1 !0 0x2467 BITMAP1 !0 0x2468 BITMAP1 !0 0x2469 BITMAP1 !0 0x246a BITMAP1 !0 0x246b BITMAP1 !0 0x246c BITMAP1 !0 0x246d BITMAP1 !0 0x246e BITMAP1 !0 0x246f BITMAP1 !0 0x2470 BITMAP1 !0 0x2471 BITMAP1 !0 0x2472 BITMAP1 !0 0x2473 BITMAP1 !0 0x2521 BITMAP1 !0 0x2522 BITMAP1 !0 0x2523 BITMAP1 !0 0x2524 BITMAP1 !0 0x2525 BITMAP1 !0 0x2526 BITMAP1 !0 0x2527 BITMAP1 !0 0x2528 BITMAP1 !0 0x2529 BITMAP1 !0 0x252a BITMAP1 !0 0x252b BITMAP1 !0 0x252c BITMAP1 !0 0x252d BITMAP1 !0 0x252e BITMAP1 !0 0x252f BITMAP1 !0 0x2530 BITMAP1 !0 0x2531 BITMAP1 !0 0x2532 BITMAP1 !0 0x2533 BITMAP1 !0 0x2534 BITMAP1 !0 0x2535 BITMAP1 !0 0x2536 BITMAP1 !0 0x2537 BITMAP1 !0 0x2538 BITMAP1 !0 0x2539 BITMAP1 !0 0x253a BITMAP1 !0 0x253b BITMAP1 !0 0x253c BITMAP1 !0 0x253d BITMAP1 !0 0x253e BITMAP1 !0 0x253f BITMAP1 !0 0x2540 BITMAP1 !0 0x2541 BITMAP1 !0 0x2542 BITMAP1 !0 0x2543 BITMAP1 !0 0x2544 BITMAP1 !0 0x2545 BITMAP1 !0 0x2546 BITMAP1 !0 0x2547 BITMAP1 !0 0x2548 BITMAP1 !0 0x2549 BITMAP1 !0 0x254a BITMAP1 !0 0x254b BITMAP1 !0 0x254c BITMAP1 !0 0x254d BITMAP1 !0 0x254e BITMAP1 !0 0x254f BITMAP1 !0 0x2550 BITMAP1 !0 0x2551 BITMAP1 !0 0x2552 BITMAP1 !0 0x2553 BITMAP1 !0 0x2554 BITMAP1 !0 0x2555 BITMAP1 !0 0x2556 BITMAP1 !0 0x2557 BITMAP1 !0 0x2558 BITMAP1 !0 0x2559 BITMAP1 !0 0x255a BITMAP1 !0 0x255b BITMAP1 !0 0x255c BITMAP1 !0 0x255d BITMAP1 !0 0x255e BITMAP1 !0 0x255f BITMAP1 !0 0x2560 BITMAP1 !0 0x2561 BITMAP1 !0 0x2562 BITMAP1 !0 0x2563 BITMAP1 !0 0x2564 BITMAP1 !0 0x2565 BITMAP1 !0 0x2566 BITMAP1 !0 0x2567 BITMAP1 !0 0x2568 BITMAP1 !0 0x2569 BITMAP1 !0 0x256a BITMAP1 !0 0x256b BITMAP1 !0 0x256c BITMAP1 !0 0x256d BITMAP1 !0 0x256e BITMAP1 !0 0x256f BITMAP1 !0 0x2570 BITMAP1 !0 0x2571 BITMAP1 !0 0x2572 BITMAP1 !0 0x2573 BITMAP1 !0 0x2574 BITMAP1 !0 0x2575 BITMAP1 !0 0x2576 BITMAP1 !0 0x2621 BITMAP1 !0 0x2622 BITMAP1 !0 0x2623 BITMAP1 !0 0x2624 BITMAP1 !0 0x2625 BITMAP1 !0 0x2626 BITMAP1 !0 0x2627 BITMAP1 !0 0x2628 BITMAP1 !0 0x2629 BITMAP1 !0 0x262a BITMAP1 !0 0x262b BITMAP1 !0 0x262c BITMAP1 !0 0x262d BITMAP1 !0 0x262e BITMAP1 !0 0x262f BITMAP1 !0 0x2630 BITMAP1 !0 0x2631 BITMAP1 !0 0x2632 BITMAP1 !0 0x2633 BITMAP1 !0 0x2634 BITMAP1 !0 0x2635 BITMAP1 !0 0x2636 BITMAP1 !0 0x2637 BITMAP1 !0 0x2638 BITMAP1 !0 0x2641 BITMAP1 !0 0x2642 BITMAP1 !0 0x2643 BITMAP1 !0 0x2644 BITMAP1 !0 0x2645 BITMAP1 !0 0x2646 BITMAP1 !0 0x2647 BITMAP1 !0 0x2648 BITMAP1 !0 0x2649 BITMAP1 !0 0x264a BITMAP1 !0 0x264b BITMAP1 !0 0x264c BITMAP1 !0 0x264d BITMAP1 !0 0x264e BITMAP1 !0 0x264f BITMAP1 !0 0x2650 BITMAP1 !0 0x2651 BITMAP1 !0 0x2652 BITMAP1 !0 0x2653 BITMAP1 !0 0x2654 BITMAP1 !0 0x2655 BITMAP1 !0 0x2656 BITMAP1 !0 0x2657 BITMAP1 !0 0x2658 BITMAP1 !0 0x2721 BITMAP1 !0 0x2722 BITMAP1 !0 0x2723 BITMAP1 !0 0x2724 BITMAP1 !0 0x2725 BITMAP1 !0 0x2726 BITMAP1 !0 0x2727 BITMAP1 !0 0x2728 BITMAP1 !0 0x2729 BITMAP1 !0 0x272a BITMAP1 !0 0x272b BITMAP1 !0 0x272c BITMAP1 !0 0x272d BITMAP1 !0 0x272e BITMAP1 !0 0x272f BITMAP1 !0 0x2730 BITMAP1 !0 0x2731 BITMAP1 !0 0x2732 BITMAP1 !0 0x2733 BITMAP1 !0 0x2734 BITMAP1 !0 0x2735 BITMAP1 !0 0x2736 BITMAP1 !0 0x2737 BITMAP1 !0 0x2738 BITMAP1 !0 0x2739 BITMAP1 !0 0x273a BITMAP1 !0 0x273b BITMAP1 !0 0x273c BITMAP1 !0 0x273d BITMAP1 !0 0x273e BITMAP1 !0 0x273f BITMAP1 !0 0x2740 BITMAP1 !0 0x2741 BITMAP1 !0 0x2751 BITMAP1 !0 0x2752 BITMAP1 !0 0x2753 BITMAP1 !0 0x2754 BITMAP1 !0 0x2755 BITMAP1 !0 0x2756 BITMAP1 !0 0x2757 BITMAP1 !0 0x2758 BITMAP1 !0 0x2759 BITMAP1 !0 0x275a BITMAP1 !0 0x275b BITMAP1 !0 0x275c BITMAP1 !0 0x275d BITMAP1 !0 0x275e BITMAP1 !0 0x275f BITMAP1 !0 0x2760 BITMAP1 !0 0x2761 BITMAP1 !0 0x2762 BITMAP1 !0 0x2763 BITMAP1 !0 0x2764 BITMAP1 !0 0x2765 BITMAP1 !0 0x2766 BITMAP1 !0 0x2767 BITMAP1 !0 0x2768 BITMAP1 !0 0x2769 BITMAP1 !0 0x276a BITMAP1 !0 0x276b BITMAP1 !0 0x276c BITMAP1 !0 0x276d BITMAP1 !0 0x276e BITMAP1 !0 0x276f BITMAP1 !0 0x2770 BITMAP1 !0 0x2771 BITMAP1 !0 0x2821 BITMAP1 !0 0x2822 BITMAP1 !0 0x2823 BITMAP1 !0 0x2824 BITMAP1 !0 0x2825 BITMAP1 !0 0x2826 BITMAP1 !0 0x2827 BITMAP1 !0 0x2828 BITMAP1 !0 0x2829 BITMAP1 !0 0x282a BITMAP1 !0 0x282b BITMAP1 !0 0x282c BITMAP1 !0 0x282d BITMAP1 !0 0x282e BITMAP1 !0 0x282f BITMAP1 !0 0x2830 BITMAP1 !0 0x2831 BITMAP1 !0 0x2832 BITMAP1 !0 0x2833 BITMAP1 !0 0x2834 BITMAP1 !0 0x2835 BITMAP1 !0 0x2836 BITMAP1 !0 0x2837 BITMAP1 !0 0x2838 BITMAP1 !0 0x2839 BITMAP1 !0 0x283a BITMAP1 !0 0x283b BITMAP1 !0 0x283c BITMAP1 !0 0x283d BITMAP1 !0 0x283e BITMAP1 !0 0x283f BITMAP1 !0 0x2840 BITMAP1 !0 0x3021 BITMAP1 !0 0x3022 BITMAP1 !0 0x3023 BITMAP1 !0 0x3024 BITMAP1 !0 0x3025 BITMAP1 !0 0x3026 BITMAP1 !0 0x3027 BITMAP1 !0 0x3028 BITMAP1 !0 0x3029 BITMAP1 !0 0x302a BITMAP1 !0 0x302b BITMAP1 !0 0x302c BITMAP1 !0 0x302d BITMAP1 !0 0x302e BITMAP1 !0 0x302f BITMAP1 !0 0x3030 BITMAP1 !0 0x3031 BITMAP1 !0 0x3032 BITMAP1 !0 0x3033 BITMAP1 !0 0x3034 BITMAP1 !0 0x3035 BITMAP1 !0 0x3036 BITMAP1 !0 0x3037 BITMAP1 !0 0x3038 BITMAP1 !0 0x3039 BITMAP1 !0 0x303a BITMAP1 !0 0x303b BITMAP1 !0 0x303c BITMAP1 !0 0x303d BITMAP1 !0 0x303e BITMAP1 !0 0x303f BITMAP1 !0 0x3040 BITMAP1 !0 0x3041 BITMAP1 !0 0x3042 BITMAP1 !0 0x3043 BITMAP1 !0 0x3044 BITMAP1 !0 0x3045 BITMAP1 !0 0x3046 BITMAP1 !0 0x3047 BITMAP1 !0 0x3048 BITMAP1 !0 0x3049 BITMAP1 !0 0x304a BITMAP1 !0 0x304b BITMAP1 !0 0x304c BITMAP1 !0 0x304d BITMAP1 !0 0x304e BITMAP1 !0 0x304f BITMAP1 !0 0x3050 BITMAP1 !0 0x3051 BITMAP1 !0 0x3052 BITMAP1 !0 0x3053 BITMAP1 !0 0x3054 BITMAP1 !0 0x3055 BITMAP1 !0 0x3056 BITMAP1 !0 0x3057 BITMAP1 !0 0x3058 BITMAP1 !0 0x3059 BITMAP1 !0 0x305a BITMAP1 !0 0x305b BITMAP1 !0 0x305c BITMAP1 !0 0x305d BITMAP1 !0 0x305e BITMAP1 !0 0x305f BITMAP1 !0 0x3060 BITMAP1 !0 0x3061 BITMAP1 !0 0x3062 BITMAP1 !0 0x3063 BITMAP1 !0 0x3064 BITMAP1 !0 0x3065 BITMAP1 !0 0x3066 BITMAP1 !0 0x3067 BITMAP1 !0 0x3068 BITMAP1 !0 0x3069 BITMAP1 !0 0x306a BITMAP1 !0 0x306b BITMAP1 !0 0x306c BITMAP1 !0 0x306d BITMAP1 !0 0x306e BITMAP1 !0 0x306f BITMAP1 !0 0x3070 BITMAP1 !0 0x3071 BITMAP1 !0 0x3072 BITMAP1 !0 0x3073 BITMAP1 !0 0x3074 BITMAP1 !0 0x3075 BITMAP1 !0 0x3076 BITMAP1 !0 0x3077 BITMAP1 !0 0x3078 BITMAP1 !0 0x3079 BITMAP1 !0 0x307a BITMAP1 !0 0x307b BITMAP1 !0 0x307c BITMAP1 !0 0x307d BITMAP1 !0 0x307e BITMAP1 !0 0x3121 BITMAP1 !0 0x3122 BITMAP1 !0 0x3123 BITMAP1 !0 0x3124 BITMAP1 !0 0x3125 BITMAP1 !0 0x3126 BITMAP1 !0 0x3127 BITMAP1 !0 0x3128 BITMAP1 !0 0x3129 BITMAP1 !0 0x312a BITMAP1 !0 0x312b BITMAP1 !0 0x312c BITMAP1 !0 0x312d BITMAP1 !0 0x312e BITMAP1 !0 0x312f BITMAP1 !0 0x3130 BITMAP1 !0 0x3131 BITMAP1 !0 0x3132 BITMAP1 !0 0x3133 BITMAP1 !0 0x3134 BITMAP1 !0 0x3135 BITMAP1 !0 0x3136 BITMAP1 !0 0x3137 BITMAP1 !0 0x3138 BITMAP1 !0 0x3139 BITMAP1 !0 0x313a BITMAP1 !0 0x313b BITMAP1 !0 0x313c BITMAP1 !0 0x313d BITMAP1 !0 0x313e BITMAP1 !0 0x313f BITMAP1 !0 0x3140 BITMAP1 !0 0x3141 BITMAP1 !0 0x3142 BITMAP1 !0 0x3143 BITMAP1 !0 0x3144 BITMAP1 !0 0x3145 BITMAP1 !0 0x3146 BITMAP1 !0 0x3147 BITMAP1 !0 0x3148 BITMAP1 !0 0x3149 BITMAP1 !0 0x314a BITMAP1 !0 0x314b BITMAP1 !0 0x314c BITMAP1 !0 0x314d BITMAP1 !0 0x314e BITMAP1 !0 0x314f BITMAP1 !0 0x3150 BITMAP1 !0 0x3151 BITMAP1 !0 0x3152 BITMAP1 !0 0x3153 BITMAP1 !0 0x3154 BITMAP1 !0 0x3155 BITMAP1 !0 0x3156 BITMAP1 !0 0x3157 BITMAP1 !0 0x3158 BITMAP1 !0 0x3159 BITMAP1 !0 0x315a BITMAP1 !0 0x315b BITMAP1 !0 0x315c BITMAP1 !0 0x315d BITMAP1 !0 0x315e BITMAP1 !0 0x315f BITMAP1 !0 0x3160 BITMAP1 !0 0x3161 BITMAP1 !0 0x3162 BITMAP1 !0 0x3163 BITMAP1 !0 0x3164 BITMAP1 !0 0x3165 BITMAP1 !0 0x3166 BITMAP1 !0 0x3167 BITMAP1 !0 0x3168 BITMAP1 !0 0x3169 BITMAP1 !0 0x316a BITMAP1 !0 0x316b BITMAP1 !0 0x316c BITMAP1 !0 0x316d BITMAP1 !0 0x316e BITMAP1 !0 0x316f BITMAP1 !0 0x3170 BITMAP1 !0 0x3171 BITMAP1 !0 0x3172 BITMAP1 !0 0x3173 BITMAP1 !0 0x3174 BITMAP1 !0 0x3175 BITMAP1 !0 0x3176 BITMAP1 !0 0x3177 BITMAP1 !0 0x3178 BITMAP1 !0 0x3179 BITMAP1 !0 0x317a BITMAP1 !0 0x317b BITMAP1 !0 0x317c BITMAP1 !0 0x317d BITMAP1 !0 0x317e BITMAP1 !0 0x3221 BITMAP1 !0 0x3222 BITMAP1 !0 0x3223 BITMAP1 !0 0x3224 BITMAP1 !0 0x3225 BITMAP1 !0 0x3226 BITMAP1 !0 0x3227 BITMAP1 !0 0x3228 BITMAP1 !0 0x3229 BITMAP1 !0 0x322a BITMAP1 !0 0x322b BITMAP1 !0 0x322c BITMAP1 !0 0x322d BITMAP1 !0 0x322e BITMAP1 !0 0x322f BITMAP1 !0 0x3230 BITMAP1 !0 0x3231 BITMAP1 !0 0x3232 BITMAP1 !0 0x3233 BITMAP1 !0 0x3234 BITMAP1 !0 0x3235 BITMAP1 !0 0x3236 BITMAP1 !0 0x3237 BITMAP1 !0 0x3238 BITMAP1 !0 0x3239 BITMAP1 !0 0x323a BITMAP1 !0 0x323b BITMAP1 !0 0x323c BITMAP1 !0 0x323d BITMAP1 !0 0x323e BITMAP1 !0 0x323f BITMAP1 !0 0x3240 BITMAP1 !0 0x3241 BITMAP1 !0 0x3242 BITMAP1 !0 0x3243 BITMAP1 !0 0x3244 BITMAP1 !0 0x3245 BITMAP1 !0 0x3246 BITMAP1 !0 0x3247 BITMAP1 !0 0x3248 BITMAP1 !0 0x3249 BITMAP1 !0 0x324a BITMAP1 !0 0x324b BITMAP1 !0 0x324c BITMAP1 !0 0x324d BITMAP1 !0 0x324e BITMAP1 !0 0x324f BITMAP1 !0 0x3250 BITMAP1 !0 0x3251 BITMAP1 !0 0x3252 BITMAP1 !0 0x3253 BITMAP1 !0 0x3254 BITMAP1 !0 0x3255 BITMAP1 !0 0x3256 BITMAP1 !0 0x3257 BITMAP1 !0 0x3258 BITMAP1 !0 0x3259 BITMAP1 !0 0x325a BITMAP1 !0 0x325b BITMAP1 !0 0x325c BITMAP1 !0 0x325d BITMAP1 !0 0x325e BITMAP1 !0 0x325f BITMAP1 !0 0x3260 BITMAP1 !0 0x3261 BITMAP1 !0 0x3262 BITMAP1 !0 0x3263 BITMAP1 !0 0x3264 BITMAP1 !0 0x3265 BITMAP1 !0 0x3266 BITMAP1 !0 0x3267 BITMAP1 !0 0x3268 BITMAP1 !0 0x3269 BITMAP1 !0 0x326a BITMAP1 !0 0x326b BITMAP1 !0 0x326c BITMAP1 !0 0x326d BITMAP1 !0 0x326e BITMAP1 !0 0x326f BITMAP1 !0 0x3270 BITMAP1 !0 0x3271 BITMAP1 !0 0x3272 BITMAP1 !0 0x3273 BITMAP1 !0 0x3274 BITMAP1 !0 0x3275 BITMAP1 !0 0x3276 BITMAP1 !0 0x3277 BITMAP1 !0 0x3278 BITMAP1 !0 0x3279 BITMAP1 !0 0x327a BITMAP1 !0 0x327b BITMAP1 !0 0x327c BITMAP1 !0 0x327d BITMAP1 !0 0x327e BITMAP1 !0 0x3321 BITMAP1 !0 0x3322 BITMAP1 !0 0x3323 BITMAP1 !0 0x3324 BITMAP1 !0 0x3325 BITMAP1 !0 0x3326 BITMAP1 !0 0x3327 BITMAP1 !0 0x3328 BITMAP1 !0 0x3329 BITMAP1 !0 0x332a BITMAP1 !0 0x332b BITMAP1 !0 0x332c BITMAP1 !0 0x332d BITMAP1 !0 0x332e BITMAP1 !0 0x332f BITMAP1 !0 0x3330 BITMAP1 !0 0x3331 BITMAP1 !0 0x3332 BITMAP1 !0 0x3333 BITMAP1 !0 0x3334 BITMAP1 !0 0x3335 BITMAP1 !0 0x3336 BITMAP1 !0 0x3337 BITMAP1 !0 0x3338 BITMAP1 !0 0x3339 BITMAP1 !0 0x333a BITMAP1 !0 0x333b BITMAP1 !0 0x333c BITMAP1 !0 0x333d BITMAP1 !0 0x333e BITMAP1 !0 0x333f BITMAP1 !0 0x3340 BITMAP1 !0 0x3341 BITMAP1 !0 0x3342 BITMAP1 !0 0x3343 BITMAP1 !0 0x3344 BITMAP1 !0 0x3345 BITMAP1 !0 0x3346 BITMAP1 !0 0x3347 BITMAP1 !0 0x3348 BITMAP1 !0 0x3349 BITMAP1 !0 0x334a BITMAP1 !0 0x334b BITMAP1 !0 0x334c BITMAP1 !0 0x334d BITMAP1 !0 0x334e BITMAP1 !0 0x334f BITMAP1 !0 0x3350 BITMAP1 !0 0x3351 BITMAP1 !0 0x3352 BITMAP1 !0 0x3353 BITMAP1 !0 0x3354 BITMAP1 !0 0x3355 BITMAP1 !0 0x3356 BITMAP1 !0 0x3357 BITMAP1 !0 0x3358 BITMAP1 !0 0x3359 BITMAP1 !0 0x335a BITMAP1 !0 0x335b BITMAP1 !0 0x335c BITMAP1 !0 0x335d BITMAP1 !0 0x335e BITMAP1 !0 0x335f BITMAP1 !0 0x3360 BITMAP1 !0 0x3361 BITMAP1 !0 0x3362 BITMAP1 !0 0x3363 BITMAP1 !0 0x3364 BITMAP1 !0 0x3365 BITMAP1 !0 0x3366 BITMAP1 !0 0x3367 BITMAP1 !0 0x3368 BITMAP1 !0 0x3369 BITMAP1 !0 0x336a BITMAP1 !0 0x336b BITMAP1 !0 0x336c BITMAP1 !0 0x336d BITMAP1 !0 0x336e BITMAP1 !0 0x336f BITMAP1 !0 0x3370 BITMAP1 !0 0x3371 BITMAP1 !0 0x3372 BITMAP1 !0 0x3373 BITMAP1 !0 0x3374 BITMAP1 !0 0x3375 BITMAP1 !0 0x3376 BITMAP1 !0 0x3377 BITMAP1 !0 0x3378 BITMAP1 !0 0x3379 BITMAP1 !0 0x337a BITMAP1 !0 0x337b BITMAP1 !0 0x337c BITMAP1 !0 0x337d BITMAP1 !0 0x337e BITMAP1 !0 0x3421 BITMAP1 !0 0x3422 BITMAP1 !0 0x3423 BITMAP1 !0 0x3424 BITMAP1 !0 0x3425 BITMAP1 !0 0x3426 BITMAP1 !0 0x3427 BITMAP1 !0 0x3428 BITMAP1 !0 0x3429 BITMAP1 !0 0x342a BITMAP1 !0 0x342b BITMAP1 !0 0x342c BITMAP1 !0 0x342d BITMAP1 !0 0x342e BITMAP1 !0 0x342f BITMAP1 !0 0x3430 BITMAP1 !0 0x3431 BITMAP1 !0 0x3432 BITMAP1 !0 0x3433 BITMAP1 !0 0x3434 BITMAP1 !0 0x3435 BITMAP1 !0 0x3436 BITMAP1 !0 0x3437 BITMAP1 !0 0x3438 BITMAP1 !0 0x3439 BITMAP1 !0 0x343a BITMAP1 !0 0x343b BITMAP1 !0 0x343c BITMAP1 !0 0x343d BITMAP1 !0 0x343e BITMAP1 !0 0x343f BITMAP1 !0 0x3440 BITMAP1 !0 0x3441 BITMAP1 !0 0x3442 BITMAP1 !0 0x3443 BITMAP1 !0 0x3444 BITMAP1 !0 0x3445 BITMAP1 !0 0x3446 BITMAP1 !0 0x3447 BITMAP1 !0 0x3448 BITMAP1 !0 0x3449 BITMAP1 !0 0x344a BITMAP1 !0 0x344b BITMAP1 !0 0x344c BITMAP1 !0 0x344d BITMAP1 !0 0x344e BITMAP1 !0 0x344f BITMAP1 !0 0x3450 BITMAP1 !0 0x3451 BITMAP1 !0 0x3452 BITMAP1 !0 0x3453 BITMAP1 !0 0x3454 BITMAP1 !0 0x3455 BITMAP1 !0 0x3456 BITMAP1 !0 0x3457 BITMAP1 !0 0x3458 BITMAP1 !0 0x3459 BITMAP1 !0 0x345a BITMAP1 !0 0x345b BITMAP1 !0 0x345c BITMAP1 !0 0x345d BITMAP1 !0 0x345e BITMAP1 !0 0x345f BITMAP1 !0 0x3460 BITMAP1 !0 0x3461 BITMAP1 !0 0x3462 BITMAP1 !0 0x3463 BITMAP1 !0 0x3464 BITMAP1 !0 0x3465 BITMAP1 !0 0x3466 BITMAP1 !0 0x3467 BITMAP1 !0 0x3468 BITMAP1 !0 0x3469 BITMAP1 !0 0x346a BITMAP1 !0 0x346b BITMAP1 !0 0x346c BITMAP1 !0 0x346d BITMAP1 !0 0x346e BITMAP1 !0 0x346f BITMAP1 !0 0x3470 BITMAP1 !0 0x3471 BITMAP1 !0 0x3472 BITMAP1 !0 0x3473 BITMAP1 !0 0x3474 BITMAP1 !0 0x3475 BITMAP1 !0 0x3476 BITMAP1 !0 0x3477 BITMAP1 !0 0x3478 BITMAP1 !0 0x3479 BITMAP1 !0 0x347a BITMAP1 !0 0x347b BITMAP1 !0 0x347c BITMAP1 !0 0x347d BITMAP1 !0 0x347e BITMAP1 !0 0x3521 BITMAP1 !0 0x3522 BITMAP1 !0 0x3523 BITMAP1 !0 0x3524 BITMAP1 !0 0x3525 BITMAP1 !0 0x3526 BITMAP1 !0 0x3527 BITMAP1 !0 0x3528 BITMAP1 !0 0x3529 BITMAP1 !0 0x352a BITMAP1 !0 0x352b BITMAP1 !0 0x352c BITMAP1 !0 0x352d BITMAP1 !0 0x352e BITMAP1 !0 0x352f BITMAP1 !0 0x3530 BITMAP1 !0 0x3531 BITMAP1 !0 0x3532 BITMAP1 !0 0x3533 BITMAP1 !0 0x3534 BITMAP1 !0 0x3535 BITMAP1 !0 0x3536 BITMAP1 !0 0x3537 BITMAP1 !0 0x3538 BITMAP1 !0 0x3539 BITMAP1 !0 0x353a BITMAP1 !0 0x353b BITMAP1 !0 0x353c BITMAP1 !0 0x353d BITMAP1 !0 0x353e BITMAP1 !0 0x353f BITMAP1 !0 0x3540 BITMAP1 !0 0x3541 BITMAP1 !0 0x3542 BITMAP1 !0 0x3543 BITMAP1 !0 0x3544 BITMAP1 !0 0x3545 BITMAP1 !0 0x3546 BITMAP1 !0 0x3547 BITMAP1 !0 0x3548 BITMAP1 !0 0x3549 BITMAP1 !0 0x354a BITMAP1 !0 0x354b BITMAP1 !0 0x354c BITMAP1 !0 0x354d BITMAP1 !0 0x354e BITMAP1 !0 0x354f BITMAP1 !0 0x3550 BITMAP1 !0 0x3551 BITMAP1 !0 0x3552 BITMAP1 !0 0x3553 BITMAP1 !0 0x3554 BITMAP1 !0 0x3555 BITMAP1 !0 0x3556 BITMAP1 !0 0x3557 BITMAP1 !0 0x3558 BITMAP1 !0 0x3559 BITMAP1 !0 0x355a BITMAP1 !0 0x355b BITMAP1 !0 0x355c BITMAP1 !0 0x355d BITMAP1 !0 0x355e BITMAP1 !0 0x355f BITMAP1 !0 0x3560 BITMAP1 !0 0x3561 BITMAP1 !0 0x3562 BITMAP1 !0 0x3563 BITMAP1 !0 0x3564 BITMAP1 !0 0x3565 BITMAP1 !0 0x3566 BITMAP1 !0 0x3567 BITMAP1 !0 0x3568 BITMAP1 !0 0x3569 BITMAP1 !0 0x356a BITMAP1 !0 0x356b BITMAP1 !0 0x356c BITMAP1 !0 0x356d BITMAP1 !0 0x356e BITMAP1 !0 0x356f BITMAP1 !0 0x3570 BITMAP1 !0 0x3571 BITMAP1 !0 0x3572 BITMAP1 !0 0x3573 BITMAP1 !0 0x3574 BITMAP1 !0 0x3575 BITMAP1 !0 0x3576 BITMAP1 !0 0x3577 BITMAP1 !0 0x3578 BITMAP1 !0 0x3579 BITMAP1 !0 0x357a BITMAP1 !0 0x357b BITMAP1 !0 0x357c BITMAP1 !0 0x357d BITMAP1 !0 0x357e QUIT vflib3-3.6.14.dfsg/src/Test/jtex-1d0000644000175000017500000000103607027605524016200 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 kanji10.pk -1 1.0 1.0 300 300 open1 goth10.pk -1 1.0 1.0 300 300 bitmap1 !0 0x2122 bitmap1 !0 0x2123 bitmap1 !0 0x2126 bitmap1 !0 0x2127 bitmap1 !0 0x2128 bitmap1 !0 0x2129 bitmap1 !0 0x212a bitmap1 !0 0x4567 bitmap1 !0 0x4568 bitmap1 !1 0x2122 bitmap1 !1 0x2123 bitmap1 !1 0x2126 bitmap1 !1 0x2127 bitmap1 !1 0x2128 bitmap1 !1 0x2129 bitmap1 !1 0x212a bitmap1 !1 0x4567 bitmap1 !1 0x4568 quit vflib3-3.6.14.dfsg/src/Test/jtex-1e0000644000175000017500000000052607027605525016205 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 jtex-goth 10 1.0 1.0 300 300 bitmap1 !0 0x2122 bitmap1 !0 0x2123 bitmap1 !0 0x2126 bitmap1 !0 0x2127 bitmap1 !0 0x2128 bitmap1 !0 0x2129 bitmap1 !0 0x212a bitmap1 !0 0x4567 bitmap1 !0 0x4568 quit vflib3-3.6.14.dfsg/src/Test/jtex-1f0000644000175000017500000000042107027605527016202 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 goth10.300pk -1 1.0 1.0 -1 -1 bitmap1 !0 0x4567 bitmap1 !0 0x4568 bitmap1 !0 0x4569 bitmap1 !0 0x456a bitmap1 !0 0x456b quit vflib3-3.6.14.dfsg/src/Test/jtex-1g0000644000175000017500000000135707027605270016207 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 min10.pk -1 1.0 1.0 -1 -1 open1 min10.pk -1 1.2 1.2 -1 -1 open1 min10.pk -1 1.0 1.0 300 300 open1 min10.300pk -1 1.0 1.0 -1 -1 bitmap1 !0 0x4568 bitmap1 !1 0x4568 bitmap1 !2 0x4568 bitmap1 !3 0x4568 property !0 POINT_SIZE property !0 PIXEL_SIZE property !0 RESOLUTION_X property !0 RESOLUTION_Y property !1 POINT_SIZE property !1 PIXEL_SIZE property !1 RESOLUTION_X property !1 RESOLUTION_Y property !2 POINT_SIZE property !2 PIXEL_SIZE property !2 RESOLUTION_X property !2 RESOLUTION_Y property !3 POINT_SIZE property !3 PIXEL_SIZE property !3 RESOLUTION_X property !3 RESOLUTION_Y quit vflib3-3.6.14.dfsg/src/Test/bdf-1a0000644000175000017500000000062707027605315015761 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 etl24-latin1.bdf open1 etl24-latin1.bdf -1 2 2 open1 etl24-latin1.bdf -1 1 2 open1 etl24-latin1.bdf -1 2 1 bitmap1 !0 0x67 bitmap1 !1 0x67 bitmap1 !2 0x67 bitmap1 !3 0x67 property !0 CHARSET_REGISTRY property !0 CHARSET_ENCODING property !0 POINT_SIZE quit vflib3-3.6.14.dfsg/src/Test/type1-1a0000644000175000017500000000046507027605567016301 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 dcr10-1 bitmap1 !0 0x67 1.0 1.0 bitmap1 !0 0x67 1.2 1.2 bitmap1 !0 0x67 1.4 1.4 property !0 RESOLUTION_X property !0 RESOLUTION_Y property !0 POINT_SIZE quit vflib3-3.6.14.dfsg/src/Test/type1-2a0000644000175000017500000000070207027605600016260 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open2 dcr10-1 open2 dcr10-1 -1 1.2 1.2 open2 dcr10-1 24 open2 dcr10-1 32 bitmap2 !0 0x67 1.0 1.0 bitmap2 !0 0x67 1.2 1.2 bitmap2 !1 0x67 1.0 1.0 bitmap2 !1 0x67 1.2 1.2 bitmap2 !2 0x67 bitmap2 !3 0x67 property !0 PIXEL_SIZE property !1 PIXEL_SIZE property !2 PIXEL_SIZE property !3 PIXEL_SIZE quit vflib3-3.6.14.dfsg/src/Test/type1-1b0000644000175000017500000000051007027605571016264 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 dcr10-1 open1 dcr10o-1 bitmap1 !0 0x67 1.0 1.0 bitmap1 !0 0x67 1.2 1.2 bitmap1 !0 0x67 1.4 1.4 bitmap1 !1 0x67 1.0 1.0 bitmap1 !1 0x67 1.2 1.2 bitmap1 !1 0x67 1.4 1.4 quit vflib3-3.6.14.dfsg/src/Test/ptex-1a0000644000175000017500000000177107027605534016212 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 tmin8.pk -1 1.0 1.0 300 300 open1 tmin9.pk -1 1.2 1.2 300 300 open1 tmin10.pk -1 1.0 1.0 300 300 bitmap1 !0 0x2122 bitmap1 !0 0x2123 bitmap1 !0 0x2126 bitmap1 !0 0x2127 bitmap1 !0 0x2128 bitmap1 !0 0x2129 bitmap1 !0 0x212a bitmap1 !0 0x4567 bitmap1 !0 0x4568 bitmap1 !1 0x2122 bitmap1 !1 0x2123 bitmap1 !1 0x2126 bitmap1 !1 0x2127 bitmap1 !1 0x2128 bitmap1 !1 0x2129 bitmap1 !1 0x212a bitmap1 !1 0x4567 bitmap1 !1 0x4568 bitmap1 !2 0x2122 bitmap1 !2 0x2123 bitmap1 !2 0x2126 bitmap1 !2 0x2127 bitmap1 !2 0x2128 bitmap1 !2 0x2129 bitmap1 !2 0x212a bitmap1 !2 0x4567 bitmap1 !2 0x4568 property !0 FONT_CLASS property !0 CHARSET_REGISTRY property !0 CHARSET_ENCODING property !1 POINT_SIZE property !1 PIXEL_SIZE property !1 RESOLUTION_X property !1 RESOLUTION_Y property !2 POINT_SIZE property !2 PIXEL_SIZE property !2 RESOLUTION_X property !2 RESOLUTION_Y quit vflib3-3.6.14.dfsg/src/Test/type1-1d0000644000175000017500000000101307027605574016270 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vfserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 cmr10.300pk open1 cmr10.300pk -1 1.2 1.2 property !0 RESOLUTION_X property !0 RESOLUTION_Y property !0 POINT_SIZE property !0 FONT_NAME property !0 FULL_NAME property !0 FAMILY_NAME property !0 WEIGHT_NAME property !1 RESOLUTION_X property !1 RESOLUTION_Y property !1 POINT_SIZE property !1 FONT_NAME property !1 FULL_NAME property !1 FAMILY_NAME property !1 WEIGHT_NAME quit vflib3-3.6.14.dfsg/src/Test/tex-1a0000644000175000017500000000050407027605545016025 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vfserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 cmti10.300pk open1 cmti10.360pk open1 cmtt10.300pk bitmap1 !0 0x67 1.0 1.0 bitmap1 !1 0x67 1.0 1.0 bitmap1 !2 0x67 1.0 1.0 metric1 !0 0x67 1.0 1.0 metric1 !1 0x67 1.0 1.0 quit vflib3-3.6.14.dfsg/src/Test/ptex-1b0000644000175000017500000000513607027605536016214 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 tmin10.pk -1 1.0 1.0 300 300 comment char_type 1 bitmap1 !0 0x2124 bitmap1 !0 0x2125 comment char_type 2 bitmap1 !0 0x2122 bitmap1 !0 0x2123 comment char_type 3 bitmap1 !0 0x2133 bitmap1 !0 0x2134 bitmap1 !0 0x2135 bitmap1 !0 0x2136 bitmap1 !0 0x2137 bitmap1 !0 0x2139 bitmap1 !0 0x2421 bitmap1 !0 0x2423 bitmap1 !0 0x2425 bitmap1 !0 0x2521 bitmap1 !0 0x2523 bitmap1 !0 0x2525 comment char_type 4 bitmap1 !0 0x2129 bitmap1 !0 0x212a comment char_type 5 bitmap1 !0 0x213d bitmap1 !0 0x2144 bitmap1 !0 0x2145 comment char_type 6 bitmap1 !0 0x2146 bitmap1 !0 0x2148 bitmap1 !0 0x214a bitmap1 !0 0x214c bitmap1 !0 0x214e bitmap1 !0 0x2150 bitmap1 !0 0x2152 bitmap1 !0 0x2154 bitmap1 !0 0x2156 bitmap1 !0 0x2158 bitmap1 !0 0x215a comment char_type 7 bitmap1 !0 0x2126 bitmap1 !0 0x213e bitmap1 !0 0x2142 bitmap1 !0 0x2143 comment char_type 8 bitmap1 !0 0x213d bitmap1 !0 0x213e bitmap1 !0 0x2142 bitmap1 !0 0x2143 bitmap1 !0 0x2145 bitmap1 !0 0x2147 bitmap1 !0 0x2149 bitmap1 !0 0x214b bitmap1 !0 0x214d bitmap1 !0 0x214f bitmap1 !0 0x2151 bitmap1 !0 0x2153 bitmap1 !0 0x2155 bitmap1 !0 0x2157 bitmap1 !0 0x2159 bitmap1 !0 0x215b comment Rotateed chars bitmap1 !0 0x213c bitmap1 !0 0x2141 bitmap1 !0 0x2144 bitmap1 !0 0x214a bitmap1 !0 0x214b bitmap1 !0 0x214c bitmap1 !0 0x214d bitmap1 !0 0x214e bitmap1 !0 0x214f bitmap1 !0 0x2150 bitmap1 !0 0x2151 bitmap1 !0 0x2152 bitmap1 !0 0x2153 bitmap1 !0 0x2154 bitmap1 !0 0x2155 bitmap1 !0 0x2156 bitmap1 !0 0x2157 bitmap1 !0 0x2158 bitmap1 !0 0x2159 bitmap1 !0 0x215a bitmap1 !0 0x215b bitmap1 !0 0x2161 comment char_type 0 bitmap1 !0 0x3026 bitmap1 !0 0x302a bitmap1 !0 0x3170 bitmap1 !0 0x213b bitmap1 !0 0x2179 bitmap1 !0 0x217a bitmap1 !0 0x217b bitmap1 !0 0x217c bitmap1 !0 0x217d bitmap1 !0 0x217e bitmap1 !0 0x2221 bitmap1 !0 0x2223 bitmap1 !0 0x2224 bitmap1 !0 0x2229 bitmap1 !0 0x2330 bitmap1 !0 0x2331 bitmap1 !0 0x2332 bitmap1 !0 0x2333 bitmap1 !0 0x2341 bitmap1 !0 0x2342 bitmap1 !0 0x2343 bitmap1 !0 0x2361 bitmap1 !0 0x2362 bitmap1 !0 0x2363 bitmap1 !0 0x2422 bitmap1 !0 0x2424 bitmap1 !0 0x2426 bitmap1 !0 0x2428 bitmap1 !0 0x242a bitmap1 !0 0x242b bitmap1 !0 0x242d bitmap1 !0 0x242f bitmap1 !0 0x2431 bitmap1 !0 0x2433 bitmap1 !0 0x2437 bitmap1 !0 0x2438 bitmap1 !0 0x2458 bitmap1 !0 0x2459 bitmap1 !0 0x245a quit vflib3-3.6.14.dfsg/src/Test/tex-1b0000644000175000017500000000047707027605547016041 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vfserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 cmr10.pk -1 1.0 1.0 300 300 open1 cmti10.pk -1 1.0 1.0 300 300 open1 cmss10.pk -1 1.0 1.0 300 300 bitmap1 !0 0x67 bitmap1 !1 0x67 bitmap1 !2 0x67 metric1 !0 0x67 quit vflib3-3.6.14.dfsg/src/Test/tex-1d0000644000175000017500000000071507027605552016032 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vfserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 cmr5.pk -1 1.0 1.0 300 300 open1 cmr6.pk -1 1.0 1.0 300 300 open1 cmr7.pk -1 1.0 1.0 300 300 open1 cmr8.pk -1 1.0 1.2 300 300 open1 cmr10.pk -1 1.0 1.0 300 300 open1 cmr12.pk -1 1.0 1.0 300 300 bitmap1 !0 0x67 bitmap1 !1 0x67 bitmap1 !2 0x67 bitmap1 !3 0x67 bitmap1 !4 0x67 bitmap1 !5 0x67 quit vflib3-3.6.14.dfsg/src/Test/tex-1c0000644000175000017500000000053707027605550016031 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vfserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 cmr10.pk -1 1.0 1.0 300 300 open1 cmr10.pk -1 1.2 1.2 300 300 open1 cmr8.pk -1 1.0 1.0 300 300 open1 cmr8.pk -1 1.2 1.2 300 300 bitmap1 !0 0x67 bitmap1 !1 0x67 bitmap1 !2 0x67 bitmap1 !3 0x67 quit vflib3-3.6.14.dfsg/src/Test/type1-1e0000644000175000017500000000035507027605575016302 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 dcr10.pfb bitmap1 !0 0x67 1.0 1.0 bitmap1 !0 0x67 1.2 1.2 bitmap1 !0 0x67 1.4 1.4 quit vflib3-3.6.14.dfsg/src/Test/type1-1f0000644000175000017500000000044207027605576016301 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vfserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 cmr8.pk -1 1 1 300 300 open1 cmr10.pk -1 1 1 300 300 open1 cmr12.pk -1 1 1 300 300 bitmap1 !0 0x67 bitmap1 !1 0x67 bitmap1 !2 0x67 quit vflib3-3.6.14.dfsg/src/Test/bbx1a0000644000175000017500000000020106633367773015727 0ustar mohuramohuraopen1 f5ajchm3.ttf fontbbx1 !! open1 timR24.pcf fontbbx1 !! open2 f5ajchm3.ttf fontbbx2 !! open2 timR24.pcf fontbbx2 !! quit vflib3-3.6.14.dfsg/src/Test/bbx1b0000644000175000017500000000045006633410372015716 0ustar mohuramohuraopen1 cmr10.pfb fontbbx1 !! open1 cmr10.pfb -1 2 2 fontbbx1 !! open1 cmr10.pk fontbbx1 !! open1 cmr10.pk -1 2 2 fontbbx1 !! open1 cmti10.pk -1 3 3 fontbbx1 !! open2 cmti10.pfb fontbbx2 !! open2 cmti10.pfb -1 2 2 fontbbx2 !! open2 cmti10.pk fontbbx2 !! open2 cmti10.pk fontbbx2 !! quit vflib3-3.6.14.dfsg/src/Test/tex-nd0000644000175000017500000000034006642052262016115 0ustar mohuramohuradebug bitmap 1 open1 cmbx12.pk -1 1.2000 1.2000 bitmap1 !! 0x61 open1 goth10.pk -1 1.4400 1.4400 bitmap1 !! 0x3021 open1 goth10.pk -1 2.0740 2.0740 bitmap1 !! 0x3021 open1 cmr12.pk -1 1.0000 1.0000 bitmap1 !! 0x61 quit vflib3-3.6.14.dfsg/src/Test/bbx1c0000644000175000017500000000027406633403403015720 0ustar mohuramohuraopen1 cmr10.pk fontbbx1 !! fontbbx1 !! 2 2 open1 cmr10.pk 20 fontbbx1 !! fontbbx1 !! 2 2 open2 cmr10.pk fontbbx2 !! fontbbx2 !! 2 2 open2 cmr10.pk 72 fontbbx2 !! fontbbx2 !! 2 2 quit vflib3-3.6.14.dfsg/src/Test/prof10000644000175000017500000000416506637664412015770 0ustar mohuramohuraopen1 fjminmaa.pk open1 fjminsaa.pk open1 fjhsmmaa.pk open1 fjhsmraa.pk open1 fjhsmvaa.pk open1 fjgotmaa.pk open1 fjgotpaa.pk open1 fjgotsaa.pk open1 fjgotxaa.pk open1 fjhsgpaa.pk open1 fjhsgsaa.pk open1 fjhsgvaa.pk open1 fjmrgmaa.pk open1 fjmrgpaa.pk open1 fjmrgsaa.pk open1 fjmrgxaa.pk open1 fjhrgoaa.pk open1 fjashxaa.pk open1 fjkykmaa.pk open1 fjkykpaa.pk open1 fjfdkmaa.pk open1 fjgykmaa.pk open1 fjreipaa.pk open1 fjkedxaa.pk open1 fjhigxaa.pk open1 fjtrepaa.pk open1 fjtkosaa.pk open1 fjcpemaa.pk open1 fjhikmaa.pk open1 fjmarpaa.pk open1 fjimapaa.pk open1 fjimbmaa.pk open1 fjimcraa.pk open1 fjimdsaa.pk open1 fjimevaa.pk open1 dfhsmmaa.pk open1 dfhsmpaa.pk open1 dfhsmsaa.pk open1 dfhsmvaa.pk open1 dfminzaa.pk open1 dfhsgmaa.pk open1 dfhsgpaa.pk open1 dfhsgsaa.pk open1 dfhsgvaa.pk open1 dfgotxaa.pk open1 dfgotzaa.pk open1 dfhrgoaa.pk open1 dfmrgmaa.pk open1 dfmrgpaa.pk open1 dfmrgsaa.pk open1 dfgyopaa.pk open1 dfkaimaa.pk open1 dfkaipaa.pk open1 dfkairaa.pk open1 dfkaisaa.pk open1 dfleipaa.pk open1 dfktrxaa.pk open1 dfpopmaa.pk open1 dfpoppaa.pk open1 dfpopraa.pk open1 dfpopvaa.pk open1 dfmrmpaa.pk open1 dfmrmmaa.pk open1 dfmrmsaa.pk open1 dfmrmvaa.pk open1 dfsokmaa.pk open1 dfsgypaa.pk open1 dfgihsaa.pk open1 dfkykmaa.pk open1 dfkykoaa.pk open1 dftlepaa.pk open1 dftlesaa.pk open1 dftlevaa.pk open1 dfrulpaa.pk open1 dfrulsaa.pk open1 dfsumzaa.pk open1 dfkoioaa.pk open1 dfsogpaa.pk open1 dfsogsaa.pk open1 dfsogvaa.pk open1 rcgyopaa.pk open1 rckykmaa.pk open1 rckaipaa.pk open1 rckkapaa.pk open1 rchkgpaa.pk open1 rchkfsaa.pk open1 rctfkpaa.pk open1 rctrepaa.pk open1 rchagmaa.pk open1 rchagpaa.pk open1 rchagsaa.pk open1 rchagvaa.pk open1 rcckssaa.pk open1 rcspnmaa.pk open1 rchkpmaa.pk open1 rcppkvaa.pk open1 rcppmvaa.pk open1 rcaguxaa.pk open1 rcashxaa.pk open1 rcapfxaa.pk open1 rcaplxaa.pk open1 rcapsxaa.pk open1 rckedxaa.pk open1 rcaegxaa.pk open1 rcadhxaa.pk open1 rchigxaa.pk open1 rcakgxaa.pk open1 rccremaa.pk open1 rccbkpaa.pk open1 rcamgvaa.pk open1 rcaigxaa.pk open1 rcaisxaa.pk open1 rctsexaa.pk open1 rchmnmaa.pk open1 rchmnvaa.pk open1 rchgopaa.pk open1 rchgovaa.pk open1 rchglvaa.pk open1 rchgsvaa.pk open1 rchrgoaa.pk quit vflib3-3.6.14.dfsg/src/Test/tex0000644000175000017500000000042306642052353015521 0ustar mohuramohuradebug bitmap 1 open1 goth10.pk -1 2.0740 2.0740 bitmap1 !! 0x3021 open1 goth10.pk -1 1.4400 1.4400 bitmap1 !! 0x3021 open1 cmbx12.pk -1 1.2000 1.2000 bitmap1 !! 0x61 open1 min10.pk -1 1.2000 1.2000 bitmap1 !! 0x3021 open1 cmr12.pk -1 1.0000 1.0000 bitmap1 !! 0x61 quit vflib3-3.6.14.dfsg/src/Test/ekanji-1a0000644000175000017500000000106707023333514016461 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 ekan0010 open1 ekan0010 -1 2 2 open1 ekan0010 -1 1 2 open1 ekan0010 -1 2 1 bitmap1 !0 0xe00 bitmap1 !1 0xe00 bitmap1 !2 0xe00 bitmap1 !3 0xe00 bitmap1 !0 0xe00 1.2 1.2 bitmap1 !0 0xe00 1.44 1.44 bitmap1 !0 0xe00 1.00 2.00 bitmap1 !0 0xe00 2.00 1.00 bitmap1 !0 0xe00 2.00 2.00 bitmap1 !1 0xe00 1.2 1.2 bitmap1 !1 0xe00 1.44 1.44 bitmap1 !1 0xe00 1.00 2.00 bitmap1 !1 0xe00 2.00 1.00 bitmap1 !1 0xe00 2.00 2.00 quit vflib3-3.6.14.dfsg/src/Test/ekanji-2a0000644000175000017500000000106707027605333016467 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open2 ekan0010 open2 ekan0010 -1 2 2 open2 ekan0010 -1 1 2 open2 ekan0010 -1 2 1 bitmap2 !0 0xe00 bitmap2 !1 0xe00 bitmap2 !2 0xe00 bitmap2 !3 0xe00 bitmap2 !0 0xe00 1.2 1.2 bitmap2 !0 0xe00 1.44 1.44 bitmap2 !0 0xe00 1.00 2.00 bitmap2 !0 0xe00 2.00 1.00 bitmap2 !0 0xe00 2.00 2.00 bitmap2 !1 0xe00 1.2 1.2 bitmap2 !1 0xe00 1.44 1.44 bitmap2 !1 0xe00 1.00 2.00 bitmap2 !1 0xe00 2.00 1.00 bitmap2 !1 0xe00 2.00 2.00 quit vflib3-3.6.14.dfsg/src/Test/ekanji-1b0000644000175000017500000000047507023333507016466 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 ekan0010 16 open1 ekan0010 16 2 2 bitmap1 !0 0xe00 bitmap1 !0 0xe00 1.5 1.5 bitmap1 !0 0xe00 2.0 2.0 bitmap1 !1 0xe00 bitmap1 !1 0xe00 1.5 1.5 bitmap1 !1 0xe00 2.0 2.0 vflib3-3.6.14.dfsg/src/Test/ekanji-2b0000644000175000017500000000050107023333571016456 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open2 ekan0010 16 open2 ekan0010 16 2 2 bitmap2 !0 0xe00 bitmap2 !0 0xe00 1.5 1.5 bitmap2 !0 0xe00 2.0 2.0 bitmap2 !1 0xe00 bitmap2 !1 0xe00 1.5 1.5 bitmap2 !1 0xe00 2.0 2.0 quit vflib3-3.6.14.dfsg/src/Test/jtex-1h0000644000175000017500000000151407027612417016204 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vflserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 min10.pk 10 1.00 1.00 -1 -1 open1 jtex-min 10 0.95 0.95 -1 -1 bitmap1 !0 0x467c 1 1 bitmap1 !0 0x467c 1 3 bitmap1 !1 0x467c 1 1 bitmap1 !1 0x467c 1 3 bitmap1 !0 0x4b5c 1 1 bitmap1 !0 0x4b5c 1 3 bitmap1 !1 0x4b5c 1 1 bitmap1 !1 0x4b5c 1 3 bitmap1 !0 0x306c 1 1 bitmap1 !0 0x306c 1 3 bitmap1 !1 0x306c 1 1 bitmap1 !1 0x306c 1 3 bitmap1 !0 0x244e 1 1 bitmap1 !0 0x244e 1 3 bitmap1 !1 0x244e 1 1 bitmap1 !1 0x244e 1 3 bitmap1 !0 0x456d 1 1 bitmap1 !0 0x456d 1 3 bitmap1 !1 0x456d 1 1 bitmap1 !1 0x456d 1 3 bitmap1 !0 0x4240 1 1 bitmap1 !0 0x4240 1 3 bitmap1 !1 0x4240 1 1 bitmap1 !1 0x4240 1 3 bitmap1 !0 0x4f3a 1 1 bitmap1 !0 0x4f3a 1 3 bitmap1 !1 0x4f3a 1 1 bitmap1 !1 0x4f3a 1 3 quit vflib3-3.6.14.dfsg/src/Test/type1-1g0000644000175000017500000000042407030067375016273 0ustar mohuramohuraCOMMENT VFlib 3.6 COMMENT Test file for `vfserver' program. by H.Kakugawa COMMENT % ./vflserver -v VFLIBCAP < THIS-FILE debug bitmap open1 cmr10.pk -1 1 1 300 300 bitmap1 !0 0x67 bitmap1 !0 0x67 2 1 bitmap1 !0 0x67 1 2 bitmap1 !0 0x67 -1 1 bitmap1 !0 0x67 1 -1 quit vflib3-3.6.14.dfsg/src/VFlib.c0000644000175000017500000006674107363250265015247 0ustar mohuramohura/* * VFlib.c - a main file for VFlib * * Programmed by Hirotsugu Kakugawa * * 5 Mar 1997 VFlib 3.1.4 * 20 Mar 1997 VFlib 3.1.5 * 22 Mar 1997 VFlib 3.2 * 1 Oct 1997 VFlib 3.2.6 Changed encoding & charset conversion module. * 4 Aug 1997 VFlib 3.3 Changed API. * 9 Jan 1998 VFlib 3.4 Changed vflibcap syntax. * 17 Sep 1999 VFlib 3.6 * 18 Oct 2001 Fixed memory leak. */ /* * Copyright (C) 1996-2001 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include "VFlib-3_6.h" #include "VFsys.h" #include "consts.h" #include "vflpaths.h" #include "params.h" #include "vflibcap.h" #include "str.h" #include "sexp.h" #include "metric.h" #include "bitmap.h" #include "cache.h" #include "ccv.h" Public int vf_error; Private int vf_initialized = 0; Private int open_nesting = 0; Private VF_TABLE font_class_table = NULL; Private VF_TABLE font_id_table = NULL; struct s_font_class { char* class_name; int (*driver_entry)(VF_FONT,char*,char*,int,void*); }; typedef struct s_font_class *FONT_CLASS; Glocal int vf_dbg_font_open = 0; Glocal int vf_dbg_font_search = 0; Glocal int vf_dbg_kpathsea = 0; Glocal int vf_dbg_vfcap = 0; Glocal int vf_dbg_parameters = 0; Glocal int vf_dbg_ccv = 0; Glocal int vf_dbg_ccv_map = 0; Glocal int vf_dbg_log = 0; Glocal FILE*vf_dbg_log_fp = NULL; #define DEBUG_LOG_FILE "__dbg.tmp" struct s_open_arg_pack1 { double dpi_x, dpi_y; double point_size; double mag_x, mag_y; }; struct s_open_arg_pack2 { int pixel_size; double mag_x, mag_y; }; Private int open_font(char *font_name, char *requested_font_class, struct s_open_arg_pack1 *arg_mode1, struct s_open_arg_pack2 *arg_mode2); Private int do_open_font(char *font_class_spec, char* font_name, int implicit, int mode, char *cache_key, VF_FONT font); Private VF_FONT id2font(int); extern int vf_drv_init(void); #define STRPARAM(s) if ((s) != NULL){ fprintf(vf_dbg_log_fp, "\"%s\"", s); \ } else { fprintf(vf_dbg_log_fp, "NULL"); } /** ** VF_Init **/ Public int VF_Init(char *vflibcap_path, char *parameters) { if (vf_initialized != 0) return 0; vf_initialized = 1; vf_error = 0; open_nesting = 0; /* Check Environment Variables for Debugging */ if (getenv(VF_ENV_DEBUG_FONT_OPEN) != NULL) vf_dbg_font_open = 1; if (getenv(VF_ENV_DEBUG_FONT_SEARCH) != NULL) vf_dbg_font_search = 1; if (getenv(VF_ENV_DEBUG_KPATHSEA) != NULL) vf_dbg_kpathsea = 1; if (getenv(VF_ENV_DEBUG_VFLIBCAP) != NULL) vf_dbg_vfcap = 1; if (getenv(VF_ENV_DEBUG_PARAMETERS) != NULL) vf_dbg_parameters = 1; if (getenv(VF_ENV_DEBUG_CCV) != NULL) vf_dbg_ccv = 1; if (getenv(VF_ENV_DEBUG_CCV_MAPPING) != NULL) vf_dbg_ccv_map = 1; if (getenv(VF_ENV_DEBUG_LOG) != NULL){ if ((vf_dbg_log = atoi(getenv(VF_ENV_DEBUG_LOG))) <= 0) vf_dbg_log = 1; if (vf_dbg_log > 1) vf_dbg_log_fp = fopen(DEBUG_LOG_FILE, "w"); else vf_dbg_log_fp = stdout; } if (vf_dbg_log > 0){ fprintf(vf_dbg_log_fp, "VF_Init("); STRPARAM(vflibcap_path); fprintf(vf_dbg_log_fp, ", "); STRPARAM(parameters); fprintf(vf_dbg_log_fp, ");\n"); } /* Initialize File Stream Manager */ if (vf_fm_init() < 0) return -1; /* Initialize 'vflibcap' Database System */ if (vf_cap_init(vflibcap_path) < 0) return -1; /* set parameters (variable values for vflibcap) */ if (vf_params_init(parameters) < 0) return -1; /* Initialize Code Conversion Module */ vf_ccv_init(); /* Create a Table for Opened Font Table */ if (vf_defaults_init() < 0) return -1; /* Create a Table for Opened Font Table */ if ((font_id_table = vf_table_create()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } /* Create a Table for Font Drivers */ if ((font_class_table = vf_table_create()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } /* Call Initializer of Each Font Module (Install of Font Drivers) */ vf_drv_init(); return 0; } /** ** VF_Version **/ Public char* VF_GetVersion(void) { return VFLIB_VERSION; } /** ** VF_ClearError **/ Public void VF_ClearError(void) { vf_error = 0; } /** ** VF_InstallFontDriver **/ Public int VF_InstallFontDriver(char *class_name, int(*driver_entry)(VF_FONT,char*,char*,int,void*)) { int id; FONT_CLASS fclass; vf_error = 0; #if 0 printf("** New font class: %s\n", class_name); #endif /* Check if a driver of the same name is installed or not. */ if ((font_class_table->get_obj_by_key)(font_class_table, class_name, strlen(class_name)+1) != NULL){ vf_error = VF_ERR_USED_CLASS_NAME; return -1; } /* Create font class object. */ ALLOC_IF_ERR(fclass, struct s_font_class){ vf_error = VF_ERR_NO_MEMORY; return -1; } if ((fclass->class_name = vf_strdup(class_name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; vf_free(fclass); return -1; } fclass->driver_entry = driver_entry; /* Install font class object to font driver table. */ if ((id = (font_class_table->put)(font_class_table, fclass, class_name, strlen(class_name)+1)) < 0){ vf_error = VF_ERR_NO_MEMORY; vf_free(fclass->class_name); vf_free(fclass); return -1; } return id; } /** ** VF_FontDriverList **/ Public char** VF_FontDriverList(void) { int n, i, j; char **drv_list; FONT_CLASS fclass; vf_error = 0; /* Obtain the number of installed font drivers. */ n = (font_class_table->get_nelements)(font_class_table); ALLOCN_IF_ERR(drv_list, char*, n+1){ vf_error = VF_ERR_NO_MEMORY; return NULL; } j = 0; for (i = 0; j < n; i++){ fclass = (FONT_CLASS)(font_class_table->get_obj_by_id)(font_class_table, i); if (fclass == NULL) continue; if ((drv_list[j] = vf_strdup(fclass->class_name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; for (j--; j >= 0; j--) vf_free(drv_list[j]); vf_free(drv_list); return NULL; } j++; } drv_list[j] = NULL; return drv_list; } /** ** VF_OpenFont1 **/ Public int VF_OpenFont1(char *font_name, double dpi_x, double dpi_y, double point_size, double mag_x, double mag_y) { if (vf_dbg_font_open == 1){ printf(">>Font Open: VF_OpenFont1(%s, %.2f, %.2f, %.2f, %.3f, %.3f);\n", font_name, dpi_x, dpi_y, point_size, mag_x, mag_y); } if (vf_dbg_log > 0){ if (vf_dbg_log > 1) fprintf(vf_dbg_log_fp, "VF_OpenFont1(\"%s\", %f, %f, %f, %f, %f);\n", font_name, dpi_x, dpi_y, point_size, mag_x, mag_y); else fprintf(vf_dbg_log_fp, "VF_OpenFont1(\"%s\", %f, %f, %f, %f, %f);\n", font_name, dpi_x, dpi_y, point_size, mag_x, mag_y); } return vf_openfont1(font_name, NULL, dpi_x, dpi_y, point_size, mag_x, mag_y); } Glocal int vf_openfont1(char *font_name, char *requested_font_class, double dpi_x, double dpi_y, double point_size, double mag_x, double mag_y) { struct s_open_arg_pack1 arg1; vf_error = 0; /* Pack argments */ arg1.dpi_x = dpi_x; arg1.dpi_y = dpi_y; arg1.point_size = point_size; arg1.mag_x = mag_x; arg1.mag_y = mag_y; return open_font(font_name, requested_font_class, &arg1, NULL); } /** ** VF_OpenFont2 **/ Public int VF_OpenFont2(char *font_name, int pixel_size, double mag_x, double mag_y) { if (vf_dbg_font_open == 1){ printf(">>Font Open: VF_OpenFont2(\"%s\", %d, %.3f, %.3f);\n", font_name, pixel_size, mag_x, mag_y); } if (vf_dbg_log > 0){ fprintf(vf_dbg_log_fp, "VF_OpenFont2(\"%s\", %d, %f, %f);\n", font_name, pixel_size, mag_x, mag_y); } return vf_openfont2(font_name, NULL, pixel_size, mag_x, mag_y); } Glocal int vf_openfont2(char *font_name, char *requested_font_class, int pixel_size, double mag_x, double mag_y) { struct s_open_arg_pack2 arg2; vf_error = 0; /* Pack argments */ arg2.pixel_size = pixel_size; arg2.mag_x = mag_x; arg2.mag_y = mag_y; return open_font(font_name, requested_font_class, NULL, &arg2); } Private int open_font(char *font_name, char *requested_font_class, struct s_open_arg_pack1 *arg_mode1, struct s_open_arg_pack2 *arg_mode2) { VF_FONT font = NULL; int font_id, mode; char *class, *ext, key[1024]; SEXP_ALIST exh; SEXP_LIST ife, pair; font = NULL; /* Check nesting of font opens. */ open_nesting++; if (open_nesting > VF_MAX_OPEN_NESTING){ fprintf(stderr, "VFlib: too many nesting levels for font open.\n"); vf_error = VF_ERR_OPEN_NESTING; goto Error; } /* Check if the same font is opened. */ if (arg_mode1 != NULL){ /* mode 1: high-resolution oriented mode */ mode = 1; sprintf(key, "<%s,%d,%s,%d,%d,%d,%d,%d>", (requested_font_class != NULL) ? requested_font_class : "_", mode, font_name, toint(arg_mode1->dpi_x*100), toint(arg_mode1->dpi_y*100), toint(arg_mode1->point_size*100), toint(arg_mode1->mag_x*100), toint(arg_mode1->mag_y*100)); } else if (arg_mode2 != NULL){ /* mode 2: low-resolution oriented mode */ mode = 2; sprintf(key, "<%s,%d,%s,%d,%d,%d>", (requested_font_class != NULL) ? requested_font_class : "_", mode, font_name, arg_mode2->pixel_size, toint(arg_mode2->mag_x*100), toint(arg_mode2->mag_y*100)); } else { fprintf(stderr, "VFlib internal error: Cannot happen in %s\n", "open_font()"); abort(); } font_id = (font_id_table->get_id_by_key)(font_id_table, key, strlen(key)+1); if (font_id >= 0){ /* Share the same font object. */ (font_id_table->link_by_id)(font_id_table, font_id); goto Found; } /* Make a skeleton font object. */ ALLOC_IF_ERR(font, struct vf_s_font){ vf_error = VF_ERR_NO_MEMORY; goto Error; } if (mode == 1){ font->font_name = NULL; font->mode = 1; font->point_size = arg_mode1->point_size; font->pixel_size = -1; font->mag_x = arg_mode1->mag_x; font->mag_y = arg_mode1->mag_y; font->dpi_x = arg_mode1->dpi_x; font->dpi_y = arg_mode1->dpi_y; } else if (mode == 2){ font->mode = 2; font->point_size = -1; font->pixel_size = arg_mode2->pixel_size; font->mag_x = arg_mode2->mag_x; font->mag_y = arg_mode2->mag_y; font->dpi_x = -1; font->dpi_y = -1; } else { fprintf(stderr, "VFlib internal error: Cannot happen in %s\n", "open_font()"); abort(); } font->font_type = 0; font->get_metric1 = NULL; font->get_metric2 = NULL; font->get_fontbbx1 = NULL; font->get_fontbbx2 = NULL; font->get_bitmap1 = NULL; font->get_bitmap2 = NULL; font->get_outline = NULL; font->get_font_prop = NULL; font->query_font_type = NULL; font->close = NULL; /* If 'requested_font_class' is given, we open a font by calling the corresponding font driver directly. */ if (requested_font_class != NULL){ /* try to open as an explicit font */ if ((font_id = do_open_font(requested_font_class, font_name, 0, mode, key, font)) >= 0) goto Found; if (vf_error != VF_ERR_NO_FONT_ENTRY) goto Error; /* try to open as an implicit font */ vf_error = 0; if ((font_id = do_open_font(requested_font_class, font_name, 1, mode, key, font)) >= 0) goto Found; goto Error; } /* Try to open as an explicit font. */ if (vf_dbg_font_open == 1) printf(">>Font Open: Try to open an explicit font %s.\n", font_name); font_id = do_open_font(NULL, font_name, 0, mode, key, font); if (font_id >= 0) /* Opened as an explicit font. */ goto Found; /* If it is not an explicit font, clear error code and try to open as an implicit font. */ if (vf_error != VF_ERR_NO_FONT_ENTRY) goto Error; /* Search an implicit font. */ if (vf_dbg_font_open == 1) printf(">>Font Open: Try to open an implicit font %s.\n", font_name); /* First, try to make use of extension hint. */ for (exh = vf_extension_hints; vf_sexp_consp(exh); exh = vf_sexp_cdr(exh)){ pair = vf_sexp_car(exh); if (!vf_sexp_consp(pair) || ((ext = vf_sexp_get_cstring(vf_sexp_car(pair))) == NULL) || ((class = vf_sexp_get_cstring(vf_sexp_cadr(pair))) == NULL)) continue; if (strlen(font_name) > strlen(ext)){ if (strcmp(ext, &font_name[strlen(font_name)-strlen(ext)]) == 0){ if (vf_dbg_font_open == 1) printf(">>Font Open: Try font class '%s' by hint '%s'\n", class, ext); vf_error = 0; font_id = do_open_font(class, font_name, 1, mode, key, font); if (font_id >= 0) /* Font is found. */ goto Found; } } } if (vf_dbg_font_open == 1) printf(">>Extension hint does not work. Try other classes.\n"); /* Next, try other implict classes not in extension hints. */ ife = NULL; for (ife = vf_implicit_font_classes; vf_sexp_consp(ife); ife = vf_sexp_cdr(ife)){ for (exh = vf_extension_hints; vf_sexp_consp(exh); exh = vf_sexp_cdr(exh)){ ext = vf_sexp_get_cstring(vf_sexp_caar(exh)); if (strcmp(ext, vf_sexp_get_cstring(vf_sexp_car(ife))) == 0) break; /* Skip this font class since it is checked already. */ } if (vf_sexp_consp(exh)) continue; if (vf_dbg_font_open == 1) printf(">> ==> Trying %s\n", vf_sexp_get_cstring(vf_sexp_car(ife))); vf_error = 0; font_id = do_open_font(vf_sexp_get_cstring(vf_sexp_car(ife)), font_name, 1, mode, key, font); if (font_id >= 0) /* Font is found. */ goto Found; } /* The font is not opened as an implicit font. Open error. */ vf_error = VF_ERR_NO_FONT_IMP; Error: if (font != NULL) vf_free(font); if (vf_dbg_font_open == 1) printf(">>Font Open Failure: %s\n", font_name); open_nesting--; return -1; /* The font is opened. */ Found: vf_error = 0; if (vf_dbg_font_open == 1) printf(">>Font Open Success: %s fid=%d\n", font_name, font_id); if ((font != NULL) && (font->font_name == NULL)){ font->font_name = vf_strdup(font_name); } open_nesting--; return font_id; } Private int do_open_font(char *font_class_spec, char *font_name, int implicit, int mode, char *cache_key, VF_FONT font) { int font_id, font_class_id; char *class_name; SEXP entry, s; FONT_CLASS fclass; /* Obtain font class name. */ if (implicit == 1){ /* open for implicit font. */ entry = NULL; if ((class_name = font_class_spec) == NULL){ vf_error = VF_ERR_CLASS_UNKNOWN; goto Error; } } else { /* open for explicit font. */ if ((entry = vf_cap_GetFontEntry(font_name)) == 0){ vf_error = VF_ERR_NO_FONT_ENTRY; goto Error; } class_name = NULL; for (s = vf_sexp_cddr(entry); vf_sexp_consp(s); s = vf_sexp_cdr(s)){ if (strcmp(vf_sexp_get_cstring(vf_sexp_caar(s)), VF_CAPE_FONT_CLASS) == 0){ if (vf_sexp_stringp(vf_sexp_car(vf_sexp_cdar(s)))) class_name = vf_sexp_get_cstring(vf_sexp_car(vf_sexp_cdar(s))); break; } } if (class_name == NULL){ vf_error = VF_ERR_CLASS_UNKNOWN; goto Error; } if ((font_class_spec != NULL) && (strcmp(font_class_spec, class_name) != 0)){ /* class name mismatch. */ if (vf_dbg_font_open == 1) printf(">>%s: fontname: %s requested class is %s but %s\n", "Font Open: Font class name mismatch", font_name, font_class_spec, class_name); vf_error = VF_ERR_NO_FONT_ENTRY; goto Error; } } /* Get font class object for the font class. */ if ((fclass = (font_class_table->get_obj_by_key)(font_class_table, class_name, strlen(class_name)+1)) == NULL){ if (vf_dbg_font_open == 1) printf(">>Font Open: Unknown font class '%s'\n", class_name); vf_error = VF_ERR_NO_FONT_CLASS; goto Error; } if (vf_dbg_font_open == 1) printf(">>Font Open: entry=%s class=%s\n", font_name, class_name); /* Get font class object id. */ if ((font_class_id = (font_class_table->get_id_by_key)(font_class_table, class_name, strlen(class_name)+1)) < 0){ vf_error = VF_ERR_NO_FONT_CLASS; goto Error; } font->font_class = font_class_id; /* Call font open procedure in a font driver. For an implicit font, the driver searches a font. */ if ((fclass->driver_entry)(font, class_name, font_name, implicit, entry) < 0){ goto Error; } /* If a font is opened, install the font object. */ if ((font_id = (font_id_table->put)(font_id_table, font, cache_key, strlen(cache_key)+1)) < 0){ vf_error = VF_ERR_NO_MEMORY; goto Error; } /* Font is Opened. */ if (entry != NULL) vf_sexp_free(&entry); return font_id; Error: if (entry != NULL) vf_sexp_free(&entry); return -1; } /** ** VF_CloseFont **/ Public int VF_CloseFont(int font_id) { VF_FONT font; int v; vf_error = 0; if (vf_dbg_log > 0){ fprintf(vf_dbg_log_fp, "VF_CloseFont(%d);\n", font_id); } /* Obtain a font object for given font id. */ if ((font = id2font(font_id)) == NULL) return -1; /* Discard cache */ (void)id2font(-1); /* Unlink the font object. If link count is not zero, close is deferred. */ if ((font_id_table->unlink_by_id)(font_id_table, font_id) >= 1) return 0; /* No one use the font object. Do close it. */ v = (font->close)(font); vf_free(font->font_name); vf_free(font); return v; } /** ** VF_GetMetric1 **/ Public VF_METRIC1 VF_GetMetric1(int font_id, long code_point, VF_METRIC1 metric1, double mag_x, double mag_y) { VF_FONT font; VF_METRIC1 met1; int val; vf_error = 0; /* Obtain a font object for given font id. */ if ((font = id2font(font_id)) == NULL) return NULL; /* Check if this font is opened as mode 1. */ if (font->mode != 1){ vf_error = VF_ERR_ILL_MODE; return NULL; } /* Check if this operation is supported by a font driver. */ if (font->get_metric1 == NULL){ vf_error = VF_ERR_NOT_SUPPORTED_OP; return NULL; } /* Allocate metric object if not given. */ if ((met1 = metric1) == NULL){ if ((met1 = vf_alloc_metric1()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } } /* Call a font driver's procedure. */ val = (font->get_metric1)(font, code_point, met1, mag_x, mag_y); if (val < 0){ if (metric1 == NULL) vf_free(met1); return NULL; } return met1; } /** ** VF_GetMetric2 **/ Public VF_METRIC2 VF_GetMetric2(int font_id, long code_point, VF_METRIC2 metric2, double mag_x, double mag_y) { VF_FONT font; VF_METRIC2 met2; int val; vf_error = 0; /* Obtain a font object for given font id. */ if ((font = id2font(font_id)) == NULL) return NULL; /* Check if this font is opened as mode 2. */ if (font->mode != 2){ vf_error = VF_ERR_ILL_MODE; return NULL; } /* Check if this operation is supported by a font driver. */ if (font->get_metric1 == NULL){ vf_error = VF_ERR_NOT_SUPPORTED_OP; return NULL; } /* Allocate metric object if not given. */ if ((met2 = metric2) == NULL){ if ((met2 = vf_alloc_metric2()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } } /* Call a font driver's procedure. */ val = (font->get_metric2)(font, code_point, met2, mag_x, mag_y); if (val < 0){ if (metric2 == NULL) vf_free(met2); return NULL; } return met2; } /** ** VF_GetFontBoundingBox1 **/ Public int VF_GetFontBoundingBox1(int font_id, double mag_x, double mag_y, double *width_p, double *height_p, double *xoff_p, double *yoff_p) { VF_FONT font; double d1, d2, d3, d4; vf_error = 0; /* Obtain a font object for given font id. */ if ((font = id2font(font_id)) == NULL) return -1; /* Check if this font is opened as mode 1. */ if (font->mode != 1){ vf_error = VF_ERR_ILL_MODE; return -1; } /* Check if this operation is supported by a font driver. */ if (font->get_fontbbx1 == NULL){ vf_error = VF_ERR_NOT_SUPPORTED_OP; return -1; } if (width_p == NULL) width_p = &d1; if (height_p == NULL) height_p = &d2; if (xoff_p == NULL) xoff_p = &d3; if (yoff_p == NULL) yoff_p = &d4; *width_p = *height_p = *xoff_p = *yoff_p = 0; /* Call a font driver's procedure. */ return (font->get_fontbbx1)(font, mag_x, mag_y, width_p, height_p, xoff_p, yoff_p); } /** ** VF_GetFontBoundingBox2 **/ Public int VF_GetFontBoundingBox2(int font_id, double mag_x, double mag_y, int *width_p, int *height_p, int *xoff_p, int *yoff_p) { VF_FONT font; int d1, d2, d3, d4; vf_error = 0; /* Obtain a font object for given font id. */ if ((font = id2font(font_id)) == NULL) return -1; /* Check if this font is opened as mode 2. */ if (font->mode != 2){ vf_error = VF_ERR_ILL_MODE; return -1; } /* Check if this operation is supported by a font driver. */ if (font->get_fontbbx2 == NULL){ vf_error = VF_ERR_NOT_SUPPORTED_OP; return -1; } if (width_p == NULL) width_p = &d1; if (height_p == NULL) height_p = &d2; if (xoff_p == NULL) xoff_p = &d3; if (yoff_p == NULL) yoff_p = &d4; *width_p = *height_p = *xoff_p = *yoff_p = 0; /* Call a font driver's procedure. */ return (font->get_fontbbx2)(font, mag_x, mag_y, width_p, height_p, xoff_p, yoff_p); } /** ** VF_GetBitmap1 **/ Public VF_BITMAP VF_GetBitmap1(int font_id, long code_point, double mag_x, double mag_y) { VF_FONT font; vf_error = 0; if (vf_dbg_log > 0){ if (vf_dbg_log > 1) fprintf(vf_dbg_log_fp, "VF_DumpBitmap(VF_GetBitmap1(%d, 0x%lx, %f, %f));\n", font_id, code_point, mag_x, mag_y); else fprintf(vf_dbg_log_fp, "VF_GetBitmap1(%d, 0x%lx, %f, %f);\n", font_id, code_point, mag_x, mag_y); } /* Obtain a font object for given font id. */ if ((font = id2font(font_id)) == NULL) return NULL; /* Check if this font is opened as mode 1. */ if (font->mode != 1){ vf_error = VF_ERR_ILL_MODE; return NULL; } /* Check if this operation is supported by a font driver. */ if (font->get_bitmap1 == NULL){ vf_error = VF_ERR_NOT_SUPPORTED_OP; return NULL; } /* Call a font driver's procedure. */ return (font->get_bitmap1)(font, code_point, mag_x, mag_y); } /** ** VF_GetBitmap2 **/ Public VF_BITMAP VF_GetBitmap2(int font_id, long code_point, double mag_x, double mag_y) { VF_FONT font; vf_error = 0; if (vf_dbg_log > 0){ if (vf_dbg_log > 1) fprintf(vf_dbg_log_fp, "VF_DumpBitmap(VF_GetBitmap2(%d, 0x%lx, %f, %f));\n", font_id, code_point, mag_x, mag_y); else fprintf(vf_dbg_log_fp, "VF_GetBitmap2(%d, 0x%lx, %f, %f);\n", font_id, code_point, mag_x, mag_y); } /* Obtain a font object for given font id. */ if ((font = id2font(font_id)) == NULL) return NULL; /* Check if this font is opened as mode 2. */ if (font->mode != 2){ vf_error = VF_ERR_ILL_MODE; return NULL; } /* Check if this operation is supported by a font driver. */ if (font->get_bitmap2 == NULL){ vf_error = VF_ERR_NOT_SUPPORTED_OP; return NULL; } /* Call a font driver's procedure. */ return (font->get_bitmap2)(font, code_point, mag_x, mag_y); } /** ** VF_GetOutline **/ Public VF_OUTLINE VF_GetOutline(int font_id, long code_point, double mag_x, double mag_y) { VF_FONT font; vf_error = 0; /* Obtain a font object for given font id. */ if ((font = id2font(font_id)) == NULL) return NULL; /* Check if this font is opened as mode 1. */ if (font->mode != 1){ vf_error = VF_ERR_ILL_MODE; return NULL; } /* Check if this operation is supported by a font driver. */ if (font->get_outline == NULL){ vf_error = VF_ERR_NOT_SUPPORTED_OP; return NULL; } /* Call a font driver's procedure. */ return (font->get_outline)(font, code_point, mag_x, mag_y); } /** ** VF_GetFontProp **/ Public char* VF_GetFontProp(int font_id, char *prop_name) { VF_FONT font; vf_error = 0; /* Obtain a font object for given font id. */ if ((font = id2font(font_id)) == NULL) return NULL; /* Check if this operation is supported by a font driver. */ if (font->get_font_prop == NULL){ vf_error = VF_ERR_NOT_SUPPORTED_OP; return NULL; } /* Call a font driver's procedure. */ return (font->get_font_prop)(font, prop_name); } /** ** VF_QueryFontType **/ Public int VF_QueryFontType(int font_id, long code_point) { VF_FONT font; vf_error = 0; /* Obtain a font object for given font id. */ if ((font = id2font(font_id)) == NULL) return -1; switch (font->font_type){ case VF_FONT_TYPE_BITMAP: case VF_FONT_TYPE_OUTLINE: return font->font_type; default: case VF_FONT_TYPE_UNDEF: /* Check if this operation is supported by a font driver. */ if (font->query_font_type == NULL){ vf_error = VF_ERR_NOT_SUPPORTED_OP; return -1; } /* Call a font driver's procedure. */ return (font->query_font_type)(font, code_point); } return -1; } /* font ID ==> font obj */ Private VF_FONT id2font(int font_id) { VF_FONT font; static VF_FONT last_font = NULL; /* 1st cache */ static int last_font_id = -1; if (font_id < 0){ last_font = NULL; last_font_id = -1; return NULL; } if ((font_id == last_font_id) && (last_font != NULL) && (last_font_id >= 0)){ /* 1st cache hits. */ font = last_font; } else { /* use 2nd cache. */ if ((font = (font_id_table->get_obj_by_id)(font_id_table, font_id)) == NULL){ vf_error = VF_ERR_ILL_FONTID; goto Error; } /* reload 1st cache. */ last_font = font; last_font_id = font_id; } return font; Error: /* discard 1st cache. */ last_font = NULL; last_font_id = -1; return NULL; } /* For Debugging Purpose Only */ Public void VF_DumpFontTable(void) { VF_FONT font; FONT_CLASS fc; int nfonts, r, i; nfonts = (font_id_table->get_nelements)(font_id_table); for (i = 0, r = nfonts; r > 0; i++){ font = (font_id_table->get_obj_by_id)(font_id_table, i); if (font == NULL) continue; --r; fc = (FONT_CLASS)(font_class_table->get_obj_by_id)(font_class_table, font->font_class); printf("#% 3d: \"%s\"\n", i, font->font_name); printf(" font_class: %s, mode: %d\n", fc->class_name, font->mode); if (font->mode == 1) printf(" point size: %.3f, dpi_x: %.3f, dpi_y: %.3f\n", font->point_size, font->dpi_x, font->dpi_y); else printf(" point size: %.3f\n", font->point_size); printf(" max_x: %.3f, max_y: %.3f \n", font->mag_x, font->mag_y); } } /*EOF*/ vflib3-3.6.14.dfsg/src/bdf.c0000644000175000017500000004440407363424266014774 0ustar mohuramohura/* * bdf.c - low level bdf file interface * by Hirotsugu Kakugawa * * 25 Apr 1997 Added multiple file extension feature. * 20 Jan 1998 VFlib 3.4 Changed API. * 21 Apr 1998 Deleted multiple file extension feature. * 17 Jun 1998 Support for 'font-directory' capability in font definition. */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ Private VF_TABLE bdf_table = NULL; Private int BDF_Init(void) { static int init_flag = 0; if (init_flag == 0){ init_flag = 1; BDF_GetBDF(-1); if ((bdf_table = vf_table_create()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } } return 0; } Private void bdf_release(BDF bdf); Private int bdf_char_index(BDF,long); Private int bdf_load_file(BDF); Private BDF_CHAR read_bitmap(BDF_CHAR,FILE*); Private int bdf_sort_index(BDF,int,int); Private int bdf_partition(BDF,int,int); Private int BDF_Open(char *font_file, SEXP fontdirs) { char *path_name, *uncomp_prog; int bdf_id; BDF bdf; path_name = vf_search_file(font_file, -1, NULL, FALSE, -1, fontdirs, default_compressed_ext, &uncomp_prog); if (path_name == NULL){ vf_error = VF_ERR_NO_FONT_FILE; return -1; } if (bdf_debug('F')){ printf("BDF Font File: %s ==> %s\n", font_file, path_name); } /* Check the cache here. (Never forget that the fontdir is * not always the same. */ if ((bdf_id = (bdf_table->get_id_by_key)(bdf_table, path_name, strlen(path_name)+1)) >= 0){ (bdf_table->link_by_id)(bdf_table, bdf_id); vf_free(path_name); return bdf_id; } ALLOC_IF_ERR(bdf, struct s_bdf){ vf_error = VF_ERR_NO_MEMORY; vf_free(path_name); return -1; } bdf->point_size = -1; bdf->pixel_size = -1; bdf->size = -1; bdf->dpi_x = -1; bdf->dpi_y = -1; bdf->nchars = 0; bdf->char_table = NULL; bdf->char_table_x = NULL; bdf->path_name = path_name; bdf->uncompress = NULL; bdf->props = NULL; if ((uncomp_prog != NULL) && ((bdf->uncompress = vf_strdup(uncomp_prog)) == NULL)){ vf_error = VF_ERR_NO_MEMORY; goto Error; } if ((bdf->props = vf_sexp_empty_list()) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto Error; } if (bdf_load_file(bdf) < 0) goto Error; if ((bdf_id = (bdf_table->put)(bdf_table, bdf, path_name, strlen(path_name)+1)) < 0){ vf_error = VF_ERR_NO_MEMORY; goto Error; } BDF_SetBDF(bdf_id, bdf); return bdf_id; Error: bdf_release(bdf); return -1; } Private void BDF_Close(int bdf_id) { BDF bdf; if ((bdf = BDF_GetBDF(bdf_id)) == NULL){ fprintf(stderr, "VFlib internal error: BDF_Close()\n"); vf_error = VF_ERR_INTERNAL; return; } if ((bdf_table->unlink_by_id)(bdf_table, bdf_id) > 0){ return; } bdf_release(bdf); } Private void bdf_release(BDF bdf) { int ch; if (bdf != NULL){ vf_free(bdf->path_name); vf_free(bdf->uncompress); if (bdf->char_table != NULL){ for (ch = 0; ch < bdf->nchars; ch++) vf_free(bdf->char_table[ch].bitmap); } vf_free(bdf->char_table); vf_free(bdf->char_table_x); vf_sexp_free(&bdf->props); vf_free(bdf); } BDF_GetBDF(-1); } Private int bdf_load_file(BDF bdf) { FILE *fp; char linebuf[BUFSIZ], prop_string[160], *name; char charset_name[256], charset_enc[256], charset[256], *p; long code_point, last_ch; int ch_index, need_sorting, nchars, i; int have_fontboundingbox; if (bdf->uncompress == NULL){ if ((fp = vf_fm_OpenTextFileStream(bdf->path_name)) == NULL){ vf_error = VF_ERR_NO_FONT_FILE; return -1; } } else { if ((fp = vf_open_uncompress_stream(bdf->path_name, bdf->uncompress)) == NULL){ vf_error = VF_ERR_UNCOMPRESS; return -1; } } strcpy(charset_name, ""); strcpy(charset_enc, ""); bdf->char_table = NULL; bdf->char_table_x = NULL; have_fontboundingbox = 0; bdf->font_bbx_width = 0; bdf->font_bbx_height = 0; bdf->font_bbx_xoff = 0; bdf->font_bbx_yoff = 0; bdf->ascent = 0; bdf->descent = 0; if (bdf_debug('R')) printf(">> BDF reading header\n"); for (;;){ if (fgets(linebuf, sizeof(linebuf), fp) == NULL){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } { int l = strlen(linebuf); if ((l > 0) && (linebuf[l-1] == '\n')) linebuf[l-1] = '\0'; } if (strncmp(linebuf, "ENDPROPERTIES", 13) == 0) break; if (strncmp(linebuf, "STARTFONT", 9) == 0) continue; if (strncmp(linebuf, "COMMENT", 7) == 0) continue; #if 0 { int x; for (x = strlen(linebuf)-1; x >= 0; x--){ switch (linebuf[x]){ case '\n': case '\r': linebuf[x] = '\0'; } } } #endif { char *prop_name, *prop_value, *p, *p0, c0; prop_name = linebuf; for (p = linebuf; (c0 = *p) != '\0'; p++) if (isspace((int)c0)) break; p0 = p; *p = '\0'; if (c0 != '\0'){ p++; while (isspace((int)(*p))) p++; } if (*p == '\0'){ prop_value = ""; } else { prop_value = p; if (prop_value[0] == '"'){ prop_value = &prop_value[1]; prop_value[strlen(prop_value)-1] = '\0'; } bdf->props = vf_sexp_alist_put(prop_name, prop_value, bdf->props); if (bdf_debug('P')) printf(">> BDF Prop \"%s\" = \"%s\"\n", prop_name, prop_value); } *p0 = c0; } #if 0 printf("*** %s\n", linebuf); #endif if (strncmp(linebuf, "SIZE", 4) == 0){ sscanf(linebuf, "%*s%lf%lf%lf", &bdf->point_size, &bdf->dpi_x, &bdf->dpi_y); bdf->size = bdf->point_size; } else if (strncmp(linebuf, "FONTBOUNDINGBOX", 15) == 0){ sscanf(linebuf, "%*s%d%d%d%d", &bdf->font_bbx_width, &bdf->font_bbx_height, &bdf->font_bbx_xoff, &bdf->font_bbx_yoff); have_fontboundingbox = 1; } else if (strncmp(linebuf, "CHARSET_REGISTRY", 16) == 0){ sscanf(linebuf, "%*s%s", prop_string); if (prop_string[0] == '"'){ /* ignore `"' */ prop_string[strlen(prop_string)] = '\0'; name = &prop_string[1]; } else name = prop_string; strncpy(charset_name, name, sizeof(charset_name)); } else if (strncmp(linebuf, "CHARSET_ENCODING", 16) == 0){ sscanf(linebuf, "%*s%s", prop_string); if (prop_string[0] == '"'){/* ignore `"' */ prop_string[strlen(prop_string)] = '\0'; name = &prop_string[1]; } else name = prop_string; strncpy(charset_enc, name, sizeof(charset_enc)); } else if (strncmp(linebuf, "PIXEL_SIZE", 10) == 0){ sscanf(linebuf, "%*s%d", &bdf->pixel_size); } else if (strncmp(linebuf, "POINT_SIZE", 10) == 0){ sscanf(linebuf, "%*s%lf", &bdf->point_size); bdf->point_size = bdf->point_size / 10.0; } else if (strncmp(linebuf, "RESOLUTION_X", 12) == 0){ sscanf(linebuf, "%*s%lf", &bdf->dpi_x); } else if (strncmp(linebuf, "RESOLUTION_Y", 12) == 0){ sscanf(linebuf, "%*s%lf", &bdf->dpi_y); } else if (strncmp(linebuf, "FONT_ASCENT", 11) == 0){ sscanf(linebuf, "%*s%d", &bdf->ascent); } else if (strncmp(linebuf, "FONT_DESCENT", 12) == 0){ sscanf(linebuf, "%*s%d", &bdf->descent); } else if (strncmp(linebuf, "SLANT", 5) == 0){ sscanf(linebuf, "%*s%s", prop_string); if (prop_string[0] == '"'){ /* ignore `"' */ prop_string[strlen(prop_string)] = '\0'; name = &prop_string[1]; } else name = prop_string; for (p = name; *p != '\0'; p++) *p = toupper(*p); bdf->slant = 0.0; if ((strcmp(name, "I") == 0) || (strcmp(name, "O") == 0)){ bdf->slant = 0.17; } else if ((strcmp(name, "RI") == 0) || (strcmp(name, "RO") == 0)){ bdf->slant = -0.17; } } } if ((strcmp(charset_enc, "") != 0) && ((strcmp(charset_enc, "0") != 0))) sprintf(charset, "%s-%s", charset_name, charset_enc); else sprintf(charset, "%s", charset_name); if (bdf_debug('C')) printf(">> BDF Charset (ID=%d) %s\n", bdf->charset, charset); if (bdf->dpi_x < 0) bdf->dpi_x = DEFAULT_DPI; if (bdf->dpi_y < 0) bdf->dpi_y = DEFAULT_DPI; for (;;){ if (fgets(linebuf, sizeof(linebuf), fp) == NULL){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } if (strncmp(linebuf, "CHARS", 5) == 0){ sscanf(linebuf, "%*s%d", &bdf->nchars); if (bdf->nchars < 0){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } vf_free(bdf->char_table); ALLOCN_IF_ERR(bdf->char_table, struct s_bdf_char, bdf->nchars){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } vf_free(bdf->char_table_x); ALLOCN_IF_ERR(bdf->char_table_x, long, bdf->nchars){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } for (ch_index = 0; ch_index < bdf->nchars; ch_index++) bdf->char_table_x[ch_index] = ch_index; break; } } if (bdf_debug('R')) printf(">> BDF reading chars\n"); last_ch = -1L; nchars = 0; need_sorting = 0; for (ch_index = 0; ch_index < bdf->nchars; ch_index++){ NextChar: for (;;){ if (fgets(linebuf, sizeof(linebuf), fp) == NULL){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } if (strncmp(linebuf, "ENDFONT", 7) == 0) goto EndFont; if (strncmp(linebuf, "STARTCHAR", 9) == 0) break; } bdf->char_table[ch_index].f_offset = -1; bdf->char_table[ch_index].bbx_width = -1; bdf->char_table[ch_index].bbx_height = -1; bdf->char_table[ch_index].off_x = 0; bdf->char_table[ch_index].off_y = 0; bdf->char_table[ch_index].mv_x = 0; bdf->char_table[ch_index].mv_y = 0; bdf->char_table[ch_index].bitmap = NULL; for (;;){ if (fgets(linebuf, sizeof(linebuf), fp) == NULL){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } if (strncmp(linebuf, "ENDCHAR", 7) == 0) break; if (strncmp(linebuf, "ENCODING", 8) == 0){ sscanf(linebuf, "%*s%ld", &code_point); if (code_point < 0L) goto NextChar; bdf->char_table[ch_index].code_point = code_point; #if 0 if ((code_point % 0x21) == 0) printf("BDF Reading Char: Encoding=0x%x\n", code_point); #endif } else if (STRCMP(linebuf, "BBX") == 0){ sscanf(linebuf, "%*s%d%d%d%d", &bdf->char_table[ch_index].bbx_width, &bdf->char_table[ch_index].bbx_height, &bdf->char_table[ch_index].off_x, &bdf->char_table[ch_index].off_y); if (have_fontboundingbox == 0){ if (bdf->font_bbx_width < bdf->char_table[ch_index].bbx_width) bdf->font_bbx_width = bdf->char_table[ch_index].bbx_width; if (bdf->font_bbx_height < bdf->char_table[ch_index].bbx_height) bdf->font_bbx_height = bdf->char_table[ch_index].bbx_height; } } else if (strncmp(linebuf, "DWIDTH", 6) == 0){ sscanf(linebuf, "%*s%d%d", &bdf->char_table[ch_index].mv_x, &bdf->char_table[ch_index].mv_y); } else if (strncmp(linebuf, "BITMAP", 6) == 0){ if ((bdf->uncompress != NULL) || (bdf->nchars < 512)){ /* LOAD BITMAP */ bdf->char_table[ch_index].f_offset = 0L; if (read_bitmap(&bdf->char_table[ch_index], fp) == NULL) goto Unexpected_Error; } else { /* LAZY BITMAP LOADING */ bdf->char_table[ch_index].f_offset = (long)ftell(fp); bdf->char_table[ch_index].bitmap = NULL; for (i = 1; i <= bdf->char_table[ch_index].bbx_height; i++){ if (fgets(linebuf, sizeof(linebuf), fp) == NULL){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } } } } else { ; /* ignore other keywords */ } } /* end char */ if ( (bdf->char_table[ch_index].code_point < 0L) || (bdf->char_table[ch_index].f_offset < 0) || (bdf->char_table[ch_index].bbx_width < 0) || (bdf->char_table[ch_index].bbx_height < 0) ){ vf_error = VF_ERR_ILL_FONT_FILE; break; } nchars++; if (bdf->char_table[ch_index].code_point < last_ch) need_sorting = 1; last_ch = bdf->char_table[ch_index].code_point; } EndFont: bdf->nchars = nchars; if (need_sorting == 1){ /* for binary search */ if (bdf_debug('R')) printf(">> BDF sorting\n"); bdf_sort_index(bdf, 0, ch_index-1); } else { if (bdf_debug('R')) printf(">> BDF need not sorting\n"); } #if 0 for (i = 0; i <= bdf->nchars; i++){ printf("** %d 0x%x\n", i, bdf->char_table[bdf->char_table_x[i]].code_point); } #endif if ((bdf->uncompress != NULL) && (fp != NULL)) vf_close_uncompress_stream(fp); if (bdf_debug('R')) printf(">> BDF done\n"); return 0; Unexpected_Error: if (bdf->uncompress != NULL) vf_close_uncompress_stream(fp); if (bdf->char_table != NULL){ for (ch_index = 0; ch_index < bdf->nchars; ch_index++) vf_free(bdf->char_table[ch_index].bitmap); } vf_free(bdf->char_table); vf_free(bdf->char_table_x); bdf->char_table = NULL; bdf->char_table_x = NULL; return -1; } #if 0 /* Shell sort */ Private int bdf_sort_index(BDF bdf, int x, int y) { int gap, i, j, temp, len; long *chx; BDF_CHAR cht; cht = bdf->char_table; chx = bdf->char_table_x; len = bdf->nchars; for (gap = len/2; gap > 0; gap = gap / 2){ for (i = gap; i < len; i++){ for (j = i - gap; (j >= 0) && (cht[chx[j]].code_point > cht[chx[j+gap]].code_point); j -= gap){ temp = chx[j]; chx[j] = chx[j+gap]; chx[j+gap] = temp; } } } return 0; } #else /* Quick sort */ Private int bdf_sort_index(BDF bdf, int x, int y) { int z; Loop: if (x < y){ z = bdf_partition(bdf, x, y); #if 0 printf("** %d(%d) %d(%d) %d(%d)\n", x, bdf->char_table[bdf->char_table_x[x]].code_point, z, bdf->char_table[bdf->char_table_x[z]].code_point, y, bdf->char_table[bdf->char_table_x[y]].code_point); #endif if (x < z-1){ (void) bdf_sort_index(bdf, x, z-1); } if (z+1 < y){ /*(void) bdf_sort_index(bdf, z+1, y);*/ x = z+1; goto Loop; } } return 0; } Private int bdf_partition(BDF bdf, int x, int y) { long t; int i, p, tmp; BDF_CHAR cht; long *chx; cht = bdf->char_table; chx = bdf->char_table_x; t = cht[chx[x]].code_point; i = x+1; p = x; for (;;){ if (y < i) return p; if (cht[chx[i]].code_point < t){ /* swap( d[i], d[p+1]) */ tmp = chx[i]; chx[i] = chx[p+1]; chx[p+1] = tmp; i++; p++; } else { i++; } } } #endif Private BDF_CHAR BDF_GetBitmap(int bdf_id, long code_point) { int index; FILE *fp; BDF bdf; BDF_CHAR bdf_char; if ((bdf = BDF_GetBDF(bdf_id)) == NULL){ fprintf(stderr, "VFlib internal error: BDF_GetBitmap()\n"); vf_error = VF_ERR_INTERNAL; return NULL; } if ((index = bdf_char_index(bdf, code_point)) < 0){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } bdf_char = &bdf->char_table[index]; if (bdf_char->bitmap != NULL) return bdf_char; if ((fp = vf_fm_OpenTextFileStream(bdf->path_name)) == NULL){ /* --- font file is lost (maybe) */ vf_error = VF_ERR_NO_FONT_FILE; return NULL; } fseek(fp, bdf_char->f_offset, SEEK_SET); return read_bitmap(bdf_char, fp); } #define X_TO_D(c) ((isxdigit((int)(c)))?(Xc_To_Dec_Tbl[c-0x30]):16) Private int Xc_To_Dec_Tbl[] = { /* (BDF files are encoded by ASCII) */ /* +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F */ /*30*/ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1,-1,-1,-1,-1, /* 0,1,2,3,... */ /*40*/ -1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* @,a,b,c,... */ /*50*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /*60*/ -1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1};/* `,A,B,C,... */ Private BDF_CHAR read_bitmap(BDF_CHAR bdf_char, FILE *fp) { int bm_size, h, i; char linebuf[(2*2048)/8]; /* Is this really enough? */ unsigned char ch1, ch2, *bmp, *lbp; bdf_char->raster = (bdf_char->bbx_width+7)/8; bm_size = bdf_char->raster * bdf_char->bbx_height; if ((bdf_char->bitmap = (unsigned char*)calloc(1, bm_size)) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } bmp = bdf_char->bitmap; for (h = 0; h < bdf_char->bbx_height; h++){ if (fgets(linebuf, sizeof(linebuf), fp) == NULL){ vf_free(bdf_char->bitmap); bdf_char->bitmap = NULL; vf_error = VF_ERR_ILL_FONT_FILE; return NULL; } for (i = 0, lbp = (unsigned char *)linebuf; i < bdf_char->raster; i++){ ch1 = *(lbp++); ch2 = *(lbp++); *(bmp++) = X_TO_D(ch1)*16 + X_TO_D(ch2); } } return bdf_char; } Private int bdf_char_index(BDF bdf, long code_point) { int hi, lo, m, x1, x2; x1 = bdf->char_table_x[0]; x2 = bdf->char_table_x[bdf->nchars-1]; if ((code_point < bdf->char_table[x1].code_point) || (bdf->char_table[x2].code_point < code_point)) return -1; /* binary search */ lo = 0; hi = bdf->nchars; if (lo >= hi) return -1; while (lo < hi){ m = (lo+hi)/2; /*printf("lo=%d hi=%d m=%d\n", lo, hi, m);*/ if (bdf->char_table[bdf->char_table_x[m]].code_point < code_point) lo = m+1; else hi = m; } if (bdf->char_table[bdf->char_table_x[hi]].code_point != code_point) return -1; return bdf->char_table_x[hi]; } Private char* BDF_GetProp(BDF bdf, char *name) { SEXP v; char *r; if ((v = vf_sexp_assoc(name, bdf->props)) == NULL) return NULL; if ((r = vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v)))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } return r; /* CALLER MUST RELEASE THIS STRING LATER */ } Private BDF_CHAR BDF_GetBDFChar(BDF bdf, long code_point) { int index; if ((index = bdf_char_index(bdf, code_point)) < 0){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } return &bdf->char_table[index]; } /*EOF*/ vflib3-3.6.14.dfsg/src/bitmap.c0000644000175000017500000004373307324450554015515 0ustar mohuramohura/* * bitmap.c - a module for bitmap related procedures * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include "config.h" #include "VFlib-3_6.h" #include "VFsys.h" #include "bitmap.h" #include "consts.h" /** ** VF_MakeScaledBitmap **/ Public VF_BITMAP VF_MakeScaledBitmap(VF_BITMAP src_bm, double mag_x, double mag_y) { /* NOTE: CALLER MUST FREE THE BITMAP RETURNED BY THIS ROUTINE. */ int new_width, new_height; VF_BITMAP new_bm; int x0, y0, x1, y1, x2, xb, bw; double o_mag_x, o_mag_y; unsigned char *p0, *p1, *p1u, *p1l, d, d1, d2; static unsigned char scale_bit_table[] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; vf_error = 0; if (src_bm == NULL) return NULL; o_mag_x = mag_x; o_mag_y = mag_y; if (mag_x < 0) mag_x = 0 - mag_x; if (mag_y < 0) mag_y = 0 - mag_y; new_width = (int)ceil(mag_x * src_bm->bbx_width); new_height = (int)ceil(mag_y * src_bm->bbx_height); if ( (src_bm->bbx_width == new_width) && (src_bm->bbx_height == new_height)) return VF_CopyBitmap(src_bm); if ((new_bm = vf_alloc_bitmap(new_width, new_height)) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } new_bm->off_x = toint(mag_x * src_bm->off_x); new_bm->off_y = toint(mag_y * src_bm->off_y); new_bm->mv_x = toint(mag_x * src_bm->mv_x); new_bm->mv_y = toint(mag_y * src_bm->mv_y); if ((new_width < 2) || (new_height < 2)) return new_bm; if ((mag_x <= 1.0) && (mag_y <= 1.0)){ p0 = src_bm->bitmap; for (y0 = 0; y0 < src_bm->bbx_height; y0++){ y1 = mag_y * y0; for (x0 = 0; x0 < src_bm->bbx_width; x0++){ x1 = mag_x * x0; if ((p0[x0/8] & scale_bit_table[x0%8]) != 0){ new_bm->bitmap[y1 * new_bm->raster + x1/8] |= scale_bit_table[x1%8]; } } p0 = &p0[src_bm->raster]; } } else if ((mag_x > 1.0) && (mag_y > 1.0)){ p1 = new_bm->bitmap; for (y1 = 0; y1 < new_bm->bbx_height; y1++){ y0 = y1 / mag_y; for (x1 = 0; x1 < new_bm->bbx_width; x1++){ x0 = x1 / mag_x; if ((src_bm->bitmap[y0 * src_bm->raster + x0/8] & scale_bit_table[x0%8]) != 0){ p1[x1/8] |= scale_bit_table[x1%8]; } } p1 = &p1[new_bm->raster]; } } else if ((mag_x > 1.0) && (mag_y <= 1.0)){ p0 = src_bm->bitmap; for (y0 = 0; y0 < src_bm->bbx_height; y0++){ y1 = y0 * mag_y; for (x1 = 0; x1 < new_bm->bbx_width; x1++){ x0 = x1 / mag_x; if ((p0[x0/8] & scale_bit_table[x0%8]) != 0){ new_bm->bitmap[y1 * new_bm->raster + (x1/8)] |= scale_bit_table[x1%8]; } } p0 = &p0[src_bm->raster]; } } else {/*((mag_x <= 1.0) && (mag_y > 1.0))*/ p1 = new_bm->bitmap; for (y1 = 0; y1 < new_bm->bbx_height; y1++){ y0 = y1 / mag_y; for (x0 = 0; x0 < src_bm->bbx_width; x0++){ x1 = x0 * mag_x; if ((src_bm->bitmap[y0 * src_bm->raster + x0/8] & scale_bit_table[x0%8]) != 0){ p1[x1/8] |= scale_bit_table[x1%8]; } } p1 = &p1[new_bm->raster]; } } if (o_mag_y < 0){ bw = (new_bm->bbx_width + 7) / 8; for (y1 = 0; y1 < new_bm->bbx_height/2; y1++){ p1u = &new_bm->bitmap[new_bm->raster * y1]; p1l = &new_bm->bitmap[new_bm->raster * (new_bm->bbx_height - y1 - 1)]; for (xb = 0; xb < bw; xb++){ d = *p1u; *p1u++ = *p1l; *p1l++ = d; } } new_bm->off_y = new_bm->bbx_height - new_bm->off_y; new_bm->mv_y = 0 - new_bm->mv_y; } if (o_mag_x < 0){ p1 = new_bm->bitmap; for (y1 = 0; y1 < new_bm->bbx_height; y1++){ for (x1 = 0; x1 < new_bm->bbx_width/2; x1++){ x2 = new_bm->bbx_width - x1 - 1; d1 = (p1[x1/8] & scale_bit_table[x1%8]); d2 = (p1[x2/8] & scale_bit_table[x2%8]); p1[x1/8] = p1[x1/8] & ~scale_bit_table[x1%8]; p1[x2/8] = p1[x2/8] & ~scale_bit_table[x2%8]; if (d1 != 0) p1[x2/8] |= scale_bit_table[x2%8]; if (d2 != 0) p1[x1/8] |= scale_bit_table[x1%8]; } p1 = &p1[new_bm->raster]; } new_bm->off_x = new_bm->off_x - new_bm->bbx_width; new_bm->mv_x = 0 - new_bm->mv_x; } return new_bm; } /** ** VF_RotatedBitmap **/ Public VF_BITMAP VF_RotatedBitmap(VF_BITMAP bm_src, int angle) { VF_BITMAP bm_new; int x, y, x2, y2; long w, h; unsigned char *p; static unsigned char bits[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; if ((bm_src == NULL) || (bm_src->bitmap == NULL)) return NULL; w = bm_src->bbx_width; h = bm_src->bbx_height; bm_new = NULL; switch (angle){ default: fprintf(stderr, "VFlib: Unsupported rotation angle for VF_RotatedBitmap(): %d\n", angle); break; case VF_BM_ROTATE_0: bm_new = VF_CopyBitmap(bm_src); break; case VF_BM_ROTATE_90: bm_new = vf_alloc_bitmap(bm_src->bbx_height, bm_src->bbx_width); if (bm_new == NULL) return NULL; bm_new->off_x = bm_src->off_y; bm_new->off_y = bm_src->off_x + w; bm_new->mv_x = -bm_src->mv_y; bm_new->mv_y = bm_src->mv_x; for (y = 0; y < bm_src->bbx_height; y++){ p = &bm_src->bitmap[y * bm_src->raster]; for (x = 0; x < bm_src->bbx_width; x++){ if ((bits[x%8] & p[x/8]) != 0){ x2 = y; y2 = (w-1) - x; bm_new->bitmap[y2 * bm_new->raster + (x2/8)] |= bits[x2%8]; } } } break; case VF_BM_ROTATE_180: bm_new = vf_alloc_bitmap(bm_src->bbx_width, bm_src->bbx_height); if (bm_new == NULL) return NULL; bm_new->off_x = -bm_src->off_x - w; bm_new->off_y = -bm_src->off_y + h; bm_new->mv_x = -bm_src->mv_x; bm_new->mv_y = -bm_src->mv_y; for (y = 0; y < bm_src->bbx_height; y++){ p = &bm_src->bitmap[y * bm_src->raster]; for (x = 0; x < bm_src->bbx_width; x++){ if ((bits[x%8] & p[x/8]) != 0){ x2 = (w-1) - x; y2 = (h-1) - y; bm_new->bitmap[y2 * bm_new->raster + (x2/8)] |= bits[x2%8]; } } } break; case VF_BM_ROTATE_270: bm_new = vf_alloc_bitmap(bm_src->bbx_height, bm_src->bbx_width); if (bm_new == NULL) return NULL; bm_new->off_x = bm_src->off_y - h; bm_new->off_y = -bm_src->off_x; bm_new->mv_x = bm_src->mv_y; bm_new->mv_y = -bm_src->mv_x; for (y = 0; y < bm_src->bbx_height; y++){ p = &bm_src->bitmap[y * bm_src->raster]; for (x = 0; x < bm_src->bbx_width; x++){ if ((bits[x%8] & p[x/8]) != 0){ x2 = (h-1) - y; y2 = x; bm_new->bitmap[y2 * bm_new->raster + (x2/8)] |= bits[x2%8]; } } } break; } return bm_new; } /** ** VF_ReflectedBitmap **/ Public VF_BITMAP VF_ReflectedBitmap(VF_BITMAP bm_src, int reflect_x, int reflect_y) { VF_BITMAP bm_new; int x, x8, y, x2, y2; long w, h; unsigned char *p_src, *p_new; static unsigned char bits[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; if ((bm_src == NULL) || (bm_src->bitmap == NULL)) return NULL; if ((reflect_x == 0) && (reflect_y == 0)) return VF_CopyBitmap(bm_src); w = bm_src->bbx_width; h = bm_src->bbx_height; if ((bm_new = vf_alloc_bitmap(w, h)) == NULL) return NULL; bm_new->off_x = bm_src->off_x; bm_new->off_y = bm_src->off_y; bm_new->mv_x = bm_src->mv_x; bm_new->mv_y = bm_src->mv_y; if ((reflect_x != 0) && (reflect_y == 0)){ for (y = 0; y < h; y++){ p_src = &bm_src->bitmap[bm_src->raster * y]; p_new = &bm_new->bitmap[bm_new->raster * y]; for (x = 0; x < w; x++){ if ((bits[x % 8] & p_src[x / 8]) != 0){ x2 = w - x - 1; p_new[x2 / 8] |= bits[x2 % 8]; } } } } else if ((reflect_x == 0) && (reflect_y != 0)){ for (y = 0; y < h; y++){ p_src = &bm_src->bitmap[bm_src->raster * y]; p_new = &bm_new->bitmap[bm_new->raster * (h - y - 1)]; for (x8 = 0; x8 < (w+7)/8; x8++) *(p_new++) = *(p_src++); } } else /*if ((reflect_x != 0) && (reflect_x != 0))*/ { for (y = 0; y < h; y++){ y2 = h - y - 1; p_src = &bm_src->bitmap[bm_src->raster * y]; p_new = &bm_new->bitmap[bm_new->raster * y2]; for (x = 0; x < w; x++){ if ((bits[x % 8] & p_src[x / 8]) != 0){ x2 = w - x - 1; p_new[x2 / 8] |= bits[x2 % 8]; } } } } return bm_new; } /** ** VF_CopyBitmap **/ Public VF_BITMAP VF_CopyBitmap(VF_BITMAP bm_src) { VF_BITMAP bm_new; int h; vf_error = 0; ALLOC_IF_ERR(bm_new, struct vf_s_bitmap){ vf_error = VF_ERR_NO_MEMORY; return NULL; } bm_new->bbx_width = bm_src->bbx_width; bm_new->bbx_height = bm_src->bbx_height; bm_new->off_x = bm_src->off_x; bm_new->off_y = bm_src->off_y; bm_new->mv_x = bm_src->mv_x; bm_new->mv_y = bm_src->mv_y; bm_new->raster = bm_src->raster; bm_new->bitmap = (unsigned char*)malloc(bm_src->raster*bm_src->bbx_height); if (bm_new->bitmap == NULL){ vf_free(bm_new); vf_error = VF_ERR_NO_MEMORY; return NULL; } for (h = 0; h < bm_src->bbx_height; h++){ memcpy(&bm_new->bitmap[h * bm_new->raster], &bm_src->bitmap[h * bm_src->raster], bm_src->raster); } return bm_new; } /** ** VF_FillBitmap **/ Public void VF_FillBitmap(VF_BITMAP bm) { int xd, xm, xw, x, y; unsigned char *p, *q; static unsigned char pix_tbl[] = {0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe}; if ((bm == NULL) || (bm->bitmap == NULL)) return; xd = bm->bbx_width / 8; xm = bm->bbx_width % 8; p = bm->bitmap; for (x = 0; x < xd; x++) *(p++) = 0xff; if (xm != 0) *(p++) = pix_tbl[xm]; xw = (bm->bbx_width + 7) / 8; for (y = bm->bbx_height-1; y > 0; --y){ p = bm->bitmap; q = &bm->bitmap[bm->raster * y]; for (x = xw; x > 0; --x) *(q++) = *(p++); } } /** ** VF_ClearBitmap **/ Public void VF_ClearBitmap(VF_BITMAP bm) { int xw, x, y; unsigned char *p, *q; if ((bm == NULL) || (bm->bitmap == NULL)) return; xw = (bm->bbx_width + 7) / 8; for (y = bm->bbx_height-1; y > 0; --y){ p = bm->bitmap; q = &bm->bitmap[bm->raster * y]; for (x = xw; x > 0; --x) *(q++) = *(p++); } } /** ** VF_MinimizeBitmap **/ Public VF_BITMAP VF_MinimizeBitmap(VF_BITMAP bm_src) { VF_BITMAP bm_new; int yu, yl, xl, xr, y, x, xx, yy, w; unsigned char *p, *p0, *p1; Private unsigned char bit_table[] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; vf_error = 0; if ((bm_src == NULL) || (bm_src->bitmap == NULL)) return NULL; /* find upper */ yu = 0; y = 0; p0 = bm_src->bitmap; while (y < bm_src->bbx_height){ p = p0; w = (bm_src->bbx_width+7)/8; for (x = 0; x < w; x++, p++){ if (*p != 0){ yu = y; goto bbx_found_upper; } } y++; p0 += bm_src->raster; } goto Empty; bbx_found_upper: /* find lower */ y = bm_src->bbx_height-1; p0 = &bm_src->bitmap[bm_src->raster * y]; w = (bm_src->bbx_width+7)/8; while (y >= 0){ p = p0; for (x = 0; x < w; x++, p++){ if (*p != 0){ yl = y; goto bbx_found_lower; } } --y; p0 -= bm_src->raster; } goto Empty; bbx_found_lower: /* find left */ xl = bm_src->bbx_width-1; p0 = &bm_src->bitmap[bm_src->raster * yu]; for (y = yu; y <= yl; y++){ p = p0; for (x = 0; x < xl; x++){ if ((p[x/8] & bit_table[x%8]) != 0){ xl = x; break; } } p0 += bm_src->raster; } /* find right */ xr = 0; p0 = &bm_src->bitmap[bm_src->raster * yu]; for (y = yu; y <= yl; y++){ p = p0; for (x = bm_src->bbx_width-1; x > xr; --x){ if ((p[x/8] & bit_table[x%8]) != 0){ xr = x; break; } } p0 += bm_src->raster; } /**printf("** yu=%d yl=%d xl=%d xr=%d\n", yu, yl, xl, xr);**/ if ((bm_new = vf_alloc_bitmap(xr - xl + 1, yl - yu + 1)) == NULL) return NULL; bm_new->off_x = bm_src->off_x + xl; bm_new->off_y = bm_src->off_y - yu; bm_new->mv_x = bm_src->mv_x; bm_new->mv_y = bm_src->mv_y; p0 = &bm_src->bitmap[bm_src->raster*yu]; p1 = bm_new->bitmap; for (yy = 0; yy < bm_new->bbx_height; yy++){ /* SLOW! */ for (xx = 0; xx < bm_new->bbx_width; xx++){ if ((p0[(xx+xl)/8] & bit_table[(xx+xl)%8]) != 0){ p1[xx/8] |= bit_table[xx%8]; } } p0 += bm_src->raster; p1 += bm_new->raster; } return bm_new; Empty: if ((bm_new = vf_alloc_bitmap(0, 0)) == NULL) return NULL; bm_new->off_x = 0; bm_new->off_y = 0; bm_new->mv_x = bm_src->mv_x; bm_new->mv_y = bm_src->mv_y; return bm_new; } Glocal VF_BITMAP vf_alloc_bitmap(int width, int height) { VF_BITMAP bm_new; int size, raster; ALLOC_IF_ERR(bm_new, struct vf_s_bitmap){ vf_error = VF_ERR_NO_MEMORY; return NULL; } if (width == 0) width = 1; if (height == 0) height = 1; raster = (width+7)/8; size = raster * height; bm_new->bbx_width = width; bm_new->bbx_height = height; bm_new->raster = raster; bm_new->off_x = 0; bm_new->off_y = height; bm_new->mv_x = width; bm_new->mv_y = 0; if ((bm_new->bitmap = (unsigned char*)malloc(size)) == NULL){ vf_free(bm_new); vf_error = VF_ERR_NO_MEMORY; return NULL; } memclr(bm_new->bitmap, size); return bm_new; } Glocal VF_BITMAP vf_alloc_bitmap_with_metric1(VF_METRIC1 me, double dpi_x, double dpi_y) { int size, raster, w, h; VF_BITMAP bm_new; ALLOC_IF_ERR(bm_new, struct vf_s_bitmap){ vf_error = VF_ERR_NO_MEMORY; return NULL; } if ((w = me->bbx_width * (dpi_x / 72.27) + 0.5) == 0) w = 1; if ((h = me->bbx_height * (dpi_y / 72.27) + 0.5) == 0) h = 1; raster = (w+7)/8; size = raster * h; bm_new->bbx_width = w; bm_new->bbx_height = h; bm_new->raster = raster; bm_new->off_x = me->off_x * (dpi_x / 72.27); bm_new->off_y = me->off_y * (dpi_y / 72.27); bm_new->mv_x = me->mv_x * (dpi_x / 72.27); bm_new->mv_y = me->mv_y * (dpi_y / 72.27); if ((bm_new->bitmap = (unsigned char*)malloc(size)) == NULL){ vf_free(bm_new); vf_error = VF_ERR_NO_MEMORY; return NULL; } memclr(bm_new->bitmap, size); return bm_new; } Glocal VF_BITMAP vf_alloc_bitmap_with_metric2(VF_METRIC2 met) { int size, raster, w, h; VF_BITMAP bm_new; ALLOC_IF_ERR(bm_new, struct vf_s_bitmap){ vf_error = VF_ERR_NO_MEMORY; return NULL; } if ((w = met->bbx_width) == 0) w = 1; if ((h = met->bbx_height) == 0) h = 1; raster = (w + 7)/8; size = raster * h; bm_new->bbx_width = w; bm_new->bbx_height = h; bm_new->raster = raster; bm_new->off_x = met->off_x; bm_new->off_y = met->off_y; bm_new->mv_x = met->mv_x; bm_new->mv_y = met->mv_y; if ((bm_new->bitmap = (unsigned char*)malloc(size)) == NULL){ vf_free(bm_new); vf_error = VF_ERR_NO_MEMORY; return NULL; } memclr(bm_new->bitmap, size); return bm_new; } /** ** VF_FreeBitmap **/ Public void VF_FreeBitmap(VF_BITMAP vf_bitmap) { vf_error = 0; vf_free_bitmap(vf_bitmap); } Glocal void vf_free_bitmap(VF_BITMAP vf_bitmap) { if (vf_bitmap != NULL){ vf_free(vf_bitmap->bitmap); vf_free(vf_bitmap); } } /** ** VF_DumpBitmap **/ Public void VF_DumpBitmap(VF_BITMAP bm) { vf_error = 0; vf_dump_bitmap(bm); } Glocal void vf_dump_bitmap(VF_BITMAP bm) { unsigned char *p, *p0; int x, y, x0, y0, x1, y1; int ex; char d2c[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; static unsigned char bit_table[] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; if ((bm == NULL) || ((p = bm->bitmap) == NULL)) return; x0 = 0; if (bm->off_x > 0) x0 = -bm->off_x; y0 = 0; if (bm->off_y < 0) y0 = bm->off_y; x1 = bm->bbx_width; if (-bm->off_x > bm->bbx_width) x1 = -bm->off_x; y1 = bm->bbx_height; if (bm->off_y > bm->bbx_height) y1 = bm->off_y; if (-bm->off_x+bm->mv_x > x1) x1 = -bm->off_x+bm->mv_x; if (bm->off_y-bm->mv_y > y1) y1 = bm->off_y-bm->mv_y; ex = 1; putchar(' '); for (x = x0-1-ex; x <= x1+1+ex; x++) printf("%c", d2c[((x % 10) + 10) % 10]); putchar('\n'); putchar(' '); putchar('+'); for (x = x0-1-ex+1; x <= x1+1+ex-1; x++) putchar('-'); putchar('+'); putchar('\n'); p0 = bm->bitmap; for (y = y0-ex; y < y1+ex; y++){ if ((0 <= y) && (y <= bm->bbx_height)) p = p0-1; printf("%c", d2c[((y % 10) + 10) % 10]); putchar('|'); for (x = x0-ex; x <= x1+ex; x++){ if ((0 <= x) && (x <= bm->bbx_width) && (x%8 == 0)) p++; if ((x == -bm->off_x) && (y == bm->off_y)){ if ((0 <= x) && (x < bm->bbx_width) && (0 <= y) && (y < bm->bbx_height) && ((*p & bit_table[x%8]) != 0)) putchar('+'); else putchar('+'); } else if ((x == (-bm->off_x + bm->mv_x)) && (y == (bm->off_y - bm->mv_y))){ if ((*p & bit_table[x%8]) != 0) putchar('o'); else putchar('o'); } else if ((0 <= x) && (x < bm->bbx_width) && (0 <= y) && (y < bm->bbx_height)){ if ((*p & bit_table[x%8]) != 0) putchar('@'); else putchar('.'); } else { putchar(' '); } } if ((0 <= y) && (y <= bm->bbx_height)) p0 = p0 + bm->raster; putchar('|'); printf("%c", d2c[((y % 10) + 10) % 10]); putchar('\n'); } putchar(' '); putchar('+'); for (x = x0-1-ex+1; x <= x1+1+ex-1; x++) putchar('-'); putchar('+'); putchar('\n'); putchar(' '); for (x = x0-1-ex; x <= x1+1+ex; x++) printf("%c", d2c[((x % 10) + 10) % 10]); putchar('\n'); } /*EOF*/ vflib3-3.6.14.dfsg/src/config.h.in0000644000175000017500000000240010225353152016070 0ustar mohuramohura/* src/config.h.in. Generated automatically from configure.in by autoheader. */ /* Define if you have the ANSI C header files. */ #undef STDC_HEADERS /* The number of bytes in a int. */ #undef SIZEOF_INT /* The number of bytes in a long. */ #undef SIZEOF_LONG /* Define if you have the access function. */ #undef HAVE_ACCESS /* Define if you have the nint function. */ #undef HAVE_NINT /* Define if you have the opendir function. */ #undef HAVE_OPENDIR /* Define if you have the popen function. */ #undef HAVE_POPEN /* Define if you have the header file. */ #undef HAVE_DIRENT_H /* Define if you have the header file. */ #undef HAVE_FCNTL_H /* Define if you have the header file. */ #undef HAVE_MALLOC_H /* Define if you have the header file. */ #undef HAVE_STRING_H /* Define if you have the header file. */ #undef HAVE_STRINGS_H /* Define if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define if you have the header file. */ #undef HAVE_UNISTD_H /* Define if you have the header file. */ #undef HAVE_STDARG_H /* Define if you have the m library (-lm). */ #undef HAVE_LIBM /* Define if you have the nsl library (-lnsl). */ #undef HAVE_LIBNSL vflib3-3.6.14.dfsg/src/bm2ol.c0000644000175000017500000001476007324450565015254 0ustar mohuramohura/* * bm2ol.c - a module for generating an outline from a bitmap * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1996, 1997 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include "config.h" #include "VFlib-3_6.h" #include "VFsys.h" #include "consts.h" #define DEFAULT_POINT_SIZE 10.0 /** ** VF_Bitmap2Outline **/ Public VF_OUTLINE VF_BitmapToOutline(VF_BITMAP bm) { return vf_bitmap_to_outline(bm, bm->bbx_width, bm->bbx_height, VF_DEFAULT_DPI, VF_DEFAULT_DPI, DEFAULT_POINT_SIZE, 1, 1); } /** ** VF_FreeOutline **/ Public void VF_FreeOutline(VF_OUTLINE outline_data) { vf_free(outline_data); } Glocal VF_OUTLINE vf_bitmap_to_outline(VF_BITMAP bm, int font_bbx_width, int font_bbx_height, double dpi_x, double dpi_y, double point_size, double mag_x, double mag_y) { return vf_bitmap_to_outline2(bm, BM2OL_DOT_SHAPE_SQUARE, BM2OL_DEFAULT_DOT_SIZE, font_bbx_width, font_bbx_height, dpi_x, dpi_y, point_size, mag_x, mag_y); } Glocal VF_OUTLINE vf_bitmap_to_outline2(VF_BITMAP bm, int dot_shape, double dot_mag, int font_bbx_width, int font_bbx_height, double dpi_x, double dpi_y, double point_size, double mag_x, double mag_y) { int x, y, xx, nbits, size, index; int xl, xr, yu, yl, xc, yc; int xl2, xr2, yu2, yl2; double bbx, fx, fy; unsigned char *p, *p0; VF_OUTLINE outline; static unsigned char bit_tbl[] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; static int nbits_tbl[] = { 0, 1, 1, 2, 1, 2, 2, 3, /* 0, 1, 2, 3, 4, 5, 6, 7 */ 1, 2, 2, 3, 2, 3, 3, 4}; /* 8, 9, A, B, C, D, E, F */ if ((bm == NULL) || (bm->bitmap == NULL)) return NULL; if ((bm->bbx_width <= 0) || (bm->bbx_height <= 0) || (mag_x <= 0) || (mag_y <= 0)){ vf_error = VF_ERR_BITMAP2OUTLINE; return NULL; } if ((dpi_x < 0) || (dpi_y < 0)){ dpi_x = VF_DEFAULT_DPI; dpi_y = VF_DEFAULT_DPI; } if (dot_mag < 0) dot_mag = 1.0; #if 0 printf("* BM->OL: BBX: %d,%d\n", bm->bbx_width, bm->bbx_height); printf(" FBBX: %d,%d Pt: %.4fpt DPI: (%.2f,%.2f)\n", font_bbx_width, font_bbx_height, point_size, dpi_x, dpi_y); #endif /* scaling */ if (font_bbx_width > font_bbx_height){ bbx = font_bbx_width; } else { bbx = font_bbx_height; } fx = (double)VF_OL_COORD_RANGE / bbx; fy = (double)VF_OL_COORD_RANGE / bbx; /* count # of single bits */ nbits = 0; p0 = bm->bitmap; for (y = 0; y < bm->bbx_height; y++){ for (x = 0, p = p0; x < bm->raster; x++, p++){ nbits += nbits_tbl[*p/0x10]; nbits += nbits_tbl[*p%0x10]; } p0 = p0 + bm->raster; } /* count outline data size */ if (dot_shape < 0) dot_shape = BM2OL_DOT_SHAPE_SQUARE; switch (dot_shape){ default: case BM2OL_DOT_SHAPE_SQUARE: case BM2OL_DOT_SHAPE_DIAMOND: size = VF_OL_OUTLINE_HEADER_SIZE_TYPE0 + 5*nbits + 1; break; } /* allocate outline data area */ if ((outline = (VF_OUTLINE)calloc(size, sizeof(VF_OUTLINE_ELEM))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } /* make a header of outline data */ outline[VF_OL_HEADER_INDEX_HEADER_TYPE] = VF_OL_OUTLINE_HEADER_TYPE0; outline[VF_OL_HEADER_INDEX_DATA_SIZE] = size; outline[VF_OL_HEADER_INDEX_DPI_X] = VF_OL_HEADER_ENCODE(dpi_x); outline[VF_OL_HEADER_INDEX_DPI_Y] = VF_OL_HEADER_ENCODE(dpi_y); outline[VF_OL_HEADER_INDEX_POINT_SIZE] = VF_OL_HEADER_ENCODE(point_size); outline[VF_OL_HEADER_INDEX_EM] = (double)bbx * fy; outline[VF_OL_HEADER_INDEX_MAX_X] = (double)bm->bbx_width * fx; outline[VF_OL_HEADER_INDEX_MAX_Y] = (double)bm->bbx_height * fy; outline[VF_OL_HEADER_INDEX_REF_X] = (0 - bm->off_x) * fx; outline[VF_OL_HEADER_INDEX_REF_Y] = bm->off_y * fy; outline[VF_OL_HEADER_INDEX_MV_X] = bm->mv_x * fx; outline[VF_OL_HEADER_INDEX_MV_Y] = bm->mv_y * fy; /* make outline data from bitmap */ index = VF_OL_OUTLINE_HEADER_SIZE_TYPE0; for (y = 0, p0 = bm->bitmap; y < bm->bbx_height; y++, p0 += bm->raster){ yu = (y+0) * fy; yl = (y+1) * fy; yu2 = VF_OL_COORD_OFFSET + (yu+yl)/2 - dot_mag * (yl-yu)/2; yl2 = VF_OL_COORD_OFFSET + (yu+yl)/2 + dot_mag * (yl-yu)/2 - 1; yc = VF_OL_COORD_OFFSET + (yu+yl)/2; for (x = 0, p = p0; x < bm->raster; x++, p++){ if (*p == 0) continue; for (xx = 0; xx <= 7; xx++){ if ((bit_tbl[xx] & *p) == 0) continue; xl = (8*x+xx+0) * fx; xr = (8*x+xx+1) * fx; xl2 = VF_OL_COORD_OFFSET + (xl+xr)/2 - dot_mag * (xr-xl)/2; xr2 = VF_OL_COORD_OFFSET + (xl+xr)/2 + dot_mag * (xr-xl)/2 - 1; xc = VF_OL_COORD_OFFSET + (xl+xr)/2; if (dot_shape == BM2OL_DOT_SHAPE_SQUARE){ outline[index++] = (VF_OUTLINE_ELEM)(VF_OL_INSTR_TOKEN | VF_OL_INSTR_CWCURV | VF_OL_INSTR_LINE); outline[index++] = (VF_OUTLINE_ELEM)VF_OL_MAKE_XY(xl2, yu2); outline[index++] = (VF_OUTLINE_ELEM)VF_OL_MAKE_XY(xl2, yl2); outline[index++] = (VF_OUTLINE_ELEM)VF_OL_MAKE_XY(xr2, yl2); outline[index++] = (VF_OUTLINE_ELEM)VF_OL_MAKE_XY(xr2, yu2); } else { /* dot_shape == DOT_SHAPE_DIAMOND */ outline[index++] = (VF_OUTLINE_ELEM)(VF_OL_INSTR_TOKEN | VF_OL_INSTR_CWCURV | VF_OL_INSTR_LINE); outline[index++] = (VF_OUTLINE_ELEM)VF_OL_MAKE_XY(xl2, yc); outline[index++] = (VF_OUTLINE_ELEM)VF_OL_MAKE_XY(xc, yl2); outline[index++] = (VF_OUTLINE_ELEM)VF_OL_MAKE_XY(xr2, yc); outline[index++] = (VF_OUTLINE_ELEM)VF_OL_MAKE_XY(xc, yu2); } } } } if (index != VF_OL_OUTLINE_HEADER_SIZE_TYPE0) outline[VF_OL_OUTLINE_HEADER_SIZE_TYPE0] |= VF_OL_INSTR_CHAR; /* end of outline */ outline[index] = (VF_OUTLINE_ELEM)0L; return outline; } /*EOF*/ vflib3-3.6.14.dfsg/src/drv_ttf.c0000644000175000017500000015206507524645657015724 0ustar mohuramohura/* * drv_ttf.c - A font driver for TrueType fonts with FreeType library. * by Hirotsugu Kakugawa * * 6 Jan 1998 First implementation by FreeType 1.0. * 5 Feb 1998 VFlib 3.4 Changed API. * 20 Mar 1998 Added outline data extract routine. * 2 Jun 1998 Added 'hinting' capablity * 18 Jun 1998 Adopted FreeType 1.1 * 21 Sep 1998 Fixed a bug that dumps core when a font is closed. * 9 Dec 1998 Adopted FreeType 1.2 * 9 Dec 1998 Added debug flag control by environment variable. * Added get_fontbbx1() and get_fontbbx2(). * 20 Dec 1998 Added a feature to open/close font files dynamically on demand. * 28 Dec 1998 Fixed a bug in code for dynamic open/close font files. * 4 Mar 1999 Added ad-hoc solution to handle buggy JIS X 0212 fonts * with empty Row 47 (e.g., Ricoh TrueTypeWorld ValueFont DX). * Add "jisx0212-row47-empty-sjis" capability with "yes" value * in vflibcap to use such fonts. * 29 Jul 1999 Fixed a bug in makeing outline data (refrence point). */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* debug flag in vflibcap (debug capability): * f - print font file path * n - the number of fonts in a font file * c - code mapping table information (ccv info) * p - code mapping table information (non-ccv info) * i - print char index * m - print metrics * * - everything */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "bitmap.h" #include "cache.h" #include "fsearch.h" #include "str.h" #include "sexp.h" #include "ccv.h" #include "freetype.h" #include "ttf.h" #define DIRECTION_HORIZONTAL 0 #define DIRECTION_VERTICAL 1 Private SEXP_LIST default_fontdirs; Private SEXP_STRING default_point_size; Private double v_default_point_size; Private SEXP_STRING default_pixel_size; Private double v_default_pixel_size; Private SEXP_STRING default_dpi, default_dpi_x, default_dpi_y; Private double v_default_dpi_x, v_default_dpi_y; Private SEXP_STRING default_aspect; Private double v_default_aspect; Private SEXP_STRING default_direction; Private char v_default_direction; Private SEXP_STRING default_platform_id; Private int v_default_platform_id; Private SEXP_STRING default_encoding_id; Private int v_default_encoding_id; Private SEXP_STRING default_hinting; Private int v_default_hinting; Private SEXP_ALIST default_properties; Private SEXP_ALIST default_variables; Private SEXP_STRING default_debug_mode; Private char *env_debug_mode = NULL; #define DEBUG_ENV_NAME "VFLIB_TTF_DEBUG" struct s_font_ttf { int release_on_close; int ttf_opened; TT_Face tt_face; TT_Instance tt_instance; TT_CharMap tt_charmap; TT_Glyph tt_glyph; TT_Face_Properties tt_fprops; TT_UShort tt_upem; char *font_name; char *file_path; double point_size; double pixel_size; double dpi_x, dpi_y; double aspect; double mag; char direction; int font_number; int platform_id; int encoding_id; int mapping_id; int encoding_force; int hinting; int jisx0212_r47e_sjis; char *charset_name; char *encoding_name; SEXP props; int ccv_id; }; typedef struct s_font_ttf *FONT_TTF; struct s_id_name_tbl { int id; char *name; }; typedef struct s_id_name_tbl *ID_NAME_TBL; struct s_fontbbx1 { double w, h; double xoff, yoff; }; typedef struct s_fontbbx1 *FONTBBX1; struct s_fontbbx2 { int w, h; int xoff, yoff; }; typedef struct s_fontbbx2 *FONTBBX2; #define MODE_METRIC1 1 #define MODE_BITMAP1 2 #define MODE_FONTBBX1 3 #define MODE_OUTLINE 4 #define MODE_METRIC2 5 #define MODE_FONTBBX2 6 #define MODE_BITMAP2 7 Private TT_Face *ttf_open_method(char*,long,long,VF_FONT,FONT_TTF); Private void ttf_close_method(TT_Face*,long,long,VF_FONT,FONT_TTF); Private void* ttf_get_xxx(int mode, VF_FONT font, long code_point, double mag_x, double mag_y, VF_METRIC1 metric1, VF_METRIC2 metric2, FONTBBX1 bbx1, FONTBBX2 bbx2); Private int ttf_create(VF_FONT,char*,char*,int,SEXP); Private int ttf_close(VF_FONT); Private int ttf_get_metric1(VF_FONT,long,VF_METRIC1,double,double); Private int ttf_get_metric2(VF_FONT,long,VF_METRIC2,double,double); Private int ttf_get_fontbbx1(VF_FONT font,double,double, double*,double*,double*,double*); Private int ttf_get_fontbbx2(VF_FONT font, double,double, int*,int*,int*,int*); Private VF_BITMAP ttf_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP ttf_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE ttf_get_outline1(VF_FONT,long,double,double); Private char *ttf_get_font_prop(VF_FONT,char*); Private VF_OUTLINE get_outline_ttf_to_vflib(FONT_TTF,TT_Outline*, TT_Glyph_Metrics*, TT_Instance_Metrics*, double ps, double mag_x, double mag_y, double dpix, double dpiy, double asp); Private long fix_jisx0212_row47_empty_sjis(long code_point); Private int find_encoding_mapping(FONT_TTF); Private int get_id_from_platform_name(char*); Private int get_id_from_encoding_name(char*,int); Private int name2id(char*,ID_NAME_TBL,int,char*); Private char* conv_encoding_ttf_to_vflib(int ttf_enc, int plat); Private char* platform_id2name(int plat_id); Private char* encoding_id2name(int,int); Private int ttf_debug(char); static TT_Engine FreeType_Engine; static int Initialized_FreeType = 0; Public int VF_Init_Driver_TrueType(void) { TT_Error error; char *p; struct s_capability_table ct[20]; int z; z = 0; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_fontdirs; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_point_size; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_pixel_size; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi; /* VF_CAPE_DPI_X */ ct[z].cap = VF_CAPE_DPI_X; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi_x; /* VF_CAPE_DPI_Y */ ct[z].cap = VF_CAPE_DPI_Y; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi_y; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_aspect; /* VF_CAPE_DIRECTION */ ct[z].cap = VF_CAPE_DIRECTION; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_direction; /* VF_CAPE_TTF_PLATFORM_ID */ ct[z].cap = VF_CAPE_TTF_PLATFORM_ID; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_platform_id; /* VF_CAPE_TTF_ENCODING_ID */ ct[z].cap = VF_CAPE_TTF_ENCODING_ID; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_encoding_id; /* VF_CAPE_TTF_HINTING */ ct[z].cap = VF_CAPE_TTF_HINTING; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_hinting; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME, ct, NULL, NULL) == VFLIBCAP_PARSED_ERROR) return -1; if (Initialized_FreeType == 0){ error = TT_Init_FreeType(&FreeType_Engine); if (error){ vf_error = VF_ERR_FREETYPE_INIT; return -1; } Initialized_FreeType = 1; } v_default_point_size = DEFAULT_POINT_SIZE; if (default_point_size != NULL) v_default_point_size = atof(vf_sexp_get_cstring(default_point_size)); if (v_default_point_size < 0) v_default_point_size = DEFAULT_POINT_SIZE; v_default_pixel_size = DEFAULT_PIXEL_SIZE; if (default_pixel_size != NULL) v_default_pixel_size = atof(vf_sexp_get_cstring(default_pixel_size)); if (v_default_pixel_size < 0) v_default_pixel_size = DEFAULT_PIXEL_SIZE; v_default_dpi_x = VF_DEFAULT_DPI; v_default_dpi_y = VF_DEFAULT_DPI; if (default_dpi != NULL) v_default_dpi_x = v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi)); if (default_dpi_x != NULL) v_default_dpi_x = atof(vf_sexp_get_cstring(default_dpi_x)); if (default_dpi_y != NULL) v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi_y)); if (v_default_dpi_x < 0) v_default_dpi_x = VF_DEFAULT_DPI; if (v_default_dpi_y < 0) v_default_dpi_y = VF_DEFAULT_DPI; v_default_aspect = 1.0; if (default_aspect != NULL) v_default_aspect = atof(vf_sexp_get_cstring(default_aspect)); if (v_default_aspect < 0) v_default_aspect = 1.0; v_default_direction = DEFAULT_DIRECTION; if (default_direction != NULL){ p = vf_sexp_get_cstring(default_direction); switch (*p){ case 'h': case 'H': v_default_direction = DIRECTION_HORIZONTAL; break; case 'v': case 'V': v_default_direction = DIRECTION_VERTICAL; break; default: fprintf(stderr, "VFlib Warning: Unknown writing direction: %s\n", p); break; } } v_default_platform_id = TT_PLAT_ID_MICROSOFT; if (default_platform_id != NULL) v_default_platform_id = get_id_from_platform_name(vf_sexp_get_cstring(default_platform_id)); v_default_encoding_id = TT_ENC_ID_ANY; if (default_encoding_id != NULL) v_default_encoding_id = get_id_from_encoding_name(vf_sexp_get_cstring(default_encoding_id), v_default_platform_id); v_default_hinting = TRUE; if (default_hinting != NULL){ v_default_hinting = vf_parse_bool(vf_sexp_get_cstring(default_hinting)); } env_debug_mode = getenv(DEBUG_ENV_NAME); VF_InstallFontDriver(FONTCLASS_NAME, (DRIVER_FUNC_TYPE)ttf_create); return 0; } Private int ttf_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_TTF font_ttf; char *font_file, *font_path, *p; int val; SEXP cap_fontdirs, cap_font, cap_point, cap_pixel; SEXP cap_dpi, cap_dpi_x, cap_dpi_y, cap_mag, cap_aspect; SEXP cap_font_number, cap_direction, cap_platform_id, cap_encoding_id; SEXP cap_hinting, cap_mapping_id, cap_encoding_force; SEXP cap_jisx0212_r47e_sjis; SEXP cap_charset, cap_encoding, cap_props; struct s_capability_table ct[30]; int z; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_STRING_LIST1; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_fontdirs; /* VF_CAPE_FONT_FILE */ ct[z].cap = VF_CAPE_FONT_FILE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_font; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_point; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_pixel; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi; /* VF_CAPE_DPI_X */ ct[z].cap = VF_CAPE_DPI_X; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi_x; /* VF_CAPE_DPI_Y */ ct[z].cap = VF_CAPE_DPI_Y; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi_y; /* VF_CAPE_MAG */ ct[z].cap = VF_CAPE_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mag; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_aspect; /* VF_CAPE_DIRECTION */ ct[z].cap = VF_CAPE_DIRECTION; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_direction; /* VF_CAPE_TTF_FONT_NUMBER */ ct[z].cap = VF_CAPE_TTF_FONT_NUMBER; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_font_number; /* VF_CAPE_TTF_PLATFORM_ID */ ct[z].cap = VF_CAPE_TTF_PLATFORM_ID; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_platform_id; /* VF_CAPE_TTF_ENCODING_ID */ ct[z].cap = VF_CAPE_TTF_ENCODING_ID; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_encoding_id; /* VF_CAPE_TTF_MAPPING_ID */ ct[z].cap = VF_CAPE_TTF_MAPPING_ID; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mapping_id; /* VF_CAPE_TTF_HINTING */ ct[z].cap = VF_CAPE_TTF_HINTING; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_hinting; /* VF_CAPE_TTF_ENCODING_FORCE */ ct[z].cap = VF_CAPE_TTF_ENCODING_FORCE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_encoding_force; /* VF_CAPE_CHARSET */ ct[z].cap = VF_CAPE_CHARSET; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_charset; /* VF_CAPE_ENCODING */ ct[z].cap = VF_CAPE_ENCODING; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_encoding; /* VF_CAPE_TTF_JISX0212_R47E_SJIS */ ct[z].cap = VF_CAPE_TTF_JISX0212_R47ES; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_jisx0212_r47e_sjis; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (implicit == 1){ /* implicit font */ font_file = font_name; } else { /* explicit font */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, NULL) < 0) return -1; if (cap_font == NULL){ /* Use font name as font file name if font file name is not given. */ font_file = font_name; } else { font_file = vf_sexp_get_cstring(cap_font); } } val = -1; font_path = NULL; if ((implicit == 0) && (cap_fontdirs != NULL)){ font_path = vf_search_file(font_file, -1, NULL, TRUE, FSEARCH_FORMAT_TYPE_TTF, cap_fontdirs, NULL, NULL); } if (font_path == NULL){ font_path = vf_search_file(font_file, -1, NULL, TRUE, FSEARCH_FORMAT_TYPE_TTF, default_fontdirs, NULL, NULL); } if (font_path == NULL){ vf_error = VF_ERR_NO_FONT_FILE; return -1; } if (ttf_debug('f')) printf("VFlib TrueType: font file %s\n ==> %s\n", font_file, font_path); font->font_type = VF_FONT_TYPE_OUTLINE; font->get_metric1 = ttf_get_metric1; font->get_metric2 = ttf_get_metric2; font->get_fontbbx1 = ttf_get_fontbbx1; font->get_fontbbx2 = ttf_get_fontbbx2; font->get_bitmap1 = ttf_get_bitmap1; font->get_bitmap2 = ttf_get_bitmap2; font->get_outline = ttf_get_outline1; font->get_font_prop = ttf_get_font_prop; font->query_font_type = NULL; /* Use font->font_type value. */ font->close = ttf_close; ALLOC_IF_ERR(font_ttf, struct s_font_ttf){ vf_error = VF_ERR_NO_MEMORY; return -1; } font->private = font_ttf; font_ttf->release_on_close = 0; font_ttf->ttf_opened = 0; font_ttf->font_name = NULL; font_ttf->file_path = font_path; font_ttf->point_size = v_default_point_size; font_ttf->pixel_size = v_default_pixel_size; font_ttf->mag = 1.0; font_ttf->dpi_x = v_default_dpi_x; font_ttf->dpi_y = v_default_dpi_y; font_ttf->aspect = v_default_aspect; font_ttf->direction = v_default_direction; font_ttf->font_number = -1; font_ttf->platform_id = v_default_platform_id; font_ttf->encoding_id = v_default_encoding_id; font_ttf->mapping_id = TT_MAP_ID_SEARCH; font_ttf->encoding_force = -1; font_ttf->hinting = v_default_hinting; font_ttf->charset_name = NULL; font_ttf->encoding_name = NULL; if (implicit == 0){ if (cap_point != NULL) font_ttf->point_size = atof(vf_sexp_get_cstring(cap_point)); if (cap_pixel != NULL) font_ttf->pixel_size = atof(vf_sexp_get_cstring(cap_pixel)); if (cap_dpi != NULL) font_ttf->dpi_x = font_ttf->dpi_y = atof(vf_sexp_get_cstring(cap_dpi)); if (cap_dpi_x != NULL) font_ttf->dpi_x = atof(vf_sexp_get_cstring(cap_dpi_x)); if (cap_dpi_y != NULL) font_ttf->dpi_y = atof(vf_sexp_get_cstring(cap_dpi_y)); if (cap_mag != NULL) font_ttf->mag = atof(vf_sexp_get_cstring(cap_mag)); if (cap_aspect != NULL) font_ttf->aspect = atof(vf_sexp_get_cstring(cap_aspect)); if (cap_direction != NULL){ p = vf_sexp_get_cstring(cap_direction); switch (*p){ case 'h': case 'H': font_ttf->direction = DIRECTION_HORIZONTAL; break; case 'v': case 'V': font_ttf->direction = DIRECTION_VERTICAL; break; default: fprintf(stderr, "VFlib Warning: Unknown writing direction: %s\n", p); break; } } if (cap_font_number != NULL) font_ttf->font_number = atoi(vf_sexp_get_cstring(cap_font_number)); if (cap_platform_id != NULL) font_ttf->platform_id = get_id_from_platform_name(vf_sexp_get_cstring(cap_platform_id)); if (cap_encoding_id != NULL) font_ttf->encoding_id = get_id_from_encoding_name(vf_sexp_get_cstring(cap_encoding_id), font_ttf->platform_id); if (cap_mapping_id != NULL) font_ttf->mapping_id = atoi(vf_sexp_get_cstring(cap_mapping_id)); if (cap_encoding_force != NULL) font_ttf->encoding_force = get_id_from_encoding_name(vf_sexp_get_cstring(cap_encoding_force), font_ttf->platform_id); if (cap_charset != NULL) font_ttf->charset_name = vf_strdup(vf_sexp_get_cstring(cap_charset)); if (cap_encoding != NULL) font_ttf->encoding_name = vf_strdup(vf_sexp_get_cstring(cap_encoding)); if (cap_props != NULL) font_ttf->props = cap_props; if (cap_hinting != NULL){ font_ttf->hinting = vf_parse_bool(vf_sexp_get_cstring(cap_hinting)); } if (cap_jisx0212_r47e_sjis != NULL){ font_ttf->jisx0212_r47e_sjis = vf_parse_bool(vf_sexp_get_cstring(cap_jisx0212_r47e_sjis)); } } if ((font_ttf->font_name = vf_strdup(font_name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto Error; } if (vf_fm_OpenFileStreamApp(font_ttf->file_path, font_ttf->font_number, -1, font, font_ttf, (FM_OPEN_METHOD)ttf_open_method, (FM_CLOSE_METHOD)ttf_close_method, "FreeType") == NULL) goto Error; font_ttf->ccv_id = find_encoding_mapping(font_ttf); val = 0; Error: if (implicit == 0){ /* explicit font */ vf_sexp_free4(&cap_fontdirs, &cap_font, &cap_point, &cap_pixel); vf_sexp_free3(&cap_dpi, &cap_dpi_x, &cap_dpi_y); vf_sexp_free3(&cap_mag, &cap_aspect, &cap_direction); vf_sexp_free3(&cap_platform_id, &cap_encoding_id, &cap_hinting); vf_sexp_free3(&cap_mapping_id, &cap_encoding_force, &cap_charset); vf_sexp_free1(&cap_encoding); vf_sexp_free1(&cap_jisx0212_r47e_sjis); } if ((val != 0) && (font_ttf != NULL)){ vf_sexp_free1(&cap_props); vf_free(font_ttf->font_name); vf_free(font_ttf->file_path); vf_free(font_ttf->charset_name); vf_free(font_ttf->encoding_name); vf_free(font_ttf); } return val; } Private int ttf_close(VF_FONT font) { FONT_TTF font_ttf; if ((font_ttf = (FONT_TTF)font->private) != NULL){ vf_free(font_ttf->charset_name); vf_free(font_ttf->encoding_name); font_ttf->release_on_close = 1; /* `font_ttf' and `font_ttf->font_name' are released in ttf_close_method() */ } return 0; } Private TT_Face* ttf_open_method(char *font_path, long fontnum, long iarg2, VF_FONT font, FONT_TTF font_ttf) { TT_Error error; if (font_ttf == NULL) return NULL; if (font_ttf->ttf_opened == 0){ if (fontnum < 0){ if (ttf_debug('f')) printf("VFlib TrueType: TT_Open_Face %s\n", font_ttf->font_name); error = TT_Open_Face(FreeType_Engine, font_path, &font_ttf->tt_face); } else { if (ttf_debug('f')) printf("VFlib TrueType: TT_Open_Collection %s, %ld\n", font_ttf->font_name, fontnum); error = TT_Open_Collection(FreeType_Engine, font_path, fontnum, &font_ttf->tt_face); } if (error) return NULL; font_ttf->ttf_opened = 1; (void) TT_Get_Face_Properties(font_ttf->tt_face, &font_ttf->tt_fprops); font_ttf->tt_upem = font_ttf->tt_fprops.header->Units_Per_EM; if (ttf_debug('n')) printf("VFlib TrueType: the number of embedded faces: %ld\n", (long)font_ttf->tt_fprops.num_Faces); error = TT_New_Glyph(font_ttf->tt_face, &font_ttf->tt_glyph); if (error) return NULL; error = TT_New_Instance(font_ttf->tt_face, &font_ttf->tt_instance); if (error) return NULL; } return &font_ttf->tt_face; } Private void ttf_close_method(TT_Face *ttface, long iarg1, long iarg2, VF_FONT font, FONT_TTF font_ttf) { if (font_ttf->release_on_close == 0){ /* close temporality by the limitation of the number of simultaneously opened files */ if (ttf_debug('f')) printf("VFlib TrueType: TT_Flush_Face %s\n", font_ttf->font_name); TT_Flush_Face(font_ttf->tt_face); } else { /* after a font is closed */ if (ttf_debug('f')) printf("VFlib TrueType: TT_Close_Face %s\n", font_ttf->font_name); TT_Done_Glyph(font_ttf->tt_glyph); TT_Done_Instance(font_ttf->tt_instance); TT_Close_Face(font_ttf->tt_face); vf_free(font_ttf->font_name); vf_free(font_ttf->file_path); vf_free(font_ttf); } } Private int ttf_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { if (ttf_get_xxx(MODE_METRIC1, font, code_point, mag_x, mag_y, metric, NULL, NULL, NULL) == NULL) return -1; return 0; } Private int ttf_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { struct s_fontbbx1 bbx1; if (ttf_get_xxx(MODE_FONTBBX1, font, -1, mag_x, mag_y, NULL, NULL, &bbx1, NULL) == NULL) return -1; *w_p = bbx1.w; *h_p = bbx1.h; *xoff_p = bbx1.xoff; *yoff_p = bbx1.yoff; return 0; } Private VF_BITMAP ttf_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { return (VF_BITMAP)ttf_get_xxx(MODE_BITMAP1, font, code_point, mag_x, mag_y, NULL, NULL, NULL, NULL); } Private VF_OUTLINE ttf_get_outline1(VF_FONT font, long code_point, double mag_x, double mag_y) { return (VF_OUTLINE)ttf_get_xxx(MODE_OUTLINE, font, code_point, mag_x, mag_y, NULL, NULL, NULL, NULL); } Private int ttf_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { if (ttf_get_xxx(MODE_METRIC2, font, code_point, mag_x, mag_y, NULL, metric, NULL, NULL) == NULL) return -1; return 0; } Private int ttf_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { struct s_fontbbx2 bbx2; if (ttf_get_xxx(MODE_FONTBBX2, font, -1, mag_x, mag_y, NULL, NULL, NULL, &bbx2) == NULL) return -1; *w_p = bbx2.w; *h_p = bbx2.h; *xoff_p = bbx2.xoff; *yoff_p = bbx2.yoff; return 0; } Private VF_BITMAP ttf_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { return (VF_BITMAP)ttf_get_xxx(MODE_BITMAP2, font, code_point, mag_x, mag_y, NULL, NULL, NULL, NULL); } Private void* ttf_get_xxx(int mode, VF_FONT font, long code_point, double mag_x, double mag_y, VF_METRIC1 metric1, VF_METRIC2 metric2, FONTBBX1 fontbbx1, FONTBBX2 fontbbx2) { FONT_TTF font_ttf; VF_BITMAP bm; VF_OUTLINE ol; void *val; double ps = 0.0, mx, my, asp, aspd; double dpix = 0.0, dpiy = 0.0; long cp; int chindex; int load_flag; TT_Raster_Map tt_bitmap; TT_Glyph_Metrics tt_metrics; TT_Instance_Metrics tt_imetrics; TT_Outline tt_outline; TT_Short xoff, yoff; TT_Error error; error = 0; if ((font_ttf = (FONT_TTF)font->private) == NULL){ fprintf(stderr, "VFlib: Internal error in ttf_get_xxx()\n"); abort(); } mx = mag_x * font_ttf->mag * font->mag_x; my = mag_y * font_ttf->mag * font->mag_y; asp = v_default_aspect * font_ttf->aspect * (mx / my); if ( (mode == MODE_METRIC1) || (mode == MODE_FONTBBX1) || (mode == MODE_BITMAP1) || (mode == MODE_OUTLINE) ){ if (((dpix = font->dpi_x) <= 0) || ((dpiy = font->dpi_y) <= 0)){ dpix = font_ttf->dpi_x; dpiy = font_ttf->dpi_y; } if ((ps = font->point_size) < 0) ps = font_ttf->point_size; ps = ps * my; } else if ( (mode == MODE_METRIC2) || (mode == MODE_FONTBBX2) || (mode == MODE_BITMAP2) ){ if ((ps = font->pixel_size) < 0) ps = font_ttf->pixel_size; ps = ps * my; dpix = POINTS_PER_INCH; dpiy = POINTS_PER_INCH; } vf_fm_OpenFileStreamApp(font_ttf->file_path, font_ttf->font_number, -1, font, font_ttf, (FM_OPEN_METHOD)ttf_open_method, (FM_CLOSE_METHOD)ttf_close_method, "FreeType"); if (mode != MODE_OUTLINE){ TT_Set_Instance_Resolutions(font_ttf->tt_instance, dpix, dpiy); error = TT_Set_Instance_PointSize(font_ttf->tt_instance, ps); } else { TT_Set_Instance_Resolutions(font_ttf->tt_instance, 96*4, 96*4); /*XXX THESE ARE AD-HOC VALUES!!*/ error = TT_Set_Instance_PointSize(font_ttf->tt_instance, 12); } if (error){ vf_error = VF_ERR_NO_GLYPH; return NULL; } if ((mode == MODE_FONTBBX1) || (mode == MODE_FONTBBX2)){ chindex = -1; } else { cp = code_point; if (font_ttf->ccv_id >= 0) cp = vf_ccv_conv(font_ttf->ccv_id, code_point); if (ttf_debug('c')) printf("VFlib TrueType: CCV 0x%lx => 0x%lx\n", code_point, cp); if (cp < 0){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } if (font_ttf->jisx0212_r47e_sjis == TRUE){ cp = fix_jisx0212_row47_empty_sjis(cp); } chindex = TT_Char_Index(font_ttf->tt_charmap, (int)cp); if (chindex <= 0){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } if (ttf_debug('i')) printf("VFlib TrueType: charindex 0x%x (code point 0x%lx)\n", chindex, code_point); if (font_ttf->hinting == TRUE) load_flag = TTLOAD_SCALE_GLYPH | TTLOAD_HINT_GLYPH; else load_flag = TTLOAD_SCALE_GLYPH; error = TT_Load_Glyph(font_ttf->tt_instance, font_ttf->tt_glyph, chindex, load_flag); if (error){ vf_error = VF_ERR_NO_GLYPH; return NULL; } (void) TT_Get_Glyph_Metrics(font_ttf->tt_glyph, &tt_metrics); } (void) TT_Get_Instance_Metrics(font_ttf->tt_instance, &tt_imetrics); if (ttf_debug('m')){ printf("VFlib TrueType: Metrics\n"); printf(" in Header upem: %d, xMin: %d, yMin:%d, xMax:%d, yMax:%d\n", font_ttf->tt_fprops.header->Units_Per_EM, font_ttf->tt_fprops.header->xMin, font_ttf->tt_fprops.header->yMin, font_ttf->tt_fprops.header->xMax, font_ttf->tt_fprops.header->yMax); printf(" tt_metrics.bbx xMin:%ld, yMin:%ld, xMax:%ld, yMax:%ld\n", tt_metrics.bbox.xMin, tt_metrics.bbox.yMin, tt_metrics.bbox.xMax, tt_metrics.bbox.yMax); printf(" tt_imetrics x_ppem:%d, y_ppem:%d, pointSize:%.4f, upem:%d\n", tt_imetrics.x_ppem, tt_imetrics.y_ppem, (double)tt_imetrics.pointSize/64.0, font_ttf->tt_upem); } val = NULL; if ((mode == MODE_BITMAP1) || (mode == MODE_BITMAP2)){ tt_bitmap.width = (tt_metrics.bbox.xMax-tt_metrics.bbox.xMin)*asp/64 + 1; tt_bitmap.rows = (tt_metrics.bbox.yMax-tt_metrics.bbox.yMin)/64 + 1; tt_bitmap.cols = (tt_bitmap.width + 7) >> 3; tt_bitmap.size = tt_bitmap.cols * tt_bitmap.rows; tt_bitmap.bitmap = (void *) malloc(tt_bitmap.size); tt_bitmap.flow = TT_Flow_Down; (void)memclr((char*) tt_bitmap.bitmap, tt_bitmap.size); xoff = -tt_metrics.bbox.xMin; yoff = -tt_metrics.bbox.yMin; aspd = 1.0 - asp; if (aspd < 0) aspd = 0.0 - aspd; if (aspd < 1.0e-6){ error = TT_Get_Glyph_Bitmap(font_ttf->tt_glyph, &tt_bitmap, xoff, yoff); if (error) return NULL; } else { TT_Matrix mat; mat.xx = asp * (1<<16); mat.xy = 0; mat.yx = 0; mat.yy = 1 * (1<<16); TT_Get_Glyph_Outline(font_ttf->tt_glyph, &tt_outline); TT_Transform_Outline(&tt_outline, &mat); TT_Translate_Outline(&tt_outline, -asp*tt_metrics.bbox.xMin, -tt_metrics.bbox.yMin); error = TT_Get_Outline_Bitmap(FreeType_Engine, &tt_outline, &tt_bitmap); TT_Done_Outline(&tt_outline); } ALLOC_IF_ERR(bm, struct vf_s_bitmap){ vf_error = VF_ERR_NO_MEMORY; return NULL; } bm->bbx_width = tt_bitmap.width; bm->bbx_height = tt_bitmap.rows; bm->raster = tt_bitmap.cols; bm->bitmap = (unsigned char*)tt_bitmap.bitmap; bm->off_x = tt_metrics.bearingX * asp / 64; bm->off_y = tt_metrics.bbox.yMax / 64; bm->mv_x = tt_metrics.advance * asp / 64; bm->mv_y = 0; val = (void*) bm; } else if (mode == MODE_METRIC1){ double xppem = 64.0 * (double)tt_imetrics.x_ppem; double yppem = 64.0 * (double)tt_imetrics.y_ppem; double pt = (double)tt_imetrics.pointSize / 64.0; double ptx = (double)tt_imetrics.pointSize * asp / 64.0; if (metric1 != NULL){ metric1->bbx_width = (double)((tt_metrics.bbox.xMax - tt_metrics.bbox.xMin) / xppem)*ptx; metric1->bbx_height = (double)((tt_metrics.bbox.yMax - tt_metrics.bbox.yMin) / yppem)*pt; metric1->off_x = (double)(tt_metrics.bearingX / xppem) * ptx; metric1->off_y = (double)(tt_metrics.bbox.yMax / yppem) * pt; metric1->mv_x = (double)(tt_metrics.advance / xppem) * ptx; /*XXX*/ metric1->mv_y = 0.0 * pt; /*XXX*/ } val = (void*) metric1; } else if (mode == MODE_METRIC2){ if (metric2 != NULL){ metric2->bbx_width = toint((double)(tt_metrics.bbox.xMax-tt_metrics.bbox.xMin)*asp /64.0); metric2->bbx_height = toint((double)(tt_metrics.bbox.yMax-tt_metrics.bbox.yMin) /64.0); metric2->off_x = toint((double)tt_metrics.bearingX * asp / 64.0); metric2->off_y = toint((double)tt_metrics.bbox.yMax / 64.0); metric2->mv_x = toint((double)tt_metrics.advance * asp / 64.0); metric2->mv_y = 0.0; } val = (void*) metric2; } else if (mode == MODE_OUTLINE){ error = TT_Get_Glyph_Outline(font_ttf->tt_glyph, &tt_outline); if (error) return NULL; ol = get_outline_ttf_to_vflib(font_ttf, &tt_outline, &tt_metrics, &tt_imetrics, ps, mag_x, mag_y, dpix, dpiy, asp); TT_Done_Outline(&tt_outline); val = (void*) ol; } else if (mode == MODE_FONTBBX1){ long xmax = font_ttf->tt_fprops.header->xMax; long xmin = font_ttf->tt_fprops.header->xMin; long ymax = font_ttf->tt_fprops.header->yMax; long ymin = font_ttf->tt_fprops.header->yMin; if (fontbbx1 != NULL){ fontbbx1->w = (double)(xmax - xmin) * ps * asp / font_ttf->tt_upem; fontbbx1->h = (double)(ymax - ymin) * ps / font_ttf->tt_upem; fontbbx1->xoff = (double) xmin * ps * asp / font_ttf->tt_upem; fontbbx1->yoff = (double) ymin * ps / font_ttf->tt_upem; } val = (void*) fontbbx1; } else if (mode == MODE_FONTBBX2){ long xmax = font_ttf->tt_fprops.header->xMax; long xmin = font_ttf->tt_fprops.header->xMin; long ymax = font_ttf->tt_fprops.header->yMax; long ymin = font_ttf->tt_fprops.header->yMin; if (fontbbx2 != NULL){ fontbbx2->w = (double)(xmax - xmin) * ps * asp / font_ttf->tt_upem; fontbbx2->h = (double)(ymax - ymin) * ps / font_ttf->tt_upem; fontbbx2->xoff = (double) xmin * ps * asp / font_ttf->tt_upem; fontbbx2->yoff = (double) ymin * ps / font_ttf->tt_upem; } val = (void*) fontbbx2; } else { fprintf(stderr, "VFlib: Internal error in ttf_get_xxx1()\n"); fprintf(stderr, "Unknown mode: %d\n", mode); abort(); } return val; } Private long fix_jisx0212_row47_empty_sjis(long code_point) { unsigned int c1, c2; int row_offset, cell_offset, adjust; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; /* SJIS->JIS */ if (c2 < 159) adjust = 1; else adjust = 0; row_offset = (c1 < 160) ? 112 : 176; cell_offset = (adjust == 1) ? ((c2 > 127) ? 32 : 31) : 126; c1 = ((c1 - row_offset) << 1) - adjust; c2 -= cell_offset; /* Fix */ if (c1 >= (47 + 0x20)) c1++; /* JIS -> SJIS */ row_offset = (c1 < 95) ? 112 : 176; cell_offset = (c1 % 2) ? ((c2 > 95) ? 32 : 31) : 126; c1 = ((c1 + 1) >> 1) + row_offset; c2 += cell_offset; return c1*0x100 + c2; } /* * The following routine is snarfed from VF_Ftype.c * in VFlib 2.23 by Mr Matsuda. * --- H.Kakugawa */ Private VF_OUTLINE get_outline_ttf_to_vflib(FONT_TTF font_ttf, TT_Outline *tt_outline, TT_Glyph_Metrics *tt_metrics, TT_Instance_Metrics *tt_imetrics, double ps, double mag_x, double mag_y, double dpix, double dpiy, double asp) { int vfsize, ct, pt, sp, ep, p1, p2, p3; int maxw, maxh, bbx; double x1, y1, x2, y2, x3, y3, f, fupem, mmm; VF_OUTLINE_ELEM token, *vfdata, *vfp; mmm = 4*4; /*ad-hoc*/ maxw = (tt_metrics->bbox.xMax - tt_metrics->bbox.xMin + 1); maxh = (tt_metrics->bbox.yMax - tt_metrics->bbox.yMin + 1); if ((bbx = maxw) < maxh) bbx = maxh; #if 0 printf("*** %d %d %d %d %d %d %d %d\n", maxw, maxh, bbx, font_ttf->tt_upem, font_ttf->tt_fprops.header->xMin, font_ttf->tt_fprops.header->yMin, font_ttf->tt_fprops.header->xMax, font_ttf->tt_fprops.header->yMax); #endif #if 0 printf("*** %.3f %.3f %.3f %ld %ld %ld %ld\n", tt_metrics->advance/64.0, tt_metrics->bearingX/64.0, tt_metrics->bearingY/64.0, tt_metrics->bbox.xMax/64, tt_metrics->bbox.xMin/64, tt_metrics->bbox.yMax/64, tt_metrics->bbox.yMin/64); printf(" %.3f %.3f\n", (double)tt_imetrics->x_ppem / font_ttf->tt_upem, (double)tt_imetrics->y_ppem / font_ttf->tt_upem); #endif vfsize = VF_OL_OUTLINE_HEADER_SIZE_TYPE0; for (ct = pt = 0; ct < tt_outline->n_contours; ct++){ token = 0L; sp = pt; ep = tt_outline->contours[ct]; for (; pt <= ep; pt++) { p1 = pt; p2 = (p1 < ep)? (p1 + 1) : sp; #if 0 printf(" (%ld %ld)\n", tt_outline->points.x[p1], tt_outline->points.y[p1]); #endif /*XXX 1.0 [] => 1.1 XXX*/ /*XXX conEnds[] => contors[] XXX*/ /*XXX contours => n_contours XXX*/ /*XXX xCoord => points.x XXX*/ /*XXX yCoord => points.y XXX*/ /*XXX flag[] => flags XXX*/ if (tt_outline->flags[p1] & tt_outline->flags[p2] & TTF_OL_ONCURVE){ /* Line */ if (token != VF_OL_INSTR_LINE){ token = VF_OL_INSTR_LINE; vfsize++; } vfsize += 1; } else { if (tt_outline->flags[p2] & TTF_OL_ONCURVE) continue; /* spline */ if (token != VF_OL_INSTR_BEZ){ token = VF_OL_INSTR_BEZ; vfsize++; } vfsize += 3; } } } vfsize++; if ((vfdata = (VF_OUTLINE)malloc(vfsize*sizeof(long))) == (VF_OUTLINE)NULL) return NULL; f = (double)VF_OL_COORD_RANGE / (double)(bbx * mmm); fupem = (double)VF_OL_COORD_RANGE / (double)bbx; vfdata[VF_OL_HEADER_INDEX_HEADER_TYPE] = VF_OL_OUTLINE_HEADER_TYPE0; vfdata[VF_OL_HEADER_INDEX_DATA_SIZE] = vfsize; vfdata[VF_OL_HEADER_INDEX_DPI_X] = VF_OL_HEADER_ENCODE(dpix); vfdata[VF_OL_HEADER_INDEX_DPI_Y] = VF_OL_HEADER_ENCODE(dpiy); vfdata[VF_OL_HEADER_INDEX_POINT_SIZE] = VF_OL_HEADER_ENCODE(ps); vfdata[VF_OL_HEADER_INDEX_EM] = ceil(fupem * font_ttf->tt_upem); vfdata[VF_OL_HEADER_INDEX_MAX_X] = toint(f * (tt_metrics->bbox.xMax - tt_metrics->bbox.xMin)) + 1; vfdata[VF_OL_HEADER_INDEX_MAX_Y] = toint(f * (tt_metrics->bbox.yMax - tt_metrics->bbox.yMin)) + 1; /* ... horizintal direction only. B-( */ vfdata[VF_OL_HEADER_INDEX_REF_X] = toint(f * (tt_metrics->bearingX)); vfdata[VF_OL_HEADER_INDEX_REF_Y] = toint(f * tt_metrics->bbox.yMax); vfdata[VF_OL_HEADER_INDEX_MV_X] = toint(f * (tt_metrics->advance)); vfdata[VF_OL_HEADER_INDEX_MV_Y] = toint(f * 0); #define ConvX(x) (long)(VF_OL_COORD_OFFSET + f * ((x)-tt_metrics->bbox.xMin)) #define ConvY(y) (long)(VF_OL_COORD_OFFSET + f * (tt_metrics->bbox.yMax-(y))) vfp = &vfdata[VF_OL_OUTLINE_HEADER_SIZE_TYPE0]; for (ct = pt = 0; ct < tt_outline->n_contours; ct++){ token = (VF_OL_INSTR_TOKEN | VF_OL_INSTR_CWCURV); sp = pt; ep = tt_outline->contours[ct]; for (; pt <= ep; pt++){ p1 = pt; p2 = (p1 < ep) ? (p1 + 1) : sp; p3 = (p2 < ep) ? (p2 + 1) : sp; if (tt_outline->flags[p1] & tt_outline->flags[p2] & TTF_OL_ONCURVE){ /* Line */ if (token != (VF_OL_INSTR_TOKEN | VF_OL_INSTR_LINE)) { if (token == (VF_OL_INSTR_TOKEN | VF_OL_INSTR_CWCURV)){ *(vfp++) = token | VF_OL_INSTR_LINE; } else { *(vfp++) = VF_OL_INSTR_TOKEN | VF_OL_INSTR_LINE; } token = VF_OL_INSTR_TOKEN | VF_OL_INSTR_LINE; } x1 = tt_outline->points[p1].x; y1 = tt_outline->points[p1].y; *(vfp++) = VF_OL_MAKE_XY(ConvX(x1), ConvY(y1)); } else { if (tt_outline->flags[p2] & TTF_OL_ONCURVE) continue; /* spline */ if (token != (VF_OL_INSTR_TOKEN | VF_OL_INSTR_BEZ)){ if (token == (VF_OL_INSTR_TOKEN | VF_OL_INSTR_CWCURV)){ *(vfp++) = token | VF_OL_INSTR_BEZ; } else { *(vfp++) = VF_OL_INSTR_TOKEN | VF_OL_INSTR_BEZ; } token = VF_OL_INSTR_TOKEN | VF_OL_INSTR_BEZ; } if (tt_outline->flags[p1] & TTF_OL_ONCURVE){ x1 = tt_outline->points[p1].x; y1 = tt_outline->points[p1].y; } else { x1 = (tt_outline->points[p1].x + tt_outline->points[p2].x) / 2.0; y1 = (tt_outline->points[p1].y + tt_outline->points[p2].y) / 2.0; } x2 = tt_outline->points[p2].x; y2 = tt_outline->points[p2].y; if (tt_outline->flags[p3] & TTF_OL_ONCURVE){ x3 = tt_outline->points[p3].x; y3 = tt_outline->points[p3].y; } else { x3 = (tt_outline->points[p2].x + tt_outline->points[p3].x) / 2.0; y3 = (tt_outline->points[p2].y + tt_outline->points[p3].y) / 2.0; } *(vfp++) = VF_OL_MAKE_XY(ConvX(x1), ConvY(y1)); *(vfp++) = VF_OL_MAKE_XY(ConvX((x1 + 2.0 * x2) / 3.0), ConvY((y1 + 2.0 * y2) / 3.0)); *(vfp++) = VF_OL_MAKE_XY(ConvX((2.0 * x2 + x3) / 3.0), ConvY((2.0 * y2 + y3) / 3.0)); } } } *(vfp++) = 0L; if (vfdata[VF_OL_OUTLINE_HEADER_SIZE_TYPE0] != 0L) vfdata[VF_OL_OUTLINE_HEADER_SIZE_TYPE0] |= VF_OL_INSTR_CHAR; return (VF_OUTLINE)vfdata; } Private char* ttf_get_font_prop(VF_FONT font, char *prop_name) { /* CALLER MUST RELEASE RETURNED STRING LATER */ SEXP v; FONT_TTF font_ttf; char str[512]; double dpix, dpiy, p; if ((font_ttf = (FONT_TTF)font->private) == NULL){ fprintf(stderr, "VFlib: internal error in ttf_get_font_prop()\n"); abort(); } if ((v = vf_sexp_assoc(prop_name, font_ttf->props)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else if ((v = vf_sexp_assoc(prop_name, default_properties)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } if (font->mode == 1){ if ((dpix = font->dpi_x) < 0) if ((dpix = font_ttf->dpi_x) < 0) dpix = v_default_dpi_x; if ((dpiy = font->dpi_y) < 0) if ((dpiy = font_ttf->dpi_y) < 0) dpiy = v_default_dpi_y; if ((p = font->point_size) < 0) if ((p = font_ttf->point_size) < 0) p = v_default_point_size; p = p * font->mag_y * font_ttf->mag; if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(p * 10.0)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(p * dpiy / POINTS_PER_INCH)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpix)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpiy)); return vf_strdup(str); } } else if (font->mode == 2){ if ((p = font->pixel_size) < 0) if ((p = font_ttf->pixel_size) < 0) p = v_default_pixel_size; p = p * font->mag_y * font_ttf->mag; if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(p * 10.0 * POINTS_PER_INCH / VF_DEFAULT_DPI)); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(p)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(VF_DEFAULT_DPI)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(VF_DEFAULT_DPI)); return vf_strdup(str); } } #if 0 if (strcmp(prop_name, "FONT_ASCENT") == 0){ ; } else if (strcmp(prop_name, "FONT_DESCENT") == 0){ ; } #endif return NULL; } Private int find_encoding_mapping(FONT_TTF font_ttf) { int ccv_id, map, ntables; char *internal_enc, *cs; unsigned short platform_id, encoding_id; TT_Error error; if (ttf_debug('p')){ printf("VFlib TrueType: Searching platform:%d (%s), encoding:%d (%s))\n", font_ttf->platform_id, platform_id2name(font_ttf->platform_id), font_ttf->encoding_id, encoding_id2name(font_ttf->platform_id,font_ttf->encoding_id)); } /* Find mapping table number to be used in TrueType font file. */ map = font_ttf->mapping_id; ntables = TT_Get_CharMap_Count(font_ttf->tt_face); if (map != TT_MAP_ID_SEARCH){ if (ntables == 0){ fprintf(stderr, "VFlib TrueType warning: No mapping tables: %s\n", font_ttf->font_name); return -1; } else if (ntables < 0){ fprintf(stderr, "VFlib TrueType Internal error: CharMap_Count()%s\n", font_ttf->font_name); return -1; } else if ((map < 0) || (ntables <= map)){ map = 0; fprintf(stderr, "VFlib TrueType warning: Illegal mapping table ID."); fprintf(stderr, "Use mapping table #0.\n"); } error = TT_Get_CharMap_ID(font_ttf->tt_face, map, &platform_id, &encoding_id); if (error) return -1; if (ttf_debug('p')) printf("VFlib TrueType: Platform,Encoding=(%s,%s)\n", platform_id2name(platform_id), encoding_id2name(platform_id, encoding_id)); } else { for (map = 0; map < ntables; map++){ error = TT_Get_CharMap_ID(font_ttf->tt_face, map, &platform_id, &encoding_id); if (ttf_debug('p')) printf("VFlib TrueType: mapping #%d: Platform: %s, Encoding:%s\n", map, platform_id2name(platform_id), encoding_id2name(platform_id, encoding_id)); if ( ((font_ttf->platform_id == TT_PLAT_ID_ANY) || (platform_id == font_ttf->platform_id)) && ((font_ttf->encoding_id == TT_ENC_ID_ANY) || (encoding_id == font_ttf->encoding_id)) ){ break; } font_ttf->mapping_id = 0; } if (map == ntables){ fprintf(stderr, "VFlib TrueType: Mapping table not found.\n"); return -1; } } font_ttf->mapping_id = map; if (ttf_debug('p')) printf("VFlib TrueType: Use mapping table #%d (encoding#%d)\n", font_ttf->mapping_id, encoding_id); error = TT_Get_CharMap(font_ttf->tt_face, font_ttf->mapping_id, &font_ttf->tt_charmap); if (error) return -1; if (font_ttf->encoding_force < 0){ internal_enc = conv_encoding_ttf_to_vflib(encoding_id, platform_id); } else { internal_enc = conv_encoding_ttf_to_vflib(font_ttf->encoding_force, platform_id); if (ttf_debug('p')){ printf("VFlib TrueType: Encoding force: %s ==> %s\n", encoding_id2name(platform_id, encoding_id), encoding_id2name(platform_id, font_ttf->encoding_force)); } } /* ad-hoc */ cs = font_ttf->charset_name; if ((internal_enc != NULL) && (strcmp(internal_enc, "UNICODE") == 0)) cs = "UNICODE"; ccv_id = vf_ccv_require(font_ttf->charset_name, font_ttf->encoding_name, cs, internal_enc); if (ttf_debug('p') || ttf_debug('c')) printf("VFlib TrueType: CCV ID = %d\n", ccv_id); return ccv_id; } Private struct s_id_name_tbl PlatformNameTable[] = { {TT_PLAT_ID_ANY, "any"}, {TT_PLAT_ID_ANY, "?"}, {TT_PLAT_ID_ANY, "*"}, {TT_PLAT_ID_APPLE, "apple"}, {TT_PLAT_ID_MACINTOSH, "macintosh"}, {TT_PLAT_ID_MACINTOSH, "mac"}, {TT_PLAT_ID_ISO, "iso"}, {TT_PLAT_ID_ISO, "ascii"}, {TT_PLAT_ID_MICROSOFT, "windows"}, {TT_PLAT_ID_MICROSOFT, "microsoft"}, {TT_PLAT_ID_MICROSOFT, "ms"}, {-1, NULL}}; Private struct s_id_name_tbl EncodingNameTableISO[] = { {TT_ENC_ID_ANY, "any"}, {TT_ENC_ID_ANY, "?"}, {TT_ENC_ID_ANY, "*"}, {TT_ENC_ID_ISO_ASCII, "ascii"}, {TT_ENC_ID_ISO_10646, "iso10464"}, {TT_ENC_ID_ISO_8859_1, "iso8859-1"}, {-1, NULL}}; Private struct s_id_name_tbl EncodingNameTableMS[] = { {TT_ENC_ID_ANY, "any"}, {TT_ENC_ID_ANY, "?"}, {TT_ENC_ID_ANY, "*"}, {TT_ENC_ID_MS_SYMBOL, "symbol"}, {TT_ENC_ID_MS_UNICODE, "unicode"}, {TT_ENC_ID_MS_SHIFT_JIS, "shift-jis"}, {TT_ENC_ID_MS_SHIFT_JIS, "sjis"}, {TT_ENC_ID_MS_SHIFT_JIS, "ms-kanji"}, {TT_ENC_ID_MS_BIG5, "big5"}, {TT_ENC_ID_MS_RPC, "rpc"}, {TT_ENC_ID_MS_WANSUNG, "wansung"}, {TT_ENC_ID_MS_JOHAB, "johab"}, {-1, NULL}}; Private struct s_id_name_tbl EncodingNameTableApple[] = { {TT_ENC_ID_ANY, "any"}, {TT_ENC_ID_ANY, "?"}, {TT_ENC_ID_ANY, "*"}, {TT_ENC_ID_APPLE_DEFAULT, "default"}, {TT_ENC_ID_APPLE_UNICODE_1_1, "unicode1.1"}, {TT_ENC_ID_APPLE_UNICODE_2_0, "unicode2.0"}, {TT_ENC_ID_APPLE_ISO_10646, "iso10464"}, {-1, NULL}}; Private struct s_id_name_tbl EncodingNameTableMac[] = { {TT_ENC_ID_ANY, "any"}, {TT_ENC_ID_ANY, "?"}, {TT_ENC_ID_ANY, "*"}, {TT_ENC_ID_MAC_ROMAN, "roman"}, {TT_ENC_ID_MAC_JAPANESE, "japanese"}, {TT_ENC_ID_MAC_TRADITIONAL_CHINESE, "traditional-chinese"}, {TT_ENC_ID_MAC_KOREAN, "korean"}, {TT_ENC_ID_MAC_ARABIC, "arabic"}, {TT_ENC_ID_MAC_HEBREW, "hebrew"}, {TT_ENC_ID_MAC_GREEK, "greek"}, {TT_ENC_ID_MAC_RUSSIAN, "russian"}, {-1, NULL}}; Private struct s_id_name_tbl *EncodingNameTableTable[] = { EncodingNameTableApple, EncodingNameTableMac, EncodingNameTableISO, EncodingNameTableMS, NULL }; Private int get_id_from_platform_name(char *name) { return name2id(name, PlatformNameTable, TT_PLAT_ID_ANY, "platform name"); } Private int get_id_from_encoding_name(char *name, int platform) { struct s_id_name_tbl *tbl; tbl = EncodingNameTableTable[platform]; return name2id(name, tbl, TT_ENC_ID_ANY, "encoding name"); } Private int name2id(char *name, ID_NAME_TBL tbl, int value_default, char *desc) { int id, t; char *p; for (p = name; *p != '\0'; p++){ if (!isspace((int)*p)) break; } if (*p == '\0'){ id = value_default; } else if (isdigit((int)*p)){ id = atoi(p); } else { id = value_default; for (t = 0; tbl[t].name != NULL; t++){ if (vf_strncmp_ci(name, tbl[t].name, strlen(tbl[t].name)) == 0) return tbl[t].id; } fprintf(stderr, "VFlib warning: in vflibcap - No such %s: %s\n", desc, name); } return id; } struct s_ttf_encoding_tbl { int ttf_enc; char *str_name; }; Private struct s_ttf_encoding_tbl ttf_encoding_tbl_apple[] = { {-10000, NULL} }; Private struct s_ttf_encoding_tbl ttf_encoding_tbl_mac[] = { {-10000, NULL} }; Private struct s_ttf_encoding_tbl ttf_encoding_tbl_iso[] = { {-10000, NULL} }; Private struct s_ttf_encoding_tbl ttf_encoding_tbl_ms[] = { {TT_ENC_ID_MS_SYMBOL, "Symbol"}, {TT_ENC_ID_MS_UNICODE, "UNICODE"}, {TT_ENC_ID_MS_SHIFT_JIS, "SJIS"}, {TT_ENC_ID_MS_BIG5, "BIG5"}, {TT_ENC_ID_MS_RPC, "RPC"}, {TT_ENC_ID_MS_WANSUNG, "WANSUNG"}, {TT_ENC_ID_MS_JOHAB, "JOHAB"}, {TT_ENC_ID_ANY, NULL}, {-10000, NULL} }; Private struct s_ttf_encoding_tbl *ttf_encoding_tbltbl[] = { ttf_encoding_tbl_apple, ttf_encoding_tbl_mac, ttf_encoding_tbl_iso, ttf_encoding_tbl_ms, NULL }; Private char* conv_encoding_ttf_to_vflib(int ttf_enc, int platform) { int i; struct s_ttf_encoding_tbl *tbl; tbl = ttf_encoding_tbltbl[platform]; for (i = 0; tbl[i].ttf_enc >= -10; i++){ if (tbl[i].ttf_enc == ttf_enc) return tbl[i].str_name; } return NULL; } Private char* platform_id2name(int); Private char *ttf_platform_name[] = { "Apple", "Macintosh", "ISO", "Microsoft", NULL }; Private char *ttf_encoding_name_apple[] = { "Apple" "Unicode 1.1", "IS10646", "Unicode 2.0", NULL }; Private char *ttf_encoding_name_mac[] = { "Roman", "Japanese", "Chinese", "Koran", "Arabic", "Hebrew", "Greek", "Russian", "RSymbol", "Devanagari", "Gurmukhi", "Gujarati", "Oriya", "Bengali", "Tamil", "Telugu", "Kannada", "Malayalam", "Singalese", "Burmese", "Khmer", "Thai", "Laotian", "Georgian", "Armenian", "Maldivian", "Tibetan", "Mongolian", "Geez", "Slavic", "Vietnamese", "Sindhi", "Uninterp", NULL }; Private char *ttf_encoding_name_iso[] = { "7-bit ASCII", "ISO 10646", "ISO 8859-1", NULL}; Private char *ttf_encoding_name_ms[] = { "Symbol", "Unicode", "Shift JIS", "Big 5", "RPC", "WanSung", "Johab", NULL }; Private char **ttf_encoding_table[] = { ttf_encoding_name_apple, ttf_encoding_name_mac, ttf_encoding_name_iso, ttf_encoding_name_ms, }; Private char* platform_id2name(int plat_id) { int j; char *s; for (j = 0; ttf_platform_name[j] != NULL; j++){ if (j == plat_id) break; } if ((s = ttf_platform_name[j]) == NULL) return "?"; return s; } Private char* encoding_id2name(int plat_id, int enc_id) { int j; char *s; for (j = 0; ttf_encoding_table[plat_id][j] != NULL; j++){ if (j == enc_id) break; } if ((s = ttf_encoding_table[plat_id][j]) == NULL) return "?"; return s; } Private int ttf_debug2(char type, char *str); Private int ttf_debug(char type) { int v; char *p0; v = FALSE; if (env_debug_mode != NULL){ if ((v = ttf_debug2(type, env_debug_mode)) == TRUE) return TRUE; } if (default_debug_mode == NULL) return FALSE; if ((p0 = vf_sexp_get_cstring(default_debug_mode)) == NULL) return FALSE; return ttf_debug2(type, p0); } Private int ttf_debug2(char type, char *p0) { char *p; for (p = p0; *p != '\0'; p++){ if (*p == type) return TRUE; } for (p = p0; *p != '\0'; p++){ if (*p == '*') return TRUE; } return FALSE; } /*EOF*/ vflib3-3.6.14.dfsg/src/bmlist.c0000644000175000017500000001246307324450574015531 0ustar mohuramohura/* * bmlist.c - bitmap list * by Hirotsugu Kakugawa */ /* * Copyright (C) 1997-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include "config.h" #include "VFlib-3_6.h" #include "VFsys.h" #include "bitmap.h" #include "bmlist.h" Private void vf_bitmaplist_compose_accumlate(VF_BITMAP,VF_BITMAP,int,int); Public int VF_BitmapListInit(VF_BITMAPLIST bmlist) { return vf_bitmaplist_init(bmlist); } Public int VF_BitmapListPut(VF_BITMAPLIST bmlist, VF_BITMAP bm, long xoff, long yoff) { return vf_bitmaplist_put(bmlist, bm, xoff, yoff); } Public VF_BITMAP VF_BitmapListCompose(VF_BITMAPLIST bmlist) { return vf_bitmaplist_compose(bmlist); } Public int VF_BitmapListFinish(VF_BITMAPLIST bmlist) { return vf_bitmaplist_finish(bmlist); } Glocal int vf_bitmaplist_init(VF_BITMAPLIST bmlist) { bmlist->next = NULL; return 0; } Glocal int vf_bitmaplist_finish(VF_BITMAPLIST bmlist) { VF_BITMAPLIST elem, elem_next; elem = bmlist->next; while (elem != NULL){ elem_next = elem->next; VF_FreeBitmap(elem->bitmap); vf_free(elem); elem = elem_next; } bmlist->next = NULL; return 0; } Glocal int vf_bitmaplist_put(VF_BITMAPLIST bmlist, VF_BITMAP bitmap, long off_x, long off_y) { VF_BITMAPLIST elem; ALLOC_IF_ERR(elem, struct vf_s_bitmaplist){ vf_error = VF_ERR_NO_MEMORY; return -1; } elem->off_x = off_x; elem->off_y = off_y; elem->bitmap = bitmap; elem->next = bmlist->next; bmlist->next = elem; return 0; } Glocal VF_BITMAP vf_bitmaplist_compose(VF_BITMAPLIST bmlist) { VF_BITMAPLIST elem, elem_a, elem_z; VF_BITMAP composed_bm; int bbx_llx, bbx_lly, bbx_urx, bbx_ury; int llx, lly, urx, ury; if (bmlist->next == NULL){ if ((composed_bm = vf_alloc_bitmap(1, 1)) == NULL) return NULL; composed_bm->off_x = 0; composed_bm->off_y = 0; composed_bm->mv_x = 0; composed_bm->mv_y = 0; return composed_bm; } elem_a = bmlist->next; for (elem_z = elem_a; elem_z->next != NULL; elem_z = elem_z->next) ; elem = elem_a; bbx_llx = elem->off_x + elem->bitmap->off_x; bbx_lly = elem->off_y + elem->bitmap->off_y - elem->bitmap->bbx_height; bbx_urx = elem->off_x + elem->bitmap->off_x + elem->bitmap->bbx_width; bbx_ury = elem->off_y + elem->bitmap->off_y; for (elem = elem->next; elem != NULL; elem = elem->next){ llx = elem->off_x + elem->bitmap->off_x; lly = elem->off_y + elem->bitmap->off_y - elem->bitmap->bbx_height; urx = elem->off_x + elem->bitmap->off_x + elem->bitmap->bbx_width; ury = elem->off_y + elem->bitmap->off_y; if (llx < bbx_llx) bbx_llx = llx; if (lly < bbx_lly) bbx_lly = lly; if (urx > bbx_urx) bbx_urx = urx; if (ury > bbx_ury) bbx_ury = ury; } composed_bm = vf_alloc_bitmap(bbx_urx - bbx_llx + 1, bbx_ury - bbx_lly + 1); if (composed_bm == NULL) return NULL; composed_bm->off_x = bbx_llx; /* == bbx_ulx */ composed_bm->off_y = bbx_ury; /* == bbx_uly */ composed_bm->mv_x = elem_a->off_x - elem_z->off_x + elem_a->bitmap->mv_x; composed_bm->mv_y = elem_a->off_y - elem_z->off_y + elem_a->bitmap->mv_y; for (elem = bmlist->next; elem != NULL; elem = elem->next){ vf_bitmaplist_compose_accumlate(composed_bm, elem->bitmap, elem->off_x, elem->off_y); } return composed_bm; } Private void vf_bitmaplist_compose_accumlate(VF_BITMAP bm_acc, VF_BITMAP bm_put, int off_x, int off_y) { int asx, asy, asxw, asxmr, asxml, pxw, nb; unsigned char *al, *pl; int px, py, ay; unsigned char mask[] = { 0xff, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe }; asx = bm_put->off_x + off_x - bm_acc->off_x; asy = -(bm_put->off_y + off_y - bm_acc->off_y); asxw = asx / 8; asxmr = asx % 8; asxml = 8 - asxmr; pxw = (bm_put->bbx_width+7)/8; if (asxmr == 0){ for (py = 0, ay = asy; py < bm_put->bbx_height; py++, ay++){ al = &bm_acc->bitmap[bm_acc->raster*ay + asxw]; pl = &bm_put->bitmap[bm_put->raster*py]; for (px = pxw; px > 0; --px) *(al++) |= *(pl++); } } else { nb = (asx + bm_put->bbx_width + 7)/8 - (asx/8); for (py = 0, ay = asy; py < bm_put->bbx_height; py++, ay++){ al = &bm_acc->bitmap[bm_acc->raster*ay + asxw]; pl = &bm_put->bitmap[bm_put->raster*py]; for (px = nb; px > 1; --px){ *(al+1) |= (*pl << asxml); *(al++) |= (*(pl++) >> asxmr); } *al |= ((*pl >> asxmr) & mask[(asx + bm_put->bbx_width) % 8]); } } } /*EOF*/ vflib3-3.6.14.dfsg/src/cache.c0000644000175000017500000005076207367713605015312 0ustar mohuramohura/* * cache.c - generic cache module * by Hirotsugu Kakugawa * 5 Aug 1996 */ /* * Copyright (C) 1996, 1997 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include "VFlib-3_6.h" #include "VFsys.h" #include "cache.h" /** ** CACHE (lru+hash) **/ Private void *c_get_elem(VF_CACHE,void*,int); Private void c_del_elem(VF_CACHE,void*,int); Private void lru_move_top(VF_CACHE,VF_CACHE_ELEM); Private void lru_put_top(VF_CACHE,VF_CACHE_ELEM); Private VF_CACHE_ELEM lru_delete_tail(VF_CACHE); Private void lru_unlink_elem(VF_CACHE,VF_CACHE_ELEM); Private int c_hash(VF_CACHE,void*,int); Private VF_CACHE_ELEM c_hash_is_interned(VF_CACHE,void*,int); Private void c_hash_intern(VF_CACHE,VF_CACHE_ELEM,void*,int); Private void c_hash_unintern(VF_CACHE,VF_CACHE_ELEM); /* vf_cache_create() * --- Creates a cache object. */ Public VF_CACHE vf_cache_create (int cache_size, int hash_size, void* (*load_func)(VF_CACHE,void*,int), void (*unload_func)(void*)) { int i; VF_CACHE cache; VF_CACHE_ELEM celem; if (hash_size < 1) return NULL; ALLOC_IF_ERR(cache, struct s_vf_cache) return NULL; celem = NULL; if (cache_size < 0){ cache->free_list = NULL; } else { ALLOCN_IF_ERR(celem, struct s_vf_cache_elem, cache_size){ vf_free(cache); return NULL; } for (i = 0; i < cache_size; i++) celem[i].h_forw = &celem[i+1]; celem[cache_size-1].h_forw = NULL; cache->free_list = &celem[0]; } ALLOCN_IF_ERR(cache->hash_table, struct s_vf_cache_elem, hash_size){ if (celem != NULL) vf_free(celem); vf_free(cache); return NULL; } cache->cache_size = cache_size; cache->hash_size = hash_size; cache->get = c_get_elem; cache->del = c_del_elem; cache->load_elem = load_func; cache->unload_elem = unload_func; cache->lru_list.l_forw = &cache->lru_list; cache->lru_list.l_back = &cache->lru_list; for (i = 0; i < hash_size; i++){ cache->hash_table[i].h_forw = &cache->hash_table[i]; cache->hash_table[i].h_back = &cache->hash_table[i]; } return cache; } /* c_get_elem() * --- returns a elem. If not chached, reload it. */ Private void* c_get_elem(VF_CACHE cache, void *key, int key_len) { VF_CACHE_ELEM ce; void *key2; if ((ce = c_hash_is_interned(cache, key, key_len)) != NULL){ lru_move_top(cache, ce); return (ce->object); } if ((ce = cache->free_list) == NULL){ if (cache->cache_size > 0){ if ((ce = lru_delete_tail(cache)) == NULL){ fprintf(stderr, "Internal error in GET of CACHE object\n"); abort(); } c_hash_unintern(cache, ce); ce->h_forw = cache->free_list; cache->free_list = ce; if (cache->unload_elem != NULL) (cache->unload_elem)(ce->object); else if (ce->object != NULL) vf_free(ce->object); ce->object = NULL; if (ce->key != NULL) vf_free(ce->key); } else { ALLOC_IF_ERR(ce, struct s_vf_cache_elem) return NULL; ce->h_forw = NULL; } } cache->free_list = ce->h_forw; if ((key2 = malloc(key_len)) == NULL) return NULL; memcpy(key2, key, key_len); ce->object = (cache->load_elem)(cache, key, key_len); ce->key = key2; ce->key_len = key_len; c_hash_intern(cache, ce, key2, key_len); lru_put_top(cache, ce); return (ce->object); } /* c_del_elem() * --- delete an elem. */ Private void c_del_elem(VF_CACHE cache, void *key, int key_len) { VF_CACHE_ELEM ce; if ((ce = c_hash_is_interned(cache, key, key_len)) == NULL) return; c_hash_unintern(cache, ce); lru_unlink_elem(cache, ce); if (cache->unload_elem != NULL) (cache->unload_elem)(ce->object); else if (ce->object != NULL) vf_free(ce->object); ce->object = NULL; if (cache->cache_size > 0){ ce->h_forw = cache->free_list; cache->free_list = ce; } else { vf_free(ce); } } Private void lru_unlink_elem(VF_CACHE cache, VF_CACHE_ELEM ce) { VF_CACHE_ELEM ce_b, ce_f; ce_b = ce->l_back; ce_f = ce->l_forw; ce_b->l_forw = ce_f; ce_f->l_back = ce_b; } /* lru_put_top() * --- puts an ELEM at the head of LRU list. * The ELEM must not be in LRU list. */ Private void lru_put_top(VF_CACHE cache, VF_CACHE_ELEM ce) { VF_CACHE_ELEM ce_f; ce_f = cache->lru_list.l_forw; ce->l_forw = ce_f; ce_f->l_back = ce; ce->l_back = &cache->lru_list; cache->lru_list.l_forw = ce; } /* lru_move_top() * --- moves an ELEM at the top of LRU list. * ELEM must be in LRU list. */ Private void lru_move_top(VF_CACHE cache, VF_CACHE_ELEM ce) { lru_unlink_elem(cache, ce); lru_put_top(cache, ce); } Private VF_CACHE_ELEM lru_delete_tail(VF_CACHE cache) /* NOTE: There must be at least one ELEM in LRU list */ { VF_CACHE_ELEM ce; if ((ce = cache->lru_list.l_back) == &cache->lru_list) return NULL; lru_unlink_elem(cache, ce); return ce; } Private int c_hash(VF_CACHE cache, void *key, int key_len) { char *p; int i; unsigned int h; h = 0; for (i = 0, p = key; i < key_len; i++, p++) h = (h + (unsigned int)*p) % cache->hash_size; return h; } Private VF_CACHE_ELEM c_hash_is_interned(VF_CACHE cache, void *key, int key_len) { int h; VF_CACHE_ELEM ce, ce0; h = c_hash(cache, key, key_len); ce0 = &cache->hash_table[h]; for (ce = ce0->h_forw; ce != ce0; ce = ce->h_forw){ if ((ce->key_len == key_len) && (memcmp(ce->key, key, key_len) == 0)){ if (ce != ce0->h_forw){ c_hash_unintern(cache, ce); c_hash_intern(cache, ce, NULL, h); /* MAGIC */ } return ce; } } return NULL; } Private void c_hash_intern (VF_CACHE cache, VF_CACHE_ELEM ce, void *key, int key_len) { int h; VF_CACHE_ELEM ce1; if (key == NULL) /* MAGIC */ h = key_len; else h = c_hash(cache, key, key_len); ce1 = cache->hash_table[h].h_forw; cache->hash_table[h].h_forw = ce; ce->h_forw = ce1; ce1->h_back = ce; ce->h_back = &cache->hash_table[h]; } Private void c_hash_unintern(VF_CACHE cache, VF_CACHE_ELEM ce) { VF_CACHE_ELEM ce_b, ce_f; ce_b = ce->h_back; ce_f = ce->h_forw; ce_b->h_forw = ce_f; ce_f->h_back = ce_b; } /** ** HASH TABLE ** ** 1. A hash table object is created by the following function: ** FUNC: vf_hash_create(int hash_size) ** --- Caller must specify the size of hash table. This hash object ** uses `chaining' to store data objects: the hash table can store ** any number of data objects (more than hash_size). ** 2. A data object is stored in hash table by the PUT method. ** FUNC: (HASH_OBJ->put)(HASH_OBJ, DATA_OBJ, KEY, KEY_LENGTH) ** --- A data object, DATA_OBJ, is stored with specifying its ** KEY and KEY_LENGTH, the length (in byte) of the KEY. ** This method does not return any value. If the same data object ** in the sense of KEY and KEY_LENGTH exists in the HASH_OBJ, ** the object is not newly interned and link count is increased. ** 3. Stored data object is extracted by the GET method. ** FUNC: (TABLE_OBJ->get)(HASH, KEY, KEY_ID) ** --- This extracts a data object whose key and key length matches ** KEY and KEY_LENGTH. If NULL is returned, it implies that ** such data is not interned. ** 4. Stored data object can be deleted from the hash table by DEL method. ** FUNC: (TABLE_OBJ->del)(HASH_OBJ, KEY, KEY_ID) ** --- This delets a data object whose key and key length matches ** KEY and KEY_LENGTH. If its link count is more than one, ** the link count is decremented by one and the object is not ** deleted. **/ Private void* h_hash_put_object(VF_HASH,void*,void*,int); Private void* h_hash_get_object(VF_HASH,void*,int); Private void h_hash_del_object(VF_HASH,void*,int); Private int h_hash(VF_HASH,void*,int); Private void h_hash_intern(VF_HASH,VF_HASH_ELEM,void*,int); Private void h_hash_unintern(VF_HASH,VF_HASH_ELEM); /* vf_hash_create() * --- Creates a hash table object. */ Public VF_HASH vf_hash_create (int hash_size) { int i; VF_HASH hash; if ((hash_size < 1) || ((hash = (VF_HASH)calloc(1, sizeof(struct s_vf_hash))) == NULL)) return NULL; hash->table = (VF_HASH_ELEM)calloc(hash_size, sizeof(struct s_vf_hash_elem)); if (hash->table == NULL){ vf_free(hash); return NULL; } hash->hash_size = hash_size; hash->put = h_hash_put_object; hash->get = h_hash_get_object; hash->del = h_hash_del_object; for (i = 0; i < hash_size; i++){ hash->table[i].h_forw = &hash->table[i]; hash->table[i].h_back = &hash->table[i]; } return hash; } Private void* h_hash_get_object(VF_HASH hash, void *key, int key_len) { int h; VF_HASH_ELEM he, he0; h = h_hash(hash, key, key_len); he0 = &hash->table[h]; for (he = he0->h_forw; he != he0; he = he->h_forw) if ((he->key_len == key_len) && (memcmp(he->key, key, key_len) == 0)){ if (he != he0->h_forw){ /* move top if it is not top */ h_hash_unintern(hash, he); h_hash_intern(hash, he, NULL, h); /* MAGIC */ } return he->object; } return NULL; } Private void* h_hash_put_object(VF_HASH hash, void* object, void *key, int key_len) { VF_HASH_ELEM he; void *key2; if ((he = h_hash_get_object(hash, key, key_len)) != NULL){ ++he->link_cnt; return he->object; } he = (VF_HASH_ELEM)calloc(1, sizeof(struct s_vf_hash_elem)); key2 = calloc(1, key_len); if ((he == NULL) || (key2 == NULL)) return NULL; memcpy(key2, key, key_len); he->link_cnt = 1; he->object = object; he->key = key2; he->key_len = key_len; h_hash_intern(hash, he, key2, key_len); return he->object; } Private void h_hash_del_object(VF_HASH hash, void *key, int key_len) { VF_HASH_ELEM he; if ((he = h_hash_get_object(hash, key, key_len)) == NULL) return; /* not interned */ if (--he->link_cnt > 0) return; h_hash_unintern(hash, he); if (he->key != NULL) vf_free(he->key); vf_free(he); } Private void h_hash_intern (VF_HASH hash, VF_HASH_ELEM he, void *key, int key_len) { int h; VF_HASH_ELEM he1; if (key == NULL) /* MAGIC */ h = key_len; else h = h_hash(hash, key, key_len); he1 = hash->table[h].h_forw; hash->table[h].h_forw = he; he->h_forw = he1; he1->h_back = he; he->h_back = &hash->table[h]; } Private void h_hash_unintern(VF_HASH hash, VF_HASH_ELEM he) { VF_HASH_ELEM he_b, he_f; he_b = he->h_back; he_f = he->h_forw; he_b->h_forw = he_f; he_f->h_back = he_b; } Private int h_hash(VF_HASH hash, void *key, int key_len) { char *p; int i; unsigned int h; h = 0; for (i = 0, p = key; i < key_len; i++, p++) h = h + (unsigned int)*p; return (h % hash->hash_size); } /** ** TABLE ** ** 1. A table object is created by the following function: ** FUNC: vf_table_create(void) ** --- Table size is need not be specified. It autoatically ** and dynammically allocates memory for table memory. ** 2. A table object stores data object. ** FUNC: (TABLE_OBJ->put_obj)(TABLE_OBJ, DATA_OBJ, KEY, KEY_LENGTH) ** --- A data object, DATA_OBJ, is stored with specifying its ** KEY and KEY_LENGTH, the length (in byte) of the KEY. ** This method returns an ID (a non-negative integer) for the ** DATA_OBJ. If -1 is returned, some error occured internnaly. ** ID is used to extract DATA_OBJ. If the same data object ** in the sense of KEY and KEY_LENGTH exists in the TABLE, ** the object is not newly interned and link count is increased. ** 3. Stored data object is extracted by two ways: by ID and by KEY. ** 3.1 Data extraction by ID. ** FUNC: (TABLE_OBJ->get_obj_by_id)(TABLE_OBJ, ID) ** --- Extract a data object whose id is ID. If NULL is returned, ** ID is wrong (i.e., such data is not interned). ** 3.2 Data extraction by KEY. ** FUNC: (TABLE_OBJ->get_obj_by_key)(TABLE_OBJ, KEY, KEY_LENGTH) ** --- Extract a data object whose key and key length are KEY ** and KEY_LENGTH. If NULL is returned, such data is not interned. ** 4. Stored data object can be deleted from the table by two ways: ** by ID and by KEY. ** 4.1 Data deletion by ID. ** FUNC: (TABLE_OBJ->del_obj_by_id)(TABLE_OBJ, ID) ** --- Delete a data object from the TABLE whose id is ID. Precisely, ** it decreases the link count of the data item. If it is ** zero, the data object is deleted from the TABLE. ** 4.2 Data deletion by KEY. ** FUNC: (TABLE_OBJ->del_obj_by_key)(TABLE_OBJ, KEY, KEY_LENGTH) ** --- Delete a data object whose key and key length are KEY ** and KEY_LENGTH. Precisely, it decreases the link count ** of the data item. If it is ** zero, the data object is deleted from the TABLE. ** 5. Obtaining data ID ** 5.1 Obtain data ID by KEY and KEY_LENGTH. ** FUNC: (TABLE_OBJ->get_id_by_key)(TABLE_OBJ, KEY, KEY_LENGTH) ** --- Return an ID whose key and key length are KEY and KEY_LENGTH. ** 5.2 Obtain data ID by DATA ** FUNC: (TABLE_OBJ->get_id_by_obj)(TABLE_OBJ, DATA) ** --- Return an ID for the DATA. ** 6. Incrementing link count. ** FUNC: (TABLE_OBJ->link_by_id)(TABLE_OBJ, ID) ** --- Increment link count of an entry ID. ** 7. Decrementing link count. ** FUNC: (TABLE_OBJ->unlink_by_id)(TABLE_OBJ, ID) ** --- Decrement link count of an entry ID. If link count becomes zero, ** the entry is deleted from the table. ** 8. The number of elements in the TABLE object can be checked. ** FUNC: (TABLE_OBJ->get_nelements)(TABLE_OBJ) ** --- Return the number of elements in the TABLE. ** **/ Private int table_put_obj(VF_TABLE,void*,void*,int); Private int table_put_obj2(VF_TABLE,void*,void*,int); Private int table_get_id_by_key(VF_TABLE,void*,int); Private int table_get_id_by_obj(VF_TABLE,void*); Private void *table_get_obj_by_id(VF_TABLE,int); Private void *table_get_obj_by_key(VF_TABLE,void*,int); Private int table_del_obj_by_id(VF_TABLE,int); Private int table_del_obj_by_key(VF_TABLE,void*,int); Private int table_link_by_id(VF_TABLE,int); Private int table_unlink_by_id(VF_TABLE,int); Private int table_get_nelements(VF_TABLE); #ifndef VF_INIT_TABLE_SIZE # define VF_INIT_TABLE_SIZE 16 #endif/*VF_INIT_TABLE_SIZE*/ /* vf_table_create() * --- Creates a table object. */ Public VF_TABLE vf_table_create (void) { VF_TABLE table; if (VF_INIT_TABLE_SIZE < 1){ fprintf(stderr, "Internal error: Initial # of elems for TABLE\n"); abort(); } ALLOC_IF_ERR(table, struct s_vf_table) return NULL; table->put = table_put_obj; table->put2 = table_put_obj2; table->get_id_by_key = table_get_id_by_key; table->get_id_by_obj = table_get_id_by_obj; table->get_obj_by_id = table_get_obj_by_id; table->get_obj_by_key = table_get_obj_by_key; table->del_obj_by_id = table_del_obj_by_id; table->del_obj_by_key = table_del_obj_by_key; table->link_by_id = table_link_by_id; table->unlink_by_id = table_unlink_by_id; table->get_nelements = table_get_nelements; table->nelems = 0; table->next_slot = 0; table->table_size = 0; table->table = NULL; return table; } Private int table_put_obj(VF_TABLE table, void *object, void *key, int key_len) { int id; VF_TABLE_ELEM te; if ((id = table_get_id_by_key(table, key, key_len)) >= 0){ te = &table->table[id]; ++te->link_cnt; return id; } return table_put_obj2(table, object, key, key_len); } Private int table_put_obj2(VF_TABLE table, void *object, void *key, int key_len) { int id, idz, new_table_size, i; VF_TABLE_ELEM new_table; void *key2; if (table->nelems == table->table_size){ /* realloc */ if (table->table_size == 0) new_table_size = VF_INIT_TABLE_SIZE; else new_table_size = 2 * table->table_size; ALLOCN_IF_ERR(new_table, struct s_vf_table_elem, new_table_size){ return -1; } for (i = 0; i < table->table_size; i++){ new_table[i].link_cnt = table->table[i].link_cnt; new_table[i].object = table->table[i].object; new_table[i].key = table->table[i].key; new_table[i].key_len = table->table[i].key_len; } for (i = table->table_size; i < new_table_size; i++){ new_table[i].link_cnt = 0; new_table[i].object = NULL; new_table[i].key = NULL; new_table[i].key_len = 0; } table->next_slot = table->table_size; /* possibly, free slot */ table->table_size = new_table_size; if (table->table != NULL) vf_free(table->table); table->table = new_table; } id = idz = table->next_slot; do { if ((table->table[id].object == NULL) && (table->table[id].key == NULL) && (table->table[id].key_len == 0)){ if ((key2 = malloc(key_len)) == NULL) return -1; memcpy(key2, key, key_len); table->table[id].link_cnt = 1; table->table[id].object = object; table->table[id].key = key2; table->table[id].key_len = key_len; table->next_slot = (id + 1) % table->table_size; ++table->nelems; return id; } id = (id + 1) % table->table_size; } while (id != idz); fprintf(stderr, "Cannot happen in table_put_obj()\n"); abort(); return -1; } Private int table_get_id_by_key(VF_TABLE table, void *key, int key_len) { int id; VF_TABLE_ELEM te; for (id = 0; id < table->table_size; id++){ te = &table->table[id]; if ((te->object == NULL) && (te->key == NULL) && (te->key_len == 0)) continue; if ((te->key_len == key_len) && (memcmp(te->key, key, key_len) == 0)) return id; } return -1; } Private int table_get_id_by_obj(VF_TABLE table, void *obj) { int id; VF_TABLE_ELEM te; if (obj == NULL) return -1; for (id = 0; id < table->table_size; id++){ te = &table->table[id]; if (te->object == obj) return id; } return -1; } Private void* table_get_obj_by_id(VF_TABLE table, int id) { if ((id < 0) && (table->table_size <= id)) return NULL; if (table->table == NULL) return NULL; return table->table[id].object; } Private void* table_get_obj_by_key(VF_TABLE table, void *key, int key_len) { int id; if ((id = table_get_id_by_key(table, key, key_len)) < 0) return NULL; return table->table[id].object; } Private int table_del_obj_by_id(VF_TABLE table, int id) { --table->table[id].link_cnt; if (table->table[id].link_cnt > 0) return table->table[id].link_cnt; --table->nelems; if (table->table[id].key != NULL) vf_free(table->table[id].key); table->table[id].object = NULL; table->table[id].key = NULL; table->table[id].key_len = 0; table->table[id].link_cnt = 0; return table->table[id].link_cnt; } Private int table_del_obj_by_key(VF_TABLE table, void *key, int key_len) { int id; if ((id = table_get_id_by_key(table, key, key_len)) < 0) return -1; return table_del_obj_by_id(table, id); } Private int table_link_by_id(VF_TABLE table, int id) { table->table[id].link_cnt++; return table->table[id].link_cnt; } Private int table_unlink_by_id(VF_TABLE table, int id) { --table->table[id].link_cnt; if (table->table[id].link_cnt <= 0){ --table->nelems; if (table->table[id].key != NULL) vf_free(table->table[id].key); table->table[id].object = NULL; table->table[id].key = NULL; table->table[id].key_len = 0; table->table[id].link_cnt = 0; return 0; } return table->table[id].link_cnt; } Private int table_get_nelements(VF_TABLE table) { return table->nelems; } /*EOF*/ vflib3-3.6.14.dfsg/src/ccv.c0000644000175000017500000006753007524646740015023 0ustar mohuramohura/* ccv.c --- charset conversion * by Hirotsugu Kakugawa * * 28 Jul 1997 * 20 Jan 1999 Added to check /usr/local/share/site/ * 16 Feb 1999 Added encoding conversion funcs for Row-Cell and WangSung. * 14 Sep 1999 Added alias for charset & encoding names (but not tested yet) */ /* * Copyright (C) 1997-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "consts.h" #include "str.h" #include "path.h" #include "vflpaths.h" #include "ccv.h" #define NAMEPP(s) ((s!=NULL)?s:"*") #define CS_NAME_XCHARS ".-_ " #define CS_NAME_XCHARS_TO '_' #define CCV_TBL_INITIAL_SIZE 32 static int ccv_tbl_index = 0; static int ccv_tbl_size = 0; static struct s_ccv_info *ccv_tbl = NULL; Private int ccv_add_conv_info(struct s_ccv_info*,int,char*); Private int ccv_load(struct s_ccv_info *ccvi); Private int ccv_read_header(struct s_ccv_info *ccvi); Private void ccv_read_aliases(FILE *fp, char ***oalias_tbl); Private int ccv_read_file(struct s_ccv_info *ccvi,int); Private int ccv_read_file_alloc_blocks(struct s_ccv_info *); Private int ccv_read_file_block_array(FILE*, struct s_ccv_info*, int); Private int ccv_read_file_block_random_array(FILE*, struct s_ccv_info*, int); Private int ccv_file_read_list(FILE *fp, char *buff, int nbuff); Private int ccv_file_read_elem(FILE *fp, char *buff, int nbuff); Private char *make_canonical_charset_name(char*); Private int cmp_alias(char **alias_tbl, char *name, int how_compare); Private int cmp_charset_name(char*,char*); Private int cmp_enc_name(char*,char*); Private long ccv_conv_array(int,long); Private long ccv_conv_random_array(int,long); Private long ccv_no_conv(int ccvi_index, long code_point); Private long ccv_jis2kuten(int ccvi_index, long code_point); Private long ccv_jis2euc(int ccvi_index, long code_point); Private long ccv_jis2sjis(int ccvi_index, long code_point); Private long ccv_kuten2jis(int ccvi_index, long code_point); Private long ccv_euc2jis(int ccvi_index, long code_point); Private long ccv_euc2sjis(int ccvi_index, long code_point); Private long ccv_sjis2jis(int ccvi_index, long code_point); Private long ccv_wansung2rc(int ccvi_index, long code_point); Private long ccv_rc2wansung(int ccvi_index, long code_point); Private long ccv_jis2seq2_0(int ccvi_index, long code_point); Private long ccv_jis2seq2_1(int ccvi_index, long code_point); Glocal int vf_ccv_init(void) { int new_size, i; static struct s_ccv_info *ccv_tbl_new; if (ccv_tbl == NULL){ /* initialization */ ccv_tbl_index = 0; ccv_tbl_size = CCV_TBL_INITIAL_SIZE; ALLOCN_IF_ERR(ccv_tbl, struct s_ccv_info, ccv_tbl_size){ ccv_tbl_size = 0; vf_error = VF_ERR_NO_MEMORY; return -1; } vf_ccv_install_func(NULL, "ISO", NULL, "ISO", ccv_no_conv); vf_ccv_install_func(NULL, "ISO2022", NULL, "ISO2022", ccv_no_conv); vf_ccv_install_func(NULL, "UNICODE", NULL, "UNICODE", ccv_no_conv); vf_ccv_install_func(NULL, "JIS", NULL, "JIS", ccv_no_conv); vf_ccv_install_func(NULL, "SJIS", NULL, "SJIS", ccv_no_conv); vf_ccv_install_func(NULL, "JIS", NULL, "SJIS", ccv_jis2sjis); vf_ccv_install_func(NULL, "ISO2022", NULL, "SJIS", ccv_jis2sjis); vf_ccv_install_func(NULL, "SJIS", NULL, "JIS", ccv_sjis2jis); vf_ccv_install_func(NULL, "SJIS", NULL, "ISO2022", ccv_sjis2jis); vf_ccv_install_func(NULL, "EUC", NULL, "JIS", ccv_euc2jis); vf_ccv_install_func(NULL, "EUC", NULL, "ISO2022", ccv_euc2jis); vf_ccv_install_func(NULL, "EUC", NULL, "SJIS", ccv_euc2sjis); vf_ccv_install_func(NULL, "KU-TEN", NULL, "JIS", ccv_kuten2jis); vf_ccv_install_func(NULL, "ROW-CELL", NULL, "JIS", ccv_kuten2jis); vf_ccv_install_func(NULL, "KU-TEN", NULL, "ISO2022", ccv_kuten2jis); vf_ccv_install_func(NULL, "ROW-CELL", NULL, "ISO2022", ccv_kuten2jis); vf_ccv_install_func(NULL, "JIS", NULL, "ROW-CELL", ccv_jis2kuten); vf_ccv_install_func(NULL, "ISO2022", NULL, "ROW-CELL", ccv_jis2kuten); vf_ccv_install_func(NULL, "JIS", NULL, "KU-TEN", ccv_jis2kuten); vf_ccv_install_func(NULL, "ISO2022", NULL, "KU-TEN", ccv_jis2kuten); vf_ccv_install_func(NULL, "JIS", NULL, "SEQUENTIAL2-0",ccv_jis2seq2_0); vf_ccv_install_func(NULL, "ISO2022",NULL, "SEQUENTIAL2-0",ccv_jis2seq2_0); vf_ccv_install_func(NULL, "JIS", NULL, "SEQUENTIAL2-1",ccv_jis2seq2_1); vf_ccv_install_func(NULL, "ISO2022",NULL, "SEQUENTIAL2-1",ccv_jis2seq2_1); vf_ccv_install_func(NULL, "ISO2022", NULL, "WANSUNG", ccv_jis2euc); vf_ccv_install_func(NULL, "JIS", NULL, "WANSUNG", ccv_jis2euc); vf_ccv_install_func(NULL, "ROW-CELL", NULL, "WANSUNG", ccv_rc2wansung); vf_ccv_install_func(NULL, "KU-TEN", NULL, "WANSUNG", ccv_rc2wansung); vf_ccv_install_func(NULL, "WANSUNG", NULL, "ROW-CELL", ccv_wansung2rc); vf_ccv_install_func(NULL, "WANSUNG", NULL, "KU-TEN", ccv_wansung2rc); return 0; } /* expansion */ new_size = ccv_tbl_size + 8; ALLOCN_IF_ERR(ccv_tbl_new, struct s_ccv_info, new_size){ return -1; } for (i = 0; i < ccv_tbl_index; i++){ memcpy(&ccv_tbl_new[i], &ccv_tbl[i], sizeof(struct s_ccv_info)); } vf_free(ccv_tbl); ccv_tbl_size = new_size; ccv_tbl = ccv_tbl_new; return 0; } Private long ccv_no_conv(int ccvi_index, long code_point) { return code_point; } Private long ccv_jis2kuten(int ccvi_index, long code_point) { unsigned int c1, c2; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; return (c1 - 0x20)*0x100 + (c2 - 0x20); } Private long ccv_jis2euc(int ccvi_index, long code_point) { unsigned int c1, c2; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; return (c1 + 0x80)*0x100 + (c2 + 0x80); } Private long ccv_jis2sjis(int ccvi_index, long code_point) { unsigned int c1, c2; int row_offset, cell_offset; if (code_point < 256) return code_point; /* Snarfed from 'jis2sjis()' in UJIP by Ken R Lunde. */ c1 = code_point / 0x100; c2 = code_point % 0x100; if ( (c1 < 0x21) || (0x7e < c1) || (c2 < 0x21) || (0x7e < c2) ){ return -1; } row_offset = (c1 < 95) ? 112 : 176; cell_offset = (c1 % 2) ? ((c2 > 95) ? 32 : 31) : 126; c1 = ((c1 + 1) >> 1) + row_offset; c2 += cell_offset; return c1*0x100 + c2; } Private long ccv_kuten2jis(int ccvi_index, long code_point) { unsigned int c1, c2; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; return (c1 + 0x20)*0x100 + (c2 + 0x20); } Private long ccv_euc2jis(int ccvi_index, long code_point) { unsigned int c1, c2; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; return (c1 - 0x80)*0x100 + (c2 - 0x80); } Private long ccv_euc2sjis(int ccvi_index, long code_point) { long code_point_jis; code_point_jis = ccv_euc2jis(ccvi_index, code_point); return ccv_jis2sjis(ccvi_index, code_point_jis); } Private long ccv_sjis2jis(int ccvi_index, long code_point) { unsigned int c1, c2; int row_offset, cell_offset, adjust; if (code_point < 256) return code_point; /* Snarfed from 'sjis2jis()' in UJIP by Ken R Lunde. */ c1 = code_point / 0x100; c2 = code_point % 0x100; if (c2 < 159) adjust = 1; else adjust = 0; row_offset = (c1 < 160) ? 112 : 176; cell_offset = (adjust == 1) ? ((c2 > 127) ? 32 : 31) : 126; c1 = ((c1 - row_offset) << 1) - adjust; c2 -= cell_offset; return c1*0x100 + c2; } Private long ccv_rc2wansung(int ccvi_index, long code_point) { unsigned int c1, c2; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; return (c1 + 0xa0)*0x100 + (c2 + 0xa0); } Private long ccv_wansung2rc(int ccvi_index, long code_point) { unsigned int c1, c2; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; return (c1 - 0xa0)*0x100 + (c2 - 0xa0); } Private long ccv_jis2seq2_0(int ccvi_index, long code_point) { int b0, b1; b0 = (code_point / 0x1) % 0x100; b1 = (code_point / 0x100) % 0x100; if ((b0 < 0x21) || (b0 > 0x7e)) return -1; if ((b1 < 0x21) || (b1 > 0x7e)) return -1; return 94 * (b1-0x21) + (b0-0x21) + 0; } Private long ccv_jis2seq2_1(int ccvi_index, long code_point) { int b0, b1; b0 = (code_point / 0x1) % 0x100; b1 = (code_point / 0x100) % 0x100; if ((b0 < 0x21) || (b0 > 0x7e)) return -1; if ((b1 < 0x21) || (b1 > 0x7e)) return -1; return 94 * (b1-0x21) + (b0-0x21) + 1; } Glocal int vf_ccv_require(char *cs1_name, char *cs1_enc, char *cs2_name, char *cs2_enc) { int i; if (vf_dbg_ccv == 1) printf(">> CCV searching conversion: %s %s => %s %s\n", NAMEPP(cs1_name), NAMEPP(cs1_enc), NAMEPP(cs2_name), NAMEPP(cs2_enc)); if ((cs1_name == NULL) && (cs1_enc == NULL)) return -1; for (i = 0; i < ccv_tbl_index; i++){ if ( ((ccv_tbl[i].cs1_name == NULL) || (cmp_charset_name(ccv_tbl[i].cs1_name, cs1_name) == 0) || (cmp_alias(ccv_tbl[i].cs1_name_aliases, cs1_name, 0) == 0)) && ((ccv_tbl[i].cs2_name == NULL) || (cmp_charset_name(ccv_tbl[i].cs2_name, cs2_name) == 0) || (cmp_alias(ccv_tbl[i].cs2_name_aliases, cs2_name, 0) == 0)) && ((ccv_tbl[i].cs1_enc == NULL) || (cs1_enc == NULL) || (cmp_enc_name(ccv_tbl[i].cs1_enc, cs1_enc) == 0) || (cmp_alias(ccv_tbl[i].cs1_enc_aliases, cs1_enc, 1) == 0)) && ((ccv_tbl[i].cs2_enc == NULL) || (cs2_enc == NULL) || (cmp_enc_name(ccv_tbl[i].cs2_enc, cs2_enc) == 0) || (cmp_alias(ccv_tbl[i].cs2_enc_aliases, cs2_enc, 1) == 0)) ){ if (vf_dbg_ccv == 1){ printf(">> CCV use conversion #%d [%s %s => %s %s]\n", i, NAMEPP(ccv_tbl[i].cs1_name), NAMEPP(ccv_tbl[i].cs1_enc), NAMEPP(ccv_tbl[i].cs2_name), NAMEPP(ccv_tbl[i].cs2_enc)); } if (ccv_tbl[i].load_stat == CCV_STAT_AUTOLOAD){ if (ccv_load(&ccv_tbl[i]) < 0) return -1; ccv_tbl[i].load_stat = CCV_STAT_LOADED; } return i; } } return -1; } Private int cmp_alias(char **alias_tbl, char *name, int how_compare) { char **pp; if (alias_tbl == NULL) return -1; if (how_compare == 0){ for (pp = alias_tbl; *pp != NULL; pp++){ if (cmp_charset_name(*pp, name) == 0) return 0; } } else { for (pp = alias_tbl; *pp != NULL; pp++){ if (cmp_enc_name(*pp, name) == 0) return 0; } } return -1; } Private int ccv_add_conv_info(struct s_ccv_info *ccvi, int load_stat, char *file_name) { char **pp, *q; if (ccv_tbl_index >= ccv_tbl_size){ if (vf_dbg_ccv == 1) printf(">> CCV expand table\n"); if (vf_ccv_init() < 0){ fprintf(stderr, "VFlib: too many code coversion table.\n"); return 0; } } ccv_tbl[ccv_tbl_index].cs1_name = ccvi->cs1_name; ccv_tbl[ccv_tbl_index].cs1_name_aliases = ccvi->cs1_name_aliases; ccv_tbl[ccv_tbl_index].cs1_enc = ccvi->cs1_enc; ccv_tbl[ccv_tbl_index].cs1_enc_aliases = ccvi->cs1_enc_aliases; ccv_tbl[ccv_tbl_index].cs2_name = ccvi->cs2_name; ccv_tbl[ccv_tbl_index].cs2_name_aliases = ccvi->cs2_name_aliases; ccv_tbl[ccv_tbl_index].cs2_enc = ccvi->cs2_enc; ccv_tbl[ccv_tbl_index].cs2_enc_aliases = ccvi->cs2_enc_aliases; ccv_tbl[ccv_tbl_index].block_size = ccvi->block_size; ccv_tbl[ccv_tbl_index].load_stat = load_stat; ccv_tbl[ccv_tbl_index].conv = ccvi->conv; ccv_tbl[ccv_tbl_index].arg = ccvi->arg; ccv_tbl[ccv_tbl_index].arg_type = ccvi->arg_type; ccv_tbl[ccv_tbl_index].c1min = ccvi->c1min; ccv_tbl[ccv_tbl_index].c1max = ccvi->c1max; ccv_tbl[ccv_tbl_index].c2min = ccvi->c2min; ccv_tbl[ccv_tbl_index].c2max = ccvi->c2max; ccv_tbl[ccv_tbl_index].nblocks = ccvi->nblocks; if (file_name != NULL){ ccv_tbl[ccv_tbl_index].file_name = vf_strdup(file_name); if (ccv_tbl[ccv_tbl_index].file_name == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } } else { ccv_tbl[ccv_tbl_index].file_name = NULL; } if (vf_dbg_ccv == 1){ printf(">> CCV installed #%d [%s %s => %s %s]\n", ccv_tbl_index, NAMEPP(ccv_tbl[ccv_tbl_index].cs1_name), NAMEPP(ccv_tbl[ccv_tbl_index].cs1_enc), NAMEPP(ccv_tbl[ccv_tbl_index].cs2_name), NAMEPP(ccv_tbl[ccv_tbl_index].cs2_enc)); if ((pp = ccv_tbl[ccv_tbl_index].cs1_name_aliases) != NULL){ q = NAMEPP(ccv_tbl[ccv_tbl_index].cs1_name); for ( ; *pp != NULL; pp++) printf(">> alias %s: %s\n", *pp, q); } if ((pp = ccv_tbl[ccv_tbl_index].cs1_enc_aliases) != NULL){ q = NAMEPP(ccv_tbl[ccv_tbl_index].cs1_enc); for ( ; *pp != NULL; pp++) printf(">> alias %s: %s\n", *pp, q); } if ((pp = ccv_tbl[ccv_tbl_index].cs2_name_aliases) != NULL){ q = NAMEPP(ccv_tbl[ccv_tbl_index].cs2_name); for ( ; *pp != NULL; pp++) printf(">> alias %s: %s\n", *pp, q); } if ((pp = ccv_tbl[ccv_tbl_index].cs2_enc_aliases) != NULL){ q = NAMEPP(ccv_tbl[ccv_tbl_index].cs2_enc); for ( ; *pp != NULL; pp++) printf(">> alias %s: %s\n", *pp, q); } } ccv_tbl_index++; return 0; } Private char* make_canonical_charset_name(char *cs_name) { char *canon, *p; if (cs_name == NULL) return NULL; if ((canon = vf_strdup(cs_name)) == NULL) return NULL; for (p = canon; *p != '\0'; p++){ if (vf_index(CS_NAME_XCHARS, *p) != NULL) *p = CS_NAME_XCHARS_TO; else *p = toupper(*p); } return canon; } Private int cmp_charset_name(char *canon, char *name) { char *p, *q, cp, cq; if (canon == NULL) return 0; p = canon; q = name; do { cp = toupper(*p); if (vf_index(CS_NAME_XCHARS, *p) != NULL) cp = CS_NAME_XCHARS_TO; cq = toupper(*q); if (vf_index(CS_NAME_XCHARS, *q) != NULL) cq = CS_NAME_XCHARS_TO; if (cp != cq) return -1; p++; q++; } while ((*p != '\0') && (*q != '\0')); return 0; } Private int cmp_enc_name(char *enc1, char *enc2) { char *p, *q, cp, cq; p = enc1; q = enc2; do { cp = toupper(*p); if (vf_index(CS_NAME_XCHARS, *p) != NULL) cp = CS_NAME_XCHARS_TO; cq = toupper(*q); if (vf_index(CS_NAME_XCHARS, *q) != NULL) cq = CS_NAME_XCHARS_TO; if (cp != cq) return -1; p++; q++; } while ((*p != '\0') && (*q != '\0')); return 0; } Glocal int vf_ccv_autoload(char *file_name) { struct s_ccv_info ccv_info; if (vf_dbg_ccv == 1) printf(">> CCV autoload: %s\n", file_name); ccv_info.file_name = vf_strdup(file_name); if (ccv_read_header(&ccv_info) < 0){ if (vf_dbg_ccv == 1) printf(">> CCV failed autoload\n"); return -1; } #if 0 printf(" %s %s => %s %s 0x%02x 0x%02x 0x%02x 0x%02x\n", ccv_info.cs1_name, ccv_info.cs1_enc, ccv_info.cs2_name, ccv_info.cs2_enc, ccv_info.c1min, ccv_info.c1max, ccv_info.c2min, ccv_info.c2max); #endif ccv_add_conv_info(&ccv_info, CCV_STAT_AUTOLOAD, file_name); if (vf_dbg_ccv == 1) printf(">> CCV autoload done.\n"); return 0; } Glocal int vf_ccv_install_func(char *cs1_name, char *cs1_enc, char *cs2_name, char *cs2_enc, long (*conv)(int,long)) { struct s_ccv_info ccv_info; ccv_info.cs1_name = cs1_name; ccv_info.cs1_name_aliases = NULL; ccv_info.cs1_enc = cs1_enc; ccv_info.cs1_enc_aliases = NULL; ccv_info.cs2_name = cs2_name; ccv_info.cs2_name_aliases = NULL; ccv_info.cs2_enc = cs2_enc; ccv_info.cs2_enc_aliases = NULL; ccv_info.arg_type = CCV_ARG_TYPE_FUNC; ccv_info.conv = conv; ccv_info.arg = 0; ccv_info.block_size = 0; ccv_info.c1min = 0; ccv_info.c1max = 0; ccv_info.c2min = 0; ccv_info.c2max = 0; ccv_info.nblocks = 0; ccv_info.file_name = NULL; ccv_add_conv_info(&ccv_info, CCV_STAT_LOADED, NULL); return 0; } Private int ccv_load(struct s_ccv_info *ccvi) { if (vf_dbg_ccv == 1) printf(">> CCV loading %s\n", ccvi->file_name); return ccv_read_file(ccvi, 0); } Private int ccv_read_header(struct s_ccv_info *ccvi) { return ccv_read_file(ccvi, 1); } Private int ccv_read_file(struct s_ccv_info *ccvi, int header_only) { FILE *fp; char key[256], val[256]; int block, v; ccvi->file_path = vf_path_find_runtime_file("ccv", ccvi->file_name, VF_ENV_CCV_DIR); if (vf_dbg_ccv == 1){ if (ccvi->file_path != NULL) printf(">> CCV autoload file %s: %s\n", ccvi->file_name, ccvi->file_path); else printf(">> CCV autoload file %s: not found\n", ccvi->file_name); } if (ccvi->file_path == NULL) return -1; if ((fp = vf_fm_OpenTextFileStream(ccvi->file_path)) == NULL) return -1; if (header_only == 1){ ccvi->cs1_name_aliases = NULL; ccvi->cs1_enc_aliases = NULL; ccvi->cs2_name_aliases = NULL; ccvi->cs2_enc_aliases = NULL; } while (ccv_file_read_list(fp, key, sizeof(key)) >= 0){ v = ccv_file_read_elem(fp, val, sizeof(val)); if (v == -1) break; else if (v == 0) continue; if (( (vf_strcmp_ci(key, "charset-from-name") == 0) || (vf_strcmp_ci(key, "charset-external-name") == 0)) && (header_only == 1)){ ccvi->cs1_name = make_canonical_charset_name(val); ccv_read_aliases(fp, &ccvi->cs1_name_aliases); } else if (( (vf_strcmp_ci(key, "charset-from-encoding") == 0) || (vf_strcmp_ci(key, "charset-external-encoding") == 0)) && (header_only == 1)){ ccvi->cs1_enc = vf_strdup(val); ccv_read_aliases(fp, &ccvi->cs1_enc_aliases); } else if (( (vf_strcmp_ci(key, "charset-to-name") == 0) || (vf_strcmp_ci(key, "charset-internal-name") == 0)) && (header_only == 1)){ ccvi->cs2_name = make_canonical_charset_name(val); ccv_read_aliases(fp, &ccvi->cs2_name_aliases); } else if (( (vf_strcmp_ci(key, "charset-to-encoding") == 0) || (vf_strcmp_ci(key, "charset-internal-encoding") == 0)) && (header_only == 1)){ ccvi->cs2_enc = vf_strdup(val); ccv_read_aliases(fp, &ccvi->cs2_enc_aliases); } else if ((vf_strcmp_ci(key, "table-type") == 0) && (header_only == 1)){ ccvi->conv = NULL; if (vf_strcmp_ci(val, "array") == 0){ ccvi->arg_type = CCV_ARG_TYPE_ARRAY; ccvi->conv = ccv_conv_array; } else if (vf_strcmp_ci(val, "random-arrays") == 0){ ccvi->arg_type = CCV_ARG_TYPE_RANDOM_ARRAY; ccvi->conv = ccv_conv_random_array; } else { fprintf(stderr, "VFlib: broken code conversion file: %s\n", ccvi->file_name); return -1; } } else if ((vf_strcmp_ci(key, "nblocks") == 0) && (header_only == 1)){ sscanf(val, "%i", &ccvi->nblocks); } else if ((vf_strcmp_ci(key, "c1-min") == 0) && (header_only == 1)){ sscanf(val, "%i", &ccvi->c1min); } else if ((vf_strcmp_ci(key, "c1-max") == 0) && (header_only == 1)){ sscanf(val, "%i", &ccvi->c1max); } else if ((vf_strcmp_ci(key, "c2-min") == 0) && (header_only == 1)){ sscanf(val, "%i", &ccvi->c2min); } else if ((vf_strcmp_ci(key, "c2-max") == 0) && (header_only == 1)){ sscanf(val, "%i", &ccvi->c2max); } else if ((vf_strcmp_ci(key, "block-size") == 0) && (header_only == 1)){ sscanf(val, "%i", &ccvi->block_size); } else if (vf_strcmp_ci(key, "block") == 0){ if (header_only == 1){ break; } else { ccv_read_file_alloc_blocks(ccvi); sscanf(val, "%i", &block); if (ccvi->arg_type == CCV_ARG_TYPE_ARRAY){ ccv_read_file_block_array(fp, ccvi, block); } else { ccv_read_file_block_random_array(fp, ccvi, block); } } } } return 0; } Private void ccv_read_aliases(FILE *fp, char ***alias_tbl) { char val[128]; char *names[64]; int nnames, i; nnames = 0; while (ccv_file_read_elem(fp, val, sizeof(val)) > 0){ names[nnames++] = vf_strdup(val); } if (nnames == 0){ *alias_tbl = NULL; return; } if ((*alias_tbl = (char**)malloc(sizeof(char*) * (nnames + 1))) != NULL){ for (i = 0; i < nnames; i++){ (*alias_tbl)[i] = names[i]; } (*alias_tbl)[nnames] = NULL; } } Private int ccv_read_file_alloc_blocks(struct s_ccv_info *ccvi) { long *array; CCV_RANDOM_ARRAY rarray; switch (ccvi->arg_type){ case CCV_ARG_TYPE_ARRAY: array = (long*)calloc(ccvi->nblocks * (ccvi->c2max - ccvi->c2min + 1), sizeof(long)); if (array == NULL) return -1; ccvi->arg = (long)array; break; case CCV_ARG_TYPE_RANDOM_ARRAY: default: rarray = (CCV_RANDOM_ARRAY)calloc(1, sizeof(struct s_ccv_random_array)); if (rarray == NULL) return -1; rarray->block_index = (int*)calloc(ccvi->nblocks, sizeof(int)); rarray->tbl = (long*)calloc(ccvi->nblocks * (ccvi->c2max - ccvi->c2min + 1), sizeof(long)); if ((rarray == NULL) || (rarray->block_index == NULL) || (rarray->tbl == NULL)) return -1; ccvi->arg = (long)rarray; break; } return 0; } Private int ccv_read_file_block_array(FILE *fp, struct s_ccv_info *ccvi, int block) { int code, base, b, c, v; char key[256], val[256]; long *tbl; if (vf_dbg_ccv == 1) printf(">> CCV Reding table (array) nblocks=%d\n", ccvi->nblocks); tbl = (long*)ccvi->arg; for (b = ccvi->c1min; ; ){ if (vf_dbg_ccv == 1) printf(" Block %d", block); base = block * (ccvi->c2max - ccvi->c2min + 1); for (c = ccvi->c2min; c <= ccvi->c2max; c++){ if ((v = ccv_file_read_elem(fp, val, sizeof(val))) <= 0){ fprintf(stderr, "VFlib warning: broken code conversion table: %s\n", ccvi->file_name); return -1; } sscanf(val, "%i", &code); tbl[base + (c - ccvi->c2min)] = code; #if defined(DEBUG) && 0 printf("\n 0x%04x ==> 0x%04x", b*ccvi->block_size+c, code); #endif } if ((++b) > ccvi->c1max) break; for (;;){ if (ccv_file_read_list(fp, key, sizeof(key)) < 0){ fprintf(stderr, "VFlib warning: broken code conversion table: %s\n", ccvi->file_name); return -1; } if (vf_strcmp_ci(key, "block") == 0) break; } ccv_file_read_elem(fp, val, sizeof(val)); sscanf(val, "%i", &block); } if (vf_dbg_ccv == 1) printf("\n"); return 0; } Private int ccv_read_file_block_random_array(FILE *fp, struct s_ccv_info *ccvi, int block) { int code, base, b, c, v; char key[256], val[256]; int *block_index, index; long *tbl; CCV_RANDOM_ARRAY rarray; if (vf_dbg_ccv == 1) printf(">> CCV reding table (random-arrays) nblocks=%d", ccvi->nblocks); rarray = (CCV_RANDOM_ARRAY)ccvi->arg; block_index = rarray->block_index; tbl = rarray->tbl; for (b = 0; ; ){ if (vf_dbg_ccv == 1) printf(" Block %d", block); rarray->block_index[b] = block; base = b * (ccvi->c2max - ccvi->c2min + 1); for (c = ccvi->c2min; c <= ccvi->c2max; c++){ if ((v = ccv_file_read_elem(fp, val, sizeof(val))) <= 0){ fprintf(stderr, "VFlib warning: broken code conversion table: %s\n", ccvi->file_name); return -1; } sscanf(val, "%i", &code); index = base + (c - ccvi->c2min); tbl[index] = code; #if defined(DEBUG) && 0 printf("\n 0x%04x ==> 0x%04x (%d)", (block + ccvi->c1min)*ccvi->block_size+c, code, index); #endif } if ((++b) >= ccvi->nblocks) break; for (;;){ if ((v = ccv_file_read_list(fp, key, sizeof(key))) == 0) break; if (v < 0){ fprintf(stderr, "VFlib warning: broken code conversion table: %s\n", ccvi->file_name); return -1; } if (vf_strcmp_ci(key, "block") == 0) break; } ccv_file_read_elem(fp, val, sizeof(val)); sscanf(val, "%i", &block); } return 0; } Private int ccv_file_read_list(FILE *fp, char *buff, int nbuff) { int ch, i; buff[0] = '\0'; /* skip until '(' */ while ((ch = getc(fp)) != EOF){ if (ch == '(') break; if (ch == ';'){ /* coment begins. skip until the eol */ while ((ch = getc(fp)) != '\n'){ if (ch == EOF) return -1; } } } if (ch == EOF) return -1; /* read the car part of an s-exp */ i = 0; while ((ch = getc(fp)) != EOF){ if (i >= nbuff-1) break; if (isspace((int)ch)) break; if (ch == ')') break; buff[i++] = ch; if (ch == ' ') break; } buff[i] = '\0'; #if 0 printf("\n* %s: ", buff); #endif return 1; } Private int ccv_file_read_elem(FILE *fp, char *buff, int nbuff) { int ch, i; buff[0] = '\0'; while ((ch = getc(fp)) != EOF){ if (!isspace(ch)) break; } if (ch == ')') return 0; if (ch == EOF) return -1; i = 0; buff[i++] = ch; while ((ch = getc(fp)) != EOF){ if (i >= nbuff-1) break; if (isspace((int)ch)) break; if (ch == ')'){ ungetc(ch, fp); break; } buff[i++] = ch; } buff[i] = '\0'; #if 0 printf("%s ", buff); #endif return 1; } Glocal long vf_ccv_conv(int ccvi_index, long code_point) { long cv_code_point; if (ccvi_index < 0) return code_point; cv_code_point = (*ccv_tbl[ccvi_index].conv)(ccvi_index, code_point); if (vf_dbg_ccv_map == 1) printf(">> CCV code conversion: 0x%04lx => 0x%04lx\n", code_point, cv_code_point); return cv_code_point; } Private long ccv_conv_array(int ccvi_index, long code_point) { int c1, c2, index; CCV_INFO ccvi; long *tbl; ccvi = &ccv_tbl[ccvi_index]; c1 = code_point / ccvi->block_size; c2 = code_point % ccvi->block_size; if ( (c1 < ccvi->c1min) || (ccvi->c1max < c1) || (c2 < ccvi->c2min) || (ccvi->c2max < c2) ){ return -1; } index = (c1 - ccvi->c1min) * (ccvi->c2max - ccvi->c2min + 1) + (c2 - ccvi->c2min); tbl = (long*) ccvi->arg; return tbl[index]; } Private long ccv_conv_random_array(int ccvi_index, long code_point) { int c1, c2, index, i; CCV_INFO ccvi; CCV_RANDOM_ARRAY cra; ccvi = &ccv_tbl[ccvi_index]; c1 = code_point / ccvi->block_size; c2 = code_point % ccvi->block_size; if ( (c1 < ccvi->c1min) || (ccvi->c1max < c1) || (c2 < ccvi->c2min) || (ccvi->c2max < c2) ){ return -1; } cra = (CCV_RANDOM_ARRAY)ccvi->arg; for (i = 0; i < ccvi->nblocks; i++){ /** TOO SLOW! **/ /*printf("\n index %d %d", cra->block_index[i], c1);*/ if (cra->block_index[i]+ccvi->c1min == c1) break; } if (i == ccvi->nblocks) return -1; index = i * (ccvi->c2max - ccvi->c2min + 1) + (c2 - ccvi->c2min); return cra->tbl[index]; } #ifdef DEBUG /* * Usage: dbg-ccv filename - cs1_name cs1_enc cs2_name cs2_enc code_point ... */ int main(int argc, char **argv) { int i; int cc, cvcc; argc--; argv++; vf_ccv_init(); if (argc <= 4) exit(1); while (argc > 0){ if (strcmp(argv[0], "-") == 0){ argc--; argv++; break; } vf_ccv_autoload(argv[0]); argc--; argv++; } if (argc == 0) exit(0); if (argc > 4){ i = vf_ccv_require(argv[0], argv[1], argv[2], argv[3]); argc -= 4; argv = &argv[4]; } if (argc == 0) exit(0); while (argc > 0){ sscanf(argv[0], "%i", &cc); cvcc = vf_ccv_conv(i, (long)cc); printf("\n Conv 0x%x ==> 0x%x", cc, (int)cvcc); argc--; argv++; } } #endif /*EOF*/ vflib3-3.6.14.dfsg/src/dbg-bml.c0000644000175000017500000001143406750013325015527 0ustar mohuramohura/* * dbg-bml.c - test program for bitmaplist class. * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1997 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include "VFlib-3_6.h" #include "VFsys.h" int display(int,int,double,double,int,double); extern double atof(); void usage(void); int main(int argc, char **argv) { char *vflibcap; double mag, std_mag; char *font_name; int font_id, code; int rp_x, rp_y, mv_x, mv_y; int delta_x, delta_y, ign_mv; VF_BITMAP bm, composed_bitmap; struct vf_s_bitmaplist the_bitmaplist, *bitmaplist; vflibcap = NULL; std_mag = 1.0; delta_x = 0; delta_y = 0; ign_mv = 0; mv_x = 0; mv_y = 0; rp_x = 0; rp_y = 0; bitmaplist = &the_bitmaplist; VF_BitmapListInit(bitmaplist); argc--; argv++; while ((argc > 0) && (*argv[0] == '-')){ if (strcmp(argv[0], "-v") == 0){ vflibcap = argv[1]; argc--; argv++; } else if (strcmp(argv[0], "-M") == 0){ std_mag = atof(argv[1]); argc--; argv++; } else if ((strcmp(argv[0], "-h") == 0) || (strcmp(argv[0], "-help") == 0)){ usage(); } else { break; } argc--; argv++; } if (VF_Init(vflibcap, NULL) < 0){ fprintf(stderr, "Error %d in VF_Init().\n", vf_error); exit(0); } mag = std_mag; while (argc > 0){ if (strcmp(argv[0], "-m") == 0){ mag = atof(argv[1]) * std_mag; argc--; argv++; } else if (strcmp(argv[0], "-f") == 0){ font_name = argv[1]; argc--; argv++; if ((font_id = VF_OpenFont2(font_name, -1, 1, 1)) < 0){ fprintf(stderr, "Error %d in VF_OpenFont2(%s)\n", vf_error, font_name); exit(0); } } else if (strcmp(argv[0], "-x") == 0){ mv_x += atoi(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-y") == 0){ mv_y += atoi(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-dx") == 0){ delta_x = atoi(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-dy") == 0){ delta_y = atoi(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-n") == 0){ ign_mv = 1; } else if (font_id < 0){ fprintf(stderr, "Error: Font is not selected.\n"); exit(0); } else if (font_id >= 0){ sscanf(argv[0], "%i", &code); bm = VF_GetBitmap2(font_id, code, mag, mag); mag = std_mag; if (bm == NULL){ fprintf(stderr, "Error: Fauiled to obtain a glyph.\n"); exit(1); } if (ign_mv == 1){ mv_x = 0; mv_y = 0; } VF_BitmapListPut(bitmaplist, bm, rp_x + mv_x + delta_x, rp_y + mv_y + delta_y); rp_x += mv_x; rp_y += mv_y; mv_x = bm->mv_x; mv_y = bm->mv_y; delta_x = 0; delta_y = 0; ign_mv = 0; } argc--; argv++; } if ((composed_bitmap = VF_BitmapListCompose(bitmaplist)) != NULL){ VF_DumpBitmap(composed_bitmap); } VF_BitmapListFinish(bitmaplist); return 0; } void usage(void) { printf("dbg-bml - Debug bitmaplist class\n"); printf("Usage: bdg-bml [OPTIONS] [ARGS]\n"); printf("OPTIONS: -v VFLIBCAP Select vflibcap file\n"); printf(" -M MAG Change default magnification\n"); printf(" -h Print help\n"); printf("ARGS: -f FONT Change fonts\n"); printf(" -m MAG Change magnification\n"); printf(" -x NPIX Move ref point NPIX pixels holizontally\n"); printf(" -y NPIX Move ref point NPIX pixels vertically\n"); printf(" -dx NPIX Shift next glyph NPIX pixels holizontally\n"); printf(" -dx NPIX Shift next glyph NPIX pixels vertically\n"); printf(" -n Do not move ref point\n"); printf(" CODE_POINT Add glyph for CODE_POINT\n"); printf(" -m has effect on only current font.\n"); printf(" -dx, -dy and -n have effects on only for next one glyph.\n"); printf("Example 1: dbg-bml -f timI24.pcf 0x69 0x66 0x66\n"); printf("Example 2: dbg-bml -f timR24.pcf -m 2 0x41\n"); printf("Example 3: dbg-bml -f timR24.pcf 0x41 -f timI24.pcf 0x42\n"); exit(0); } /*EOF*/ vflib3-3.6.14.dfsg/src/defaults.c0000644000175000017500000001107207030100144016014 0ustar mohuramohura/* * defaults.c - a module for reading VFlib defaults from a vflibcap file * */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "fsearch.h" #include "consts.h" #include "params.h" #include "sexp.h" #include "ccv.h" #include "str.h" #include "with.h" Glocal SEXP_ALIST vf_extension_hints = NULL; Glocal SEXP_LIST vf_implicit_font_classes = NULL; Glocal char *vf_directory_delimiter = VF_DIRECTORY_DELIMITER; Private SEXP cap_variables = NULL; Private SEXP cap_unc = NULL; Private SEXP cap_ccv = NULL; Private SEXP cap_kps_switch = NULL; Private SEXP cap_kps_mode = NULL; Private SEXP cap_kps_dpi = NULL; Private SEXP cap_kps_prog = NULL; Glocal int vf_defaults_init(void) { SEXP iter; int z; int kps_switch; char *kps_mode; int kps_dpi; char *kps_prog; struct s_capability_table ct[16]; z = 0; /* VF_CAPE_IMPLICIT_FONT_CLASSES */ ct[z].cap = VF_CAPE_IMPLICIT_FONT_CLASSES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &vf_implicit_font_classes; /* VF_CAPE_EXTENSION_HINT */ ct[z].cap = VF_CAPE_EXTENSION_HINT; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &vf_extension_hints; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_variables; /* VF_CAPE_UNCOMPRESSER */ ct[z].cap = VF_CAPE_UNCOMPRESSER; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_unc; /* VF_CAPE_CODE_CONVERSION_FILES */ ct[z].cap = VF_CAPE_CODE_CONVERSION_FILES; ct[z].type = CAPABILITY_STRING_LIST0; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ccv; /* VF_CAPE_KPATHSEA_SWITCH */ ct[z].cap = VF_CAPE_KPATHSEA_SWITCH; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_kps_switch; /* VF_CAPE_KPATHSEA_MODE */ ct[z].cap = VF_CAPE_KPATHSEA_MODE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_kps_mode; /* VF_CAPE_KPATHSEA_DPI */ ct[z].cap = VF_CAPE_KPATHSEA_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_kps_dpi; /* VF_CAPE_KPATHSEA_PROG_NAME */ ct[z].cap = VF_CAPE_KPATHSEA_PROG_NAME; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_kps_prog; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_cap_GetParsedClassDefault(VF_CAPE_VFLIB_DEFAULTS, ct, NULL, NULL) == VFLIBCAP_PARSED_ERROR){ return -1; } (void) vf_add_uncompresser_alist(cap_unc); for (iter = cap_ccv; (iter != NULL) && (!vf_sexp_null(iter)); iter = vf_sexp_cdr(iter)){ if (vf_ccv_autoload(vf_sexp_get_cstring(vf_sexp_car(iter))) < 0){ fprintf(stderr, "VFlib Warning: Code conversion file '%s' not found.\n", vf_sexp_get_cstring(vf_sexp_car(iter))); } } kps_switch = DEFAULT_KPS_SWITCH; if (cap_kps_switch != NULL) kps_switch = vf_parse_bool(vf_sexp_get_cstring(cap_kps_switch)); kps_mode = DEFAULT_KPS_MODE; if (cap_kps_mode != NULL) kps_mode = vf_sexp_get_cstring(cap_kps_mode); kps_dpi = DEFAULT_KPS_DPI; if (cap_kps_dpi != NULL) kps_dpi = atoi(vf_sexp_get_cstring(cap_kps_dpi)); kps_prog = DEFAULT_KPS_PROGRAM_NAME; if (cap_kps_prog != NULL) kps_prog = vf_sexp_get_cstring(cap_kps_prog); vf_kpathsea_init(kps_prog, kps_mode, kps_dpi, kps_switch); return 0; } /*EOF*/ vflib3-3.6.14.dfsg/src/drv_bdf.c0000644000175000017500000007203607363423531015643 0ustar mohuramohura/* * drv_bdf.c - A font driver for BDF format fonts. * by Hirotsugu Kakugawa * * 2 Sep 1996 First version. * 13 Dec 1996 for VFlib 3.1 * 16 Jan 1997 Added font directory customizing feature. * 28 Jan 1997 Added debug feature. * 26 Feb 1997 Added 'query_font_type'. * 25 Apr 1997 Added multiple file extension feature. * 4 Aug 1997 VFlib 3.3 Changed API. * 20 Jan 1998 VFlib 3.4 Changed API. * 22 Apr 1998 Improved get_font_property() * 10 Jun 1998 Added multiple font files in 'font-file' capability. * 17 Jun 1998 Support for CCV system. Support for 'font-directory' * capability in font definition. * 24 Nov 1998 Added get_fontbbx1() and get_fontbbx2(). * 26 Nov 1998 Added debug flag control by environment variable. */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "ccv.h" #include "sexp.h" #include "str.h" #include "path.h" #include "fsearch.h" #include "cache.h" #include "bdf.h" #define POINTS_PER_INCH 72.27 #define DEFAULT_POINT_SIZE 10.0 #define DEFAULT_PIXEL_SIZE 16 #define DEFAULT_DPI 75 struct s_font_bdf { char *font_name; char *font_file; double point_size; int pixel_size; double dpi_x, dpi_y; double mag; double aspect; int bdf_id; int ccv_id; SEXP_ALIST props; }; typedef struct s_font_bdf *FONT_BDF; Private SEXP_LIST default_fontdirs; Private SEXP_LIST default_compressed_ext; Private SEXP_STRING default_dpi, default_dpi_x, default_dpi_y; Private double v_default_dpi_x, v_default_dpi_y; Private SEXP_STRING default_aspect; Private double v_default_aspect; Private SEXP_ALIST default_properties; Private SEXP_ALIST default_variables; Private SEXP_STRING default_debug_mode; Private char *env_debug_mode = NULL; #define DEBUG_ENV_NAME "VFLIB_BDF_DEBUG" Private int bdf_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry); Private int bdf_close(VF_FONT font); Private int bdf_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric1, double,double); Private int bdf_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric2, double,double); Private int bdf_get_fontbbx1(VF_FONT font,double,double, double*,double*,double*,double*); Private int bdf_get_fontbbx2(VF_FONT font, double,double, int*,int*,int*,int*); Private VF_BITMAP bdf_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP bdf_get_bitmap2(VF_FONT,long,double,double); Private VF_BITMAP bdf_get_bitmap(FONT_BDF,long); Private VF_OUTLINE bdf_get_outline(VF_FONT,long,double,double); Private char* bdf_get_font_prop(VF_FONT,char*); Private void mag_mode_1(double font_size, int size, double font_dpi_x, double font_dpi_y, FONT_BDF font_bdf, VF_FONT font, double mag_x, double mag_y, double *ret_mag_x, double *ret_mag_y, double *ret_point_size, double *ret_dpix, double *ret_dpiy); Private void mag_mode_2(int font_size, int size, FONT_BDF font_bdf, VF_FONT font, double mag_x, double mag_y, double *ret_mag_x, double *ret_mag_y, double *ret_pixel_size); Private int bdf_debug(char); Private BDF BDF_GetBDF(int bdf_id); Private void BDF_SetBDF(int bdf_id, BDF bdf); Private int BDF_Init(void); Private int BDF_Open(char*,SEXP); Private void BDF_Close(int); Private BDF_CHAR BDF_GetBitmap(int,long); Private BDF_CHAR BDF_GetBDFChar(BDF,long); Private char *BDF_GetProp(BDF,char*); Public int VF_Init_Driver_BDF(void) { int z; struct s_capability_table ct[20]; z = 0; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_STRING_LIST0; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_fontdirs; /* VF_CAPE_COMPRESSION_EXT */ ct[z].cap = VF_CAPE_COMPRESSION_EXT; ct[z].type = CAPABILITY_STRING_LIST0; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_compressed_ext; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi; /* VF_CAPE_DPI_X */ ct[z].cap = VF_CAPE_DPI_X; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi_x; /* VF_CAPE_DPI_Y */ ct[z].cap = VF_CAPE_DPI_Y; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi_y; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_aspect; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME, ct, NULL, NULL) == VFLIBCAP_PARSED_ERROR) return -1; v_default_dpi_x = -1; v_default_dpi_y = -1; if (default_dpi != NULL) v_default_dpi_x = v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi)); if (default_dpi_x != NULL) v_default_dpi_x = atof(vf_sexp_get_cstring(default_dpi_x)); if (default_dpi_y != NULL) v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi_y)); v_default_aspect = 1.0; if (default_aspect != NULL) v_default_aspect = atof(vf_sexp_get_cstring(default_aspect)); if (BDF_Init() < 0) return -1; env_debug_mode = getenv(DEBUG_ENV_NAME); VF_InstallFontDriver(FONTCLASS_NAME, (DRIVER_FUNC_TYPE)bdf_create); return 0; } Private int bdf_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_BDF font_bdf; BDF bdf; int bdf_id, val; char *font_file; SEXP cap_font, cap_point, cap_pixel; SEXP cap_dpi, cap_dpi_x, cap_dpi_y, cap_mag, cap_aspect; SEXP cap_charset, cap_encoding, cap_font_charset, cap_font_encoding; SEXP cap_fontdirs, cap_props; SEXP font_file_list, s; SEXP fontdirs; char *charset, *encoding, *font_charset, *font_encoding; char *s1, *s2, s_font_charset[1024]; int z; struct s_capability_table ct[24]; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_STRING_LIST0; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_fontdirs; /* VF_CAPE_FONT_FILE */ ct[z].cap = VF_CAPE_FONT_FILE; ct[z].type = CAPABILITY_STRING_LIST1; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_font; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_point; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_pixel; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi; /* VF_CAPE_DPI_X */ ct[z].cap = VF_CAPE_DPI_X; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi_x; /* VF_CAPE_DPI_Y */ ct[z].cap = VF_CAPE_DPI_Y; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi_y; /* VF_CAPE_MAG */ ct[z].cap = VF_CAPE_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mag; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_aspect; /* VF_CAPE_CHARSET */ ct[z].cap = VF_CAPE_CHARSET; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_charset; /* VF_CAPE_ENCODING */ ct[z].cap = VF_CAPE_ENCODING; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_encoding; /* VF_CAPE_FONT_CHARSET */ ct[z].cap = VF_CAPE_FONT_CHARSET; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_font_charset; /* VF_CAPE_FONT_ENCODING */ ct[z].cap = VF_CAPE_FONT_ENCODING; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_font_encoding; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; val = -1; fontdirs = default_fontdirs; font_bdf = NULL; font_file_list = NULL; font_file = font_name; bdf_id = -1; if (implicit == 1){ /* implicit font */ font_file = font_name; } else { /* explicit font */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, NULL) == VFLIBCAP_PARSED_ERROR) return -1; if (cap_fontdirs != NULL) fontdirs = cap_fontdirs; if (cap_font == NULL){ /* Use font name as font file name if font file name is not given. */ font_file = font_name; } else { if (vf_sexp_listp(cap_font)){ switch (vf_sexp_length(cap_font)){ case 0: goto End; default: font_file_list = cap_font; break; } } else { goto End; } } } bdf_id = -1; if (font_file_list == NULL){ bdf_id = BDF_Open(font_file, fontdirs); } else { for (s = font_file_list; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ if (vf_sexp_stringp(vf_sexp_car(s))){ font_file = vf_sexp_get_cstring(vf_sexp_car(s)); bdf_id = BDF_Open(font_file, fontdirs); if (bdf_id >= 0){ break; } } } } if (bdf_id < 0) goto End; font->font_type = VF_FONT_TYPE_BITMAP; font->get_metric1 = bdf_get_metric1; font->get_metric2 = bdf_get_metric2; font->get_fontbbx1 = bdf_get_fontbbx1; font->get_fontbbx2 = bdf_get_fontbbx2; font->get_bitmap1 = bdf_get_bitmap1; font->get_bitmap2 = bdf_get_bitmap2; font->get_outline = bdf_get_outline; font->get_font_prop = bdf_get_font_prop; font->query_font_type = NULL; font->close = bdf_close; ALLOC_IF_ERR(font_bdf, struct s_font_bdf){ vf_error = VF_ERR_NO_MEMORY; goto End; } font_bdf->bdf_id = bdf_id; font_bdf->font_name = NULL; font_bdf->font_file = NULL; font_bdf->point_size = -1; font_bdf->pixel_size = -1; font_bdf->dpi_x = -1; font_bdf->dpi_y = -1; font_bdf->mag = 1.0; font_bdf->aspect = 1.0; font_bdf->ccv_id = -1; font_bdf->props = NULL; charset = NULL; encoding = NULL; font_charset = NULL; font_encoding = NULL; if (implicit == 0){ if (cap_point != NULL) font_bdf->point_size = atof(vf_sexp_get_cstring(cap_point)); if (cap_pixel != NULL) font_bdf->pixel_size = atof(vf_sexp_get_cstring(cap_pixel)); if (cap_dpi != NULL) font_bdf->dpi_x = font_bdf->dpi_y = atof(vf_sexp_get_cstring(cap_dpi)); if (cap_dpi_x != NULL) font_bdf->dpi_x = atof(vf_sexp_get_cstring(cap_dpi_x)); if (cap_dpi_y != NULL) font_bdf->dpi_y = atof(vf_sexp_get_cstring(cap_dpi_y)); if (cap_mag != NULL) font_bdf->mag = atof(vf_sexp_get_cstring(cap_mag)); if (cap_aspect != NULL) font_bdf->aspect = atof(vf_sexp_get_cstring(cap_aspect)); if (cap_charset != NULL) charset = vf_sexp_get_cstring(cap_charset); if (cap_encoding != NULL) font_encoding = vf_sexp_get_cstring(cap_encoding); if (cap_font_charset != NULL) font_charset = vf_sexp_get_cstring(cap_font_charset); if (cap_font_encoding != NULL) font_encoding = vf_sexp_get_cstring(cap_font_encoding); if (cap_props != NULL) font_bdf->props = cap_props; } if ((font_bdf->font_file = vf_strdup(font_file)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto End; } if ((font_bdf->font_name = vf_strdup(font_name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto End; } if ((bdf = BDF_GetBDF(font_bdf->bdf_id)) == NULL){ fprintf(stderr, "VFlib internal error: in bdf_create()\n"); vf_error = VF_ERR_INTERNAL; goto End; } font_bdf->ccv_id = -1; if ((charset != NULL) || (encoding != NULL)){ if (font_charset == NULL){ s1 = bdf_get_font_prop(font, "CHARSET_REGISTRY"); s2 = bdf_get_font_prop(font, "CHARSET_ENCODING"); if (s1 == NULL) goto no_ccv; if (s2 == NULL) s2 = ""; sprintf(s_font_charset, "%s%s", s1, s2); font_charset = s_font_charset; } font_bdf->ccv_id = vf_ccv_require(charset, encoding, font_charset, font_encoding); } no_ccv: font->private = font_bdf; val = 0; End: if (implicit == 0){ /* explicit font */ vf_sexp_free3(&cap_font, &cap_point, &cap_pixel); vf_sexp_free3(&cap_dpi, &cap_dpi_x, &cap_dpi_y); vf_sexp_free2(&cap_mag, &cap_aspect); vf_sexp_free2(&cap_charset, &cap_encoding); vf_sexp_free2(&cap_font_charset, &cap_font_encoding); vf_sexp_free1(&cap_fontdirs); } if (val < 0){ if (implicit == 0) vf_sexp_free1(&cap_props); if (bdf_id >= 0) BDF_Close(bdf_id); if (font_bdf != NULL){ vf_free(font_bdf->font_name); vf_free(font_bdf->font_file); } vf_free(font_bdf); } return val; } Private int bdf_close(VF_FONT font) { FONT_BDF font_bdf; font_bdf = (FONT_BDF)font->private; if (font_bdf->bdf_id >= 0) BDF_Close(font_bdf->bdf_id); vf_sexp_free1(&font_bdf->props); vf_free(font_bdf->font_name); vf_free(font_bdf->font_file); vf_free(font_bdf); return 0; } Private int bdf_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { long cp; FONT_BDF font_bdf; BDF bdf; BDF_CHAR bdf_char; double mx, my; if (metric == NULL){ fprintf(stderr, "VFlib internal error: in bdf_get_metric1()\n"); abort(); } if ( ((font_bdf = (FONT_BDF)font->private) == NULL) || ((bdf = BDF_GetBDF(font_bdf->bdf_id)) == NULL) ){ fprintf(stderr, "VFlib internal error: in bdf_get_metric1()\n"); abort(); } cp = code_point; if (font_bdf->ccv_id >= 0) cp = vf_ccv_conv(font_bdf->ccv_id, code_point); if (bdf_debug('c')) printf("VFlib BDF: CCV 0x%lx => 0x%lx\n", code_point, cp); if ((bdf_char = BDF_GetBDFChar(bdf, cp)) == NULL) return -1; mag_mode_1(bdf->point_size, bdf->size, bdf->dpi_x, bdf->dpi_y, font_bdf, font, mag_x, mag_y, &mx, &my, NULL, NULL, NULL); /* 72*pix/dpi = 72*pix/(pix/inch) = 72*inch = 72*(pt/72) = pt */ /* 1inch = 72pt */ metric->bbx_width = 72.0 * mx * bdf_char->bbx_width / bdf->dpi_x; metric->bbx_height = 72.0 * my * bdf_char->bbx_height / bdf->dpi_y; metric->off_x = 72.0 * mx * (bdf_char->off_x / bdf->dpi_x) / bdf->dpi_x; metric->off_y = 72.0 * my * (bdf_char->bbx_height + bdf_char->off_y) / bdf->dpi_y; metric->mv_x = 72.0 * mx * bdf_char->mv_x / bdf->dpi_x; metric->mv_y = 72.0 * my * bdf_char->mv_y / bdf->dpi_y; return 0; } Private int bdf_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { FONT_BDF font_bdf; BDF bdf; double mx, my; if ( ((font_bdf = (FONT_BDF)font->private) == NULL) || ((bdf = BDF_GetBDF(font_bdf->bdf_id)) == NULL) ){ fprintf(stderr, "VFlib internal error: in bdf_get_fontbbx1()\n"); abort(); } mag_mode_1(bdf->point_size, bdf->size, bdf->dpi_x, bdf->dpi_y, font_bdf, font, mag_x, mag_y, &mx, &my, NULL, NULL, NULL); *w_p = 72.0 * mx * bdf->font_bbx_width / bdf->dpi_x; *h_p = 72.0 * my * bdf->font_bbx_height / bdf->dpi_y; *xoff_p = 72.0 * mx * bdf->font_bbx_xoff / bdf->dpi_x; *yoff_p = 72.0 * my * bdf->font_bbx_yoff / bdf->dpi_y; return 0; } Private VF_BITMAP bdf_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { long cp; BDF bdf; FONT_BDF font_bdf; double mx, my; VF_BITMAP bm; if ( ((font_bdf = (FONT_BDF)font->private) == NULL) || ((bdf = BDF_GetBDF(font_bdf->bdf_id)) == NULL) ){ fprintf(stderr, "VFlib internal error: in bdf_get_bitmap1()\n"); abort(); } cp = code_point; if (font_bdf->ccv_id >= 0) cp = vf_ccv_conv(font_bdf->ccv_id, code_point); if (bdf_debug('c')) printf("VFlib BDF: CCV 0x%lx => 0x%lx\n", code_point, cp); if ((bm = bdf_get_bitmap(font_bdf, cp)) == NULL) return NULL; mag_mode_1(bdf->point_size, bdf->size, bdf->dpi_x, bdf->dpi_y, font_bdf, font, mag_x, mag_y, &mx, &my, NULL, NULL, NULL); return VF_MakeScaledBitmap(bm, mx, my); /* WE SOULD NOT RELEASE "bm". See bdf_get_bitmap(). */ } Private VF_OUTLINE bdf_get_outline(VF_FONT font, long code_point, double mag_x, double mag_y) { long cp; FONT_BDF font_bdf; BDF bdf; VF_BITMAP bm; VF_OUTLINE ol; double mx, my, ps, dpi_x, dpi_y, f_bbx_w, f_bbx_h; if ( ((font_bdf = (FONT_BDF)font->private) == NULL) || ((bdf = BDF_GetBDF(font_bdf->bdf_id)) == NULL) ){ fprintf(stderr, "VFlib internal error: in bdf_get_outline()\n"); abort(); } cp = code_point; if (font_bdf->ccv_id >= 0) cp = vf_ccv_conv(font_bdf->ccv_id, code_point); if (bdf_debug('c')) printf("VFlib BDF: CCV 0x%lx => 0x%lx\n", code_point, cp); if ((bm = bdf_get_bitmap1(font, cp, mag_x, mag_y)) == NULL) return NULL; mag_mode_1(bdf->point_size, bdf->size, bdf->dpi_x, bdf->dpi_y, font_bdf, font, mag_x, mag_y, &mx, &my, &ps, &dpi_x, &dpi_y); f_bbx_w = bdf->font_bbx_width * mx; f_bbx_h = bdf->font_bbx_height * my; ol = vf_bitmap_to_outline(bm, f_bbx_w, f_bbx_h, dpi_x, dpi_y, ps, 1, 1); VF_FreeBitmap(bm); return ol; } Private int bdf_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { long cp; FONT_BDF font_bdf; BDF bdf; BDF_CHAR bdf_char; double mx, my; if (metric == NULL){ fprintf(stderr, "VFlib internal error: in bdf_get_metric2()\n"); abort(); } if ( ((font_bdf = (FONT_BDF)font->private) == NULL) || ((bdf = BDF_GetBDF(font_bdf->bdf_id)) == NULL) ){ fprintf(stderr, "VFlib internal error: in bdf_get_metric2()\n"); abort(); } cp = code_point; if (font_bdf->ccv_id >= 0) cp = vf_ccv_conv(font_bdf->ccv_id, code_point); if (bdf_debug('c')) printf("VFlib BDF: CCV 0x%lx => 0x%lx\n", code_point, cp); if ((bdf_char = BDF_GetBDFChar(bdf, cp)) == NULL) return -1; mag_mode_2(bdf->pixel_size, bdf->size, font_bdf, font, mag_x, mag_y, &mx, &my, NULL); metric->bbx_width = toint(mx * bdf_char->bbx_width); metric->bbx_height = toint(my * bdf_char->bbx_height); metric->off_x = toint(mx * bdf_char->off_x); metric->off_y = toint(my * (bdf_char->bbx_height + bdf_char->off_y)); metric->mv_x = toint(mx * bdf_char->mv_x); metric->mv_y = toint(my * bdf_char->mv_y); return 0; } Private int bdf_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { FONT_BDF font_bdf; BDF bdf; double mx, my; if ( ((font_bdf = (FONT_BDF)font->private) == NULL) || ((bdf = BDF_GetBDF(font_bdf->bdf_id)) == NULL) ){ fprintf(stderr, "VFlib internal error: in bdf_get_fontbbx1()\n"); abort(); } mag_mode_2(bdf->pixel_size, bdf->size, font_bdf, font, mag_x, mag_y, &mx, &my, NULL); *w_p = toint(mx * bdf->font_bbx_width); *h_p = toint(my * bdf->font_bbx_height); *xoff_p = toint(mx * bdf->font_bbx_xoff); *yoff_p = toint(my * bdf->font_bbx_yoff); return 0; } Private VF_BITMAP bdf_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { long cp; BDF bdf; FONT_BDF font_bdf; VF_BITMAP bm; double mx, my; if ( ((font_bdf = (FONT_BDF)font->private) == NULL) || ((bdf = BDF_GetBDF(font_bdf->bdf_id)) == NULL) ){ fprintf(stderr, "VFlib internal error: in bdf_get_bitmap2()\n"); abort(); } cp = code_point; if (font_bdf->ccv_id >= 0) cp = vf_ccv_conv(font_bdf->ccv_id, code_point); if (bdf_debug('c')) printf("VFlib BDF: CCV 0x%lx => 0x%lx\n", code_point, cp); if ((bm = bdf_get_bitmap(font_bdf, cp)) == NULL) return NULL; /* WE SOULD NOT RELEASE "bm". See bdf_get_bitmap(). */ mag_mode_2(bdf->pixel_size, bdf->size, font_bdf, font, mag_x, mag_y, &mx, &my, NULL); return VF_MakeScaledBitmap(bm, mx, my); } Private VF_BITMAP bdf_get_bitmap(FONT_BDF font_bdf, long code_point) { BDF_CHAR bdf_char; static struct vf_s_bitmap bitmap; bdf_char = BDF_GetBitmap(font_bdf->bdf_id, code_point); if ((bdf_char == NULL) || (bdf_char->bitmap == NULL)) return NULL; bitmap.bbx_width = bdf_char->bbx_width; bitmap.bbx_height = bdf_char->bbx_height; bitmap.off_x = bdf_char->off_x; bitmap.off_y = bdf_char->bbx_height + bdf_char->off_y; bitmap.mv_x = bdf_char->mv_x; bitmap.mv_y = bdf_char->mv_y; bitmap.bitmap = bdf_char->bitmap; bitmap.raster = bdf_char->raster; return &bitmap; /* CALLER MUST *NOT* CALL VF_FreeBitmap()! */ } Private char* bdf_get_font_prop(VF_FONT font, char *prop_name) /* CALLER MUST RELEASE RETURNED STRING */ { FONT_BDF font_bdf; BDF bdf; SEXP v; double ps, dpix, dpiy; char str[512], *r; if ( ((font_bdf = (FONT_BDF)font->private) == NULL) || ((bdf = BDF_GetBDF(font_bdf->bdf_id)) == NULL) ){ fprintf(stderr, "VFlib: internal error: in bdf_get_font_prop()\n"); abort(); } if ((v = vf_sexp_assoc(prop_name, font_bdf->props)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else if ((v = vf_sexp_assoc(prop_name, default_properties)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else { if (font->mode == 1){ mag_mode_1(bdf->point_size, bdf->size, bdf->dpi_x, bdf->dpi_y, font_bdf, font, 1, 1, NULL, NULL, &ps, &dpix, &dpiy); /**printf("** Mode1 %.3f %.3f %.3f %.3f %.3f\n", ps, dpix, dpiy, font->point_size, font_bdf->point_size);**/ if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(10.0 * ps)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps * dpiy / POINTS_PER_INCH)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpix)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpiy)); return vf_strdup(str); } } else if (font->mode == 2){ mag_mode_2(bdf->pixel_size, bdf->size, font_bdf, font, 1, 1, NULL, NULL, &ps); /**printf("** Mode2 %.3f\n", ps);**/ if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(10.0 * ps * POINTS_PER_INCH / DEFAULT_DPI)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(DEFAULT_DPI)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(DEFAULT_DPI)); return vf_strdup(str); #ifndef HAVE_FONT_ASCENT } else if (strcmp(prop_name, "FONT_ASCENT") == 0){ sprintf(str, "%d", bdf->ascent); return vf_strdup(str); #endif /*HAVE_FONT_ASCENT*/ #ifndef HAVE_FONT_DESCENT } else if (strcmp(prop_name, "FONT_DESCENT") == 0){ sprintf(str, "%d", bdf->descent); return vf_strdup(str); #endif /*HAVE_FONT_DESCNET*/ } } } if ((r = BDF_GetProp(bdf, prop_name)) != NULL) return vf_strdup(r); return NULL; } Private int bdf_debug2(char type, char *str); Private int bdf_debug(char type) { int v; char *p0; v = FALSE; if (env_debug_mode != NULL){ if ((v = bdf_debug2(type, env_debug_mode)) == TRUE) return TRUE; } if (default_debug_mode == NULL) return FALSE; if ((p0 = vf_sexp_get_cstring(default_debug_mode)) == NULL) return FALSE; return bdf_debug2(type, p0); } Private int bdf_debug2(char type, char *p0) { char *p; for (p = p0; *p != '\0'; p++){ if (*p == type) return TRUE; } for (p = p0; *p != '\0'; p++){ if (*p == '*') return TRUE; } return FALSE; } Private void mag_mode_1(double font_size, int size, double font_dpi_x, double font_dpi_y, FONT_BDF font_bdf, VF_FONT font, double mag_x, double mag_y, double *ret_mag_x, double *ret_mag_y, double *ret_point_size, double *ret_dpix, double *ret_dpiy) { double mx, my, dpix, dpiy, ps, asp; if ((ps = font->point_size) < 0) if ((ps = font_bdf->point_size) < 0) if ((ps = font_size) < 0) if ((ps = size) < 0) ps = DEFAULT_PIXEL_SIZE; asp = (v_default_aspect * font_bdf->aspect); mx = mag_x * font_bdf->mag * font->mag_x * asp * ps / (double)font_size; my = mag_y * font_bdf->mag * font->mag_y * ps / (double)font_size; ps = mag_y * font_bdf->mag * font->mag_y * ps; if ((font->dpi_x > 0) && (font->dpi_y > 0)){ dpix = font->dpi_x; dpiy = font->dpi_y; } else if ((font_bdf->dpi_x > 0) && (font_bdf->dpi_y > 0)){ dpix = font_bdf->dpi_x; dpiy = font_bdf->dpi_y; } else if ((v_default_dpi_x > 0) && (v_default_dpi_y > 0)){ dpix = v_default_dpi_x; dpiy = v_default_dpi_y; } else { dpix = font_dpi_x; dpiy = font_dpi_y; } if (ret_mag_x != NULL) *ret_mag_x = mx * (dpix / font_dpi_x); if (ret_mag_y != NULL) *ret_mag_y = my * (dpiy / font_dpi_y); #if 0 printf("*** %.3f %.3f %.3f\n", mag_x, font_bdf->mag, font->mag_x); printf(" %.3f %.3f %.3f\n", mag_y, font_bdf->mag, font->mag_y); printf(" dpix=%.3f font_dpi_x=%.3f\n", dpix, font_dpi_x); printf(" dpiy=%.3f font_dpi_y=%.3f\n", dpiy, font_dpi_y); printf(" asp=%.3f\n", asp); printf(" mx=%.3f, my=%.3f\n", mx, my); if (ret_mag_x != NULL) printf(" mag_x=%.3f, mag_y=%.3f\n", *ret_mag_x, *ret_mag_y); #endif if (ret_point_size != NULL) *ret_point_size = ps; if (ret_dpix != NULL) *ret_dpix = dpix; if (ret_dpiy != NULL) *ret_dpiy = dpiy; } Private void mag_mode_2(int font_size, int size, FONT_BDF font_bdf, VF_FONT font, double mag_x, double mag_y, double *ret_mag_x, double *ret_mag_y, double *ret_pixel_size) { double mx, my, ps, asp; if ((ps = font->pixel_size) < 0) if ((ps = font_bdf->pixel_size) < 0) if ((ps = font_size) < 0) if ((ps = size) < 0) ps = DEFAULT_PIXEL_SIZE; asp = v_default_aspect * font_bdf->aspect; if (font_size <= 0){ mx = mag_x * font_bdf->mag * font->mag_x * asp; my = mag_y * font_bdf->mag * font->mag_y; } else { mx = mag_x * font_bdf->mag * font->mag_x * asp * ps /(double)font_size; my = mag_y * font_bdf->mag * font->mag_y * ps /(double)font_size; } ps = ps * font_bdf->mag * font->mag_y; if (ret_mag_x != NULL) *ret_mag_x = mx; if (ret_mag_y != NULL) *ret_mag_y = my; if (ret_pixel_size != NULL) *ret_pixel_size = ps; } /* * Include Low-Level Font Interface Routine. */ #define STRCMP(s1,s2) strncmp(s1,s2,sizeof(s2)-1) #include "bdf.c" static int bdf_last_bdf_id = -1; static BDF bdf_last_bdf = NULL; Private void BDF_SetBDF(int bdf_id, BDF bdf) { bdf_last_bdf_id = bdf_id; bdf_last_bdf = bdf; } Private BDF BDF_GetBDF(int bdf_id) { BDF bdf; if (bdf_id == -1){ bdf_last_bdf_id = -1; bdf_last_bdf = NULL; return NULL; } if ( (bdf_last_bdf_id == bdf_id) && (bdf_last_bdf != NULL) && (bdf_last_bdf_id != -1)) return bdf_last_bdf; bdf = (bdf_table->get_obj_by_id)(bdf_table, bdf_id); bdf_last_bdf_id = bdf_id; bdf_last_bdf = bdf; return bdf; } /*EOF*/ vflib3-3.6.14.dfsg/src/drv_comic.c0000644000175000017500000004475307363721022016203 0ustar mohuramohura/* * drv_comic.c - A font driver for font composing like japanese comics. * by Hirotsugu Kakugawa * * 24 Feb 1997 First version. * 26 Feb 1997 Added 'query_font_type'. * 6 Aug 1997 VFlib 3.3 Changed API. * 3 Feb 1998 VFlib 3.4 Changed API. * 1 Sep 1998 Added capabilities symbol-font, alpha-numeric-font, * hirakana-font, katakana-font, greek-font, cyrillic-font, * and keisen-font. * 24 Nov 1998 Added get_fontbbx1() and get_fontbbx2(). * 9 Dec 1999 Fixed a bug in debug_on(). * */ /* * Copyright (C) 1997-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* MEMO: * "kanji-font" cabability: * a font entry name for Kanji font. * "kana-font" cabability: * a font entry name for Kana, Alphabets, Numerals font. * * This driver assumes character set is JIS X-0208 1990, and * encoding is JIS style. A glyph for a character whose code point * is CODE_POINT is determinted by the code point value: * (1) Case (CODE_POINT < 0x3021): * --- A glyph for a character of CODE_POINT of a font * given by "kana-font" capability. * (2) Otherwise: * --- A glyph for a character of CODE_POINT of a font * given by "kanji-font" capability. * Note that character set and encoding of font entries given * by "kanji-font" and "kana-font" capabilties must be JIS X 0208 * and JIS style. */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "cache.h" #include "sexp.h" #include "str.h" #include "path.h" #include "comic.h" #define I_KANJI 0 #define I_KANA 1 #define I_SYMBOL 2 #define I_ALNUM 3 #define I_HIRAKANA 4 #define I_KATAKANA 5 #define I_GREEK 6 #define I_CYRILLIC 7 #define I_KEISEN 8 #define I_N 9 struct s_font_comic { char *font_name; double point_size; double pixel_size; double mag; double dpi_x, dpi_y; int sub_fid[I_N]; SEXP props; }; typedef struct s_font_comic *FONT_COMIC; Private SEXP_STRING default_point_size; Private double v_default_point_size; Private SEXP_STRING default_pixel_size; Private double v_default_pixel_size; Private SEXP_STRING default_dpi; Private double v_default_dpi_x, v_default_dpi_y; Private SEXP_ALIST default_properties; Private SEXP_ALIST default_variables; Private SEXP_STRING default_debug_mode; Private int comic_create(VF_FONT,char*,char*,int,SEXP); Private int comic_close(VF_FONT); Private int comic_get_metric1(VF_FONT,long,VF_METRIC1, double,double); Private int comic_get_metric2(VF_FONT,long,VF_METRIC2, double,double); Private int comic_get_fontbbx1(VF_FONT,double,double, double*,double*,double*,double*); Private int comic_get_fontbbx2(VF_FONT,double,double, int*,int*,int*,int*); Private VF_BITMAP comic_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP comic_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE comic_get_outline(VF_FONT,long,double,double); Private char* comic_get_font_prop(VF_FONT,char*); Private int comic_query_font_type(VF_FONT,long); Private void release_mem(FONT_COMIC); Private int font_mapping(FONT_COMIC,long); Private int debug_on(char type); Public int VF_Init_Driver_Comic(void) { struct s_capability_table ct[10]; int z; z = 0; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_point_size; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_pixel_size; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME_COMIC, ct, NULL, NULL) == VFLIBCAP_PARSED_ERROR) return -1; v_default_point_size = -1; if (default_point_size != NULL) v_default_point_size = atof(vf_sexp_get_cstring(default_point_size)); v_default_pixel_size = -1; if (default_pixel_size != NULL) v_default_pixel_size = atof(vf_sexp_get_cstring(default_pixel_size)); v_default_dpi_x = -1; v_default_dpi_y = -1; if (default_dpi != NULL) v_default_dpi_x = v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi)); VF_InstallFontDriver(FONTCLASS_NAME_COMIC, (DRIVER_FUNC_TYPE)comic_create); return 0; } Private int comic_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_COMIC font_comic; SEXP cap_ch[I_N]; SEXP cap_point, cap_pixel; SEXP cap_mag, cap_dpi, cap_props; int i; struct s_capability_table ct[20]; int z; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_COMIC_KANJI_FONT */ ct[z].cap = VF_CAPE_COMIC_KANJI_FONT; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ch[I_KANJI]; /* VF_CAPE_COMIC_KANA_FONT */ ct[z].cap = VF_CAPE_COMIC_KANA_FONT; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ch[I_KANA]; /* VF_CAPE_COMIC_SYMBOL_FONT */ ct[z].cap = VF_CAPE_COMIC_SYMBOL_FONT; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ch[I_SYMBOL]; /* VF_CAPE_COMIC_ALNUM_FONT */ ct[z].cap = VF_CAPE_COMIC_ALNUM_FONT; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ch[I_ALNUM]; /* VF_CAPE_COMIC_HIRAKANA_FONT */ ct[z].cap = VF_CAPE_COMIC_HIRAKANA_FONT; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ch[I_HIRAKANA]; /* VF_CAPE_COMIC_KATAKANA_FONT */ ct[z].cap = VF_CAPE_COMIC_KATAKANA_FONT; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ch[I_KATAKANA]; /* VF_CAPE_COMIC_GREEK_FONT */ ct[z].cap = VF_CAPE_COMIC_GREEK_FONT; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ch[I_GREEK]; /* VF_CAPE_COMIC_CYRILLIC_FONT */ ct[z].cap = VF_CAPE_COMIC_CYRILLIC_FONT; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ch[I_CYRILLIC]; /* VF_CAPE_COMIC_KEISEN_FONT */ ct[z].cap = VF_CAPE_COMIC_KEISEN_FONT; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ch[I_KEISEN]; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_point; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_pixel; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi; /* VF_CAPE_MAG */ ct[z].cap = VF_CAPE_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mag; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; /* No support for implicit fonts */ if (implicit == 1) return -1; /* Only supports explicit fonts */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, NULL) == VFLIBCAP_PARSED_ERROR) return -1; font->font_type = -1; /* Use comic_query_font_type() */ font->get_metric1 = comic_get_metric1; font->get_metric2 = comic_get_metric2; font->get_fontbbx1 = comic_get_fontbbx1; font->get_fontbbx2 = comic_get_fontbbx2; font->get_bitmap1 = comic_get_bitmap1; font->get_bitmap2 = comic_get_bitmap2; font->get_outline = comic_get_outline; font->get_font_prop = comic_get_font_prop; font->query_font_type = comic_query_font_type; font->close = comic_close; ALLOC_IF_ERR(font_comic, struct s_font_comic){ vf_error = VF_ERR_NO_MEMORY; return -1; } if ((font_comic->font_name = vf_strdup(font_name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; vf_free(font_comic); return -1; } font_comic->point_size = v_default_point_size; font_comic->pixel_size = v_default_pixel_size; font_comic->dpi_x = v_default_dpi_x; font_comic->dpi_y = v_default_dpi_y; font_comic->mag = 1.0; for (i = 0; i < I_N; i++) font_comic->sub_fid[i] = -1; font_comic->props = NULL; if (implicit == 0){ if (cap_point != NULL) font_comic->point_size = atof(vf_sexp_get_cstring(cap_point)); if (cap_pixel != NULL) font_comic->pixel_size = atof(vf_sexp_get_cstring(cap_pixel)); if (cap_dpi != NULL){ font_comic->dpi_x = atof(vf_sexp_get_cstring(cap_dpi)); font_comic->dpi_y = atof(vf_sexp_get_cstring(cap_dpi)); } if (cap_props != NULL) font_comic->props = cap_props; } if (font->mode == 1){ for (i = 0; i < I_N; i++){ if ((cap_ch[i] != NULL) && ((font_comic->sub_fid[i] = VF_OpenFont1(vf_sexp_get_cstring(cap_ch[i]), font_comic->dpi_x, font_comic->dpi_y, font_comic->point_size, font->mag_x * font_comic->mag, font->mag_y * font_comic->mag)) < 0)){ goto CANT_OPEN; } } } else if (font->mode == 2){ for (i = 0; i < I_N; i++){ if ((cap_ch[i] != NULL) && ((font_comic->sub_fid[i] = VF_OpenFont2(vf_sexp_get_cstring(cap_ch[i]), font_comic->pixel_size, font->mag_x * font_comic->mag, font->mag_y * font_comic->mag)) < 0)){ goto CANT_OPEN; } } } else { fprintf(stderr, "VFlib: internal error in comic_create()\n"); abort(); } font->private = font_comic; for (i = 0; i < I_N; i++){ if (cap_ch[i] != NULL) vf_sexp_free(&cap_ch[i]); } vf_sexp_free4(&cap_point, &cap_pixel, &cap_mag, &cap_dpi); return 0; CANT_OPEN: for (i = 0; i < I_N; i++){ if (cap_ch[i] != NULL) vf_sexp_free(&cap_ch[i]); } vf_sexp_free4(&cap_point, &cap_pixel, &cap_mag, &cap_dpi); vf_error = VF_ERR_NO_FONT_ENTRY; release_mem(font_comic); return -1; } Private int comic_close(VF_FONT font) { release_mem((FONT_COMIC)(font->private)); return 0; } Private void release_mem(FONT_COMIC font_comic) { int i; if (font_comic != NULL){ vf_free(font_comic->font_name); vf_sexp_free1(&font_comic->props); for (i = 0; i < I_N; i++){ if (font_comic->sub_fid[i] >= 0) VF_CloseFont(font_comic->sub_fid[i]); } vf_free(font_comic); } } Private int comic_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { FONT_COMIC font_comic; int fid; if (metric == NULL){ fprintf(stderr, "VFlib internal error: in comic_get_metric1()\n"); abort(); } if ((font_comic = (FONT_COMIC)font->private) == NULL){ fprintf(stderr, "VFlib internal error in comic class.\n"); abort(); } if ((fid = font_mapping(font_comic, code_point)) < 0) return -1; VF_GetMetric1(fid, code_point, metric, mag_x, mag_y); return 0; } Private int comic_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { FONT_COMIC font_comic; int i; double w, h, xoff, yoff; if ((font_comic = (FONT_COMIC)font->private) == NULL){ fprintf(stderr, "VFlib internal error in comic class.\n"); abort(); } *w_p = *h_p = *xoff_p = *yoff_p = 0; w = h = xoff = yoff = 0; for (i = 0; i < I_N; i++){ if (font_comic->sub_fid[i] < 0) continue; if (VF_GetFontBoundingBox1(font_comic->sub_fid[i], mag_x, mag_y, &w, &h, &xoff, &yoff) < 0) continue; if (w > *w_p) *w_p = w; if (h > *h_p) *h_p = h; if (xoff < *xoff_p) *xoff_p = xoff; if (yoff > *yoff_p) *yoff_p = yoff; } return 0; } Private VF_BITMAP comic_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_COMIC font_comic; int fid; if ((font_comic = (FONT_COMIC)font->private) == NULL){ fprintf(stderr, "VFlib internal error in comic class.\n"); abort(); } if ((fid = font_mapping(font_comic, code_point)) < 0) return NULL; return VF_GetBitmap1(fid, code_point, mag_x, mag_y); } Private VF_OUTLINE comic_get_outline(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_COMIC font_comic; int fid; if ((font_comic = (FONT_COMIC)font->private) == NULL){ fprintf(stderr, "VFlib internal error in comic class.\n"); abort(); } if ((fid = font_mapping(font_comic, code_point)) < 0) return NULL; return VF_GetOutline(fid, code_point, mag_x, mag_y); } Private int comic_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { FONT_COMIC font_comic; int fid; if ((font_comic = (FONT_COMIC)font->private) == NULL){ fprintf(stderr, "VFlib internal error in comic class.\n"); abort(); } if ((fid = font_mapping(font_comic, code_point)) < 0) return -1; VF_GetMetric2(fid, code_point, metric, mag_x, mag_y); return 0; } Private int comic_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int*w_p, int *h_p, int *xoff_p, int *yoff_p) { FONT_COMIC font_comic; int w, h, xoff, yoff; int i; if ((font_comic = (FONT_COMIC)font->private) == NULL){ fprintf(stderr, "VFlib internal error in comic class.\n"); abort(); } *w_p = *h_p = *xoff_p = *yoff_p = 0; w = h = xoff = yoff = 0; for (i = 0; i < I_N; i++){ if (font_comic->sub_fid[i] < 0) continue; if (VF_GetFontBoundingBox2(font_comic->sub_fid[i], mag_x, mag_y, &w, &h, &xoff, &yoff) < 0) continue; if (w > *w_p) *w_p = w; if (h > *h_p) *h_p = h; if (xoff < *xoff_p) *xoff_p = xoff; if (yoff > *yoff_p) *yoff_p = yoff; } return 0; } Private VF_BITMAP comic_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_COMIC font_comic; int fid; if ((font_comic = (FONT_COMIC)font->private) == NULL){ fprintf(stderr, "VFlib internal error in comic class.\n"); abort(); } if ((fid = font_mapping(font_comic, code_point)) < 0) return NULL; return VF_GetBitmap2(fid, code_point, mag_x, mag_y); } Private char* comic_get_font_prop(VF_FONT font, char *prop_name) { FONT_COMIC font_comic; int fid; if ((font_comic = (FONT_COMIC)font->private) == NULL){ fprintf(stderr, "VFlib internal error in comic class.\n"); abort(); } /* Get prop for Kanji font, not Kana font */ if ((fid = font_mapping(font_comic, (long)0x3021)) < 0) return NULL; return VF_GetFontProp(fid, prop_name); } Private int comic_query_font_type(VF_FONT font, long code_point) { FONT_COMIC font_comic; int fid; if ((font_comic = (FONT_COMIC)font->private) == NULL){ fprintf(stderr, "VFlib internal error in comic class.\n"); abort(); } if ((fid = font_mapping(font_comic, code_point)) < 0) return -1; return VF_QueryFontType(fid, code_point); } Private int font_mapping(FONT_COMIC font_comic, long code_point) { int code_hi; int fid, alt; code_hi = code_point / 0x100; if ((code_hi < 0x21) || (0x78 < code_hi)){ vf_error = VF_ERR_ILL_CODE_POINT; return -1; } else { switch (code_hi){ default: alt = -1; fid = font_comic->sub_fid[I_KANJI]; break; case 0x21: case 0x22: alt = font_comic->sub_fid[I_KANA]; fid = font_comic->sub_fid[I_SYMBOL]; break; case 0x23: alt = font_comic->sub_fid[I_KANA]; fid = font_comic->sub_fid[I_ALNUM]; break; case 0x24: alt = font_comic->sub_fid[I_KANA]; fid = font_comic->sub_fid[I_HIRAKANA]; break; case 0x25: alt = font_comic->sub_fid[I_KANA]; fid = font_comic->sub_fid[I_KATAKANA]; break; case 0x26: alt = font_comic->sub_fid[I_KANA]; fid = font_comic->sub_fid[I_GREEK]; break; case 0x27: alt = font_comic->sub_fid[I_KANA]; fid = font_comic->sub_fid[I_CYRILLIC]; break; case 0x28: alt = font_comic->sub_fid[I_KANA]; fid = font_comic->sub_fid[I_KEISEN]; break; } if (fid < 0) fid = alt; } if (debug_on('m')) printf("VFlib Japanese Comic: Code Point: 0x%lx, FID: %d\n", code_point, fid); return fid; } Private int debug_on(char type) { char *p; if (default_debug_mode == NULL) return FALSE; if ((p = vf_sexp_get_cstring(default_debug_mode)) == NULL) return FALSE; while (*p != '\0'){ if (*p == type) return TRUE; p++; } while (*p != '\0'){ if (*p == '*') return TRUE; p++; } return FALSE; } /*EOF*/ vflib3-3.6.14.dfsg/src/drv_gf.c0000644000175000017500000007515207363420510015500 0ustar mohuramohura/* * drv_gf.c - A font driver for TeX GF format fonts. * * 28 Sep 1996 First version. * 14 Dec 1996 for VFlib 3.1 * 26 Feb 1997 Added 'query_font_type'. * 4 Aug 1997 VFlib 3.3 Changed API. * 30 Jan 1998 VFlib 3.4 Changed API. * 21 Apr 1998 Debugged get_font_prop(). * 24 Nov 1998 Added get_fontbbx1() and get_fontbbx2(). * 9 Dec 1998 Fixed bugs in get_fontbbx1() and get_fontbbx2(). (^o^;) * 16 Sep 1999 Changed not to use TFM files. * 18 Oct 2001 Fixed memory leak. */ /* * Copyright (C) 1996-2001 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* (Suppose that default resolution is 300 dpi) ARGS FOR FONT OPEN BEHAVIOR of the DRIVER Case# font_name device_dpi mag font_dpi dev_dpi bitmap_mag TFM_mag ---------------------------------------------------------------------------- 1. cmr10 -1 1 300 300 1 1 2. cmr10 -1 1.2 360 300 1 1.2 3. cmr10 400 1 400 400 1 1 4. cmr10 400 1.2 480 400 1 1.2 5. cmr10.gf -1 1 300 300 1 1 6. cmr10.gf -1 1.2 360 300 1 1.2 7. cmr10.gf 400 1 400 400 1 1 8. cmr10.gf 400 1.2 480 400 1 1.2 9. cmr10.400gf -1 1 400 400 1 1 10. cmr10.400gf -1 1.2 480 400 1 1.2 11. cmr10.400gf 400 1 400 400 1 1 12. cmr10.400gf 400 1.2 400 400 1.2 1.2 13. cmr10.300gf 360 1 300 360 1.2 1 14. cmr10.300gf 360 1.2 300 360 1.44 1.2 Font file is selected from the rules of the table shown above. a. A font file of 'font_dpi' dpi font and opened. b. Bitmaps of a font is scaled by 'bitmap_mag'. c. Font metrics are multiplied by 'TFM_mag'. Memo: * Case 5: We want a GF font file "cmr10" default device resolution. Thus, the bitmaps and metrics need not be scaled. * Case 6: We want a GF font file "cmr10" default device resolution with maginication factor 1.2. Since default device resolution is 300 and magnification factor is 1.2, the font file we want is "cmr10.360gf". Since device resolution is 300, metrics must be scaled by 1.2. * Case 9: This case requires a font "cmr10.400gf" and target device is not considered. Thus bitmaps and metrics are not scaled. * Case 10: This case requires a font cmr10 for 400 dpi scaled by 1.2. Thus, "cmr10.480gf" is used for this request. Since it is scaled by 1.2, font metrics are scaled by 1.2 but bitmaps in a font is not magnified. * Case 13: We want to use a GF font file "cmr10.300gf" for 360 dpi device. Thus, the bitmaps of the font must be scaled by (360/300) = 1.2. Since the metrics in a TFM file are independent from device resolution, metrics need not be scaled. * Case 14: We want to use a GF font file "cmr10.300gf" for 360 dpi device and magnify it by 1.2. Thus, the bitmaps of the font must be scaled by (1.2 x (360/300)) = 1.44. Since the metrics in a TFM file are independent from device resolution, TFM metrics must be scaled by 1.2, which is a magnification factor. */ #include "config.h" #include "with.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "cache.h" #include "str.h" #include "path.h" #include "fsearch.h" #include "sexp.h" #include "texfonts.h" #include "gf.h" struct s_font_gf { int gf_id; char *font_name; char *font_file; double point_size; double pixel_size; double mag; double dpi_x, dpi_y; SEXP props; double extra_mag; }; typedef struct s_font_gf *FONT_GF; Private SEXP_LIST default_fontdirs; Private SEXP_LIST default_extensions; Private SEXP_STRING default_point_size; Private double v_default_point_size; Private SEXP_STRING default_pixel_size; Private double v_default_pixel_size; Private SEXP_STRING default_dpi; Private double v_default_dpi_x, v_default_dpi_y; Private SEXP_STRING default_make_glyph; Private int v_default_make_glyph = 0; Private SEXP_ALIST default_properties; Private SEXP_ALIST default_variables; Private SEXP_STRING default_debug_mode; Private int gf_create(VF_FONT,char*,char*,int,SEXP); Private int gf_close(VF_FONT); Private int gf_get_metric1(VF_FONT,long,VF_METRIC1,double,double); Private int gf_get_metric2(VF_FONT,long,VF_METRIC2,double,double); Private int gf_get_fontbbx1(VF_FONT,double,double, double*,double*,double*,double*); Private int gf_get_fontbbx2(VF_FONT,double,double, int*,int*,int*,int*); Private VF_BITMAP gf_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP gf_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE gf_get_outline(VF_FONT,long,double,double); Private char* gf_get_font_prop(VF_FONT,char*); Private int GF_Init(void); Private int GF_Open(FONT_GF font_gf, VF_FONT font, int implicit); Private void GF_Close(int gf_id); Private VF_BITMAP GF_GetBitmap(int gf_id, long code_point); Private int GF_GetMetric(int gf_id, long code_point, VF_METRIC1 me, double *ret_dpi_x, double *ret_dpi_y, double *ret_design_size); Private void GF_GetFontBBX(int gf_id, int *bbx_w_p, int *bbx_h_p, int *bbx_xoff_p, int *bbx_yoff_p); Private int debug_on(char type); Public int VF_Init_Driver_GF(void) { int z; struct s_capability_table ct[20]; z = 0; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_fontdirs; /* VF_CAPE_EXTENSIONS */ ct[z].cap = VF_CAPE_EXTENSIONS; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_extensions; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_point_size; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_pixel_size; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi; /* VF_CAPE_MAKE_MISSING_GLYPH */ ct[z].cap = VF_CAPE_MAKE_MISSING_GLYPH; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_make_glyph; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_tex_init() < 0) return -1; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME_GF, ct, vf_tex_default_variables, NULL) == VFLIBCAP_PARSED_ERROR) return -1; if (default_extensions == NULL) default_extensions = vf_sexp_cstring2list(DEFAULT_EXTENSIONS_GF); v_default_point_size = -1; if (default_point_size != NULL) v_default_point_size = atof(vf_sexp_get_cstring(default_point_size)); v_default_pixel_size = -1; if (default_pixel_size != NULL) v_default_pixel_size = atof(vf_sexp_get_cstring(default_pixel_size)); v_default_dpi_x = -1; v_default_dpi_y = -1; if (default_dpi != NULL) v_default_dpi_x = v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi)); v_default_make_glyph = 0; if (default_make_glyph != NULL){ v_default_make_glyph = vf_parse_bool(vf_sexp_get_cstring(default_make_glyph)); } if (GF_Init() < 0) return -1; if ((v_default_dpi_x < 0) || (v_default_dpi_x < 0)){ v_default_dpi_x = vf_tex_default_dpi(); v_default_dpi_y = vf_tex_default_dpi(); } VF_InstallFontDriver(FONTCLASS_NAME_GF, (DRIVER_FUNC_TYPE)gf_create); return 0; } Private int gf_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_GF font_gf; SEXP cap_ffile, cap_point, cap_pixel; SEXP cap_dpi, cap_mag, cap_props; char *font_file; int val, gf_id; struct s_capability_table ct[10]; int z; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_FONT_FILE */ ct[z].cap = VF_CAPE_FONT_FILE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ffile; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_point; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_pixel; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi; /* VF_CAPE_MAG */ ct[z].cap = VF_CAPE_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mag; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (implicit == 1){ /* implicit font */ font_file = font_name; } else { /* explicit font */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, vf_tex_default_variables) == VFLIBCAP_PARSED_ERROR) return -1; if (cap_ffile == NULL){ /* Use font name as font file name if font file name is not given. */ font_file = font_name; } else { font_file = vf_sexp_get_cstring(cap_ffile); } } font->font_type = VF_FONT_TYPE_BITMAP; font->get_metric1 = gf_get_metric1; font->get_metric2 = gf_get_metric2; font->get_fontbbx1 = gf_get_fontbbx1; font->get_fontbbx2 = gf_get_fontbbx2; font->get_bitmap1 = gf_get_bitmap1; font->get_bitmap2 = gf_get_bitmap2; font->get_outline = gf_get_outline; font->get_font_prop = gf_get_font_prop; font->query_font_type = NULL; font->close = gf_close; val = -1; font_gf = NULL; ALLOC_IF_ERR(font_gf, struct s_font_gf) goto NoMemoryError; font_gf->gf_id = -1; font_gf->font_name = NULL; font_gf->font_file = NULL; font_gf->point_size = v_default_point_size; font_gf->pixel_size = v_default_pixel_size; font_gf->dpi_x = v_default_dpi_x; font_gf->dpi_y = v_default_dpi_y; font_gf->mag = 1.0; font_gf->props = NULL; font_gf->extra_mag = 1.0; if (implicit == 0){ if (cap_point != NULL) font_gf->point_size = atof(vf_sexp_get_cstring(cap_point)); if (cap_pixel != NULL) font_gf->pixel_size = atof(vf_sexp_get_cstring(cap_pixel)); if (cap_dpi != NULL) font_gf->dpi_x = font_gf->dpi_y = atof(vf_sexp_get_cstring(cap_dpi)); if (cap_mag != NULL) font_gf->mag = atof(vf_sexp_get_cstring(cap_mag)); if (cap_props != NULL) font_gf->props = cap_props; } if ((font_gf->font_file = vf_strdup(font_file)) == NULL) goto NoMemoryError; if ((font_gf->font_name = vf_strdup(font_name)) == NULL) goto NoMemoryError; if ((gf_id = GF_Open(font_gf, font, implicit)) < 0) goto Error; font_gf->gf_id = gf_id; font->private = font_gf; val = 0; goto End; NoMemoryError: vf_error = VF_ERR_NO_MEMORY; Error: if (font_gf != NULL){ vf_free(font_gf->font_name); vf_free(font_gf->font_file); } if (implicit == 0) vf_sexp_free1(&cap_props); vf_free(font_gf); End: if (implicit == 0){ vf_sexp_free3(&cap_ffile, &cap_point, &cap_pixel); vf_sexp_free2(&cap_dpi, &cap_mag); } return val; } Private int gf_close(VF_FONT font) { FONT_GF font_gf; font_gf = (FONT_GF)font->private; if (font_gf != NULL){ GF_Close(font_gf->gf_id); vf_sexp_free1(&font_gf->props); vf_free(font_gf->font_name); vf_free(font_gf->font_file); } vf_free(font_gf); return 0; } Private int gf_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { FONT_GF font_gf; double mx, my, ps, design_size; if (metric == NULL){ fprintf(stderr, "VFlib internal error: in gf_get_metric1()\n"); abort(); } if ((font_gf = (FONT_GF)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in gf_get_metric1()\n"); abort(); } if (GF_GetMetric(font_gf->gf_id, code_point, metric, NULL, NULL, &design_size) < 0) return -1; if ((ps = font->point_size) < 0) if ((ps = font_gf->point_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ mx = mag_x * font->mag_x * font_gf->mag; my = mag_y * font->mag_y * font_gf->mag; } else { mx = mag_x * font->mag_x * font_gf->mag * (ps/design_size); my = mag_y * font->mag_y * font_gf->mag * (ps/design_size); } metric->bbx_width *= mx; metric->bbx_height *= my; metric->off_x *= mx; metric->off_y *= my; metric->mv_x *= mx; metric->mv_y *= my; return 0; } Private int gf_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { FONT_GF font_gf; double mx, my, ps, design_size, dpi_x, dpi_y; int w, h, xoff, yoff; if ((font_gf = (FONT_GF)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in gf_get_fontbbx1()\n"); abort(); } if (GF_GetMetric(font_gf->gf_id, -1, NULL, &dpi_x, &dpi_y, &design_size) < 0) return -1; if ((ps = font->point_size) < 0) if ((ps = font_gf->point_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ mx = mag_x * font->mag_x * font_gf->mag; my = mag_y * font->mag_y * font_gf->mag; } else { mx = mag_x * font->mag_x * font_gf->mag * (ps/design_size); my = mag_y * font->mag_y * font_gf->mag * (ps/design_size); } GF_GetFontBBX(font_gf->gf_id, &w, &h, &xoff, &yoff); #if 0 printf("*** %d %d %d %d %.3f %.3f %.3f %.3f\n", w, h, xoff, yoff, mx, my, dpi_x, dpi_y); #endif *w_p = mx * w * 72.27 / dpi_x; *h_p = my * h * 72.27 / dpi_y; *xoff_p = mx * xoff * 72.27 / dpi_x; *yoff_p = my * yoff * 72.27 / dpi_y; return 0; } Private VF_BITMAP gf_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { VF_BITMAP bm; FONT_GF font_gf; double mx, my, ps, design_size; if ((font_gf = (FONT_GF)font->private) == NULL){ fprintf(stderr, "VFlib internal error in gf_get_bitmap1()\n"); abort(); } if ((bm = GF_GetBitmap(font_gf->gf_id, code_point)) == NULL) return NULL; /* 'bm' SHOULD NOT BE RELEASED. */ if (GF_GetMetric(font_gf->gf_id, code_point, NULL, NULL, NULL, &design_size) < 0) return NULL; if ((ps = font->point_size) < 0) if ((ps = font_gf->point_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ /* Note: font->mag_x and font_gf->mag are already used to select scaled glyph, e.g., cmr10.360gf for 300dpi with mag 1.2. */ mx = font_gf->extra_mag * mag_x; my = font_gf->extra_mag * mag_y; } else { #if 0 m = font->mag_y * font_gf->mag; mx = font_gf->extra_mag * mag_x * m * (ps/design_size); my = font_gf->extra_mag * mag_y * m * (ps/design_size); #endif mx = font_gf->extra_mag * mag_x * (ps/design_size); my = font_gf->extra_mag * mag_y * (ps/design_size); } if (debug_on('m')) printf("VFlib GF: get_bitmap1: bitmap mag: %.4f %.4f\n", mx, my); return VF_MakeScaledBitmap(bm, mx, my); } Private VF_OUTLINE gf_get_outline(VF_FONT font, long code_point, double mag_x, double mag_y) { VF_BITMAP bm; VF_OUTLINE ol; FONT_GF font_gf; int bbx_w, bbx_h; double dpi_x, dpi_y, design_size; if ((font_gf = (FONT_GF)font->private) == NULL){ fprintf(stderr, "VFlib internal error in gf_get_outline()\n"); abort(); } if ((bm = gf_get_bitmap1(font, code_point, mag_x, mag_y)) == NULL) return NULL; if (GF_GetMetric(font_gf->gf_id, code_point, NULL, &dpi_x, &dpi_y, &design_size) < 0){ VF_FreeBitmap(bm); return NULL; } GF_GetFontBBX(font_gf->gf_id, &bbx_w, &bbx_h, NULL, NULL); ol = vf_bitmap_to_outline(bm, bbx_w, bbx_h, dpi_x, dpi_y, design_size, 1.0, 1.0); VF_FreeBitmap(bm); return ol; } Private int gf_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { VF_BITMAP bm; FONT_GF font_gf; double mx, my, dpi_x, dpi_y, ps, design_size; if ( (metric == NULL) || ((font_gf = (FONT_GF)font->private) == NULL) ){ fprintf(stderr, "VFlib internal error: in gf_get_metric2()\n"); abort(); } if ((bm = GF_GetBitmap(font_gf->gf_id, code_point)) == NULL) return -1; /* 'bm' SHOULD NOT BE RELEASED. */ if (GF_GetMetric(font_gf->gf_id, code_point, NULL, &dpi_x, &dpi_y, &design_size) < 0) return -1; if ((ps = font->pixel_size) < 0) if ((ps = font_gf->pixel_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ mx = font->mag_x * font_gf->mag * mag_x; my = font->mag_y * font_gf->mag * mag_y; } else { mx = font->mag_x * font_gf->mag * mag_x * (ps*72.27)/(design_size*dpi_x); my = font->mag_y * font_gf->mag * mag_y * (ps*72.27)/(design_size*dpi_y); } metric->bbx_width = toint(mx * bm->bbx_width); metric->bbx_height = toint(my * bm->bbx_height); metric->off_x = toint(mx * bm->off_x); metric->off_y = toint(my * bm->off_y); metric->mv_x = toint(mx * bm->mv_x); metric->mv_y = toint(my * bm->mv_y); return 0; } Private int gf_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { FONT_GF font_gf; double mx, my, dpi_x, dpi_y, ps, design_size; if ((font_gf = (FONT_GF)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in gf_get_fontbbx2()\n"); abort(); } if (GF_GetMetric(font_gf->gf_id, -1, NULL, &dpi_x, &dpi_y, &design_size) < 0) return -1; if ((ps = font->pixel_size) < 0) if ((ps = font_gf->pixel_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ mx = font->mag_x * font_gf->mag * mag_x; my = font->mag_y * font_gf->mag * mag_y; } else { mx = font->mag_x * font_gf->mag * mag_x * (ps*72.27)/(design_size*dpi_x); my = font->mag_y * font_gf->mag * mag_y * (ps*72.27)/(design_size*dpi_y); } GF_GetFontBBX(font_gf->gf_id, w_p, h_p, xoff_p, yoff_p); *w_p = mx * (*w_p); *h_p = mx * (*h_p); *xoff_p = mx * (*xoff_p); *yoff_p = mx * (*yoff_p); return 0; } Private VF_BITMAP gf_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { VF_BITMAP bm; FONT_GF font_gf; double mx, my, dpi_x, dpi_y, ps, design_size; if ((font_gf = (FONT_GF)font->private) == NULL){ fprintf(stderr, "VFlib internal error in gf_get_bitmap2()\n"); abort(); } if ((bm = GF_GetBitmap(font_gf->gf_id, code_point)) == NULL) return NULL; /* 'bm' SHOULD NOT BE RELEASED. */ if (GF_GetMetric(font_gf->gf_id, code_point, NULL, &dpi_x, &dpi_y, &design_size) < 0) return NULL; if ((ps = font->pixel_size) < 0) if ((ps = font_gf->pixel_size) < 0) ps = -1; #if 0 printf("** %.3f %.3f %.3f %.3f %.3f %.3f %d %.3f\n", mag_x, mag_y, ps, design_size, dpi_x, dpi_y, font->pixel_size, font_gf->pixel_size); #endif if ((ps < 0) || (design_size < 1.0e-3)){ /* Note: font_gf->mag_x and font_gf->mag are already used to select scaled glyph, e.g., cmr10.360gf for 300dpi with mag 1.2. */ mx = font_gf->extra_mag * mag_x; my = font_gf->extra_mag * mag_y; } else { #if 0 m = font->mag_y * font_gf->mag; mx = font_gf->extra_mag * mag_x * m * (ps*72.27)/(design_size*dpi_x); my = font_gf->extra_mag * mag_y * m * (ps*72.27)/(design_size*dpi_y); #endif mx = font_gf->extra_mag * mag_x * (font->mag_x * font_gf->mag) * (ps*72.27)/(design_size*dpi_x); my = font_gf->extra_mag * mag_y * (font->mag_y * font_gf->mag) * (ps*72.27)/(design_size*dpi_y); } return VF_MakeScaledBitmap(bm, mx, my); } Private char* gf_get_font_prop(VF_FONT font, char *prop_name) { FONT_GF font_gf; double dpi_x, dpi_y, design_size, ps, m; char str[256]; SEXP v; if ((font_gf = (FONT_GF)font->private) == NULL){ fprintf(stderr, "VFlib internal error in gf_get_font_prop()\n"); abort(); } if ((v = vf_sexp_assoc(prop_name, font_gf->props)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else if ((v = vf_sexp_assoc(prop_name, default_properties)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else { if (GF_GetMetric(font_gf->gf_id, -1, NULL, &dpi_x, &dpi_y, &design_size) < 0){ return NULL; } m = font->mag_y * font_gf->mag; #if 0 printf("** %.3f %.3f %.3f %.4f %d %.3f %.3f %.3f\n", dpi_x, dpi_y, design_size, m, font->pixel_size, font_gf->pixel_size, font->point_size, font_gf->point_size); #endif if (font->mode == 1){ if ((ps = font->point_size) < 0) if ((ps = font_gf->point_size) < 0) ps = design_size; if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(ps * m * 10.0)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps * dpi_y / 72.27)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpi_x)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpi_y)); return vf_strdup(str); } } else if (font->mode == 2){ if (strcmp(prop_name, "POINT_SIZE") == 0){ if ((ps = font->pixel_size) < 0){ if ((ps = font_gf->pixel_size) < 0){ sprintf(str, "%d", toint(design_size * m)); return vf_strdup(str); } } sprintf(str, "%d", toint(ps * 10.0 * (72.27 / dpi_y))); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ if ((ps = font->pixel_size) < 0) if ((ps = font_gf->pixel_size) < 0){ ps = design_size * dpi_y / 72.27; sprintf(str, "%d", toint(ps)); return vf_strdup(str); } sprintf(str, "%d", toint(ps * m)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpi_x)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpi_y)); return vf_strdup(str); } } } return NULL; } #ifndef CACHE_SIZE # define CACHE_SIZE 48 #endif #ifndef HASH_SIZE # define HASH_SIZE 11 #endif struct s_gf { int type; char *font_path; }; typedef struct s_gf *GF; struct s_gf_glyph { int code_min, code_max; VF_BITMAP bm_table; double ds, hppp, vppp; int font_bbx_w, font_bbx_h; int font_bbx_xoff, font_bbx_yoff; }; typedef struct s_gf_glyph *GF_GLYPH; Private VF_TABLE gf_table = NULL; Private VF_CACHE gf_glyph_cache = NULL; Private void GF_CacheDisposer(GF_GLYPH go); Private GF_GLYPH GF_CacheLoader(VF_CACHE c, char *path, int l); Private GF GF_GetGF(int gf_id); Private void GF_SetGFGlyph(char *path, GF_GLYPH go); Private GF_GLYPH GF_GetGFGlyph(char *path); Private int GF_Init(void) { static int init_flag = 0; if (init_flag == 0){ init_flag = 1; if ((gf_table = vf_table_create()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } gf_glyph_cache = vf_cache_create(CACHE_SIZE, HASH_SIZE, (void*(*)(VF_CACHE,void*,int))GF_CacheLoader, (void(*)(void*))GF_CacheDisposer); } return 0; } Private int GF_Open(FONT_GF font_gf, VF_FONT font, int implicit) { GF gf; char *gf_path, *p; int gf_id, dev_dpi; double font_mag; gf = NULL; if (vf_dbg_drv_texfonts == 1) printf(">> GF Open: %s\n", font_gf->font_file); /* Parse font name. Formats of file names that this routine supports: * "cmr10.300XX" - A "cmr10" font for 300 dpi. * "cmr10.XX" - A "cmr10" font. Dpi value is default value. * "cmr10" - ditto. * ("XX" can be any string such as "pk", "gf", and "tfm".) */ p = vf_index(font_gf->font_file, '.'); if ((p != NULL) && (isdigit((int)*(p+1)))){ /* "cmr10.300gf" */ dev_dpi = atoi(p+1); if (font->dpi_y > 0) font_gf->extra_mag = (double)font->dpi_y / (double)dev_dpi; else font_gf->extra_mag = 1.0; } else { /* "cmr10" or "cmr10.gf" */ if ((dev_dpi = font->dpi_y) < 0) dev_dpi = font_gf->dpi_y; font_gf->extra_mag = 1.0; } font_mag = font->mag_y * font_gf->mag; gf_path = vf_tex_search_file_glyph(font_gf->font_file, implicit, FSEARCH_FORMAT_TYPE_GF, default_fontdirs, dev_dpi, font_mag, default_extensions); if (gf_path == NULL){ if (vf_dbg_drv_texfonts == 1) printf(">> GF Open: GF file not found\n"); if (v_default_make_glyph == 0) return -1; if (vf_tex_make_glyph(FSEARCH_FORMAT_TYPE_GF, font_gf->font_file, dev_dpi, font_mag) < 0) return -1; gf_path = vf_tex_search_file_glyph(font_gf->font_file, implicit, FSEARCH_FORMAT_TYPE_GF, default_fontdirs, dev_dpi, font_mag, default_extensions); if (gf_path == NULL){ if (vf_dbg_drv_texfonts == 1) printf(">> GF Open: GF file not found\n"); return -1; } } if (debug_on('f')) printf("VFlib GF: font:%s, dpi:%d, mag:%f, extra_mag:%f\n ==> %s\n", font_gf->font_file, dev_dpi, font_mag, font_gf->extra_mag, gf_path); ALLOC_IF_ERR(gf, struct s_gf){ goto NoMemoryError; } gf->font_path = gf_path; if ((gf_id = (gf_table->put)(gf_table, gf, gf->font_path, strlen(gf->font_path)+1)) < 0) goto NoMemoryError; return gf_id; NoMemoryError: vf_error = VF_ERR_NO_MEMORY; if (gf != NULL) vf_free(gf->font_path); vf_free(gf); return -1; } Private void GF_Close(int gf_id) { GF gf; gf = GF_GetGF(gf_id); if ((gf_table->unlink_by_id)(gf_table, gf_id) > 0) return; if (gf != NULL) vf_free(gf->font_path); vf_free(gf); GF_SetGFGlyph(NULL, NULL); } Private VF_BITMAP GF_GetBitmap(int gf_id, long code_point) /* MEMO: CALLER MUST *NOT* 'FREE' THE BITMAP RETURNED BY THIS FUNC. */ { GF_GLYPH go; GF gf; gf = GF_GetGF(gf_id); if ((go = GF_GetGFGlyph(gf->font_path)) == NULL) return NULL; if ((go->code_min <= code_point) && (code_point <= go->code_max)) return &go->bm_table[code_point - go->code_min]; return NULL; } Private int GF_GetMetric(int gf_id, long code_point, VF_METRIC1 me, double *ret_dpi_x, double *ret_dpi_y, double *ret_design_size) { VF_BITMAP bm; GF_GLYPH go; GF gf; gf = GF_GetGF(gf_id); if ((go = GF_GetGFGlyph(gf->font_path)) == NULL) return -1; if (code_point < 0) code_point = go->code_min; if ((code_point < go->code_min) || (go->code_max < code_point)){ vf_error = VF_ERR_ILL_CODE_POINT; return -1; } if ((bm = &go->bm_table[code_point - go->code_min]) == NULL){ vf_error = VF_ERR_ILL_CODE_POINT; return -1; } if (me != NULL){ me->bbx_width = bm->bbx_width / go->hppp; me->bbx_height = bm->bbx_height / go->vppp; me->off_x = bm->off_x / go->hppp; me->off_y = bm->off_y / go->vppp; me->mv_x = bm->mv_x / go->hppp; me->mv_y = bm->mv_y / go->vppp; } if (ret_dpi_x != NULL) *ret_dpi_x = go->hppp * 72.27; if (ret_dpi_y != NULL) *ret_dpi_y = go->vppp * 72.27; if (ret_design_size != NULL) *ret_design_size = go->ds; return 0; } Private void GF_GetFontBBX(int gf_id, int *bbx_w_p, int *bbx_h_p, int *bbx_xoff_p, int *bbx_yoff_p) { GF_GLYPH go; GF gf; gf = GF_GetGF(gf_id); if ((go = GF_GetGFGlyph(gf->font_path)) == NULL) return; if (bbx_w_p != NULL) *bbx_w_p = go->font_bbx_w; if (bbx_h_p != NULL) *bbx_h_p = go->font_bbx_h; if (bbx_xoff_p != NULL) *bbx_xoff_p = go->font_bbx_xoff; if (bbx_yoff_p != NULL) *bbx_yoff_p = go->font_bbx_yoff; } /* * GF file interface */ #include "gf.c" Private GF GF_GetGF(int gf_id) { if (gf_id < 0) abort(); return (gf_table->get_obj_by_id)(gf_table, gf_id); } static char *gf_last_go_path = NULL; static GF_GLYPH gf_last_go = NULL; Private void GF_SetGFGlyph(char *path, GF_GLYPH go) { gf_last_go_path = path; gf_last_go = go; } Private GF_GLYPH GF_GetGFGlyph(char *path) { GF_GLYPH go; if (path == NULL){ gf_last_go_path = NULL; gf_last_go = NULL; return NULL; } if ((gf_last_go_path != NULL) && (strcmp(gf_last_go_path, path) == 0) && (gf_last_go != NULL) ){ return gf_last_go; } go = (gf_glyph_cache->get)(gf_glyph_cache, path, strlen(path)+1); gf_last_go_path = path; gf_last_go = go; return go; } Private int debug_on(char type) { char *p; if (default_debug_mode == NULL) return FALSE; if ((p = vf_sexp_get_cstring(default_debug_mode)) == NULL) return FALSE; while (*p != '\0'){ if (*p == type) return TRUE; p++; } while (*p != '\0'){ if (*p == '*') return TRUE; p++; } return TRUE; } /*EOF*/ vflib3-3.6.14.dfsg/src/drv_jg.c0000644000175000017500000007127007363431064015507 0ustar mohuramohura/* CAUTION! NEVER EDIT THIS FILE */ /* * drv_jg.c - A font driver for JG format fonts * * by Hirotsugu Kakugawa * * 3 Dec 1996 First version. * 10 Dec 1996 Changed for VFlib version 3.1 * 12 Dec 1996 Eliminated "do" capability. * 26 Feb 1997 Added 'query_font_type'. * 7 Aug 1997 VFlib 3.3 Changed API. * 28 Jan 1998 VFlib 3.4 Changed API. * 24 Nov 1998 Added get_fontbbx1() and get_fontbbx2(). * 18 Oct 2001 Fixed memory leaks. * */ /* * Copyright (C) 1993-2001 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* debug flag in vflibcap (debug capability): * f - print font file path * i - print info on character index * o - print contents of outline data * * - everything */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "bitmap.h" #include "cache.h" #include "fsearch.h" #include "str.h" #include "sexp.h" #include "jg.h" #define DIRECTION_HORIZONTAL 0 #define DIRECTION_VERTICAL 1 #define POINTS_PER_INCH 72.27 /* 1 inch = 72.27 point */ #define DEFAULT_DPI 72.27 #define DEFAULT_POINT_SIZE 32.0 #define DEFAULT_PIXEL_SIZE 32 #define DEFAULT_DIRECTION DIRECTION_HORIZONTAL Private SEXP_LIST default_fontdirs; Private SEXP_LIST default_extensions; Private SEXP_STRING default_point_size; Private double v_default_point_size; Private SEXP_STRING default_pixel_size; Private double v_default_pixel_size; Private SEXP_STRING default_dpi, default_dpi_x, default_dpi_y; Private double v_default_dpi_x, v_default_dpi_y; Private SEXP_STRING default_aspect; Private double v_default_aspect; Private SEXP_STRING default_direction; Private char v_default_direction; Private SEXP_LIST default_vec_bbxul; Private double v_default_vec_bbxul_x, v_default_vec_bbxul_y; Private SEXP_LIST default_vec_next; Private double v_default_vec_next_x, v_default_vec_next_y; Private SEXP_ALIST default_properties; Private SEXP_ALIST default_variables; Private SEXP_STRING default_debug_mode; struct s_font_jg { int jg_id; char *font_name; double point_size; int pixel_size; double dpi_x, dpi_y; double aspect; double mag; double slant; double vec_bbxul_x, vec_bbxul_y; double vec_next_x, vec_next_y; char direction; SEXP props; }; typedef struct s_font_jg *FONT_JG; Private int jg_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry); Private int jg_close(VF_FONT); Private int jg_get_metric1(VF_FONT,long,VF_METRIC1,double,double); Private int jg_get_metric2(VF_FONT,long,VF_METRIC2,double,double); Private int jg_get_fontbbx1(VF_FONT,double,double, double*,double*,double*,double*); Private int jg_get_fontbbx2(VF_FONT,double,double, int*,int*,int*,int*); Private VF_BITMAP jg_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP jg_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE jg_get_outline1(VF_FONT,long,double,double); Private char* jg_get_font_prop(VF_FONT,char*); Private VF_OUTLINE get_outline2(VF_FONT,FONT_JG,long,int,double,double); Private JG JG_GetJG(int jg_id); Private void JG_SetJG(int jg_id, JG jg); Private int debug_on(char type); Public int VF_Init_Driver_JG(void) { char *p; SEXP s1, s2; struct s_capability_table ct[20]; int z; z = 0; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_fontdirs; /* VF_CAPE_EXTENSIONS */ ct[z].cap = VF_CAPE_EXTENSIONS; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_extensions; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_point_size; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_pixel_size; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi; /* VF_CAPE_DPI_X */ ct[z].cap = VF_CAPE_DPI_X; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi_x; /* VF_CAPE_DPI_Y */ ct[z].cap = VF_CAPE_DPI_Y; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi_y; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_aspect; /* VF_CAPE_DIRECTION */ ct[z].cap = VF_CAPE_DIRECTION; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_direction; /* VF_CAPE_VECTOR_TO_BBX_UL */ ct[z].cap = VF_CAPE_VECTOR_TO_BBX_UL; ct[z].type = CAPABILITY_VECTOR; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_vec_bbxul; /* VF_CAPE_VECTOR_TO_NEXT */ ct[z].cap = VF_CAPE_VECTOR_TO_NEXT; ct[z].type = CAPABILITY_VECTOR; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_vec_next; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME, ct, NULL, NULL) == VFLIBCAP_PARSED_ERROR) return -1; if (default_extensions == NULL) default_extensions = vf_sexp_cstring2list(DEFAULT_EXTENSIONS); v_default_point_size = DEFAULT_POINT_SIZE; if (default_point_size != NULL) v_default_point_size = atof(vf_sexp_get_cstring(default_point_size)); if (v_default_point_size < 0) v_default_point_size = DEFAULT_POINT_SIZE; v_default_pixel_size = DEFAULT_PIXEL_SIZE; if (default_pixel_size != NULL) v_default_pixel_size = atof(vf_sexp_get_cstring(default_pixel_size)); if (v_default_pixel_size < 0) v_default_pixel_size = DEFAULT_PIXEL_SIZE; v_default_dpi_x = DEFAULT_DPI; v_default_dpi_y = DEFAULT_DPI; if (default_dpi != NULL) v_default_dpi_x = v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi)); if (default_dpi_x != NULL) v_default_dpi_x = atof(vf_sexp_get_cstring(default_dpi_x)); if (default_dpi_y != NULL) v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi_y)); if (v_default_dpi_x < 0) v_default_dpi_x = DEFAULT_DPI; if (v_default_dpi_y < 0) v_default_dpi_y = DEFAULT_DPI; v_default_aspect = 1.0; if (default_aspect != NULL) v_default_aspect = atof(vf_sexp_get_cstring(default_aspect)); if (v_default_aspect < 0) v_default_aspect = 1.0; v_default_direction = DEFAULT_DIRECTION; if (default_direction != NULL){ p = vf_sexp_get_cstring(default_direction); switch (*p){ case 'h': case 'H': v_default_direction = DIRECTION_HORIZONTAL; break; case 'v': case 'V': v_default_direction = DIRECTION_VERTICAL; break; default: fprintf(stderr, "VFlib warning: Unknown writing direction: %s\n", p); break; } } switch(v_default_direction){ case DIRECTION_HORIZONTAL: default: v_default_vec_bbxul_x = 0; v_default_vec_bbxul_y = DEFAULT_TO_REF_PT_H; v_default_vec_next_x = 1.0; v_default_vec_next_y = 0.0; break; case DIRECTION_VERTICAL: v_default_vec_bbxul_x = DEFAULT_TO_REF_PT_V; v_default_vec_bbxul_y = 0; v_default_vec_next_x = 0.0; v_default_vec_next_y = -1.0; break; } if (default_vec_bbxul != NULL){ s1 = vf_sexp_car(default_vec_bbxul); s2 = vf_sexp_cadr(default_vec_bbxul); v_default_vec_bbxul_x = atof(vf_sexp_get_cstring(s1)); v_default_vec_bbxul_y = atof(vf_sexp_get_cstring(s2)); } if (default_vec_next != NULL){ s1 = vf_sexp_car(default_vec_next); s2 = vf_sexp_cadr(default_vec_next); v_default_vec_next_x = atof(vf_sexp_get_cstring(s1)); v_default_vec_next_y = atof(vf_sexp_get_cstring(s2)); } if (JG_Init() < 0) return -1; VF_InstallFontDriver(FONTCLASS_NAME, (DRIVER_FUNC_TYPE)jg_create); return 0; } Private int jg_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_JG font_jg; JG jg; char *font_file, *p; int jg_id, val; SEXP s1, s2; SEXP cap_font, cap_point, cap_pixel; SEXP cap_dpi, cap_dpi_x, cap_dpi_y, cap_mag, cap_aspect; SEXP cap_direction, cap_vec_bbxul, cap_vec_next, cap_props; struct s_capability_table ct[20]; int z; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_FONT_FILE */ ct[z].cap = VF_CAPE_FONT_FILE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_font; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_point; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_pixel; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi; /* VF_CAPE_DPI_X */ ct[z].cap = VF_CAPE_DPI_X; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi_x; /* VF_CAPE_DPI_Y */ ct[z].cap = VF_CAPE_DPI_Y; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi_y; /* VF_CAPE_MAG */ ct[z].cap = VF_CAPE_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mag; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_aspect; /* VF_CAPE_DIRECTION */ ct[z].cap = VF_CAPE_DIRECTION; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_direction; /* VF_CAPE_VECTOR_TO_BBX_UL */ ct[z].cap = VF_CAPE_VECTOR_TO_BBX_UL; ct[z].type = CAPABILITY_VECTOR; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_vec_bbxul; /* VF_CAPE_VECTOR_TO_NEXT */ ct[z].cap = VF_CAPE_VECTOR_TO_NEXT; ct[z].type = CAPABILITY_VECTOR; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_vec_next; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (implicit == 1){ /* implicit font */ font_file = font_name; } else { /* explicit font */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, NULL) < 0) return -1; if (cap_font == NULL){ /* Use font name as font file name if font file name is not given. */ font_file = font_name; } else { font_file = vf_sexp_get_cstring(cap_font); } } val = -1; font_jg = NULL; if ((jg_id = JG_Open(font_file)) < 0) goto End; font->font_type = VF_FONT_TYPE_OUTLINE; font->get_metric1 = jg_get_metric1; font->get_metric2 = jg_get_metric2; font->get_fontbbx1 = jg_get_fontbbx1; font->get_fontbbx2 = jg_get_fontbbx2; font->get_bitmap1 = jg_get_bitmap1; font->get_bitmap2 = jg_get_bitmap2; font->get_outline = jg_get_outline1; font->get_font_prop = jg_get_font_prop; font->query_font_type = NULL; /* Use font->font_type value. */ font->close = jg_close; ALLOC_IF_ERR(font_jg, struct s_font_jg){ vf_error = VF_ERR_NO_MEMORY; goto End; } font_jg->jg_id = jg_id; font_jg->font_name = NULL; font_jg->point_size = v_default_point_size; font_jg->pixel_size = v_default_pixel_size; font_jg->mag = 1.0; font_jg->dpi_x = v_default_dpi_x; font_jg->dpi_y = v_default_dpi_y; font_jg->aspect = v_default_aspect; font_jg->direction = v_default_direction; font_jg->slant = 0; font_jg->vec_bbxul_x = v_default_vec_bbxul_x; font_jg->vec_bbxul_y = v_default_vec_bbxul_y; font_jg->vec_next_x = v_default_vec_next_x; font_jg->vec_next_y = v_default_vec_next_y; if (implicit == 0){ if (cap_point != NULL) font_jg->point_size = atof(vf_sexp_get_cstring(cap_point)); if (cap_pixel != NULL) font_jg->pixel_size = atof(vf_sexp_get_cstring(cap_pixel)); if (cap_dpi != NULL) font_jg->dpi_x = font_jg->dpi_y = atof(vf_sexp_get_cstring(cap_dpi)); if (cap_dpi_x != NULL) font_jg->dpi_x = atof(vf_sexp_get_cstring(cap_dpi_x)); if (cap_dpi_y != NULL) font_jg->dpi_y = atof(vf_sexp_get_cstring(cap_dpi_y)); if (cap_mag != NULL) font_jg->mag = atof(vf_sexp_get_cstring(cap_mag)); if (cap_aspect != NULL) font_jg->aspect = atof(vf_sexp_get_cstring(cap_aspect)); if (cap_direction != NULL){ p = vf_sexp_get_cstring(cap_direction); switch (*p){ case 'h': case 'H': font_jg->direction = DIRECTION_HORIZONTAL; break; case 'v': case 'V': font_jg->direction = DIRECTION_VERTICAL; break; default: fprintf(stderr, "VFlib warning: Unknown writing direction: %s\n", p); break; } } switch(font_jg->direction){ case DIRECTION_HORIZONTAL: default: font_jg->vec_bbxul_x = v_default_vec_bbxul_x; font_jg->vec_bbxul_y = v_default_vec_bbxul_y; font_jg->vec_next_x = v_default_vec_next_x; font_jg->vec_next_y = v_default_vec_next_y; break; case DIRECTION_VERTICAL: font_jg->vec_bbxul_x = v_default_vec_bbxul_x; font_jg->vec_bbxul_y = v_default_vec_bbxul_y; font_jg->vec_next_x = v_default_vec_next_x; font_jg->vec_next_y = v_default_vec_next_y; break; } if (cap_vec_bbxul != NULL){ s1 = vf_sexp_car(cap_vec_bbxul); s2 = vf_sexp_cadr(cap_vec_bbxul); font_jg->vec_bbxul_x = atof(vf_sexp_get_cstring(s1)); font_jg->vec_bbxul_y = atof(vf_sexp_get_cstring(s2)); } if (cap_vec_next != NULL){ s1 = vf_sexp_car(cap_vec_next); s2 = vf_sexp_cadr(cap_vec_next); font_jg->vec_next_x = atof(vf_sexp_get_cstring(s1)); font_jg->vec_next_y = atof(vf_sexp_get_cstring(s2)); } if (cap_props != NULL) font_jg->props = cap_props; } if ((font_jg->font_name = vf_strdup(font_name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto End; } if ((jg = JG_GetJG(font_jg->jg_id)) == NULL){ fprintf(stderr, "VFlib: internal error in jg_create()\n"); vf_error = VF_ERR_INTERNAL; goto End; } font->private = font_jg; val = 0; End: if (implicit == 0){ vf_sexp_free3(&cap_font, &cap_point, &cap_pixel); vf_sexp_free3(&cap_dpi, &cap_dpi_x, &cap_dpi_y); vf_sexp_free3(&cap_direction, &cap_vec_bbxul, &cap_vec_next); } if (val < 0) jg_close(font); return val; } Private int jg_close(VF_FONT font) { FONT_JG font_jg; font_jg = (FONT_JG)font->private; if (font_jg != NULL){ if (font_jg->jg_id >= 0) JG_Close(font_jg->jg_id); vf_free(font_jg->font_name); vf_sexp_free1(&font_jg->props); vf_free(font_jg); } return 0; } Private void mag_mode_1(FONT_JG font_jg, VF_FONT font, double mag_x, double mag_y, double *ret_point_size, double *ret_bbx_w, double *ret_bbx_h, double *ret_mag_x, double *ret_mag_y, double *ret_dpix, double *ret_dpiy) { double mx, my, dpix, dpiy, ps, asp; if ((ps = font->point_size) < 0) if ((ps = font_jg->point_size) < 0) ps = v_default_point_size; if (ret_point_size != NULL) *ret_point_size = ps; asp = (v_default_aspect * font_jg->aspect); mx = mag_x * font_jg->mag * font->mag_x * asp; my = mag_y * font_jg->mag * font->mag_y; if (ret_mag_x != NULL) *ret_mag_x = mx; if (ret_mag_y != NULL) *ret_mag_y = my; if ((font->dpi_x > 0) && (font->dpi_y > 0)){ dpix = font->dpi_x; dpiy = font->dpi_y; } else if ((font_jg->dpi_x > 0) && (font_jg->dpi_y > 0)){ dpix = font_jg->dpi_x; dpiy = font_jg->dpi_y; } else { dpix = v_default_dpi_x; dpiy = v_default_dpi_y; } if (ret_dpix != NULL) *ret_dpix = dpix; if (ret_dpiy != NULL) *ret_dpiy = dpiy; if (ret_bbx_w != NULL) *ret_bbx_w = dpix * mx * (ps / POINTS_PER_INCH); if (ret_bbx_h != NULL) *ret_bbx_h = dpiy * my * (ps / POINTS_PER_INCH); #if 0 printf("*** %.3f %.3f %.3f\n", mag_x, font_jg->mag, font->mag_x); printf(" %.3f %.3f %.3f\n", mag_y, font_jg->mag, font->mag_y); printf(" dpix=%.3f font_dpi_x=%.3f\n", dpix, font_dpi_x); printf(" dpiy=%.3f font_dpi_y=%.3f\n", dpiy, font_dpi_y); printf(" asp=%.3f\n", asp); printf(" mx=%.3f, my=%.3f\n", mx, my); if (ret_bbx_w != NULL) printf(" W=%.3f H=%.3f\n", *ret_bbx_w, *ret_bbx_h); #endif } Private int jg_get_metric1(VF_FONT font, long code, VF_METRIC1 metric, double mag_x, double mag_y) { FONT_JG font_jg; double bbx_w, bbx_h; double dpix, dpiy; if ( ((font_jg = (FONT_JG)font->private) == NULL) || (metric == NULL)){ fprintf(stderr, "VFlib internal error: in jg_get_metric1()\n"); abort(); } mag_mode_1(font_jg, font, mag_x, mag_y, NULL, &bbx_w, &bbx_h, NULL, NULL, &dpix, &dpiy); metric->bbx_width = bbx_w; metric->bbx_height = bbx_h; metric->off_x = bbx_w * font_jg->vec_bbxul_x; metric->off_y = bbx_h * font_jg->vec_bbxul_y; metric->mv_x = bbx_w * font_jg->vec_next_x; metric->mv_y = bbx_h * font_jg->vec_next_y; return 0; } Private int jg_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { FONT_JG font_jg; double bbx_w, bbx_h; double dpix, dpiy; if ((font_jg = (FONT_JG)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in jg_get_fontbbx1()\n"); abort(); } mag_mode_1(font_jg, font, mag_x, mag_y, NULL, &bbx_w, &bbx_h, NULL, NULL, &dpix, &dpiy); *w_p = bbx_w; *h_p = bbx_h; *xoff_p = bbx_w * font_jg->vec_bbxul_x; *yoff_p = bbx_h * (1.0 - font_jg->vec_bbxul_y); return 0; } Private VF_BITMAP jg_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { VF_OUTLINE outline; VF_BITMAP bm; if ((outline = jg_get_outline1(font, code_point, mag_x, mag_y)) == NULL) return NULL; bm = vf_outline_to_bitmap(outline, -1, -1, -1, 1, 1); VF_FreeOutline(outline); return bm; } Private VF_OUTLINE jg_get_outline1(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_JG font_jg; VF_OUTLINE outline; double ps, mx, my, bbx_w, bbx_h, dpix, dpiy, em_mag; if ((font_jg = (FONT_JG)font->private) == NULL){ fprintf(stderr, "VFlib: internal error in jg_get_outline1()\n"); abort(); } mag_mode_1(font_jg, font, mag_x, mag_y, &ps, &bbx_w, &bbx_h, &mx, &my, &dpix, &dpiy); em_mag = 1.0; if (mx > 1){ em_mag /= mx; my = my/mx; mx = 1.0; } if (my > 1){ em_mag /= my; mx = mx/my; my = 1.0; } outline = JG_ReadOutline(font_jg->jg_id, (int)code_point, mx, my); if (outline == NULL) return NULL; outline[VF_OL_HEADER_INDEX_HEADER_TYPE] = VF_OL_OUTLINE_HEADER_TYPE0; outline[VF_OL_HEADER_INDEX_DPI_X] = VF_OL_HEADER_ENCODE(dpix); outline[VF_OL_HEADER_INDEX_DPI_Y] = VF_OL_HEADER_ENCODE(dpiy); outline[VF_OL_HEADER_INDEX_POINT_SIZE] = VF_OL_HEADER_ENCODE(ps); outline[VF_OL_HEADER_INDEX_EM] = VF_OL_COORD_RANGE * em_mag; outline[VF_OL_HEADER_INDEX_MAX_X] = VF_OL_COORD_RANGE * mx; outline[VF_OL_HEADER_INDEX_MAX_Y] = VF_OL_COORD_RANGE * my; outline[VF_OL_HEADER_INDEX_REF_X] = VF_OL_COORD_RANGE * (0 - font_jg->vec_bbxul_x) * mx; outline[VF_OL_HEADER_INDEX_REF_Y] = VF_OL_COORD_RANGE * font_jg->vec_bbxul_y * my; outline[VF_OL_HEADER_INDEX_MV_X] = VF_OL_COORD_RANGE * font_jg->vec_next_x * mx; outline[VF_OL_HEADER_INDEX_MV_Y] = VF_OL_COORD_RANGE * font_jg->vec_next_y * my; return outline; } Private void mag_mode_2(FONT_JG font_jg, VF_FONT font, double mag_x, double mag_y, double *ret_pixel_size, double *ret_magx, double *ret_magy, double *ret_bbx_w, double *ret_bbx_h) { int ps; double mx, my, asp; if ((ps = font->pixel_size) < 0) if ((ps = font_jg->pixel_size) < 0) ps = v_default_pixel_size; asp = (v_default_aspect * font_jg->aspect); mx = mag_x * font_jg->mag * font->mag_x * asp; my = mag_y * font_jg->mag * font->mag_y; if (ret_pixel_size != NULL) *ret_pixel_size = ps; if (ret_magx != NULL) *ret_magx = mx; if (ret_magy != NULL) *ret_magy = my; if (ret_bbx_w != NULL) *ret_bbx_w = mx * ps; if (ret_bbx_h != NULL) *ret_bbx_h = my * ps; } Private int jg_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { FONT_JG font_jg; double bbx_w, bbx_h; if ( ((font_jg = (FONT_JG)font->private) == NULL) || (metric == NULL)){ fprintf(stderr, "VFlib internal error: in jg_get_metric2()\n"); abort(); } mag_mode_2(font_jg, font, mag_x, mag_y, NULL, NULL, NULL, &bbx_w, &bbx_h); metric->bbx_width = (int)ceil(bbx_w); metric->bbx_height = (int)ceil(bbx_h); metric->off_x = toint(bbx_w * font_jg->vec_bbxul_x); metric->off_y = toint(bbx_h * font_jg->vec_bbxul_y); metric->mv_x = toint(bbx_w * font_jg->vec_next_x); metric->mv_y = toint(bbx_h * font_jg->vec_next_y); return 0; } Private int jg_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { FONT_JG font_jg; double bbx_w, bbx_h; if ((font_jg = (FONT_JG)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in jg_get_fontbbx2()\n"); abort(); } mag_mode_2(font_jg, font, mag_x, mag_y, NULL, NULL, NULL, &bbx_w, &bbx_h); *w_p = toint(bbx_w); *h_p = toint(bbx_h); *xoff_p = toint(bbx_w * font_jg->vec_bbxul_x); *yoff_p = toint(bbx_w * (font_jg->vec_bbxul_y - 1.0)); return 0; } Private VF_BITMAP jg_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_JG font_jg; VF_OUTLINE outline; VF_BITMAP bm; double ps, mx, my, bbx_w, bbx_h; int bbx_width, bbx_height; if ((font_jg = (FONT_JG)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in jg_get_bitmap2()\n"); abort(); } mag_mode_2(font_jg, font, mag_x, mag_y, &ps, &mx, &my, &bbx_w, &bbx_h); bbx_width = (int)ceil(bbx_w); bbx_height = (int)ceil(bbx_h); if ((bm = vf_alloc_bitmap(bbx_width, bbx_height)) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } outline = get_outline2(font, font_jg, code_point, ps, mx, my); if (outline == NULL) return NULL; if (vf_draw_outline(bm, outline) < 0){ VF_FreeOutline(outline); VF_FreeBitmap(bm); return NULL; } VF_FreeOutline(outline); bm->off_x = toint(bbx_w * font_jg->vec_bbxul_x); bm->off_y = toint(bbx_h * font_jg->vec_bbxul_y); bm->mv_x = toint(bbx_w * font_jg->vec_next_x); bm->mv_y = toint(bbx_h * font_jg->vec_next_y); return bm; } Private VF_OUTLINE get_outline2(VF_FONT font, FONT_JG font_jg, long code_point, int pixel_size, double mx, double my) { VF_OUTLINE outline; double em_mag; em_mag = 1.0; if (mx > 1){ em_mag /= mx; my = my/mx; mx = 1.0; } if (my > 1){ em_mag /= my; mx = mx/my; my = 1.0; } outline = JG_ReadOutline(font_jg->jg_id, (int)code_point, mx, my); if (outline == NULL) return NULL; outline[VF_OL_HEADER_INDEX_HEADER_TYPE] = VF_OL_OUTLINE_HEADER_TYPE0; outline[VF_OL_HEADER_INDEX_DPI_X] = VF_OL_HEADER_ENCODE(POINTS_PER_INCH); outline[VF_OL_HEADER_INDEX_DPI_Y] = VF_OL_HEADER_ENCODE(POINTS_PER_INCH); outline[VF_OL_HEADER_INDEX_POINT_SIZE] = VF_OL_HEADER_ENCODE(pixel_size); outline[VF_OL_HEADER_INDEX_EM] = VF_OL_COORD_RANGE * my; outline[VF_OL_HEADER_INDEX_MAX_X] = VF_OL_COORD_RANGE * mx; outline[VF_OL_HEADER_INDEX_MAX_Y] = VF_OL_COORD_RANGE * my; outline[VF_OL_HEADER_INDEX_REF_X] = VF_OL_COORD_RANGE * (0 - font_jg->vec_bbxul_x) * mx; outline[VF_OL_HEADER_INDEX_REF_Y] = VF_OL_COORD_RANGE * font_jg->vec_bbxul_y * my; outline[VF_OL_HEADER_INDEX_MV_X] = VF_OL_COORD_RANGE * font_jg->vec_next_x * mx; outline[VF_OL_HEADER_INDEX_MV_Y] = VF_OL_COORD_RANGE * font_jg->vec_next_y * my; return outline; } Private char* jg_get_font_prop(VF_FONT font, char *prop_name) /* CALLER MUST RELEASE RETURNED STRING */ { FONT_JG font_jg; char str[512]; double ps, dpix, dpiy; SEXP v; if ((font_jg = (FONT_JG)font->private) == NULL){ fprintf(stderr, "VFlib: internal error in jg_get_font_prop()\n"); abort(); } if ((v = vf_sexp_assoc(prop_name, font_jg->props)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else if ((v = vf_sexp_assoc(prop_name, default_properties)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } if (font->mode == 1){ mag_mode_1(font_jg, font, 1.0, 1.0, &ps, NULL, NULL, NULL, NULL, &dpix, &dpiy); /**printf("** Mode1 %.3f %.3f %.3f\n", ps, dpix, dpiy);**/ if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(10.0 * ps)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps * dpiy / POINTS_PER_INCH)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpix)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpiy)); return vf_strdup(str); } } else if (font->mode == 2){ mag_mode_2(font_jg, font, 1.0, 1.0, &ps, NULL, NULL, NULL, NULL); /**printf("** Mode2 %.3f\n", ps);**/ if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(10.0 * ps * POINTS_PER_INCH / DEFAULT_DPI)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(DEFAULT_DPI)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(DEFAULT_DPI)); return vf_strdup(str); } } return NULL; } /* * Include Low-Level Font Interface Routine. */ #include "jg.c" static int jg_last_jg_id = -1; static JG jg_last_jg = NULL; Private void JG_SetJG(int jg_id, JG jg) { jg_last_jg_id = jg_id; jg_last_jg = jg; } Private JG JG_GetJG(int jg_id) { JG jg; if (jg_id == -1){ jg_last_jg_id = -1; jg_last_jg = NULL; return NULL; } if ( (jg_last_jg_id == jg_id) && (jg_last_jg != NULL) && (jg_last_jg_id != -1)) return jg_last_jg; jg = (jg_table->get_obj_by_id)(jg_table, jg_id); jg_last_jg_id = jg_id; jg_last_jg = jg; return jg; } Private int debug_on(char type) { char *p, *p0; if (default_debug_mode == NULL) return FALSE; if ((p0 = vf_sexp_get_cstring(default_debug_mode)) == NULL) return FALSE; for (p = p0; *p != '\0'; p++){ if (*p == type) return TRUE; } for (p = p0; *p != '\0'; p++){ if (*p == '*') return TRUE; } return FALSE; } /*EOF*/ vflib3-3.6.14.dfsg/src/drv_jtex.c0000644000175000017500000012445007363516213016060 0ustar mohuramohura/* * drv_jtex.c - A font driver for ASCII Japanese TeX Kanji fonts. * * 4 Oct 1996 First version. * 17 Jan 1997 for VFlib 3.1 * 26 Feb 1997 Added 'query_font_type'. * 4 Aug 1997 VFlib 3.3 Changed API. * 15 Feb 1998 VFlib 3.4 Changed API. * 21 Apr 1998 Added 'implicit-font-mapping-suffix' capability * 27 Jul 1998 Added a code to return some font properties by itself. * 07 Sep 1998 Added 'char-all' directive in adj file. * 24 Nov 1998 Added get_fontbbx1() and get_fontbbx2(). * 20 Jan 1999 Changed to adj file searching. * 29 Jul 1999 Fixed bugs in jtex_met_adjustment(). */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "bitmap.h" #include "sexp.h" #include "str.h" #include "path.h" #include "vflpaths.h" #include "metric.h" #include "fsearch.h" #include "tfm.h" #include "jtex.h" Private int vf_dbg_drv_ascii_jtex = 0; Private int vf_dbg_drv_ascii_jtex_dump = 0; Private int vf_dbg_drv_ascii_jtex_adj = 0; #define KW_CHAR_TYPE "char-type" #define KW_CHAR_CODE "char-code" #define KW_CHAR_ALL "char-all" #define KW_SEMANTICS "semantics" #define KW_SEM_BITMAP "bitmap-size" #define KW_SEM_DESIGN "design-size" #define SEMANTICS_AUX_BITMAP 0 #define SEMANTICS_DESIGN_SIZE 1 #define KW_DIR "direction" #define KW_DIR_HORIZONTAL "horizontal" #define KW_DIR_VERTICAL "vertical" #define DIR_HORIZONTAL 0 #define DIR_VERTICAL 1 #define KW_ROTATION "rotation-semantics" #define KW_ROT_PTEX "ptex" #define KW_ROT_JISX0208 "jisx0208" #define ROT_JISX0208 (1<<0) #define ROT_PTEX ((1<<1) | ROT_JISX0208) #define N_CC_CORR 64 struct s_met_adj_ct_corr { int need_cc_corr; int may_need_rotate; double dx, dy; }; struct s_met_adj_cc_corr { long code_point; double dx, dy; }; typedef struct s_met_adj_cc_corr *ADJ_CC_CORR; struct s_met_adj_table { int semantics; int dir; int rot_semantics; struct s_met_adj_ct_corr ct_corr[JTEX_MAX_CHARTYPE]; struct s_met_adj_ct_corr ct_corr_all; int n_cc_corr; struct s_met_adj_cc_corr *cc_corr; }; typedef struct s_met_adj_table *ADJ; struct s_vert_rotation { int code_point; int angle; int mirror; int rot_semantics; }; static struct s_vert_rotation VertCharInfo[] = { /* Code, Rotation Angle, Mirror, Rotation in JISX0208 */ { 0x213c, VF_BM_ROTATE_270, 1, ROT_JISX0208 }, /* Chou-On */ { 0x213d, VF_BM_ROTATE_270, 0, ROT_PTEX }, /* Zenkaku-dash */ { 0x213e, VF_BM_ROTATE_270, 0, ROT_PTEX }, /* Hyphen-dash */ { 0x2141, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Nami-dash */ { 0x2144, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Santen leader */ { 0x2142, VF_BM_ROTATE_270, 0, ROT_PTEX }, /* Heikou */ { 0x2143, VF_BM_ROTATE_270, 0, ROT_PTEX }, /* Tatesen */ { 0x2145, VF_BM_ROTATE_270, 0, ROT_PTEX }, /* Niten leader */ { 0x214a, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Syou-Kakko */ { 0x214b, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Syou-Kakko */ { 0x214c, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Kikkou-Kakko */ { 0x214d, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Kikkou-Kakko */ { 0x214e, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Kaku-Kakko */ { 0x214f, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Kaku-Kakko */ { 0x2150, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Chuu-Kakko */ { 0x2151, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Chuu-Kakko */ { 0x2152, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Yama-Kakko */ { 0x2153, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Yama-Kakko */ { 0x2154, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* NijuuYama-Kakko */ { 0x2155, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* NijuuYama-Kakko */ { 0x2156, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Kagi-Kakko */ { 0x2157, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Kagi-Kakko */ { 0x2158, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* NijuuKagi-Kakko */ { 0x2159, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* NijuuKagi-Kakko */ { 0x215a, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Sumitsuki-Kakko */ { 0x215b, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* Sumitsuki-Kakko */ { 0x2161, VF_BM_ROTATE_270, 0, ROT_JISX0208 }, /* '=' sign */ { -1, -1, -1, -1 } }; struct s_font_jtex { char *font_name; char *kanji_font; int kanji_font_id; double kf_point_size; int kf_pixel_size; double kf_mag; char *tfm_file; TFM tfm; char *adj_file; ADJ adj; double mode2_factor_x, mode2_factor_y; SEXP props; }; typedef struct s_font_jtex *FONT_JTEX; Private SEXP_STRING default_map_suffix = NULL; Private SEXP_LIST default_tfm_dirs = NULL; Private SEXP_LIST default_tfm_extensions = NULL; Private SEXP_ALIST default_properties = NULL; Private SEXP_ALIST default_variables = NULL; Private SEXP_STRING default_debug_mode = NULL; Private int jtex_create(VF_FONT,char*,char*,int,SEXP); Private int jtex_close(VF_FONT); Private int jtex_get_metric1(VF_FONT,long,VF_METRIC1,double,double); Private int jtex_get_metric2(VF_FONT,long,VF_METRIC2,double,double); Private int jtex_get_fontbbx1(VF_FONT,double,double, double*,double*,double*,double*); Private int jtex_get_fontbbx2(VF_FONT,double,double, int*,int*,int*,int*); Private VF_BITMAP jtex_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP jtex_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE jtex_get_outline(VF_FONT,long,double,double); Private int jtex_query_font_type(VF_FONT,long); Private char *jtex_get_font_prop(VF_FONT,char*); Private VF_BITMAP jtex_rotate_bitmap(VF_BITMAP bm0, long code_point, FONT_JTEX font_jtex, int *need_free_p); Private int jtex_met_adjustment(VF_BITMAP,VF_METRIC2,long, VF_FONT,FONT_JTEX,double,double); Private ADJ jtex_read_met_adjustment_file(FONT_JTEX,char*); Private void jtex_free_adj(ADJ adj); Private void jtex_met_cc_adjustment(ADJ adj, long code_point, int char_type, double *fxp, double *fyp); Private ADJ realloc_cc_corr(ADJ adj); Private char *find_adj(char *fname); Private void release_font_jtex(FONT_JTEX); Public int VF_Init_Driver_JTEX(void) { struct s_capability_table ct[10]; int z; z = 0; /* VF_CAPE_JTEX_MAP_SUFIX */ ct[z].cap = VF_CAPE_JTEX_MAP_SUFIX; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_map_suffix; /* VF_CAPE_TEX_TFM_DIRECTORIES */ ct[z].cap = VF_CAPE_TEX_TFM_DIRECTORIES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_tfm_dirs; /* VF_CAPE_TEX_TFM_EXTENSIONS */ ct[z].cap = VF_CAPE_TEX_TFM_EXTENSIONS; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_tfm_extensions; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME_JTEX, ct, NULL, NULL) == VFLIBCAP_PARSED_ERROR) return -1; if (vf_tex_init() < 0) return -1; if (getenv("VFLIB_DEBUG_ASCII_JTEX") != NULL) vf_dbg_drv_ascii_jtex = 1; if (getenv("VFLIB_DEBUG_ASCII_JTEX_DUMP") != NULL) vf_dbg_drv_ascii_jtex_dump = 1; if (getenv("VFLIB_DEBUG_ASCII_JTEX_ADJ") != NULL) vf_dbg_drv_ascii_jtex_adj = 1; VF_InstallFontDriver(FONTCLASS_NAME_JTEX, (DRIVER_FUNC_TYPE)jtex_create); return 0; } Private int jtex_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_JTEX font_jtex; double point_size, dpi, dpix = 0.0, dpiy = 0.0; int pixel_size; char *mapped_font, *name_core, *suffix, *tfm_path, *p; SEXP entry2, cap_kanji, cap_kf_point, cap_kf_pixel, cap_kf_mag; SEXP cap_tfm, cap_adj, cap_props; SEXP tfm_ext; struct s_capability_table ct[10]; int z; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_JTEX_KANJI_FONT */ ct[z].cap = VF_CAPE_JTEX_KANJI_FONT; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_kanji; /* VF_CAPE_JTEX_KF_POINT_SIZE */ ct[z].cap = VF_CAPE_JTEX_KF_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_kf_point; /* VF_CAPE_JTEX_KF_PIXEL_SIZE */ ct[z].cap = VF_CAPE_JTEX_KF_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_kf_pixel; /* VF_CAPE_JTEX_KF_MAG */ ct[z].cap = VF_CAPE_JTEX_KF_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_kf_mag; /* VF_CAPE_JTEX_TFM_FILE */ ct[z].cap = VF_CAPE_JTEX_TFM_FILE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_tfm; /* VF_CAPE_JTEX_ADJUSTMENT_FILE */ ct[z].cap = VF_CAPE_JTEX_ADJUSTMENT_FILE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_adj; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; font_jtex = NULL; mapped_font = NULL; name_core = NULL; tfm_path = NULL; entry2 = NULL; if (vf_dbg_drv_ascii_jtex == 1){ printf(">>VFlib ascii jtex: open request %s\n", font_name); } if (implicit == 1){ /* font name mapping: * requested font: "min10.400pk" or "min10.pk" * ==> "min10XXX", where XXX is a suffix (e.g., ".pk") */ suffix = ""; if ((default_map_suffix != NULL) && (vf_sexp_get_cstring(default_map_suffix) != NULL)){ suffix = vf_sexp_get_cstring(default_map_suffix); } if ((name_core = vf_path_base_core(font_name)) == NULL) return -1; ALLOCN_IF_ERR(mapped_font, char, strlen(name_core)+strlen(suffix)+1){ vf_free(name_core); return -1; } sprintf(mapped_font, "%s%s", name_core, suffix); if (vf_dbg_drv_ascii_jtex == 1){ printf(">>VFlib ascii jtex font mapping: %s ==> %s\n", font_name, mapped_font); } if (strcmp(mapped_font, font_name) == 0){ /* a loop */ vf_free(name_core); vf_free(mapped_font); return -1; } /* Parse font name. Formats of file names that this routine supports: * "cmr10.300XX" - A "cmr10" font for 300 dpi. * "cmr10.XX" - A "cmr10" font. Dpi value is default value. * "cmr10" - ditto. * ("XX" can be any string such as "pk", "gf", and "tfm".) */ if (font->mode == 1){ p = vf_index(font_name, '.'); dpi = font->dpi_y; if ((p != NULL) && (isdigit((int)*(p+1)))){ /* "cmr10.300gf" */ if (dpi < 0) dpi = (double)atoi(p+1); } else { /* "cmr10" or "cmr10.gf" */ if (dpi < 0) dpi = (double)vf_tex_default_dpi(); } dpix = dpi * (double)font->dpi_x / (double)font->dpi_y; dpiy = dpi; } if ((entry2 = vf_cap_GetFontEntry(mapped_font)) == NULL){ vf_error = VF_ERR_NO_FONT_ENTRY; vf_free(name_core); vf_free(mapped_font); return -1; } if (vf_cap_GetParsedFontEntry(entry2, mapped_font, ct, default_variables, NULL) == VFLIBCAP_PARSED_ERROR){ vf_sexp_free(&entry2); vf_free(name_core); vf_free(mapped_font); return -1; } } else { if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, NULL) == VFLIBCAP_PARSED_ERROR){ return -1; } dpi = font->dpi_y; if (dpi < 0) dpi = (double)vf_tex_default_dpi(); dpix = dpi * (double)font->dpi_x / (double)font->dpi_y; dpiy = dpi; } font->font_type = VF_FONT_TYPE_UNDEF; /* call jtex_query_font_type() */ font->get_metric1 = jtex_get_metric1; font->get_metric2 = jtex_get_metric2; font->get_fontbbx1 = jtex_get_fontbbx1; font->get_fontbbx2 = jtex_get_fontbbx2; font->get_bitmap1 = jtex_get_bitmap1; font->get_bitmap2 = jtex_get_bitmap2; font->get_outline = jtex_get_outline; font->get_font_prop = jtex_get_font_prop; font->query_font_type = jtex_query_font_type; font->close = jtex_close; ALLOC_IF_ERR(font_jtex, struct s_font_jtex){ vf_error = VF_ERR_NO_MEMORY; vf_sexp_free(&entry2); vf_free(name_core); vf_free(mapped_font); return -1; } font_jtex->font_name = vf_strdup(font_name); font_jtex->kanji_font = NULL; font_jtex->kanji_font_id = -1; font_jtex->kf_point_size = -1; font_jtex->kf_pixel_size = -1; font_jtex->kf_mag = 1.0; font_jtex->tfm_file = NULL; font_jtex->tfm = NULL; font_jtex->adj_file = NULL; font_jtex->adj = NULL; font_jtex->mode2_factor_x = -1; font_jtex->mode2_factor_y = -1; font_jtex->props = NULL; if (default_tfm_extensions == NULL) default_tfm_extensions = vf_sexp_cstring2list(DEFAULT_EXTENSIONS_TFM); if (cap_kanji != NULL) font_jtex->kanji_font = vf_strdup(vf_sexp_get_cstring(cap_kanji)); else font_jtex->kanji_font = vf_path_base_core(font_name); if (font_jtex->kanji_font == NULL){ vf_error = VF_ERR_NO_AUX_FONT_NAME; vf_sexp_free(&entry2); vf_free(name_core); vf_free(mapped_font); vf_free(font_jtex); return -1; } if (cap_kf_point != NULL) font_jtex->kf_point_size = atof(vf_sexp_get_cstring(cap_kf_point)); if (cap_kf_pixel != NULL) font_jtex->kf_pixel_size = atoi(vf_sexp_get_cstring(cap_kf_pixel)); if (cap_kf_mag != NULL) font_jtex->kf_mag = atof(vf_sexp_get_cstring(cap_kf_mag)); if (cap_tfm != NULL) font_jtex->tfm_file = vf_strdup(vf_sexp_get_cstring(cap_tfm)); else font_jtex->tfm_file = vf_path_base_core(font_name); if (cap_adj != NULL) font_jtex->adj_file = vf_strdup(vf_sexp_get_cstring(cap_adj)); font_jtex->props = cap_props; if (vf_dbg_drv_ascii_jtex == 1){ printf(">>VFlib ascii jtex font name: %s\n", font_jtex->font_name); printf(">>VFlib ascii jtex kanji font: %s\n", font_jtex->kanji_font); printf(">>VFlib ascii jtex tfm file: %s\n", font_jtex->tfm_file); printf(">>VFlib ascii jtex adj file: %s\n", font_jtex->adj_file); printf(">>VFlib ascii jtex kf point: %.3f\n", font_jtex->kf_point_size); printf(">>VFlib ascii jtex kf pixel: %d\n", font_jtex->kf_pixel_size); printf(">>VFlib ascii jtex kf mag: %.3f\n", font_jtex->kf_mag); } /* Open aux kanji font */ if (font->mode == 1){ if ((point_size = font->point_size) < 0) point_size = font_jtex->kf_point_size; font_jtex->kanji_font_id = VF_OpenFont1(font_jtex->kanji_font, dpix, dpiy, point_size, font->mag_x * font_jtex->kf_mag, font->mag_y * font_jtex->kf_mag); } else if (font->mode == 2){ if ((pixel_size = font->pixel_size) < 0) pixel_size = font_jtex->kf_pixel_size; font_jtex->kanji_font_id = VF_OpenFont2(font_jtex->kanji_font, pixel_size, font->mag_x * font_jtex->kf_mag, font->mag_y * font_jtex->kf_mag); } if (vf_dbg_drv_ascii_jtex == 1) printf(">>VFlib ascii jtex: Aux Kanji font ID: %d\n", font_jtex->kanji_font_id); if (font_jtex->kanji_font_id < 0){ vf_error = VF_ERR_NO_FONT_ENTRY; goto Error; } /* Search TFM */ tfm_ext = (cap_tfm != NULL) ? NULL : default_tfm_extensions; tfm_path = vf_tex_search_file_tfm(font_jtex->tfm_file, default_tfm_dirs, tfm_ext); if (vf_dbg_drv_ascii_jtex == 1) printf(">>VFlib ascii jtex: TFM path: %s ==> %s\n", font_jtex->tfm_file, (tfm_path==NULL)?"(not found)":tfm_path); if (tfm_path == NULL) goto Error; if ((font_jtex->tfm = vf_tfm_open(tfm_path)) == NULL) goto Error; /* Check if it is a JFM (Japanese Font Metric) format */ if (font_jtex->tfm->type != METRIC_TYPE_JFM){ vf_error = VF_ERR_NOT_JFM; goto Error; } /* Read ADJ file */ if (cap_adj != NULL){ font_jtex->adj_file = vf_strdup(vf_sexp_get_cstring(cap_adj)); if (font_jtex->adj_file != NULL) font_jtex->adj = jtex_read_met_adjustment_file(font_jtex, font_jtex->adj_file); if (font_jtex->adj == NULL){ fprintf(stderr, "VFlib warning: Can't read: %s\n", font_jtex->adj_file); } } else { fprintf(stderr, "VFlib warning: no ADJ file.\n"); } if (font->mode == 2){ p = VF_GetFontProp(font_jtex->kanji_font_id, "PIXEL_SIZE"); if (p != NULL){ font_jtex->mode2_factor_x = font->mag_x * atof(p) / font_jtex->tfm->design_size; font_jtex->mode2_factor_y = font->mag_y * atof(p) / font_jtex->tfm->design_size; #if 0 printf("*** pixel_size:%.3f design_size: %.3f\n", atof(p), font_jtex->tfm->design_size); printf("*** factor_x:%.3f factor_y: %.3f\n", font_jtex->mode2_factor_x, font_jtex->mode2_factor_y); #endif } } font->private = font_jtex; vf_free(mapped_font); vf_free(name_core); vf_free(tfm_path); if (implicit == 0){ vf_sexp_free4(&cap_kanji, &cap_kf_point, &cap_kf_pixel, &cap_kf_mag); vf_sexp_free2(&cap_tfm, &cap_adj); } vf_sexp_free(&entry2); return 0; Error: release_font_jtex(font_jtex); vf_free(mapped_font); vf_free(name_core); vf_free(tfm_path); if (implicit == 0){ vf_sexp_free4(&cap_kanji, &cap_kf_point, &cap_kf_pixel, &cap_kf_mag); vf_sexp_free2(&cap_tfm, &cap_adj); vf_sexp_free(&cap_props); } vf_sexp_free(&entry2); return -1; } Private void release_font_jtex(FONT_JTEX font_jtex) { if (font_jtex != NULL){ vf_free(font_jtex->font_name); vf_free(font_jtex->kanji_font); if (font_jtex->kanji_font_id >= 0) VF_CloseFont(font_jtex->kanji_font_id); vf_free(font_jtex->tfm_file); vf_tfm_free(font_jtex->tfm); vf_free(font_jtex->adj_file); jtex_free_adj(font_jtex->adj); vf_sexp_free1(&font_jtex->props); vf_free(font_jtex); } } Private int jtex_close(VF_FONT font) { FONT_JTEX font_jtex; if ((font_jtex = (FONT_JTEX)font->private) == NULL){ fprintf(stderr, "VFlib: internal error in jtex_close()\n"); abort(); } release_font_jtex(font_jtex); return 0; } Private int jtex_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { FONT_JTEX font_jtex; double ds, dr; if ( (metric == NULL) || ((font_jtex = (FONT_JTEX)font->private) == NULL) ){ fprintf(stderr, "VFlib internal error in jtex_get_metric1()\n"); abort(); } if (vf_tfm_metric(font_jtex->tfm, code_point, metric) == NULL) return -1; ds = font_jtex->tfm->design_size; dr = 1.0; if (font->point_size > 0) dr = font->point_size / ds; metric->bbx_width *= mag_x * font->mag_x; metric->bbx_height *= mag_y * font->mag_y; metric->off_x *= mag_x * font->mag_x; metric->off_y *= mag_y * font->mag_y; metric->mv_x *= mag_x * font->mag_x * dr; metric->mv_y *= mag_y * font->mag_y * dr; return 0; } Private int jtex_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { FONT_JTEX font_jtex; if ((font_jtex = (FONT_JTEX)font->private) == NULL){ fprintf(stderr, "VFlib internal error in jtex_get_fontbbx1()\n"); abort(); } *w_p = font_jtex->tfm->font_bbx_w * mag_x * font->mag_x; *h_p = font_jtex->tfm->font_bbx_h * mag_y * font->mag_y; *xoff_p = font_jtex->tfm->font_bbx_xoff * mag_x * font->mag_x; *yoff_p = font_jtex->tfm->font_bbx_yoff * mag_y * font->mag_y; return 0; } Private VF_BITMAP jtex_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_JTEX font_jtex; VF_BITMAP bm_kanji, bm; int need_free; double dpi_x, dpi_y, mx, my; struct vf_s_metric1 met1; struct vf_s_metric2 met2; if ((font_jtex = (FONT_JTEX)font->private) == NULL){ fprintf(stderr, "VFlib: Internal error in jtex_get_bitmap1().\n"); abort(); } if (font_jtex->kanji_font_id < 0){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } bm_kanji = VF_GetBitmap1(font_jtex->kanji_font_id, code_point, mag_x, mag_y); if (bm_kanji == NULL){ #if 1 bm_kanji = vf_alloc_bitmap(1, 1); #else return NULL; #endif } bm = jtex_rotate_bitmap(bm_kanji, code_point, font_jtex, &need_free); if (bm == NULL){ VF_FreeBitmap(bm_kanji); return NULL; } if (jtex_get_metric1(font, code_point, &met1, mag_x, mag_y) < 0){ VF_FreeBitmap(bm_kanji); if (need_free == 1) VF_FreeBitmap(bm); return NULL; } if (((dpi_x = font->dpi_x) < 0) || ((dpi_y = font->dpi_y) < 0)){ dpi_x = vf_tex_default_dpi(); dpi_y = vf_tex_default_dpi(); } mx = dpi_x/72.27; my = dpi_y/72.27; met2.bbx_width = bm->bbx_width; met2.bbx_height = bm->bbx_height; met2.off_x = bm->off_x; met2.off_y = bm->off_y; met2.mv_x = toint(met1.mv_x * mx); met2.mv_y = toint(met1.mv_y * my); if (vf_dbg_drv_ascii_jtex_dump == 1){ printf(">>* ascii_jtex: get bitmap 1\n"); printf(" CharCode: 0x%04lx (char-type: %d)\n", code_point, vf_tfm_jfm_chartype(font_jtex->tfm, (UINT4)code_point)); printf(">> metric 1\n"); vf_dump_metric1(&met1); printf(">> metric 2\n"); vf_dump_metric2(&met2); printf(">> bitmap (orig)\n"); VF_DumpBitmap(bm); } jtex_met_adjustment(bm, &met2, code_point, font, font_jtex, mag_x, mag_y); if (vf_dbg_drv_ascii_jtex_dump == 1){ printf(">> bitmap (adj)\n"); VF_DumpBitmap(bm); } if (need_free == 1){ VF_FreeBitmap(bm_kanji); /* bm is a new object, we don't need bm_kanji */ } else { ; /*empty*/ /* bm and bm_kanji points to the same object.*/ } return bm; } Private VF_OUTLINE jtex_get_outline(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_JTEX font_jtex; if ((font_jtex = (FONT_JTEX)font->private) == NULL){ fprintf(stderr, "VFlib: Internal error in jtex_get_outline().\n"); abort(); } if (font_jtex->kanji_font_id < 0){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } /** ** Metric correction is not supported. Sorry. **/ return VF_GetOutline(font_jtex->kanji_font_id, code_point, mag_x, mag_y); } Private int jtex_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { FONT_JTEX font_jtex; TFM tfm; struct vf_s_metric1 met1; if ( (metric == NULL) || ((font_jtex = (FONT_JTEX)font->private) == NULL) || ((tfm = font_jtex->tfm) == NULL) ){ fprintf(stderr, "VFlib internal error in htex_get_metric2()\n"); abort(); } if (vf_tfm_metric(tfm, code_point, &met1) == NULL) return -1; metric->bbx_width = toint(met1.bbx_width * mag_x * font->mag_x); metric->bbx_height = toint(met1.bbx_height * mag_y * font->mag_y); metric->off_x = toint(met1.off_x * mag_x * font->mag_x); metric->off_y = toint(met1.off_y * mag_y * font->mag_y); metric->mv_x = toint(met1.mv_x * mag_x * font->mag_x); metric->mv_y = toint(met1.mv_y * mag_y * font->mag_y); return 0; } Private int jtex_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { FONT_JTEX font_jtex; if ((font_jtex = (FONT_JTEX)font->private) == NULL){ fprintf(stderr, "VFlib internal error in jtex_get_fontbbx2()\n"); abort(); } *w_p = toint(font_jtex->tfm->font_bbx_w * mag_x * font->mag_x); *h_p = toint(font_jtex->tfm->font_bbx_h * mag_y * font->mag_y); *xoff_p = toint(font_jtex->tfm->font_bbx_xoff * mag_x * font->mag_x); *yoff_p = toint(font_jtex->tfm->font_bbx_yoff * mag_y * font->mag_y); return 0; } Private VF_BITMAP jtex_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_JTEX font_jtex; VF_BITMAP bm_kanji, bm; int need_free; struct vf_s_metric1 met1; struct vf_s_metric2 met2; if ((font_jtex = (FONT_JTEX)font->private) == NULL){ fprintf(stderr, "VFlib: Internal error in jtex_get_bitmap2().\n"); abort(); } if (font_jtex->kanji_font_id < 0){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } bm_kanji = VF_GetBitmap2(font_jtex->kanji_font_id, code_point, mag_x, mag_y); if (bm_kanji == NULL){ #if 1 bm_kanji = vf_alloc_bitmap(1, 1); #else return NULL; #endif } bm = jtex_rotate_bitmap(bm_kanji, code_point, font_jtex, &need_free); if (bm == NULL){ VF_FreeBitmap(bm_kanji); return NULL; } if (vf_tfm_metric(font_jtex->tfm, code_point, &met1) == NULL){ VF_FreeBitmap(bm_kanji); if (need_free == 1) VF_FreeBitmap(bm); return NULL; } met2.bbx_width = bm->bbx_width; met2.bbx_height = bm->bbx_height; met2.off_x = bm->off_x; met2.off_y = bm->off_y; if ((font_jtex->mode2_factor_x > 0) && (font_jtex->mode2_factor_x > 0)){ met2.mv_x = met1.mv_x * font_jtex->mode2_factor_x; met2.mv_y = met1.mv_y * font_jtex->mode2_factor_y; } else { met2.mv_x = bm->mv_x; met2.mv_y = bm->mv_y; } if (vf_dbg_drv_ascii_jtex_dump == 1){ printf(">>* ascii_jtex: get bitmap 2\n"); printf(">> metric\n"); vf_dump_metric2(&met2); printf(">> bitmap (orig)\n"); VF_DumpBitmap(bm); } jtex_met_adjustment(bm, &met2, code_point, font, font_jtex, mag_x, mag_y); if (vf_dbg_drv_ascii_jtex_dump == 1){ printf(">> bitmap (adj)\n"); VF_DumpBitmap(bm); } if (need_free == 1){ VF_FreeBitmap(bm_kanji); /* bm is a new object, we don't need bm_kanji */ } else { ; /*empty*/ /* bm and bm_kanji points to the same object.*/ } return bm; } Private char* jtex_get_font_prop(VF_FONT font, char *prop_name) { FONT_JTEX font_jtex; double dpi_x, dpi_y; SEXP v; char *r; if ((font_jtex = (FONT_JTEX)font->private) == NULL){ fprintf(stderr, "VFlib: Internal error in jtex_get_font_prop().\n"); abort(); } if (font_jtex->kanji_font_id < 0){ return NULL; } if ((v = vf_sexp_assoc(prop_name, font_jtex->props)) != NULL){ if ((r = vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v)))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } return r; } else if ((v = vf_sexp_assoc(prop_name, default_properties)) != NULL){ if ((r = vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v)))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } return r; } if (((dpi_x = font->dpi_x)<=0) || ((dpi_y = font->dpi_y)<=0)){ dpi_x = vf_tex_default_dpi(); dpi_y = vf_tex_default_dpi(); } #if 0 if (font->mode == 1){ if ((ps = font->point_size) < 0) ps = font_jtex->tfm->design_size; ps = ps * font->mag_y; if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(ps * 10.0)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps * dpi_y / 72.27)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpi_x)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpi_y)); return vf_strdup(str); } } else if (font->mode == 2){ if (strcmp(prop_name, "POINT_SIZE") == 0){ if ((ps = font->pixel_size) < 0){ sprintf(str, "%d", toint(font_jtex->tfm->design_size * 10.0 * font->mag_y)); return vf_strdup(str); } ps = ps * font->mag_y; sprintf(str, "%d", toint(ps * 10.0 * 72.27 / dpi_y)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ if ((ps = font->pixel_size) < 0) ps = font_jtex->tfm->design_size * dpi_y / 72.27; ps = ps * font->mag_y; sprintf(str, "%d", toint(ps)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpi_x)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpi_y)); return vf_strdup(str); } } #endif return VF_GetFontProp(font_jtex->kanji_font_id, prop_name); } Private int jtex_query_font_type(VF_FONT font, long code_point) { FONT_JTEX font_jtex; if ((font_jtex = (FONT_JTEX)font->private) == NULL){ fprintf(stderr, "VFlib: Internal error in jtex_get_font_prop().\n"); abort(); } return VF_QueryFontType(font_jtex->kanji_font_id, code_point); } Private VF_BITMAP jtex_rotate_bitmap(VF_BITMAP bm0, long code_point, FONT_JTEX font_jtex, int *need_free_p) { VF_BITMAP bm, bm_mirror; ADJ adj; int ctype, i; *need_free_p = 0; if (((adj = font_jtex->adj) == NULL) || (font_jtex->tfm->type_aux != METRIC_TYPE_JFM_AUX_V)) return bm0; ctype = vf_tfm_jfm_chartype(font_jtex->tfm, (UINT4)code_point); if (adj->ct_corr[ctype].may_need_rotate == FALSE) return bm0; for (i = 0; VertCharInfo[i].code_point > 0; i++){ if ((VertCharInfo[i].code_point == code_point) && ((VertCharInfo[i].rot_semantics & adj->rot_semantics) != 0)){ if ((bm = VF_RotatedBitmap(bm0, VertCharInfo[i].angle)) == NULL) return NULL; if (VertCharInfo[i].mirror == 0){ *need_free_p = 1; return bm; } if ((bm_mirror = VF_ReflectedBitmap(bm, 1, 0)) == NULL){ VF_FreeBitmap(bm); return NULL; } VF_FreeBitmap(bm); *need_free_p = 1; return bm_mirror; } } *need_free_p = 0; return bm0; } Private int jtex_met_adjustment(VF_BITMAP bm, VF_METRIC2 met2, long code_point, VF_FONT font, FONT_JTEX font_jtex, double mag_x, double mag_y) { ADJ adj; int ctype, dx, dy; double dpix, dpiy, fdx, fdy, ds, dr; bm->mv_x = met2->mv_x; bm->mv_y = met2->mv_y; if ((adj = font_jtex->adj) == NULL){ if (vf_dbg_drv_ascii_jtex_adj == 1) printf(">>VFlib ascii jtex ADJ: none\n"); return 0; } ctype = vf_tfm_jfm_chartype(font_jtex->tfm, (UINT4)code_point); fdx = adj->ct_corr[ctype].dx + adj->ct_corr_all.dx; fdy = adj->ct_corr[ctype].dy + adj->ct_corr_all.dy; if (adj->ct_corr[ctype].need_cc_corr) jtex_met_cc_adjustment(adj, code_point, ctype, &fdx, &fdy); ds = font_jtex->tfm->design_size; dr = 1.0; if (font->point_size > 0) dr = font->point_size / ds; dx = 0; dy = 0; switch (font->mode){ case 1: if (adj->semantics == SEMANTICS_AUX_BITMAP){ dx = met2->bbx_width * fdx * mag_x * font->mag_x; dy = met2->bbx_height * fdy * mag_y * font->mag_y; } else if (adj->semantics == SEMANTICS_DESIGN_SIZE){ if (((dpix = font->dpi_x) < 0) || ((dpiy = font->dpi_y) < 0)){ dpix = vf_tex_default_dpi(); dpiy = vf_tex_default_dpi(); } dx = (dpix/72.27) * ds * dr * fdx * mag_x * font->mag_x; dy = (dpiy/72.27) * ds * dr * fdy * mag_y * font->mag_y; } break; case 2: default: if (adj->semantics == SEMANTICS_AUX_BITMAP){ dx = met2->bbx_width * fdx * mag_x * font->mag_x; dy = met2->bbx_height * fdy * mag_y * font->mag_y; } else if (adj->semantics == SEMANTICS_DESIGN_SIZE){ dx = font_jtex->mode2_factor_x * ds * dr * fdx * mag_x * font->mag_x; dy = font_jtex->mode2_factor_y * ds * dr * fdy * mag_y * font->mag_y; } break; } bm->off_x += dx; bm->off_y += dy; if (vf_dbg_drv_ascii_jtex_adj == 1){ printf(">>VFlib ascii jtex ADJ 0x%x CharType %d %.3f,%.3f BBX[%d,%d]\n", (int)code_point, ctype, adj->ct_corr[ctype].dx, adj->ct_corr[ctype].dy, met2->bbx_width, met2->bbx_height); } return 0; } Private void jtex_met_cc_adjustment(ADJ adj, long code_point, int char_type, double *fxp, double *fyp) { int i, last; last = adj->n_cc_corr - 1; adj->cc_corr[last].code_point = code_point; adj->cc_corr[last].dx = 0.0; adj->cc_corr[last].dy = 0.0; for (i = 0; adj->cc_corr[i].code_point != code_point; i++) ; if (i != last){ if (vf_dbg_drv_ascii_jtex_adj == 1) printf(">>VFlib: ascii jtex: cc adj: 0x%04lx %.3f %.3f\n", code_point, adj->cc_corr[i].dx, adj->cc_corr[i].dy); /* Override! */ *fxp = adj->cc_corr[i].dx; *fyp = adj->cc_corr[i].dy; } } Private ADJ jtex_read_met_adjustment_file(FONT_JTEX font_jtex, char* file_name) { FILE *fp; ADJ adj; SEXP s, s0, s1, s2, s3; int ct, i_cc, i; long cc; char *path, *key; if (file_name == NULL){ vf_error = VF_ERR_CANT_OPEN; return NULL; } path = find_adj(file_name); if (path == NULL){ vf_error = VF_ERR_CANT_OPEN; return NULL; } if ((fp = vf_fm_OpenTextFileStream(path)) == NULL){ vf_free(path); vf_error = VF_ERR_CANT_OPEN; return NULL; } ALLOC_IF_ERR(adj, struct s_met_adj_table){ vf_error = VF_ERR_NO_MEMORY; vf_free(path); return NULL; } adj->semantics = -1; adj->dir = -1; adj->rot_semantics = -1; for (ct = 0; ct < JTEX_MAX_CHARTYPE; ct++){ adj->ct_corr[ct].need_cc_corr = FALSE; adj->ct_corr[ct].may_need_rotate = FALSE; adj->ct_corr[ct].dx = 0.0; adj->ct_corr[ct].dy = 0.0; } adj->ct_corr_all.dx = 0.0; adj->ct_corr_all.dy = 0.0; for (i = 0; VertCharInfo[i].code_point > 0; i++){ ct = vf_tfm_jfm_chartype(font_jtex->tfm, (UINT4)VertCharInfo[i].code_point); adj->ct_corr[ct].may_need_rotate = TRUE; } adj->n_cc_corr = 0; if (realloc_cc_corr(adj) == NULL){ vf_free(adj); vf_free(path); return NULL; } i_cc = 0; s = NULL; for (;;){ vf_sexp_free(&s); if ((s = vf_sexp_read(fp)) == NULL) break; if (vf_dbg_drv_ascii_jtex_adj == 1){ printf(">>VFlib ascii jtex ADJ: "); vf_sexp_pp(s); } if (!vf_sexp_listp(s)){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } s0 = vf_sexp_car(s); if (!vf_sexp_stringp(s0)){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } key = vf_sexp_get_cstring(s0); if (vf_strcmp_ci(key, KW_CHAR_ALL) == 0){ if (vf_sexp_length(s) != 3){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } s1 = vf_sexp_cadr(s); s2 = vf_sexp_caddr(s); if (!vf_sexp_stringp(s1)||!vf_sexp_stringp(s2)){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } adj->ct_corr_all.dx = atof(vf_sexp_get_cstring(s1)); adj->ct_corr_all.dy = atof(vf_sexp_get_cstring(s2)); if (vf_dbg_drv_ascii_jtex_adj == 1){ printf(">> %s: Correction: %.3f,%.3f\n", KW_CHAR_ALL, adj->ct_corr_all.dx, adj->ct_corr_all.dy); } } else if (vf_strcmp_ci(key, KW_CHAR_TYPE) == 0){ if (vf_sexp_length(s) != 4){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } s1 = vf_sexp_cadr(s); s2 = vf_sexp_caddr(s); s3 = vf_sexp_caddr(vf_sexp_cdr(s)); if (!vf_sexp_stringp(s1)||!vf_sexp_stringp(s2)||!vf_sexp_stringp(s2)){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } ct = atoi(vf_sexp_get_cstring(s1)); if ((ct < 0) || (JTEX_MAX_CHARTYPE <= ct)){ fprintf(stderr, "VFlib warning: %s %d out of range in %s.\n", KW_CHAR_TYPE, ct, path); continue; } adj->ct_corr[ct].dx = atof(vf_sexp_get_cstring(s2)); adj->ct_corr[ct].dy = atof(vf_sexp_get_cstring(s3)); if (vf_dbg_drv_ascii_jtex_adj == 1){ printf(">> %s CharType: %02d, Correction: %.3f,%.3f\n", KW_CHAR_TYPE, ct, adj->ct_corr[ct].dx, adj->ct_corr[ct].dy); } } else if (vf_strcmp_ci(key, KW_CHAR_CODE) == 0){ if (vf_sexp_length(s) != 4){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } s1 = vf_sexp_cadr(s); s2 = vf_sexp_caddr(s); s3 = vf_sexp_caddr(vf_sexp_cdr(s)); if (!vf_sexp_stringp(s1)||!vf_sexp_stringp(s2)||!vf_sexp_stringp(s2)){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } cc = atoi(vf_sexp_get_cstring(s1)); if (cc < 0){ fprintf(stderr, "VFlib warning: %s %d out of range in %s.\n", KW_CHAR_CODE, ct, path); continue; } if (i_cc >= (adj->n_cc_corr-1)) realloc_cc_corr(adj); sscanf(vf_sexp_get_cstring(s1), "%li", &cc); adj->cc_corr[i_cc].code_point = cc; adj->cc_corr[i_cc].dx = atof(vf_sexp_get_cstring(s2)); adj->cc_corr[i_cc].dy = atof(vf_sexp_get_cstring(s3)); if (vf_dbg_drv_ascii_jtex_adj == 1){ printf(">> %s Code: 0x%lx, Correection: %.3f,%.3f\n", KW_CHAR_CODE, cc, adj->cc_corr[i_cc].dx, adj->cc_corr[i_cc].dy); } i_cc++; ct = vf_tfm_jfm_chartype(font_jtex->tfm, (UINT4)cc); adj->ct_corr[ct].need_cc_corr = TRUE; } else if (vf_strcmp_ci(key, KW_SEMANTICS) == 0){ if (vf_sexp_length(s) != 2){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } s1 = vf_sexp_cadr(s); if (!vf_sexp_stringp(s1)){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } if (vf_strcmp_ci(vf_sexp_get_cstring(s1), KW_SEM_BITMAP) == 0){ adj->semantics = SEMANTICS_AUX_BITMAP; } else if (vf_strcmp_ci(vf_sexp_get_cstring(s1), KW_SEM_DESIGN) == 0){ adj->semantics = SEMANTICS_DESIGN_SIZE; } else { fprintf(stderr, "VFlib warning: Unknown semantics name %s in %s.\n", vf_sexp_get_cstring(s1), path); } } else if (vf_strcmp_ci(key, KW_DIR) == 0){ if (vf_sexp_length(s) != 2){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } s1 = vf_sexp_cadr(s); if (!vf_sexp_stringp(s1)){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } if (vf_strcmp_ci(vf_sexp_get_cstring(s1), KW_DIR_HORIZONTAL) == 0){ adj->dir = DIR_HORIZONTAL; } else if (vf_strcmp_ci(vf_sexp_get_cstring(s1), KW_DIR_VERTICAL) == 0){ adj->dir = DIR_VERTICAL; } else { fprintf(stderr, "VFlib warning: Unknown direction name %s in %s.\n", vf_sexp_get_cstring(s1), path); fprintf(stderr, "Use \"%s\" or \"%s\"\n", KW_DIR_HORIZONTAL, KW_DIR_VERTICAL); } } else if (vf_strcmp_ci(key, KW_ROTATION) == 0){ if (vf_sexp_length(s) != 2){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } s1 = vf_sexp_cadr(s); if (!vf_sexp_stringp(s1)){ fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } if (vf_strcmp_ci(vf_sexp_get_cstring(s1), KW_ROT_PTEX) == 0){ adj->rot_semantics = ROT_PTEX; } else if (vf_strcmp_ci(vf_sexp_get_cstring(s1), KW_ROT_JISX0208) == 0){ adj->rot_semantics = ROT_JISX0208; } else { fprintf(stderr, "VFlib warning: Unknown keyword %s in %s.\n", vf_sexp_get_cstring(s1), path); fprintf(stderr, "Use \"%s\" or \"%s\"\n", KW_ROT_PTEX, KW_ROT_JISX0208); } } else { fprintf(stderr, "VFlib warning: Illegal ADJ file format in %s: ", path); vf_sexp_pp(s); continue; } } /* default values */ if (adj->semantics == -1) adj->semantics = SEMANTICS_AUX_BITMAP; if (adj->dir == -1) adj->dir = DIR_HORIZONTAL; if (adj->rot_semantics == -1) adj->rot_semantics = ROT_PTEX; vf_free(path); return adj; } Private void jtex_free_adj(ADJ adj) { if (adj != NULL){ vf_free(adj->cc_corr); vf_free(adj); } } Private ADJ realloc_cc_corr(ADJ adj) { ADJ_CC_CORR new_cc_corr; int new_size, i; new_size = 2 * adj->n_cc_corr; if (new_size <= 0) new_size = N_CC_CORR; ALLOCN_IF_ERR(new_cc_corr, struct s_met_adj_cc_corr, new_size){ vf_error = VF_ERR_NO_MEMORY; return NULL; } for (i = 0; i < adj->n_cc_corr; i++){ new_cc_corr[i].code_point = adj->cc_corr[i].code_point; new_cc_corr[i].dx = adj->cc_corr[i].dx; new_cc_corr[i].dy = adj->cc_corr[i].dy; } for (i = adj->n_cc_corr; i < new_size; i++){ new_cc_corr[i].code_point = -1L; new_cc_corr[i].dx = 0.0; new_cc_corr[i].dy = 0.0; } vf_free(adj->cc_corr); adj->n_cc_corr = new_size; adj->cc_corr = new_cc_corr; return adj; } Private char* find_adj(char *fname) { char *path; if (fname == NULL) return NULL; if (vf_dbg_drv_ascii_jtex_adj == 1) printf(">>VFlib ascii jtex: Searching ADJ file: %s\n", fname); path = NULL; if (vf_path_absolute(fname)){ if (vf_path_file_read_ok(fname)){ if ((path = vf_strdup(fname)) == NULL) vf_error = VF_ERR_NO_MEMORY; } } else { path = vf_path_find_runtime_file("ascii-jtex", fname, VFLIB_ENV_ASCII_JTEX_DIR); } if (vf_dbg_drv_ascii_jtex_adj == 1){ if (path != NULL) printf(">> --- found: %s\n", path); else printf(">> --- not found\n"); } return path; } /*EOF*/ vflib3-3.6.14.dfsg/src/drv_pk.c0000644000175000017500000007521607363422132015521 0ustar mohuramohura/* CAUTION! NEVER EDIT THIS FILE */ /* * drv_pk.c - A font driver for TeX PK format fonts. * * 28 Sep 1996 First version. * 14 Dec 1996 for VFlib 3.1 * 26 Feb 1997 Added 'query_font_type'. * 4 Aug 1997 VFlib 3.3 Changed API. * 30 Jan 1998 VFlib 3.4 Changed API. * 21 Apr 1998 Debugged get_font_prop(). * 24 Nov 1998 Added get_fontbbx1() and get_fontbbx2(). * 9 Dec 1998 Fixed bugs in get_fontbbx1() and get_fontbbx2(). (^o^;) * 16 Sep 1999 Changed not to use TFM files. * 18 Oct 2001 Fixed memory leak. */ /* * Copyright (C) 1996-2001 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* (Suppose that default resolution is 300 dpi) ARGS FOR FONT OPEN BEHAVIOR of the DRIVER Case# font_name device_dpi mag font_dpi dev_dpi bitmap_mag TFM_mag ---------------------------------------------------------------------------- 1. cmr10 -1 1 300 300 1 1 2. cmr10 -1 1.2 360 300 1 1.2 3. cmr10 400 1 400 400 1 1 4. cmr10 400 1.2 480 400 1 1.2 5. cmr10.pk -1 1 300 300 1 1 6. cmr10.pk -1 1.2 360 300 1 1.2 7. cmr10.pk 400 1 400 400 1 1 8. cmr10.pk 400 1.2 480 400 1 1.2 9. cmr10.400pk -1 1 400 400 1 1 10. cmr10.400pk -1 1.2 480 400 1 1.2 11. cmr10.400pk 400 1 400 400 1 1 12. cmr10.400pk 400 1.2 400 400 1.2 1.2 13. cmr10.300pk 360 1 300 360 1.2 1 14. cmr10.300pk 360 1.2 300 360 1.44 1.2 Font file is selected from the rules of the table shown above. a. A font file of 'font_dpi' dpi font and opened. b. Bitmaps of a font is scaled by 'bitmap_mag'. c. Font metrics are multiplied by 'TFM_mag'. Memo: * Case 5: We want a PK font file "cmr10" default device resolution. Thus, the bitmaps and metrics need not be scaled. * Case 6: We want a PK font file "cmr10" default device resolution with maginication factor 1.2. Since default device resolution is 300 and magnification factor is 1.2, the font file we want is "cmr10.360pk". Since device resolution is 300, metrics must be scaled by 1.2. * Case 9: This case requires a font "cmr10.400pk" and target device is not considered. Thus bitmaps and metrics are not scaled. * Case 10: This case requires a font cmr10 for 400 dpi scaled by 1.2. Thus, "cmr10.480pk" is used for this request. Since it is scaled by 1.2, font metrics are scaled by 1.2 but bitmaps in a font is not magnified. * Case 13: We want to use a PK font file "cmr10.300pk" for 360 dpi device. Thus, the bitmaps of the font must be scaled by (360/300) = 1.2. Since the metrics in a TFM file are independent from device resolution, metrics need not be scaled. * Case 14: We want to use a PK font file "cmr10.300pk" for 360 dpi device and magnify it by 1.2. Thus, the bitmaps of the font must be scaled by (1.2 x (360/300)) = 1.44. Since the metrics in a TFM file are independent from device resolution, TFM metrics must be scaled by 1.2, which is a magnification factor. */ #include "config.h" #include "with.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "cache.h" #include "str.h" #include "path.h" #include "fsearch.h" #include "sexp.h" #include "texfonts.h" #include "pk.h" struct s_font_pk { int pk_id; char *font_name; char *font_file; double point_size; double pixel_size; double mag; double dpi_x, dpi_y; SEXP props; double extra_mag; }; typedef struct s_font_pk *FONT_PK; Private SEXP_LIST default_fontdirs; Private SEXP_LIST default_extensions; Private SEXP_STRING default_point_size; Private double v_default_point_size; Private SEXP_STRING default_pixel_size; Private double v_default_pixel_size; Private SEXP_STRING default_dpi; Private double v_default_dpi_x, v_default_dpi_y; Private SEXP_STRING default_make_glyph; Private int v_default_make_glyph = 0; Private SEXP_ALIST default_properties; Private SEXP_ALIST default_variables; Private SEXP_STRING default_debug_mode; Private int pk_create(VF_FONT,char*,char*,int,SEXP); Private int pk_close(VF_FONT); Private int pk_get_metric1(VF_FONT,long,VF_METRIC1,double,double); Private int pk_get_metric2(VF_FONT,long,VF_METRIC2,double,double); Private int pk_get_fontbbx1(VF_FONT,double,double, double*,double*,double*,double*); Private int pk_get_fontbbx2(VF_FONT,double,double, int*,int*,int*,int*); Private VF_BITMAP pk_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP pk_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE pk_get_outline(VF_FONT,long,double,double); Private char* pk_get_font_prop(VF_FONT,char*); Private int PK_Init(void); Private int PK_Open(FONT_PK font_pk, VF_FONT font, int implicit); Private void PK_Close(int pk_id); Private VF_BITMAP PK_GetBitmap(int pk_id, long code_point); Private int PK_GetMetric(int pk_id, long code_point, VF_METRIC1 me, double *ret_dpi_x, double *ret_dpi_y, double *ret_design_size); Private void PK_GetFontBBX(int pk_id, int *bbx_w_p, int *bbx_h_p, int *bbx_xoff_p, int *bbx_yoff_p); Private int debug_on(char type); Public int VF_Init_Driver_PK(void) { int z; struct s_capability_table ct[20]; z = 0; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_fontdirs; /* VF_CAPE_EXTENSIONS */ ct[z].cap = VF_CAPE_EXTENSIONS; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_extensions; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_point_size; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_pixel_size; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi; /* VF_CAPE_MAKE_MISSING_GLYPH */ ct[z].cap = VF_CAPE_MAKE_MISSING_GLYPH; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_make_glyph; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_tex_init() < 0) return -1; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME_PK, ct, vf_tex_default_variables, NULL) == VFLIBCAP_PARSED_ERROR) return -1; if (default_extensions == NULL) default_extensions = vf_sexp_cstring2list(DEFAULT_EXTENSIONS_PK); v_default_point_size = -1; if (default_point_size != NULL) v_default_point_size = atof(vf_sexp_get_cstring(default_point_size)); v_default_pixel_size = -1; if (default_pixel_size != NULL) v_default_pixel_size = atof(vf_sexp_get_cstring(default_pixel_size)); v_default_dpi_x = -1; v_default_dpi_y = -1; if (default_dpi != NULL) v_default_dpi_x = v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi)); v_default_make_glyph = 0; if (default_make_glyph != NULL){ v_default_make_glyph = vf_parse_bool(vf_sexp_get_cstring(default_make_glyph)); } if (PK_Init() < 0) return -1; if ((v_default_dpi_x < 0) || (v_default_dpi_x < 0)){ v_default_dpi_x = vf_tex_default_dpi(); v_default_dpi_y = vf_tex_default_dpi(); } VF_InstallFontDriver(FONTCLASS_NAME_PK, (DRIVER_FUNC_TYPE)pk_create); return 0; } Private int pk_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_PK font_pk; SEXP cap_ffile, cap_point, cap_pixel; SEXP cap_dpi, cap_mag, cap_props; char *font_file; int val, pk_id; struct s_capability_table ct[10]; int z; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_FONT_FILE */ ct[z].cap = VF_CAPE_FONT_FILE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ffile; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_point; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_pixel; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi; /* VF_CAPE_MAG */ ct[z].cap = VF_CAPE_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mag; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (implicit == 1){ /* implicit font */ font_file = font_name; } else { /* explicit font */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, vf_tex_default_variables) == VFLIBCAP_PARSED_ERROR) return -1; if (cap_ffile == NULL){ /* Use font name as font file name if font file name is not given. */ font_file = font_name; } else { font_file = vf_sexp_get_cstring(cap_ffile); } } font->font_type = VF_FONT_TYPE_BITMAP; font->get_metric1 = pk_get_metric1; font->get_metric2 = pk_get_metric2; font->get_fontbbx1 = pk_get_fontbbx1; font->get_fontbbx2 = pk_get_fontbbx2; font->get_bitmap1 = pk_get_bitmap1; font->get_bitmap2 = pk_get_bitmap2; font->get_outline = pk_get_outline; font->get_font_prop = pk_get_font_prop; font->query_font_type = NULL; font->close = pk_close; val = -1; font_pk = NULL; ALLOC_IF_ERR(font_pk, struct s_font_pk) goto NoMemoryError; font_pk->pk_id = -1; font_pk->font_name = NULL; font_pk->font_file = NULL; font_pk->point_size = v_default_point_size; font_pk->pixel_size = v_default_pixel_size; font_pk->dpi_x = v_default_dpi_x; font_pk->dpi_y = v_default_dpi_y; font_pk->mag = 1.0; font_pk->props = NULL; font_pk->extra_mag = 1.0; if (implicit == 0){ if (cap_point != NULL) font_pk->point_size = atof(vf_sexp_get_cstring(cap_point)); if (cap_pixel != NULL) font_pk->pixel_size = atof(vf_sexp_get_cstring(cap_pixel)); if (cap_dpi != NULL) font_pk->dpi_x = font_pk->dpi_y = atof(vf_sexp_get_cstring(cap_dpi)); if (cap_mag != NULL) font_pk->mag = atof(vf_sexp_get_cstring(cap_mag)); if (cap_props != NULL) font_pk->props = cap_props; } if ((font_pk->font_file = vf_strdup(font_file)) == NULL) goto NoMemoryError; if ((font_pk->font_name = vf_strdup(font_name)) == NULL) goto NoMemoryError; if ((pk_id = PK_Open(font_pk, font, implicit)) < 0) goto Error; font_pk->pk_id = pk_id; font->private = font_pk; val = 0; goto End; NoMemoryError: vf_error = VF_ERR_NO_MEMORY; Error: if (font_pk != NULL){ vf_free(font_pk->font_name); vf_free(font_pk->font_file); } if (implicit == 0) vf_sexp_free1(&cap_props); vf_free(font_pk); End: if (implicit == 0){ vf_sexp_free3(&cap_ffile, &cap_point, &cap_pixel); vf_sexp_free2(&cap_dpi, &cap_mag); } return val; } Private int pk_close(VF_FONT font) { FONT_PK font_pk; font_pk = (FONT_PK)font->private; if (font_pk != NULL){ PK_Close(font_pk->pk_id); vf_sexp_free1(&font_pk->props); vf_free(font_pk->font_name); vf_free(font_pk->font_file); } vf_free(font_pk); return 0; } Private int pk_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { FONT_PK font_pk; double mx, my, ps, design_size; if (metric == NULL){ fprintf(stderr, "VFlib internal error: in pk_get_metric1()\n"); abort(); } if ((font_pk = (FONT_PK)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in pk_get_metric1()\n"); abort(); } if (PK_GetMetric(font_pk->pk_id, code_point, metric, NULL, NULL, &design_size) < 0) return -1; if ((ps = font->point_size) < 0) if ((ps = font_pk->point_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ mx = mag_x * font->mag_x * font_pk->mag; my = mag_y * font->mag_y * font_pk->mag; } else { mx = mag_x * font->mag_x * font_pk->mag * (ps/design_size); my = mag_y * font->mag_y * font_pk->mag * (ps/design_size); } metric->bbx_width *= mx; metric->bbx_height *= my; metric->off_x *= mx; metric->off_y *= my; metric->mv_x *= mx; metric->mv_y *= my; return 0; } Private int pk_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { FONT_PK font_pk; double mx, my, ps, design_size, dpi_x, dpi_y; int w, h, xoff, yoff; if ((font_pk = (FONT_PK)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in pk_get_fontbbx1()\n"); abort(); } if (PK_GetMetric(font_pk->pk_id, -1, NULL, &dpi_x, &dpi_y, &design_size) < 0) return -1; if ((ps = font->point_size) < 0) if ((ps = font_pk->point_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ mx = mag_x * font->mag_x * font_pk->mag; my = mag_y * font->mag_y * font_pk->mag; } else { mx = mag_x * font->mag_x * font_pk->mag * (ps/design_size); my = mag_y * font->mag_y * font_pk->mag * (ps/design_size); } PK_GetFontBBX(font_pk->pk_id, &w, &h, &xoff, &yoff); #if 0 printf("*** %d %d %d %d %.3f %.3f %.3f %.3f\n", w, h, xoff, yoff, mx, my, dpi_x, dpi_y); #endif *w_p = mx * w * 72.27 / dpi_x; *h_p = my * h * 72.27 / dpi_y; *xoff_p = mx * xoff * 72.27 / dpi_x; *yoff_p = my * yoff * 72.27 / dpi_y; return 0; } Private VF_BITMAP pk_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { VF_BITMAP bm; FONT_PK font_pk; double mx, my, ps, design_size; if ((font_pk = (FONT_PK)font->private) == NULL){ fprintf(stderr, "VFlib internal error in pk_get_bitmap1()\n"); abort(); } if ((bm = PK_GetBitmap(font_pk->pk_id, code_point)) == NULL) return NULL; /* 'bm' SHOULD NOT BE RELEASED. */ if (PK_GetMetric(font_pk->pk_id, code_point, NULL, NULL, NULL, &design_size) < 0) return NULL; if ((ps = font->point_size) < 0) if ((ps = font_pk->point_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ /* Note: font->mag_x and font_pk->mag are already used to select scaled glyph, e.g., cmr10.360pk for 300dpi with mag 1.2. */ mx = font_pk->extra_mag * mag_x; my = font_pk->extra_mag * mag_y; } else { #if 0 m = font->mag_y * font_pk->mag; mx = font_pk->extra_mag * mag_x * m * (ps/design_size); my = font_pk->extra_mag * mag_y * m * (ps/design_size); #endif mx = font_pk->extra_mag * mag_x * (ps/design_size); my = font_pk->extra_mag * mag_y * (ps/design_size); } if (debug_on('m')) printf("VFlib PK: get_bitmap1: bitmap mag: %.4f %.4f\n", mx, my); return VF_MakeScaledBitmap(bm, mx, my); } Private VF_OUTLINE pk_get_outline(VF_FONT font, long code_point, double mag_x, double mag_y) { VF_BITMAP bm; VF_OUTLINE ol; FONT_PK font_pk; int bbx_w, bbx_h; double dpi_x, dpi_y, design_size; if ((font_pk = (FONT_PK)font->private) == NULL){ fprintf(stderr, "VFlib internal error in pk_get_outline()\n"); abort(); } if ((bm = pk_get_bitmap1(font, code_point, mag_x, mag_y)) == NULL) return NULL; if (PK_GetMetric(font_pk->pk_id, code_point, NULL, &dpi_x, &dpi_y, &design_size) < 0){ VF_FreeBitmap(bm); return NULL; } PK_GetFontBBX(font_pk->pk_id, &bbx_w, &bbx_h, NULL, NULL); ol = vf_bitmap_to_outline(bm, bbx_w, bbx_h, dpi_x, dpi_y, design_size, 1.0, 1.0); VF_FreeBitmap(bm); return ol; } Private int pk_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { VF_BITMAP bm; FONT_PK font_pk; double mx, my, dpi_x, dpi_y, ps, design_size; if ( (metric == NULL) || ((font_pk = (FONT_PK)font->private) == NULL) ){ fprintf(stderr, "VFlib internal error: in pk_get_metric2()\n"); abort(); } if ((bm = PK_GetBitmap(font_pk->pk_id, code_point)) == NULL) return -1; /* 'bm' SHOULD NOT BE RELEASED. */ if (PK_GetMetric(font_pk->pk_id, code_point, NULL, &dpi_x, &dpi_y, &design_size) < 0) return -1; if ((ps = font->pixel_size) < 0) if ((ps = font_pk->pixel_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ mx = font->mag_x * font_pk->mag * mag_x; my = font->mag_y * font_pk->mag * mag_y; } else { mx = font->mag_x * font_pk->mag * mag_x * (ps*72.27)/(design_size*dpi_x); my = font->mag_y * font_pk->mag * mag_y * (ps*72.27)/(design_size*dpi_y); } metric->bbx_width = toint(mx * bm->bbx_width); metric->bbx_height = toint(my * bm->bbx_height); metric->off_x = toint(mx * bm->off_x); metric->off_y = toint(my * bm->off_y); metric->mv_x = toint(mx * bm->mv_x); metric->mv_y = toint(my * bm->mv_y); return 0; } Private int pk_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { FONT_PK font_pk; double mx, my, dpi_x, dpi_y, ps, design_size; if ((font_pk = (FONT_PK)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in pk_get_fontbbx2()\n"); abort(); } if (PK_GetMetric(font_pk->pk_id, -1, NULL, &dpi_x, &dpi_y, &design_size) < 0) return -1; if ((ps = font->pixel_size) < 0) if ((ps = font_pk->pixel_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ mx = font->mag_x * font_pk->mag * mag_x; my = font->mag_y * font_pk->mag * mag_y; } else { mx = font->mag_x * font_pk->mag * mag_x * (ps*72.27)/(design_size*dpi_x); my = font->mag_y * font_pk->mag * mag_y * (ps*72.27)/(design_size*dpi_y); } PK_GetFontBBX(font_pk->pk_id, w_p, h_p, xoff_p, yoff_p); *w_p = mx * (*w_p); *h_p = mx * (*h_p); *xoff_p = mx * (*xoff_p); *yoff_p = mx * (*yoff_p); return 0; } Private VF_BITMAP pk_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { VF_BITMAP bm; FONT_PK font_pk; double mx, my, dpi_x, dpi_y, ps, design_size; if ((font_pk = (FONT_PK)font->private) == NULL){ fprintf(stderr, "VFlib internal error in pk_get_bitmap2()\n"); abort(); } if ((bm = PK_GetBitmap(font_pk->pk_id, code_point)) == NULL) return NULL; /* 'bm' SHOULD NOT BE RELEASED. */ if (PK_GetMetric(font_pk->pk_id, code_point, NULL, &dpi_x, &dpi_y, &design_size) < 0) return NULL; if ((ps = font->pixel_size) < 0) if ((ps = font_pk->pixel_size) < 0) ps = -1; #if 0 printf("** %.3f %.3f %.3f %.3f %.3f %.3f %d %.3f\n", mag_x, mag_y, ps, design_size, dpi_x, dpi_y, font->pixel_size, font_pk->pixel_size); #endif if ((ps < 0) || (design_size < 1.0e-3)){ /* Note: font_pk->mag_x and font_pk->mag are already used to select scaled glyph, e.g., cmr10.360pk for 300dpi with mag 1.2. */ mx = font_pk->extra_mag * mag_x; my = font_pk->extra_mag * mag_y; } else { #if 0 m = font->mag_y * font_pk->mag; mx = font_pk->extra_mag * mag_x * m * (ps*72.27)/(design_size*dpi_x); my = font_pk->extra_mag * mag_y * m * (ps*72.27)/(design_size*dpi_y); #endif mx = font_pk->extra_mag * mag_x * (font->mag_x * font_pk->mag) * (ps*72.27)/(design_size*dpi_x); my = font_pk->extra_mag * mag_y * (font->mag_y * font_pk->mag) * (ps*72.27)/(design_size*dpi_y); } return VF_MakeScaledBitmap(bm, mx, my); } Private char* pk_get_font_prop(VF_FONT font, char *prop_name) { FONT_PK font_pk; double dpi_x, dpi_y, design_size, ps, m; char str[256]; SEXP v; if ((font_pk = (FONT_PK)font->private) == NULL){ fprintf(stderr, "VFlib internal error in pk_get_font_prop()\n"); abort(); } if ((v = vf_sexp_assoc(prop_name, font_pk->props)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else if ((v = vf_sexp_assoc(prop_name, default_properties)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else { if (PK_GetMetric(font_pk->pk_id, -1, NULL, &dpi_x, &dpi_y, &design_size) < 0){ return NULL; } m = font->mag_y * font_pk->mag; #if 0 printf("** %.3f %.3f %.3f %.4f %d %.3f %.3f %.3f\n", dpi_x, dpi_y, design_size, m, font->pixel_size, font_pk->pixel_size, font->point_size, font_pk->point_size); #endif if (font->mode == 1){ if ((ps = font->point_size) < 0) if ((ps = font_pk->point_size) < 0) ps = design_size; if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(ps * m * 10.0)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps * dpi_y / 72.27)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpi_x)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpi_y)); return vf_strdup(str); } } else if (font->mode == 2){ if (strcmp(prop_name, "POINT_SIZE") == 0){ if ((ps = font->pixel_size) < 0){ if ((ps = font_pk->pixel_size) < 0){ sprintf(str, "%d", toint(design_size * m)); return vf_strdup(str); } } sprintf(str, "%d", toint(ps * 10.0 * (72.27 / dpi_y))); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ if ((ps = font->pixel_size) < 0) if ((ps = font_pk->pixel_size) < 0){ ps = design_size * dpi_y / 72.27; sprintf(str, "%d", toint(ps)); return vf_strdup(str); } sprintf(str, "%d", toint(ps * m)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpi_x)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpi_y)); return vf_strdup(str); } } } return NULL; } #ifndef CACHE_SIZE # define CACHE_SIZE 48 #endif #ifndef HASH_SIZE # define HASH_SIZE 11 #endif struct s_pk { int type; char *font_path; }; typedef struct s_pk *PK; struct s_pk_glyph { int code_min, code_max; VF_BITMAP bm_table; double ds, hppp, vppp; int font_bbx_w, font_bbx_h; int font_bbx_xoff, font_bbx_yoff; }; typedef struct s_pk_glyph *PK_GLYPH; Private VF_TABLE pk_table = NULL; Private VF_CACHE pk_glyph_cache = NULL; Private void PK_CacheDisposer(PK_GLYPH go); Private PK_GLYPH PK_CacheLoader(VF_CACHE c, char *path, int l); Private PK PK_GetPK(int pk_id); Private void PK_SetPKGlyph(char *path, PK_GLYPH go); Private PK_GLYPH PK_GetPKGlyph(char *path); Private int PK_Init(void) { static int init_flag = 0; if (init_flag == 0){ init_flag = 1; if ((pk_table = vf_table_create()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } pk_glyph_cache = vf_cache_create(CACHE_SIZE, HASH_SIZE, (void*(*)(VF_CACHE,void*,int))PK_CacheLoader, (void(*)(void*))PK_CacheDisposer); } return 0; } Private int PK_Open(FONT_PK font_pk, VF_FONT font, int implicit) { PK pk; char *pk_path, *p; int pk_id, dev_dpi; double font_mag; pk = NULL; if (vf_dbg_drv_texfonts == 1) printf(">> PK Open: %s\n", font_pk->font_file); /* Parse font name. Formats of file names that this routine supports: * "cmr10.300XX" - A "cmr10" font for 300 dpi. * "cmr10.XX" - A "cmr10" font. Dpi value is default value. * "cmr10" - ditto. * ("XX" can be any string such as "pk", "pk", and "tfm".) */ p = vf_index(font_pk->font_file, '.'); if ((p != NULL) && (isdigit((int)*(p+1)))){ /* "cmr10.300pk" */ dev_dpi = atoi(p+1); if (font->dpi_y > 0) font_pk->extra_mag = (double)font->dpi_y / (double)dev_dpi; else font_pk->extra_mag = 1.0; } else { /* "cmr10" or "cmr10.pk" */ if ((dev_dpi = font->dpi_y) < 0) dev_dpi = font_pk->dpi_y; font_pk->extra_mag = 1.0; } font_mag = font->mag_y * font_pk->mag; pk_path = vf_tex_search_file_glyph(font_pk->font_file, implicit, FSEARCH_FORMAT_TYPE_PK, default_fontdirs, dev_dpi, font_mag, default_extensions); if (pk_path == NULL){ if (vf_dbg_drv_texfonts == 1) printf(">> PK Open: PK file not found\n"); if (v_default_make_glyph == 0) return -1; if (vf_tex_make_glyph(FSEARCH_FORMAT_TYPE_PK, font_pk->font_file, dev_dpi, font_mag) < 0) return -1; pk_path = vf_tex_search_file_glyph(font_pk->font_file, implicit, FSEARCH_FORMAT_TYPE_PK, default_fontdirs, dev_dpi, font_mag, default_extensions); if (pk_path == NULL){ if (vf_dbg_drv_texfonts == 1) printf(">> PK Open: PK file not found\n"); return -1; } } if (debug_on('f')) printf("VFlib PK: font:%s, dpi:%d, mag:%f, extra_mag:%f\n ==> %s\n", font_pk->font_file, dev_dpi, font_mag, font_pk->extra_mag, pk_path); ALLOC_IF_ERR(pk, struct s_pk){ goto NoMemoryError; } pk->font_path = pk_path; if ((pk_id = (pk_table->put)(pk_table, pk, pk->font_path, strlen(pk->font_path)+1)) < 0) goto NoMemoryError; return pk_id; NoMemoryError: vf_error = VF_ERR_NO_MEMORY; if (pk != NULL) vf_free(pk->font_path); vf_free(pk); return -1; } Private void PK_Close(int pk_id) { PK pk; pk = PK_GetPK(pk_id); if ((pk_table->unlink_by_id)(pk_table, pk_id) > 0) return; if (pk != NULL) vf_free(pk->font_path); vf_free(pk); PK_SetPKGlyph(NULL, NULL); } Private VF_BITMAP PK_GetBitmap(int pk_id, long code_point) /* MEMO: CALLER MUST *NOT* 'FREE' THE BITMAP RETURNED BY THIS FUNC. */ { PK_GLYPH go; PK pk; pk = PK_GetPK(pk_id); if ((go = PK_GetPKGlyph(pk->font_path)) == NULL) return NULL; if ((go->code_min <= code_point) && (code_point <= go->code_max)) return &go->bm_table[code_point - go->code_min]; return NULL; } Private int PK_GetMetric(int pk_id, long code_point, VF_METRIC1 me, double *ret_dpi_x, double *ret_dpi_y, double *ret_design_size) { VF_BITMAP bm; PK_GLYPH go; PK pk; pk = PK_GetPK(pk_id); if ((go = PK_GetPKGlyph(pk->font_path)) == NULL) return -1; if (code_point < 0) code_point = go->code_min; if ((code_point < go->code_min) || (go->code_max < code_point)){ vf_error = VF_ERR_ILL_CODE_POINT; return -1; } if ((bm = &go->bm_table[code_point - go->code_min]) == NULL){ vf_error = VF_ERR_ILL_CODE_POINT; return -1; } if (me != NULL){ me->bbx_width = bm->bbx_width / go->hppp; me->bbx_height = bm->bbx_height / go->vppp; me->off_x = bm->off_x / go->hppp; me->off_y = bm->off_y / go->vppp; me->mv_x = bm->mv_x / go->hppp; me->mv_y = bm->mv_y / go->vppp; } if (ret_dpi_x != NULL) *ret_dpi_x = go->hppp * 72.27; if (ret_dpi_y != NULL) *ret_dpi_y = go->vppp * 72.27; if (ret_design_size != NULL) *ret_design_size = go->ds; return 0; } Private void PK_GetFontBBX(int pk_id, int *bbx_w_p, int *bbx_h_p, int *bbx_xoff_p, int *bbx_yoff_p) { PK_GLYPH go; PK pk; pk = PK_GetPK(pk_id); if ((go = PK_GetPKGlyph(pk->font_path)) == NULL) return; if (bbx_w_p != NULL) *bbx_w_p = go->font_bbx_w; if (bbx_h_p != NULL) *bbx_h_p = go->font_bbx_h; if (bbx_xoff_p != NULL) *bbx_xoff_p = go->font_bbx_xoff; if (bbx_yoff_p != NULL) *bbx_yoff_p = go->font_bbx_yoff; } /* * PK file interface */ #include "pk.c" Private PK PK_GetPK(int pk_id) { if (pk_id < 0) abort(); return (pk_table->get_obj_by_id)(pk_table, pk_id); } static char *pk_last_go_path = NULL; static PK_GLYPH pk_last_go = NULL; Private void PK_SetPKGlyph(char *path, PK_GLYPH go) { pk_last_go_path = path; pk_last_go = go; } Private PK_GLYPH PK_GetPKGlyph(char *path) { PK_GLYPH go; if (path == NULL){ pk_last_go_path = NULL; pk_last_go = NULL; return NULL; } if ((pk_last_go_path != NULL) && (strcmp(pk_last_go_path, path) == 0) && (pk_last_go != NULL) ){ return pk_last_go; } go = (pk_glyph_cache->get)(pk_glyph_cache, path, strlen(path)+1); pk_last_go_path = path; pk_last_go = go; return go; } Private int debug_on(char type) { char *p; if (default_debug_mode == NULL) return FALSE; if ((p = vf_sexp_get_cstring(default_debug_mode)) == NULL) return FALSE; while (*p != '\0'){ if (*p == type) return TRUE; p++; } while (*p != '\0'){ if (*p == '*') return TRUE; p++; } return TRUE; } /*EOF*/ vflib3-3.6.14.dfsg/src/drv_tfm.c0000644000175000017500000005613207363420475015701 0ustar mohuramohura/* * drv_tfm.c - A font driver for TFM fonts. * * 30 Sep 1996 First version. * 17 Jan 1997 for VFlib 3.1 * 24 Feb 1997 Changed metric computation. * 26 Feb 1997 Added 'query_font_type'. * 4 Aug 1997 VFlib 3.3 Changed API. * 1 Feb 1998 for VFlib 3.4 * 21 Apr 1998 Debugged get_font_prop(). */ /* * Copyright (C) 1996-1998 by Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "sexp.h" #include "cache.h" #include "bitmap.h" #include "str.h" #include "path.h" #include "fsearch.h" #include "texfonts.h" #include "tfm.h" struct s_font_tfm { TFM tfm; char *font_name; char *font_file; double point_size; double pixel_size; int glyph_style; double mag; double aspect; double dpi_x, dpi_y; SEXP props; double extra_mag; }; typedef struct s_font_tfm *FONT_TFM; Private SEXP_LIST default_fontdirs; Private SEXP_LIST default_extensions; Private SEXP_STRING default_glyph_style; Private int v_default_glyph_style; Private SEXP_STRING default_point_size; Private double v_default_point_size; Private SEXP_STRING default_pixel_size; Private double v_default_pixel_size; Private SEXP_STRING default_dpi; Private double v_default_dpi_x, v_default_dpi_y; Private SEXP_STRING default_aspect; Private double v_default_aspect; Private SEXP_ALIST default_properties; Private SEXP_ALIST default_variables; Private SEXP_STRING default_debug_mode; Private int tfm_create(VF_FONT,char*,char*,int,SEXP); Private int tfm_close(VF_FONT); Private int tfm_get_metric1(VF_FONT,long,VF_METRIC1,double,double); Private int tfm_get_metric2(VF_FONT,long,VF_METRIC2,double,double); Private int tfm_get_fontbbx1(VF_FONT,double,double, double*,double*,double*,double*); Private int tfm_get_fontbbx2(VF_FONT,double,double, int*,int*,int*,int*); Private VF_BITMAP tfm_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP tfm_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE tfm_get_outline(VF_FONT,long,double,double); Private char* tfm_get_font_prop(VF_FONT,char*); Public int VF_Init_Driver_TFM(void) { struct s_capability_table ct[20]; int z; z = 0; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_fontdirs; /* VF_CAPE_EXTENSIONS */ ct[z].cap = VF_CAPE_EXTENSIONS; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_extensions; /* VF_CAPE_TEX_GLYPH_STYLE */ ct[z].cap = VF_CAPE_TEX_GLYPH_STYLE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_glyph_style; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_point_size; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_pixel_size; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_aspect; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME_TFM, ct, vf_tex_default_variables, NULL) == VFLIBCAP_PARSED_ERROR) return -1; if (default_extensions == NULL) default_extensions = vf_sexp_cstring2list(DEFAULT_EXTENSIONS_TFM); v_default_glyph_style = TEX_GLYPH_STYLE_EMPTY; if (default_glyph_style != NULL) v_default_glyph_style = vf_tex_parse_glyph_style(vf_sexp_get_cstring(default_glyph_style), TEX_GLYPH_STYLE_EMPTY); v_default_point_size = -1; if (default_point_size != NULL) v_default_point_size = atof(vf_sexp_get_cstring(default_point_size)); v_default_pixel_size = -1; if (default_pixel_size != NULL) v_default_pixel_size = atof(vf_sexp_get_cstring(default_pixel_size)); v_default_dpi_x = -1; v_default_dpi_y = -1; if (default_dpi != NULL) v_default_dpi_x = v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi)); v_default_aspect = 1.0; if (default_aspect != NULL) v_default_aspect = atof(vf_sexp_get_cstring(default_aspect)); vf_tex_init(); vf_tfm_init(); VF_InstallFontDriver(FONTCLASS_NAME_TFM, (DRIVER_FUNC_TYPE)tfm_create); return 0; } Private int tfm_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_TFM font_tfm; char *font_file, *tfm_path, *p; int dev_dpi; SEXP cap_ffile, cap_glyph_style, cap_point, cap_pixel; SEXP cap_dpi, cap_mag, cap_aspect, cap_props; struct s_capability_table ct[20]; int z; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_FONT_FILE */ ct[z].cap = VF_CAPE_FONT_FILE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ffile; /* VF_CAPE_TEX_GLYPH_STYLE */ ct[z].cap = VF_CAPE_TEX_GLYPH_STYLE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_glyph_style; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_point; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_pixel; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi; /* VF_CAPE_MAG */ ct[z].cap = VF_CAPE_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mag; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_aspect; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (implicit == 1){ /* implicit font */ font_file = font_name; } else { /* explicit font */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, vf_tex_default_variables) == VFLIBCAP_PARSED_ERROR) return -1; if (cap_ffile == NULL){ /* Use font name as font file name if font file name is not given. */ font_file = font_name; } else { font_file = vf_sexp_get_cstring(cap_ffile); } } font->font_type = VF_FONT_TYPE_BITMAP; font->get_metric1 = tfm_get_metric1; font->get_metric2 = tfm_get_metric2; font->get_fontbbx1 = tfm_get_fontbbx1; font->get_fontbbx2 = tfm_get_fontbbx2; font->get_bitmap1 = tfm_get_bitmap1; font->get_bitmap2 = tfm_get_bitmap2; font->get_outline = tfm_get_outline; font->get_font_prop = tfm_get_font_prop; font->query_font_type = NULL; font->close = tfm_close; tfm_path = NULL; font_tfm = NULL; ALLOC_IF_ERR(font_tfm, struct s_font_tfm) goto NoMemoryError; font->private = font_tfm; font_tfm->tfm = NULL; font_tfm->font_name = NULL; font_tfm->font_file = NULL; font_tfm->point_size = v_default_point_size; font_tfm->pixel_size = v_default_pixel_size; font_tfm->glyph_style= v_default_glyph_style; font_tfm->dpi_x = v_default_dpi_x; font_tfm->dpi_y = v_default_dpi_y; font_tfm->mag = 1.0; font_tfm->aspect = v_default_aspect; font_tfm->props = NULL; if (implicit == 0){ if (cap_point != NULL) font_tfm->point_size = atof(vf_sexp_get_cstring(cap_point)); if (cap_pixel != NULL) font_tfm->pixel_size = atof(vf_sexp_get_cstring(cap_pixel)); if (cap_glyph_style != NULL){ if (strcmp(vf_sexp_get_cstring(cap_glyph_style), TEX_GLYPH_STYLE_EMPTY_STR) == 0) font_tfm->glyph_style = TEX_GLYPH_STYLE_EMPTY; else if (strcmp(vf_sexp_get_cstring(cap_glyph_style), TEX_GLYPH_STYLE_FILL_STR) == 0) font_tfm->glyph_style = TEX_GLYPH_STYLE_FILL; } if (cap_dpi != NULL) font_tfm->dpi_x = font_tfm->dpi_y = atof(vf_sexp_get_cstring(cap_dpi)); if (cap_mag != NULL) font_tfm->mag = atof(vf_sexp_get_cstring(cap_mag)); if (cap_aspect != NULL) font_tfm->aspect = atof(vf_sexp_get_cstring(cap_aspect)); if (cap_props != NULL) font_tfm->props = cap_props; } if ((font_tfm->font_file = vf_strdup(font_file)) == NULL) goto NoMemoryError; if ((font_tfm->font_name = vf_strdup(font_name)) == NULL) goto NoMemoryError; /* Parse font name. Formats of file names that this routine supports: * "cmr10.300XX" - A "cmr10" font for 300 dpi. * "cmr10.XX" - A "cmr10" font. Dpi value is default value. * "cmr10" - ditto. * ("XX" can be any string such as "pk", "gf", and "tfm".) */ p = vf_index(font_tfm->font_file, '.'); if ((p != NULL) && (isdigit((int)*(p+1)))){ /* "cmr10.300tfm" */ dev_dpi = atoi(p+1); if ((font_tfm->dpi_x < 0) || (font_tfm->dpi_y < 0)){ font_tfm->dpi_x = (double)dev_dpi; font_tfm->dpi_y = (double)dev_dpi; } } else { /* "cmr10" or "cmr10.tfm" */ ; } tfm_path = vf_tex_search_file_tfm(font_tfm->font_file, default_fontdirs, default_extensions); #if 0 printf("* TFM: %s ==> %s\n", font_name, tfm_path); #endif if (tfm_path == NULL) goto Error; font_tfm->tfm = vf_tfm_open(tfm_path); vf_free(tfm_path); if (font_tfm->tfm == NULL) goto Error; if (implicit == 0){ vf_sexp_free2(&cap_ffile, &cap_glyph_style); vf_sexp_free2(&cap_point, &cap_pixel); vf_sexp_free3(&cap_dpi, &cap_mag, &cap_aspect); } return 0; NoMemoryError: vf_error = VF_ERR_NO_MEMORY; Error: if (implicit == 0){ vf_sexp_free2(&cap_ffile, &cap_glyph_style); vf_sexp_free2(&cap_point, &cap_pixel); vf_sexp_free3(&cap_dpi, &cap_mag, &cap_aspect); } tfm_close(font); return -1; } Private int tfm_close(VF_FONT font) { FONT_TFM font_tfm; font_tfm = (FONT_TFM)font->private; if (font_tfm != NULL){ vf_tfm_free(font_tfm->tfm); vf_free(font_tfm->font_name); vf_free(font_tfm->font_file); vf_sexp_free1(&font_tfm->props); vf_free(font_tfm); } return 0; } Private int tfm_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { FONT_TFM font_tfm; TFM tfm; double mx, my, ps, f; if ( (metric == NULL) || ((font_tfm = (FONT_TFM)font->private) == NULL) || ((tfm = font_tfm->tfm) == NULL) ){ fprintf(stderr, "VFlib internal error: tfm_get_metric1()\n"); abort(); } if (vf_tfm_metric(tfm, code_point, metric) == NULL) return -1; if ((ps = font->point_size) < 0) if ((ps = font_tfm->point_size) < 0) ps = -1; if ((ps < 0) || (tfm->design_size < 1.0e-3)){ mx = mag_x * font->mag_x * font_tfm->mag; my = mag_y * font->mag_y * font_tfm->mag; } else { f = ps / tfm->design_size; mx = mag_x * font->mag_x * font_tfm->mag * f; my = mag_y * font->mag_y * font_tfm->mag * f; } metric->bbx_width *= mx; metric->bbx_height *= my; metric->off_x *= mx; metric->off_y *= my; metric->mv_x *= mx; metric->mv_y *= my; return 0; } Private int tfm_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { FONT_TFM font_tfm; TFM tfm; double mx, my, ps, f; if (((font_tfm = (FONT_TFM)font->private) == NULL) || ((tfm = font_tfm->tfm) == NULL) ){ fprintf(stderr, "VFlib internal error: tfm_get_fontbbx1()\n"); abort(); } if ((ps = font->point_size) < 0) if ((ps = font_tfm->point_size) < 0) ps = -1; if ((ps < 0) || (tfm->design_size < 1.0e-3)){ mx = mag_x * font->mag_x * font_tfm->mag; my = mag_y * font->mag_y * font_tfm->mag; } else { f = ps / tfm->design_size; mx = mag_x * font->mag_x * font_tfm->mag * f; my = mag_y * font->mag_y * font_tfm->mag * f; } *w_p = tfm->font_bbx_w * mx; *h_p = tfm->font_bbx_h * my; *xoff_p = tfm->font_bbx_xoff * mx; *yoff_p = tfm->font_bbx_yoff * my; return 0; } Private VF_BITMAP tfm_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_TFM font_tfm; VF_BITMAP bm; double dpi_x, dpi_y; struct vf_s_metric1 met; if ((font_tfm = (FONT_TFM)font->private) == NULL){ fprintf(stderr, "VFlib internal error: tfm_get_bitmap1()\n"); abort(); } if (tfm_get_metric1(font, code_point, &met, mag_x, mag_y) < 0) return NULL; if (((dpi_x = font->dpi_x) < 0) || ((dpi_y = font->dpi_y) < 0)){ if (((dpi_x = font_tfm->dpi_x) < 0) || ((dpi_y = font_tfm->dpi_y) < 0)){ dpi_x = vf_tex_default_dpi(); dpi_y = vf_tex_default_dpi(); } } bm = vf_alloc_bitmap_with_metric1(&met, dpi_x, dpi_y); switch (font_tfm->glyph_style){ default: case TEX_GLYPH_STYLE_EMPTY: break; case TEX_GLYPH_STYLE_FILL: VF_FillBitmap(bm); break; } return bm; } Private VF_OUTLINE tfm_get_outline(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_TFM font_tfm; TFM tfm; VF_OUTLINE ol; double dpi_x, dpi_y, bbx, ps; int size, x1, y1, x2, y2, index; struct vf_s_metric1 met; if ( ((font_tfm = (FONT_TFM)font->private) == NULL) || ((tfm = font_tfm->tfm) == NULL) ){ fprintf(stderr, "VFlib internal error: tfm_get_outline()\n"); abort(); } if (tfm_get_metric1(font, code_point, &met, mag_x, mag_y) < 0) return NULL; if ((ps = font->point_size) < 0) if ((ps = font_tfm->point_size) < 0) ps = tfm->design_size; if (((dpi_x = font->dpi_x) < 0) || ((dpi_y = font->dpi_y) < 0)){ if (((dpi_x = font_tfm->dpi_x) < 0) || ((dpi_y = font_tfm->dpi_y) < 0)){ dpi_x = vf_tex_default_dpi(); dpi_y = vf_tex_default_dpi(); } } if ((bbx = tfm->font_bbx_w) < tfm->font_bbx_h) bbx = tfm->font_bbx_h; size = VF_OL_OUTLINE_HEADER_SIZE_TYPE0 + 6; if ((ol = (VF_OUTLINE)calloc(size, sizeof(VF_OUTLINE_ELEM))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } ol[VF_OL_HEADER_INDEX_HEADER_TYPE] = VF_OL_OUTLINE_HEADER_TYPE0; ol[VF_OL_HEADER_INDEX_DATA_SIZE] = size; ol[VF_OL_HEADER_INDEX_DPI_X] = VF_OL_HEADER_ENCODE(dpi_x); ol[VF_OL_HEADER_INDEX_DPI_Y] = VF_OL_HEADER_ENCODE(dpi_y); ol[VF_OL_HEADER_INDEX_POINT_SIZE] = VF_OL_HEADER_ENCODE(ps); ol[VF_OL_HEADER_INDEX_EM] = VF_OL_COORD_RANGE; ol[VF_OL_HEADER_INDEX_MAX_X] = VF_OL_COORD_RANGE * met.bbx_width/bbx; ol[VF_OL_HEADER_INDEX_MAX_Y] = VF_OL_COORD_RANGE * met.bbx_height/bbx; ol[VF_OL_HEADER_INDEX_REF_X] = VF_OL_COORD_RANGE * (0.0 - met.off_x/bbx); ol[VF_OL_HEADER_INDEX_REF_Y] = VF_OL_COORD_RANGE * met.off_y/bbx; ol[VF_OL_HEADER_INDEX_MV_X] = VF_OL_COORD_RANGE * met.mv_x/bbx; ol[VF_OL_HEADER_INDEX_MV_Y] = VF_OL_COORD_RANGE * met.mv_y/bbx; x1 = VF_OL_COORD_OFFSET + 0; x2 = VF_OL_COORD_OFFSET + VF_OL_COORD_RANGE * met.bbx_width / bbx; y1 = VF_OL_COORD_OFFSET + 0; y2 = VF_OL_COORD_OFFSET + VF_OL_COORD_RANGE * met.bbx_height / bbx; index = VF_OL_OUTLINE_HEADER_SIZE_TYPE0; ol[index++] = VF_OL_INSTR_TOKEN | VF_OL_INSTR_CCWCURV | VF_OL_INSTR_LINE | VF_OL_INSTR_CHAR; ol[index++] = VF_OL_MAKE_XY(x1, y1); ol[index++] = VF_OL_MAKE_XY(x1, y2); ol[index++] = VF_OL_MAKE_XY(x2, y2); ol[index++] = VF_OL_MAKE_XY(x2, y1); ol[index++] = 0L; return ol; } Private int tfm_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { FONT_TFM font_tfm; TFM tfm; struct vf_s_metric1 met1; int ps; double dpi_x, dpi_y, mx, my; if ( (metric == NULL) || ((font_tfm = (FONT_TFM)font->private) == NULL) || ((tfm = font_tfm->tfm) == NULL) ){ fprintf(stderr, "VFlib internal error in tfm_get_metric2()\n"); abort(); } if (vf_tfm_metric(tfm, code_point, &met1) == NULL) return -1; if (((dpi_x = font_tfm->dpi_x) <= 0) || ((dpi_y = font_tfm->dpi_y) <= 0)){ dpi_x = vf_tex_default_dpi(); dpi_y = vf_tex_default_dpi(); } if ((ps = font->pixel_size) < 0) if ((ps = font_tfm->pixel_size) < 0) ps = -1; if ((ps < 0) || (tfm->design_size < 1.0e-3)){ mx = mag_x * font->mag_x * font_tfm->mag * dpi_x / 72.27; my = mag_y * font->mag_y * font_tfm->mag * dpi_y / 72.27; } else { mx = mag_x * font->mag_x * font_tfm->mag * (ps/tfm->design_size); my = mag_y * font->mag_y * font_tfm->mag * (ps/tfm->design_size); } metric->bbx_width = toint(met1.bbx_width * mx); metric->bbx_height = toint(met1.bbx_height * my); metric->off_x = toint(met1.off_x * mx); metric->off_y = toint(met1.off_y * my); metric->mv_x = toint(met1.mv_x * mx); metric->mv_y = toint(met1.mv_y * my); return 0; } Private int tfm_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { FONT_TFM font_tfm; TFM tfm; int ps; double dpi_x, dpi_y, mx, my; if (((font_tfm = (FONT_TFM)font->private) == NULL) || ((tfm = font_tfm->tfm) == NULL) ){ fprintf(stderr, "VFlib internal error in tfm_get_fontbbx2()\n"); abort(); } if (((dpi_x = font_tfm->dpi_x) <= 0) || ((dpi_y = font_tfm->dpi_y) <= 0)){ dpi_x = vf_tex_default_dpi(); dpi_y = vf_tex_default_dpi(); } if ((ps = font->pixel_size) < 0) if ((ps = font_tfm->pixel_size) < 0) ps = -1; if ((ps < 0) || (tfm->design_size < 1.0e-3)){ mx = mag_x * font->mag_x * font_tfm->mag * dpi_x / 72.27; my = mag_y * font->mag_y * font_tfm->mag * dpi_y / 72.27; } else { mx = mag_x * font->mag_x * font_tfm->mag * (ps/tfm->design_size); my = mag_y * font->mag_y * font_tfm->mag * (ps/tfm->design_size); } *w_p = toint(tfm->font_bbx_w * mx); *h_p = toint(tfm->font_bbx_h * my); *xoff_p = toint(tfm->font_bbx_xoff * mx); *yoff_p = toint(tfm->font_bbx_yoff * my); return 0; } Private VF_BITMAP tfm_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_TFM font_tfm; VF_BITMAP bm; struct vf_s_metric2 met; if ((font_tfm = (FONT_TFM)font->private) == NULL){ fprintf(stderr, "VFlib internal error in tfm_get_bitmap2()\n"); abort(); } if (tfm_get_metric2(font, code_point, &met, mag_x, mag_y) < 0) return NULL; bm = vf_alloc_bitmap_with_metric2(&met); switch (font_tfm->glyph_style){ default: case TEX_GLYPH_STYLE_EMPTY: break; case TEX_GLYPH_STYLE_FILL: VF_FillBitmap(bm); break; } return bm; } Private char* tfm_get_font_prop(VF_FONT font, char *prop_name) { FONT_TFM font_tfm; TFM tfm; SEXP v; double ps, dpi_x, dpi_y; char str[256]; if ( ((font_tfm = (FONT_TFM)font->private) == NULL) || ((tfm = font_tfm->tfm) == NULL) ){ fprintf(stderr, "VFlib internal error in tfm_get_font_prop()\n"); abort(); } if ((v = vf_sexp_assoc(prop_name, font_tfm->props)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else if ((v = vf_sexp_assoc(prop_name, default_properties)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else { if (((dpi_x = font->dpi_x)<=0) || ((dpi_y = font->dpi_y)<=0)){ if (((dpi_x = font_tfm->dpi_x)<=0) || ((dpi_y = font_tfm->dpi_y)<=0)){ dpi_x = vf_tex_default_dpi(); dpi_y = vf_tex_default_dpi(); } } #if 0 printf("** %.3f %.3f %.3f %d %.3f %.3f %.3f\n", dpi_x, dpi_y, tfm->design_size, font->pixel_size, font_tfm->pixel_size, font->point_size, font_tfm->point_size); #endif if (font->mode == 1){ if ((ps = font->point_size) < 0) if ((ps = font_tfm->point_size) < 0) ps = tfm->design_size; ps = ps * font->mag_y * font_tfm->mag; if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(ps * 10.0)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps * dpi_y / 72.27)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpi_x)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpi_y)); return vf_strdup(str); } } else if (font->mode == 2){ if (strcmp(prop_name, "POINT_SIZE") == 0){ if ((ps = font->pixel_size) < 0){ if ((ps = font_tfm->pixel_size) < 0){ sprintf(str, "%d", toint(tfm->design_size * 10.0 * font->mag_y * font_tfm->mag)); return vf_strdup(str); } } ps = ps * font->mag_y * font_tfm->mag; sprintf(str, "%d", toint(ps * 10.0 * 72.27 / dpi_y)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ if ((ps = font->pixel_size) < 0) if ((ps = font_tfm->pixel_size) < 0) ps = tfm->design_size * dpi_y / 72.27; ps = ps * font->mag_y * font_tfm->mag; sprintf(str, "%d", toint(ps)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpi_x)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpi_y)); return vf_strdup(str); } } } return NULL; } /*EOF*/ vflib3-3.6.14.dfsg/src/drv_t1.c0000644000175000017500000011534710225354275015436 0ustar mohuramohura/* * drv_t1.c - A font driver for Type 1 fonts with t1ib library. * by Hirotsugu Kakugawa * * 15 Jan 1998 First implementation by T1Lib 0.7.1-beta * 21 Jan 1998 Added type1_get_outline1() using vf_bitmap_to_outline(). * The obtained outline is very ugly but it works, anyway. * 17 Oct 1998 A bug in Get font metric 1 is fixed. * 29 Nov 1998 Changed to use T1Lib 0.8 beta. * 24 Dec 1998 Code for obtaining metrics in mode 1 fonts is fixed. * 28 Dec 1998 Improved not to open the same font file more than once. * 3 May 2001 Improved. * 18 May 2001 Font file names can be given more than one. * 28 Oct 2001 Upgrade to T1Lib 1.3. */ /* * Copyright (C) 1998-2001 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* debug flag in vflibcap (debug capability): * f - font path and font open information * c - code mapping table information (ccv info) * p - code mapping table information (non-ccv info) * m - font metric information * * - everything */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "bitmap.h" #include "cache.h" #include "fsearch.h" #include "path.h" #include "str.h" #include "sexp.h" #include "ccv.h" #include "t1.h" #include "texfonts.h" #include "tfm.h" Private VF_TABLE t1_free_table = NULL; Private SEXP_LIST default_font_dirs; Private SEXP_LIST default_afm_dirs; Private SEXP_LIST default_enc_dirs; Private SEXP_STRING default_point_size; Private double v_default_point_size; Private SEXP_STRING default_pixel_size; Private double v_default_pixel_size; Private SEXP_STRING default_dpi, default_dpi_x, default_dpi_y; Private double v_default_dpi_x, v_default_dpi_y; Private SEXP_STRING default_aspect; Private double v_default_aspect; Private SEXP_ALIST default_properties; Private SEXP_ALIST default_variables; Private SEXP_ALIST default_log_level; Private SEXP_STRING default_debug_mode; Private char *env_debug_mode = NULL; #define DEBUG_ENV_NAME "VFLIB_DEBUG_TYPE1" struct s_font_type1 { char *font_name; char *font_path; int t1fid; char *t1encfile; char **t1encvect; double point_size; double pixel_size; double dpi_x, dpi_y; double aspect; double mag; double slant; int font_number; char *charset_name; char *encoding_name; SEXP props; int ccv_id; double last_extend; char *tfm_name; TFM tfm; }; typedef struct s_font_type1 *FONT_TYPE1; Private int type1_create(VF_FONT,char*,char*,int,SEXP); Private int type1_close(VF_FONT); Private int type1_get_metric1(VF_FONT,long,VF_METRIC1,double,double); Private int type1_get_metric2(VF_FONT,long,VF_METRIC2,double,double); Private int type1_get_fontbbx1(VF_FONT font,double,double, double*,double*,double*,double*); Private int type1_get_fontbbx2(VF_FONT font, double,double, int*,int*,int*,int*); Private VF_BITMAP type1_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP type1_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE type1_get_outline1(VF_FONT,long,double,double); Private char *type1_get_font_prop(VF_FONT,char*); Private int type1_debug(char); Private int log_level(SEXP s); Private int add_file_search_path(int type, SEXP dirs); #define LASTVAL_NONE -10000 #define MODE_METRIC1 1 #define MODE_BITMAP1 2 #define MODE_FONTBBX1 3 #define MODE_OUTLINE 4 #define MODE_METRIC2 5 #define MODE_FONTBBX2 6 #define MODE_BITMAP2 7 struct s_fontbbx1 { double w, h; double xoff, yoff; }; typedef struct s_fontbbx1 *FONTBBX1; struct s_fontbbx2 { int w, h; int xoff, yoff; }; typedef struct s_fontbbx2 *FONTBBX2; Private void* type1_get_xxx(int mode, VF_FONT font, long code_point, double mag_x, double mag_y, VF_METRIC1 metric1, VF_METRIC2 metric2, FONTBBX1 bbx1, FONTBBX2 bbx2); static int Initialized_t1lib = 0; Public int VF_Init_Driver_Type1(void) { int ini_arg, level; struct s_capability_table ct[20]; int z; z = 0; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_font_dirs; /* VF_CAPE_TYPE1_AFM_DIRECTORIES */ ct[z].cap = VF_CAPE_TYPE1_AFM_DIRECTORIES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_afm_dirs; /* VF_CAPE_TYPE1_ENC_DIRECTORIES */ ct[z].cap = VF_CAPE_TYPE1_ENC_DIRECTORIES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_enc_dirs; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_point_size; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_pixel_size; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi; /* VF_CAPE_DPI_X */ ct[z].cap = VF_CAPE_DPI_X; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi_x; /* VF_CAPE_DPI_Y */ ct[z].cap = VF_CAPE_DPI_Y; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi_y; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_aspect; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_TYPE1_LOG_LEVEL */ ct[z].cap = VF_CAPE_TYPE1_LOG_LEVEL; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_log_level; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if ((t1_free_table = vf_table_create()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME, ct, NULL, NULL) == VFLIBCAP_PARSED_ERROR) return -1; env_debug_mode = getenv(DEBUG_ENV_NAME); if (Initialized_t1lib == 0){ T1_SetBitmapPad(8); level = log_level(default_log_level); T1_SetLogLevel(level); ini_arg = ((level > 0) ? LOGFILE : NO_LOGFILE) | IGNORE_CONFIGFILE | IGNORE_FONTDATABASE; if (T1_InitLib(ini_arg) == NULL){ vf_error = VF_ERR_T1LIB_INIT; return -1; } T1_SetFileSearchPath(T1_PFAB_PATH, DIR_T1); T1_SetFileSearchPath(T1_AFM_PATH, DIR_T1); add_file_search_path(T1_AFM_PATH, default_afm_dirs); T1_SetFileSearchPath(T1_ENC_PATH, DIR_T1); add_file_search_path(T1_ENC_PATH, default_enc_dirs); if (type1_debug('f')) { printf("VFlib Type1: Search Path (%d) = %s\n", T1_PFAB_PATH, T1_GetFileSearchPath(T1_PFAB_PATH)); printf("VFlib Type1: Search Path (%d) = %s\n", T1_AFM_PATH, T1_GetFileSearchPath(T1_AFM_PATH)); printf("VFlib Type1: Search Path (%d) = %s\n", T1_ENC_PATH, T1_GetFileSearchPath(T1_ENC_PATH)); } Initialized_t1lib = 1; } v_default_point_size = DEFAULT_POINT_SIZE; if (default_point_size != NULL) v_default_point_size = atof(vf_sexp_get_cstring(default_point_size)); if (v_default_point_size < 0) v_default_point_size = DEFAULT_POINT_SIZE; v_default_pixel_size = DEFAULT_PIXEL_SIZE; if (default_pixel_size != NULL) v_default_pixel_size = atof(vf_sexp_get_cstring(default_pixel_size)); if (v_default_pixel_size < 0) v_default_pixel_size = DEFAULT_PIXEL_SIZE; v_default_dpi_x = TYPE1_DEFAULT_DPI; v_default_dpi_y = TYPE1_DEFAULT_DPI; if (default_dpi != NULL) v_default_dpi_x = v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi)); if (default_dpi_x != NULL) v_default_dpi_x = atof(vf_sexp_get_cstring(default_dpi_x)); if (default_dpi_y != NULL) v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi_y)); if (v_default_dpi_x < 0) v_default_dpi_x = TYPE1_DEFAULT_DPI; if (v_default_dpi_y < 0) v_default_dpi_y = TYPE1_DEFAULT_DPI; v_default_aspect = 1.0; if (default_aspect != NULL) v_default_aspect = atof(vf_sexp_get_cstring(default_aspect)); if (v_default_aspect < 0) v_default_aspect = 1.0; VF_InstallFontDriver(FONTCLASS_NAME, (DRIVER_FUNC_TYPE)type1_create); return 0; } Private int log_level(SEXP s) { char *p; if ( (s == NULL) || (!vf_sexp_stringp(s)) || ((p = vf_sexp_get_cstring(s)) == NULL)){ return -1; } if (vf_strcmp_ci(p, "") == 0) return -1; if (vf_strncmp_ci(p, "NO", 2) == 0) return -1; if (vf_strncmp_ci(p, "ERR", 3) == 0) return T1LOG_ERROR; if (vf_strncmp_ci(p, "WARN", 4) == 0) return T1LOG_WARNING; if (vf_strncmp_ci(p, "STAT", 4) == 0) return T1LOG_STATISTIC; if (vf_strncmp_ci(p, "DEBUG", 5) == 0) return T1LOG_DEBUG; return -1; } Private int add_file_search_path(int type, SEXP dirs) { char *p; SEXP d; if (type == T1_ENC_PATH){ if ((dirs == NULL) || (vf_sexp_null(dirs))){ /* add default directory */ T1_AddToFileSearchPath(T1_ENC_PATH, T1_APPEND_PATH, DIR_T1); T1_AddToFileSearchPath(T1_ENC_PATH, T1_APPEND_PATH, DIR_RUNTIME_SITE_LIB); T1_AddToFileSearchPath(T1_ENC_PATH, T1_APPEND_PATH, DIR_RUNTIME_SITE_LIB "/t1lib"); return 0; } } while (vf_sexp_consp(dirs)){ d = vf_sexp_car(dirs); if (vf_sexp_stringp(d)){ p = vf_sexp_get_cstring(d); if ((p != NULL) && (strcmp(p, "") != 0) && (strcmp(p, "TEXMF") != 0) && (strcmp(p, "KPATHSEA") != 0) && vf_path_directory_read_ok(p)){ #if 0 printf("Path (%d): %s\n", type, p); #endif T1_AddToFileSearchPath(type, T1_APPEND_PATH, p); } } dirs = vf_sexp_cdr(dirs); } return 0; } Private int type1_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_TYPE1 font_type1; char *font_file = NULL, *font_path = NULL; SEXP cap_font, cap_encfile, cap_point, cap_pixel; SEXP cap_dpi, cap_dpi_x, cap_dpi_y, cap_mag, cap_aspect, cap_slant; SEXP cap_charset, cap_encoding, cap_tfm, cap_props; struct s_capability_table ct[20]; int z, val, *ip, i, lk; SEXP s; char *tfm_path; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_FONT_FILE */ ct[z].cap = VF_CAPE_FONT_FILE; ct[z].type = CAPABILITY_STRING_LIST1; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_font; /* VF_CAPE_TYPE1_ENC_VECT */ ct[z].cap = VF_CAPE_TYPE1_ENC_VECT; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_encfile; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_point; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_pixel; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi; /* VF_CAPE_DPI_X */ ct[z].cap = VF_CAPE_DPI_X; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi_x; /* VF_CAPE_DPI_Y */ ct[z].cap = VF_CAPE_DPI_Y; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi_y; /* VF_CAPE_MAG */ ct[z].cap = VF_CAPE_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mag; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_aspect; /* VF_CAPE_SLANT_FACTOR */ ct[z].cap = VF_CAPE_SLANT_FACTOR; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_slant; /* VF_CAPE_CHARSET */ ct[z].cap = VF_CAPE_CHARSET; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_charset; /* VF_CAPE_ENCODING */ ct[z].cap = VF_CAPE_ENCODING; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_encoding; /* VF_CAPE_TYPE1_TFM */ ct[z].cap = VF_CAPE_TYPE1_TFM; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_tfm; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; val = -1; font_type1 = NULL; font_file = NULL; font_path = NULL; if (implicit == 1){ /* implicit font */ font_file = font_name; } else { /* explicit font */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, NULL) < 0) return -1; if (cap_font == NULL){ /* Use font name as font file name if font file name is not given. */ font_file = font_name; } else { font_file = NULL; /* list in 'cap_font' */ } } font->font_type = VF_FONT_TYPE_OUTLINE; font->get_metric1 = type1_get_metric1; font->get_metric2 = type1_get_metric2; font->get_fontbbx1 = type1_get_fontbbx1; font->get_fontbbx2 = type1_get_fontbbx2; font->get_bitmap1 = type1_get_bitmap1; font->get_bitmap2 = type1_get_bitmap2; font->get_outline = type1_get_outline1; font->get_font_prop = type1_get_font_prop; font->query_font_type = NULL; /* Use font->font_type value. */ font->close = type1_close; if (font_file != NULL){ font_path = vf_search_file(font_file, -1, NULL, TRUE, FSEARCH_FORMAT_TYPE_TYPE1, default_font_dirs, NULL, NULL); } else { font_path = NULL; for (s = cap_font; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ font_file = vf_sexp_get_cstring(vf_sexp_car(s)); font_path = vf_search_file(font_file, -1, NULL, TRUE, FSEARCH_FORMAT_TYPE_TYPE1, default_font_dirs, NULL, NULL); if (font_path != NULL) break; } } if (font_path == NULL){ if (type1_debug('f')) printf("VFlib Type1: font file %s not found\n", font_file); vf_error = VF_ERR_NO_FONT_FILE; goto End; } if (type1_debug('f')) printf("VFlib Type1: font file %s\n ==> %s\n", font_file, font_path); ALLOC_IF_ERR(font_type1, struct s_font_type1){ vf_error = VF_ERR_NO_MEMORY; vf_free(font_path); goto End; return -1; } if ((font_type1->font_name = vf_strdup(font_name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; vf_free(font_path); goto End; } font_type1->font_path = font_path; font_type1->t1fid = -1; font_type1->t1encfile = NULL; font_type1->t1encvect = NULL; font_type1->point_size = -1; font_type1->pixel_size = -1; font_type1->mag = 1; font_type1->dpi_x = v_default_dpi_x; font_type1->dpi_y = v_default_dpi_y; font_type1->aspect = v_default_aspect; font_type1->slant = 0; font_type1->charset_name = NULL; font_type1->encoding_name = NULL; font_type1->last_extend = LASTVAL_NONE; font_type1->tfm_name = NULL; font_type1->tfm = NULL; if (implicit == 0){ if (cap_encfile != NULL) font_type1->t1encfile = vf_strdup(vf_sexp_get_cstring(cap_encfile)); if (cap_point != NULL) font_type1->point_size = atof(vf_sexp_get_cstring(cap_point)); if (cap_pixel != NULL) font_type1->pixel_size = atof(vf_sexp_get_cstring(cap_pixel)); if (cap_dpi != NULL) font_type1->dpi_x = font_type1->dpi_y = atof(vf_sexp_get_cstring(cap_dpi)); if (cap_dpi_x != NULL) font_type1->dpi_x = atof(vf_sexp_get_cstring(cap_dpi_x)); if (cap_dpi_y != NULL) font_type1->dpi_y = atof(vf_sexp_get_cstring(cap_dpi_y)); if (cap_mag != NULL) font_type1->mag = atof(vf_sexp_get_cstring(cap_mag)); if (cap_aspect != NULL) font_type1->aspect = atof(vf_sexp_get_cstring(cap_aspect)); if (cap_slant != NULL) font_type1->slant = atof(vf_sexp_get_cstring(cap_slant)); if (cap_charset != NULL) font_type1->charset_name = vf_strdup(vf_sexp_get_cstring(cap_charset)); if (cap_encoding != NULL) font_type1->encoding_name = vf_strdup(vf_sexp_get_cstring(cap_encoding)); if (cap_props != NULL) font_type1->props = cap_props; if (cap_tfm != NULL){ font_type1->tfm_name = vf_strdup(vf_sexp_get_cstring(cap_tfm)); } } if (type1_debug('f')) printf("VFlib Type1: opening font: %s\n", font_name); i = (t1_free_table->get_id_by_key)(t1_free_table, font_type1->font_path, strlen(font_type1->font_path)+1); if (i >= 0){ ip = (t1_free_table->get_obj_by_id)(t1_free_table, i); font_type1->t1fid = *ip; lk = (t1_free_table->unlink_by_id)(t1_free_table, i); if (lk == 0) vf_free(ip); } else { if (type1_debug('f')) printf("VFlib Type1: T1_AddFont(%s)\n", font_type1->font_path); if ((font_type1->t1fid = T1_AddFont(font_type1->font_path)) < 0){ fprintf(stderr, "VFlib Type1: cannot add file: %s\n", font_type1->font_path); vf_error = VF_ERR_NO_FONT_FILE; goto End; } } if (type1_debug('f')) printf("VFlib Type1: T1_LoadFont(%d)\n", font_type1->t1fid); if (T1_LoadFont(font_type1->t1fid) < 0){ fprintf(stderr, "VFlib Type1: cannot load file: %s\n", font_type1->font_path); vf_error = VF_ERR_NO_FONT_FILE; goto End; } if (font_type1->t1encfile != NULL){ font_type1->t1encvect = T1_LoadEncoding(font_type1->t1encfile); if (font_type1->t1encvect == NULL){ fprintf(stderr, "VFlib Type1: cannot load encoding vector: %s\n", font_type1->t1encfile); vf_error = VF_ERR_NO_FONT_FILE; goto End; } if (type1_debug('f')) printf("VFlib Type1: use encoding vector: %s\n", font_type1->t1encfile); if (T1_ReencodeFont(font_type1->t1fid, font_type1->t1encvect) < 0){ fprintf(stderr, "VFlib Type1: failed to reencode font: %s, %s\n", font_type1->font_path, font_type1->t1encfile); goto End; } } else { font_type1->t1encvect = NULL; if (T1_ReencodeFont(font_type1->t1fid, NULL) < 0){ goto End; } } if (T1_SlantFont(font_type1->t1fid, font_type1->slant) < 0){ fprintf(stderr, "VFlib Type1: failed slanting: %s, %.3f\n", font_type1->font_path, font_type1->slant); goto End; } if (T1_ExtendFont(font_type1->t1fid, font_type1->aspect) < 0){ fprintf(stderr, "VFlib Type1: failed extending: %s, %.3f\n", font_type1->font_path, font_type1->aspect); goto End; } if (type1_debug('f')){ printf("VFlib Type1: t1lib font id %d, name=%s\n", font_type1->t1fid, T1_GetFontName(font_type1->t1fid)); } if (font_type1->tfm_name != NULL){ if (type1_debug('t')) printf("VFlib Type1: TFM file=%s\n", font_type1->tfm_name); tfm_path = vf_tex_search_file_tfm(font_type1->tfm_name, NULL, NULL); if (tfm_path == NULL){ vf_error = VF_ERR_NO_FONT_FILE; goto End; } if (type1_debug('t')) printf("VFlib Type1: TFM path=%s\n", tfm_path); font_type1->tfm = vf_tfm_open(tfm_path); vf_free(tfm_path); if (font_type1->tfm == NULL){ fprintf(stderr, "VFlib: Cannot open TFM %s for font %s\n", font_type1->tfm_name, font_file); vf_error = VF_ERR_NO_FONT_FILE; goto End; } } #if 1 /*** NO SUPPORT FOR CCV **/ font_type1->ccv_id = -1; #else font_type1->ccv_id = vf_ccv_require(charset, encoding, font_charset, font_encoding); if (type1_debug('c')) printf("VFlib Type1: CCV ID = %d\n", ccv_id); #endif /* OK */ font->private = font_type1; val = 0; End: if (implicit == 0){ /* explicit font */ vf_sexp_free4(&cap_font, &cap_encfile, &cap_point, &cap_pixel); vf_sexp_free3(&cap_dpi, &cap_dpi_x, &cap_dpi_y); vf_sexp_free3(&cap_mag, &cap_aspect, &cap_slant); vf_sexp_free3(&cap_charset, &cap_encoding, &cap_tfm); vf_sexp_free1(&cap_props); } if (val < 0){ type1_close(font); } return val; } Private int type1_close(VF_FONT font) { FONT_TYPE1 font_type1; int *ip; font_type1 = (FONT_TYPE1)font->private; if (font_type1 != NULL){ if (font_type1->t1fid >= 0){ ALLOC_IF_ERR(ip, int){ goto err; } *ip = font_type1->t1fid; (t1_free_table->put2)(t1_free_table, ip, font_type1->font_path, strlen(font_type1->font_path)+1); } err: vf_sexp_free(&font_type1->props); vf_free(font_type1->font_name); vf_free(font_type1->font_path); vf_free(font_type1->charset_name); vf_free(font_type1->encoding_name); vf_free(font_type1->tfm_name); vf_tfm_free(font_type1->tfm); vf_free(font_type1->t1encfile); if (font_type1->t1encvect != NULL) T1_DeleteEncoding(font_type1->t1encvect); if (font_type1->t1fid >= 0) T1_DeleteFont(font_type1->t1fid); vf_free(font_type1); } return 0; } Private int type1_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { if (type1_get_xxx(MODE_METRIC1, font, code_point, mag_x, mag_y, metric, NULL, NULL, NULL) == NULL) return -1; return 0; } Private int type1_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { struct s_fontbbx1 bbx1; if (type1_get_xxx(MODE_FONTBBX1, font, -1, mag_x, mag_y, NULL, NULL, &bbx1, NULL) == NULL) return -1; *w_p = bbx1.w; *h_p = bbx1.h; *xoff_p = bbx1.xoff; *yoff_p = bbx1.yoff; return 0; } Private VF_BITMAP type1_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { VF_BITMAP bm; #if 0 FONT_TYPE1 font_type1; struct vf_s_metric1 met; long w, h; double dpix, dpiy; #endif bm = (VF_BITMAP)type1_get_xxx(MODE_BITMAP1, font, code_point, mag_x, mag_y, NULL, NULL, NULL, NULL); #if 0 if (bm == NULL){ if (type1_get_xxx(MODE_METRIC1, font, code_point, mag_x, mag_y, &met, NULL, NULL, NULL) == NULL) return NULL; font_type1 = (FONT_TYPE1)font->private; if (((dpix = font->dpi_x) < 0) || ((dpiy = font->dpi_y) < 0)){ dpix = font_type1->dpi_x; dpiy = font_type1->dpi_y; } w = met.bbx_width * dpix; h = met.bbx_height * dpiy; bm = vf_alloc_bitmap(w, h); bm->off_x = met.bbx_width * dpix; bm->off_y = met.bbx_height * dpiy; bm->mv_x = met.mv_x * dpix; bm->mv_y = met.mv_y * dpiy; } #endif return bm; } Private VF_OUTLINE type1_get_outline1(VF_FONT font, long code_point, double mag_x, double mag_y) { VF_OUTLINE ol; ol = type1_get_xxx(MODE_OUTLINE, font, code_point, mag_x, mag_y, NULL, NULL, NULL, NULL); return ol; } Private int type1_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { if (type1_get_xxx(MODE_METRIC2, font, code_point, mag_x, mag_y, NULL, metric, NULL, NULL) == NULL) return -1; return 0; } Private int type1_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { struct s_fontbbx2 bbx2; if (type1_get_xxx(MODE_FONTBBX2, font, -1, mag_x, mag_y, NULL, NULL, NULL, &bbx2) == NULL) return -1; *w_p = bbx2.w; *h_p = bbx2.h; *xoff_p = bbx2.xoff; *yoff_p = bbx2.yoff; return 0; } Private VF_BITMAP type1_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { VF_BITMAP bm; #if 0 struct vf_s_metric2 met; #endif bm = (VF_BITMAP)type1_get_xxx(MODE_BITMAP2, font, code_point, mag_x, mag_y, NULL, NULL, NULL, NULL); #if 0 if (bm == NULL){ if (type1_get_xxx(MODE_METRIC2, font, code_point, mag_x, mag_y, NULL, &met, NULL, NULL) == NULL){ return NULL; } bm = vf_alloc_bitmap(met.bbx_width, met.bbx_height); bm->off_x = met.bbx_width; bm->off_y = met.bbx_height; bm->mv_x = met.mv_x; bm->mv_y = met.mv_y; } #endif return bm; } Private void mag_factor(VF_FONT font, FONT_TYPE1 font_type1, double mag_x, double mag_y, double ps0, double *mx, double *my, double *asp, double *ps) { *mx = mag_x * font_type1->mag * font->mag_x; *my = mag_y * font_type1->mag * font->mag_y; *asp = v_default_aspect * font_type1->aspect * (*mx / *my); if (*asp < 0) *asp = 0.0 - *asp; *ps = ps0 * *my; if (type1_debug('x')) printf("VFlib Type1: asp=%.3f mx=%.3f my=%.3f\n", *asp, *mx, *my); if (type1_debug('p')) printf("VFlib Type1: ps=%.3f ps0=%.3f\n", *ps, ps0); } Private void* type1_get_xxx(int mode, VF_FONT font, long code_point, double mag_x, double mag_y, VF_METRIC1 metric1, VF_METRIC2 metric2, FONTBBX1 bbx1, FONTBBX2 bbx2) { void *val; FONT_TYPE1 font_type1; VF_BITMAP bm; GLYPH *t1_glyph; BBox bbox; long cp; int x, y, w, f_bbx_w, f_bbx_h, i; BBox font_bbox; T1_TMATRIX unity_matrix = {1.0, 0.0, 0.0, 1.0}; T1_TMATRIX matrix; double ps = 0.0, ps0 = 0.0, mx, my, asp, dpix = 0.0, dpiy = 0.0; unsigned char *p; static double last_dpix = LASTVAL_NONE; static double last_dpiy = LASTVAL_NONE; /* a table for LSB-MSB exchange for 4 bits */ static unsigned char EXCHG_MLSB4[] = { 0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe, 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf }; /* * 0000 1000 0100 1100 0010 1010 0110 1110 exchanged * 0001 1001 0101 1101 0011 1011 0111 1111 * <=== * 0000 0001 0010 0011 0100 0101 0110 0111 original * 1000 1001 1010 1011 1100 1101 1110 1111 */ if ((font_type1 = (FONT_TYPE1)font->private) == NULL){ fprintf(stderr, "VFlib: internal error in type1_get_xxx() 1\n"); abort(); } if ( (mode == MODE_METRIC1) || (mode == MODE_FONTBBX1) || (mode == MODE_BITMAP1) || (mode == MODE_OUTLINE)){ if (((dpix = font->dpi_x) < 0) || ((dpiy = font->dpi_y) < 0)){ dpix = font_type1->dpi_x; dpiy = font_type1->dpi_y; } if ((ps0 = font->point_size) < 0) if ((ps0 = font_type1->point_size) < 0) ps0 = v_default_point_size; } else if ( (mode == MODE_METRIC2) || (mode == MODE_FONTBBX2) || (mode == MODE_BITMAP2)){ dpix = TYPE1_POINTS_PER_INCH; dpiy = TYPE1_POINTS_PER_INCH; if ((ps0 = font->pixel_size) < 0) if ((ps0 = font_type1->pixel_size) < 0) ps0 = v_default_pixel_size; } else { fprintf(stderr, "VFlib: internal error in type1_get_xxx() 2\n"); abort(); } mag_factor(font, font_type1, mag_x, mag_y, ps0, &mx, &my, &asp, &ps); #if 0 mx = mag_x * font_type1->mag * font->mag_x; my = mag_y * font_type1->mag * font->mag_y; asp = v_default_aspect * font_type1->aspect * (mx / my); if (asp < 0) asp = 0.0 - asp; ps = ps0 * my; #endif if (ps0 < 0) ps0 = 0.0 - ps0; if (ps < 0) ps = 0.0 - ps; if ((last_dpix != dpix) || (last_dpiy != dpiy)){ for (i = 0; i < T1_GetNoFonts(); i++) T1_DeleteAllSizes(i); if (T1_SetDeviceResolutions((float)dpix, (float)dpiy) < 0){ last_dpix = LASTVAL_NONE; last_dpiy = LASTVAL_NONE; vf_error = VF_ERR_NO_GLYPH; return NULL; } if (type1_debug('r')) printf("T1_SetDeviceResolutions %.3f %.3f\n", dpix, dpiy); last_dpix = dpix; last_dpiy = dpiy; } if ((mode == MODE_FONTBBX1) || (mode == MODE_FONTBBX2)){ cp = -1; } else { if (font_type1->ccv_id < 0){ cp = code_point; } else { cp = vf_ccv_conv(font_type1->ccv_id, code_point); if (type1_debug('c')) printf("VFlib Type1: CCV 0x%lx => 0x%lx\n", code_point, cp); } if (cp < 0) return NULL; if (type1_debug('m')){ if (cp >= 0){ bbox = T1_GetCharBBox(font_type1->t1fid, (char)(cp%256)); printf("T1_CharBBox %ld (0x%lx) => ", (cp%256), cp); printf(" llx=%d, lly=%d, urx=%d ury=%d\n", bbox.llx, bbox.lly, bbox.urx, bbox.ury); } } } cp = cp % 256; val = NULL; if ( (mode == MODE_BITMAP1) || (mode == MODE_BITMAP2) || (mode == MODE_OUTLINE) ){ matrix.cxx = asp; matrix.cxy = 0.0; matrix.cyx = 0.0; matrix.cyy = 1.0; t1_glyph = T1_SetChar(font_type1->t1fid, (char)cp, (float)ps, &matrix); if (type1_debug('s')) printf("T1_SetChar fid=%d, 0x%02x, ps=%.3f, asp=%.2f mx=%.2f my=%.2f\n", font_type1->t1fid, (unsigned int)cp, ps, asp, mx, my); if (t1_glyph == NULL){ vf_error = VF_ERR_NO_GLYPH; return NULL; } { int bbxw = t1_glyph->metrics.rightSideBearing-t1_glyph->metrics.leftSideBearing; int bbxh = t1_glyph->metrics.ascent - t1_glyph->metrics.descent; if (t1_glyph->bits == NULL){ bm = vf_alloc_bitmap(bbxw, bbxh); } else { ALLOC_IF_ERR(bm, struct vf_s_bitmap){ vf_error = VF_ERR_NO_MEMORY; return NULL; } bm->bbx_width = bbxw; bm->bbx_height = bbxh; bm->raster = (bm->bbx_width + 7) / 8; bm->bitmap = (unsigned char*)t1_glyph->bits; t1_glyph->bits = NULL; for (y = 0; y < bm->bbx_height; y++){ p = &bm->bitmap[y*bm->raster]; for (x = 0; x < bm->raster; x++, p++) *p = ((EXCHG_MLSB4[(*p)&0x0f]) << 4) | EXCHG_MLSB4[(*p) >> 4]; } } bm->off_x = t1_glyph->metrics.leftSideBearing; bm->off_y = t1_glyph->metrics.ascent; bm->mv_x = t1_glyph->metrics.advanceX; bm->mv_y = t1_glyph->metrics.advanceY; } if ((mode == MODE_BITMAP1) || (mode == MODE_BITMAP2)){ val = (void*) bm; } else if (mode == MODE_OUTLINE){ font_bbox = T1_GetFontBBox(font_type1->t1fid); if ( (font_bbox.urx == 0) && (font_bbox.llx == 0) && (font_bbox.ury == 0) && (font_bbox.lly == 0) ){ bbox = T1_GetCharBBox(font_type1->t1fid, (char)cp); f_bbx_w = bbox.urx - bbox.llx; f_bbx_h = bbox.ury - bbox.lly; } else { f_bbx_w = font_bbox.urx - font_bbox.llx; f_bbx_h = font_bbox.ury - font_bbox.lly; } f_bbx_w = (f_bbx_w * ps / 1000.0) * dpix / TYPE1_POINTS_PER_INCH; f_bbx_h = (f_bbx_h * ps / 1000.0) * dpiy / TYPE1_POINTS_PER_INCH; val = (void*) vf_bitmap_to_outline(bm, f_bbx_w, f_bbx_h, dpix, dpiy, ps0, mx, my); VF_FreeBitmap(bm); } else { fprintf(stderr, "VFlib: internal error in type1_get_xxx() 3\n"); abort(); } } else if (mode == MODE_METRIC1){ if (font_type1->tfm == NULL) { w = T1_GetCharWidth(font_type1->t1fid, (char)cp); if (w == 0){ vf_error = VF_ERR_NO_GLYPH; return NULL; } bbox = T1_GetCharBBox(font_type1->t1fid, (char)cp); if (metric1 != NULL){ mx *= ps / 1000.0; my *= ps / 1000.0; metric1->bbx_width = (double)(bbox.urx - bbox.llx) * mx; metric1->bbx_height = (double)(bbox.ury - bbox.lly) * my; metric1->off_x = (double)(bbox.llx) * mx; metric1->off_y = (double)(bbox.ury) * my; metric1->mv_x = (double)(w) * mx; metric1->mv_y = (double)(0) * my; } } else { struct vf_s_metric1 m1; if (type1_debug('t')){ printf("VFlib Type1 ps=%.2f ps0=%.2f ds=%.2f\n", ps, ps0, font_type1->tfm->design_size); } m1.mv_x = 0; vf_tfm_metric(font_type1->tfm, cp, &m1); if (metric1 != NULL){ metric1->bbx_width = (double)(m1.bbx_width) * mx; metric1->bbx_height = (double)(m1.bbx_height) * my; metric1->off_x = (double)(m1.off_x) * mx; metric1->off_y = (double)(m1.off_y) * my; metric1->mv_x = (double)(m1.mv_x) * mx; metric1->mv_y = (double)(m1.mv_y) * my; } } if (metric1 != NULL) val = (void*) metric1; } else if (mode == MODE_METRIC2){ t1_glyph = T1_SetChar(font_type1->t1fid, (char)cp, (float)ps, &unity_matrix); if (t1_glyph == NULL){ vf_error = VF_ERR_NO_GLYPH; return NULL; } if (metric2 != NULL){ metric2->bbx_width = t1_glyph->metrics.rightSideBearing - t1_glyph->metrics.leftSideBearing; metric2->bbx_height = t1_glyph->metrics.ascent - t1_glyph->metrics.descent; metric2->off_x = t1_glyph->metrics.leftSideBearing; metric2->off_y = t1_glyph->metrics.ascent; metric2->mv_x = t1_glyph->metrics.advanceX; metric2->mv_y = t1_glyph->metrics.advanceY; } val = (void*) metric2; } else if (mode == MODE_FONTBBX1){ font_bbox = T1_GetFontBBox(font_type1->t1fid); if (type1_debug('m')) printf("T1_GetFontBBox: urx=%d, ury=%d, llx=%d, lly=%d, x=%.3f\n", font_bbox.urx, font_bbox.ury, font_bbox.llx, font_bbox.lly,ps); f_bbx_w = font_bbox.urx - font_bbox.llx; f_bbx_h = font_bbox.ury - font_bbox.lly; if (bbx1 != NULL){ bbx1->w = f_bbx_w * ps / 1000.0; bbx1->h = f_bbx_h * ps / 1000.0; bbx1->xoff = font_bbox.llx * ps / 1000.0; bbx1->yoff = font_bbox.lly * ps / 1000.0; } val = (void*) bbx1; } else if (mode == MODE_FONTBBX2){ font_bbox = T1_GetFontBBox(font_type1->t1fid); if (type1_debug('m')) printf("T1_GetFontBBox: urx=%d, ury=%d, llx=%d, lly=%d, x=%.3f\n", font_bbox.urx, font_bbox.ury, font_bbox.llx, font_bbox.lly, ps); f_bbx_w = font_bbox.urx - font_bbox.llx; f_bbx_h = font_bbox.ury - font_bbox.lly; if (bbx2 != NULL){ bbx2->w = f_bbx_w * ps / 1000.0; bbx2->h = f_bbx_h * ps / 1000.0; bbx2->xoff = font_bbox.llx * ps / 1000.0; bbx2->yoff = font_bbox.lly * ps / 1000.0; } val = (void*) bbx2; } else { fprintf(stderr, "VFlib: internal error in type1_get_xxx() 4\n"); fprintf(stderr, "Unknown mode: %d\n", mode); abort(); } return val; } Private char* type1_get_font_prop(VF_FONT font, char *prop_name) { /* CALLER MUST RELEASE RETURNED STRING LATER */ SEXP v; FONT_TYPE1 font_type1; char str[512], *s; double dpix, dpiy, p; if ((font_type1 = (FONT_TYPE1)font->private) == NULL){ fprintf(stderr, "VFlib: internal error in type1_get_font_prop()\n"); abort(); } if ((v = vf_sexp_assoc(prop_name, font_type1->props)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else if ((v = vf_sexp_assoc(prop_name, default_properties)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } if (font->mode == 1){ if ((dpix = font->dpi_x) < 0) if ((dpix = font_type1->dpi_x) < 0) dpix = v_default_dpi_x; if ((dpiy = font->dpi_y) < 0) if ((dpiy = font_type1->dpi_y) < 0) dpiy = v_default_dpi_y; if ((p = font->point_size) < 0) if ((p = font_type1->point_size) < 0) p = v_default_point_size; p = p * font->mag_y * font_type1->mag; if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(p * 10.0)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(p * dpiy / TYPE1_POINTS_PER_INCH)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpix)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpiy)); return vf_strdup(str); } } else if (font->mode == 2){ if ((p = font->pixel_size) < 0) if ((p = font_type1->pixel_size) < 0) p = v_default_pixel_size; p = p * font->mag_y * font_type1->mag; if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(p * 10.0 * TYPE1_POINTS_PER_INCH / TYPE1_DEFAULT_DPI)); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(p)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(TYPE1_DEFAULT_DPI)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(TYPE1_DEFAULT_DPI)); return vf_strdup(str); } } if ((strcmp(prop_name, "FONT_NAME") == 0) || (strcmp(prop_name, "FontName") == 0)){ if ((s = T1_GetFontName(font_type1->t1fid))!= NULL) return vf_strdup(s); } else if ((strcmp(prop_name, "FULL_NAME") == 0) || (strcmp(prop_name, "FullName") == 0)){ if ((s = T1_GetFullName(font_type1->t1fid))!= NULL) return vf_strdup(s); } else if ((strcmp(prop_name, "FAMILY_NAME") == 0) || (strcmp(prop_name, "FamilyName") == 0)){ if ((s = T1_GetFamilyName(font_type1->t1fid))!= NULL) return vf_strdup(s); } else if ((strcmp(prop_name, "WEIGHT_NAME") == 0) || (strcmp(prop_name, "WEIGHT") == 0) || (strcmp(prop_name, "Weight") == 0)){ if ((s = T1_GetWeight(font_type1->t1fid))!= NULL) return vf_strdup(s); } #if 0 if (strcmp(prop_name, "FONT_ASCENT") == 0){ ; } else if (strcmp(prop_name, "FONT_DESCENT") == 0){ ; } #endif return NULL; } Private int type1_debug2(char type, char *str); Private int type1_debug(char type) { int v; char *p0; v = FALSE; if (env_debug_mode != NULL){ if ((v = type1_debug2(type, env_debug_mode)) == TRUE) return TRUE; } if (default_debug_mode == NULL) return FALSE; if ((p0 = vf_sexp_get_cstring(default_debug_mode)) == NULL) return FALSE; return type1_debug2(type, p0); } Private int type1_debug2(char type, char *p0) { char *p; for (p = p0; *p != '\0'; p++){ if (*p == type) return TRUE; } for (p = p0; *p != '\0'; p++){ if (*p == '*') return TRUE; } return FALSE; } /*EOF*/ vflib3-3.6.14.dfsg/src/drv_vf.c0000644000175000017500000005132707363522226015524 0ustar mohuramohura/* * drv_vf.c - A font driver for vf (virtual font) format fonts. * by Hirotsugu Kakugawa * * 30 Jan 1997 First implementation. * 7 Aug 1997 VFlib 3.3 Changed API. * 2 Feb 1998 VFlib 3.4 * 21 Apr 1998 Debugged get_font_prop(). * 24 Nov 1998 Added get_fontbbx1() and get_fontbbx2(). * 16 Sep 1999 Bug fixed. * */ /* * Copyright (C) 1997-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* debug flag in vflibcap (debug capability): * f - print font file path * s - print subfont information * d - trace dvi instruction execution * * - everything */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "vflibcap.h" #include "bitmap.h" #include "metric.h" #include "bmlist.h" #include "cache.h" #include "str.h" #include "path.h" #include "fsearch.h" #include "sexp.h" #include "texfonts.h" #include "tfm.h" #include "vf.h" struct s_font_vf { int vf_id; char *font_file; char *font_name; double point_size; int pixel_size; int open_style; int glyph_style; double mag; double dpi_x, dpi_y; SEXP props; }; typedef struct s_font_vf *FONT_VF; Private SEXP_LIST default_fontdirs = NULL; Private SEXP_LIST default_extensions = NULL; Private SEXP_LIST default_tfm_dirs = NULL; Private SEXP_LIST default_tfm_extensions = NULL; Private SEXP default_font_mapping = NULL; Private SEXP_STRING default_glyph_style = NULL; Private int v_default_glyph_style = TEX_GLYPH_STYLE_DEFAULT; Private SEXP_STRING default_open_style = NULL; Private int v_default_open_style = TEX_OPEN_STYLE_DEFAULT; Private SEXP_STRING default_point_size = NULL; Private double v_default_point_size = -1; Private SEXP_STRING default_pixel_size = NULL; Private double v_default_pixel_size = -1; Private SEXP_STRING default_dpi = NULL; Private double v_default_dpi_x = DEFAULT_DPI; Private double v_default_dpi_y = DEFAULT_DPI; Private SEXP_ALIST default_properties = NULL; Private SEXP_ALIST default_variables = NULL; Private SEXP_STRING default_debug_mode = NULL; Private int vf_create(VF_FONT,char*,char*,int,SEXP); Private int vf_close(VF_FONT); Private int vf_get_metric1(VF_FONT,long,VF_METRIC1,double,double); Private int vf_get_metric2(VF_FONT,long,VF_METRIC2,double,double); Private int vf_get_fontbbx1(VF_FONT,double,double, double*,double*,double*,double*); Private int vf_get_fontbbx2(VF_FONT,double,double, int*,int*,int*,int*); Private VF_BITMAP vf_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP vf_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE vf_get_outline(VF_FONT,long,double,double); Private char* vf_get_font_prop(VF_FONT,char*); Private void calc_mag_2(VF_FONT,FONT_VF, double mag_x, double mag_y, double *mx_p, double *my_p); Private int vf_debug(char type); Private int vf_vf_init(void); Private int vf_vf_open(VF_FONT font, FONT_VF font_vf, int implicit); Private void vf_vf_close(int); Private VF_BITMAP vf_vf_get_bitmap(int,int,long,double,double,int,int); Private int vf_vf_get_metric(int,long,VF_METRIC1,double*); Private double vf_vf_get_design_size(int); Private VF vf_vf_get_vf(int); Public int VF_Init_Driver_VF(void) { struct s_capability_table ct[20]; int z; z = 0; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_fontdirs; /* VF_CAPE_EXTENSIONS */ ct[z].cap = VF_CAPE_EXTENSIONS; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_extensions; /* VF_CAPE_TEX_TFM_DIRECTORIES */ ct[z].cap = VF_CAPE_TEX_TFM_DIRECTORIES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_tfm_dirs; /* VF_CAPE_TEX_TFM_EXTENSIONS */ ct[z].cap = VF_CAPE_TEX_TFM_EXTENSIONS; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_tfm_extensions; /* VF_CAPE_TEX_FONT_MAPPING */ ct[z].cap = VF_CAPE_TEX_FONT_MAPPING; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_font_mapping; /* VF_CAPE_TEX_GLYPH_STYLE */ ct[z].cap = VF_CAPE_TEX_GLYPH_STYLE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_glyph_style; /* VF_CAPE_TEX_OPEN_STYLE */ ct[z].cap = VF_CAPE_TEX_OPEN_STYLE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_open_style; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_point_size; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_pixel_size; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_tex_init() < 0) return -1; if (vf_tfm_init() < 0) return -1; if (vf_vf_init() < 0) return -1; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME_VF, ct, vf_tex_default_variables, NULL) == VFLIBCAP_PARSED_ERROR) return -1; if (default_extensions == NULL) default_extensions = vf_sexp_cstring2list(DEFAULT_EXTENSIONS_VF); if (default_font_mapping != NULL){ if (vf_tex_syntax_check_font_mapping(default_font_mapping) > 0){ vf_sexp_free(&default_font_mapping); fprintf(stderr, "VFlib: capability %s is ignored because of syntax error.\n", VF_CAPE_TEX_FONT_MAPPING); } } v_default_glyph_style = TEX_GLYPH_STYLE_DEFAULT; if (default_glyph_style != NULL) v_default_glyph_style = vf_tex_parse_glyph_style(vf_sexp_get_cstring(default_glyph_style), TEX_GLYPH_STYLE_DEFAULT); v_default_open_style = TEX_OPEN_STYLE_DEFAULT; if (default_open_style != NULL) v_default_open_style = vf_tex_parse_open_style(vf_sexp_get_cstring(default_open_style), TEX_OPEN_STYLE_DEFAULT); if (default_point_size != NULL) v_default_point_size = atof(vf_sexp_get_cstring(default_point_size)); if (default_pixel_size != NULL) v_default_pixel_size = atof(vf_sexp_get_cstring(default_pixel_size)); v_default_dpi_x = DEFAULT_DPI; v_default_dpi_y = DEFAULT_DPI; if (default_dpi != NULL) v_default_dpi_x = v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi)); VF_InstallFontDriver(FONTCLASS_NAME_VF, (DRIVER_FUNC_TYPE)vf_create); return 0; } Private int vf_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_VF font_vf; char *font_file; int val; SEXP cap_ffile, cap_point, cap_pixel, cap_mag, cap_dpi, cap_props; struct s_capability_table ct[10]; int z; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_FONT_FILE */ ct[z].cap = VF_CAPE_FONT_FILE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ffile; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_point; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_pixel; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi; /* VF_CAPE_MAG */ ct[z].cap = VF_CAPE_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mag; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; val = -1; font_vf = NULL; if (implicit == 1){ /* implicit font */ font_file = font_name; } else { /* explicit font */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, vf_tex_default_variables) == VFLIBCAP_PARSED_ERROR) return -1; if (cap_ffile == NULL){ /* Use font name as font file name if font file name is not given. */ font_file = font_name; } else { font_file = vf_sexp_get_cstring(cap_ffile); } } font->font_type = VF_FONT_TYPE_BITMAP; font->get_metric1 = vf_get_metric1; font->get_metric2 = vf_get_metric2; font->get_fontbbx1 = vf_get_fontbbx1; font->get_fontbbx2 = vf_get_fontbbx2; font->get_bitmap1 = vf_get_bitmap1; font->get_bitmap2 = vf_get_bitmap2; font->get_outline = vf_get_outline; font->get_font_prop = vf_get_font_prop; font->query_font_type = NULL; font->close = vf_close; ALLOC_IF_ERR(font_vf, struct s_font_vf) goto NoMemoryError; font_vf->vf_id = -1; font_vf->font_name = NULL; font_vf->font_file = NULL; font_vf->open_style = v_default_open_style; font_vf->glyph_style = v_default_glyph_style; font_vf->point_size = v_default_point_size; font_vf->pixel_size = v_default_pixel_size; font_vf->mag = 1.0; font_vf->dpi_x = v_default_dpi_x; font_vf->dpi_y = v_default_dpi_y; font_vf->props = NULL; if (implicit == 0){ if (cap_point != NULL) font_vf->point_size = atof(vf_sexp_get_cstring(cap_point)); if (cap_pixel != NULL) font_vf->pixel_size = atof(vf_sexp_get_cstring(cap_pixel)); if (cap_dpi != NULL) font_vf->dpi_x = font_vf->dpi_y = atof(vf_sexp_get_cstring(cap_dpi)); if (cap_mag != NULL) font_vf->mag = atof(vf_sexp_get_cstring(cap_mag)); if (cap_props != NULL) font_vf->props = cap_props; } if ((font_vf->font_file = vf_strdup(font_file)) == NULL) goto NoMemoryError; if ((font_vf->font_name = vf_strdup(font_name)) == NULL) goto NoMemoryError; if ((font_vf->vf_id = vf_vf_open(font, font_vf, implicit)) < 0) goto Error; font->private = font_vf; val = 0; goto End; NoMemoryError: vf_error = VF_ERR_NO_MEMORY; Error: if (font_vf != NULL){ vf_free(font_vf->font_name); vf_free(font_vf->font_file); vf_sexp_free1(&font_vf->props); } vf_free(font_vf); End: if (implicit == 0){ vf_sexp_free3(&cap_ffile, &cap_point, &cap_pixel); vf_sexp_free2(&cap_mag, &cap_dpi); } return val; } Private int vf_close(VF_FONT font) { FONT_VF font_vf; font_vf = (FONT_VF)font->private; if (font_vf != NULL){ vf_vf_close(font_vf->vf_id); vf_free(font_vf->font_name); vf_free(font_vf->font_file); vf_sexp_free1(&font_vf->props); vf_free(font_vf); } return 0; } Private int vf_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { FONT_VF font_vf; double mx, my, ps, design_size; if (metric == NULL){ fprintf(stderr, "VFlib internal error: in vf_get_metric1()\n"); abort(); } if ((font_vf = (FONT_VF)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in vf_get_metric1()\n"); abort(); } if (vf_vf_get_metric(font_vf->vf_id, code_point, metric, &design_size) < 0) return -1; if ((ps = font->point_size) < 0) if ((ps = font_vf->point_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ mx = mag_x * font->mag_x * font_vf->mag; my = mag_y * font->mag_y * font_vf->mag; } else { mx = mag_x * font->mag_x * font_vf->mag * (ps/design_size); my = mag_y * font->mag_y * font_vf->mag * (ps/design_size); } metric->bbx_width *= mx; metric->bbx_height *= my; metric->off_x *= mx; metric->off_y *= my; metric->mv_x *= mx; metric->mv_y *= my; return 0; } Private int vf_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { FONT_VF font_vf; VF vf; double mx, my, ps, design_size; if ((font_vf = (FONT_VF)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in vf_get_fontbbx1()\n"); abort(); } if (vf_vf_get_metric(font_vf->vf_id, -1, NULL, &design_size) < 0) return -1; if ((ps = font->point_size) < 0) if ((ps = font_vf->point_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ mx = mag_x * font->mag_x * font_vf->mag; my = mag_y * font->mag_y * font_vf->mag; } else { mx = mag_x * font->mag_x * font_vf->mag * (ps/design_size); my = mag_y * font->mag_y * font_vf->mag * (ps/design_size); } vf = vf_vf_get_vf(font_vf->vf_id); *w_p = vf->tfm->font_bbx_w * mx; *h_p = vf->tfm->font_bbx_h * my; *xoff_p = vf->tfm->font_bbx_xoff * mx; *yoff_p = vf->tfm->font_bbx_yoff * my; return 0; } Private VF_BITMAP vf_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_VF font_vf; double ps, mx, my, design_size; if ((font_vf = (FONT_VF)font->private) == NULL){ fprintf(stderr, "VFlib internal error in vf_get_bitmap1()\n"); abort(); } design_size = vf_vf_get_design_size(font_vf->vf_id); if ((ps = font->point_size) < 0) if ((ps = font_vf->point_size) < 0) ps = -1; if ((ps < 0) || (design_size < 1.0e-3)){ /* Note: font->mag_x and font_vf->mag are already used to select scaled glyph, e.g., cmr10.360gf for 300dpi with mag 1.2. */ mx = mag_x; my = mag_y; } else { mx = mag_x * (ps/design_size); my = mag_y * (ps/design_size); } return vf_vf_get_bitmap(font_vf->vf_id, font->mode, code_point, mx, my, font_vf->open_style, font_vf->glyph_style); } Private int vf_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { VF_BITMAP bm; if (metric == NULL){ fprintf(stderr, "VFlib internal error: in vf_get_metric2()\n"); abort(); } bm = vf_get_bitmap2(font, code_point, mag_x, mag_y); if (bm == NULL) return -1; metric->bbx_width = bm->bbx_width; metric->bbx_height = bm->bbx_height; metric->off_x = bm->off_x; metric->off_y = bm->off_y; metric->mv_x = bm->mv_x; metric->mv_y = bm->mv_y; VF_FreeBitmap(bm); return 0; } Private int vf_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { FONT_VF font_vf; VF vf; double mx, my; if ((font_vf = (FONT_VF)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in vf_get_fontbbx2()\n"); abort(); } vf = vf_vf_get_vf(font_vf->vf_id); calc_mag_2(font, font_vf, mag_x, mag_y, &mx, &my); *w_p = toint(vf->tfm->font_bbx_w * mx); *h_p = toint(vf->tfm->font_bbx_h * my); *xoff_p = toint(vf->tfm->font_bbx_xoff * mx); *yoff_p = toint(vf->tfm->font_bbx_yoff * my); return 0; } Private VF_BITMAP vf_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_VF font_vf; double mx, my; if ((font_vf = (FONT_VF)font->private) == NULL){ fprintf(stderr, "VFlib internal error in vf_get_bitmap2()\n"); abort(); } calc_mag_2(font, font_vf, mag_x, mag_y, &mx, &my); return vf_vf_get_bitmap(font_vf->vf_id, font->mode, code_point, mx, my, font_vf->open_style, font_vf->glyph_style); } Private void calc_mag_2(VF_FONT font, FONT_VF font_vf, double mag_x, double mag_y, double *mx_p, double *my_p) { double design_size, dpi_x, dpi_y, ps; design_size = vf_vf_get_design_size(font_vf->vf_id); if (((dpi_x = font->dpi_x) < 0) || ((dpi_y = font->dpi_y) < 0)){ if (((dpi_x = font_vf->dpi_x) < 0) || ((dpi_y = font_vf->dpi_y) < 0)){ dpi_x = vf_tex_default_dpi(); dpi_y = vf_tex_default_dpi(); } } if ((ps = font->point_size) < 0) if ((ps = font_vf->point_size) < 0) ps = -1; if (ps < 0){ /* Note: font->mag_x and font_vf->mag are already used to select scaled glyph, e.g., cmr10.360gf for 300dpi with mag 1.2. */ *mx_p = mag_x; *my_p = mag_y; } else { *mx_p = mag_x * (ps*72.27)/(design_size*dpi_x); *my_p = mag_y * (ps*72.27)/(design_size*dpi_y); } } Private VF_OUTLINE vf_get_outline(VF_FONT font, long code_point, double mag_x, double mag_y) { vf_error = VF_ERR_NOT_SUPPORTED_OP; return NULL; } Private char* vf_get_font_prop(VF_FONT font, char *prop_name) { FONT_VF font_vf; double dpi_x, dpi_y, ps, design_size; char str[512]; SEXP v; if ((font_vf = (FONT_VF)font->private) == NULL){ fprintf(stderr, "VFlib internal error: vf_get_font_prop()\n"); abort(); } if ((v = vf_sexp_assoc(prop_name, font_vf->props)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else if ((v = vf_sexp_assoc(prop_name, default_properties)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else { if (((dpi_x = font->dpi_x)<=0) || ((dpi_y = font->dpi_y)<=0)){ if (((dpi_x = font_vf->dpi_x)<=0) || ((dpi_y = font_vf->dpi_y)<=0)){ dpi_x = vf_tex_default_dpi(); dpi_y = vf_tex_default_dpi(); } } design_size = vf_vf_get_design_size(font_vf->vf_id); if (font->mode == 1){ if ((ps = font->point_size) < 0) if ((ps = font_vf->point_size) < 0) ps = design_size; ps = ps * font->mag_y * font_vf->mag; if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(ps * 10.0)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps * dpi_y / 72.27)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpi_x)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpi_y)); return vf_strdup(str); } } else if (font->mode == 2){ if (strcmp(prop_name, "POINT_SIZE") == 0){ if ((ps = font->pixel_size) < 0){ if ((ps = font_vf->pixel_size) < 0){ sprintf(str, "%d", toint(design_size * 10.0 * font->mag_y * font_vf->mag)); return vf_strdup(str); } } ps = ps * font->mag_y * font_vf->mag; sprintf(str, "%d", toint(ps * 10.0 * 72.27 / dpi_y)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ if ((ps = font->pixel_size) < 0) if ((ps = font_vf->pixel_size) < 0) ps = design_size * dpi_y / 72.27; ps = ps * font->mag_y * font_vf->mag; sprintf(str, "%d", toint(ps)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpi_x)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpi_y)); return vf_strdup(str); } } } return NULL; } #include "vf.c" Private int vf_debug(char type) { char *p, *p0; if (default_debug_mode == NULL) return FALSE; if ((p0 = vf_sexp_get_cstring(default_debug_mode)) == NULL) return FALSE; for (p = p0; *p != '\0'; p++){ if (*p == type) return TRUE; } for (p = p0; *p != '\0'; p++){ if (*p == '*') return TRUE; } return FALSE; } /*EOF*/ vflib3-3.6.14.dfsg/src/drv_zeit.c0000644000175000017500000007224607363431045016065 0ustar mohuramohura/* * drv_zeit.c - A font driver for ZEIT format fonts * * by Hirotsugu Kakugawa * * 3 Dec 1996 First version. * 10 Dec 1996 Changed for VFlib version 3.1 * 12 Dec 1996 Eliminated "do" capability. * 26 Feb 1997 Added 'query_font_type'. * 7 Aug 1997 VFlib 3.3 Changed API. * 28 Jan 1998 VFlib 3.4 Changed API. * 24 Nov 1998 Added get_fontbbx1() and get_fontbbx2(). * 18 Oct 2001 Fixed memory leaks. * */ /* * Copyright (C) 1993-2001 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* debug flag in vflibcap (debug capability): * f - print font file path * i - print info on character index * o - print contents of outline data * * - everything */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "bitmap.h" #include "cache.h" #include "fsearch.h" #include "str.h" #include "sexp.h" #include "zeit.h" #define DIRECTION_HORIZONTAL 0 #define DIRECTION_VERTICAL 1 #define POINTS_PER_INCH 72.27 /* 1 inch = 72.27 point */ #define DEFAULT_DPI 72.27 #define DEFAULT_POINT_SIZE 32.0 #define DEFAULT_PIXEL_SIZE 32 #define DEFAULT_DIRECTION DIRECTION_HORIZONTAL Private SEXP_LIST default_fontdirs; Private SEXP_LIST default_extensions; Private SEXP_STRING default_point_size; Private double v_default_point_size; Private SEXP_STRING default_pixel_size; Private double v_default_pixel_size; Private SEXP_STRING default_dpi, default_dpi_x, default_dpi_y; Private double v_default_dpi_x, v_default_dpi_y; Private SEXP_STRING default_aspect; Private double v_default_aspect; Private SEXP_STRING default_direction; Private char v_default_direction; Private SEXP_LIST default_vec_bbxul; Private double v_default_vec_bbxul_x, v_default_vec_bbxul_y; Private SEXP_LIST default_vec_next; Private double v_default_vec_next_x, v_default_vec_next_y; Private SEXP_ALIST default_properties; Private SEXP_ALIST default_variables; Private SEXP_STRING default_debug_mode; struct s_font_zeit { int zeit_id; char *font_name; double point_size; int pixel_size; double dpi_x, dpi_y; double aspect; double mag; double slant; double vec_bbxul_x, vec_bbxul_y; double vec_next_x, vec_next_y; char direction; SEXP props; }; typedef struct s_font_zeit *FONT_ZEIT; Private int zeit_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry); Private int zeit_close(VF_FONT); Private int zeit_get_metric1(VF_FONT,long,VF_METRIC1,double,double); Private int zeit_get_metric2(VF_FONT,long,VF_METRIC2,double,double); Private int zeit_get_fontbbx1(VF_FONT,double,double, double*,double*,double*,double*); Private int zeit_get_fontbbx2(VF_FONT,double,double, int*,int*,int*,int*); Private VF_BITMAP zeit_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP zeit_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE zeit_get_outline1(VF_FONT,long,double,double); Private char* zeit_get_font_prop(VF_FONT,char*); Private VF_OUTLINE get_outline2(VF_FONT,FONT_ZEIT,long,int,double,double); Private ZEIT ZEIT_GetZEIT(int zeit_id); Private void ZEIT_SetZEIT(int zeit_id, ZEIT zeit); Private int debug_on(char type); Public int VF_Init_Driver_ZEIT(void) { char *p; SEXP s1, s2; struct s_capability_table ct[20]; int z; z = 0; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_fontdirs; /* VF_CAPE_EXTENSIONS */ ct[z].cap = VF_CAPE_EXTENSIONS; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_extensions; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_point_size; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_pixel_size; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi; /* VF_CAPE_DPI_X */ ct[z].cap = VF_CAPE_DPI_X; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi_x; /* VF_CAPE_DPI_Y */ ct[z].cap = VF_CAPE_DPI_Y; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi_y; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_aspect; /* VF_CAPE_DIRECTION */ ct[z].cap = VF_CAPE_DIRECTION; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_direction; /* VF_CAPE_VECTOR_TO_BBX_UL */ ct[z].cap = VF_CAPE_VECTOR_TO_BBX_UL; ct[z].type = CAPABILITY_VECTOR; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_vec_bbxul; /* VF_CAPE_VECTOR_TO_NEXT */ ct[z].cap = VF_CAPE_VECTOR_TO_NEXT; ct[z].type = CAPABILITY_VECTOR; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_vec_next; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME, ct, NULL, NULL) == VFLIBCAP_PARSED_ERROR) return -1; if (default_extensions == NULL) default_extensions = vf_sexp_cstring2list(DEFAULT_EXTENSIONS); v_default_point_size = DEFAULT_POINT_SIZE; if (default_point_size != NULL) v_default_point_size = atof(vf_sexp_get_cstring(default_point_size)); if (v_default_point_size < 0) v_default_point_size = DEFAULT_POINT_SIZE; v_default_pixel_size = DEFAULT_PIXEL_SIZE; if (default_pixel_size != NULL) v_default_pixel_size = atof(vf_sexp_get_cstring(default_pixel_size)); if (v_default_pixel_size < 0) v_default_pixel_size = DEFAULT_PIXEL_SIZE; v_default_dpi_x = DEFAULT_DPI; v_default_dpi_y = DEFAULT_DPI; if (default_dpi != NULL) v_default_dpi_x = v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi)); if (default_dpi_x != NULL) v_default_dpi_x = atof(vf_sexp_get_cstring(default_dpi_x)); if (default_dpi_y != NULL) v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi_y)); if (v_default_dpi_x < 0) v_default_dpi_x = DEFAULT_DPI; if (v_default_dpi_y < 0) v_default_dpi_y = DEFAULT_DPI; v_default_aspect = 1.0; if (default_aspect != NULL) v_default_aspect = atof(vf_sexp_get_cstring(default_aspect)); if (v_default_aspect < 0) v_default_aspect = 1.0; v_default_direction = DEFAULT_DIRECTION; if (default_direction != NULL){ p = vf_sexp_get_cstring(default_direction); switch (*p){ case 'h': case 'H': v_default_direction = DIRECTION_HORIZONTAL; break; case 'v': case 'V': v_default_direction = DIRECTION_VERTICAL; break; default: fprintf(stderr, "VFlib warning: Unknown writing direction: %s\n", p); break; } } switch(v_default_direction){ case DIRECTION_HORIZONTAL: default: v_default_vec_bbxul_x = 0; v_default_vec_bbxul_y = DEFAULT_TO_REF_PT_H; v_default_vec_next_x = 1.0; v_default_vec_next_y = 0.0; break; case DIRECTION_VERTICAL: v_default_vec_bbxul_x = DEFAULT_TO_REF_PT_V; v_default_vec_bbxul_y = 0; v_default_vec_next_x = 0.0; v_default_vec_next_y = -1.0; break; } if (default_vec_bbxul != NULL){ s1 = vf_sexp_car(default_vec_bbxul); s2 = vf_sexp_cadr(default_vec_bbxul); v_default_vec_bbxul_x = atof(vf_sexp_get_cstring(s1)); v_default_vec_bbxul_y = atof(vf_sexp_get_cstring(s2)); } if (default_vec_next != NULL){ s1 = vf_sexp_car(default_vec_next); s2 = vf_sexp_cadr(default_vec_next); v_default_vec_next_x = atof(vf_sexp_get_cstring(s1)); v_default_vec_next_y = atof(vf_sexp_get_cstring(s2)); } if (ZEIT_Init() < 0) return -1; VF_InstallFontDriver(FONTCLASS_NAME, (DRIVER_FUNC_TYPE)zeit_create); return 0; } Private int zeit_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_ZEIT font_zeit; ZEIT zeit; char *font_file, *p; int zeit_id, val; SEXP s1, s2; SEXP cap_font, cap_point, cap_pixel; SEXP cap_dpi, cap_dpi_x, cap_dpi_y, cap_mag, cap_aspect; SEXP cap_direction, cap_vec_bbxul, cap_vec_next, cap_props; struct s_capability_table ct[20]; int z; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_FONT_FILE */ ct[z].cap = VF_CAPE_FONT_FILE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_font; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_point; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_pixel; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi; /* VF_CAPE_DPI_X */ ct[z].cap = VF_CAPE_DPI_X; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi_x; /* VF_CAPE_DPI_Y */ ct[z].cap = VF_CAPE_DPI_Y; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi_y; /* VF_CAPE_MAG */ ct[z].cap = VF_CAPE_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mag; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_aspect; /* VF_CAPE_DIRECTION */ ct[z].cap = VF_CAPE_DIRECTION; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_direction; /* VF_CAPE_VECTOR_TO_BBX_UL */ ct[z].cap = VF_CAPE_VECTOR_TO_BBX_UL; ct[z].type = CAPABILITY_VECTOR; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_vec_bbxul; /* VF_CAPE_VECTOR_TO_NEXT */ ct[z].cap = VF_CAPE_VECTOR_TO_NEXT; ct[z].type = CAPABILITY_VECTOR; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_vec_next; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (implicit == 1){ /* implicit font */ font_file = font_name; } else { /* explicit font */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, NULL) < 0) return -1; if (cap_font == NULL){ /* Use font name as font file name if font file name is not given. */ font_file = font_name; } else { font_file = vf_sexp_get_cstring(cap_font); } } val = -1; font_zeit = NULL; if ((zeit_id = ZEIT_Open(font_file)) < 0) goto End; font->font_type = VF_FONT_TYPE_OUTLINE; font->get_metric1 = zeit_get_metric1; font->get_metric2 = zeit_get_metric2; font->get_fontbbx1 = zeit_get_fontbbx1; font->get_fontbbx2 = zeit_get_fontbbx2; font->get_bitmap1 = zeit_get_bitmap1; font->get_bitmap2 = zeit_get_bitmap2; font->get_outline = zeit_get_outline1; font->get_font_prop = zeit_get_font_prop; font->query_font_type = NULL; /* Use font->font_type value. */ font->close = zeit_close; ALLOC_IF_ERR(font_zeit, struct s_font_zeit){ vf_error = VF_ERR_NO_MEMORY; goto End; } font_zeit->zeit_id = zeit_id; font_zeit->font_name = NULL; font_zeit->point_size = v_default_point_size; font_zeit->pixel_size = v_default_pixel_size; font_zeit->mag = 1.0; font_zeit->dpi_x = v_default_dpi_x; font_zeit->dpi_y = v_default_dpi_y; font_zeit->aspect = v_default_aspect; font_zeit->direction = v_default_direction; font_zeit->slant = 0; font_zeit->vec_bbxul_x = v_default_vec_bbxul_x; font_zeit->vec_bbxul_y = v_default_vec_bbxul_y; font_zeit->vec_next_x = v_default_vec_next_x; font_zeit->vec_next_y = v_default_vec_next_y; if (implicit == 0){ if (cap_point != NULL) font_zeit->point_size = atof(vf_sexp_get_cstring(cap_point)); if (cap_pixel != NULL) font_zeit->pixel_size = atof(vf_sexp_get_cstring(cap_pixel)); if (cap_dpi != NULL) font_zeit->dpi_x = font_zeit->dpi_y = atof(vf_sexp_get_cstring(cap_dpi)); if (cap_dpi_x != NULL) font_zeit->dpi_x = atof(vf_sexp_get_cstring(cap_dpi_x)); if (cap_dpi_y != NULL) font_zeit->dpi_y = atof(vf_sexp_get_cstring(cap_dpi_y)); if (cap_mag != NULL) font_zeit->mag = atof(vf_sexp_get_cstring(cap_mag)); if (cap_aspect != NULL) font_zeit->aspect = atof(vf_sexp_get_cstring(cap_aspect)); if (cap_direction != NULL){ p = vf_sexp_get_cstring(cap_direction); switch (*p){ case 'h': case 'H': font_zeit->direction = DIRECTION_HORIZONTAL; break; case 'v': case 'V': font_zeit->direction = DIRECTION_VERTICAL; break; default: fprintf(stderr, "VFlib warning: Unknown writing direction: %s\n", p); break; } } switch(font_zeit->direction){ case DIRECTION_HORIZONTAL: default: font_zeit->vec_bbxul_x = v_default_vec_bbxul_x; font_zeit->vec_bbxul_y = v_default_vec_bbxul_y; font_zeit->vec_next_x = v_default_vec_next_x; font_zeit->vec_next_y = v_default_vec_next_y; break; case DIRECTION_VERTICAL: font_zeit->vec_bbxul_x = v_default_vec_bbxul_x; font_zeit->vec_bbxul_y = v_default_vec_bbxul_y; font_zeit->vec_next_x = v_default_vec_next_x; font_zeit->vec_next_y = v_default_vec_next_y; break; } if (cap_vec_bbxul != NULL){ s1 = vf_sexp_car(cap_vec_bbxul); s2 = vf_sexp_cadr(cap_vec_bbxul); font_zeit->vec_bbxul_x = atof(vf_sexp_get_cstring(s1)); font_zeit->vec_bbxul_y = atof(vf_sexp_get_cstring(s2)); } if (cap_vec_next != NULL){ s1 = vf_sexp_car(cap_vec_next); s2 = vf_sexp_cadr(cap_vec_next); font_zeit->vec_next_x = atof(vf_sexp_get_cstring(s1)); font_zeit->vec_next_y = atof(vf_sexp_get_cstring(s2)); } if (cap_props != NULL) font_zeit->props = cap_props; } if ((font_zeit->font_name = vf_strdup(font_name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto End; } if ((zeit = ZEIT_GetZEIT(font_zeit->zeit_id)) == NULL){ fprintf(stderr, "VFlib: internal error in zeit_create()\n"); vf_error = VF_ERR_INTERNAL; goto End; } font->private = font_zeit; val = 0; End: if (implicit == 0){ vf_sexp_free3(&cap_font, &cap_point, &cap_pixel); vf_sexp_free3(&cap_dpi, &cap_dpi_x, &cap_dpi_y); vf_sexp_free3(&cap_direction, &cap_vec_bbxul, &cap_vec_next); } if (val < 0) zeit_close(font); return val; } Private int zeit_close(VF_FONT font) { FONT_ZEIT font_zeit; font_zeit = (FONT_ZEIT)font->private; if (font_zeit != NULL){ if (font_zeit->zeit_id >= 0) ZEIT_Close(font_zeit->zeit_id); vf_free(font_zeit->font_name); vf_sexp_free1(&font_zeit->props); vf_free(font_zeit); } return 0; } Private void mag_mode_1(FONT_ZEIT font_zeit, VF_FONT font, double mag_x, double mag_y, double *ret_point_size, double *ret_bbx_w, double *ret_bbx_h, double *ret_mag_x, double *ret_mag_y, double *ret_dpix, double *ret_dpiy) { double mx, my, dpix, dpiy, ps, asp; if ((ps = font->point_size) < 0) if ((ps = font_zeit->point_size) < 0) ps = v_default_point_size; if (ret_point_size != NULL) *ret_point_size = ps; asp = (v_default_aspect * font_zeit->aspect); mx = mag_x * font_zeit->mag * font->mag_x * asp; my = mag_y * font_zeit->mag * font->mag_y; if (ret_mag_x != NULL) *ret_mag_x = mx; if (ret_mag_y != NULL) *ret_mag_y = my; if ((font->dpi_x > 0) && (font->dpi_y > 0)){ dpix = font->dpi_x; dpiy = font->dpi_y; } else if ((font_zeit->dpi_x > 0) && (font_zeit->dpi_y > 0)){ dpix = font_zeit->dpi_x; dpiy = font_zeit->dpi_y; } else { dpix = v_default_dpi_x; dpiy = v_default_dpi_y; } if (ret_dpix != NULL) *ret_dpix = dpix; if (ret_dpiy != NULL) *ret_dpiy = dpiy; if (ret_bbx_w != NULL) *ret_bbx_w = dpix * mx * (ps / POINTS_PER_INCH); if (ret_bbx_h != NULL) *ret_bbx_h = dpiy * my * (ps / POINTS_PER_INCH); #if 0 printf("*** %.3f %.3f %.3f\n", mag_x, font_zeit->mag, font->mag_x); printf(" %.3f %.3f %.3f\n", mag_y, font_zeit->mag, font->mag_y); printf(" dpix=%.3f font_dpi_x=%.3f\n", dpix, font_dpi_x); printf(" dpiy=%.3f font_dpi_y=%.3f\n", dpiy, font_dpi_y); printf(" asp=%.3f\n", asp); printf(" mx=%.3f, my=%.3f\n", mx, my); if (ret_bbx_w != NULL) printf(" W=%.3f H=%.3f\n", *ret_bbx_w, *ret_bbx_h); #endif } Private int zeit_get_metric1(VF_FONT font, long code, VF_METRIC1 metric, double mag_x, double mag_y) { FONT_ZEIT font_zeit; double bbx_w, bbx_h; double dpix, dpiy; if ( ((font_zeit = (FONT_ZEIT)font->private) == NULL) || (metric == NULL)){ fprintf(stderr, "VFlib internal error: in zeit_get_metric1()\n"); abort(); } mag_mode_1(font_zeit, font, mag_x, mag_y, NULL, &bbx_w, &bbx_h, NULL, NULL, &dpix, &dpiy); metric->bbx_width = bbx_w; metric->bbx_height = bbx_h; metric->off_x = bbx_w * font_zeit->vec_bbxul_x; metric->off_y = bbx_h * font_zeit->vec_bbxul_y; metric->mv_x = bbx_w * font_zeit->vec_next_x; metric->mv_y = bbx_h * font_zeit->vec_next_y; return 0; } Private int zeit_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { FONT_ZEIT font_zeit; double bbx_w, bbx_h; double dpix, dpiy; if ((font_zeit = (FONT_ZEIT)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in zeit_get_fontbbx1()\n"); abort(); } mag_mode_1(font_zeit, font, mag_x, mag_y, NULL, &bbx_w, &bbx_h, NULL, NULL, &dpix, &dpiy); *w_p = bbx_w; *h_p = bbx_h; *xoff_p = bbx_w * font_zeit->vec_bbxul_x; *yoff_p = bbx_h * (1.0 - font_zeit->vec_bbxul_y); return 0; } Private VF_BITMAP zeit_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { VF_OUTLINE outline; VF_BITMAP bm; if ((outline = zeit_get_outline1(font, code_point, mag_x, mag_y)) == NULL) return NULL; bm = vf_outline_to_bitmap(outline, -1, -1, -1, 1, 1); VF_FreeOutline(outline); return bm; } Private VF_OUTLINE zeit_get_outline1(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_ZEIT font_zeit; VF_OUTLINE outline; double ps, mx, my, bbx_w, bbx_h, dpix, dpiy, em_mag; if ((font_zeit = (FONT_ZEIT)font->private) == NULL){ fprintf(stderr, "VFlib: internal error in zeit_get_outline1()\n"); abort(); } mag_mode_1(font_zeit, font, mag_x, mag_y, &ps, &bbx_w, &bbx_h, &mx, &my, &dpix, &dpiy); em_mag = 1.0; if (mx > 1){ em_mag /= mx; my = my/mx; mx = 1.0; } if (my > 1){ em_mag /= my; mx = mx/my; my = 1.0; } outline = ZEIT_ReadOutline(font_zeit->zeit_id, (int)code_point, mx, my); if (outline == NULL) return NULL; outline[VF_OL_HEADER_INDEX_HEADER_TYPE] = VF_OL_OUTLINE_HEADER_TYPE0; outline[VF_OL_HEADER_INDEX_DPI_X] = VF_OL_HEADER_ENCODE(dpix); outline[VF_OL_HEADER_INDEX_DPI_Y] = VF_OL_HEADER_ENCODE(dpiy); outline[VF_OL_HEADER_INDEX_POINT_SIZE] = VF_OL_HEADER_ENCODE(ps); outline[VF_OL_HEADER_INDEX_EM] = VF_OL_COORD_RANGE * em_mag; outline[VF_OL_HEADER_INDEX_MAX_X] = VF_OL_COORD_RANGE * mx; outline[VF_OL_HEADER_INDEX_MAX_Y] = VF_OL_COORD_RANGE * my; outline[VF_OL_HEADER_INDEX_REF_X] = VF_OL_COORD_RANGE * (0 - font_zeit->vec_bbxul_x) * mx; outline[VF_OL_HEADER_INDEX_REF_Y] = VF_OL_COORD_RANGE * font_zeit->vec_bbxul_y * my; outline[VF_OL_HEADER_INDEX_MV_X] = VF_OL_COORD_RANGE * font_zeit->vec_next_x * mx; outline[VF_OL_HEADER_INDEX_MV_Y] = VF_OL_COORD_RANGE * font_zeit->vec_next_y * my; return outline; } Private void mag_mode_2(FONT_ZEIT font_zeit, VF_FONT font, double mag_x, double mag_y, double *ret_pixel_size, double *ret_magx, double *ret_magy, double *ret_bbx_w, double *ret_bbx_h) { int ps; double mx, my, asp; if ((ps = font->pixel_size) < 0) if ((ps = font_zeit->pixel_size) < 0) ps = v_default_pixel_size; asp = (v_default_aspect * font_zeit->aspect); mx = mag_x * font_zeit->mag * font->mag_x * asp; my = mag_y * font_zeit->mag * font->mag_y; if (ret_pixel_size != NULL) *ret_pixel_size = ps; if (ret_magx != NULL) *ret_magx = mx; if (ret_magy != NULL) *ret_magy = my; if (ret_bbx_w != NULL) *ret_bbx_w = mx * ps; if (ret_bbx_h != NULL) *ret_bbx_h = my * ps; } Private int zeit_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { FONT_ZEIT font_zeit; double bbx_w, bbx_h; if ( ((font_zeit = (FONT_ZEIT)font->private) == NULL) || (metric == NULL)){ fprintf(stderr, "VFlib internal error: in zeit_get_metric2()\n"); abort(); } mag_mode_2(font_zeit, font, mag_x, mag_y, NULL, NULL, NULL, &bbx_w, &bbx_h); metric->bbx_width = (int)ceil(bbx_w); metric->bbx_height = (int)ceil(bbx_h); metric->off_x = toint(bbx_w * font_zeit->vec_bbxul_x); metric->off_y = toint(bbx_h * font_zeit->vec_bbxul_y); metric->mv_x = toint(bbx_w * font_zeit->vec_next_x); metric->mv_y = toint(bbx_h * font_zeit->vec_next_y); return 0; } Private int zeit_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { FONT_ZEIT font_zeit; double bbx_w, bbx_h; if ((font_zeit = (FONT_ZEIT)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in zeit_get_fontbbx2()\n"); abort(); } mag_mode_2(font_zeit, font, mag_x, mag_y, NULL, NULL, NULL, &bbx_w, &bbx_h); *w_p = toint(bbx_w); *h_p = toint(bbx_h); *xoff_p = toint(bbx_w * font_zeit->vec_bbxul_x); *yoff_p = toint(bbx_w * (font_zeit->vec_bbxul_y - 1.0)); return 0; } Private VF_BITMAP zeit_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_ZEIT font_zeit; VF_OUTLINE outline; VF_BITMAP bm; double ps, mx, my, bbx_w, bbx_h; int bbx_width, bbx_height; if ((font_zeit = (FONT_ZEIT)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in zeit_get_bitmap2()\n"); abort(); } mag_mode_2(font_zeit, font, mag_x, mag_y, &ps, &mx, &my, &bbx_w, &bbx_h); bbx_width = (int)ceil(bbx_w); bbx_height = (int)ceil(bbx_h); if ((bm = vf_alloc_bitmap(bbx_width, bbx_height)) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } outline = get_outline2(font, font_zeit, code_point, ps, mx, my); if (outline == NULL) return NULL; if (vf_draw_outline(bm, outline) < 0){ VF_FreeOutline(outline); VF_FreeBitmap(bm); return NULL; } VF_FreeOutline(outline); bm->off_x = toint(bbx_w * font_zeit->vec_bbxul_x); bm->off_y = toint(bbx_h * font_zeit->vec_bbxul_y); bm->mv_x = toint(bbx_w * font_zeit->vec_next_x); bm->mv_y = toint(bbx_h * font_zeit->vec_next_y); return bm; } Private VF_OUTLINE get_outline2(VF_FONT font, FONT_ZEIT font_zeit, long code_point, int pixel_size, double mx, double my) { VF_OUTLINE outline; double em_mag; em_mag = 1.0; if (mx > 1){ em_mag /= mx; my = my/mx; mx = 1.0; } if (my > 1){ em_mag /= my; mx = mx/my; my = 1.0; } outline = ZEIT_ReadOutline(font_zeit->zeit_id, (int)code_point, mx, my); if (outline == NULL) return NULL; outline[VF_OL_HEADER_INDEX_HEADER_TYPE] = VF_OL_OUTLINE_HEADER_TYPE0; outline[VF_OL_HEADER_INDEX_DPI_X] = VF_OL_HEADER_ENCODE(POINTS_PER_INCH); outline[VF_OL_HEADER_INDEX_DPI_Y] = VF_OL_HEADER_ENCODE(POINTS_PER_INCH); outline[VF_OL_HEADER_INDEX_POINT_SIZE] = VF_OL_HEADER_ENCODE(pixel_size); outline[VF_OL_HEADER_INDEX_EM] = VF_OL_COORD_RANGE * my; outline[VF_OL_HEADER_INDEX_MAX_X] = VF_OL_COORD_RANGE * mx; outline[VF_OL_HEADER_INDEX_MAX_Y] = VF_OL_COORD_RANGE * my; outline[VF_OL_HEADER_INDEX_REF_X] = VF_OL_COORD_RANGE * (0 - font_zeit->vec_bbxul_x) * mx; outline[VF_OL_HEADER_INDEX_REF_Y] = VF_OL_COORD_RANGE * font_zeit->vec_bbxul_y * my; outline[VF_OL_HEADER_INDEX_MV_X] = VF_OL_COORD_RANGE * font_zeit->vec_next_x * mx; outline[VF_OL_HEADER_INDEX_MV_Y] = VF_OL_COORD_RANGE * font_zeit->vec_next_y * my; return outline; } Private char* zeit_get_font_prop(VF_FONT font, char *prop_name) /* CALLER MUST RELEASE RETURNED STRING */ { FONT_ZEIT font_zeit; char str[512]; double ps, dpix, dpiy; SEXP v; if ((font_zeit = (FONT_ZEIT)font->private) == NULL){ fprintf(stderr, "VFlib: internal error in zeit_get_font_prop()\n"); abort(); } if ((v = vf_sexp_assoc(prop_name, font_zeit->props)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else if ((v = vf_sexp_assoc(prop_name, default_properties)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } if (font->mode == 1){ mag_mode_1(font_zeit, font, 1.0, 1.0, &ps, NULL, NULL, NULL, NULL, &dpix, &dpiy); /**printf("** Mode1 %.3f %.3f %.3f\n", ps, dpix, dpiy);**/ if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(10.0 * ps)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps * dpiy / POINTS_PER_INCH)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpix)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpiy)); return vf_strdup(str); } } else if (font->mode == 2){ mag_mode_2(font_zeit, font, 1.0, 1.0, &ps, NULL, NULL, NULL, NULL); /**printf("** Mode2 %.3f\n", ps);**/ if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(10.0 * ps * POINTS_PER_INCH / DEFAULT_DPI)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(DEFAULT_DPI)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(DEFAULT_DPI)); return vf_strdup(str); } } return NULL; } /* * Include Low-Level Font Interface Routine. */ #include "zeit.c" static int zeit_last_zeit_id = -1; static ZEIT zeit_last_zeit = NULL; Private void ZEIT_SetZEIT(int zeit_id, ZEIT zeit) { zeit_last_zeit_id = zeit_id; zeit_last_zeit = zeit; } Private ZEIT ZEIT_GetZEIT(int zeit_id) { ZEIT zeit; if (zeit_id == -1){ zeit_last_zeit_id = -1; zeit_last_zeit = NULL; return NULL; } if ( (zeit_last_zeit_id == zeit_id) && (zeit_last_zeit != NULL) && (zeit_last_zeit_id != -1)) return zeit_last_zeit; zeit = (zeit_table->get_obj_by_id)(zeit_table, zeit_id); zeit_last_zeit_id = zeit_id; zeit_last_zeit = zeit; return zeit; } Private int debug_on(char type) { char *p, *p0; if (default_debug_mode == NULL) return FALSE; if ((p0 = vf_sexp_get_cstring(default_debug_mode)) == NULL) return FALSE; for (p = p0; *p != '\0'; p++){ if (*p == type) return TRUE; } for (p = p0; *p != '\0'; p++){ if (*p == '*') return TRUE; } return FALSE; } /*EOF*/ vflib3-3.6.14.dfsg/src/fileman.c0000644000175000017500000002216410225353265015642 0ustar mohuramohura/* * fileman.c - a module for file descripter management * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "cache.h" #include "consts.h" #define VF_MAX_FD_HASH 101 Private VF_CACHE fp_cache = NULL; Private int fp_case_size = VF_MAX_FILE_DESCRIPTERS; #if 1 /* NEW CODE */ struct s_ck { char path[MAXPATHLEN+16]; long iarg1, iarg2; void *arg1, *arg2; FM_OPEN_METHOD open; FM_CLOSE_METHOD close; /* debug msg */ char dbgmsg[160]; }; typedef struct s_ck CK; struct s_val { void *val; long iarg1, iarg2; void *arg1, *arg2; FM_OPEN_METHOD open; FM_CLOSE_METHOD close; }; typedef struct s_val VAL; Private FILE *get_file_stream(char *file_path, int bin_file); Private void close_file_stream(char *file_path, int bin_file); Private VAL *open_file(VF_CACHE,CK*,int); Private void close_file(VAL*); Private void *simple_open(char*,long,long,void*,void*); Private void simple_close(void*,long,long,void*,void*); static int debug_fileman = 0; Public int vf_fm_init(void) { char *s; if (fp_cache != NULL){ /* XXX TO DO: dispose fp_cache here */ } debug_fileman = 0; if (getenv(VF_ENV_DEBUG_FILEMAN) != NULL) debug_fileman = 1; fp_case_size = VF_MAX_FILE_DESCRIPTERS; if ((s = getenv(VF_ENV_MAX_FILE_DESCRIPTERS)) != NULL) fp_case_size = atoi(s); if (fp_case_size < 1) fp_case_size = VF_MAX_FILE_DESCRIPTERS; if (debug_fileman != 0) printf("VFlib fileman: #fd = %d\n", fp_case_size); fp_cache = vf_cache_create(fp_case_size, VF_MAX_FD_HASH, (void*(*)(VF_CACHE,void*,int))open_file, (void(*)(void*))close_file); if (fp_cache == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } return 0; } Public FILE* vf_fm_OpenTextFileStream(char *file_path) { FILE *fp; if ((fp = get_file_stream(file_path, 0)) != NULL) fseek(fp, 0L, SEEK_SET); return fp; } Public FILE* vf_fm_OpenBinaryFileStream(char *file_path) { FILE *fp; if ((fp = get_file_stream(file_path, 1)) != NULL) fseek(fp, 0L, SEEK_SET); return fp; } Private FILE* get_file_stream(char *file_path, int bin_file) { struct s_ck ck; struct s_val *val; if (debug_fileman != 0) printf("VFlib fileman: Get file stream for %s\n", file_path); if (file_path == NULL) return NULL; memset(&ck, 0, sizeof(ck)); strncpy(ck.path, file_path, sizeof(ck.path)); ck.iarg1 = 0; ck.iarg2 = 0; ck.arg1 = (void*)bin_file; ck.arg2 = NULL; ck.open = simple_open; ck.close = simple_close; strncpy(ck.dbgmsg, file_path, sizeof(ck.dbgmsg)); if ((val = (fp_cache->get)(fp_cache, &ck, sizeof(struct s_ck))) == NULL){ vf_error = VF_ERR_CANT_OPEN; return NULL; } return val->val; } Public void* vf_fm_OpenFileStreamApp(char *arg, long iarg1, long iarg2, void *arg1, void *arg2, FM_OPEN_METHOD open_method, FM_CLOSE_METHOD close_method, char *dbgmsg) { struct s_ck ck; struct s_val *val; if ((debug_fileman != 0) && (dbgmsg != NULL)) printf("VFlib fileman: Get file stream %s (%s)\n", arg, dbgmsg); memset(&ck, 0, sizeof(ck)); if (arg != NULL) strncpy(ck.path, arg, sizeof(ck.path)); ck.iarg1 = iarg1; ck.iarg2 = iarg2; ck.arg1 = arg1; ck.arg2 = arg2; ck.open = open_method; ck.close = close_method; if (dbgmsg != NULL) strncpy(ck.dbgmsg, dbgmsg, sizeof(ck.dbgmsg)); if ((val = (fp_cache->get)(fp_cache, &ck, sizeof(ck))) == NULL){ vf_error = VF_ERR_CANT_OPEN; return NULL; } return val->val; } Public void vf_fm_CloseTextFileStream(char *file_path) { close_file_stream(file_path, 0); } Public void vf_fm_CloseBinaryFileStream(char *file_path) { close_file_stream(file_path, 1); } Public void close_file_stream(char *file_path, int bin_file) { struct s_ck ck; if (debug_fileman != 0) printf("VFlib fileman: Close file stream for %s\n", file_path); if (file_path == NULL) return; memset(&ck, 0, sizeof(ck)); strncpy(ck.path, file_path, sizeof(ck.path)); ck.iarg1 = 0; ck.iarg2 = 0; ck.arg1 = (void*)bin_file; ck.arg2 = NULL; ck.open = simple_open; ck.close = simple_close; strncpy(ck.dbgmsg, file_path, sizeof(ck.dbgmsg)); (fp_cache->del)(fp_cache, &ck, sizeof(struct s_ck)); } Public void vf_fm_CloseFileStreamApp(char *arg, long iarg1, long iarg2, void *arg1, void *arg2, FM_OPEN_METHOD open_method, FM_CLOSE_METHOD close_method, char *dbgmsg) { struct s_ck ck; if ((debug_fileman != 0) && (dbgmsg != NULL)) printf("VFlib fileman: Close App file stream %s (%s)\n", arg, dbgmsg); memset(&ck, 0, sizeof(ck)); if (arg != NULL) strncpy(ck.path, arg, sizeof(ck.path)); ck.iarg1 = iarg1; ck.iarg2 = iarg2; ck.arg1 = arg1; ck.arg2 = arg2; ck.open = open_method; ck.close = close_method; if (dbgmsg != NULL) strncpy(ck.dbgmsg, dbgmsg, sizeof(ck.dbgmsg)); (fp_cache->del)(fp_cache, &ck, sizeof(struct s_ck)); } /* Cache Loader and Disposer */ Private VAL* open_file(VF_CACHE c, CK *ck, int key_len) { VAL *val; ALLOC_IF_ERR(val, VAL){ return NULL; } val->iarg1 = ck->iarg1; val->iarg2 = ck->iarg2; val->arg1 = ck->arg1; val->arg2 = ck->arg2; val->open = ck->open; val->close = ck->close; if (debug_fileman != 0) printf("VFlib fileman: call open function for %s\n", ck->dbgmsg); val->val = ck->open(ck->path, ck->iarg1, ck->iarg2, ck->arg1, ck->arg2); return val; } Private void close_file(VAL *val) { if (debug_fileman != 0) printf("VFlib fileman: call close function\n"); val->close(val->val, val->iarg1, val->iarg2, val->arg1, val->arg2); vf_free(val); } /* Simple File Opener/Closer */ Private void* simple_open(char *path, long iarg1, long iarg2, void *arg1, void *arg2) { FILE *fp; char *mode; if ((int)arg1 == 1) mode = "rb"; else mode = "rt"; fp = fopen(path, mode); if (debug_fileman != 0){ printf("VFlib fileman: fopen(\"%s\", \"%s\")\n", path, mode); printf(" ==> %p\n", (void*)fp); } return fp; } Private void simple_close(void *v, long iarg1, long iarg2, void *arg1, void *arg2) { FILE *fp = (FILE*)v; if (debug_fileman != 0) printf("VFlib fileman: fclose %p\n", (void*)fp); if (fp != NULL) fclose(fp); } #else /* old code */ static int last_file_valid = 0; static char *last_file_path = NULL; /* a kind of a cache */ static int last_file_path_size = 0; static FILE *last_fp = NULL; Private FILE* open_file(VF_CACHE c, char *key, int key_len); Private void close_file(FILE* fp); Public int vf_fm_Init(void) { if (fp_cache != NULL){ /* XXX TO DO: dispose fp_cache here */ } fp_cache = vf_cache_create(VF_MAX_FILE_DESCRIPTERS, VF_MAX_FD_HASH, (void*(*)(VF_CACHE,void*,int))open_file, (void(*)(void*))close_file); if (fp_cache == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } return 0; } Public FILE* vf_fm_OpenFileStream(char *file_path) { FILE *fp; if ((fp = vf_fm_GetFileStream(file_path)) != NULL) fseek(fp, 0L, SEEK_SET); return fp; } Public FILE* vf_fm_GetFileStream(char *file_path) { FILE *fp; int n; #if 0 printf("FileMan: Path %s\n", file_path); #endif if (file_path == NULL) return NULL; if ((last_file_path != NULL) && (last_fp != NULL) && (last_file_valid == 1) && (strcmp(last_file_path, file_path) == 0)){ return last_fp; } if ((fp = (fp_cache->get)(fp_cache, file_path, strlen(file_path)+1)) == NULL){ vf_error = VF_ERR_CANT_OPEN; return NULL; } if (last_file_path_size < strlen(file_path)+1){ n = strlen(file_path) + 64; vf_free(last_file_path); ALLOCN_IF_ERR(last_file_path, char, n){ last_file_valid = 0; last_file_path_size = 0; last_file_path = NULL; return fp; } last_file_path_size = n; last_file_valid = 1; strcpy(last_file_path, file_path); } return fp; } /* cache loader */ Private FILE* open_file(VF_CACHE c, char *key, int key_len) { #if 0 printf("FileMan: Open %s\n", key); #endif return fopen(key, FOPEN_RD_MODE_BIN); } /* cache disposer */ Private void close_file(FILE* fp) { /*printf("FileMan: Close \n");*/ if (last_fp == fp) last_fp = NULL; if (fp != NULL) fclose(fp); } #endif /*EOF*/ vflib3-3.6.14.dfsg/src/gf.c0000644000175000017500000001773207324451542014633 0ustar mohuramohura/* * gf.c - TeX GF format font fonts loader. * * 28 Sep 1996 First version. * 30 Jan 1998 VFlib 3.4 Changed API. * 16 Sep 1999 Changed not to use TFM */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ Private GF_GLYPH gf_loader(VF_CACHE,FILE*); Private int gf_read_glyph(FILE*,VF_BITMAP); Private unsigned char bit_table[] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; Private GF_GLYPH GF_CacheLoader(VF_CACHE c, char *font_path, int l) { FILE *fp; UINT1 pre, id; UINT4 k; if (font_path == NULL) return NULL; if ((fp = vf_fm_OpenBinaryFileStream(font_path)) == NULL) return NULL; pre = READ_UINT1(fp); if (pre != GF_PRE) return NULL; id = READ_UINT1(fp); if (id != GF_ID) return NULL; k = READ_UINT1(fp); SKIP_N(fp, k); return gf_loader(c, fp); } Private void GF_CacheDisposer(GF_GLYPH go) { int nc, i; if (go != NULL){ if (go->bm_table != NULL){ nc = go->code_max - go->code_min + 1; for (i = 0; i < nc; i++) vf_free(go->bm_table[i].bitmap); vf_free(go->bm_table); } vf_free(go); } } Private GF_GLYPH gf_loader(VF_CACHE c, FILE* fp) { GF_GLYPH go; VF_BITMAP bm; UINT1 instr, d; UINT4 ds, check_sum, hppp, vppp; INT4 min_m, max_m, min_n, max_n; INT4 w; UINT4 code; double dx, dy; long ptr_post, ptr_p, ptr, optr, gptr; int bc, ec, nchars, i; go = NULL; nchars = -1; /* seek to post_post instr. */ fseek(fp, -1, SEEK_END); while ((d = READ_UINT1(fp)) == 223) fseek(fp, -2, SEEK_CUR); if (d != GF_ID){ vf_error = VF_ERR_ILL_FONT_FILE; goto ErrExit; } fseek(fp, -6, SEEK_CUR); /* check if the code is post_post */ if (READ_UINT1(fp) != GF_POST_POST){ vf_error = VF_ERR_ILL_FONT_FILE; goto ErrExit; } /* read pointer to post instr. */ if ((ptr_post = READ_UINT4(fp)) == -1){ vf_error = VF_ERR_ILL_FONT_FILE; goto ErrExit; } /* goto post instr. and read it */ fseek(fp, ptr_post, SEEK_SET); if (READ_UINT1(fp) != GF_POST){ vf_error = VF_ERR_ILL_FONT_FILE; goto ErrExit; } ptr_p = READ_UINT4(fp); ds = READ_UINT4(fp); check_sum = READ_UINT4(fp); hppp = READ_UINT4(fp); vppp = READ_UINT4(fp); min_m = READ_INT4(fp); max_m = READ_INT4(fp); min_n = READ_INT4(fp); max_n = READ_INT4(fp); gptr = ftell(fp); #if 0 /* read min & max char code */ bc = 256; ec = -1; for (;;){ instr = READ_UINT1(fp); if (instr == GF_POST_POST){ break; } else if (instr == GF_CHAR_LOC){ code = READ_UINT1(fp); (void)SKIP_N(fp, 16); } else if (instr == GF_CHAR_LOC0){ code = READ_UINT1(fp); (void)SKIP_N(fp, 9); } else { vf_error = VF_ERR_ILL_FONT_FILE; goto ErrExit; } if (code < bc) bc = code; if (code > ec) ec = code; } #else bc = 0; ec = 255; #endif nchars = ec - bc + 1; ALLOC_IF_ERR(go, struct s_gf_glyph){ vf_error = VF_ERR_NO_MEMORY; goto ErrExit; } ALLOCN_IF_ERR(go->bm_table, struct vf_s_bitmap, nchars){ vf_error = VF_ERR_NO_MEMORY; goto ErrExit; } for (i = 0; i < nchars; i++) go->bm_table[i].bitmap = NULL; go->ds = (double)ds/(1<<20); go->hppp = (double)hppp/(1<<16); go->vppp = (double)vppp/(1<<16); go->font_bbx_w = max_m - min_m; go->font_bbx_h = max_n - min_n; go->font_bbx_xoff = min_m; go->font_bbx_yoff = min_n; go->code_min = bc; go->code_max = ec; /* read glyph */ #if 0 fseek(fp, gptr, SEEK_SET); #endif for (;;){ if ((instr = READ_UINT1(fp)) == GF_POST_POST) break; switch ((int)instr){ case GF_CHAR_LOC: code = READ_UINT1(fp); dx = (double)READ_INT4(fp)/(double)(1<<16); dy = (double)READ_INT4(fp)/(double)(1<<16); w = READ_INT4(fp); ptr = READ_INT4(fp); break; case GF_CHAR_LOC0: code = READ_UINT1(fp); dx = (double)READ_INT1(fp); dy = (double)0; w = READ_INT4(fp); ptr = READ_INT4(fp); break; default: vf_error = VF_ERR_ILL_FONT_FILE; goto ErrExit; } optr = ftell(fp); fseek(fp, ptr, SEEK_SET); bm = &go->bm_table[code - bc]; if (gf_read_glyph(fp, bm) < 0) goto ErrExit; bm->mv_x = dx; bm->mv_y = dy; fseek(fp, optr, SEEK_SET); } return go; ErrExit: printf("*ERROR\n"); if (go != NULL){ if (go->bm_table != NULL){ for (i = 0; i < nchars; i++) vf_free(go->bm_table[i].bitmap); } vf_free(go->bm_table); } vf_free(go); return NULL; } Private int gf_read_glyph(FILE* fp, VF_BITMAP bm) { long m, n; int paint_sw; int instr; INT4 min_m, max_m, min_n, max_n, del_m, del_n; long w, h, d; int m_b, k; unsigned char *ptr; switch (READ_UINT1(fp)){ case GF_BOC: SKIP_N(fp, 4); SKIP_N(fp, 4); min_m = READ_INT4(fp); max_m = READ_INT4(fp); min_n = READ_INT4(fp); max_n = READ_INT4(fp); break; case GF_BOC1: SKIP_N(fp, 1); del_m = (INT4)READ_UINT1(fp); max_m = (INT4)READ_UINT1(fp); del_n = (INT4)READ_UINT1(fp); max_n = (INT4)READ_UINT1(fp); min_m = max_m - del_m; min_n = max_n - del_n; break; default: return -1; } w = max_m - min_m + 1; h = max_n - min_n + 1; if ((w < 0) || (h < 0)){ vf_error = VF_ERR_ILL_FONT_FILE; return -1; } if ((bm->bitmap = (unsigned char*)malloc(h*((w+7)/8))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } memclr(bm->bitmap, h*((w+7)/8)); bm->raster = (w+7)/8; bm->bbx_width = w; bm->bbx_height = h; bm->off_x = -min_m; bm->off_y = max_n; #if 0 bm->mv_x = -min_m; bm->mv_y = max_n; #endif m = min_m; n = max_n; paint_sw = 0; while ((instr = (int)READ_UINT1(fp)) != GF_EOC){ if (instr == GF_PAINT_0){ paint_sw = 1 - paint_sw; } else if ((GF_NEW_ROW_0 <= instr) && (instr <= GF_NEW_ROW_164)){ m = min_m + (instr - GF_NEW_ROW_0); n = n - 1; paint_sw = 1; } else if ((GF_PAINT_1 <= instr) && (instr <= GF_PAINT_63)){ d = (instr - GF_PAINT_1 + 1); goto Paint; } else { switch ((int)instr){ case GF_PAINT1: case GF_PAINT2: case GF_PAINT3: d = (UINT4)READ_UINTN(fp, (instr - GF_PAINT1 + 1)); Paint: if (paint_sw == 0){ m = m + d; } else { ptr = &bm->bitmap[(max_n - n) * bm->raster + (m - min_m)/8]; m_b = (m - min_m) % 8; while (d > 0){ *ptr |= bit_table[m_b]; m++; if (++m_b >= 8){ m_b = 0; ++ptr; } d--; } } paint_sw = 1 - paint_sw; break; case GF_SKIP0: m = min_m; n = n - 1; paint_sw = 0; break; case GF_SKIP1: case GF_SKIP2: case GF_SKIP3: m = min_m; n = n - (UINT4)READ_UINTN(fp, (instr - GF_SKIP1 + 1)) - 1; paint_sw = 0; break; case GF_XXX1: case GF_XXX2: case GF_XXX3: case GF_XXX4: k = READ_UINTN(fp, instr - GF_XXX1 + 1); SKIP_N(fp, k); break; case GF_YYY: SKIP_N(fp, 4); break; case GF_NO_OP: break; default: vf_free(bm->bitmap); bm->bitmap = NULL; vf_error = VF_ERR_ILL_FONT_FILE; return -1; } } } return 0; } /*EOF*/ vflib3-3.6.14.dfsg/src/fsearch.c0000644000175000017500000006075007365204172015650 0ustar mohuramohura/* * fsearch.c - search a file * by Hirotsugu Kakugawa * * 28 May 1997 Added recursive file searching feature. * 24 Dec 1998 Added searching in "VFlib.fdb" file that contain file list * 21 Sep 1999 Added a feature to generate PK & GF files on the fly. * */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include "with.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #ifdef HAVE_DIRENT_H # include # define NAMLENGTH(dirent) strlen((dirent)->d_name) #else /* not DIRENT */ # define dirent direct # define NAMLENGTH(dirent) ((dirent)->d_namlen) #ifdef HAVE_SYS_NDIR_H # include #endif #ifdef HAVE_SYS_DIR_H # include #endif #ifdef HAVE_NDIR_H # include #endif #endif /* not DIRENT */ #ifdef HAVE_SYS_STAT_H # ifdef __linux__ # define __USE_BSD # endif # include #endif #include "VFlib-3_6.h" #include "VFsys.h" #include "consts.h" #include "fsearch.h" #include "texfonts.h" #include "sexp.h" #include "path.h" #include "str.h" #ifdef WITH_KPATHSEA # include "kpathsea/kpathsea.h" #endif #ifdef HAVE_DIRENT_H # ifdef HAVE_SYS_STAT_H # ifdef HAVE_OPENDIR # define RECURSIVE_FILE_SEARCH # endif # endif #endif /** ** kpathsea **/ Private int kps_switch = DEFAULT_KPS_SWITCH; Private char *kps_mode = DEFAULT_KPS_MODE; Private int kps_dpi = DEFAULT_KPS_DPI; #ifdef WITH_KPATHSEA Private char *kps_path = DEFAULT_KPS_PROGRAM_PATH; #endif Private char *kps_prog = DEFAULT_KPS_PROGRAM_NAME; Glocal void vf_kpathsea_init(char *prog, char *mode, int dpi, int kps_sw) { #ifdef WITH_KPATHSEA static int inited_prog = 0; int f; #endif kps_switch = kps_sw; kps_dpi = dpi; if (mode != NULL) kps_mode = mode; if (prog != NULL) kps_prog = prog; #ifdef WITH_KPATHSEA if (inited_prog == 1) return; inited_prog = 1; if (vf_dbg_kpathsea == 1){ if (kps_switch == TRUE) printf(">>Kpathsea: enabled\n"); else printf(">>Kpathsea: disabled\n"); } if (vf_dbg_kpathsea == 1) printf(">>Kpathsea: mode=%s, dpi=%d program=%s\n", kps_mode, kps_dpi, kps_prog); kpse_set_program_name(kps_path, kps_prog); kpse_init_prog(kps_prog, kps_dpi, kps_mode, NULL); for (f = 0; f < kpse_last_format; f++) { kpse_init_format(f); } #else if (vf_dbg_kpathsea == 1) printf(">>Kpathsea: disabled by configure\n"); #endif } /** ** VF_AddUncompresser() **/ Private SEXP_ALIST vf_uncompresser_alist = NULL; Public int vf_add_uncompresser_alist(SEXP_ALIST alist) { SEXP t; if (alist == NULL) return 0; if (!vf_sexp_alistp(alist)){ fprintf(stderr, "VFlib Error [fsearch.c:VF_AddUncompresser]: %s\n", "Not an alist."); return -1; } t = vf_uncompresser_alist; vf_sexp_nconc(alist, t); vf_uncompresser_alist = alist; return 0; } Glocal FILE* vf_open_uncompress_stream(char *compressed_file, char *uncompress_prog) { #ifndef HAVE_POPEN return NULL; #else FILE *fp; char *cmdline; cmdline = malloc(strlen(uncompress_prog) + strlen(compressed_file) + 16); if (cmdline == NULL) return NULL; sprintf(cmdline, "%s %s", uncompress_prog, compressed_file); fp = popen(cmdline, "r"); vf_free(cmdline); return fp; #endif /* HAVE_POPEN */ } Glocal int vf_close_uncompress_stream(FILE* fp) { #ifdef HAVE_POPEN if (fp != NULL){ pclose(fp); } #endif return 0; } /** ** Search a File **/ Private char *search_in_fdb(char *name, char *dir, SEXP_LIST compressed_ext_list, char **p_uncompr_prog, int *ret_val); Private int search_fdb_fp(FILE *fp, char *d, char *f, char *ret_path, int ret_path_size); Private char *search_file_kpathsea(char*,int,char*,int); Private char *search_file(char*,char*,SEXP_LIST,char**); Private char *search_file_recursive(char*, char*,SEXP_LIST,char**); Private int ext2uncprog(char *ext, SEXP_LIST compressed_ext_list, char **p_uncompr_prog); Glocal char* vf_search_file(char *name, int opt_arg1, char *opt_arg2, int use_kpathsea, int kpathsea_file_format, SEXP_LIST dir_list, SEXP_LIST compressed_ext_list, char **p_uncompr_prog) /* NOTE: CALLER OF THIS FUNCTION *SHOULD* RELEASE RETURN VALUE. (STRING RETURNED BY P_UNCOMPR_PROG SHOULD NOT BE RELEASED.) */ { SEXP d; char *path, *dir; int v; if (name == NULL) return NULL; if (vf_dbg_font_search == 1){ printf(">> File search: %s\n", name); } if (p_uncompr_prog != NULL) *p_uncompr_prog = NULL; if (vf_path_absolute(name)){ if (vf_path_file_read_ok(name)){ if (vf_dbg_font_search == 1) printf(">> File search: Found %s\n", name); return vf_strdup(name); } if (vf_dbg_font_search == 1) printf(">> File search: Not found (no such absolute path)\n"); return NULL; } if ((dir_list == NULL) || (!vf_sexp_listp(dir_list))){ if (vf_dbg_font_search == 1) printf(">> File search: Not found (empty dir list)\n"); return NULL; } path = NULL; for (d = dir_list; vf_sexp_consp(d); d = vf_sexp_cdr(d)){ dir = vf_sexp_get_cstring(vf_sexp_car(d)); if (dir == NULL) continue; if ((vf_strcmp_ci(dir, "TEXMF") == 0) || (vf_strcmp_ci(dir, "KPATHSEA") == 0)){ /* Search by 'KPATHSEA' */ if (use_kpathsea == FALSE){ fprintf(stderr, "VFlib Warning: Unsupported file format by kpathsea.\n"); continue; } if (kps_switch == FALSE) continue; path = search_file_kpathsea(name, opt_arg1, opt_arg2, kpathsea_file_format); } else { /* check font file hint db */ path = search_in_fdb(name, dir, compressed_ext_list, p_uncompr_prog, &v); if (v == -2){ if (vf_path_terminated_by_2delims(dir) == FALSE){ /* Search under dir */ path = search_file(name, dir, compressed_ext_list, p_uncompr_prog); } else { /* Recursive search under dir */ path = search_file_recursive(name, dir, compressed_ext_list, p_uncompr_prog); } } } if (path != NULL) break; } if (vf_dbg_font_search == 1){ if (path != NULL){ printf(">> File search: Found %s\n", path); } else { printf(">> File search: Not found\n"); } } if (path == NULL) return NULL; return path; } Private char* search_in_fdb(char *name, char *dir, SEXP_LIST compressed_ext_list, char **p_uncompr_prog, int *p_ret_val) /* NOTE: CALLER OF THIS FUNCTION *SHOULD* RELEASE RETURN VALUE. */ { char fdb[MAXPATHLEN], name_ext[MAXPATHLEN], *path; int pathsize; FILE *fp; SEXP s; char *ext; if (dir == NULL){ *p_ret_val = -2; return NULL; } if ((vf_path_cons_path(fdb, sizeof(fdb), dir, VF_FONT_FILE_HINT_DB) < 0) || (! vf_path_file_read_ok(fdb)) || ((fp = fopen(fdb, FOPEN_RD_MODE_TEXT)) == NULL)){ if (vf_dbg_font_search == 1) printf(">> No font hint db file: %s\n", fdb); *p_ret_val = -2; /* hint db not found */ return NULL; } if (vf_dbg_font_search == 1) printf(">> Reading hint db file: %s\n", fdb); pathsize = MAXPATHLEN; ALLOCN_IF_ERR(path, char, pathsize){ *p_ret_val = -2; /* hint db not found */ fclose(fp); return NULL; } /* look for font without compression */ if (search_fdb_fp(fp, dir, name, path, pathsize) >= 0){ /* found */ *p_ret_val = 0; /* found */ goto end; } /* look for font with compression */ *p_ret_val = -1; for (s = compressed_ext_list; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ ext = vf_sexp_get_cstring(vf_sexp_car(s)); strncpy(name_ext, name, sizeof(name_ext)); strncat(name_ext, ext, sizeof(name_ext) - strlen(name)); fseek(fp, 0, SEEK_SET); if ((search_fdb_fp(fp, dir, name_ext, path, pathsize) >= 0) && (ext2uncprog(ext, compressed_ext_list, p_uncompr_prog) >= 0)){ *p_ret_val = 0; /* found */ break; } } end: fclose(fp); if (*p_ret_val != 0){ vf_free(path); path = NULL; } if (vf_dbg_font_search == 1){ if (path != NULL) printf(">> Found in db file: %s\n", path); else printf(">> Not found in db file\n"); } return path; } Private int search_fdb_fp(FILE *fp, char *d, char *f, char *ret_path, int ret_path_size) { char linebuff[MAXPATHLEN], *p; int flen, dlen, i; if ((fp == NULL) || (d == NULL) || (f == NULL) || (ret_path == NULL)) return -1; dlen = strlen(d); flen = strlen(f); while (fgets(linebuff, sizeof(linebuff), fp) != NULL){ if ((strncmp(f, linebuff, flen) == 0) && isspace((int)linebuff[flen])){ for (p = &linebuff[flen]; (*p != '\0') && isspace((int)*p); p++) ; if (*p == '\0') break; for (i = 0; p[i] != '\0'; i++){ if (isspace((int)p[i])){ p[i] = '\0'; break; } } vf_path_cons_path(ret_path, ret_path_size, d, p); return 0; } } return -1; } Glocal char* vf_find_file_in_directory(char *name, char *dir) /* NOTE: CALLER OF THIS FUNCTION *SHOULD* RELEASE RETURN VALUE. */ { return search_file(name, dir, NULL, NULL); } Private char* search_file_kpathsea(char *name, int dpi, char *name2, int file_format) /* NOTE: CALLER OF THIS FUNCTION *SHOULD* RELEASE RETURN VALUE. */ { #ifndef WITH_KPATHSEA return NULL; #else char *s; kpse_glyph_file_type g_ret; #if 0 printf("search_file_kpathsea(%s, %s, %d, %d)\n", name, name2, dpi, file_format); #endif if (kps_switch == FALSE) return NULL; if (vf_dbg_kpathsea == 1) printf(">> Kpathsea: Search %s\n", name); s = NULL; switch (file_format){ case FSEARCH_FORMAT_TYPE_GF: s = kpse_find_gf(name2, dpi, &g_ret); break; case FSEARCH_FORMAT_TYPE_PK: s = kpse_find_pk(name2, dpi, &g_ret); break; case FSEARCH_FORMAT_TYPE_VF: s = kpse_find_vf(name); if (s == NULL) s = kpse_find_ovf(name); break; case FSEARCH_FORMAT_TYPE_TFM: s = kpse_find_tfm(name); if (s == NULL) s = kpse_find_ofm(name); break; case FSEARCH_FORMAT_TYPE_OVF: s = kpse_find_ovf(name); break; case FSEARCH_FORMAT_TYPE_OFM: s = kpse_find_ofm(name); break; case FSEARCH_FORMAT_TYPE_TTF: s = kpse_find_file(name, kpse_truetype_format, 0); break; case FSEARCH_FORMAT_TYPE_TYPE1: s = kpse_find_file(name, kpse_type1_format, 0); break; case FSEARCH_FORMAT_TYPE_TYPE42: s = kpse_find_file(name, kpse_type42_format, 0); break; case FSEARCH_FORMAT_TYPE_AFM: s = kpse_find_file(name, kpse_afm_format, 0); break; case FSEARCH_FORMAT_TYPE_PSHEADER: s = kpse_find_file(name, kpse_tex_ps_header_format, 0); break; default: s = NULL; break; } if (vf_dbg_kpathsea == 1){ if (s != NULL){ printf(">> Kpathsea: Found %s\n", s); } else { printf(">> Kpathsea: Not found\n"); } } if (s == NULL) return NULL; #if 0 return vf_strdup(s); #else return s; #endif #endif } Private char* search_file(char *name, char *dir, SEXP_LIST compressed_ext_list, char **p_uncompr_prog) /* NOTE: CALLER OF THIS FUNCTION *SHOULD* RELEASE RETURN VALUE. */ { char *path; char *ext = NULL; int path_len, found; SEXP s; if ((dir != NULL) && (vf_path_directory_read_ok(dir) == FALSE)) return NULL; if (dir == NULL) dir = ""; path_len = strlen(dir) + strlen(name) + 64; /* +64 for compressed extensions. Their lengths must be less 64. */ ALLOCN_IF_ERR(path, char, path_len){ vf_error = VF_ERR_NO_MEMORY; return NULL; } /* search non-compressed file */ vf_path_cons_path(path, path_len, dir, name); if (vf_path_file_read_ok(path)) return path; if (compressed_ext_list == NULL){ vf_free(path); return NULL; } /* search compressed file */ found = 0; for (s = compressed_ext_list; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ ext = vf_sexp_get_cstring(vf_sexp_car(s)); vf_path_cons_path2(path, path_len, dir, name, ext); if (vf_path_file_read_ok(path) == TRUE){ found = 1; break; } } if (found == 0){ vf_free(path); return NULL; } if (ext2uncprog(ext, compressed_ext_list, p_uncompr_prog) < 0){ vf_free(path); path = NULL; } return path; } /* Obtain uncompression program name from extension */ Private int ext2uncprog(char *ext, SEXP_LIST compressed_ext_list, char **p_uncompr_prog) /* NOTE: CALLER OF THIS FUNCTION *SHOULD NOT* RELEASE RETURN VALUE IN P_UNCOMPR_PROG. */ { char *uncext; SEXP p, q; if (p_uncompr_prog == NULL) return -1; *p_uncompr_prog = NULL; for (q = vf_uncompresser_alist; vf_sexp_consp(q); q = vf_sexp_cdr(q)){ p = vf_sexp_car(q); uncext = vf_sexp_get_cstring(vf_sexp_car(p)); if (strcmp(uncext, ext) == 0){ *p_uncompr_prog = vf_sexp_get_cstring(vf_sexp_cadr(p)); break; } } if (*p_uncompr_prog == NULL){ fprintf(stderr, "VFlib Warning: %s %s\n", "Undefined uncompression program for file extension", ext); return -1; } if (vf_dbg_font_search == 1) printf(">> Uncompression program: %s\n", *p_uncompr_prog); return 0; } Glocal int vf_tex_make_glyph(int type, char *font_name, int dpi, double mag) { #ifndef WITH_KPATHSEA return -1; #else char *name, *filename; char *ext; int kp_fmt; kpse_glyph_file_type file_ret; name = NULL; switch (type){ case FSEARCH_FORMAT_TYPE_PK: ext = "pk"; kp_fmt = kpse_pk_format; break; default: return -1; } if ((name = vf_path_base_core(font_name)) == NULL) return -1; fprintf(stderr, "Generating %s.%d%s (dpi=%d, mag=%.3f)...\n", name, (unsigned)(dpi*mag+0.5), ext, dpi, mag); fflush(stderr); kpse_set_program_enabled(kp_fmt, MAKE_TEX_PK_BY_DEFAULT, kpse_src_compile); filename = kpse_find_glyph(name, (unsigned)(dpi*mag+0.5), kp_fmt, &file_ret); if (filename == NULL){ fprintf(stderr, "\nFailed.\n"); vf_free(name); return -1; } fprintf(stderr, "Done.\n"); vf_free(name); return 0; #endif /*WITH_KPATHSEA*/ } #ifndef RECURSIVE_FILE_SEARCH Private char* search_file_recursive(char *name, char *dir, SEXP_LIST compressed_ext_list, char **p_uncompr_prog) { char *d, *path; int len; if (dir == NULL) return NULL; len = strlen(dir) + 1; ALLOCN_IF_ERR(d, char, len){ vf_error = VF_ERR_NO_MEMORY; return NULL; } strcpy(d, dir); vf_path_del_terminating_2delims(d); if (vf_path_directory_read_ok(d) == FALSE){ vf_free(d); return NULL; } path = search_file(name, d, compressed_ext_list, p_uncompr_prog); vf_free(d); return path; } #else /*RECURSIVE_FILE_SEARCH*/ struct s_dtr_list { char *name; struct stat st; struct s_dtr_list *prev; struct s_dtr_list *next; }; struct s_dtr_elem { int path_index; dev_t dev; ino_t ino; struct s_dtr_elem *next; struct s_dtr_elem *prev; struct s_dtr_list subdirs; }; struct s_dtr { char path[MAXPATHLEN]; struct s_dtr_elem *direc_head; struct s_dtr_elem *direc_tail; }; typedef struct s_dtr_list *DTR_LIST; typedef struct s_dtr_elem *DTR_ELEM; typedef struct s_dtr *DTR; Private DTR dtr_alloc(char*); Private void dtr_free(DTR); Private char* dtr_get_path(DTR); Private int dtr_add_name(DTR, char*, int); Private void dtr_del_name(DTR); Private int dtr_add_subdir(DTR, struct dirent*, struct stat*); Private DTR_LIST dtr_subdir_list(DTR); Private DTR_LIST dtr_next_subdir(DTR, DTR_LIST); Private int dtr_go_subdir(DTR, DTR_LIST); Private int dtr_go_updir(DTR); Private char *traverse_directory(DTR, char*, SEXP_LIST, char**); Private char* search_file_recursive(char *name, char *dir, SEXP_LIST compressed_ext_list, char **p_uncompr_prog) { char *d, *path; int len; DTR dtr; if (dir == NULL) return NULL; len = strlen(dir) + 1; ALLOCN_IF_ERR(d, char, len){ vf_error = VF_ERR_NO_MEMORY; return NULL; } strcpy(d, dir); vf_path_del_terminating_2delims(d); if (vf_path_directory_read_ok(d) == FALSE){ vf_free(d); return NULL; } if (vf_dbg_font_search == 1) printf(">> Search Recursively in: %s\n", d); if ((dtr = dtr_alloc(d)) == NULL){ vf_free(d); return NULL; } path = traverse_directory(dtr, name, compressed_ext_list, p_uncompr_prog); dtr_free(dtr); vf_free(d); return path; } Private char* traverse_directory(DTR dtr, char *name, SEXP_LIST compressed_ext_list, char **p_uncompr_prog) { char *path; int v; DIR *dir; DTR_LIST sd; struct dirent *ent; struct stat st; if (vf_dbg_font_search == 1) printf(">> Searching in: %s\n", dtr_get_path(dtr)); /* search a file in a directory */ path = search_file(name, dtr_get_path(dtr), compressed_ext_list, p_uncompr_prog); if (path != NULL) return path; /* obtain a set of subdirectories in a directory */ if ((dir = opendir(dtr_get_path(dtr))) == NULL) return NULL; while ((ent = readdir(dir)) != NULL){ if ((NAMLENGTH(ent) == 1) && (strcmp(ent->d_name, ".") == 0)) continue; if ((NAMLENGTH(ent) == 2) && (strcmp(ent->d_name, "..") == 0)) continue; dtr_add_name(dtr, ent->d_name, NAMLENGTH(ent)); v = stat(dtr_get_path(dtr), &st); dtr_del_name(dtr); if (v < 0) continue; if ((st.st_mode & S_IFMT) == S_IFDIR){ dtr_add_subdir(dtr, ent, &st); } } closedir(dir); /* search a file under subdirectories */ path = NULL; for (sd = dtr_subdir_list(dtr); sd != NULL; sd = dtr_next_subdir(dtr, sd)){ if (dtr_go_subdir(dtr, sd) >= 0){ path = traverse_directory(dtr, name, compressed_ext_list, p_uncompr_prog); if (path != NULL) break; dtr_go_updir(dtr); } } return path; } Private DTR_ELEM dtr_elem_alloc() { DTR_ELEM dtr_elem; if ((dtr_elem = (DTR_ELEM)malloc(sizeof(struct s_dtr_elem))) == NULL) return NULL; dtr_elem->path_index = 0; dtr_elem->dev = 0; dtr_elem->ino = 0; dtr_elem->next = NULL; dtr_elem->prev = NULL; dtr_elem->subdirs.name = NULL; dtr_elem->subdirs.prev = &dtr_elem->subdirs; dtr_elem->subdirs.next = &dtr_elem->subdirs; return dtr_elem; } Private void dtr_elem_free(DTR_ELEM dtr_elem) { DTR_LIST dl, dl_next; dl = dtr_elem->subdirs.next; while (dl != &dtr_elem->subdirs){ dl_next = dl->next; vf_free(dl->name); vf_free(dl); dl = dl_next; } vf_free(dtr_elem); } Private DTR dtr_alloc(char *topdir) { DTR dtr; DTR_ELEM dtr_elem; struct stat st; if ((dtr = (DTR)malloc(sizeof(struct s_dtr))) == NULL) return NULL; dtr->direc_head = NULL; dtr->direc_tail = NULL; strcpy(dtr->path, topdir); vf_path_del_terminating_2delims(dtr->path); if (stat(dtr->path, &st) < 0) goto Error; if ((dtr_elem = dtr_elem_alloc()) == NULL) goto Error; dtr->direc_head = dtr_elem; dtr->direc_tail = dtr_elem; dtr_elem->path_index = strlen(dtr->path); dtr_elem->dev = st.st_dev; dtr_elem->ino = st.st_ino; return dtr; Error: dtr_free(dtr); return NULL; } Private void dtr_free(DTR dtr) { DTR_ELEM dtr_elem, dtr_elem_next; if (dtr == NULL) return; dtr_elem = dtr->direc_head; while (dtr_elem != NULL){ dtr_elem_next = dtr_elem->next; dtr_elem_free(dtr_elem); dtr_elem = dtr_elem_next; } vf_free(dtr); } Private char* dtr_get_path(DTR dtr) { return dtr->path; } Private int dtr_add_subdir(DTR dtr, struct dirent *ent, struct stat* st) { DTR_LIST dl_new, dl_0, dl_1; if ((dl_new = (DTR_LIST)malloc(sizeof(struct s_dtr_list))) == NULL) return -1; if ((dl_new->name = (char*)malloc(NAMLENGTH(ent)+1)) == NULL){ vf_free(dl_new); return -1; } memcpy(dl_new->name, ent->d_name, NAMLENGTH(ent)); dl_new->name[NAMLENGTH(ent)] = '\0'; memcpy(&dl_new->st, st, sizeof(struct stat)); dl_0 = &dtr->direc_tail->subdirs; dl_1 = dl_0->next; dl_new->next = dl_1; dl_new->prev = dl_0; dl_0->next = dl_new; dl_1->prev = dl_new; return 0; } Private int dtr_go_subdir(DTR dtr, DTR_LIST sd) { DTR_ELEM dtr_elem, elem; if (dtr_add_name(dtr, sd->name, strlen(sd->name)) < 0) return -1; for (elem = dtr->direc_head; elem != NULL; elem = elem->next){ if ((elem->dev == sd->st.st_dev) && (elem->ino == sd->st.st_ino)){ /* LOOP! */ dtr_del_name(dtr); return -1; } } if ((dtr_elem = dtr_elem_alloc()) == NULL){ dtr_del_name(dtr); return -1; } dtr_elem->path_index = strlen(dtr->path); dtr_elem->dev = sd->st.st_dev; dtr_elem->ino = sd->st.st_ino; dtr_elem->prev = dtr->direc_tail; dtr->direc_tail->next = dtr_elem; dtr->direc_tail = dtr_elem; return 0; } Private int dtr_go_updir(DTR dtr) { DTR_ELEM tail_elem; tail_elem = dtr->direc_tail; if (tail_elem == NULL){ fprintf(stderr, "FATAL: CANNOT HAPPEN --- in dtr_go_updir().\n"); exit(1); } tail_elem->prev->next = NULL; dtr->direc_tail = tail_elem->prev; dtr_elem_free(tail_elem); dtr_del_name(dtr); return 0; } Private DTR_LIST dtr_subdir_list(DTR dtr) { DTR_LIST sd; #if 0 DTR_LIST ss; ss = dtr->direc_tail->subdirs.prev; printf(" "); while (ss != &dtr->direc_tail->subdirs){ printf("%s, ", ss->name); ss = ss->prev; } printf("\n"); #endif if ((sd = dtr->direc_tail->subdirs.prev) == &dtr->direc_tail->subdirs) return NULL; return sd; } Private DTR_LIST dtr_next_subdir(DTR dtr, DTR_LIST sd) { DTR_LIST next; if ((next = sd->prev) == &dtr->direc_tail->subdirs) return NULL; return next; } Private int dtr_add_name(DTR dtr, char *name, int len) { char *p; int index; index = dtr->direc_tail->path_index; for (p = vf_directory_delimiter; *p != '\0'; p++){ dtr->path[index++] = *p; } while (len > 0){ dtr->path[index++] = *(name++); --len; } dtr->path[index] = '\0'; return 0; } Private void dtr_del_name(DTR dtr) { dtr->path[dtr->direc_tail->path_index] = '\0'; } #endif /* RECURSIVE_FILE_SEARCH */ #if 0 Private int recursive_searcher(char *path, struct dirent *ent, struct stat *st) { SEXP_ALIST iter, q, s; char *ext, *uncext, *uncprog; int ext_len; if (rec_target_file_len > NAMLENGTH(ent)) return -1; if (strncmp(ent->d_name, rec_target_file, rec_target_file_len) != 0) return -1; if ((rec_target_file_len == NAMLENGTH(ent)) && (strncmp(rec_target_file, ent->d_name, NAMLENGTH(ent)) == 0)){ recursive_searcher_found(path); return 1; } if (rec_compressed_ext != NULL){ for (iter = rec_compressed_ext; vf_sexp_consp(iter); iter = vf_sexp_cdr(iter)){ ext = vf_sexp_get_cstring(vf_sexp_car(iter)); if ((ext == NULL) || (strcmp(ext, "") == 0)) continue; ext_len = strlen(ext); if ((ext_len == (NAMLENGTH(ent) - rec_target_file_len)) && (strncmp(&ent->d_name[rec_target_file_len], ext, ext_len) == 0)){ uncprog = NULL; for (s = vf_uncompresser_alist; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ q = vf_sexp_car(s); uncext = vf_sexp_get_cstring(vf_sexp_car(q)); if (strcmp(uncext, ext) == 0){ uncprog = vf_sexp_get_cstring(vf_sexp_cadr(q)); break; } } if (rec_p_uncompression_program != NULL) *rec_p_uncompression_program = uncprog; if (uncprog == NULL){ fprintf(stderr, "VFlib Warning: %s %s\n", "Undefined compression program for file extension", ext); return -1; } if (vf_dbg_font_search == 1) printf(">> Uncompression program: %s\n", uncprog); recursive_searcher_found(path); return 1; } } } return -1; } Private void recursive_searcher_found(char *path) { int len; if ((len = strlen(file_path) + 32) > file_path_length){ vf_free(file_path); file_path_length = len; ALLOCN_IF_ERR(file_path, char, file_path_length){ file_path_length = 0; vf_error = VF_ERR_NO_MEMORY; return; } } strcpy(file_path, path); rec_found_file = file_path; } #endif /*EOF*/ vflib3-3.6.14.dfsg/src/hbf.c0000644000175000017500000004654507363425652015010 0ustar mohuramohura/* * hbf.c - a low lebel interface for HBF format fonts * by Hirotsugu Kakugawa * * 26 Mar 1997 Fixed bugs. * 26 Jan 1998 VFlib 3.4 Changed API. * 21 Apr 1998 Deleted multiple file extension feature. * 17 Jun 1998 Support for 'font-directory' capability in font definition. */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ Private VF_TABLE hbf_table = NULL; Private int HBF_Init(void) { HBF_GetHBF(-1); if ((hbf_table = vf_table_create()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } return 0; } Private int hbf_load_hbf_file(HBF, SEXP); Private int hbf_load_bitmap(HBF,int); Private void hbf_release(HBF); Private int hbf_subindex(HBF,long,long); Private unsigned char* hbf_find_bitmap(HBF,long); Private int HBF_Open(char *font_file, SEXP fontdirs) { char *path_name, *uncomp_prog; int hbf_id; HBF hbf; path_name = vf_search_file(font_file, -1, NULL, FALSE, -1, fontdirs, default_compressed_ext, &uncomp_prog); if (path_name == NULL){ vf_error = VF_ERR_NO_FONT_FILE; return -1; } #if 0 printf("** HBF Font File: %s ==> %s\n", font_file, path_name); #endif if ((hbf_id = (hbf_table->get_id_by_key)(hbf_table, path_name, strlen(path_name)+1)) >= 0){ (hbf_table->link_by_id)(hbf_table, hbf_id); return hbf_id; } ALLOC_IF_ERR(hbf, struct s_hbf){ vf_error = VF_ERR_NO_MEMORY; return -1; } hbf->nchars = 0; hbf->point_size = -1; hbf->pixel_size = -1; hbf->size = -1; hbf->dpi_x = -1; hbf->dpi_y = -1; hbf->slant = 0; hbf->ascent = 0; hbf->descent = 0; hbf->font_bbx_width = 0; hbf->font_bbx_height = 0; hbf->font_bbx_xoff = 0; hbf->font_bbx_yoff = 0; hbf->path_name = NULL; hbf->props = NULL; hbf->uncompress = NULL; if ((hbf->path_name = vf_strdup(path_name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto Error; } if ((uncomp_prog != NULL) && ((hbf->uncompress = vf_strdup(uncomp_prog)) == NULL)){ vf_error = VF_ERR_NO_MEMORY; goto Error; } if ((hbf->props = vf_sexp_empty_list()) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto Error; } if (hbf_load_hbf_file(hbf, fontdirs) < 0) goto Error; #if 0 printf("** HBF: charset:%d, %fpt, %fdpi(x) %fdpi(y) (%d chars)\n", hbf->charset, hbf->point_size, hbf->dpi_x, hbf->dpi_y, hbf->nchars); #endif if ((hbf_id = (hbf_table->put)(hbf_table, hbf, path_name, strlen(path_name)+1)) < 0){ vf_error = VF_ERR_NO_MEMORY; goto Error; } HBF_SetHBF(hbf_id, hbf); return hbf_id; Error: hbf_release(hbf); return -1; } Private int hbf_load_hbf_file(HBF hbf, SEXP fontdirs) { FILE *fp; char linebuf[160], prop_string[160], *name, *file_path, *p; char charset_name[80], charset_name2[80], charset_enc2[5], charset[90]; char *uncomp_prog; int index, r, i, n; hbf->byte2_range_start = NULL; hbf->byte2_range_end = NULL; hbf->byte2_ranges = 0; hbf->code_range_start = NULL; hbf->code_range_end = NULL; hbf->code_range_offset = NULL; hbf->code_range_bitmap_file_paths = NULL; hbf->code_range_bitmaps = NULL; hbf->code_range_offset = NULL; hbf->code_range_bitmap_uncompresser = NULL; if (hbf->uncompress == NULL){ if ((fp = vf_fm_OpenTextFileStream(hbf->path_name)) == NULL){ vf_error = VF_ERR_NO_FONT_FILE; return -1; } } else { if ((fp = vf_open_uncompress_stream(hbf->path_name, hbf->uncompress)) == NULL){ vf_error = VF_ERR_UNCOMPRESS; return -1; } } /* Perse: Char set, pixel size, ... */ strcpy(charset_name, ""); strcpy(charset_name2, ""); strcpy(charset_enc2, ""); for (;;){ if (fgets(linebuf, sizeof(linebuf), fp) == NULL){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } if (STRCMP(linebuf, "HBF_STARTFONT") == 0) continue; if (STRCMP(linebuf, "COMMENT") == 0) continue; if (STRCMP(linebuf, "ENDPROPERTIES") == 0) break; { int x; for (x = strlen(linebuf)-1; x >= 0; x--){ switch (linebuf[x]){ case '\n': case '\r': linebuf[x] = '\0'; } } } { char *prop_name, *prop_value, *p, *p0, c0; prop_name = linebuf; for (p = linebuf; (c0 = *p) != '\0'; p++) if (isspace((int)c0)) break; p0 = p; *p = '\0'; if (c0 != '\0'){ p++; while (isspace((int)*p)) p++; } if (*p == '\0'){ prop_value = NULL; } else { prop_value = p; if (prop_value[0] == '"'){ prop_value = &prop_value[1]; prop_value[strlen(prop_value)-1] = '\0'; } hbf->props = vf_sexp_alist_put(prop_name, prop_value, hbf->props); if (hbf_debug('P')) printf("HBF Prop \"%s\" = \"%s\"\n", prop_name, prop_value); } *p0 = c0; } if (STRCMP(linebuf, "SIZE") == 0){ sscanf(linebuf, "%*s%lf%lf%lf", &hbf->point_size, &hbf->dpi_x, &hbf->dpi_y); hbf->size = hbf->point_size; } else if ((STRCMP(linebuf, "HBF_BITMAP_BOUNDING_BOX") == 0) || (STRCMP(linebuf, "FONTBOUNDINGBOX") == 0)){ sscanf(linebuf, "%*s%d%d%d%d", &hbf->font_bbx_width, &hbf->font_bbx_height, &hbf->font_bbx_xoff, &hbf->font_bbx_yoff); hbf->ascent = hbf->font_bbx_height + hbf->font_bbx_yoff; hbf->descent = -hbf->font_bbx_yoff; } else if (STRCMP(linebuf, "HBF_CODE_SCHEME") == 0){ p = &linebuf[strlen("HBF_CODE_SCHEME")]; while (isspace((int)*p)) p++; for (i = 0; p[i] != '\0'; i++) if (!isprint((int)p[i])) break; p[i] = '\0'; strcpy(charset_name, p); } else if (STRCMP(linebuf, "CHARSET_REGISTRY") == 0){ sscanf(linebuf, "%*s%s", prop_string); name = &prop_string[1]; /* ignore `"' */ name[strlen(name)-1] = '\0'; strncpy(charset_name2, name, sizeof(charset_name)); } else if (STRCMP(linebuf, "CHARSET_ENCODING") == 0){ sscanf(linebuf, "%*s%s", prop_string); name = &prop_string[1]; /* ignore `"' */ name[strlen(name)-1] = '\0'; strncpy(charset_enc2, name, sizeof(charset_enc2)); } else if (STRCMP(linebuf, "RESOLUTION_X") == 0){ sscanf(linebuf, "%*s%lf", &hbf->dpi_x); } else if (STRCMP(linebuf, "RESOLUTION_Y") == 0){ sscanf(linebuf, "%*s%lf", &hbf->dpi_y); } else if (STRCMP(linebuf, "PIXEL_SIZE") == 0){ sscanf(linebuf, "%*s%d", &hbf->pixel_size); } else if (STRCMP(linebuf, "POINT_SIZE") == 0){ sscanf(linebuf, "%*s%lf", &hbf->point_size); hbf->point_size = hbf->point_size / 10.0; } else if (STRCMP(linebuf, "SLANT") == 0){ sscanf(linebuf, "%*s%s", prop_string); name = &prop_string[1]; /* ignore `"' */ name[strlen(name)-1] = '\0'; for (p = name; *p != '\0'; p++) *p = toupper(*p); hbf->slant = 0.0; if ((strcmp(name, "I") == 0) || (strcmp(name, "O") == 0)){ hbf->slant = 0.17; } else if ((strcmp(name, "RI") == 0) || (strcmp(name, "RO") == 0)){ hbf->slant = -0.17; } } } if (strcmp(charset_name, "") != 0){ sprintf(charset, "%s", charset_name); } else { if ((strcmp(charset_enc2, "") != 0) && ((strcmp(charset_enc2, "0") != 0))) sprintf(charset, "%s-%s", charset_name2, charset_enc2); else sprintf(charset, "%s", charset_name2); } #if 0 printf("** HBF font file charset (ID=%d) '%s'\n", hbf->charset, charset); printf("*1 %f %f %f\n", hbf->point_size, hbf->dpi_x, hbf->dpi_y); printf("*2 %d %d %d %d\n", hbf->font_bbx_width, hbf->font_bbx_height, hbf->font_bbx_xoff, hbf->font_bbx_yoff); #endif if (hbf->point_size < 0) hbf->point_size = DEFAULT_POINT_SIZE; if (hbf->pixel_size < 0) hbf->pixel_size = DEFAULT_PIXEL_SIZE; if (hbf->dpi_x < 0) hbf->dpi_x = DEFAULT_DPI; if (hbf->dpi_y < 0) hbf->dpi_y = DEFAULT_DPI; /* parse: CHARS */ for (;;){ if (fgets(linebuf, sizeof(linebuf), fp) == NULL){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } if (STRCMP(linebuf, "CHARS") == 0){ sscanf(linebuf, "%*s%d", &hbf->nchars); if (hbf->nchars < 0){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } break; } } /* Parse: HBF_START_BYTE_2_RANES ... HBF_END_BYTE_2_RANES */ hbf->byte2_ranges = 0; for (;;){ if (fgets(linebuf, sizeof(linebuf), fp) == NULL){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } if (STRCMP(linebuf, "HBF_START_BYTE_2_RANGES") == 0){ sscanf(linebuf, "%*s%d", &hbf->byte2_ranges); if (hbf->byte2_ranges <= 0){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } ALLOCN_IF_ERR(hbf->byte2_range_start, int, hbf->byte2_ranges){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } ALLOCN_IF_ERR(hbf->byte2_range_end, int, hbf->byte2_ranges){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } break; } } hbf->n_byte2 = 0; for (r = 0; r < hbf->byte2_ranges; r++){ if (fgets(linebuf, sizeof(linebuf), fp) == NULL){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } if (STRCMP(linebuf, "HBF_END_BYTE_2_RANGES") == 0){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } else if (STRCMP(linebuf, "HBF_BYTE_2_RANGE") == 0){ sscanf(linebuf, "%*s%i-%i", &(hbf->byte2_range_start[r]), &(hbf->byte2_range_end[r])); hbf->n_byte2 += (hbf->byte2_range_end[r] - hbf->byte2_range_start[r] + 1); } } for (i = 0; i < 256; i++) hbf->byte2_index[i] = -1; index = 0; for (r = 0; r < hbf->byte2_ranges; r++){ for (i = hbf->byte2_range_start[r]; i <= hbf->byte2_range_end[r]; i++) hbf->byte2_index[i] = index++; } /* Parse: HBF_START_CODE_RANES ... HBF_END_CODE_RANES */ for (;;){ if (fgets(linebuf, sizeof(linebuf), fp) == NULL){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } if (STRCMP(linebuf, "HBF_START_CODE_RANGES") == 0){ sscanf(linebuf, "%*s%d", &hbf->code_ranges); if (hbf->code_ranges <= 0){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } ALLOCN_IF_ERR(hbf->code_range_start, long, hbf->code_ranges){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } ALLOCN_IF_ERR(hbf->code_range_end, long, hbf->code_ranges){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } ALLOCN_IF_ERR(hbf->code_range_bitmaps, unsigned char**, hbf->code_ranges){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } ALLOCN_IF_ERR(hbf->code_range_offset, long, hbf->code_ranges){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } ALLOCN_IF_ERR(hbf->code_range_bitmap_file_paths, char*, hbf->code_ranges){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } ALLOCN_IF_ERR(hbf->code_range_bitmap_uncompresser, char*, hbf->code_ranges){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } break; } } for (r = 0; r < hbf->code_ranges; ){ if (fgets(linebuf, sizeof(linebuf), fp) == NULL){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } if (STRCMP(linebuf, "HBF_END_CODE_RANGES") == 0){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } else if (STRCMP(linebuf, "HBF_CODE_RANGE") == 0){ sscanf(linebuf, "%*s%li-%li%s%li", &(hbf->code_range_start[r]), &(hbf->code_range_end[r]), prop_string, &(hbf->code_range_offset[r])); #if 0 printf(">>%s", linebuf); printf(" %lx -- %lx, %s, %ld\n", hbf->code_range_start[r], hbf->code_range_end[r], prop_string, hbf->code_range_offset[r]); #endif file_path = NULL; if (fontdirs != NULL){ file_path = vf_search_file(prop_string, -1, NULL, FALSE, -1, fontdirs, default_compressed_ext, &uncomp_prog); } if (file_path == NULL){ vf_error = VF_ERR_NO_FONT_FILE; goto Unexpected_Error; } if ((hbf->code_range_bitmap_file_paths[r] = vf_strdup(file_path)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } #if 0 printf("** HBF Bitmap File: %s\n", hbf->code_range_bitmap_file_paths[r]); #endif n = hbf_subindex(hbf, hbf->code_range_end[r], hbf->code_range_start[r]) + 1; ALLOCN_IF_ERR(hbf->code_range_bitmaps[r], unsigned char*, n){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } for (i = 0; i < n; i++) hbf->code_range_bitmaps[r][i] = NULL; if (uncomp_prog == NULL){ hbf->code_range_bitmap_uncompresser[r] = NULL; } else { if ((hbf->code_range_bitmap_uncompresser[r] = vf_strdup(uncomp_prog)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto Unexpected_Error; } if (hbf_load_bitmap(hbf, r) < 0){ vf_error = VF_ERR_ILL_FONT_FILE; goto Unexpected_Error; } } r++; } } if ((uncomp_prog != NULL) && (fp != NULL)) vf_close_uncompress_stream(fp); return 0; Unexpected_Error: if (uncomp_prog != NULL) vf_close_uncompress_stream(fp); hbf_release(hbf); return -1; } Private void hbf_release(HBF hbf) { int i, n, r; if (hbf != NULL){ vf_free(hbf->path_name); vf_free(hbf->uncompress); vf_free(hbf->byte2_range_start); vf_free(hbf->byte2_range_end); vf_free(hbf->code_range_start); vf_free(hbf->code_range_end); if (hbf->code_range_bitmap_file_paths != NULL) for (r = 0; r < hbf->byte2_ranges; r++) vf_free(hbf->code_range_bitmap_file_paths[r]); vf_free(hbf->code_range_bitmap_file_paths); if (hbf->code_range_bitmap_uncompresser != NULL) for (r = 0; r < hbf->byte2_ranges; r++) vf_free(hbf->code_range_bitmap_uncompresser[r]); vf_free(hbf->code_range_bitmap_uncompresser); if (hbf->code_range_bitmaps != NULL){ for (r = 0; r < hbf->byte2_ranges; r++){ if (hbf->code_range_bitmaps[r] == NULL) continue; n = hbf_subindex(hbf, hbf->code_range_end[r], hbf->code_range_end[r]); for (i = 0; i <= n; i++) vf_free(hbf->code_range_bitmaps[r][i]); vf_free(hbf->code_range_bitmaps[r]); } } vf_free(hbf->code_range_offset); vf_sexp_free(&hbf->props); vf_free(hbf); } } Private void HBF_Close(int hbf_id) { HBF hbf; if ((hbf = HBF_GetHBF(hbf_id)) == NULL){ fprintf(stderr, "VFlib Internal error: HBF_Close()\n"); abort(); } if ((hbf_table->unlink_by_id)(hbf_table, hbf_id) <= 0) hbf_release(hbf); } Private HBF_CHAR HBF_GetBitmap(int hbf_id, long code_point) { HBF hbf; hbf = HBF_GetHBF(hbf_id); return HBF_GetHBFChar(hbf, code_point); } Private unsigned char* hbf_find_bitmap(HBF hbf, long code_point) { int subindex, bmsize, r, i; long offset; FILE *fp; unsigned char *p; subindex = 0; for (r = 0; r < hbf->code_ranges; r++){ if ((hbf->code_range_start[r] <= code_point) && (code_point <= hbf->code_range_end[r])){ break; } } if (r == hbf->code_ranges){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } if ((subindex = hbf_subindex(hbf, code_point, hbf->code_range_start[r])) < 0){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } if (hbf->code_range_bitmaps[r][subindex] != NULL) return hbf->code_range_bitmaps[r][subindex]; #if 0 printf(" Opening bitmap file: %s\n", hbf->code_range_bitmap_file_paths[r]); #endif if (hbf->code_range_bitmap_uncompresser[r] != NULL){ fprintf(stderr, "VFlib Internal error: HBF_GetBitmap()\n"); abort(); } if ((fp = vf_fm_OpenBinaryFileStream(hbf->code_range_bitmap_file_paths[r])) == NULL){ vf_error = VF_ERR_NO_FONT_FILE; return NULL; } bmsize = ((hbf->font_bbx_width+7)/8) * hbf->font_bbx_height; offset = hbf->code_range_offset[r] + subindex * bmsize; fseek(fp, offset, SEEK_SET); #if 0 printf(" code point: 0x%04x, index: %d, offset: %d\n", code_point, subindex, offset); #endif ALLOCN_IF_ERR(hbf->code_range_bitmaps[r][subindex], unsigned char, bmsize) return NULL; p = &hbf->code_range_bitmaps[r][subindex][0]; for (i = 0; i < bmsize; i++) *(p++) = getc(fp); return hbf->code_range_bitmaps[r][subindex]; } Private int hbf_load_bitmap(HBF hbf, int r) { int bmsize, index, i, j; unsigned char *p; FILE *fp; if (hbf->code_range_bitmap_uncompresser[r] == NULL){ fprintf(stderr, "VFlib fatal: hbf_load_bitmap()\n"); abort(); } fp = vf_open_uncompress_stream(hbf->code_range_bitmap_file_paths[r], hbf->code_range_bitmap_uncompresser[r]); if (fp == NULL){ vf_error = VF_ERR_UNCOMPRESS; return -1; } if ((index = hbf_subindex(hbf, hbf->code_range_end[r], hbf->code_range_start[r])) < 0){ fprintf(stderr, "VFlib fatal: hbf_load_bitmap()\n"); abort(); } fseek(fp, hbf->code_range_offset[r], SEEK_SET); for (i = 0; i <= index; i++){ bmsize = ((hbf->font_bbx_width+7)/8) * hbf->font_bbx_height; ALLOCN_IF_ERR(hbf->code_range_bitmaps[r][i], unsigned char, bmsize) return -1; p = &hbf->code_range_bitmaps[r][i][0]; for (j = 0; j < bmsize; j++) *(p++) = getc(fp); } vf_close_uncompress_stream(fp); return 0; } Private int hbf_subindex(HBF hbf, long code_point, long base) { int code_hi, code_lo, base_hi, base_lo; int subindex, r; code_hi = code_point / 256; code_lo = code_point % 256; base_hi = base / 256; base_lo = base % 256; /** printf(" code hi:%x lo:%02x, base hi:%d lo:%d, %d %d\n", code_hi, code_lo, base_hi, base_lo, hbf->byte2_index[code_lo], hbf->byte2_index[base_lo]); **/ if (base_hi == code_hi){ if ((hbf->byte2_index[code_lo] < 0) || (hbf->byte2_index[base_lo] < 0)) return -1; subindex = hbf->byte2_index[code_lo] - hbf->byte2_index[base_lo]; } else { /* base_hi != code_hi */ /* in base_hi */ subindex = hbf->n_byte2 - hbf->byte2_index[base_lo]; /* in base_hi+1, ..., code_hi-1 */ for (r = base_hi+1; r <= code_hi-1; r++) subindex += hbf->n_byte2; /* in code_hi */ subindex += hbf->byte2_index[code_lo]; } #if 0 printf("hbf_subindex: index:%d, base:0x%lx, code:0x%x\n", subindex, base, code_point); #endif return subindex; } Private char* HBF_GetProp(HBF hbf, char *name) { SEXP v; char *r; if ((v = vf_sexp_assoc(name, hbf->props)) == NULL) return NULL; if ((r = vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v)))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } return r; /* CALLER MUST RELEASE THIS STRING LATER */ } Private HBF_CHAR HBF_GetHBFChar(HBF hbf, long code_point) { static struct s_hbf_char hbf_char; hbf_char.bbx_width = hbf->font_bbx_width; hbf_char.bbx_height = hbf->font_bbx_height; hbf_char.off_x = hbf->font_bbx_xoff; hbf_char.off_y = hbf->font_bbx_yoff; hbf_char.mv_x = hbf->font_bbx_width; hbf_char.mv_y = 0; hbf_char.bitmap = hbf_find_bitmap(hbf, code_point); hbf_char.raster = (hbf->font_bbx_width+7)/8; return &hbf_char; } /*EOF*/ vflib3-3.6.14.dfsg/src/hd.c0000644000175000017500000000374706641563366014644 0ustar mohuramohura/* * hd.c - a hexadecimal dump * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1996 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #define SEPARETER " " int hd(FILE*); int main(argc, argv) int argc; char **argv; { if (argc > 1){ if (strncmp(argv[1], "-h", 2) == 0){ printf("hd --- hex dump\n"); printf("Usage: hd [file ... ]\n"); exit(0); } hd(fopen(argv[1], "rb")); } else hd(stdin); return 0; } int hd(FILE *fp) { int c, addr, oaddr, i; char cstr[17]; if (fp == NULL) exit(1); addr = 0; while ((c = getc(fp)) >= 0){ if (addr % 256 == 0) printf(" +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F\n"); if (addr % 16 == 0) printf("%08x: ", addr); printf("%02x ", c); cstr[addr%16] = ((c <= 0x1f)||(0x7f <= c)) ? '.': (char)c; addr++; if (addr % 16 == 0){ printf("%s", SEPARETER); for (i = 0; i < 16; i++) printf("%c", cstr[i]); putchar('\n'); } if (addr % 256 == 0) putchar('\n'); } addr = addr % 16; if (addr != 0){ for (oaddr = addr; addr < 16; addr++) printf("%s", " "); printf("%s", SEPARETER); for (i = 0; i < oaddr; i++) printf("%c", cstr[i]); putchar('\n'); } return 0; } /*EOF*/ vflib3-3.6.14.dfsg/src/jg.c0000644000175000017500000003243007363431021014620 0ustar mohuramohura/* * jg.c - JG font interface * by Hirotsugu Kakugawa * * 3 Dec 1996 First version. * 10 Dec 1996 Changed for VFlib version 3.1 * 12 Dec 1996 Eliminated "do" capability. * 26 Feb 1997 Added 'query_font_type'. * 7 Aug 1997 VFlib 3.3 Changed API. * 27 Jan 1998 VFlib 3.4 Changed API. * 18 Oct 2001 Fixed memory leaks. * */ /* * Copyright (C) 1993-2001 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "jg.h" Private VF_TABLE jg_table = NULL; Private int JG_Init(void) { JG_GetJG(-1); if ((jg_table = vf_table_create()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } return 0; } Private void jg_release(JG jg); Private int jg_make_header(char*,JG,int); Private int jg_correct_size(int seq, FILE *fp, JG_HEADER header); Private int JG_Open(char *font_name) { JG jg; int jg_id, i; if ((jg_id = (jg_table->get_id_by_key)(jg_table, font_name, strlen(font_name)+1)) >= 0){ (jg_table->link_by_id)(jg_table, jg_id); return jg_id; } ALLOC_IF_ERR(jg, struct s_jg){ vf_error = VF_ERR_NO_MEMORY; return -1; } jg->nfiles = 3; ALLOCN_IF_ERR(jg->headers, JG_HEADER, jg->nfiles){ vf_error = VF_ERR_NO_MEMORY; goto Error; } for (i = 0; i < jg->nfiles; i++) jg->headers[i] = NULL; for (i = 0; i < jg->nfiles; i++){ ALLOC_IF_ERR(jg->headers[i], struct s_jg_header){ vf_error = VF_ERR_NO_MEMORY; goto Error; } } jg->headers[0]->nchars = JG_CODE_SIZE0; jg->headers[1]->nchars = JG_CODE_SIZE1; jg->headers[2]->nchars = JG_CODE_SIZE2; for (i = 0; i < jg->nfiles; i++){ if (jg_make_header(font_name, jg, i) < 0) goto Error; } if ((jg_id = (jg_table->put)(jg_table, jg, font_name, strlen(font_name)+1)) < 0){ vf_error = VF_ERR_NO_MEMORY; goto Error; } JG_SetJG(jg_id, jg); return jg_id; Error: jg_release(jg); return -1; } Private void JG_Close(int jg_id) { JG jg; if ((jg = JG_GetJG(jg_id)) == NULL){ fprintf(stderr, "VFlib internal error: JG_Close()\n"); vf_error = VF_ERR_INTERNAL; return; } if ((jg_table->unlink_by_id)(jg_table, jg_id) > 0) return; jg_release(jg); } Private void jg_release(JG jg) { int i; if (jg != NULL){ for (i = 0; i < jg->nfiles; i++){ if (jg->headers[i] != NULL){ vf_free(jg->headers[i]->font_path); vf_free(jg->headers[i]->ol_offset); vf_free(jg->headers[i]->ol_size); vf_free(jg->headers[i]); } } vf_free(jg->headers); vf_free(jg); } } Private int jg_read_header(char*,JG_HEADER); Private int jg_read_1byte(FILE*); Private unsigned long jg_read_4bytes(FILE*); Private void jg_init_bit_stream(FILE*); Private unsigned int jg_read_12bits(void); Private int jg_read_xy(int*,int*); Private int jg_make_header(char *font_name, JG jg, int fseq) { char *font_path, *e; char fname[MAXPATHLEN]; int i; SEXP s; font_path = NULL; for (s = default_extensions; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ e = vf_sexp_get_cstring(vf_sexp_car(s)); sprintf(fname, "%s%s%d", font_name, e, fseq); if ((font_path = vf_search_file(fname, -1, NULL, FALSE, -1, default_fontdirs, NULL, NULL)) != NULL) break; } if (font_path == NULL){ if (fseq == 0){ vf_error = VF_ERR_NO_FONT_FILE; return -1; } else { jg->headers[fseq]->font_path = NULL; jg->headers[fseq]->ol_offset = NULL; jg->headers[fseq]->ol_size = NULL; } return 0; } if (debug_on('f')) printf("VFlib JG: font path: %s\n", font_path); jg->headers[fseq]->font_path = font_path; ALLOCN_IF_ERR(jg->headers[fseq]->ol_offset, long, jg->headers[fseq]->nchars) goto Error; ALLOCN_IF_ERR(jg->headers[fseq]->ol_size, long, jg->headers[fseq]->nchars) goto Error; for (i = 0; i < jg->headers[fseq]->nchars; i++){ jg->headers[fseq]->ol_offset[i] = -1; jg->headers[fseq]->ol_size[i] = 0; } if (jg_read_header(font_path, jg->headers[fseq]) < 0) goto Error; return 0; Error: vf_error = VF_ERR_NO_MEMORY; vf_free(jg->headers[fseq]->font_path); jg->headers[fseq]->font_path = NULL; vf_free(jg->headers[fseq]->ol_offset); jg->headers[fseq]->ol_offset = NULL; vf_free(jg->headers[fseq]->ol_size); jg->headers[fseq]->ol_size = NULL; return -1; } Private int jg_read_header(char *font_path, JG_HEADER header) { int prefix, i, j; FILE *fp; if ((fp = vf_fm_OpenBinaryFileStream(font_path)) == NULL){ fprintf(stderr, "VFlib Error. File not found: %s\n", font_path); return -1; } fseek(fp, 8L, SEEK_SET); prefix = (unsigned int) jg_read_1byte(fp); prefix += (unsigned int) jg_read_1byte(fp) * 0x100; header->base = 10 + prefix + 4*header->nchars; if (debug_on('i')) printf("VFlib JG: PREFIX %04x \n", prefix); fseek(fp, (long)(prefix+0x0a), SEEK_SET); for (i = 0; i < header->nchars; i++){ header->ol_offset[i] = jg_read_4bytes(fp); if (debug_on('i')) printf("VFlib JG: Index: %04x, offset: %04lx\n", i, header->ol_offset[i]); if (header->ol_offset[i] != EMPTY_PTR) header->ol_offset[i] += header->base; } for (i = 0; i < header->nchars-1; i++){ if (header->ol_offset[i] == EMPTY_PTR){ header->ol_size[i] = 0; } else { for (j = i+1; ; j++){ if (j >= header->nchars){ header->ol_size[i] = -(THRESHOLD_SIZE+1); break; } if (header->ol_offset[j] != EMPTY_PTR){ header->ol_size[i] = -(header->ol_offset[j] - header->ol_offset[i]); break; } } } if (debug_on('i')) printf("VFlib JG: index: %04x, ol size: %04lx\n", i, -header->ol_size[i]); if (-(header->ol_size[i]) > THRESHOLD_SIZE) header->ol_size[i] = EMPTY_PTR; } /* when i == header->nchars-1: */ if (header->ol_offset[header->nchars-1] == EMPTY_PTR){ header->ol_size[header->nchars-1] = 0; } else { header->ol_size[header->nchars-1] = -(THRESHOLD_SIZE+1); jg_correct_size(header->nchars-1, fp, header); } return 0; } /* correct the size of font data */ Private int jg_correct_size(int seq, FILE *fp, JG_HEADER header) { int x, y; if (debug_on('i')) printf("VFlib JG: Too Large for %04x\n Size:%04lx ", seq, -header->ol_size[seq]); fseek(fp, header->ol_offset[seq], SEEK_SET); jg_init_bit_stream(fp); for (;;){ if (jg_read_xy(&x, &y) == -1) break; while (jg_read_xy(&x, &y) != -1) ; } header->ol_size[seq] = -(ftell(fp) - header->ol_offset[seq]); if (debug_on('i')) printf("VFlib JG: ==> %04lx\n", -header->ol_size[seq]); return header->ol_size[seq]; } Private int jg_correct_size(int,FILE*,JG_HEADER); Private int jg_charcode2c(int); Private VF_OUTLINE JG_ReadOutline(int jg_id, int code_point, double mag_x, double mag_y) { FILE *fp; JG jg; int fseq, max_code, space2121; int token_idx, idx, cnt, cmd, x, y, cmdp, xp, yp, cmd0, x0, y0; long size, offs; unsigned int scode; VF_OUTLINE outline; VF_OUTLINE_ELEM *sizep, chd; double mx, my; #define CONV_COORD_X(p) \ ((unsigned int)(VF_OL_COORD_OFFSET + ((p)*mx*VF_OL_COORD_RANGE)/JG_MAX_XY)) #define CONV_COORD_Y(p) \ ((unsigned int)(VF_OL_COORD_OFFSET + ((p)*my*VF_OL_COORD_RANGE)/JG_MAX_XY)) mx = mag_x; my = mag_y; if (mx > 1){ my /= mx; mx = 1.0; } if (my > 1){ mx /= my; my = 1.0; } if ((jg = JG_GetJG(jg_id)) == NULL){ fprintf(stderr, "VFlib internal error: JG_ReadOutline()\n"); vf_error = VF_ERR_INTERNAL; return NULL; } /* Assume JISX0208-1990 & JIS encoding */ max_code = 0x7426; space2121 = 1; if ((code_point < 0x2121) || (max_code < code_point) || (code_point%256 < 0x21) || (0x7e < code_point%256) ){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } if ((space2121 == 1) && (code_point == 0x2121)){ ALLOCN_IF_ERR(outline, VF_OUTLINE_ELEM, VF_OL_OUTLINE_HEADER_SIZE_TYPE0 + 1) return NULL; outline[VF_OL_OUTLINE_HEADER_SIZE_TYPE0] = 0L; return outline; } if (code_point < 0x3000){ fseq = 0; } else if (code_point < 0x5000){ fseq = 1; } else { fseq = 2; } scode = jg_charcode2c((int)code_point); if ((fp = vf_fm_OpenBinaryFileStream(jg->headers[fseq]->font_path)) == NULL){ fprintf(stderr, "VFlib Error. File not found: %s\n", jg->headers[fseq]->font_path); return NULL; } offs = jg->headers[fseq]->ol_offset[scode]; sizep = &jg->headers[fseq]->ol_size[scode]; if (*sizep == EMPTY_PTR) jg_correct_size(scode, fp, jg->headers[fseq]); if (*sizep == 0) return NULL; if (*sizep < 0) size = -3*(*sizep) + 1; else size = *sizep; ALLOCN_IF_ERR(outline, VF_OUTLINE_ELEM, VF_OL_OUTLINE_HEADER_SIZE_TYPE0 + size) return NULL; fseek(fp, offs, SEEK_SET); jg_init_bit_stream(fp); cnt = 0; idx = VF_OL_OUTLINE_HEADER_SIZE_TYPE0; chd = VF_OL_INSTR_CHAR; for (;;){ NEXT_CIRCLE: if ((cmd = jg_read_xy(&x, &y)) == -1) break; cmd0 = cmd; x0 = x; y0 = y; cmdp = cmd; xp = x; yp = y; if (debug_on('o')) printf("VFlib JG: CMD0=%d, X0=%d, Y0=%d\n", cmd0, x0, y0); token_idx = idx; outline[idx++] = (chd | VF_OL_INSTR_CWCURV | VF_OL_INSTR_TOKEN); cnt++; chd = 0L; for (;;){ cmd = jg_read_xy(&x, &y); switch (cmd){ case -1: END_OF_CCURV: if (cmdp != cmd0){ outline[idx++] = ((cmd0==0) ? VF_OL_INSTR_LINE : VF_OL_INSTR_BEZ) | VF_OL_INSTR_TOKEN; cnt++; } outline[idx++] = VF_OL_MAKE_XY(CONV_COORD_X(xp), CONV_COORD_Y(yp)); cnt++; goto NEXT_CIRCLE; case 0: LINE: outline[token_idx] |= (VF_OL_INSTR_LINE | VF_OL_INSTR_TOKEN); outline[idx++] = VF_OL_MAKE_XY(CONV_COORD_X(xp), CONV_COORD_Y(yp)); cnt++; cmdp = cmd; xp = x; yp = y; cmd = jg_read_xy(&x, &y); while (cmd == 0){ outline[idx++] = VF_OL_MAKE_XY(CONV_COORD_X(xp), CONV_COORD_Y(yp)); cnt++; cmdp = cmd; xp = x; yp = y; cmd = jg_read_xy(&x, &y); } if (cmd == -1) goto END_OF_CCURV; token_idx = idx; outline[idx++] = 0L; cnt++; goto BEZ; case 1: BEZ: outline[token_idx] |= (VF_OL_INSTR_BEZ | VF_OL_INSTR_TOKEN); outline[idx++] = VF_OL_MAKE_XY(CONV_COORD_X(xp), CONV_COORD_Y(yp)); cnt++; cmdp = cmd; xp = x; yp = y; cmd = jg_read_xy(&x, &y); while (cmd == 1){ outline[idx++] = VF_OL_MAKE_XY(CONV_COORD_X(xp), CONV_COORD_Y(yp)); cnt++; cmdp = cmd; xp = x; yp = y; cmd = jg_read_xy(&x, &y); } if (cmd == -1) goto END_OF_CCURV; token_idx = idx; outline[idx++] = 0L; cnt++; goto LINE; } } } outline[idx++] = 0L; cnt++; if (*sizep < 0) *sizep = (long) cnt; if (debug_on('o')) printf("VFlib JG: SIZE %5ld\n", *sizep); return outline; } Private int jg_charcode2c(int code_point) { int jgcode; if (code_point < 0x3000) jgcode = (code_point/256 - 0x21)*0x5e + (code_point%256) - 0x21; else if (code_point < 0x5000) jgcode = (code_point/256 - 0x30)*0x5e + (code_point%256) - 0x21; else jgcode = (code_point/256 - 0x50)*0x5e + (code_point%256) - 0x21; return jgcode; } Private int jg_read_1byte(FILE *fp) { return fgetc(fp); } Private unsigned long jg_read_4bytes(FILE *fp) { unsigned long i1, i2, i3, i4; i1 = (unsigned long)jg_read_1byte(fp); i2 = (unsigned long)jg_read_1byte(fp); i3 = (unsigned long)jg_read_1byte(fp); i4 = (unsigned long)jg_read_1byte(fp); return i1 + i2*0x100 + i3*0x10000 + i4*0x1000000; } Private FILE *jg_bitstream_fp = NULL; Private unsigned int jg_left_bits = 0; Private unsigned long jg_bit_stream = 0; Private void jg_init_bit_stream(FILE *fp) { jg_bitstream_fp = fp; jg_bit_stream = 0; jg_left_bits = 0; } Private unsigned int jg_read_12bits(void) { if (jg_left_bits < 12){ jg_bit_stream = jg_bit_stream * 0x10000L; jg_bit_stream += (unsigned int) jg_read_1byte(jg_bitstream_fp); jg_bit_stream += (unsigned int) jg_read_1byte(jg_bitstream_fp) * 0x0100L; jg_left_bits += 16; } jg_left_bits -= 12; return (jg_bit_stream >> jg_left_bits) & JG_MAX_VALUE; } Private int jg_read_xy(int *xp, int *yp) { int x, y, fx, fy; x = jg_read_12bits(); y = jg_read_12bits(); if ((x == JG_MAX_VALUE) && (y == JG_MAX_VALUE)) return -1; *xp = x & JG_XY_MASK; *yp = y & JG_XY_MASK; fx = x & JG_CMD_MASK; fy = y & JG_CMD_MASK; if (*xp > (JG_MAX_XY+1)/2) *xp = (JG_MAX_XY+1) - *xp; else *xp += (JG_MAX_XY+1)/2; if (*yp < (JG_MAX_XY+1)/2) *yp = (JG_MAX_XY+1)/2 - *yp; *xp -= (JG_MAX_XY+1)/4; *xp = (*xp < 0) ? 0: *xp * 2; *yp -= (JG_MAX_XY+1)*5/16; *yp = (*yp < 0) ? 0: *yp * 2; if (fx != 0) return 1; return 0; } /*EOF*/ vflib3-3.6.14.dfsg/src/metric.c0000644000175000017500000000570607324451651015521 0ustar mohuramohura/* * metric.c - font metrics * by Hirotsugu Kakugawa */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "consts.h" /** ** VF_FreeMetric1 **/ Public void VF_FreeMetric1(VF_METRIC1 metric1) { vf_error = 0; vf_free(metric1); } /** ** VF_FreeMetric2 **/ Public void VF_FreeMetric2(VF_METRIC2 metric2) { vf_error = 0; vf_free(metric2); } Glocal VF_METRIC1 vf_alloc_metric1(void) { VF_METRIC1 metric; ALLOC_IF_ERR(metric, struct vf_s_metric1) return NULL; metric->bbx_width = 0; metric->bbx_height = 0; metric->off_x = 0; metric->off_y = 0; metric->mv_x = 0; metric->mv_y = 0; return metric; } Glocal VF_METRIC2 vf_alloc_metric2(void) { VF_METRIC2 metric; ALLOC_IF_ERR(metric, struct vf_s_metric2) return NULL; metric->bbx_width = 0; metric->bbx_height = 0; metric->off_x = 0; metric->off_y = 0; metric->mv_x = 0; metric->mv_y = 0; return metric; } Glocal void vf_metric1_to_metric2(VF_METRIC1 met1, double dpi, VF_METRIC2 met2) { if ((met1 == NULL) || (met2 == NULL)) return; met2->bbx_width = (int)(met1->bbx_width * (dpi / 72.27) + 0.5); met2->bbx_height = (int)(met1->bbx_height * (dpi / 72.27) + 0.5); met2->off_x = (int)(met1->off_x * (dpi / 72.27) + 0.5); met2->off_y = (int)(met1->off_y * (dpi / 72.27) + 0.5); met2->mv_x = (int)(met1->mv_x * (dpi / 72.27) + 0.5); met2->mv_y = (int)(met1->mv_y * (dpi / 72.27) + 0.5); } Glocal void vf_dump_metric1(VF_METRIC1 met) { printf("Metric1: \n"); printf(" bbx (%fx%f)\n", met->bbx_width, met->bbx_height); printf(" off (%f,%f)\n", met->off_x, met->off_y); printf(" mv (%f,%f)\n", met->mv_x, met->mv_y); } Glocal void vf_dump_metric2(VF_METRIC2 met) { printf("Metric2: \n"); printf(" bbx (%dx%d)\n", met->bbx_width, met->bbx_height); printf(" off (%d,%d)\n", met->off_x, met->off_y); printf(" mv (%d,%d)\n", met->mv_x, met->mv_y); } /*EOF*/ vflib3-3.6.14.dfsg/src/params.c0000644000175000017500000000615706750013465015521 0ustar mohuramohura/* * param.c - handling vflibcap parameters * by Hirotsugu Kakugawa * * Edition History * 22 Mar 1997 First implementation * 9 Jan 1998 For VFlib 3.4. */ /* * Copyright (C) 1997-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "params.h" #include "sexp.h" /* Default values given at VF_Init(). */ Private SEXP_ALIST parameters_args = NULL; /* Default values given in vflibcap. */ Private SEXP_ALIST parameters_default = NULL; /* * Parse default values given at VF_Init(). */ Glocal int vf_params_init(char *params) { if (parameters_args != NULL) vf_sexp_free(¶meters_args); if (params == NULL) return 0; if ((parameters_args = vf_sexp_cstring2alist(params)) == NULL) return -1; if (vf_dbg_parameters == 1){ printf(">> Parameter by VF_Init(): "); vf_sexp_pp(parameters_args); } return 0; } /* * Parse default values given in vflibcap. */ Glocal int vf_params_default(SEXP_ALIST params) { if ((params != NULL) && !vf_sexp_alistp(params)){ fprintf(stderr, "VFlib Warning: %s: ", "variable value list in vflibcap must be an alist. ignored.\n"); vf_sexp_pp(params); return -1; } if (parameters_default != NULL) vf_sexp_free(¶meters_default); if (params == NULL) return 0; parameters_default = params; if (vf_dbg_parameters == 1){ printf(">> Parameters in vflibcap: "); vf_sexp_pp(params); } return 0; } /* * Lookup default values */ Glocal SEXP vf_params_lookup(char *param) { SEXP as, v; /* First, check values given at VF_Init(). */ if (parameters_args != NULL){ if ((as = vf_sexp_assoc(param, parameters_args)) != NULL){ v = vf_sexp_cdr(as); if (vf_dbg_parameters == 1){ printf(">> Parameter lookup (#1): %s ==> ", param); vf_sexp_pp(v); } return vf_sexp_copy(v); } } /* Next, check values given in vflibcap. */ if ((parameters_default != NULL) && ((as = vf_sexp_assoc(param, parameters_default)) != NULL)){ v = vf_sexp_cdr(as); if (vf_dbg_parameters == 1){ printf(">> Parameter lookup (#2): %s ==> ", param); vf_sexp_pp(v); } return vf_sexp_copy(v); } return NULL; } /*EOF*/ vflib3-3.6.14.dfsg/src/path.c0000644000175000017500000001775107324451713015174 0ustar mohuramohura/* * path.c --- path string functions * */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #if HAVE_STRING_H # include #endif #if HAVE_STRINGS_H # include #endif #include #include #if HAVE_SYS_STAT_H # ifdef __linux__ # define __USE_BSD # endif # include #endif #include "VFlib-3_6.h" #include "VFsys.h" #include "path.h" #include "vflpaths.h" #include "consts.h" #include "str.h" Private int cons_path(char *path, int n, char *dir, char *file, char *ext); Private char *vf_path_runtime_file2(char *root, char *subdir, char *file, char *envname); Glocal char* vf_path_core_subst_ext(char *f, char *ext) /* "/opt/font/cmr10.300pk" & "vf" => "cmr10.vf" */ /* IMPORTANT: CALLER MUST RELEASE RETURNED DATA OBJECT */ { char *b, *p, *e; if ((f == NULL) || (ext == NULL)) return NULL; if ((b = vf_path_base(f)) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } if ((p = (char*)malloc(strlen(b) + 1 + strlen(ext) + 1)) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } strcpy(p, b); vf_free(b); if ((e = vf_index(p, '.')) != NULL) *e = '\0'; if (*ext != '.') strcat(p, "."); strcat(p, ext); return p; } Glocal char* vf_path_base(char *f) /* "/opt/font/cmr10.300pk" => "cmr10.300pk" */ /* IMPORTANT: CALLER MUST RELEASE RETURNED DATA OBJECT */ { char *s, *b; int dl; dl = strlen(vf_directory_delimiter); b = f; for (s = f; *s != '\0'; s++){ if (strncmp(s, vf_directory_delimiter, dl) == 0) b = &s[dl]; } return vf_strdup(b); } Glocal char* vf_path_base_core(char *f) /* "/opt/font/cmr10.300pk" => "cmr10" */ /* IMPORTANT: CALLER MUST RELEASE RETURNED DATA OBJECT */ { char *p, *core; if ((core = vf_path_base(f)) == NULL) return NULL; if ((p = vf_index(core, '.')) != NULL) *p = '\0'; return core; } Glocal int vf_path_absolute(char *f) { if (strncmp(f, vf_directory_delimiter, strlen(vf_directory_delimiter)) == 0){ return TRUE; } #ifdef MSDOS if ((strlen(f) >= 3) && isalpha(f[0]) && (f[1] == ':') && ((f[2] == '/') || (f[2] == '\\'))){ return TRUE; } #endif /*MSDOS*/ return FALSE; } Glocal int vf_path_terminated_by_delim(char *f) { int dlen, index; dlen = strlen(vf_directory_delimiter); if ((index = strlen(f) - dlen) < 0) return FALSE; if (strcmp(&f[index], vf_directory_delimiter) != 0) return FALSE; return TRUE; } Glocal int vf_path_terminated_by_2delims(char *f) { int dlen, index; dlen = strlen(vf_directory_delimiter); if ((index = strlen(f) - 2*dlen) < 0) return FALSE; if (strncmp(&f[index], vf_directory_delimiter, dlen) != 0) return FALSE; if (strncmp(&f[index+dlen], vf_directory_delimiter, dlen) != 0) return FALSE; return TRUE; } Glocal void vf_path_del_terminating_2delims(char *f) { int dlen; if (vf_path_terminated_by_2delims(f) == TRUE){ dlen = strlen(vf_directory_delimiter); f[strlen(f)-2*dlen] = '\0'; } } Glocal int vf_path_cons_path(char *path, int n, char *dir, char *file) { return cons_path(path, n, dir, file, NULL); } Glocal int vf_path_cons_path2(char *path, int n, char *dir, char *file, char *ext) { return cons_path(path, n, dir, file, ext); } Private int cons_path(char *path, int n, char *dir, char *file, char *ext) { int r; r = n; if (vf_path_absolute(file)){ strncpy(path, file, n); if ((r -= strlen(file)) < 0) return -1; if (ext != NULL) strncat(path, ext, r); return 0; } else { strncpy(path, dir, r); if ((r -= strlen(dir)) < 0) return -1; if (vf_path_terminated_by_2delims(path) == TRUE) vf_path_del_terminating_2delims(path); strncat(path, vf_directory_delimiter, r); if ((r -= strlen(vf_directory_delimiter)) < 0) return -1; strncat(path, file, r); if ((r -= strlen(file)) < 0) return -1; if (ext != NULL) strncat(path, ext, r); } return 0; } Glocal int vf_path_concat(char *path, int n, char *f) { if (vf_path_terminated_by_2delims(path) == TRUE) vf_path_del_terminating_2delims(path); strncat(path, vf_directory_delimiter, n); strncat(path, f, n - strlen(path)); return 0; } Glocal int vf_path_file_read_ok(char *f) { #if HAVE_SYS_STAT_H struct stat st; if (stat(f, &st) < 0) return FALSE; if ((st.st_mode & S_IFMT) != S_IFREG) return FALSE; #endif if (access(f, R_OK) < 0) return FALSE; return TRUE; } Glocal int vf_path_directory_read_ok(char *f) { #if HAVE_SYS_STAT_H struct stat st; if (stat(f, &st) < 0) return FALSE; if ((st.st_mode & S_IFMT) != S_IFDIR) return FALSE; #endif if (access(f, R_OK) < 0) return FALSE; return TRUE; } Glocal char* vf_path_runtime_dir(char *subdir, char *envname) /* return a absolute directory name of SUBDIR under the default runtime dir. Runtime dir can be overridden by "" It can be overridden by an env var ENVNAME if it is defined. */ /* IMPORTANT: CALLER MUST RELEASE RETURNED DATA OBJECT */ { char *root, *dir, *s; int sd_len, dir_len; if ((root = getenv(VF_ENV_DIR_RUNTIME_LIB)) == NULL) root = DIR_RUNTIME_LIB; if ((envname != NULL) && ((s = getenv(envname)) != NULL)){ root = s; subdir = NULL; } if (subdir == NULL) sd_len = 0; else sd_len = strlen(subdir); dir_len = strlen(root) + strlen(vf_directory_delimiter) + sd_len + 4; ALLOCN_IF_ERR(dir, char, dir_len){ return NULL; } if ((subdir == NULL) || (strcmp(subdir, "") == 0)){ strncpy(dir, root, dir_len); } else { vf_path_cons_path(dir, dir_len, root, subdir); } return dir; } Glocal char* vf_path_find_runtime_file(char *subdir, char *file, char *envname) /* return a absolute directory name of SUBDIR under the default runtime dir. Runtime dir can be overridden by "" It can be overridden by an env var ENVNAME if it is defined. */ /* IMPORTANT: CALLER MUST RELEASE RETURNED DATA OBJECT */ { char *root, *p; if ((root = getenv(VF_ENV_DIR_RUNTIME_SITE_LIB)) == NULL) root = DIR_RUNTIME_SITE_LIB; p = vf_path_runtime_file2(root, subdir, file, envname); if (p != NULL) return p; if ((root = getenv(VF_ENV_DIR_RUNTIME_LIB)) == NULL) root = DIR_RUNTIME_LIB; p = vf_path_runtime_file2(root, subdir, file, envname); return p; } Private char* vf_path_runtime_file2(char *root, char *subdir, char *file, char *envname) { char *dir, *s; int sd_len, dir_len; if ((envname != NULL) && ((s = getenv(envname)) != NULL)){ root = s; subdir = NULL; } if (subdir == NULL) sd_len = 0; else sd_len = strlen(subdir); dir_len = strlen(root) + sd_len + strlen(file) + 2 * strlen(vf_directory_delimiter) + 8; ALLOCN_IF_ERR(dir, char, dir_len){ return NULL; } if ((subdir == NULL) || (strcmp(subdir, "") == 0)){ vf_path_cons_path(dir, dir_len, root, file); } else { vf_path_cons_path(dir, dir_len, root, subdir); vf_path_concat(dir, dir_len, file); } if (vf_path_file_read_ok(dir) == FALSE){ vf_free(dir); dir = NULL; } return dir; } /*EOF*/ vflib3-3.6.14.dfsg/src/pcf.c0000644000175000017500000005543207363424720015007 0ustar mohuramohura/* * pcf.c - a low level interface for PCF format fonts * by Hirotsugu Kakugawa * * 25 Apr 1997 Added multiple file extension feature. * 23 Jan 1998 VFlib 3.4 Changed API. * 21 Apr 1998 Deleted multiple file extension feature. * 17 Jun 1998 Support for 'font-directory' capability in font definition. */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ Private VF_TABLE pcf_table = NULL; Private int PCF_Init(void) { PCF_GetPCF(-1); if ((pcf_table = vf_table_create()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } return 0; } Private void pcf_release(PCF); Private int pcf_char_index(PCF,long); Private int pcf_load_file(PCF); Private PCF_TABLE pcf_read_toc(FILE*,int*); Private int pcf_read_props(PCF,FILE*,PCF_TABLE,int); Private int pcf_read_metrics(PCF,FILE*,PCF_TABLE,int); Private void pcf_read_metric_item(FILE*,INT4,PCF_CHAR); Private void pcf_read_compressed_metric_item(FILE*,INT4,PCF_CHAR); Private int pcf_read_bitmaps(PCF,FILE*,PCF_TABLE,int); Private int pcf_read_ink_metrics(PCF,FILE*,PCF_TABLE,int); Private int pcf_read_encodings(PCF,FILE*,PCF_TABLE,int); Private int pcf_read_accel(PCF,FILE*,PCF_TABLE,int,INT4); Private PCF_TABLE pcf_seek_to_type(FILE*,PCF_TABLE,int,int); Private int pcf_type_index(PCF_TABLE,int,int); Private void pcf_bit_order_invert(unsigned char*,int); Private void pcf_swap_2byte(unsigned char*,int); Private void pcf_swap_4byte(unsigned char*,int); Private int pcf_skip_file(FILE*,long); Private INT4 pcf_read_lsb4(FILE*); Private INT4 pcf_read_int4(FILE*,INT4); Private INT4 pcf_read_int2(FILE*,INT4); Private INT4 pcf_read_int1(FILE*,INT4); Private int pcf_read_nbyte(FILE*,unsigned char*,int); Private int PCF_Open(char *font_file, SEXP fontdirs) { char *path_name, *uncomp_prog; int pcf_id; PCF pcf; path_name = vf_search_file(font_file, -1, NULL, FALSE, -1, fontdirs, default_compressed_ext, &uncomp_prog); if (path_name == NULL){ vf_error = VF_ERR_NO_FONT_FILE; return -1; } if (pcf_debug('F')){ printf("PCF Font File: %s ==> %s\n", font_file, path_name); } /* Check the cache here. (Never forget that the fontdir is * not always the same. */ if ((pcf_id = (pcf_table->get_id_by_key)(pcf_table, path_name, strlen(path_name)+1)) >= 0){ vf_free(path_name); if ((pcf = PCF_GetPCF(pcf_id)) == NULL){ fprintf(stderr, "VFlib internal error: in PCF_Open()\n"); abort(); } (pcf_table->link_by_id)(pcf_table, pcf_id); return pcf_id; } ALLOC_IF_ERR(pcf, struct s_pcf){ vf_free(path_name); vf_error = VF_ERR_NO_MEMORY; return -1; } pcf->point_size = -1; pcf->pixel_size = -1; pcf->size = -1; pcf->ascent = -1; pcf->descent = -1; pcf->dpi_x = -1; pcf->dpi_y = -1; pcf->nchars = 0; pcf->char_table = NULL; pcf->bitmap_block = NULL; pcf->encoding = NULL; pcf->font_bbx_width = 0; pcf->font_bbx_height = 0; pcf->font_bbx_xoff = 0; pcf->font_bbx_yoff = 0; pcf->path_name = path_name; pcf->uncompress = NULL; pcf->props = NULL; if ((uncomp_prog != NULL) && ((pcf->uncompress = vf_strdup(uncomp_prog)) == NULL)){ vf_error = VF_ERR_NO_MEMORY; goto Error; } if ((pcf->props = vf_sexp_empty_list()) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto Error; } if (pcf_load_file(pcf) < 0) goto Error; if ((pcf_id = (pcf_table->put)(pcf_table, pcf, path_name, strlen(path_name)+1)) < 0){ vf_error = VF_ERR_NO_MEMORY; goto Error; } PCF_SetPCF(pcf_id, pcf); return pcf_id; Error: pcf_release(pcf); return -1; } Private void PCF_Close(int pcf_id) { PCF pcf; if ((pcf = PCF_GetPCF(pcf_id)) == NULL){ fprintf(stderr, "VFlib Internal error: PCF_Close()\n"); vf_error = VF_ERR_INTERNAL; return; } if ((pcf_table->unlink_by_id)(pcf_table, pcf_id) > 0) return; pcf_release(pcf); } Private void pcf_release(PCF pcf) { if (pcf != NULL){ vf_free(pcf->path_name); vf_free(pcf->uncompress); vf_free(pcf->char_table); vf_free(pcf->bitmap_block); vf_free(pcf->encoding); vf_sexp_free(&pcf->props); vf_free(pcf); } PCF_GetPCF(-1); } static int pcf_file_pos; Private int pcf_load_file(PCF pcf) { FILE *fp; PCF_TABLE tbl; int has_bdf_accel, ntbl, val; pcf_file_pos = 0; if (pcf->uncompress == NULL){ if ((fp = vf_fm_OpenBinaryFileStream(pcf->path_name)) == NULL){ vf_error = VF_ERR_NO_FONT_FILE; return -1; } } else { #if 0 printf("** PCF \"%s\", \"%s\"\n", pcf->path_name, pcf->uncompress); #endif if ((fp = vf_open_uncompress_stream(pcf->path_name, pcf->uncompress)) == NULL){ vf_error = VF_ERR_UNCOMPRESS; return -1; } } val = -1; if ((tbl = pcf_read_toc(fp, &ntbl)) == NULL) goto Error; if (pcf_read_props(pcf, fp, tbl, ntbl) < 0) goto Error; if ((has_bdf_accel = pcf_type_index(tbl, ntbl, PCF_BDF_ACCELERATORS)) >= 0) if (pcf_read_accel(pcf, fp, tbl, ntbl, PCF_ACCELERATORS) < 0) goto Error; if (pcf_read_metrics(pcf, fp, tbl, ntbl) < 0) goto Error; if (pcf_read_bitmaps(pcf, fp, tbl, ntbl) < 0) goto Error; if (pcf_read_ink_metrics(pcf, fp, tbl, ntbl) < 0) goto Error; if (pcf_read_encodings(pcf, fp, tbl, ntbl) < 0) goto Error; if (has_bdf_accel > 0) if (pcf_read_accel(pcf, fp, tbl, ntbl, PCF_BDF_ACCELERATORS) < 0) goto Error; val = 0; Error: vf_free(tbl); if (pcf->uncompress != NULL) vf_close_uncompress_stream(fp); fp = NULL; return val; } Private PCF_TABLE pcf_read_toc(FILE *fp, int *ntbl) { PCF_TABLE tbl; INT4 pcf_version; int i; pcf_version = pcf_read_lsb4(fp); if (pcf_version != PCF_FILE_VERSION){ *ntbl = 0; return NULL; } if ((*ntbl = pcf_read_lsb4(fp)) < 0) return NULL; ALLOCN_IF_ERR(tbl, struct s_pcf_table, *ntbl) return NULL; for (i = 0; i < *ntbl; i++){ tbl[i].type = pcf_read_lsb4(fp); tbl[i].format = pcf_read_lsb4(fp); tbl[i].size = pcf_read_lsb4(fp); tbl[i].offset = pcf_read_lsb4(fp); } return tbl; } Private int pcf_read_props(PCF pcf, FILE *fp, PCF_TABLE tbl, int ntbl) { int i, pad, val; INT4 format, nprops; INT4 *prop_name = NULL; char *prop_isstr = NULL; INT4 *prop_value = NULL; char *propstr = NULL; INT4 propstr_size; char *prop, *value, *p; char charset_name[256], charset_enc[64], value_str[256]; if (pcf_seek_to_type(fp, tbl, ntbl, PCF_PROPERTIES) == NULL) return -1; format = pcf_read_lsb4(fp); if (!PCF_FORMAT_MATCH(format, PCF_DEFAULT_FORMAT)) return -1; val = -1; nprops = pcf_read_int4(fp, format); ALLOCN_IF_ERR(prop_name, INT4, nprops) goto Error; ALLOCN_IF_ERR(prop_isstr, char, nprops) goto Error; ALLOCN_IF_ERR(prop_value, INT4, nprops) goto Error; for (i = 0; i < nprops; i++){ prop_name[i] = pcf_read_int4(fp, format); prop_isstr[i] = pcf_read_int1(fp, format); prop_value[i] = pcf_read_int4(fp, format); } if ((i = (nprops % 4)) != 0){ pad = 4 - i; pcf_skip_file(fp, (long)pad); } propstr_size = pcf_read_int4(fp, format); ALLOCN_IF_ERR(propstr, char, propstr_size+1) goto Error; pcf_read_nbyte(fp, (unsigned char*)propstr, propstr_size); strcpy(charset_name, ""); strcpy(charset_enc, ""); for (i = 0; i < nprops; i++){ prop = &propstr[prop_name[i]]; value = &propstr[prop_value[i]]; if (prop_isstr[i]){ pcf->props = vf_sexp_alist_put(prop, value, pcf->props); } else { sprintf(value_str, "%ld", (long)prop_value[i]); pcf->props = vf_sexp_alist_put(prop, value_str, pcf->props); } if (pcf_debug('P')){ if (prop_isstr[i]) printf("PCF Prop %s: \"%s\"\n", prop, value); else printf("PCF Prop %s: %ld\n", prop, (long)prop_value[i]); } if (STRCMP(prop, "CHARSET_REGISTRY") == 0){ strncpy(charset_name, value, sizeof(charset_name)-sizeof(charset_enc)); } else if (STRCMP(prop, "CHARSET_ENCODING") == 0){ strncpy(charset_enc, value, sizeof(charset_enc)); } else if (STRCMP(prop, "POINT_SIZE") == 0){ if (prop_isstr[i]) sscanf(value, "%i", &pcf->pixel_size); else pcf->point_size = (double)prop_value[i] / 10.0; } else if (STRCMP(prop, "PIXEL_SIZE") == 0){ if (prop_isstr[i]) sscanf(value, "%i", &pcf->pixel_size); else pcf->pixel_size = prop_value[i]; } else if (STRCMP(prop, "FONT_ASCENT") == 0){ if (prop_isstr[i]) sscanf(value, "%i", &pcf->ascent); else pcf->ascent = prop_value[i]; } else if (STRCMP(prop, "FONT_DESCENT") == 0){ if (prop_isstr[i]) sscanf(value, "%i", &pcf->descent); else pcf->descent = prop_value[i]; } else if (STRCMP(prop, "RESOLUTION_X") == 0){ if (prop_isstr[i]) sscanf(value, "%lf", &pcf->dpi_x); else pcf->dpi_x = prop_value[i]; } else if (STRCMP(prop, "RESOLUTION_Y") == 0){ if (prop_isstr[i]) sscanf(value, "%lf", &pcf->dpi_y); else pcf->dpi_y = prop_value[i]; } else if (STRCMP(prop, "SLANT") == 0){ for (p = value; *p != '\0'; p++) *p = toupper(*p); pcf->slant = 0.0; if ((strcmp(value, "I") == 0) || (strcmp(value, "O") == 0)){ pcf->slant = 0.17; } else if ((strcmp(value, "RI") == 0) || (strcmp(value, "RO") == 0)){ pcf->slant = -0.17; } } } if ((strcmp(charset_enc, "") != 0) && ((strcmp(charset_enc, "0") != 0))){ strcat(charset_name, "-"); strcat(charset_name, charset_enc); } if ((pcf->size = pcf->point_size) < 0) pcf->size = pcf->ascent + pcf->descent; if (pcf->dpi_x < 0) pcf->dpi_x = DEFAULT_DPI; if (pcf->dpi_y < 0) pcf->dpi_y = DEFAULT_DPI; val = 0; Error: vf_free(prop_name); vf_free(prop_isstr); vf_free(prop_value); vf_free(propstr); return val; } Private int pcf_read_metrics(PCF pcf, FILE *fp, PCF_TABLE tbl, int ntbl) { INT4 format, nmetrics; int i; if (pcf_seek_to_type(fp, tbl, ntbl, PCF_METRICS) == NULL) return -1; format = pcf_read_lsb4(fp); if (!PCF_FORMAT_MATCH(format, PCF_DEFAULT_FORMAT) && !PCF_FORMAT_MATCH(format, PCF_COMPRESSED_METRICS)) return -1; if (PCF_FORMAT_MATCH(format, PCF_DEFAULT_FORMAT)) nmetrics = pcf_read_int4(fp, format); else nmetrics = pcf_read_int2(fp, format); ALLOCN_IF_ERR(pcf->char_table, struct s_pcf_char, nmetrics) goto Error; for (i = 0; i < nmetrics; i++){ PCF_CHAR pch; pch = &pcf->char_table[i]; if (PCF_FORMAT_MATCH(format, PCF_DEFAULT_FORMAT)) pcf_read_metric_item(fp, format, pch); else pcf_read_compressed_metric_item(fp, format, pch); if (pcf_debug('M')){ printf("PCF rightSideBearing: %d\n", pch->rightSideBearing); printf("PCF leftSideBearing: %d\n", pch->leftSideBearing); printf("PCF ascent: %d\n", pch->ascent); printf("PCF descent: %d\n", pch->descent); printf("PCF characterWidth: %d\n", pch->characterWidth); } pch->bbx_width = pch->rightSideBearing - pch->leftSideBearing; pch->bbx_height = pch->ascent + pch->descent; pch->off_x = pch->leftSideBearing; pch->off_y = -pch->descent; pch->mv_x = pch->characterWidth; pch->mv_y = 0; if (pch->bbx_width > pcf->font_bbx_width) pcf->font_bbx_width = pch->bbx_width; if (pch->bbx_height > pcf->font_bbx_height) pcf->font_bbx_height = pch->bbx_height; if (pch->off_x < pcf->font_bbx_xoff) pcf->font_bbx_xoff = pch->off_x; if (pch->off_y < pcf->font_bbx_yoff) pcf->font_bbx_yoff = pch->off_y; } if (pcf_debug('B')){ printf("PCF FONT BOUNDINGBOX %d %d %d %d\n", pcf->font_bbx_width, pcf->font_bbx_height, pcf->font_bbx_xoff, pcf->font_bbx_yoff); } pcf->nchars = nmetrics; return 0; Error: pcf->nchars = 0; return -1; } Private void pcf_read_metric_item(FILE *fp, INT4 format, PCF_CHAR pch) { pch->leftSideBearing = pcf_read_int2(fp, format); pch->rightSideBearing = pcf_read_int2(fp, format); pch->characterWidth = pcf_read_int2(fp, format); pch->ascent = pcf_read_int2(fp, format); pch->descent = pcf_read_int2(fp, format); pch->attributes = pcf_read_int2(fp, format); } Private void pcf_read_compressed_metric_item(FILE *fp, INT4 format, PCF_CHAR pch) { pch->leftSideBearing = pcf_read_int1(fp, format) - 0x80; pch->rightSideBearing = pcf_read_int1(fp, format) - 0x80; pch->characterWidth = pcf_read_int1(fp, format) - 0x80; pch->ascent = pcf_read_int1(fp, format) - 0x80; pch->descent = pcf_read_int1(fp, format) - 0x80; pch->attributes = 0; } Private int pcf_read_bitmaps(PCF pcf, FILE *fp, PCF_TABLE tbl, int ntbl) { INT4 format, nbitmaps; CARD4 *offsets = NULL; CARD4 bitmap_sizes[PCF_GLYPHPADOPTIONS]; int i, xsize; int bitmap_block_size; if (pcf_seek_to_type(fp, tbl, ntbl, PCF_BITMAPS) == NULL) return -1; format = pcf_read_lsb4(fp); if (!PCF_FORMAT_MATCH(format, PCF_DEFAULT_FORMAT)) return -1; if ((nbitmaps = pcf_read_int4(fp, format)) != pcf->nchars) return -1; if (pcf_debug('B')){ printf("PCF %ld bitmaps\n", (long)nbitmaps); } ALLOCN_IF_ERR(offsets, CARD4, nbitmaps) goto Error; for (i = 0; i < nbitmaps; i++) offsets[i] = pcf_read_int4(fp, format); for (i = 0; i < PCF_GLYPHPADOPTIONS; i++) bitmap_sizes[i] = pcf_read_int4(fp, format); bitmap_block_size = bitmap_sizes[PCF_GLYPH_PAD_INDEX(format)]; xsize = (bitmap_block_size > 0) ? bitmap_block_size : 1; if (pcf_debug('B')){ printf("PCF Bitmaps: %d bytes\n", xsize); } ALLOCN_IF_ERR(pcf->bitmap_block, unsigned char, xsize) goto Error; pcf_read_nbyte(fp, pcf->bitmap_block, bitmap_block_size); if (PCF_BIT_ORDER(format) != PCF_MSB_FIRST) pcf_bit_order_invert(pcf->bitmap_block, bitmap_block_size); if (PCF_BYTE_ORDER(format) != PCF_MSB_FIRST){ switch (PCF_SCAN_UNIT(format)){ case 1: break; case 2: pcf_swap_2byte(pcf->bitmap_block, bitmap_block_size); break; case 4: pcf_swap_4byte(pcf->bitmap_block, bitmap_block_size); break; } } for (i = 0; i < nbitmaps; i++){ PCF_CHAR pch; int w, h, pad; pch = &pcf->char_table[i]; w = pch->rightSideBearing - pch->leftSideBearing; h = pch->ascent + pch->descent; pad = PCF_GLYPH_PAD(format); pch->bitmap = &pcf->bitmap_block[offsets[i]]; pch->raster = ((w + 8*pad - 1)/(8 * pad)) * pad; if (pcf_debug('D')){ struct vf_s_bitmap bm; printf("PCF Bitmap #%d\n", i); bm.bbx_width = w; bm.bbx_height = h; bm.bitmap = pch->bitmap; bm.raster = pch->raster; bm.off_x = bm.off_y = bm.mv_x = bm.mv_y = 0; VF_DumpBitmap(&bm); } } vf_free(offsets); return 0; Error: vf_free(offsets); vf_free(pcf->char_table); pcf->char_table = NULL; vf_free(pcf->bitmap_block); pcf->bitmap_block = NULL; return -1; } Private int pcf_read_ink_metrics(PCF pcf, FILE *fp, PCF_TABLE tbl, int ntbl) { return 0; /* ignore */ } Private int pcf_read_encodings(PCF pcf, FILE *fp, PCF_TABLE tbl, int ntbl) { INT4 format; INT2 i, jth, ne; if (pcf_seek_to_type(fp, tbl, ntbl, PCF_BDF_ENCODINGS) == NULL) goto Error; format = pcf_read_lsb4(fp); if (!PCF_FORMAT_MATCH(format, PCF_DEFAULT_FORMAT)) goto Error; pcf->firstCol = pcf_read_int2(fp, format); pcf->lastCol = pcf_read_int2(fp, format); pcf->firstRow = pcf_read_int2(fp, format); pcf->lastRow = pcf_read_int2(fp, format); pcf->defaultCh = pcf_read_int2(fp, format); pcf->nencodings = (pcf->lastCol - pcf->firstCol + 1) * (pcf->lastRow - pcf->firstRow + 1); ne = (pcf->nencodings > 0) ? pcf->nencodings : 1; ALLOCN_IF_ERR(pcf->encoding, INT2, ne) goto Error; for (i = 0; i < pcf->nencodings; i++){ if ((jth = pcf_read_int2(fp, format)) == 0xffff) pcf->encoding[i] = -1; else pcf->encoding[i] = jth; } return 0; Error: vf_free(pcf->encoding); pcf->encoding = NULL; pcf->nencodings = 0; return -1; } Private int pcf_read_accel(PCF pcf, FILE *fp, PCF_TABLE tbl, int ntbl, INT4 type) { INT4 format, junk; if (pcf_seek_to_type(fp, tbl, ntbl, type) == NULL) goto Error; format = pcf_read_lsb4(fp); if (!PCF_FORMAT_MATCH(format, PCF_DEFAULT_FORMAT) && !PCF_FORMAT_MATCH(format, PCF_ACCEL_W_INKBOUNDS)) goto Error; junk = (INT4)pcf_read_int1(fp, format); /* noOverlap */ junk = (INT4)pcf_read_int1(fp, format); /* constantMetrics */ junk = (INT4)pcf_read_int1(fp, format); /* terminalFont */ junk = (INT4)pcf_read_int1(fp, format); /* constantWidth */ junk = (INT4)pcf_read_int1(fp, format); /* inkInside */ junk = (INT4)pcf_read_int1(fp, format); /* inkMetrics */ junk = (INT4)pcf_read_int1(fp, format); /* drawDirection */ /* anamorphic */ /* cachable */ junk = (INT4)pcf_read_int1(fp, format); /* (alignment) */ pcf->ascent = pcf_read_int4(fp, format); /* fontAscent */ pcf->descent = pcf_read_int4(fp, format); /* fontDescent */ junk = (INT4)pcf_read_int4(fp, format); /* maxOverlap */ /* Metrics minbounds, maxbounds, (ink_minbounds, and ink_maxbounds) come here */ return 0; Error: return -1; } Private PCF_TABLE pcf_seek_to_type(FILE *fp, PCF_TABLE tbl, int ntbl, int type) { int i; if ((i = pcf_type_index(tbl, ntbl, type)) < 0) return NULL; if (pcf_file_pos > tbl[i].offset) return NULL; if (pcf_skip_file(fp, tbl[i].offset - pcf_file_pos) < 0) return NULL; return &tbl[i]; } Private int pcf_type_index(PCF_TABLE tbl, int ntbl, int type) { int i; for (i = 0; i < ntbl; i++){ if (tbl[i].type == type) return i; } return -1; } Private void pcf_bit_order_invert(unsigned char *bitmap, int size) { unsigned char c1, c2, *p; static unsigned char inv_tbl[] = { 0x0, /*0000=>0000*/ 0x8, /*0001=>1000*/ 0x4, /*0010=>0100*/ 0xc, /*0011=>1100*/ 0x2, /*0100=>0010*/ 0xa, /*0101=>1010*/ 0x6, /*0110=>0110*/ 0xe, /*0111=>1110*/ 0x1, /*1000=>0001*/ 0x9, /*1001=>1001*/ 0x5, /*1010=>0101*/ 0xd, /*1011=>1101*/ 0x3, /*1100=>0011*/ 0xb, /*1101=>1011*/ 0x7, /*1110=>0111*/ 0xf, /*1111=>1111*/ }; for (p = bitmap; size > 0; --size, p++){ c1 = inv_tbl[(*p&0xf0) >> 4]; c2 = inv_tbl[(*p&0x0f)]; *p = (c2<<4)|c1; } } Private void pcf_swap_2byte(unsigned char *bitmap, int size) { unsigned char *p, p0; for (p = bitmap; size > 0; p += 2, size -= 2){ p0 = *(p+0); *(p+0) = *(p+1); *(p+1) = p0; } } Private void pcf_swap_4byte(unsigned char *bitmap, int size) { unsigned char *p, p0, p1; for (p = bitmap; size > 0; p += 4, size -= 4){ p0 = *(p+0); p1 = *(p+1); *(p+0) = *(p+3); *(p+1) = *(p+2); *(p+2) = p1; *(p+3) = p0; } } Private int pcf_skip_file(FILE *fp, long nskip) { for ( ; nskip > 0; nskip--){ if (getc(fp) < 0) return -1; pcf_file_pos++; } return 0; } Private INT4 pcf_read_lsb4(FILE *fp) { INT4 n; n = (INT4)getc(fp); n += (INT4)getc(fp) * 0x00000100; n += (INT4)getc(fp) * 0x00010000; n += (INT4)getc(fp) * 0x01000000; pcf_file_pos += 4; return n; } Private INT4 pcf_read_int4(FILE *fp, INT4 format) { INT4 n; if (PCF_BYTE_ORDER(format) == PCF_MSB_FIRST){ n = (INT4)getc(fp) * 0x01000000; n += (INT4)getc(fp) * 0x00010000; n += (INT4)getc(fp) * 0x00000100; n += (INT4)getc(fp); } else { n = (INT4)getc(fp); n += (INT4)getc(fp) * 0x00000100; n += (INT4)getc(fp) * 0x00010000; n += (INT4)getc(fp) * 0x01000000; } pcf_file_pos += 4; return n; } Private INT4 pcf_read_int2(FILE *fp, INT4 format) { INT4 n; if (PCF_BYTE_ORDER(format) == PCF_MSB_FIRST){ n = (INT4)getc(fp) * 0x100; n += (INT4)getc(fp); } else { n = (INT4)getc(fp); n += (INT4)getc(fp) * 0x100; } pcf_file_pos += 2; return n; } Private INT4 pcf_read_int1(FILE *fp, INT4 format) { pcf_file_pos++; return (INT4)getc(fp); } Private int pcf_read_nbyte(FILE *fp, unsigned char *buff, int size) { unsigned char *p; int c; for (p = buff; size > 0; size--, p++){ if ((c = getc(fp)) < 0) return -1; *p = (unsigned char) c; pcf_file_pos++; } return 0; } Private PCF_CHAR PCF_GetBitmap(int pcf_id, long code_point) { int index; PCF pcf; if ((pcf = PCF_GetPCF(pcf_id)) == NULL){ fprintf(stderr, "VFlib internal error: BDF_GetBitmap()\n"); vf_error = VF_ERR_INTERNAL; return NULL; } if ((index = pcf_char_index(pcf, code_point)) < 0){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } return &pcf->char_table[index]; } Private int pcf_char_index(PCF pcf, long code_point) { int char_row, char_col, ncol, i; char_row = code_point / 0x100; char_col = code_point % 0x100; if ((char_row < pcf->firstRow) || (pcf->lastRow < char_row) || (char_col < pcf->firstCol) || (pcf->lastCol < char_col)) return -1; ncol = (pcf->lastCol - pcf->firstCol + 1); i = (char_col - pcf->firstCol) + ncol * (char_row - pcf->firstRow); return pcf->encoding[i]; } Private char* PCF_GetProp(PCF pcf, char *name) { SEXP v; char *r; #if 0 char *prop_value, *val, str[160]; if (strcmp(name, "DEFAULT_CHAR") == 0){ sprintf(str, "%d", pcf->defaultCh); return vf_strdup(str); } else if (strcmp(name, "FONT_ASCENT") == 0){ sprintf(str, "%d", pcf->ascent); return vf_strdup(str); } else if (strcmp(name, "FONT_DESCENT") == 0){ sprintf(str, "%d", pcf->descent); return vf_strdup(str); } #endif if ((v = vf_sexp_assoc(name, pcf->props)) == NULL) return NULL; if ((r = vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v)))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } return r; /* CALLER MUST RELEASE THIS STRING LATER */ } Private PCF_CHAR PCF_GetPCFChar(PCF pcf, long code_point) { int index; if ((index = pcf_char_index(pcf, code_point)) < 0){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } return &pcf->char_table[index]; } /*EOF*/ vflib3-3.6.14.dfsg/src/pk.c0000644000175000017500000002444607363243303014646 0ustar mohuramohura/* * pk.c - TeX PK format font fonts loader. * * 28 Sep 1996 First version. * 30 Jan 1998 VFlib 3.4 Changed API. * 16 Sep 1999 Changed not to use TFM */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ Private PK_GLYPH pk_loader(VF_CACHE,FILE*); Private int pk_read_14(FILE*,int,int,UINT4,VF_BITMAP,long); Private int pk_read_n14(FILE*,int,int,UINT4,VF_BITMAP,long); Private long pk_read_packed_number(long*,FILE*,int); Private void pk_read_nyble_init(int); Private int pk_read_nyble(FILE*); Private unsigned char bit_table[] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; Private PK_GLYPH PK_CacheLoader(VF_CACHE c, char *font_path, int l) { FILE *fp; UINT1 pre, id; if (font_path == NULL) return NULL; if ((fp = vf_fm_OpenBinaryFileStream(font_path)) == NULL) return NULL; pre = READ_UINT1(fp); if (pre != PK_PRE) return NULL; id = READ_UINT1(fp); if (id != PK_ID) return NULL; return pk_loader(c, fp); } Private void PK_CacheDisposer(PK_GLYPH go) { int nc, i; if (go != NULL){ if (go->bm_table != NULL){ nc = go->code_max - go->code_min + 1; for (i = 0; i < nc; i++) vf_free(go->bm_table[i].bitmap); vf_free(go->bm_table); } vf_free(go); } } Private PK_GLYPH pk_loader(VF_CACHE c, FILE* fp) { PK_GLYPH go; UINT1 instr; UINT4 ds, check_sum, hppp, vppp, k; unsigned int flag, dny_f, bw, ess, size; UINT4 cc, tfm, dx, dy, dm, w, h, rs; INT4 hoff, voff, mv_x, mv_y; long gptr; int bc, ec, nchars, index, i; k = READ_UINT1(fp); SKIP_N(fp, k); ds = READ_UINT4(fp); check_sum = READ_UINT4(fp); hppp = READ_UINT4(fp); vppp = READ_UINT4(fp); gptr = ftell(fp); #if 0 /* read min & max char code */ bc = 256; ec = -1; for (;;){ instr = READ_UINT1(fp); if (instr == PK_POST) break; switch ((int) instr){ case PK_XXX1: k = (UINT4)READ_UINT1(fp); SKIP_N(fp, k); break; case PK_XXX2: k = (UINT4)READ_UINT2(fp); SKIP_N(fp, k); break; case PK_XXX3: k = (UINT4)READ_UINT3(fp); SKIP_N(fp, k); break; case PK_XXX4: k = (UINT4)READ_UINT4(fp); SKIP_N(fp, k); break; case PK_YYY: SKIP_N(fp, 4); break; case PK_NO_OP: break; default: size = instr & 0x3; instr >>= 2; ess = instr & 0x1; if (ess == 0){ /* short */ rs = (UINT4)(size*256) + (UINT4)READ_UINT1(fp); cc = (UINT4)READ_UINT1(fp); } else if ((ess == 1) && (size != 3)){ /* extended short */ rs = (UINT4)(size*65536) + (UINT4)READ_UINT2(fp); cc = (UINT4)READ_UINT1(fp); } else { /* standard */ rs = READ_UINT4(fp); cc = (UINT4)READ_UINT4(fp); } SKIP_N(fp, rs); if (cc < bc) bc = cc; if (cc > ec) ec = cc; break; } } #else bc = 0; ec = 255; #endif nchars = ec - bc + 1; ALLOC_IF_ERR(go, struct s_pk_glyph) return NULL; ALLOCN_IF_ERR(go->bm_table, struct vf_s_bitmap, nchars){ vf_free(go); return NULL; } for (i = 0; i < nchars; i++) go->bm_table[i].bitmap = NULL; go->ds = (double)ds/(1<<20); go->hppp = (double)hppp/(1<<16); go->vppp = (double)vppp/(1<<16); go->font_bbx_w = 0; go->font_bbx_h = 0; go->font_bbx_xoff = 0; go->font_bbx_yoff = 0; go->code_min = bc; go->code_max = ec; /* read glyphs */ fseek(fp, gptr, SEEK_SET); for (;;){ if ((instr = READ_UINT1(fp)) == PK_POST) break; switch ((int)instr){ case PK_XXX1: k = (UINT4)READ_UINT1(fp); SKIP_N(fp, k); break; case PK_XXX2: k = (UINT4)READ_UINT2(fp); SKIP_N(fp, k); break; case PK_XXX3: k = (UINT4)READ_UINT3(fp); SKIP_N(fp, k); break; case PK_XXX4: k = (UINT4)READ_UINT4(fp); SKIP_N(fp, k); break; case PK_YYY: SKIP_N(fp, 4); break; case PK_NO_OP: break; default: flag = instr; size = flag % 0x04; flag = flag >> 2; ess = flag % 0x02; flag = flag >> 1; bw = flag % 0x02; flag = flag >> 1; dny_f = flag % 0x10; if (ess == 0){ /* short */ rs = (UINT4)(size*256) + (UINT4)READ_UINT1(fp) - (UINT4)8; cc = (UINT4)READ_UINT1(fp); tfm = (UINT4)READ_UINT3(fp); dm = (UINT4)READ_UINT1(fp); w = (UINT4)READ_UINT1(fp); h = (UINT4)READ_UINT1(fp); hoff = (INT4)READ_INT1(fp); voff = (INT4)READ_INT1(fp); mv_x = dm; mv_y = 0; } else if ((ess == 1) && (size != 3)){ /* extended short */ rs = (UINT4)(size*65536) + (UINT4)READ_UINT2(fp) - (UINT4)13; cc = (UINT4)READ_UINT1(fp); tfm = (UINT4)READ_UINT3(fp); dm = (UINT4)READ_UINT2(fp); w = (UINT4)READ_UINT2(fp); h = (UINT4)READ_UINT2(fp); hoff = (INT4)READ_INT2(fp); voff = (INT4)READ_INT2(fp); mv_x = dm; mv_y = 0; } else { /* standard */ rs = READ_UINT4(fp) - (UINT4)28; cc = READ_UINT4(fp); tfm = READ_UINT4(fp); dx = READ_UINT4(fp); dy = READ_UINT4(fp); w = READ_UINT4(fp); h = READ_UINT4(fp); hoff = READ_INT4(fp); voff = READ_INT4(fp); mv_x = (double)dx/(double)(1<<16); mv_y = (double)dy/(double)(1<<16); } if ((cc < go->code_min) || (go->code_max < cc)){ vf_error = VF_ERR_ILL_CODE_POINT; goto Error; } index = cc - go->code_min; go->bm_table[index].bbx_width = w; go->bm_table[index].bbx_height = h; go->bm_table[index].raster = (w+7)/8; go->bm_table[index].off_x = -hoff; go->bm_table[index].off_y = voff; go->bm_table[index].mv_x = mv_x; go->bm_table[index].mv_y = mv_y; go->bm_table[index].bitmap = (unsigned char*)malloc(h*((w+7)/8)); if (go->bm_table[index].bitmap == NULL){ vf_error = VF_ERR_NO_MEMORY; goto Error; } memclr(go->bm_table[index].bitmap, h*((w+7)/8)); if (dny_f == 14){ if (pk_read_14(fp, dny_f, bw, rs, &(go->bm_table[index]), cc) < 0){ vf_error = VF_ERR_ILL_FONT_FILE; goto Error; } } else { if (pk_read_n14(fp, dny_f, bw, rs, &(go->bm_table[index]), cc) < 0){ vf_error = VF_ERR_ILL_FONT_FILE; goto Error; } } if (go->font_bbx_w < w) go->font_bbx_w = w; if (go->font_bbx_h < h) go->font_bbx_h = h; if (go->font_bbx_xoff > -hoff) go->font_bbx_xoff = -hoff; if (go->font_bbx_yoff > (voff - h)) go->font_bbx_yoff = (voff - h); } } return go; Error: for (i = 0; i < nchars; i++){ if (go->bm_table[i].bitmap != NULL) vf_free(go->bm_table[i].bitmap); } vf_free(go->bm_table); vf_free(go); return NULL; } Private int pk_read_14(FILE* fp, int dyn_f, int bw, UINT4 rs, VF_BITMAP bm, long cc) { long x, y, x8, xm; unsigned char *bm_ptr; unsigned long bit16_buff; int rest_bit16_buff; static unsigned int mask_table[] = { 0xdead, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xdead }; if (rs == 0) return 0; x8 = bm->bbx_width / 8; xm = bm->bbx_width % 8; bm_ptr = bm->bitmap; bit16_buff = READ_UINT1(fp) << 8; rest_bit16_buff = 8; --rs; for(y = 0; y < bm->bbx_height; y++){ for(x = 0; x < x8; x++){ *(bm_ptr++) = bit16_buff >> 8; rest_bit16_buff -= 8; bit16_buff = (bit16_buff << 8) & 0xffff; if (rs > 0){ bit16_buff |= (READ_UINT1(fp) << (8 - rest_bit16_buff)); rest_bit16_buff += 8; --rs; } } if (xm != 0){ *(bm_ptr++) = (bit16_buff >> 8) & mask_table[xm]; rest_bit16_buff -= xm; bit16_buff = (bit16_buff << xm) & 0xffff; if (rest_bit16_buff < 8){ if (rs > 0){ bit16_buff |= (READ_UINT1(fp) << (8 - rest_bit16_buff)); rest_bit16_buff += 8; --rs; } } } } return 0; } Private int pk_read_n14(FILE* fp, int dyn_f, int bw, UINT4 rs, VF_BITMAP bm, long cc) { long x, y, xx, yy, repeat; int bits, b_p; unsigned char *p, *p0, *p1; pk_read_nyble_init(rs); p = bm->bitmap; bw = 1-bw; bits = 0; for (y = 0; y < bm->bbx_height; ){ b_p = 0; repeat = 0; p0 = p; for (x = 0; x < bm->bbx_width; x++){ if (bits == 0){ bw = 1-bw; if ((bits = pk_read_packed_number(&repeat, fp, dyn_f)) < 0) return -1; } if (bw == 1) *p = *p | bit_table[b_p]; --bits; if (++b_p >= 8){ b_p = 0; p++; } } if (b_p != 0) p++; y++; for (yy = 0; yy < repeat; yy++){ p1 = p0; for (xx = 0; xx < bm->raster; xx++) *(p++) = *(p1++); y++; } } return 0; } Private long pk_read_packed_number(long* repeat, FILE* fp, int dyn_f) { int d, n; long di; entry: d = pk_read_nyble(fp); if (d == 0){ n = 0; do { di = pk_read_nyble(fp); n++; } while (di == 0); for ( ; n > 0; n--) di = di*16 + pk_read_nyble(fp); return di - 15 + (13 - dyn_f)*16 + dyn_f; } if (d <= dyn_f) return d; if (d <= 13) return (d - dyn_f - 1)*16 + pk_read_nyble(fp) + dyn_f + 1; *repeat = 1; if (d == 14) *repeat = pk_read_packed_number(repeat, fp, dyn_f); goto entry; } Private int pk_read_nyble_rest_cnt; Private int pk_read_nyble_max_bytes; Private void pk_read_nyble_init(int max) { pk_read_nyble_rest_cnt = 0; pk_read_nyble_max_bytes = max; } Private int pk_read_nyble(FILE* fp) { static UINT1 d; int v; switch (pk_read_nyble_rest_cnt){ case 0: d = READ_UINT1(fp); if (--pk_read_nyble_max_bytes < 0) return -1L; v = d / 0x10; d = d % 0x10; pk_read_nyble_rest_cnt = 1; break; case 1: default: v = d; pk_read_nyble_rest_cnt = 0; break; } return v; } /*EOF*/ vflib3-3.6.14.dfsg/src/raster.c0000644000175000017500000003017306750013464015530 0ustar mohuramohura/* * raster.c - a rasterizer for outline data * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1993-1997 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include "config.h" #include "VFlib-3_6.h" #include "VFsys.h" #include "consts.h" #include "bitmap.h" Private VF_BITMAP Vbm; Private int Vmax_width, Vmax_height; Private VF_OUTLINE_ELEM read_xy(int*,int*,VF_OUTLINE_ELEM**,VF_OUTLINE_ELEM); Private void draw_arc(int*,int*,void(*)()); Private void draw_bezier(int*,int*,void(*)()); Private void fill_edges(), trace_outline(); #ifndef M_PI # define M_PI 3.14159265358979323846 #endif #define ARC_DIV 8 #define BEZ_DIV 8 static unsigned char flip[] = { 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01}; static unsigned char bit_table[] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; /** ** VF_Outline2Bitmap **/ Public VF_BITMAP VF_OutlineToBitmap(VF_OUTLINE outline, double dpi_x, double dpi_y, double point_size, double mag_x, double mag_y) { vf_error = 0; return vf_outline_to_bitmap(outline, dpi_x, dpi_y, point_size, mag_x, mag_y); } Glocal VF_BITMAP vf_outline_to_bitmap(VF_OUTLINE outline, double dpi_x, double dpi_y, double point_size, double mag_x, double mag_y) { double bbx_w, bbx_h; VF_BITMAP bm; if (outline == NULL) return NULL; bbx_w = mag_x * (double)outline[VF_OL_HEADER_INDEX_MAX_X] / (double)outline[VF_OL_HEADER_INDEX_EM]; bbx_h = mag_y * (double)outline[VF_OL_HEADER_INDEX_MAX_Y] / (double)outline[VF_OL_HEADER_INDEX_EM]; if (point_size >= 0){ bbx_w *= point_size; bbx_h *= point_size; } else { bbx_w *= VF_OL_HEADER_DECODE(outline[VF_OL_HEADER_INDEX_POINT_SIZE]); bbx_h *= VF_OL_HEADER_DECODE(outline[VF_OL_HEADER_INDEX_POINT_SIZE]); } if ((dpi_x >= 0) && (dpi_y >= 0)){ bbx_w *= (dpi_x / 72.27); bbx_h *= (dpi_y / 72.27); } else { bbx_w *= (VF_OL_HEADER_DECODE(outline[VF_OL_HEADER_INDEX_DPI_X]) / 72.27); bbx_h *= (VF_OL_HEADER_DECODE(outline[VF_OL_HEADER_INDEX_DPI_Y]) / 72.27); } if ((bm = vf_alloc_bitmap((int)ceil(bbx_w), (int)ceil(bbx_h))) == NULL) return NULL; bm->off_x = toint(0 - bbx_w * (double)outline[VF_OL_HEADER_INDEX_REF_X] / (double)outline[VF_OL_HEADER_INDEX_MAX_X]); bm->off_y = toint(bbx_h * (double)outline[VF_OL_HEADER_INDEX_REF_Y] / (double)outline[VF_OL_HEADER_INDEX_MAX_Y]); bm->mv_x = toint(bbx_w * (double)outline[VF_OL_HEADER_INDEX_MV_X] / (double)outline[VF_OL_HEADER_INDEX_MAX_X]); bm->mv_y = toint(bbx_h * (double)outline[VF_OL_HEADER_INDEX_MV_Y] / (double)outline[VF_OL_HEADER_INDEX_MAX_Y]); #if 0 printf(">>DEV: %f %f %fpt\n", dev_dpi_x, dev_dpi_y, point_size); printf(">>BBX: (%fx%f) \n", bbx_w, bbx_h); printf(">>BM BBX: (%dx%d) \n", bm->bbx_width, bm->bbx_height); printf(">>OFF: (%d,%d) MV: (%d,%d)\n", bm->off_x, bm->off_y, bm->mv_x, bm->mv_y); #endif if (vf_draw_outline(bm, outline) < 0){ vf_free_bitmap(bm); return NULL; } return bm; } Glocal int vf_draw_outline(VF_BITMAP bm, VF_OUTLINE outline) { int x[4], y[4], f; VF_OUTLINE_ELEM *olp, token; Private void (*func_table[])() = {fill_edges, trace_outline}; Vbm = bm; Vmax_width = outline[VF_OL_HEADER_INDEX_MAX_X]; Vmax_height = outline[VF_OL_HEADER_INDEX_MAX_Y]; for (f = 0; f <= 1; f++){ olp = &outline[VF_OL_OUTLINE_HEADER_SIZE_TYPE0]; token = *(olp++); while (token != 0L){ switch (token & (VF_OL_INSTR_LINE|VF_OL_INSTR_ARC|VF_OL_INSTR_BEZ)){ case VF_OL_INSTR_LINE: token = read_xy(x, y, &olp, token); func_table[f](x[0], y[0], x[1], y[1]); break; case VF_OL_INSTR_ARC: token = read_xy(x, y, &olp, token); draw_arc(x, y, func_table[f]); break; case VF_OL_INSTR_BEZ: token = read_xy(x, y, &olp, token); draw_bezier(x, y, func_table[f]); break; default: fprintf(stderr, "VFlib: bogus outline data\n"); vf_error = VF_ERR_BOGUS_OUTLINE; return -1; } } } return 0; } Private VF_OUTLINE_ELEM read_xy(int *x, int *y, VF_OUTLINE_ELEM **vfpp, VF_OUTLINE_ELEM token) { static int xbeg, ybeg; if (((token & VF_OL_INSTR_TOKEN) != 0) && ((token & (VF_OL_INSTR_CWCURV|VF_OL_INSTR_CCWCURV)) != 0)){ xbeg = VF_OL_GET_X(**vfpp) - VF_OL_COORD_OFFSET; ybeg = VF_OL_GET_Y(**vfpp) - VF_OL_COORD_OFFSET; token &= ~(VF_OL_INSTR_CWCURV|VF_OL_INSTR_CCWCURV); } switch (token & (VF_OL_INSTR_LINE|VF_OL_INSTR_ARC|VF_OL_INSTR_BEZ)){ case VF_OL_INSTR_BEZ: *x++ = VF_OL_GET_X(**vfpp) - VF_OL_COORD_OFFSET; *y++ = VF_OL_GET_Y(**vfpp) - VF_OL_COORD_OFFSET; (*vfpp)++; case VF_OL_INSTR_ARC: *x++ = VF_OL_GET_X(**vfpp) - VF_OL_COORD_OFFSET; *y++ = VF_OL_GET_Y(**vfpp) - VF_OL_COORD_OFFSET; (*vfpp)++; case VF_OL_INSTR_LINE: *x++ = VF_OL_GET_X(**vfpp) - VF_OL_COORD_OFFSET; *y++ = VF_OL_GET_Y(**vfpp) - VF_OL_COORD_OFFSET; (*vfpp)++; break; default: fprintf(stderr, "VFlib: bogus outline data.\n"); exit(1); } if ((**vfpp == 0) || (**vfpp & VF_OL_INSTR_TOKEN) != 0){ token = **vfpp; (*vfpp)++; if ( (token == 0) || ((token & (VF_OL_INSTR_CWCURV|VF_OL_INSTR_CCWCURV)) != 0) ){ *x = xbeg; *y = ybeg; return token; } else { ; /* ??? */ } } *x = VF_OL_GET_X(**vfpp) - VF_OL_COORD_OFFSET; *y = VF_OL_GET_Y(**vfpp) - VF_OL_COORD_OFFSET; return token; } Private void draw_arc(int *x, int *y, void (*draw_func)()) { double dx1, dy1, dx3, dy3, cx, cy, z, r, ang, dang, ang_step; int i; dx1 = x[0] - x[1]; dy1 = y[0] - y[1]; dx3 = x[2] - x[1]; dy3 = y[2] - y[1]; z = dx1*dy3 - dx3*dy1; if (z == 0){ if((dx1 == dx3) && (dy1 == dy3)){ cx = dx1 / 2.0; cy = dy1 / 2.0; r = sqrt(cx*cx + cy*cy); cx += x[1]; cy += y[1]; ang = 0.0; dang = 2.0 * M_PI; } else { (*draw_func)(x[0], y[0], x[2], y[2]); return; } } else { cx = ((dx1*dx1 + dy1*dy1)*dy3 - (dx3*dx3 + dy3*dy3)*dy1) / z / 2.0; cy = - ((dx1*dx1 + dy1*dy1)*dx3 - (dx3*dx3 + dy3*dy3)*dx1) / z / 2.0; r = sqrt(cx*cx + cy*cy); ang = atan2(dy1-cy, dx1-cx); dang = atan2(dy3-cy, dx3-cx); if (z < 0){ if (dang < ang) dang += 2.0 * M_PI; } else { if (dang > ang) dang -= 2.0 * M_PI; } dang -= ang; if(dang == 0.0){ ang = 0.0; dang = 2.0 * M_PI; } cx += x[1]; cy += y[1]; } ang_step = dang / (double)ARC_DIV; dx1 = x[0]; dy1 = y[0]; ang += ang_step; for (i = 1; i < ARC_DIV; i++){ dx3 = cx + r * cos(ang); dy3 = cy + r * sin(ang); (*draw_func)((int)dx1, (int)dy1, (int)dx3, (int)dy3); dx1 = dx3; dy1 = dy3; ang += ang_step; } dx3 = x[2]; dy3 = y[2]; (*draw_func)((int)dx1, (int)dy1, (int)dx3, (int)dy3); } Private void draw_bezier(int *x, int* y, void (*draw_func)()) { int i, xs, ys, xe, ye; static double b[BEZ_DIV][4]; static double t = -1; if (t < 0){ for (i = 0; i < BEZ_DIV; i++){ t = (double)(i+1) / BEZ_DIV; b[i][0] = (1.0-t)*(1.0-t)*(1.0-t); b[i][1] = 3.0*t*(1.0-t)*(1.0-t); b[i][2] = 3.0*t*t*(1.0-t); b[i][3] = t*t*t; } } xs = x[0]; ys = y[0]; for (i = 0; i < BEZ_DIV; i++) { xe = b[i][0]*x[0] + b[i][1]*x[1] + b[i][2]*x[2] + b[i][3]*x[3]; ye = b[i][0]*y[0] + b[i][1]*y[1] + b[i][2]*y[2] + b[i][3]*y[3]; (*draw_func)((int)xs, (int)ys, (int)xe, (int)ye); xs = xe; ys = ye; } } Private void trace_outline(int x1, int y1, int x2, int y2) { int xx1, yy1, xx2, yy2; int dxx, dyy, dxx2, dyy2, e, i, tmp; unsigned char *bm_ptr, mask; xx1 = toint(((double)x1*Vbm->bbx_width) / (double)Vmax_width); yy1 = toint(((double)y1*Vbm->bbx_height) / (double)Vmax_height); xx2 = toint(((double)x2*Vbm->bbx_width) / (double)Vmax_width); yy2 = toint(((double)y2*Vbm->bbx_height) / (double)Vmax_height); if (xx1 < 0) xx1 = 0; else if (xx1 >= Vbm->bbx_width) xx1 = Vbm->bbx_width-1; if (yy1 < 0) yy1 = 0; else if (yy1 >= Vbm->bbx_height) yy1 = Vbm->bbx_height-1; if (xx2 < 0) xx2 = 0; else if (xx2 >= Vbm->bbx_width) xx2 = Vbm->bbx_width-1; if (yy2 < 0) yy2 = 0; else if (yy2 >= Vbm->bbx_height) yy2 = Vbm->bbx_height-1; #if 0 printf("LINE: (%d,%d)-(%d,%d)\n", xx1, yy1, xx2, yy2); #endif if ((dyy = yy2 - yy1) < 0){ tmp = xx1; xx1 = xx2; xx2 = tmp; tmp = yy1; yy1 = yy2; yy2 = tmp; dyy = -dyy; } dxx = xx2 - xx1; if ((dxx == 0) && (dyy == 0)){ Vbm->bitmap[yy1*Vbm->raster + (xx1/0x08)] |= bit_table[xx1%0x08]; return; } if (dxx < 0) dxx = -dxx; bm_ptr = &Vbm->bitmap[yy1*Vbm->raster + (xx1/0x08)]; mask = bit_table[xx1%0x08]; dxx2 = 2*dxx; dyy2 = 2*dyy; if (dxx < dyy){ e = dxx2 - dyy; if (xx1 < xx2){ for (i = 0; i <= dyy; i++){ *bm_ptr |= mask; while (e >= 0){ if ((mask >>= 1) == 0){ bm_ptr++; mask = 0x80; } e -= dyy2; } bm_ptr += Vbm->raster; e += dxx2; } } else { for (i = 0; i <= dyy; i++) { *bm_ptr |= mask; while (e >= 0) { if ((mask <<= 1) == 0) { bm_ptr--; mask = 0x1; } e -= dyy2; } bm_ptr += Vbm->raster; e += dxx2; } } } else { e = dyy2 - dxx; if (xx1 < xx2){ for (i = 0; i <= dxx; i++){ *bm_ptr |= mask; while (e >= 0) { bm_ptr += Vbm->raster; e -= dxx2; } if ((mask >>= 1) == 0) { bm_ptr++; mask = 0x80; } e += dyy2; } } else { for (i = 0; i <= dxx; i++){ *bm_ptr |= mask; while (e >= 0) { bm_ptr += Vbm->raster; e -= dxx2; } if ((mask <<= 1) == 0){ bm_ptr--; mask = 0x1; } e += dyy2; } } } } Private void fill_edges(int x1, int y1, int x2, int y2) { int xx1, yy1, xx2, yy2; int dxx, dyy, dxx2, dyy2, sx, e, i, j, tmp; unsigned char *bm_ptr; int bit, rbytes; xx1 = toint(((double)x1*Vbm->bbx_width) / (double)Vmax_width); yy1 = toint(((double)y1*Vbm->bbx_height) / (double)Vmax_height); xx2 = toint(((double)x2*Vbm->bbx_width) / (double)Vmax_width); yy2 = toint(((double)y2*Vbm->bbx_height) / (double)Vmax_height); if (xx1 < 0) xx1 = 0; else if (xx1 >= Vbm->bbx_width) xx1 = Vbm->bbx_width-1; if (yy1 < 0) yy1 = 0; else if (yy1 >= Vbm->bbx_height) yy1 = Vbm->bbx_height-1; if (xx2 < 0) xx2 = 0; else if (xx2 >= Vbm->bbx_width) xx2 = Vbm->bbx_width-1; if (yy2 < 0) yy2 = 0; else if (yy2 >= Vbm->bbx_height) yy2 = Vbm->bbx_height-1; #if 0 printf("LINE: (%d,%d)-(%d,%d)\n", xx1, yy1, xx2, yy2); #endif if ((dyy = yy2-yy1) == 0) return; if (dyy < 0){ tmp = xx1; xx1 = xx2; xx2 = tmp; tmp = yy1; yy1 = yy2; yy2 = tmp; dyy = -dyy; } dxx = xx2 - xx1; sx = (dxx > 0) ? 1 : -1; if (dxx < 0) dxx = -dxx; rbytes = Vbm->raster - (xx1/8) + 1; bit = xx1 % 8; dxx2 = 2*dxx; dyy2 = 2*dyy; e = dxx2-dyy; bm_ptr = &Vbm->bitmap[yy1*Vbm->raster + (xx1/8)]; if ((xx1 == xx2) && (yy1 == yy2)){ /* *bm_ptr |= bit_table[xx1%0x08];*/ return; } for (i = 0; i < dyy; i++){ bm_ptr[0] ^= flip[bit]; for (j = 1; j <= rbytes; j++) bm_ptr[j] = ~bm_ptr[j]; while (e >= 0){ bit += sx; if (bit & 8){ bm_ptr += sx; rbytes -= sx; bit &= 7; } e -= dyy2; } bm_ptr += Vbm->raster; e += dxx2; } } /*EOF*/ vflib3-3.6.14.dfsg/src/sexp.c0000644000175000017500000006730510225347231015210 0ustar mohuramohura/* vfsexp.c - a module for handling s-expressions * * Programmmed by Hirotsugu Kakugawa * E-Mail: h.kakugawa@computer.org * * Edition History * 7 Jan 1998 First implementation * 2 May 1998 Fix a bug to fail reading a string "" * 24 Jun 1998 Added a function to read an s-exp from string stream. */ /* * Copyright (C) 1997-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #if defined(HAVE_STRING_H) || defined(STDC_HEADERS) # include #else # include #endif #include #include "sexp.h" #include "mem.h" #define TRUE (1==1) #define FALSE (1==0) static SEXP vf_sexp_alloc(int tag); static void vf_sexp_obj_validate(SEXP s1); static void vf_sexp_obj_validate2(SEXP s1, SEXP s2); /* * Basic Functions */ SEXP vf_sexp_cons(SEXP car, SEXP cdr) { SEXP cell; vf_sexp_obj_validate2(car, cdr); cell = vf_sexp_alloc(VF_SEXP_TAG_CONS); if (cell == NULL) return NULL; cell->t.cons.car = car; cell->t.cons.cdr = cdr; return cell; } SEXP vf_sexp_car(SEXP s) { vf_sexp_obj_validate(s); if (s->tag != VF_SEXP_TAG_CONS){ fprintf(stderr, "VFlib Error [sexp.c:vf_sexp_car()]: %s\n", "arg type error"); abort(); } return s->t.cons.car; } SEXP vf_sexp_cdr(SEXP s) { vf_sexp_obj_validate(s); if (s->tag != VF_SEXP_TAG_CONS){ fprintf(stderr, "VFlib Error [sexp.c:vf_sexp_cdr()]: %s\n", "arg type error"); abort(); } return s->t.cons.cdr; } SEXP vf_sexp_caar(SEXP s) { vf_sexp_obj_validate(s); if ((s->tag != VF_SEXP_TAG_CONS) || ((s->t.cons.car)->tag != VF_SEXP_TAG_CONS)){ fprintf(stderr, "VFlib Error [sexp.c:vf_sexp_caar()]: %s\n", "arg type error"); abort(); } vf_sexp_obj_validate(s->t.cons.car); return (s->t.cons.car)->t.cons.car; } SEXP vf_sexp_cadr(SEXP s) { vf_sexp_obj_validate(s); if ((s->tag != VF_SEXP_TAG_CONS) || ((s->t.cons.cdr)->tag != VF_SEXP_TAG_CONS)){ fprintf(stderr, "VFlib Error [sexp.c:vf_sexp_cadr()]: %s\n", "arg type error"); abort(); } vf_sexp_obj_validate(s->t.cons.cdr); return (s->t.cons.cdr)->t.cons.car; } SEXP vf_sexp_cdar(SEXP s) { vf_sexp_obj_validate(s); if ((s->tag != VF_SEXP_TAG_CONS) || ((s->t.cons.car)->tag != VF_SEXP_TAG_CONS)){ fprintf(stderr, "VFlib Error [sexp.c:vf_sexp_cdar()]: %s\n", "arg type error"); abort(); } vf_sexp_obj_validate(s->t.cons.car); return (s->t.cons.car)->t.cons.cdr; } SEXP vf_sexp_cddr(SEXP s) { vf_sexp_obj_validate(s); if ((s->tag != VF_SEXP_TAG_CONS) || ((s->t.cons.cdr)->tag != VF_SEXP_TAG_CONS)){ fprintf(stderr, "VFlib Error [sexp.c:vf_sexp_cddr()]: %s\n", "arg type error"); abort(); } vf_sexp_obj_validate(s->t.cons.cdr); return (s->t.cons.cdr)->t.cons.cdr; } SEXP vf_sexp_caddr(SEXP s) { vf_sexp_obj_validate(s); if ((s->tag != VF_SEXP_TAG_CONS) || ((s->t.cons.cdr)->tag != VF_SEXP_TAG_CONS) || (((s->t.cons.cdr)->t.cons.cdr)->tag != VF_SEXP_TAG_CONS)){ fprintf(stderr, "VFlib Error [sexp.c:vf_sexp_caddr()]: %s\n", "arg type error"); abort(); } vf_sexp_obj_validate(s->t.cons.cdr); vf_sexp_obj_validate((s->t.cons.cdr)->t.cons.cdr); return ((s->t.cons.cdr)->t.cons.cdr)->t.cons.car; } void vf_sexp_rplaca(SEXP s, SEXP val) { vf_sexp_obj_validate2(s, val); if (s->tag != VF_SEXP_TAG_CONS){ fprintf(stderr, "VFlib Error [sexp.c:vf_sexp_rplaca()]: %s\n", "arg type error"); abort(); } s->t.cons.car = val; } void vf_sexp_rplacd(SEXP s, SEXP val) { vf_sexp_obj_validate2(s, val); if (s->tag != VF_SEXP_TAG_CONS){ fprintf(stderr, "VFlib Error [sexp.c:vf_sexp_rplacd()]: %s\n", "arg type error"); abort(); } s->t.cons.cdr = val; } int vf_sexp_atom(SEXP s) { if (s == NULL) return FALSE; vf_sexp_obj_validate(s); return (s->tag != VF_SEXP_TAG_CONS); } int vf_sexp_null(SEXP s) { if (s == NULL) return FALSE; vf_sexp_obj_validate(s); return (s->tag == VF_SEXP_TAG_NIL); } int vf_sexp_consp(SEXP s) { if (s == NULL) return FALSE; vf_sexp_obj_validate(s); return (s->tag == VF_SEXP_TAG_CONS); } int vf_sexp_stringp(SEXP s) { if (s == NULL) return FALSE; vf_sexp_obj_validate(s); return (((s->tag == VF_SEXP_TAG_STRING) || (s->tag == VF_SEXP_TAG_SYMBOL)) && (s->t.str != NULL)); } char* vf_sexp_get_cstring(SEXP s) { vf_sexp_obj_validate(s); if (!vf_sexp_stringp(s)){ fprintf(stderr, "VFlib Error [sexp.c:vf_sexp_get_cstring()]: %s\n", "arg type error"); abort(); } return s->t.str; } int vf_sexp_listp(SEXP s) { if (s == NULL) return FALSE; vf_sexp_obj_validate(s); if (vf_sexp_null(s)) return TRUE; return (s->tag == VF_SEXP_TAG_CONS); /* Since our s-exp reader does not support 'dot-notation', all cons data forms a list. */ } int vf_sexp_alistp(SEXP_ALIST s) { SEXP t; if (vf_sexp_null(s)) return TRUE; if (!vf_sexp_listp(s)) return FALSE; for (t = s; t->tag == VF_SEXP_TAG_CONS; t = t->t.cons.cdr){ if (!vf_sexp_listp(t->t.cons.car)) return FALSE; } return (t->tag == VF_SEXP_TAG_NIL); } int vf_sexp_member(char* key, SEXP_LIST s) { SEXP t; /* vf_sexp_member[(a b c ...), x] => True/False */ if (!vf_sexp_listp(s)) return FALSE; for (t = s; t->tag == VF_SEXP_TAG_CONS; t = t->t.cons.cdr){ if (((t->tag == VF_SEXP_TAG_STRING) || (t->tag == VF_SEXP_TAG_SYMBOL)) && (t->t.str != NULL) && (strcmp(key, t->t.str) == 0)) return TRUE; } return FALSE; } SEXP vf_sexp_alist_put(char *key, char *val, SEXP_ALIST alist) { SEXP sk, sv, t, v; if (!vf_sexp_alistp(alist)) return NULL; if (key == NULL) key = ""; if (val == NULL) val = ""; sk = vf_sexp_cstring2string(key); sv = vf_sexp_cstring2string(val); t = vf_sexp_list2(sk, sv); v = vf_sexp_cons(t, alist); return v; } SEXP vf_sexp_assoc(char* key, SEXP s) { SEXP t, pair; /* vf_sexp_assoc[((p1 v1 ...) (p2 v2 ...) ...), pi] => (pi vi ...) */ if ((key == NULL) || (s == NULL)) return NULL; if (!vf_sexp_alistp(s)) return NULL; for (t = s; (t != NULL) && (t->tag == VF_SEXP_TAG_CONS); t = t->t.cons.cdr){ if (t->t.cons.car == NULL) continue; pair = t->t.cons.car; if (vf_sexp_stringp(vf_sexp_car(pair)) && (strcmp(key, vf_sexp_get_cstring(vf_sexp_car(pair))) == 0)) return pair; } return NULL; } int vf_sexp_length(SEXP s) { int len; SEXP t; if (!vf_sexp_listp(s)) return 0; len = 0; for (t = s; t->tag == VF_SEXP_TAG_CONS; t = t->t.cons.cdr) len++; return len; } SEXP vf_sexp_list1(SEXP s) { return vf_sexp_cons(s, vf_sexp_empty_list()); } SEXP vf_sexp_list2(SEXP s1, SEXP s2) { return vf_sexp_cons(s1, vf_sexp_cons(s2, vf_sexp_empty_list())); } SEXP vf_sexp_copy(SEXP s) { SEXP cp, car, cdr; if (s == NULL) return NULL; vf_sexp_obj_validate(s); cp = vf_sexp_alloc(s->tag); if (cp == NULL) return NULL; switch (s->tag){ default: return NULL; case VF_SEXP_TAG_NIL: break; case VF_SEXP_TAG_CONS: car = vf_sexp_copy(s->t.cons.car); cdr = vf_sexp_copy(s->t.cons.cdr); if ((car == NULL) || (cdr == NULL)){ if (car != NULL) vf_sexp_free(&car); if (cdr != NULL) vf_sexp_free(&cdr); return NULL; } cp->t.cons.car = car; cp->t.cons.cdr = cdr; break; case VF_SEXP_TAG_STRING: case VF_SEXP_TAG_SYMBOL: if (s->t.str == NULL) goto Error; if ((cp->t.str = (char*)malloc(strlen(s->t.str)+1)) == NULL) goto Error; strcpy(cp->t.str, s->t.str); break; } return cp; Error: vf_sexp_free(&cp); return NULL; } void vf_sexp_nconc(SEXP s1, SEXP s2) { SEXP t, tt; if (s2 == NULL) return; if (s1 == NULL) return; if (!vf_sexp_listp(s1) && !vf_sexp_listp(s2)){ fprintf(stderr, "VFlib Error [sexp.c:vf_sexp_nconc()]: %s\n", "args type"); return; } if (vf_sexp_null(s2)) return; t = s1; while (vf_sexp_consp(vf_sexp_cdr(t))) t = vf_sexp_cdr(t); tt = vf_sexp_cdr(t); vf_sexp_free(&tt); vf_sexp_rplacd(t, s2); } SEXP vf_sexp_empty_list(void) { return vf_sexp_alloc(VF_SEXP_TAG_NIL); } SEXP vf_sexp_getf(SEXP s, char *key) { SEXP t; for (t = s; t->tag == VF_SEXP_TAG_CONS; t = t->t.cons.cdr){ if (vf_sexp_stringp(t->t.cons.car) && strcmp (key, vf_sexp_get_cstring (t->t.cons.car)) == 0){ return t->t.cons.cdr; } } return NULL; } /* * Pretty Print */ static void vf_sexp_pp2(FILE *fp, SEXP s, int depth, int need_indent, int vflibcap_entry_flag); void vf_sexp_pp(SEXP s) { vf_sexp_pp2(stdout, s, 0, 1, 0); fprintf(stdout, "\n"); } void vf_sexp_pp_fp(SEXP s, FILE *fp) { vf_sexp_pp2(fp, s, 0, 1, 0); fprintf(fp, "\n"); } void vf_sexp_pp_entry(SEXP s) { vf_sexp_pp2(stdout, s, 0, 1, 1); fprintf(stdout, "\n"); } void vf_sexp_pp_entry_fp(SEXP s, FILE *fp) { vf_sexp_pp2(fp, s, 0, 1, 1); fprintf(fp, "\n"); } static void vf_sexp_pp2(FILE *fp, SEXP s, int depth, int need_indent, int vflibcap_entry_flag) { SEXP t, u; char *p; int i; vf_sexp_obj_validate(s); if ((need_indent == 1) && (depth > 0)){ fprintf(fp, "\n"); for (i = 0; i < depth; i++) fprintf(fp, " "); } switch (s->tag){ default: fprintf(stderr, "VFlib: Unknown sexp object %p", (void*)s); abort(); case VF_SEXP_TAG_NIL: fprintf(fp, "()"); break; case VF_SEXP_TAG_STRING: case VF_SEXP_TAG_SYMBOL: if (s->tag == VF_SEXP_TAG_STRING) fprintf(fp, "\""); for (p = s->t.str; *p != '\0'; p++){ if (*p == '"'){ fprintf(fp, "\\\""); } else if (!iscntrl((int)(*p))){ fprintf(fp, "%c", *p); } else { switch (*p){ case '\a': fprintf(fp, "\\a"); break; case '\b': fprintf(fp, "\\b"); break; case '\f': fprintf(fp, "\\f"); break; case '\n': fprintf(fp, "\\n"); break; case '\r': fprintf(fp, "\\r"); break; case '\t': fprintf(fp, "\\t"); break; case '\v': fprintf(fp, "\\v"); break; default: fprintf(fp, "\\x%02x", *p); } } } if (s->tag == VF_SEXP_TAG_STRING) fprintf(fp, "\""); break; case VF_SEXP_TAG_CONS: #if 1 fprintf(fp, "("); if ((depth == 0) && (vf_sexp_length(s) > 2) && (vflibcap_entry_flag == 1) && (vf_sexp_stringp(vf_sexp_car(s))) && (vf_sexp_stringp(vf_sexp_car(vf_sexp_cdr(s)))) ){ vf_sexp_pp2(fp, vf_sexp_car(s), depth+1, 0, vflibcap_entry_flag); fprintf(fp, " "); vf_sexp_pp2(fp, vf_sexp_car(vf_sexp_cdr(s)), depth+1, 0, vflibcap_entry_flag); for (t = vf_sexp_cdr(vf_sexp_cdr(s)); vf_sexp_consp(t); t = vf_sexp_cdr(t)){ if (vf_sexp_stringp(vf_sexp_car(t))){ vf_sexp_pp2(fp, vf_sexp_car(t), depth+1, 1, 0); } else { fprintf(fp, "\n (%s", vf_sexp_get_cstring(vf_sexp_caar(t))); for (u = vf_sexp_cdar(t); vf_sexp_consp(u); u = vf_sexp_cdr(u)){ vf_sexp_pp2(fp, vf_sexp_car(u), depth+2, 1, 0); } fprintf(fp, ")"); } } } else { vf_sexp_pp2(fp, vf_sexp_car(s), depth+1, 0, vflibcap_entry_flag); for (t = vf_sexp_cdr(s); vf_sexp_consp(t); t = vf_sexp_cdr(t)){ fprintf(fp, " "); vf_sexp_pp2(fp, vf_sexp_car(t), depth+1, 0, vflibcap_entry_flag); } } fprintf(fp, ")"); #else fprintf(fp, "("); vf_sexp_pp2(fp, vf_sexp_car(s), depth+1, vflibcap_entry_flag); for (t = vf_sexp_cdr(s); vf_sexp_consp(t); t = vf_sexp_cdr(t)){ fprintf(fp, " "); vf_sexp_pp2(fp, vf_sexp_car(t), depth+1, 0, vflibcap_entry_flag); } fprintf(fp, ")"); #endif break; } } /* * S-Expression Reader */ typedef struct s_sexp_stream *SEXP_STREAM; struct s_sexp_stream { int ungetc_buff; void *obj; void *data1; void *data2; int (*get_char)(SEXP_STREAM stream); void (*unget_char)(SEXP_STREAM stream, int ch); }; #define SEXP_STREAM_GETC(stream) (stream->get_char)(stream) #define SEXP_STREAM_UNGETC(stream,ch) (stream->unget_char)(stream,ch) static SEXP vf_sexp_read_from_stream(SEXP_STREAM); static int string_stream_get_char(SEXP_STREAM); static void string_stream_unget_char(SEXP_STREAM,int); SEXP vf_sexp_read_from_string_stream(char *str) { struct s_sexp_stream stream_obj; stream_obj.ungetc_buff = -1; stream_obj.obj = str; stream_obj.data1 = str; stream_obj.get_char = string_stream_get_char; stream_obj.unget_char = string_stream_unget_char; return vf_sexp_read_from_stream(&stream_obj); } static int string_stream_get_char(SEXP_STREAM stream) { int ch; char *p; if (stream->ungetc_buff >= 0){ ch = stream->ungetc_buff; stream->ungetc_buff = -1; return ch; } stream->ungetc_buff = -1; p = stream->data1; if ((ch = *p) == '\0') return EOF; p++; stream->data1 = p; return ch; } static void string_stream_unget_char(SEXP_STREAM stream, int ch) { stream->ungetc_buff = ch; } static int file_stream_get_char(SEXP_STREAM); static void file_stream_unget_char(SEXP_STREAM,int); SEXP vf_sexp_read_from_file_stream(FILE *fp) { struct s_sexp_stream stream_obj; stream_obj.ungetc_buff = -1; stream_obj.obj = fp; stream_obj.get_char = file_stream_get_char; stream_obj.unget_char = file_stream_unget_char; return vf_sexp_read_from_stream(&stream_obj); } SEXP vf_sexp_read(FILE *fp) { return vf_sexp_read_from_file_stream(fp); } static int file_stream_get_char(SEXP_STREAM stream) { int ch; FILE *fp; if (stream->ungetc_buff >= 0){ ch = stream->ungetc_buff; stream->ungetc_buff = -1; return ch; } stream->ungetc_buff = -1; fp = stream->obj; return getc(fp); } static void file_stream_unget_char(SEXP_STREAM stream, int ch) { stream->ungetc_buff = ch; } static int vf_sexp_do_read_from_stream(SEXP_STREAM stream, SEXP sexp); static int vf_sexp_read_str(SEXP_STREAM stream, char ch, SEXP sexp); static int vf_sexp_skip(SEXP_STREAM stream); static char vf_get_char_esc(char **pp, SEXP_STREAM stream); #define NBUFFER_MIN 2*1024 #define NBUFFER_MED 4*1024 #define NBUFFER_MAX 16*1024 static SEXP vf_sexp_read_from_stream(SEXP_STREAM stream) { SEXP s; if ((s = vf_sexp_alloc(VF_SEXP_TAG_NIL)) == NULL) return NULL; if (vf_sexp_do_read_from_stream(stream, s) < 0){ vf_sexp_free(&s); return NULL; } return s; } static int vf_sexp_do_read_from_stream(SEXP_STREAM stream, SEXP s) { int ch; ch = vf_sexp_skip(stream); if (ch < 0) return -1; if (ch == '('){ /* cons or nil */ s->tag = VF_SEXP_TAG_NIL; for (;;){ ch = vf_sexp_skip(stream); if (ch < 0) return -1; if (ch == ')') /* nil */ break; SEXP_STREAM_UNGETC(stream, ch); /* cons */ s->tag = VF_SEXP_TAG_CONS; s->t.cons.car = NULL; s->t.cons.cdr = NULL; if ((s->t.cons.car = vf_sexp_alloc(VF_SEXP_TAG_NIL)) == NULL) return -1; if ((s->t.cons.cdr = vf_sexp_alloc(VF_SEXP_TAG_NIL)) == NULL) return -1; if (vf_sexp_do_read_from_stream(stream, s->t.cons.car) < 0){ fprintf(stderr, "VFlib: Broken vflibcap file - unexpected EOF\n"); return -1; } s = s->t.cons.cdr; ch = vf_sexp_skip(stream); if (ch < 0){ fprintf(stderr, "VFlib: Broken vflibcap file - unexpected EOF\n"); return -1; } if (ch == ')') break; SEXP_STREAM_UNGETC(stream, ch); } return 0; } else if (ch == ')'){ /* broken s-exp */ fprintf(stderr, "VFlib: Broken vflibcap file - unexpected ')'\n"); return -1; } else if (ch == '"'){ /* string */ s->tag = VF_SEXP_TAG_STRING; return vf_sexp_read_str(stream, ch, s); } else { /* symbol */ s->tag = VF_SEXP_TAG_SYMBOL; return vf_sexp_read_str(stream, ch, s); } fprintf(stderr, "VFlib Error [sexp.c:vf_sexp_read2()]: %s\n", "Cannot Happen"); abort(); return -1; } static int vf_sexp_read_str(SEXP_STREAM stream, char ch, SEXP s) { char tmp[8]; int ch1, dq_str; int bindex, i; unsigned int un; static char *buff = NULL; static int nbuff = 0; bindex = 0; s->t.str = NULL; /* alloc read buffer if not exist */ if (buff == NULL){ nbuff = NBUFFER_MIN; if ((buff = (char*)malloc(nbuff)) == NULL){ nbuff = 0; return -1; } } /* enclosed by double quote? */ dq_str = 0; if (ch == '"'){ dq_str = 1; if ((ch = SEXP_STREAM_GETC(stream)) < 0){ fprintf(stderr, "VFlib: Broken vflibcap file - unexpected EOF\n"); return -1; } if (ch == '"') goto STR_END; } for (;;){ /* realloc read buffer if strng is larger than buffer size */ if (bindex >= nbuff-1){ if ((nbuff = nbuff + NBUFFER_MIN) > NBUFFER_MAX){ fprintf(stderr, "VFlib: vflibcap too large. Fogotten parentheses?\n"); exit(1); } if ((buff = realloc(buff, nbuff)) == NULL) nbuff = 0; } if (ch == '\\'){ /* escape syntax */ ch1 = SEXP_STREAM_GETC(stream); if (isdigit((int)ch1)){ /* '\123' - octal (3 digits) */ tmp[0] = SEXP_STREAM_GETC(stream); tmp[1] = SEXP_STREAM_GETC(stream); tmp[2] = SEXP_STREAM_GETC(stream); tmp[3] = '\0'; sscanf(tmp, "%o", &un); ch = un; } else if (ch1 == 'x'){ /* '\x12' - hex (2 digits) */ tmp[0] = SEXP_STREAM_GETC(stream); tmp[1] = SEXP_STREAM_GETC(stream); tmp[2] = '\0'; sscanf(tmp, "%x", &un); ch = un; } else { /* '\n', '\t', '\:' etc. */ switch (ch1){ case 'a': ch = '\a'; break; case 'b': ch = '\b'; break; case 'f': ch = '\f'; break; case 'n': ch = '\n'; break; case 'r': ch = '\r'; break; case 't': ch = '\t'; break; case 'v': ch = '\v'; break; default: ch = ch1; break; } } } /* put a char into read buffer */ buff[bindex++] = ch; /* get next char */ ch = SEXP_STREAM_GETC(stream); if ((dq_str == 0) && (ch < 0)){ break; } else if ((dq_str == 1) && (ch < 0)){ fprintf(stderr, "VFlib: Broken vflibcap file - unexpected EOF: \""); for (i = 0; i < bindex; i++){ if ((buff[i] == '\0') || (buff[i] == '\n') || (buff[i] == '\f')) break; fprintf(stderr, "%c", buff[i]); } fprintf(stderr, "...\n"); return -1; } if ((dq_str == 1) && (ch == '"')){ break; } else if (dq_str == 0){ if (isspace((int)ch)) break; if ((ch == '(') || (ch == ')') || (ch == ';')){ SEXP_STREAM_UNGETC(stream, ch); break; } } } STR_END: buff[bindex++] = '\0'; /* copy into sexp */ if ((s->t.str = malloc(bindex)) == NULL) return -1; memcpy(s->t.str, buff, bindex); if (nbuff > NBUFFER_MED){ /* read buffer became large. release it. */ nbuff = NBUFFER_MED; if ((buff = realloc(buff, nbuff)) == NULL) nbuff = 0; } return 0; } static int vf_sexp_skip(SEXP_STREAM stream) { int ch; for (;;){ /* read a char from stream */ if ((ch = SEXP_STREAM_GETC(stream)) < 0) return -1; /* eof */ /* skip white space */ if (isspace((int)ch)) continue; if (ch != ';') break; /* skip comment */ if (ch == ';'){ for (;;){ /* skip until the end of line */ if ((ch = SEXP_STREAM_GETC(stream)) < 0) return -1; if (ch == '\n') break; } continue; } } return ch; } /* * Parse C String to String/List/AList */ SEXP vf_sexp_cstring2string(char *str) { SEXP s; if ((s = vf_sexp_alloc(VF_SEXP_TAG_STRING)) == NULL) return NULL; if (str == NULL) str = ""; if ((s->t.str = (char*)malloc(strlen(str)+1)) == NULL){ vf_sexp_free(&s); return NULL; } strcpy(s->t.str, str); return s; } SEXP vf_sexp_cstring2list(char *cstr) /* C-str "xxx, yyy, zzz, ..." ==> SEXP ("xxx" "yyy" "zzz" ...) */ { SEXP head, tail, last, cell, str, val; char c, *start, *p, *q; int len, i; head = vf_sexp_alloc(VF_SEXP_TAG_CONS); tail = vf_sexp_alloc(VF_SEXP_TAG_NIL); vf_sexp_rplacd(head, tail); if (cstr == NULL) goto End; p = cstr; last = head; for (;;){ /* skip spaces */ for (c = *p; (!isprint((int)c)||isspace((int)c)) && (c != '\0') ; p++, c = *p) ; if (c == '\0') break; /* an element starts */ start = p; len = 0; /* go to end of an element */ for (c = *p; (isprint((int)c)&&!isspace((int)c)) && (c != ',') && (c != '\0'); len++, p++, c = *p){ (void) vf_get_char_esc(&p, NULL); } /* copy string */ str = vf_sexp_alloc(VF_SEXP_TAG_STRING); str->t.str = (char*)malloc(len+1); for (i = 0, q = start; i < len; i++){ str->t.str[i] = vf_get_char_esc(&q, NULL); q++; } str->t.str[len] = '\0'; cell = vf_sexp_cons(str, last); vf_sexp_rplacd(last, cell); vf_sexp_rplacd(cell, tail); last = cell; if (c == '\0') break; /* skip spaces */ for (c = *p; (!isprint((int)c)||isspace((int)c)) && (c != ',') && (c != '\0'); p++, c = *p) ; if (c == '\0') break; if (c == ',') p++; } End: val = vf_sexp_cdr(head); head->t.cons.cdr = NULL; vf_sexp_free(&head); return val; } SEXP vf_sexp_cstring2alist(char *cstr) /* C-str "x1=y1, x2=y2, ..." ==> SEXP (("x1" "y1") ("x2" "y2") ...) */ { SEXP head, tail, last, cell_list1, cell_list2, cell, nil; SEXP str_key, str_val, val; char c, *start_key, *start_val, *p, *q; int len_key, len_val, i; head = vf_sexp_alloc(VF_SEXP_TAG_CONS); tail = vf_sexp_alloc(VF_SEXP_TAG_NIL); vf_sexp_rplacd(head, tail); if (cstr == NULL) goto End; p = cstr; last = head; for (;;){ /* skip spaces */ for (c = *p; (!isprint((int)c)||isspace((int)c)) && (c != '\0'); p++, c = *p) ; if (c == '\0') break; /* an key starts */ /* "^..." */ start_key = p; len_key = 0; /* go to end of an key */ for (c = *p; (isprint((int)c)&&!isspace((int)c)) && (c != '=') && (c != ',') && (c != '\0'); len_key++, p++, c = *p) ; /* skip spaces */ for (c = *p; (!isprint((int)c)||isspace((int)c)) && (c != '\0'); p++, c = *p) ; if ((c == ',') || (c == '\0')){ /* "KEY ^, ..." or "KEY ^" */ start_val = NULL; len_val = 0; goto Found; } if ((c != '=') && isprint((int)c)){ /* "KEY ^foo" */ start_val = NULL; len_val = 0; goto Found; } p++; /* "KEY ^= ..." */ /* skip spaces */ /* "KEY =^ ..." */ for (c = *p; (!isprint((int)c)||isspace((int)c)) && (c != '\0'); p++, c = *p) ; if ((c == ',') || (c == '\0')){ /* "KEY = ^, ..." or "KEY =^" */ start_val = NULL; len_val = 0; goto Found; } /* a value starts */ /* "KEY = ^..." */ start_val = p; len_val = 0; /* go to end of an value */ for (c = *p; (isprint((int)c)&&!isspace((int)c)) && (c != ',') && (c != '\0'); len_val++, p++, c = *p) (void) vf_get_char_esc(&p, NULL); /* "KEY = VALUE^... " */ Found: /* copy string */ str_key = vf_sexp_alloc(VF_SEXP_TAG_STRING); str_key->t.str = (char*)malloc(len_key+1); for (i = 0; i < len_key; i++) str_key->t.str[i] = start_key[i]; str_key->t.str[len_key] = '\0'; str_val = vf_sexp_alloc(VF_SEXP_TAG_STRING); str_val->t.str = (char*)malloc(len_val+1); for (i = 0, q = start_val; i < len_val; i++){ str_val->t.str[i] = vf_get_char_esc(&q, NULL); q++; } str_val->t.str[len_val] = '\0'; nil = vf_sexp_alloc(VF_SEXP_TAG_NIL); cell_list2 = vf_sexp_cons(str_val, nil); cell_list1 = vf_sexp_cons(str_key, cell_list2); cell = vf_sexp_cons(cell_list1, last); vf_sexp_rplacd(last, cell); vf_sexp_rplacd(cell, tail); last = cell; if (c == '\0') break; /* skip spaces */ for (c = *p; (!isprint((int)c)||isspace((int)c)) && (c != ',') && (c != '\0'); p++, c = *p) ; if (c == '\0') break; if (c == ',') p++; } End: val = vf_sexp_cdr(head); head->t.cons.cdr = NULL; vf_sexp_free(&head); return val; } static char vf_get_char_esc(char **pp, SEXP_STREAM stream) { char c, *p, tmp[8]; unsigned int un; p = NULL; if (pp != NULL) p = *pp; c = *p; if (c == '\\'){ c = *(++p); if (isdigit((int)c)){ tmp[0] = c; tmp[1] = *(++p); tmp[2] = *(++p); tmp[3] = '\0'; sscanf(tmp, "%o", &un); c = un; } else if (c == 'x'){ tmp[0] = *(++p); tmp[1] = *(++p); tmp[2] = '\0'; sscanf(tmp, "%x", &un); c = un; } else { switch (c){ case 'a': c = '\a'; break; case 'b': c = '\b'; break; case 'f': c = '\f'; break; case 'n': c = '\n'; break; case 'r': c = '\r'; break; case 't': c = '\t'; break; case 'v': c = '\v'; break; } } } if (pp != NULL) *pp = p; return c; } /* * Alloc/Release an S-Expression Object */ static SEXP vf_sexp_alloc(int tag) { SEXP s; if ((s = calloc(1, sizeof(struct s_sexp))) != NULL) s->tag = tag; switch (tag){ case VF_SEXP_TAG_NIL: break; case VF_SEXP_TAG_CONS: s->t.cons.car = NULL; s->t.cons.cdr = NULL; break; case VF_SEXP_TAG_STRING: case VF_SEXP_TAG_SYMBOL: s->t.str = NULL; } return s; } void vf_sexp_free4(SEXP *s1, SEXP *s2, SEXP *s3, SEXP *s4) { vf_sexp_free(s1); vf_sexp_free(s2); vf_sexp_free(s3); vf_sexp_free(s4); } void vf_sexp_free3(SEXP *s1, SEXP *s2, SEXP *s3) { vf_sexp_free(s1); vf_sexp_free(s2); vf_sexp_free(s3); } void vf_sexp_free2(SEXP *s1, SEXP *s2) { vf_sexp_free(s1); vf_sexp_free(s2); } void vf_sexp_free1(SEXP *s1) { vf_sexp_free(s1); } void vf_sexp_free(SEXP *var_ptr) { SEXP s, scar, scdr; if (var_ptr == NULL) return; if ((s = *var_ptr) == NULL) return; *var_ptr = NULL; vf_sexp_obj_validate(s); while (s != NULL){ switch (s->tag){ case VF_SEXP_TAG_CONS: scar = s->t.cons.car; scdr = s->t.cons.cdr; vf_sexp_free(&scar); s->tag = VF_SEXP_TAG_RELEASED; vf_free(s); s = scdr; break; case VF_SEXP_TAG_STRING: case VF_SEXP_TAG_SYMBOL: if (s->t.str != NULL) vf_free(s->t.str); /*FALLTHROUGHT*/ case VF_SEXP_TAG_NIL: s->tag = VF_SEXP_TAG_RELEASED; vf_free(s); return; case VF_SEXP_TAG_RELEASED: fprintf(stderr, "VFlib internal error: releasing released s-sexp obj\n"); abort(); default: fprintf(stderr, "VFlib internal error: cannot happen vf_sexp_free()\n"); abort(); } } } static void vf_sexp_obj_validate2(SEXP s1, SEXP s2) { vf_sexp_obj_validate(s1); vf_sexp_obj_validate(s2); } static void vf_sexp_obj_validate(SEXP s) { if ((s == NULL) || (s->tag == VF_SEXP_TAG_RELEASED)){ fprintf(stderr, "VFlib internal error: Invalid s-exp object\n"); abort(); } } #ifdef DEBUG /* * example 1 (file stream) : echo '( abcfdf 123 (3 4 5 ) )' | ./dbg-sexp * example 2 (string stream) : ./dbg-sexp '( abcfdf 123 (3 4 5 ) )' */ int main(int argc, char **argv) { char *str; SEXP s; if (argc > 1){ str = argv[1]; s = vf_sexp_read_from_string_stream(str); } else { s = vf_sexp_read_from_file_stream(stdin); } vf_sexp_pp(s); return 0; } #endif /*EOF*/ vflib3-3.6.14.dfsg/src/str.c0000644000175000017500000001005306750013463015032 0ustar mohuramohura/* * str.c - string functions * */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #if HAVE_STRING_H # include #endif #if HAVE_STRINGS_H # include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "str.h" Glocal char* vf_strdup(char *s) { char *p; if (s == NULL) return NULL; if ((p = (char*)malloc(strlen(s)+1)) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } strcpy(p, s); return p; } Glocal int vf_strcmp_ci(char *s1, char *s2) { for (;;){ if ((*s1 == '\0') && (*s2 == '\0')) return 0; if ((*s1 == '\0') || (*s2 == '\0')) return 1; if (tolower(*s1) != tolower(*s2)) return 1; s1++; s2++; } } Glocal int vf_strncmp_ci(char *s1, char *s2, int n) { while (n > 0){ if ((*s1 == '\0') && (*s2 == '\0')) return 0; if ((*s1 == '\0') || (*s2 == '\0')) return 1; if (tolower(*s1) != tolower(*s2)) return 1; s1++; s2++; n--; } return 0; } Glocal char* vf_index(char *s, char ch) { int i; if ((i = vf_index_i(s, ch)) < 0) return NULL; return &s[i]; } Glocal int vf_index_i(char *s, char ch) { int i; i = 0; while (s[i] != '\0'){ if (s[i] == ch) return i; i++; } return -1; } Glocal char* vf_rindex(char *s, char ch) { int i; if ((i = vf_rindex_i(s, ch)) < 0) return NULL; return &s[i]; } Glocal int vf_rindex_i(char *s, char ch) { int i; if (s == NULL) return -1; i = strlen(s)-1; while (i >= 0){ if (s[i] == ch) return i; --i; } return -1; } Glocal int vf_index_str_i(char *s, char *t) { int i, tlen; if (s == NULL) return -1; tlen = strlen(t); i = 0; while (s[i] != '\0'){ if (strncmp(&s[i], t, tlen) == 0) return i; i++; } return -1; } Glocal char* vf_index_str(char *s, char *t) { int i; if ((i = vf_index_str_i(s, t)) < 0) return NULL; return &s[i]; } Glocal int vf_rindex_str_i(char *s, char *t) { int i, tlen; if ((s == NULL) | (t == NULL)) return -1; tlen = strlen(t); i = strlen(s) - tlen; while (i >= 0){ if (strncmp(&s[i], t, tlen) == 0) return i; --i; } return -1; } Glocal char* vf_rindex_str(char *s, char *t) { int i; if ((i = vf_rindex_str_i(s, t)) < 0) return NULL; return &s[i]; } Glocal int vf_parse_bool(char *s) { if ( (vf_strncmp_ci(s, "TRUE", 4) == 0) || (vf_strncmp_ci(s, "YES", 3) == 0) || (vf_strncmp_ci(s, "OK", 2) == 0) || (vf_strncmp_ci(s, "ON", 2) == 0) || (vf_strncmp_ci(s, "T", 1) == 0) /* lisp */ || (vf_strncmp_ci(s, "#T", 2) == 0) /* scheme */ || (vf_strncmp_ci(s, "1", 1) == 0) ) return TRUE; if ( (vf_strncmp_ci(s, "FALSE", 5) == 0) || (vf_strncmp_ci(s, "NO", 2) == 0) || (vf_strncmp_ci(s, "OFF", 2) == 0) || (vf_strncmp_ci(s, "NIL", 3) == 0) /* lisp */ || (vf_strncmp_ci(s, "#F", 2) == 0) /* scheme */ || (vf_strncmp_ci(s, "0", 1) == 0) ) return FALSE; /*XXX*/ /* Need a warning message? */ /* Need to specify default value? */ return FALSE; } /*EOF*/ vflib3-3.6.14.dfsg/src/with.h.in0000644000175000017500000000251107023367457015620 0ustar mohuramohura/* Define if you compile VFlib with kpathsea. */ #undef WITH_KPATHSEA /* Define if you compile VFlib with BDF font driver */ #undef WITH_BDF /* Define if you compile VFlib with PCF font driver */ #undef WITH_PCF /* Define if you compile VFlib with HBF font driver */ #undef WITH_HBF /* Define if you compile VFlib with ZEIT font driver */ #undef WITH_ZEIT /* Define if you compile VFlib with JG font driver */ #undef WITH_JG /* Define if you compile VFlib with EKANJI font driver */ #undef WITH_EKANJI /* Define if you compile VFlib with TrueType font driver */ #undef WITH_TRUETYPE /* Define if you compile VFlib with Type1 font driver */ #undef WITH_TYPE1 /* Define if you compile VFlib with GF font driver */ #undef WITH_GF /* Define if you compile VFlib with PK font driver */ #undef WITH_PK /* Define if you compile VFlib with TFM font driver */ #undef WITH_TFM /* Define if you compile VFlib with VF font driver */ #undef WITH_VF /* Define if you compile VFlib with JTEX font driver */ #undef WITH_JTEX /* Define if you compile VFlib with TeX font driver family */ #undef WITH_TEXFONTS /* Define if you compile VFlib with Japanese COMIC font driver */ #undef WITH_COMIC /* Define if you compile VFlib with TRY font driver */ #undef WITH_TRY /* Define if you compile VFlib with Mojikyo Mapping font driver */ #undef WITH_MOJIKMAP vflib3-3.6.14.dfsg/src/test-gen.c0000644000175000017500000000526006553303436015757 0ustar mohuramohura/* * test-gen.c - a test input generator for vfserver * by Hirotsugu Kakugawa * * 6 Aug 1997 Upgraded for VFlib 3.3 */ /* * Copyright (C) 1996, 1997 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include void usage(void); int main(int argc, char **argv) { int i, ch0, ch1, font_id; char *font; double mag, point, dpi; argc--; argv++; font = NULL; mag = 1; point = -1; dpi = -1; ch0 = 0x21; ch1 = 0x7e; font_id = 0; while ((argc > 0) && (*argv[0] == '-')){ if (strcmp(argv[0], "-m") == 0){ mag = atof(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-p") == 0){ point = atof(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-d") == 0){ dpi = atof(argv[1]); argc--; argv++; } if ((strcmp(argv[0], "-h") == 0)|| (strcmp(argv[0], "-h") == 0)){ usage(); } argc--; argv++; } if (argc <= 0) usage(); font = argv[0]; if (argc == 2){ sscanf(argv[1], "%i", &ch0); ch1 = ch0; } else if (argc >= 3) { sscanf(argv[1], "%i", &ch0); sscanf(argv[2], "%i", &ch1); } printf("COMMENT AN INPUT FOR VFSERVER GENERATED BY TEST-GEN.\n"); printf("DEBUG BITMAP 1\n"); printf("OPEN1 %s %.2f %.4f %.4f %.2f %.2f\n", font, point, mag, mag, dpi, dpi); for (i = ch0; i <= ch1; i++){ printf("BITMAP1 %d 0x%x\n", font_id, i); } printf("%s\n", "QUIT"); return 0; } void usage(void) { printf("test-gen - Generate an input for vfserver.\n"); printf("Usage: test-gen [Options] FONT [CODE_POINT_FROM [CODE_POINT_TO]]\n"); printf("Options: -m MAG magnification\n"); printf(" -p POINT point size\n"); printf(" -d DPI device resolution in dpi\n"); printf(" -h print this.\n"); printf("Example: test-gen timR24.pcf 0x21 0x7e | vfserver \n"); printf("Example: test-gen timR24.pcf 0x31 | vfserver \n"); printf("Example: test-gen jiskan16.bdf 0x4121 0x417e | vfserver \n"); exit(0); } /*EOF*/ vflib3-3.6.14.dfsg/src/texfonts.c0000644000175000017500000006727007561605300016107 0ustar mohuramohura/* * texfonts.c - Pseudo font class for TeX-related files (GF, PK, VF, TFM) * * 28 Sep 1996 * 25 Mar 1997 Added setting a program name for kpathsea by variable. * 02 Apr 1997 Added support for .ofm files (Omega metrics file) (WL) * 3 Jul 1997 Added Virtual Font support. * 8 Aug 1997 for VFlib 3.3 * 1 Feb 1998 for VFlib 3.4 * 22 Jul 1998 Added TeX font mapping feafure. * 24 Nov 1998 Added get_fontbbx1() and get_fontbbx2(). * 16 Sep 1999 Modified TeX-font-mapper not to open TFM files as possible. */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include "with.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "consts.h" #include "cache.h" #include "bitmap.h" #include "sexp.h" #include "str.h" #include "path.h" #include "fsearch.h" #include "texfonts.h" #include "tfm.h" Private SEXP_STRING default_tex_dpi = NULL; Private int v_default_tex_dpi = DEFAULT_DPI; Private SEXP_LIST default_fontdirs = NULL; Private SEXP_LIST default_tfm_dirs = NULL; Private SEXP_LIST default_tfm_extensions = NULL; Private SEXP default_font_mapping = NULL; Private SEXP default_resolution_corr = NULL; Private SEXP default_resolution_accu = NULL; Private double v_default_resolution_accu = DEFAULT_RESOLUTION_ACCU; Private SEXP_STRING default_debug_mode = NULL; Glocal SEXP_ALIST vf_tex_default_properties = NULL; Glocal SEXP_ALIST vf_tex_default_variables = NULL; Glocal int vf_dbg_drv_texfonts = 0; Private int tex_create(VF_FONT,char*,char*,int,SEXP); Private int syntax_check_resolution_corr(void); Private int tex_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry); Private int tex_close(VF_FONT font); Private int tex_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric1, double,double); Private int tex_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric2, double,double); Private int tex_get_fontbbx1(VF_FONT,double,double, double*,double*,double*,double*); Private int tex_get_fontbbx2(VF_FONT,double,double, int*,int*,int*,int*); Private VF_BITMAP tex_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP tex_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE tex_get_outline(VF_FONT,long,double,double); Private char* tex_get_font_prop(VF_FONT,char*); Private int tex_query_font_type(VF_FONT font, long code_point); Private void tex_map_name(char *fontname, int n, char *mapping, char *name_str, char *dpi_str, char *ext_str); Private int try_open_mapped_font(SEXP s, char *name_str, char *dpi_str, char *ext_str, VF_FONT font, char *name, double design_size, SEXP tfm_dirs, SEXP tfm_extensions, double opt_mag); Private double get_design_size_from_tfm(char *font_name, SEXP tfm_dirs, SEXP tfm_extensions); Private int match_font_name(char *name, char *pat); Private int decompose_filename(char*,char**,char**,char**,char**); Glocal int VF_Init_Driver_TeX(void) { return vf_tex_init(); } Glocal int vf_tex_init(void) { static int inited = 0; struct s_capability_table ct[20]; int z; z = 0; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_STRING_LIST0; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_fontdirs; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_tex_dpi; /* VF_CAPE_TEX_TFM_DIRECTORIES */ ct[z].cap = VF_CAPE_TEX_TFM_DIRECTORIES; ct[z].type = CAPABILITY_STRING_LIST0; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_tfm_dirs; /* VF_CAPE_TEX_TFM_EXTENSIONS */ ct[z].cap = VF_CAPE_TEX_TFM_EXTENSIONS; ct[z].type = CAPABILITY_STRING_LIST0; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_tfm_extensions; /* VF_CAPE_TEX_FONT_MAPPING */ ct[z].cap = VF_CAPE_TEX_FONT_MAPPING; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_font_mapping; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &vf_tex_default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &vf_tex_default_variables; /* VF_CAPE_RESOLUTION_CORR */ ct[z].cap = VF_CAPE_RESOLUTION_CORR; ct[z].type = CAPABILITY_LIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_resolution_corr; /* VF_CAPE_RESOLUTION_ACCU */ ct[z].cap = VF_CAPE_RESOLUTION_ACCU; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_resolution_accu; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (inited == 1) return 0; inited = 1; if (getenv("VFLIB_DEBUG_TEXFONTS") != NULL) vf_dbg_drv_texfonts = 1; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME_TeX, ct, NULL, NULL) == VFLIBCAP_PARSED_ERROR) return -1; v_default_tex_dpi = DEFAULT_DPI; if (default_tex_dpi != NULL) v_default_tex_dpi = atoi(vf_sexp_get_cstring(default_tex_dpi)); if (default_tfm_extensions == NULL) default_tfm_extensions = vf_sexp_cstring2list(DEFAULT_EXTENSIONS_TFM); vf_tfm_init(); if (default_resolution_corr != NULL){ if (syntax_check_resolution_corr() > 0){ vf_sexp_free(&default_resolution_corr); fprintf(stderr, "VFlib: value for capability %s is ignored.\n", VF_CAPE_RESOLUTION_CORR); } } v_default_resolution_accu = DEFAULT_RESOLUTION_ACCU; if (default_resolution_accu != NULL){ v_default_resolution_accu = atof(vf_sexp_get_cstring(default_resolution_accu)); if (v_default_resolution_accu <= 0) v_default_resolution_accu = DEFAULT_RESOLUTION_ACCU; } if (default_font_mapping != NULL){ if (vf_tex_syntax_check_font_mapping(default_font_mapping) > 0){ vf_sexp_free(&default_font_mapping); fprintf(stderr, "VFlib: capability %s is ignored because of syntax error.\n", VF_CAPE_TEX_FONT_MAPPING); } } VF_InstallFontDriver(FONTCLASS_NAME_TeX, (DRIVER_FUNC_TYPE)tex_create); return 0; } Private int syntax_check_resolution_corr(void) { int syntax_err, syntax_nerrs; SEXP s, t, u; syntax_nerrs = 0; for (s = default_resolution_corr; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ syntax_err = 0; u = t = vf_sexp_car(s); /* e.g., u = (300 300 329 360 394 ...) */ if (!vf_sexp_listp(u)){ syntax_err = 1; syntax_nerrs++; goto rc_try_next; } for ( ; vf_sexp_consp(u); u = vf_sexp_cdr(u)){ if (!vf_sexp_stringp(vf_sexp_car(u)) || (atoi(vf_sexp_get_cstring(vf_sexp_car(u))) <= 0)){ syntax_err = 1; syntax_nerrs++; goto rc_try_next; } } rc_try_next: if (syntax_err != 0){ fprintf(stderr, "VFlib: %s in capability %s of %s font class default: \n", "Syntax error", VF_CAPE_RESOLUTION_CORR, FONTCLASS_NAME_TeX); vf_sexp_pp_fp(t, stderr); } } return syntax_nerrs; } Private int tex_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { int fid; if (implicit == 0){ vf_error = VF_ERR_NO_FONT_ENTRY; return -1; /* this driver does not support explicit fonts. */ } if (default_font_mapping == NULL){ vf_error = VF_ERR_NO_FONT_ENTRY; return -1; } #if 1 fid = vf_tex_try_map_and_open_font(font, font_name, default_font_mapping, -1, default_tfm_dirs, default_tfm_extensions, 1.0); #else fid = vf_tex_try_map_and_open_font(font, font_name, default_font_mapping, default_tfm_dirs, NULL, default_tfm_extensions, 1.0); #endif if (fid < 0) return -1; font->font_type = VF_FONT_TYPE_UNDEF; font->get_metric1 = tex_get_metric1; font->get_metric2 = tex_get_metric2; font->get_fontbbx1 = tex_get_fontbbx1; font->get_fontbbx2 = tex_get_fontbbx2; font->get_bitmap1 = tex_get_bitmap1; font->get_bitmap2 = tex_get_bitmap2; font->get_outline = tex_get_outline; font->get_font_prop = tex_get_font_prop; font->query_font_type = tex_query_font_type; font->close = tex_close; font->private = (void*)fid; return 0; } Glocal int vf_tex_try_map_and_open_font(VF_FONT font, char *font_name, SEXP font_mapping, double tfm_design_size, SEXP tfm_dirs, SEXP tfm_extensions, double opt_mag) { char *name_str, *dpi_str, *ext_str, *ns, *pat; int fid; SEXP s, t; if (font_mapping == NULL){ vf_error = VF_ERR_NO_FONT_ENTRY; return -1; } fid = -1; name_str = dpi_str = ext_str = ns = NULL; if (decompose_filename(font_name, &name_str, &dpi_str, &ext_str, &ns) < 0) goto search_end; for (s = font_mapping; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ for (t = vf_sexp_car(s); vf_sexp_consp(t) && !vf_sexp_stringp(vf_sexp_car(t)); t = vf_sexp_cdr(t)) ; /* empty */ if (!vf_sexp_consp(t)) goto search_end; while (vf_sexp_consp(t) && vf_sexp_stringp(vf_sexp_car(t))){ pat = vf_sexp_get_cstring(vf_sexp_car(t)); if ((strcmp(ns, pat) == 0) || (strcmp(pat, "*") == 0) || (match_font_name(ns, pat) == 1)){ if ((fid = try_open_mapped_font(vf_sexp_car(s), name_str, dpi_str, ext_str, font, font_name, tfm_design_size, tfm_dirs, tfm_extensions, opt_mag)) >= 0) goto search_end; } t = vf_sexp_cdr(t); } } if (fid < 0) vf_error = VF_ERR_NO_FONT_ENTRY; search_end: vf_free(name_str); vf_free(dpi_str); vf_free(ext_str); return fid; } Private int match_font_name(char *name, char *patt) { while (*name != '\0'){ if (*patt == '*'){ return 1; } else { if (*patt != *name) return -1; } name++; patt++; } if (*patt != '\0') return -1; return 0; } Private int decompose_filename(char *font_name, char **name_str_p, char **dpi_str_p, char **ext_str_p, char **ns_p) { int len, i, i0, i1, dellen; char *name_str, *dpi_str, *ext_str, *ns; name_str = dpi_str = ext_str = ns = NULL; len = strlen(font_name); for (i0 = len-1; i0 >= 0; i0--){ if (font_name[i0] == '.'){ /* "cmr10.360pk" ==> len=11 * name_str = "cmr10" i0=5 * dpi_str = "360" i1=9 * ext_str = "pk" */ if ((name_str = (char*)malloc(i0+1)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto end; } strncpy(name_str, font_name, i0); name_str[i0] = '\0'; for (i1 = i0+1; isdigit((int)font_name[i1]); i1++) ; if ((dpi_str = (char*)malloc(i1-i0+1)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto end; } strncpy(dpi_str, &font_name[i0+1], i1-i0-1); dpi_str[i1-i0-1] = '\0'; if ((ext_str = (char*)malloc(strlen(&font_name[i1])+1)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto end; } strcpy(ext_str, &font_name[i1]); break; } } if ((len > 0) && (name_str == NULL) && (dpi_str == NULL) && (ext_str == NULL)){ if ((name_str = (char*)malloc(len+1)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto end; } strcpy(name_str, font_name); } if (name_str == NULL){ if ((name_str = (char*)malloc(1)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto end; } name_str[0] = '\0'; } if (dpi_str == NULL){ if ((dpi_str = (char*)malloc(1)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto end; } dpi_str[0] = '\0'; } if (ext_str == NULL){ if ((ext_str = (char*)malloc(1)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto end; } ext_str[0] = '\0'; } dellen = strlen(vf_directory_delimiter); if ((ns = name_str) != NULL){ for (i = strlen(name_str)-1; i >= 0; i--){ if (strncmp(&name_str[i], vf_directory_delimiter, dellen) == 0){ ns = &name_str[i+dellen]; break; } } } #if 0 printf("*** \"%s\" => \"%s\", \"%s\", \"%s\", \"%s\"\n", font_name, name_str, ns, dpi_str, ext_str); #endif end: if ((name_str == NULL) || (dpi_str == NULL) || (ext_str == NULL)){ vf_free(name_str); vf_free(dpi_str); vf_free(ext_str); return -1; } *name_str_p = name_str; *dpi_str_p = dpi_str; *ext_str_p = ext_str; *ns_p = ns; return 0; } Private int try_open_mapped_font(SEXP s, char *name_str, char *dpi_str, char *ext_str, VF_FONT font, char *font_name, double tfm_design_size, SEXP tfm_dirs, SEXP tfm_extensions, double opt_mag) { SEXP t, u; char *drvname, *mapping; char mapped_name[1024]; int fid, dpix, dpiy; double ptsize, mag_adj, mag_x, mag_y; fid = -1; for (fid = -1; vf_sexp_consp(s) && vf_sexp_consp(vf_sexp_car(s)); s = vf_sexp_cdr(s)){ t = vf_sexp_car(s); if ( !vf_sexp_listp(t) || (vf_sexp_length(t) < 2) || !vf_sexp_stringp(vf_sexp_car(t)) || !vf_sexp_stringp(vf_sexp_cadr(t))) continue; drvname = vf_sexp_get_cstring(vf_sexp_car(t)); mapping = vf_sexp_get_cstring(vf_sexp_cadr(t)); ptsize = font->point_size; mag_adj = 1.0; for (t = vf_sexp_cddr(t); vf_sexp_consp(t); t = vf_sexp_cdr(t)){ u = vf_sexp_car(t); if (vf_sexp_stringp(u)){ if (strcmp(TEX_FONT_MAPPING_PTSIZE, vf_sexp_get_cstring(u)) == 0){ if (tfm_design_size > 0){ ptsize = tfm_design_size; } else { ptsize = get_design_size_from_tfm(font_name, tfm_dirs, tfm_extensions); } if (ptsize < 0) continue; } else { fprintf(stderr, "VFlib: %s %s in capability %s for %s class default.\n", "Unknown optional keyword", vf_sexp_get_cstring(u), VF_CAPE_TEX_FONT_MAPPING, FONTCLASS_NAME_TeX); } } else if (vf_sexp_listp(u) && (vf_sexp_length(u) >= 2)){ if (vf_sexp_stringp(vf_sexp_car(u)) && vf_sexp_stringp(vf_sexp_cadr(u)) && (strcmp(TEX_FONT_MAPPING_MAG_ADJ, vf_sexp_get_cstring(vf_sexp_car(u))) == 0)){ mag_adj = atof(vf_sexp_get_cstring(vf_sexp_cadr(u))); if (mag_adj <= 0) mag_adj = 1.0; } else { fprintf(stderr, "VFlib: %s %s for %s class default: ", "Unknown option in capability", VF_CAPE_TEX_FONT_MAPPING, FONTCLASS_NAME_TeX); vf_sexp_pp_fp(u, stderr); } } } mag_x = font->mag_x * opt_mag; mag_y = font->mag_y * opt_mag; tex_map_name(mapped_name, sizeof(mapped_name), mapping, name_str, dpi_str, ext_str); if (((dpix = font->dpi_x) <= 0) || ((dpiy = font->dpi_y) <= 0)){ dpix = v_default_tex_dpi; dpiy = v_default_tex_dpi; } if (vf_dbg_drv_texfonts == 1){ printf(">> TeX font mapping: %s=>%s (driver:%s)\n", font_name, mapped_name, drvname); printf(">> pt:%.3f, dpi:%d,%d, mag:%.3f,%.3f, mag_adj=%.3f\n", ptsize, dpix, dpiy, mag_x, mag_y, mag_adj); } if (strcmp(drvname, "*") != 0){ if (font->mode == 1){ fid = vf_openfont1(mapped_name, drvname, dpix, dpiy, ptsize, mag_x * mag_adj, mag_y * mag_adj); } else { fid = vf_openfont2(mapped_name, drvname, font->pixel_size, mag_x * mag_adj, mag_y * mag_adj); } } else { if (font->mode == 1){ fid = VF_OpenFont1(mapped_name, dpix, dpiy, ptsize, mag_x * mag_adj, mag_y * mag_adj); } else { fid = VF_OpenFont2(mapped_name, font->pixel_size, mag_x * mag_adj, mag_y * mag_adj); } } if (fid >= 0) break; } return fid; } Private double get_design_size_from_tfm(char *font_name, SEXP tfm_dirs, SEXP tfm_extensions) { TFM tfm; char *tfm_path; double ds; if (vf_dbg_drv_texfonts == 1) printf(">> TeX font mapper: search TFM path for %s\n", font_name); tfm_path = vf_tex_search_file_tfm(font_name, tfm_dirs, tfm_extensions); if (vf_dbg_drv_texfonts == 1){ if (tfm_path != NULL){ printf(">> TeX font mapper: TFM path: %s\n", tfm_path); } else { printf(">> TeX font mapper: TFM not found: %s\n", font_name); return -1; } } if (tfm_path == NULL) return -1; if ((tfm = vf_tfm_open(tfm_path)) == NULL){ if (vf_dbg_drv_texfonts == 1) printf(">> TeX font mapper: failed to open TFM: %s\n", tfm_path); return -1; } ds = tfm->design_size; vf_tfm_free(tfm); vf_free(tfm_path); return ds; } Private void tex_map_name(char *mapped_name, int n, char *mapping, char *name_str, char *dpi_str, char *ext_str) { char *p, *s, *t; int r; p = mapping; s = mapped_name; r = n; while (*p != '\0'){ if (r <= 0) break; if (*p != '%'){ *(s++) = *(p++); r--; } else { p++; switch (*p){ default: *(s++) = *p; r--; break; case '\0': *(s++) = '\0'; r--; break; case 'f': /* %f ... font name of requested font name (e.g., "cmr10") */ if (name_str == NULL) break; for (t = name_str; (*t != '\0') && (r > 0); r--) *(s++) = *(t++); break; case 'd': /* %d ... device resolution of requested font name (e.g., "300") */ if (dpi_str == NULL) break; for (t = dpi_str; (*t != '\0') && (r > 0); r--) *(s++) = *(t++); break; case 'e': /* %d ... font name extension of requested font name (e.g., "pk") */ if (ext_str == NULL) break; for (t = ext_str; (*t != '\0') && (r > 0); r--) *(s++) = *(t++); break; } p++; } } *s = '\0'; } Glocal int vf_tex_syntax_check_font_mapping(SEXP font_mapping) { int syntax_err, syntax_nerrs; SEXP s, t, u, v; syntax_nerrs = 0; for (s = font_mapping; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ syntax_err = 0; u = t = vf_sexp_car(s); /* e.g., u = ((pk "%f.pk") (tfm "%f.tfm") "cmr10" "cmti10") */ for ( ; vf_sexp_consp(u); u = vf_sexp_cdr(u)){ v = vf_sexp_car(u); if (vf_sexp_stringp(v)) break; if ( !vf_sexp_listp(v) || (vf_sexp_length(v) < 2) || !vf_sexp_stringp(vf_sexp_car(v)) || !vf_sexp_stringp(vf_sexp_cadr(v)) ){ syntax_err = 1; syntax_nerrs++; goto fm_try_next; } } /* e.g., u = ("cmr10" "cmti10") */ for ( ; vf_sexp_consp(u); u = vf_sexp_cdr(u)){ v = vf_sexp_car(u); if (!vf_sexp_stringp(v)){ syntax_err = 1; syntax_nerrs++; goto fm_try_next; } } fm_try_next: if (syntax_err != 0){ fprintf(stderr, "VFlib: %s in capability %s of %s font class default: \n", "Syntax error", VF_CAPE_TEX_FONT_MAPPING, FONTCLASS_NAME_TeX); vf_sexp_pp_fp(t, stderr); } } return syntax_nerrs; } Private int tex_close(VF_FONT font) { return VF_CloseFont((int)font->private); } Private int tex_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { VF_METRIC1 met; met = VF_GetMetric1((int)font->private, code_point, metric, mag_x, mag_y); if (met == NULL) return -1; return 0; } Private int tex_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { return VF_GetFontBoundingBox1((int)font->private, mag_x, mag_y, w_p, h_p, xoff_p, yoff_p); } Private VF_BITMAP tex_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { return VF_GetBitmap1((int)font->private, code_point, mag_x, mag_y); } Private VF_OUTLINE tex_get_outline(VF_FONT font, long code_point, double mag_x, double mag_y) { return VF_GetOutline((int)font->private, code_point, mag_x, mag_y); } Private int tex_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { VF_METRIC2 met; met = VF_GetMetric2((int)font->private, code_point, metric, mag_x, mag_y); if (met == NULL) return -1; return 0; } Private int tex_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { return VF_GetFontBoundingBox2((int)font->private, mag_x, mag_y, w_p, h_p, xoff_p, yoff_p); } Private VF_BITMAP tex_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { return VF_GetBitmap2((int)font->private, code_point, mag_x, mag_y); } Private char* tex_get_font_prop(VF_FONT font, char *prop_name) { return VF_GetFontProp((int)font->private, prop_name); } Private int tex_query_font_type(VF_FONT font, long code_point) { return VF_QueryFontType((int)font->private, code_point); } Glocal int vf_tex_default_dpi(void) { return v_default_tex_dpi; } Glocal int vf_tex_fix_resolution(int dev_dpi, double mag) { int mdpi, fixed_mdpi, d, dpi_lo, dpi_hi; SEXP s, t; if (dev_dpi <= 0) dev_dpi = v_default_tex_dpi; fixed_mdpi = mdpi = toint(dev_dpi * mag); if (default_resolution_corr == NULL) goto found; for (s = default_resolution_corr; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ t = vf_sexp_car(s); if (dev_dpi != atoi(vf_sexp_get_cstring(vf_sexp_car(t)))) continue; for (t = vf_sexp_cdr(t); vf_sexp_consp(t); t = vf_sexp_cdr(t)){ if ((d = atoi(vf_sexp_get_cstring(vf_sexp_car(t)))) < 1) continue; if (d == mdpi) goto found; dpi_lo = (1.0 - v_default_resolution_accu) * d; dpi_hi = (1.0 + v_default_resolution_accu) * d; if ((dpi_lo <= mdpi) && (mdpi <= dpi_hi)){ fixed_mdpi = d; goto found; } } } found: if (vf_dbg_drv_texfonts == 1) printf(">> TeX resolution correction: %d dpi x %f = %d ==> %d\n", dev_dpi, mag, toint(mdpi), fixed_mdpi); return fixed_mdpi; } Glocal char* vf_tex_search_file_tfm(char *filename, SEXP dirs, SEXP exts) /* NOTE: CALLER OF THIS FUNCTION *SHOULD* RELEASE RETURN VALUE. */ { char *name, *e, *path; char target_name[1024]; SEXP s; if (vf_dbg_drv_texfonts == 1) printf(">> TeX file search tfm: %s\n", filename); /* "cmr10.400pk" ==> "cmr10" */ if ((name = vf_path_base_core(filename)) == NULL) return NULL; if (dirs == NULL) dirs = default_tfm_dirs; if (exts == NULL) exts = default_tfm_extensions; path = NULL; if (exts == NULL){ path = vf_search_file(name, -1, NULL, TRUE, FSEARCH_FORMAT_TYPE_TFM, dirs, NULL, NULL); } else { for (s = exts; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ e = vf_sexp_get_cstring(vf_sexp_car(s)); if (*e == '.') e = e+1; /* ".tfm" ==> "tfm" */ sprintf(target_name, "%s.%s", name, e); /* "cmr10" ==> "cmr10.tfm" */ if (vf_dbg_drv_texfonts == 1) printf(">> TeX file search tfm: Checking %s\n", target_name); path = vf_search_file(target_name, -1, NULL, TRUE, FSEARCH_FORMAT_TYPE_TFM, dirs, NULL, NULL); if (path != NULL) break; } } vf_free(name); return path; } Glocal char* vf_tex_search_file_glyph(char *filename, int implicit, int format, SEXP dirs, int dpi, double mag, SEXP exts) { SEXP s; char *path, *corename, *e, target_name[1024]; int mdpi; if (vf_dbg_drv_texfonts == 1){ printf(">> TeX file search glyph: %s\n", filename); printf(">> dirs: "); if (dirs != NULL) vf_sexp_pp(dirs); else printf("null\n"); printf(">> exts: "); if (exts != NULL) vf_sexp_pp(exts); else printf("null\n"); } if (exts == NULL) return NULL; mdpi = vf_tex_fix_resolution(dpi, mag); #if 0 printf("*** %d %.14f %.14f %d\n", dpi, mag, dpi*mag, mdpi); #endif /* "cmr10.400pk" ==> "cmr10" */ if ((corename = vf_path_base_core(filename)) == NULL) return NULL; if (vf_dbg_drv_texfonts == 1) printf(">> core: %s\n", corename); path = NULL; if (implicit == 1){ for (s = exts; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ e = vf_sexp_get_cstring(vf_sexp_car(s)); if (*e == '.') e = e+1; /* ".pk" ==> "pk" */ sprintf(target_name, "%s.%d%s", corename, mdpi, e); path = vf_search_file(target_name, mdpi, corename, TRUE, format, dirs, NULL, NULL); if (path != NULL) break; } } else { path = vf_search_file(filename, mdpi, corename, TRUE, format, dirs, NULL, NULL); } vf_free(corename); return path; } Glocal char* vf_tex_search_file_misc(char *filename, int implicit, int format, SEXP dirs, SEXP exts) { SEXP s; char *path, *corename, *e, target_name[1024]; if (vf_dbg_drv_texfonts == 1) printf(">> TeX file search file: %s\n", filename); path = NULL; corename = NULL; e = NULL; if (implicit == 1){ corename = vf_path_base_core(filename); /* "cmr10.400pk" ==> "cmr10" */ for (s = exts; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ e = vf_sexp_get_cstring(vf_sexp_car(s)); if (*e == '.') e = e+1; /* ".vf" ==> "vf" */ sprintf(target_name, "%s.%s", corename, e); path = vf_search_file(target_name, 0, NULL, TRUE, format, dirs, NULL, NULL); if (path != NULL) break; } } else { path = vf_search_file(filename, 0, NULL, TRUE, format, dirs, NULL, NULL); } vf_free(corename); return path; } Glocal int vf_tex_parse_open_style(char *s, int def_value) { int val; if (s == NULL) return def_value; if (vf_strcmp_ci(s, TEX_OPEN_STYLE_REQUIRE_STR) == 0){ val = TEX_OPEN_STYLE_REQUIRE; } else if (vf_strcmp_ci(s, TEX_OPEN_STYLE_TRY_STR) == 0){ val = TEX_OPEN_STYLE_TRY; } else if (vf_strcmp_ci(s, TEX_OPEN_STYLE_NONE_STR) == 0){ val = TEX_OPEN_STYLE_NONE; } else { fprintf(stderr, "VFlib Warning: Unknown open style: %s.\n", s); val = def_value; } return val; } Glocal int vf_tex_parse_glyph_style(char *s, int def_value) { int val; if (s == NULL) return def_value; if (vf_strcmp_ci(s, TEX_GLYPH_STYLE_EMPTY_STR) == 0){ val = TEX_GLYPH_STYLE_EMPTY; } else if (vf_strcmp_ci(s, TEX_GLYPH_STYLE_FILL_STR) == 0){ val = TEX_GLYPH_STYLE_FILL; } else { fprintf(stderr, "VFlib Warning: Unknown glyph stype: %s\n", s); val = def_value; } return val; } /* * Reading a Number from file */ Glocal unsigned long vf_tex_read_uintn(FILE* fp, int size) { unsigned long v; v = 0L; while (size >= 1){ v = v*256L + (unsigned long)getc(fp); --size; } return v; } Glocal long vf_tex_read_intn(FILE* fp, int size) { long v; v = (long)getc(fp) & 0xffL; if (v & 0x80L) v = v - 256L; --size; while (size >= 1){ v = v*256L + (unsigned long)getc(fp); --size; } return v; } Glocal void vf_tex_skip_n(FILE* fp, int size) { while (size > 0){ (void)getc(fp); --size; } } Glocal unsigned long vf_tex_get_uintn(unsigned char *p, int size) { unsigned long v; v = 0L; while (size >= 1){ v = v*256L + (unsigned long) *(p++); --size; } return v; } Glocal long vf_tex_get_intn(unsigned char *p, int size) { long v; v = (long)*(p++) & 0xffL; if (v & 0x80L) v = v - 256L; --size; while (size >= 1){ v = v*256L + (unsigned long) *(p++); --size; } return v; } /*EOF*/ vflib3-3.6.14.dfsg/src/tfm.c0000644000175000017500000002525407363416116015024 0ustar mohuramohura/* * tfm.c - TFM files interface * * 28 Sep 1996 * 25 Mar 1997 Added setting a program name for kpathsea by variable. * 02 Apr 1997 Added support for .ofm files (Omega metrics file) (WL) * 3 Jul 1997 Added Virtual Font support. * 8 Aug 1997 for VFlib 3.3 * 1 Feb 1998 for VFlib 3.4 */ /* * Copyright (C) 1996-1998 by Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include "with.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "consts.h" #include "metric.h" #include "cache.h" #include "sexp.h" #include "texfonts.h" #include "tfm.h" #define RDS2PT(rds) (tfm->design_size * ((double)(rds)/(double)(1<<20))) Glocal SEXP_LIST vf_tex_tfm_fontdirs; Glocal SEXP_LIST vf_tex_tfm_extensions; Private VF_TABLE tfm_table = NULL; Glocal int vf_tfm_init(void) { static int inited = 0; if (inited == 0){ inited = 1; if ((tfm_table = vf_table_create()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } } return 0; } Private TFM read_tfm(FILE* fp); Glocal TFM vf_tfm_open(char *tfm_path) { int tfm_id; TFM tfm; FILE *fp; if ((tfm_id = (tfm_table->get_id_by_key)(tfm_table, tfm_path, strlen(tfm_path)+1)) >= 0){ (tfm_table->link_by_id)(tfm_table, tfm_id); return (tfm_table->get_obj_by_id)(tfm_table, tfm_id); } #if 0 printf("* TFM Open: %s\n", tfm_path); #endif if ((fp = vf_fm_OpenBinaryFileStream(tfm_path)) == NULL) goto Error; if ((tfm = read_tfm(fp)) == NULL) goto Error; if ((tfm_table->put)(tfm_table, tfm, tfm_path, strlen(tfm_path)+1) < 0) return NULL; return tfm; Error: vf_error = VF_ERR_NO_METRIC_FILE; return NULL; } Glocal int vf_tfm_jfm_chartype(TFM tfm, UINT4 code) { int i; tfm->ct_kcode[tfm->nt] = code; i = 0; while (tfm->ct_kcode[i] != code) i++; if (i == tfm->nt) return 0; return tfm->ct_ctype[i]; } Glocal VF_METRIC1 vf_tfm_metric(TFM tfm, UINT4 code, VF_METRIC1 metric) { int dir_h, index; double w, h, d; if (metric == NULL) if ((metric = vf_alloc_metric1()) == NULL) return NULL; if ((tfm->type == METRIC_TYPE_TFM) || (tfm->type == METRIC_TYPE_OFM)){ dir_h = 1; index = (int)code; } else { /* == METRIC_TYPE_JFM */ dir_h = (tfm->type_aux == METRIC_TYPE_JFM_AUX_H) ? 1 : 0; if (code == 0) index = 0; else index = vf_tfm_jfm_chartype(tfm, code); } if ((index < tfm->begin_char) || (tfm->end_char < index)){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } w = RDS2PT(tfm->width[index - tfm->begin_char]); h = RDS2PT(tfm->height[index - tfm->begin_char]); d = RDS2PT(tfm->depth[index - tfm->begin_char]); #if 0 printf("* %d: W=%f H=%f D=%f\n", index, w, h, d); #endif if (dir_h == 1){ metric->bbx_width = w; metric->bbx_height = h + d; metric->off_x = 0; metric->off_y = h; metric->mv_x = w; metric->mv_y = 0; } else { metric->bbx_width = h + d; metric->bbx_height = w; metric->off_x = -d; metric->off_y = 0; metric->mv_x = 0; metric->mv_y = -w; } return metric; } Private TFM read_tfm(FILE* fp) { TFM tfm; UINT4 lf, lh, nc, nci, err; UINT4 offset_header, offset_char_info, offset_param; UINT4 nw, nh, nd, ni, nl, nk, neng, np, dir; INT4 *w, *h, *d; UINT4 *ci, v; UINT4 i; INT4 bbxw, bbxh, xoff, yoff; ALLOC_IF_ERR(tfm, struct s_tfm){ vf_error = VF_ERR_NO_MEMORY; return NULL; } tfm->width = NULL; tfm->height = NULL; tfm->depth = NULL; tfm->ct_kcode = NULL; tfm->ct_ctype = NULL; tfm->font_bbx_w = 0.0; tfm->font_bbx_h = 0.0; tfm->font_bbx_xoff = 0.0; tfm->font_bbx_yoff = 0.0; err = 0; rewind(fp); lf = (UINT4)READ_UINT2(fp); if ((lf == 11) || (lf == 9)){ /* JFM file of Japanese TeX by ASCII Coop. */ tfm->type = METRIC_TYPE_JFM; tfm->type_aux = (lf == 11)?METRIC_TYPE_JFM_AUX_H:METRIC_TYPE_JFM_AUX_V; tfm->nt = (UINT4)READ_UINT2(fp); lf = (UINT4)READ_UINT2(fp); lh = (UINT4)READ_UINT2(fp); offset_header = 4*7; offset_char_info = 4*(7+tfm->nt+lh); } else if (lf == 0){ /* Omega Metric File */ tfm->type = METRIC_TYPE_OFM; tfm->type_aux = READ_INT2(fp); /* ofm_level */ if ((tfm->type_aux < 0) || (1 < tfm->type_aux)) tfm->type_aux = 0; /* broken, maybe */ lf = READ_UINT4(fp); lh = READ_UINT4(fp); if (tfm->type_aux == 0){ /* level 0 OFM */ offset_header = 4*14; offset_char_info = 4*(14+lh); } else { /* level 1 OFM: *** NOT SUPPORTED YET *** */ offset_header = 4*29; offset_char_info = 4*(29+lh); } } else { /* Traditional TeX Metric File */ tfm->type = METRIC_TYPE_TFM; tfm->type_aux = 0; lh = (int)READ_UINT2(fp); offset_header = 4*6; offset_char_info = 4*(6+lh); } if (tfm->type == METRIC_TYPE_OFM){ tfm->begin_char = READ_UINT4(fp); tfm->end_char = READ_UINT4(fp); nw = READ_UINT4(fp); nh = READ_UINT4(fp); nd = READ_UINT4(fp); ni = READ_UINT4(fp); nl = READ_UINT4(fp); nk = READ_UINT4(fp); neng = READ_UINT4(fp); np = READ_UINT4(fp); dir = READ_UINT4(fp); if (((signed)(tfm->begin_char-1) > (signed)tfm->end_char) || (tfm->end_char > 65535)){ vf_error = VF_ERR_INVALID_METRIC; return NULL; } } else { tfm->begin_char = (int)READ_UINT2(fp); tfm->end_char = (int)READ_UINT2(fp); nw = (UINT4)READ_UINT2(fp); nh = (UINT4)READ_UINT2(fp); nd = (UINT4)READ_UINT2(fp); ni = (UINT4)READ_UINT2(fp); nl = (UINT4)READ_UINT2(fp); nk = (UINT4)READ_UINT2(fp); neng = (UINT4)READ_UINT2(fp); np = (UINT4)READ_UINT2(fp); if (tfm->type == METRIC_TYPE_TFM){ if (((signed)(tfm->begin_char-1) > (signed)tfm->end_char) || (tfm->end_char > 255)){ vf_error = VF_ERR_INVALID_METRIC; return NULL; } } } fseek(fp, offset_header, SEEK_SET); tfm->cs = READ_UINT4(fp); tfm->ds = READ_UINT4(fp); tfm->design_size = (double)(tfm->ds)/(double)(1<<20); nc = tfm->end_char - tfm->begin_char + 1; nci = nc; if (tfm->type == METRIC_TYPE_OFM) nci *= 2; ci = (UINT4*)calloc(nci, sizeof(UINT4)); w = (INT4*)calloc(nw, sizeof(UINT4)); h = (INT4*)calloc(nh, sizeof(UINT4)); d = (INT4*)calloc(nd, sizeof(UINT4)); if ((ci == NULL) || (w == NULL) || (h == NULL) || (d == NULL)){ err = VF_ERR_NO_MEMORY; goto Exit; } fseek(fp, offset_char_info, SEEK_SET); for (i = 0; i < nci; i++) ci[i] = READ_UINT4(fp); offset_param = ftell(fp) + 4*(nw + nh + nd + ni + nl + nk + neng); for (i = 0; i < nw; i++) w[i] = READ_INT4(fp); for (i = 0; i < nh; i++) h[i] = READ_INT4(fp); for (i = 0; i < nd; i++) d[i] = READ_INT4(fp); tfm->width = (INT4*)calloc(nc, sizeof(INT4)); tfm->height = (INT4*)calloc(nc, sizeof(INT4)); tfm->depth = (INT4*)calloc(nc, sizeof(INT4)); if ((tfm->width == NULL) || (tfm->height == NULL) || (tfm->depth == NULL)){ err = VF_ERR_NO_MEMORY; goto Exit; } bbxw = 0; bbxh = 0; xoff = 0; yoff = 0; if (tfm->type == METRIC_TYPE_OFM){ for (i = 0; i < nc; i++){ v = ci[2*i]; tfm->depth[i] = d[v & 0xff]; v >>= 8; tfm->height[i] = h[v & 0xff]; v >>= 8; tfm->width[i] = w[v & 0xffff]; if (bbxw < tfm->width[i]) bbxw = tfm->width[i]; if (bbxh < (tfm->height[i] + tfm->depth[i])) bbxh = tfm->height[i] + tfm->depth[i]; if (yoff > -tfm->depth[i]) yoff = -tfm->depth[i]; #if 0 printf("** %.3f %.3f %.3f\n", (double)tfm->width[i]/(double)(1<<20), (double)tfm->height[i]/(double)(1<<20), (double)tfm->depth[i]/(double)(1<<20)); #endif } } else { for (i = 0; i < nc; i++){ v = ci[i] / 0x10000L; tfm->depth[i] = d[v & 0xf]; v >>= 4; tfm->height[i] = h[v & 0xf]; v >>= 4; tfm->width[i] = w[v & 0xff]; if (bbxw < tfm->width[i]) bbxw = tfm->width[i]; if (bbxh < (tfm->height[i] + tfm->depth[i])) bbxh = tfm->height[i] + tfm->depth[i]; if (yoff > -tfm->depth[i]) yoff = -tfm->depth[i]; #if 0 printf("** %.3f %.3f\n", (double)tfm->height[i]/(double)(1<<20), (double)tfm->depth[i]/(double)(1<<20)); #endif } } tfm->font_bbx_w = tfm->design_size * ((double)bbxw / (double)(1<<20)); tfm->font_bbx_h = tfm->design_size * ((double)bbxh / (double)(1<<20)); tfm->font_bbx_xoff = tfm->design_size * ((double)xoff / (double)(1<<20)); tfm->font_bbx_yoff = tfm->design_size * ((double)yoff / (double)(1<<20)); if (tfm->type == METRIC_TYPE_JFM){ fseek(fp, 4*(7+lh), SEEK_SET); tfm->ct_kcode = (unsigned int*)calloc(tfm->nt+1, sizeof(unsigned int)); tfm->ct_ctype = (unsigned int*)calloc(tfm->nt+1, sizeof(unsigned int)); if ((tfm->ct_kcode == NULL) || (tfm->ct_ctype == NULL)){ err = VF_ERR_NO_MEMORY; goto Exit; } for (i = 0; i < tfm->nt; i++){ v = READ_UINT4(fp); tfm->ct_kcode[i] = v/0x10000L; tfm->ct_ctype[i] = v%0x10000L; } tfm->ct_kcode[tfm->nt] = 0; /* sentinel */ tfm->ct_ctype[tfm->nt] = 0; } fseek(fp, offset_param, SEEK_SET); tfm->slant = (double)READ_INT4(fp)/(double)(1<<20); Exit: vf_free(ci); vf_free(w); vf_free(h); vf_free(d); if (err != 0){ vf_tfm_free(tfm); vf_error = err; return NULL; } return tfm; } Glocal void vf_tfm_free(TFM tfm) { int tfm_id; if (tfm == NULL) return; tfm_id = (tfm_table->get_id_by_obj)(tfm_table, tfm); if (tfm_id < 0) return; if ((tfm_table->unlink_by_id)(tfm_table, tfm_id) <= 0){ vf_free(tfm->width); vf_free(tfm->height); vf_free(tfm->depth); vf_free(tfm->ct_kcode); vf_free(tfm->ct_ctype); vf_free(tfm); } } /*EOF*/ vflib3-3.6.14.dfsg/src/vf.c0000644000175000017500000006062207437062630014647 0ustar mohuramohura/* this is included by drv_vf.c */ /* * vf.c - A vf (virtual font) interface * by Hirotsugu Kakugawa * * 30 Jan 1997 First implementation. * 7 Aug 1997 VFlib 3.3 Changed API. * 2 Feb 1998 VFlib 3.4 * */ /* * Copyright (C) 1997-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ Private VF_TABLE vf_font_table = NULL; Private VF_CACHE vf_font_cache = NULL; struct s_vf_dvi_stack { long h, v, w, x, y, z; int f; int font_id; struct s_vf_dvi_stack *next; }; typedef struct s_vf_dvi_stack *VF_DVI_STACK; #define STACK(X) dvi_stack->next->X Private int vf_read_info(VF,FILE*,int,VF_FONT); Private void vf_do_glyph_style(VF_BITMAP,int); Private VF_BITMAP vf_run_dvi_program(VF,VF_CHAR_PACKET,int,double,double); Private VF_CHAR_PACKET_TBL vf_cache_loader(VF_CACHE,VF_CACHE_KEY,int); Private void vf_cache_disposer(VF_CHAR_PACKET_TBL); Private int vf_dvi_interp(VF_BITMAPLIST,VF, int,double,double,long,unsigned char*,int); Private void vf_dvi_interp_font_select(VF,VF_DVI_STACK,long,double*); Private void vf_dvi_interp_put_char(VF_BITMAPLIST,VF,VF_DVI_STACK,long, int,double,double); Private void vf_dvi_interp_put_rule(VF_BITMAPLIST,VF,VF_DVI_STACK,long,long, double,double); Private int vf_dvi_stack_init(VF,VF_DVI_STACK); Private int vf_dvi_stack_deinit(VF,VF_DVI_STACK); Private int vf_dvi_stack_push(VF,VF_DVI_STACK); Private int vf_dvi_stack_pop(VF,VF_DVI_STACK); Private int vf_vf_init(void) { static int init_flag = 0; if (init_flag == 1) return 0; init_flag = 1; vf_font_cache = vf_cache_create(VF_CACHE_SIZE, VF_HASH_SIZE, (void*(*)(VF_CACHE,void*,int))vf_cache_loader, (void(*)(void*))vf_cache_disposer); vf_font_table = vf_table_create(); vf_vf_get_vf(-1); return 0; } Private int vf_vf_open(VF_FONT font, FONT_VF font_vf, int implicit) { int vf_id; char *vf_path, *tfm_path; double dpi_x, dpi_y = 0.0; VF vf; FILE *fp; char key[2*1024]; vf_path = NULL; tfm_path = NULL; sprintf(key, "%s %.6f %.6f %.6f %.6f %.6f %.6f %.6f", font_vf->font_file, font->dpi_x, font->dpi_y, font->mag_x, font->mag_y, font_vf->dpi_x, font_vf->dpi_y, font_vf->mag); vf_id = (vf_font_table->get_id_by_key)(vf_font_table, key, strlen(key)+1); if (vf_id >= 0){ (vf_font_table->link_by_id)(vf_font_table, vf_id); return vf_id; } vf_path = vf_tex_search_file_misc(font_vf->font_file, implicit, FSEARCH_FORMAT_TYPE_VF, default_fontdirs, default_extensions); if (vf_path == NULL) return -1; if (vf_debug('f')) printf("VFlib Virtual Font: font file %s\n ==> %s\n", font_vf->font_file, vf_path); tfm_path = vf_tex_search_file_tfm(font_vf->font_file, default_tfm_dirs, default_tfm_extensions); if (tfm_path == NULL){ vf_free(vf_path); return -1; } if (vf_debug('f')) printf("VFlib Virtual Font: TFM font file %s\n ==> %s\n", font_vf->font_file, tfm_path); if ((vf_path == NULL) || (tfm_path == NULL)){ vf_free(vf_path); vf_free(tfm_path); return -1; } if (((dpi_x = font->dpi_x) < 0) || ((dpi_y = font->dpi_y) < 0)){ if (((dpi_x = font_vf->dpi_x) < 0) || (dpi_x = font_vf->dpi_x)){ dpi_x = dpi_y = vf_tex_default_dpi(); } } ALLOC_IF_ERR(vf, struct s_vf){ vf_error = VF_ERR_NO_MEMORY; return -1; } vf->vf_path = vf_path; vf->cs = 0; vf->ds = 0; vf->design_size = 0; vf->dpi_x = dpi_x; vf->dpi_y = dpi_y; vf->mag_x = font->mag_x * font_vf->mag; vf->mag_y = font->mag_y * font_vf->mag; vf->tfm_path = tfm_path; vf->tfm = NULL; vf->subfonts = NULL; vf->subfonts_opened = 1; vf->offs_char_packet = 0; if ((vf->tfm = vf_tfm_open(vf->tfm_path)) == NULL) goto Error; if ((fp = vf_fm_OpenBinaryFileStream(vf->vf_path)) == NULL){ if (vf_error != VF_ERR_NO_MEMORY) vf_error = VF_ERR_NO_FONT_FILE; goto Error; } if (vf_read_info(vf, fp, font_vf->open_style, font) < 0){ vf_error = VF_ERR_ILL_FONT_FILE; goto Error; } if ((vf_id = (vf_font_table->put)(vf_font_table, vf, key, strlen(key)+1)) < 0){ vf_error = VF_ERR_NO_MEMORY; goto Error; } return vf_id; Error: if (vf != NULL){ vf_free(vf->vf_path); vf_free(vf->tfm_path); vf_tfm_free(vf->tfm); vf_free(vf); } return -1; } Private int vf_read_info(VF vf, FILE *fp, int open_style, VF_FONT font) { UINT1 id, a, l; UINT4 k, c, s, d; VF_SUBFONT sf, sf0, sf_next; struct s_vf_subfont subfont; double scale; int fid, name_len, i; char subfont_name[1024]; if (READ_UINT1(fp) != VFINST_PRE) return -1; id = READ_UINT1(fp); switch (id){ case VFINST_ID_BYTE: break; default: return -1; } k = READ_UINT1(fp); SKIP_N(fp,k); vf->cs = READ_UINT4(fp); vf->ds = READ_UINT4(fp); if ((vf->cs != vf->tfm->cs) || (vf->ds != vf->tfm->ds)){ vf_error = VF_ERR_ILL_FONT_FILE; return -1; } vf->design_size = (double)(vf->ds)/(double)(1<<20); vf->subfonts_opened = 1; vf->default_subfont = -1; subfont.next = NULL; for (sf0 = &subfont; ; sf0 = sf){ ALLOC_IF_ERR(sf, struct s_vf_subfont){ vf_error = VF_ERR_NO_MEMORY; goto error_exit; } sf0->next = sf; switch (READ_UINT1(fp)){ default: vf->offs_char_packet = ftell(fp)-1; sf0->next = NULL; vf_free(sf); goto end_fontdef; case VFINST_FNTDEF1: k = (UINT4)READ_UINT1(fp); c = READ_UINT4(fp); s = READ_UINT4(fp); d = READ_UINT4(fp); a = READ_UINT1(fp); l = READ_UINT1(fp); break; case VFINST_FNTDEF2: k = (UINT4)READ_UINT2(fp); c = READ_UINT4(fp); s = READ_UINT4(fp); d = READ_UINT4(fp); a = READ_UINT1(fp); l = READ_UINT1(fp); break; case VFINST_FNTDEF3: k = (UINT4)READ_UINT3(fp); c = READ_UINT4(fp); s = READ_UINT4(fp); d = READ_UINT4(fp); a = READ_UINT1(fp); l = READ_UINT1(fp); break; case VFINST_FNTDEF4: k = (UINT4)READ_UINT4(fp); c = READ_UINT4(fp); s = READ_UINT4(fp); d = READ_UINT4(fp); a = READ_UINT1(fp); l = READ_UINT1(fp); break; } name_len = a + l; sf->k = k; sf->s = s; sf->d = d; sf->a = a; sf->l = l; sf->next = NULL; scale = (double)sf->s/(double)(1<<20); if ((sf->n = (char*)malloc(name_len + 1)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto error_exit; } for (i = 0; i < name_len; i++) sf->n[i] = (char)READ_UINT1(fp); sf->n[i] = '\0'; sprintf(subfont_name, "%s", &sf->n[sf->a]); if (vf_debug('s')){ printf("VFlib Virtual Font: subfont %d: %s, scaled %f\n", (int)sf->k, subfont_name, scale); } if (open_style != TEX_OPEN_STYLE_NONE){ fid = vf_tex_try_map_and_open_font(font, subfont_name, default_font_mapping, vf->tfm->design_size, NULL, NULL, scale); if (fid >= 0){ sf->font_id = fid; if (vf->default_subfont < 0) vf->default_subfont = sf->k; if (vf_debug('s')) printf("VFlib Virtual Font: subfont is opened: font id %d\n", fid); } else { sf->font_id = -1; vf->subfonts_opened = 0; if (vf_debug('s')) printf("VFlib Virtual Font: subfont %d is not opened\n", (int)sf->k); } } else { if (vf_debug('s')) printf("VFlib Virtual Font: subfont %d is not requested to open\n", (int)sf->k); } } end_fontdef: if (vf->subfonts_opened == 0){ if (open_style == TEX_OPEN_STYLE_REQUIRE){ if (vf_debug('s')) printf("VFlib Virtual Font: all subfonts are required but failed\n"); goto error_exit; } else { if (vf_debug('s')) printf("VFlib Virtual Font: not all fonts are opened; continue.\n"); } } vf->subfonts = subfont.next; return 0; error_exit: for (sf = subfont.next; sf != NULL; sf = sf_next){ sf_next = sf->next; vf_free(sf->n); vf_free(sf); } vf->subfonts = NULL; return -1; } Private void vf_vf_close(int vf_id) { VF vf; VF_SUBFONT sf, sf_next; vf = vf_vf_get_vf(vf_id); if ((vf_font_table->unlink_by_id)(vf_font_table, vf_id) > 0) return; if (vf != NULL){ vf_free(vf->vf_path); vf_free(vf->tfm_path); vf_tfm_free(vf->tfm); for (sf = vf->subfonts; sf != NULL; sf = sf_next){ sf_next = sf->next; vf_free(sf->n); vf_free(sf); } } vf_vf_get_vf(-1); vf_free(vf); } Private double vf_vf_get_design_size(int vf_id) { VF vf; vf = vf_vf_get_vf(vf_id); if ((vf == NULL) || (vf->tfm == NULL)){ fprintf(stderr, "VFlib internal error in vf_vf_get_design_size()\n"); abort(); } return vf->tfm->design_size; } #if 0 static VF last_vf = NULL; static int last_vf_id = -1; #endif Private VF vf_vf_get_vf(int vf_id) { VF vf; #if 1 vf = NULL; if (vf_id >= 0) vf = (vf_font_table->get_obj_by_id)(vf_font_table, vf_id); #else if (vf_id < 0){ last_vf = NULL; last_vf_id = -1; return NULL; } if (vf_id == last_vf_id){ vf = last_vf; } else { vf = (vf_font_table->get_obj_by_id)(vf_font_table, vf_id); if (vf != NULL){ last_vf = vf; last_vf_id = vf_id; } else { last_vf = NULL; last_vf_id = -1; } } #endif return vf; } Private VF_CHAR_PACKET_TBL vf_cache_loader(VF_CACHE c, VF_CACHE_KEY ck, int l) { VF_CHAR_PACKET_TBL vf_char_packets; VF_CHAR_PACKET packets; int npackets, ch; FILE *fp; int b; long n; unsigned char *cp; #if 0 printf("* VF cache_load %s\n", ck->font_path); #endif npackets = ck->tfm->end_char - ck->tfm->begin_char + 1; if (ck->font_path == NULL) return NULL; if ((fp = vf_fm_OpenBinaryFileStream(ck->font_path)) == NULL) return NULL; ALLOC_IF_ERR(vf_char_packets, struct s_vf_char_packet_tbl){ vf_error = VF_ERR_NO_MEMORY; return NULL; } ALLOCN_IF_ERR(packets, struct s_vf_char_packet, npackets+1){ /* one more element for sentinel. See vf_get_bitmap(). */ vf_free(vf_char_packets); vf_error = VF_ERR_NO_MEMORY; return NULL; } vf_char_packets->npackets = npackets; vf_char_packets->packets = packets; for (ch = 0; ch < npackets; ch++){ vf_char_packets->packets[ch].pl = 0; vf_char_packets->packets[ch].cc = 0; vf_char_packets->packets[ch].tfm = 0; vf_char_packets->packets[ch].dvi = NULL; } fseek(fp, ck->offs_char_packet, SEEK_SET); for (ch = 0; ch < npackets; ch++){ b = (int)READ_UINT1(fp); if (((int)VFINST_CP_SHORT_CHAR0 <= b) && (b <= (int)VFINST_CP_SHORT_CHAR241)){ vf_char_packets->packets[ch].pl = (UINT4)b; vf_char_packets->packets[ch].cc = (UINT4)READ_UINT1(fp); vf_char_packets->packets[ch].tfm = (UINT4)READ_UINT3(fp); } else if (b == (int)VFINST_CP_LONG_CHAR){ vf_char_packets->packets[ch].pl = READ_UINT4(fp); vf_char_packets->packets[ch].cc = READ_UINT4(fp); vf_char_packets->packets[ch].tfm = READ_UINT4(fp); } else if (b == VFINST_POST){ break; } else { fprintf(stderr, "VFlib warning: Broken VF file: %s\n", ck->font_path); break; } #if 0 printf(" 0x%02x: pl 0x%04lx: cc 0x%04lx\n", b, vf_char_packets->packets[ch].pl, vf_char_packets->packets[ch].cc); #endif if (vf_char_packets->packets[ch].pl > 0){ vf_char_packets->packets[ch].dvi = (unsigned char*)malloc(vf_char_packets->packets[ch].pl); if (vf_char_packets->packets[ch].dvi == NULL){ vf_free(vf_char_packets->packets); vf_free(vf_char_packets); vf_error = VF_ERR_NO_MEMORY; return NULL; } n = vf_char_packets->packets[ch].pl; for (cp = vf_char_packets->packets[ch].dvi; n > 0; cp++, n--) *cp = READ_UINT1(fp); } } return vf_char_packets; } Private void vf_cache_disposer(VF_CHAR_PACKET_TBL vf_char_packets) { int ch; #if 0 printf("* VF cache_disposer\n"); #endif if (vf_char_packets != NULL){ if (vf_char_packets->packets != NULL){ for (ch = vf_char_packets->npackets-1; ch >= 0; ch--) vf_free(vf_char_packets->packets[ch].dvi); } vf_free(vf_char_packets->packets); } vf_free(vf_char_packets); } Private int vf_vf_get_metric(int vf_id, long code_point, VF_METRIC1 met, double *ret_design_size) { VF vf; struct vf_s_metric1 metric1; if ( ((vf = vf_vf_get_vf(vf_id)) == NULL) || (vf->tfm == NULL) ){ fprintf(stderr, "VFlib internal error in vf_vf_get_metric()\n"); abort(); } if (ret_design_size != NULL) *ret_design_size = vf->tfm->design_size; if (met == NULL) met = &metric1; if (vf_tfm_metric(vf->tfm, code_point, met) == NULL) return -1; return 0; } Private VF_BITMAP vf_vf_get_bitmap(int vf_id, int mode, long code_point, double mag_x, double mag_y, int open_style, int glyph_style) { VF vf; VF_BITMAP bm; VF_CHAR_PACKET_TBL cptbl; struct vf_s_metric1 met1; struct vf_s_metric2 met2; struct s_vf_cache_key ck; int idx; if ( ((vf = vf_vf_get_vf(vf_id)) == NULL) || (vf->tfm == NULL) ){ fprintf(stderr, "VFlib internal error in vf_vf_get_bitmap()\n"); abort(); } switch (open_style){ default: case TEX_OPEN_STYLE_NONE: if (vf_tfm_metric(vf->tfm, code_point, &met1) == NULL) return NULL; #if 0 /*XXX*/ bm = vf_alloc_bitmap_with_metric1(&met1, vf->dpi_x * vf->mag_x * mag_x, vf->dpi_y * vf->mag_y * mag_y); #else bm = vf_alloc_bitmap_with_metric1(&met1, vf->dpi_x * mag_x, vf->dpi_y * mag_y); #endif vf_do_glyph_style(bm, glyph_style); return bm; case TEX_OPEN_STYLE_TRY: if (vf->subfonts_opened == 0){ if (vf_tfm_metric(vf->tfm, code_point, &met1) == NULL) return NULL; #if 0 /*XXX*/ bm = vf_alloc_bitmap_with_metric1(&met1, vf->dpi_x * vf->mag_x * mag_x, vf->dpi_y * vf->mag_y * mag_y); #else bm = vf_alloc_bitmap_with_metric1(&met1, vf->dpi_x * mag_x, vf->dpi_y * mag_y); #endif vf_do_glyph_style(bm, glyph_style); return bm; } break; case TEX_OPEN_STYLE_REQUIRE: if (vf->subfonts_opened == 0) return NULL; break; } ck.font_path = vf->vf_path; ck.tfm = vf->tfm; ck.offs_char_packet = vf->offs_char_packet; if ((cptbl = (vf_font_cache->get)(vf_font_cache, &ck, sizeof(ck))) == NULL) return NULL; idx = 0; cptbl->packets[cptbl->npackets].cc = code_point; /* sentinel */ while ((long)cptbl->packets[idx].cc != code_point) idx++; if (idx == cptbl->npackets){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } bm = vf_run_dvi_program(vf, &cptbl->packets[idx], mode, mag_x, mag_y); if (bm != NULL){ if (vf_tfm_metric(vf->tfm, code_point, &met1) == NULL){ VF_FreeBitmap(bm); return NULL; } #if 0 /*XXX*/ vf_metric1_to_metric2(&met1, (double)vf->dpi_y * vf->mag_y * mag_y, &met2); #else vf_metric1_to_metric2(&met1, (double)vf->dpi_y * mag_y, &met2); #endif bm->mv_x = met2.mv_x; bm->mv_y = met2.mv_y; } else { if (vf_tfm_metric(vf->tfm, code_point, &met1) == NULL) return NULL; #if 0 /*XXX*/ bm = vf_alloc_bitmap_with_metric1(&met1, vf->dpi_x * vf->mag_x * mag_x, vf->dpi_y * vf->mag_y * mag_y); #else bm = vf_alloc_bitmap_with_metric1(&met1, vf->dpi_x * mag_x, vf->dpi_y * mag_y); #endif vf_do_glyph_style(bm, glyph_style); } return bm; } Private void vf_do_glyph_style(VF_BITMAP bm, int glyph_style) { switch (glyph_style){ default: case TEX_GLYPH_STYLE_EMPTY: break; case TEX_GLYPH_STYLE_FILL: VF_FillBitmap(bm); break; } } Private VF_BITMAP vf_run_dvi_program(VF vf, VF_CHAR_PACKET packet, int mode, double mag_x, double mag_y) { struct vf_s_bitmaplist the_bmlist; VF_BITMAP bm; vf_bitmaplist_init(&the_bmlist); vf_dvi_interp(&the_bmlist, vf, mode, mag_x, mag_y, packet->cc, packet->dvi, packet->pl); bm = vf_bitmaplist_compose(&the_bmlist); vf_bitmaplist_finish(&the_bmlist); return bm; } Private int vf_dvi_interp(VF_BITMAPLIST bmlist, VF vf, int mode, double mag_x, double mag_y, long cc, unsigned char *dvi_prog, int prog_len) { int pc, instr, n, ret; long code_point, h, w, f, length; double fmag; double r_mv_x, r_mv_y; struct vf_s_metric1 met, *m; struct s_vf_dvi_stack the_dvi_stack, *dvi_stack; fmag = 1.0; dvi_stack = &the_dvi_stack; vf_dvi_stack_init(vf, dvi_stack); pc = 0; ret = 0; while (pc < prog_len){ if (vf_debug('d')){ printf("VFlib Virtual Font\n "); printf("DVI CODE PC=0x%04x: INSTR=0x%02x (%d) H=0x%08x V=0x%08x\n", pc, (int)dvi_prog[pc], (int)dvi_prog[pc], (int)STACK(h), (int)STACK(v)); } instr = (int)dvi_prog[pc++]; if (instr <= VFINST_SET4){ /* SETCHAR0 ... SETCHAR127, SET1, ... ,SET4 */ if ((code_point = instr) > VFINST_SETCHAR127){ n = instr - VFINST_SET1 + 1; code_point = GET_UINTN(&dvi_prog[pc], n); pc += n; } vf_dvi_interp_put_char(bmlist, vf, dvi_stack, code_point, mode, fmag * mag_x, fmag * mag_y); m = VF_GetMetric1(STACK(font_id), code_point, &met, fmag * mag_x, fmag * mag_y); if (m == NULL) continue; r_mv_x = (met.mv_x / vf->design_size) * (double)(1<<20); r_mv_y = (met.mv_y / vf->design_size) * (double)(1<<20); STACK(h) = STACK(h) + toint(r_mv_x); STACK(v) = STACK(v) + toint(r_mv_y); } else if ((VFINST_FNTNUM0 <= instr) && (instr <= (VFINST_FNTNUM63))){ f = instr - VFINST_FNTNUM0; vf_dvi_interp_font_select(vf, dvi_stack, f, &fmag); } else { switch (instr){ case VFINST_PUT1: case VFINST_PUT2: case VFINST_PUT3: case VFINST_PUT4: n = instr - VFINST_SET1 + 1; code_point = (UINT4)GET_UINTN(&dvi_prog[pc], n); pc += n; vf_dvi_interp_put_char(bmlist, vf, dvi_stack, code_point, mode, fmag * mag_x, fmag * mag_y); break; case VFINST_SETRULE: h = (long)GET_INT4(&dvi_prog[pc]); pc += 4; w = (long)GET_INT4(&dvi_prog[pc]); pc += 4; vf_dvi_interp_put_rule(bmlist, vf, dvi_stack, w, h, mag_x, mag_y); STACK(h) += w; break; case VFINST_PUTRULE: h = (long)GET_INT4(&dvi_prog[pc]); pc += 4; w = (long)GET_INT4(&dvi_prog[pc]); pc += 4; vf_dvi_interp_put_rule(bmlist, vf, dvi_stack, w, h, mag_x, mag_y); break; case VFINST_RIGHT1: case VFINST_RIGHT2: case VFINST_RIGHT3: case VFINST_RIGHT4: n = instr - VFINST_RIGHT1 + 1; STACK(h) += (long)GET_INTN(&dvi_prog[pc], n); pc += n; break; case VFINST_X1: case VFINST_X2: case VFINST_X3: case VFINST_X4: n = instr - VFINST_X0; STACK(x) = (long)GET_INTN(&dvi_prog[pc], n); pc += n; case VFINST_X0: STACK(h) += STACK(x); break; case VFINST_W1: case VFINST_W2: case VFINST_W3: case VFINST_W4: n = instr - VFINST_W0; STACK(w) = (long)GET_INTN(&dvi_prog[pc], n); pc += n; case VFINST_W0: STACK(h) += STACK(w); break; case VFINST_Y1: case VFINST_Y2: case VFINST_Y3: case VFINST_Y4: n = instr - VFINST_Y0; STACK(y) = (long)GET_INTN(&dvi_prog[pc], n); pc += n; case VFINST_Y0: STACK(v) += STACK(y); break; case VFINST_Z1: case VFINST_Z2: case VFINST_Z3: case VFINST_Z4: n = instr - VFINST_Z0; STACK(z) = (long)GET_INTN(&dvi_prog[pc], n); pc += n; case VFINST_Z0: STACK(v) += STACK(z); break; case VFINST_DOWN1: case VFINST_DOWN2: case VFINST_DOWN3: case VFINST_DOWN4: n = instr - VFINST_DOWN1 + 1; STACK(v) += (long)GET_INTN(&dvi_prog[pc], n); break; case VFINST_XXX1: case VFINST_XXX2: case VFINST_XXX3: case VFINST_XXX4: n = instr - VFINST_XXX1 + 1; length = (long)GET_INTN(&dvi_prog[pc], n); pc += n; pc += length; break; case VFINST_FNT1: case VFINST_FNT2: case VFINST_FNT3: case VFINST_FNT4: n = instr - VFINST_FNT1 + 1; f = GET_UINTN(&dvi_prog[pc], n); pc += n; vf_dvi_interp_font_select(vf, dvi_stack, f, &fmag); break; case VFINST_PUSH: vf_dvi_stack_push(vf, dvi_stack); break; case VFINST_POP: vf_dvi_stack_pop(vf, dvi_stack); break; case VFINST_NOP: break; default: vf_error = VF_ERR_ILL_FONT_FILE; ret = -1; goto ExitInterp; } } } ExitInterp: vf_dvi_stack_deinit(vf, dvi_stack); return ret; } Private void vf_dvi_interp_put_char(VF_BITMAPLIST bmlist, VF vf, VF_DVI_STACK dvi_stack, long code_point, int mode, double mag_x, double mag_y) { VF_BITMAP bm; double rx, ry, ds; long off_x, off_y; if (STACK(font_id) < 0) return; if (mode == 1){ bm = VF_GetBitmap1(STACK(font_id), code_point, mag_x, mag_y); } else { bm = VF_GetBitmap2(STACK(font_id), code_point, mag_x, mag_y); } #if 0 printf("** VF_GetBitmap(%d, 0x%lx, %.2f %.2f) = %p\n", STACK(font_id), code_point, mag_x, mag_y, bm); VF_DumpBitmap(bm); #endif if (bm == NULL) return; ds = vf->design_size / (double)(1<<20); #if 1 /*XXX*/ rx = vf->mag_x * mag_x * (vf->dpi_x/72.27) * ds; ry = vf->mag_y * mag_y * (vf->dpi_y/72.27) * ds; #else rx = (vf->dpi_x/72.27) * ds; ry = (vf->dpi_y/72.27) * ds; #endif off_x = rx * (double)STACK(h); off_y = -ry * (double)STACK(v); vf_bitmaplist_put(bmlist, bm, off_x, off_y); } Private void vf_dvi_interp_put_rule(VF_BITMAPLIST bmlist, VF vf, VF_DVI_STACK dvi_stack, long w, long h, double mag_x, double mag_y) { VF_BITMAP bm; double rx, ry, ds; int bm_w, bm_h; long off_x, off_y; ds = vf->design_size / (double)(1<<20); rx = vf->mag_x * mag_x * vf->dpi_x/72.27 * ds; ry = vf->mag_y * mag_y * vf->dpi_y/72.27 * ds; bm_w = rx * w; bm_h = ry * h; if (bm_w <= 0) bm_w = 1; if (bm_h <= 0) bm_h = 1; bm = vf_alloc_bitmap(bm_w, bm_h); if (bm == NULL) return; VF_FillBitmap(bm); bm->off_x = 0; bm->off_y = bm_h - 1; off_x = rx * (double)STACK(h); off_y = -ry * (double)STACK(v); vf_bitmaplist_put(bmlist, bm, off_x, off_y); } Private void vf_dvi_interp_font_select(VF vf, VF_DVI_STACK dvi_stack, long f, double *fmag_p) { VF_SUBFONT sf; STACK(f) = f; STACK(font_id) = -1; for (sf = vf->subfonts; sf != NULL; sf = sf->next){ if (sf->k == f){ STACK(font_id) = sf->font_id; if (fmag_p != NULL) *fmag_p = 1; break; } } #if 0 printf("FONT %d: fid=%d (%s)\n", f, sf->font_id, sf->n); #endif } Private int vf_dvi_stack_init(VF vf, VF_DVI_STACK stack) { VF_DVI_STACK top; ALLOC_IF_ERR(top, struct s_vf_dvi_stack){ vf_error = VF_ERR_NO_MEMORY; return -1; } top->h = top->v = top->w = top->x = top->y = top->z = 0; top->f = vf->default_subfont; top->font_id = vf->subfonts->font_id; top->next = NULL; stack->next = top; return 0; } Private int vf_dvi_stack_deinit(VF vf, VF_DVI_STACK stack) { VF_DVI_STACK elem, elem_next; elem = stack->next; while (elem != NULL){ elem_next = elem->next; vf_free(elem); elem = elem_next; } return 0; } Private int vf_dvi_stack_push(VF vf, VF_DVI_STACK stack) { VF_DVI_STACK new_elem, top; ALLOC_IF_ERR(new_elem, struct s_vf_dvi_stack){ vf_error = VF_ERR_NO_MEMORY; return -1; } top = stack->next; new_elem->h = top->h; new_elem->v = top->v; new_elem->w = top->w; new_elem->x = top->x; new_elem->y = top->y; new_elem->z = top->z; new_elem->f = top->f; new_elem->font_id = top->font_id; new_elem->next = top; stack->next = new_elem; return 0; } Private int vf_dvi_stack_pop(VF vf, VF_DVI_STACK stack) { VF_DVI_STACK top; top = stack->next; if (top == NULL){ fprintf(stderr, "VFlib warning: VF DVI stack under flow: %s\n", vf->vf_path); return -1; } stack->next = top->next; vf_free(top); return 0; } /*EOF*/ vflib3-3.6.14.dfsg/src/vflibcap.c0000644000175000017500000004562707405116115016023 0ustar mohuramohura/* vflibcap.c - a module for reading a vflibcap file. * * Programmmed by Hirotsugu Kakugawa * E-Mail: h.kakugawa@computer.org * * Edition History * 18 Nov 1997 for VFlib Version 3.4. Lisp-like syntax. * 10 Jun 1998 Added capability arg types CAPABILITY_STRING_LIST0 * and CAPABILITY_STRING_LIST1. * 24 Jun 1998 Changed to read environemnt variable value VFLIBCAP_PARAM_xxx * as an s-exp. * 20 Jan 1999 Changed to vflibcap file searching. * */ /* * Copyright (C) 1997-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #if defined(HAVE_STRING_H) || defined(STDC_HEADERS) # include #else # include #endif #ifdef HAVE_UNISTD_H # include #endif #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "consts.h" #include "path.h" #include "vflpaths.h" #include "params.h" #include "str.h" #include "sexp.h" Private char* find_vflibcap(char *name); Private SEXP get_entry(char *type, char *name, char *desc); Private SEXP get_entry2(FILE *fp, char *type, char *top_entry, char *name, char *desc, int depth, int *statp); Private int syntax_check_entry(SEXP entry); Private int parse_entry(SEXP entry, CAPABILITY_TABLE ct, char *name, SEXP_ALIST, SEXP_ALIST, char *def_type); Private SEXP get_value_if_variable(SEXP val, SEXP_ALIST,SEXP_ALIST); Private SEXP get_variable_value(char *var, SEXP_ALIST,SEXP_ALIST); Private char *VFlibcapFile = NULL; Glocal int vf_cap_init(char *vflibcap_file) { char *s; if (vf_dbg_vfcap == 1) printf(">> Init vflibcap: arg=%s\n", (vflibcap_file==NULL) ? "" : vflibcap_file); if (VFlibcapFile != NULL){ vf_free(VFlibcapFile); VFlibcapFile = NULL; } /* If env var VFLIB_VFLIBCAP_PATH is defined, use its value as path name */ if ((s = getenv(VF_ENV_VFLIBCAP_PATH)) != NULL){ if (vf_dbg_vfcap == 1) printf(">> Checking vflibcap %s (%s %s)\n", s, "given by environment variable", VF_ENV_VFLIBCAP_PATH); VFlibcapFile = find_vflibcap(s); if (VFlibcapFile == NULL) return -1; goto vflibcap_is_found; } if (vflibcap_file == NULL) vflibcap_file = VF_DEFAULT_VFLIBCAP_FILE; /* Search vflibcap in runtime dir */ if ((VFlibcapFile = find_vflibcap(vflibcap_file)) != NULL) goto vflibcap_is_found; /* not found .. */ if (vf_dbg_vfcap == 1) printf(">> Not found\n"); if (vf_error != VF_ERR_NO_MEMORY) vf_error = VF_ERR_NO_VFLIBCAP; return -1; vflibcap_is_found: if (vf_dbg_vfcap == 1) printf(">> Found: %s\n", VFlibcapFile); return 0; } Private char* find_vflibcap(char *name) { char *s, *p; /* Check vflibcap file relative to current directory */ if (vf_dbg_vfcap == 1) printf(">> Checking vflibcap relative to current dir: %s\n", name); if (vf_path_file_read_ok(name) == TRUE){ if ((s = vf_strdup(name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; return NULL; } return s; } /* Next, Check vflibcap file in runtime dir */ if (vf_dbg_vfcap == 1) printf(">> Checking vflibcap in runtime dir: %s\n", name); p = vf_path_find_runtime_file(NULL, name, VF_ENV_VFLIBCAP_DIR); return p; } Glocal int vf_cap_GetParsedClassDefault(char *class_name, CAPABILITY_TABLE ct, SEXP_ALIST varlist1, SEXP_ALIST varlist2) { SEXP entry; int v, i; if (ct != NULL){ for (i = 0; ct[i].cap != NULL; i++){ if (ct[i].val != NULL) *(ct[i].val) = NULL; } } entry = get_entry(VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, class_name, "class default"); if (entry == NULL) return VFLIBCAP_PARSED_NOT_FOUND; v = parse_entry(entry, ct, class_name, varlist1, varlist2, VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION); vf_sexp_free(&entry); return v; } Glocal int vf_cap_GetParsedFontEntry(SEXP entry, char *font_name, CAPABILITY_TABLE ct, SEXP_ALIST varlist1, SEXP_ALIST varlist2) { int v, i; if (ct != NULL){ for (i = 0; ct[i].cap != NULL; i++){ if (ct[i].val != NULL) *(ct[i].val) = NULL; } } if (entry == NULL) return -1; v = parse_entry(entry, ct, font_name, varlist1, varlist2, VF_CAPE_VFLIBCAP_FONT_ENTRY_DEFINITION); return v; } Glocal SEXP vf_cap_GetFontEntry(char *font_name) { return get_entry(VF_CAPE_VFLIBCAP_FONT_ENTRY_DEFINITION, font_name, "font entry"); } #define GET_ENTRY_STATUS_OK 0 #define GET_ENTRY_STATUS_LOOP 1 #define GET_ENTRY_STATUS_NOT_FOUND 2 #define GET_ENTRY_STATUS_NOT_FOUND_NEED_MSG 3 Private SEXP get_entry(char *type, char *name, char *desc) { int stat; SEXP entry; FILE *fp; if ((fp = fopen(VFlibcapFile, FOPEN_RD_MODE_TEXT)) == NULL){ vf_error = VF_ERR_NO_VFLIBCAP; if (vf_dbg_vfcap == 1) printf(">>Can't read vflibcap file: %s\n", VFlibcapFile); return NULL; } entry = get_entry2(fp, type, name, name, desc, 0, &stat); fclose(fp); if (stat == GET_ENTRY_STATUS_OK) return entry; vf_error = VF_ERR_NO_FONT_ENTRY; return NULL; } Private SEXP get_entry2(FILE *fp, char *type, char *top_entry, char *name, char *desc, int depth, int *statp) { int expanded, valid; SEXP sexp, mdef, mhead, mtail, mlast, prev, s, next; *statp = GET_ENTRY_STATUS_OK; if (depth > 16){ /* Nesting is too deep. Possibly, the inheritance relation must have a loop. */ fprintf(stderr, "VFlib: nesting of %s is too deep in vflibcap %s.\n", top_entry, VFlibcapFile); *statp = GET_ENTRY_STATUS_LOOP; return NULL; } rewind(fp); for (;;){ if ((sexp = vf_sexp_read(fp)) == NULL) break; if ( vf_sexp_consp(sexp) && vf_sexp_stringp(vf_sexp_car(sexp)) && vf_sexp_consp(vf_sexp_cdr(sexp)) && vf_sexp_stringp(vf_sexp_cadr(sexp)) ){ /* (str str ...) */ if ((strcmp(vf_sexp_get_cstring(vf_sexp_car(sexp)), type) == 0) && (strcmp(vf_sexp_get_cstring(vf_sexp_cadr(sexp)), name) == 0)){ if (vf_dbg_vfcap == 1) printf (">>Found %s %s\n", desc, name); break; } } vf_sexp_free(&sexp); } if (sexp == NULL){ if (vf_dbg_vfcap == 1) printf(">>Can't find %s '%s' in vflibcap %s\n", desc, name, VFlibcapFile); *statp = GET_ENTRY_STATUS_NOT_FOUND_NEED_MSG; return NULL; } /* inheritance by macros */ for (;;){ expanded = 0; prev = vf_sexp_cdr(sexp); s = vf_sexp_cdr(prev); while (vf_sexp_consp(s)){ if (vf_sexp_stringp(vf_sexp_car(s))){ mdef = get_entry2(fp, VF_CAPE_VFLIBCAP_MACRO_DEFINITION, top_entry, vf_sexp_get_cstring(vf_sexp_car(s)), "macro", depth+1, statp); if (mdef == NULL){ if (*statp == GET_ENTRY_STATUS_NOT_FOUND_NEED_MSG){ fprintf(stderr, "VFlib: macro '%s' is undefined in vflibcap %s\n", vf_sexp_get_cstring(vf_sexp_car(s)), VFlibcapFile); *statp = GET_ENTRY_STATUS_NOT_FOUND; } return NULL; } /* expand macro */ mhead = mtail = vf_sexp_cddr(mdef); while (vf_sexp_consp(vf_sexp_cdr(mtail))) mtail = vf_sexp_cdr(mtail); mlast = vf_sexp_cdr(mtail); next = vf_sexp_cdr(s); vf_sexp_rplacd(prev, mhead); vf_sexp_rplacd(mtail, next); /* release garbage */ vf_sexp_cdr(mdef)->t.cons.cdr = NULL; vf_sexp_free(&mdef); vf_sexp_free(&mlast); s->t.cons.cdr = NULL; vf_sexp_free(&s); expanded = 1; break; } prev = s; s = vf_sexp_cdr(s); } if (expanded == 0) break; } valid = syntax_check_entry(sexp); if (!valid){ fprintf(stderr, "VFlib: Syntax error in vflibcap '%s' for entry '%s'.\n", VFlibcapFile, name); *statp = GET_ENTRY_STATUS_NOT_FOUND; vf_sexp_free(&sexp); return NULL; } return sexp; } Private int syntax_check_entry(SEXP entry) { char *str; #if 0 SEXP s, t, u, sa; #endif if ( !vf_sexp_listp(entry) || (vf_sexp_length(entry) < 2) || !vf_sexp_stringp(vf_sexp_car(entry)) || !vf_sexp_stringp(vf_sexp_cadr(entry)) ) return FALSE; str = vf_sexp_get_cstring(vf_sexp_car(entry)); if ( (strcmp(str, VF_CAPE_VFLIBCAP_FONT_ENTRY_DEFINITION) != 0) && (strcmp(str, VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION) != 0) && (strcmp(str, VF_CAPE_VFLIBCAP_MACRO_DEFINITION) != 0) ) return FALSE; #if 0 for (s = vf_sexp_cddr(entry); vf_sexp_consp(s); s = vf_sexp_cdr(s)){ sa = vf_sexp_car(s); if ( !vf_sexp_listp(sa) || !vf_sexp_stringp(vf_sexp_car(sa)) || (vf_sexp_length(sa) < 2) ) return FALSE; t = vf_sexp_cdr(sa); if (vf_sexp_stringp(vf_sexp_car(t))){ /* all elements must be strings */ for (t = vf_sexp_cdr(t); vf_sexp_consp(t); t = vf_sexp_cdr(t)){ if (!vf_sexp_stringp(vf_sexp_car(t))) return FALSE; } } else { /* must be an alist */ for ( ; vf_sexp_consp(t); t = vf_sexp_cdr(t)){ if (!vf_sexp_listp(vf_sexp_car(t)) || (vf_sexp_length(vf_sexp_car(t)) <= 1)) return FALSE; for (u = vf_sexp_car(t); !vf_sexp_null(u); u = vf_sexp_cdr(u)){ if (!vf_sexp_stringp(vf_sexp_car(u))) return FALSE; } } } } if (!vf_sexp_null(s)) return FALSE; #endif return TRUE; } Private int parse_entry(SEXP entry, CAPABILITY_TABLE ct, char *name, SEXP_ALIST varlist1, SEXP_ALIST varlist2, char *def_type) { SEXP sexp, scap = NULL, sval, cap_val, v, vvv; int val, f, i; char *typename; if (vf_dbg_vfcap == 1) printf(">> Parsing vflibcap entry: (%s %s ...)\n", def_type, name); if (entry == NULL) return VFLIBCAP_PARSED_OK; if (ct == NULL){ if (vf_sexp_length(entry) == 2) return VFLIBCAP_PARSED_OK; else if (vf_sexp_length(entry) < 2) return VFLIBCAP_PARSED_ERROR; for (sexp = vf_sexp_cddr(entry); !vf_sexp_null(sexp); sexp = vf_sexp_cdr(sexp)){ scap = vf_sexp_caar(sexp); fprintf(stderr, "VFlib Warning: %s: %s\n", "undefined capability in vflibcap", vf_sexp_get_cstring(scap)); } return VFLIBCAP_PARSED_ERROR; } if (vf_sexp_length(entry) <= 1) return VFLIBCAP_PARSED_ERROR; val = VFLIBCAP_PARSED_OK; /* Check capabilities in a vflibcap entry */ for (sexp = vf_sexp_cddr(entry); vf_sexp_consp(sexp); sexp = vf_sexp_cdr(sexp)){ if (!vf_sexp_consp(vf_sexp_car(sexp))) continue; scap = vf_sexp_caar(sexp); sval = vf_sexp_cdar(sexp); for (i = 0; ct[i].cap != NULL; i++){ if (strcmp(vf_sexp_get_cstring(scap), ct[i].cap) == 0) break; } if (ct[i].cap == NULL){ /* the capability given vflibcap is not defined. */ fprintf(stderr, "VFlib Warning: %s '%s' (%s %s ...)\n", "Undefined capability in vflibcap", vf_sexp_get_cstring(scap), def_type, name); } else { if ((ct[i].val != NULL) && (*(ct[i].val) != NULL)){ fprintf(stderr, "VFlib Warning: %s '%s' in vflibcap (%s %s ...)\n", "multiple definition of a capability", vf_sexp_get_cstring(scap), def_type, name); vf_sexp_free(ct[i].val); *(ct[i].val) = NULL; } /* variable expantion. */ if ((strcmp(VF_CAPE_VFLIB_DEFAULTS, name) == 0) && (strcmp(ct[i].cap, VF_CAPE_VARIABLE_VALUES) == 0)) v = vf_sexp_copy(sval); else v = get_value_if_variable(sval, varlist1, varlist2); if (v == NULL) continue; /* Check the value type. */ cap_val = NULL; switch (ct[i].type){ case CAPABILITY_LIST: typename = "a list"; if (vf_sexp_listp(v)) cap_val = vf_sexp_copy(v); break; case CAPABILITY_STRING: typename = "a string"; if (vf_sexp_listp(v) && (vf_sexp_length(v) == 1) && (vf_sexp_stringp(vf_sexp_car(v)))) cap_val = vf_sexp_copy(vf_sexp_car(v)); break; case CAPABILITY_ALIST: typename = "an alist"; if (vf_sexp_alistp(v)) cap_val = vf_sexp_copy(v); break; case CAPABILITY_VECTOR: typename = "a vector"; if (vf_sexp_listp(v) && (vf_sexp_length(v) == 2) && (vf_sexp_stringp(vf_sexp_car(v))) && (vf_sexp_stringp(vf_sexp_cadr(v)))) cap_val = vf_sexp_copy(v); break; case CAPABILITY_STRING_LIST0: typename = "a list of strings (including none)"; if ((vf_sexp_listp(v) && (vf_sexp_length(v) >= 0))){ f = 1; for (vvv = v; vf_sexp_consp(vvv); vvv = vf_sexp_cdr(vvv)){ if (!vf_sexp_stringp(vf_sexp_car(vvv))){ f = 0; break; } } if (f == 1) cap_val = vf_sexp_copy(v); } break; case CAPABILITY_STRING_LIST1: typename = "list of strings (at least one)"; if ((vf_sexp_listp(v) && (vf_sexp_length(v) >= 1))){ f = 1; for (vvv = v; vf_sexp_consp(vvv); vvv = vf_sexp_cdr(vvv)){ if (!vf_sexp_stringp(vf_sexp_car(vvv))){ f = 0; break; } } if (f == 1) cap_val = vf_sexp_copy(v); } break; default: fprintf(stderr, "VFlib internal error: cannot happen in %s\n", "parse_entry()"); abort(); break; } vf_sexp_free(&v); if (cap_val != NULL){ if ((strcmp(VF_CAPE_VFLIB_DEFAULTS, name) == 0) && (strcmp(ct[i].cap, VF_CAPE_VARIABLE_VALUES) == 0)){ (void) vf_params_default(vf_sexp_copy(cap_val)); } if (ct[i].val != NULL) *(ct[i].val) = cap_val; else vf_sexp_free(&cap_val); } else { /* type error */ fprintf(stderr, "VFlib: %s '%s' in vflibcap - %s is expected. (%s %s ...)\n", "type mismatch for capability", vf_sexp_get_cstring(scap), typename, def_type, name); val = VFLIBCAP_PARSED_ERROR; } } } /* Check if essential capabilities are defined. */ for (i = 0; ct[i].cap != NULL; i++){ if (ct[i].ess != CAPABILITY_ESSENTIAL) continue; for (sexp = vf_sexp_cddr(entry); !vf_sexp_null(sexp); sexp = vf_sexp_cdr(sexp)){ scap = vf_sexp_caar(sexp); if (strcmp(vf_sexp_get_cstring(scap), ct[i].cap) == 0) break; } if (vf_sexp_null(sexp)){ /* the essential capability is not given in vflibcap entry. */ fprintf(stderr, "VFlib Error: %s '%s' %s: (%s %s ... )\n", "essential capability", vf_sexp_get_cstring(scap), "is not given in vflibcap", def_type, name); val = VFLIBCAP_PARSED_ERROR; } } if (vf_dbg_vfcap == 1){ for (i = 0; ct[i].cap != NULL; i++){ if ((ct[i].val != NULL) && (*(ct[i].val) != NULL)){ printf("** %s: ", ct[i].cap); vf_sexp_pp(*(ct[i].val)); } } } return val; } Private SEXP get_value_if_variable(SEXP val, SEXP_ALIST varlist1, SEXP_ALIST varlist2) { char *strval, *varname; if (vf_sexp_listp(val) && (vf_sexp_length(val) == 1) && vf_sexp_stringp(vf_sexp_car(val)) && (strncmp(vf_sexp_get_cstring(vf_sexp_car(val)), VF_CAPE_VFLIBCAP_VARIABLE_MARK, strlen(VF_CAPE_VFLIBCAP_VARIABLE_MARK)) == 0) ){ /* variable reference */ strval = vf_sexp_get_cstring(vf_sexp_car(val)); varname = &strval[strlen(VF_CAPE_VFLIBCAP_VARIABLE_MARK)]; val = get_variable_value(varname, varlist1, varlist2); if ((val != NULL) && (vf_dbg_vfcap == 1)){ printf(">> vflibcap parameterlization: %s => ", varname); vf_sexp_pp(val); } } else { val = vf_sexp_copy(val); } return val; } Private SEXP get_variable_value(char *var, SEXP_ALIST varlist1, SEXP_ALIST varlist2) { char *strval, *envname; SEXP v, as; /* check an environment variable */ envname = (char*)malloc(strlen(VF_ENV_VFLIBCAP_PARAM_PREFIX) + strlen(var) + 1); if (envname != NULL){ sprintf(envname, "%s%s", VF_ENV_VFLIBCAP_PARAM_PREFIX, var); if ((strval = getenv(envname)) != NULL){ v = vf_sexp_read_from_string_stream(strval); if (vf_dbg_vfcap == 1){ printf(">> Variable (by env var) '%s' = ", var); vf_sexp_pp(v); } return v; } } vf_free(envname); /* check parameters given at class default */ if (varlist1 != NULL){ if ((as = vf_sexp_assoc(var, varlist1)) != NULL){ v = vf_sexp_cdr(as); if (vf_dbg_vfcap == 1){ printf(">> Variable (by default value) '%s' = ", var); vf_sexp_pp(v); } return vf_sexp_copy(v); } } if (varlist2 != NULL){ if ((as = vf_sexp_assoc(var, varlist2)) != NULL){ v = vf_sexp_cdr(as); if (vf_dbg_vfcap == 1){ printf(">> Variable (by default value) '%s' = ", var); vf_sexp_pp(v); } return vf_sexp_copy(v); } } /* check parameters given at VF_Init() or at VFlib default in vflibcap */ if ((v = vf_params_lookup(var)) != NULL){ if (vf_dbg_vfcap == 1){ printf(">> Variable (by VF_Init() or VFlib default) '%s' = ", var); vf_sexp_pp(v); } return v; } fprintf(stderr, "VFlib warning: Undefined variable: '%s'\n", var); return NULL; } #ifdef DEBUG int vf_error = 0; int vf_dbg_vfcap = 1; int vf_dbg_font_search = 0; int vf_dbg_parameters = 0; int vf_ccv_autoload = 0; int main(argc, argv) int argc; char **argv; { #if 0 int i; SEXP entry, iter; SEXP val; if (argc < 3){ printf("Usage: ./a.out VFLIBCAP ENTRY [CAP1 CAP2 ...]\n"); exit(1); } VF_CAP_Init(argv[1], NULL); if ((entry = VF_CAP_GetFontEntry(argv[2])) != NULL){ vf_sexp_pp(entry); } else { printf("not found\n"); } for (i = 3; i < argc; i++){ printf("\"%s\": \n", argv[i]); for (iter = VF_CAP_PropValueHead(entry, argv[i]); iter != NULL; iter = VF_CAP_PropValueNext(iter)){ val = VF_CAP_PropValueGet(iter); printf(" "); vf_sexp_pp(val); } vf_sexp_free(&entry); } #else int i; SEXP fontclass, fontdirs, extensions, pixel, point; struct s_capability_table ct[] = { {"font-class", CAPABILITY_STRING, CAPABILITY_ESSENTIAL, &fontclass}, {"directories", CAPABILITY_LIST, CAPABILITY_OPTIONAL, &fontdirs}, {"extensions", CAPABILITY_LIST, CAPABILITY_OPTIONAL, &extensions}, {"pixel-size", CAPABILITY_STRING, CAPABILITY_OPTIONAL, &pixel}, {"point-size", CAPABILITY_STRING, CAPABILITY_OPTIONAL, &point}, {NULL, 0, 0, NULL} }; if (argc < 3){ printf("Usage: ./a.out VFLIBCAP ENTRY\n"); exit(1); } VF_CAP_Init(argv[1], NULL); if (VF_CAP_GetParsedFontEntry(argv[2], ct) < 0){ printf("not found\n"); exit(0); } for (i = 0; ct[i].cap != NULL; i++){ if (*(ct[i].val) != NULL){ printf("\"%s\": \n", ct[i].cap); printf(" "); vf_sexp_pp(*(ct[i].val)); } vf_sexp_free(ct[i].val); } #endif return 0; } char* VF_CAP_GetEntry(char *entry) { return NULL; } char* VF_CAP_GetString(char *entry) { return NULL; } #endif /*EOF*/ vflib3-3.6.14.dfsg/src/zeit.c0000644000175000017500000002661707363431031015206 0ustar mohuramohura/* * zeit.c - 'Syotai Kurabu' font interface * by Hirotsugu Kakugawa * * 3 Dec 1996 First version. * 10 Dec 1996 Changed for VFlib version 3.1 * 12 Dec 1996 Eliminated "do" capability. * 26 Feb 1997 Added 'query_font_type'. * 7 Aug 1997 VFlib 3.3 Changed API. * 27 Jan 1998 VFlib 3.4 Changed API. * 18 Oct 2001 Fixed memory leaks. * */ /* * Copyright (C) 1993-2001 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "zeit.h" static VF_TABLE zeit_table = NULL; Private int ZEIT_Init(void) { ZEIT_GetZEIT(-1); if ((zeit_table = vf_table_create()) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } return 0; } Private void zeit_release(ZEIT zeit); Private int zeit_make_header(char*,int,char**,long**,long**,int); Private int ZEIT_Open(char *font_name) { ZEIT zeit; int zeit_id; if ((zeit_id = (zeit_table->get_id_by_key)(zeit_table, font_name, strlen(font_name)+1)) >= 0){ (zeit_table->link_by_id)(zeit_table, zeit_id); return zeit_id; } ALLOC_IF_ERR(zeit, struct s_zeit){ vf_error = VF_ERR_NO_MEMORY; return -1; } zeit->path_name1 = NULL; zeit->ol_size1 = NULL; zeit->ol_offset1 = NULL; zeit->path_name2 = NULL; zeit->ol_size2 = NULL; zeit->ol_offset2 = NULL; if (zeit_make_header(font_name, 1, &zeit->path_name1, &zeit->ol_size1, &zeit->ol_offset1, 1) < 0) goto Error; if (zeit_make_header(font_name, 2, &zeit->path_name2, &zeit->ol_size2, &zeit->ol_offset2, 2) < 0) goto Error; if ((zeit_id = (zeit_table->put)(zeit_table, zeit, font_name, strlen(font_name)+1)) < 0){ vf_error = VF_ERR_NO_MEMORY; goto Error; } ZEIT_SetZEIT(zeit_id, zeit); return zeit_id; Error: zeit_release(zeit); return -1; } Private void ZEIT_Close(int zeit_id) { ZEIT zeit; if ((zeit = ZEIT_GetZEIT(zeit_id)) == NULL){ fprintf(stderr, "VFlib internal error: ZEIT_Close()\n"); vf_error = VF_ERR_INTERNAL; return; } if ((zeit_table->unlink_by_id)(zeit_table, zeit_id) > 0) return; zeit_release(zeit); } Private void zeit_release(ZEIT zeit) { if (zeit != NULL){ vf_free(zeit->path_name1); vf_free(zeit->path_name2); vf_free(zeit->ol_offset1); vf_free(zeit->ol_offset2); vf_free(zeit->ol_size1); vf_free(zeit->ol_size2); vf_free(zeit); } } Private int zeit_read_header(long**,long**,char*); Private int zeit_correct_size(long*,long*,FILE*,int); Private int zeit_code2c(int); Private int zeit_read_1byte(FILE*); Private unsigned long zeit_read_4bytes(FILE*); Private void zeit_init_bit_stream(FILE*); Private int zeit_read_10bits(void); Private void zeit_seek(FILE*,long); Private long zeit_current_pos(FILE*); Private int zeit_make_header(char *font_name, int ext, char **path_namep, long **ol_sizep, long **ol_offsetp, int type) { char *e; char fname[MAXPATHLEN]; int i; SEXP s; *path_namep = NULL; *ol_offsetp = NULL; *ol_sizep = NULL; for (s = default_extensions; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ e = vf_sexp_get_cstring(vf_sexp_car(s)); sprintf(fname, "%s%s%d", font_name, e, ext); if ((*path_namep = vf_search_file(fname, -1, NULL, FALSE, -1, default_fontdirs, NULL, NULL)) != NULL) break; } if (*path_namep == NULL){ if (type == 1){ vf_error = VF_ERR_NO_FONT_FILE; return -1; } return 0; } if (debug_on('f')) printf("VFlib ZEIT: font path: %s\n", *path_namep); ALLOCN_IF_ERR(*ol_offsetp, long, ZEIT_NCHARS){ vf_error = VF_ERR_NO_MEMORY; goto Error; } ALLOCN_IF_ERR(*ol_sizep, long, ZEIT_NCHARS){ vf_error = VF_ERR_NO_MEMORY; goto Error; } for (i = 0; i < ZEIT_NCHARS; i++){ (*ol_offsetp)[i] = -1; (*ol_sizep)[i] = 0; } if (zeit_read_header(ol_sizep, ol_offsetp, *path_namep) < 0){ goto Error; } return 0; Error: vf_free(*path_namep); *path_namep = NULL; vf_free(*ol_offsetp); *ol_offsetp = NULL; vf_free(*ol_sizep); *ol_sizep = NULL; return -1; } Private int zeit_read_header(long **ol_sizep, long **ol_offsetp, char *font_path) { int i, j; FILE *fp; if ((fp = vf_fm_OpenBinaryFileStream(font_path)) == NULL){ fprintf(stderr, "VFlib Error. File not found: %s\n", font_path); return -1; } (void) zeit_read_1byte(fp); (void) zeit_read_1byte(fp); for (i = 0; i < ZEIT_NCHARS; i++){ (*ol_offsetp)[i] = zeit_read_4bytes(fp); if (debug_on('i')) printf("VFlib ZEIT: Header %04d: %08lx\n", i, (*ol_offsetp)[i]); } for (i = 0; i < ZEIT_NCHARS-1; i++){ if ((*ol_offsetp)[i] == 0xffffffff){ (*ol_sizep)[i] = 0; continue; } for (j = i+1; ; j++){ if (j >= ZEIT_NCHARS){ (*ol_sizep)[i] = -(THRESHOLD_SIZE+1); break; } if ((*ol_offsetp)[j] != 0xffffffff){ (*ol_sizep)[i] = -((*ol_offsetp)[j] - (*ol_offsetp)[i]); /* A MAGIC */ break; } } if (-((*ol_sizep)[i]) > THRESHOLD_SIZE) /* Large... check size. */ zeit_correct_size(&((*ol_sizep)[i]), &((*ol_offsetp)[i]), fp, i); } if ((*ol_offsetp)[ZEIT_NCHARS-1] == 0xffffffff){ (*ol_sizep)[ZEIT_NCHARS-1] = 0; } else { (*ol_sizep)[ZEIT_NCHARS-1] = -(THRESHOLD_SIZE+1); /* A MAGIC */ zeit_correct_size(&((*ol_sizep)[i]), &((*ol_offsetp)[i]), fp, ZEIT_NCHARS-1); } return 0; } Private int zeit_correct_size(long *sizep, long *offsetp, FILE *fp, int i) { int x, y; if (debug_on('i')) printf("VFlib ZEIT: Correct Size %04x: size %d, offs %ld\n", i, (int)-(*sizep), *offsetp); zeit_seek(fp, *offsetp); zeit_init_bit_stream(fp); for (;;){ x = zeit_read_10bits(); y = zeit_read_10bits(); if ((x == 1023) && (y == 1023)) break; for (;;){ x = zeit_read_10bits(); y = zeit_read_10bits(); if ((x == 1023) && (y == 1023)) break; } } *sizep = -(zeit_current_pos(fp) - *offsetp); if (debug_on('i')) printf("VFlib ZEIT: ==> %04x\n", (int)-(*sizep)); return *sizep; } Private VF_OUTLINE ZEIT_ReadOutline(int zeit_id, int code_point, double mag_x, double mag_y) { FILE *fp; ZEIT zeit; int idx, x, y, xx, yy, max_code, space2121; char *font_file; VF_OUTLINE outline; VF_OUTLINE_ELEM *sizep; long size, offs; unsigned int scode; double mx, my; mx = mag_x; my = mag_y; if (mx > 1){ mx = 1.0; my = 1.0 / mx; } if ((zeit = ZEIT_GetZEIT(zeit_id)) == NULL){ fprintf(stderr, "VFlib internal error: ZEIT_ReadOutline()\n"); vf_error = VF_ERR_INTERNAL; return NULL; } /* Assume JISX0208-1990 & KUTEN encoding */ max_code = 0x7426; space2121 = 1; if ((code_point < 0x2121) || (max_code < code_point) || (code_point%256 < 0x21) || (0x7e < code_point%256)){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } if ((space2121 == 1) && (code_point == 0x2121)){ size = VF_OL_OUTLINE_HEADER_SIZE_TYPE0 + 1; ALLOCN_IF_ERR(outline, VF_OUTLINE_ELEM, size) return NULL; outline[VF_OL_HEADER_INDEX_DATA_SIZE] = size; return outline; } scode = zeit_code2c(code_point); if (code_point < 0x5000){ font_file = zeit->path_name1; offs = zeit->ol_offset1[scode]; sizep = &zeit->ol_size1[scode]; } else { font_file = zeit->path_name2; offs = zeit->ol_offset2[scode]; sizep = &zeit->ol_size2[scode]; } if (*sizep == 0) return NULL; if (*sizep < 0) /* A MAGIC */ size = 2*(-*sizep) + 1; else size = *sizep + 1; ALLOCN_IF_ERR(outline, VF_OUTLINE_ELEM, VF_OL_OUTLINE_HEADER_SIZE_TYPE0 + size) return NULL; if ((fp = vf_fm_OpenBinaryFileStream(font_file)) == NULL){ fprintf(stderr, "VFlib Error. File not found: %s\n", font_file); return NULL; } zeit_seek(fp, offs); zeit_init_bit_stream(fp); for (idx = 0; ; ){ x = zeit_read_10bits(); y = zeit_read_10bits(); if ((x == 1023) && (y == 1023)) break; xx = VF_OL_COORD_OFFSET + mx * (x*VF_OL_COORD_RANGE)/ZEIT_MAX_VALUE; yy = VF_OL_COORD_OFFSET + my * (y*VF_OL_COORD_RANGE)/ZEIT_MAX_VALUE; outline[VF_OL_OUTLINE_HEADER_SIZE_TYPE0 + idx++] = VF_OL_INSTR_TOKEN | VF_OL_INSTR_CWCURV | VF_OL_INSTR_LINE; outline[VF_OL_OUTLINE_HEADER_SIZE_TYPE0 + idx++] = VF_OL_MAKE_XY(xx, yy); for (;;){ x = zeit_read_10bits(); y = zeit_read_10bits(); if ((x == 1023) && (y == 1023)) break; xx = VF_OL_COORD_OFFSET + mx * (x*VF_OL_COORD_RANGE)/ZEIT_MAX_VALUE; yy = VF_OL_COORD_OFFSET + my * (y*VF_OL_COORD_RANGE)/ZEIT_MAX_VALUE; outline[VF_OL_OUTLINE_HEADER_SIZE_TYPE0 + idx++] = VF_OL_MAKE_XY(xx, yy); } } outline[VF_OL_OUTLINE_HEADER_SIZE_TYPE0 + idx++] = 0; if (outline[VF_OL_OUTLINE_HEADER_SIZE_TYPE0] != 0) outline[VF_OL_OUTLINE_HEADER_SIZE_TYPE0] |= VF_OL_INSTR_CHAR; if (*sizep < 0) *sizep = (long)idx; if (debug_on('i')) printf("VFlib ZEIT: SIZE %5ld\n", *sizep); outline[VF_OL_HEADER_INDEX_DATA_SIZE] = *sizep + VF_OL_OUTLINE_HEADER_SIZE_TYPE0; return outline; } Private int zeit_code2c(int code) { if (code < 0x5000) return ((code/0x100) - 0x21)*0x5e + (code%0x100) - 0x21; return ((code/0x100) - 0x50)*0x5e + (code%0x100) - 0x21; } Private int zeit_read_1byte(FILE *fp) { return getc(fp); } Private unsigned long zeit_read_4bytes(FILE *fp) { unsigned long i1, i2, i3, i4; i1 = (unsigned long)zeit_read_1byte(fp); i2 = (unsigned long)zeit_read_1byte(fp); i3 = (unsigned long)zeit_read_1byte(fp); i4 = (unsigned long)zeit_read_1byte(fp); return i1 + i2*0x100 + i3*0x10000 + i4*0x1000000; } Private FILE *zeit_bitstream_fp = NULL; Private unsigned int zeit_left_bits = 0; Private unsigned long zeit_bit_stream = 0; Private unsigned long zeit_power2tbl[] = { 0x000001,0x000002,0x000004,0x000008,0x000010,0x000020,0x000040,0x000080, 0x000100,0x000200,0x000400,0x000800,0x001000,0x002000,0x004000,0x008000, 0x010000,0x020000,0x040000,0x080000,0x100000,0x200000,0x400000,0x800000 }; Private void zeit_init_bit_stream(FILE *fp) { zeit_bitstream_fp = fp; zeit_bit_stream = 0; zeit_left_bits = 0; } Private int zeit_read_10bits(void) { if (zeit_left_bits < 10){ zeit_bit_stream *= 0x10000; zeit_bit_stream += (unsigned int)zeit_read_1byte(zeit_bitstream_fp); zeit_bit_stream += (unsigned int)zeit_read_1byte(zeit_bitstream_fp)*0x100; zeit_left_bits += 16; } zeit_left_bits -= 10; return (zeit_bit_stream/zeit_power2tbl[zeit_left_bits]) % ZEIT_MAX_VALUE; } Private void zeit_seek(FILE *fp, long pos) { fseek(fp, pos + ZEIT_HEADER_SIZE, SEEK_SET); } Private long zeit_current_pos(FILE *fp) { return ftell(fp) - ZEIT_HEADER_SIZE; } /*EOF*/ vflib3-3.6.14.dfsg/src/VFsys.h0000644000175000017500000001075707365204545015322 0ustar mohuramohura/* * VFsys.h - misc definitions for internals of VFlib * */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_VFSYS_H__ #define __VFLIB_VFSYS_H__ #include "consts.h" #if !defined(TRUE) && !defined(FALSE) #define TRUE (0==0) #define FALSE (0==1) #endif #define Public /*public*/ #define Glocal /*public within VFlib */ #define Private static #define Import extern #if STDC_HEADERS # define memclr(a,n) memset((a),0,(n)) #else # ifndef HAVE_MEMCMP # define memcmp(a1,a2,n) bcmp((a1),(a2),(n)) # define memcpy(dst,src,n) bcopy((src),(dst),(n)) # define memclr(a,n) bzero((a),(n)) # else # define memclr(a,n) memset((a),0,(n)) # endif /*HAVE_MEMCMP*/ #endif #if HAVE_STRING_H # include #endif #if HAVE_STRINGS_H # include #endif #ifndef SEEK_SET # define SEEK_SET 0 # define SEEK_CUR 1 # define SEEK_END 2 #endif #ifndef FOPEN_MODE_BIN # if defined(VMS) || defined(VMCMS) || defined(DOS) || defined(OS2) \ || defined(WIN32) || defined(__DJGPP__) || defined(__CYGWIN32__) # define FOPEN_RD_MODE_BIN "rb" # define FOPEN_RD_MODE_TEXT "rt" # define FOPEN_WD_MODE_BIN "wb" # define FOPEN_WD_MODE_TEXT "wt" # else # define FOPEN_RD_MODE_BIN "r" # define FOPEN_RD_MODE_TEXT "r" # define FOPEN_WR_MODE_BIN "w" # define FOPEN_WR_MODE_TEXT "w" # endif #endif #define ALLOC_IF_ERR(v,t) \ if ((v = (t*)calloc(1, sizeof(t))) == NULL) #define ALLOCN_IF_ERR(v,t,n) \ if ((v = (t*)calloc(n, sizeof(t))) == NULL) #define xfree(p) if ((p) != NULL){ free(p); } #define toint(x) (int)(((x)>0)?(x+0.5):(x-0.5)) #define DRIVER_FUNC_TYPE int(*)(VF_FONT,char*,char*,int,void*) extern double atof(); extern int vf_openfont1(char *font_name, char *requested_font_class, double dpi_x, double dpi_y, double point_size, double mag_x, double mag_y); extern int vf_openfont2(char *font_name, char *requested_font_class, int pixel_size, double mag_x, double mag_y); extern int vf_dbg_font_open; extern int vf_dbg_font_search; extern int vf_dbg_kpathsea; extern int vf_dbg_vfcap; extern int vf_dbg_parameters; extern int vf_dbg_ccv; extern int vf_dbg_ccv_map; typedef void*(*FM_OPEN_METHOD)(char*,long,long,void*,void*); typedef void (*FM_CLOSE_METHOD)(void*,long,long,void*,void*); extern int vf_fm_init(void); extern FILE* vf_fm_OpenBinaryFileStream(char*); extern FILE* vf_fm_OpenTextFileStream(char*); extern void* vf_fm_OpenFileStreamApp(char *arg, long iarg1, long iarg2, void *arg1, void *arg2, FM_OPEN_METHOD open_method, FM_CLOSE_METHOD close_method, char* dbgmsg); extern void vf_fm_CloseFileStreamApp(char *arg, long iarg1, long iarg2, void *arg1, void *arg2, FM_OPEN_METHOD open_method, FM_CLOSE_METHOD close_method, char* dbgmsg); #ifndef VAR_VAL_DELIMIT_CHAR # define VAR_VAL_DELIMIT_CHAR '=' #endif /* raster.c, bm2ol.c */ #define BM2OL_DOT_SHAPE_SQUARE 0 #define BM2OL_DOT_SHAPE_DIAMOND 1 #define BM2OL_DEFAULT_DOT_SIZE 0.8 extern int vf_draw_outline(VF_BITMAP,VF_OUTLINE); extern VF_BITMAP vf_outline_to_bitmap(VF_OUTLINE,double,double, double,double,double); extern VF_OUTLINE vf_bitmap_to_outline(VF_BITMAP,int,int, double,double,double,double,double); extern VF_OUTLINE vf_bitmap_to_outline2(VF_BITMAP,int,double,int,int, double,double,double,double,double); /* defaults.c */ #include "sexp.h" extern SEXP_ALIST vf_extension_hints; extern SEXP_LIST vf_implicit_font_classes; extern char *vf_directory_delimiter; extern int vf_defaults_init(void); #include "mem.h" #endif /*__VFLIB_VFSYS_H__*/ /*EOF*/ vflib3-3.6.14.dfsg/src/bdf.h0000644000175000017500000000363607277773435015014 0ustar mohuramohura/* * bdf.h - a header fiel for bdf interface * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_BDF_H__ #define __VFLIB_BDF_H__ #define FONTCLASS_NAME "bdf" #ifndef BDF_DEFAULT_EXTENSIONS # define BDF_DEFAULT_EXTENSIONS ".bdf" #endif #define HAVE_FONT_ASCENT #define HAVE_FONT_DESCENT #define BDF_ENV_FONT_DIR "VFLIB_BDF_FONTS" struct s_bdf_char { long code_point; long f_offset; int bbx_width, bbx_height; int off_x, off_y; int mv_x, mv_y; unsigned char *bitmap; int raster; }; typedef struct s_bdf_char *BDF_CHAR; struct s_bdf { int charset; char *path_name; char *uncompress; double point_size; int pixel_size; int size; double dpi_x, dpi_y; double slant; int font_bbx_width, font_bbx_height; int font_bbx_xoff, font_bbx_yoff; int ascent, descent; int nchars; BDF_CHAR char_table; long *char_table_x; SEXP_ALIST props; }; typedef struct s_bdf *BDF; #include "sexp.h" #endif /*__VFLIB_BDF_H__*/ /*EOF*/ vflib3-3.6.14.dfsg/src/bitmap.h0000644000175000017500000000235306535650665015523 0ustar mohuramohura/* * bitmap.h - a header file for bitmap * */ /* * Copyright (C) 1997 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_BITMAP_H__ #define __VFLIB_BITMAP_H__ extern VF_BITMAP vf_alloc_bitmap(int,int); extern VF_BITMAP vf_alloc_bitmap_with_metric1(VF_METRIC1,double,double); extern VF_BITMAP vf_alloc_bitmap_with_metric2(VF_METRIC2); extern void vf_free_bitmap(VF_BITMAP); extern void vf_dump_bitmap(VF_BITMAP); #endif /*__VFLIB_BITMAP_H__*/ /*EOF*/ vflib3-3.6.14.dfsg/src/Makefile.in0000644000175000017500000003075607405111664016137 0ustar mohuramohura# Makefile.in for VFlib # by Hirotsugu Kakugawa (h.kakugwa@computer.org) makedefault: default include ../make-sub #------------------------------------------------- LIBTOOL = ../libtool VFLIB = libVFlib3.la VFLIB_H = VFlib-3_6.h PROGRAMS = vflserver vfltest vflpp vfldisol vfldrvs vflbanner UTIL_PROGRAMS = vflmkvfl vflmktex vflmkgf vflmkpk vflmktfm vflmkvf vflmkt1 \ vflmkpcf vflmkttf vflmkekan vflmkajt vflmkjpc SHELL_PROGRAMS = vflmkfdb vflmkcaptex DBG_PROGRAMS = vflservers vfldisols dvg-ccv dbg-bml dbg-sexp test-gen ALL_PROGRAMS = $(PROGRAMS) $(UTIL_PROGRAMS) CORE_SRCS = VFlib.c defaults.c cache.c vflibcap.c raster.c \ bitmap.c bmlist.c metric.c drv_ini.c \ bm2ol.c fsearch.c fileman.c params.c \ image.c sexp.c ccv.c path.c str.c mem.c CORE_OBJS = VFlib.lo defaults.lo cache.lo vflibcap.lo raster.lo \ bitmap.lo bmlist.lo metric.lo drv_ini.lo \ bm2ol.lo fsearch.lo fileman.lo params.lo \ image.lo sexp.lo ccv.lo path.lo str.lo mem.lo DRV_SRCS = drv_bdf.c bdf.c drv_pcf.c pcf.c drv_hbf.c hbf.c \ drv_zeit.c zeit.c drv_jg.c jg.c drv_ekan.c \ drv_ttf.c drv_t1.c \ texfonts.c \ drv_gf.c gf.c drv_pk.c pk.c drv_tfm.c tfm.c drv_vf.c drv_jtex.c \ drv_comic.c drv_try.c drv_mojikmap.c DRV_OBJS = @bdf_objs@ @pcf_objs@ @hbf_objs@ \ @zeit_objs@ @jg_objs@ @ekan_objs@ \ @ttf_objs@ @type1_objs@ \ @texfonts_objs@ \ @gf_objs@ @pk_objs@ @tfm_objs@ @vf_objs@ @jtex_objs@ \ @comic_objs@ @try_objs@ @mojikmap_objs@ SRCS = $(CORE_SRCS) $(DRV_SRCS) OBJS = $(CORE_OBJS) $(DRV_OBJS) #------------------------------------------------- all default: $(MAKE) $(VFLIB) $(ALL_PROGRAMS) $(VFLIB): $(OBJS) $(VFLIB_EXTRA_OBJS) $(LIBTOOL) --mode=link \ $(CC) -o $(VFLIB) $(OBJS) \ -version-info @version_info@ -rpath $(libdir) $(EXT_LIBRARY) $(VFLIBJ): $(OBJS) $(VFLIB_EXTRA_OBJS) ../java/VFlib3J.lo $(LIBTOOL) --mode=link \ $(CC) -o $(VFLIBJ) $(OBJS) ../java/VFlib3J.lo \ -version-info @version_info@ -rpath $(libdir) $(EXT_LIBRARY) .SUFFIXES: .c .lo .o .c.lo: $(LIBTOOL) --mode=compile $(CC) $(VFCFLAGS) -c $< .c.o: $(CC) $(VFCFLAGS) -c $< $(PROGRAMS): $(VFLIB) drv_ttf.lo: drv_ttf.c ttf.h $(LIBTOOL) --mode=compile $(CC) $(VFCFLAGS) \ @freetype_includedir@ -c drv_ttf.c drv_t1.lo: drv_t1.c t1.h $(LIBTOOL) --mode=compile $(CC) $(VFCFLAGS) \ @t1lib_includedir@ -c drv_t1.c fsearch.lo: fsearch.c fsearch.h $(LIBTOOL) --mode=compile $(CC) $(VFCFLAGS) \ @kpathsea_includedir@ -c fsearch.c drv_pcf.c: drv_bdf.c @-$(RM) drv_pcf.c @echo "/* CAUTION! NEVER EDIT THIS FILE */" > drv_pcf.c @sed 's/bdf/pcf/g' drv_bdf.c | sed 's/BDF/PCF/g' >> drv_pcf.c @echo "drv_pcf.c is created" drv_hbf.c: drv_bdf.c @-$(RM) drv_hbf.c @echo "/* CAUTION! NEVER EDIT THIS FILE */" > drv_hbf.c @sed 's/bdf/hbf/g' drv_bdf.c | sed 's/BDF/HBF/g' >> drv_hbf.c @echo "drv_hbf.c is created" drv_jg.c: drv_zeit.c @-$(RM) drv_jg.c @echo "/* CAUTION! NEVER EDIT THIS FILE */" > drv_jg.c @sed 's/zeit/jg/g' drv_zeit.c | sed 's/ZEIT/JG/g' >> drv_jg.c @echo "drv_jg.c is created" drv_pk.c: drv_gf.c @-$(RM) drv_pk.c @echo "/* CAUTION! NEVER EDIT THIS FILE */" > drv_pk.c @sed 's/gf/pk/g' drv_gf.c | sed 's/GF/PK/g' >> drv_pk.c @echo "drv_pk.c is created" vflpaths.h: ../configure.in ../config.status @-$(RM) vflpaths.tmp @echo "/* NEVER EDIT THIS! This file is automatically generated */" \ > vflpaths.tmp @(echo '#define DEFAULT_VFLIBCAP' \"$(default_vflibcap)\"; \ echo '#define DIR_RUNTIME_SITE_LIB' \"$(runtimesitedir)\"; \ echo '#define DIR_RUNTIME_LIB' \"$(runtimedir)\"; \ echo '#define DIR_CCV' \"$(runtimedir)/${subdir_ccv}\"; \ echo '#define DIR_T1' \"$(runtimedir)/${subdir_t1enc}\"; \ echo '#define DIR_ASCII_JTEX' \"$(runtimedir)/${subdir_ascii_jtex}\"; \ echo '#define DIR_INSTALL_BIN' \"$(bindir)\"; \ echo '#define DIR_INSTALL_LIB' \"$(libdir)\"; \ echo '#define VFLSERVER_PATH' \"$(bindir)/vflserver\"; \ ) >> vflpaths.tmp @if cmp -s vflpaths.tmp vflpaths.h 2>/dev/null; then \ echo "vflpaths.h is unchanged"; \ rm -f vflpaths.tmp; \ else echo "vflpaths.h is created"; \ rm -f vflpaths.h; mv -f vflpaths.tmp vflpaths.h; fi COMM_HDRS1= config.h $(VFLIB_H) VFsys.h mem.h sexp.h vflibcap.h \ cache.h consts.h COMM_HDRS2= config.h $(VFLIB_H) VFsys.h mem.h sexp.h vflibcap.h str.h VFlib.lo: $(COMM_HDRS1) vflpaths.h metric.h str.h defaults.lo: $(COMM_HDRS2) fsearch.h vflibcap.lo: $(COMM_HDRS2) vflpaths.h cache.lo: $(COMM_HDRS2) cache.h fsearch.lo: $(COMM_HDRS2) vflpaths.h fsearch.h fileman.lo: $(COMM_HDRS2) vflpaths.h consts.h raster.lo: $(COMM_HDRS2) consts.h bm2ol.lo: $(COMM_HDRS2) consts.h bitmap.lo: $(COMM_HDRS2) consts.h bmlist.lo: $(COMM_HDRS2) bmlist.h str.lo: $(COMM_HDRS2) path.lo: $(COMM_HDRS2) vflpaths.h path.h sexp.lo: $(COMM_HDRS2) mem.lo: $(COMM_HDRS2) params.lo: $(COMM_HDRS2) vflpaths.h params.h ccv.lo: $(COMM_HDRS2) vflpaths.h vflpaths.h ccv.h drv_ini.lo: $(COMM_HDRS2) with.h drv_bdf.lo: $(COMM_HDRS1) bdf.h bdf.c drv_pcf.lo: $(COMM_HDRS1) pcf.h pcf.c drv_hbf.lo: $(COMM_HDRS1) hbf.h hbf.c drv_zeit.lo: $(COMM_HDRS1) zeit.c zeit.h drv_jg.lo: $(COMM_HDRS1) jg.c jg.h drv_ttf.lo: $(COMM_HDRS1) ttf.h drv_gf.lo: $(COMM_HDRS1) texfonts.h gf.c gf.h tfm.h drv_pk.lo: $(COMM_HDRS1) texfonts.h pk.c pk.h tfm.h drv_vf.lo: $(COMM_HDRS1) texfonts.h vf.c vf.h tfm.h drv_tfm.lo: $(COMM_HDRS1) texfonts.h tfm.h tfm.lo: $(COMM_HDRS1) texfonts.h tfm.h jfmbi.lo: $(COMM_HDRS1) jfmbi.h drv_jtex.lo: $(COMM_HDRS1) vflpaths.h texfonts.h jtex.h texfonts.lo: $(COMM_HDRS1) texfonts.h with.h tfm.h drv_comic.lo: $(COMM_HDRS1) comic.h drv_try.lo: $(COMM_HDRS1) try.h drv_mojikmap.lo: $(COMM_HDRS1) mojikmap.h drv_ekan.lo: $(COMM_HDRS1) ekan.h #------------------------------------------------- vflserver.o: vflserver.c $(VFLIB_H) $(CC) $(VFCFLAGS) -c vflserver.c vflserver: vflserver.o $(VFLIB) $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflserver vflserver.o $(VFLIB) vfltest.o: vfltest.c $(VFLIB_H) vfltest: vfltest.o $(VFLIB) $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vfltest vfltest.o $(VFLIB) vfldisol.o: vfldisol.c $(VFLIB_H) vfldisol: vfldisol.o $(VFLIB) $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vfldisol vfldisol.o $(VFLIB) vflpp.o: vflpp.c $(VFLIB_H) vflpp: vflpp.o $(VFLIB) $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflpp vflpp.o $(VFLIB) vflbanner.o: vflbanner.c $(VFLIB_H) vflbanner: vflbanner.o $(VFLIB) $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflbanner vflbanner.o $(VFLIB) vfldrvs.o: vfldrvs.c $(VFLIB_H) vfldrvs: vfldrvs.o $(VFLIB) $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vfldrvs vfldrvs.o $(VFLIB) vflmkvfl.o: vflmkvfl.c $(VFLIB_H) vflmklib.h vflibcap.h fsearch.h $(CC) $(VFCFLAGS) @kpathsea_includedir@ -c vflmkvfl.c vflmkvfl: vflmkvfl.o vflmklib.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflmkvfl vflmkvfl.o vflmklib.o \ @kpathsea_libdir@ @kpathsea_lib@ vflmktex.o: vflmktex.c $(VFLIB_H) vflmklib.h vflibcap.h fsearch.h $(CC) $(VFCFLAGS) @kpathsea_includedir@ -c vflmktex.c vflmktex: vflmktex.o vflmklib.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflmktex vflmktex.o vflmklib.o \ @kpathsea_libdir@ @kpathsea_lib@ vflmkgf.o: vflmkgf.c $(VFLIB_H) vflmklib.h vflibcap.h gf.h fsearch.h $(CC) $(VFCFLAGS) @kpathsea_includedir@ -c vflmkgf.c vflmkgf: vflmkgf.o vflmklib.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflmkgf vflmkgf.o vflmklib.o \ @kpathsea_libdir@ @kpathsea_lib@ vflmkpk.c: vflmkgf.c cat vflmkgf.c | sed 's/gf/pk/g' | sed 's/GF/PK/g' > vflmkpk.c vflmkpk.o: vflmkpk.c $(VFLIB_H) vflmklib.h vflibcap.h pk.h fsearch.h $(CC) $(VFCFLAGS) @kpathsea_includedir@ -c vflmkpk.c vflmkpk: vflmkpk.o vflmklib.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflmkpk vflmkpk.o vflmklib.o \ @kpathsea_libdir@ @kpathsea_lib@ vflmktfm.o: vflmktfm.c $(VFLIB_H) vflmklib.h vflibcap.h tfm.h fsearch.h $(CC) $(VFCFLAGS) @kpathsea_includedir@ -c vflmktfm.c vflmktfm: vflmktfm.o vflmklib.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflmktfm vflmktfm.o vflmklib.o \ @kpathsea_libdir@ @kpathsea_lib@ vflmkvf.o: vflmkvf.c $(VFLIB_H) vflmklib.h vflibcap.h vf.h fsearch.h $(CC) $(VFCFLAGS) @kpathsea_includedir@ -c vflmkvf.c vflmkvf: vflmkvf.o vflmklib.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflmkvf vflmkvf.o vflmklib.o \ @kpathsea_libdir@ @kpathsea_lib@ vflmkt1.o: vflmkt1.c $(VFLIB_H) vflmklib.h vflibcap.h t1.h fsearch.h $(CC) $(VFCFLAGS) @kpathsea_includedir@ -c vflmkt1.c vflmkt1: vflmkt1.o vflmklib.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflmkt1 vflmkt1.o vflmklib.o \ @kpathsea_libdir@ @kpathsea_lib@ vflmkpcf.o: vflmkpcf.c $(VFLIB_H) vflmklib.h vflibcap.h pcf.h fsearch.h $(CC) $(VFCFLAGS) -c vflmkpcf.c vflmkpcf: vflmkpcf.o vflmklib.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflmkpcf vflmkpcf.o vflmklib.o \ @kpathsea_libdir@ @kpathsea_lib@ vflmkttf.o: vflmkttf.c $(VFLIB_H) vflmklib.h vflibcap.h ttf.h fsearch.h $(CC) $(VFCFLAGS) -c vflmkttf.c vflmkttf: vflmkttf.o vflmklib.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflmkttf vflmkttf.o vflmklib.o \ @kpathsea_libdir@ @kpathsea_lib@ vflmkekan.o: vflmkekan.c $(VFLIB_H) vflmklib.h vflibcap.h ekan.h fsearch.h $(CC) $(VFCFLAGS) -c vflmkekan.c vflmkekan: vflmkekan.o vflmklib.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflmkekan vflmkekan.o vflmklib.o \ @kpathsea_libdir@ @kpathsea_lib@ vflmkajt.o: vflmkajt.c $(VFLIB_H) vflmklib.h vflibcap.h jtex.h fsearch.h $(CC) $(VFCFLAGS) -c vflmkajt.c vflmkajt: vflmkajt.o vflmklib.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflmkajt vflmkajt.o vflmklib.o \ @kpathsea_libdir@ @kpathsea_lib@ vflmkjpc.o: vflmkjpc.c $(VFLIB_H) vflmklib.h vflibcap.h comic.h $(CC) $(VFCFLAGS) -c vflmkjpc.c vflmkjpc: vflmkjpc.o vflmklib.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o vflmkjpc vflmkjpc.o vflmklib.o \ @kpathsea_libdir@ @kpathsea_lib@ vflmklib.o: vflmklib.c $(VFLIB_H) vflmklib.h vflibcap.h fsearch.h $(CC) $(VFCFLAGS) @kpathsea_includedir@ -c vflmklib.c test-gen.o: test-gen.c test-gen: test-gen.o $(LIBTOOL) --mode=link $(CC) $(VFCFLAGS) -o test-gen test-gen.o #------------------------------------------------- install: $(PROGRAMS) $(VFLIB) @if [ ! -d $(libdir) ] ; then \ ../recmkdir $(libdir); \ fi @echo "Installing VFlib library..." @$(LIBTOOL) --mode=install \ ../$(INSTALL) $(VFLIB) $(libdir) @if [ ! -d $(bindir) ] ; then \ ../recmkdir $(bindir); \ fi @for P in $(PROGRAMS) $(SHELL_PROGRAMS) $(UTIL_PROGRAMS) ; do \ $(LIBTOOL) --mode=install \ ../$(INSTALL_PROGRAM) $$P $(bindir); done @if [ ! -d $(includedir) ] ; then \ ../recmkdir $(includedir); \ fi @../$(INSTALL_DATA) $(VFLIB_H) $(includedir)/$(VFLIB_H) uninstall: for P in $(PROGRAMS) $(SHELL_PROGRAMS) $(UTIL_PROGRAMS) ; do \ $(LIBTOOL) --mode=uninstall $(RM) $(bindir)/$$P; done; $(LIBTOOL) --mode=uninstall $(RM) $(libdir)/$(VFLIB) $(RM) $(includedir)/$(VFLIB_H) clean:: -$(RM) $(ALL_PROGRAMS) $(VFLIB) $(DBG_PROGRAMS) *.tmp -$(RM) dbg-ccv.c dbg-sexp.c distclean:: clean -$(RM) config.h with.h Makefile \ vflpaths.h $(VFLIB_H) \ drv_pcf.c drv_hbf.c test-olr.c test-bm1.c test-bm2.c \ dbg-ccv.c dbg wc: wc *.c *.h WC: wc *.c *.h *.in #------------------------------------------------- # for debugging purpose... vflservers: vflserver.o $(VFLIB) $(LIBTOOL) --mode=link \ $(CC) -o vflservers -static vflserver.o $(VFLIB) vfldisols: vfldisol.o $(VFLIB) $(LIBTOOL) --mode=link \ $(CC) -o vfldisols -static vfldisol.o $(VFLIB) dbg-ccv.o: ccv.c $(VFLIB) $(CC) $(VFCFLAGS) -DDEBUG -o dbg-ccv.o -c ccv.c dbg-ccv: dbg-ccv.o $(VFLIB) $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o dbg-ccv dbg-ccv.o $(VFLIB) dbg-bml.o: dbg-bml.c $(VFLIB) $(CC) $(VFCFLAGS) -c dbg-bml.c dbg-bml: dbg-bml.o $(VFLIB) $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o dbg-bml dbg-bml.o $(VFLIB) dbg-sexp.o: sexp.c $(VFLIB) $(CC) $(VFCFLAGS) -DDEBUG -o dbg-sexp.o -c sexp.c dbg-sexp: dbg-sexp.o $(CORE_OBJS) $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o dbg-sexp dbg-sexp.o $(CORE_OBJS) dbg_ml.o: sexp.c $(VFLIB) $(CC) $(VFCFLAGS) -DDEBUG -o dbg_ml.o -c dbg_ml.c dbg_ml: dbg_ml.o $(CORE_OBJS) $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o dbg_ml dbg_ml.o $(VFLIB) dbg.o: dbg.c __dbg.tmp $(CC) $(VFCFLAGS) -c dbg.c dbg: dbg.o $(VFLIB) $(LIBTOOL) --mode=link \ $(CC) -o dbg -static dbg.o $(VFLIB) #------------------------------------------------- #EOF vflib3-3.6.14.dfsg/src/cache.h0000644000175000017500000000734507367713544015320 0ustar mohuramohura/* * cache.h - a header for cache module * by Hirotsugu Kakugawa * 5 Aug 1996 */ /* * Copyright (C) 1996, 1997 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_CACHE_H__ #define __VFLIB_CACHE_H__ /* Cache Element */ typedef struct s_vf_cache_elem *VF_CACHE_ELEM; struct s_vf_cache_elem { void *object; /* cached object */ void *key; /* element key */ int key_len; /* key length */ VF_CACHE_ELEM l_forw, l_back; /* forw./backw. in LRU list */ VF_CACHE_ELEM h_forw, h_back; /* forw./backw. in hash table, free list*/ }; /* Cache */ typedef struct s_vf_cache *VF_CACHE; struct s_vf_cache { /* Public: common method */ void *(*get)(VF_CACHE,void*,int); void (*del)(VF_CACHE,void*,int); /* Private: class dependent method */ void *(*load_elem)(VF_CACHE,void*,int); void (*unload_elem)(void*); /* Private: internal data structure */ int cache_size; int hash_size; VF_CACHE_ELEM hash_table; struct s_vf_cache_elem lru_list; VF_CACHE_ELEM free_list; }; extern VF_CACHE vf_cache_create (int,int, void *(*load_func)(VF_CACHE,void*,int), void (*unload_func)(void*)); /** HASH **/ /* Hash Element */ typedef struct s_vf_hash_elem *VF_HASH_ELEM; struct s_vf_hash_elem { int link_cnt; void *object; /* object */ void *key; /* element key */ int key_len; /* key length */ VF_HASH_ELEM h_forw, h_back; /* forw./backw. in hash table, free list*/ }; /* Hash */ typedef struct s_vf_hash *VF_HASH; struct s_vf_hash { /* Public: common method */ void *(*get)(VF_HASH,void*,int); void *(*put)(VF_HASH,void*,void*,int); void (*del)(VF_HASH,void*,int); /* Private: internal data structure */ int hash_size; VF_HASH_ELEM table; }; extern VF_HASH vf_hash_create (int); /** TABLE **/ /* Table Element */ typedef struct s_vf_table_elem *VF_TABLE_ELEM; struct s_vf_table_elem { int link_cnt; void *object; /* object */ void *key; /* element key */ int key_len; /* key length */ }; /* Table */ typedef struct s_vf_table *VF_TABLE; struct s_vf_table { /* Public: common method */ int (*put)(VF_TABLE,void*,void*,int); int (*put2)(VF_TABLE,void*,void*,int); int (*get_id_by_key)(VF_TABLE,void*,int); int (*get_id_by_obj)(VF_TABLE,void*); void *(*get_obj_by_id)(VF_TABLE,int); void *(*get_obj_by_key)(VF_TABLE,void*,int); int (*del_obj_by_id)(VF_TABLE,int); int (*del_obj_by_key)(VF_TABLE,void*,int); int (*link_by_id)(VF_TABLE,int); int (*unlink_by_id)(VF_TABLE,int); int (*get_nelements)(VF_TABLE); /* Private: internal data */ int nelems; int next_slot; int table_size; VF_TABLE_ELEM table; }; Glocal VF_TABLE vf_table_create (void); #endif /* __VFLIB_CACHE_H__ */ /*EOF*/ vflib3-3.6.14.dfsg/src/ccv.h0000644000175000017500000000400306767330145015007 0ustar mohuramohura/* * ccv.c - a module for encoding & charset conversion * by Hirotsugu Kakugawa * * 29 Jul 1997 */ /* * Copyright (C) 1997-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define CCV_STAT_LOADED 0 #define CCV_STAT_AUTOLOAD 1 #define CCV_ARG_TYPE_ARRAY 0 #define CCV_ARG_TYPE_RANDOM_ARRAY 1 #define CCV_ARG_TYPE_FUNC 2 struct s_ccv_random_array { int *block_index; long *tbl; }; typedef struct s_ccv_random_array *CCV_RANDOM_ARRAY; struct s_ccv_info { char *cs1_name; char **cs1_name_aliases; char *cs1_enc; char **cs1_enc_aliases; char *cs2_name; char **cs2_name_aliases; char *cs2_enc; char **cs2_enc_aliases; int block_size; int load_stat; long (*conv)(int,long); long arg; int arg_type; int c1min, c1max; int c2min, c2max; int nblocks; char *file_name; char *file_path; }; typedef struct s_ccv_info *CCV_INFO; Glocal int vf_ccv_init(void); Glocal int vf_ccv_install_func(char *cs1_name, char *cs1_enc, char *cs2_name, char *cs2_enc, long (*conv)(int,long)); Glocal int vf_ccv_autoload(char *file_name); Glocal int vf_ccv_require(char *cs1_name, char *cs1_enc, char *cs2_name, char *cs2_enc); Glocal long vf_ccv_conv(int ccvi_index, long code_point); /*EOF*/ vflib3-3.6.14.dfsg/src/comic.h0000644000175000017500000000302206572666427015337 0ustar mohuramohura/* * comic.h - a header file for drv_comic.c * by Hirotsugu Kakugawa * * 5 Mar 1997 VFlib 3.1.4 * 1 Apr 1997 VFlib 3.2 Long capability names */ /* * Copyright (C) 1997 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define FONTCLASS_NAME_COMIC "japanese-comic" #define VF_CAPE_COMIC_KANJI_FONT "kanji-font" #define VF_CAPE_COMIC_KANA_FONT "kana-font" #define VF_CAPE_COMIC_SYMBOL_FONT "symbol-font" #define VF_CAPE_COMIC_ALNUM_FONT "alpha-numeric-font" #define VF_CAPE_COMIC_HIRAKANA_FONT "hirakana-font" #define VF_CAPE_COMIC_KATAKANA_FONT "katakana-font" #define VF_CAPE_COMIC_GREEK_FONT "greek-font" #define VF_CAPE_COMIC_CYRILLIC_FONT "cyrillic-font" #define VF_CAPE_COMIC_KEISEN_FONT "keisen-font" /*EOF*/ vflib3-3.6.14.dfsg/src/consts.h0000644000175000017500000000656307024046143015547 0ustar mohuramohura/* * consts.h - a definition file for VFlib constants * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* * Site specific runtime directory, */ #ifndef VF_ENV_DIR_RUNTIME_SITE_LIB # define VF_ENV_DIR_RUNTIME_SITE_LIB "VFLIB_RUNTIME_SITE_DIRECTORY" #endif /* * Runtime directory */ #ifndef VF_ENV_DIR_RUNTIME_LIB # define VF_ENV_DIR_RUNTIME_LIB "VFLIB_RUNTIME_DIRECTORY" #endif /* * vflibcap */ #ifndef VF_DEFAULT_VFLIBCAP_FILE # define VF_DEFAULT_VFLIBCAP_FILE "vflibcap" #endif #define VF_ENV_VFLIBCAP_PATH "VFLIB_VFLIBCAP_PATH" #define VF_ENV_VFLIBCAP_DIR "VFLIB_VFLIBCAP_DIRECTORY" #define VF_ENV_VFLIBCAP_PARAM_PREFIX "VFLIBCAP_PARAM_" /* * An env variable to cheange the CCV file directory */ #define VF_ENV_CCV_DIR "VFLIB_CCV_DIRECTORY" /* * A font file hint database file, used for fast font file searching */ #ifndef VF_FONT_FILE_HINT_DB # define VF_FONT_FILE_HINT_DB "VFlib.fdb" #endif /* * Max # of implicit font classes */ #ifndef MAX_DEFAULT_IMPLICT_FONT_CLASSES # define MAX_DEFAULT_IMPLICT_FONT_CLASSES 32 #endif /* * Max # of font open nestings. * (This limits the number of depth of recursive VF_OpenFont() calls.) */ #ifndef VF_MAX_OPEN_NESTING # define VF_MAX_OPEN_NESTING 64 #endif /* * The maximum number of file descripters simultaneously opened * for reading fonts */ #ifndef VF_MAX_FILE_DESCRIPTERS # define VF_MAX_FILE_DESCRIPTERS 8 #endif /* * An environment variable for to change value for VF_MAX_FILE_DESCRIPTERS * on runtime. */ #ifndef VF_ENV_MAX_FILE_DESCRIPTERS # define VF_ENV_MAX_FILE_DESCRIPTERS "VFLIB_MAX_FD" #endif /* * Envs for for debugging */ #define VF_ENV_DEBUG_FONT_OPEN "VFLIB_DEBUG_FONT_OPEN" #define VF_ENV_DEBUG_FONT_SEARCH "VFLIB_DEBUG_FONT_SEARCH" #define VF_ENV_DEBUG_KPATHSEA "VFLIB_DEBUG_KPATHSEA" #define VF_ENV_DEBUG_VFLIBCAP "VFLIB_DEBUG_VFLIBCAP" #define VF_ENV_DEBUG_PARAMETERS "VFLIB_DEBUG_PARAMETERS" #define VF_ENV_DEBUG_CCV "VFLIB_DEBUG_CCV" #define VF_ENV_DEBUG_CCV_MAPPING "VFLIB_DEBUG_CCV_MAPPING" #define VF_ENV_DEBUG_FILEMAN "VFLIB_DEBUG_FILEMAN" #define VF_ENV_DEBUG_LOG "VFLIB_DEBUG_LOG" /* * Default resolusion */ #ifndef VF_DEFAULT_DPI # define VF_DEFAULT_DPI 300 #endif /* * The maximum path length */ #ifndef MAXPATHLEN # define MAXPATHLEN 1024 #endif /* * Directory delimeter. "/" for Unix and "\\" for MS-DOS * Can be specified in vflibcap. */ #ifndef VF_DIRECTORY_DELIMITER # define VF_DIRECTORY_DELIMITER "/" #endif /*EOF*/ vflib3-3.6.14.dfsg/src/fsearch.h0000644000175000017500000000460007307056332015644 0ustar mohuramohura/* * fsearch.h - search a file * */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_FSEARCH_H__ #define __VFLIB_FSEARCH_H__ #include "VFsys.h" #include "sexp.h" #include "vflpaths.h" #define DEFAULT_KPS_SWITCH FALSE #define DEFAULT_KPS_MODE "cx" #define DEFAULT_KPS_DPI 300 #define DEFAULT_KPS_PROGRAM_PATH VFLSERVER_PATH #define DEFAULT_KPS_PROGRAM_NAME "vflserver" #define FSEARCH_FORMAT_TYPE_GF 1 #define FSEARCH_FORMAT_TYPE_PK 2 #define FSEARCH_FORMAT_TYPE_VF 3 /* searches vf and ofm */ #define FSEARCH_FORMAT_TYPE_TFM 4 /* searches tfm and ofm */ #define FSEARCH_FORMAT_TYPE_OFM 5 /* searches ofm only */ #define FSEARCH_FORMAT_TYPE_OVF 6 /* searches ovf only */ #define FSEARCH_FORMAT_TYPE_TTF 10 #define FSEARCH_FORMAT_TYPE_TYPE1 11 #define FSEARCH_FORMAT_TYPE_TYPE42 12 #define FSEARCH_FORMAT_TYPE_AFM 13 #define FSEARCH_FORMAT_TYPE_PSHEADER 14 extern void vf_kpathsea_init(char *prog, char *mode, int dpi, int sw); extern int vf_add_uncompresser_alist(SEXP); extern FILE* vf_open_uncompress_stream(char*,char*); extern int vf_close_uncompress_stream(FILE*); extern char* vf_search_file(char *name, int opt_arg1, char *opt_arg2, int use_kpathsea, int kpathsea_file_format, SEXP_LIST dir_list, SEXP_LIST compressed_ext_list, char **p_uncomp_prog); extern char* vf_find_file_in_directory(char *name, char *dir); extern int vf_tex_make_glyph(int type, char *font_name, int dpi, double mag); #endif /*__VFLIB_FSEARCH_H__*/ vflib3-3.6.14.dfsg/src/gf.h0000644000175000017500000000343106535650665014641 0ustar mohuramohura/* * gf.h - GF file * * 30 Jan 1998 */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_GF_H__ #define __VFLIB_GF_H__ #include "texfonts.h" #define FONT_DRIVER_GF 1 #define GF_PRE 247 #define GF_ID 131 #define GF_POST 248 #define GF_CHAR_LOC 245 #define GF_CHAR_LOC0 246 #define GF_POST_POST 249 #define GF_PAINT_0 0 #define GF_PAINT_1 1 #define GF_PAINT_63 63 #define GF_PAINT1 64 #define GF_PAINT2 65 #define GF_PAINT3 66 #define GF_BOC 67 #define GF_BOC1 68 #define GF_EOC 69 #define GF_SKIP0 70 #define GF_SKIP1 71 #define GF_SKIP2 72 #define GF_SKIP3 73 #define GF_NEW_ROW_0 74 #define GF_NEW_ROW_164 238 #define GF_XXX1 239 #define GF_XXX2 240 #define GF_XXX3 241 #define GF_XXX4 242 #define GF_YYY 243 #define GF_NO_OP 244 #endif /*__VFLIB_GF_H__*/ /*EOF*/ vflib3-3.6.14.dfsg/src/hbf.h0000644000175000017500000000434306627131521014772 0ustar mohuramohura/* * hbf.c - a header file for hbf.c * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define FONTCLASS_NAME "hbf" #ifndef HBF_DEFAULT_EXTENSIONS # define HBF_DEFAULT_EXTENSIONS ".hbf" #endif #define HBF_ENV_FONT_DIR "VFLIB_HBF_FONTS" struct s_hbf_char { int bbx_width, bbx_height; int off_x, off_y; int mv_x, mv_y; unsigned char *bitmap; int raster; }; typedef struct s_hbf_char *HBF_CHAR; struct s_hbf { int charset; char *path_name; char *uncompress; int nchars; int byte2_ranges; int *byte2_range_start; int *byte2_range_end; int n_byte2; int byte2_index[256]; int code_ranges; long *code_range_start; long *code_range_end; char **code_range_bitmap_file_paths; char **code_range_bitmap_uncompresser; unsigned char ***code_range_bitmaps; long *code_range_offset; double point_size; int pixel_size; int size; double dpi_x, dpi_y; double slant; int ascent, descent; int font_bbx_width, font_bbx_height; int font_bbx_xoff, font_bbx_yoff; SEXP_ALIST props; }; typedef struct s_hbf *HBF; Private int HBF_Init(void); Private int HBF_Open(char*,SEXP); Private void HBF_Close(int); Private HBF_CHAR HBF_GetBitmap(int,long); Private HBF_CHAR HBF_GetHBFChar(HBF,long); Private char *HBF_GetProp(HBF,char*); /*EOF*/ vflib3-3.6.14.dfsg/src/jg.h0000644000175000017500000000400506535650665014643 0ustar mohuramohura/* * jg.h - a header file for JG font driver in drv_zeit.c * by Hirotsugu Kakugawa */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_JG_H__ #define __VFLIB_JG_H__ #define FONTCLASS_NAME "jg" #ifndef DEFAULT_EXTENSIONS # define DEFAULT_EXTENSIONS ".fn, .FN" #endif #define JG_ENV_FONT_DIR "VFLIB_JG_FONTS" struct s_jg_header { char *font_path; int nchars; long *ol_offset; long *ol_size; int base; }; typedef struct s_jg_header *JG_HEADER; struct s_jg { int nfiles; struct s_jg_header **headers; }; typedef struct s_jg *JG; #define JG_MAX_VALUE 0x0fff #define JG_MAX_XY 0x07ff #define JG_XY_MASK 0x07ff #define JG_CMD_MASK 0x0800 #define JG_CODE_SIZE0 0x0582 #define JG_CODE_SIZE1 0x0bc0 #define JG_CODE_SIZE2 0x0d96 /*#define JG_CODE_SIZE2 0x0d3d*/ #define THRESHOLD_SIZE 0x1000 #define EMPTY_PTR 0xffffffffL #define DEFAULT_TO_REF_PT_H 0.86 #define DEFAULT_TO_REF_PT_V -0.5 Private int JG_Init(void); Private int JG_Open(char*); Private void JG_Close(int); Private VF_OUTLINE JG_ReadOutline(int,int,double,double); #endif /*__VFLIB_JG_H__*/ /*EOF*/ vflib3-3.6.14.dfsg/src/path.h0000644000175000017500000000340006651307016015161 0ustar mohuramohura/* * path.c --- path string functions * */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_PATH_H__ #define __VFLIB_PATH_H__ extern char *vf_path_core_subst_ext(char *f, char *ext); extern char *vf_path_base(char *f); extern char *vf_path_base_core(char *f); extern int vf_path_absolute(char *f); extern int vf_path_file_read_ok(char *f); extern int vf_path_directory_read_ok(char *f); extern int vf_path_terminated_by_delim(char *f); extern int vf_path_terminated_by_2delims(char *f); extern void vf_path_del_terminating_2delims(char *f); extern int vf_path_cons_path(char *path, int n, char *dir, char *file); extern int vf_path_cons_path2(char *path, int n, char *dir, char *file, char *ext); extern int vf_path_concat(char *path, int n, char *f); extern char *vf_path_runtime_dir(char *subdir, char *envname); extern char *vf_path_find_runtime_file(char *subdir, char *file, char *envname); #endif /*__VFLIB_PATH_H__*/ vflib3-3.6.14.dfsg/src/jtex.h0000644000175000017500000000266306535650665015225 0ustar mohuramohura/* * jtex.h - a header file for drv_jtex.c * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define FONTCLASS_NAME_JTEX "ascii-jtex-kanji" #define VF_CAPE_JTEX_MAP_SUFIX "implicit-font-mapping-suffix" #define VF_CAPE_JTEX_KANJI_FONT "kanji-font" #define VF_CAPE_JTEX_TFM_FILE "tfm-file" #define VF_CAPE_JTEX_ADJUSTMENT_FILE "metric-adjustment-file" #define VF_CAPE_JTEX_KF_POINT_SIZE "kanji-font-point-size" #define VF_CAPE_JTEX_KF_PIXEL_SIZE "kanji-font-pixel-size" #define VF_CAPE_JTEX_KF_MAG "kanji-font-magnification" #define JTEX_MAX_CHARTYPE 64 /*EOF*/ vflib3-3.6.14.dfsg/src/metric.h0000644000175000017500000000231306535650665015526 0ustar mohuramohura/* * VFsys.h - misc definitions for internals of VFlib * */ /* * Copyright (C) 1996, 1997 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_METRIC_H__ #define __VFLIB_METRIC_H__ extern VF_METRIC1 vf_alloc_metric1(void); extern VF_METRIC2 vf_alloc_metric2(void); extern void vf_metric1_to_metric2(VF_METRIC1,double,VF_METRIC2); extern void vf_dump_metric1(VF_METRIC1); extern void vf_dump_metric2(VF_METRIC2); #endif /*EOF*/ vflib3-3.6.14.dfsg/src/params.h0000644000175000017500000000227606626456525015536 0ustar mohuramohura/* * params.h - a header file for params.c * by Hirotsugu Kakugawa * * Edition History * 22 Mar 1997 First implementation */ /* * Copyright (C) 1997 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_PARAMS_H__ #define __VFLIB_PARAMS_H__ #include "sexp.h" Glocal int vf_params_init(char*); Glocal int vf_params_default(SEXP_ALIST); Glocal SEXP vf_params_lookup(char*); #endif /* __VFLIB_PARAMS_H__ */ /*EOF*/ vflib3-3.6.14.dfsg/src/str.h0000644000175000017500000000275506535650665015065 0ustar mohuramohura/* * str.h - string functions * */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_STR_H__ #define __VFLIB_STR_H__ extern char *vf_strdup(char *s); extern int vf_strcmp_ci(char *s1, char *s2); extern int vf_strncmp_ci(char *s1, char *s2, int n); extern char *vf_index(char *s, char ch); extern int vf_index_i(char *s, char ch); extern char *vf_rindex(char *s, char ch); extern int vf_rindex_i(char *s, char ch); extern int vf_index_str_i(char *s, char *t); extern char *vf_index_str(char *s, char *t); extern int vf_rindex_str_i(char *s, char *t); extern char *vf_rindex_str(char *s, char *t); extern int vf_parse_bool(char *s); #endif /*__VFLIB_STR_H__*/ /*EOF*/ vflib3-3.6.14.dfsg/src/pcf.h0000644000175000017500000000751207277773431015022 0ustar mohuramohura/* * pcf.h - a header file for pcf.c * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_PCF_H__ #define __VFLIB_PCF_H__ #define FONTCLASS_NAME "pcf" #ifndef PCF_DEFAULT_EXTENSIONS # define PCF_DEFAULT_EXTENSIONS ".pcf" #endif #define PCF_ENV_FONT_DIR "VFLIB_PCF_FONTS" typedef char INT1; typedef int INT2; typedef long INT4; typedef long CARD4; struct s_pcf_table { CARD4 type; CARD4 format; CARD4 size; CARD4 offset; }; typedef struct s_pcf_table *PCF_TABLE; #define PCF_MSB_FIRST 0 #define PCF_LSB_FIRST 1 #define PCF_FILE_VERSION 0x70636601 /* `p', `c', `f', 1 */ #define PCF_FORMAT_MASK 0xffffff00 #define PCF_FORMAT_MATCH(x,y) (((x)&PCF_FORMAT_MASK)==((y)&PCF_FORMAT_MASK)) #define PCF_DEFAULT_FORMAT 0x00000000 #define PCF_INKBOUNDS 0x00000200 #define PCF_ACCEL_W_INKBOUNDS 0x00000100 #define PCF_COMPRESSED_METRICS 0x00000100 #define PCF_GLYPH_PAD_MASK (3<<0) #define PCF_BYTE_MASK (1<<2) #define PCF_BIT_MASK (1<<3) #define PCF_SCAN_UNIT_MASK (3<<4) #define PCF_GLYPH_PAD_INDEX(f) ((f) & PCF_GLYPH_PAD_MASK) #define PCF_GLYPH_PAD(f) (1 << PCF_GLYPH_PAD_INDEX(f)) #define PCF_SCAN_UNIT_INDEX(f) (((f)&PCF_SCAN_UNIT_MASK) >> 4) #define PCF_SCAN_UNIT(f) (1 << PCF_SCAN_UNIT_INDEX(f)) #define PCF_BYTE_ORDER(f) (((f)&PCF_BYTE_MASK) ? PCF_MSB_FIRST:PCF_LSB_FIRST) #define PCF_BIT_ORDER(f) (((f)&PCF_BIT_MASK) ? PCF_MSB_FIRST:PCF_LSB_FIRST) #define PCF_FORMAT_BITS(f) ((f) & (PCF_GLYPH_PAD_MASK | PCF_BYTE_MASK \ | PCF_BIT_MASK | PCF_SCAN_UNIT_MASK)) #define PCF_SIZE_TO_INDEX(s) (((s)==4) ? 2 : (((s)==2) ? 1 : 0)) #define PCF_INDEX_TO_SIZE(b) (1< 'vflserver') * 22 Jul 1998 Added ! syntax for specifying font id. (e.g., '!1', '!!') * 8 Dec 1999 Added VFLIB-VERSION command (Protocol 2.1.) */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* * Usage: vflserver [-v vflibcap] [-s shrink] [cmd-file ... ] * * Example: ./vflserver -v `pwd`/vflibcap * * Commands: * (Command names are case insensitive; font names are case sensitive.) * OPEN1 font [ point_size [ mag_x mag_y [ dpi_x dpi_y ]]] * OPEN2 font [ pixel_size [ mag_x mag_y ]] * CLOSE font-id * BITMAP1 font-id code_point [ mag_x mag_y ] * BITMAP2 font-id code_point [ mag_x mag_y ] * METRIC1 font-id code_point [ mag_x mag_y ] * METRIC2 font-id code_point [ mag_x mag_y ] * FONTBBX1 font-id [ mag_x mag_y ] * FONTBBX2 font-id [ mag_x mag_y ] * PROPERTY font-id property * MINIMIZE-BBX [flag] * PROTOCOL * QUIT * VERSION * VFLIB-VERSION * DEBUG [category] * SLEEP [sec] * HELP * */ #include "config.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #if defined(HAVE_STRING_H) || defined(STDC_HEADERS) # include #else # include #endif #include "VFlib-3_6.h" #define PROTOCOL_VERSION "VFSERVER/2.0" #ifndef VERSION # define VERSION "2.1" #endif #define MIN_SHRINK 0.05 #define MAX_ARGS 8 #define MAX_ARG_LEN 80 #define FONTID_TABLE_SIZE 4096 static int minimize_bbx_mode = 0; static int dump_bitmap_mode = 0; static int fontid_table[FONTID_TABLE_SIZE]; static int fontid_seq; static void startup_license(FILE*); static void run_init(char*,double); static void cmd_loop(FILE*,int,double); static int exec_cmd(char*,double); static void quit(void); static int parse_args(char**,char*); static void str_toupper(char *s); static void dump_bitmap_hex(VF_BITMAP); static void dump_bitmap_char(VF_BITMAP,double); extern void vf_dump_bitmap(VF_BITMAP); static int cmd_open1(char**,int); static int cmd_open2(char**,int); static int cmd_close(char**,int); static int cmd_bitmap1(char**,int,double); static int cmd_bitmap2(char**,int,double); static int cmd_bitmap_output(VF_BITMAP,long,double); static int cmd_metric1(char**,int); static int cmd_metric2(char**,int); static int cmd_fontbbx1(char**,int); static int cmd_fontbbx2(char**,int); static int cmd_prop(char**,int); static int cmd_minbbx(char**,int); static int cmd_proto(char**,int); static int cmd_help(char**,int); static int cmd_debug(char**,int); static int cmd_sleep(char**,int); static int cmd_version(char**,int); static int cmd_vflib_version(char**,int); static void put_fontid(int); static int get_fontid(char*); int main(int argc, char **argv) { char *vfcap, **drv_list; double shrink; int i, w; vfcap = NULL; shrink = -1; minimize_bbx_mode = 0; --argc; argv++; while (argc > 0){ if ((argc >= 1) && ((strcmp(argv[0], "-h") == 0) || (strcmp(argv[0], "-help") == 0))){ printf("VFLSERVER - a VFlib server\n"); printf("Usage: vflserver [-v vflibcap] [cmd-file ... ]\n"); printf(" Example: ./vflserver -v /usr/local/lib/VFlib3/vflibcap\n"); exit(0); } else if ((argc >= 2) && (strcmp(argv[0], "-v") == 0)){ --argc; argv++; vfcap = argv[0]; --argc; argv++; } else if ((argc >= 2) && (strcmp(argv[0], "-s") == 0)){ --argc; argv++; if ((shrink = atof(argv[0])) < MIN_SHRINK) shrink = MIN_SHRINK; --argc; argv++; } else { break; } } if ((VF_Init(vfcap, NULL) < 0) || ((drv_list = VF_FontDriverList()) == NULL)){ printf("(550 \"vflserver version %s. ", VERSION); printf("based on VFlib %s ", VF_GetVersion()); printf("VFlib error %d)\n", vf_error); switch (vf_error){ case VF_ERR_INTERNAL: printf("; Internal error.\n"); break; case VF_ERR_NO_MEMORY: printf("; Server runs out of memory.\n"); break; case VF_ERR_NO_VFLIBCAP: printf("; No vflibcap.\n"); break; } fflush(stdout); exit(1); } printf("; This is a font server VFLSERVER Version %s\n", VERSION); printf("; (based on VFlib version %s)\n", VF_GetVersion()); printf("; Installed font drivers:"); w = 9999; for (i = 0; drv_list[i] != NULL; i++){ if (w > 50){ printf("\n; "); w = 0; } printf("%s ", drv_list[i]); w += strlen(drv_list[i]) + 1; } printf("\n"); startup_license(stdout); printf("; Type `HELP' for description of the protocol.\n\n"); printf("(100 \"vflserver ready.\")\n"); fflush(stdout); free(drv_list); fontid_seq = 0; for (i = 0; i < FONTID_TABLE_SIZE; i++) fontid_table[i] = -1; while (argc > 0){ run_init(argv[0], shrink); --argc; argv++; } cmd_loop(stdin, 0, shrink); quit(); return 0; } static void startup_license(FILE *fp) { if (fp == NULL) fp = stdout; fprintf(fp, "; Copyright (C) 1996-1999 by Hirotsugu Kakugawa\n" "; All rights reserved.\n" "; This program is distributed in the hope that it will be useful,\n" "; but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "; GNU General Public License for more details.\n"); } static void run_init(char *f, double shrink) { FILE *fp; if ((fp = fopen(f, "r")) == NULL){ fprintf(stderr, "No such file: %s\n", f); } else { cmd_loop(fp, 1, shrink); fclose(fp); } } static void quit(void) { printf("(100 \"Happy hacking.\")\n"); fflush(stdout); } static void cmd_loop(FILE *fp, int echo, double shrink) { char cmdline[1024]; int val; val = 0; for (;;){ if (fgets(cmdline, sizeof(cmdline), fp) == NULL) break; if (echo == 1) printf("%s", cmdline); if ((val = exec_cmd(cmdline, shrink)) < 0){ quit(); exit(0); } fflush(stdout); } } static int exec_cmd(char *cmdline, double shrink) { char cmd[32], *args[MAX_ARGS]; int nargs, i, j, iarg, ret; ret = 0; iarg = 0; while ((cmdline[iarg] != '\0') && isspace((int)cmdline[iarg])) iarg++; if (cmdline[iarg] == '\0') return ret; j = 0; while ((cmdline[iarg] != '\0') && !isspace((int)cmdline[iarg])) cmd[j++] = cmdline[iarg++]; cmd[j] = '\0'; for (i = 0; cmd[i] != '\0'; i++) cmd[i] = toupper(cmd[i]); nargs = parse_args(args, &cmdline[iarg]); if (strcmp(cmd, "QUIT") == 0){ ret = -1; } else if (strcmp(cmd, "OPEN1") == 0){ cmd_open1(args, nargs); } else if (strcmp(cmd, "OPEN2") == 0){ cmd_open2(args, nargs); } else if (strcmp(cmd, "CLOSE") == 0){ cmd_close(args, nargs); } else if (strcmp(cmd, "BITMAP1") == 0){ cmd_bitmap1(args, nargs, shrink); } else if (strcmp(cmd, "BITMAP2") == 0){ cmd_bitmap2(args, nargs, shrink); } else if (strcmp(cmd, "METRIC1") == 0){ cmd_metric1(args, nargs); } else if (strcmp(cmd, "METRIC2") == 0){ cmd_metric2(args, nargs); } else if (strcmp(cmd, "FONTBBX1") == 0){ cmd_fontbbx1(args, nargs); } else if (strcmp(cmd, "FONTBBX2") == 0){ cmd_fontbbx2(args, nargs); } else if (strcmp(cmd, "PROPERTY") == 0){ cmd_prop(args, nargs); } else if (strcmp(cmd, "PROTOCOL") == 0){ cmd_proto(args, nargs); } else if (strcmp(cmd, "MINIMIZE-BBX") == 0){ cmd_minbbx(args, nargs); } else if (strcmp(cmd, "COMMENT") == 0){ printf("100 Ok.\n"); } else if (strcmp(cmd, "DEBUG") == 0){ cmd_debug(args, nargs); } else if (strcmp(cmd, "HELP") == 0){ cmd_help(args, nargs); } else if (strcmp(cmd, "SLEEP") == 0){ cmd_sleep(args, nargs); } else if (strcmp(cmd, "VERSION") == 0){ cmd_version(args, nargs); } else if (strcmp(cmd, "VFLIB-VERSION") == 0){ cmd_vflib_version(args, nargs); } else { printf("(500 \"Error. Command unknown. (`HELP' for help.)\")\n"); } return ret; } static int parse_args(char **args, char *cmdline) { int argc, idx; idx = 0; for (argc = 0; argc < MAX_ARGS-1;){ while (isspace((int)cmdline[idx])) idx++; if (cmdline[idx] == '\0') break; args[argc] = &cmdline[idx]; argc++; while (!isspace((int)cmdline[idx]) && (cmdline[idx] != '\0')) idx++; if (cmdline[idx] == '\0') break; cmdline[idx++] = '\0'; } args[argc] = NULL; return argc; } /* ------------------------------------------------------------- */ /* * OPEN1 font [ point_size [ mag_x mag_y [ dpi_x dpi_y ]]] */ static int cmd_open1(char **args, int nargs) { int font_id; char *font; double point_size, mag_x, mag_y, dpi_x, dpi_y; if ((nargs != 1) && (nargs != 2) && (nargs != 4) && (nargs != 6)){ printf("500 What? %s\n", "OPEN1 font [ point_size [ mag_x mag_y [ dpi_x dpi_y ]]]"); return -1; } font = NULL; point_size = -1; mag_x = 1; mag_y = 1; dpi_x = -1; dpi_y = -1; font = args[0]; if (nargs >= 2) point_size = atof(args[1]); if (nargs >= 4){ mag_x = atof(args[2]); mag_y = atof(args[3]); } if (nargs >= 6){ dpi_x = atof(args[4]); dpi_y = atof(args[5]); } font_id = VF_OpenFont1(font, dpi_x, dpi_y, point_size, mag_x, mag_y); put_fontid(font_id); if (font_id < 0){ printf("(551 \"Error. Can't open %s.\")\n", font); return -1; } printf("(100 %d \"%s\")\n", font_id, font); return 0; } /* * OPEN2 font [ pixel_size [ mag_x mag_y ]] */ static int cmd_open2(char **args, int nargs) { int font_id; char *font; int pixel_size; double mag_x, mag_y; if ((nargs != 1) && (nargs != 2) && (nargs != 4) ){ printf("500 What? %s\n", "OPEN2 font [ pixel_size [ mag_x mag_y ]]"); return -1; } font = NULL; pixel_size = -1; mag_x = 1; mag_y = 1; font = args[0]; if (nargs >= 2) sscanf(args[1], "%i", &pixel_size); if (nargs >= 4){ mag_x = atof(args[2]); mag_y = atof(args[3]); } font_id = VF_OpenFont2(font, pixel_size, mag_x, mag_y); put_fontid(font_id); if (font_id < 0){ printf("(551 \"Error. Can't open %s.\")\n", font); return -1; } printf("(100 %d \"%s\")\n", font_id, font); return 0; } /* * CLOSE font-id */ static int cmd_close(char **args, int nargs) { int font_id; if (nargs != 1){ printf("500 What? %s\n", "CLOSE font-id"); return -1; } font_id = get_fontid(args[0]); VF_CloseFont(font_id); printf("(100 %d)\n", font_id); return 0; } /* * BITMAP1 font-id code_point [ mag_x mag_y ] */ static int cmd_bitmap1(char **args, int nargs, double shrink) { int font_id, val; long code_point; double mag_x, mag_y; VF_BITMAP bm, bm1; if ((nargs != 2) && (nargs != 3) && (nargs != 4)){ printf("(500 \"Error. Usage:%s\")\n", "BITMAP1 font-id char-code [ mag_x mag_y ]"); return -1; } font_id = -1; code_point = 0; mag_x = 1; mag_y = 1; font_id = get_fontid(args[0]); sscanf(args[1], "%li", &code_point); if (nargs == 3){ mag_x = mag_y = atof(args[2]); } else if (nargs == 4){ mag_x = atof(args[2]); mag_y = atof(args[3]); } bm = VF_GetBitmap1(font_id, code_point, mag_x, mag_y); if (bm != NULL){ if (minimize_bbx_mode == 1){ bm1 = VF_MinimizeBitmap(bm); val = cmd_bitmap_output(bm1, code_point, shrink); VF_FreeBitmap(bm1); VF_FreeBitmap(bm); } else { val = cmd_bitmap_output(bm, code_point, shrink); VF_FreeBitmap(bm); } } else { val = cmd_bitmap_output(bm, code_point, shrink); } return val; } /* * BITMAP2 font-id code_point [ mag_x mag_y ] */ static int cmd_bitmap2(char **args, int nargs, double shrink) { int font_id, val; long code_point; double mag_x, mag_y; VF_BITMAP bm, bm1; if ((nargs != 2) && (nargs != 3) && (nargs != 4)){ printf("(500 \"Error. Usage: %s\")\n", "BITMAP2 font-id char-code [ mag_x mag_y ]"); return -1; } font_id = -1; code_point = 0; mag_x = 1; mag_y = 1; font_id = get_fontid(args[0]); sscanf(args[1], "%li", &code_point); if (nargs == 3){ mag_x = mag_y = atof(args[2]); } else if (nargs == 4){ mag_x = atof(args[2]); mag_y = atof(args[3]); } bm = VF_GetBitmap2(font_id, code_point, mag_x, mag_y); if (bm != NULL){ if (minimize_bbx_mode == 1){ bm1 = VF_MinimizeBitmap(bm); val = cmd_bitmap_output(bm1, code_point, shrink); VF_FreeBitmap(bm1); VF_FreeBitmap(bm); } else { val = cmd_bitmap_output(bm, code_point, shrink); VF_FreeBitmap(bm); } } else { val = cmd_bitmap_output(bm, code_point, shrink); } return val; } static int cmd_bitmap_output(VF_BITMAP bm, long code_point, double shrink) { if (bm == NULL){ switch (vf_error){ case VF_ERR_ILL_FONTID: printf("(550 \"Error. Illegal font-id.\")\n"); break; case VF_ERR_INTERNAL: printf("(550 \"Error. Internal error.\")\n"); break; case VF_ERR_NO_MEMORY: printf("(550 \"Error. No memory.\")\n"); break; case VF_ERR_ILL_CODE_POINT: printf("(550 \"Error. No such character %ld (0x%04lx).\")\n", code_point, code_point); break; default: printf("(550 \"Error. VFlib error code = %d.\")\n", vf_error); } return -1; } printf("(100 %d %d %d %d %d %d\n ", bm->bbx_width, bm->bbx_height, bm->off_x, bm->off_y, bm->mv_x, bm->mv_y); dump_bitmap_hex(bm); if (dump_bitmap_mode == 1) dump_bitmap_char(bm, shrink); printf(")\n"); return 0; } /* * METRIC1 font-id code_point [ mag_x mag_y ] */ static int cmd_metric1(char **args, int nargs) { int font_id; long code_point; double mag_x, mag_y; VF_METRIC1 met; if ((nargs != 2) || (nargs > 4)){ printf("(500 \"Error. Usage: %s\")\n", "METRIC1 font-id code_point [ mag_x mag_y ]"); return -1; } font_id = -1; code_point = 0; mag_x = 1; mag_y = 1; font_id = get_fontid(args[0]); sscanf(args[1], "%li", &code_point); if (nargs == 3){ mag_x = mag_y = atof(args[2]); } else if (nargs == 4){ mag_x = atof(args[2]); mag_y = atof(args[3]); } if ((met = VF_GetMetric1(font_id, code_point, NULL, mag_x, mag_y)) == NULL){ printf("(550 \"Error. No metric.\")\n"); return -1; } printf("(100 %f %f %f %f %f %f)\n", met->bbx_width, met->bbx_height, met->off_x, met->off_y, met->mv_x, met->mv_y); VF_FreeMetric1(met); return 0; } /* * METRIC2 font-id code_point [ mag_x mag_y ] */ static int cmd_metric2(char **args, int nargs) { int font_id; long code_point; double mag_x, mag_y; VF_METRIC2 met; if ((nargs != 2) || (nargs > 4)){ printf("500 What? %s\n", "METRIC2 font-id char-code [ mag_x mag_y ]"); return -1; } font_id = -1; code_point = 0; mag_x = 1; mag_y = 1; font_id = get_fontid(args[0]); sscanf(args[1], "%li", &code_point); if (nargs == 3){ mag_x = mag_y = atof(args[2]); } else if (nargs == 4){ mag_x = atof(args[2]); mag_y = atof(args[3]); } if ((met = VF_GetMetric2(font_id, code_point, NULL, mag_x, mag_y)) == NULL){ printf("(550 \"Error. No metric.\")\n"); return -1; } printf("(100 %d %d %d %d %d %d)\n", met->bbx_width, met->bbx_height, met->off_x, met->off_y, met->mv_x, met->mv_y); VF_FreeMetric2(met); return 0; } /* * FONTBBX1 font-id [ mag_x mag_y ] */ static int cmd_fontbbx1(char **args, int nargs) { int font_id; double mag_x, mag_y; double w, h, xoff, yoff; if ((nargs != 1) || (nargs > 3)){ printf("(500 \"Error. Usage: %s\")\n", "FONTBBX1 font-id [ mag_x mag_y ]"); return -1; } font_id = -1; mag_x = 1; mag_y = 1; font_id = get_fontid(args[0]); if (nargs == 2){ mag_x = mag_y = atof(args[1]); } else if (nargs == 3){ mag_x = atof(args[1]); mag_y = atof(args[2]); } if (VF_GetFontBoundingBox1(font_id, mag_x, mag_y, &w, &h, &xoff, &yoff) < 0){ printf("(550 \"Error. No font bounding box information.\")\n"); return -1; } printf("(100 %f %f %f %f)\n", w, h, xoff, yoff); return 0; } /* * FONTBBX2 font-id [ mag_x mag_y ] */ static int cmd_fontbbx2(char **args, int nargs) { int font_id; double mag_x, mag_y; int w, h, xoff, yoff; if ((nargs != 1) || (nargs > 3)){ printf("(500 \"Error. Usage: %s\")\n", "FONTBBX2 font-id [ mag_x mag_y ]"); return -1; } font_id = -1; mag_x = 1; mag_y = 1; font_id = get_fontid(args[0]); if (nargs == 2){ mag_x = mag_y = atof(args[1]); } else if (nargs == 3){ mag_x = atof(args[1]); mag_y = atof(args[2]); } if (VF_GetFontBoundingBox2(font_id, mag_x, mag_y, &w, &h, &xoff, &yoff) < 0){ printf("(550 \"Error. No font bounding box information.\")\n"); return -1; } printf("(100 %d %d %d %d)\n", w, h, xoff, yoff); return 0; } /* * PROPERTY font-id property */ static int cmd_prop(char **args, int nargs) { int font_id; char *prop, *value; if (nargs != 2){ printf("(500 \"Error. Usage: %s\")\n", "PROPERTY font-id property"); return -1; } font_id = get_fontid(args[0]); prop = args[1]; if ((value = VF_GetFontProp(font_id, prop)) == NULL){ printf("(550 \"Error. No such property: %s\")\n", prop); return -1; } printf("(100 \"%s\" \"%s\")\n", prop, value); free(value); return 0; } /* * MINIMIZE-BBX [flag] */ static int cmd_minbbx(char **args, int nargs) { char *res; int val; if (nargs != 1){ printf("(500 \"Error. Usage: %s\")\n", "MINIMIZE-BBX [flag]"); return -1; } res = "100"; val = 0; str_toupper(args[0]); if ( (strcmp(args[0], "0") == 0) || (strcmp(args[0], "OFF") == 0) || (strcmp(args[0], "NO") == 0)){ minimize_bbx_mode = 0; } else if ( (strcmp(args[0], "1") == 0) || (strcmp(args[0], "ON") == 0) || (strcmp(args[0], "YES") == 0)){ minimize_bbx_mode = 1; } else { res = "500"; val = -1; } printf("(%s \"%s\")\n", res, minimize_bbx_mode?"ON":"OFF"); return val; } static void put_fontid(int fontid) { if (fontid_seq < FONTID_TABLE_SIZE) fontid_table[fontid_seq++] = fontid; } static int get_fontid(char *s) { int fontid, h; fontid = -1; if (s[0] == '!'){ /* font id by history */ if (strcmp(s, "!!") == 0){ /* "!!" : the latest font id */ if ((fontid_seq > 0) && (fontid_seq < FONTID_TABLE_SIZE)) fontid = fontid_table[fontid_seq-1]; } else { /* "!i" : font id for i-th VF_OpenFontX() */ sscanf(&s[1], "%i", &h); if ((h >= 0) && (h < FONTID_TABLE_SIZE)) fontid = fontid_table[h]; } } else { /* font id by number */ sscanf(s, "%i", &fontid); } return fontid; } /* * PROTOCOL */ static int cmd_proto(char **args, int nargs) { printf("(100 \"%s\")\n", PROTOCOL_VERSION); return 0; } /* * SLEEP [sec] */ static int cmd_sleep(char **args, int nargs) { int t; t = 1; if (args[0] != NULL){ if ((t = atoi(args[0])) < 1) t = 1; } sleep(t); printf("(100 %d)\n", t); return 0; } /* * VERSION */ static int cmd_version(char **args, int nargs) { printf("(100 \"%s\")\n", VERSION); return 0; } /* * VFlib VERSION */ static int cmd_vflib_version(char **args, int nargs) { printf("(100 \"%s\")\n", VF_GetVersion()); return 0; } extern void VF_DumpFontTable(void); /* * DEBUG [category] */ static int cmd_debug(char **args, int nargs) { if (args[0] != NULL){ str_toupper(args[0]); if (strcmp(args[0], "BITMAP") == 0){ dump_bitmap_mode = 1 - dump_bitmap_mode; printf("(100 \"Ascii-art bitmap %s.\")\n", (dump_bitmap_mode==1)?"on":"off"); } else if (strcmp(args[0], "DUMPFONTS") == 0){ VF_DumpFontTable(); } else { printf("(500 \"Error.\")\n"); return -1; } } else { printf("(500 \"Error. Debug what? (Type `HELP' for help.)\")\n"); } return 0; } /* * HELP */ static void cmd_help_open1(void), cmd_help_open2(void); static void cmd_help_close(void); static void cmd_help_bitmap1(void), cmd_help_bitmap2(void); static void cmd_help_metric1(void), cmd_help_metric2(void); static void cmd_help_fontbbx1(void), cmd_help_fontbbx2(void); static void cmd_help_property(void); static void cmd_help_minbbx(void), cmd_help_protocol(void); static void cmd_help_quit(void), cmd_help_version(void); static void cmd_help_debug(void), cmd_help_sleep(void); static void cmd_help_help(void); struct s_help { char *cmd_name; void (*help_func)(void); }; static struct s_help helpers[] = { {"OPEN1", cmd_help_open1}, {"OPEN2", cmd_help_open2}, {"CLOSE", cmd_help_close}, {"BITMAP1", cmd_help_bitmap1}, {"BITMAP2", cmd_help_bitmap2}, {"METRIC1", cmd_help_metric1}, {"METRIC2", cmd_help_metric2}, {"FONTBBX1", cmd_help_fontbbx1}, {"FONTBBX2", cmd_help_fontbbx2}, {"PROPERTY", cmd_help_property}, {"MINIMIZE-BBX", cmd_help_minbbx}, {"PROTOCOL", cmd_help_protocol}, {"QUIT", cmd_help_quit}, {"VERSION", cmd_help_version}, {"DEBUG", cmd_help_debug}, {"HELP", cmd_help_help}, {"SLEEP", cmd_help_sleep}, {"?", cmd_help_help}, {NULL, NULL} }; static int cmd_help(char **args, int nargs) { if (nargs == 0){ printf("; Help keywords:\n"); printf("; OPEN1, OPEN2, CLOSE, BITMAP1, BITMAP2, METRIC1, METRIC2\n"); printf("; FONTBBX1 FONTBBX2 PROPERTY, MINIMIZE-BBX, PROTOCOL, QUIT\n"); printf("; VERSION, DEBUG, HELP, SLEEP\n"); printf("; HELP ? --- for more information on command list.\n"); printf("; HELP KEY --- help on KEY listed above.\n"); printf("; Each command returns result with status value (3 digits) \n"); printf("; followed by a command-specific result sequence.\n"); printf("(100 \"Ok.\")\n"); } else { int i, c; int found; for (i = 0; args[0][i] != '\0'; i++) args[0][i] = toupper(args[0][i]); found = 0; c = 0; while (helpers[c].cmd_name != NULL){ if (strcmp(helpers[c].cmd_name, args[0]) == 0){ found = 1; break; } c++; } if (found == 0){ printf("; Unknown help for \"%s\"\n", args[0]); cmd_help(NULL, 0); } else { (*helpers[c].help_func)(); printf("(100 \"Ok.\")\n"); } } return 0; } static void cmd_help_help(void) { printf("; The following commands are recognized.\n"); printf("; OPEN1 font [ point-size [ mag_x mag_y [ dpi_x dpi_y ]]]\n"); printf("; OPEN2 font [ pixel-size [ mag_x mag_y ]]\n"); printf("; CLOSE font-id\n"); printf("; BITMAP1 font-id code_point [ mag_x mag_y ]\n"); printf("; BITMAP2 font-id code_point [ mag_x mag_y ]\n"); printf("; METRIC1 font-id code_point [ mag_x mag_y ]\n"); printf("; METRIC2 font-id code_point [ mag_x mag_y ]\n"); printf("; FONTBBX1 font-id [ mag_x mag_y ]\n"); printf("; FONTBBX2 font-id [ mag_x mag_y ]\n"); printf("; PROPERTY font-id property\n"); printf("; MINIMIZE-BBX [flag]\n"); printf("; PROTOCOL\n"); printf("; QUIT\n"); printf("; VERSION\n"); printf("; DEBUG [category]\n"); printf("; HELP [category]\n"); printf("; SLEEP [sec]\n"); printf("; HELP CMDS --- help on CMDS\n"); printf("; Each command returns result with status value (3 digits) \n"); printf("; followed by a command-specific result sequence.\n"); } static void cmd_help_open1(void) { printf("; OPEN1 font [ point-size [ mag_x mag_y [ dpi_x dpi_y ]]]\n"); printf("; --- Open a font named FONT in mode 1. \n"); printf("; It's parameters are point size (POINT_SIZE),\n"); printf("; magnification factors (MAG_X, MAG_Y), and device \n"); printf("; resolutions in DPI (DPI_X, DPI_Y). If these parameters\n"); printf("; are omitted, default values of the font are used.\n"); printf("; This command returns a font identifier in integer, if\n"); printf("; a requested font is successfully opened.\n"); } static void cmd_help_open2(void) { printf("; OPEN2 font [ pixel-size [ mag_x mag_y ]]\n"); printf("; --- Open a font named FONT in mode 1. \n"); printf("; It's parameters are pixel size (PIXEL_SIZE),\n"); printf("; magnification factors (MAG_X, MAG_Y). If these parameters\n"); printf("; are omitted, default values of the font are used.\n"); printf("; This command returns a font identifier in integer, if\n"); printf("; a requested font is successfully opened.\n"); } static void cmd_help_close(void) { printf("; CLOSE font-id\n"); printf("; --- Close an opened font of FONT_ID.\n"); } static void cmd_help_bitmap1(void) { printf("; BITMAP1 font-id code_point [ mag_x mag_y ]\n"); printf("; --- Get a bitmap of a character CODE_POINT in a FONT_ID.\n"); printf("; FONT_ID must be in mode 1.\n"); printf("; This command returns Bw Bh Rx Ry Mx My BM\n"); printf("; - Bw (width) and Bh (height) form a bounding-box of a bitmap,\n"); printf("; (in pixel).\n"); printf("; - Rx and Ry form a vector from the reference point of \n"); printf("; a bitmap to the upper left corner of a bitmap (in pixel).\n"); printf("; - Mx and My form a vector from the reference point to the next\n"); printf("; next reference point (in pixel).\n"); printf("; - BM is the bitmap, starting from top line of a bitmap to \n"); printf("; the bottom. Each line starts from left to right, 1 bit per\n"); printf("; pixel, padding is 8 pixels. Leftmost pixel in 8 pixel\n"); printf("; packet has 0x80 weight, rightmost one has 0x01.\n"); } static void cmd_help_bitmap2(void) { printf("; BITMAP2 font-id code_point [ mag_x mag_y ]\n"); printf("; --- Get a bitmap of a character CODE_POINT in a FONT_ID.\n"); printf("; FONT_ID must be in mode 2.\n"); printf("; This command returns Bw Bh Rx Ry Mx My BM\n"); printf("; See help on BITMAP1 for return values.\n"); } static void cmd_help_metric1(void) { printf("; METRIC1 font-id code_point [ mag_x mag_y ]\n"); printf("; --- Get a metric of a character CODE_POINT in a FONT_ID.\n"); printf("; FONT_ID must be in mode 1.\n"); printf("; This command returns Bw Bh Rx Ry Mx My\n"); printf("; See help on BITMAP1 for return values, *except* units are\n"); printf("; points.\n"); } static void cmd_help_metric2(void) { printf("; METRIC2 font-id code_point [ mag_x mag_y ]\n"); printf("; --- Get a metric of a character CODE_POINT in a font FONT_ID.\n"); printf("; FONT_ID must be in mode 2.\n"); printf("; This command returns Bw Bh Rx Ry Mx My\n"); printf("; See help on BITMAP1 for return values. (Units are\n"); printf("; pixel.)\n"); } static void cmd_help_fontbbx1(void) { printf("; FONTBBX1 font-id [ mag_x mag_y ]\n"); printf("; --- Get font bounding information of a font FONT_ID.\n"); printf("; FONT_ID must be in mode 1.\n"); printf("; This command returns W H XOFF YOFF\n"); printf("; - W, H are max width, height, respectively.\n"); printf("; - XOFF and YOFF form a max vector from the reference point to\n"); printf("; lower left corner of a bounding box.\n"); printf("; These units are point.\n"); } static void cmd_help_fontbbx2(void) { printf("; FONTBBX2 font-id [ mag_x mag_y ]\n"); printf("; --- Get font bounding information of a font FONT_ID.\n"); printf("; FONT_ID must be in mode 2.\n"); printf("; This command returns W H XOFF YOFF\n"); printf("; - W, H are max width, height, respectively.\n"); printf("; - XOFF and YOFF form a max vector from the reference point to\n"); printf("; lower left corner of a bounding box.\n"); printf("; These units are pixel.\n"); } static void cmd_help_property(void) { printf("; PROPERTY font-id property_name\n"); printf("; --- Get a property value of PROPERTY_NAME of a font FONT_ID.\n"); printf("; This command returns property value in string.\n"); } static void cmd_help_minbbx(void) { printf("; MINIMIZE-BBX [flag]\n"); printf("; --- Followed BITAMAP1 and BITMAP2 commands return `minimized'\n"); printf("; bitmap, in a sense that no smaller bounding box can contain\n"); printf("; all black pixels.\n"); } static void cmd_help_protocol(void) { printf("; PROTOCOL\n"); printf("; --- Return protocol version string.\n"); } static void cmd_help_quit(void) { printf("; QUIT\n"); printf("; --- Quit vflserver.\n"); } static void cmd_help_version(void) { printf("; VERSION\n"); printf("; --- Print version of vflserver.\n"); } static void cmd_help_debug(void) { printf("; DEBUG [category]\n"); printf("; --- Set debug mode on CATEGORY.\n"); printf("; Categories:\n"); printf("; - BITMAP - print obtained bitmaps by BITMAP1 and BITMAP2\n"); printf("; in ASCII art form.\n"); printf("; Currently, only BITMAP is defined for debug category\n"); } static void cmd_help_sleep(void) { printf("; SLEEP [sec]\n"); printf("; --- Sleep for SEC seconds.\n"); } static void dump_bitmap_hex(VF_BITMAP bm) { int x, y, b; unsigned char *p; printf("\""); b = 0; for (y = 0; y < bm->bbx_height; y++){ p = &bm->bitmap[y * bm->raster]; for (x = 0; x < (bm->bbx_width+7)/8; x++){ printf("%02x", p[x]); b++; } } printf("\""); } static void dump_bitmap_char(VF_BITMAP bm, double shrink) { printf("\n\"\n"); vf_dump_bitmap(bm); printf("\""); } static void str_toupper(char *s) { while (*s){ *s = toupper(*s); s++; } } /*EOF*/ vflib3-3.6.14.dfsg/src/vfltest.c0000644000175000017500000001472510264672510015722 0ustar mohuramohura/* * vfltest.c - a test program for VFlib * by Hirotsugu Kakugawa * * 22 Mar 1997 Upgraded for VFlib 3.2 * 6 Aug 1997 Upgraded for VFlib 3.3 */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include #include #if defined(HAVE_STRING_H) || defined(STDC_HEADERS) # include #else # include #endif #include "VFlib-3_6.h" #define PROG_NAME "vfltest" void usage(void); int display(long); int display_mode1(long); int display_mode1_ol(long); int display_mode2(long); extern double atof(); char *FontName; int Mode; int Outline; double MagX, MagY; int Pixel; double Point; double Dpi; int FontId; int main(int argc, char **argv) { int i, j; long code, code1, code2; char *vflibcap; Mode = 1; Outline = 0; MagX = MagY = 1.0; Point = -1.0; Pixel = -1; Dpi = -1; vflibcap = NULL; argc--; argv++; while ((argc > 0) && (*argv[0] == '-')){ if (strcmp(argv[0], "-f") == 0){ argc--; argv++; break; } else if (strcmp(argv[0], "-v") == 0){ vflibcap = argv[1]; argc--; argv++; } else if (strcmp(argv[0], "-m") == 0){ MagX = MagY = atof(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-mx") == 0){ MagX = atof(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-my") == 0){ MagY = atof(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-p") == 0){ Pixel = atoi(argv[1]); Point = atof(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-d") == 0){ Dpi = atof(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-mode1") == 0){ Mode = 1; argc--; argv++; } else if (strcmp(argv[0], "-mode2") == 0){ Mode = 2; argc--; argv++; } else if (strcmp(argv[0], "-ol") == 0){ Outline = 1; argc--; argv++; } if ((strcmp(argv[0], "-h") == 0)|| (strcmp(argv[0], "-h") == 0)){ usage(); } else if (strcmp(argv[0], "--help") == 0){ usage(); } else if (strcmp(argv[0], "-help") == 0){ usage(); } argc--; argv++; } if (argc <= 1) usage(); FontName = argv[0]; argv++; argc--; if (VF_Init(vflibcap, NULL) < 0){ fprintf(stderr, "Error %d in VF_Init().\n", vf_error); exit(0); } if (Mode == 1) FontId = VF_OpenFont1(FontName, Dpi, Dpi, Point, MagX, MagY); else FontId = VF_OpenFont2(FontName, Pixel, MagX, MagY); if (FontId < 0){ fprintf(stderr, "Error %d in VF_OpenFont1()\n", vf_error); exit(0); } while (argc > 0){ if (argv[0][0] == '='){ for (i = 1; argv[0][i] != '\0'; i++){ if ( (argv[0][i+1] != '\0') && (argv[0][i+1] == '-') && (argv[0][i+2] != '\0') && (argv[0][i] < argv[0][i+2]) ){ for (j = (int)argv[0][i]; j <= (int)argv[0][i+2]; j++){ display(j); } i = i+2; } else { display((long)argv[0][i]); } } argv++; argc--; } else if ((argv[1] != NULL) && (argv[2] != NULL) && (strcmp(argv[1], "-") == 0)){ sscanf(argv[0], "%li", &code1); sscanf(argv[2], "%li", &code2); for (code = code1; code <= code2; code++) display(code); argv = &argv[3]; argc -= 3; } else { sscanf(argv[0], "%li", &code); display(code); argv++; argc--; } } return 0; } void usage(void) { printf("%s --- A test program for VFlib\n", PROG_NAME); printf("Usage: %s [OPTIONS] FONT %s\n", PROG_NAME, "[CHAR_CODE ...] [=CHAR_LIST ...] [CHAR_FROM - CHAR_TO ...]"); printf(" Options: -mode1 select mode 1\n"); printf(" -mode2 select mode 2\n"); printf(" -mx MAG_X horizontal magnification\n"); printf(" -my MAG_Y vertical magnification\n"); printf(" -v VFLIBCAP vflibcap file\n"); printf(" -ol (mode 1) rasterize by outline APIs\n"); printf(" -d DPI (mode 1) device resolution\n"); printf(" -p POINT (mode 1) point size\n"); printf(" -p PIXEL (mode 2) pixel size\n"); printf(" Example 1: %s timR24 33 34 35 0x61 0x62\n", PROG_NAME); printf(" Example 2: %s jiskan16 0x2123 0x2124\n", PROG_NAME); printf(" Example 3: %s timR24 =abcdefg\n", PROG_NAME); printf(" Example 4: %s timR24 0x21 - 0x7e\n", PROG_NAME); exit(0); } int display(long code_point) { int r; if (Mode == 1){ if (Outline == 0){ r = display_mode1(code_point); } else { r = display_mode1_ol(code_point); } } else { r = display_mode2(code_point); } return r; } int display_mode1(long code_point) { VF_BITMAP bm; printf("Char Code: 0x%lx\n", code_point); if ((bm = VF_GetBitmap1(FontId, code_point, 1, 1)) == NULL){ fprintf(stderr, "Error %d in VF_GetBitmap1()\n", vf_error); return -1; } VF_DumpBitmap(bm); printf("\n"); VF_FreeBitmap(bm); return 0; } int display_mode1_ol(long code_point) { VF_OUTLINE outline; VF_BITMAP bm; printf("Char Code: 0x%lx\n", code_point); if ((outline = VF_GetOutline(FontId, code_point, 1, 1)) == NULL){ fprintf(stderr, "Error %d in VF_GetOutline()\n", vf_error); return -1; } if ((bm = VF_OutlineToBitmap(outline, -1, -1, -1, 1.0, 1.0)) == NULL){ fprintf(stderr, "Error %d in VF_GetOutline1()\n", vf_error); return -1; } VF_FreeOutline(outline); VF_DumpBitmap(bm); printf("\n"); VF_FreeBitmap(bm); return 0; } int display_mode2(long code_point) { VF_BITMAP bm; printf("Char Code: 0x%lx\n", code_point); if ((bm = VF_GetBitmap2(FontId, code_point, 1, 1)) == NULL){ fprintf(stderr, "Error %d in VF_GetBitmap2()\n", vf_error); return -1; } VF_DumpBitmap(bm); printf("\n"); VF_FreeBitmap(bm); return 0; } /*EOF*/ vflib3-3.6.14.dfsg/src/bmlist.h0000644000175000017500000000231506537413744015534 0ustar mohuramohura/* * bmlist.h - a header file for bmlist.c */ /* * Copyright (C) 1997-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_BMLIST_H__ #define __VFLIB_BMLIST_H__ extern int vf_bitmaplist_init(VF_BITMAPLIST); extern int vf_bitmaplist_put(VF_BITMAPLIST,VF_BITMAP,long,long); extern VF_BITMAP vf_bitmaplist_compose(VF_BITMAPLIST); extern int vf_bitmaplist_finish(VF_BITMAPLIST); #endif /** __VFLIB_BMLIST_H__*/ /*EOF*/ vflib3-3.6.14.dfsg/src/drv_try.c0000644000175000017500000003043407363720772015731 0ustar mohuramohura/* * drv_try.c - A font driver that try to open a font among listed fonts. * * by Hirotsugu Kakugawa * * 16 Jul 1998 First implementation * 24 Nov 1998 Added get_fontbbx1() and get_fontbbx2(). * */ /* * Copyright (C) 1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "cache.h" #include "sexp.h" #include "str.h" #include "path.h" #include "try.h" struct s_font_try { char *font_name; double point_size; double pixel_size; double mag; double dpi_x, dpi_y; int fid; SEXP props; }; typedef struct s_font_try *FONT_TRY; Private SEXP_ALIST default_properties; Private SEXP_ALIST default_variables; Private SEXP_STRING default_debug_mode; Private int try_create(VF_FONT,char*,char*,int,SEXP); Private int try_close(VF_FONT); Private int try_get_metric1(VF_FONT,long,VF_METRIC1,double,double); Private int try_get_metric2(VF_FONT,long,VF_METRIC2,double,double); Private int try_get_fontbbx1(VF_FONT,double,double, double*,double*,double*,double*); Private int try_get_fontbbx2(VF_FONT,double,double, int*,int*,int*,int*); Private VF_BITMAP try_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP try_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE try_get_outline(VF_FONT,long,double,double); Private char* try_get_font_prop(VF_FONT,char*); Private int try_query_font_type(VF_FONT,long); Private void release_mem(FONT_TRY); Private int debug_on(char type); Public int VF_Init_Driver_Try(void) { struct s_capability_table ct[10]; int z; z = 0; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME_TRY, ct, NULL, NULL) == VFLIBCAP_PARSED_ERROR) return -1; VF_InstallFontDriver(FONTCLASS_NAME_TRY, (DRIVER_FUNC_TYPE)try_create); return 0; } Private int try_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_TRY font_try; SEXP cap_fontlist, cap_point, cap_pixel; SEXP cap_mag, cap_dpi, cap_props; SEXP s; char *fname = NULL; struct s_capability_table ct[10]; int z; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_TRY_FONT_LIST */ ct[z].cap = VF_CAPE_TRY_FONT_LIST; ct[z].type = CAPABILITY_STRING_LIST1; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_fontlist; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_point; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_pixel; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi; /* VF_CAPE_MAG */ ct[z].cap = VF_CAPE_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mag; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; /* No support for implicit fonts */ if (implicit == 1) return -1; /* Only supports explicit fonts */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, NULL) == VFLIBCAP_PARSED_ERROR) return -1; font->font_type = -1; /* Use try_query_font_type() */ font->get_metric1 = try_get_metric1; font->get_metric2 = try_get_metric2; font->get_fontbbx1 = try_get_fontbbx1; font->get_fontbbx2 = try_get_fontbbx2; font->get_bitmap1 = try_get_bitmap1; font->get_bitmap2 = try_get_bitmap2; font->get_outline = try_get_outline; font->get_font_prop = try_get_font_prop; font->query_font_type = try_query_font_type; font->close = try_close; ALLOC_IF_ERR(font_try, struct s_font_try){ vf_error = VF_ERR_NO_MEMORY; return -1; } if ((font_try->font_name = vf_strdup(font_name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; vf_free(font_try); return -1; } font_try->point_size = -1; font_try->pixel_size = -1; font_try->dpi_x = -1; font_try->dpi_y = -1; font_try->mag = 1.0; font_try->fid = -1; font_try->props = NULL; if (cap_point != NULL) font_try->point_size = atof(vf_sexp_get_cstring(cap_point)); if (cap_pixel != NULL) font_try->pixel_size = atof(vf_sexp_get_cstring(cap_pixel)); if (cap_dpi != NULL){ font_try->dpi_x =atof(vf_sexp_get_cstring(cap_dpi)); font_try->dpi_y = atof(vf_sexp_get_cstring(cap_dpi)); } if (cap_props != NULL) font_try->props = cap_props; if (font->point_size >= 0) font_try->point_size = font->point_size; if ((font->dpi_x >= 0) && (font->dpi_y >= 0)){ font_try->dpi_x = font->dpi_x; font_try->dpi_y = font->dpi_y; } if (font->pixel_size >= 0) font_try->pixel_size = font->pixel_size; if ((font->mode != 1) && (font->mode != 2)){ fprintf(stderr, "VFlib: internal error in try_create()\n"); abort(); } for (s = cap_fontlist; vf_sexp_consp(s); s = vf_sexp_cdr(s)){ fname = vf_sexp_get_cstring(vf_sexp_car(s)); if (fname == NULL) continue; if (debug_on('f')) printf("VFlib Try: trying %s\n", fname); if (font->mode == 1){ font_try->fid = VF_OpenFont1(fname, font_try->dpi_x, font_try->dpi_y, font_try->point_size, font->mag_x * font_try->mag, font->mag_y * font_try->mag); } else { font_try->fid = VF_OpenFont2(fname, font_try->pixel_size, font->mag_x * font_try->mag, font->mag_y * font_try->mag); } if (font_try->fid >= 0) break; } if (debug_on('f')){ if (font_try->fid >= 0) printf("VFlib Try: opened: %s\n", fname); else printf("VFlib Try: failed\n"); } if (font_try->fid < 0) goto CANT_OPEN; font->private = font_try; vf_sexp_free1(&cap_fontlist); vf_sexp_free4(&cap_point, &cap_pixel, &cap_mag, &cap_dpi); return 0; CANT_OPEN: vf_sexp_free1(&cap_fontlist); vf_sexp_free4(&cap_point, &cap_pixel, &cap_mag, &cap_dpi); vf_error = VF_ERR_CANT_OPEN; release_mem(font_try); return -1; } Private int try_close(VF_FONT font) { release_mem((FONT_TRY)(font->private)); return 0; } Private void release_mem(FONT_TRY font_try) { if (font_try != NULL){ vf_free(font_try->font_name); if (font_try->fid >= 0) VF_CloseFont(font_try->fid); vf_sexp_free1(&font_try->props); vf_free(font_try); } } Private int try_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { FONT_TRY font_try; if (metric == NULL){ fprintf(stderr, "VFlib internal error: in try_get_metric1()\n"); abort(); } if ((font_try = (FONT_TRY)font->private) == NULL){ fprintf(stderr, "VFlib internal error in try class.\n"); abort(); } if (font_try->fid < 0){ vf_error = VF_ERR_NO_GLYPH; return -1; } VF_GetMetric1(font_try->fid, code_point, metric, mag_x, mag_y); return 0; } Private int try_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { FONT_TRY font_try; if ((font_try = (FONT_TRY)font->private) == NULL){ fprintf(stderr, "VFlib internal error in try class.\n"); abort(); } if (font_try->fid < 0){ vf_error = VF_ERR_NO_GLYPH; return -1; } return VF_GetFontBoundingBox1(font_try->fid, mag_x, mag_y, w_p, h_p, xoff_p, yoff_p); } Private VF_BITMAP try_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_TRY font_try; if ((font_try = (FONT_TRY)font->private) == NULL){ fprintf(stderr, "VFlib internal error in try class.\n"); abort(); } if (font_try->fid < 0){ vf_error = VF_ERR_NO_GLYPH; return NULL; } return VF_GetBitmap1(font_try->fid, code_point, mag_x, mag_y); } Private VF_OUTLINE try_get_outline(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_TRY font_try; if ((font_try = (FONT_TRY)font->private) == NULL){ fprintf(stderr, "VFlib internal error in try class.\n"); abort(); } if (font_try->fid < 0){ vf_error = VF_ERR_NO_GLYPH; return NULL; } return VF_GetOutline(font_try->fid, code_point, mag_x, mag_y); } Private int try_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { FONT_TRY font_try; if ((font_try = (FONT_TRY)font->private) == NULL){ fprintf(stderr, "VFlib internal error in try class.\n"); abort(); } if (font_try->fid < 0){ vf_error = VF_ERR_NO_GLYPH; return -1; } VF_GetMetric2(font_try->fid, code_point, metric, mag_x, mag_y); return 0; } Private int try_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { FONT_TRY font_try; if ((font_try = (FONT_TRY)font->private) == NULL){ fprintf(stderr, "VFlib internal error in try class.\n"); abort(); } if (font_try->fid < 0){ vf_error = VF_ERR_NO_GLYPH; return -1; } return VF_GetFontBoundingBox2(font_try->fid, mag_x, mag_y, w_p, h_p, xoff_p, yoff_p); } Private VF_BITMAP try_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_TRY font_try; if ((font_try = (FONT_TRY)font->private) == NULL){ fprintf(stderr, "VFlib internal error in try class.\n"); abort(); } if (font_try->fid < 0){ vf_error = VF_ERR_NO_GLYPH; return NULL; } return VF_GetBitmap2(font_try->fid, code_point, mag_x, mag_y); } Private char* try_get_font_prop(VF_FONT font, char *prop_name) { FONT_TRY font_try; if ((font_try = (FONT_TRY)font->private) == NULL){ fprintf(stderr, "VFlib internal error in try class.\n"); abort(); } if (font_try->fid < 0){ vf_error = VF_ERR_NO_GLYPH; return NULL; } return VF_GetFontProp(font_try->fid, prop_name); } Private int try_query_font_type(VF_FONT font, long code_point) { FONT_TRY font_try; if ((font_try = (FONT_TRY)font->private) == NULL){ fprintf(stderr, "VFlib internal error in try class.\n"); abort(); } if (font_try->fid < 0){ vf_error = VF_ERR_NO_GLYPH; return -1; } return VF_QueryFontType(font_try->fid, code_point); } Private int debug_on(char type) { char *p; if (default_debug_mode == NULL) return FALSE; if ((p = vf_sexp_get_cstring(default_debug_mode)) == NULL) return FALSE; while (*p != '\0'){ if (*p == type) return TRUE; p++; } while (*p != '\0'){ if (*p == '*') return TRUE; p++; } return TRUE; } /*EOF*/ vflib3-3.6.14.dfsg/src/try.h0000644000175000017500000000204406541442401015042 0ustar mohuramohura/* * try.h - a header file for drv_try.c * by Hirotsugu Kakugawa * * 16 Jul 1998 First implementation */ /* * Copyright (C) 1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define FONTCLASS_NAME_TRY "try" #define VF_CAPE_TRY_FONT_LIST "font-list" /*EOF*/ vflib3-3.6.14.dfsg/src/vflpp.c0000644000175000017500000000424410225352736015357 0ustar mohuramohura/* * vflpp.c - prettyprint a vflibcap file * by Hirotsugu Kakugawa * * 22 Jul 1998 First implementation */ /* * Copyright (C) 1998 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include #include #if HAVE_STDARG_H #include #else #include #endif #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "sexp.h" #define PROG_NAME "vflpp" void usage(void); int main(int argc, char **argv) { FILE *fp_in; int need_close; SEXP s; /* get input stream */ need_close = 0; if (argc >= 2){ if ((fp_in = fopen(argv[1], FOPEN_RD_MODE_TEXT)) == NULL){ fprintf(stderr, "Cannot open: %s\n", argv[1]); exit(1); } need_close = 1; } else { fp_in = stdin; } /* prettyprint */ while ((s = vf_sexp_read(fp_in)) != NULL){ if ( vf_sexp_listp(s) && (vf_sexp_length(s) >= 2) && (vf_sexp_stringp(vf_sexp_car(s))) && (vf_sexp_stringp(vf_sexp_cadr(s))) && ( (strcmp(vf_sexp_get_cstring(vf_sexp_car(s)), VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION) == 0) || (strcmp(vf_sexp_get_cstring(vf_sexp_car(s)), VF_CAPE_VFLIBCAP_FONT_ENTRY_DEFINITION) == 0) || (strcmp(vf_sexp_get_cstring(vf_sexp_car(s)), VF_CAPE_VFLIBCAP_MACRO_DEFINITION) == 0))){ vf_sexp_pp_entry(s); } else { vf_sexp_pp(s); } printf("\n"); vf_sexp_free1(&s); } /* close input stream */ if (need_close == 1){ fclose(fp_in); } return 0; } vflib3-3.6.14.dfsg/src/vfldisol.c0000644000175000017500000001512110225352565016046 0ustar mohuramohura/* * vfldisol.c - Disassemble Vector Font Data * by Hirotsugu Kakugawa * * 31 Dec 1993 * 20 Jan 1994 New output format * 10 Jan 1997 for VFlib version 3 * 22 Mar 1997 Upgraded for VFlib 3.2 * */ /* * Copyright (C) 1993-1997 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include #include #if HAVE_STRING_H # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_STDARG_H #include #else #include #endif #include "VFlib-3_6.h" #define CommentLine printf void usage(void); void DisVFData(VF_OUTLINE,int); void EmptyLine(void); void PrintCCode(long); void PrintToken(void); void PrintHeaderI(char*,long); void PrintHeaderR(char*,long); void Print(int*,char*); void Newline(void); void PrintEnd(void); void PrintXY(int,int); int main(int argc, char **argv) { int Fd, i; int Ch, HexDump; long CharCode; double MagX, MagY, Point, Dpi; char *FontName, *Vfcap; VF_OUTLINE VFData; Vfcap = NULL; HexDump = 0; Point = -1; MagX = 1; MagY = 1; Dpi = -1; FontName = NULL; Ch = argc + 2001; for (i = 1; i < argc; i++){ if (argv[i][0] == '-'){ switch (argv[i][1]){ case 'v': Vfcap = argv[++i]; break; case 'x': HexDump = 1; break; case 'd': Dpi = atof(argv[++i]); break; case 'p': Point = atof(argv[++i]); break; case 'm': if (strcmp(argv[i], "-mx") == 0) MagX = atof(argv[++i]); else if (strcmp(argv[i], "-my") == 0) MagY = atof(argv[++i]); else MagX = MagY = atof(argv[++i]); break; case 'h': default: usage(); } } else { FontName = argv[i++]; Ch = i; break; } } if ((FontName == NULL) || (Ch >= argc)) usage(); /* no char codes */ /* Init VFlib */ if (VF_Init(Vfcap, NULL) < 0){ fprintf(stderr, "VFlib init error.\n"); exit(1); } /* OPEN THE FONT */ if ((Fd = VF_OpenFont1(FontName, Dpi, Dpi, Point, MagX, MagY)) < 0){ fprintf(stderr, "Open Error: %s\n", FontName); fprintf(stderr, "VFlib error code: %d\n", vf_error); exit(1); } printf(";; OUTLINES OF FONT ENTRY %s\n\n", FontName); while (Ch < argc){ sscanf(argv[Ch], "%li", &CharCode); Ch++; /* GET VECTOR FONT DATA */ if ((VFData = VF_GetOutline(Fd, CharCode, 1, 1)) == NULL){ printf(";; CAN'T GET OUTLINE FOR CHARACTER 0x%lX OF FONT %s\n", CharCode, FontName); printf(";; VFlib error code: %d\n", vf_error); continue; } PrintCCode(CharCode); if (HexDump == 0){ /* DISASSEMBLE IT */ DisVFData(VFData, Fd); } else { /* Hex Dump */ for (i = 0; ; i++){ printf("%04x %08lx\n", i, (long)VFData[i]); if ((i >= VF_OL_OUTLINE_HEADER_SIZE_TYPE0) && (VFData[i] == 0)) break; } } /* RELEASE OUTLINE */ VF_FreeOutline(VFData); } printf("END\n"); /* CLOSE THE FONT */ VF_CloseFont(Fd); return 0; } void usage() { printf("vfldisol --- disassemble outline data\n"); printf("Usage vfldisol [options] font code1 code2 ...\n"); printf("Options: \n"); printf(" -v VFLIBCAP : vflibcap absolute path.\n"); printf(" -d DPI : device resolution in dpi.\n"); printf(" -p POINT : character point size.\n"); printf(" -x : hex dump instead of disas.\n"); printf("Example 1: vfldisol -f timR24.pcf 0x67 0x68 0x69\n"); printf("Example 2: vfldisol -f goth 0x2124\n"); exit(0); } /* * Disassemble Vector Font Data returned by VF_GetOutline() */ void DisVFData(VF_OUTLINE vfdata, int fd) { long cmd, *ptr; unsigned int x, y; int m; if (vfdata == NULL) return; PrintHeaderI("FORMAT ", vfdata[VF_OL_HEADER_INDEX_HEADER_TYPE]); PrintHeaderI("DATA_SIZE ", vfdata[VF_OL_HEADER_INDEX_DATA_SIZE]); PrintHeaderR("DPI_X ", vfdata[VF_OL_HEADER_INDEX_DPI_X]); PrintHeaderR("DPI_Y ", vfdata[VF_OL_HEADER_INDEX_DPI_Y]); PrintHeaderR("POINT_SIZE", vfdata[VF_OL_HEADER_INDEX_POINT_SIZE]); PrintHeaderI("EM ", vfdata[VF_OL_HEADER_INDEX_EM]); PrintHeaderI("MAX_X ", vfdata[VF_OL_HEADER_INDEX_MAX_X]); PrintHeaderI("MAX_Y ", vfdata[VF_OL_HEADER_INDEX_MAX_Y]); PrintHeaderI("REF_X ", vfdata[VF_OL_HEADER_INDEX_REF_X]); PrintHeaderI("REF_Y ", vfdata[VF_OL_HEADER_INDEX_REF_Y]); PrintHeaderI("MV_X ", vfdata[VF_OL_HEADER_INDEX_MV_X]); PrintHeaderI("MV_Y ", vfdata[VF_OL_HEADER_INDEX_MV_Y]); ptr = &vfdata[VF_OL_OUTLINE_HEADER_SIZE_TYPE0]; do { m = 0; cmd = *ptr; ptr++; if (cmd == 0L){ PrintEnd(); EmptyLine(); } else if ((cmd & VF_OL_INSTR_TOKEN) != 0){ PrintToken(); if ((cmd & VF_OL_INSTR_CHAR) != 0) Print(&m, "CH"); if ((cmd & VF_OL_INSTR_CWCURV) != 0) Print(&m, "C1"); if ((cmd & VF_OL_INSTR_CCWCURV) != 0) Print(&m, "C2"); if ((cmd & VF_OL_INSTR_LINE) != 0) Print(&m, "LI"); if ((cmd & VF_OL_INSTR_ARC) != 0) Print(&m, "AR"); if ((cmd & VF_OL_INSTR_BEZ) != 0) Print(&m, "BE"); Newline(); } else { x = VF_OL_GET_X(cmd); y = VF_OL_GET_Y(cmd); PrintXY(x, y); } } while (cmd != 0L); } void EmptyLine(void) { printf("\n"); } void PrintCCode(long n) { printf("CHAR "); printf("0x%lX\n", (long)n); } void PrintToken(void) { printf(" "); printf("TOKEN "); } void PrintHeaderI(char *label, long val) { printf(" "); printf("%s %ld\n", label, val); } void PrintHeaderR(char *label, long val) { printf(" "); printf("%s %f\n", label, (double)VF_OL_HEADER_DECODE(val)); } void Print(int *mp, char *str) { if (*mp == 0) printf("["); if (*mp > 0) printf(","); printf("%s", str); (*mp)++; } void Newline(void) { printf("]\n"); } void PrintEnd(void) { printf(" "); printf("END \n"); } void PrintXY(int x, int y) { printf(" "); printf("XY %d %d\n", x,y); } /*EOF*/ vflib3-3.6.14.dfsg/src/t1.h0000644000175000017500000000317407307031316014555 0ustar mohuramohura/* * t1.h - a heder file for Type 1 driver with t1lib. * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1998-2001 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_T1_H__ #define __VFLIB_T1_H__ #define FONTCLASS_NAME "type1" #define VF_CAPE_TYPE1_LOG_LEVEL "log-level" #define VF_CAPE_TYPE1_AFM_DIRECTORIES "afm-directories" #define VF_CAPE_TYPE1_ENC_DIRECTORIES "encoding-vector-directories" #define VF_CAPE_TYPE1_ENC_VECT "encoding-vector" #define VF_CAPE_TYPE1_TFM "tfm" #define TTF_ENV_FONT_DIR "VFLIB_TYPE1_FONTS" #ifndef DEFAULT_EXTENSIONS # define DEFAULT_EXTENSIONS ".pfa, .pfb" #endif #define TYPE1_DEFAULT_DPI 72 #define TYPE1_POINTS_PER_INCH 72 #define DEFAULT_POINT_SIZE 12.0 #define DEFAULT_PIXEL_SIZE 24 #endif /*__VFLIB_T1_H__*/ /*EOF*/ vflib3-3.6.14.dfsg/src/drv_ini.c0000644000175000017500000000626407023370032015655 0ustar mohuramohura/* * drv_ini.c - Call initialization functions of font drivers * by Hirotsugu Kakugawa * * 21 Jul 1998 * */ /* * Copyright (C) 1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "with.h" extern int VF_Init_Driver_BDF(void); extern int VF_Init_Driver_PCF(void); extern int VF_Init_Driver_HBF(void); extern int VF_Init_Driver_ZEIT(void); extern int VF_Init_Driver_JG(void); extern int VF_Init_Driver_EKanji(void); extern int VF_Init_Driver_Type1(void); extern int VF_Init_Driver_TrueType(void); extern int VF_Init_Driver_TeX(void); extern int VF_Init_Driver_GF(void); extern int VF_Init_Driver_PK(void); extern int VF_Init_Driver_TFM(void); extern int VF_Init_Driver_VF(void); extern int VF_Init_Driver_JTEX(void); extern int VF_Init_Driver_Try(void); extern int VF_Init_Driver_Comic(void); extern int VF_Init_Driver_Mojikmap(void); struct drvtbl { int (*func)(); char *name; }; struct drvtbl installed_drivers[] = { #ifdef WITH_BDF { VF_Init_Driver_BDF, "BDF" }, #endif #ifdef WITH_PCF { VF_Init_Driver_PCF, "PCF" }, #endif #ifdef WITH_HBF { VF_Init_Driver_HBF, "HBF" }, #endif #ifdef WITH_TRUETYPE { VF_Init_Driver_TrueType, "TrueType" }, #endif #ifdef WITH_TYPE1 { VF_Init_Driver_Type1, "Type1" }, #endif #ifdef WITH_ZEIT { VF_Init_Driver_ZEIT, "Syotai Kurabu (Zeit)" }, #endif #ifdef WITH_JG { VF_Init_Driver_JG, "JG" }, #endif #ifdef WITH_EKANJI { VF_Init_Driver_EKanji, "EKanji" }, #endif #ifdef WITH_TEXFONTS { VF_Init_Driver_TeX, "TeX Font Mapper" }, #ifdef WITH_GF { VF_Init_Driver_GF, "TeX GF" }, #endif #ifdef WITH_PK { VF_Init_Driver_PK, "TeX PK" }, #endif #ifdef WITH_TFM { VF_Init_Driver_TFM, "TeX TFM" }, #endif #ifdef WITH_VF { VF_Init_Driver_VF, "TeX Virtual Font" }, #endif #ifdef WITH_JTEX { VF_Init_Driver_JTEX, "ASCII Japanese TeX Kanji" }, #endif #endif /*WITH_TEXFONTS*/ #ifdef WITH_TRY { VF_Init_Driver_Try, "Try" }, #endif #ifdef WITH_COMIC { VF_Init_Driver_Comic, "Japanese Comic Composer" }, #endif #ifdef WITH_MOJIKMAP { VF_Init_Driver_Mojikmap, "Mojikyo Mapper" }, #endif { NULL, NULL } }; Glocal int vf_drv_init(void) { int i; for (i = 0; installed_drivers[i].func != NULL; i++){ if ((*installed_drivers[i].func)() < 0){ fprintf(stderr, "VFlib warning: Failed to initialize a font driver: %s\n", installed_drivers[i].name); } } return 0; } vflib3-3.6.14.dfsg/src/vfldrvs.c0000644000175000017500000000313310264672532015714 0ustar mohuramohura/* * vfldrvs.c - print a list of installed font drivers * by Hirotsugu Kakugawa * * 22 Jul 1998 * */ /* * Copyright (C) 1998 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* * Usage: vfldrvs */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #if defined(HAVE_STRING_H) || defined(STDC_HEADERS) # include #else # include #endif #include "VFlib-3_6.h" int main(int argc, char **argv) { int i; char *vfcap, **drv_list; vfcap = NULL; --argc; argv++; while (argc > 0){ if ((argc >= 2) && (strcmp(argv[0], "-v") == 0)){ --argc; argv++; vfcap = argv[0]; --argc; argv++; } else { break; } } if ((VF_Init(vfcap, NULL) < 0) || ((drv_list = VF_FontDriverList()) == NULL)) exit(1); for (i = 0; drv_list[i] != NULL; i++) printf("%s\n", drv_list[i]); return 0; } vflib3-3.6.14.dfsg/src/vflbanner.c0000644000175000017500000000652710264672557016224 0ustar mohuramohura/* * vflbanner.c - a banner by VFlib * by Hirotsugu Kakugawa * * */ /* * Copyright (C) 1998 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #if defined(HAVE_STRING_H) || defined(STDC_HEADERS) # include #else # include #endif #include "VFlib-3_6.h" #define DEFAULT_FONT "timR18.pcf" char *vflibcap; char *fontname; double mag; void usage(void); void vflbanner(FILE *fp); int main(int argc, char **argv) { vflibcap = NULL; fontname = DEFAULT_FONT; mag = 1.0; --argc; argv++; while (argc > 0){ if ((argc >= 1) && ((strcmp(argv[0], "-h") == 0) || (strcmp(argv[0], "--help") == 0))){ usage(); exit(0); } else if ((argc >= 2) && (strcmp(argv[0], "-v") == 0)){ --argc; argv++; vflibcap = argv[0]; --argc; argv++; } else if ((argc >= 2) && (strcmp(argv[0], "-f") == 0)){ --argc; argv++; fontname = argv[0]; --argc; argv++; } else if ((argc >= 2) && (strcmp(argv[0], "-m") == 0)){ --argc; argv++; mag = atof(argv[0]); --argc; argv++; } else { break; } } vflbanner(stdin); return 0; } void usage(void) { printf("vflbanner - a banner program using VFlib\n"); printf("Usage: vflbanner [-v vflibcap] [-m mag] [-f fontname]\n"); printf("This program reads a text from standard input. It supports\n"); printf("1-bit encoded font only. Thus, `ctextpgm' is better than this.\n"); } void vflbanner(FILE *fp) { int fid; int ch; int pos_x, pos_y; VF_BITMAP bm, page_bm; struct vf_s_bitmaplist PageBuff; if (VF_Init(vflibcap, NULL) < 0){ printf("VFlib initialization error"); switch (vf_error){ case VF_ERR_INTERNAL: printf(" - Internal error.\n"); break; case VF_ERR_NO_MEMORY: printf(" - Server runs out of memory.\n"); break; case VF_ERR_NO_VFLIBCAP: printf(" - No vflibcap.\n"); break; default: printf(" - Error code %d\n", vf_error); break; } fflush(stdout); exit(1); } if ((fid = VF_OpenFont1(fontname, -1, -1, -1, mag, mag)) < 0) return; VF_BitmapListInit(&PageBuff); pos_x = pos_y = 0; while ((ch = getc(fp)) != EOF){ if (iscntrl(ch)) continue; if (!isprint(ch)) ch = ' '; if ((bm = VF_GetBitmap1(fid, (long)ch, 1, 1)) == NULL) continue; VF_BitmapListPut(&PageBuff, bm, pos_x, pos_y); pos_x = pos_x + bm->mv_x; } page_bm = VF_BitmapListCompose(&PageBuff); VF_DumpBitmap(page_bm); VF_BitmapListFinish(&PageBuff); VF_FreeBitmap(page_bm); VF_CloseFont(fid); } /*EOF*/ vflib3-3.6.14.dfsg/src/image.c0000644000175000017500000004516607324451613015322 0ustar mohuramohura/* image.c * --- Print bitmap in several graphics formats * * by Hirotsugu Kakugawa (h.kakugawa@computer.org) * */ /* * Copyright (C) 1996, 1997, 1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include "config.h" #include "VFlib-3_6.h" #include "VFsys.h" #include "bitmap.h" #include "consts.h" Private void culc_margins(int bm_w, int bm_h, int image_width, int image_height, int position_x, int position_y, int *margin_l, int *margin_r, int *margin_t, int *margin_b); Private unsigned char bits[] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; /** ** VF_ImageOut_PBMAscii() ** --- PBM ASCII **/ Public int VF_ImageOut_PBMAscii(VF_BITMAP bm, FILE *fp, int image_width, int image_height, int position_x, int position_y, int margin_l, int margin_r, int margin_t, int margin_b, int reverse, int shrink, char *prog, char *title) { int x, y, n; unsigned char w, *p; char pix0, pix1; #define PBM_ASCII_BITS_PER_LINE 25 culc_margins(bm->bbx_width, bm->bbx_height, image_width, image_height, position_x, position_y, &margin_l, &margin_r, &margin_t, &margin_b); if (shrink <= 0) shrink = 1; if (reverse == 0){ pix0 = '0'; pix1 = '1'; } else { pix0 = '1'; pix1 = '0'; } fprintf(fp, "P1\n"); fprintf(fp, "%d %d\n", margin_l + bm->bbx_width + margin_r, margin_t + bm->bbx_height + margin_b); if (prog == NULL) prog = "VFlib"; fprintf(fp, "# Created by %s\n", prog); fprintf(fp, "# %s\n", title); n = 0; p = bm->bitmap; /* top margin */ for (y = 0; y < margin_t; y++){ for (x = 0; x < margin_l + bm->bbx_width + margin_r; x++){ fprintf(fp, "%c ", pix0); if (++n >= PBM_ASCII_BITS_PER_LINE){ n = 0; fprintf(fp, "\n"); } } } for (y = 0; y < bm->bbx_height; y++){ /* left margin */ for (x = 0; x < margin_l; x++) fprintf(fp, "%c ", pix0); /* bitmap */ for (x = 0; x < bm->bbx_width; x++){ w = p[x/8]; fprintf(fp, "%c ", ((w&bits[x%8])==0)?pix0:pix1); if (++n >= PBM_ASCII_BITS_PER_LINE){ n = 0; fprintf(fp, "\n"); } } /* right margin */ for (x = 0; x < margin_r; x++){ fprintf(fp, "%c ", pix0); if (++n >= PBM_ASCII_BITS_PER_LINE){ n = 0; fprintf(fp, "\n"); } } p = p + bm->raster; } /* bottom margin */ for (y = 0; y < margin_b; y++){ for (x = 0; x < margin_l + bm->bbx_width + margin_r; x++){ fprintf(fp, "%c ", pix0); if (++n >= PBM_ASCII_BITS_PER_LINE){ n = 0; fprintf(fp, "\n"); } } } fprintf(fp, "\n"); return 0; } /** ** VF_ImageOut_PGMAscii() ** --- PGM ASCII **/ Public int VF_ImageOut_PGMAscii(VF_BITMAP bm, FILE *fp, int image_width, int image_height, int position_x, int position_y, int margin_l, int margin_r, int margin_t, int margin_b, int reverse, int shrink, char *prog, char *title) { int x, y, s, n; unsigned char *p; int *buff; int w, h, y2, max_val; #define PGM_ASCII_BITS_PER_LINE 15 #define PGM_BIT(x) (reverse==1) ? ((255*(x))/max_val) \ : (255 - ((255*(x))/max_val)) if (shrink <= 0) shrink = 1; max_val = shrink * shrink; w = (bm->bbx_width + shrink - 1) / shrink; h = (bm->bbx_height + shrink - 1) / shrink; if ((buff = calloc(w, sizeof(int))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } culc_margins(w, h, image_width, image_height, position_x, position_y, &margin_l, &margin_r, &margin_t, &margin_b); fprintf(fp, "P2\n"); if (prog == NULL) prog = "VFlib"; fprintf(fp, "# Created by %s\n", prog); fprintf(fp, "# %s\n", title); fprintf(fp, "%d %d\n", margin_l + w + margin_l, margin_t + h + margin_b); fprintf(fp, "%d\n", 255); n = 0; /* top margin */ for (y = 0; y < margin_t; y++){ for (x = 0; x < margin_l + w + margin_r; x++){ fprintf(fp, "%d ", PGM_BIT(0)); if (++n >= PGM_ASCII_BITS_PER_LINE){ n = 0; fprintf(fp, "\n"); } } } for (y = 0; y < h; y++){ /* left margin */ for (x = 0; x < margin_l; x++) fprintf(fp, "%d ", PGM_BIT(0)); /* make graymap */ for (x = 0; x < w; x++) buff[x] = 0; p = &bm->bitmap[y * shrink * bm->raster]; s = ((bm->bbx_height/shrink) == y) ? (bm->bbx_height % shrink) : shrink; for (y2 = 0; y2 < s; y2++){ for (x = 0; x < bm->bbx_width; x++){ if ((p[x/8] & bits[x%8]) != 0) buff[x/shrink] += 1; } p += bm->raster; } /* output graymap */ for (x = 0; x < w; x++){ fprintf(fp, "%d ", PGM_BIT(buff[x])); if (++n >= PGM_ASCII_BITS_PER_LINE){ n = 0; fprintf(fp, "\n"); } } /* right margin */ for (x = 0; x < margin_r; x++){ fprintf(fp, "%d ", PGM_BIT(0)); if (++n >= PGM_ASCII_BITS_PER_LINE){ n = 0; fprintf(fp, "\n"); } } } /* bottom margin */ for (y = 0; y < margin_b; y++){ for (x = 0; x < margin_l + w + margin_r; x++){ fprintf(fp, "%d ", PGM_BIT(0)); if (++n >= PGM_ASCII_BITS_PER_LINE){ n = 0; fprintf(fp, "\n"); } } } fprintf(fp, "\n"); vf_free(buff); return 0; } /** ** VF_ImageOut_PGMRaw() ** --- PGM RAW **/ Public int VF_ImageOut_PGMRaw(VF_BITMAP bm, FILE *fp, int image_width, int image_height, int position_x, int position_y, int margin_l, int margin_r, int margin_t, int margin_b, int reverse, int shrink, char *prog, char *title) { int x, y; unsigned char *p; int *buff; int w, h, s, y2, max_val; #define PGM_BIT(x) (reverse==1) ? ((255*(x))/max_val) \ : (255 - ((255*(x))/max_val)) if (shrink <= 0) shrink = 1; max_val = shrink * shrink; w = (bm->bbx_width + shrink - 1) / shrink; h = (bm->bbx_height + shrink - 1) / shrink; if ((buff = calloc(w, sizeof(int))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } culc_margins(w, h, image_width, image_height, position_x, position_y, &margin_l, &margin_r, &margin_t, &margin_b); fprintf(fp, "P5\n"); fprintf(fp, "# Created by %s\n", prog); fprintf(fp, "# %s\n", title); fprintf(fp, "%d %d\n", margin_l + w + margin_r, margin_t + h + margin_b); fprintf(fp, "%d\n", 255); /* top margin */ for (y = 0; y < margin_t; y++){ for (x = 0; x < margin_l + w + margin_r; x++){ fprintf(fp, "%c", (unsigned char)PGM_BIT(0)); } } for (y = 0; y < h; y++){ /* left margin */ for (x = 0; x < margin_l; x++) fprintf(fp, "%c", (unsigned char)PGM_BIT(0)); /* make graymap */ for (x = 0; x < w; x++) buff[x] = 0; p = &bm->bitmap[y * shrink * bm->raster]; s = ((bm->bbx_height/shrink) == y) ? (bm->bbx_height % shrink) : shrink; for (y2 = 0; y2 < s; y2++){ for (x = 0; x < bm->bbx_width; x++){ if ((p[x/8] & bits[x%8]) != 0) buff[x/shrink] += 1; } p += bm->raster; } /* output graymap */ for (x = 0; x < w; x++) fprintf(fp, "%c", (unsigned char)PGM_BIT(buff[x])); /* right margin */ for (x = 0; x < margin_r; x++) fprintf(fp, "%c", (unsigned char)PGM_BIT(0)); } /* bottom margin */ for (y = 0; y < margin_b; y++){ for (x = 0; x < margin_l + w + margin_r; x++) fprintf(fp, "%c", (unsigned char)PGM_BIT(0)); } vf_free(buff); return 0; } /** ** VF_ImageOut_EPS() ** --- EPS **/ Public int VF_ImageOut_EPS(VF_BITMAP bm, FILE *fp, int image_width, int image_height, int position_x, int position_y, int margin_l, int margin_r, int margin_t, int margin_b, int reverse, int shrink, char *prog, char *title, double ptsize, int pixsize) { int x, y; unsigned char *p; int *buff; int w, h, y2, s, max_val; int eps_w, eps_h, bbxx, bbxy, n; #define EPS_SIZE(s) \ ((ptsize <= 0) ? (12.0*(s)*shrink/16.0) \ : (ptsize*(s)*shrink/(double)pixsize)) #define EPS_PIX(x) \ ((reverse==1) ? ((255*(x))/max_val) : (255 - ((255*(x))/max_val))) #define EPS_PUT_PIX(b) \ { fprintf(fp,"%02x",b); if (++n > 32){ fprintf(fp,"\n"); n=0;} } if (shrink < 0) shrink = 1; max_val = shrink * shrink; w = (bm->bbx_width + shrink - 1) / shrink; h = (bm->bbx_height + shrink - 1) / shrink; if ((buff = calloc(w, sizeof(int))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } culc_margins(w, h, image_width, image_height, position_x, position_y, &margin_l, &margin_r, &margin_t, &margin_b); eps_w = margin_l + w + margin_r; eps_h = margin_t + h + margin_b; bbxx = 72; bbxy = 792 - EPS_SIZE(h); fprintf(fp, "%%!PS-Adobe-2.0 EPSF-2.0\n"); fprintf(fp, "%%%%Creator: %s\n", prog); fprintf(fp, "%%%%Title: %s\n", title); fprintf(fp, "%%%%Pages: 1\n"); fprintf(fp, "%%%%BoundingBox: %.3f %.3f %.3f %.3f\n", (double)bbxx, (double)bbxy, bbxx+EPS_SIZE(eps_w), bbxy+EPS_SIZE(eps_h)); fprintf(fp, "%%%%EndComments\n"); fprintf(fp, "/readstr {\n"); fprintf(fp, " currentfile exch readhexstring pop\n"); fprintf(fp, "} bind def\n"); fprintf(fp, "/picstr %d string def\n", eps_w); fprintf(fp, "%%%%EndProlog\n"); fprintf(fp, "%%%%Page: 1 1\n"); fprintf(fp, "gsave\n"); fprintf(fp, "%d %d translate\n", bbxx, bbxy); fprintf(fp, "%.3f %.3f scale\n", EPS_SIZE(eps_w), EPS_SIZE(eps_h)); fprintf(fp, "%d %d 8\n", eps_w, eps_h); fprintf(fp, "[ %d 0 0 -%d 0 %d ]\n", eps_w, eps_h, eps_h); fprintf(fp, "{ picstr readstr }\n"); fprintf(fp, "bind image\n"); n = 0; /* top margin */ for (y = 0; y < margin_t; y++){ for (x = 0; x < margin_l + w + margin_r; x++) EPS_PUT_PIX(EPS_PIX(0)); } p = bm->bitmap; for (y = 0; y < h; y++){ /* left margin */ for (x = 0; x < margin_l; x++) EPS_PUT_PIX(EPS_PIX(0)); /* make graymap */ for (x = 0; x < w; x++) buff[x] = 0; s = ((bm->bbx_height/shrink) == y) ? (bm->bbx_height % shrink) : shrink; for (y2 = 0; y2 < s; y2++){ for (x = 0; x < bm->bbx_width; x++){ if ((p[x/8] & bits[x%8]) != 0) buff[x/shrink] += 1; } p += bm->raster; } /* output graymap */ for (x = 0; x < w; x++) EPS_PUT_PIX(EPS_PIX(buff[x])); /* right margin */ for (x = 0; x < margin_r; x++) EPS_PUT_PIX(EPS_PIX(0)); } /* bottom margin */ for (y = 0; y < margin_b; y++){ for (x = 0; x < margin_l + w + margin_r; x++) EPS_PUT_PIX(EPS_PIX(0)); } if (n != 0) fprintf(fp, "\n"); fprintf(fp, "grestore\n"); fprintf(fp, "showpage\n"); fprintf(fp, "%%%%Trailer\n"); vf_free(buff); return 0; } /** ** VF_ImageOut_ASCIIArt() ** --- ASCII Art (Horizontal) **/ Public int VF_ImageOut_ASCIIArt(VF_BITMAP bm, FILE *fp, int image_width, int image_height, int position_x, int position_y, int margin_l, int margin_r, int margin_t, int margin_b, int reverse, int shrink) { int x, y, w, h, y2, s, max_val, j; int *buff; unsigned char *p; char *pixs; char *chspec = " ****"; int speclen; if (shrink < 0) shrink = 1; max_val = shrink * shrink; w = (bm->bbx_width + shrink - 1) / shrink; h = (bm->bbx_height + shrink - 1) / shrink; if ((buff = (int*)calloc(w, sizeof(int))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } culc_margins(w, h, image_width, image_height, position_x, position_y, &margin_l, &margin_r, &margin_t, &margin_b); if ((pixs = (char*)malloc(max_val+1)) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } speclen = strlen(chspec); if (reverse == 0){ for (j = 0; j <= max_val; j++) pixs[j] = chspec[(speclen * j) / (max_val+1)]; pixs[0] = chspec[0]; } else { for (j = 0; j <= max_val; j++) pixs[max_val - j] = chspec[(speclen * j) / (max_val+1)]; pixs[max_val] = chspec[0]; } p = bm->bitmap; /* top margin */ for (y = 0; y < margin_t; y++){ for (x = 0; x < margin_l + w + margin_r; x++) fprintf(fp, "%c", pixs[0]); fprintf(fp, "\n"); } for (y = 0; y < h; y++){ /* left margin */ for (x = 0; x < margin_l; x++) fprintf(fp, "%c", pixs[0]); /* make graymap */ for (x = 0; x < w; x++) buff[x] = 0; p = &bm->bitmap[y * shrink * bm->raster]; s = ((bm->bbx_height/shrink) == y) ? (bm->bbx_height % shrink) : shrink; for (y2 = 0; y2 < s; y2++){ for (x = 0; x < bm->bbx_width; x++){ if ((p[x/8] & bits[x%8]) != 0) buff[x/shrink] += 1; } p += bm->raster; } /* output bitmap */ for (x = 0; x < w; x++) fprintf(fp, "%c", pixs[buff[x]]); /* right margin */ for (x = 0; x < margin_r; x++) fprintf(fp, "%c", pixs[0]); fprintf(fp, "\n"); } /* bottom margin */ for (y = 0; y < margin_b; y++){ for (x = 0; x < margin_l + w + margin_r; x++) fprintf(fp, "%c", pixs[0]); fprintf(fp, "\n"); } vf_free(buff); vf_free(pixs); return 0; } /** ** VF_ImageOut_ASCIIArtV() ** --- ASCII Art (Vertical) **/ Public int VF_ImageOut_ASCIIArtV(VF_BITMAP bm, FILE *fp, int image_width, int image_height, int position_x, int position_y, int margin_l, int margin_r, int margin_t, int margin_b, int reverse, int shrink) { int x, y, w, h, x2, s, max_val, j; int *buff; unsigned char *p; char *pixs; char *chspec = " ****"; int speclen; if (shrink < 0) shrink = 1; max_val = shrink * shrink; w = (bm->bbx_width + shrink - 1) / shrink; h = (bm->bbx_height + shrink - 1) / shrink; if ((buff = (int*)calloc(h, sizeof(int))) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } culc_margins(w, h, image_width, image_height, position_x, position_y, &margin_l, &margin_r, &margin_t, &margin_b); if ((pixs = (char*)malloc(max_val+1)) == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } speclen = strlen(chspec); if (reverse == 0){ for (j = 0; j <= max_val; j++) pixs[j] = chspec[(speclen * j) / (max_val+1)]; pixs[0] = chspec[0]; } else { for (j = 0; j <= max_val; j++) pixs[max_val - j] = chspec[(speclen * j) / (max_val+1)]; pixs[max_val] = chspec[0]; } /* left margin */ for (x = 0; x < margin_l; x++){ for (y = margin_b-1; y >= 0; --y) fprintf(fp, "%c", pixs[0]); for (y = h-1; y >= 0; --y) fprintf(fp, "%c", pixs[0]); for (y = margin_t-1; y >= 0; --y) fprintf(fp, "%c", pixs[0]); fprintf(fp, "\n"); } /* body */ for (x = 0; x < w; x++){ /* bottom margin */ for (y = margin_b; y > 0; --y) fprintf(fp, "%c", pixs[0]); /* make graymap */ for (y = 0; y < h; y++) buff[y] = 0; p = bm->bitmap; for (y = 0; y < bm->bbx_height; y++){ s = ((bm->bbx_width/shrink) == x) ? (bm->bbx_width % shrink) : shrink; for (x2 = 0; x2 < s; x2++){ if ((p[(x * shrink + x2)/8] & bits[(x * shrink + x2)%8]) != 0) buff[y/shrink] += 1; } p += bm->raster; } /* output bitmap */ for (y = h-1; y >= 0; --y) fprintf(fp, "%c", pixs[buff[y]]); /* top margin */ for (y = margin_t; y > 0; --y) fprintf(fp, "%c", pixs[0]); fprintf(fp, "\n"); } /* right margin */ for (x = 0; x < margin_r; x++){ for (y = margin_b-1; y >= 0; --y) fprintf(fp, "%c", pixs[0]); for (y = h-1; y >= 0; --y) fprintf(fp, "%c", pixs[0]); for (y = margin_t-1; y >= 0; --y) fprintf(fp, "%c", pixs[0]); fprintf(fp, "\n"); } vf_free(buff); vf_free(pixs); return 0; } Private void culc_margins(int bm_w, int bm_h, int image_width, int image_height, int position_x, int position_y, int *margin_l, int *margin_r, int *margin_t, int *margin_b) { /* top and bottom margins */ if (image_height < 0){ image_height = bm_h; if (*margin_t >= 0) image_height += *margin_t; else *margin_t = 0; if (*margin_b >= 0) image_height += *margin_b; else *margin_b = 0; } else /* image_height >= 0 */ { switch (position_y){ default: case VF_IMAGEOUT_POSITION_NONE: case VF_IMAGEOUT_POSITION_TOP: if (*margin_t < 0) *margin_t = 0; *margin_b = image_height - *margin_t - bm_h; break; case VF_IMAGEOUT_POSITION_BOTTOM: if (*margin_b < 0) *margin_b = image_height - bm_h; *margin_t = image_height - bm_h - *margin_b; break; case VF_IMAGEOUT_POSITION_CENTER: *margin_t = (image_height - bm_h) / 2; *margin_b = image_height - *margin_t - bm_h; break; } } if (*margin_t < 0){ fprintf(stderr, "VFlib Warning: page height is small. (>=%d)\n", *margin_b + bm_h); *margin_t = 0; } if (*margin_b < 0){ fprintf(stderr, "VFlib Warning: page height is small. (>=%d)\n", *margin_t + bm_h); *margin_b = 0; } /* left and right margins */ if (image_width < 0){ image_width = bm_w; if (*margin_l >= 0) image_width += *margin_l; else *margin_l = 0; if (*margin_r >= 0) image_width += *margin_r; else *margin_r = 0; } else /* image_width >= 0 */ { switch (position_x){ default: case VF_IMAGEOUT_POSITION_NONE: case VF_IMAGEOUT_POSITION_LEFT: if (*margin_l < 0) *margin_l = 0; *margin_r = image_width - *margin_l - bm_w; break; case VF_IMAGEOUT_POSITION_RIGHT: if (*margin_r < 0) *margin_r = image_width - bm_w; *margin_l = image_width - bm_w - *margin_l; break; case VF_IMAGEOUT_POSITION_CENTER: *margin_l = (image_width - bm_w) / 2; *margin_r = image_width - *margin_l - bm_w; break; } } if (*margin_l < 0){ fprintf(stderr, "VFlib Warning: page width is small. (>=%d)\n", *margin_r + bm_w); *margin_l = 0; } if (*margin_r < 0){ fprintf(stderr, "VFlib Warning: page width is small. (>=%d)\n", *margin_l + bm_w); *margin_r = 0; } } /*EOF*/ vflib3-3.6.14.dfsg/src/vflmkfdb0000755000175000017500000000550007023625470015601 0ustar mohuramohura#!/bin/sh # # vflmkfdb --- Make a database for VFlib font file path # # Copyright (C) 1998,1999 Hirotsugu Kakugawa. # All rights reserved. # # This file is part of the VFlib Library. This library is free # software; you can redistribute it and/or modify it under the terms of # the GNU Library General Public License as published by the Free # Software Foundation; either version 2 of the License, or (at your # option) any later version. This library is distributed in the hope # that it will be useful, but WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR # PURPOSE. See the GNU Library General Public License for more details. # You should have received a copy of the GNU Library General Public # License along with this library; if not, write to the Free Software # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. DBFILE="VFlib.fdb" DBFILE_BAK="VFlib.fdb.bak" FIND_OPT_ARG= TARGETS= STDOUT="NO" for arg in $* do case ${arg} in -h|--help) echo "vflmkfdb --- make a VFlib font path hint database" >&2 echo "Usage: vflmkfdb [options] [dir ...]" >&2 echo "Options: " >&2 echo " -s Follow symbolic links" >&2 echo " -z Hints are printed to standard output, not to a file" >&2 echo " -h Help" >&2 exit ;; -s) FIND_OPT_ARG="-L" ;; -z) STDOUT="YES" ;; -*) echo "vflmkdb: Unknown option: ${arg}" >&2 echo "Use -h option for help." >&2 exit ;; *) TARGETS="${TARGETS} ${arg}" ;; esac done if test "X-${TARGETS}" = "X-" ; then if test "X-${PWD:-unset}" != "X-unset" ; then TARGETS=${PWD} else TARGETS="." fi fi if test ${STDOUT} = "NO" ; then OUTPUT="${DBFILE}" else OUTPUT="/dev/tty" fi for t in ${TARGETS} do t=`echo ${t} | sed 's|^\(.*[^/]\)/*$|\1|'` echo Making ${t}/${DBFILE}... cd ${t} if test ${STDOUT} = "NO" -a -f ${DBFILE} ; then if test -f ${DBFILE_BAK} ; then rm -f ${DBFILE_BAK} fi mv ${DBFILE} ${DBFILE_BAK} fi find ${FIND_OPT_ARG} -d . -type f -print \ | ( while read F; do \ B=`basename $F`; P=`echo $F | sed 's|^\./||'`; case $B in ${DBFILE}|${DBFILE_BAK}|fonts.dir|fonts.alias|\ *\.tar|*\.tar\.*|*\.zip|*\.lzh|\ *\.txt|*\.TXT|*\.doc|*\.DOC|\ *\.ps|*\.ps\.*|*\.eps|*\.eps\.*|*\.pdf|*\.pdf\.*|*\.dvi|*\.dvi\.*|\ *\.html|*\.HTML|*\.shtml|*\.SHTML|*\.htm|*\.HTM|\ *\.gif|*\.GIF|*\.jpg|*\.JPG|*\.tiff|*\.TIFF|\ *\.exe|*\.EXE|*\.com|*\.COM|\ Makefile*|makefile*|Imakefile*|*README*|*Readme*|*readme*|\ *\.c|*\.h|*\.sh|*\.log|*\.LOG|\ *~|*\.bak|core|*\.core) continue ;; esac echo "$B $P"; \ done ) \ | sort \ > ${OUTPUT} done #EOF vflib3-3.6.14.dfsg/src/VFlib-3_6.h.in0000644000175000017500000003344507023330122016221 0ustar mohuramohura/* * VFlib-3_6.h - a header file for VFlib * by Hirotsugu Kakugawa * * 1 Mar 1997 VFlib 3.1.4 * 5 Mar 1997 VFlib 3.1.5 Added printing LGPL feature * 2 Apr 1997 Added support for Omega (WL) * 4 Aug 1997 VFlib 3.3 Changed API. * 9 Jan 1998 VFlib 3.4 Changed vflibcap file syntax. * 21 Aug 1998 VFlib 3.5 * 29 Jul 1999 VFlib 3.6 */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_VFLIB_H__ #define __VFLIB_VFLIB_H__ /** ** DATA TYPES **/ /* Bitmap */ struct vf_s_bitmap { int bbx_width, bbx_height; /* in PIXEL */ int off_x, off_y; /* in PIXEL */ int mv_x, mv_y; /* in PIXEL */ unsigned char *bitmap; int raster; }; typedef struct vf_s_bitmap *VF_BITMAP; /* Font metric */ struct vf_s_metric1 { double bbx_width, bbx_height; /* in Point */ double off_x, off_y; /* in Point */ double mv_x, mv_y; /* in Point */ }; typedef struct vf_s_metric1 *VF_METRIC1; struct vf_s_metric2 { int bbx_width, bbx_height; /* in Pixel */ int off_x, off_y; /* in Pixel */ int mv_x, mv_y; /* in Pixel */ }; typedef struct vf_s_metric2 *VF_METRIC2; /* Outline data */ typedef @ol_elem_type@ VF_OUTLINE_ELEM; typedef VF_OUTLINE_ELEM *VF_OUTLINE; /* Bitmap list */ struct vf_s_bitmaplist { long off_x, off_y; VF_BITMAP bitmap; struct vf_s_bitmaplist *next; }; typedef struct vf_s_bitmaplist *VF_BITMAPLIST; /* * Font type */ #define VF_FONT_TYPE_UNDEF 0 #define VF_FONT_TYPE_BITMAP 1 #define VF_FONT_TYPE_OUTLINE 2 /* * Font object */ typedef struct vf_s_font *VF_FONT; struct vf_s_font { /* font drivers must not modify the following */ char *font_name; int mode; double point_size, dpi_x, dpi_y; /* when mode==1 */ int pixel_size; /* when mode==2 */ double mag_x, mag_y; int font_class; int link_count; /* font drivers may modify the following */ int font_type; /* methods */ VF_BITMAP (*get_bitmap1)(VF_FONT,long,double,double); VF_BITMAP (*get_bitmap2)(VF_FONT,long,double,double); int (*get_metric1)(VF_FONT,long,VF_METRIC1,double,double); int (*get_metric2)(VF_FONT,long,VF_METRIC2,double,double); int (*get_fontbbx1)(VF_FONT,double,double, double*,double*,double*,double*); int (*get_fontbbx2)(VF_FONT,double,double,int*,int*,int*,int*); VF_OUTLINE (*get_outline)(VF_FONT,long,double,double); char* (*get_font_prop)(VF_FONT,char*); int (*query_font_type)(VF_FONT,long); int (*close)(VF_FONT); /* private data (font class dependent) */ void *private; }; /** ** VFLIB API **/ /* * Initialization of VFlib * VF_Init(char* vflibcap_path, char *variable_list) * * The second argument 'variable_list' is a string of a form * "KEY1=VALUE1, KEY2=VALUE2, ...". This is used for parameterized * vflibcap. */ extern int VF_Init(char *vflibcap_path, char *variable_list); /* * VFlib version number */ extern char *VF_GetVersion(void); /* * Clear errors in VFlib */ extern void VF_ClearError(void); /* * Open a font * Font ID (font_id) is returned */ /* high-resolution oriented */ extern int VF_OpenFont1(char *font_name, double dpi_x, double dpi_y, double point_size, double mag_x, double mag_y); /* low-resolution oriented */ extern int VF_OpenFont2(char *font_name, int pixel_size, double mag_x, double mag_y); /* * Close a font */ extern int VF_CloseFont(int font_id); /* * Get a bitmap of a character */ /* high-resolution oriented */ extern VF_BITMAP VF_GetBitmap1(int font_id, long code_point, double mag_x, double mag_y); /* low-resolution oriented */ extern VF_BITMAP VF_GetBitmap2(int font_id, long code_point, double mag_x, double mag_y); /* * Get a metric of a character */ /* high-resolution oriented */ extern VF_METRIC1 VF_GetMetric1(int font_id, long code_point, VF_METRIC1 metric1, double mag_x, double mag_y); /* low-resolution oriented */ extern VF_METRIC2 VF_GetMetric2(int font_id, long code_point, VF_METRIC2 metric2, double mag_x, double mag_y); /* * Get bounding-box of a font */ /* high-resolution oriented */ extern int VF_GetFontBoundingBox1(int font_id, double mag_x, double mag_y, double *width_p, double *height_p, double *xoff_p, double *yoff_p); /* low-resolution oriented */ extern int VF_GetFontBoundingBox2(int font_id, double mag_x, double mag_y, int *width_p, int *height_p, int *xoff_p, int *yoff_p); /* * Get an outline data of a character * (only for high-resolution oriented fonts) */ extern VF_OUTLINE VF_GetOutline(int font_id, long code_point, double mag_x, double mag_y); /* * Get font property (font class dependent) * (Caller must release the resulting string area.) */ extern char *VF_GetFontProp(int font_id, char *prop_name); /* * Get font type (bitmap or outline): */ extern int VF_QueryFontType(int font_id, long code_point); /* * Make a copy of a bitmap */ extern VF_BITMAP VF_CopyBitmap(VF_BITMAP bm); /* * Make a rotated bitmap */ extern VF_BITMAP VF_RotatedBitmap(VF_BITMAP bm, int rotate_angle); #define VF_BM_ROTATE_0 0 #define VF_BM_ROTATE_90 90 #define VF_BM_ROTATE_180 180 #define VF_BM_ROTATE_270 270 /* * Make a reflected bitmap */ extern VF_BITMAP VF_ReflectedBitmap(VF_BITMAP bm, int ref_x, int ref_y); /* * Make a scaled bitmap */ extern VF_BITMAP VF_MakeScaledBitmap(VF_BITMAP bm, double mag_x, double mag_y); /* * Make a minimized bitmap (make a bitmap with minimum bounding box) */ extern VF_BITMAP VF_MinimizeBitmap(VF_BITMAP bm); /* * Fill/Clear bitmap */ extern void VF_FillBitmap(VF_BITMAP bm); extern void VF_ClearBitmap(VF_BITMAP bm); /* * Make a copy of a metric */ extern VF_METRIC1 VF_CopyMetric1(VF_METRIC1 metric1); extern VF_METRIC2 VF_CopyMetric2(VF_METRIC2 metric2); /* * Create a bitmap data from an outline data */ extern VF_BITMAP VF_OutlineToBitmap(VF_OUTLINE outline, double dpi_x, double dpi_y, double point_size, double mag_x, double mag_y); /* * Create an outline data from a bitmap data */ extern VF_OUTLINE VF_BitmapToOutline(VF_BITMAP bm); /* * Release bitmap, outline, matric objects: */ extern void VF_FreeBitmap(VF_BITMAP bm); extern void VF_FreeOutline(VF_OUTLINE outline); extern void VF_FreeMetric1(VF_METRIC1 metric1); extern void VF_FreeMetric2(VF_METRIC2 metric2); /* * Bitmap list */ extern int VF_BitmapListInit(VF_BITMAPLIST); extern int VF_BitmapListPut(VF_BITMAPLIST,VF_BITMAP,long,long); extern VF_BITMAP VF_BitmapListCompose(VF_BITMAPLIST); extern int VF_BitmapListFinish(VF_BITMAPLIST); /* * Installation of a font driver */ extern int VF_InstallFontDriver(char* class_name, int(*driver_entry)(VF_FONT font, char *class_name, char *font_name, int implicit_flag, void *font_db_entry)); /* * Get a list of installed font driver names */ extern char **VF_FontDriverList(void); /* * Output a bitmap to a file */ /* PBM ASCII format output */ extern int VF_ImageOut_PBMAscii(VF_BITMAP bm, FILE *fp, int image_width, int image_height, int position_x, int position_y, int margin_l, int margin_r, int margin_t, int margin_b, int reverse, int shrink, char *prog, char *title); /* PGM ASCII format output */ extern int VF_ImageOut_PGMAscii(VF_BITMAP bm, FILE *fp, int image_width, int image_height, int position_x, int position_y, int margin_l, int margin_r, int margin_t, int margin_b, int reverse, int shrink, char *prog, char *title); /* PGM Row format output */ extern int VF_ImageOut_PGMRaw(VF_BITMAP bm, FILE *fp, int image_width, int image_height, int position_x, int position_y, int margin_l, int margin_r, int margin_t, int margin_b, int reverse, int shrink, char *prog, char *title); /* EPS format output */ extern int VF_ImageOut_EPS(VF_BITMAP bm, FILE *fp, int image_width, int image_height, int position_x, int position_y, int margin_l, int margin_r, int margin_t, int margin_b, int reverse, int shrink, char *prog, char *title, double ptsize, int pixsize); /* ASCII Art format output */ extern int VF_ImageOut_ASCIIArt(VF_BITMAP bm, FILE *fp, int image_width, int image_height, int position_x, int position_y, int margin_l, int margin_r, int margin_t, int margin_b, int reverse, int shrink); /* ASCII Art format output (rotated clockwise, 90 degree) */ extern int VF_ImageOut_ASCIIArtV(VF_BITMAP bm, FILE *fp, int image_width, int image_height, int position_x, int position_y, int margin_l, int margin_r, int margin_t, int margin_b, int reverse, int shrink); #define VF_IMAGEOUT_POSITION_NONE 0 #define VF_IMAGEOUT_POSITION_CENTER 1 #define VF_IMAGEOUT_POSITION_TOP 2 #define VF_IMAGEOUT_POSITION_BOTTOM 3 #define VF_IMAGEOUT_POSITION_LEFT 4 #define VF_IMAGEOUT_POSITION_RIGHT 5 /* * Display a bitmap as an ASCII art */ extern void VF_DumpBitmap(VF_BITMAP bm); /** ** Outline Data **/ #define VF_OL_INSTR_TOKEN 0x80000000L #define VF_OL_INSTR_CHAR 0x00000001L #define VF_OL_INSTR_CWCURV 0x00000002L #define VF_OL_INSTR_CCWCURV 0x00000004L #define VF_OL_INSTR_LINE 0x00000008L #define VF_OL_INSTR_ARC 0x00000010L #define VF_OL_INSTR_BEZ 0x00000020L #define VF_OL_GET_X(n) (((n)&0x7fff0000L) >> 16) #define VF_OL_GET_Y(n) (((n)&0x00007fffL)) #define VF_OL_MAKE_XY(x,y) (((VF_OUTLINE_ELEM)(x)<<16)|(VF_OUTLINE_ELEM)(y)) #define VF_OL_COORD_MAX 32768 #define VF_OL_COORD_RANGE 8192 #define VF_OL_COORD_OFFSET (VF_OL_COORD_MAX/2 - VF_OL_COORD_RANGE/2) #define VF_OL_HEADER_ENCODE(x) (VF_OUTLINE_ELEM)((double)(x)*(double)0x10000) #define VF_OL_HEADER_DECODE(y) ((VF_OUTLINE_ELEM)((y)/(double)0x10000)) #define VF_OL_OUTLINE_HEADER_SIZE_TYPE0 16 #define VF_OL_OUTLINE_HEADER_TYPE0 0 #define VF_OL_HEADER_INDEX_HEADER_TYPE 0 /* format type */ #define VF_OL_HEADER_INDEX_DATA_SIZE 1 /* data size, incl. header */ #define VF_OL_HEADER_INDEX_DPI_X 2 /* h-dpi (encoded) */ #define VF_OL_HEADER_INDEX_DPI_Y 3 /* v-dpi (encoded) */ #define VF_OL_HEADER_INDEX_POINT_SIZE 4 /* point size (encoded) */ #define VF_OL_HEADER_INDEX_EM 5 /* 1em, in outline coordinate */ #define VF_OL_HEADER_INDEX_MAX_X 6 /* in outline coordinate */ #define VF_OL_HEADER_INDEX_MAX_Y 7 /* in outline coordinate */ #define VF_OL_HEADER_INDEX_REF_X 8 /* in outline coordinate */ #define VF_OL_HEADER_INDEX_REF_Y 9 /* in outline coordinate */ #define VF_OL_HEADER_INDEX_MV_X 10 /* in outline coordinate */ #define VF_OL_HEADER_INDEX_MV_Y 11 /* in outline coordinate */ /** ** Error code **/ extern int vf_error; #define VF_ERR_INTERNAL 1 /* Internal error */ #define VF_ERR_NO_MEMORY 2 /* Out of memory */ #define VF_ERR_CANT_OPEN 3 /* Can't open a file */ #define VF_ERR_NOT_SUPPORTED_OP 4 /* Operation not supported */ #define VF_ERR_ILL_FONTID 5 /* Illegal font id */ #define VF_ERR_OPEN_NESTING 6 /* Too many nesting for font open */ #define VF_ERR_USED_CLASS_NAME 7 /* The class name is already used */ #define VF_ERR_ILL_MODE 8 /* Illegal font mode (high/low res.) */ #define VF_ERR_BITMAP2OUTLINE 9 /* Illegal bitmap for bitmap2outline */ #define VF_ERR_BOGUS_OUTLINE 10 /* Bogus outline data */ #define VF_ERR_NO_VFLIBCAP 11 /* Vflibcap file not found */ #define VF_ERR_UNCOMPRESS 12 /* Font uncompression error */ #define VF_ERR_ILL_FONT_FILE 13 /* Font file format error */ #define VF_ERR_TOO_MANY_OPEN 14 /* Too many open fonts */ #define VF_ERR_CLASS_UNKNOWN 20 /* Font class is unknown */ #define VF_ERR_NO_FONT_ENTRY 21 /* Font entry not found */ #define VF_ERR_NO_FONT_CLASS 22 /* No such font class name */ #define VF_ERR_NO_FONT_FILE_PATH 23 /* No font file path in vflibcap */ #define VF_ERR_NO_FONT_FILE 24 /* No font file */ #define VF_ERR_NO_METRIC_FILE 25 /* No metric file */ #define VF_ERR_NO_AUX_FONT_NAME 26 /* No auxiliary font name */ #define VF_ERR_NOT_JFM 27 /* Not a JFM file */ #define VF_ERR_NO_FONT_IMP 28 /* No font in implicit font classes */ #define VF_ERR_WRONG_OFM 29 /* Wrong OFM version */ #define VF_ERR_INVALID_METRIC 30 /* Invalid metric file */ #define VF_ERR_ILL_CODE_POINT 31 /* Illegal code point */ #define VF_ERR_NO_GLYPH 32 /* Glyph not found */ #define VF_ERR_FREETYPE_INIT 50 /* FreeType initialization error */ #define VF_ERR_T1LIB_INIT 51 /* T1Lib initialization error */ #endif /*__VFLIB_VFLIB_H__*/ /*EOF*/ vflib3-3.6.14.dfsg/src/drv_ekan.c0000644000175000017500000010516207363250276016027 0ustar mohuramohura/* * drv_ekan.c - A font driver for eKanji format fonts. * by Hirotsugu Kakugawa * * 8 Dec 1999 First implementation. * 18 Oct 2001 Fixed memory leak. */ /* * Copyright (C) 1999-2001 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "ccv.h" #include "sexp.h" #include "str.h" #include "path.h" #include "fsearch.h" #include "bitmap.h" #include "ekan.h" struct s_font_ek { char *font_path; char *font_name; char *font_file; int font_dot_size; double point_size; int pixel_size; double dpi_x, dpi_y; double mag; double aspect; int ccv_id; int direction; double vec_bbxul_x, vec_bbxul_y; double vec_next_x, vec_next_y; long nchars; int mock_encoding; long mock_enc_arg; SEXP_ALIST props; }; typedef struct s_font_ek *FONT_EK; Private SEXP_LIST default_fontdirs; Private SEXP_STRING default_point_size; Private double v_default_point_size; Private SEXP_STRING default_pixel_size; Private double v_default_pixel_size; Private SEXP_STRING default_font_dot_size; Private int v_default_font_dot_size; Private SEXP_STRING default_dpi, default_dpi_x, default_dpi_y; Private double v_default_dpi_x, v_default_dpi_y; Private SEXP_STRING default_aspect; Private double v_default_aspect; Private SEXP_STRING default_direction; Private int v_default_direction; Private SEXP_LIST default_vec_bbxul; Private double v_default_vec_bbxul_x, v_default_vec_bbxul_y; Private SEXP_LIST default_vec_next; Private double v_default_vec_next_x, v_default_vec_next_y; Private SEXP_ALIST default_properties; Private SEXP_ALIST default_variables; Private SEXP_STRING default_debug_mode; Private char *env_debug_mode = NULL; #define DEBUG_ENV_NAME "VFLIB_EKANJI_DEBUG" Private int ek_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry); Private int ek_close(VF_FONT font); Private int ek_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric1, double,double); Private int ek_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric2, double,double); Private int ek_get_fontbbx1(VF_FONT font,double,double, double*,double*,double*,double*); Private int ek_get_fontbbx2(VF_FONT font, double,double, int*,int*,int*,int*); Private VF_BITMAP ek_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP ek_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE ek_get_outline1(VF_FONT,long,double,double); Private char* ek_get_font_prop(VF_FONT,char*); Private int ek_debug(char); Private int ek_debug2(char type, char *str); Private VF_BITMAP ek_file_read(FONT_EK font_ek, long cp); Private void ek_file_init(FONT_EK font_ek); Public int VF_Init_Driver_EKanji(void) { int z; char *p; SEXP s1, s2; struct s_capability_table ct[30]; z = 0; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_STRING_LIST0; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_fontdirs; /* VF_CAPE_EK_FONT_DOT_SIZE */ ct[z].cap = VF_CAPE_EK_FONT_DOT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_font_dot_size; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_point_size; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_pixel_size; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi; /* VF_CAPE_DPI_X */ ct[z].cap = VF_CAPE_DPI_X; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi_x; /* VF_CAPE_DPI_Y */ ct[z].cap = VF_CAPE_DPI_Y; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_dpi_y; /* VF_CAPE_DIRECTION */ ct[z].cap = VF_CAPE_DIRECTION; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_direction; /* VF_CAPE_VECTOR_TO_BBX_UL */ ct[z].cap = VF_CAPE_VECTOR_TO_BBX_UL; ct[z].type = CAPABILITY_VECTOR; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_vec_bbxul; /* VF_CAPE_VECTOR_TO_NEXT */ ct[z].cap = VF_CAPE_VECTOR_TO_NEXT; ct[z].type = CAPABILITY_VECTOR; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_vec_next; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_aspect; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME, ct, NULL, NULL) == VFLIBCAP_PARSED_ERROR) return -1; v_default_font_dot_size = DEFAULT_FONT_DOT_SIZE; if (default_font_dot_size != NULL) v_default_font_dot_size = atoi(vf_sexp_get_cstring(default_font_dot_size)); v_default_point_size = DEFAULT_POINT_SIZE; if (default_point_size != NULL) v_default_point_size = atof(vf_sexp_get_cstring(default_point_size)); if (v_default_point_size < 0) v_default_point_size = DEFAULT_POINT_SIZE; v_default_pixel_size = DEFAULT_PIXEL_SIZE; if (default_pixel_size != NULL) v_default_pixel_size = atof(vf_sexp_get_cstring(default_pixel_size)); if (v_default_pixel_size < 0) v_default_pixel_size = DEFAULT_PIXEL_SIZE; v_default_dpi_x = -1; v_default_dpi_y = -1; if (default_dpi != NULL) v_default_dpi_x = v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi)); if (default_dpi_x != NULL) v_default_dpi_x = atof(vf_sexp_get_cstring(default_dpi_x)); if (default_dpi_y != NULL) v_default_dpi_y = atof(vf_sexp_get_cstring(default_dpi_y)); v_default_aspect = 1.0; if (default_aspect != NULL) v_default_aspect = atof(vf_sexp_get_cstring(default_aspect)); v_default_direction = DEFAULT_DIRECTION; if (default_direction != NULL){ p = vf_sexp_get_cstring(default_direction); if ((*p == 'h') || (*p == 'H')){ v_default_direction = DIRECTION_HORIZONTAL; } else if ((*p == 'v') || (*p == 'V')){ v_default_direction = DIRECTION_VERTICAL; } else { fprintf(stderr, "VFlib warning: Unknown writing direction: %s\n", p); } } switch(v_default_direction){ default: case DIRECTION_HORIZONTAL: v_default_vec_bbxul_x = 0; v_default_vec_bbxul_y = DEFAULT_TO_REF_PT_H; v_default_vec_next_x = 1.0; v_default_vec_next_y = 0.0; break; case DIRECTION_VERTICAL: v_default_vec_bbxul_x = DEFAULT_TO_REF_PT_V; v_default_vec_bbxul_y = 0; v_default_vec_next_x = 0.0; v_default_vec_next_y = -1.0; break; } if (default_vec_bbxul != NULL){ s1 = vf_sexp_car(default_vec_bbxul); s2 = vf_sexp_cadr(default_vec_bbxul); v_default_vec_bbxul_x = atof(vf_sexp_get_cstring(s1)); v_default_vec_bbxul_y = atof(vf_sexp_get_cstring(s2)); } if (default_vec_next != NULL){ s1 = vf_sexp_car(default_vec_next); s2 = vf_sexp_cadr(default_vec_next); v_default_vec_next_x = atof(vf_sexp_get_cstring(s1)); v_default_vec_next_y = atof(vf_sexp_get_cstring(s2)); } env_debug_mode = getenv(DEBUG_ENV_NAME); VF_InstallFontDriver(FONTCLASS_NAME, (DRIVER_FUNC_TYPE)ek_create); return 0; } Private int ek_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_EK font_ek; FILE *fp; int val, len; char *path_name, *font_file, *p; SEXP cap_fontdirs, cap_font_dot_size, cap_font, cap_point, cap_pixel; SEXP cap_dpi, cap_dpi_x, cap_dpi_y, cap_mag, cap_aspect; SEXP cap_charset, cap_encoding, cap_font_charset, cap_font_encoding; SEXP cap_props, cap_direction, cap_vec_bbxul, cap_vec_next; SEXP cap_mock_enc; SEXP fontdirs, s1, s2; char *charset, *encoding, *font_charset, *font_encoding; int z; struct s_capability_table ct[30]; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_EK_FONT_DOT_SIZE */ ct[z].cap = VF_CAPE_EK_FONT_DOT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_font_dot_size; /* VF_CAPE_EK_MOCK_FONT_ENC */ ct[z].cap = VF_CAPE_EK_MOCK_FONT_ENC; ct[z].type = CAPABILITY_STRING_LIST0; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mock_enc; /* VF_CAPE_FONT_DIRECTORIES */ ct[z].cap = VF_CAPE_FONT_DIRECTORIES; ct[z].type = CAPABILITY_STRING_LIST0; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_fontdirs; /* VF_CAPE_DIRECTION */ ct[z].cap = VF_CAPE_DIRECTION; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_direction; /* VF_CAPE_VECTOR_TO_BBX_UL */ ct[z].cap = VF_CAPE_VECTOR_TO_BBX_UL; ct[z].type = CAPABILITY_VECTOR; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_vec_bbxul; /* VF_CAPE_VECTOR_TO_NEXT */ ct[z].cap = VF_CAPE_VECTOR_TO_NEXT; ct[z].type = CAPABILITY_VECTOR; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_vec_next; /* VF_CAPE_FONT_FILE */ ct[z].cap = VF_CAPE_FONT_FILE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_font; /* VF_CAPE_POINT_SIZE */ ct[z].cap = VF_CAPE_POINT_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_point; /* VF_CAPE_PIXEL_SIZE */ ct[z].cap = VF_CAPE_PIXEL_SIZE; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_pixel; /* VF_CAPE_DPI */ ct[z].cap = VF_CAPE_DPI; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi; /* VF_CAPE_DPI_X */ ct[z].cap = VF_CAPE_DPI_X; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi_x; /* VF_CAPE_DPI_Y */ ct[z].cap = VF_CAPE_DPI_Y; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_dpi_y; /* VF_CAPE_MAG */ ct[z].cap = VF_CAPE_MAG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_mag; /* VF_CAPE_ASPECT_RATIO */ ct[z].cap = VF_CAPE_ASPECT_RATIO; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_aspect; /* VF_CAPE_CHARSET */ ct[z].cap = VF_CAPE_CHARSET; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_charset; /* VF_CAPE_ENCODING */ ct[z].cap = VF_CAPE_ENCODING; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_encoding; /* VF_CAPE_FONT_CHARSET */ ct[z].cap = VF_CAPE_FONT_CHARSET; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_font_charset; /* VF_CAPE_FONT_ENCODING */ ct[z].cap = VF_CAPE_FONT_ENCODING; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_font_encoding; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; val = -1; font_file = font_name; fontdirs = default_fontdirs; font_ek = NULL; if (implicit == 1){ /* implicit font */ font_file = font_name; } else { /* explicit font */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, NULL) == VFLIBCAP_PARSED_ERROR) return -1; if (cap_fontdirs != NULL) fontdirs = cap_fontdirs; if (cap_font != NULL){ font_file = vf_sexp_get_cstring(cap_font); } else { /* Use font name as font file name if font file name is not given. */ font_file = font_name; } } if (ek_debug('f')) printf("eKanji font file to open %s\n", font_file); path_name = vf_search_file(font_file, -1, NULL, FALSE, -1, fontdirs, NULL, NULL); if (path_name == NULL){ if (ek_debug('f')) printf("eKanji font file not found\n"); vf_error = VF_ERR_NO_FONT_FILE; goto End; } if (ek_debug('f')) printf("eKanji Font File: %s ==> %s\n", font_file, path_name); if ((fp = vf_fm_OpenBinaryFileStream(path_name)) == NULL){ vf_error = VF_ERR_NO_FONT_FILE; goto End; } font->font_type = VF_FONT_TYPE_BITMAP; font->get_metric1 = ek_get_metric1; font->get_metric2 = ek_get_metric2; font->get_fontbbx1 = ek_get_fontbbx1; font->get_fontbbx2 = ek_get_fontbbx2; font->get_bitmap1 = ek_get_bitmap1; font->get_bitmap2 = ek_get_bitmap2; font->get_outline = ek_get_outline1; font->get_font_prop = ek_get_font_prop; font->query_font_type = NULL; font->close = ek_close; ALLOC_IF_ERR(font_ek, struct s_font_ek){ vf_error = VF_ERR_NO_MEMORY; goto End; } font_ek->font_path = path_name; font_ek->font_name = NULL; font_ek->font_file = NULL; font_ek->font_dot_size = v_default_font_dot_size; font_ek->mock_encoding = MOCK_FONT_ENC_RAW; font_ek->mock_enc_arg = 0; font_ek->point_size = v_default_point_size; font_ek->pixel_size = v_default_pixel_size; font_ek->dpi_x = v_default_dpi_x; font_ek->dpi_y = v_default_dpi_y; font_ek->mag = 1.0; font_ek->aspect = v_default_aspect; font_ek->ccv_id = -1; font_ek->direction = v_default_direction; font_ek->vec_bbxul_x = v_default_vec_bbxul_x; font_ek->vec_bbxul_y = v_default_vec_bbxul_y; font_ek->vec_next_x = v_default_vec_next_x; font_ek->vec_next_y = v_default_vec_next_y; font_ek->props = NULL; charset = NULL; encoding = NULL; font_charset = NULL; font_encoding = NULL; if (implicit == 0){ if (cap_font_dot_size != NULL) font_ek->font_dot_size = atoi(vf_sexp_get_cstring(cap_font_dot_size)); if (cap_mock_enc != NULL){ len = vf_sexp_length(cap_mock_enc); if (len > 0){ p = vf_sexp_get_cstring(vf_sexp_car(cap_mock_enc)); if (vf_strcmp_ci(p, CAPE_MOCK_FONT_ENC_RAW) == 0){ font_ek->mock_encoding = MOCK_FONT_ENC_RAW; } else if (vf_strcmp_ci(p, CAPE_MOCK_FONT_ENC_SUBBLOCKS_94X94) == 0){ font_ek->mock_encoding = MOCK_FONT_ENC_SUBBLOCKS_94X94; } else if (vf_strcmp_ci(p, CAPE_MOCK_FONT_ENC_SUBBLOCKS_94X60) == 0){ font_ek->mock_encoding = MOCK_FONT_ENC_SUBBLOCKS_94X60; } else if (vf_strcmp_ci(p, CAPE_MOCK_FONT_ENC_WITH_OFFSET) == 0){ font_ek->mock_encoding = MOCK_FONT_ENC_WITH_OFFSET; } else { fprintf(stderr, "VFlib warning: unknown keyword `%s' in capability %s\n", p, VF_CAPE_EK_MOCK_FONT_ENC); } } if (len > 1){ p = vf_sexp_get_cstring(vf_sexp_cadr(cap_mock_enc)); if (*p == '-'){ sscanf(p+1, "%li", &font_ek->mock_enc_arg); font_ek->mock_enc_arg = -font_ek->mock_enc_arg; } else if (*p == '+'){ sscanf(p+1, "%li", &font_ek->mock_enc_arg); } else { sscanf(p, "%li", &font_ek->mock_enc_arg); } } } if (cap_point != NULL) font_ek->point_size = atof(vf_sexp_get_cstring(cap_point)); if (cap_pixel != NULL) font_ek->pixel_size = atof(vf_sexp_get_cstring(cap_pixel)); if (cap_dpi != NULL) font_ek->dpi_x = font_ek->dpi_y = atof(vf_sexp_get_cstring(cap_dpi)); if (cap_dpi_x != NULL) font_ek->dpi_x = atof(vf_sexp_get_cstring(cap_dpi_x)); if (cap_dpi_y != NULL) font_ek->dpi_y = atof(vf_sexp_get_cstring(cap_dpi_y)); if (cap_mag != NULL) font_ek->mag = atof(vf_sexp_get_cstring(cap_mag)); if (cap_aspect != NULL) font_ek->aspect = atof(vf_sexp_get_cstring(cap_aspect)); if (cap_charset != NULL) charset = vf_sexp_get_cstring(cap_charset); if (cap_encoding != NULL) encoding = vf_sexp_get_cstring(cap_encoding); if (cap_encoding != NULL) font_encoding = vf_sexp_get_cstring(cap_encoding); if (cap_font_charset != NULL) font_charset = vf_sexp_get_cstring(cap_font_charset); if (cap_font_encoding != NULL) font_encoding = vf_sexp_get_cstring(cap_font_encoding); if (cap_direction != NULL){ p = vf_sexp_get_cstring(cap_direction); if ((*p == 'h') || (*p == 'H')){ font_ek->direction = DIRECTION_HORIZONTAL; } else if ((*p == 'v') || (*p == 'V')){ font_ek->direction = DIRECTION_VERTICAL; } else { fprintf(stderr, "VFlib warning: Unknown writing direction: %s\n", p); } } switch(font_ek->direction){ default: case DIRECTION_HORIZONTAL: font_ek->vec_bbxul_x = v_default_vec_bbxul_x; font_ek->vec_bbxul_y = v_default_vec_bbxul_y; font_ek->vec_next_x = v_default_vec_next_x; font_ek->vec_next_y = v_default_vec_next_y; break; case DIRECTION_VERTICAL: font_ek->vec_bbxul_x = v_default_vec_bbxul_x; font_ek->vec_bbxul_y = v_default_vec_bbxul_y; font_ek->vec_next_x = v_default_vec_next_x; font_ek->vec_next_y = v_default_vec_next_y; break; } if (cap_vec_bbxul != NULL){ s1 = vf_sexp_car(cap_vec_bbxul); s2 = vf_sexp_cadr(cap_vec_bbxul); font_ek->vec_bbxul_x = atof(vf_sexp_get_cstring(s1)); font_ek->vec_bbxul_y = atof(vf_sexp_get_cstring(s2)); } if (default_vec_next != NULL){ s1 = vf_sexp_car(default_vec_next); s2 = vf_sexp_cadr(default_vec_next); font_ek->vec_next_x = atof(vf_sexp_get_cstring(s1)); font_ek->vec_next_y = atof(vf_sexp_get_cstring(s2)); } if (cap_props != NULL) font_ek->props = cap_props; } if ((font_ek->font_file = vf_strdup(font_file)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto End; } if ((font_ek->font_name = vf_strdup(font_name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; goto End; } if (ek_debug('c')){ printf("VFlib EK: cs=%s, enc=%s, font_cs=%s, font_enc=%s\n", charset, encoding, font_charset, font_encoding); } font_ek->ccv_id = -1; if ((charset != NULL) && (encoding != NULL) && (font_charset != NULL) && (font_encoding != NULL)){ font_ek->ccv_id = vf_ccv_require(charset, encoding, font_charset, font_encoding); } else { ; /* need warning ? */ } if (ek_debug('c')) printf("VFlib EK: ccv id %d\n", font_ek->ccv_id); font->private = font_ek; val = 0; End: ek_file_init(font_ek); if (implicit == 0){ /* explicit font */ vf_sexp_free2(&cap_fontdirs, &cap_font_dot_size); vf_sexp_free3(&cap_font, &cap_point, &cap_pixel); vf_sexp_free3(&cap_dpi, &cap_dpi_x, &cap_dpi_y); vf_sexp_free2(&cap_mag, &cap_aspect); vf_sexp_free2(&cap_charset, &cap_encoding); vf_sexp_free2(&cap_font_charset, &cap_font_encoding); vf_sexp_free3(&cap_direction, &cap_vec_bbxul, &cap_vec_next); vf_sexp_free1(&cap_mock_enc); if (val < 0) vf_sexp_free1(&cap_props); } if (val < 0){ if (font_ek != NULL){ vf_free(font_ek->font_path); vf_free(font_ek->font_name); vf_free(font_ek->font_file); } vf_free(font_ek); } return val; } Private int ek_close(VF_FONT font) { FONT_EK font_ek; font_ek = (FONT_EK)font->private; if (font_ek->props != NULL) vf_sexp_free1(&font_ek->props); vf_free(font_ek->font_path); vf_free(font_ek->font_name); vf_free(font_ek->font_file); vf_free(font_ek); return 0; } Private void mag_mode_1(FONT_EK font_ek, VF_FONT font, double mag_x, double mag_y, double *ret_point_size, double *ret_bbx_w, double *ret_bbx_h, double *ret_mag_x, double *ret_mag_y, double *ret_dpix, double *ret_dpiy) { double mx, my, dpix, dpiy, ps, asp; if ((ps = font->point_size) < 0) if ((ps = font_ek->point_size) < 0) ps = v_default_point_size; if (ret_point_size != NULL) *ret_point_size = ps; asp = (v_default_aspect * font_ek->aspect); mx = mag_x * font_ek->mag * font->mag_x * asp; my = mag_y * font_ek->mag * font->mag_y; if (ret_mag_x != NULL) *ret_mag_x = mx; if (ret_mag_y != NULL) *ret_mag_y = my; if ((font->dpi_x > 0) && (font->dpi_y > 0)){ dpix = font->dpi_x; dpiy = font->dpi_y; } else if ((font_ek->dpi_x > 0) && (font_ek->dpi_y > 0)){ dpix = font_ek->dpi_x; dpiy = font_ek->dpi_y; } else { dpix = v_default_dpi_x; dpiy = v_default_dpi_y; } if (ret_dpix != NULL) *ret_dpix = dpix; if (ret_dpiy != NULL) *ret_dpiy = dpiy; if (ret_bbx_w != NULL) *ret_bbx_w = dpix * mx * (ps / POINTS_PER_INCH); if (ret_bbx_h != NULL) *ret_bbx_h = dpiy * my * (ps / POINTS_PER_INCH); #if 0 printf("*** %.3f %.3f %.3f\n", mag_x, font_ek->mag, font->mag_x); printf(" %.3f %.3f %.3f\n", mag_y, font_ek->mag, font->mag_y); printf(" dpix=%.3f font_dpi_x=%.3f\n", dpix, font_dpi_x); printf(" dpiy=%.3f font_dpi_y=%.3f\n", dpiy, font_dpi_y); printf(" asp=%.3f\n", asp); printf(" mx=%.3f, my=%.3f\n", mx, my); if (ret_bbx_w != NULL) printf(" W=%.3f H=%.3f\n", *ret_bbx_w, *ret_bbx_h); #endif } Private int ek_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { FONT_EK font_ek; double bbx_w, bbx_h, dpix, dpiy; long cp; if ( ((font_ek = (FONT_EK)font->private) == NULL) || (metric == NULL)){ fprintf(stderr, "VFlib internal error: in ek_get_metric1()\n"); abort(); } cp = code_point; if (font_ek->ccv_id >= 0){ cp = vf_ccv_conv(font_ek->ccv_id, code_point); if (ek_debug('C')) printf("VFlib EK: CCV 0x%lx => 0x%lx\n", code_point, cp); } if (cp < 0) return -1; mag_mode_1(font_ek, font, mag_x, mag_y, NULL, &bbx_w, &bbx_h, NULL, NULL, &dpix, &dpiy); metric->bbx_width = bbx_w; metric->bbx_height = bbx_h; metric->off_x = bbx_w * font_ek->vec_bbxul_x; metric->off_y = bbx_h * font_ek->vec_bbxul_y; metric->mv_x = bbx_w * font_ek->vec_next_x; metric->mv_y = bbx_h * font_ek->vec_next_y; return 0; } Private int ek_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { FONT_EK font_ek; double bbx_w, bbx_h, dpix, dpiy; if ((font_ek = (FONT_EK)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in ek_get_fontbbx1()\n"); abort(); } mag_mode_1(font_ek, font, mag_x, mag_y, NULL, &bbx_w, &bbx_h, NULL, NULL, &dpix, &dpiy); *w_p = bbx_w; *h_p = bbx_h; *xoff_p = bbx_w * font_ek->vec_bbxul_x; *yoff_p = bbx_h * (1.0 - font_ek->vec_bbxul_y); return 0; } Private VF_BITMAP ek_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_EK font_ek; VF_BITMAP bm0, bm; double bbx_w, bbx_h; long cp; if ((font_ek = (FONT_EK)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in ek_get_bitmap1()\n"); abort(); } cp = code_point; if (font_ek->ccv_id >= 0){ cp = vf_ccv_conv(font_ek->ccv_id, code_point); if (ek_debug('C')) printf("VFlib EK: CCV 0x%lx => 0x%lx\n", code_point, cp); } if (cp < 0) return NULL; if ((bm0 = ek_file_read(font_ek, cp)) == NULL) return NULL; /* note: bm0 should not be released*/ mag_mode_1(font_ek, font, mag_x, mag_y, NULL, &bbx_w, &bbx_h, NULL, NULL, NULL, NULL); bm = VF_MakeScaledBitmap(bm0, bbx_w/(double)font_ek->font_dot_size, bbx_h/(double)font_ek->font_dot_size); bm->off_x = toint(bm->bbx_width * font_ek->vec_bbxul_x); bm->off_y = toint(bm->bbx_height * font_ek->vec_bbxul_y); bm->mv_x = toint(bm->bbx_width * font_ek->vec_next_x); bm->mv_y = toint(bm->bbx_height * font_ek->vec_next_y); return bm; } Private VF_OUTLINE ek_get_outline1(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_EK font_ek; long cp; VF_BITMAP bm; VF_OUTLINE ol; double ps, dpi_x, dpi_y, bbx_w, bbx_h; if ((font_ek = (FONT_EK)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in ek_get_metric1()\n"); abort(); } cp = code_point; if (font_ek->ccv_id >= 0){ cp = vf_ccv_conv(font_ek->ccv_id, code_point); if (ek_debug('C')) printf("VFlib EK: CCV 0x%lx => 0x%lx\n", code_point, cp); } if (cp < 0) return NULL; if ((bm = ek_get_bitmap1(font, cp, mag_x, mag_y)) == NULL) return NULL; mag_mode_1(font_ek, font, mag_x, mag_y, &ps, &bbx_w, &bbx_h, NULL, NULL, &dpi_x, &dpi_y); ol = vf_bitmap_to_outline(bm, bbx_w, bbx_h, dpi_x, dpi_y, ps, 1, 1); VF_FreeBitmap(bm); return ol; } Private void mag_mode_2(FONT_EK font_ek, VF_FONT font, double mag_x, double mag_y, double *ret_pixel_size, double *ret_magx, double *ret_magy, double *ret_bbx_w, double *ret_bbx_h) { int ps; double mx, my, asp; if ((ps = font->pixel_size) < 0) if ((ps = font_ek->pixel_size) < 0) ps = v_default_pixel_size; asp = (v_default_aspect * font_ek->aspect); mx = mag_x * font_ek->mag * font->mag_x * asp; my = mag_y * font_ek->mag * font->mag_y; if (ret_pixel_size != NULL) *ret_pixel_size = ps; if (ret_magx != NULL) *ret_magx = mx; if (ret_magy != NULL) *ret_magy = my; if (ret_bbx_w != NULL) *ret_bbx_w = mx * ps; if (ret_bbx_h != NULL) *ret_bbx_h = my * ps; } Private int ek_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { FONT_EK font_ek; double bbx_w, bbx_h; long cp; if ( ((font_ek = (FONT_EK)font->private) == NULL) || (metric == NULL)){ fprintf(stderr, "VFlib internal error: in ek_get_metric2()\n"); abort(); } cp = code_point; if (font_ek->ccv_id >= 0){ cp = vf_ccv_conv(font_ek->ccv_id, code_point); if (ek_debug('C')) printf("VFlib EK: CCV 0x%lx => 0x%lx\n", code_point, cp); } if (cp < 0) return 0; mag_mode_2(font_ek, font, mag_x, mag_y, NULL, NULL, NULL, &bbx_w, &bbx_h); metric->bbx_width = (int)ceil(bbx_w); metric->bbx_height = (int)ceil(bbx_h); metric->off_x = toint(bbx_w * font_ek->vec_bbxul_x); metric->off_y = toint(bbx_h * font_ek->vec_bbxul_y); metric->mv_x = toint(bbx_w * font_ek->vec_next_x); metric->mv_y = toint(bbx_h * font_ek->vec_next_y); return 0; } Private int ek_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int *w_p, int *h_p, int *xoff_p, int *yoff_p) { FONT_EK font_ek; double bbx_w, bbx_h; if ((font_ek = (FONT_EK)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in ek_get_fontbbx2()\n"); abort(); } mag_mode_2(font_ek, font, mag_x, mag_y, NULL, NULL, NULL, &bbx_w, &bbx_h); *w_p = toint(bbx_w); *h_p = toint(bbx_h); *xoff_p = toint(bbx_w * font_ek->vec_bbxul_x); *yoff_p = toint(bbx_w * (font_ek->vec_bbxul_y - 1.0)); return 0; } Private VF_BITMAP ek_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_EK font_ek; VF_BITMAP bm0, bm; double bbx_w, bbx_h, mx, my; long cp; if ((font_ek = (FONT_EK)font->private) == NULL){ fprintf(stderr, "VFlib internal error: in ek_get_bitmap2()\n"); abort(); } cp = code_point; if (font_ek->ccv_id >= 0){ cp = vf_ccv_conv(font_ek->ccv_id, code_point); if (ek_debug('C')) printf("VFlib EK: CCV 0x%lx => 0x%lx\n", code_point, cp); } if (cp < 0) return NULL; if ((bm0 = ek_file_read(font_ek, cp)) == NULL) return NULL; /* note: bm0 should not be released*/ mag_mode_2(font_ek, font, mag_x, mag_y, NULL, &mx, &my, &bbx_w, &bbx_h); bm = VF_MakeScaledBitmap(bm0, bbx_w/(double)font_ek->font_dot_size, bbx_h/(double)font_ek->font_dot_size); bm->off_x = toint(bm->bbx_width * font_ek->vec_bbxul_x); bm->off_y = toint(bm->bbx_height * font_ek->vec_bbxul_y); bm->mv_x = toint(bm->bbx_width * font_ek->vec_next_x); bm->mv_y = toint(bm->bbx_height * font_ek->vec_next_y); return bm; } Private char* ek_get_font_prop(VF_FONT font, char *prop_name) /* CALLER MUST RELEASE RETURNED STRING */ { FONT_EK font_ek; char str[512]; double ps, dpix, dpiy; SEXP v; if ((font_ek = (FONT_EK)font->private) == NULL){ fprintf(stderr, "VFlib: Internal error in ek_get_font_prop()\n"); abort(); } if ((v = vf_sexp_assoc(prop_name, font_ek->props)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else if ((v = vf_sexp_assoc(prop_name, default_properties)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } if (font->mode == 1){ mag_mode_1(font_ek, font, 1.0, 1.0, &ps, NULL, NULL, NULL, NULL, &dpix, &dpiy); /**printf("** Mode1 %.3f %.3f %.3f\n", ps, dpix, dpiy);**/ if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(10.0 * ps)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps * dpiy / POINTS_PER_INCH)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(dpix)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(dpiy)); return vf_strdup(str); } } else if (font->mode == 2){ mag_mode_2(font_ek, font, 1.0, 1.0, &ps, NULL, NULL, NULL, NULL); /**printf("** Mode2 %.3f\n", ps);**/ if (strcmp(prop_name, "POINT_SIZE") == 0){ sprintf(str, "%d", toint(10.0 * ps * POINTS_PER_INCH / DEFAULT_DPI)); return vf_strdup(str); } else if (strcmp(prop_name, "PIXEL_SIZE") == 0){ sprintf(str, "%d", toint(ps)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_X") == 0){ sprintf(str, "%d", toint(DEFAULT_DPI)); return vf_strdup(str); } else if (strcmp(prop_name, "RESOLUTION_Y") == 0){ sprintf(str, "%d", toint(DEFAULT_DPI)); return vf_strdup(str); } } return NULL; } Private void ek_file_init(FONT_EK font_ek) { FILE *fp; long len; int bw; if (font_ek == NULL) return; font_ek->nchars = 0; if (font_ek->font_dot_size <= 0) return; if ((fp = vf_fm_OpenBinaryFileStream(font_ek->font_path)) == NULL) return; fseek(fp, 0, SEEK_END); len = ftell(fp); bw = (font_ek->font_dot_size + 7) / 8; font_ek->nchars = len / (font_ek->font_dot_size * bw); if (ek_debug('f')){ printf("Ekanji File: %s, size: %ld\n", font_ek->font_file, len); printf(" Dot size: %d, nchars: %ld\n", font_ek->font_dot_size, font_ek->nchars); } } Private VF_BITMAP ek_file_read(FONT_EK font_ek, long cp) /* CALLER SHOULD NOT RELEASE RETURNED OBJECT */ { int y; long m0, m1; FILE *fp; static VF_BITMAP bmbuff = NULL; static int bw = -1; if (font_ek->font_dot_size <= 0) return NULL; switch (font_ek->mock_encoding){ case MOCK_FONT_ENC_RAW: break; case MOCK_FONT_ENC_SUBBLOCKS_94X94: m0 = cp / 0x100; m1 = cp % 0x100; if ((m0 < 0x21) || (0x7e < m0) || (m1 < 0x21) || (0x7e < m1)){ cp = -1; } else { m0 -= 0x21; m1 -= 0x21; cp = m0 * 94 + m1 + font_ek->mock_enc_arg * 94 * 94 + 1; } break; case MOCK_FONT_ENC_SUBBLOCKS_94X60: m0 = cp / 0x100; m1 = cp % 0x100; if ((m0 < 0x30) || ((0x4d < m0)&&(m0 < 0x50)) || (0x6d < m0) || (m1 < 0x21) || (0x7e < m1)){ cp = -1; } else { if (m0 >= 0x50) m0 -= 2; m0 -= 0x30; m1 -= 0x21; cp = m0 * 94 + m1 + font_ek->mock_enc_arg*94*60 + 1; } break; case MOCK_FONT_ENC_WITH_OFFSET: #if 0 printf("** 0x%lx, %ld 0x%lx, %ld %d, 0x%lx\n", cp, cp, cp + font_ek->mock_enc_arg,cp + font_ek->mock_enc_arg, font_ek->mock_enc_arg, font_ek->mock_enc_arg); #endif cp = cp + font_ek->mock_enc_arg; break; default: fprintf(stderr, "VFlib internal error: Cannot happen. ek_file_read()\n"); abort(); } if ((cp < 0) || (font_ek->nchars <= 0) || (font_ek->nchars < cp)){ vf_error = VF_ERR_ILL_CODE_POINT; return NULL; } if ((bmbuff == NULL) || (bw != font_ek->font_dot_size)){ if (bmbuff != NULL){ vf_free_bitmap(bmbuff); bmbuff = NULL; bw = -1; } bw = (font_ek->font_dot_size + 7) / 8; if ((bmbuff = vf_alloc_bitmap(font_ek->font_dot_size, font_ek->font_dot_size)) == NULL){ bw = -1; vf_error = VF_ERR_NO_MEMORY; return NULL; } } if ((fp = vf_fm_OpenBinaryFileStream(font_ek->font_path)) == NULL) return NULL; fseek(fp, font_ek->font_dot_size * bw * (cp-1), SEEK_SET); for (y = 0; y < font_ek->font_dot_size; y++){ fread(&bmbuff->bitmap[y * bmbuff->raster], bw, sizeof(unsigned char), fp); } return bmbuff; } Private int ek_debug(char type) { int v; char *p0; v = FALSE; if (env_debug_mode != NULL){ if ((v = ek_debug2(type, env_debug_mode)) == TRUE) return TRUE; } if (default_debug_mode == NULL) return FALSE; if ((p0 = vf_sexp_get_cstring(default_debug_mode)) == NULL) return FALSE; return ek_debug2(type, p0); } Private int ek_debug2(char type, char *p0) { char *p; for (p = p0; *p != '\0'; p++){ if (*p == type) return TRUE; } for (p = p0; *p != '\0'; p++){ if (*p == '*') return TRUE; } return FALSE; } /*EOF*/ vflib3-3.6.14.dfsg/src/ekan.h0000644000175000017500000000367207027550103015151 0ustar mohuramohura/* * ekan.h - a header file for drv_ekan.c * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define FONTCLASS_NAME "ekanji" #define DIRECTION_HORIZONTAL 0 #define DIRECTION_VERTICAL 1 #define DEFAULT_TO_REF_PT_H 0.87 #define DEFAULT_TO_REF_PT_V -0.5 #define MOCK_FONT_ENC_RAW 0 #define MOCK_FONT_ENC_SUBBLOCKS_94X94 1 #define MOCK_FONT_ENC_SUBBLOCKS_94X60 2 #define MOCK_FONT_ENC_WITH_OFFSET 10 #define VF_CAPE_EK_FONT_DOT_SIZE "font-dot-size" #define VF_CAPE_EK_MOCK_FONT_ENC "mock-font-encoding" #define CAPE_MOCK_FONT_ENC_RAW "raw" #define CAPE_MOCK_FONT_ENC_SUBBLOCKS_94X94 "subblocks-94x94" #define CAPE_MOCK_FONT_ENC_SUBBLOCKS_94X60 "subblocks-94x60" #define CAPE_MOCK_FONT_ENC_WITH_OFFSET "with-offset" #define DEFAULT_FONT_DOT_SIZE 24 #define DEFAULT_MOCK_FONT_ENC MOCK_FONT_ENC_RAW #define POINTS_PER_INCH 72.27 #define DEFAULT_DPI 72.27 #define DEFAULT_POINT_SIZE 10.0 #define DEFAULT_PIXEL_SIZE 24 #define DEFAULT_DIRECTION DIRECTION_HORIZONTAL /*EOF*/ vflib3-3.6.14.dfsg/src/jfmbi.c0000644000175000017500000001634507024047575015331 0ustar mohuramohura/* * jfmbi.c - built-in JFM * * 9 Dec 1999 Added built-in JFM feature. */ /* * Copyright (C) 1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include "with.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #include "VFlib-3_6.h" #include "VFsys.h" #include "metric.h" #include "jfmbi.h" struct s_jfm_builtin_chartype_info { int char_code; int char_type; }; static struct s_jfm_builtin_chartype_info jfm_builtin_chartype_info_table_h[] = { /* obtained by running mkbijfm.scm */ {0x2122, 9}, {0x2123, 9}, {0x2124, 8}, {0x2125, 8}, {0x2126, 4}, {0x2127, 4}, {0x2128, 4}, {0x2129, 5}, {0x212a, 4}, {0x212b, 2}, {0x212c, 2}, {0x212d, 4}, {0x212e, 4}, {0x212f, 5}, {0x2130, 5}, {0x2133, 5}, {0x2135, 5}, {0x2136, 3}, {0x2137, 3}, {0x2139, 3}, {0x213e, 4}, {0x2142, 4}, {0x2143, 4}, {0x2146, 4}, {0x2147, 4}, {0x2148, 5}, {0x2149, 5}, {0x214a, 6}, {0x214b, 1}, {0x214c, 6}, {0x214d, 1}, {0x214e, 6}, {0x214f, 1}, {0x2150, 6}, {0x2151, 1}, {0x2152, 6}, {0x2153, 1}, {0x2154, 6}, {0x2155, 1}, {0x2156, 6}, {0x2157, 1}, {0x2158, 6}, {0x2159, 1}, {0x215a, 6}, {0x215b, 1}, {0x2168, 3}, {0x2169, 3}, {0x216a, 3}, {0x216b, 5}, {0x216c, 5}, {0x216d, 5}, {0x2170, 3}, {0x2171, 3}, {0x2172, 3}, {0x2178, 5}, {0x2421, 3}, {0x2423, 3}, {0x2425, 3}, {0x2426, 7}, {0x2427, 3}, {0x2429, 3}, {0x242f, 7}, {0x2430, 7}, {0x2431, 7}, {0x2432, 7}, {0x2439, 7}, {0x243a, 7}, {0x2443, 3}, {0x2463, 3}, {0x2465, 3}, {0x2467, 3}, {0x246a, 7}, {0x246e, 3}, {0x2521, 3}, {0x2522, 10}, {0x2523, 3}, {0x2524, 10}, {0x2525, 3}, {0x2526, 10}, {0x2527, 3}, {0x2529, 3}, {0x252a, 10}, {0x252f, 11}, {0x2530, 11}, {0x2531, 10}, {0x2532, 10}, {0x2535, 10}, {0x2536, 10}, {0x253d, 10}, {0x253e, 10}, {0x253f, 11}, {0x2540, 11}, {0x2541, 10}, {0x2542, 10}, {0x2543, 3}, {0x2544, 10}, {0x2545, 10}, {0x2546, 7}, {0x2547, 7}, {0x2548, 10}, {0x2549, 10}, {0x254a, 10}, {0x254e, 12}, {0x2555, 10}, {0x2556, 10}, {0x2557, 10}, {0x255f, 10}, {0x2561, 10}, {0x2563, 3}, {0x2564, 7}, {0x2565, 3}, {0x2567, 3}, {0x2569, 10}, {0x256a, 10}, {0x256e, 3}, {0x256f, 10}, {0x2572, 10}, {0x2575, 3}, {0x2576, 3}, {0x2577, 3}, }; static struct s_jfm_builtin_chartype_info jfm_builtin_chartype_info_table_v[] = { /* obtained by running mkbijfm.scm */ {0x2122, 2}, {0x2123, 2}, {0x2124, 1}, {0x2125, 1}, {0x2126, 7}, {0x2129, 4}, {0x212a, 4}, {0x2133, 3}, {0x2134, 3}, {0x2135, 3}, {0x2136, 3}, {0x2137, 3}, {0x2139, 3}, {0x213d, 5}, {0x213e, 7}, {0x2142, 7}, {0x2143, 7}, {0x2144, 5}, {0x2145, 5}, {0x2146, 6}, {0x2147, 8}, {0x2148, 6}, {0x2149, 8}, {0x214a, 6}, {0x214b, 8}, {0x214c, 6}, {0x214d, 8}, {0x214e, 6}, {0x214f, 8}, {0x2150, 6}, {0x2151, 8}, {0x2152, 6}, {0x2153, 8}, {0x2154, 6}, {0x2155, 8}, {0x2156, 6}, {0x2157, 8}, {0x2158, 6}, {0x2159, 8}, {0x215a, 6}, {0x215b, 8}, {0x2421, 3}, {0x2423, 3}, {0x2425, 3}, {0x2427, 3}, {0x2429, 3}, {0x2443, 3}, {0x2463, 3}, {0x2465, 3}, {0x2467, 3}, {0x246e, 3}, {0x2521, 3}, {0x2523, 3}, {0x2525, 3}, {0x2527, 3}, {0x2529, 3}, {0x2543, 3}, {0x2563, 3}, {0x2565, 3}, {0x2567, 3}, {0x256e, 3}, {0x2575, 3}, {0x2576, 3}, }; Glocal int vf_tfm_builtin_jfm_chartype(long code_point, int dir_h) { int n, nh, nv, hi, lo, m; struct s_jfm_builtin_chartype_info *tbl; nh = sizeof(jfm_builtin_chartype_info_table_h) / sizeof(struct s_jfm_builtin_chartype_info); nv = sizeof(jfm_builtin_chartype_info_table_v) / sizeof(struct s_jfm_builtin_chartype_info); if (dir_h == 1){ n = nh; tbl = jfm_builtin_chartype_info_table_h; } else { n = nv; tbl = jfm_builtin_chartype_info_table_v; } if ((code_point < tbl[0].char_code) || (tbl[n-1].char_code < code_point)) return 0; lo = 0; hi = n - 1; while (lo < hi){ m = (lo + hi) / 2; if (tbl[m].char_code == code_point) return tbl[m].char_type; if (code_point < tbl[m].char_code) hi = m-1; else lo = m+1; } return 0; } struct s_jfm_builtin_metrics_info { int char_type; double wd, ht, dp; }; static struct s_jfm_builtin_metrics_info jfm_builtin_metrics_info_table_h[] = { /* obtained by running mkbijfm2.scm */ { 0, 0.962216, 0.777588, 0.138855}, { 1, 0.504013, 0.777588, 0.138855}, { 2, 0.353665, 0.777588, 0.138855}, { 3, 0.747434, 0.777588, 0.138855}, { 4, 0.353665, 0.777588, 0.138855}, { 5, 0.504013, 0.777588, 0.138855}, { 6, 0.504013, 0.777588, 0.138855}, { 7, 0.962216, 0.777588, 0.138855}, { 8, 0.353665, 0.777588, 0.138855}, { 9, 0.504013, 0.777588, 0.138855}, {10, 0.962216, 0.777588, 0.138855}, {11, 0.962216, 0.777588, 0.138855}, {12, 0.962216, 0.777588, 0.138855} }; static struct s_jfm_builtin_metrics_info jfm_builtin_metrics_info_table_v[] = { /* obtained by running mkbijfm2.scm */ { 0, 0.962216, 0.458221, 0.458221}, { 1, 0.481108, 0.458221, 0.458221}, { 2, 0.481108, 0.458221, 0.458221}, { 3, 0.747434, 0.458221, 0.458221}, { 4, 0.962216, 0.458221, 0.458221}, { 5, 0.962216, 0.458221, 0.458221}, { 6, 0.481108, 0.458221, 0.458221}, { 7, 0.481108, 0.458221, 0.458221}, { 8, 0.481108, 0.458221, 0.458221}, }; Glocal VF_METRIC1 vf_tfm_builtin_jfm_metric(long code_point, VF_METRIC1 metric, int dir_h, double design_size) { int ct; double w, h, d; struct s_jfm_builtin_metrics_info *tbl; if ((ct = vf_tfm_builtin_jfm_chartype(code_point, dir_h)) < 0) return NULL; if (dir_h == 1){ tbl = jfm_builtin_metrics_info_table_h; } else { tbl = jfm_builtin_metrics_info_table_v; } if (metric == NULL){ if ((metric = vf_alloc_metric1()) == NULL) return NULL; } w = design_size * tbl[ct].wd; h = design_size * tbl[ct].ht; d = design_size * tbl[ct].dp; if (dir_h == 1){ metric->bbx_width = w; metric->bbx_height = h + d; metric->off_x = 0; metric->off_y = h; metric->mv_x = w; metric->mv_y = 0; } else { metric->bbx_width = h + d; metric->bbx_height = w; metric->off_x = -d; metric->off_y = 0; metric->mv_x = 0; metric->mv_y = -w; } return metric; } /*EOF*/ vflib3-3.6.14.dfsg/src/drv_mojikmap.c0000644000175000017500000005075607363720667016736 0ustar mohuramohura/* * drv_mojikmap.c - A font driver for mapping to mojikyo fonts. * This font driver provides a single virtual mojikyo font which is * internally mapped to real font files. * * by Hirotsugu Kakugawa * * 8 Dec 1999 First implementation. * */ /* * Copyright (C) 1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "cache.h" #include "sexp.h" #include "str.h" #include "path.h" #include "ccv.h" #include "mojikmap.h" #define DELAYED_OPEN #define SUBFONT_NOT_OPENED_YET -2 #define SUBFONT_NOT_EXIST -1 #define CCV_NOT_TRIED -2 #define CCV_NOT_EXIST -1 struct s_font_mojikmap { char *font_name; int div_scheme; char *subfont_name; int nsubfonts; int *subfont_fids; int ttf_subfont_enc; /* when div_scheme is TTF */ int ttf_subfont_ccv_id; /* when div_scheme is TTF */ SEXP props; }; typedef struct s_font_mojikmap *FONT_MOJIKMAP; Private SEXP_ALIST default_properties = NULL; Private SEXP_ALIST default_variables = NULL; Private SEXP_STRING default_debug_mode = NULL; Private int mojikmap_create(VF_FONT,char*,char*,int,SEXP); Private int mojikmap_close(VF_FONT); Private int mojikmap_get_metric1(VF_FONT,long,VF_METRIC1, double,double); Private int mojikmap_get_metric2(VF_FONT,long,VF_METRIC2, double,double); Private int mojikmap_get_fontbbx1(VF_FONT,double,double, double*,double*,double*,double*); Private int mojikmap_get_fontbbx2(VF_FONT,double,double, int*,int*,int*,int*); Private VF_BITMAP mojikmap_get_bitmap1(VF_FONT,long,double,double); Private VF_BITMAP mojikmap_get_bitmap2(VF_FONT,long,double,double); Private VF_OUTLINE mojikmap_get_outline(VF_FONT,long,double,double); Private char* mojikmap_get_font_prop(VF_FONT,char*); Private int mojikmap_query_font_type(VF_FONT,long); Private void release_mem(FONT_MOJIKMAP); Private int font_mapping(VF_FONT,FONT_MOJIKMAP,long,long*); Private int mojik_delayed_open(VF_FONT,FONT_MOJIKMAP,int); Private int debug_on(char type); Public int VF_Init_Driver_Mojikmap(void) { struct s_capability_table ct[10]; int z; z = 0; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_properties; /* VF_CAPE_VARIABLE_VALUES */ ct[z].cap = VF_CAPE_VARIABLE_VALUES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_variables; /* VF_CAPE_DEBUG */ ct[z].cap = VF_CAPE_DEBUG; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &default_debug_mode; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; if (vf_cap_GetParsedClassDefault(FONTCLASS_NAME_MOJIKMAP, ct, NULL, NULL) == VFLIBCAP_PARSED_ERROR) return -1; VF_InstallFontDriver(FONTCLASS_NAME_MOJIKMAP, (DRIVER_FUNC_TYPE)mojikmap_create); return 0; } Private int mojikmap_create(VF_FONT font, char *font_class, char *font_name, int implicit, SEXP entry) { FONT_MOJIKMAP font_mojikmap; SEXP cap_div_scheme, cap_subfont_name, cap_ttf_subfont_enc, cap_props; char *s1; int i; struct s_capability_table ct[20]; int z; z = 0; /* VF_CAPE_FONT_CLASS */ ct[z].cap = VF_CAPE_FONT_CLASS; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_ESSENTIAL; ct[z++].val = NULL; /* VF_CAPE_DIV_SCHEME */ ct[z].cap = VF_CAPE_DIV_SCHEME; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_div_scheme; /* VF_CAPE_SUB_FONT_NAME */ ct[z].cap = VF_CAPE_SUBFONT_NAME; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_subfont_name; /* VF_CAPE_TTF_SUBFONT_ENC */ ct[z].cap = VF_CAPE_TTF_SUBFONT_ENC; ct[z].type = CAPABILITY_STRING; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_ttf_subfont_enc; /* VF_CAPE_PROPERTIES */ ct[z].cap = VF_CAPE_PROPERTIES; ct[z].type = CAPABILITY_ALIST; ct[z].ess = CAPABILITY_OPTIONAL; ct[z++].val = &cap_props; /* end */ ct[z].cap = NULL; ct[z].type = 0; ct[z].ess = 0; ct[z++].val = NULL; /* No support for implicit fonts */ if (implicit == 1) return -1; /* Only supports explicit fonts */ if (vf_cap_GetParsedFontEntry(entry, font_name, ct, default_variables, NULL) == VFLIBCAP_PARSED_ERROR) return -1; font->font_type = -1; /* Use mojikmap_query_font_type() */ font->get_metric1 = mojikmap_get_metric1; font->get_metric2 = mojikmap_get_metric2; font->get_fontbbx1 = mojikmap_get_fontbbx1; font->get_fontbbx2 = mojikmap_get_fontbbx2; font->get_bitmap1 = mojikmap_get_bitmap1; font->get_bitmap2 = mojikmap_get_bitmap2; font->get_outline = mojikmap_get_outline; font->get_font_prop = mojikmap_get_font_prop; font->query_font_type = mojikmap_query_font_type; font->close = mojikmap_close; ALLOC_IF_ERR(font_mojikmap, struct s_font_mojikmap){ vf_error = VF_ERR_NO_MEMORY; return -1; } if ((font_mojikmap->font_name = vf_strdup(font_name)) == NULL){ vf_error = VF_ERR_NO_MEMORY; vf_free(font_mojikmap); return -1; } font_mojikmap->font_name = NULL; font_mojikmap->div_scheme = DIVISION_SCHEME_TTF; font_mojikmap->subfont_name = NULL; font_mojikmap->subfont_fids = NULL; font_mojikmap->ttf_subfont_ccv_id = CCV_NOT_TRIED; font_mojikmap->ttf_subfont_enc = -1; font_mojikmap->props = default_properties; /* implicit == 0 */ if (cap_props != NULL){ font_mojikmap->props = cap_props; } if (cap_div_scheme != NULL){ s1 = vf_sexp_get_cstring(cap_div_scheme); if ((vf_strcmp_ci(s1, "ttf") == 0) || (vf_strcmp_ci(s1, "truetype") == 0)){ font_mojikmap->div_scheme = DIVISION_SCHEME_TTF; } else if ((vf_strcmp_ci(s1, "type1") == 0) || (vf_strcmp_ci(s1, "pfb") == 0)){ font_mojikmap->div_scheme = DIVISION_SCHEME_TYPE1; } else { fprintf(stderr, "VFlib warning: unknown division scheme name for " "capability '%s' in definition of font %s.\n", VF_CAPE_DIV_SCHEME, font_name); font_mojikmap->div_scheme = DIVISION_SCHEME_TTF; } } if (cap_subfont_name != NULL){ font_mojikmap->subfont_name = vf_strdup(vf_sexp_get_cstring(cap_subfont_name)); } else { if (font_mojikmap->div_scheme == DIVISION_SCHEME_TTF){ font_mojikmap->subfont_name = vf_strdup(DEFAULT_SUBFONT_NAME_TTF); } else { font_mojikmap->subfont_name = vf_strdup(DEFAULT_SUBFONT_NAME_TYPE1); } } switch (font_mojikmap->div_scheme){ case DIVISION_SCHEME_TTF: font_mojikmap->nsubfonts = 21; font_mojikmap->ttf_subfont_enc = DEFAULT_TTF_SUBFONT_ENC; if (cap_ttf_subfont_enc != NULL){ s1 = vf_sexp_get_cstring(cap_ttf_subfont_enc); if (vf_strcmp_ci(s1, "unicode") == 0){ font_mojikmap->ttf_subfont_enc = TTF_SUBFONT_ENC_UNICODE; } else if ((vf_strcmp_ci(s1, "ISO2022") == 0) || (vf_strcmp_ci(s1, "ISO-2022") == 0) || (vf_strcmp_ci(s1, "JIS") == 0)){ font_mojikmap->ttf_subfont_enc = TTF_SUBFONT_ENC_JIS; } } break; case DIVISION_SCHEME_TYPE1: font_mojikmap->nsubfonts = 21*TYPE1_NSUBS; font_mojikmap->ttf_subfont_enc = -1; break; } ALLOCN_IF_ERR(font_mojikmap->subfont_fids, int, font_mojikmap->nsubfonts){ vf_error = VF_ERR_NO_MEMORY; goto CANT_OPEN; } for (i = 0; i < font_mojikmap->nsubfonts; i++) font_mojikmap->subfont_fids[i] = SUBFONT_NOT_OPENED_YET; #ifndef DELAYED_OPEN switch (font_mojikmap->div_scheme){ case DIVISION_SCHEME_TTF: for (i = 0; i < font_mojikmap->nsubfonts; i++){ sprintf(subfont_name, font_mojikmap->subfont_name, i+101); if (font->mode == 1){ font_mojikmap->subfont_fids[i] = VF_OpenFont1(subfont_name, font->dpi_x, font->dpi_y, font->point_size, font->mag_x, font->mag_y); } else if (font->mode == 2){ font_mojikmap->subfont_fids[i] = VF_OpenFont2(subfont_name, font->pixel_size, font->mag_x, font->mag_y); } else { fprintf(stderr, "VFlib: Internal error in mojikmap_create()\n"); abort(); } if (font_mojikmap->subfont_fids[i] < 0){ font_mojikmap->subfont_fids[i] = SUBFONT_NOT_EXIST; } if (debug_on('f')) printf("VFlib mojikmap: subfont name=%s fid=%d\n", subfont_name, font_mojikmap->subfont_fids[i]); } break; case DIVISION_SCHEME_TYPE1: for (i = 0; i < font_mojikmap->nsubfonts; i++){ for (j = 0; j < TYPE1_NSUBS; j++){ sprintf(subfont_name, font_mojikmap->subfont_name, i+101, j+6); if (font->mode == 1){ font_mojikmap->subfont_fids[i*TYPE1_NSUBS + j] = VF_OpenFont1(subfont_name, font->dpi_x, font->dpi_y, font->point_size, font->mag_x, font->mag_y); } else if (font->mode == 2){ font_mojikmap->subfont_fids[i*TYPE1_NSUBS + j] = VF_OpenFont2(subfont_name, font->pixel_size, font->mag_x, font->mag_y); } else { fprintf(stderr, "VFlib: Internal error in mojikmap_create()\n"); abort(); } if (font_mojikmap->subfont_fids[i*TYPE1_NSUBS + j] < 0){ font_mojikmap->subfont_fids[i*TYPE1_NSUBS + j] = SUBFONT_NOT_EXIST; } if (debug_on('f')) printf("VFlib mojikmap: subfont name=%s fid=%d\n", subfont_name, font_mojikmap->subfont_fids[i*TYPE1_NSUBS + j]); } } break; } #endif /* DELAYED_OPEN */ font->private = font_mojikmap; vf_sexp_free3(&cap_div_scheme, &cap_subfont_name, &cap_ttf_subfont_enc); return 0; CANT_OPEN: vf_sexp_free3(&cap_div_scheme, &cap_subfont_name, &cap_ttf_subfont_enc); vf_error = VF_ERR_NO_FONT_ENTRY; release_mem(font_mojikmap); return -1; } Private int mojikmap_close(VF_FONT font) { release_mem((FONT_MOJIKMAP)(font->private)); return 0; } Private void release_mem(FONT_MOJIKMAP font_mojikmap) { int i; if (font_mojikmap != NULL){ vf_free(font_mojikmap->font_name); vf_free(font_mojikmap->subfont_name); vf_sexp_free1(&font_mojikmap->props); for (i = 0; i < font_mojikmap->nsubfonts; i++){ if (font_mojikmap->subfont_fids[i] >= 0) VF_CloseFont(font_mojikmap->subfont_fids[i]); } vf_free(font_mojikmap); } } Private int mojikmap_get_metric1(VF_FONT font, long code_point, VF_METRIC1 metric, double mag_x, double mag_y) { FONT_MOJIKMAP font_mojikmap; int fid; long cp; if (metric == NULL){ fprintf(stderr, "VFlib internal error: in mojikmap_get_metric1()\n"); abort(); } if ((font_mojikmap = (FONT_MOJIKMAP)font->private) == NULL){ fprintf(stderr, "VFlib internal error in mojikmap class.\n"); abort(); } if ((fid = font_mapping(font, font_mojikmap, code_point, &cp)) < 0) return -1; if (cp < 0) return -1; VF_GetMetric1(fid, cp, metric, mag_x, mag_y); return 0; } Private int mojikmap_get_fontbbx1(VF_FONT font, double mag_x, double mag_y, double *w_p, double *h_p, double *xoff_p, double *yoff_p) { FONT_MOJIKMAP font_mojikmap; int fid, i; double w, h, xoff, yoff; if ((font_mojikmap = (FONT_MOJIKMAP)font->private) == NULL){ fprintf(stderr, "VFlib internal error in mojikmap class.\n"); abort(); } *w_p = *h_p = *xoff_p = *yoff_p = 0; w = h = xoff = yoff = 0; for (i = 0; i < font_mojikmap->nsubfonts; i++){ if ((fid = font_mojikmap->subfont_fids[i]) < 0) continue; if (VF_GetFontBoundingBox1(fid, mag_x, mag_y, &w, &h, &xoff, &yoff) < 0) continue; if (w > *w_p) *w_p = w; if (h > *h_p) *h_p = h; if (xoff < *xoff_p) *xoff_p = xoff; if (yoff > *yoff_p) *yoff_p = yoff; } return 0; } Private VF_BITMAP mojikmap_get_bitmap1(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_MOJIKMAP font_mojikmap; int fid; long cp; if ((font_mojikmap = (FONT_MOJIKMAP)font->private) == NULL){ fprintf(stderr, "VFlib internal error in mojikmap class.\n"); abort(); } if ((fid = font_mapping(font, font_mojikmap, code_point, &cp)) < 0) return NULL; if (cp < 0) return NULL; return VF_GetBitmap1(fid, cp, mag_x, mag_y); } Private VF_OUTLINE mojikmap_get_outline(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_MOJIKMAP font_mojikmap; int fid; long cp; if ((font_mojikmap = (FONT_MOJIKMAP)font->private) == NULL){ fprintf(stderr, "VFlib internal error in mojikmap class.\n"); abort(); } if ((fid = font_mapping(font, font_mojikmap, code_point, &cp)) < 0) return NULL; if (cp < 0) return NULL; return VF_GetOutline(fid, cp, mag_x, mag_y); } Private int mojikmap_get_metric2(VF_FONT font, long code_point, VF_METRIC2 metric, double mag_x, double mag_y) { FONT_MOJIKMAP font_mojikmap; int fid; long cp; if ((font_mojikmap = (FONT_MOJIKMAP)font->private) == NULL){ fprintf(stderr, "VFlib internal error in mojikmap class.\n"); abort(); } if ((fid = font_mapping(font, font_mojikmap, code_point, &cp)) < 0) return -1; if (cp < 0) return -1; VF_GetMetric2(fid, cp, metric, mag_x, mag_y); return 0; } Private int mojikmap_get_fontbbx2(VF_FONT font, double mag_x, double mag_y, int*w_p, int *h_p, int *xoff_p, int *yoff_p) { FONT_MOJIKMAP font_mojikmap; int w, h, xoff, yoff; int fid, i; if ((font_mojikmap = (FONT_MOJIKMAP)font->private) == NULL){ fprintf(stderr, "VFlib internal error in mojikmap class.\n"); abort(); } *w_p = *h_p = *xoff_p = *yoff_p = 0; w = h = xoff = yoff = 0; for (i = 0; i < font_mojikmap->nsubfonts; i++){ if ((fid = font_mojikmap->subfont_fids[i]) < 0) continue; if (VF_GetFontBoundingBox2(fid, mag_x, mag_y, &w, &h, &xoff, &yoff) < 0) continue; if (w > *w_p) *w_p = w; if (h > *h_p) *h_p = h; if (xoff < *xoff_p) *xoff_p = xoff; if (yoff > *yoff_p) *yoff_p = yoff; } return 0; } Private VF_BITMAP mojikmap_get_bitmap2(VF_FONT font, long code_point, double mag_x, double mag_y) { FONT_MOJIKMAP font_mojikmap; int fid; long cp; if ((font_mojikmap = (FONT_MOJIKMAP)font->private) == NULL){ fprintf(stderr, "VFlib internal error in mojikmap class.\n"); abort(); } if ((fid = font_mapping(font, font_mojikmap, code_point, &cp)) < 0) return NULL; if (cp < 0) return NULL; return VF_GetBitmap2(fid, cp, mag_x, mag_y); } Private char* mojikmap_get_font_prop(VF_FONT font, char *prop_name) { FONT_MOJIKMAP font_mojikmap; SEXP v; int fid; long cp; if ((font_mojikmap = (FONT_MOJIKMAP)font->private) == NULL){ fprintf(stderr, "VFlib internal error in mojikmap class.\n"); abort(); } if ((v = vf_sexp_assoc(prop_name, font_mojikmap->props)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } else if ((v = vf_sexp_assoc(prop_name, default_properties)) != NULL){ return vf_strdup(vf_sexp_get_cstring(vf_sexp_cadr(v))); } if ((fid = font_mapping(font, font_mojikmap, (long)1, &cp)) < 0) return NULL; if (cp < 0) return NULL; return VF_GetFontProp(fid, prop_name); } Private int mojikmap_query_font_type(VF_FONT font, long code_point) { FONT_MOJIKMAP font_mojikmap; int fid; long cp; if ((font_mojikmap = (FONT_MOJIKMAP)font->private) == NULL){ fprintf(stderr, "VFlib internal error in mojikmap class.\n"); abort(); } if ((fid = font_mapping(font, font_mojikmap, code_point, &cp)) < 0) return -1; if (cp < 0) return -1; return VF_QueryFontType(fid, cp); } Private int font_mapping(VF_FONT font, FONT_MOJIKMAP font_mojikmap, long code_point, long *cp) { int g, fid, c1, c2; long c; if (code_point == 0){ if (cp != NULL) *cp = -1; return -1; } g = -1; c = 0; switch (font_mojikmap->div_scheme){ case DIVISION_SCHEME_TTF: g = code_point / (94*60); c = code_point % (94*60); if (c == 0){ g += 100; c = (94*60); } else { g += 101; } c1 = ((c-1) / 94); c2 = ((c-1) % 94); if (c1 < 30){ c1 += 16; } else { c1 += 18; } c = (c1+0x20) * 0x100 + (c2+0x21); g -= 101; if (font_mojikmap->ttf_subfont_enc == TTF_SUBFONT_ENC_JIS){ ; } else if (font_mojikmap->ttf_subfont_enc == TTF_SUBFONT_ENC_UNICODE){ if (font_mojikmap->ttf_subfont_ccv_id == CCV_NOT_TRIED){ font_mojikmap->ttf_subfont_ccv_id = vf_ccv_require("JISX0208", "ISO2022", "UNICODE", "UNICODE"); if (debug_on('f')){ printf("VFlib mojikmap: CCV: id=%d\n", font_mojikmap->ttf_subfont_ccv_id); } if (font_mojikmap->ttf_subfont_ccv_id < 0){ font_mojikmap->ttf_subfont_ccv_id = CCV_NOT_EXIST; return -1; /* failed to invoke ccv */ } } if (font_mojikmap->ttf_subfont_ccv_id >= 0){ c = vf_ccv_conv(font_mojikmap->ttf_subfont_ccv_id, c); } } else { /* ??? */ ; } break; case DIVISION_SCHEME_TYPE1: g = (code_point) / (94*60); c = (code_point) % (94*60); if (c == 0){ g += 100; c = 5640; } else { g += 101; } if (c > 2820){ c += 380; } else { c += 192; } g -= 101; g = g * TYPE1_NSUBS + (c / 256); c = (c % 256); break; default: break; } if ((g < 0) || (g >= font_mojikmap->nsubfonts)) return -1; if (cp != NULL) *cp = c; fid = mojik_delayed_open(font, font_mojikmap, g); if (debug_on('m')){ printf("VFlib mojikmap: Code Point: %ld => FID: %d, Code: 0x%lx\n", code_point, fid, c); } return fid; } Private int mojik_delayed_open(VF_FONT font, FONT_MOJIKMAP font_mojikmap, int g) { char subfont[1024]; if ((g < 0) || (g >= font_mojikmap->nsubfonts)) return -1; if (font_mojikmap->subfont_fids[g] >= 0) return font_mojikmap->subfont_fids[g]; if (font_mojikmap->subfont_fids[g] == SUBFONT_NOT_EXIST) return -1; switch (font_mojikmap->div_scheme){ case DIVISION_SCHEME_TTF: sprintf(subfont, font_mojikmap->subfont_name, g+101); if (font->mode == 1){ font_mojikmap->subfont_fids[g] = VF_OpenFont1(subfont, font->dpi_x, font->dpi_y, font->point_size, font->mag_x, font->mag_y); } else if (font->mode == 2){ font_mojikmap->subfont_fids[g] = VF_OpenFont2(subfont, font->pixel_size, font->mag_x, font->mag_y); } else { fprintf(stderr, "VFlib: Internal error in mojikmap_delayed_open()\n"); abort(); } break; case DIVISION_SCHEME_TYPE1: sprintf(subfont, font_mojikmap->subfont_name, (g / TYPE1_NSUBS) + 101, (g % TYPE1_NSUBS) + 6); if (font->mode == 1){ font_mojikmap->subfont_fids[g] = VF_OpenFont1(subfont, font->dpi_x, font->dpi_y, font->point_size, font->mag_x, font->mag_y); } else if (font->mode == 2){ font_mojikmap->subfont_fids[g] = VF_OpenFont2(subfont, font->pixel_size, font->mag_x, font->mag_y); } else { fprintf(stderr, "VFlib: Internal error in mojikmap_delayed_open()\n"); abort(); } break; } if (font_mojikmap->subfont_fids[g] < 0){ font_mojikmap->subfont_fids[g] = SUBFONT_NOT_EXIST; } if (debug_on('f')) printf("VFlib mojikmap: subfont name=%s fid=%d\n", subfont, font_mojikmap->subfont_fids[g]); return font_mojikmap->subfont_fids[g]; } Private int debug_on(char type) { char *p; if (default_debug_mode == NULL) return FALSE; if ((p = vf_sexp_get_cstring(default_debug_mode)) == NULL) return FALSE; while (*p != '\0'){ if (*p == type) return TRUE; p++; } while (*p != '\0'){ if (*p == '*') return TRUE; p++; } return FALSE; } /*EOF*/ vflib3-3.6.14.dfsg/src/mjk.el0000644000175000017500000000241507026053356015166 0ustar mohuramohura(defun map-mjk-ttf (cp) (let ((g (/ cp (* 94 60))) (c (mod cp (* 94 60)))) (if (= c 0) (progn (setq g (+ g 100)) (setq c (* 94 60))) (setq g (+ g 101))) (let ((c1 (/ (- c 1) 94)) (c2 (mod (- c 1) 94))) (if (< c1 30) (setq c1 (+ c1 16)) (setq c1 (+ c1 18))) (list (- g 101) (format "0x%x" (+ (* (+ c1 32) 256) c2 33)) )))) (map-mjk-ttf 1) (map-mjk-ttf 2) (map-mjk-ttf 10) (map-mjk-ttf 2820) (map-mjk-ttf 2900) (map-mjk-ttf 5639) (map-mjk-ttf 5640) (map-mjk-ttf 5641) (map-mjk-ttf 102144) (defun map-mjk-type1 (cp) (let ((g (/ cp (* 94 60))) (c (mod cp (* 94 60)))) (if (= c 0) (progn (setq g (+ g 100)) (setq c (* 94 60))) (setq g (+ g 101))) (if (> c 2820) (setq c (+ c 380)) (setq c (+ c 192))) (list (- g 101) (/ c 256) (format "0x%x" (mod c 256))))) (map-mjk-type1 1) (map-mjk-type1 2) (map-mjk-type1 63) (map-mjk-type1 64) (map-mjk-type1 65) (map-mjk-type1 319) (map-mjk-type1 320) (map-mjk-type1 2820) (map-mjk-type1 2821) (map-mjk-type1 5639) (map-mjk-type1 5640) (map-mjk-type1 5641) (map-mjk-type1 5642) (map-mjk-type1 5643) (map-mjk-type1 (+ (* 7 16) 5888 12)) (map-mjk-type1 (+ (* 7 16) 5888 13)) (map-mjk-type1 (+ (* 7 16) 5888 14)) (map-mjk-type1 (+ (* 7 16) 5888 15)) (map-mjk-type1 (+ (* 7 16) 5888 16)) vflib3-3.6.14.dfsg/src/mkbijfm.scm0000755000175000017500000000222307023652147016206 0ustar mohuramohura#!/usr/local/bin/scm (require 'format) (define (mk-builtin-jfm ifile ofile) (with-output-to-file ofile (lambda () (with-input-from-file ifile mk-builtin-jfm-2)))) (define (mk-builtin-jfm-2) (let ((s (read))) (if (not (eof-object? s)) (begin (if (eq? (car s) 'charsintype) (let ((base (cadr s)) (ct (if (>= (caddr s) 10) (- (caddr s) 2) (caddr s))) (chars (cdddr s))) (for-each (lambda (ch) (display (format " {0x~X, ~2D},\n" (symbol->integer ch) ct))) chars))) (mk-builtin-jfm-2))))) (define (symbol->integer sym) (+ (* 256 (- (char->integer (string-ref (symbol->string sym) 0)) 128)) (- (char->integer (string-ref (symbol->string sym) 1)) 128))) (if #f (begin (system "tftopl-j `kpsewhich min10.tfm` foo.pl 2>&1 >/dev/null" ) (mk-builtin-jfm "foo.pl" "__chartypes") (system "sort __chartypes") (system "rm -f foo.pl __chartypes")) (begin (system "tftopl-j `kpsewhich tmin10.tfm` foo.pl 2>&1 >/dev/null" ) (mk-builtin-jfm "foo.pl" "__chartypes") (system "sort __chartypes") (system "rm -f foo.pl __chartypes"))) (quit) vflib3-3.6.14.dfsg/src/jfmbi.h0000644000175000017500000000224107023663573015325 0ustar mohuramohura/* * tfm.h - TFM files interface */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_JFMBI_H__ #define __VFLIB_JFMBI_H__ extern int vf_tfm_builtin_jfm_chartype(long code_point, int dir_h); extern VF_METRIC1 vf_tfm_builtin_jfm_metric(long code_point, VF_METRIC1 metric, int dir_h, double design_size); #endif /*__VFLIB_JFMBI_H__*/ vflib3-3.6.14.dfsg/src/mojikmap.h0000644000175000017500000000343307023410172016032 0ustar mohuramohura/* * mojikmap.h - a header file for drv_mojikmap.c * by Hirotsugu Kakugawa * */ /* * Copyright (C) 1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define FONTCLASS_NAME_MOJIKMAP "mojikyo-mapper" #define VF_CAPE_SUBFONT_NAME "subfont-name-format" #define VF_CAPE_DIV_SCHEME "division-scheme" #define VF_CAPE_TTF_SUBFONT_ENC "truetype-subfont-encoding" #define TYPE1_NSUBS 24 #define DIVISION_SCHEME_TTF 0 #define DIVISION_SCHEME_TYPE1 1 #define DEFAULT_DIVISION_SCHEME DIVISION_SCHEME_TTF #define DEFAULT_SUBFONT_NAME_TTF "Mojik%d.ttf" #define DEFAULT_SUBFONT_NAME_TYPE1 "mo%dm%02d.pfb" #if (DEFAULT_DIVISION_SCHEME == DIVISION_SCHEME_TTF) # define DEFAULT_SUBFONT_NAME DEFAULT_SUBFONT_NAME_TTF #elif (DEFAULT_DIVISION_SCHEME == DIVISION_SCHEME_TYPE1) # define DEFAULT_SUBFONT_NAME DEFAULT_SUBFONT_NAME_TYPE1 #endif #define TTF_SUBFONT_ENC_UNICODE 0 #define TTF_SUBFONT_ENC_JIS 1 #define DEFAULT_TTF_SUBFONT_ENC TTF_SUBFONT_ENC_UNICODE /*EOF*/ vflib3-3.6.14.dfsg/src/bijfmtest.c0000644000175000017500000000547307023645457016233 0ustar mohuramohura#include #include struct s_chartype_info { int char_code; int char_type; }; static struct s_chartype_info chartype_info_table[] = { /* obtained by running mkbijfm.scm */ {0x2122, 9}, {0x2123, 9}, {0x2124, 8}, {0x2125, 8}, {0x2126, 4}, {0x2127, 4}, {0x2128, 4}, {0x2129, 5}, {0x212a, 4}, {0x212b, 2}, {0x212c, 2}, {0x212d, 4}, {0x212e, 4}, {0x212f, 5}, {0x2130, 5}, {0x2133, 5}, {0x2135, 5}, {0x2136, 3}, {0x2137, 3}, {0x2139, 3}, {0x213e, 4}, {0x2142, 4}, {0x2143, 4}, {0x2146, 4}, {0x2147, 4}, {0x2148, 5}, {0x2149, 5}, {0x214a, 6}, {0x214b, 1}, {0x214c, 6}, {0x214d, 1}, {0x214e, 6}, {0x214f, 1}, {0x2150, 6}, {0x2151, 1}, {0x2152, 6}, {0x2153, 1}, {0x2154, 6}, {0x2155, 1}, {0x2156, 6}, {0x2157, 1}, {0x2158, 6}, {0x2159, 1}, {0x215a, 6}, {0x215b, 1}, {0x2168, 3}, {0x2169, 3}, {0x216a, 3}, {0x216b, 5}, {0x216c, 5}, {0x216d, 5}, {0x2170, 3}, {0x2171, 3}, {0x2172, 3}, {0x2178, 5}, {0x2421, 3}, {0x2423, 3}, {0x2425, 3}, {0x2426, 7}, {0x2427, 3}, {0x2429, 3}, {0x242f, 7}, {0x2430, 7}, {0x2431, 7}, {0x2432, 7}, {0x2439, 7}, {0x243a, 7}, {0x2443, 3}, {0x2463, 3}, {0x2465, 3}, {0x2467, 3}, {0x246a, 7}, {0x246e, 3}, {0x2521, 3}, {0x2522, 10}, {0x2523, 3}, {0x2524, 10}, {0x2525, 3}, {0x2526, 10}, {0x2527, 3}, {0x2529, 3}, {0x252a, 10}, {0x252f, 11}, {0x2530, 11}, {0x2531, 10}, {0x2532, 10}, {0x2535, 10}, {0x2536, 10}, {0x253d, 10}, {0x253e, 10}, {0x253f, 11}, {0x2540, 11}, {0x2541, 10}, {0x2542, 10}, {0x2543, 3}, {0x2544, 10}, {0x2545, 10}, {0x2546, 7}, {0x2547, 7}, {0x2548, 10}, {0x2549, 10}, {0x254a, 10}, {0x254e, 12}, {0x2555, 10}, {0x2556, 10}, {0x2557, 10}, {0x255f, 10}, {0x2561, 10}, {0x2563, 3}, {0x2564, 7}, {0x2565, 3}, {0x2567, 3}, {0x2569, 10}, {0x256a, 10}, {0x256e, 3}, {0x256f, 10}, {0x2572, 10}, {0x2575, 3}, {0x2576, 3}, {0x2577, 3} }; int vf_tfm_builtin_jfm_chartype(long code_point) { int ct; int n, hi, lo, m; n = sizeof(chartype_info_table) / sizeof(struct s_chartype_info); if ((code_point < chartype_info_table[0].char_code) || (chartype_info_table[n-1].char_code < code_point)) return 0; lo = 0; hi = n - 1; while (lo < hi){ m = (lo + hi) / 2; if (chartype_info_table[m].char_code == code_point) return chartype_info_table[m].char_type; if (code_point < chartype_info_table[m].char_code) hi = m-1; else lo = m+1; } return 0; } int main(int argc, char **argv) { long d; int ct; sscanf(argv[1], "%li", &d); ct = vf_tfm_builtin_jfm_chartype(d); printf("*** 0x%lx => %d\n", d, ct); } vflib3-3.6.14.dfsg/src/mkbijfm2.scm0000755000175000017500000000177207023652551016277 0ustar mohuramohura#!/usr/local/bin/scm (require 'format) (define (mk-builtin-jfm ifile ofile) (with-output-to-file ofile (lambda () (with-input-from-file ifile mk-builtin-jfm-2)))) (define (mk-builtin-jfm-2) (let ((s (read))) (if (not (eof-object? s)) (begin (if (eq? (car s) 'type) (let ((base (cadr s)) (ct (if (>= (caddr s) 10) (- (caddr s) 2) (caddr s))) (wd (caddr (car (cdddr s)))) (ht (caddr (cadr (cdddr s)))) (dp (caddr (caddr (cdddr s))))) (display (format " {~2D, ~F, ~F, ~F},\n" ct wd ht dp)))) (mk-builtin-jfm-2))))) (if #f (begin (system "tftopl-j `kpsewhich min10.tfm` foo.pl 2>&1 >/dev/null" ) (mk-builtin-jfm "foo.pl" "__chardimen") (system "cat __chardimen") (system "rm -f foo.pl __chardimen")) (begin (system "tftopl-j `kpsewhich tmin10.tfm` foo.pl 2>&1 >/dev/null" ) (mk-builtin-jfm "foo.pl" "__chardimen") (system "cat __chardimen") (system "rm -f foo.pl __chardimen"))) (quit) vflib3-3.6.14.dfsg/src/dbg.c0000644000175000017500000000015607024055104014752 0ustar mohuramohura#include #include "VFlib-3_6.h" int main(int argc, char **argv){ #include "__dbg.tmp" return 0; } vflib3-3.6.14.dfsg/src/vflmktfm.c0000644000175000017500000001005307300362440016042 0ustar mohuramohura/* * vflmktfm.c * - a vflibcap entry generator for TeX TFM files * * - This program prints vflibcap entries to standard output. * * - Useful for generating vflibcap for TeX DVI drivers * * * by Hirotsugu Kakugawa * * 10 May 2001 */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "texfonts.h" #include "tfm.h" #include "fsearch.h" #include "vflmklib.h" void gen_class_deafult(void); char *mode = DEFAULT_KPS_MODE; char *dpi = NULL; int dpi_i = DEFAULT_KPS_DPI; #define NDIRS 64 int n_tfmf; char *tfm_fontdirs[NDIRS]; char *glyph_style = TEX_GLYPH_STYLE_FILL_STR; char *cmdline = NULL; int main(int argc, char **argv) { int i; int xargc; char **xargv; dpi = malloc(256); sprintf(dpi, "%d", dpi_i); cmdline = copy_cmdline(argc, argv); n_tfmf = 0; for (i = 0; i < NDIRS; i++){ tfm_fontdirs[i] = NULL; } xargc = argc; xargv = argv; for (xargc--,xargv++; xargc > 0; xargc--,xargv++){ if ((strcmp(*xargv, "--help") == 0) || (strcmp(*xargv, "-help") == 0)){ printf("vflmktfm: generates vflibcap entries for TFM fonts\n"); printf("Usage: vflmktfm [options]\n"); printf("Options\n"); printf(" -d DIR : TFM font file directory\n"); printf(" -r DPI : Default device resolution\n"); printf(" -n MODE : Device mode name for kpathsea\n"); printf(" -g STYLE : Glyph style, 'fill' (default) or 'empty'\n"); printf("Example: vflmktfm -c -d TEXMF -d /usr/tex/fonts -g fill\n"); exit(0); } else if (strcmp(*xargv, "-d") == 0){ /* font dir */ if (n_tfmf == NDIRS){ fprintf(stderr, "Too many TFM font directories\n"); exit(1); } xargv++; xargc--; tfm_fontdirs[n_tfmf++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-r") == 0){ xargv++; xargc--; check_argc(xargc); dpi = strdup(*xargv); } else if (strcmp(*xargv, "-n") == 0){ /* mode */ xargv++; xargc--; check_argc(xargc); mode = x_strdup(*xargv); } else if (strcmp(*xargv, "-g") == 0){ xargv++; xargc--; check_argc(xargc); if ((strcmp(*xargv, TEX_GLYPH_STYLE_FILL_STR) != 0) && (strcmp(*xargv, TEX_GLYPH_STYLE_EMPTY_STR) != 0)){ fprintf(stderr, "Unknown glyph style name: %s\n", *xargv); fprintf(stderr, "(Must be '%s' or '%s'. Default is '%s'.\n", TEX_GLYPH_STYLE_FILL_STR, TEX_GLYPH_STYLE_EMPTY_STR, glyph_style); exit(1); } glyph_style = strdup(*xargv); } else { if (*xargv[0] == '-'){ fprintf(stderr, "vflmktfm: unknown option %s\n", *xargv); exit(1); } break; } } banner("TFM", "vflmktfm", cmdline); gen_class_deafult(); return 0; } void gen_class_deafult(void) { int i; printf("(%s %s", VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, FONTCLASS_NAME_TFM); printf("\n (%s", VF_CAPE_FONT_DIRECTORIES); for (i = 0; i < n_tfmf; i++) printf("\n \"%s\"", tfm_fontdirs[i]); printf(")"); printf("\n (%s %s)", VF_CAPE_DPI, dpi); printf("\n (%s \".tfm\" \".ofm\")", VF_CAPE_EXTENSIONS); printf("\n (%s \"%s\")", VF_CAPE_TEX_GLYPH_STYLE, glyph_style); printf(")\n"); printf("\n"); } vflib3-3.6.14.dfsg/src/vflmkvf.c0000644000175000017500000001344707300362450015702 0ustar mohuramohura/* * vflmkvf.c * - a vflibcap entry generator for TeX VF files * * - This program prints vflibcap entries to standard output. * * - Useful for generating vflibcap for TeX DVI drivers * * * by Hirotsugu Kakugawa * * 10 May 2001 */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "texfonts.h" #include "vf.h" #include "fsearch.h" #include "vflmklib.h" void gen_class_deafult(void); char *mode = DEFAULT_KPS_MODE; char *dpi = NULL; int dpi_i = DEFAULT_KPS_DPI; #define NDIRS 64 int n_vff; char *vf_fontdirs[NDIRS]; #define NMAPS 64 int n_map; char *map_class[NMAPS]; char *map_map[NMAPS]; char *map_opt[NMAPS]; char *cmdline = NULL; char *glyph_style = TEX_GLYPH_STYLE_FILL_STR; char *open_style = TEX_OPEN_STYLE_TRY_STR; int main(int argc, char **argv) { int i; int xargc; char **xargv; dpi = malloc(256); sprintf(dpi, "%d", dpi_i); cmdline = copy_cmdline(argc, argv); n_vff = 0; for (i = 0; i < NDIRS; i++){ vf_fontdirs[i] = NULL; } n_map = 0; for (i = 0; i < NMAPS; i++){ map_class[i] = NULL; map_map[i] = NULL; map_opt[i] = NULL; } xargc = argc; xargv = argv; for (xargc--,xargv++; xargc > 0; xargc--,xargv++){ if ((strcmp(*xargv, "--help") == 0) || (strcmp(*xargv, "-help") == 0)){ printf("vflmkvf: generates vflibcap entries for TeX Virtual Fonts\n"); printf("Usage: vflmkvf [options]\n"); printf("Options\n"); printf(" -d DIR : Virtual Font file directory\n"); printf(" -r DPI : Default device resolution\n"); printf(" -n MODE : Device mode name for kpathsea\n"); printf(" -g STYLE : Glyph style, 'fill' (default) or 'empty'\n"); printf(" -o STYLE : Font open style, 'try', 'require', or 'non'\n"); printf(" -m CLASS FORMAT : Add mapping rule\n"); printf("Example: vflmkvf -d TEXMF -m type1 %%f.pfb -m gf .gf -g fill\n"); exit(0); } else if (strcmp(*xargv, "-d") == 0){ /* font dir */ if (n_vff == NDIRS){ fprintf(stderr, "Too many Virtual Font directories\n"); exit(1); } xargv++; xargc--; check_argc(xargc); vf_fontdirs[n_vff++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-r") == 0){ xargv++; xargc--; check_argc(xargc); dpi = strdup(*xargv); } else if (strcmp(*xargv, "-n") == 0){ /* mode */ xargv++; xargc--; check_argc(xargc); mode = x_strdup(*xargv); } else if (strcmp(*xargv, "-m") == 0){ if (n_map == NMAPS){ fprintf(stderr, "Too many mapfont conversion rules\n"); exit(1); } xargv++; xargc--; check_argc(xargc); if (strcmp(*xargv, "any") == 0) map_class[n_map] = strdup("*"); else map_class[n_map] = strdup(*xargv); xargv++; xargc--; check_argc(xargc); map_map[n_map] = strdup(*xargv); n_map++; } else if (strcmp(*xargv, "-g") == 0){ xargv++; xargc--; check_argc(xargc); if ((strcmp(*xargv, TEX_GLYPH_STYLE_FILL_STR) != 0) && (strcmp(*xargv, TEX_GLYPH_STYLE_EMPTY_STR) != 0)){ fprintf(stderr, "Unknown glyph style name: %s\n", *xargv); fprintf(stderr, "(Must be '%s' or '%s'. Default is '%s'.\n", TEX_GLYPH_STYLE_FILL_STR, TEX_GLYPH_STYLE_EMPTY_STR, glyph_style); exit(1); } glyph_style = strdup(*xargv); } else if (strcmp(*xargv, "-o") == 0){ xargv++; xargc--; check_argc(xargc); if ((strcmp(*xargv, TEX_OPEN_STYLE_TRY_STR) != 0) && (strcmp(*xargv, TEX_OPEN_STYLE_REQUIRE_STR) != 0) && (strcmp(*xargv, TEX_OPEN_STYLE_NONE_STR) != 0)){ fprintf(stderr, "Unknown open style name: %s\n", *xargv); fprintf(stderr, "(Must be '%s', '%s' or '%s'. Default is '%s'.\n", TEX_OPEN_STYLE_TRY_STR, TEX_OPEN_STYLE_REQUIRE_STR, TEX_OPEN_STYLE_NONE_STR, open_style); exit(1); } open_style = strdup(*xargv); } else { if (*xargv[0] == '-'){ fprintf(stderr, "vflmkvf: unknown option %s\n", *xargv); exit(1); } break; } } banner("Virtual Font", "vflmkvf", cmdline); gen_class_deafult(); return 0; } void gen_class_deafult(void) { int i; printf("(%s %s", VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, FONTCLASS_NAME_VF); printf("\n (%s", VF_CAPE_FONT_DIRECTORIES); for (i = 0; i < n_vff; i++) printf("\n \"%s\"", vf_fontdirs[i]); printf(")"); printf("\n (%s %s)", VF_CAPE_DPI, dpi); printf("\n (%s \".vf\" \".ovf\")", VF_CAPE_EXTENSIONS); printf("\n (%s \"%s\")", VF_CAPE_TEX_OPEN_STYLE, open_style); printf("\n (%s \"%s\")", VF_CAPE_TEX_GLYPH_STYLE, glyph_style); printf("\n (%s", VF_CAPE_TEX_FONT_MAPPING); for (i = 0; i < n_map; i++){ if (map_need_tfm(map_class[i]) == 0){ printf("\n ((%s \"%s\") *)", map_class[i], map_map[i]); } else { printf("\n ((%s \"%s\" %s) *)", map_class[i], map_map[i], TEX_FONT_MAPPING_PTSIZE); } } printf(")"); printf(")\n"); printf("\n"); } vflib3-3.6.14.dfsg/src/mem.h0000644000175000017500000000167707365204363015025 0ustar mohuramohura/* * mem.h * */ /* * Copyright (C) 1996-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB_MEM_H__ #define __VFLIB_MEM_H__ extern void vf_free(void*p); #endif vflib3-3.6.14.dfsg/src/vflmkajt.c0000644000175000017500000003305007302674502016043 0ustar mohuramohura/* * vflmkajt.c * - a vflibcap entry generator for TrueType fonts * * - This program prints vflibcap entries to standard output. * * * by Hirotsugu Kakugawa * * 15 May 2001 */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #ifdef HAVE_STRING_H #include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "texfonts.h" #include "jtex.h" #include "fsearch.h" #include "vflmklib.h" void gen_class_deafult(void); char *dpi = NULL; int dpi_i = DEFAULT_KPS_DPI; #define NDIRS 64 int n_dirs; char *fontdirs[NDIRS]; char *cs_name[2] = { "JISX0208", "JISX0212" }; char *font_name[2][5] = { { "min", "goth", "tmin", "tgoth", NULL }, { "minh", "gothh", "tminh", "tgothh", NULL } }; int font_type[] = { 0, 1, 2, 3, -1 }; char *font_class = "pcf"; char *suffix = ".pk"; char *ttf_ff_min[2] = { "dfmimp3.ttc", "dfmin3_u.ttc" }; char *ttf_ff_got[2] = { "dfgotp5.ttc", "dfgot5_u.ttc" }; char *ttf_ad_min[2] = { "dfmimp3", "dfmin3_u" }; char *ttf_ad_got[2] = { "dfgotp5", "dfgot5_u" }; #define NTTFS 1024 int n_ttfs; char *ext_texf[NTTFS]; char *ext_ttff[NTTFS]; #define JTTF ".jttf" int use_jis0212 = 0; char *cmdline = NULL; void gen_fonts(void); void gen_fonts_jtex(int cs); void gen_fonts_pcf(int cs); void gen_fonts_ekan(int cs); void gen_fonts_ttf(int cs); void gen_fonts_ttf_opt(int cs); void read_tex_ttf(char *f); void read_tex_ttf2(FILE *fp, char *f); int main(int argc, char **argv) { int i; int xargc; char **xargv; dpi = malloc(256); sprintf(dpi, "%d", dpi_i); cmdline = copy_cmdline(argc, argv); n_dirs = 0; for (i = 0; i < NDIRS; i++){ fontdirs[i] = NULL; } n_ttfs = 0; for (i = 0; i < NTTFS; i++){ ext_texf[i] = NULL; ext_ttff[i] = NULL; } xargc = argc; xargv = argv; for (xargc--,xargv++; xargc > 0; xargc--,xargv++){ if ((strcmp(*xargv, "--help") == 0) || (strcmp(*xargv, "-help") == 0)){ printf("vflmkajt: generates vflibcap entriy for ASCII Japanese TeX\n"); printf("Usage: vflmkajt [options]\n"); printf("Options\n"); printf(" -d DIR : TFM file directory\n"); printf(" -c CLASS : Font class of Kanji font file\n"); printf(" Supported class: 'pcf', 'ttf', or ekanji'\n"); printf(" Default is 'pcf' class.\n"); printf(" -x EXT : A suffix added for font name mapping\n"); printf(" Default: '.pk'\n"); printf(" -jisx0212 : Generate vflibcap entries for JISX0212 fonts\n"); printf("Options (when 'ttf' class is selected for Kanji font file)\n"); printf(" -tm TTF : Use TrueType file TTF for JISX0208 'min'fonts\n"); printf(" -tg TTF : Use TrueType file TTF for JISX0208 'goth' fonts\n"); printf(" -tm0212 TTF : Use TrueType file TTF for JISX0212 'minh' fonts\n"); printf(" -tg0212 TTF : Use TrueType file TTF for JISX0212 'gothh' fonts\n"); printf(" -tf FILE : A database file for TeX font and TrueType font file"); printf(" -tx FONT TTF : A TeX font entry with TrueType file\n"); printf(" The format of a file for -tf option is a sequence of"); printf(" lines, each of which contains TeX font name and TrueType"); printf(" font file name."); printf("Example: vflmkajt -d TEXMF -c pcf\n"); exit(0); } else if (strcmp(*xargv, "-d") == 0){ /* font dir */ if (n_dirs == NDIRS){ fprintf(stderr, "Too many TFM font directories\n"); exit(1); } xargv++; xargc--; check_argc(xargc); fontdirs[n_dirs++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-c") == 0){ xargv++; xargc--; check_argc(xargc); font_class = strdup(*xargv); if ((strcmp(font_class, "pcf") != 0) && (strcmp(font_class, "ekanji") != 0) && (strcmp(font_class, "ttf") != 0)){ fprintf(stderr, "Unknown name. ('ttf', 'pcf', or 'ekanji' for -c option)\n"); exit(1); } } else if (strcmp(*xargv, "-x") == 0){ xargv++; xargc--; check_argc(xargc); if (strlen(*xargv) == 0){ fprintf(stderr, "Suffix for -x option should not be zero length\n"); exit(1); } suffix = strdup(*xargv); } else if (strcmp(*xargv, "-jisx0212") == 0){ use_jis0212 = 1; } else if ((strcmp(*xargv, "-tm") == 0) || (strcmp(*xargv, "-tm0208") == 0)){ xargv++; xargc--; check_argc(xargc); ttf_ff_min[0] = strdup(*xargv); } else if ((strcmp(*xargv, "-tg") == 0) || (strcmp(*xargv, "-tg0208") == 0)){ xargv++; xargc--; check_argc(xargc); ttf_ff_got[0] = strdup(*xargv); } else if (strcmp(*xargv, "-tm0212") == 0){ xargv++; xargc--; check_argc(xargc); ttf_ff_min[1] = strdup(*xargv); } else if (strcmp(*xargv, "-tg0212") == 0){ xargv++; xargc--; check_argc(xargc); ttf_ff_got[1] = strdup(*xargv); } else if (strcmp(*xargv, "-tx") == 0){ xargv++; xargc--; check_argc(xargc); if (n_ttfs == NTTFS){ printf("Too many extra TrueType fonts\n"); exit(1); } ext_texf[n_ttfs] = strdup(*xargv); xargv++; xargc--; check_argc(xargc); ext_ttff[n_ttfs] = strdup(*xargv); n_ttfs++; } else if (strcmp(*xargv, "-tf") == 0){ xargv++; xargc--; check_argc(xargc); read_tex_ttf(*xargv); } else { if (*xargv[0] == '-'){ fprintf(stderr, "vflmkajt: unknown option %s\n", *xargv); exit(1); } break; } } banner("Japanese TeX (ASCII Co. version)", "vflmkajt", cmdline); gen_class_deafult(); gen_fonts(); return 0; } void gen_class_deafult(void) { int i; printf("(%s %s", VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, FONTCLASS_NAME_JTEX); printf("\n (%s", VF_CAPE_TEX_TFM_DIRECTORIES); for (i = 0; i < n_dirs; i++) printf("\n \"%s\"", fontdirs[i]); printf(")"); printf("\n (%s \".tfm\")", VF_CAPE_TEX_TFM_EXTENSIONS); printf("\n (%s \"%s\")", VF_CAPE_JTEX_MAP_SUFIX, suffix); printf(")"); printf("\n"); } void gen_fonts(void) { if (strcmp(font_class, "pcf") == 0){ printf("\n; %s", cs_name[0]); gen_fonts_pcf(0); gen_fonts_jtex(0); if (use_jis0212 == 1){ printf("\n; %s", cs_name[1]); gen_fonts_pcf(1); gen_fonts_jtex(1); } } else if (strcmp(font_class, "ekanji") == 0){ printf("\n; %s", cs_name[0]); gen_fonts_ekan(0); gen_fonts_jtex(0); if (use_jis0212 == 1){ printf("\n; %s", cs_name[1]); gen_fonts_ekan(1); gen_fonts_jtex(1); } } else if (strcmp(font_class, "ttf") == 0){ printf("\n; %s", cs_name[0]); gen_fonts_ttf(0); gen_fonts_jtex(0); gen_fonts_ttf_opt(0); if (use_jis0212 == 1){ printf("\n; %s", cs_name[1]); gen_fonts_ttf(1); gen_fonts_jtex(1); } } printf("\n"); } void gen_fonts_jtex(int cs) { int p, i; static int pt[] = { 5, 6, 7, 8, 9, 10, 12, -1}; for (i = 0; font_name[cs][i] != NULL; i++){ for (p = 0; pt[p] > 0; p++){ printf("\n(%s %s%d%s", VF_CAPE_VFLIBCAP_FONT_ENTRY_DEFINITION, font_name[cs][i], pt[p], suffix); printf(" \t(%s %2d)", VF_CAPE_JTEX_KF_POINT_SIZE, pt[p]); printf(" %s-def)", font_name[cs][i]); } } printf("\n"); } void gen_fonts_pcf(int cs) { char *f, *dr; int i; char *adj[2] = { "jiskan24", "jiskan24" }; char *font[2] = { "\"jiskan24.pcf\" \"jiskan16.pcf\" \"k14.pcf\"", "\"jisksp40.pcf\"" }; for (i = 0; font_name[cs][i] != NULL; i++){ f = font_name[cs][i]; dr = ((font_type[i] & 0x02) == 0) ? "" : "t"; printf("\n"); printf("(define-macro %s-def", f); printf("\n (font-class ascii-jtex-kanji) (kanji-font jtex-%s)", f); printf("\n (kanji-font-magnification %.2f)", 0.85); printf(" (metric-adjustment-file \"%s%s.adj\"))", dr, adj[cs]); printf("\n"); printf("(define-font jtex-%s", f); printf("\t(font-class pcf)"); printf("\n"); printf(" (font-file %s))", font[cs]); } } void gen_fonts_ekan(int cs) { char *f, *dr; int i; char *adj[2] = { "ekanji", "ekanji" }; char *font[2] = { "\"jisx9052.d24\" ", "\"ekan0010.d24\"" }; for (i = 0; font_name[cs][i] != NULL; i++){ f = font_name[cs][i]; dr = ((font_type[i] & 0x02) == 0) ? "" : "t"; printf("\n"); printf("(define-macro %s-def", f); printf("\n (font-class ascii-jtex-kanji) (kanji-font jtex-%s)", f); printf("\n (kanji-font-magnification %.2f)", 0.85); printf(" (metric-adjustment-file \"%s%s.adj\"))", dr, adj[cs]); printf("\n"); printf("(define-font jtex-%s", f); printf("\t(font-class ekanji)"); printf("\n"); printf(" (font-file %s)", font[cs]); if ((font_type[i] & 0x02) == 0){ printf(" (writing-direction \"horizontal\")"); } else { printf(" (writing-direction \"vertical\")"); } if (cs == 0){ /* jisx0208 */ printf("\n (character-set \"eKanji\")"); printf(" (encoding \"ISO2022\")"); printf("\n (font-character-set \"eKanji\")"); printf(" (font-encoding \"SEQUENTIAL2-1\")"); } else { /* jisx0212 */ printf("\n (mock-font-encoding with-offset -0x4dff)"); printf("\n (character-set \"JISX0212\")"); printf(" (encoding \"ISO2022\")"); printf("\n (font-character-set \"Unicode\")"); printf(" (font-encoding \"Unicode\")"); } printf(")"); } } void gen_fonts_ttf(int cs) { char *f, *ff, *dr, *ad; int i; for (i = 0; font_name[cs][i] != NULL; i++){ f = font_name[cs][i]; dr = ((font_type[i] & 0x02) == 0) ? "" : "t"; ff = ((font_type[i] % 0x02) == 0) ? ttf_ff_min[cs] : ttf_ff_got[cs]; ad = ((font_type[i] % 0x02) == 0) ? ttf_ad_min[cs] : ttf_ad_got[cs]; printf("\n"); printf("(define-macro %s-def", f); printf("\t(font-class ascii-jtex-kanji)"); printf(" (kanji-font jtex-%s)", f); printf("\n "); printf(" (kanji-font-magnification %.2f)", 0.95); printf(" (metric-adjustment-file \"%s%s.adj\")", dr, ad); printf(")"); printf("\n"); printf("(define-font jtex-%s", f); printf("\t(font-class truetype)"); printf(" (font-file \"%s\")", ff); printf("\n "); printf(" (character-set \"%s\")", cs_name[cs]); printf(" (encoding \"ISO2022\")"); printf(")"); } printf("\n"); } void gen_fonts_ttf_opt(int cs) { int i; if (n_ttfs == 0) return; printf("\n"); printf("(define-macro jtex-h-def"); printf("\t(font-class ascii-jtex-kanji)"); printf("\n "); printf(" (kanji-font-point-size 10)"); printf(" (metric-adjustment-file \"%s%s\")", "", "f5ajchm3.adj"); printf(")"); printf("\n"); printf("(define-macro jtex-v-def"); printf("\t(font-class ascii-jtex-kanji)"); printf("\n "); printf(" (kanji-font-point-size 10)"); printf(" (metric-adjustment-file \"%s%s\")", "t", "f5ajchm3.adj"); printf(")"); printf("\n"); printf("(define-macro jtex-ttf"); printf("\t\t(font-class truetype)"); printf(" (dpi $TeX_DPI)"); printf("\n "); printf(" (platform-id \"microsoft\")"); printf(" (character-set \"%s\")", cs_name[cs]); printf(" (encoding \"ISO2022\")"); printf(")"); printf("\n"); for (i = 0; i < n_ttfs; i++){ printf("\n"); printf("(define-font %s%s\tjtex-h-def (kanji-font %s%s))", ext_texf[i], suffix, ext_texf[i], JTTF); printf("\n"); printf("(define-font %s%s\tjtex-ttf (font-file \"%s\"))", ext_texf[i], JTTF, ext_ttff[i]); printf("\n"); printf("(define-font t%s%s\tjtex-v-def (kanji-font t%s%s))", ext_texf[i], suffix, ext_texf[i], JTTF); printf("\n"); printf("(define-font t%s%s\tjtex-ttf (font-file \"%s\"))", ext_texf[i], JTTF, ext_ttff[i]); } } void read_tex_ttf(char *f) { FILE *fp; if (strcmp(f, "--") == 0){ read_tex_ttf2(stdin, "standard input"); } else { if ((fp = fopen(f, "r")) != NULL){ read_tex_ttf2(fp, f); fclose(fp); } } } void read_tex_ttf2(FILE *fp, char *f) { char lbuf[BUFSIZ]; char *p, *q[2]; int i; while (fgets(lbuf, sizeof(lbuf), fp) != NULL){ if ((p = strchr(lbuf, '#')) != NULL) *p = '\0'; if ((p = strchr(lbuf, '\n')) != NULL) *p = '\0'; if (lbuf[0] == '\0') continue; q[0] = q[1] = NULL; p = lbuf; for (i = 0; i < 2; i++){ while ((*p != '\0') && (isspace((int)*p))) p++; if (*p == '\0') break; q[i] = p; while ((*p != '\0') && (!isspace((int)*p))) p++; if (*p == '\0') break; *p = '\0'; p++; } if (q[0] == NULL) continue; if (n_ttfs == NTTFS){ printf("Too many extra TrueType fonts in %s\n", f); exit(1); } if (q[1] == NULL) q[1] = q[0]; ext_texf[n_ttfs] = x_strdup(q[0]); ext_ttff[n_ttfs] = x_strdup(q[1]); n_ttfs++; } } vflib3-3.6.14.dfsg/src/config.h.in.OLD0000644000175000017500000000226406555017262016527 0ustar mohuramohura/* src/config.h.in. Generated automatically from configure.in by autoheader. */ /* Define if you have the ANSI C header files. */ #undef STDC_HEADERS /* The number of bytes in a int. */ #undef SIZEOF_INT /* The number of bytes in a long. */ #undef SIZEOF_LONG /* Define if you have the access function. */ #undef HAVE_ACCESS /* Define if you have the nint function. */ #undef HAVE_NINT /* Define if you have the opendir function. */ #undef HAVE_OPENDIR /* Define if you have the popen function. */ #undef HAVE_POPEN /* Define if you have the header file. */ #undef HAVE_DIRENT_H /* Define if you have the header file. */ #undef HAVE_FCNTL_H /* Define if you have the header file. */ #undef HAVE_MALLOC_H /* Define if you have the header file. */ #undef HAVE_STRING_H /* Define if you have the header file. */ #undef HAVE_STRINGS_H /* Define if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define if you have the header file. */ #undef HAVE_UNISTD_H /* Define if you have the m library (-lm). */ #undef HAVE_LIBM /* Define if you have the nsl library (-lnsl). */ #undef HAVE_LIBNSL vflib3-3.6.14.dfsg/src/ccv.c.old0000644000175000017500000006732207031526631015564 0ustar mohuramohura/* ccv.c --- charset conversion * by Hirotsugu Kakugawa * * 28 Jul 1997 * 20 Jan 1999 Added to check /usr/local/share/site/ * 16 Feb 1999 Added encoding conversion funcs for Row-Cell and WangSung. * 14 Sep 1999 Added alias for charset & encoding names (but not tested yet) */ /* * Copyright (C) 1997-1999 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "consts.h" #include "str.h" #include "path.h" #include "paths.h" #include "ccv.h" #define NAMEPP(s) ((s!=NULL)?s:"*") #define CS_NAME_XCHARS ".-_ " #define CS_NAME_XCHARS_TO '_' #define CCV_TBL_INITIAL_SIZE 32 static int ccv_tbl_index = 0; static int ccv_tbl_size = 0; static struct s_ccv_info *ccv_tbl = NULL; Private int ccv_add_conv_info(struct s_ccv_info*,int,char*); Private int ccv_load(struct s_ccv_info *ccvi); Private int ccv_read_header(struct s_ccv_info *ccvi); Private void ccv_read_aliases(FILE *fp, char ***oalias_tbl); Private int ccv_read_file(struct s_ccv_info *ccvi,int); Private int ccv_read_file_alloc_blocks(struct s_ccv_info *); Private int ccv_read_file_block_array(FILE*, struct s_ccv_info*, int); Private int ccv_read_file_block_random_array(FILE*, struct s_ccv_info*, int); Private int ccv_file_read_list(FILE *fp, char *buff, int nbuff); Private int ccv_file_read_elem(FILE *fp, char *buff, int nbuff); Private char *make_canonical_charset_name(char*); Private int cmp_alias(char **alias_tbl, char *name, int how_compare); Private int cmp_charset_name(char*,char*); Private int cmp_enc_name(char*,char*); Private long ccv_conv_array(int,long); Private long ccv_conv_random_array(int,long); Private long ccv_no_conv(int ccvi_index, long code_point); Private long ccv_jis2kuten(int ccvi_index, long code_point); Private long ccv_jis2euc(int ccvi_index, long code_point); Private long ccv_jis2sjis(int ccvi_index, long code_point); Private long ccv_kuten2jis(int ccvi_index, long code_point); Private long ccv_euc2jis(int ccvi_index, long code_point); Private long ccv_euc2sjis(int ccvi_index, long code_point); Private long ccv_sjis2jis(int ccvi_index, long code_point); Private long ccv_wansung2rc(int ccvi_index, long code_point); Private long ccv_rc2wansung(int ccvi_index, long code_point); Private long ccv_jis2seq2_0(int ccvi_index, long code_point); Private long ccv_jis2seq2_1(int ccvi_index, long code_point); Glocal int vf_ccv_init(void) { int new_size, i; static struct s_ccv_info *ccv_tbl_new; if (ccv_tbl == NULL){ /* initialization */ ccv_tbl_index = 0; ccv_tbl_size = CCV_TBL_INITIAL_SIZE; ALLOCN_IF_ERR(ccv_tbl, struct s_ccv_info, ccv_tbl_size){ ccv_tbl_size = 0; vf_error = VF_ERR_NO_MEMORY; return -1; } vf_ccv_install_func(NULL, "ISO", NULL, "ISO", ccv_no_conv); vf_ccv_install_func(NULL, "ISO2022", NULL, "ISO2022", ccv_no_conv); vf_ccv_install_func(NULL, "UNICODE", NULL, "UNICODE", ccv_no_conv); vf_ccv_install_func(NULL, "JIS", NULL, "JIS", ccv_no_conv); vf_ccv_install_func(NULL, "SJIS", NULL, "SJIS", ccv_no_conv); vf_ccv_install_func(NULL, "JIS", NULL, "SJIS", ccv_jis2sjis); vf_ccv_install_func(NULL, "ISO2022", NULL, "SJIS", ccv_jis2sjis); vf_ccv_install_func(NULL, "SJIS", NULL, "JIS", ccv_sjis2jis); vf_ccv_install_func(NULL, "SJIS", NULL, "ISO2022", ccv_sjis2jis); vf_ccv_install_func(NULL, "EUC", NULL, "JIS", ccv_euc2jis); vf_ccv_install_func(NULL, "EUC", NULL, "ISO2022", ccv_euc2jis); vf_ccv_install_func(NULL, "EUC", NULL, "SJIS", ccv_euc2sjis); vf_ccv_install_func(NULL, "KU-TEN", NULL, "JIS", ccv_kuten2jis); vf_ccv_install_func(NULL, "ROW-CELL", NULL, "JIS", ccv_kuten2jis); vf_ccv_install_func(NULL, "KU-TEN", NULL, "ISO2022", ccv_kuten2jis); vf_ccv_install_func(NULL, "ROW-CELL", NULL, "ISO2022", ccv_kuten2jis); vf_ccv_install_func(NULL, "JIS", NULL, "ROW-CELL", ccv_jis2kuten); vf_ccv_install_func(NULL, "ISO2022", NULL, "ROW-CELL", ccv_jis2kuten); vf_ccv_install_func(NULL, "JIS", NULL, "KU-TEN", ccv_jis2kuten); vf_ccv_install_func(NULL, "ISO2022", NULL, "KU-TEN", ccv_jis2kuten); vf_ccv_install_func(NULL, "JIS", NULL, "SEQUENTIAL2-0",ccv_jis2seq2_0); vf_ccv_install_func(NULL, "ISO2022",NULL, "SEQUENTIAL2-0",ccv_jis2seq2_0); vf_ccv_install_func(NULL, "JIS", NULL, "SEQUENTIAL2-1",ccv_jis2seq2_1); vf_ccv_install_func(NULL, "ISO2022",NULL, "SEQUENTIAL2-1",ccv_jis2seq2_1); vf_ccv_install_func(NULL, "ISO2022", NULL, "WANSUNG", ccv_jis2euc); vf_ccv_install_func(NULL, "JIS", NULL, "WANSUNG", ccv_jis2euc); vf_ccv_install_func(NULL, "ROW-CELL", NULL, "WANSUNG", ccv_rc2wansung); vf_ccv_install_func(NULL, "KU-TEN", NULL, "WANSUNG", ccv_rc2wansung); vf_ccv_install_func(NULL, "WANSUNG", NULL, "ROW-CELL", ccv_wansung2rc); vf_ccv_install_func(NULL, "WANSUNG", NULL, "KU-TEN", ccv_wansung2rc); return 0; } /* expansion */ new_size = ccv_tbl_size + 8; ALLOCN_IF_ERR(ccv_tbl_new, struct s_ccv_info, new_size){ return -1; } for (i = 0; i < ccv_tbl_index; i++){ memcpy(&ccv_tbl_new[i], &ccv_tbl[i], sizeof(struct s_ccv_info)); } free(ccv_tbl); ccv_tbl_size = new_size; ccv_tbl = ccv_tbl_new; return 0; } Private long ccv_no_conv(int ccvi_index, long code_point) { return code_point; } Private long ccv_jis2kuten(int ccvi_index, long code_point) { unsigned int c1, c2; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; return (c1 - 0x20)*0x100 + (c2 - 0x20); } Private long ccv_jis2euc(int ccvi_index, long code_point) { unsigned int c1, c2; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; return (c1 + 0x80)*0x100 + (c2 + 0x80); } Private long ccv_jis2sjis(int ccvi_index, long code_point) { unsigned int c1, c2; int row_offset, cell_offset; if (code_point < 256) return code_point; /* Snarfed from 'jis2sjis()' in UJIP by Ken R Lunde. */ c1 = code_point / 0x100; c2 = code_point % 0x100; row_offset = (c1 < 95) ? 112 : 176; cell_offset = (c1 % 2) ? ((c2 > 95) ? 32 : 31) : 126; c1 = ((c1 + 1) >> 1) + row_offset; c2 += cell_offset; return c1*0x100 + c2; } Private long ccv_kuten2jis(int ccvi_index, long code_point) { unsigned int c1, c2; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; return (c1 + 0x20)*0x100 + (c2 + 0x20); } Private long ccv_euc2jis(int ccvi_index, long code_point) { unsigned int c1, c2; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; return (c1 - 0x80)*0x100 + (c2 - 0x80); } Private long ccv_euc2sjis(int ccvi_index, long code_point) { long code_point_jis; code_point_jis = ccv_euc2jis(ccvi_index, code_point); return ccv_jis2sjis(ccvi_index, code_point_jis); } Private long ccv_sjis2jis(int ccvi_index, long code_point) { unsigned int c1, c2; int row_offset, cell_offset, adjust; if (code_point < 256) return code_point; /* Snarfed from 'sjis2jis()' in UJIP by Ken R Lunde. */ c1 = code_point / 0x100; c2 = code_point % 0x100; if (c2 < 159) adjust = 1; else adjust = 0; row_offset = (c1 < 160) ? 112 : 176; cell_offset = (adjust == 1) ? ((c2 > 127) ? 32 : 31) : 126; c1 = ((c1 - row_offset) << 1) - adjust; c2 -= cell_offset; return c1*0x100 + c2; } Private long ccv_rc2wansung(int ccvi_index, long code_point) { unsigned int c1, c2; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; return (c1 + 0xa0)*0x100 + (c2 + 0xa0); } Private long ccv_wansung2rc(int ccvi_index, long code_point) { unsigned int c1, c2; if (code_point < 256) return code_point; c1 = code_point / 0x100; c2 = code_point % 0x100; return (c1 - 0xa0)*0x100 + (c2 - 0xa0); } Private long ccv_jis2seq2_0(int ccvi_index, long code_point) { int b0, b1; b0 = (code_point / 0x1) % 0x100; b1 = (code_point / 0x100) % 0x100; if ((b0 < 0x21) || (b0 > 0x7e)) return -1; if ((b1 < 0x21) || (b1 > 0x7e)) return -1; return 94 * (b1-0x21) + (b0-0x21) + 0; } Private long ccv_jis2seq2_1(int ccvi_index, long code_point) { int b0, b1; b0 = (code_point / 0x1) % 0x100; b1 = (code_point / 0x100) % 0x100; if ((b0 < 0x21) || (b0 > 0x7e)) return -1; if ((b1 < 0x21) || (b1 > 0x7e)) return -1; return 94 * (b1-0x21) + (b0-0x21) + 1; } Glocal int vf_ccv_require(char *cs1_name, char *cs1_enc, char *cs2_name, char *cs2_enc) { int i; if (vf_dbg_ccv == 1) printf(">> CCV searching conversion: %s %s => %s %s\n", NAMEPP(cs1_name), NAMEPP(cs1_enc), NAMEPP(cs2_name), NAMEPP(cs2_enc)); if ((cs1_name == NULL) && (cs1_enc == NULL)) return -1; for (i = 0; i < ccv_tbl_index; i++){ if ( ((ccv_tbl[i].cs1_name == NULL) || (cmp_charset_name(ccv_tbl[i].cs1_name, cs1_name) == 0) || (cmp_alias(ccv_tbl[i].cs1_name_aliases, cs1_name, 0) == 0)) && ((ccv_tbl[i].cs2_name == NULL) || (cmp_charset_name(ccv_tbl[i].cs2_name, cs2_name) == 0) || (cmp_alias(ccv_tbl[i].cs2_name_aliases, cs2_name, 0) == 0)) && ((ccv_tbl[i].cs1_enc == NULL) || (cs1_enc == NULL) || (cmp_enc_name(ccv_tbl[i].cs1_enc, cs1_enc) == 0) || (cmp_alias(ccv_tbl[i].cs1_enc_aliases, cs1_enc, 1) == 0)) && ((ccv_tbl[i].cs2_enc == NULL) || (cs2_enc == NULL) || (cmp_enc_name(ccv_tbl[i].cs2_enc, cs2_enc) == 0) || (cmp_alias(ccv_tbl[i].cs2_enc_aliases, cs2_enc, 1) == 0)) ){ if (vf_dbg_ccv == 1){ printf(">> CCV use conversion #%d [%s %s => %s %s]\n", i, NAMEPP(ccv_tbl[i].cs1_name), NAMEPP(ccv_tbl[i].cs1_enc), NAMEPP(ccv_tbl[i].cs2_name), NAMEPP(ccv_tbl[i].cs2_enc)); } if (ccv_tbl[i].load_stat == CCV_STAT_AUTOLOAD){ if (ccv_load(&ccv_tbl[i]) < 0) return -1; ccv_tbl[i].load_stat = CCV_STAT_LOADED; } return i; } } return -1; } Private int cmp_alias(char **alias_tbl, char *name, int how_compare) { char **pp; if (alias_tbl == NULL) return -1; if (how_compare == 0){ for (pp = alias_tbl; *pp != NULL; pp++){ if (cmp_charset_name(*pp, name) == 0) return 0; } } else { for (pp = alias_tbl; *pp != NULL; pp++){ if (cmp_enc_name(*pp, name) == 0) return 0; } } return -1; } Private int ccv_add_conv_info(struct s_ccv_info *ccvi, int load_stat, char *file_name) { char **pp, *q; if (ccv_tbl_index >= ccv_tbl_size){ if (vf_dbg_ccv == 1) printf(">> CCV expand table\n"); if (vf_ccv_init() < 0){ fprintf(stderr, "VFlib: too many code coversion table.\n"); return 0; } } ccv_tbl[ccv_tbl_index].cs1_name = ccvi->cs1_name; ccv_tbl[ccv_tbl_index].cs1_name_aliases = ccvi->cs1_name_aliases; ccv_tbl[ccv_tbl_index].cs1_enc = ccvi->cs1_enc; ccv_tbl[ccv_tbl_index].cs1_enc_aliases = ccvi->cs1_enc_aliases; ccv_tbl[ccv_tbl_index].cs2_name = ccvi->cs2_name; ccv_tbl[ccv_tbl_index].cs2_name_aliases = ccvi->cs2_name_aliases; ccv_tbl[ccv_tbl_index].cs2_enc = ccvi->cs2_enc; ccv_tbl[ccv_tbl_index].cs2_enc_aliases = ccvi->cs2_enc_aliases; ccv_tbl[ccv_tbl_index].block_size = ccvi->block_size; ccv_tbl[ccv_tbl_index].load_stat = load_stat; ccv_tbl[ccv_tbl_index].conv = ccvi->conv; ccv_tbl[ccv_tbl_index].arg = ccvi->arg; ccv_tbl[ccv_tbl_index].arg_type = ccvi->arg_type; ccv_tbl[ccv_tbl_index].c1min = ccvi->c1min; ccv_tbl[ccv_tbl_index].c1max = ccvi->c1max; ccv_tbl[ccv_tbl_index].c2min = ccvi->c2min; ccv_tbl[ccv_tbl_index].c2max = ccvi->c2max; ccv_tbl[ccv_tbl_index].nblocks = ccvi->nblocks; if (file_name != NULL){ ccv_tbl[ccv_tbl_index].file_name = vf_strdup(file_name); if (ccv_tbl[ccv_tbl_index].file_name == NULL){ vf_error = VF_ERR_NO_MEMORY; return -1; } } else { ccv_tbl[ccv_tbl_index].file_name = NULL; } if (vf_dbg_ccv == 1){ printf(">> CCV installed #%d [%s %s => %s %s]\n", ccv_tbl_index, NAMEPP(ccv_tbl[ccv_tbl_index].cs1_name), NAMEPP(ccv_tbl[ccv_tbl_index].cs1_enc), NAMEPP(ccv_tbl[ccv_tbl_index].cs2_name), NAMEPP(ccv_tbl[ccv_tbl_index].cs2_enc)); if ((pp = ccv_tbl[ccv_tbl_index].cs1_name_aliases) != NULL){ q = NAMEPP(ccv_tbl[ccv_tbl_index].cs1_name); for ( ; *pp != NULL; pp++) printf(">> alias %s: %s\n", *pp, q); } if ((pp = ccv_tbl[ccv_tbl_index].cs1_enc_aliases) != NULL){ q = NAMEPP(ccv_tbl[ccv_tbl_index].cs1_enc); for ( ; *pp != NULL; pp++) printf(">> alias %s: %s\n", *pp, q); } if ((pp = ccv_tbl[ccv_tbl_index].cs2_name_aliases) != NULL){ q = NAMEPP(ccv_tbl[ccv_tbl_index].cs2_name); for ( ; *pp != NULL; pp++) printf(">> alias %s: %s\n", *pp, q); } if ((pp = ccv_tbl[ccv_tbl_index].cs2_enc_aliases) != NULL){ q = NAMEPP(ccv_tbl[ccv_tbl_index].cs2_enc); for ( ; *pp != NULL; pp++) printf(">> alias %s: %s\n", *pp, q); } } ccv_tbl_index++; return 0; } Private char* make_canonical_charset_name(char *cs_name) { char *canon, *p; if (cs_name == NULL) return NULL; if ((canon = vf_strdup(cs_name)) == NULL) return NULL; for (p = canon; *p != '\0'; p++){ if (vf_index(CS_NAME_XCHARS, *p) != NULL) *p = CS_NAME_XCHARS_TO; else *p = toupper(*p); } return canon; } Private int cmp_charset_name(char *canon, char *name) { char *p, *q, cp, cq; if (canon == NULL) return 0; p = canon; q = name; do { cp = toupper(*p); if (vf_index(CS_NAME_XCHARS, *p) != NULL) cp = CS_NAME_XCHARS_TO; cq = toupper(*q); if (vf_index(CS_NAME_XCHARS, *q) != NULL) cq = CS_NAME_XCHARS_TO; if (cp != cq) return -1; p++; q++; } while ((*p != '\0') && (*q != '\0')); return 0; } Private int cmp_enc_name(char *enc1, char *enc2) { char *p, *q, cp, cq; p = enc1; q = enc2; do { cp = toupper(*p); if (vf_index(CS_NAME_XCHARS, *p) != NULL) cp = CS_NAME_XCHARS_TO; cq = toupper(*q); if (vf_index(CS_NAME_XCHARS, *q) != NULL) cq = CS_NAME_XCHARS_TO; if (cp != cq) return -1; p++; q++; } while ((*p != '\0') && (*q != '\0')); return 0; } Glocal int vf_ccv_autoload(char *file_name) { struct s_ccv_info ccv_info; if (vf_dbg_ccv == 1) printf(">> CCV autoload: %s\n", file_name); ccv_info.file_name = vf_strdup(file_name); if (ccv_read_header(&ccv_info) < 0){ if (vf_dbg_ccv == 1) printf(">> CCV failed autoload\n"); return -1; } #if 0 printf(" %s %s => %s %s 0x%02x 0x%02x 0x%02x 0x%02x\n", ccv_info.cs1_name, ccv_info.cs1_enc, ccv_info.cs2_name, ccv_info.cs2_enc, ccv_info.c1min, ccv_info.c1max, ccv_info.c2min, ccv_info.c2max); #endif ccv_add_conv_info(&ccv_info, CCV_STAT_AUTOLOAD, file_name); if (vf_dbg_ccv == 1) printf(">> CCV autoload done.\n"); return 0; } Glocal int vf_ccv_install_func(char *cs1_name, char *cs1_enc, char *cs2_name, char *cs2_enc, long (*conv)(int,long)) { struct s_ccv_info ccv_info; ccv_info.cs1_name = cs1_name; ccv_info.cs1_name_aliases = NULL; ccv_info.cs1_enc = cs1_enc; ccv_info.cs1_enc_aliases = NULL; ccv_info.cs2_name = cs2_name; ccv_info.cs2_name_aliases = NULL; ccv_info.cs2_enc = cs2_enc; ccv_info.cs2_enc_aliases = NULL; ccv_info.arg_type = CCV_ARG_TYPE_FUNC; ccv_info.conv = conv; ccv_info.arg = 0; ccv_info.block_size = 0; ccv_info.c1min = 0; ccv_info.c1max = 0; ccv_info.c2min = 0; ccv_info.c2max = 0; ccv_info.nblocks = 0; ccv_info.file_name = NULL; ccv_add_conv_info(&ccv_info, CCV_STAT_LOADED, NULL); return 0; } Private int ccv_load(struct s_ccv_info *ccvi) { if (vf_dbg_ccv == 1) printf(">> CCV loading %s\n", ccvi->file_name); return ccv_read_file(ccvi, 0); } Private int ccv_read_header(struct s_ccv_info *ccvi) { return ccv_read_file(ccvi, 1); } Private int ccv_read_file(struct s_ccv_info *ccvi, int header_only) { FILE *fp; char key[256], val[256]; int block, v; ccvi->file_path = vf_path_find_runtime_file("ccv", ccvi->file_name, VF_ENV_CCV_DIR); if (vf_dbg_ccv == 1){ if (ccvi->file_path != NULL) printf(">> CCV autoload file %s: %s\n", ccvi->file_name, ccvi->file_path); else printf(">> CCV autoload file %s: not found\n", ccvi->file_name); } if (ccvi->file_path == NULL) return -1; if ((fp = vf_fm_OpenTextFileStream(ccvi->file_path)) == NULL) return -1; ccvi->cs1_name_aliases = NULL; ccvi->cs1_enc_aliases = NULL; ccvi->cs2_name_aliases = NULL; ccvi->cs2_enc_aliases = NULL; while (ccv_file_read_list(fp, key, sizeof(key)) >= 0){ v = ccv_file_read_elem(fp, val, sizeof(val)); if (v == -1) break; else if (v == 0) continue; if (( (vf_strcmp_ci(key, "charset-from-name") == 0) || (vf_strcmp_ci(key, "charset-external-name") == 0)) && (header_only == 1)){ ccvi->cs1_name = make_canonical_charset_name(val); ccv_read_aliases(fp, &ccvi->cs1_name_aliases); } else if (( (vf_strcmp_ci(key, "charset-from-encoding") == 0) || (vf_strcmp_ci(key, "charset-external-encoding") == 0)) && (header_only == 1)){ ccvi->cs1_enc = vf_strdup(val); ccv_read_aliases(fp, &ccvi->cs1_enc_aliases); } else if (( (vf_strcmp_ci(key, "charset-to-name") == 0) || (vf_strcmp_ci(key, "charset-internal-name") == 0)) && (header_only == 1)){ ccvi->cs2_name = make_canonical_charset_name(val); ccv_read_aliases(fp, &ccvi->cs2_name_aliases); } else if (( (vf_strcmp_ci(key, "charset-to-encoding") == 0) || (vf_strcmp_ci(key, "charset-internal-encoding") == 0)) && (header_only == 1)){ ccvi->cs2_enc = vf_strdup(val); ccv_read_aliases(fp, &ccvi->cs2_enc_aliases); } else if ((vf_strcmp_ci(key, "table-type") == 0) && (header_only == 1)){ ccvi->conv = NULL; if (vf_strcmp_ci(val, "array") == 0){ ccvi->arg_type = CCV_ARG_TYPE_ARRAY; ccvi->conv = ccv_conv_array; } else if (vf_strcmp_ci(val, "random-arrays") == 0){ ccvi->arg_type = CCV_ARG_TYPE_RANDOM_ARRAY; ccvi->conv = ccv_conv_random_array; } else { fprintf(stderr, "VFlib: broken code conversion file: %s\n", ccvi->file_name); return -1; } } else if ((vf_strcmp_ci(key, "nblocks") == 0) && (header_only == 1)){ sscanf(val, "%i", &ccvi->nblocks); } else if ((vf_strcmp_ci(key, "c1-min") == 0) && (header_only == 1)){ sscanf(val, "%i", &ccvi->c1min); } else if ((vf_strcmp_ci(key, "c1-max") == 0) && (header_only == 1)){ sscanf(val, "%i", &ccvi->c1max); } else if ((vf_strcmp_ci(key, "c2-min") == 0) && (header_only == 1)){ sscanf(val, "%i", &ccvi->c2min); } else if ((vf_strcmp_ci(key, "c2-max") == 0) && (header_only == 1)){ sscanf(val, "%i", &ccvi->c2max); } else if ((vf_strcmp_ci(key, "block-size") == 0) && (header_only == 1)){ sscanf(val, "%i", &ccvi->block_size); } else if (vf_strcmp_ci(key, "block") == 0){ if (header_only == 1){ break; } else { ccv_read_file_alloc_blocks(ccvi); sscanf(val, "%i", &block); if (ccvi->arg_type == CCV_ARG_TYPE_ARRAY){ ccv_read_file_block_array(fp, ccvi, block); } else { ccv_read_file_block_random_array(fp, ccvi, block); } } } } return 0; } Private void ccv_read_aliases(FILE *fp, char ***alias_tbl) { char val[128]; char *names[64]; int nnames, i; nnames = 0; while (ccv_file_read_elem(fp, val, sizeof(val)) > 0){ names[nnames++] = vf_strdup(val); } if (nnames == 0){ *alias_tbl = NULL; return; } if ((*alias_tbl = (char**)malloc(sizeof(char*) * (nnames + 1))) != NULL){ for (i = 0; i < nnames; i++){ (*alias_tbl)[i] = names[i]; } (*alias_tbl)[nnames] = NULL; } } Private int ccv_read_file_alloc_blocks(struct s_ccv_info *ccvi) { long *array; CCV_RANDOM_ARRAY rarray; switch (ccvi->arg_type){ case CCV_ARG_TYPE_ARRAY: array = (long*)calloc(ccvi->nblocks * (ccvi->c2max - ccvi->c2min + 1), sizeof(long)); if (array == NULL) return -1; ccvi->arg = (long)array; break; case CCV_ARG_TYPE_RANDOM_ARRAY: default: rarray = (CCV_RANDOM_ARRAY)calloc(1, sizeof(struct s_ccv_random_array)); if (rarray == NULL) return -1; rarray->block_index = (int*)calloc(ccvi->nblocks, sizeof(int)); rarray->tbl = (long*)calloc(ccvi->nblocks * (ccvi->c2max - ccvi->c2min + 1), sizeof(long)); if ((rarray == NULL) || (rarray->block_index == NULL) || (rarray->tbl == NULL)) return -1; ccvi->arg = (long)rarray; break; } return 0; } Private int ccv_read_file_block_array(FILE *fp, struct s_ccv_info *ccvi, int block) { int code, base, b, c, v; char key[256], val[256]; long *tbl; if (vf_dbg_ccv == 1) printf(">> CCV Reding table (array) nblocks=%d\n", ccvi->nblocks); tbl = (long*)ccvi->arg; for (b = ccvi->c1min; ; ){ if (vf_dbg_ccv == 1) printf(" Block %d", block); base = block * (ccvi->c2max - ccvi->c2min + 1); for (c = ccvi->c2min; c <= ccvi->c2max; c++){ if ((v = ccv_file_read_elem(fp, val, sizeof(val))) <= 0){ fprintf(stderr, "VFlib warning: broken code conversion table: %s\n", ccvi->file_name); return -1; } sscanf(val, "%i", &code); tbl[base + (c - ccvi->c2min)] = code; #if defined(DEBUG) && 0 printf("\n 0x%04x ==> 0x%04x", b*ccvi->block_size+c, code); #endif } if ((++b) > ccvi->c1max) break; for (;;){ if (ccv_file_read_list(fp, key, sizeof(key)) < 0){ fprintf(stderr, "VFlib warning: broken code conversion table: %s\n", ccvi->file_name); return -1; } if (vf_strcmp_ci(key, "block") == 0) break; } ccv_file_read_elem(fp, val, sizeof(val)); sscanf(val, "%i", &block); } if (vf_dbg_ccv == 1) printf("\n"); return 0; } Private int ccv_read_file_block_random_array(FILE *fp, struct s_ccv_info *ccvi, int block) { int code, base, b, c, v; char key[256], val[256]; int *block_index, index; long *tbl; CCV_RANDOM_ARRAY rarray; if (vf_dbg_ccv == 1) printf(">> CCV reding table (random-arrays) nblocks=%d", ccvi->nblocks); rarray = (CCV_RANDOM_ARRAY)ccvi->arg; block_index = rarray->block_index; tbl = rarray->tbl; for (b = 0; ; ){ if (vf_dbg_ccv == 1) printf(" Block %d", block); rarray->block_index[b] = block; base = b * (ccvi->c2max - ccvi->c2min + 1); for (c = ccvi->c2min; c <= ccvi->c2max; c++){ if ((v = ccv_file_read_elem(fp, val, sizeof(val))) <= 0){ fprintf(stderr, "VFlib warning: broken code conversion table: %s\n", ccvi->file_name); return -1; } sscanf(val, "%i", &code); index = base + (c - ccvi->c2min); tbl[index] = code; #if defined(DEBUG) && 0 printf("\n 0x%04x ==> 0x%04x (%d)", (block + ccvi->c1min)*ccvi->block_size+c, code, index); #endif } if ((++b) >= ccvi->nblocks) break; for (;;){ if ((v = ccv_file_read_list(fp, key, sizeof(key))) == 0) break; if (v < 0){ fprintf(stderr, "VFlib warning: broken code conversion table: %s\n", ccvi->file_name); return -1; } if (vf_strcmp_ci(key, "block") == 0) break; } ccv_file_read_elem(fp, val, sizeof(val)); sscanf(val, "%i", &block); } return 0; } Private int ccv_file_read_list(FILE *fp, char *buff, int nbuff) { int ch, i; buff[0] = '\0'; /* skip until '(' */ while ((ch = getc(fp)) != EOF){ if (ch == '(') break; if (ch == ';'){ /* coment begins. skip until the eol */ while ((ch = getc(fp)) != '\n'){ if (ch == EOF) return -1; } } } if (ch == EOF) return -1; /* read the car part of an s-exp */ i = 0; while ((ch = getc(fp)) != EOF){ if (i >= nbuff-1) break; if (isspace((int)ch)) break; if (ch == ')') break; buff[i++] = ch; if (ch == ' ') break; } buff[i] = '\0'; #if 0 printf("\n* %s: ", buff); #endif return 1; } Private int ccv_file_read_elem(FILE *fp, char *buff, int nbuff) { int ch, i; buff[0] = '\0'; while ((ch = getc(fp)) != EOF){ if (!isspace(ch)) break; } if (ch == ')') return 0; if (ch == EOF) return -1; i = 0; buff[i++] = ch; while ((ch = getc(fp)) != EOF){ if (i >= nbuff-1) break; if (isspace((int)ch)) break; if (ch == ')'){ ungetc(ch, fp); break; } buff[i++] = ch; } buff[i] = '\0'; #if 0 printf("%s ", buff); #endif return 1; } Glocal long vf_ccv_conv(int ccvi_index, long code_point) { long cv_code_point; if (ccvi_index < 0) return code_point; cv_code_point = (*ccv_tbl[ccvi_index].conv)(ccvi_index, code_point); if (vf_dbg_ccv_map == 1) printf(">> CCV code conversion: 0x%04lx => 0x%04lx\n", code_point, cv_code_point); return cv_code_point; } Private long ccv_conv_array(int ccvi_index, long code_point) { int c1, c2, index; CCV_INFO ccvi; long *tbl; ccvi = &ccv_tbl[ccvi_index]; c1 = code_point / ccvi->block_size; c2 = code_point % ccvi->block_size; if ( (c1 < ccvi->c1min) || (ccvi->c1max < c1) || (c2 < ccvi->c2min) || (ccvi->c2max < c2) ){ return -1; } index = (c1 - ccvi->c1min) * (ccvi->c2max - ccvi->c2min + 1) + (c2 - ccvi->c2min); tbl = (long*) ccvi->arg; return tbl[index]; } Private long ccv_conv_random_array(int ccvi_index, long code_point) { int c1, c2, index, i; CCV_INFO ccvi; CCV_RANDOM_ARRAY cra; ccvi = &ccv_tbl[ccvi_index]; c1 = code_point / ccvi->block_size; c2 = code_point % ccvi->block_size; if ( (c1 < ccvi->c1min) || (ccvi->c1max < c1) || (c2 < ccvi->c2min) || (ccvi->c2max < c2) ){ return -1; } cra = (CCV_RANDOM_ARRAY)ccvi->arg; for (i = 0; i < ccvi->nblocks; i++){ /** TOO SLOW! **/ /*printf("\n index %d %d", cra->block_index[i], c1);*/ if (cra->block_index[i]+ccvi->c1min == c1) break; } if (i == ccvi->nblocks) return -1; index = i * (ccvi->c2max - ccvi->c2min + 1) + (c2 - ccvi->c2min); return cra->tbl[index]; } #ifdef DEBUG /* * Usage: dbg-ccv filename - cs1_name cs1_enc cs2_name cs2_enc code_point ... */ int main(int argc, char **argv) { int i; int cc, cvcc; argc--; argv++; vf_ccv_init(); if (argc <= 4) exit(1); while (argc > 0){ if (strcmp(argv[0], "-") == 0){ argc--; argv++; break; } vf_ccv_autoload(argv[0]); argc--; argv++; } if (argc == 0) exit(0); if (argc > 4){ i = vf_ccv_require(argv[0], argv[1], argv[2], argv[3]); argc -= 4; argv = &argv[4]; } if (argc == 0) exit(0); while (argc > 0){ sscanf(argv[0], "%i", &cc); cvcc = vf_ccv_conv(i, (long)cc); printf("\n Conv 0x%x ==> 0x%x", cc, (int)cvcc); argc--; argv++; } } #endif /*EOF*/ vflib3-3.6.14.dfsg/src/mem.c0000644000175000017500000000306507324462770015014 0ustar mohuramohura/* * mem.c --- memory manager * */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #if HAVE_STRING_H # include #endif #if HAVE_STRINGS_H # include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" Glocal void vf_free(void *p) { static int init = 0; static void *xaddr = NULL; if (init == 0){ init = 1; if (getenv("VFLIB_DEBUG_FREE") != NULL){ sscanf(getenv("VFLIB_DEBUG_FREE"), "%p", &xaddr); } } if (p == NULL) return; if ((xaddr != NULL) && (p == xaddr)){ fprintf(stderr, "VFlib error in free\n"); abort(); } free(p); } /*EOF*/ vflib3-3.6.14.dfsg/src/vflmkt1.c0000644000175000017500000004136610270121110015576 0ustar mohuramohura/* * vflmkt1.c * - a vflibcap entry generator for PostScript Type 1 fonts * * - This program read "font map" file (e.g. psfonts.map) of dvips, * and prints vflibcap entries to standard output. * * - Useful for generating vflibcap for TeX DVI drivers * * * by Hirotsugu Kakugawa * * 2 May 2001 * 3 May 2001 Support for kpathsea. * 9 May 2001 Support for font file substitution by Ghostscript fonts * 10 May 2001 Support for font class geneeration, afm and encoding * vector directories. * 22 Jul 2005 Enhanced file search. */ /* * Copyright (C) 2001-2005 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #ifdef HAVE_STRING_H #include #endif #include #include #ifdef WITH_KPATHSEA # include "kpathsea/kpathsea.h" #endif #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "texfonts.h" #include "t1.h" #include "fsearch.h" #include "vflmklib.h" void gen_class_deafult(void); void translate(FILE*,FILE*,char*); int get_token(char *s, char *b, int *x); void emit(void); int parse_pscmd(char *cmds, double *val); void read_gs_fontmap(void); char *find_gs_font(char *f); int query_gs_db(char *s); double tfm_read_ds(char *name); #define MAXPSCODE 4 char texfont[BUFSIZ]; char psfont[BUFSIZ]; char t1font[BUFSIZ]; char encfile[BUFSIZ]; char pscode[MAXPSCODE][BUFSIZ]; char *mode = DEFAULT_KPS_MODE; char *dpi = NULL; int dpi_i = DEFAULT_KPS_DPI; #define NDIRS 64 int n_t1f; char *t1_fontdirs[NDIRS]; int n_t1e; char *t1_encdirs[NDIRS]; int n_t1a; char *t1_afmdirs[NDIRS]; int n_gsf; char *gs_fontdirs[NDIRS]; char *gs_fontmap; #define NGSFONTS 1024 char *gs_db_f[NGSFONTS]; char *gs_db_d[NGSFONTS]; int i_db; char *cmdline = NULL; char *font_suffix = ""; int gen_font = 0; int with_tfm = 0; int exist_only = 0; int main(int argc, char **argv) { int nmaps, i; FILE *fp; int xargc; char **xargv; #ifdef WITH_KPATHSEA int f; char *progname, *s; #endif dpi = malloc(256); sprintf(dpi, "%d", dpi_i); cmdline = copy_cmdline(argc, argv); n_t1f = n_t1a = n_t1e = 0; for (i = 0; i < NDIRS; i++){ t1_fontdirs[i] = NULL; t1_afmdirs[i] = NULL; t1_encdirs[i] = NULL; gs_fontdirs[i] = NULL; } gs_fontmap = NULL; i_db = 0; for (i = 0; i < NGSFONTS; i++){ gs_db_f[i] = NULL; gs_db_d[i] = NULL; } xargc = argc; xargv = argv; nmaps = 0; for (xargc--,xargv++; xargc > 0; xargc--,xargv++){ if ((strcmp(*xargv, "--help") == 0) || (strcmp(*xargv, "-help") == 0)){ printf("vflmkt1: generates vflibcap entries for Type1 fonts from\n"); printf(" a 'font map' file of dvips\n"); printf("Usage: vflmkt1 [options] [map-file ...]\n"); printf("Options\n"); printf(" -d DIR : Type 1 font file directory\n"); printf(" -a DIR : AFM file directory\n"); printf(" -e DIR : T1Lib encoding vector directory\n"); printf(" -gf DIR : Ghostscript font file directory\n"); printf(" -gm FILE : Ghostscript font map file 'Fontmap' path\n"); printf(" -r DPI : Default device resolution\n"); printf(" -n MODE : Device mode name for kpathsea\n"); printf(" -f : Generate font entries\n"); printf(" -z : Generate font entries whose font file exists\n"); printf(" -t : Generate font entries with TeX TFM file\n"); printf(" -x STR : String added to the end of font name\n"); #ifdef WITH_KPATHSEA printf("Example: vflmkt1 -d TEXMF -f psfonts.map\n"); #else printf("Example: vflmkt1 -d TEXMF -f /usr/local/share/texmf/dvips/psfonts.map\n"); #endif exit(0); } else if (strcmp(*xargv, "-r") == 0){ xargv++; xargc--; check_argc(xargc); dpi = strdup(*xargv); } else if (strcmp(*xargv, "-n") == 0){ /* mode */ xargv++; xargc--; check_argc(xargc); mode = x_strdup(*xargv); } else if (strcmp(*xargv, "-d") == 0){ /* type 1 font dir */ if (n_t1f == NDIRS){ fprintf(stderr, "Too many Type 1 font directories\n"); exit(1); } xargv++; xargc--; check_argc(xargc); t1_fontdirs[n_t1f++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-a") == 0){ /* afm dir */ if (n_t1a == NDIRS){ fprintf(stderr, "Too many AFM directories\n"); exit(1); } xargv++; xargc--; check_argc(xargc); t1_afmdirs[n_t1a++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-e") == 0){ /* encoding vector dir */ if (n_t1e == NDIRS){ fprintf(stderr, "Too many T1Lib Encoding Vector directories\n"); exit(1); } xargv++; xargc--; check_argc(xargc); t1_encdirs[n_t1e++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-gf") == 0){ /* gs font dir */ if (n_gsf == NDIRS){ fprintf(stderr, "Too many Ghostscript font directories\n"); exit(1); } xargv++; xargc--; check_argc(xargc); gs_fontdirs[n_gsf++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-gm") == 0){ /* gs font map */ xargv++; xargc--; check_argc(xargc); gs_fontmap = x_strdup(*xargv); } else if (strcmp(*xargv, "-f") == 0){ gen_font = 1; } else if (strcmp(*xargv, "-z") == 0){ exist_only = 1; } else if (strcmp(*xargv, "-t") == 0){ with_tfm = 1; } else if (strcmp(*xargv, "-x") == 0){ xargv++; xargc--; check_argc(xargc); font_suffix = strdup(*xargv); } else { if (*xargv[0] == '-'){ fprintf(stderr, "vflmkt1: unknown option %s\n", *xargv); exit(1); } break; } } #ifdef WITH_KPATHSEA progname = NULL; kpse_set_program_name (argv[0], progname); kpse_init_prog (uppercasify(kpse_program_name), atoi(dpi), mode, NULL); for (f = 0; f < kpse_last_format; f++) { kpse_init_format(f); } #endif banner("Type 1", "vflmkt1", cmdline); read_gs_fontmap(); gen_class_deafult(); for ( ; xargc > 0; xargc--,xargv++){ nmaps++; s = *xargv; if ((fp = fopen(s, "r")) == NULL){ #ifdef WITH_KPATHSEA s = kpse_find_file(*xargv, kpse_dvips_config_format, 0); if (s == NULL){ s = kpse_find_file(*xargv, kpse_fontmap_format, 0); if (s == NULL){ fprintf(stderr, "Cannot find: %s\n", *xargv); exit(1); } } if (s != NULL){ if ((fp = fopen(s, "r")) == NULL){ #endif fprintf(stderr, "Cannot open: %s\n", *xargv); exit(1); #ifdef WITH_KPATHSEA } } #endif } translate(fp, stdout, s); fclose(fp); } if (nmaps == 0){ translate(stdin, stdout, ""); } printf("\n"); return 0; } void gen_class_deafult(void) { int i; printf("(%s %s", VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, FONTCLASS_NAME); printf("\n (%s", VF_CAPE_FONT_DIRECTORIES); for (i = 0; i < n_t1f; i++) printf("\n \"%s\"", t1_fontdirs[i]); for (i = 0; i < n_gsf; i++) printf("\n \"%s\"", gs_fontdirs[i]); printf(")"); printf("\n (%s", VF_CAPE_TYPE1_AFM_DIRECTORIES); for (i = 0; i < n_t1a; i++) printf("\n \"%s\"", t1_afmdirs[i]); printf(")"); printf("\n (%s", VF_CAPE_TYPE1_ENC_DIRECTORIES); for (i = 0; i < n_t1e; i++) printf("\n \"%s\"", t1_encdirs[i]); printf(")"); printf("\n (%s \"none\")", VF_CAPE_TYPE1_LOG_LEVEL); printf("\n (%s %s)", VF_CAPE_DPI, dpi); printf(")\n"); printf("\n"); } void translate(FILE *in, FILE *out, char *map) { int lno, x, v, i; char buff[BUFSIZ]; char opt[BUFSIZ]; int npscode; if (gen_font == 0) return; printf(";; dvips mapfile: %s\n", map); lno = 0; while (fgets(buff, sizeof(buff), in) != NULL){ lno++; if (isspace(buff[0])) continue; switch (buff[0]){ case '\0': case ' ': case '\t': case '%': case '*': case ';': case '#': continue; default: break; } x = 0; npscode = 0; *t1font = *encfile = *opt = '\0'; for (i = 0; i < MAXPSCODE; i++) *pscode[i] = '\0'; v = get_token(texfont, buff, &x); v = get_token(psfont, buff, &x); if (v < 0) return; /* no two tokens */ while (v >= 0){ v = get_token(opt, buff, &x); if (v < 0) break; if (strncmp(opt, "<<", 2) == 0){ if (*t1font != '\0') fprintf(stderr, "Error: line %d: %s\n", lno, buff); strcpy(t1font, &opt[1]); } else if (strncmp(opt, "<[", 2) == 0){ if (*encfile != '\0') fprintf(stderr, "Error: line %d: %s\n", lno, buff); strcpy(encfile, &opt[1]); } else if (strncmp(opt, "<", 1) == 0){ if ((strlen(opt) >= 4) && (strcmp(".enc", &opt[strlen(opt)-4]) == 0)){ if (*encfile != '\0') fprintf(stderr, "Error: line %d: %s\n", lno, buff); strcpy(encfile, &opt[1]); } else { if (*t1font != '\0') fprintf(stderr, "Error: line %d: %s\n", lno, buff); strcpy(t1font, &opt[1]); } } else if (strncmp(opt, "\"", 1) == 0){ strcpy(pscode[npscode], &opt[1]); pscode[npscode][strlen(pscode[npscode])-1] = '\0'; npscode++; if (npscode == MAXPSCODE){ fprintf(stderr, "Error (Too many PS code): line %d: %s\n", lno, buff); exit(0); } } } emit(); } printf(";; end of %s\n", map); } int get_token(char *s, char *b, int *x) { int d; if (b[*x] == '\0') return -1; while (isspace(b[*x])){ (*x)++; if (b[*x] == '\0') return -1; } d = 0; if (b[*x] == '"') d = 1; for (;;){ *s = b[*x]; if (b[*x] == '\0') return 0; s++; (*x)++; if ((d == 0) && isspace(b[*x])){ *s = '\0'; break; } if ((d == 1) && (b[*x] == '"')) d = 0; } #if 0 while (isspace(b[*x])){ (*x)++; if (b[*x] == '\0') return -1; } #endif return 0; } void emit(void) { char *f, *ff; int i, n, type, l; double val, ds; char *exts[] = { ".pfb", ".pfa", NULL }; if (*t1font != '\0'){ ff = t1font; } else { ff = psfont; } f = check_font_exist(ff, t1_fontdirs, n_t1f, kpse_type1_format, exts); ds = tfm_read_ds(texfont); if (ds < 0){ free(f); f = NULL; } if (f == NULL){ /* search substitute font in Ghostscript font directory */ f = find_gs_font(ff); /* f is NULL if not found in gs Fontmap */ if (f != NULL){ /* ignore .gsf font files */ l = strlen(ff); if ((l >= strlen(".gsf")) && (strcmp(&f[l-4], ".gsf") == 0)){ free(f); f = NULL; } } } if ((f == NULL) && (exist_only == 1)) return; printf("(%s %s%s", VF_CAPE_VFLIBCAP_FONT_ENTRY_DEFINITION, texfont, font_suffix); printf("\t(%s %s)", VF_CAPE_FONT_CLASS, FONTCLASS_NAME); if ((with_tfm == 1) && (ds > 0)){ printf("\n (%s %.2f)", VF_CAPE_POINT_SIZE, ds); printf(" (%s \"%s\")", VF_CAPE_TYPE1_TFM, texfont); } if (f != NULL){ printf("\n (%s \"%s\" \"%s\")", VF_CAPE_FONT_FILE, f, ff); } else { printf("\n (%s \"%s\")", VF_CAPE_FONT_FILE, ff); } n = 0; for (i = 0; i < MAXPSCODE; i++){ if (pscode[i][0] == '\0') continue; if ((type = parse_pscmd(pscode[i], &val)) < 0) continue; if (n == 0){ printf("\n "); } else { printf(" "); } switch (type){ case 1: if (*encfile != '\0') printf("(%s \"%s\")", VF_CAPE_TYPE1_ENC_VECT, encfile); break; case 2: printf("(%s %.3f)", VF_CAPE_SLANT_FACTOR, val); break; case 3: printf("(%s %.3f)", VF_CAPE_ASPECT_RATIO, val); break; } n++; } printf(")\n"); if (f != NULL){ free(f); f = NULL; } } int parse_pscmd(char *cmds, double *val) { char psc[2][256]; if (sscanf(cmds, "%s %s", psc[0], psc[1]) == 2){ if (strcmp(psc[1], "ReEncodeFont") == 0){ return 1; } if (strcmp(psc[1], "SlantFont") == 0){ *val = atof(psc[0]); return 2; } if (strcmp(psc[1], "ExtendFont") == 0){ *val = atof(psc[0]); return 3; } return -1; } return -1; } void read_gs_fontmap(void) { int lno, i, j; char f[BUFSIZ], d[BUFSIZ]; char buff[BUFSIZ]; char *p; FILE *fp; if (n_gsf == 0) return; if ((fp = fopen(gs_fontmap, "r")) == NULL){ fprintf(stderr, "Cannot open Ghostscript Fontmap file\n"); exit(1); } lno = 0; while (fgets(buff, sizeof(buff), fp) != NULL){ lno++; /* skip empty line */ if ((p = strchr(buff, '%')) != NULL) *p = '\0'; for (i = 0; buff[i] != '\0'; i++){ if (!isspace(buff[i])) break; } if (buff[i] == '\0') continue; /* font name */ for (j = 0; (buff[i] != '\0') && !isspace(buff[i]); i++, j++) f[j] = buff[i]; f[j] = '\0'; if (buff[i] == '\0'){ fprintf(stderr, "Unexpected file format: gs_fontmap\n"); continue; } /* skip space */ for ( ; buff[i] != '\0'; i++){ if (!isspace(buff[i])) break; } if (buff[i] == '\0'){ fprintf(stderr, "Unexpected file format: Ghostscript Fontmap\n"); continue; } /* font file or alias */ for (j = 0; (buff[i] != '\0') && !isspace(buff[i]); i++, j++) d[j] = buff[i]; d[j] = '\0'; /* add to DB */ if (i_db == NGSFONTS){ fprintf(stderr, "Too many fonts in Ghostscript Fontmap\n"); exit(1); } #if 0 printf("*** GS Fontmap db %d: %s\t%s\n", i_db, f, d); #endif gs_db_f[i_db] = x_strdup(f); gs_db_d[i_db] = x_strdup(d); i_db++; } fclose(fp); fp = NULL; } char* find_gs_font(char *f) { int j; char *s; if ((j = query_gs_db(f)) < 0) return NULL; while (gs_db_d[j][0] == '/'){ /* resolve alias */ if ((j = query_gs_db(&gs_db_d[j][1])) < 0) return NULL; } s = x_strdup(&gs_db_d[j][1]); s[strlen(s)-1] = '\0'; return s; } int query_gs_db(char *s) { int i; for (i = 0; i < i_db; i++){ if (strcmp(&gs_db_f[i][1], s) == 0) return i; } return -1; /* font not in db. */ } double tfm_read_ds(char *name) { FILE *fp; char tfm[1024]; UINT4 lf, cs, ds, offset_header; UINT2 aux; int type; char *s; sprintf(tfm, "%s.%s", name, DEFAULT_EXTENSIONS_TFM); #ifdef WITH_KPATHSEA s = kpse_find_file(tfm, kpse_tfm_format, 0); #else s = name; #endif if (s == NULL) return -1; if ((fp = fopen(s, "r")) == NULL) return -1; lf = (UINT4)READ_UINT2(fp); if ((lf == 11) || (lf == 9)){ /* JFM file of Japanese TeX by ASCII Coop. */ type = METRIC_TYPE_JFM; (UINT4)READ_UINT2(fp); (UINT4)READ_UINT2(fp); (UINT4)READ_UINT2(fp); offset_header = 4*7; } else if (lf == 0){ /* Omega Metric File */ type = METRIC_TYPE_OFM; aux = READ_INT2(fp); /* ofm_level */ READ_UINT4(fp); READ_UINT4(fp); if (aux == 0){ /* level 0 OFM */ offset_header = 4*14; } else { /* level 1 OFM: *** NOT SUPPORTED YET *** */ offset_header = 4*29; } } else { /* Traditional TeX Metric File */ type = METRIC_TYPE_TFM; aux = 0; (int)READ_UINT2(fp); offset_header = 4*6; } if (type == METRIC_TYPE_OFM){ READ_UINT4(fp); READ_UINT4(fp); READ_UINT4(fp); READ_UINT4(fp); READ_UINT4(fp); READ_UINT4(fp); READ_UINT4(fp); READ_UINT4(fp); READ_UINT4(fp); READ_UINT4(fp); READ_UINT4(fp); } else { (int)READ_UINT2(fp); (int)READ_UINT2(fp); (UINT4)READ_UINT2(fp); (UINT4)READ_UINT2(fp); (UINT4)READ_UINT2(fp); (UINT4)READ_UINT2(fp); (UINT4)READ_UINT2(fp); (UINT4)READ_UINT2(fp); (UINT4)READ_UINT2(fp); (UINT4)READ_UINT2(fp); } fseek(fp, offset_header, SEEK_SET); cs = READ_UINT4(fp); ds = READ_UINT4(fp); fclose(fp); return (double)(ds)/(double)(1<<20); } unsigned long vf_tex_read_uintn(FILE* fp, int size) { unsigned long v; v = 0L; while (size >= 1){ v = v*256L + (unsigned long)getc(fp); --size; } return v; } long vf_tex_read_intn(FILE* fp, int size) { long v; v = (long)getc(fp) & 0xffL; if (v & 0x80L) v = v - 256L; --size; while (size >= 1){ v = v*256L + (unsigned long)getc(fp); --size; } return v; } void vf_tex_skip_n(FILE* fp, int size) { while (size > 0){ (void)getc(fp); --size; } } vflib3-3.6.14.dfsg/src/vflmklib.c0000644000175000017500000001102110267650437016032 0ustar mohuramohura/* * vflmklib.c * - commn functions used in vflmkXXX.c * * * by Hirotsugu Kakugawa * * 10 May 2001 * 22 Jul 2005 Enhanced file search. */ /* * Copyright (C) 2001-2005 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #include #include #ifdef WITH_KPATHSEA # include "kpathsea/kpathsea.h" #endif #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "fsearch.h" char* copy_cmdline(int xargc, char **xargv) { int i, t; char *s, *p; t = 1; for (i = 0; i < xargc; i++) t = t + strlen(xargv[i]) + 1; if ((s = malloc(t)) == NULL){ fprintf(stderr, "no memory.\n"); exit(1); } p = s; for (i = 0; i < xargc; i++){ strcpy(p, xargv[i]); p += strlen(xargv[i]); *(p++) = ' '; } p[t-1] = '\0'; return s; } void banner(char *name, char *prog, char *cline) { char host[256], ts[256], *p; time_t t; if (gethostname(host, sizeof(host)) < 0) strcpy(host, "???"); t = time(NULL); strcpy(ts, asctime(localtime(&t))); if ((p = strchr(ts, '\n')) != NULL) *p = '\0'; printf(";; -------------------------------------------------------\n"); printf(";; *** %s ***\n", name); printf(";; Generated by %s\n", prog); printf(";; at %s on %s\n", ts, host); printf(";; Commandline: %s\n", cline); printf("\n"); } char* x_strdup(char *s) { char *p; if (s == NULL){ fprintf(stderr, "internal error."); exit(1); } p = malloc(strlen(s) + 1); if (p == NULL){ fprintf(stderr, "no memory."); exit(1); } strcpy(p, s); return p; } char* check_font_exist(char *file, char **dirs, int ndirs, int kptype, char **ext) { int i, l, j, y; char path[MAXPATHLEN], *p, **e; char *e0[] = { "", NULL }; if (ndirs == 0) return 0; /* may or may not exist */ e = ext; if (e == NULL) e = e0; for (i = 0; i < ndirs; i++){ if ((strcmp(dirs[i], "TEXMF") == 0) || (strcmp(dirs[i], "KPATHSEA") == 0) || (strcmp(dirs[i], "texmf") == 0) || (strcmp(dirs[i], "kpathsea") == 0)){ p = kpse_find_file(file, kptype, 0); if ((p != NULL) && (access(p, R_OK) >= 0)){ return x_strdup(file); /* exist */ } else { for (j = 0; e[j] != NULL; j++){ sprintf(path, "%s%s", file, e[j]); /* check as it is */ p = kpse_find_file(path, kptype, 0); if ((p != NULL) && (access(p, R_OK) >= 0)) return x_strdup(path); /* exist */ /* check lower case */ for (y = 0; path[y] != '\0'; y++) path[y] = tolower(path[y]); p = kpse_find_file(path, kptype, 0); if ((p != NULL) && (access(p, R_OK) >= 0)) return x_strdup(path); /* exist */ /* check upper case */ for (y = 0; path[y] != '\0'; y++) path[y] = toupper(path[y]); p = kpse_find_file(path, kptype, 0); if ((p != NULL) && (access(p, R_OK) >= 0)) return x_strdup(path); /* exist */ } } return NULL; } else { for (j = 0; e[j] != NULL; j++){ sprintf(path, "%s", dirs[i]); l = strlen(dirs[i]); if ((l >= 2) && (dirs[i][l-2] == '/') && (dirs[i][l-1] == '/')){ sprintf(&path[l-2], "/%s", file); } else if ((l >= 2) && (dirs[i][l-2] != '/') && (dirs[i][l-1] == '/')){ sprintf(&path[l-1], "/%s", file); } else { sprintf(&path[l], "/%s", file); } strcat(path, e[j]); if (access(path, R_OK) >= 0) return x_strdup(path); /* exist */ } } } return NULL; /* not exist */ } void check_argc(int argc) { if (argc == 0){ fprintf(stderr,"Illegal command line argument\n"); fprintf(stderr,"Use '--help' option for help\n"); exit(1); } } int map_need_tfm(char *fontclass) { int i; static char *db[] = { "type1", "vf", NULL}; for (i = 0; db[i] != NULL; i++){ if (strcmp(fontclass, db[i]) == 0) return 1; } return 0; } vflib3-3.6.14.dfsg/src/vflmkgf.c0000644000175000017500000000721407302101244015650 0ustar mohuramohura/* * vflmkgf.c * - a vflibcap entry generator for TeX GF fonts * * - This program prints vflibcap entries to standard output. * * - Useful for generating vflibcap for TeX DVI drivers * * * by Hirotsugu Kakugawa * * 10 May 2001 */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "texfonts.h" #include "gf.h" #include "fsearch.h" #include "vflmklib.h" void gen_class_deafult(void); char *mode = DEFAULT_KPS_MODE; char *dpi = NULL; int dpi_i = DEFAULT_KPS_DPI; #define NDIRS 64 int n_gff; char *gf_fontdirs[NDIRS]; int gen_missing_glyph = 0; char *cmdline = NULL; int main(int argc, char **argv) { int i; int xargc; char **xargv; dpi = malloc(256); sprintf(dpi, "%d", dpi_i); cmdline = copy_cmdline(argc, argv); n_gff = 0; for (i = 0; i < NDIRS; i++){ gf_fontdirs[i] = NULL; } xargc = argc; xargv = argv; for (xargc--,xargv++; xargc > 0; xargc--,xargv++){ if ((strcmp(*xargv, "--help") == 0) || (strcmp(*xargv, "-help") == 0)){ printf("vflmkgf: generates vflibcap entries for GF fonts\n"); printf("Usage: vflmkgf [options]\n"); printf("Options\n"); printf(" -d DIR : GF font file directory\n"); printf(" -n MODE : Device mode name for kpathsea\n"); printf(" -r DPI : Default device resolution\n"); printf(" -g : Emit code to generate GF file on-the-fly\n"); printf("Example: vflmkgf -d TEXMF -d /usr/tex/fonts -g \n"); exit(0); } else if (strcmp(*xargv, "-d") == 0){ /* font dir */ if (n_gff == NDIRS){ fprintf(stderr, "Too many GF font directories\n"); exit(1); } xargv++; xargc--; check_argc(xargc); gf_fontdirs[n_gff++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-r") == 0){ xargv++; xargc--; check_argc(xargc); dpi = strdup(*xargv); } else if (strcmp(*xargv, "-n") == 0){ /* mode */ xargv++; xargc--; check_argc(xargc); mode = x_strdup(*xargv); } else if (strcmp(*xargv, "-g") == 0){ gen_missing_glyph = 1; } else { if (*xargv[0] == '-'){ fprintf(stderr, "vflmkgf: unknown option %s\n", *xargv); exit(1); } break; } } banner("GF", "vflmkgf", cmdline); gen_class_deafult(); return 0; } void gen_class_deafult(void) { int i; printf("(%s %s", VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, FONTCLASS_NAME_GF); printf("\n (%s", VF_CAPE_FONT_DIRECTORIES); for (i = 0; i < n_gff; i++) printf("\n \"%s\"", gf_fontdirs[i]); printf(")"); printf("\n (%s %s)", VF_CAPE_DPI, dpi); #if 0 printf("\n (%s \"%s\")", VF_CAPE_MAKE_MISSING_GLYPH, (gen_missing_glyph==1) ? "yes" : "no"); #endif printf(")\n"); printf("\n"); } vflib3-3.6.14.dfsg/src/vflmkcaptex0000755000175000017500000004067510400435222016331 0ustar mohuramohura#!/bin/sh # vflmkcaptex # --- Generate vflibcap for TeX DVI drivers # (Especially, DVIware of the TeX-Guy Project) # # by Hirotsugu Kakugawa # # 13 May 2001 # 12 Oct 2001 Fixed bugs. Thanks to James Hirschorn. # Changed to read modex.mf to obtain device resolution. # 21 Jul 2005 Enhanced searching "config.ps" and type 1 font files. # 33 Jul 2005 Added -t1map option. Changed type1 mapping files used. # Copyright (C) 2002-2005 Hirotsugu Kakugawa. # All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. version="1.1" vflibversion="3.6.14" prefix=/usr/local datadir=${prefix}/share k_mode_d="cx" k_dpi_d="300" k_prg_d="xgdvi" fclass_pk_def="pk vf type1 tfm" fclass_t1_def="type1 vf pk tfm" emit_portable="no" prefer_t1_="no" use_tex_mapper="no" gen_pk_otf="no" use_jtex="no" use_jtex_jisx0212="no" jtex_class="pcf" pcf_kanji_dir_extra="" ekanji_kanji_dir_extra="" ttf_kanji_dir_extra="" ttf_fontdef_opt="" ajt_ttf_fontdb="" use_jp_comic="no" jp_comic_fontdb="" t1_config_ps="config.ps" t1_config_ps_auxs="config.ps.ptex-tetex config.ps.tetex" t1_dmaps="psnfss.map psfonts.cm psfonts.ams xypic.map" k_mode=${k_mode_d} k_dpi=-1 k_prg=${k_prg_d} fclass="" ccv="" cmdline=$* usage() { echo "vflmkcaptex - make a vflibcap file of VFlib 3 for TeX DVI drivers." echo "Usage: vflmkcaptex [Options] [Class-list]" echo " or vflmkcaptex [Shortcut] [Options]" echo "Class-list: pk, gf, vf, type1, tfm" echo " A list of font class names." echo " Default class list: pk vf type1 tfm (with -pk option)" echo " type1 vf pk tfm (with -t1 option)" echo "Options:" echo " -p PROG Program name for kpathsea (default: ${k_prg_d})" echo " -n MODE Device mode name for kpathsea (default: ${k_mode_d})" echo " -r DPI Device resolution in DPI (default: ${k_dpi_d})" echo " -g Enable to generate PK on-the-fly" echo " -pk Search PK font before Type 1 (default)" echo " -t1 Search Type1 font before PK" echo " -i Generate more portable font directory list" echo " -t1map map Font mapping file (.map) for dvips" echo " Default map files: ${t1_dmaps}" echo " --version Print version number and exit" echo " --help Print help message" echo "Options for Japanese Kanji characters:" echo " -jtex Enable Japanese Kanji (JISX0208) font support" echo " -jisx0212 Enable Japanese Hojo Kanji (JISX0212) font support" echo " -jpcf Use X11 PCF fonts (default)" echo " -jttf Use TrueType fonts" echo " -jekanji Use eKanji fonts" echo " -jpfd DIR Add PCF font directory" echo " -jtfd DIR Add TrueType font directory" echo " -jefd DIR Add eKanji font directory" echo " -jtdb FILE File for TeX font definition with TrueType font" echo " The format of a file for -jtdb option is a sequence of" echo " lines, each of which contains TeX font name and TrueType" echo " font file name." echo "Shortcut:" echo " minimum same as 'pk' (PK only)" echo " simple same as '-g pk tfm' (PK and TFM only)" echo " standard same as '-t1 -g' (use default class list)" echo " simple-ja same as '-g pk tfm -jtex -jisx0212 -jpcf'" echo " standard-ja same as '-t1 -g -jtex -jisx0212 -jpcf'" exit 0; } # Check shortcut shortcut="" if [ $# -ge 1 ] then case $1 in minimum) shift shortcut="pk" ;; simple) shift shortcut="-g pk tfm" ;; simple-ja) shift shortcut="-g pk tfm -jtex -jisx0212 -jpcf" ;; standard) shift shortcut="-t1 -g" ;; standard-ja) shift shortcut="-t1 -g -jtex -jisx0212 -jpcf" ;; kakugawa) # developer's preference B-) shift shortcut="-pk \ -jtex -jisx0212 \ -jttf \ -jtfd /usr/local/share/fonts/DynaFont-TypeMuseum// \ -jtfd /usr/local/share/fonts/DynaFont-SpecialPack1// \ -jtfd /usr/local/share/fonts/DynaFont-Premium30// \ -jtfd /usr/local/share/fonts/FontCity2// \ -jtfd /usr/local/share/fonts/TrueTypeWorld-ValueFont141// \ -jtfd /usr/local/share/fonts/TrueTypeWorld-ValueFontDX// \ -jtfd /usr/local/share/fonts/mika-chan// \ -jtfd /usr/local/share/fonts/kotori// \ -jtdb ../ascii-jtex/fonts.lst \ -jpcdb ../ascii-jtex/fontsc.lst" ;; esac fi args_rest=$* set -- $shortcut $args_rest #echo $# $* #exit 1; # Command line argument fclass="" while [ $# -gt 0 ] do case "$1" in -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac case $1 in --prefix=*) prefix=$optarg datadir=${prefix}/share ;; --datadir=*) datadir=$optarg ;; pk|gf|tfm|vf|type1) fclass="${fclass} $1" ;; -r) k_dpi=$2 shift ;; -n) k_mode=$2 shift ;; -p) k_prg=$2 shift ;; -i) emit_portable="yes" ;; -g) gen_pk_otf="yes" ;; -t1) prefer_t1="yes" ;; -t1map) t1_dmaps="${t1_dmaps} $2" shift ;; -pk) prefer_t1="no" ;; -jtex) use_jtex="yes" ;; -jisx0212) use_jtex="yes" use_jtex_jisx0212="yes" ;; -jpcf) use_jtex="yes" jtex_class="pcf" ;; -jekanji) use_jtex="yes" jtex_class="ekanji" ;; -jttf) use_jtex="yes" jtex_class="ttf" ;; -jtfd) ttf_kanji_dir_extra="${ttf_kanji_dir_extra} $2" shift ;; -jpfd) pcf_kanji_dir_extra="${pcf_kanji_dir_extra} $2" shift ;; -jefd) ekanji_kanji_dir_extra="${ekanji_kanji_dir_extra} $2" shift ;; -jtdb) ajt_ttf_fontdb="${ajt_ttf_fontdb} -tf $2" shift ;; -jpcdb) use_jp_comic="yes" jp_comic_fontdb="$2" shift ;; --help|-help|-hel|-he|-h) usage; ;; --ver*|-ver*|-v) echo "${version}, VFlib ${vflibversion}" exit 1 ;; *) echo "" >&2 echo "vflmkcaptex: Unknown option ${1}" >&2 echo "Use --help option for help" >&2 echo "Abort" >&2 exit 1 ;; esac shift done if [ "x-${fclass}" = "x-" ] ; then if [ "x-${prefer_t1}" = "x-no" ]; then fclass=${fclass_pk_def} else fclass=${fclass_t1_def} fi fi for c in ${fclass}; do case $c in vf|type1) use_tex_mapper="yes" esac done if [ "${use_jtex}" = "yes" ] ; then ccv="${ccv} -c jisx0201_unicode.ccv " ccv="${ccv} -c jisx0208_unicode.ccv " ccv="${ccv} -c jisx0208sjis_unicode.ccv " ccv="${ccv} -c jisx0212_unicode.ccv " fi # Checking kpathsea have_kpathsea=no kpsewhich texmf.cnf >/dev/null 2>/dev/null if [ $? = "0" ] ; then have_kpathsea=yes fi if [ "x-${have_kpathsea}" = "x-no" ] ; then echo "" >&2 echo "No kpathsea." >&2 echo "Abort" >&2 exit 1; fi # Subroutines type1_check_adobe() { t1dir=" /usr/Acrobat3/Fonts \ /usr/Acrobat4/Resource/Font \ /usr/Acrobat5/Resource/Font \ /opt/Acrobat3/Fonts \ /opt/Acrobat4/Resource/Font \ /opt/Acrobat5/Resource/Font \ /usr/lpp/Acrobat3/Fonts \ /usr/lpp/Acrobat4/Resource/Font \ /usr/lpp/Acrobat5/Resource/Font \ /usr/local/Acrobat3/Fonts \ /usr/local/Acrobat4/Resource/Font \ /usr/local/Acrobat5/Resource/Font " for f in ${t1dir}; do if [ "x-${emit_portable}" = "x-yes" ] ; then type1_opt="${type1_opt} -d ${f}" else ff=`echo ${f} | sed 's|//$||'` if [ -d ${ff} ] ; then type1_opt="${type1_opt} -d ${f}" fi fi done } type1_check_gs() { gs_fm="" tmp=/tmp/vflmkcaptex$$ rm -f ${tmp} echo '0 1 LIBPATH length 1 sub { LIBPATH exch get print (\n) print } for' > ${tmp} d=`gs -q -DNODISPLAY ${tmp} quit.ps` if [ $? -eq 0 ] ; then for f in ${d}; do if [ -f ${f}/Fontmap ] ; then gs_fm="-gm ${f}/Fontmap" fi if [ "x-${f}" != "x-." ] ; then type1_gs_opt="${type1_gs_opt} -gf ${f}" type1_opt="${type1_opt} -a ${f}" fi done fi rm -f ${tmp} type1_gs_opt="${type1_gs_opt} ${gs_fm}" } type1_check_fontmap() { dc=`kpsewhich -format='dvips config' ${t1_config_ps}` if [ $? -ne 0 ] ; then echo "Warning: dvips config file ${t1_config_ps} not found" >&2 for c in ${t1_config_ps_auxs} do dc=`kpsewhich -format='dvips config' ${c}` if [ $? -ne 0 ] ; then echo "Abort" >&2 exit 1; else echo "Warning: use dvips config file ${c}" >&2 break fi done fi sed 's/[[:blank:]]//' > /dev/null < /dev/null 2> /dev/null; if [ $? -eq 0 ]; then sedfiltregex='s/^p[[:blank:]]*[+]*\([^[:blank:]]*\)[:blank:]*/\1/' else sedfiltregex='s/^p[ ]*[+]*\(.*map\).*/\1/' fi maps=`cat $dc | sed 's/%.*//' | grep '^p' | sed "$sedfiltregex"` maps=`echo $maps ${t1_dmaps} | sort | uniq` #echo $maps; exit type1_fontmap="" for m in $maps do f=`kpsewhich -format=map $m` if [ $? -eq 0 ] ; then type1_fontmap="${type1_fontmap} $m" else f=`kpsewhich -format='dvips config' $m` if [ $? -eq 0 ] ; then type1_fontmap="${type1_fontmap} $m" else echo "Warning: dvips fontmap file $m not found" >&2 fi fi done } pcf_check_dir() { pcfdirs=" /usr/X11R6/lib/X11/fonts// \ /usr/X11R5/lib/X11/fonts// \ /usr/local/X11R6/lib/X11/fonts// \ /usr/openwin/lib/X11/fonts// \ /usr/X386/lib/X11/fonts// \ /usr/XFree86/lib/X11/fonts// \ /usr/X11/lib/X11/fonts// \ /usr/local/lib/X11/fonts// \ /usr/X11R6/lib/X11/fonts// \ /usr/X11R5/lib/X11/fonts// \ /usr/local/X11R6/lib/X11/fonts// \ /usr/local/X11R5/lib/X11/fonts// \ /usr/local/share/emacs/fonts// \ /usr/local/fonts/X11// \ /usr/local/share/fonts/X11// " pcf_dir_opt="" for f in ${pcfdirs} ${pcf_kanji_dir_extra}; do if [ "x-${emit_portable}" = "x-yes" ] ; then pcf_dir_opt="${pcf_dir_opt} -d ${f}" else ff=`echo ${f} | sed 's|//$||'` if [ -d ${ff} ] ; then pcf_dir_opt="${pcf_dir_opt} -d ${f}" fi fi done } ekanji_check_dir() { ekanjidirs=" /usr/local/fonts/ekanji// \ /usr/local/share/fonts/eKanji// " ekanji_dir_opt="" for f in ${ekanjidirs} ${ekanji_kanji_dir_extra}; do if [ "x-${emit_portable}" = "x-yes" ] ; then ekanji_dir_opt="${ekanji_dir_opt} -d ${f}" else ff=`echo ${f} | sed 's|//$||'` if [ -d ${ff} ] ; then ekanji_dir_opt="${ekanji_dir_opt} -d ${f}" fi fi done } ttf_check_dir() { ttfdirs=" " ttf_dir_opt="" for f in ${ttfdirs} ${ttf_kanji_dir_extra}; do if [ "x-${emit_portable}" = "x-yes" ] ; then ttf_dir_opt="${ttf_dir_opt} -d ${f}" else ff=`echo ${f} | sed 's|//$||'` if [ -d ${ff} ] ; then ttf_dir_opt="${ttf_dir_opt} -d ${f}" fi fi done } get_device_resolution() { modes_mf=`kpsewhich modes.mf` if [ x-${modes_mf} = x- ] ; then echo "Not found: modes.mf" >&2 exit; fi if [ ! -f ${modes_mf} ] ; then echo "Not found: modes.mf" >&2 exit; fi devdpi=`cat ${modes_mf} \ | awk -v devname=${k_mode} ' BEGIN { devdpi = ""; } END { if (devdpi == ""){ printf("-1\n"); # not found } printf("%s\n", devdpi); } # Line: e.g., mode_def ljfour = % 600dpi HP LaserJet 4 /^mode_def/ { mode=$2; ppi=-1; ppiv=-1; asp=1.0; i=index($0, "%"); x=substr($0, i); desc=substr($0, i + match(x, "[[:alnum:]]") - 1); } # Line: e.g., mode_param (pixels_per_inch, 600); /^[[:space:]]*mode_param[[:space:]]*\([[:space:]]*pixels_per_inch, [[:space:]]*[[:digit:].]+\);/ { match($3, "[[:digit:].]*"); ppi=substr($3, 1, RLENGTH); ppiv=-1; } # Line: e.g., mode_param (aspect_ratio, 4/3); # Currently, aspect ratio must be 1 /^[[:space:]]*mode_param[[:space:]]*\([[:space:]]*aspect_ratio[[:space:]]*,[[:space:]]*[[:digit:].\/]+[[:space:]]*\)[[:space:]]*;/ { i=match($0, ",[[:space:]]*"); s0=i+RLENGTH; x=substr($0, s0); len=index(x, ")"); asp=substr($0, s0, len-1); ppiv=asp*ppi; ppi=-1; ### ignore this entry. } # Line: e.g., mode_param (aspect_ratio, 180 / pixels_per_inch); /^[[:space:]]*mode_param[[:space:]]*\([[:space:]]*aspect_ratio[[:space:]]*,[[:space:]]*[[:digit:].\/]*[[:space:]]*\/[[:space:]]*pixels_per_inch[[:space:]]*\)/ { i=match($0, ",[[:space:]]*[[:digit:].]"); x=substr($0, i+RLENGTH-1); s0=i+RLENGTH-1; match(x, "[[:space:]]*/"); ppiv=substr($0, s0, RSTART-1); asp=ppi/ppiv; ppi=-1; ### ignore this entry. } # Line: e.g., enddef; /^enddef/ { if ((mode != "") && (ppi > 0)){ if ((ppiv < 0) && (mode == devname)){ devdpi=ppi; } mode=""; ppi=-1; ppiv=-1; desc=""; } } '` if [ ${devdpi} -eq -1 ] ; then k_dpi=${k_dpi_d}; else k_dpi=${devdpi} fi } # end of subroutines # Emit vflibcap xd=`date` xh=`hostname` xu=`who am i | awk '{ print $1 }'` echo ";; a vflibcap file generated by 'vflmkcaptex' automatically" echo ";; at ${xd} " echo ";; on ${xh} by ${xu}" echo ";; " echo ";; command line arguments given to generate this vflibcap:" echo ";; vflmkcaptex ${cmdline}" echo ";; " echo "" if [ ${k_dpi} -eq -1 ] ; then get_device_resolution; fi # echo ${k_mode} ${k_dpi}; exit; # Emit VFlib default opt="-n ${k_mode} -r ${k_dpi} -p ${k_prg}" if [ "x-${have_kpathsea}" = "x-yes" ] ; then opt="${opt} -k" fi if [ "x-${use_tex_mapper}" = "x-yes" ] ; then opt="${opt} -i TeX" else for c in ${fclass}; do case ${c} in pk|gf|tfm) opt="${opt} -i ${c}" ;; esac done fi vflmkvfl ${opt} ${ccv} # Emit TeX font mapper opt="" opt_map="" if [ "x-${use_tex_mapper}" = "x-yes" ] ; then opt_map="" for c in ${fclass}; do case ${c} in pk) opt_map="${opt_map} -m ${c} %f.%dpk" ;; gf) opt_map="${opt_map} -m ${c} %f.%dgk" ;; vf) opt_map="${opt_map} -m ${c} %f.vf" ;; tfm) opt_map="${opt_map} -m ${c} %f.%dtfm" ;; type1) opt_map="${opt_map} -m ${c} %f.pfb" ;; ascii-jtex-kanji) opt_map="${opt_map} -m ${c} %f.jtex" ;; esac done opt="-r \$TeX_DPI" opt="${opt} -d TEXMF" vflmktex ${opt} ${opt_map} fi # Emit each class comopt1="-n \$TeX_KPATHSEA_MODE -d TEXMF" comopt2="-r \$TeX_DPI" for c in ${fclass}; do opt="" case ${c} in pk) if [ "x-${gen_pk_otf}" = "x-yes" ] ; then opt="-g" fi vflmkpk ${comopt1} ${comopt2} ${opt} ;; gf) vflmkgf ${comopt1} ${comopt2} ;; vf) vflmkvf ${comopt1} ${comopt2} -m any %f.pk ;; type1) opt="${comopt1} ${comopt2}" opt="${opt} -x .pk" opt="${opt} -a TEXMF" opt="${opt} -e ${datadir}/VFlib/${vflibversion}/t1lib" opt="${opt} -e ${datadir}/VFlib/site" opt="${opt} -e ${datadir}/VFlib/site/t1lib" opt="${opt} -f -t" type1_opt="" type1_gs_opt="" type1_fontmap="" type1_check_adobe type1_check_gs type1_check_fontmap opt="${opt} ${type1_opt} ${type1_gs_opt} ${type1_fontmap}" vflmkt1 ${opt} < /dev/null ;; tfm) vflmktfm ${comopt1} ${comopt2} ;; esac done opt="-r \$TeX_DPI" if [ "${use_jtex}" = "yes" ] ; then jtex_opt="-c ${jtex_class}" if [ "x-${use_jtex_jisx0212}" = "x-yes" ] ; then jtex_opt="${jtex_opt} -jisx0212" fi case ${jtex_class} in pcf) pcf_check_dir vflmkpcf ${opt} ${pcf_dir_opt} ;; ekanji) ekanji_check_dir vflmkekan ${ekanji_dir_opt} ;; ttf) ttf_check_dir vflmkttf ${opt} -d TEXMF ${ttf_opt} ${ttf_dir_opt} jtex_opt="${jtex_opt} ${ajt_ttf_fontdb}" ;; esac vflmkajt -d TEXMF -x .pk ${jtex_opt} fi if [ "${use_jp_comic}" = "yes" ] ; then vflmkjpc -x .pk ${jp_comic_fontdb} fi echo "" echo ";; end." # end vflib3-3.6.14.dfsg/src/vflmklib.h0000644000175000017500000000220607302663061016035 0ustar mohuramohura/* * vflmklib.h * * by Hirotsugu Kakugawa * * 10 May 2001 */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef __VFLIBMKLIB_H__ #define __VFLIBMKLIB_H__ extern char* copy_cmdline(int,char**); extern void banner(char*,char*,char*); extern char* x_strdup(char*); extern char* check_font_exist(char*,char**,int,int,char**); extern void check_argc(int); extern int map_need_tfm(char*); #endif /* __VFLIBMKLIB_H__ */ vflib3-3.6.14.dfsg/src/vflmkekan.c0000644000175000017500000000621007361534453016206 0ustar mohuramohura/* * vflmkekan.c * - a vflibcap entry generator for eKanji bitmap fonts * * - This program prints vflibcap entries to standard output. * * * by Hirotsugu Kakugawa * * 23 May 2001 */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #ifdef HAVE_STRING_H #include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "ekan.h" #include "fsearch.h" #include "vflmklib.h" void gen_class_deafult(void); char *dpi = NULL; int dpi_i = DEFAULT_KPS_DPI; #define NDIRS 64 int n_dirs; char *fontdirs[NDIRS]; char *cmdline = NULL; int main(int argc, char **argv) { int i; int xargc; char **xargv; dpi = malloc(256); sprintf(dpi, "%d", dpi_i); cmdline = copy_cmdline(argc, argv); n_dirs = 0; for (i = 0; i < NDIRS; i++){ fontdirs[i] = NULL; } xargc = argc; xargv = argv; for (xargc--,xargv++; xargc > 0; xargc--,xargv++){ if ((strcmp(*xargv, "--help") == 0) || (strcmp(*xargv, "-help") == 0)){ printf("vflmkekan: generates vflibcap entries for eKanji fonts\n"); printf("Usage: vflmkekan [options]\n"); printf("Options\n"); printf(" -d DIR : eKanji font file directory\n"); printf(" -r DPI : Default device resolution\n"); printf("Example: vflmkekan -d /usr/local/share/fonts/eKanji \n"); exit(0); } else if (strcmp(*xargv, "-d") == 0){ /* font dir */ if (n_dirs == NDIRS){ fprintf(stderr, "Too many eKanji font directories\n"); exit(1); } xargv++; xargc--; check_argc(xargc); fontdirs[n_dirs++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-r") == 0){ xargv++; xargc--; check_argc(xargc); dpi = strdup(*xargv); } else { if (*xargv[0] == '-'){ fprintf(stderr, "vflmkekan: unknown option %s\n", *xargv); exit(1); } break; } } banner("eKanji", "vflmkekan", cmdline); gen_class_deafult(); return 0; } void gen_class_deafult(void) { int i; printf("(%s %s", VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, FONTCLASS_NAME); printf("\n (%s", VF_CAPE_FONT_DIRECTORIES); for (i = 0; i < n_dirs; i++) printf("\n \"%s\"", fontdirs[i]); printf(")"); printf("\n (%s %d)", VF_CAPE_EK_FONT_DOT_SIZE, 24); printf(")\n"); printf("\n"); } vflib3-3.6.14.dfsg/src/dbg_ml.c0000644000175000017500000000637207365217673015473 0ustar mohuramohura/* * dbg_ml.c - * by Hirotsugu Kakugawa * * */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include #include #include #ifdef HAVE_UNISTD_H # include #endif #ifdef __FreeBSD__ #include #include #include #define RUSAGE_SELF 0 #endif #include "VFlib-3_6.h" #define DEFAULT_FONT "timR18.pcf" char *vflibcap; char *fontname; double mag; void usage(void); void test(int, int); int main(int argc, char **argv) { int code; int w; code = -1; vflibcap = NULL; fontname = DEFAULT_FONT; mag = 1.0; w = 1; --argc; argv++; while (argc > 0){ if ((argc >= 1) && ((strcmp(argv[0], "-h") == 0) || (strcmp(argv[0], "--help") == 0))){ usage(); exit(0); } else if ((argc >= 2) && (strcmp(argv[0], "-v") == 0)){ --argc; argv++; vflibcap = argv[0]; --argc; argv++; } else if ((argc >= 2) && (strcmp(argv[0], "-f") == 0)){ --argc; argv++; fontname = argv[0]; --argc; argv++; } else if ((argc >= 2) && (strcmp(argv[0], "-m") == 0)){ --argc; argv++; mag = atof(argv[0]); --argc; argv++; } else if ((argc >= 2) && (strcmp(argv[0], "-w") == 0)){ --argc; argv++; w = atof(argv[0]); --argc; argv++; } else if (argv[0][0] == '='){ printf("Unknown option: %s\n", *argv); usage(); exit(0); } else { sscanf(argv[0], "%i", &code); break; } } test(code, w); return 0; } void usage(void) { printf("dbg_ml\n"); printf("Usage: dbg_ml [-v vflibcap] [-m mag] [-f fontname] charcode\n"); } void test(int code, int w) { int fid, i; VF_BITMAP bm; #ifdef __FreeBSD__ struct rusage ru; #endif if (VF_Init(vflibcap, NULL) < 0){ printf("VFlib initialization error\n"); exit(1); } printf("** font=%s, char=%d", fontname, code); i = 1; for (;;){ if ((i % 50) == 1){ #ifdef __FreeBSD__ printf("\n"); if (getrusage(RUSAGE_SELF, &ru) >= 0){ printf(" maxrss=%ldK", ru.ru_maxrss); } #endif printf("\n"); printf("% 6d ", i); } printf("*"); fflush(stdout); i++; if ((fid = VF_OpenFont1(fontname, -1, -1, -1, mag, mag)) < 0){ printf("\nCan't open font\n"); return; } if (code > 0){ bm = VF_GetBitmap1(fid, code, 1, 1); if (bm == NULL){ printf("\nCan't get bitmap\n"); return; } VF_FreeBitmap(bm); } VF_CloseFont(fid); fid = -1; if (w > 0) usleep(1000*w); } } /*EOF*/ vflib3-3.6.14.dfsg/src/fsearch.s0000644000175000017500000014220407300630327015655 0ustar mohuramohura .file "fsearch.c" gcc2_compiled.: .data .align 4 .type kps_switch,@object .size kps_switch,4 kps_switch: .long 0 .section .rodata .LC0: .string "cx" .data .align 4 .type kps_mode,@object .size kps_mode,4 kps_mode: .long .LC0 .align 4 .type kps_dpi,@object .size kps_dpi,4 kps_dpi: .long 300 .section .rodata .LC1: .string "/usr/local/bin/vflserver" .data .align 4 .type kps_path,@object .size kps_path,4 kps_path: .long .LC1 .section .rodata .LC2: .string "vflserver" .data .align 4 .type kps_prog,@object .size kps_prog,4 kps_prog: .long .LC2 .align 4 .type inited_prog.18,@object .size inited_prog.18,4 inited_prog.18: .long 0 .section .rodata .LC3: .string ">>Kpathsea: enabled\n" .LC4: .string ">>Kpathsea: disabled\n" .align 32 .LC5: .string ">>Kpathsea: mode=%s, dpi=%d program=%s\n" .text .align 4 .globl vf_kpathsea_init .type vf_kpathsea_init,@function vf_kpathsea_init: pushl %ebp movl %esp,%ebp subl $24,%esp movl 20(%ebp),%eax movl %eax,kps_switch movl 16(%ebp),%eax movl %eax,kps_dpi cmpl $0,12(%ebp) je .L22 movl 12(%ebp),%eax movl %eax,kps_mode .L22: cmpl $0,8(%ebp) je .L23 movl 8(%ebp),%eax movl %eax,kps_prog .L23: cmpl $1,inited_prog.18 jne .L24 jmp .L21 .p2align 4,,7 .L24: movl $1,inited_prog.18 cmpl $1,vf_dbg_kpathsea jne .L25 cmpl $1,kps_switch jne .L26 addl $-12,%esp pushl $.LC3 call printf addl $16,%esp jmp .L25 .p2align 4,,7 .L26: addl $-12,%esp pushl $.LC4 call printf addl $16,%esp .L27: .L25: cmpl $1,vf_dbg_kpathsea jne .L28 movl kps_prog,%eax pushl %eax movl kps_dpi,%eax pushl %eax movl kps_mode,%eax pushl %eax pushl $.LC5 call printf addl $16,%esp .L28: addl $-8,%esp movl kps_prog,%eax pushl %eax movl kps_path,%eax pushl %eax call kpse_set_program_name addl $16,%esp pushl $0 movl kps_mode,%eax pushl %eax movl kps_dpi,%eax pushl %eax movl kps_prog,%eax pushl %eax call kpse_init_prog addl $16,%esp movl $0,-4(%ebp) .p2align 4,,7 .L29: cmpl $40,-4(%ebp) jle .L32 jmp .L30 .p2align 4,,7 .L32: addl $-12,%esp movl -4(%ebp),%eax pushl %eax call kpse_init_format addl $16,%esp .L31: incl -4(%ebp) jmp .L29 .p2align 4,,7 .L30: .L21: leave ret .Lfe1: .size vf_kpathsea_init,.Lfe1-vf_kpathsea_init .section .rodata .LC6: .string "r+" .LC7: .string "sh" .LC8: .string "-c" .LC9: .string "/bin/sh" .text .align 4 .globl x_popen .type x_popen,@function x_popen: pushl %ebp movl %esp,%ebp subl $56,%esp addl $-8,%esp pushl $43 movl 12(%ebp),%eax pushl %eax call strchr addl $16,%esp movl %eax,%eax testl %eax,%eax je .L34 movl $1,-24(%ebp) movl $.LC6,12(%ebp) jmp .L35 .p2align 4,,7 .L34: movl $0,-24(%ebp) movl 12(%ebp),%eax cmpb $114,(%eax) je .L38 movl 12(%ebp),%eax cmpb $119,(%eax) jne .L37 jmp .L38 .p2align 4,,7 .L38: movl 12(%ebp),%eax incl %eax cmpb $0,(%eax) jne .L37 jmp .L35 .p2align 4,,7 .L37: xorl %eax,%eax jmp .L33 .p2align 4,,7 .L36: .L35: addl $-12,%esp leal -16(%ebp),%eax pushl %eax call pipe addl $16,%esp movl %eax,%eax testl %eax,%eax jge .L39 xorl %eax,%eax jmp .L33 .p2align 4,,7 .L39: addl $-12,%esp pushl $12 call malloc addl $16,%esp movl %eax,%eax movl %eax,%edx movl %edx,%eax movl %eax,-4(%ebp) testl %eax,%eax jne .L40 addl $-12,%esp movl -16(%ebp),%eax pushl %eax call close addl $16,%esp addl $-12,%esp movl -12(%ebp),%eax pushl %eax call close addl $16,%esp xorl %eax,%eax jmp .L33 .p2align 4,,7 .L40: movl $.LC7,-40(%ebp) movl $.LC8,-36(%ebp) movl 8(%ebp),%eax movl %eax,-32(%ebp) movl $0,-28(%ebp) call vfork movl %eax,%eax movl %eax,-20(%ebp) movl -20(%ebp),%eax cmpl $-1,%eax je .L42 testl %eax,%eax je .L43 jmp .L41 .p2align 4,,7 .L42: addl $-12,%esp movl -16(%ebp),%eax pushl %eax call close addl $16,%esp addl $-12,%esp movl -12(%ebp),%eax pushl %eax call close addl $16,%esp addl $-12,%esp movl -4(%ebp),%eax pushl %eax call free addl $16,%esp xorl %eax,%eax jmp .L33 .p2align 4,,7 .L43: movl 12(%ebp),%eax cmpb $114,(%eax) jne .L44 addl $-12,%esp movl -16(%ebp),%eax pushl %eax call close addl $16,%esp cmpl $1,-12(%ebp) je .L45 addl $-8,%esp pushl $1 movl -12(%ebp),%eax pushl %eax call dup2 addl $16,%esp addl $-12,%esp movl -12(%ebp),%eax pushl %eax call close addl $16,%esp cmpl $0,-24(%ebp) je .L46 addl $-8,%esp pushl $0 pushl $1 call dup2 addl $16,%esp .L46: jmp .L47 .p2align 4,,7 .L45: cmpl $0,-24(%ebp) je .L47 cmpl $0,-12(%ebp) je .L47 addl $-8,%esp pushl $0 movl -12(%ebp),%eax pushl %eax call dup2 addl $16,%esp .L48: .L47: jmp .L49 .p2align 4,,7 .L44: cmpl $0,-16(%ebp) je .L50 addl $-8,%esp pushl $0 movl -16(%ebp),%eax pushl %eax call dup2 addl $16,%esp addl $-12,%esp movl -16(%ebp),%eax pushl %eax call close addl $16,%esp .L50: addl $-12,%esp movl -12(%ebp),%eax pushl %eax call close addl $16,%esp .L49: nop movl pidlist,%eax movl %eax,-44(%ebp) .p2align 4,,7 .L51: cmpl $0,-44(%ebp) jne .L54 jmp .L52 .p2align 4,,7 .L54: addl $-12,%esp movl -44(%ebp),%eax movl 4(%eax),%edx movswl 14(%edx),%eax pushl %eax call close addl $16,%esp .L53: movl -44(%ebp),%eax movl (%eax),%edx movl %edx,-44(%ebp) jmp .L51 .p2align 4,,7 .L52: addl $-4,%esp movl environ,%eax pushl %eax leal -40(%ebp),%eax pushl %eax pushl $.LC9 call execve addl $16,%esp addl $-12,%esp pushl $127 call _exit addl $16,%esp .p2align 4,,7 .L56: .L41: movl 12(%ebp),%eax cmpb $114,(%eax) jne .L57 addl $-8,%esp movl 12(%ebp),%eax pushl %eax movl -16(%ebp),%eax pushl %eax call fdopen addl $16,%esp movl %eax,%eax movl %eax,-8(%ebp) addl $-12,%esp movl -12(%ebp),%eax pushl %eax call close addl $16,%esp jmp .L58 .p2align 4,,7 .L57: addl $-8,%esp movl 12(%ebp),%eax pushl %eax movl -12(%ebp),%eax pushl %eax call fdopen addl $16,%esp movl %eax,%eax movl %eax,-8(%ebp) addl $-12,%esp movl -16(%ebp),%eax pushl %eax call close addl $16,%esp .L58: movl -4(%ebp),%eax movl -8(%ebp),%edx movl %edx,4(%eax) movl -4(%ebp),%eax movl -20(%ebp),%edx movl %edx,8(%eax) movl -4(%ebp),%eax movl pidlist,%edx movl %edx,(%eax) movl -4(%ebp),%eax movl %eax,pidlist movl -8(%ebp),%edx movl %edx,%eax jmp .L33 .p2align 4,,7 .L33: leave ret .Lfe2: .size x_popen,.Lfe2-x_popen .align 4 .globl x_pclose .type x_pclose,@function x_pclose: pushl %ebp movl %esp,%ebp subl $32,%esp pushl %esi pushl %ebx xorl %esi,%esi movl pidlist,%ebx .p2align 4,,7 .L60: testl %ebx,%ebx jne .L63 jmp .L61 .p2align 4,,7 .L63: movl 4(%ebx),%eax cmpl 8(%ebp),%eax jne .L62 jmp .L61 .p2align 4,,7 .L64: .L62: movl %ebx,%esi movl (%ebx),%ebx jmp .L60 .p2align 4,,7 .L61: testl %ebx,%ebx jne .L65 movl $-1,%eax jmp .L59 .p2align 4,,7 .L65: addl $-12,%esp movl 8(%ebp),%eax pushl %eax call kpse_fclose_trace addl $16,%esp .p2align 4,,7 .L66: addl $-4,%esp pushl $0 leal -8(%ebp),%eax pushl %eax movl 8(%ebx),%eax pushl %eax call waitpid addl $16,%esp movl %eax,%eax movl %eax,-12(%ebp) .L68: cmpl $-1,-12(%ebp) jne .L70 call __error movl %eax,%eax cmpl $4,(%eax) je .L69 jmp .L70 .p2align 4,,7 .L70: jmp .L67 .p2align 4,,7 .L69: jmp .L66 .p2align 4,,7 .L67: testl %esi,%esi jne .L71 movl (%ebx),%eax movl %eax,pidlist jmp .L72 .p2align 4,,7 .L71: movl (%ebx),%eax movl %eax,(%esi) .L72: addl $-12,%esp pushl %ebx call free addl $16,%esp cmpl $-1,-12(%ebp) je .L73 movl -8(%ebp),%eax jmp .L74 .p2align 4,,7 .L73: movl $-1,%eax .L74: movl %eax,%eax jmp .L59 .L59: leal -40(%ebp),%esp popl %ebx popl %esi leave ret .Lfe3: .size x_pclose,.Lfe3-x_pclose .data .align 4 .type vf_uncompresser_alist,@object .size vf_uncompresser_alist,4 vf_uncompresser_alist: .long 0 .section .rodata .LC10: .string "Not an alist." .align 32 .LC11: .string "VFlib Error [fsearch.c:VF_AddUncompresser]: %s\n" .text .align 4 .globl vf_add_uncompresser_alist .type vf_add_uncompresser_alist,@function vf_add_uncompresser_alist: pushl %ebp movl %esp,%ebp subl $24,%esp cmpl $0,8(%ebp) jne .L76 xorl %eax,%eax jmp .L75 .p2align 4,,7 .L76: addl $-12,%esp movl 8(%ebp),%eax pushl %eax call vf_sexp_alistp addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L77 addl $-4,%esp pushl $.LC10 pushl $.LC11 pushl $__sF+176 call fprintf addl $16,%esp movl $-1,%eax jmp .L75 .p2align 4,,7 .L77: movl vf_uncompresser_alist,%eax movl %eax,-4(%ebp) addl $-8,%esp movl -4(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax call vf_sexp_nconc addl $16,%esp movl 8(%ebp),%eax movl %eax,vf_uncompresser_alist xorl %eax,%eax jmp .L75 .p2align 4,,7 .L75: leave ret .Lfe4: .size vf_add_uncompresser_alist,.Lfe4-vf_add_uncompresser_alist .section .rodata .LC12: .string "%s %s" .LC13: .string "r" .text .align 4 .globl vf_open_uncompress_stream .type vf_open_uncompress_stream,@function vf_open_uncompress_stream: pushl %ebp movl %esp,%ebp subl $20,%esp pushl %ebx addl $-12,%esp addl $-12,%esp movl 12(%ebp),%eax pushl %eax call strlen addl $16,%esp movl %eax,%ebx addl $-12,%esp movl 8(%ebp),%eax pushl %eax call strlen addl $16,%esp movl %eax,%eax leal (%eax,%ebx),%edx leal 16(%edx),%eax pushl %eax call malloc addl $16,%esp movl %eax,%eax movl %eax,-8(%ebp) cmpl $0,-8(%ebp) jne .L79 xorl %eax,%eax jmp .L78 .p2align 4,,7 .L79: movl 8(%ebp),%eax pushl %eax movl 12(%ebp),%eax pushl %eax pushl $.LC12 movl -8(%ebp),%eax pushl %eax call sprintf addl $16,%esp addl $-8,%esp pushl $.LC13 movl -8(%ebp),%eax pushl %eax call x_popen addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) addl $-12,%esp movl -8(%ebp),%eax pushl %eax call free addl $16,%esp movl -4(%ebp),%edx movl %edx,%eax jmp .L78 .p2align 4,,7 .L78: movl -24(%ebp),%ebx leave ret .Lfe5: .size vf_open_uncompress_stream,.Lfe5-vf_open_uncompress_stream .align 4 .globl vf_close_uncompress_stream .type vf_close_uncompress_stream,@function vf_close_uncompress_stream: pushl %ebp movl %esp,%ebp subl $8,%esp cmpl $0,8(%ebp) je .L81 addl $-12,%esp movl 8(%ebp),%eax pushl %eax call x_pclose addl $16,%esp .L81: xorl %eax,%eax jmp .L80 .p2align 4,,7 .L80: leave ret .Lfe6: .size vf_close_uncompress_stream,.Lfe6-vf_close_uncompress_stream .section .rodata .LC14: .string ">> File search: %s\n" .LC15: .string ">> File search: Found %s\n" .align 32 .LC16: .string ">> File search: Not found (no such absolute path)\n" .align 32 .LC17: .string ">> File search: Not found (empty dir list)\n" .LC18: .string "TEXMF" .LC19: .string "KPATHSEA" .align 32 .LC20: .string "VFlib Warning: Unsupported file format by kpathsea.\n" .LC21: .string ">> File search: Not found\n" .text .align 4 .globl vf_search_file .type vf_search_file,@function vf_search_file: pushl %ebp movl %esp,%ebp subl $24,%esp cmpl $0,8(%ebp) jne .L83 xorl %eax,%eax jmp .L82 .p2align 4,,7 .L83: cmpl $1,vf_dbg_font_search jne .L84 addl $-8,%esp movl 8(%ebp),%eax pushl %eax pushl $.LC14 call printf addl $16,%esp .L84: cmpl $0,36(%ebp) je .L85 movl 36(%ebp),%eax movl $0,(%eax) .L85: addl $-12,%esp movl 8(%ebp),%eax pushl %eax call vf_path_absolute addl $16,%esp movl %eax,%eax testl %eax,%eax je .L86 addl $-12,%esp movl 8(%ebp),%eax pushl %eax call vf_path_file_read_ok addl $16,%esp movl %eax,%eax testl %eax,%eax je .L87 cmpl $1,vf_dbg_font_search jne .L88 addl $-8,%esp movl 8(%ebp),%eax pushl %eax pushl $.LC15 call printf addl $16,%esp .L88: addl $-12,%esp movl 8(%ebp),%eax pushl %eax call vf_strdup addl $16,%esp movl %eax,%edx movl %edx,%eax jmp .L82 .p2align 4,,7 .L87: cmpl $1,vf_dbg_font_search jne .L89 addl $-12,%esp pushl $.LC16 call printf addl $16,%esp .L89: xorl %eax,%eax jmp .L82 .p2align 4,,7 .L86: cmpl $0,28(%ebp) je .L91 addl $-12,%esp movl 28(%ebp),%eax pushl %eax call vf_sexp_listp addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L90 jmp .L91 .p2align 4,,7 .L91: cmpl $1,vf_dbg_font_search jne .L92 addl $-12,%esp pushl $.LC17 call printf addl $16,%esp .L92: xorl %eax,%eax jmp .L82 .p2align 4,,7 .L90: movl $0,-8(%ebp) movl 28(%ebp),%eax movl %eax,-4(%ebp) .p2align 4,,7 .L93: addl $-12,%esp movl -4(%ebp),%eax pushl %eax call vf_sexp_consp addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L96 jmp .L94 .p2align 4,,7 .L96: addl $-12,%esp addl $-12,%esp movl -4(%ebp),%eax pushl %eax call vf_sexp_car addl $16,%esp movl %eax,%eax pushl %eax call vf_sexp_get_cstring addl $16,%esp movl %eax,%eax movl %eax,-12(%ebp) cmpl $0,-12(%ebp) jne .L97 jmp .L95 .p2align 4,,7 .L97: addl $-8,%esp pushl $.LC18 movl -12(%ebp),%eax pushl %eax call vf_strcmp_ci addl $16,%esp movl %eax,%eax testl %eax,%eax je .L99 addl $-8,%esp pushl $.LC19 movl -12(%ebp),%eax pushl %eax call vf_strcmp_ci addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L98 jmp .L99 .p2align 4,,7 .L99: cmpl $0,20(%ebp) jne .L100 addl $-8,%esp pushl $.LC20 pushl $__sF+176 call fprintf addl $16,%esp jmp .L95 .p2align 4,,7 .L100: cmpl $0,kps_switch jne .L101 jmp .L95 .p2align 4,,7 .L101: movl 24(%ebp),%eax pushl %eax movl 16(%ebp),%eax pushl %eax movl 12(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax call search_file_kpathsea addl $16,%esp movl %eax,%eax movl %eax,-8(%ebp) jmp .L102 .p2align 4,,7 .L98: addl $-12,%esp leal -16(%ebp),%eax pushl %eax movl 36(%ebp),%eax pushl %eax movl 32(%ebp),%eax pushl %eax movl -12(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax call search_in_fdb addl $32,%esp movl %eax,%eax movl %eax,-8(%ebp) cmpl $-2,-16(%ebp) jne .L102 addl $-12,%esp movl -12(%ebp),%eax pushl %eax call vf_path_terminated_by_2delims addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L104 movl 36(%ebp),%eax pushl %eax movl 32(%ebp),%eax pushl %eax movl -12(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax call search_file addl $16,%esp movl %eax,%eax movl %eax,-8(%ebp) jmp .L102 .p2align 4,,7 .L104: movl 36(%ebp),%eax pushl %eax movl 32(%ebp),%eax pushl %eax movl -12(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax call search_file_recursive addl $16,%esp movl %eax,%eax movl %eax,-8(%ebp) .L105: .L103: .L102: cmpl $0,-8(%ebp) je .L95 jmp .L94 .p2align 4,,7 .L106: .L95: addl $-12,%esp movl -4(%ebp),%eax pushl %eax call vf_sexp_cdr addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) jmp .L93 .p2align 4,,7 .L94: cmpl $1,vf_dbg_font_search jne .L107 cmpl $0,-8(%ebp) je .L108 addl $-8,%esp movl -8(%ebp),%eax pushl %eax pushl $.LC15 call printf addl $16,%esp jmp .L107 .p2align 4,,7 .L108: addl $-12,%esp pushl $.LC21 call printf addl $16,%esp .L109: .L107: cmpl $0,-8(%ebp) jne .L110 xorl %eax,%eax jmp .L82 .p2align 4,,7 .L110: movl -8(%ebp),%edx movl %edx,%eax jmp .L82 .p2align 4,,7 .L82: leave ret .Lfe7: .size vf_search_file,.Lfe7-vf_search_file .section .rodata .LC22: .string "VFlib.fdb" .LC23: .string ">> No font hint db file: %s\n" .LC24: .string ">> Reading hint db file: %s\n" .LC25: .string ">> Found in db file: %s\n" .LC26: .string ">> Not found in db file\n" .text .align 4 .type search_in_fdb,@function search_in_fdb: pushl %ebp movl %esp,%ebp subl $2088,%esp cmpl $0,12(%ebp) jne .L112 movl 24(%ebp),%eax movl $-2,(%eax) xorl %eax,%eax jmp .L111 .p2align 4,,7 .L112: pushl $.LC22 movl 12(%ebp),%eax pushl %eax pushl $1024 leal -1024(%ebp),%eax pushl %eax call vf_path_cons_path addl $16,%esp movl %eax,%eax testl %eax,%eax jl .L114 addl $-12,%esp leal -1024(%ebp),%eax pushl %eax call vf_path_file_read_ok addl $16,%esp movl %eax,%eax testl %eax,%eax je .L114 addl $-8,%esp pushl $.LC13 leal -1024(%ebp),%eax pushl %eax call kpse_fopen_trace addl $16,%esp movl %eax,%eax movl %eax,-2060(%ebp) cmpl $0,-2060(%ebp) jne .L113 jmp .L114 .p2align 4,,7 .L114: cmpl $1,vf_dbg_font_search jne .L115 addl $-8,%esp leal -1024(%ebp),%eax pushl %eax pushl $.LC23 call printf addl $16,%esp .L115: movl 24(%ebp),%eax movl $-2,(%eax) xorl %eax,%eax jmp .L111 .p2align 4,,7 .L113: cmpl $1,vf_dbg_font_search jne .L116 addl $-8,%esp leal -1024(%ebp),%eax pushl %eax pushl $.LC24 call printf addl $16,%esp .L116: movl $1024,-2056(%ebp) addl $-8,%esp pushl $1 movl -2056(%ebp),%eax pushl %eax call calloc addl $16,%esp movl %eax,%eax movl %eax,%edx movl %edx,%eax movl %eax,-2052(%ebp) testl %eax,%eax jne .L117 movl 24(%ebp),%eax movl $-2,(%eax) addl $-12,%esp movl -2060(%ebp),%eax pushl %eax call kpse_fclose_trace addl $16,%esp xorl %eax,%eax jmp .L111 .p2align 4,,7 .L117: addl $-12,%esp movl -2056(%ebp),%eax pushl %eax movl -2052(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax movl 12(%ebp),%eax pushl %eax movl -2060(%ebp),%eax pushl %eax call search_fdb_fp addl $32,%esp movl %eax,%eax testl %eax,%eax jl .L118 movl 24(%ebp),%eax movl $0,(%eax) jmp .L119 .p2align 4,,7 .L118: movl 24(%ebp),%eax movl $-1,(%eax) movl 16(%ebp),%eax movl %eax,-2064(%ebp) .p2align 4,,7 .L120: addl $-12,%esp movl -2064(%ebp),%eax pushl %eax call vf_sexp_consp addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L123 jmp .L121 .p2align 4,,7 .L123: addl $-12,%esp addl $-12,%esp movl -2064(%ebp),%eax pushl %eax call vf_sexp_car addl $16,%esp movl %eax,%eax pushl %eax call vf_sexp_get_cstring addl $16,%esp movl %eax,%eax movl %eax,-2068(%ebp) addl $-4,%esp pushl $1024 movl 8(%ebp),%eax pushl %eax leal -2048(%ebp),%eax pushl %eax call strncpy addl $16,%esp addl $-4,%esp addl $-12,%esp movl 8(%ebp),%eax pushl %eax call strlen addl $16,%esp movl %eax,%eax movl $1024,%edx movl %edx,%ecx subl %eax,%ecx movl %ecx,%eax pushl %eax movl -2068(%ebp),%eax pushl %eax leal -2048(%ebp),%eax pushl %eax call strncat addl $16,%esp addl $-4,%esp pushl $0 pushl $0 movl -2060(%ebp),%eax pushl %eax call fseek addl $16,%esp addl $-12,%esp movl -2056(%ebp),%eax pushl %eax movl -2052(%ebp),%eax pushl %eax leal -2048(%ebp),%eax pushl %eax movl 12(%ebp),%eax pushl %eax movl -2060(%ebp),%eax pushl %eax call search_fdb_fp addl $32,%esp movl %eax,%eax testl %eax,%eax jl .L122 addl $-4,%esp movl 20(%ebp),%eax pushl %eax movl 16(%ebp),%eax pushl %eax movl -2068(%ebp),%eax pushl %eax call ext2uncprog addl $16,%esp movl %eax,%eax testl %eax,%eax jl .L122 movl 24(%ebp),%eax movl $0,(%eax) jmp .L121 .p2align 4,,7 .L124: .L122: addl $-12,%esp movl -2064(%ebp),%eax pushl %eax call vf_sexp_cdr addl $16,%esp movl %eax,%eax movl %eax,-2064(%ebp) jmp .L120 .p2align 4,,7 .L121: nop .L119: addl $-12,%esp movl -2060(%ebp),%eax pushl %eax call kpse_fclose_trace addl $16,%esp movl 24(%ebp),%eax cmpl $0,(%eax) je .L125 cmpl $0,-2052(%ebp) je .L126 addl $-12,%esp movl -2052(%ebp),%eax pushl %eax call free addl $16,%esp .L126: movl $0,-2052(%ebp) .L125: cmpl $1,vf_dbg_font_search jne .L127 cmpl $0,-2052(%ebp) je .L128 addl $-8,%esp movl -2052(%ebp),%eax pushl %eax pushl $.LC25 call printf addl $16,%esp jmp .L127 .p2align 4,,7 .L128: addl $-12,%esp pushl $.LC26 call printf addl $16,%esp .L129: .L127: movl -2052(%ebp),%edx movl %edx,%eax jmp .L111 .p2align 4,,7 .L111: leave ret .Lfe8: .size search_in_fdb,.Lfe8-search_in_fdb .align 4 .type search_fdb_fp,@function search_fdb_fp: pushl %ebp movl %esp,%ebp subl $1048,%esp cmpl $0,8(%ebp) je .L132 cmpl $0,12(%ebp) je .L132 cmpl $0,16(%ebp) je .L132 cmpl $0,20(%ebp) jne .L131 jmp .L132 .p2align 4,,7 .L132: movl $-1,%eax jmp .L130 .p2align 4,,7 .L131: addl $-12,%esp movl 12(%ebp),%eax pushl %eax call strlen addl $16,%esp movl %eax,-1036(%ebp) addl $-12,%esp movl 16(%ebp),%eax pushl %eax call strlen addl $16,%esp movl %eax,-1032(%ebp) .p2align 4,,7 .L133: addl $-4,%esp movl 8(%ebp),%eax pushl %eax pushl $1024 leal -1024(%ebp),%eax pushl %eax call fgets addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L135 jmp .L134 .p2align 4,,7 .L135: addl $-4,%esp movl -1032(%ebp),%eax pushl %eax leal -1024(%ebp),%eax pushl %eax movl 16(%ebp),%eax pushl %eax call strncmp addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L136 addl $-8,%esp pushl $16384 leal -1024(%ebp),%eax movl -1032(%ebp),%edx movsbl (%edx,%eax),%eax pushl %eax call __maskrune addl $16,%esp movl %eax,%eax testl %eax,%eax je .L136 leal -1024(%ebp),%eax movl -1032(%ebp),%edx addl %eax,%edx movl %edx,-1028(%ebp) .p2align 4,,7 .L137: movl -1028(%ebp),%eax cmpb $0,(%eax) je .L141 addl $-8,%esp pushl $16384 movl -1028(%ebp),%eax movsbl (%eax),%edx pushl %edx call __maskrune addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L139 jmp .L141 .p2align 4,,7 .L141: jmp .L138 .p2align 4,,7 .L140: .L139: incl -1028(%ebp) jmp .L137 .p2align 4,,7 .L138: movl -1028(%ebp),%eax cmpb $0,(%eax) jne .L142 jmp .L134 .p2align 4,,7 .L142: nop movl $0,-1040(%ebp) .p2align 4,,7 .L143: movl -1028(%ebp),%eax movl -1040(%ebp),%edx addl %edx,%eax cmpb $0,(%eax) jne .L146 jmp .L144 .p2align 4,,7 .L146: addl $-8,%esp pushl $16384 movl -1028(%ebp),%eax movl -1040(%ebp),%edx addl %edx,%eax movsbl (%eax),%edx pushl %edx call __maskrune addl $16,%esp movl %eax,%eax testl %eax,%eax je .L145 movl -1028(%ebp),%eax movl -1040(%ebp),%edx addl %edx,%eax movb $0,(%eax) jmp .L144 .p2align 4,,7 .L147: .L145: incl -1040(%ebp) jmp .L143 .p2align 4,,7 .L144: movl -1028(%ebp),%eax pushl %eax movl 12(%ebp),%eax pushl %eax movl 24(%ebp),%eax pushl %eax movl 20(%ebp),%eax pushl %eax call vf_path_cons_path addl $16,%esp xorl %eax,%eax jmp .L130 .p2align 4,,7 .L136: jmp .L133 .p2align 4,,7 .L134: movl $-1,%eax jmp .L130 .p2align 4,,7 .L130: leave ret .Lfe9: .size search_fdb_fp,.Lfe9-search_fdb_fp .align 4 .globl vf_find_file_in_directory .type vf_find_file_in_directory,@function vf_find_file_in_directory: pushl %ebp movl %esp,%ebp subl $8,%esp pushl $0 pushl $0 movl 12(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax call search_file addl $16,%esp movl %eax,%edx movl %edx,%eax jmp .L148 .p2align 4,,7 .L148: leave ret .Lfe10: .size vf_find_file_in_directory,.Lfe10-vf_find_file_in_directory .section .rodata .LC27: .string ">> Kpathsea: Search %s\n" .LC28: .string ">> Kpathsea: Found %s\n" .LC29: .string ">> Kpathsea: Not found\n" .text .align 4 .type search_file_kpathsea,@function search_file_kpathsea: pushl %ebp movl %esp,%ebp subl $40,%esp cmpl $0,kps_switch jne .L150 xorl %eax,%eax jmp .L149 .p2align 4,,7 .L150: cmpl $1,vf_dbg_kpathsea jne .L151 addl $-8,%esp movl 8(%ebp),%eax pushl %eax pushl $.LC27 call printf addl $16,%esp .L151: movl $0,-4(%ebp) movl 20(%ebp),%eax decl %eax cmpl $13,%eax ja .L166 movl .L167(,%eax,4),%eax jmp *%eax .p2align 4,,7 .section .rodata .align 4 .align 4 .L167: .long .L153 .long .L154 .long .L155 .long .L157 .long .L160 .long .L159 .long .L166 .long .L166 .long .L166 .long .L161 .long .L162 .long .L163 .long .L164 .long .L165 .text .p2align 4,,7 .L153: leal -20(%ebp),%eax pushl %eax pushl $0 movl 12(%ebp),%eax pushl %eax movl 16(%ebp),%eax pushl %eax call kpse_find_glyph addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) jmp .L152 .p2align 4,,7 .L154: leal -20(%ebp),%eax pushl %eax pushl $1 movl 12(%ebp),%eax pushl %eax movl 16(%ebp),%eax pushl %eax call kpse_find_glyph addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) jmp .L152 .p2align 4,,7 .L155: addl $-4,%esp pushl $0 pushl $33 movl 8(%ebp),%eax pushl %eax call kpse_find_file addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) cmpl $0,-4(%ebp) jne .L156 addl $-4,%esp pushl $0 pushl $23 movl 8(%ebp),%eax pushl %eax call kpse_find_file addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) .L156: jmp .L152 .p2align 4,,7 .L157: addl $-4,%esp pushl $1 pushl $3 movl 8(%ebp),%eax pushl %eax call kpse_find_file addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) cmpl $0,-4(%ebp) jne .L158 addl $-4,%esp pushl $1 pushl $20 movl 8(%ebp),%eax pushl %eax call kpse_find_file addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) .L158: jmp .L152 .p2align 4,,7 .L159: addl $-4,%esp pushl $0 pushl $23 movl 8(%ebp),%eax pushl %eax call kpse_find_file addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) jmp .L152 .p2align 4,,7 .L160: addl $-4,%esp pushl $1 pushl $20 movl 8(%ebp),%eax pushl %eax call kpse_find_file addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) jmp .L152 .p2align 4,,7 .L161: addl $-4,%esp pushl $0 pushl $36 movl 8(%ebp),%eax pushl %eax call kpse_find_file addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) jmp .L152 .p2align 4,,7 .L162: addl $-4,%esp pushl $0 pushl $32 movl 8(%ebp),%eax pushl %eax call kpse_find_file addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) jmp .L152 .p2align 4,,7 .L163: addl $-4,%esp pushl $0 pushl $37 movl 8(%ebp),%eax pushl %eax call kpse_find_file addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) jmp .L152 .p2align 4,,7 .L164: addl $-4,%esp pushl $0 pushl $4 movl 8(%ebp),%eax pushl %eax call kpse_find_file addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) jmp .L152 .p2align 4,,7 .L165: addl $-4,%esp pushl $0 pushl $30 movl 8(%ebp),%eax pushl %eax call kpse_find_file addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) jmp .L152 .p2align 4,,7 .L166: movl $0,-4(%ebp) jmp .L152 .p2align 4,,7 .L152: cmpl $1,vf_dbg_kpathsea jne .L168 cmpl $0,-4(%ebp) je .L169 addl $-8,%esp movl -4(%ebp),%eax pushl %eax pushl $.LC28 call printf addl $16,%esp jmp .L168 .p2align 4,,7 .L169: addl $-12,%esp pushl $.LC29 call printf addl $16,%esp .L170: .L168: cmpl $0,-4(%ebp) jne .L171 xorl %eax,%eax jmp .L149 .p2align 4,,7 .L171: addl $-12,%esp movl -4(%ebp),%eax pushl %eax call vf_strdup addl $16,%esp movl %eax,%edx movl %edx,%eax jmp .L149 .p2align 4,,7 .L149: leave ret .Lfe11: .size search_file_kpathsea,.Lfe11-search_file_kpathsea .section .rodata .LC30: .string "" .text .align 4 .type search_file,@function search_file: pushl %ebp movl %esp,%ebp subl $36,%esp pushl %ebx movl $0,-8(%ebp) cmpl $0,12(%ebp) je .L173 addl $-12,%esp movl 12(%ebp),%eax pushl %eax call vf_path_directory_read_ok addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L173 xorl %eax,%eax jmp .L172 .p2align 4,,7 .L173: cmpl $0,12(%ebp) jne .L174 movl $.LC30,12(%ebp) .L174: addl $-12,%esp movl 12(%ebp),%eax pushl %eax call strlen addl $16,%esp movl %eax,%ebx addl $-12,%esp movl 8(%ebp),%eax pushl %eax call strlen addl $16,%esp movl %eax,%eax leal (%eax,%ebx),%edx leal 64(%edx),%eax movl %eax,-12(%ebp) addl $-8,%esp pushl $1 movl -12(%ebp),%eax pushl %eax call calloc addl $16,%esp movl %eax,%eax movl %eax,%edx movl %edx,%eax movl %eax,-4(%ebp) testl %eax,%eax jne .L175 movl $2,vf_error xorl %eax,%eax jmp .L172 .p2align 4,,7 .L175: movl 8(%ebp),%eax pushl %eax movl 12(%ebp),%eax pushl %eax movl -12(%ebp),%eax pushl %eax movl -4(%ebp),%eax pushl %eax call vf_path_cons_path addl $16,%esp addl $-12,%esp movl -4(%ebp),%eax pushl %eax call vf_path_file_read_ok addl $16,%esp movl %eax,%eax testl %eax,%eax je .L176 movl -4(%ebp),%edx movl %edx,%eax jmp .L172 .p2align 4,,7 .L176: cmpl $0,16(%ebp) jne .L177 cmpl $0,-4(%ebp) je .L178 addl $-12,%esp movl -4(%ebp),%eax pushl %eax call free addl $16,%esp .L178: xorl %eax,%eax jmp .L172 .p2align 4,,7 .L177: movl $0,-16(%ebp) movl 16(%ebp),%eax movl %eax,-20(%ebp) .p2align 4,,7 .L179: addl $-12,%esp movl -20(%ebp),%eax pushl %eax call vf_sexp_consp addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L182 jmp .L180 .p2align 4,,7 .L182: addl $-12,%esp addl $-12,%esp movl -20(%ebp),%eax pushl %eax call vf_sexp_car addl $16,%esp movl %eax,%eax pushl %eax call vf_sexp_get_cstring addl $16,%esp movl %eax,%eax movl %eax,-8(%ebp) addl $-12,%esp movl -8(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax movl 12(%ebp),%eax pushl %eax movl -12(%ebp),%eax pushl %eax movl -4(%ebp),%eax pushl %eax call vf_path_cons_path2 addl $32,%esp addl $-12,%esp movl -4(%ebp),%eax pushl %eax call vf_path_file_read_ok addl $16,%esp movl %eax,%eax cmpl $1,%eax jne .L181 movl $1,-16(%ebp) jmp .L180 .p2align 4,,7 .L183: .L181: addl $-12,%esp movl -20(%ebp),%eax pushl %eax call vf_sexp_cdr addl $16,%esp movl %eax,%eax movl %eax,-20(%ebp) jmp .L179 .p2align 4,,7 .L180: cmpl $0,-16(%ebp) jne .L184 xorl %eax,%eax jmp .L172 .p2align 4,,7 .L184: addl $-4,%esp movl 20(%ebp),%eax pushl %eax movl 16(%ebp),%eax pushl %eax movl -8(%ebp),%eax pushl %eax call ext2uncprog addl $16,%esp movl %eax,%eax testl %eax,%eax jge .L185 cmpl $0,-4(%ebp) je .L186 addl $-12,%esp movl -4(%ebp),%eax pushl %eax call free addl $16,%esp .L186: movl $0,-4(%ebp) .L185: movl -4(%ebp),%edx movl %edx,%eax jmp .L172 .p2align 4,,7 .L172: movl -40(%ebp),%ebx leave ret .Lfe12: .size search_file,.Lfe12-search_file .section .rodata .align 32 .LC31: .string "Undefined uncompression program for file extension" .LC32: .string "VFlib Warning: %s %s\n" .align 32 .LC33: .string ">> Uncompression program: %s\n" .text .align 4 .type ext2uncprog,@function ext2uncprog: pushl %ebp movl %esp,%ebp subl $24,%esp cmpl $0,16(%ebp) jne .L188 movl $-1,%eax jmp .L187 .p2align 4,,7 .L188: movl 16(%ebp),%eax movl $0,(%eax) movl vf_uncompresser_alist,%eax movl %eax,-12(%ebp) .p2align 4,,7 .L189: addl $-12,%esp movl -12(%ebp),%eax pushl %eax call vf_sexp_consp addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L192 jmp .L190 .p2align 4,,7 .L192: addl $-12,%esp movl -12(%ebp),%eax pushl %eax call vf_sexp_car addl $16,%esp movl %eax,%eax movl %eax,-8(%ebp) addl $-12,%esp addl $-12,%esp movl -8(%ebp),%eax pushl %eax call vf_sexp_car addl $16,%esp movl %eax,%eax pushl %eax call vf_sexp_get_cstring addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) addl $-8,%esp movl 8(%ebp),%eax pushl %eax movl -4(%ebp),%eax pushl %eax call strcmp addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L191 addl $-12,%esp addl $-12,%esp movl -8(%ebp),%eax pushl %eax call vf_sexp_cadr addl $16,%esp movl %eax,%eax pushl %eax call vf_sexp_get_cstring addl $16,%esp movl %eax,%eax movl 16(%ebp),%edx movl %eax,(%edx) jmp .L190 .p2align 4,,7 .L193: .L191: addl $-12,%esp movl -12(%ebp),%eax pushl %eax call vf_sexp_cdr addl $16,%esp movl %eax,%eax movl %eax,-12(%ebp) jmp .L189 .p2align 4,,7 .L190: movl 16(%ebp),%eax cmpl $0,(%eax) jne .L194 movl 8(%ebp),%eax pushl %eax pushl $.LC31 pushl $.LC32 pushl $__sF+176 call fprintf addl $16,%esp movl $-1,%eax jmp .L187 .p2align 4,,7 .L194: cmpl $1,vf_dbg_font_search jne .L195 addl $-8,%esp movl 16(%ebp),%eax movl (%eax),%edx pushl %edx pushl $.LC33 call printf addl $16,%esp .L195: xorl %eax,%eax jmp .L187 .p2align 4,,7 .L187: leave ret .Lfe13: .size ext2uncprog,.Lfe13-ext2uncprog .section .rodata .align 32 .LC35: .string "Generating %s.%dpk (dpi=%d, mag=%.3f)...\n" .LC36: .string "failed.\n" .LC37: .string "done.\n" .align 8 .LC34: .long 0x0,0x3fe00000 .text .align 4 .globl vf_tex_make_glyph .type vf_tex_make_glyph,@function vf_tex_make_glyph: pushl %ebp movl %esp,%ebp subl $56,%esp cmpl $2,8(%ebp) je .L197 movl $-1,%eax jmp .L196 .p2align 4,,7 .L197: addl $-12,%esp movl 12(%ebp),%eax pushl %eax call vf_path_base_core addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) cmpl $0,-4(%ebp) jne .L198 movl $-1,%eax jmp .L196 .p2align 4,,7 .L198: addl $-4,%esp fldl 20(%ebp) subl $8,%esp fstpl (%esp) movl 16(%ebp),%eax pushl %eax fildl 16(%ebp) fmull 20(%ebp) fldl .LC34 faddp %st,%st(1) fnstcw -30(%ebp) movw -30(%ebp),%ax orw $3072,%ax movw %ax,-32(%ebp) fldcw -32(%ebp) fistpll -40(%ebp) movl -40(%ebp),%edx movl -36(%ebp),%ecx fldcw -30(%ebp) movl %edx,%eax pushl %eax movl -4(%ebp),%eax pushl %eax pushl $.LC35 pushl $__sF+176 call fprintf addl $32,%esp addl $-12,%esp pushl $__sF+176 call fflush addl $16,%esp addl $-4,%esp pushl $1 pushl $1 pushl $2 call kpse_set_program_enabled addl $16,%esp leal -24(%ebp),%eax pushl %eax pushl $2 fildl 16(%ebp) fmull 20(%ebp) fldl .LC34 faddp %st,%st(1) fnstcw -30(%ebp) movw -30(%ebp),%ax orw $3072,%ax movw %ax,-32(%ebp) fldcw -32(%ebp) fistpll -40(%ebp) movl -40(%ebp),%edx movl -36(%ebp),%ecx fldcw -30(%ebp) movl %edx,%eax pushl %eax movl -4(%ebp),%eax pushl %eax call kpse_find_glyph addl $16,%esp movl %eax,%eax movl %eax,-8(%ebp) cmpl $0,-8(%ebp) jne .L199 addl $-8,%esp pushl $.LC36 pushl $__sF+176 call fprintf addl $16,%esp movl $-1,%eax jmp .L196 .p2align 4,,7 .L199: addl $-8,%esp pushl $.LC37 pushl $__sF+176 call fprintf addl $16,%esp xorl %eax,%eax jmp .L196 .p2align 4,,7 .L196: leave ret .Lfe14: .size vf_tex_make_glyph,.Lfe14-vf_tex_make_glyph .section .rodata .align 32 .LC38: .string ">> Search Recursively in: %s\n" .text .align 4 .type search_file_recursive,@function search_file_recursive: pushl %ebp movl %esp,%ebp subl $24,%esp cmpl $0,12(%ebp) jne .L201 xorl %eax,%eax jmp .L200 .p2align 4,,7 .L201: addl $-12,%esp movl 12(%ebp),%eax pushl %eax call strlen addl $16,%esp movl %eax,%eax leal 1(%eax),%edx movl %edx,-12(%ebp) addl $-8,%esp pushl $1 movl -12(%ebp),%eax pushl %eax call calloc addl $16,%esp movl %eax,%eax movl %eax,%edx movl %edx,%eax movl %eax,-4(%ebp) testl %eax,%eax jne .L202 movl $2,vf_error xorl %eax,%eax jmp .L200 .p2align 4,,7 .L202: addl $-8,%esp movl 12(%ebp),%eax pushl %eax movl -4(%ebp),%eax pushl %eax call strcpy addl $16,%esp addl $-12,%esp movl -4(%ebp),%eax pushl %eax call vf_path_del_terminating_2delims addl $16,%esp addl $-12,%esp movl -4(%ebp),%eax pushl %eax call vf_path_directory_read_ok addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L203 xorl %eax,%eax jmp .L200 .p2align 4,,7 .L203: cmpl $1,vf_dbg_font_search jne .L204 addl $-8,%esp movl -4(%ebp),%eax pushl %eax pushl $.LC38 call printf addl $16,%esp .L204: addl $-12,%esp movl -4(%ebp),%eax pushl %eax call dtr_alloc addl $16,%esp movl %eax,%eax movl %eax,-16(%ebp) cmpl $0,-16(%ebp) jne .L205 cmpl $0,-4(%ebp) je .L206 addl $-12,%esp movl -4(%ebp),%eax pushl %eax call free addl $16,%esp .L206: xorl %eax,%eax jmp .L200 .p2align 4,,7 .L205: movl 20(%ebp),%eax pushl %eax movl 16(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax movl -16(%ebp),%eax pushl %eax call traverse_directory addl $16,%esp movl %eax,%eax movl %eax,-8(%ebp) addl $-12,%esp movl -16(%ebp),%eax pushl %eax call dtr_free addl $16,%esp cmpl $0,-4(%ebp) je .L207 addl $-12,%esp movl -4(%ebp),%eax pushl %eax call free addl $16,%esp .L207: movl -8(%ebp),%edx movl %edx,%eax jmp .L200 .p2align 4,,7 .L200: leave ret .Lfe15: .size search_file_recursive,.Lfe15-search_file_recursive .section .rodata .LC39: .string ">> Searching in: %s\n" .LC40: .string "." .LC41: .string ".." .text .align 4 .type traverse_directory,@function traverse_directory: pushl %ebp movl %esp,%ebp subl $136,%esp cmpl $1,vf_dbg_font_search jne .L209 addl $-8,%esp addl $-12,%esp movl 8(%ebp),%eax pushl %eax call dtr_get_path addl $16,%esp movl %eax,%eax pushl %eax pushl $.LC39 call printf addl $16,%esp .L209: movl 20(%ebp),%eax pushl %eax movl 16(%ebp),%eax pushl %eax addl $-12,%esp movl 8(%ebp),%eax pushl %eax call dtr_get_path addl $16,%esp movl %eax,%eax pushl %eax movl 12(%ebp),%eax pushl %eax call search_file addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) cmpl $0,-4(%ebp) je .L210 movl -4(%ebp),%edx movl %edx,%eax jmp .L208 .p2align 4,,7 .L210: addl $-12,%esp addl $-12,%esp movl 8(%ebp),%eax pushl %eax call dtr_get_path addl $16,%esp movl %eax,%eax pushl %eax call opendir addl $16,%esp movl %eax,%eax movl %eax,-12(%ebp) cmpl $0,-12(%ebp) jne .L211 xorl %eax,%eax jmp .L208 .p2align 4,,7 .L211: nop .p2align 4,,7 .L212: addl $-12,%esp movl -12(%ebp),%eax pushl %eax call readdir addl $16,%esp movl %eax,%eax movl %eax,-20(%ebp) cmpl $0,-20(%ebp) jne .L214 jmp .L213 .p2align 4,,7 .L214: addl $-12,%esp movl -20(%ebp),%eax addl $8,%eax pushl %eax call strlen addl $16,%esp movl %eax,%eax cmpl $1,%eax jne .L215 addl $-8,%esp pushl $.LC40 movl -20(%ebp),%eax addl $8,%eax pushl %eax call strcmp addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L215 jmp .L212 .p2align 4,,7 .L215: addl $-12,%esp movl -20(%ebp),%eax addl $8,%eax pushl %eax call strlen addl $16,%esp movl %eax,%eax cmpl $2,%eax jne .L216 addl $-8,%esp pushl $.LC41 movl -20(%ebp),%eax addl $8,%eax pushl %eax call strcmp addl $16,%esp movl %eax,%eax testl %eax,%eax jne .L216 jmp .L212 .p2align 4,,7 .L216: addl $-4,%esp addl $-12,%esp movl -20(%ebp),%eax addl $8,%eax pushl %eax call strlen addl $16,%esp movl %eax,%eax pushl %eax movl -20(%ebp),%eax addl $8,%eax pushl %eax movl 8(%ebp),%eax pushl %eax call dtr_add_name addl $16,%esp addl $-8,%esp leal -116(%ebp),%eax pushl %eax addl $-12,%esp movl 8(%ebp),%eax pushl %eax call dtr_get_path addl $16,%esp movl %eax,%eax pushl %eax call stat addl $16,%esp movl %eax,%eax movl %eax,-8(%ebp) addl $-12,%esp movl 8(%ebp),%eax pushl %eax call dtr_del_name addl $16,%esp cmpl $0,-8(%ebp) jge .L217 jmp .L212 .p2align 4,,7 .L217: movl -108(%ebp),%eax andl $-4096,%eax cmpw $16384,%ax jne .L218 addl $-4,%esp leal -116(%ebp),%eax pushl %eax movl -20(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax call dtr_add_subdir addl $16,%esp .L218: jmp .L212 .p2align 4,,7 .L213: addl $-12,%esp movl -12(%ebp),%eax pushl %eax call closedir addl $16,%esp movl $0,-4(%ebp) addl $-12,%esp movl 8(%ebp),%eax pushl %eax call dtr_subdir_list addl $16,%esp movl %eax,%eax movl %eax,-16(%ebp) .p2align 4,,7 .L219: cmpl $0,-16(%ebp) jne .L222 jmp .L220 .p2align 4,,7 .L222: addl $-8,%esp movl -16(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax call dtr_go_subdir addl $16,%esp movl %eax,%eax testl %eax,%eax jl .L221 movl 20(%ebp),%eax pushl %eax movl 16(%ebp),%eax pushl %eax movl 12(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax call traverse_directory addl $16,%esp movl %eax,%eax movl %eax,-4(%ebp) cmpl $0,-4(%ebp) je .L224 jmp .L220 .p2align 4,,7 .L224: addl $-12,%esp movl 8(%ebp),%eax pushl %eax call dtr_go_updir addl $16,%esp .L223: .L221: addl $-8,%esp movl -16(%ebp),%eax pushl %eax movl 8(%ebp),%eax pushl %eax call dtr_next_subdir addl $16,%esp movl %eax,%eax movl %eax,-16(%ebp) jmp .L219 .p2align 4,,7 .L220: movl -4(%ebp),%edx movl %edx,%eax jmp .L208 .p2align 4,,7 .L208: leave ret .Lfe16: .size traverse_directory,.Lfe16-traverse_directory .align 4 .type dtr_elem_alloc,@function dtr_elem_alloc: pushl %ebp movl %esp,%ebp subl $24,%esp addl $-12,%esp pushl $128 call malloc addl $16,%esp movl %eax,%eax movl %eax,%edx movl %edx,%eax movl %eax,-4(%ebp) testl %eax,%eax jne .L226 xorl %eax,%eax jmp .L225 .p2align 4,,7 .L226: movl -4(%ebp),%eax movl $0,(%eax) movl -4(%ebp),%eax movl $0,4(%eax) movl -4(%ebp),%eax movl $0,8(%eax) movl -4(%ebp),%eax movl $0,12(%eax) movl -4(%ebp),%eax movl $0,16(%eax) movl -4(%ebp),%eax movl $0,20(%eax) movl -4(%ebp),%eax movl -4(%ebp),%edx addl $20,%edx movl %edx,120(%eax) movl -4(%ebp),%eax movl -4(%ebp),%edx addl $20,%edx movl %edx,124(%eax) movl -4(%ebp),%edx movl %edx,%eax jmp .L225 .p2align 4,,7 .L225: leave ret .Lfe17: .size dtr_elem_alloc,.Lfe17-dtr_elem_alloc .align 4 .type dtr_elem_free,@function dtr_elem_free: pushl %ebp movl %esp,%ebp subl $24,%esp movl 8(%ebp),%eax movl 124(%eax),%edx movl %edx,-4(%ebp) .p2align 4,,7 .L228: movl 8(%ebp),%eax addl $20,%eax cmpl %eax,-4(%ebp) jne .L230 jmp .L229 .p2align 4,,7 .L230: movl -4(%ebp),%eax movl 104(%eax),%edx movl %edx,-8(%ebp) addl $-12,%esp movl -4(%ebp),%eax movl (%eax),%edx pushl %edx call free addl $16,%esp addl $-12,%esp movl -4(%ebp),%eax pushl %eax call free addl $16,%esp movl -8(%ebp),%eax movl %eax,-4(%ebp) jmp .L228 .p2align 4,,7 .L229: addl $-12,%esp movl 8(%ebp),%eax pushl %eax call free addl $16,%esp .L227: leave ret .Lfe18: .size dtr_elem_free,.Lfe18-dtr_elem_free .align 4 .type dtr_alloc,@function dtr_alloc: pushl %ebp movl %esp,%ebp subl $116,%esp pushl %ebx addl $-12,%esp pushl $1032 call malloc addl $16,%esp movl %eax,%eax movl %eax,%edx movl %edx,%eax movl %eax,-4(%ebp) testl %eax,%eax jne .L232 xorl %eax,%eax jmp .L231 .p2align 4,,7 .L232: movl -4(%ebp),%eax movl $0,1024(%eax) movl -4(%ebp),%eax movl $0,1028(%eax) addl $-8,%esp movl 8(%ebp),%eax pushl %eax movl -4(%ebp),%eax pushl %eax call strcpy addl $16,%esp addl $-12,%esp movl -4(%ebp),%eax pushl %eax call vf_path_del_terminating_2delims addl $16,%esp addl $-8,%esp leal -104(%ebp),%eax pushl %eax movl -4(%ebp),%eax pushl %eax call stat addl $16,%esp movl %eax,%eax testl %eax,%eax jge .L233 jmp .L234 .p2align 4,,7 .L233: call dtr_elem_alloc movl %eax,%eax movl %eax,-8(%ebp) cmpl $0,-8(%ebp) jne .L235 jmp .L234 .p2align 4,,7 .L235: movl -4(%ebp),%eax movl -8(%ebp),%edx movl %edx,1024(%eax) movl -4(%ebp),%eax movl -8(%ebp),%edx movl %edx,1028(%eax) movl -8(%ebp),%ebx addl $-12,%esp movl -4(%ebp),%eax pushl %eax call strlen addl $16,%esp movl %eax,(%ebx) movl -8(%ebp),%eax movl -104(%ebp),%edx movl %edx,4(%eax) movl -8(%ebp),%eax movl -100(%ebp),%edx movl %edx,8(%eax) movl -4(%ebp),%edx movl %edx,%eax jmp .L231 .p2align 4,,7 .L234: addl $-12,%esp movl -4(%ebp),%eax pushl %eax call dtr_free addl $16,%esp xorl %eax,%eax jmp .L231 .p2align 4,,7 .L231: movl -120(%ebp),%ebx leave ret .Lfe19: .size dtr_alloc,.Lfe19-dtr_alloc .align 4 .type dtr_free,@function dtr_free: pushl %ebp movl %esp,%ebp subl $24,%esp cmpl $0,8(%ebp) jne .L237 jmp .L236 .p2align 4,,7 .L237: movl 8(%ebp),%eax movl 1024(%eax),%edx movl %edx,-4(%ebp) .p2align 4,,7 .L238: cmpl $0,-4(%ebp) jne .L240 jmp .L239 .p2align 4,,7 .L240: movl -4(%ebp),%eax movl 12(%eax),%edx movl %edx,-8(%ebp) addl $-12,%esp movl -4(%ebp),%eax pushl %eax call dtr_elem_free addl $16,%esp movl -8(%ebp),%eax movl %eax,-4(%ebp) jmp .L238 .p2align 4,,7 .L239: addl $-12,%esp movl 8(%ebp),%eax pushl %eax call free addl $16,%esp .L236: leave ret .Lfe20: .size dtr_free,.Lfe20-dtr_free .align 4 .type dtr_get_path,@function dtr_get_path: pushl %ebp movl %esp,%ebp movl 8(%ebp),%edx movl %edx,%eax jmp .L241 .p2align 4,,7 .L241: leave ret .Lfe21: .size dtr_get_path,.Lfe21-dtr_get_path .align 4 .type dtr_add_subdir,@function dtr_add_subdir: pushl %ebp movl %esp,%ebp subl $20,%esp pushl %ebx addl $-12,%esp pushl $108 call malloc addl $16,%esp movl %eax,%eax movl %eax,%edx movl %edx,%eax movl %eax,-4(%ebp) testl %eax,%eax jne .L243 movl $-1,%eax jmp .L242 .p2align 4,,7 .L243: addl $-12,%esp addl $-12,%esp movl 12(%ebp),%eax addl $8,%eax pushl %eax call strlen addl $16,%esp movl %eax,%eax leal 1(%eax),%edx pushl %edx call malloc addl $16,%esp movl %eax,%eax movl %eax,%edx movl -4(%ebp),%eax movl %edx,%edx movl %edx,(%eax) testl %edx,%edx jne .L244 addl $-12,%esp movl -4(%ebp),%eax pushl %eax call free addl $16,%esp movl $-1,%eax jmp .L242 .p2align 4,,7 .L244: addl $-4,%esp addl $-12,%esp movl 12(%ebp),%eax addl $8,%eax pushl %eax call strlen addl $16,%esp movl %eax,%eax pushl %eax movl 12(%ebp),%eax addl $8,%eax pushl %eax movl -4(%ebp),%eax movl (%eax),%edx pushl %edx call memcpy addl $16,%esp movl -4(%ebp),%ebx addl $-12,%esp movl 12(%ebp),%eax addl $8,%eax pushl %eax call strlen addl $16,%esp movl %eax,%eax movl (%ebx),%edx movb $0,(%eax,%edx) addl $-4,%esp pushl $96 movl 16(%ebp),%eax pushl %eax movl -4(%ebp),%eax addl $4,%eax pushl %eax call memcpy addl $16,%esp movl 8(%ebp),%eax movl 1028(%eax),%edx addl $20,%edx movl %edx,-8(%ebp) movl -8(%ebp),%eax movl 104(%eax),%edx movl %edx,-12(%ebp) movl -4(%ebp),%eax movl -12(%ebp),%edx movl %edx,104(%eax) movl -4(%ebp),%eax movl -8(%ebp),%edx movl %edx,100(%eax) movl -8(%ebp),%eax movl -4(%ebp),%edx movl %edx,104(%eax) movl -12(%ebp),%eax movl -4(%ebp),%edx movl %edx,100(%eax) xorl %eax,%eax jmp .L242 .p2align 4,,7 .L242: movl -24(%ebp),%ebx leave ret .Lfe22: .size dtr_add_subdir,.Lfe22-dtr_add_subdir .align 4 .type dtr_go_subdir,@function dtr_go_subdir: pushl %ebp movl %esp,%ebp subl $20,%esp pushl %ebx addl $-4,%esp addl $-12,%esp movl 12(%ebp),%eax movl (%eax),%edx pushl %edx call strlen addl $16,%esp movl %eax,%eax pushl %eax movl 12(%ebp),%eax movl (%eax),%edx pushl %edx movl 8(%ebp),%eax pushl %eax call dtr_add_name addl $16,%esp movl %eax,%eax testl %eax,%eax jge .L246 movl $-1,%eax jmp .L245 .p2align 4,,7 .L246: nop movl 8(%ebp),%eax movl 1024(%eax),%edx movl %edx,-8(%ebp) .p2align 4,,7 .L247: cmpl $0,-8(%ebp) jne .L250 jmp .L248 .p2align 4,,7 .L250: movl -8(%ebp),%eax movl 12(%ebp),%edx movl 4(%eax),%eax cmpl 4(%edx),%eax jne .L249 movl -8(%ebp),%eax movl 12(%ebp),%edx movl 8(%eax),%eax cmpl 8(%edx),%eax jne .L249 addl $-12,%esp movl 8(%ebp),%eax pushl %eax call dtr_del_name addl $16,%esp movl $-1,%eax jmp .L245 .p2align 4,,7 .L251: .L249: movl -8(%ebp),%eax movl 12(%eax),%edx movl %edx,-8(%ebp) jmp .L247 .p2align 4,,7 .L248: call dtr_elem_alloc movl %eax,%eax movl %eax,-4(%ebp) cmpl $0,-4(%ebp) jne .L252 addl $-12,%esp movl 8(%ebp),%eax pushl %eax call dtr_del_name addl $16,%esp movl $-1,%eax jmp .L245 .p2align 4,,7 .L252: movl -4(%ebp),%ebx addl $-12,%esp movl 8(%ebp),%eax pushl %eax call strlen addl $16,%esp movl %eax,(%ebx) movl -4(%ebp),%eax movl 12(%ebp),%edx movl 4(%edx),%ecx movl %ecx,4(%eax) movl -4(%ebp),%eax movl 12(%ebp),%edx movl 8(%edx),%ecx movl %ecx,8(%eax) movl -4(%ebp),%eax movl 8(%ebp),%edx movl 1028(%edx),%ecx movl %ecx,16(%eax) movl 8(%ebp),%eax movl 1028(%eax),%edx movl -4(%ebp),%eax movl %eax,12(%edx) movl 8(%ebp),%eax movl -4(%ebp),%edx movl %edx,1028(%eax) xorl %eax,%eax jmp .L245 .p2align 4,,7 .L245: movl -24(%ebp),%ebx leave ret .Lfe23: .size dtr_go_subdir,.Lfe23-dtr_go_subdir .section .rodata .align 32 .LC42: .string "FATAL: CANNOT HAPPEN --- in dtr_go_updir().\n" .text .align 4 .type dtr_go_updir,@function dtr_go_updir: pushl %ebp movl %esp,%ebp subl $24,%esp movl 8(%ebp),%eax movl 1028(%eax),%edx movl %edx,-4(%ebp) cmpl $0,-4(%ebp) jne .L254 addl $-8,%esp pushl $.LC42 pushl $__sF+176 call fprintf addl $16,%esp addl $-12,%esp pushl $1 call exit addl $16,%esp .p2align 4,,7 .L254: movl -4(%ebp),%eax movl 16(%eax),%edx movl $0,12(%edx) movl 8(%ebp),%eax movl -4(%ebp),%edx movl 16(%edx),%ecx movl %ecx,1028(%eax) addl $-12,%esp movl -4(%ebp),%eax pushl %eax call dtr_elem_free addl $16,%esp addl $-12,%esp movl 8(%ebp),%eax pushl %eax call dtr_del_name addl $16,%esp xorl %eax,%eax jmp .L253 .p2align 4,,7 .L253: leave ret .Lfe24: .size dtr_go_updir,.Lfe24-dtr_go_updir .align 4 .type dtr_subdir_list,@function dtr_subdir_list: pushl %ebp movl %esp,%ebp subl $24,%esp movl 8(%ebp),%eax movl 1028(%eax),%edx movl 120(%edx),%eax movl %eax,-4(%ebp) movl 8(%ebp),%edx movl 1028(%edx),%ecx addl $20,%ecx cmpl %ecx,%eax jne .L256 xorl %eax,%eax jmp .L255 .p2align 4,,7 .L256: movl -4(%ebp),%edx movl %edx,%eax jmp .L255 .p2align 4,,7 .L255: leave ret .Lfe25: .size dtr_subdir_list,.Lfe25-dtr_subdir_list .align 4 .type dtr_next_subdir,@function dtr_next_subdir: pushl %ebp movl %esp,%ebp subl $24,%esp movl 12(%ebp),%edx movl 100(%edx),%eax movl %eax,-4(%ebp) movl 8(%ebp),%edx movl 1028(%edx),%ecx addl $20,%ecx cmpl %ecx,%eax jne .L258 xorl %eax,%eax jmp .L257 .p2align 4,,7 .L258: movl -4(%ebp),%edx movl %edx,%eax jmp .L257 .p2align 4,,7 .L257: leave ret .Lfe26: .size dtr_next_subdir,.Lfe26-dtr_next_subdir .align 4 .type dtr_add_name,@function dtr_add_name: pushl %ebp movl %esp,%ebp subl $20,%esp pushl %ebx movl 8(%ebp),%eax movl 1028(%eax),%edx movl (%edx),%eax movl %eax,-8(%ebp) movl vf_directory_delimiter,%eax movl %eax,-4(%ebp) .p2align 4,,7 .L260: movl -4(%ebp),%eax cmpb $0,(%eax) jne .L263 jmp .L261 .p2align 4,,7 .L263: movl 8(%ebp),%eax movl -8(%ebp),%edx movl -4(%ebp),%ecx movb (%ecx),%bl movb %bl,(%edx,%eax) incl -8(%ebp) .L262: incl -4(%ebp) jmp .L260 .p2align 4,,7 .L261: nop .p2align 4,,7 .L264: cmpl $0,16(%ebp) jg .L266 jmp .L265 .p2align 4,,7 .L266: movl 8(%ebp),%eax movl -8(%ebp),%edx movl 12(%ebp),%ecx movb (%ecx),%bl movb %bl,(%edx,%eax) incl 12(%ebp) incl -8(%ebp) decl 16(%ebp) jmp .L264 .p2align 4,,7 .L265: movl 8(%ebp),%eax movl -8(%ebp),%edx movb $0,(%edx,%eax) xorl %eax,%eax jmp .L259 .p2align 4,,7 .L259: movl -24(%ebp),%ebx leave ret .Lfe27: .size dtr_add_name,.Lfe27-dtr_add_name .align 4 .type dtr_del_name,@function dtr_del_name: pushl %ebp movl %esp,%ebp movl 8(%ebp),%eax movl 8(%ebp),%edx movl 1028(%edx),%ecx movl (%ecx),%edx movb $0,(%edx,%eax) .L267: leave ret .Lfe28: .size dtr_del_name,.Lfe28-dtr_del_name .align 4 .type __maskrune,@function __maskrune: pushl %ebp movl %esp,%ebp subl $16,%esp pushl %esi pushl %ebx movl 8(%ebp),%esi movl 12(%ebp),%ebx testl %esi,%esi jl .L9 cmpl $255,%esi jg .L9 jmp .L7 .p2align 4,,7 .L9: addl $-12,%esp pushl %esi call ___runetype addl $16,%esp movl %eax,%edx movl %edx,%eax andl %ebx,%eax jmp .L8 .p2align 4,,7 .L7: movl _CurrentRuneLocale,%edx leal 0(,%esi,4),%ecx addl $52,%edx movl %ebx,%eax andl (%ecx,%edx),%eax .L8: movl %eax,%eax jmp .L6 .L6: leal -24(%ebp),%esp popl %ebx popl %esi leave ret .Lfe29: .size __maskrune,.Lfe29-__maskrune .comm vf_dbg_drv_texfonts,4,4 .comm vf_tex_default_properties,4,4 .comm vf_tex_default_variables,4,4 .local pidlist .comm pidlist,4,4 .ident "GCC: (GNU) 2.95.2 19991024 (release)" vflib3-3.6.14.dfsg/src/vflmkpcf.c0000644000175000017500000000626507361534261016047 0ustar mohuramohura/* * vflmkpcf.c * - a vflibcap entry generator for X11 PCF bitmap fonts * * - This program prints vflibcap entries to standard output. * * * by Hirotsugu Kakugawa * * 15 May 2001 */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #ifdef HAVE_STRING_H #include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "pcf.h" #include "fsearch.h" #include "vflmklib.h" void gen_class_deafult(void); char *dpi = NULL; int dpi_i = DEFAULT_KPS_DPI; #define NDIRS 64 int n_dirs; char *pcf_fontdirs[NDIRS]; char *cmdline = NULL; int main(int argc, char **argv) { int i; int xargc; char **xargv; dpi = malloc(256); sprintf(dpi, "%d", dpi_i); cmdline = copy_cmdline(argc, argv); n_dirs = 0; for (i = 0; i < NDIRS; i++){ pcf_fontdirs[i] = NULL; } xargc = argc; xargv = argv; for (xargc--,xargv++; xargc > 0; xargc--,xargv++){ if ((strcmp(*xargv, "--help") == 0) || (strcmp(*xargv, "-help") == 0)){ printf("vflmkpcf: generates vflibcap entries for PCF fonts\n"); printf("Usage: vflmkpcf [options]\n"); printf("Options\n"); printf(" -d DIR : PCF font file directory\n"); printf(" -r DPI : Default device resolution\n"); printf("Example: vflmkpcf -d /usr/X11R6/lib/X11/fonts// \n"); exit(0); } else if (strcmp(*xargv, "-d") == 0){ /* font dir */ if (n_dirs == NDIRS){ fprintf(stderr, "Too many PCF font directories\n"); exit(1); } xargv++; xargc--; check_argc(xargc); pcf_fontdirs[n_dirs++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-r") == 0){ xargv++; xargc--; check_argc(xargc); dpi = strdup(*xargv); } else { if (*xargv[0] == '-'){ fprintf(stderr, "vflmkpcf: unknown option %s\n", *xargv); exit(1); } break; } } banner("PCF", "vflmkpcf", cmdline); gen_class_deafult(); return 0; } void gen_class_deafult(void) { int i; printf("(%s %s", VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, FONTCLASS_NAME); printf("\n (%s", VF_CAPE_FONT_DIRECTORIES); for (i = 0; i < n_dirs; i++) printf("\n \"%s\"", pcf_fontdirs[i]); printf(")"); printf("\n (%s %s)", VF_CAPE_DPI, dpi); printf("\n (%s \".gz\" \".Z\")", VF_CAPE_COMPRESSION_EXT); printf(")\n"); printf("\n"); } vflib3-3.6.14.dfsg/src/mkmodelist.sh0000755000175000017500000000322107361440705016566 0ustar mohuramohura#!/bin/sh k_dev=$1 MODES_MF=`kpsewhich modes.mf` if [ x-${MODES_MF} = x- ] then echo "Not found: modes.mf" >&2 exit; fi if [ ! -f ${MODES_MF} ] then echo "Not found: modes.mf" >&2 exit; fi cat ${MODES_MF} \ | awk -v DEVNAME=${k_dev} ' BEGIN { DEVDPI = ""; } END { if (DEVDPI == ""){ printf("-1\n"); # not found exit 1; } printf("%s\n", DEVDPI); exit 0; } # Line: e.g., mode_def ljfour = % 600dpi HP LaserJet 4 /^mode_def/ { mode=$2; ppi=-1; ppiv=-1; asp=1.0; i=index($0, "%"); x=substr($0, i); desc=substr($0, i + match(x, "[a-zA-Z0-9]") - 1); } # Line: e.g., mode_param (pixels_per_inch, 600); /^[ \t]*mode_param[ \t]*\([ \t]*pixels_per_inch, [ \t]*[0-9.]+\);/ { match($3, "[0-9.]*"); ppi=substr($3, 1, RLENGTH); ppiv=-1; } # Line: e.g., mode_param (aspect_ratio, 4/3); # Currently, aspect ratio must be 1 /^[ \t]*mode_param[ \t]*\([ \t]*aspect_ratio[ \t]*,[ \t]*[0-9./]+[ \t]*);/ { i=match($0, ",[ \t]*"); s0=i+RLENGTH; x=substr($0, s0); len=match(x, ")"); asp=substr($0, s0, len-1); ppiv=asp*ppi; ppi=-1; ### ignore this entry. } # Line: e.g., mode_param (aspect_ratio, 180 / pixels_per_inch); /^[ \t]*mode_param[ \t]*\([ \t]*aspect_ratio, [ \t]*.*\/[ \t]*pixels_per_inch)/ { i=match($0, ",[ \t]*[0-9.]"); x=substr($0, i+RLENGTH-1); s0=i+RLENGTH-1; match(x, "[ \t]*/"); ppiv=substr($0, s0, RSTART-1); asp=ppi/ppiv; ppi=-1; ### ignore this entry. } # Line: e.g., enddef; /^enddef/ { if ((mode != "") && (ppi > 0)){ if ((ppiv < 0) && (mode == DEVNAME)){ DEVDPI=ppi; } mode=""; ppi=-1; ppiv=-1; desc=""; } } ' vflib3-3.6.14.dfsg/src/mkmodelist.awk0000644000175000017500000000254607361440227016743 0ustar mohuramohura# make a device mode list from 'modes.mf' file (given in stdin) # by h.kakugawa # Line: e.g., mode_def ljfour = % 600dpi HP LaserJet 4 /^mode_def/ { mode=$2; ppi=-1; ppiv=-1; asp=1.0; i=index($0, "%"); x=substr($0, i); desc=substr($0, i + match(x, "[a-zA-Z0-9]") - 1); } # Line: e.g., mode_param (pixels_per_inch, 600); /^[ \t]*mode_param[ \t]*\([ \t]*pixels_per_inch, [ \t]*[0-9.]+\);/ { match($3, "[0-9.]*"); ppi=substr($3, 1, RLENGTH); ppiv=-1; } ### Currently, aspect ratio must be 1 # Line: e.g., mode_param (aspect_ratio, 4/3); /^[ \t]*mode_param[ \t]*\([ \t]*aspect_ratio[ \t]*,[ \t]*[0-9./]+[ \t]*);/ { i=match($0, ",[ \t]*"); s0=i+RLENGTH; x=substr($0, s0); len=match(x, ")"); asp=substr($0, s0, len-1); ppiv=asp*ppi; ppi=-1; ### ignore this entry. } # Line: e.g., mode_param (aspect_ratio, 180 / pixels_per_inch); /^[ \t]*mode_param[ \t]*\([ \t]*aspect_ratio, [ \t]*.*\/[ \t]*pixels_per_inch)/ { i=match($0, ",[ \t]*[0-9.]"); x=substr($0, i+RLENGTH-1); s0=i+RLENGTH-1; match(x, "[ \t]*/"); ppiv=substr($0, s0, RSTART-1); asp=ppi/ppiv; ppi=-1; ### ignore this entry. } # Line: e.g., enddef; /^enddef/ { if ((mode != "") && (ppi > 0)){ if ((ppiv < 0) && (mode == DEVNAME)){ printf("%s\n", ppi); } mode=""; ppi=-1; ppiv=-1; desc=""; } } vflib3-3.6.14.dfsg/src/vflmkcaptex.in0000644000175000017500000004070410270121467016734 0ustar mohuramohura#!/bin/sh # vflmkcaptex # --- Generate vflibcap for TeX DVI drivers # (Especially, DVIware of the TeX-Guy Project) # # by Hirotsugu Kakugawa # # 13 May 2001 # 12 Oct 2001 Fixed bugs. Thanks to James Hirschorn. # Changed to read modex.mf to obtain device resolution. # 21 Jul 2005 Enhanced searching "config.ps" and type 1 font files. # 33 Jul 2005 Added -t1map option. Changed type1 mapping files used. # Copyright (C) 2002-2005 Hirotsugu Kakugawa. # All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. version="1.1" vflibversion="@vflib_version@" prefix=@prefix@ datadir=${prefix}/share k_mode_d="cx" k_dpi_d="300" k_prg_d="xgdvi" fclass_pk_def="pk vf type1 tfm" fclass_t1_def="type1 vf pk tfm" emit_portable="no" prefer_t1_="no" use_tex_mapper="no" gen_pk_otf="no" use_jtex="no" use_jtex_jisx0212="no" jtex_class="pcf" pcf_kanji_dir_extra="" ekanji_kanji_dir_extra="" ttf_kanji_dir_extra="" ttf_fontdef_opt="" ajt_ttf_fontdb="" use_jp_comic="no" jp_comic_fontdb="" t1_config_ps="config.ps" t1_config_ps_auxs="config.ps.ptex-tetex config.ps.tetex" t1_dmaps="psnfss.map psfonts.cm psfonts.ams xypic.map" k_mode=${k_mode_d} k_dpi=-1 k_prg=${k_prg_d} fclass="" ccv="" cmdline=$* usage() { echo "vflmkcaptex - make a vflibcap file of VFlib 3 for TeX DVI drivers." echo "Usage: vflmkcaptex [Options] [Class-list]" echo " or vflmkcaptex [Shortcut] [Options]" echo "Class-list: pk, gf, vf, type1, tfm" echo " A list of font class names." echo " Default class list: pk vf type1 tfm (with -pk option)" echo " type1 vf pk tfm (with -t1 option)" echo "Options:" echo " -p PROG Program name for kpathsea (default: ${k_prg_d})" echo " -n MODE Device mode name for kpathsea (default: ${k_mode_d})" echo " -r DPI Device resolution in DPI (default: ${k_dpi_d})" echo " -g Enable to generate PK on-the-fly" echo " -pk Search PK font before Type 1 (default)" echo " -t1 Search Type1 font before PK" echo " -i Generate more portable font directory list" echo " -t1map map Font mapping file (.map) for dvips" echo " Default map files: ${t1_dmaps}" echo " --version Print version number and exit" echo " --help Print help message" echo "Options for Japanese Kanji characters:" echo " -jtex Enable Japanese Kanji (JISX0208) font support" echo " -jisx0212 Enable Japanese Hojo Kanji (JISX0212) font support" echo " -jpcf Use X11 PCF fonts (default)" echo " -jttf Use TrueType fonts" echo " -jekanji Use eKanji fonts" echo " -jpfd DIR Add PCF font directory" echo " -jtfd DIR Add TrueType font directory" echo " -jefd DIR Add eKanji font directory" echo " -jtdb FILE File for TeX font definition with TrueType font" echo " The format of a file for -jtdb option is a sequence of" echo " lines, each of which contains TeX font name and TrueType" echo " font file name." echo "Shortcut:" echo " minimum same as 'pk' (PK only)" echo " simple same as '-g pk tfm' (PK and TFM only)" echo " standard same as '-t1 -g' (use default class list)" echo " simple-ja same as '-g pk tfm -jtex -jisx0212 -jpcf'" echo " standard-ja same as '-t1 -g -jtex -jisx0212 -jpcf'" exit 0; } # Check shortcut shortcut="" if [ $# -ge 1 ] then case $1 in minimum) shift shortcut="pk" ;; simple) shift shortcut="-g pk tfm" ;; simple-ja) shift shortcut="-g pk tfm -jtex -jisx0212 -jpcf" ;; standard) shift shortcut="-t1 -g" ;; standard-ja) shift shortcut="-t1 -g -jtex -jisx0212 -jpcf" ;; kakugawa) # developer's preference B-) shift shortcut="-pk \ -jtex -jisx0212 \ -jttf \ -jtfd /usr/local/share/fonts/DynaFont-TypeMuseum// \ -jtfd /usr/local/share/fonts/DynaFont-SpecialPack1// \ -jtfd /usr/local/share/fonts/DynaFont-Premium30// \ -jtfd /usr/local/share/fonts/FontCity2// \ -jtfd /usr/local/share/fonts/TrueTypeWorld-ValueFont141// \ -jtfd /usr/local/share/fonts/TrueTypeWorld-ValueFontDX// \ -jtfd /usr/local/share/fonts/mika-chan// \ -jtfd /usr/local/share/fonts/kotori// \ -jtdb ../ascii-jtex/fonts.lst \ -jpcdb ../ascii-jtex/fontsc.lst" ;; esac fi args_rest=$* set -- $shortcut $args_rest #echo $# $* #exit 1; # Command line argument fclass="" while [ $# -gt 0 ] do case "$1" in -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac case $1 in --prefix=*) prefix=$optarg datadir=${prefix}/share ;; --datadir=*) datadir=$optarg ;; pk|gf|tfm|vf|type1) fclass="${fclass} $1" ;; -r) k_dpi=$2 shift ;; -n) k_mode=$2 shift ;; -p) k_prg=$2 shift ;; -i) emit_portable="yes" ;; -g) gen_pk_otf="yes" ;; -t1) prefer_t1="yes" ;; -t1map) t1_dmaps="${t1_dmaps} $2" shift ;; -pk) prefer_t1="no" ;; -jtex) use_jtex="yes" ;; -jisx0212) use_jtex="yes" use_jtex_jisx0212="yes" ;; -jpcf) use_jtex="yes" jtex_class="pcf" ;; -jekanji) use_jtex="yes" jtex_class="ekanji" ;; -jttf) use_jtex="yes" jtex_class="ttf" ;; -jtfd) ttf_kanji_dir_extra="${ttf_kanji_dir_extra} $2" shift ;; -jpfd) pcf_kanji_dir_extra="${pcf_kanji_dir_extra} $2" shift ;; -jefd) ekanji_kanji_dir_extra="${ekanji_kanji_dir_extra} $2" shift ;; -jtdb) ajt_ttf_fontdb="${ajt_ttf_fontdb} -tf $2" shift ;; -jpcdb) use_jp_comic="yes" jp_comic_fontdb="$2" shift ;; --help|-help|-hel|-he|-h) usage; ;; --ver*|-ver*|-v) echo "${version}, VFlib ${vflibversion}" exit 1 ;; *) echo "" >&2 echo "vflmkcaptex: Unknown option ${1}" >&2 echo "Use --help option for help" >&2 echo "Abort" >&2 exit 1 ;; esac shift done if [ "x-${fclass}" = "x-" ] ; then if [ "x-${prefer_t1}" = "x-no" ]; then fclass=${fclass_pk_def} else fclass=${fclass_t1_def} fi fi for c in ${fclass}; do case $c in vf|type1) use_tex_mapper="yes" esac done if [ "${use_jtex}" = "yes" ] ; then ccv="${ccv} -c jisx0201_unicode.ccv " ccv="${ccv} -c jisx0208_unicode.ccv " ccv="${ccv} -c jisx0208sjis_unicode.ccv " ccv="${ccv} -c jisx0212_unicode.ccv " fi # Checking kpathsea have_kpathsea=no kpsewhich texmf.cnf >/dev/null 2>/dev/null if [ $? = "0" ] ; then have_kpathsea=yes fi if [ "x-${have_kpathsea}" = "x-no" ] ; then echo "" >&2 echo "No kpathsea." >&2 echo "Abort" >&2 exit 1; fi # Subroutines type1_check_adobe() { t1dir=" /usr/Acrobat3/Fonts \ /usr/Acrobat4/Resource/Font \ /usr/Acrobat5/Resource/Font \ /opt/Acrobat3/Fonts \ /opt/Acrobat4/Resource/Font \ /opt/Acrobat5/Resource/Font \ /usr/lpp/Acrobat3/Fonts \ /usr/lpp/Acrobat4/Resource/Font \ /usr/lpp/Acrobat5/Resource/Font \ /usr/local/Acrobat3/Fonts \ /usr/local/Acrobat4/Resource/Font \ /usr/local/Acrobat5/Resource/Font " for f in ${t1dir}; do if [ "x-${emit_portable}" = "x-yes" ] ; then type1_opt="${type1_opt} -d ${f}" else ff=`echo ${f} | sed 's|//$||'` if [ -d ${ff} ] ; then type1_opt="${type1_opt} -d ${f}" fi fi done } type1_check_gs() { gs_fm="" tmp=/tmp/vflmkcaptex$$ rm -f ${tmp} echo '0 1 LIBPATH length 1 sub { LIBPATH exch get print (\n) print } for' > ${tmp} d=`gs -q -DNODISPLAY ${tmp} quit.ps` if [ $? -eq 0 ] ; then for f in ${d}; do if [ -f ${f}/Fontmap ] ; then gs_fm="-gm ${f}/Fontmap" fi if [ "x-${f}" != "x-." ] ; then type1_gs_opt="${type1_gs_opt} -gf ${f}" type1_opt="${type1_opt} -a ${f}" fi done fi rm -f ${tmp} type1_gs_opt="${type1_gs_opt} ${gs_fm}" } type1_check_fontmap() { dc=`kpsewhich -format='dvips config' ${t1_config_ps}` if [ $? -ne 0 ] ; then echo "Warning: dvips config file ${t1_config_ps} not found" >&2 for c in ${t1_config_ps_auxs} do dc=`kpsewhich -format='dvips config' ${c}` if [ $? -ne 0 ] ; then echo "Abort" >&2 exit 1; else echo "Warning: use dvips config file ${c}" >&2 break fi done fi sed 's/[[:blank:]]//' > /dev/null < /dev/null 2> /dev/null; if [ $? -eq 0 ]; then sedfiltregex='s/^p[[:blank:]]*[+]*\([^[:blank:]]*\)[:blank:]*/\1/' else sedfiltregex='s/^p[ ]*[+]*\(.*map\).*/\1/' fi maps=`cat $dc | sed 's/%.*//' | grep '^p' | sed "$sedfiltregex"` maps=`echo $maps ${t1_dmaps} | sort | uniq` #echo $maps; exit type1_fontmap="" for m in $maps do f=`kpsewhich -format=map $m` if [ $? -eq 0 ] ; then type1_fontmap="${type1_fontmap} $m" else f=`kpsewhich -format='dvips config' $m` if [ $? -eq 0 ] ; then type1_fontmap="${type1_fontmap} $m" else echo "Warning: dvips fontmap file $m not found" >&2 fi fi done } pcf_check_dir() { pcfdirs=" /usr/X11R6/lib/X11/fonts// \ /usr/X11R5/lib/X11/fonts// \ /usr/local/X11R6/lib/X11/fonts// \ /usr/openwin/lib/X11/fonts// \ /usr/X386/lib/X11/fonts// \ /usr/XFree86/lib/X11/fonts// \ /usr/X11/lib/X11/fonts// \ /usr/local/lib/X11/fonts// \ /usr/X11R6/lib/X11/fonts// \ /usr/X11R5/lib/X11/fonts// \ /usr/local/X11R6/lib/X11/fonts// \ /usr/local/X11R5/lib/X11/fonts// \ /usr/local/share/emacs/fonts// \ /usr/local/fonts/X11// \ /usr/local/share/fonts/X11// " pcf_dir_opt="" for f in ${pcfdirs} ${pcf_kanji_dir_extra}; do if [ "x-${emit_portable}" = "x-yes" ] ; then pcf_dir_opt="${pcf_dir_opt} -d ${f}" else ff=`echo ${f} | sed 's|//$||'` if [ -d ${ff} ] ; then pcf_dir_opt="${pcf_dir_opt} -d ${f}" fi fi done } ekanji_check_dir() { ekanjidirs=" /usr/local/fonts/ekanji// \ /usr/local/share/fonts/eKanji// " ekanji_dir_opt="" for f in ${ekanjidirs} ${ekanji_kanji_dir_extra}; do if [ "x-${emit_portable}" = "x-yes" ] ; then ekanji_dir_opt="${ekanji_dir_opt} -d ${f}" else ff=`echo ${f} | sed 's|//$||'` if [ -d ${ff} ] ; then ekanji_dir_opt="${ekanji_dir_opt} -d ${f}" fi fi done } ttf_check_dir() { ttfdirs=" " ttf_dir_opt="" for f in ${ttfdirs} ${ttf_kanji_dir_extra}; do if [ "x-${emit_portable}" = "x-yes" ] ; then ttf_dir_opt="${ttf_dir_opt} -d ${f}" else ff=`echo ${f} | sed 's|//$||'` if [ -d ${ff} ] ; then ttf_dir_opt="${ttf_dir_opt} -d ${f}" fi fi done } get_device_resolution() { modes_mf=`kpsewhich modes.mf` if [ x-${modes_mf} = x- ] ; then echo "Not found: modes.mf" >&2 exit; fi if [ ! -f ${modes_mf} ] ; then echo "Not found: modes.mf" >&2 exit; fi devdpi=`cat ${modes_mf} \ | awk -v devname=${k_mode} ' BEGIN { devdpi = ""; } END { if (devdpi == ""){ printf("-1\n"); # not found } printf("%s\n", devdpi); } # Line: e.g., mode_def ljfour = % 600dpi HP LaserJet 4 /^mode_def/ { mode=$2; ppi=-1; ppiv=-1; asp=1.0; i=index($0, "%"); x=substr($0, i); desc=substr($0, i + match(x, "[[:alnum:]]") - 1); } # Line: e.g., mode_param (pixels_per_inch, 600); /^[[:space:]]*mode_param[[:space:]]*\([[:space:]]*pixels_per_inch, [[:space:]]*[[:digit:].]+\);/ { match($3, "[[:digit:].]*"); ppi=substr($3, 1, RLENGTH); ppiv=-1; } # Line: e.g., mode_param (aspect_ratio, 4/3); # Currently, aspect ratio must be 1 /^[[:space:]]*mode_param[[:space:]]*\([[:space:]]*aspect_ratio[[:space:]]*,[[:space:]]*[[:digit:].\/]+[[:space:]]*\)[[:space:]]*;/ { i=match($0, ",[[:space:]]*"); s0=i+RLENGTH; x=substr($0, s0); len=index(x, ")"); asp=substr($0, s0, len-1); ppiv=asp*ppi; ppi=-1; ### ignore this entry. } # Line: e.g., mode_param (aspect_ratio, 180 / pixels_per_inch); /^[[:space:]]*mode_param[[:space:]]*\([[:space:]]*aspect_ratio[[:space:]]*,[[:space:]]*[[:digit:].\/]*[[:space:]]*\/[[:space:]]*pixels_per_inch[[:space:]]*\)/ { i=match($0, ",[[:space:]]*[[:digit:].]"); x=substr($0, i+RLENGTH-1); s0=i+RLENGTH-1; match(x, "[[:space:]]*/"); ppiv=substr($0, s0, RSTART-1); asp=ppi/ppiv; ppi=-1; ### ignore this entry. } # Line: e.g., enddef; /^enddef/ { if ((mode != "") && (ppi > 0)){ if ((ppiv < 0) && (mode == devname)){ devdpi=ppi; } mode=""; ppi=-1; ppiv=-1; desc=""; } } '` if [ ${devdpi} -eq -1 ] ; then k_dpi=${k_dpi_d}; else k_dpi=${devdpi} fi } # end of subroutines # Emit vflibcap xd=`date` xh=`hostname` xu=`who am i | awk '{ print $1 }'` echo ";; a vflibcap file generated by 'vflmkcaptex' automatically" echo ";; at ${xd} " echo ";; on ${xh} by ${xu}" echo ";; " echo ";; command line arguments given to generate this vflibcap:" echo ";; vflmkcaptex ${cmdline}" echo ";; " echo "" if [ ${k_dpi} -eq -1 ] ; then get_device_resolution; fi # echo ${k_mode} ${k_dpi}; exit; # Emit VFlib default opt="-n ${k_mode} -r ${k_dpi} -p ${k_prg}" if [ "x-${have_kpathsea}" = "x-yes" ] ; then opt="${opt} -k" fi if [ "x-${use_tex_mapper}" = "x-yes" ] ; then opt="${opt} -i TeX" else for c in ${fclass}; do case ${c} in pk|gf|tfm) opt="${opt} -i ${c}" ;; esac done fi vflmkvfl ${opt} ${ccv} # Emit TeX font mapper opt="" opt_map="" if [ "x-${use_tex_mapper}" = "x-yes" ] ; then opt_map="" for c in ${fclass}; do case ${c} in pk) opt_map="${opt_map} -m ${c} %f.%dpk" ;; gf) opt_map="${opt_map} -m ${c} %f.%dgk" ;; vf) opt_map="${opt_map} -m ${c} %f.vf" ;; tfm) opt_map="${opt_map} -m ${c} %f.%dtfm" ;; type1) opt_map="${opt_map} -m ${c} %f.pfb" ;; ascii-jtex-kanji) opt_map="${opt_map} -m ${c} %f.jtex" ;; esac done opt="-r \$TeX_DPI" opt="${opt} -d TEXMF" vflmktex ${opt} ${opt_map} fi # Emit each class comopt1="-n \$TeX_KPATHSEA_MODE -d TEXMF" comopt2="-r \$TeX_DPI" for c in ${fclass}; do opt="" case ${c} in pk) if [ "x-${gen_pk_otf}" = "x-yes" ] ; then opt="-g" fi vflmkpk ${comopt1} ${comopt2} ${opt} ;; gf) vflmkgf ${comopt1} ${comopt2} ;; vf) vflmkvf ${comopt1} ${comopt2} -m any %f.pk ;; type1) opt="${comopt1} ${comopt2}" opt="${opt} -x .pk" opt="${opt} -a TEXMF" opt="${opt} -e ${datadir}/VFlib/${vflibversion}/t1lib" opt="${opt} -e ${datadir}/VFlib/site" opt="${opt} -e ${datadir}/VFlib/site/t1lib" opt="${opt} -f -t" type1_opt="" type1_gs_opt="" type1_fontmap="" type1_check_adobe type1_check_gs type1_check_fontmap opt="${opt} ${type1_opt} ${type1_gs_opt} ${type1_fontmap}" vflmkt1 ${opt} < /dev/null ;; tfm) vflmktfm ${comopt1} ${comopt2} ;; esac done opt="-r \$TeX_DPI" if [ "${use_jtex}" = "yes" ] ; then jtex_opt="-c ${jtex_class}" if [ "x-${use_jtex_jisx0212}" = "x-yes" ] ; then jtex_opt="${jtex_opt} -jisx0212" fi case ${jtex_class} in pcf) pcf_check_dir vflmkpcf ${opt} ${pcf_dir_opt} ;; ekanji) ekanji_check_dir vflmkekan ${ekanji_dir_opt} ;; ttf) ttf_check_dir vflmkttf ${opt} -d TEXMF ${ttf_opt} ${ttf_dir_opt} jtex_opt="${jtex_opt} ${ajt_ttf_fontdb}" ;; esac vflmkajt -d TEXMF -x .pk ${jtex_opt} fi if [ "${use_jp_comic}" = "yes" ] ; then vflmkjpc -x .pk ${jp_comic_fontdb} fi echo "" echo ";; end." # end vflib3-3.6.14.dfsg/src/vflmkttf.c0000644000175000017500000000663007361534173016072 0ustar mohuramohura/* * vflmkttf.c * - a vflibcap entry generator for TrueType fonts * * - This program prints vflibcap entries to standard output. * * * by Hirotsugu Kakugawa * * 15 May 2001 */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #ifdef HAVE_STRING_H #include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "ttf.h" #include "fsearch.h" #include "vflmklib.h" void gen_class_deafult(void); char *dpi = NULL; int dpi_i = DEFAULT_KPS_DPI; #define NDIRS 64 int n_dirs; char *ttf_fontdirs[NDIRS]; char *platform = "microsoft"; char *cmdline = NULL; int main(int argc, char **argv) { int i; int xargc; char **xargv; dpi = malloc(256); sprintf(dpi, "%d", dpi_i); cmdline = copy_cmdline(argc, argv); n_dirs = 0; for (i = 0; i < NDIRS; i++){ ttf_fontdirs[i] = NULL; } xargc = argc; xargv = argv; for (xargc--,xargv++; xargc > 0; xargc--,xargv++){ if ((strcmp(*xargv, "--help") == 0) || (strcmp(*xargv, "-help") == 0)){ printf("vflmkttf: generates vflibcap entries for TrueType fonts\n"); printf("Usage: vflmkttf [options]\n"); printf("Options\n"); printf(" -d DIR : PK font file directory\n"); printf(" -r DPI : Default device resolution\n"); printf(" -p PLAT : Default platform id\n"); printf("Example: vflmkttf -d TEXMF -d /usr/local/share/fonts// \n"); exit(0); } else if (strcmp(*xargv, "-d") == 0){ /* font dir */ if (n_dirs == NDIRS){ fprintf(stderr, "Too many TrueType font directories\n"); exit(1); } xargv++; xargc--; check_argc(xargc); ttf_fontdirs[n_dirs++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-r") == 0){ xargv++; xargc--; check_argc(xargc); dpi = strdup(*xargv); } else if (strcmp(*xargv, "-p") == 0){ xargv++; xargc--; check_argc(xargc); platform = strdup(*xargv); } else { if (*xargv[0] == '-'){ fprintf(stderr, "vflmkttf: unknown option %s\n", *xargv); exit(1); } break; } } banner("TrueType", "vflmkttf", cmdline); gen_class_deafult(); return 0; } void gen_class_deafult(void) { int i; printf("(%s %s", VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, FONTCLASS_NAME); printf("\n (%s", VF_CAPE_FONT_DIRECTORIES); for (i = 0; i < n_dirs; i++) printf("\n \"%s\"", ttf_fontdirs[i]); printf(")"); printf("\n (%s \"%s\")", VF_CAPE_TTF_PLATFORM_ID, platform); printf("\n (%s %s)", VF_CAPE_DPI, dpi); printf(")\n"); printf("\n"); } vflib3-3.6.14.dfsg/src/dbg_ml0000755000175000017500000000753607365217754015260 0ustar mohuramohura#! /bin/sh # dbg_ml - temporary wrapper script for .libs/dbg_ml # Generated by ltmain.sh - GNU libtool 1.3.3 (1.385.2.181 1999/07/02 15:49:11) # # The dbg_ml program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi relink_command="gcc -Wall -pedantic -ansi -DVFLIB_VERSION=\\\"3.6.12\\\" -o \$progdir/\$file dbg_ml.o .libs/libVFlib3.so -L/usr/local/lib -lttf -lt1 -lkpathsea -lintl -lm -Wl,--rpath -Wl,/disks/home/kakugawa/hack/TypeHack/TypeHack-Current/VFlib3-3.6.12/src/.libs -Wl,--rpath -Wl,/usr/local/lib" # This environment variable determines our operation mode. if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then # install mode needs the following variable: link_against_libtool_libs=' libVFlib3.la' else # When we are sourced in execute mode, $file and $echo are already set. if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then echo="echo" file="$0" # Make sure echo works. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec /bin/sh "$0" --no-reexec ${1+"$@"} fi fi # Find the directory that this script lives in. thisdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "x$thisdir" = "x$file" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=`ls -ld "$file" | sed -n 's/.*-> //p'` while test -n "$file"; do destdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` # If there was a directory component, then change thisdir. if test "x$destdir" != "x$file"; then case "$destdir" in [\/]* | [A-Za-z]:[\/]*) thisdir="$destdir" ;; *) thisdir="$thisdir/$destdir" ;; esac fi file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` file=`ls -ld "$thisdir/$file" | sed -n 's/.*-> //p'` done # Try to get the absolute directory name. absdir=`cd "$thisdir" && pwd` test -n "$absdir" && thisdir="$absdir" program=lt-'dbg_ml' progdir="$thisdir/.libs" if test ! -f "$progdir/$program" || \ { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | sed 1q`; \ test "X$file" != "X$progdir/$program"; }; then file="$$-$program" if test ! -d "$progdir"; then mkdir "$progdir" else rm -f "$progdir/$file" fi # relink executable if necessary if test -n "$relink_command"; then if (cd "$thisdir" && eval $relink_command); then : else rm -f "$progdir/$file" exit 1 fi fi mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null || { rm -f "$progdir/$program"; mv -f "$progdir/$file" "$progdir/$program"; } rm -f "$progdir/$file" fi if test -f "$progdir/$program"; then if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then # Run the actual program with our arguments. # Export the path to the program. PATH="$progdir:$PATH" export PATH exec $program ${1+"$@"} $echo "$0: cannot exec $program ${1+"$@"}" exit 1 fi else # The program doesn't exist. $echo "$0: error: $progdir/$program does not exist" 1>&2 $echo "This script is just a wrapper for $program." 1>&2 echo "See the libtool documentation for more information." 1>&2 exit 1 fi fi vflib3-3.6.14.dfsg/src/vflmkpk.c0000644000175000017500000000721407302101247015671 0ustar mohuramohura/* * vflmkpk.c * - a vflibcap entry generator for TeX PK fonts * * - This program prints vflibcap entries to standard output. * * - Useful for generating vflibcap for TeX DVI drivers * * * by Hirotsugu Kakugawa * * 10 May 2001 */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "texfonts.h" #include "pk.h" #include "fsearch.h" #include "vflmklib.h" void gen_class_deafult(void); char *mode = DEFAULT_KPS_MODE; char *dpi = NULL; int dpi_i = DEFAULT_KPS_DPI; #define NDIRS 64 int n_pkf; char *pk_fontdirs[NDIRS]; int gen_missing_glyph = 0; char *cmdline = NULL; int main(int argc, char **argv) { int i; int xargc; char **xargv; dpi = malloc(256); sprintf(dpi, "%d", dpi_i); cmdline = copy_cmdline(argc, argv); n_pkf = 0; for (i = 0; i < NDIRS; i++){ pk_fontdirs[i] = NULL; } xargc = argc; xargv = argv; for (xargc--,xargv++; xargc > 0; xargc--,xargv++){ if ((strcmp(*xargv, "--help") == 0) || (strcmp(*xargv, "-help") == 0)){ printf("vflmkpk: generates vflibcap entries for PK fonts\n"); printf("Usage: vflmkpk [options]\n"); printf("Options\n"); printf(" -d DIR : PK font file directory\n"); printf(" -n MODE : Device mode name for kpathsea\n"); printf(" -r DPI : Default device resolution\n"); printf(" -g : Emit code to generate PK file on-the-fly\n"); printf("Example: vflmkpk -d TEXMF -d /usr/tex/fonts -g \n"); exit(0); } else if (strcmp(*xargv, "-d") == 0){ /* font dir */ if (n_pkf == NDIRS){ fprintf(stderr, "Too many PK font directories\n"); exit(1); } xargv++; xargc--; check_argc(xargc); pk_fontdirs[n_pkf++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-r") == 0){ xargv++; xargc--; check_argc(xargc); dpi = strdup(*xargv); } else if (strcmp(*xargv, "-n") == 0){ /* mode */ xargv++; xargc--; check_argc(xargc); mode = x_strdup(*xargv); } else if (strcmp(*xargv, "-g") == 0){ gen_missing_glyph = 1; } else { if (*xargv[0] == '-'){ fprintf(stderr, "vflmkpk: unknown option %s\n", *xargv); exit(1); } break; } } banner("PK", "vflmkpk", cmdline); gen_class_deafult(); return 0; } void gen_class_deafult(void) { int i; printf("(%s %s", VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, FONTCLASS_NAME_PK); printf("\n (%s", VF_CAPE_FONT_DIRECTORIES); for (i = 0; i < n_pkf; i++) printf("\n \"%s\"", pk_fontdirs[i]); printf(")"); printf("\n (%s %s)", VF_CAPE_DPI, dpi); #if 0 printf("\n (%s \"%s\")", VF_CAPE_MAKE_MISSING_GLYPH, (gen_missing_glyph==1) ? "yes" : "no"); #endif printf(")\n"); printf("\n"); } vflib3-3.6.14.dfsg/src/vflmkjpc.c0000644000175000017500000000705507405117302016041 0ustar mohuramohura/* * vflmkjpc.c * - a vflibcap entry generator for japanese-comic fonts * * - This program prints vflibcap entries to standard output. * * * by Hirotsugu Kakugawa * * 10 Dec 2001 */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #ifdef HAVE_STRING_H #include #endif #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "fsearch.h" #include "vflmklib.h" #include "comic.h" char buff[BUFSIZ]; char s1[BUFSIZ], s2[BUFSIZ], s3[BUFSIZ], s4[BUFSIZ], s5[BUFSIZ]; char *cmdline = NULL; char *fext = ""; void gen_class_deafult(void); void gen_font_def(char *font, char *kanji, char *kana_h, char *kana_k, char *misc); void usage(void); int main(int argc, char **argv) { int xargc; char **xargv; FILE *fp; int lno; cmdline = copy_cmdline(argc, argv); xargc = argc; xargv = argv; for (xargc--,xargv++; xargc > 0; xargc--,xargv++){ if ((strcmp(*xargv, "--help") == 0) || (strcmp(*xargv, "-help") == 0)){ usage(); } if ((strcmp(*xargv, "-x") == 0) && (xargc > 1)){ xargc--,xargv++; fext = *xargv; } else if (*xargv[0] != '-'){ break; } else { usage(); } } banner("japanese-comic", "vflmkjpc", cmdline); gen_class_deafult(); for ( ; xargc > 0; xargc--,xargv++){ lno = 0; fp = fopen(*xargv, "r"); if (fp == NULL){ fprintf(stderr, "Cannot read %s\n", *xargv); exit(1); } while (fgets(buff, sizeof(buff), fp) != NULL){ lno++; if (sscanf(buff, "%s%s%s%s%s", s1, s2, s3, s4, s5) != 5){ fprintf(stderr, "Format error (line %d) in %s\n", lno, *xargv); exit(1); } #if 0 printf("** %s: '%s' '%s' '%s' '%s'\n", s1, s2, s3, s4, s5); #endif gen_font_def(s1, s2, s3, s4, s5); } fclose(fp); } return 0; } void usage(void) { printf("vflmkjpc: generates vflibcap entries for japanese-comic fonts\n"); printf("Usage: vflmkjpc DB-FILE...f\n"); exit(0); } void gen_class_deafult(void) { printf("(%s %s", VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, FONTCLASS_NAME_COMIC); printf(")\n"); printf("\n"); } void gen_font_def(char *font, char *kanji, char *kana_h, char *kana_k, char *misc) { printf("(%s %s%s", VF_CAPE_VFLIBCAP_FONT_ENTRY_DEFINITION, font, fext); printf("\t (%s \"%s\")", VF_CAPE_FONT_CLASS, FONTCLASS_NAME_COMIC); printf("\n (%s \"%s%s\")", VF_CAPE_COMIC_KANJI_FONT, kanji, fext); printf("\n (%s \"%s%s\")", VF_CAPE_COMIC_HIRAKANA_FONT, kana_h, fext); printf(" (%s \"%s%s\")", VF_CAPE_COMIC_KATAKANA_FONT, kana_k, fext); printf("\n (%s \"%s%s\")", VF_CAPE_COMIC_ALNUM_FONT, misc, fext); printf(" (%s \"%s%s\")", VF_CAPE_COMIC_SYMBOL_FONT, misc, fext); printf(")\n"); } vflib3-3.6.14.dfsg/src/vflmktex.c0000644000175000017500000001166707300362411016066 0ustar mohuramohura/* * vflmktex.c * - a vflibcap entry generator for TeX font mapper * * - This program prints vflibcap entries to standard output. * * - Useful for generating vflibcap for TeX DVI drivers * * * by Hirotsugu Kakugawa * * 10 May 2001 */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "texfonts.h" #include "vf.h" #include "fsearch.h" #include "vflmklib.h" void gen_class_deafult(void); char *dpi = NULL; int dpi_i = DEFAULT_KPS_DPI; #define NDIRS 64 int n_tfmf; char *tfm_fontdirs[NDIRS]; #define NMAPS 64 int n_map; char *map_class[NMAPS]; char *map_map[NMAPS]; char *map_opt[NMAPS]; char *cmdline = NULL; int res_col[5][32] = { { 240, 240, 263, 288, 312, 346, 415, 498, 597, -1 }, { 300, 329, 360, 432, 518, 622, 746, 896, 1075, 1290, 240, 270, -1 }, { 400, 400, 438, 480, 576, 691, 829, 995, 1194, 1433, 1720, 320, 360, -1 }, { 600, 600, 657, 720, 864, 1037, 1244, 1493, 1792, 2150, 2580, 480, 540, -1 }, }; int main(int argc, char **argv) { int i; int xargc; char **xargv; dpi = malloc(256); sprintf(dpi, "%d", dpi_i); cmdline = copy_cmdline(argc, argv); n_tfmf = 0; for (i = 0; i < NDIRS; i++){ tfm_fontdirs[i] = NULL; } n_map = 0; for (i = 0; i < NMAPS; i++){ map_class[i] = NULL; map_map[i] = NULL; map_opt[i] = NULL; } xargc = argc; xargv = argv; for (xargc--,xargv++; xargc > 0; xargc--,xargv++){ if ((strcmp(*xargv, "--help") == 0) || (strcmp(*xargv, "-help") == 0)){ printf("vflmktex: generates vflibcap entries for TeX font mapper\n"); printf("Usage: vflmktex [options]\n"); printf("Options\n"); printf(" -d DIR : TFM file directory\n"); printf(" -r DPI : Default device resolution\n"); printf(" -m CLASS FORMAT : Add font mapping rule\n"); printf("Example: vflmkvf -d TEXMF -m type1 %%f.pfb -m gf %%f.gf\n"); exit(0); } else if (strcmp(*xargv, "-d") == 0){ /* font dir */ if (n_tfmf == NDIRS){ fprintf(stderr, "Too many Virtual Font directories\n"); exit(1); } xargv++; xargc--; tfm_fontdirs[n_tfmf++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-r") == 0){ xargv++; xargc--; check_argc(xargc); dpi = strdup(*xargv); } else if (strcmp(*xargv, "-m") == 0){ if (n_map == NMAPS){ fprintf(stderr, "Too many mapfont conversion rules\n"); exit(1); } xargv++; xargc--; check_argc(xargc); if (strcmp(*xargv, "any") == 0) map_class[n_map] = strdup("*"); else map_class[n_map] = strdup(*xargv); xargv++; xargc--; check_argc(xargc); map_map[n_map] = strdup(*xargv); n_map++; } else { if (*xargv[0] == '-'){ fprintf(stderr, "vflmktex: unknown option %s\n", *xargv); exit(1); } break; } } banner("TeX Font Mapper", "vflmktex", cmdline); gen_class_deafult(); return 0; } void gen_class_deafult(void) { int i, j; printf("(%s %s", VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, FONTCLASS_NAME_TeX); printf("\n (%s %s)", VF_CAPE_DPI, dpi); printf("\n (%s", VF_CAPE_TEX_TFM_DIRECTORIES); for (i = 0; i < n_tfmf; i++) printf("\n \"%s\"", tfm_fontdirs[i]); printf(")"); printf("\n (%s \".tfm\" \".ofm\")", VF_CAPE_TEX_TFM_EXTENSIONS); printf("\n (%s", VF_CAPE_TEX_FONT_MAPPING); for (i = 0; i < n_map; i++){ if (map_need_tfm(map_class[i]) == 0){ printf("\n ((%s \"%s\") *)", map_class[i], map_map[i]); } else { printf("\n ((%s \"%s\" %s) *)", map_class[i], map_map[i], TEX_FONT_MAPPING_PTSIZE); } } printf(")"); printf("\n (%s 0.02)", VF_CAPE_RESOLUTION_ACCU); printf("\n (%s", VF_CAPE_RESOLUTION_CORR); for (i = 0; res_col[i][0] > 0; i++){ printf("\n (%d ; %d dpi devices", res_col[i][0], res_col[i][0]); printf("\n "); for (j = 0; res_col[i][j] > 0; j++){ printf(" %d", res_col[i][j]); } printf(")"); } printf(")"); printf(")"); printf("\n"); printf("\n"); } vflib3-3.6.14.dfsg/src/vflmkvfl.c0000644000175000017500000001333507300430776016061 0ustar mohuramohura/* * vflmkvfl.c * - a vflibcap entry generator for VFlib default entry * * - This program prints vflibcap entries to standard output. * * - Useful for generating vflibcap for TeX DVI drivers * * * by Hirotsugu Kakugawa * * 10 May 2001 */ /* * Copyright (C) 2001 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "with.h" #include #include #include #include #include #include #include "VFlib-3_6.h" #include "VFsys.h" #include "vflibcap.h" #include "texfonts.h" #include "fsearch.h" #include "vflmklib.h" void gen_class_deafult(void); char *mode = DEFAULT_KPS_MODE; char *dpi = NULL; int dpi_i = DEFAULT_KPS_DPI; #define NEHINTS 64 int n_eh = 0; char *ehint_ext[NEHINTS]; char *ehint_cls[NEHINTS]; #define NIMPLS 64 int n_impl = 0; char *impl[NIMPLS]; #define NCCVS 256 int n_ccv = 0; char *ccvs[NCCVS]; int use_kpathsea = 0; char *kps_prog = "xgdvi"; char *cmdline = NULL; int main(int argc, char **argv) { int i; int xargc; char **xargv; dpi = malloc(256); sprintf(dpi, "%d", dpi_i); cmdline = copy_cmdline(argc, argv); n_eh = 0; for (i = 0; i < NEHINTS; i++){ ehint_ext[i] = NULL; ehint_cls[i] = NULL; } n_impl = 0; for (i = 0; i < NIMPLS; i++){ impl[i] = NULL; } n_ccv = 0; for (i = 0; i < NCCVS; i++){ ccvs[i] = NULL; } xargc = argc; xargv = argv; for (xargc--,xargv++; xargc > 0; xargc--,xargv++){ if ((strcmp(*xargv, "--help") == 0) || (strcmp(*xargv, "-help") == 0)){ printf("vflmkvfl: generates vflibcap entries for TFM fonts\n"); printf("Usage: vflmkvfl [options]\n"); printf("Options\n"); printf(" -k : Use kpathsea for TeX file search\n"); printf(" -r DPI : Default device resolution\n"); printf(" -n MODE : Device mode name for kpathsea\n"); printf(" -p PROG : Application program name for kpathsea\n"); printf(" -e EXT CLASS : extension hint\n"); printf(" -i CLASS : implicit font class\n"); printf(" -c CCV : CCV file\n"); printf("Example: vflmkvfl -k -r 300 -n cx -p xgdvi\n"); exit(0); } else if (strcmp(*xargv, "-k") == 0){ /* kpathsea */ use_kpathsea = 1; } else if (strcmp(*xargv, "-c") == 0){ /* ccv */ if (n_ccv == NCCVS){ fprintf(stderr, "Too many CCV files\n"); exit(1); } xargv++; xargc--; check_argc(xargc); ccvs[n_ccv++] = x_strdup(*xargv); } else if (strcmp(*xargv, "-r") == 0){ xargv++; xargc--; check_argc(xargc); dpi = strdup(*xargv); } else if (strcmp(*xargv, "-n") == 0){ /* mode name */ xargv++; xargc--; check_argc(xargc); mode = x_strdup(*xargv); } else if (strcmp(*xargv, "-p") == 0){ /* prog name */ xargv++; xargc--; check_argc(xargc); kps_prog = x_strdup(*xargv); } else if (strcmp(*xargv, "-e") == 0){ /* extension hint */ if (n_eh == NEHINTS){ fprintf(stderr, "Too many extension hints\n"); exit(1); } xargv++; xargc--; ehint_ext[n_eh] = x_strdup(*xargv); xargv++; xargc--; ehint_cls[n_eh] = x_strdup(*xargv); n_eh++; } else if (strcmp(*xargv, "-i") == 0){ /* implicit fonts */ if (n_impl == NIMPLS){ fprintf(stderr, "Too many implicit fonts\n"); exit(1); } xargv++; xargc--; impl[n_impl] = x_strdup(*xargv); n_impl++; } else { if (*xargv[0] == '-'){ fprintf(stderr, "vflmkvfl: unknown option %s\n", *xargv); exit(1); } break; } } banner("VFlib defaults", "vflmkvfl", cmdline); gen_class_deafult(); return 0; } void gen_class_deafult(void) { int i; printf("(%s %s", VF_CAPE_VFLIBCAP_CLASS_DEFAULT_DEFINITION, VF_CAPE_VFLIB_DEFAULTS); printf("\n (%s", VF_CAPE_EXTENSION_HINT); for (i = 0; i < n_eh; i++){ if ((i%4) == 0) printf("\n "); printf(" (\"%s\" %s)", ehint_ext[i], ehint_cls[i]); } printf(")"); printf("\n (%s", VF_CAPE_IMPLICIT_FONT_CLASSES); for (i = 0; i < n_impl; i++){ printf(" %s", impl[i]); } printf(")"); printf("\n (%s %s)", VF_CAPE_UNCOMPRESSER, "(\".Z\" \"gzip -cd\") (\".gz\" \"gzip -cd\")"); printf("\n (%s", VF_CAPE_VARIABLE_VALUES); printf("\n (TeX_USE_KPATHSEA \"%s\")", (use_kpathsea==1)?"Yes":"No"); printf("\n (TeX_DPI \"%s\")", dpi); printf("\n (TeX_KPATHSEA_MODE \"%s\")", mode); printf("\n (TeX_KPATHSEA_PROGRAM \"%s\")", kps_prog); printf(")"); printf("\n (%s $TeX_USE_KPATHSEA)", VF_CAPE_KPATHSEA_SWITCH); printf("\n (%s $TeX_KPATHSEA_MODE)", VF_CAPE_KPATHSEA_MODE); printf("\n (%s $TeX_DPI)", VF_CAPE_KPATHSEA_DPI); printf("\n (%s $TeX_KPATHSEA_PROGRAM)", VF_CAPE_KPATHSEA_PROG_NAME); printf("\n (%s", VF_CAPE_CODE_CONVERSION_FILES); for (i = 0; i < n_ccv; i++){ if ((i%3) == 0) printf("\n "); printf(" \"%s\"", ccvs[i]); } printf(")"); printf(")"); printf("\n"); printf("\n"); } vflib3-3.6.14.dfsg/ascii-jtex/0000755000175000017500000000000010400435232015315 5ustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Fonts/0000755000175000017500000000000007273444714016431 5ustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Fonts/jt1gyo.sty0000644000175000017500000000022606760637573020416 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jt1gyo}[1999/08/24] \renewcommand{\encodingdefault}{JT1} \DeclareFontSubstitution{JT1}{gyo}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JT1hkg.fd0000644000175000017500000000027006661677214020036 0ustar mohuramohura\ProvidesFile{jt1hkg.fd}[1998/09/07] \DeclareKanjiFamily{JT1}{hkg}{} \DeclareRelationFont{JT1}{hkg}{m}{}{OT1}{cmr}{m}{} \DeclareFontShape{JT1}{hkg}{m}{n}{ <-> trchkgpaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JT1hsg.fd0000644000175000017500000000117407135175615020045 0ustar mohuramohura\ProvidesFile{jt1hsg.fd}[1998/09/07 Heisei Gothic (Vertical)] \DeclareKanjiFamily{JT1}{hsg}{} \DeclareRelationFont{JT1}{hsg}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JT1}{hsg}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{hsg}{sb}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{hsg}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JT1}{hsg}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JT1}{hsg}{sl}{n}{ <-> tdfhsgmaa }{} \DeclareFontShape{JT1}{hsg}{m}{n}{ <-> tdfhsgpaa }{} \DeclareFontShape{JT1}{hsg}{sb}{n}{ <-> tdfhsgraa }{} \DeclareFontShape{JT1}{hsg}{b}{n}{ <-> tdfhsgsaa }{} \DeclareFontShape{JT1}{hsg}{bx}{n}{ <-> tdfhsgvaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JT1hsm.fd0000644000175000017500000000117407135175615020053 0ustar mohuramohura\ProvidesFile{jt1hsm.fd}[1998/09/07 Heisei Mincho (Vertical)] \DeclareKanjiFamily{JT1}{hsm}{} \DeclareRelationFont{JT1}{hsm}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JT1}{hsm}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{hsm}{sb}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{hsm}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JT1}{hsm}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JT1}{hsm}{sl}{n}{ <-> tdfhsmmaa }{} \DeclareFontShape{JT1}{hsm}{m}{n}{ <-> tdfhsmpaa }{} \DeclareFontShape{JT1}{hsm}{sb}{n}{ <-> tdfhsmraa }{} \DeclareFontShape{JT1}{hsm}{b}{n}{ <-> tdfhsmsaa }{} \DeclareFontShape{JT1}{hsm}{bx}{n}{ <-> tdfhsmvaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JT1kai.fd0000644000175000017500000000116707233464201020021 0ustar mohuramohura\ProvidesFile{jt1kai.fd}[1998/09/07 Kaisyo (Vertical)] \DeclareKanjiFamily{JT1}{kai}{} \DeclareRelationFont{JT1}{kai}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JT1}{kai}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{kai}{sb}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{kai}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JT1}{kai}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JT1}{kai}{sl}{n}{ <-> tdfkaimaa }{} \DeclareFontShape{JT1}{kai}{m}{n}{ <-> tdfkaipaa }{} \DeclareFontShape{JT1}{kai}{sb}{n}{ <-> tdfkaisaa }{} \DeclareFontShape{JT1}{kai}{b}{n}{ <-> tdfkaivaa }{} \DeclareFontShape{JT1}{kai}{bx}{n}{ <-> tdfkaiyaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JT1kyk.fd0000644000175000017500000000117107233463710020052 0ustar mohuramohura\ProvidesFile{jt1kyk.fd}[1998/09/07 Kyokasyo (Vertical)] \DeclareKanjiFamily{JT1}{kyk}{} \DeclareRelationFont{JT1}{kyk}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JT1}{kyk}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{kyk}{sb}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{kyk}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JT1}{kyk}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JT1}{kyk}{sl}{n}{ <-> tdfkykmaa }{} \DeclareFontShape{JT1}{kyk}{m}{n}{ <-> tdfkykmaa }{} \DeclareFontShape{JT1}{kyk}{sb}{n}{ <-> tdfkykpaa }{} \DeclareFontShape{JT1}{kyk}{b}{n}{ <-> tdfkykpaa }{} \DeclareFontShape{JT1}{kyk}{bx}{n}{ <-> tdfkykpaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JY1gyo.fd0000644000175000017500000000031306760640634020062 0ustar mohuramohura\ProvidesFile{jy1gyo.fd}[1998/09/07 Gyosyo (Horizontal)] \DeclareKanjiFamily{JY1}{gyo}{} \DeclareRelationFont{JY1}{gyo}{m}{}{OT1}{cmr}{m}{} \DeclareFontShape{JY1}{gyo}{m}{n}{ <-> dfgyopaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JY1hag.fd0000644000175000017500000000113706661677214020034 0ustar mohuramohura\ProvidesFile{jy1hag.fd}[1998/09/07] \DeclareKanjiFamily{JY1}{hag}{} \DeclareRelationFont{JY1}{hag}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JY1}{hag}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{hag}{sb}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JY1}{hag}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JY1}{hag}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JY1}{hag}{sl}{n}{ <-> rchagmaa }{} \DeclareFontShape{JY1}{hag}{m}{n}{ <-> rchagpaa }{} \DeclareFontShape{JY1}{hag}{sb}{n}{ <-> rchagsaa }{} \DeclareFontShape{JY1}{hag}{b}{n}{ <-> rchagvaa }{} \DeclareFontShape{JY1}{hag}{bx}{n}{ <-> rchagvaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JY1hkg.fd0000644000175000017500000000026706661677214020051 0ustar mohuramohura\ProvidesFile{jy1hkg.fd}[1998/09/07] \DeclareKanjiFamily{JY1}{hkg}{} \DeclareRelationFont{JY1}{hkg}{m}{}{OT1}{cmr}{m}{} \DeclareFontShape{JY1}{hkg}{m}{n}{ <-> rchkgpaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JY1hsg.fd0000644000175000017500000000117307135175615020051 0ustar mohuramohura\ProvidesFile{jy1hsg.fd}[1998/09/07 Keisei Gothic (Horizontal)] \DeclareKanjiFamily{JY1}{hsg}{} \DeclareRelationFont{JY1}{hsg}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JY1}{hsg}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{hsg}{sb}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{hsg}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JY1}{hsg}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JY1}{hsg}{sl}{n}{ <-> dfhsgmaa }{} \DeclareFontShape{JY1}{hsg}{m}{n}{ <-> dfhsgpaa }{} \DeclareFontShape{JY1}{hsg}{sb}{n}{ <-> dfhsgraa }{} \DeclareFontShape{JY1}{hsg}{b}{n}{ <-> dfhsgsaa }{} \DeclareFontShape{JY1}{hsg}{bx}{n}{ <-> dfhsgvaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JY1hsm.fd0000644000175000017500000000117307135175615020057 0ustar mohuramohura\ProvidesFile{jy1hsm.fd}[1998/09/07 Keisei Mincho (Horizontal)] \DeclareKanjiFamily{JY1}{hsm}{} \DeclareRelationFont{JY1}{hsm}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JY1}{hsm}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{hsm}{sb}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{hsm}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JY1}{hsm}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JY1}{hsm}{sl}{n}{ <-> dfhsmmaa }{} \DeclareFontShape{JY1}{hsm}{m}{n}{ <-> dfhsmpaa }{} \DeclareFontShape{JY1}{hsm}{sb}{n}{ <-> dfhsmraa }{} \DeclareFontShape{JY1}{hsm}{b}{n}{ <-> dfhsmsaa }{} \DeclareFontShape{JY1}{hsm}{bx}{n}{ <-> dfhsmvaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JY1kai.fd0000644000175000017500000000117107233464157020033 0ustar mohuramohura\ProvidesFile{jy1kai.fd}[1998/09/07 Kaisyo (Horizontal)] \DeclareKanjiFamily{JY1}{kai}{} \DeclareRelationFont{JY1}{kai}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JY1}{kai}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{kai}{sb}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{kai}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JY1}{kai}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JY1}{kai}{sl}{n}{ <-> dfkaimaa }{} \DeclareFontShape{JY1}{kai}{m}{n}{ <-> dfkaipaa }{} \DeclareFontShape{JY1}{kai}{sb}{n}{ <-> dfkaisaa }{} \DeclareFontShape{JY1}{kai}{b}{n}{ <-> dfkaivaa }{} \DeclareFontShape{JY1}{kai}{bx}{n}{ <-> dfkaiyaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JY1kyk.fd0000644000175000017500000000116607233463741020067 0ustar mohuramohura\ProvidesFile{jy1kyk.fd}[1998/09/07 Kyokasyo (Horizontal)] \DeclareKanjiFamily{JY1}{kyk}{} \DeclareRelationFont{JY1}{kyk}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JY1}{kyk}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{kyk}{sb}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{kyk}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JY1}{kyk}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JY1}{kyk}{sl}{n}{ <-> dfkykmaa }{} \DeclareFontShape{JY1}{kyk}{m}{n}{ <-> dfkykmaa }{} \DeclareFontShape{JY1}{kyk}{sb}{n}{ <-> dfkykpaa }{} \DeclareFontShape{JY1}{kyk}{b}{n}{ <-> dfkykpaa }{} \DeclareFontShape{JY1}{kyk}{bx}{n}{ <-> dfkykpaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JT1hag.fd0000644000175000017500000000114406661677214020025 0ustar mohuramohura\ProvidesFile{jt1hag.fd}[1998/09/07] \DeclareKanjiFamily{JT1}{hag}{} \DeclareRelationFont{JT1}{hag}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JT1}{hag}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{hag}{sb}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JT1}{hag}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JT1}{hag}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JT1}{hag}{sl}{n}{ <-> trchagmaa }{} \DeclareFontShape{JT1}{hag}{m}{n}{ <-> trchagpaa }{} \DeclareFontShape{JT1}{hag}{sb}{n}{ <-> trchagsaa }{} \DeclareFontShape{JT1}{hag}{b}{n}{ <-> trchagvaa }{} \DeclareFontShape{JT1}{hag}{bx}{n}{ <-> trchagvaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jy1hkg.sty0000644000175000017500000000022606760640112020355 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jy1hkg}[1999/08/24] \renewcommand{\encodingdefault}{JT1} \DeclareFontSubstitution{JT1}{hkg}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JT1gyo.fd0000644000175000017500000000031206760640600020045 0ustar mohuramohura\ProvidesFile{jt1gyo.fd}[1998/09/07 Gyosyo (Vertical)] \DeclareKanjiFamily{JT1}{gyo}{} \DeclareRelationFont{JT1}{gyo}{m}{}{OT1}{cmr}{m}{} \DeclareFontShape{JT1}{gyo}{m}{n}{ <-> tdfgyopaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JY1mip.fd0000644000175000017500000000117207233464713020053 0ustar mohuramohura\ProvidesFile{jy1mip.fd}[1998/09/07 Karei Mincho (Horizontal)] \DeclareKanjiFamily{JY1}{mip}{} \DeclareRelationFont{JY1}{mip}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JY1}{mip}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{mip}{sb}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{mip}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JY1}{mip}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JY1}{mip}{sl}{n}{ <-> dfmipmaa }{} \DeclareFontShape{JY1}{mip}{m}{n}{ <-> dfmippaa }{} \DeclareFontShape{JY1}{mip}{sb}{n}{ <-> dfmippaa }{} \DeclareFontShape{JY1}{mip}{b}{n}{ <-> dfmippaa }{} \DeclareFontShape{JY1}{mip}{bx}{n}{ <-> dfmippaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jy1hsg.sty0000644000175000017500000000022607236376222020374 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jy1hsg}[1999/08/24] \renewcommand{\encodingdefault}{JY1} \DeclareFontSubstitution{JY1}{hsg}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jt1hag.sty0000644000175000017500000000022606760637604020352 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jt1hag}[1999/08/24] \renewcommand{\encodingdefault}{JT1} \DeclareFontSubstitution{JT1}{hag}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jt1hsg.sty0000644000175000017500000000022606760637660020376 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jt1hsg}[1999/08/24] \renewcommand{\encodingdefault}{JT1} \DeclareFontSubstitution{JT1}{hsg}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jt1hkg.sty0000644000175000017500000000022606760637631020364 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jt1hkg}[1999/08/24] \renewcommand{\encodingdefault}{JT1} \DeclareFontSubstitution{JT1}{hkg}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jt1hsm.sty0000644000175000017500000000022606760637704020403 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jt1hsm}[1999/08/24] \renewcommand{\encodingdefault}{JT1} \DeclareFontSubstitution{JT1}{hsm}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jy1gyo.sty0000644000175000017500000000022606760640213020404 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jy1gyo}[1999/08/24] \renewcommand{\encodingdefault}{JT1} \DeclareFontSubstitution{JT1}{gyo}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jt1kai.sty0000644000175000017500000000022606760637725020363 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jt1kai}[1999/08/24] \renewcommand{\encodingdefault}{JT1} \DeclareFontSubstitution{JT1}{kai}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jt1kyk.sty0000644000175000017500000000022606760637756020421 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jt1kyk}[1999/08/24] \renewcommand{\encodingdefault}{JT1} \DeclareFontSubstitution{JT1}{kyk}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jy1hsm.sty0000644000175000017500000000022607233465260020400 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jy1hsm}[1999/08/24] \renewcommand{\encodingdefault}{JY1} \DeclareFontSubstitution{JY1}{hsm}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jy1hag.sty0000644000175000017500000000022606760640221020344 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jy1hag}[1999/08/24] \renewcommand{\encodingdefault}{JT1} \DeclareFontSubstitution{JT1}{hag}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jy1kai.sty0000644000175000017500000000022606760640172020356 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jy1kai}[1999/08/24] \renewcommand{\encodingdefault}{JT1} \DeclareFontSubstitution{JT1}{kai}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/jy1kyk.sty0000644000175000017500000000022606760640201020401 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jy1kyk}[1999/08/24] \renewcommand{\encodingdefault}{JT1} \DeclareFontSubstitution{JT1}{kyk}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JY1ill.fd0000644000175000017500000000032006661705772020047 0ustar mohuramohura\ProvidesFile{jy1gyo.fd}[1999/02/15 Illustlations (Horizontal)] \DeclareKanjiFamily{JY1}{ill}{} \DeclareRelationFont{JY1}{ill}{m}{}{OT1}{cmr}{m}{} \DeclareFontShape{JY1}{ill}{m}{n}{ <-> fjillmaa}{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JT1ill.fd0000644000175000017500000000032106760640300020024 0ustar mohuramohura\ProvidesFile{jt1gyo.fd}[1999/02/15 Illustlations (Horizontal)] \DeclareKanjiFamily{JT1}{ill}{} \DeclareRelationFont{JT1}{ill}{m}{}{OT1}{cmr}{m}{} \DeclareFontShape{JT1}{ill}{m}{n}{ <-> tfjillmaa}{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JT1gop.fd0000644000175000017500000000117507233465217020051 0ustar mohuramohura\ProvidesFile{jt1gop.fd}[1998/09/07 Karei Gothic (Vertical)] \DeclareKanjiFamily{JT1}{gop}{} \DeclareRelationFont{JT1}{gop}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JT1}{gop}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{gop}{sb}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{gop}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JT1}{gop}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JT1}{gop}{sl}{n}{ <-> tdfgopmaa }{} \DeclareFontShape{JT1}{gop}{m}{n}{ <-> tdfgoppaa }{} \DeclareFontShape{JT1}{gop}{sb}{n}{ <-> tdfgoppaa }{} \DeclareFontShape{JT1}{gop}{b}{n}{ <-> tdfgoppaa }{} \DeclareFontShape{JT1}{gop}{bx}{n}{ <-> tdfgoppaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JY1gop.fd0000644000175000017500000000117207233465171020052 0ustar mohuramohura\ProvidesFile{jy1gop.fd}[1998/09/07 Karei Gothic (Horizontal)] \DeclareKanjiFamily{JY1}{gop}{} \DeclareRelationFont{JY1}{gop}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JY1}{gop}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{gop}{sb}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{gop}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JY1}{gop}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JY1}{gop}{sl}{n}{ <-> dfgopmaa }{} \DeclareFontShape{JY1}{gop}{m}{n}{ <-> dfgoppaa }{} \DeclareFontShape{JY1}{gop}{sb}{n}{ <-> dfgoppaa }{} \DeclareFontShape{JY1}{gop}{b}{n}{ <-> dfgoppaa }{} \DeclareFontShape{JY1}{gop}{bx}{n}{ <-> dfgoppaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Fonts/JT1mip.fd0000644000175000017500000000117507233465054020050 0ustar mohuramohura\ProvidesFile{jt1mip.fd}[1998/09/07 Karei Mincho (Vertical)] \DeclareKanjiFamily{JT1}{mip}{} \DeclareRelationFont{JT1}{mip}{sl}{}{OT1}{cmr}{}{} \DeclareRelationFont{JT1}{mip}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{mip}{sb}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{mip}{b}{}{OT1}{cmr}{bx}{} \DeclareRelationFont{JT1}{mip}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JT1}{mip}{sl}{n}{ <-> tdfmipmaa }{} \DeclareFontShape{JT1}{mip}{m}{n}{ <-> tdfmippaa }{} \DeclareFontShape{JT1}{mip}{sb}{n}{ <-> tdfmippaa }{} \DeclareFontShape{JT1}{mip}{b}{n}{ <-> tdfmippaa }{} \DeclareFontShape{JT1}{mip}{bx}{n}{ <-> tdfmippaa }{} \endinput vflib3-3.6.14.dfsg/ascii-jtex/Test/0000755000175000017500000000000010270024401016231 5ustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Test/vflibcap-jtex0000644000175000017500000006045206661677215020753 0ustar mohuramohura;;; -*-Lisp-*- ;; ;; vflibcap for TeX, especially Japanese TeX by ASCII Coop ;; by h.kakugawa@computer.org ;; ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (extension-hints (".ttf" truetype) (".ttc" truetype) ("pk" TeX) ("pcf" pcf)) (implicit-font-classes truetype) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (variable-values (TeX_DPI "300") (TeX_USE_KPATHSEA "Yes") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "/usr/local/bin/xldvi")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv" "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv" "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv" "jisx0201_unicode.ccv" "jisx0208_unicode.ccv" "jisx0212_unicode.ccv" "ksc5601_unicode.ccv" "gb12345_unicode.ccv" "gb2312_unicode.ccv" "big5_unicode.ccv" "cns11643_unicode.ccv" "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv")) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*" "fj*" "tfj*" "df*" "tdf*" "rc*" "trc*") ((pk "%f.%dpk") (gf "%f.%dgf") *) ((vf "%f.%dvf") *) ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ;; sparcptr 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; VF Font Class Default ;; ----------------------------------------------------------------- (define-default vf (font-directories "TEXMF") (font-mapping ((type1 "%f.pfb" point-size-from-tfm) *) ) (open-style "try") ;; "none", "try", or "require" (glyph-style "fill")) ;; "fill", or "empty" ;; ----------------------------------------------------------------- ;; TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm (glyph-style "fill")) ;; ----------------------------------------------------------------- ;; ASCII-jTeX Kanji Font Class Default ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; TrueType Font Class Default ;; ----------------------------------------------------------------- (define-default truetype (font-directories "TEXMF" "/usr/local/share/fonts/FontCity2//" "/usr/local/share/fonts/DynaFont-Premium30/win95/futt//" "/usr/local/share/fonts/DynaFont-SpecialPack1/win95/futt//" "/usr/local/share/fonts/TrueTypeWorld-ValueFont141//") (point-size 10) (dpi 200) (properties ("FONT_CLASS" "TrueType")) ) ;; ----------------------------------------------------------------- ;; PCF Font Class Default ;; ----------------------------------------------------------------- (define-default pcf ;; font directories (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/fonts/X11//") ;; extensions of compressed font files that this font class supports (compression-extensions ".gz" ".Z") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "PCF")) ) ;; ----------------------------------------------------------------- ;; sample font definitions for Japanese TeX (define-font jtex-min (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "JIS") (dpi $TeX_DPI) (font-file "dfkaimd.ttc")) (define-font jtex-goth (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "JIS") (dpi $TeX_DPI) (font-file "dfkaisb.ttc")) (define-font jtex-tmin (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "JIS") (dpi $TeX_DPI) (font-file "dfkaimd.ttc") ) (define-font jtex-tgoth (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "JIS") (dpi $TeX_DPI) (font-file "dfkaisb.ttc")) (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 1.00) (metric-adjustment-file "/home/kakugawa/hack/TypeHack/TypeHack-Current/VFlib3/ascii-jtex/dfkaimd.adj") ) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 1.00) (metric-adjustment-file "/home/kakugawa/hack/TypeHack/TypeHack-Current/VFlib3/ascii-jtex/dfkaimd.adj") ) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 1.00) (metric-adjustment-file "/home/kakugawa/hack/TypeHack/TypeHack-Current/VFlib3/ascii-jtex/tdfkaimd.adj") ) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 1.00) (metric-adjustment-file "/home/kakugawa/hack/TypeHack/TypeHack-Current/VFlib3/ascii-jtex/tdfkaimd.adj") ) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) ;; ----------------------------------------------------------------- ;; non-standard Kanji fonts (define-macro jtex-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (metric-adjustment-file "f5ajchm3.adj")) (define-macro ttf-kanji-common (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "JIS") (dpi $TeX_DPI)) (define-font fjminmaa.jtex jtex-common (kanji-font fjminmaa)) (define-font fjminmaa ttf-kanji-common (font-file "f5ajcfm2.ttf")) (define-font fjminsaa.jtex jtex-common (kanji-font fjminsaa)) (define-font fjminsaa ttf-kanji-common (font-file "f5ajcfm8.ttf")) (define-font fjhsmmaa.jtex jtex-common (kanji-font fjhsmmaa)) (define-font fjhsmmaa ttf-kanji-common (font-file "f5ajchm3.ttf")) (define-font fjhsmraa.jtex jtex-common (kanji-font fjhsmraa)) (define-font fjhsmraa ttf-kanji-common (font-file "f5ajchm6.ttf")) (define-font fjhsmvaa.jtex jtex-common (kanji-font fjhsmvaa)) (define-font fjhsmvaa ttf-kanji-common (font-file "f5ajchm9.ttf")) (define-font fjgotmaa.jtex jtex-common (kanji-font fjgotmaa)) (define-font fjgotmaa ttf-kanji-common (font-file "f5ajcfg3.ttf")) (define-font fjgotpaa.jtex jtex-common (kanji-font fjgotpaa)) (define-font fjgotpaa ttf-kanji-common (font-file "f5ajcfg7.ttf")) (define-font fjgotsaa.jtex jtex-common (kanji-font fjgotsaa)) (define-font fjgotsaa ttf-kanji-common (font-file "f5ajcfg9.ttf")) (define-font fjgotxaa.jtex jtex-common (kanji-font fjgotxaa)) (define-font fjgotxaa ttf-kanji-common (font-file "f5ajcfgd.ttf")) (define-font fjhsgpaa.jtex jtex-common (kanji-font fjhsgpaa)) (define-font fjhsgpaa ttf-kanji-common (font-file "f5ajchg5.ttf")) (define-font fjhsgsaa.jtex jtex-common (kanji-font fjhsgsaa)) (define-font fjhsgsaa ttf-kanji-common (font-file "f5ajchg7.ttf")) (define-font fjhsgvaa.jtex jtex-common (kanji-font fjhsgvaa)) (define-font fjhsgvaa ttf-kanji-common (font-file "f5ajchg9.ttf")) (define-font fjmrgmaa.jtex jtex-common (kanji-font fjmrgmaa)) (define-font fjmrgmaa ttf-kanji-common (font-file "f5ajcfr3.ttf")) (define-font fjmrgpaa.jtex jtex-common (kanji-font fjmrgpaa)) (define-font fjmrgpaa ttf-kanji-common (font-file "f5ajcfr5.ttf")) (define-font fjmrgsaa.jtex jtex-common (kanji-font fjmrgsaa)) (define-font fjmrgsaa ttf-kanji-common (font-file "f5ajcfr7.ttf")) (define-font fjmrgxaa.jtex jtex-common (kanji-font fjmrgxaa)) (define-font fjmrgxaa ttf-kanji-common (font-file "f5ajcfrd.ttf")) (define-font fjhrgoaa.jtex jtex-common (kanji-font fjhrgoaa)) (define-font fjhrgoaa ttf-kanji-common (font-file "f5ajchr4.ttf")) (define-font fjashxaa.jtex jtex-common (kanji-font fjashxaa)) (define-font fjashxaa ttf-kanji-common (font-file "f5ajckrh.ttf")) (define-font fjkykmaa.jtex jtex-common (kanji-font fjkykmaa)) (define-font fjkykmaa ttf-kanji-common (font-file "f5ajcky1.ttf")) (define-font fjkykpaa.jtex jtex-common (kanji-font fjkykpaa)) (define-font fjkykpaa ttf-kanji-common (font-file "f5ajcky2.ttf")) (define-font fjfdkmaa.jtex jtex-common (kanji-font fjfdkmaa)) (define-font fjfdkmaa ttf-kanji-common (font-file "f5ajcfdk.ttf")) (define-font fjgykmaa.jtex jtex-common (kanji-font fjgykmaa)) (define-font fjgykmaa ttf-kanji-common (font-file "f5ajcgyk.ttf")) (define-font fjreipaa.jtex jtex-common (kanji-font fjreipaa)) (define-font fjreipaa ttf-kanji-common (font-file "f5ajcrei.ttf")) (define-font fjkedxaa.jtex jtex-common (kanji-font fjkedxaa)) (define-font fjkedxaa ttf-kanji-common (font-file "f5ajcked.ttf")) (define-font fjhigxaa.jtex jtex-common (kanji-font fjhigxaa)) (define-font fjhigxaa ttf-kanji-common (font-file "f5ajchig.ttf")) (define-font fjtrepaa.jtex jtex-common (kanji-font fjtrepaa)) (define-font fjtrepaa ttf-kanji-common (font-file "f5ajctre.ttf")) (define-font fjtkosaa.jtex jtex-common (kanji-font fjtkosaa)) (define-font fjtkosaa ttf-kanji-common (font-file "f5ajctko.ttf")) (define-font fjcpemaa.jtex jtex-common (kanji-font fjcpemaa)) (define-font fjcpemaa ttf-kanji-common (font-file "f5ajccpe.ttf")) (define-font fjhikmaa.jtex jtex-common (kanji-font fjhikmaa)) (define-font fjhikmaa ttf-kanji-common (font-file "f5ajchik.ttf")) (define-font fjmarpaa.jtex jtex-common (kanji-font fjmarpaa)) (define-font fjmarpaa ttf-kanji-common (font-file "f5ajcmar.ttf")) (define-font fjimapaa.jtex jtex-common (kanji-font fjimapaa)) (define-font fjimapaa ttf-kanji-common (font-file "f5ajci18.ttf")) (define-font fjimbmaa.jtex jtex-common (kanji-font fjimbmaa)) (define-font fjimbmaa ttf-kanji-common (font-file "f5ajci25.ttf")) (define-font fjimcraa.jtex jtex-common (kanji-font fjimcraa)) (define-font fjimcraa ttf-kanji-common (font-file "f5ajci3a.ttf")) (define-font fjimdsaa.jtex jtex-common (kanji-font fjimdsaa)) (define-font fjimdsaa ttf-kanji-common (font-file "f5ajci47.ttf")) (define-font fjimevaa.jtex jtex-common (kanji-font fjimevaa)) (define-font fjimevaa ttf-kanji-common (font-file "f5ajci5d.ttf")) (define-font dfhsmmaa.jtex jtex-common (kanji-font dfhsmmaa)) (define-font dfhsmmaa ttf-kanji-common (font-file "dfhsmw3.ttc")) (define-font dfhsmpaa.jtex jtex-common (kanji-font dfhsmpaa)) (define-font dfhsmpaa ttf-kanji-common (font-file "dfhsmw5.ttc")) (define-font dfhsmsaa.jtex jtex-common (kanji-font dfhsmsaa)) (define-font dfhsmsaa ttf-kanji-common (font-file "dfhsmw7.ttc")) (define-font dfhsmvaa.jtex jtex-common (kanji-font dfhsmvaa)) (define-font dfhsmvaa ttf-kanji-common (font-file "dfhsmw9.ttc")) (define-font dfminzaa.jtex jtex-common (kanji-font dfminzaa)) (define-font dfminzaa ttf-kanji-common (font-file "dfminub.ttc")) (define-font dfhsgmaa.jtex jtex-common (kanji-font dfhsgmaa)) (define-font dfhsgmaa ttf-kanji-common (font-file "dfhsgw3.ttc")) (define-font dfhsgpaa.jtex jtex-common (kanji-font dfhsgpaa)) (define-font dfhsgpaa ttf-kanji-common (font-file "dfhsgw5.ttc")) (define-font dfhsgsaa.jtex jtex-common (kanji-font dfhsgsaa)) (define-font dfhsgsaa ttf-kanji-common (font-file "dfhsgw7.ttc")) (define-font dfhsgvaa.jtex jtex-common (kanji-font dfhsgvaa)) (define-font dfhsgvaa ttf-kanji-common (font-file "dfhsgw9.ttc")) (define-font dfgotxaa.jtex jtex-common (kanji-font dfgotxaa)) (define-font dfgotxaa ttf-kanji-common (font-file "dfgoteb.ttc")) (define-font dfgotzaa.jtex jtex-common (kanji-font dfgotzaa)) (define-font dfgotzaa ttf-kanji-common (font-file "dfgotub.ttc")) (define-font dfhrgoaa.jtex jtex-common (kanji-font dfhrgoaa)) (define-font dfhrgoaa ttf-kanji-common (font-file "dfhsrw4.ttc")) (define-font dfmrgmaa.jtex jtex-common (kanji-font dfmrgmaa)) (define-font dfmrgmaa ttf-kanji-common (font-file "dfmrglt.ttc")) (define-font dfmrgpaa.jtex jtex-common (kanji-font dfmrgpaa)) (define-font dfmrgpaa ttf-kanji-common (font-file "dfmrgmd.ttc")) (define-font dfmrgsaa.jtex jtex-common (kanji-font dfmrgsaa)) (define-font dfmrgsaa ttf-kanji-common (font-file "dfmrgbd.ttc")) (define-font dfgyopaa.jtex jtex-common (kanji-font dfgyopaa)) (define-font dfgyopaa ttf-kanji-common (font-file "dfgyomd.ttc")) (define-font dfkaimaa.jtex jtex-common (kanji-font dfkaimaa)) (define-font dfkaimaa ttf-kanji-common (font-file "dfkailt.ttc")) (define-font dfkaipaa.jtex jtex-common (kanji-font dfkaipaa)) (define-font dfkaipaa ttf-kanji-common (font-file "dfkaimd.ttc")) (define-font dfkairaa.jtex jtex-common (kanji-font dfkairaa)) (define-font dfkairaa ttf-kanji-common (font-file "dfkaisb.ttc")) (define-font dfkaisaa.jtex jtex-common (kanji-font dfkaisaa)) (define-font dfkaisaa ttf-kanji-common (font-file "dfkaibd.ttc")) (define-font dfleipaa.jtex jtex-common (kanji-font dfleipaa)) (define-font dfleipaa ttf-kanji-common (font-file "dfleimd.ttc")) (define-font dfktrxaa.jtex jtex-common (kanji-font dfktrxaa)) (define-font dfktrxaa ttf-kanji-common (font-file "dfktrxb.ttc")) (define-font dfpopmaa.jtex jtex-common (kanji-font dfpopmaa)) (define-font dfpopmaa ttf-kanji-common (font-file "dfpopw3.ttc")) (define-font dfpoppaa.jtex jtex-common (kanji-font dfpoppaa)) (define-font dfpoppaa ttf-kanji-common (font-file "dfpopw5.ttc")) (define-font dfpopraa.jtex jtex-common (kanji-font dfpopraa)) (define-font dfpopraa ttf-kanji-common (font-file "dfpop1.ttc")) (define-font dfpopvaa.jtex jtex-common (kanji-font dfpopvaa)) (define-font dfpopvaa ttf-kanji-common (font-file "dfpopw9.ttc")) (define-font dfmrmpaa.jtex jtex-common (kanji-font dfmrmpaa)) (define-font dfmrmpaa ttf-kanji-common (font-file "dfmrmw3.ttc")) (define-font dfmrmmaa.jtex jtex-common (kanji-font dfmrmmaa)) (define-font dfmrmmaa ttf-kanji-common (font-file "dfmrmmd.ttc")) (define-font dfmrmsaa.jtex jtex-common (kanji-font dfmrmsaa)) (define-font dfmrmsaa ttf-kanji-common (font-file "dfmrmw7.ttc")) (define-font dfmrmvaa.jtex jtex-common (kanji-font dfmrmvaa)) (define-font dfmrmvaa ttf-kanji-common (font-file "dfmrmw9.ttc")) (define-font dfsokmaa.jtex jtex-common (kanji-font dfsokmaa)) (define-font dfsokmaa ttf-kanji-common (font-file "dfsokn3.ttc")) (define-font dfsgypaa.jtex jtex-common (kanji-font dfsgypaa)) (define-font dfsgypaa ttf-kanji-common (font-file "dfsgyo5.ttc")) (define-font dfgihsaa.jtex jtex-common (kanji-font dfgihsaa)) (define-font dfgihsaa ttf-kanji-common (font-file "dfgihi7.ttc")) (define-font dfkykmaa.jtex jtex-common (kanji-font dfkykmaa)) (define-font dfkykmaa ttf-kanji-common (font-file "dfkyks3.ttc")) (define-font dfkykoaa.jtex jtex-common (kanji-font dfkykoaa)) (define-font dfkykoaa ttf-kanji-common (font-file "dfkyks4.ttc")) (define-font dftlepaa.jtex jtex-common (kanji-font dftlepaa)) (define-font dftlepaa ttf-kanji-common (font-file "dftlei5.ttc")) (define-font dftlesaa.jtex jtex-common (kanji-font dftlesaa)) (define-font dftlesaa ttf-kanji-common (font-file "dftlei7.ttc")) (define-font dftlevaa.jtex jtex-common (kanji-font dftlevaa)) (define-font dftlevaa ttf-kanji-common (font-file "dftlei9.ttc")) (define-font dfrulpaa.jtex jtex-common (kanji-font dfrulpaa)) (define-font dfrulpaa ttf-kanji-common (font-file "dfrule5.ttc")) (define-font dfrulsaa.jtex jtex-common (kanji-font dfrulsaa)) (define-font dfrulsaa ttf-kanji-common (font-file "dfrule7.ttc")) (define-font dfsumzaa.jtex jtex-common (kanji-font dfsumzaa)) (define-font dfsumzaa ttf-kanji-common (font-file "dfsumoc.ttc")) (define-font dfkoioaa.jtex jtex-common (kanji-font dfkoioaa)) (define-font dfkoioaa ttf-kanji-common (font-file "dfkoin4.ttc")) (define-font dfsogpaa.jtex jtex-common (kanji-font dfsogpaa)) (define-font dfsogpaa ttf-kanji-common (font-file "dfsoge5.ttc")) (define-font dfsogsaa.jtex jtex-common (kanji-font dfsogsaa)) (define-font dfsogsaa ttf-kanji-common (font-file "dfsoge7.ttc")) (define-font dfsogvaa.jtex jtex-common (kanji-font dfsogvaa)) (define-font dfsogvaa ttf-kanji-common (font-file "dfsoge9.ttc")) (define-font rcgyopaa.jtex jtex-common (kanji-font rcgyopaa)) (define-font rcgyopaa ttf-kanji-common (font-file "hgrgysj.ttc")) (define-font rckykmaa.jtex jtex-common (kanji-font rckykmaa)) (define-font rckykmaa ttf-kanji-common (font-file "hgrkksj.ttc")) (define-font rckaipaa.jtex jtex-common (kanji-font rckaipaa)) (define-font rckaipaa ttf-kanji-common (font-file "hgrsksj.ttc")) (define-font rckkapaa.jtex jtex-common (kanji-font rckkapaa)) (define-font rckkapaa ttf-kanji-common (font-file "hgraksj.ttc")) (define-font rchkgpaa.jtex jtex-common (kanji-font rchkgpaa)) (define-font rchkgpaa ttf-kanji-common (font-file "hgrhkgsj.ttc")) (define-font rchkfsaa.jtex jtex-common (kanji-font rchkfsaa)) (define-font rchkfsaa ttf-kanji-common (font-file "hgrhkfsj.ttc")) (define-font rctfkpaa.jtex jtex-common (kanji-font rctfkpaa)) (define-font rctfkpaa ttf-kanji-common (font-file "hgrbfksj.ttf")) (define-font rctrepaa.jtex jtex-common (kanji-font rctrepaa)) (define-font rctrepaa ttf-kanji-common (font-file "hgrbresj.ttf")) (define-font rchagmaa.jtex jtex-common (kanji-font rchagmaa)) (define-font rchagmaa ttf-kanji-common (font-file "hgrhalsj.ttf")) (define-font rchagpaa.jtex jtex-common (kanji-font rchagpaa)) (define-font rchagpaa ttf-kanji-common (font-file "hgrhamsj.ttf")) (define-font rchagsaa.jtex jtex-common (kanji-font rchagsaa)) (define-font rchagsaa ttf-kanji-common (font-file "hgrhabsj.ttf")) (define-font rchagvaa.jtex jtex-common (kanji-font rchagvaa)) (define-font rchagvaa ttf-kanji-common (font-file "hgrhaesj.ttf")) (define-font rcckssaa.jtex jtex-common (kanji-font rcckssaa)) (define-font rcckssaa ttf-kanji-common (font-file "hgrcksj.ttc")) (define-font rcspnmaa.jtex jtex-common (kanji-font rcspnmaa)) (define-font rcspnmaa ttf-kanji-common (font-file "hgrpn1sj.ttc")) (define-font rchkpmaa.jtex jtex-common (kanji-font rchkpmaa)) (define-font rchkpmaa ttf-kanji-common (font-file "hgrhkpsj.ttc")) (define-font rcppkvaa.jtex jtex-common (kanji-font rcppkvaa)) (define-font rcppkvaa ttf-kanji-common (font-file "hgrpp1sj.ttc")) (define-font rcppmvaa.jtex jtex-common (kanji-font rcppmvaa)) (define-font rcppmvaa ttf-kanji-common (font-file "hgrpp2sj.ttc")) (define-font rcaguxaa.jtex jtex-common (kanji-font rcaguxaa)) (define-font rcaguxaa ttf-kanji-common (font-file "hgragusj.ttc")) (define-font rcashxaa.jtex jtex-common (kanji-font rcashxaa)) (define-font rcashxaa ttf-kanji-common (font-file "hgrashsj.ttf")) (define-font rcapfxaa.jtex jtex-common (kanji-font rcapfxaa)) (define-font rcapfxaa ttf-kanji-common (font-file "hgrapsj.ttf")) (define-font rcaplxaa.jtex jtex-common (kanji-font rcaplxaa)) (define-font rcaplxaa ttf-kanji-common (font-file "hgraplsj.ttf")) (define-font rcapsxaa.jtex jtex-common (kanji-font rcapsxaa)) (define-font rcapsxaa ttf-kanji-common (font-file "hgrapssj.ttf")) (define-font rckedxaa.jtex jtex-common (kanji-font rckedxaa)) (define-font rckedxaa ttf-kanji-common (font-file "hgrkrsj.ttc")) (define-font rcaegxaa.jtex jtex-common (kanji-font rcaegxaa)) (define-font rcaegxaa ttf-kanji-common (font-file "hgraesj.ttf")) (define-font rcadhxaa.jtex jtex-common (kanji-font rcadhxaa)) (define-font rcadhxaa ttf-kanji-common (font-file "hgradhsj.ttc")) (define-font rchigxaa.jtex jtex-common (kanji-font rchigxaa)) (define-font rchigxaa ttf-kanji-common (font-file "hgrah2sj.ttc")) (define-font rcakgxaa.jtex jtex-common (kanji-font rcakgxaa)) (define-font rcakgxaa ttf-kanji-common (font-file "hgrakgsj.ttc")) (define-font rccremaa.jtex jtex-common (kanji-font rccremaa)) (define-font rccremaa ttf-kanji-common (font-file "hgrcresj.ttc")) (define-font rccbkpaa.jtex jtex-common (kanji-font rccbkpaa)) (define-font rccbkpaa ttf-kanji-common (font-file "hgrcbsj.ttc")) (define-font rcamgvaa.jtex jtex-common (kanji-font rcamgvaa)) (define-font rcamgvaa ttf-kanji-common (font-file "hgramgsj.ttc")) (define-font rcaigxaa.jtex jtex-common (kanji-font rcaigxaa)) (define-font rcaigxaa ttf-kanji-common (font-file "hgraigsj.ttc")) (define-font rcaisxaa.jtex jtex-common (kanji-font rcaisxaa)) (define-font rcaisxaa ttf-kanji-common (font-file "hgraissj.ttc")) (define-font rctsexaa.jtex jtex-common (kanji-font rctsexaa)) (define-font rctsexaa ttf-kanji-common (font-file "hgrtsesj.ttc")) (define-font rchmnmaa.jtex jtex-common (kanji-font rchmnmaa)) (define-font rchmnmaa ttf-kanji-common (font-file "hgrhm3sj.ttc")) (define-font rchmnvaa.jtex jtex-common (kanji-font rchmnvaa)) (define-font rchmnvaa ttf-kanji-common (font-file "hgrhm9sj.ttc")) (define-font rchgopaa.jtex jtex-common (kanji-font rchgopaa)) (define-font rchgopaa ttf-kanji-common (font-file "hgrhg5sj.ttc")) (define-font rchgovaa.jtex jtex-common (kanji-font rchgovaa)) (define-font rchgovaa ttf-kanji-common (font-file "hgrhg9sj.ttc")) (define-font rchglvaa.jtex jtex-common (kanji-font rchglvaa)) (define-font rchglvaa ttf-kanji-common (font-file "hgrg9lsj.ttf")) (define-font rchgsvaa.jtex jtex-common (kanji-font rchgsvaa)) (define-font rchgsvaa ttf-kanji-common (font-file "hgrg9ssj.ttf")) (define-font rchrgoaa.jtex jtex-common (kanji-font rchrgoaa)) (define-font rchrgoaa ttf-kanji-common (font-file "hgrhr4sj.ttc")) ;; ----------------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Test/illust.tex0000644000175000017500000000214506661706017020314 0ustar mohuramohura\documentclass[a4paper]{jarticle} \input{../Fonts/jy1illust.fd} \begin{document} \kanjifamily{ill}\selectfont \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \end{document} vflib3-3.6.14.dfsg/ascii-jtex/Test/illust.dvi0000644000175000017500000000322006661706620020271 0ustar mohuramohura; TeX output 1999.02.15:1201yiƠGF fjillmaaʁ0!UU0"0#0$0%0&0'0(0)0*0+0,0-0.0/>00UU0102030405060708090:0;0<0=0>0?>2!UU2"2#2$2%2&2'2(2)2*2+2,2-2.2/>20UU2122232425262728292:2;2<2=2>2?>3!UU3"3#3$3%3&3'3(3)3*3+3,3-3.3/>30UU3132333435363738393:3;3<3=3>3?>5!UU5"5#5$5%5&5'5(5)5*5+5,5-5.5/>50UU5152535455565758595:5;5<5=5>5?>6!UU6"6#6$6%6&6'6(6)6*6+6,6-6.6/>60UU6162636465666768696:6;6<6=6>6?>7!UU7"7#7$7%7&7'7(7)7*7+7,7-7.7/>70UU7172737475767778797:7;7<7=7>7?>9!UU9"9#9$9%9&9'9(9)9*9+9,9-9.9/>90UU9192939495969798999:9;9<9=9>9?>:!UU:":#:$:%:&:':(:):*:+:,:-:.:/>:0UU:1:2:3:4:5:6:7:8:9:::;:<:=:>:?>;!UU;";#;$;%;&;';(;);*;+;,;-;.;/>;0UU;1;2;3;4;5;6;7;8;9;:;;;<;=;>;?><0UU<1<2<3<4<5<6<7<8<9<:<;<<<=<>> (char-code 0x2161 -0.28 0.00 ) ; = ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/tempty.adj0000644000175000017500000000141606661677215020046 0ustar mohuramohura; tempty.adj ; Shift the vecter to reference point for Japanese TeX by ASCII co. ; (Support for vertical writing) ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/tf5ajchg5.adj0000777000175000017500000000000010752610055022524 2tf5ajchm3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tf5ajchm3.adj0000644000175000017500000000546007006201042020262 0ustar mohuramohura; Fujitsu FontCity2 Heisei Series ; tf5ajchm{3,6,9}.adj ; tf5ajchg{5,7,9}.adj ; Metric adjustment file for Kanji TrueType font file. ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; char-type & delta ;-------------------------------------------------------- ; char-type delta-X delta-Y (char-type 0 -0.48 -0.75 ) ; Kanji (char-type 1 0.10 -0.35 ) ; Comma and Period (char-type 2 0.10 -0.35 ) ; Touten and Kuten (char-type 3 -0.40 -0.55 ) ; small Kana (char-type 4 -0.50 -0.85 ) ; ? and ! (char-type 5 -0.35 0.04 ) ; Zenkaku-Yakubutsu (char-type 6 -0.34 0.70 ) ; opening Kakko (char-type 7 -0.35 0.30 ) ; Nakatsuki-Yakubutsu (char-type 8 -0.34 -0.16 ) ; closing Kakko ;-------------------------------------------------------- ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2161 -0.33 0.02 ) ; chartype 0 (char-code 0x2161 -0.28 0.02 ) ; chartype 0 (char-code 0x213c -0.35 0.00 ) ; chartype 0 (char-code 0x2141 -0.30 0.00 ) ; chartype 0 (char-code 0x2133 -0.45 -0.65 ) ; chartype 3 (char-code 0x2134 -0.45 -0.70 ) ; chartype 3 (char-code 0x2135 -0.45 -0.65 ) ; chartype 3 (char-code 0x2136 -0.45 -0.70 ) ; chartype 3 (char-code 0x2137 -0.45 -0.65 ) ; chartype 3 (char-code 0x2139 -0.47 -0.60 ) ; chartype 3 (char-code 0x2126 -0.46 -0.53 ) ; chartype 7 (char-code 0x2146 -1.00 -0.70 ) ; chartype 6 (char-code 0x2147 0.00 -0.90 ) ; chartype 8 (char-code 0x2148 -0.90 -0.70 ) ; chartype 6 (char-code 0x2149 0.00 -1.00 ) ; chartype 8 (char-code 0x2154 -0.32 0.65 ) ; chartype 6 (char-code 0x2155 -0.32 -0.05 ) ; chartype 8 ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/tjg.adj0000644000175000017500000000511606661677216017312 0ustar mohuramohura; tjg.adj ; Shift the vecter to reference point for Japanese TeX by ASCII co. ; (Support for vertical writing) ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics bitmap-size) ;; "bitmap-size" or "design-size" ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; CharType delta-X delta-Y ;-------------------------------------------------------- (char-type 0 -0.50 -1.00 ) ; Kanji (char-type 1 0.05 -0.45 ) ; Comma and Period (char-type 2 0.05 -0.45 ) ; Touten and Kuten (char-type 3 -0.38 -0.77 ) ; small Kana (char-type 4 -0.50 -1.00 ) ; ? and ! (char-type 5 -0.50 -1.00 ) ; Zenkaku-Yakubutsu (char-type 6 -0.35 0.38 ) ; opening Kakko (char-type 7 -0.35 -0.72 ) ; Nakatsuki-Yakubutsu (char-type 8 -0.35 -0.08 ) ; closing Kakko ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2133 -0.50 -0.90 ) (char-code 0x2134 -0.50 -0.90 ) (char-code 0x2135 -0.50 -0.90 ) (char-code 0x2136 -0.50 -0.90 ) (char-code 0x2137 -0.50 -0.85 ) (char-code 0x2139 -0.50 -0.90 ) (char-code 0x213d -0.35 -0.10 ) (char-code 0x213e -0.35 0.20 ) (char-code 0x2144 -0.35 -0.10 ) (char-code 0x2145 -0.35 -0.10 ) (char-code 0x2142 -0.40 0.20 ) (char-code 0x2143 -0.40 0.20 ) (char-code 0x2146 -1.00 -1.00 ) (char-code 0x2148 -1.00 -1.00 ) (char-code 0x2147 0.00 -1.00 ) (char-code 0x2149 0.00 -1.00 ) (char-code 0x213c -0.40 -0.10 ) (char-code 0x2141 -0.40 -0.10 ) (char-code 0x2161 -0.40 -0.10 ) ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/tjiskan16.adj0000644000175000017500000000517207010461324020316 0ustar mohuramohura; tjiskan16.adj ; Metric adjustment file for "jiskan16.pcf" font file in X-Window. ; (Support for vertical writing) ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;; "bitmap-size" or "design-size" ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; CharType delta-X delta-Y ;-------------------------------------------------------- (char-type 0 -0.45 -0.78 ) ; Kanji (char-type 1 0.00 -0.30 ) ; Comma and Period (char-type 2 0.00 -0.30 ) ; Touten and Kuten (char-type 3 -0.38 -0.57 ) ; small Kana (char-type 4 -0.45 -0.80 ) ; ? and ! (char-type 5 -0.50 -1.00 ) ; Zenkaku-Yakubutsu (char-type 6 -0.34 0.48 ) ; opening Kakko (char-type 7 -0.40 -0.72 ) ; Nakatsuki-Yakubutsu (char-type 8 -0.34 -0.10 ) ; closing Kakko ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2126 -0.45 -0.60 ) (char-code 0x2133 -0.40 -0.71 ) (char-code 0x2134 -0.40 -0.71 ) (char-code 0x2135 -0.40 -0.71 ) (char-code 0x2136 -0.40 -0.71 ) (char-code 0x2137 -0.40 -0.64 ) (char-code 0x2139 -0.48 -0.65 ) (char-code 0x213d -0.35 -0.10 ) (char-code 0x213e -0.35 0.20 ) (char-code 0x2144 -0.35 -0.05 ) (char-code 0x2145 -0.35 -0.10 ) (char-code 0x2142 -0.40 0.20 ) (char-code 0x2143 -0.37 0.20 ) (char-code 0x2146 -0.85 -0.84 ) (char-code 0x2148 -0.80 -0.84 ) (char-code 0x2147 0.00 -0.90 ) (char-code 0x2149 0.00 -0.90 ) (char-code 0x213c -0.40 -0.10 ) (char-code 0x2141 -0.40 -0.10 ) (char-code 0x2161 -0.36 -0.10 ) ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/tjiskan24.adj0000644000175000017500000000517207010462114020313 0ustar mohuramohura; tjiskan24.adj ; Metric adjustment file for "jiskan24.pcf" font file in X-Window. ; (Support for vertical writing) ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;; "bitmap-size" or "design-size" ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; CharType delta-X delta-Y ;-------------------------------------------------------- (char-type 0 -0.45 -0.78 ) ; Kanji (char-type 1 0.00 -0.30 ) ; Comma and Period (char-type 2 0.00 -0.30 ) ; Touten and Kuten (char-type 3 -0.38 -0.57 ) ; small Kana (char-type 4 -0.45 -0.80 ) ; ? and ! (char-type 5 -0.50 -1.00 ) ; Zenkaku-Yakubutsu (char-type 6 -0.35 0.48 ) ; opening Kakko (char-type 7 -0.40 -0.72 ) ; Nakatsuki-Yakubutsu (char-type 8 -0.35 -0.10 ) ; closing Kakko ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2126 -0.45 -0.60 ) (char-code 0x2133 -0.40 -0.71 ) (char-code 0x2134 -0.40 -0.71 ) (char-code 0x2135 -0.40 -0.71 ) (char-code 0x2136 -0.40 -0.71 ) (char-code 0x2137 -0.40 -0.64 ) (char-code 0x2139 -0.48 -0.65 ) (char-code 0x213d -0.35 -0.10 ) (char-code 0x213e -0.35 0.20 ) (char-code 0x2144 -0.35 -0.05 ) (char-code 0x2145 -0.35 -0.10 ) (char-code 0x2142 -0.40 0.20 ) (char-code 0x2143 -0.37 0.20 ) (char-code 0x2146 -0.85 -0.84 ) (char-code 0x2148 -0.80 -0.84 ) (char-code 0x2147 0.00 -0.90 ) (char-code 0x2149 0.00 -0.90 ) (char-code 0x213c -0.40 -0.10 ) (char-code 0x2141 -0.40 -0.10 ) (char-code 0x2161 -0.36 -0.10 ) ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/tk14.adj0000644000175000017500000000516007010461436017270 0ustar mohuramohura; tk14.adj ; Metric adjustment file for "k14.pcf" font file in X-Window. ; (Support for vertical writing) ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;; "bitmap-size" or "design-size" ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; CharType delta-X delta-Y ;-------------------------------------------------------- (char-type 0 -0.45 -0.78 ) ; Kanji (char-type 1 0.00 -0.30 ) ; Comma and Period (char-type 2 0.00 -0.30 ) ; Touten and Kuten (char-type 3 -0.38 -0.57 ) ; small Kana (char-type 4 -0.45 -0.80 ) ; ? and ! (char-type 5 -0.50 -1.00 ) ; Zenkaku-Yakubutsu (char-type 6 -0.30 0.48 ) ; opening Kakko (char-type 7 -0.40 -0.72 ) ; Nakatsuki-Yakubutsu (char-type 8 -0.30 -0.10 ) ; closing Kakko ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2126 -0.45 -0.60 ) (char-code 0x2133 -0.40 -0.71 ) (char-code 0x2134 -0.40 -0.71 ) (char-code 0x2135 -0.40 -0.71 ) (char-code 0x2136 -0.40 -0.71 ) (char-code 0x2137 -0.40 -0.64 ) (char-code 0x2139 -0.48 -0.65 ) (char-code 0x213d -0.35 -0.10 ) (char-code 0x213e -0.35 0.20 ) (char-code 0x2144 -0.35 -0.05 ) (char-code 0x2145 -0.35 -0.10 ) (char-code 0x2142 -0.40 0.20 ) (char-code 0x2143 -0.37 0.20 ) (char-code 0x2146 -0.85 -0.84 ) (char-code 0x2148 -0.80 -0.84 ) (char-code 0x2147 0.00 -0.90 ) (char-code 0x2149 0.00 -0.90 ) (char-code 0x213c -0.40 -0.10 ) (char-code 0x2141 -0.40 -0.10 ) (char-code 0x2161 -0.36 -0.10 ) ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/tmincho.adj0000644000175000017500000000512006661677216020162 0ustar mohuramohura; tzeit.adj ; Shift the vecter to reference point for Japanese TeX by ASCII co. ; (Support for vertical writing) ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics bitmap-size) ;; "bitmap-size" or "design-size" ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; CharType delta-X delta-Y ;-------------------------------------------------------- (char-type 0 -0.50 -1.00 ) ; Kanji (char-type 1 0.05 -0.45 ) ; Comma and Period (char-type 2 0.05 -0.45 ) ; Touten and Kuten (char-type 3 -0.38 -0.77 ) ; small Kana (char-type 4 -0.50 -1.00 ) ; ? and ! (char-type 5 -0.50 -1.00 ) ; Zenkaku-Yakubutsu (char-type 6 -0.48 0.38 ) ; opening Kakko (char-type 7 -0.48 -0.72 ) ; Nakatsuki-Yakubutsu (char-type 8 -0.48 -0.08 ) ; closing Kakko ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2133 -0.50 -0.90 ) (char-code 0x2134 -0.50 -0.90 ) (char-code 0x2135 -0.50 -0.90 ) (char-code 0x2136 -0.50 -0.90 ) (char-code 0x2137 -0.50 -0.85 ) (char-code 0x2139 -0.50 -0.90 ) (char-code 0x213d -0.48 -0.10 ) (char-code 0x213e -0.48 0.20 ) (char-code 0x2144 -0.48 -0.10 ) (char-code 0x2145 -0.48 -0.10 ) (char-code 0x2142 -0.40 0.20 ) (char-code 0x2143 -0.40 0.20 ) (char-code 0x2146 -1.00 -1.00 ) (char-code 0x2148 -1.00 -1.00 ) (char-code 0x2147 0.00 -1.00 ) (char-code 0x2149 0.00 -1.00 ) (char-code 0x213c -0.40 -0.10 ) (char-code 0x2141 -0.40 -0.10 ) (char-code 0x2161 -0.40 -0.10 ) ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/tnone.adj0000644000175000017500000000272106661677216017650 0ustar mohuramohura; tnone.adj ; Shift the vecter to reference point for Japanese TeX by ASCII co. ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics bitmap-size) ;; "bitmap-size" or "design-size" ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; CharType delta-X delta-Y ;-------------------------------------------------------- (char-type 0 0.00 0.00 ) (char-type 1 0.00 0.00 ) (char-type 2 0.00 0.00 ) (char-type 3 0.00 0.00 ) (char-type 4 0.00 0.00 ) (char-type 5 0.00 0.00 ) (char-type 6 0.00 0.00 ) (char-type 7 0.00 0.00 ) (char-type 8 0.00 0.00 ) ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/dfmimp3.adj0000644000175000017500000000661407300522624020050 0ustar mohuramohura; DynaFont Kakou Series ; dfmimp{3,5}.adj ; dfgotp{2,3,5}.adj ; dfmim3_u.adj ; dfgot5_u.adj ; Metric adjustment file for Kanji TrueType font file. ; See minXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction ;-------------------------------------------------------- (direction horizontal) ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 -0.02) ;-------------------------------------------------------- ; char-type & delta ;-------------------------------------------------------- ; char-type delta-X delta-Y (char-type 0 0.00 0.00 ) ; e.g. 0x3131 (char-type 1 0.16 0.00 ) ; e.g. 0x214b (char-type 2 0.00 0.00 ) ; e.g. 0x212b (char-type 3 -0.08 0.00 ) ; e.g. 0x2136 (char-type 4 -0.30 0.00 ) ; e.g. 0x2126 (char-type 5 -0.20 0.00 ) ; e.g. 0x2129 (char-type 6 -0.70 0.00 ) ; e.g. 0x214a (char-type 7 0.05 0.00 ) ; e.g. 0x2384 (char-type 8 0.20 0.00 ) ; e.g. 0x2124 (char-type 9 0.20 0.00 ) ; e.g. 0x2122 (char-type 10 0.05 0.00 ) ; e.g. 0x23de (char-type 11 0.05 0.00 ) ; e.g. 0x23eb (char-type 12 0.00 0.00 ) ; e.g. 0x24ac ;-------------------------------------------------------- ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2133 -0.25 -0.10) ; char-type 5 (char-code 0x2134 -0.10 -0.10) ; char-type 3 (char-code 0x2135 -0.25 -0.10) ; char-type 3 (char-code 0x2136 -0.15 -0.10) ; char-type 3 (char-code 0x2137 -0.10 -0.10) ; char-type 3 (char-code 0x2139 -0.05 0.00) ; char-type 3 (char-code 0x2146 -0.43 0.00) ; char-type 4 (char-code 0x2147 -0.25 0.00) ; char-type 4 (char-code 0x2148 -0.43 0.00) ; char-type 4 (char-code 0x2149 -0.25 0.00) ; char-type 4 (char-code 0x214a -0.60 0.00) ; char-type 6 (char-code 0x214b 0.20 0.00) ; char-type 1 (char-code 0x2154 -0.60 0.00) ; char-type 1 (char-code 0x2156 -0.58 0.00) ; char-type 6 (char-code 0x2157 0.10 0.00) ; char-type 1 (char-code 0x2158 -0.58 0.00) ; char-type 6 (char-code 0x2159 0.10 0.00) ; char-type 1 (char-code 0x2169 -0.08 0.00) ; char-type 3 (char-code 0x216a -0.08 0.00) ; char-type 3 (char-code 0x2170 -0.08 0.00) ; char-type 3 (char-code 0x2171 -0.08 0.00) ; char-type 3 (char-code 0x2172 -0.08 0.00) ; char-type 3 (char-code 0x216b -0.05 0.00) ; char-type 5 (char-code 0x216c -0.05 0.00) ; char-type 5 (char-code 0x216d 0.00 0.00) ; char-type 5 (char-code 0x2430 -0.04 0.00) ; char-type 7 ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/asiya24.adj0000644000175000017500000000322206661677216017776 0ustar mohuramohura; asiya24.adj ; Shift the vecter to reference point for Japanese TeX by ASCII co. ; See minXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction ;-------------------------------------------------------- (direction horizontal) ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics bitmap-size) ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; CharType delta-X delta-Y ;-------------------------------------------------------- (char-type 0 0.00 0.00 ) ; e.g. 0x3131 (char-type 1 -0.15 0.00 ) ; e.g. 0x214b (char-type 2 0.00 0.00 ) ; e.g. 0x212b (char-type 3 -0.10 0.00 ) ; e.g. 0x2136 (char-type 4 -0.30 0.00 ) ; e.g. 0x2126 (char-type 5 -0.25 0.00 ) ; e.g. 0x2129 (char-type 6 -0.40 0.00 ) ; e.g. 0x214a (char-type 7 0.00 0.00 ) ; e.g. 0x2384 (char-type 8 0.00 0.00 ) ; e.g. 0x2124 (char-type 9 0.00 0.00 ) ; e.g. 0x2122 (char-type 10 0.00 0.00 ) ; e.g. 0x23de (char-type 11 0.00 0.00 ) ; e.g. 0x23eb (char-type 12 0.00 0.00 ) ; e.g. 0x24ac ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/mojik.adj0000644000175000017500000000326507014177750017631 0ustar mohuramohura; none.adj ; Shift the vecter to reference point for Japanese TeX by ASCII co. ; See minXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction ;-------------------------------------------------------- (direction horizontal) ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;; "bitmap-size" or "design-size" ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; CharType delta-X delta-Y ;-------------------------------------------------------- (char-type 0 0.00 0.00 ) ; e.g. 0x3131 (char-type 1 0.00 0.00 ) ; e.g. 0x214b (char-type 2 0.00 0.00 ) ; e.g. 0x212b (char-type 3 0.00 0.00 ) ; e.g. 0x2136 (char-type 4 0.00 0.00 ) ; e.g. 0x2126 (char-type 5 0.00 0.00 ) ; e.g. 0x2129 (char-type 6 0.00 0.00 ) ; e.g. 0x214a (char-type 7 0.00 0.00 ) ; e.g. 0x2384 (char-type 8 0.00 0.00 ) ; e.g. 0x2124 (char-type 9 0.00 0.00 ) ; e.g. 0x2122 (char-type 10 0.00 0.00 ) ; e.g. 0x23de (char-type 11 0.00 0.00 ) ; e.g. 0x23eb (char-type 12 0.00 0.00 ) ; e.g. 0x24ac ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/thgrhm3sj.adj0000644000175000017500000000532607006172523020423 0ustar mohuramohura; thgrhm{3,9}sj.adj ; thgrhg{5,9}sj.adj ; ; Metric adjustment file for Kanji TrueType font file. ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; char-type & delta ;-------------------------------------------------------- ; char-type delta-X delta-Y (char-type 0 -0.48 -0.75 ) ; Kanji (char-type 1 0.10 -0.35 ) ; Comma and Period (char-type 2 0.10 -0.35 ) ; Touten and Kuten (char-type 3 -0.40 -0.55 ) ; small Kana (char-type 4 -0.48 -0.85 ) ; ? and ! (char-type 5 -0.34 0.08 ) ; Zenkaku-Yakubutsu (char-type 6 -0.33 0.80 ) ; opening Kakko (char-type 7 -0.35 0.30 ) ; Nakatsuki-Yakubutsu (char-type 8 -0.33 -0.20 ) ; closing Kakko ;-------------------------------------------------------- ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x213c -0.35 0.00 ) ; chartype 0 (char-code 0x2141 -0.35 0.00 ) ; chartype 0 (char-code 0x2161 -0.32 0.02 ) ; chartype 0 (char-code 0x2133 -0.45 -0.65 ) ; chartype 3 (char-code 0x2134 -0.45 -0.70 ) ; chartype 3 (char-code 0x2135 -0.45 -0.65 ) ; chartype 3 (char-code 0x2136 -0.45 -0.70 ) ; chartype 3 (char-code 0x2137 -0.45 -0.65 ) ; chartype 3 (char-code 0x2139 -0.47 -0.60 ) ; chartype 3 (char-code 0x2126 -0.46 -0.53 ) ; chartype 7 (char-code 0x2146 -1.00 -0.70 ) ; chartype 6 (char-code 0x2147 0.00 -0.90 ) ; chartype 8 (char-code 0x2148 -0.90 -0.70 ) ; chartype 6 (char-code 0x2149 0.00 -1.00 ) ; chartype 8 (char-code 0x2154 -0.34 0.70 ) ; chartype 6 (char-code 0x2155 -0.34 -0.10 ) ; chartype 8 ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/dfhsmw3.adj0000644000175000017500000000660407006212170020056 0ustar mohuramohura; DynaFont Heisei Series ; dfhsmw{3,5,7,9}.adj ; dfhsgw{3,5,7,9}.adj ; dfhsrw4.adj ; ; Metric adjustment file for Kanji TrueType font file. ; See minXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction ;-------------------------------------------------------- (direction horizontal) ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.05) ;-------------------------------------------------------- ; char-type & delta ;-------------------------------------------------------- ; char-type delta-X delta-Y (char-type 0 0.00 0.00 ) ; e.g. 0x3131 (char-type 1 0.10 0.00 ) ; e.g. 0x214b (char-type 2 0.00 0.00 ) ; e.g. 0x212b (char-type 3 -0.08 0.00 ) ; e.g. 0x2136 (char-type 4 -0.30 0.00 ) ; e.g. 0x2126 (char-type 5 -0.20 0.00 ) ; e.g. 0x2129 (char-type 6 -0.70 0.00 ) ; e.g. 0x214a (char-type 7 0.05 0.00 ) ; e.g. 0x2384 (char-type 8 0.20 0.00 ) ; e.g. 0x2124 (char-type 9 0.20 0.00 ) ; e.g. 0x2122 (char-type 10 0.05 0.00 ) ; e.g. 0x23de (char-type 11 0.05 0.00 ) ; e.g. 0x23eb (char-type 12 0.00 0.00 ) ; e.g. 0x24ac ;-------------------------------------------------------- ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2133 -0.25 -0.10) ; char-type 5 (char-code 0x2134 -0.10 -0.10) ; char-type 3 (char-code 0x2135 -0.25 -0.10) ; char-type 3 (char-code 0x2136 -0.15 -0.10) ; char-type 3 (char-code 0x2137 -0.10 -0.10) ; char-type 3 (char-code 0x2139 -0.05 0.00) ; char-type 3 (char-code 0x2146 -0.43 0.00) ; char-type 4 (char-code 0x2147 -0.25 0.00) ; char-type 4 (char-code 0x2148 -0.43 0.00) ; char-type 4 (char-code 0x2149 -0.25 0.00) ; char-type 4 (char-code 0x214a -0.60 0.00) ; char-type 6 (char-code 0x214b 0.20 0.00) ; char-type 1 (char-code 0x2154 -0.60 0.00) ; char-type 1 (char-code 0x2156 -0.50 0.00) ; char-type 6 (char-code 0x2157 0.10 0.00) ; char-type 1 (char-code 0x2158 -0.50 0.00) ; char-type 6 (char-code 0x2159 0.10 0.00) ; char-type 1 (char-code 0x2169 -0.08 0.00) ; char-type 3 (char-code 0x216a -0.08 0.00) ; char-type 3 (char-code 0x2170 -0.08 0.00) ; char-type 3 (char-code 0x2171 -0.08 0.00) ; char-type 3 (char-code 0x2172 -0.08 0.00) ; char-type 3 (char-code 0x216b -0.05 0.00) ; char-type 5 (char-code 0x216c -0.05 0.00) ; char-type 5 (char-code 0x216d 0.00 0.00) ; char-type 5 (char-code 0x2430 -0.04 0.00) ; char-type 7 ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/hgrhm3sj.adj0000644000175000017500000000652707006172755020252 0ustar mohuramohura; hgrhm{3,9}sj.adj ; hgrhg{3,9}sj.adj ; ; Metric adjustment file for Kanji TrueType font file. ; See minXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction ;-------------------------------------------------------- (direction horizontal) ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; char-type & delta ;-------------------------------------------------------- ; char-type delta-X delta-Y (char-type 0 0.00 0.00 ) ; e.g. 0x3131 (char-type 1 0.10 0.00 ) ; e.g. 0x214b (char-type 2 0.00 0.00 ) ; e.g. 0x212b (char-type 3 -0.08 0.00 ) ; e.g. 0x2136 (char-type 4 -0.30 0.00 ) ; e.g. 0x2126 (char-type 5 -0.20 0.00 ) ; e.g. 0x2129 (char-type 6 -0.70 0.00 ) ; e.g. 0x214a (char-type 7 0.05 0.00 ) ; e.g. 0x2384 (char-type 8 0.20 0.00 ) ; e.g. 0x2124 (char-type 9 0.20 0.00 ) ; e.g. 0x2122 (char-type 10 0.05 0.00 ) ; e.g. 0x23de (char-type 11 0.05 0.00 ) ; e.g. 0x23eb (char-type 12 0.00 0.00 ) ; e.g. 0x24ac ;-------------------------------------------------------- ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2133 -0.25 -0.10) ; char-type 5 (char-code 0x2134 -0.10 -0.10) ; char-type 3 (char-code 0x2135 -0.25 -0.10) ; char-type 3 (char-code 0x2136 -0.15 -0.10) ; char-type 3 (char-code 0x2137 -0.10 -0.10) ; char-type 3 (char-code 0x2139 -0.05 0.00) ; char-type 3 (char-code 0x2146 -0.43 0.00) ; char-type 4 (char-code 0x2147 -0.25 0.00) ; char-type 4 (char-code 0x2148 -0.43 0.00) ; char-type 4 (char-code 0x2149 -0.25 0.00) ; char-type 4 (char-code 0x214a -0.60 0.00) ; char-type 6 (char-code 0x214b 0.20 0.00) ; char-type 1 (char-code 0x2154 -0.60 0.00) ; char-type 1 (char-code 0x2156 -0.50 0.00) ; char-type 6 (char-code 0x2157 0.10 0.00) ; char-type 1 (char-code 0x2158 -0.50 0.00) ; char-type 6 (char-code 0x2159 0.10 0.00) ; char-type 1 (char-code 0x2169 -0.08 0.00) ; char-type 3 (char-code 0x216a -0.08 0.00) ; char-type 3 (char-code 0x2170 -0.08 0.00) ; char-type 3 (char-code 0x2171 -0.08 0.00) ; char-type 3 (char-code 0x2172 -0.08 0.00) ; char-type 3 (char-code 0x216b -0.05 0.00) ; char-type 5 (char-code 0x216c -0.05 0.00) ; char-type 5 (char-code 0x216d 0.00 0.00) ; char-type 5 (char-code 0x2430 -0.04 0.00) ; char-type 7 ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfhsmw3.adj0000644000175000017500000000547007006176356020261 0ustar mohuramohura; DynaFont Heisei Series ; tdfhsmw{3,5,7,9}.adj ; tdfhsgw{3,5,7,9}.adj ; tdfhsrw4.adj ; Metric adjustment file for Kanji TrueType font file. ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; char-type & delta ;-------------------------------------------------------- ; char-type delta-X delta-Y (char-type 0 -0.48 -0.75 ) ; Kanji (char-type 1 0.10 -0.35 ) ; Comma and Period (char-type 2 0.10 -0.35 ) ; Touten and Kuten (char-type 3 -0.40 -0.55 ) ; small Kana (char-type 4 -0.50 -0.85 ) ; ? and ! (char-type 5 -0.29 0.04 ) ; Zenkaku-Yakubutsu (char-type 6 -0.27 0.70 ) ; opening Kakko (char-type 7 -0.30 0.30 ) ; Nakatsuki-Yakubutsu (char-type 8 -0.27 -0.20 ) ; closing Kakko ;-------------------------------------------------------- ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2161 -0.28 0.02 ) ; chartype 0 (char-code 0x2161 -0.28 0.02 ) ; chartype 0 (char-code 0x213c -0.35 0.00 ) ; chartype 0 (char-code 0x2141 -0.30 0.00 ) ; chartype 0 (char-code 0x2133 -0.45 -0.65 ) ; chartype 3 (char-code 0x2134 -0.45 -0.70 ) ; chartype 3 (char-code 0x2135 -0.45 -0.65 ) ; chartype 3 (char-code 0x2136 -0.45 -0.70 ) ; chartype 3 (char-code 0x2137 -0.45 -0.65 ) ; chartype 3 (char-code 0x2139 -0.47 -0.60 ) ; chartype 3 (char-code 0x2126 -0.46 -0.53 ) ; chartype 7 (char-code 0x2146 -1.00 -0.70 ) ; chartype 6 (char-code 0x2147 0.00 -0.90 ) ; chartype 8 (char-code 0x2148 -0.90 -0.70 ) ; chartype 6 (char-code 0x2149 0.00 -1.00 ) ; chartype 8 (char-code 0x2154 -0.27 0.55 ) ; chartype 6 (char-code 0x2155 -0.27 -0.05 ) ; chartype 8 ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/dfhsgw5.adj0000777000175000017500000000000010752610055022102 2dfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfhsgw5.adj0000777000175000017500000000000010752610055022452 2tdfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/thgrhm5sj.adj0000777000175000017500000000000010752610055023004 2thgrhm3sj.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfhsrw4.adj0000777000175000017500000000000010752610055022464 2tdfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/thgrhg5sj.adj0000777000175000017500000000000010752610055022776 2thgrhm3sj.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/hgrhg5sj.adj0000777000175000017500000000000010752610055022426 2hgrhm3sj.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/thgrhg9sj.adj0000777000175000017500000000000010752610055023002 2thgrhm3sj.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/hgrhm9sj.adj0000777000175000017500000000000010752610055022440 2hgrhm3sj.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/hgrhg9sj.adj0000777000175000017500000000000010752610055022432 2hgrhm3sj.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfhsmw5.adj0000777000175000017500000000000010752610055022110 2dfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfhsmw7.adj0000777000175000017500000000000010752610055022112 2dfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfhsmw9.adj0000777000175000017500000000000010752610055022114 2dfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfhsgw3.adj0000777000175000017500000000000010752610055022100 2dfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfhsgw7.adj0000777000175000017500000000000010752610055022104 2dfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfhsgw9.adj0000777000175000017500000000000010752610055022106 2dfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tf5ajchg7.adj0000777000175000017500000000000010752610055022526 2tf5ajchm3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfhsrw4.adj0000777000175000017500000000000010752610055022114 2dfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfhsmw9.adj0000777000175000017500000000000010752610055022464 2tdfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfhsgw9.adj0000777000175000017500000000000010752610055022456 2tdfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfhsmw7.adj0000777000175000017500000000000010752610055022462 2tdfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfhsgw3.adj0000777000175000017500000000000010752610055022450 2tdfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfhsgw7.adj0000777000175000017500000000000010752610055022454 2tdfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfhsmw5.adj0000777000175000017500000000000010752610055022460 2tdfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfmrmw3.adj0000644000175000017500000000650507006175576020104 0ustar mohuramohura; dfmrm3{3,7,9}.adj ; ; Metric adjustment file for Kanji TrueType font file. ; See minXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction ;-------------------------------------------------------- (direction horizontal) ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.04) ;-------------------------------------------------------- ; char-type & delta ;-------------------------------------------------------- ; char-type delta-X delta-Y (char-type 0 0.00 0.00 ) ; e.g. 0x3131 (char-type 1 0.10 0.00 ) ; e.g. 0x214b (char-type 2 0.00 0.00 ) ; e.g. 0x212b (char-type 3 -0.08 0.00 ) ; e.g. 0x2136 (char-type 4 -0.30 0.00 ) ; e.g. 0x2126 (char-type 5 -0.20 0.00 ) ; e.g. 0x2129 (char-type 6 -0.70 0.00 ) ; e.g. 0x214a (char-type 7 0.05 0.00 ) ; e.g. 0x2384 (char-type 8 0.20 0.00 ) ; e.g. 0x2124 (char-type 9 0.20 0.00 ) ; e.g. 0x2122 (char-type 10 0.05 0.00 ) ; e.g. 0x23de (char-type 11 0.05 0.00 ) ; e.g. 0x23eb (char-type 12 0.00 0.00 ) ; e.g. 0x24ac ;-------------------------------------------------------- ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2133 -0.25 -0.10) ; char-type 5 (char-code 0x2134 -0.10 -0.10) ; char-type 3 (char-code 0x2135 -0.25 -0.10) ; char-type 3 (char-code 0x2136 -0.15 -0.10) ; char-type 3 (char-code 0x2137 -0.10 -0.10) ; char-type 3 (char-code 0x2139 -0.05 0.00) ; char-type 3 (char-code 0x2146 -0.43 0.00) ; char-type 4 (char-code 0x2147 -0.25 0.00) ; char-type 4 (char-code 0x2148 -0.43 0.00) ; char-type 4 (char-code 0x2149 -0.25 0.00) ; char-type 4 (char-code 0x214a -0.60 0.00) ; char-type 6 (char-code 0x214b 0.20 0.00) ; char-type 1 (char-code 0x2154 -0.60 0.00) ; char-type 1 (char-code 0x2156 -0.50 0.00) ; char-type 6 (char-code 0x2157 0.10 0.00) ; char-type 1 (char-code 0x2158 -0.50 0.00) ; char-type 6 (char-code 0x2159 0.10 0.00) ; char-type 1 (char-code 0x2169 -0.08 0.00) ; char-type 3 (char-code 0x216a -0.08 0.00) ; char-type 3 (char-code 0x2170 -0.08 0.00) ; char-type 3 (char-code 0x2171 -0.08 0.00) ; char-type 3 (char-code 0x2172 -0.08 0.00) ; char-type 3 (char-code 0x216b -0.05 0.00) ; char-type 5 (char-code 0x216c -0.05 0.00) ; char-type 5 (char-code 0x216d 0.00 0.00) ; char-type 5 (char-code 0x2430 -0.04 0.00) ; char-type 7 ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/tf5ajchg9.adj0000777000175000017500000000000010752610055022530 2tf5ajchm3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfmrmw7.adj0000777000175000017500000000000010752610055022122 2dfmrmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfmrmw9.adj0000777000175000017500000000000010752610055022124 2dfmrmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfmrmw3.adj0000777000175000017500000000000010752610055022462 2tdfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfmrmw7.adj0000777000175000017500000000000010752610055022466 2tdfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfmrmw9.adj0000777000175000017500000000000010752610055022470 2tdfhsmw3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/mojkv.adj0000644000175000017500000000272507014177775017655 0ustar mohuramohura; tnone.adj ; Shift the vecter to reference point for Japanese TeX by ASCII co. ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;; "bitmap-size" or "design-size" ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all -0.48 -0.75) ;-------------------------------------------------------- ; CharType delta-X delta-Y ;-------------------------------------------------------- (char-type 0 0.00 0.00 ) (char-type 1 0.00 0.00 ) (char-type 2 0.00 0.00 ) (char-type 3 0.00 0.00 ) (char-type 4 0.00 0.00 ) (char-type 5 0.00 0.00 ) (char-type 6 0.00 0.00 ) (char-type 7 0.00 0.00 ) (char-type 8 0.00 0.00 ) ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/tf5ajchm7.adj0000777000175000017500000000000010752610055022534 2tf5ajchm3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tf5ajchm9.adj0000777000175000017500000000000010752610055022536 2tf5ajchm3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/f5ajchg7.adj0000777000175000017500000000000010752610055022156 2f5ajchm3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/f5ajchg9.adj0000777000175000017500000000000010752610055022160 2f5ajchm3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/f5ajchm6.adj0000777000175000017500000000000010752610055022163 2f5ajchm3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/f5ajchm9.adj0000777000175000017500000000000010752610055022166 2f5ajchm3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfgotp5.adj0000777000175000017500000000000010752610055022067 2dfmimp3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfgotp3.adj0000777000175000017500000000000010752610055022065 2dfmimp3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfgotp2.adj0000777000175000017500000000000010752610055022064 2dfmimp3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/dfmimp5.adj0000777000175000017500000000000010752610055022060 2dfmimp3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfmimp3.adj0000644000175000017500000000535607006217555020245 0ustar mohuramohura; DynaFont Kakou Series ; tdfmimp{3,5}.adj ; tdfgotp{2,3,5}.adj ; Metric adjustment file for Kanji TrueType font file. ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; char-type & delta ;-------------------------------------------------------- ; char-type delta-X delta-Y (char-type 0 -0.48 -0.75 ) ; Kanji (char-type 1 0.10 -0.30 ) ; Comma and Period (char-type 2 0.10 -0.30 ) ; Touten and Kuten (char-type 3 -0.40 -0.55 ) ; small Kana (char-type 4 -0.48 -0.85 ) ; ? and ! (char-type 5 -0.34 0.07 ) ; Zenkaku-Yakubutsu (char-type 6 -0.33 0.77 ) ; opening Kakko (char-type 7 -0.32 0.30 ) ; Nakatsuki-Yakubutsu (char-type 8 -0.33 -0.20 ) ; closing Kakko ;-------------------------------------------------------- ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2161 -0.33 0.02 ) ; chartype 0 (char-code 0x213c -0.35 0.00 ) ; chartype 0 (char-code 0x2141 -0.30 0.00 ) ; chartype 0 (char-code 0x2133 -0.45 -0.65 ) ; chartype 3 (char-code 0x2134 -0.45 -0.70 ) ; chartype 3 (char-code 0x2135 -0.45 -0.65 ) ; chartype 3 (char-code 0x2136 -0.45 -0.70 ) ; chartype 3 (char-code 0x2137 -0.45 -0.65 ) ; chartype 3 (char-code 0x2139 -0.47 -0.60 ) ; chartype 3 (char-code 0x2126 -0.46 -0.53 ) ; chartype 7 (char-code 0x2146 -1.10 -0.70 ) ; chartype 6 (char-code 0x2147 0.20 -0.90 ) ; chartype 8 (char-code 0x2148 -1.00 -0.70 ) ; chartype 6 (char-code 0x2149 0.10 -1.00 ) ; chartype 8 (char-code 0x2154 -0.32 0.66 ) ; chartype 6 (char-code 0x2155 -0.32 -0.05 ) ; chartype 8 ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfgotp5.adj0000777000175000017500000000000010752610055022437 2tdfmimp3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfgotp2.adj0000777000175000017500000000000010752610055022434 2tdfmimp3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfgotp3.adj0000777000175000017500000000000010752610055022435 2tdfmimp3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfmimp5.adj0000777000175000017500000000000010752610055022430 2tdfmimp3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/ekanji.adj0000644000175000017500000000334007026115757017755 0ustar mohuramohura; ekanji.adj ; See minXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;; "bitmap-size" or "design-size" ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; CharType delta-X delta-Y ;-------------------------------------------------------- (char-type 0 0.00 0.00 ) ; e.g. 0x3131 (char-type 1 -0.08 0.00 ) ; e.g. 0x214b (char-type 2 0.00 0.00 ) ; e.g. 0x212b (char-type 3 -0.10 0.00 ) ; e.g. 0x2136 (char-type 4 -0.30 0.00 ) ; e.g. 0x2126 (char-type 5 -0.20 0.00 ) ; e.g. 0x2129 (char-type 6 -0.45 0.00 ) ; e.g. 0x214a (char-type 7 -0.02 0.00 ) ; e.g. 0x2384 (char-type 8 0.00 0.00 ) ; e.g. 0x2124 (char-type 9 0.00 0.00 ) ; e.g. 0x2122 (char-type 10 0.00 0.00 ) ; e.g. 0x23de (char-type 11 0.00 0.00 ) ; e.g. 0x23eb (char-type 12 0.00 0.00 ) ; e.g. 0x24ac ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/dfmin3_u.adj0000777000175000017500000000000010752610055022223 2dfmimp3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tekanji.adj0000644000175000017500000000514407026116013020127 0ustar mohuramohura; tekanji.adj ; Metric adjustment file for eKanji font file. ; (Support for vertical writing) ; See tminXX.pl (or generete it by tftopl command) to see ; the relation between code point and char-type. ; Shift bitmap to right: give positive value for delta-X ; Shift bitmap to up: give positive value for delta-Y ;-------------------------------------------------------- ; Writing direction and Rotation semantics ;-------------------------------------------------------- (direction vertical) ;; "vertical" or "horizontal" (rotation-semantics ptex) ;; "ptex" or "jisx0208" ;-------------------------------------------------------- ; Semantics for delta-X and delta-Y ;-------------------------------------------------------- (semantics design-size) ;; "bitmap-size" or "design-size" ;-------------------------------------------------------- ; global shift ;-------------------------------------------------------- (char-all 0.00 0.00) ;-------------------------------------------------------- ; CharType delta-X delta-Y ;-------------------------------------------------------- (char-type 0 -0.45 -0.78 ) ; Kanji (char-type 1 0.00 -0.30 ) ; Comma and Period (char-type 2 0.00 -0.30 ) ; Touten and Kuten (char-type 3 -0.38 -0.57 ) ; small Kana (char-type 4 -0.45 -0.80 ) ; ? and ! (char-type 5 -0.50 -1.00 ) ; Zenkaku-Yakubutsu (char-type 6 -0.35 0.48 ) ; opening Kakko (char-type 7 -0.40 -0.72 ) ; Nakatsuki-Yakubutsu (char-type 8 -0.35 -0.10 ) ; closing Kakko ;-------------------------------------------------------- ; char-code and delta ; --- "char-type & delta" given above is overridden ;-------------------------------------------------------- ; char-code delta-X delta-Y (char-code 0x2126 -0.45 -0.60 ) (char-code 0x2133 -0.40 -0.71 ) (char-code 0x2134 -0.40 -0.71 ) (char-code 0x2135 -0.40 -0.71 ) (char-code 0x2136 -0.40 -0.71 ) (char-code 0x2137 -0.40 -0.64 ) (char-code 0x2139 -0.48 -0.65 ) (char-code 0x213d -0.35 -0.10 ) (char-code 0x213e -0.35 0.20 ) (char-code 0x2144 -0.35 -0.05 ) (char-code 0x2145 -0.35 -0.10 ) (char-code 0x2142 -0.40 0.20 ) (char-code 0x2143 -0.37 0.20 ) (char-code 0x2146 -0.85 -0.84 ) (char-code 0x2148 -0.80 -0.84 ) (char-code 0x2147 0.00 -0.90 ) (char-code 0x2149 0.00 -0.90 ) (char-code 0x213c -0.40 -0.10 ) (char-code 0x2141 -0.40 -0.10 ) (char-code 0x2161 -0.36 -0.10 ) ;-------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/ascii-jtex/Adj/dfgot5_u.adj0000777000175000017500000000000010752610055022233 2dfmimp3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfmin3_u.adj0000777000175000017500000000000010752610055022573 2tdfmimp3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Adj/tdfgot5_u.adj0000777000175000017500000000000010752610055022603 2tdfmimp3.adjustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/00_README0000644000175000017500000000133007020345357016505 0ustar mohuramohuraThis directory contains the following files that are related to Japanese TeX localized by ASCII Coop. *.adj --- Font metric adjustment files for using font files whose font metrics are different from Japanese fonts used by Japanese TeX. If you want to use many Japanese fonts, see what will happen if you run the following command sequence: % su (be a root user) # make install-jfm It copies min10.tfm to another so that we can use new TFM (JFM) files for Japanese fonts. A file 'flist-ja.txt' is a font list to install. You can modify it for your system. After you modify it, run % make update to update some files created from 'def.txt'. Then, run "make install-jfm" again. vflib3-3.6.14.dfsg/ascii-jtex/Makefile.in0000644000175000017500000000444207405120761017377 0ustar mohuramohuradefault: all all: fonts.lst fontsh.lst fontsc.lst include ../make-sub fonts.lst: def.dat -@rm -f fonts.* @./mkfonts.sh def.dat fonts fontsh.lst: defh.dat -@rm -f fontsh.* @./mkfonts.sh defh.dat fontsh fontsc.lst: defc.dat -@rm -f fontsc.* @./mkfontsc.sh defc.dat fontsc install: @echo "Installing ADJ files for Japanese TeX..." @if [ ! -d $(runtimedir)/$(subdir_ascii_jtex) ] ; then \ ../recmkdir $(runtimedir)/$(subdir_ascii_jtex); fi @for f in `echo Adj/*.adj`; do \ ../$(INSTALL_DATA) $$f $(runtimedir)/$(subdir_ascii_jtex); done install-jfm install-tfm: fonts.lst fontsh.lst fontsc.lst def.dat defh.dat @if [ ! -d $(runtimedir)/$(subdir_ascii_jtex)/Fonts ] ; then \ ../recmkdir $(runtimedir)/$(subdir_ascii_jtex)/Fonts; fi @for f in `echo Fonts/*.fd`; do \ ../$(INSTALL_DATA) $$f $(runtimedir)/$(subdir_ascii_jtex)/Fonts; \ done @if [ ! -d $(texmf_fonts_vflib) ] ; then \ ../recmkdir $(texmf_fonts_vflib); fi @if [ ! -d $(texmf_platex_vflib)/jisx0208 ] ; then \ ../recmkdir $(texmf_platex_vflib)/jisx0208; fi @if [ ! -d $(texmf_platex_vflib)/jisx0212 ] ; then \ ../recmkdir $(texmf_platex_vflib)/jisx0212; fi @echo "Installing JIS X 0208/0212 tfm, style files..."; @./inst.sh $(texmf_fonts_vflib) def.dat fonts.lst \ min10.tfm tmin10.tfm @./instc.sh $(texmf_fonts_vflib) defc.dat fontsc.lst \ min10.tfm tmin10.tfm @for f in `echo HojoKanji/*.tfm`; do \ ../$(INSTALL_DATA) $$f $(texmf_fonts_vflib); \ done @for f in `echo Fonts/*.fd Fonts/*.sty`; do \ ../$(INSTALL_DATA) $$f $(texmf_platex_vflib)/jisx0208; \ done @for f in `(cd HojoKanji; echo *.sty *.tex *.fd 00README)`; do \ ../$(INSTALL_DATA) HojoKanji/$$f $(texmf_platex_vflib)/jisx0212; \ done mktexlsr uninstall: -$(RM) $(runtimedir)/$(subdir_ascii_jtex)/Fonts/* -$(RMDIR) $(runtimedir)/$(subdir_ascii_jtex)/Fonts -$(RM) $(runtimedir)/$(subdir_ascii_jtex)/* -$(RMDIR) $(runtimedir)/$(subdir_ascii_jtex) uninstall-jfm uninstall-tfm: -$(RM) $(texmf_fonts_vflib)/fd/* $(texmf_fonts_vflib)/* -$(RMDIR) $(texmf_fonts_vflib)/fd $(texmf_fonts_vflib) -$(RMDIR) $(texmf_fonts_vflib) -$(RM) $(texmf_platex_vflib)/* -$(RMDIR) $(texmf_platex_vflib) clean veryclean distclean:: -$(RM) */*~ *~ -$(RM) fonts.tex fonts.lst -$(RM) fontsh.tex fontsh.lst #EOF vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/0000755000175000017500000000000007273444714017214 5ustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/mkhojo.sh0000755000175000017500000000227406665730634021052 0ustar mohuramohura#!/bin/sh # mkhojo.sh # --- make TFM files for Hojo Kanji (JISX0212) fonts. # # by H. Kakugawa FONTS="minh:hojo.pl:MINCHO:0 gothh:hojo.pl:GOTHIC:2 \ tminh:hojot.pl:MINCHO:MRR tgothh:hojot.pl:GOTHIC:BRR" POINTS="5 6 7 8 9 10" case $# in 0) ;; *) case $1 in -h|--help|-*) echo "mkhojo.sh" >&2 echo " - A shell script to make JFM (TFM) files for JISX0212" >&2 echo " (Hojo Kanji) character set. All Kanji characters are the" >&2 echo " same size and no kernings between characters." >&2 exit 1 ;; esac ;; esac for f in ${FONTS}; do font=`echo $f | sed 's/^\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\)$/\1/g'` srcf=`echo $f | sed 's/^\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\)$/\2/g'` fami=`echo $f | sed 's/^\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\)$/\3/g'` face=`echo $f | sed 's/^\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\)$/\4/g'` echo "Making ${font}..." for p in ${POINTS}; do PL=${font}${p}.pl TFM=${font}${p}.tfm cat ${srcf} \ |sed "s/@FAMILY@/${fami}/g" \ | sed "s/@FACE@/${face}/g" \ | sed "s/@SIZE@/${p}/g" \ | cat > ${PL} pltotf ${PL} ${TFM} >/dev/null rm -f ${PL} done done echo "done." #EOF vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/JY2gt.fd0000644000175000017500000000055606762434704020474 0ustar mohuramohura%% JY2gt.fd \ProvidesFile{JY2gt.fd} [1999/08/30 by H. Kakugawa] \DeclareKanjiFamily{JY2}{gt}{} \DeclareRelationFont{JY2}{gt}{m}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JY2}{gt}{m}{n}{<5> <6> <7> <8> <9> <10> sgen*gothh <10.95><12><14.4><17.28><20.74><24.88> gothh10 <-> gothh10 }{} \DeclareFontShape{JY2}{gt}{bx}{n}{<->ssub*gt/m/n}{} \endinput %% EOF vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/jisx0212.sty0000644000175000017500000000171406762435462021244 0ustar mohuramohura%%% Hojo Kanji Character Set (JISX0212) %%% by Hirotsugu Kakugawa %%% %%% Tested on : %%% pLaTeX2e <1998/02/17>+0 (based on LaTeX2e <1997/12/01> patch level 1) %%% \NeedsTeXFormat{pLaTeX2e} \DeclareKanjiEncodingDefaults{}{} \DeclareYokoKanjiEncoding{JY2}{}{} \DeclareKanjiSubstitution{JY2}{mc}{m}{n} \DeclareErrorKanjiFont{JY2}{mc}{m}{n}{10} \DeclareTateKanjiEncoding{JT2}{}{} \DeclareKanjiSubstitution{JT2}{mc}{m}{n} \DeclareErrorKanjiFont{JT2}{mc}{m}{n}{10} \DeclareFontSubstitution{JY2}{mc}{m}{n} \DeclareFontSubstitution{JY2}{gt}{m}{n} \DeclareFontSubstitution{JT2}{mc}{m}{n} \DeclareFontSubstitution{JT2}{gt}{m}{n} \newenvironment{jisx0208}{% \def\cy@encoding{JY1}\def\ct@encoding{JT1}\kanjiencoding{JY1}\selectfont}{} \newenvironment{jisx0212}{\def\cy@encoding{JY2}\def\ct@encoding{JT2}% \kanjiencoding{JY2}\selectfont}{} \newcommand{\HojoKanji}[1]{\def\cy@encoding{JY2}\def\ct@encoding{JT2}% \begingroup\kanjiencoding{JY2}\selectfont#1\endgroup} %% EOF vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/sample.tex0000644000175000017500000000052406762427224021217 0ustar mohuramohura\documentclass{jarticle} \usepackage{jisx0212} \def\TEXT{\char\jis"3021\char\jis"3022\char\jis"3023\char\jis"3024} \begin{document} \begin{itemize} \item JISX0208: \TEXT \item JISX0208: \begin{jisx0208}\TEXT\end{jisx0208} \item JISX0212: \begin{jisx0212}\TEXT\end{jisx0212} \item JISX0212: \HojoKanji{\TEXT} \end{itemize} \end{document} vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/jt2gt.sty0000644000175000017500000000022406762427061021003 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jt2gt}[1999/08/30] \renewcommand{\encodingdefault}{JT2} \DeclareFontSubstitution{JT2}{gt}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/Makefile0000644000175000017500000000035406762434462020657 0ustar mohuramohuraPLATEX2E=platex .SUFFIXES: .tex .dvi .tfm .pl all: sample.dvi tfm jfm: ./mkhojo.sh sample.dvi: sample.tex $(PLATEX2E) sample.tex clean veryclean distclean: -rm -f *.aux *.log *.core core *~ allclean: clean -rm -f *.dvi *.tfm vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/sample.dvi0000644000175000017500000000101406666406063021175 0ustar mohuramohura; TeX output 1999.03.01:1241yiƠM !", cmsy10WK`y cmr10JISX0208:q min100!0"0#0$MWJISX0208:qǹ0!0"0#0$MWJISX0212:q minh10ʁ0!0"0#0$MWJISX0212:qʁ0!0"0#0$1*; minh10 min10 !", cmsy10K`y cmr10vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/00README0000644000175000017500000000167006762426656020247 0ustar mohuramohuraUsing Hojo Kanji (JISX0212, Supplementary Kanji) for pLaTeX2e by H. Kakugawa hojo.pl, hojot.pl - Template PL files for horizontal and vertical writing directionarities. minh?.tfm, gothh?.tfm - TFM files for Mincho and Gothic fonts, generated from 'hojo.pl'. tminh?.tfm, tgothh?.tfm - TFM files for Mincho and Gothic fonts, generated from 'hojot.pl'. mkhojo.sh - A shell script to generate TFM files from 'hojo.pl' and 'hojot.pl'. jisx0212.sty - A style file for using Hojo Kanji. Following commands are defined: * \begin{jisx0212} ...text... \end{jisx0212} * \HojoKanji{...text...} See 'sample.tex' for an example. jy2mc.fd, jy2gt.fd, jt2mc.fd, jt2gt.fd - Font definition files. (These files are used in 'jisx0208.sty'.) sample.tex - A sample document file to use Hojo Kanji. See http://www.ascii.co.jp/pb/ptex/ for pLaTeX, a localized LaTeX2e system for Japanese text. vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/minh5.tfm0000644000175000017500000000025406666406072020745 0ustar mohuramohura + PJISX0212MINCHOe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/minh6.tfm0000644000175000017500000000025406666406072020746 0ustar mohuramohura + `JISX0212MINCHOe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/minh7.tfm0000644000175000017500000000025406666406072020747 0ustar mohuramohura + pJISX0212MINCHOe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/minh8.tfm0000644000175000017500000000025406666406073020751 0ustar mohuramohura + JISX0212MINCHOe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/minh9.tfm0000644000175000017500000000025406666406073020752 0ustar mohuramohura + JISX0212MINCHOe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/minh10.tfm0000644000175000017500000000025406666406073021022 0ustar mohuramohura + JISX0212MINCHOe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/gothh5.tfm0000644000175000017500000000025406666406073021124 0ustar mohuramohura + PJISX0212GOTHICe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/gothh6.tfm0000644000175000017500000000025406666406073021125 0ustar mohuramohura + `JISX0212GOTHICe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/JY2mc.fd0000644000175000017500000000062607233465532020454 0ustar mohuramohura%% JY2mc.fd \ProvidesFile{JY2mc.fd}[1999/08/30 by H. Kakugawa] \DeclareKanjiFamily{JY2}{mc}{} \DeclareRelationFont{JY2}{mc}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY2}{mc}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JY2}{mc}{m}{n}{<5> <6> <7> <8> <9> <10> sgen*minh <10.95><12><14.4><17.28><20.74><24.88> minh10 <-> minh10 }{} \DeclareFontShape{JY2}{mc}{bx}{n}{<->ssub*gt/m/n}{} \endinput %% EOF vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/JT2mc.fd0000644000175000017500000000063307233465540020444 0ustar mohuramohura%% JT2mc.fd \ProvidesFile{JT2mc.fd}[1999/08/30 by H. Kakugawa] \DeclareKanjiFamily{JT2}{mc}{} \DeclareRelationFont{JT2}{mc}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT2}{mc}{bx}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JT2}{mc}{m}{n}{<5> <6> <7> <8> <9> <10> sgen*tminh <10.95><12><14.4><17.28><20.74><24.88> tminh10 <-> tminh10 }{} \DeclareFontShape{JT2}{mc}{bx}{n}{<->ssub*gt/m/n}{} \endinput %% EOF vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/gothh7.tfm0000644000175000017500000000025406666406073021126 0ustar mohuramohura + pJISX0212GOTHICe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/gothh8.tfm0000644000175000017500000000025406666406073021127 0ustar mohuramohura + JISX0212GOTHICe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/gothh9.tfm0000644000175000017500000000025406666406073021130 0ustar mohuramohura + JISX0212GOTHICe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/hojot.pl0000644000175000017500000000144506665730143020676 0ustar mohuramohura(COMMENT THIS IS A KANJI FORMAT FILE) (COMMENT THIS IS A METRIC FILE FOR A HOJO KANJI JISX0212 FONT) (COMMENT * ALL CHARCTERS ARE THE SAME SIZE) (COMMENT * NO KERNINGS) (COMMENT * TATE KUMI) (COMMENT THIS IS A KANJI FORMAT FILE) (DIRECTION TATE) (FAMILY @FAMILY@) (FACE O @FACE@) (CODINGSCHEME JISX0212) (DESIGNSIZE R @SIZE@) (COMMENT DESIGNSIZE IS IN POINTS) (COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) (CHECKSUM O 35147750366) (SEVENBITSAFEFLAG TRUE) (FONTDIMEN (SLANT R 0.0) (SPACE R 0.0) (STRETCH R 0.091641) (SHRINK R 0.0) (XHEIGHT R 0.916443) (QUAD R 0.962216) (EXTRASPACE R 0.229101) (EXTRASTRETCH R 0.183283) (EXTRASHRINK R 0.114551)) (COMMENT ALL CHARCTERS ARE TYPE 0) (TYPE O 0 (CHARWD R 0.962216) (CHARHT R 0.458221) (CHARDP R 0.458221)) (COMMENT END) vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/hojo.pl0000644000175000017500000000127106665730140020504 0ustar mohuramohura(COMMENT THIS IS A KANJI FORMAT FILE) (COMMENT THIS IS A METRIC FILE FOR A HOJO KANJI JISX0212 FONT) (COMMENT * ALL CHARCTERS ARE THE SAME SIZE) (COMMENT * NO KERNINGS) (FAMILY @FAMILY@) (FACE O @FACE@) (CODINGSCHEME JISX0212) (DESIGNSIZE R @SIZE@) (COMMENT DESIGNSIZE IS IN POINTS) (COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) (CHECKSUM O 0) (FONTDIMEN (SLANT R 0.0) (SPACE R 0.0) (STRETCH R 0.091641) (SHRINK R 0.0) (XHEIGHT R 0.916443) (QUAD R 0.962216) (EXTRASPACE R 0.229101) (PARAMETER D 8 R 0.183283) (PARAMETER D 9 R 0.114551)) (COMMENT ALL CHARCTERS ARE TYPE 0) (TYPE O 0 (CHARWD R 0.962216) (CHARHT R 0.777588) (CHARDP R 0.138855)) (COMMENT END) vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/gothh10.tfm0000644000175000017500000000025406666406074021201 0ustar mohuramohura + JISX0212GOTHICe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/tminh5.tfm0000644000175000017500000000025406666406074021133 0ustar mohuramohura + PJISX0212MINCHOe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/tminh6.tfm0000644000175000017500000000025406666406074021134 0ustar mohuramohura + `JISX0212MINCHOe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/tminh7.tfm0000644000175000017500000000025406666406074021135 0ustar mohuramohura + pJISX0212MINCHOe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/tminh8.tfm0000644000175000017500000000025406666406074021136 0ustar mohuramohura + JISX0212MINCHOe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/tminh9.tfm0000644000175000017500000000025406666406074021137 0ustar mohuramohura + JISX0212MINCHOe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/tminh10.tfm0000644000175000017500000000025406666406074021207 0ustar mohuramohura + JISX0212MINCHOe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/tgothh5.tfm0000644000175000017500000000025406666406075021312 0ustar mohuramohura + PJISX0212GOTHICe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/tgothh6.tfm0000644000175000017500000000025406666406075021313 0ustar mohuramohura + `JISX0212GOTHICe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/tgothh7.tfm0000644000175000017500000000025406666406075021314 0ustar mohuramohura + pJISX0212GOTHICe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/tgothh8.tfm0000644000175000017500000000025406666406075021315 0ustar mohuramohura + JISX0212GOTHICe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/tgothh9.tfm0000644000175000017500000000025406666406075021316 0ustar mohuramohura + JISX0212GOTHICe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/tgothh10.tfm0000644000175000017500000000025406666406075021366 0ustar mohuramohura + JISX0212GOTHICe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/JT2gt.fd0000644000175000017500000000056106762434670020465 0ustar mohuramohura%% JT2gt.fd \ProvidesFile{JT2gt.fd} [1999/08/30 by H. Kakugawa] \DeclareKanjiFamily{JT2}{gt}{} \DeclareRelationFont{JT2}{gt}{m}{}{OT1}{cmr}{bx}{} \DeclareFontShape{JT2}{gt}{m}{n}{<5> <6> <7> <8> <9> <10> sgen*tgothh <10.95><12><14.4><17.28><20.74><24.88> tgothh10 <-> tgothh10 }{} \DeclareFontShape{JT2}{gt}{bx}{n}{<->ssub*gt/m/n}{} \endinput %% EOF vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/jt2mc.sty0000644000175000017500000000022406762427103020765 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jt2mc}[1999/08/30] \renewcommand{\encodingdefault}{JT2} \DeclareFontSubstitution{JT2}{mc}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/jy2mc.sty0000644000175000017500000000022406762427161020776 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jy2mc}[1999/08/30] \renewcommand{\encodingdefault}{JY2} \DeclareFontSubstitution{JY2}{mc}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/HojoKanji/jy2gt.sty0000644000175000017500000000022406762427157021016 0ustar mohuramohura\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jy2gt}[1999/08/30] \renewcommand{\encodingdefault}{JY2} \DeclareFontSubstitution{JY2}{gt}{m}{n} \endinput vflib3-3.6.14.dfsg/ascii-jtex/def.dat0000644000175000017500000002346610267653036016577 0ustar mohuramohura#(This file contains Japanese character set JISX0208.) # # Optional Japanese Kanji Font (JISX0208) List # The following is a list of Japanese Kanji font files in TrueType format # # L M B E H # W: 3 4 5 6 7 8 9 10 11 12 # m o p s v x z # FONT-NAME FILE-NAME TeX-FONT-NAME ### ٻ FontCity 2 īL f5ajcfm2.ttf fjminmaa īB f5ajcfm8.ttf fjminsaa ʿī f5ajchm3.ttf fjhsmmaa ʿī f5ajchm6.ttf fjhsmraa ʿī f5ajchm9.ttf fjhsmvaa åL f5ajcfg3.ttf fjgotmaa åM f5ajcfg7.ttf fjgotpaa åB f5ajcfg9.ttf fjgotsaa åH f5ajcfgd.ttf fjgotxaa ʿѥå f5ajchg5.ttf fjhsgpaa ʿå f5ajchg7.ttf fjhsgsaa ʿѥå f5ajchg9.ttf fjhsgvaa ݥåL f5ajcfr3.ttf fjmrgmaa ݥåM f5ajcfr5.ttf fjmrgpaa ݥåB f5ajcfr7.ttf fjmrgsaa ݥåH f5ajcfrd.ttf fjmrgxaa ʿݥå f5ajchr4.ttf fjhrgoaa ŤʹݥåH f5ajckrh.ttf fjashxaa ʽL f5ajcky1.ttf fjkykmaa ʽM f5ajcky2.ttf fjkykpaa դܴ f5ajcfdk.ttf fjfdkmaa ܴ f5ajcgyk.ttf fjgykmaa f5ajcrei.ttf fjreipaa ήʸ f5ajcked.ttf fjkedxaa Ҥʸ f5ajchig.ttf fjhigxaa ⶶ f5ajctre.ttf fjtrepaa øŰ f5ajctko.ttf fjtkosaa եڥ f5ajccpe.ttf fjcpemaa ɮ f5ajchik.ttf fjhikmaa ޤʸ f5ajcmar.ttf fjmarpaa 108 f5ajci18.ttf fjimapaa 205 f5ajci25.ttf fjimbmaa 310 f5ajci3a.ttf fjimcraa 407 f5ajci47.ttf fjimdsaa 513 f5ajci5d.ttf fjimevaa FC饹 f5ajcsxx.ttf fjcsxmaa ʽ01 f5ajck01.ttf fjkanaxa ʽ02 f5ajck02.ttf fjkanaxb ʽ03 f5ajck03.ttf fjkanaxc ʽ04 f5ajck04.ttf fjkanaxd ʽ05 f5ajck05.ttf fjkanaxe ʽ06 f5ajck06.ttf fjkanaxf ʽ07 f5ajck07.ttf fjkanaxg ʽ08 f5ajck08.ttf fjkanaxh ʽ09 f5ajck09.ttf fjkanaxi ʽ10 f5ajck10.ttf fjkanaxj ʽ11 f5ajck11.ttf fjkanaxk ʽ12 f5ajck12.ttf fjkanaxl ʽ13 f5ajck13.ttf fjkanaxm ʽ14 f5ajck14.ttf fjkanaxn ʽ15 f5ajck15.ttf fjkanaxo ʽ16 f5ajck16.ttf fjkanaxp ʽ17 f5ajck17.ttf fjkanaxq ʽ18 f5ajck18.ttf fjkanaxr ʽ19 f5ajck19.ttf fjkanaxs ʽ20 f5ajck20.ttf fjkanaxt ### DynaFont Type Museum DFPW5 dfsht5.ttc dfshtpaa DFPW7 dfsht7.ttc dfshtsaa DFPW5 dfoyj5.ttc dfoyjpaa DFPζW9 dfrys9.ttc dfrysvaa DFPW7 dfgsk7.ttc dfgsksaa DFPܴW7 dfskai7.ttc dfskasaa DFPĶܴ dfkaie.ttc dfkaizaa DFPʸW3 dfkbt3.ttc dfkbtmaa DFPեƸW3 dfcrd3.ttc dfcrdmaa DFPե꡼ήW3 dffrs3.ttc dffrsmaa DCPW3 dchlei5.ttc dfhlepaa DCPܴW5 dclkai5.ttc dflkapaa DCPʸW12 dckgmc.ttc dfkgmzaa DCPҤʸW5 dchgm5.ttc dfhgmpaa DCPʸW7 dcysm7.ttc dfysmsaa DCPW5 dcai5.ttc dfainpaa DCP饤W5 dcail5.ttc dfailpaa DCPɡW5 dcais5.ttc dfaispaa DCPꥹW5 dccry5.ttc dfcrypaa DCP饤W5 dcinl5.ttc dfinlpaa DFPī dfminc.ttc1 dfminyaa DFPĶī dfmine.ttc dfminzaa DFPå dfheia.ttc dfgotwaa DFPå dfheic.ttc dfgotxaa DFPĶå dfheie.ttc dfgotzaa DFPٴݥå dfmrg2.ttc dfmrgkaa DFPٴݥå dfmrg3.ttc dfmrgmaa DFPݥå dfmrg5.ttc dfmrgpaa DFPݥå dfmrg7.ttc dfmrgsaa DFPݥå dfmrg9.ttc dfmrgvaa DFPݥå dfmrgc.ttc dfmrgyaa DFPĶݥå dfmrge.ttc dfmrgzaa DFPԽ dfgys3.ttc dfgysmaa DFPԽW5 dfsgyo5.ttc dfsgypaa DFPܴ dfkai3.ttc dfkaimaa DFPܴ dfkai5.ttc dfkaipaa DFPܴ dfkai7.ttc dfkaisaa DFPܴ dfkai9.ttc dfkaivaa DFPܴ dfkaic.ttc dfkaiyaa DFPʽW3 dfkyks3.ttc dfkykmaa DFPʽW4 dfkyks4.ttc dfkykoaa DFP dfsso3.ttc dfssomaa DFPW3 dfsokn3.ttc dfsokmaa DFPW7 dfgihi7.ttc dfgihsaa DFPW4 dfkoin4.ttc dfkoioaa DFP dflis6.ttc dflispaa DFPW5 dftlei5.ttc dftlepaa DFPW7 dftlei7.ttc dftlesaa DFPW9 dftlei9.ttc dftlevaa DFPή dfktl8.ttc dfktlxaa DFPW12 dfsumoc.ttc dfsumzaa DFPեͷW5 dfcry5.ttc dfcfypaa DFPեͷW7 dfcry7.ttc dfcfysaa DFPեW9 dfcrs9.ttc dfcfsvaa DFPե꡼ή dffrs2.ttc dffrskaa DFPե꡼ή dffry2.ttc dffrykaa DFPήW5 dfrule5.ttc dfrulpaa DFPήW7 dfrule7.ttc dfrulsaa DFPήAW5 dfrula5.ttc dfruapaa DFPήAW9 dfrula9.ttc dfruasaa DFPޤ⤸W3 dfmrm3.ttc dfmrmmaa DFPޤ⤸ dfmrm5.ttc dfmrmpaa DFPޤ⤸W7 dfmrm7.ttc dfmrmsaa DFPޤ⤸W9 dfmrm9.ttc dfmrmvaa DFP֥åSQW5 dfbrs5.ttc dfbrspaa DFP֥åSQW9 dfbrs9.ttc dfbrsvaa DFP֥åSQW12 dfbrsc.ttc dfbrszaa DFP֥åRDW7 dfbrr7.ttc dfbrrsaa DFP֥åRDW12 dfbrrc.ttc dfbrrzaa DFPPOPW7 dfpoco7.ttc dfpocsaa DFPPOPW12 dfpococ.ttc dfpoczaa DFPPOP1W3 dfpop3.ttc dfpopmaa DFPPOP1W5 dfpop5.ttc dfpoppaa DFPPOP1 dfpop7.ttc dfpopraa DFPPOP1W9 dfpop9.ttc dfpopvaa DFPPOP1W12 dfpop1-c.ttc dfpopzaa DFPPOP2W9 dfpop2-9.ttc dfpoqvaa DFPPOP2W12 dfpop2-c.ttc dfpoqzaa DFPPOPƥ󥷥W7 dfpost7.ttc dfposraa DFPPOPåW7 dfpocl7.ttc dfpocraa DFP dflgs9.ttc dflgsvaa DFPW7 dffuu7.ttc dffuusaa DFPW12 dffuuc.ttc dffuuzaa DFPW5 dfsoge5.ttc dfsogpaa DFPW7 dfsoge7.ttc dfsogsaa DFPW9 dfsoge9.ttc dfsogvaa DFPʿīW3 dfhsm3.ttc dfhsmmaa DFPʿīW5 dfhsm5.ttc dfhsmpaa DFPʿīW7 dfhsm7.ttc dfhsmsaa DFPʿīW9 dfhsm9.ttc dfhsmvaa DFPʿåW3 dfhsg3.ttc dfhsgmaa DFPʿåW5 dfhsg5.ttc dfhsgpaa DFPʿåW7 dfhsg7.ttc dfhsgsaa DFPʿåW9 dfhsg9.ttc dfhsgvaa DFPʿݥåW4 dfhsr4.ttc dfhrgoaa DFPڹīW3 dfmimp3.ttc dfmipmaa DFPڹīW5 dfmimp5.ttc dfmippaa DFPڹåW2 dfgotp2.ttc dfgopkaa DFPڹåW3 dfgotp3.ttc dfgopmaa DFPڹåW5 dfgotp5.ttc dfgoppaa ### DynaFont ץߥ 30 Υѥå #DFʿīW3 dfhsmw3.ttc dfhsmmaa #DFʿīW5 dfhsmw5.ttc dfhsmpaa #DFʿīW7 dfhsmw7.ttc dfhsmsaa #DFʿīW9 dfhsmw9.ttc dfhsmvaa #DFī dfminub.ttc dfminzaa #DFʿåW3 dfhsgw3.ttc dfhsgmaa #DFʿåW5 dfhsgw5.ttc dfhsgpaa #DFʿåW7 dfhsgw7.ttc dfhsgsaa #DFʿåW9 dfhsgw9.ttc dfhsgvaa #DFå dfgoteb.ttc dfgotxaa #DFå dfgotub.ttc dfgotzaa #DFʿݥåW4 dfhsrw4.ttc dfhrgoaa #DFٴݥå dfmrglt.ttc dfmrgmaa #DFݥå dfmrgmd.ttc dfmrgpaa #DFݥå dfmrgbd.ttc dfmrgsaa DFԽ dfgyomd.ttc dfgyopaa #DFܴ dfkailt.ttc dfkaimaa #DFܴ dfkaimd.ttc dfkaipaa #DFܴ dfkaisb.ttc dfkaisaa #DFܴ dfkaibd.ttc dfkaivaa DF dfleimd.ttc dfleipaa DFή dfktrxb.ttc dfktrxaa #DFPOP1W3 dfpopw3.ttc dfpopmaa #DFPOP1W5 dfpopw5.ttc dfpoppaa #DFPOP1 dfpop1.ttc dfpopraa ##DFPOP1W9 dfpopw9.ttc dfpopvaa #DFޤ⤸W3 dfmrmw3.ttc dfmrmpaa #DFޤ⤸ dfmrmmd.ttc dfmrmmaa #DFޤ⤸W7 dfmrmw7.ttc dfmrmsaa #DFޤ⤸W9 dfmrmw9.ttc dfmrmvaa ### DynaFont ڥѥå1 #DFW3 dfsokn3.ttc dfsokmaa #DFԽW5 dfsgyo5.ttc dfsgypaa #DFW7 dfgihi7.ttc dfgihsaa #DFʽW3 dfkyks3.ttc dfkykmaa #DFʽW4 dfkyks4.ttc dfkykoaa #DFW5 dftlei5.ttc dftlepaa #DFW7 dftlei7.ttc dftlesaa #DFW9 dftlei9.ttc dftlevaa #DFήW5 dfrule5.ttc dfrulpaa #DFήW7 dfrule7.ttc dfrulsaa #DFW12 dfsumoc.ttc dfsumzaa #DFW4 dfkoin4.ttc dfkoioaa #DFW5 dfsoge5.ttc dfsogpaa #DFW7 dfsoge7.ttc dfsogsaa #DFW9 dfsoge9.ttc dfsogvaa ### Ricoh TrueTypeWorld Value Font 141 Խ hgrgysj.ttc rcgyopaa ʽ hgrkksj.ttc rckykmaa ܴ hgrsksj.ttc rckaipaa ܴ hgraksj.ttc rckkapaa 򽣹 hgrhkgsj.ttc rchkgpaa ܴ hgrhkfsj.ttc rchkfsaa ⶶɮܴ hgrbfksj.ttf rctfkpaa ⶶ hgrbresj.ttf rctrepaa L hgrhalsj.ttf rchagmaa M hgrhamsj.ttf rchagpaa B hgrhabsj.ttf rchagsaa E hgrhaesj.ttf rchagvaa ȾŰ hgrcksj.ttc rcckssaa ϱѥڥ hgrpn1sj.ttc rcspnmaa 򽣥ڥܴ hgrhkpsj.ttc rchkpmaa ϱѳѥݥå hgrpp1sj.ttc rcppkvaa ϱѴݥݥå hgrpp2sj.ttc rcppmvaa ŤͳѥåH hgragusj.ttc rcaguxaa ŤʹݥåH hgrashsj.ttf rcashxaa ץƥեH hgrapsj.ttf rcapfxaa ץƥեH饤 hgraplsj.ttf rcaplxaa ץƥեHɥ hgrapssj.ttf rcapsxaa ʸή hgrkrsj.ttc rckedxaa رʸ hgraesj.ttf rcaegxaa ʸ hgradhsj.ttc rcadhxaa Ҥʸ hgrah2sj.ttc rchigxaa ϶ hgrakgsj.ttc rcakgxaa 줤ä hgrcresj.ttc rccremaa ֡ hgrcbsj.ttc rccbkpaa ᥿ѥåE hgramgsj.ttc rcamgvaa 饤ѥåH hgraigsj.ttc rcaigxaa 饤ݥåE hgraissj.ttc rcaisxaa ¢ݥåH hgrtsesj.ttc rctsexaa ʿīW3 hgrhm3sj.ttc rchmnmaa ʿīW9 hgrhm9sj.ttc rchmnvaa ʿѥåW5 hgrhg5sj.ttc rchgopaa ʿѥåW9 hgrhg9sj.ttc rchgovaa ʿѥåW9饤 hgrg9lsj.ttf rchglvaa ʿѥåW9ɥ hgrg9ssj.ttf rchgsvaa ʿݥåW4 hgrhr4sj.ttc rchrgoaa GFåȥ쥯ʪ gfrcg1sj.ttf rcrcgmaa # ߤե ߤ mikachan.ttf mikpnmaa ߤץݡʥ mikachan-P.ttf mikppmaa ߤץݡʥ mikachan-PB.ttf mikpppaa ߤץݡʥ mikachan-PS.ttf mikpsmaa # Ȥʸե Ȥʸ kotori.ttf kotppmaa Ȥʸ kotori-hoso.ttf kotppkaa #EOF vflib3-3.6.14.dfsg/ascii-jtex/inst.sh0000755000175000017500000000243210270022417016634 0ustar mohuramohura#! /bin/sh RECMKDIR=../recmkdir INSTALL_DIR=$1 FONTDEF=$2 FONTS_FILE=$3 SRC_TFM_Y=$4 SRC_TFM_T=$5 if [ $# -eq 0 ] then echo "Error." echo " Run: make install-jfm" exit fi DUP=`sed 's/#.*//' ${FONTDEF} \ | grep -v '^[ ]*$$' \ | awk '{print $3}' | sort | uniq -d` if [ ! -z "$DUP" ] ; then echo "Duplicated font definition!" $DUP >&2 exit fi if [ ! -f ${FONTS_FILE} ] ; then echo "" echo "No such file:" ${FONTS_FILE} >&2; echo "" exit 0; fi ### KPSEWHICH X=`which kpsewhich` 2> /dev/null if [ "X-$X" = "X-" ] ; then echo "Not found: kpsewhich" >&2; exit 0; fi ### TFM_Y SRC_TFM_Y=`kpsewhich ${SRC_TFM_Y}` if [ -z "${SRC_TFM_Y}" -o ! -f "${SRC_TFM_Y}" ] ; then echo "Not found: ${SRC_TFM_Y}" >&2; exit 0; fi ### TFM_T SRC_TFM_T=`kpsewhich ${SRC_TFM_T}` if [ -z "${SRC_TFM_T}" -o ! -f "${SRC_TFM_T}" ] ; then echo "Not found: ${SRC_TFM_T}" >&2; exit 0; fi ### JFM list FONT_LIST=`awk '{ print $1 }' ${FONTS_FILE}` ### JFM dir if test ! -f ${INSTALL_DIR}; then ${RECMKDIR} ${INSTALL_DIR} fi cd ${INSTALL_DIR} ### Make JFMs for F in ${FONT_LIST} do echo "$F.tfm t$F.tfm ..." rm -f $F.tfm t$F.tfm cp ${SRC_TFM_Y} $F.tfm cp ${SRC_TFM_T} t$F.tfm # "ln -s" should not be used, since files does not appear in "ls-R". done #EOF vflib3-3.6.14.dfsg/ascii-jtex/mkfonts.sh0000755000175000017500000000147010267653250017354 0ustar mohuramohura#!/bin/sh case $# in 2) ;; *) echo "Usage: mkfonts.sh DBFILE OUTFILE" echo "Example: mkfonts.sh def.dat fonts" exit 1 ;; esac FONTLIST=$1 OUT=$2 VAL=`sed 's/#.*//' $FONTLIST \ | awk '{ if ((NF != 0) && (NF != 3)) \ printf("Line %d: %s\n", NR, $0); }'` if [ ! -z "$VAL" ] then echo "Input file is broken!" >&2 echo $VAL exit 1 fi VAL=`sed 's/#.*//' $FONTLIST | grep -v '^[ ]*$' \ | awk '{print $3}' | sort | uniq -d ` if [ ! -z "$VAL" ] then echo "Oops!! Font names duplicates!!!" echo $VAL exit 1 fi sed 's/#.*//' $FONTLIST \ | grep -v '^[ ]*$' \ | awk '{print $3, $2}' \ | sort \ > ${OUT}.lst sed 's/#.*//' $FONTLIST \ | grep -v '^[ ]*$' \ | sed 's/\.tt[fc]//' \ | awk '{printf("\\font\\%s=%s\n", $3, $3)}' \ | sort \ > ${OUT}.tex #EOF vflib3-3.6.14.dfsg/ascii-jtex/Mojikyo/0000755000175000017500000000000007023156635016754 5ustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/Mojikyo/mkmjkjfm.sh0000755000175000017500000000252207010470166021114 0ustar mohuramohura#!/bin/sh YMIN=`kpsewhich min10.tfm` TMIN=`kpsewhich tmin10.tfm` YMJK=" mojik101.tfm mojik102.tfm mojik103.tfm mojik104.tfm mojik105.tfm \ mojik106.tfm mojik107.tfm mojik108.tfm mojik109.tfm mojik110.tfm \ mojik111.tfm mojik112.tfm mojik113.tfm mojik114.tfm mojik115.tfm \ mojik116.tfm mojik117.tfm mojik118.tfm mojik119.tfm mojik120.tfm \ mojik121.tfm " TMJK=" mojkv101.tfm mojkv102.tfm mojkv103.tfm mojkv104.tfm mojkv105.tfm \ mojkv106.tfm mojkv107.tfm mojkv108.tfm mojkv109.tfm mojkv110.tfm \ mojkv111.tfm mojkv112.tfm mojkv113.tfm mojkv114.tfm mojkv115.tfm \ mojkv116.tfm mojkv117.tfm mojkv118.tfm mojkv119.tfm mojkv120.tfm \ mojkv121.tfm" DIR=`echo ${YMIN} | sed 's|/min10.tfm$|/Mojiko|' ` if [ ! -d $DIR ]; then echo "Making directory ${DIR}" mkdir ${DIR}; fi echo "Installing mojik101.tfm, ... ,mojik121.tfm in ${DIR}..." for f in $YMJK; do cp ${YMIN} ${DIR}/$f done DIR=`echo ${TMIN} | sed 's|/tmin10.tfm$|/Mojiko|' ` if [ ! -d $DIR ]; then echo "Making directory ${DIR}" mkdir ${DIR}; fi echo "Installing mojkv101.tfm, ... ,mojkv121.tfm in ${DIR}..." for f in $TMJK; do cp ${TMIN} ${DIR}/$f done echo "***" echo "*** Probably, you may have to run 'MakeTeXls-R' or 'mktexlsr' program " echo "*** to update the 'ls-R' file (database for TeX-related files)." echo "***" #end vflib3-3.6.14.dfsg/ascii-jtex/Mojikyo/00_README0000644000175000017500000000163007010510024020111 0ustar mohuramohura*** Mojikyo font support *** Hirotsugu Kakugawa Mojikyo font is a great set of characters containing more than 90 thousand Kanji characters! For detail, access this web site: http://www.mojikyo.gr.jp/ To use Mojikyo font with pLaTeX: (pLaTeX is a Japanese LaTeX, with vertical writing feature.) Obtain a style file "mojikyo.sty" and Mojikyo font files (in TrueType format) from the web site shown above. Use a shell script "mkmjkjfm.sh" in this directory to make JFM files (Font metric file for Japanese, extension of TFM) for Mojikyo fonts in TeX. See also "$(VFlib3)/vflibcaps/vflibcap-jtex" how to define Mojikyo fonts in VFlib. Sample files: sample.tex A sample document. Japanese LaTeX (pLaTeX) is necessary to typeset this file. sample.dvi DVI file for sample.tex, obtained by running pLaTeX. vflib3-3.6.14.dfsg/ascii-jtex/Mojikyo/Makefile0000644000175000017500000000071307014433426020411 0ustar mohuramohuradefault: @echo "nothing to do." # developers only sample: gcc -o mksample mksample.c -rm -f sample.tex ./mksample -ttf -f 0 -t 3000 > samplet.tex ./mksample -type1 -f 0 -t 3000 > samplep.tex platex samplet.tex platex samplep.tex make clean koukotsu: gcc -o mksample mksample.c -rm -f sample.tex ./mksample -f 95181 -t 99581 -n 10 -s large > koukotsu.tex platex koukotsu.tex make clean clean: -rm a.out mksample *.aux *.log *.core core *~ vflib3-3.6.14.dfsg/ascii-jtex/Mojikyo/test1.tex0000644000175000017500000000024307014177352020534 0ustar mohuramohura\documentclass[a4paper]{jarticle} \usepackage{mojikyo} \usepackage{array} \begin{document} \TMO{003091}\TMO{003092}\TMO{003093} \end{document} vflib3-3.6.14.dfsg/ascii-jtex/Mojikyo/samplet.tex0000644000175000017500000023017607014433431021144 0ustar mohuramohura\documentclass[a4paper]{jarticle} \setlength{\topmargin}{-25mm} \setlength{\evensidemargin}{-10mm} \setlength{\oddsidemargin}{-10mm} \setlength{\textwidth}{180mm} \setlength{\textheight}{263mm} \usepackage{mojikyo} \usepackage{array} \renewcommand{\arraystretch}{0.9} \def\CH#1{#1} \begin{document} \normalsize \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000001}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000001} &\CH{\TMO{000001}} &\CH{\TMO{000002}} &\CH{\TMO{000003}} &\CH{\TMO{000004}} &\CH{\TMO{000005}} &\CH{\TMO{000006}} &\CH{\TMO{000007}} &\CH{\TMO{000008}} &\CH{\TMO{000009}} &\CH{\TMO{000010}} &\CH{\TMO{000011}} &\CH{\TMO{000012}} &\CH{\TMO{000013}} &\CH{\TMO{000014}} &\CH{\TMO{000015}} &\CH{\TMO{000016}} &\CH{\TMO{000017}} &\CH{\TMO{000018}} &\CH{\TMO{000019}} &\CH{\TMO{000020}} \\ \texttt{000021} &\CH{\TMO{000021}} &\CH{\TMO{000022}} &\CH{\TMO{000023}} &\CH{\TMO{000024}} &\CH{\TMO{000025}} &\CH{\TMO{000026}} &\CH{\TMO{000027}} &\CH{\TMO{000028}} &\CH{\TMO{000029}} &\CH{\TMO{000030}} &\CH{\TMO{000031}} &\CH{\TMO{000032}} &\CH{\TMO{000033}} &\CH{\TMO{000034}} &\CH{\TMO{000035}} &\CH{\TMO{000036}} &\CH{\TMO{000037}} &\CH{\TMO{000038}} &\CH{\TMO{000039}} &\CH{\TMO{000040}} \\ \texttt{000041} &\CH{\TMO{000041}} &\CH{\TMO{000042}} &\CH{\TMO{000043}} &\CH{\TMO{000044}} &\CH{\TMO{000045}} &\CH{\TMO{000046}} &\CH{\TMO{000047}} &\CH{\TMO{000048}} &\CH{\TMO{000049}} &\CH{\TMO{000050}} &\CH{\TMO{000051}} &\CH{\TMO{000052}} &\CH{\TMO{000053}} &\CH{\TMO{000054}} &\CH{\TMO{000055}} &\CH{\TMO{000056}} &\CH{\TMO{000057}} &\CH{\TMO{000058}} &\CH{\TMO{000059}} &\CH{\TMO{000060}} \\ \texttt{000061} &\CH{\TMO{000061}} &\CH{\TMO{000062}} &\CH{\TMO{000063}} &\CH{\TMO{000064}} &\CH{\TMO{000065}} &\CH{\TMO{000066}} &\CH{\TMO{000067}} &\CH{\TMO{000068}} &\CH{\TMO{000069}} &\CH{\TMO{000070}} &\CH{\TMO{000071}} &\CH{\TMO{000072}} &\CH{\TMO{000073}} &\CH{\TMO{000074}} &\CH{\TMO{000075}} &\CH{\TMO{000076}} &\CH{\TMO{000077}} &\CH{\TMO{000078}} &\CH{\TMO{000079}} &\CH{\TMO{000080}} \\ \texttt{000081} &\CH{\TMO{000081}} &\CH{\TMO{000082}} &\CH{\TMO{000083}} &\CH{\TMO{000084}} &\CH{\TMO{000085}} &\CH{\TMO{000086}} &\CH{\TMO{000087}} &\CH{\TMO{000088}} &\CH{\TMO{000089}} &\CH{\TMO{000090}} &\CH{\TMO{000091}} &\CH{\TMO{000092}} &\CH{\TMO{000093}} &\CH{\TMO{000094}} &\CH{\TMO{000095}} &\CH{\TMO{000096}} &\CH{\TMO{000097}} &\CH{\TMO{000098}} &\CH{\TMO{000099}} &\CH{\TMO{000100}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000101}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000101} &\CH{\TMO{000101}} &\CH{\TMO{000102}} &\CH{\TMO{000103}} &\CH{\TMO{000104}} &\CH{\TMO{000105}} &\CH{\TMO{000106}} &\CH{\TMO{000107}} &\CH{\TMO{000108}} &\CH{\TMO{000109}} &\CH{\TMO{000110}} &\CH{\TMO{000111}} &\CH{\TMO{000112}} &\CH{\TMO{000113}} &\CH{\TMO{000114}} &\CH{\TMO{000115}} &\CH{\TMO{000116}} &\CH{\TMO{000117}} &\CH{\TMO{000118}} &\CH{\TMO{000119}} &\CH{\TMO{000120}} \\ \texttt{000121} &\CH{\TMO{000121}} &\CH{\TMO{000122}} &\CH{\TMO{000123}} &\CH{\TMO{000124}} &\CH{\TMO{000125}} &\CH{\TMO{000126}} &\CH{\TMO{000127}} &\CH{\TMO{000128}} &\CH{\TMO{000129}} &\CH{\TMO{000130}} &\CH{\TMO{000131}} &\CH{\TMO{000132}} &\CH{\TMO{000133}} &\CH{\TMO{000134}} &\CH{\TMO{000135}} &\CH{\TMO{000136}} &\CH{\TMO{000137}} &\CH{\TMO{000138}} &\CH{\TMO{000139}} &\CH{\TMO{000140}} \\ \texttt{000141} &\CH{\TMO{000141}} &\CH{\TMO{000142}} &\CH{\TMO{000143}} &\CH{\TMO{000144}} &\CH{\TMO{000145}} &\CH{\TMO{000146}} &\CH{\TMO{000147}} &\CH{\TMO{000148}} &\CH{\TMO{000149}} &\CH{\TMO{000150}} &\CH{\TMO{000151}} &\CH{\TMO{000152}} &\CH{\TMO{000153}} &\CH{\TMO{000154}} &\CH{\TMO{000155}} &\CH{\TMO{000156}} &\CH{\TMO{000157}} &\CH{\TMO{000158}} &\CH{\TMO{000159}} &\CH{\TMO{000160}} \\ \texttt{000161} &\CH{\TMO{000161}} &\CH{\TMO{000162}} &\CH{\TMO{000163}} &\CH{\TMO{000164}} &\CH{\TMO{000165}} &\CH{\TMO{000166}} &\CH{\TMO{000167}} &\CH{\TMO{000168}} &\CH{\TMO{000169}} &\CH{\TMO{000170}} &\CH{\TMO{000171}} &\CH{\TMO{000172}} &\CH{\TMO{000173}} &\CH{\TMO{000174}} &\CH{\TMO{000175}} &\CH{\TMO{000176}} &\CH{\TMO{000177}} &\CH{\TMO{000178}} &\CH{\TMO{000179}} &\CH{\TMO{000180}} \\ \texttt{000181} &\CH{\TMO{000181}} &\CH{\TMO{000182}} &\CH{\TMO{000183}} &\CH{\TMO{000184}} &\CH{\TMO{000185}} &\CH{\TMO{000186}} &\CH{\TMO{000187}} &\CH{\TMO{000188}} &\CH{\TMO{000189}} &\CH{\TMO{000190}} &\CH{\TMO{000191}} &\CH{\TMO{000192}} &\CH{\TMO{000193}} &\CH{\TMO{000194}} &\CH{\TMO{000195}} &\CH{\TMO{000196}} &\CH{\TMO{000197}} &\CH{\TMO{000198}} &\CH{\TMO{000199}} &\CH{\TMO{000200}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000201}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000201} &\CH{\TMO{000201}} &\CH{\TMO{000202}} &\CH{\TMO{000203}} &\CH{\TMO{000204}} &\CH{\TMO{000205}} &\CH{\TMO{000206}} &\CH{\TMO{000207}} &\CH{\TMO{000208}} &\CH{\TMO{000209}} &\CH{\TMO{000210}} &\CH{\TMO{000211}} &\CH{\TMO{000212}} &\CH{\TMO{000213}} &\CH{\TMO{000214}} &\CH{\TMO{000215}} &\CH{\TMO{000216}} &\CH{\TMO{000217}} &\CH{\TMO{000218}} &\CH{\TMO{000219}} &\CH{\TMO{000220}} \\ \texttt{000221} &\CH{\TMO{000221}} &\CH{\TMO{000222}} &\CH{\TMO{000223}} &\CH{\TMO{000224}} &\CH{\TMO{000225}} &\CH{\TMO{000226}} &\CH{\TMO{000227}} &\CH{\TMO{000228}} &\CH{\TMO{000229}} &\CH{\TMO{000230}} &\CH{\TMO{000231}} &\CH{\TMO{000232}} &\CH{\TMO{000233}} &\CH{\TMO{000234}} &\CH{\TMO{000235}} &\CH{\TMO{000236}} &\CH{\TMO{000237}} &\CH{\TMO{000238}} &\CH{\TMO{000239}} &\CH{\TMO{000240}} \\ \texttt{000241} &\CH{\TMO{000241}} &\CH{\TMO{000242}} &\CH{\TMO{000243}} &\CH{\TMO{000244}} &\CH{\TMO{000245}} &\CH{\TMO{000246}} &\CH{\TMO{000247}} &\CH{\TMO{000248}} &\CH{\TMO{000249}} &\CH{\TMO{000250}} &\CH{\TMO{000251}} &\CH{\TMO{000252}} &\CH{\TMO{000253}} &\CH{\TMO{000254}} &\CH{\TMO{000255}} &\CH{\TMO{000256}} &\CH{\TMO{000257}} &\CH{\TMO{000258}} &\CH{\TMO{000259}} &\CH{\TMO{000260}} \\ \texttt{000261} &\CH{\TMO{000261}} &\CH{\TMO{000262}} &\CH{\TMO{000263}} &\CH{\TMO{000264}} &\CH{\TMO{000265}} &\CH{\TMO{000266}} &\CH{\TMO{000267}} &\CH{\TMO{000268}} &\CH{\TMO{000269}} &\CH{\TMO{000270}} &\CH{\TMO{000271}} &\CH{\TMO{000272}} &\CH{\TMO{000273}} &\CH{\TMO{000274}} &\CH{\TMO{000275}} &\CH{\TMO{000276}} &\CH{\TMO{000277}} &\CH{\TMO{000278}} &\CH{\TMO{000279}} &\CH{\TMO{000280}} \\ \texttt{000281} &\CH{\TMO{000281}} &\CH{\TMO{000282}} &\CH{\TMO{000283}} &\CH{\TMO{000284}} &\CH{\TMO{000285}} &\CH{\TMO{000286}} &\CH{\TMO{000287}} &\CH{\TMO{000288}} &\CH{\TMO{000289}} &\CH{\TMO{000290}} &\CH{\TMO{000291}} &\CH{\TMO{000292}} &\CH{\TMO{000293}} &\CH{\TMO{000294}} &\CH{\TMO{000295}} &\CH{\TMO{000296}} &\CH{\TMO{000297}} &\CH{\TMO{000298}} &\CH{\TMO{000299}} &\CH{\TMO{000300}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000301}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000301} &\CH{\TMO{000301}} &\CH{\TMO{000302}} &\CH{\TMO{000303}} &\CH{\TMO{000304}} &\CH{\TMO{000305}} &\CH{\TMO{000306}} &\CH{\TMO{000307}} &\CH{\TMO{000308}} &\CH{\TMO{000309}} &\CH{\TMO{000310}} &\CH{\TMO{000311}} &\CH{\TMO{000312}} &\CH{\TMO{000313}} &\CH{\TMO{000314}} &\CH{\TMO{000315}} &\CH{\TMO{000316}} &\CH{\TMO{000317}} &\CH{\TMO{000318}} &\CH{\TMO{000319}} &\CH{\TMO{000320}} \\ \texttt{000321} &\CH{\TMO{000321}} &\CH{\TMO{000322}} &\CH{\TMO{000323}} &\CH{\TMO{000324}} &\CH{\TMO{000325}} &\CH{\TMO{000326}} &\CH{\TMO{000327}} &\CH{\TMO{000328}} &\CH{\TMO{000329}} &\CH{\TMO{000330}} &\CH{\TMO{000331}} &\CH{\TMO{000332}} &\CH{\TMO{000333}} &\CH{\TMO{000334}} &\CH{\TMO{000335}} &\CH{\TMO{000336}} &\CH{\TMO{000337}} &\CH{\TMO{000338}} &\CH{\TMO{000339}} &\CH{\TMO{000340}} \\ \texttt{000341} &\CH{\TMO{000341}} &\CH{\TMO{000342}} &\CH{\TMO{000343}} &\CH{\TMO{000344}} &\CH{\TMO{000345}} &\CH{\TMO{000346}} &\CH{\TMO{000347}} &\CH{\TMO{000348}} &\CH{\TMO{000349}} &\CH{\TMO{000350}} &\CH{\TMO{000351}} &\CH{\TMO{000352}} &\CH{\TMO{000353}} &\CH{\TMO{000354}} &\CH{\TMO{000355}} &\CH{\TMO{000356}} &\CH{\TMO{000357}} &\CH{\TMO{000358}} &\CH{\TMO{000359}} &\CH{\TMO{000360}} \\ \texttt{000361} &\CH{\TMO{000361}} &\CH{\TMO{000362}} &\CH{\TMO{000363}} &\CH{\TMO{000364}} &\CH{\TMO{000365}} &\CH{\TMO{000366}} &\CH{\TMO{000367}} &\CH{\TMO{000368}} &\CH{\TMO{000369}} &\CH{\TMO{000370}} &\CH{\TMO{000371}} &\CH{\TMO{000372}} &\CH{\TMO{000373}} &\CH{\TMO{000374}} &\CH{\TMO{000375}} &\CH{\TMO{000376}} &\CH{\TMO{000377}} &\CH{\TMO{000378}} &\CH{\TMO{000379}} &\CH{\TMO{000380}} \\ \texttt{000381} &\CH{\TMO{000381}} &\CH{\TMO{000382}} &\CH{\TMO{000383}} &\CH{\TMO{000384}} &\CH{\TMO{000385}} &\CH{\TMO{000386}} &\CH{\TMO{000387}} &\CH{\TMO{000388}} &\CH{\TMO{000389}} &\CH{\TMO{000390}} &\CH{\TMO{000391}} &\CH{\TMO{000392}} &\CH{\TMO{000393}} &\CH{\TMO{000394}} &\CH{\TMO{000395}} &\CH{\TMO{000396}} &\CH{\TMO{000397}} &\CH{\TMO{000398}} &\CH{\TMO{000399}} &\CH{\TMO{000400}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000401}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000401} &\CH{\TMO{000401}} &\CH{\TMO{000402}} &\CH{\TMO{000403}} &\CH{\TMO{000404}} &\CH{\TMO{000405}} &\CH{\TMO{000406}} &\CH{\TMO{000407}} &\CH{\TMO{000408}} &\CH{\TMO{000409}} &\CH{\TMO{000410}} &\CH{\TMO{000411}} &\CH{\TMO{000412}} &\CH{\TMO{000413}} &\CH{\TMO{000414}} &\CH{\TMO{000415}} &\CH{\TMO{000416}} &\CH{\TMO{000417}} &\CH{\TMO{000418}} &\CH{\TMO{000419}} &\CH{\TMO{000420}} \\ \texttt{000421} &\CH{\TMO{000421}} &\CH{\TMO{000422}} &\CH{\TMO{000423}} &\CH{\TMO{000424}} &\CH{\TMO{000425}} &\CH{\TMO{000426}} &\CH{\TMO{000427}} &\CH{\TMO{000428}} &\CH{\TMO{000429}} &\CH{\TMO{000430}} &\CH{\TMO{000431}} &\CH{\TMO{000432}} &\CH{\TMO{000433}} &\CH{\TMO{000434}} &\CH{\TMO{000435}} &\CH{\TMO{000436}} &\CH{\TMO{000437}} &\CH{\TMO{000438}} &\CH{\TMO{000439}} &\CH{\TMO{000440}} \\ \texttt{000441} &\CH{\TMO{000441}} &\CH{\TMO{000442}} &\CH{\TMO{000443}} &\CH{\TMO{000444}} &\CH{\TMO{000445}} &\CH{\TMO{000446}} &\CH{\TMO{000447}} &\CH{\TMO{000448}} &\CH{\TMO{000449}} &\CH{\TMO{000450}} &\CH{\TMO{000451}} &\CH{\TMO{000452}} &\CH{\TMO{000453}} &\CH{\TMO{000454}} &\CH{\TMO{000455}} &\CH{\TMO{000456}} &\CH{\TMO{000457}} &\CH{\TMO{000458}} &\CH{\TMO{000459}} &\CH{\TMO{000460}} \\ \texttt{000461} &\CH{\TMO{000461}} &\CH{\TMO{000462}} &\CH{\TMO{000463}} &\CH{\TMO{000464}} &\CH{\TMO{000465}} &\CH{\TMO{000466}} &\CH{\TMO{000467}} &\CH{\TMO{000468}} &\CH{\TMO{000469}} &\CH{\TMO{000470}} &\CH{\TMO{000471}} &\CH{\TMO{000472}} &\CH{\TMO{000473}} &\CH{\TMO{000474}} &\CH{\TMO{000475}} &\CH{\TMO{000476}} &\CH{\TMO{000477}} &\CH{\TMO{000478}} &\CH{\TMO{000479}} &\CH{\TMO{000480}} \\ \texttt{000481} &\CH{\TMO{000481}} &\CH{\TMO{000482}} &\CH{\TMO{000483}} &\CH{\TMO{000484}} &\CH{\TMO{000485}} &\CH{\TMO{000486}} &\CH{\TMO{000487}} &\CH{\TMO{000488}} &\CH{\TMO{000489}} &\CH{\TMO{000490}} &\CH{\TMO{000491}} &\CH{\TMO{000492}} &\CH{\TMO{000493}} &\CH{\TMO{000494}} &\CH{\TMO{000495}} &\CH{\TMO{000496}} &\CH{\TMO{000497}} &\CH{\TMO{000498}} &\CH{\TMO{000499}} &\CH{\TMO{000500}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000501}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000501} &\CH{\TMO{000501}} &\CH{\TMO{000502}} &\CH{\TMO{000503}} &\CH{\TMO{000504}} &\CH{\TMO{000505}} &\CH{\TMO{000506}} &\CH{\TMO{000507}} &\CH{\TMO{000508}} &\CH{\TMO{000509}} &\CH{\TMO{000510}} &\CH{\TMO{000511}} &\CH{\TMO{000512}} &\CH{\TMO{000513}} &\CH{\TMO{000514}} &\CH{\TMO{000515}} &\CH{\TMO{000516}} &\CH{\TMO{000517}} &\CH{\TMO{000518}} &\CH{\TMO{000519}} &\CH{\TMO{000520}} \\ \texttt{000521} &\CH{\TMO{000521}} &\CH{\TMO{000522}} &\CH{\TMO{000523}} &\CH{\TMO{000524}} &\CH{\TMO{000525}} &\CH{\TMO{000526}} &\CH{\TMO{000527}} &\CH{\TMO{000528}} &\CH{\TMO{000529}} &\CH{\TMO{000530}} &\CH{\TMO{000531}} &\CH{\TMO{000532}} &\CH{\TMO{000533}} &\CH{\TMO{000534}} &\CH{\TMO{000535}} &\CH{\TMO{000536}} &\CH{\TMO{000537}} &\CH{\TMO{000538}} &\CH{\TMO{000539}} &\CH{\TMO{000540}} \\ \texttt{000541} &\CH{\TMO{000541}} &\CH{\TMO{000542}} &\CH{\TMO{000543}} &\CH{\TMO{000544}} &\CH{\TMO{000545}} &\CH{\TMO{000546}} &\CH{\TMO{000547}} &\CH{\TMO{000548}} &\CH{\TMO{000549}} &\CH{\TMO{000550}} &\CH{\TMO{000551}} &\CH{\TMO{000552}} &\CH{\TMO{000553}} &\CH{\TMO{000554}} &\CH{\TMO{000555}} &\CH{\TMO{000556}} &\CH{\TMO{000557}} &\CH{\TMO{000558}} &\CH{\TMO{000559}} &\CH{\TMO{000560}} \\ \texttt{000561} &\CH{\TMO{000561}} &\CH{\TMO{000562}} &\CH{\TMO{000563}} &\CH{\TMO{000564}} &\CH{\TMO{000565}} &\CH{\TMO{000566}} &\CH{\TMO{000567}} &\CH{\TMO{000568}} &\CH{\TMO{000569}} &\CH{\TMO{000570}} &\CH{\TMO{000571}} &\CH{\TMO{000572}} &\CH{\TMO{000573}} &\CH{\TMO{000574}} &\CH{\TMO{000575}} &\CH{\TMO{000576}} &\CH{\TMO{000577}} &\CH{\TMO{000578}} &\CH{\TMO{000579}} &\CH{\TMO{000580}} \\ \texttt{000581} &\CH{\TMO{000581}} &\CH{\TMO{000582}} &\CH{\TMO{000583}} &\CH{\TMO{000584}} &\CH{\TMO{000585}} &\CH{\TMO{000586}} &\CH{\TMO{000587}} &\CH{\TMO{000588}} &\CH{\TMO{000589}} &\CH{\TMO{000590}} &\CH{\TMO{000591}} &\CH{\TMO{000592}} &\CH{\TMO{000593}} &\CH{\TMO{000594}} &\CH{\TMO{000595}} &\CH{\TMO{000596}} &\CH{\TMO{000597}} &\CH{\TMO{000598}} &\CH{\TMO{000599}} &\CH{\TMO{000600}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000601}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000601} &\CH{\TMO{000601}} &\CH{\TMO{000602}} &\CH{\TMO{000603}} &\CH{\TMO{000604}} &\CH{\TMO{000605}} &\CH{\TMO{000606}} &\CH{\TMO{000607}} &\CH{\TMO{000608}} &\CH{\TMO{000609}} &\CH{\TMO{000610}} &\CH{\TMO{000611}} &\CH{\TMO{000612}} &\CH{\TMO{000613}} &\CH{\TMO{000614}} &\CH{\TMO{000615}} &\CH{\TMO{000616}} &\CH{\TMO{000617}} &\CH{\TMO{000618}} &\CH{\TMO{000619}} &\CH{\TMO{000620}} \\ \texttt{000621} &\CH{\TMO{000621}} &\CH{\TMO{000622}} &\CH{\TMO{000623}} &\CH{\TMO{000624}} &\CH{\TMO{000625}} &\CH{\TMO{000626}} &\CH{\TMO{000627}} &\CH{\TMO{000628}} &\CH{\TMO{000629}} &\CH{\TMO{000630}} &\CH{\TMO{000631}} &\CH{\TMO{000632}} &\CH{\TMO{000633}} &\CH{\TMO{000634}} &\CH{\TMO{000635}} &\CH{\TMO{000636}} &\CH{\TMO{000637}} &\CH{\TMO{000638}} &\CH{\TMO{000639}} &\CH{\TMO{000640}} \\ \texttt{000641} &\CH{\TMO{000641}} &\CH{\TMO{000642}} &\CH{\TMO{000643}} &\CH{\TMO{000644}} &\CH{\TMO{000645}} &\CH{\TMO{000646}} &\CH{\TMO{000647}} &\CH{\TMO{000648}} &\CH{\TMO{000649}} &\CH{\TMO{000650}} &\CH{\TMO{000651}} &\CH{\TMO{000652}} &\CH{\TMO{000653}} &\CH{\TMO{000654}} &\CH{\TMO{000655}} &\CH{\TMO{000656}} &\CH{\TMO{000657}} &\CH{\TMO{000658}} &\CH{\TMO{000659}} &\CH{\TMO{000660}} \\ \texttt{000661} &\CH{\TMO{000661}} &\CH{\TMO{000662}} &\CH{\TMO{000663}} &\CH{\TMO{000664}} &\CH{\TMO{000665}} &\CH{\TMO{000666}} &\CH{\TMO{000667}} &\CH{\TMO{000668}} &\CH{\TMO{000669}} &\CH{\TMO{000670}} &\CH{\TMO{000671}} &\CH{\TMO{000672}} &\CH{\TMO{000673}} &\CH{\TMO{000674}} &\CH{\TMO{000675}} &\CH{\TMO{000676}} &\CH{\TMO{000677}} &\CH{\TMO{000678}} &\CH{\TMO{000679}} &\CH{\TMO{000680}} \\ \texttt{000681} &\CH{\TMO{000681}} &\CH{\TMO{000682}} &\CH{\TMO{000683}} &\CH{\TMO{000684}} &\CH{\TMO{000685}} &\CH{\TMO{000686}} &\CH{\TMO{000687}} &\CH{\TMO{000688}} &\CH{\TMO{000689}} &\CH{\TMO{000690}} &\CH{\TMO{000691}} &\CH{\TMO{000692}} &\CH{\TMO{000693}} &\CH{\TMO{000694}} &\CH{\TMO{000695}} &\CH{\TMO{000696}} &\CH{\TMO{000697}} &\CH{\TMO{000698}} &\CH{\TMO{000699}} &\CH{\TMO{000700}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000701}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000701} &\CH{\TMO{000701}} &\CH{\TMO{000702}} &\CH{\TMO{000703}} &\CH{\TMO{000704}} &\CH{\TMO{000705}} &\CH{\TMO{000706}} &\CH{\TMO{000707}} &\CH{\TMO{000708}} &\CH{\TMO{000709}} &\CH{\TMO{000710}} &\CH{\TMO{000711}} &\CH{\TMO{000712}} &\CH{\TMO{000713}} &\CH{\TMO{000714}} &\CH{\TMO{000715}} &\CH{\TMO{000716}} &\CH{\TMO{000717}} &\CH{\TMO{000718}} &\CH{\TMO{000719}} &\CH{\TMO{000720}} \\ \texttt{000721} &\CH{\TMO{000721}} &\CH{\TMO{000722}} &\CH{\TMO{000723}} &\CH{\TMO{000724}} &\CH{\TMO{000725}} &\CH{\TMO{000726}} &\CH{\TMO{000727}} &\CH{\TMO{000728}} &\CH{\TMO{000729}} &\CH{\TMO{000730}} &\CH{\TMO{000731}} &\CH{\TMO{000732}} &\CH{\TMO{000733}} &\CH{\TMO{000734}} &\CH{\TMO{000735}} &\CH{\TMO{000736}} &\CH{\TMO{000737}} &\CH{\TMO{000738}} &\CH{\TMO{000739}} &\CH{\TMO{000740}} \\ \texttt{000741} &\CH{\TMO{000741}} &\CH{\TMO{000742}} &\CH{\TMO{000743}} &\CH{\TMO{000744}} &\CH{\TMO{000745}} &\CH{\TMO{000746}} &\CH{\TMO{000747}} &\CH{\TMO{000748}} &\CH{\TMO{000749}} &\CH{\TMO{000750}} &\CH{\TMO{000751}} &\CH{\TMO{000752}} &\CH{\TMO{000753}} &\CH{\TMO{000754}} &\CH{\TMO{000755}} &\CH{\TMO{000756}} &\CH{\TMO{000757}} &\CH{\TMO{000758}} &\CH{\TMO{000759}} &\CH{\TMO{000760}} \\ \texttt{000761} &\CH{\TMO{000761}} &\CH{\TMO{000762}} &\CH{\TMO{000763}} &\CH{\TMO{000764}} &\CH{\TMO{000765}} &\CH{\TMO{000766}} &\CH{\TMO{000767}} &\CH{\TMO{000768}} &\CH{\TMO{000769}} &\CH{\TMO{000770}} &\CH{\TMO{000771}} &\CH{\TMO{000772}} &\CH{\TMO{000773}} &\CH{\TMO{000774}} &\CH{\TMO{000775}} &\CH{\TMO{000776}} &\CH{\TMO{000777}} &\CH{\TMO{000778}} &\CH{\TMO{000779}} &\CH{\TMO{000780}} \\ \texttt{000781} &\CH{\TMO{000781}} &\CH{\TMO{000782}} &\CH{\TMO{000783}} &\CH{\TMO{000784}} &\CH{\TMO{000785}} &\CH{\TMO{000786}} &\CH{\TMO{000787}} &\CH{\TMO{000788}} &\CH{\TMO{000789}} &\CH{\TMO{000790}} &\CH{\TMO{000791}} &\CH{\TMO{000792}} &\CH{\TMO{000793}} &\CH{\TMO{000794}} &\CH{\TMO{000795}} &\CH{\TMO{000796}} &\CH{\TMO{000797}} &\CH{\TMO{000798}} &\CH{\TMO{000799}} &\CH{\TMO{000800}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000801}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000801} &\CH{\TMO{000801}} &\CH{\TMO{000802}} &\CH{\TMO{000803}} &\CH{\TMO{000804}} &\CH{\TMO{000805}} &\CH{\TMO{000806}} &\CH{\TMO{000807}} &\CH{\TMO{000808}} &\CH{\TMO{000809}} &\CH{\TMO{000810}} &\CH{\TMO{000811}} &\CH{\TMO{000812}} &\CH{\TMO{000813}} &\CH{\TMO{000814}} &\CH{\TMO{000815}} &\CH{\TMO{000816}} &\CH{\TMO{000817}} &\CH{\TMO{000818}} &\CH{\TMO{000819}} &\CH{\TMO{000820}} \\ \texttt{000821} &\CH{\TMO{000821}} &\CH{\TMO{000822}} &\CH{\TMO{000823}} &\CH{\TMO{000824}} &\CH{\TMO{000825}} &\CH{\TMO{000826}} &\CH{\TMO{000827}} &\CH{\TMO{000828}} &\CH{\TMO{000829}} &\CH{\TMO{000830}} &\CH{\TMO{000831}} &\CH{\TMO{000832}} &\CH{\TMO{000833}} &\CH{\TMO{000834}} &\CH{\TMO{000835}} &\CH{\TMO{000836}} &\CH{\TMO{000837}} &\CH{\TMO{000838}} &\CH{\TMO{000839}} &\CH{\TMO{000840}} \\ \texttt{000841} &\CH{\TMO{000841}} &\CH{\TMO{000842}} &\CH{\TMO{000843}} &\CH{\TMO{000844}} &\CH{\TMO{000845}} &\CH{\TMO{000846}} &\CH{\TMO{000847}} &\CH{\TMO{000848}} &\CH{\TMO{000849}} &\CH{\TMO{000850}} &\CH{\TMO{000851}} &\CH{\TMO{000852}} &\CH{\TMO{000853}} &\CH{\TMO{000854}} &\CH{\TMO{000855}} &\CH{\TMO{000856}} &\CH{\TMO{000857}} &\CH{\TMO{000858}} &\CH{\TMO{000859}} &\CH{\TMO{000860}} \\ \texttt{000861} &\CH{\TMO{000861}} &\CH{\TMO{000862}} &\CH{\TMO{000863}} &\CH{\TMO{000864}} &\CH{\TMO{000865}} &\CH{\TMO{000866}} &\CH{\TMO{000867}} &\CH{\TMO{000868}} &\CH{\TMO{000869}} &\CH{\TMO{000870}} &\CH{\TMO{000871}} &\CH{\TMO{000872}} &\CH{\TMO{000873}} &\CH{\TMO{000874}} &\CH{\TMO{000875}} &\CH{\TMO{000876}} &\CH{\TMO{000877}} &\CH{\TMO{000878}} &\CH{\TMO{000879}} &\CH{\TMO{000880}} \\ \texttt{000881} &\CH{\TMO{000881}} &\CH{\TMO{000882}} &\CH{\TMO{000883}} &\CH{\TMO{000884}} &\CH{\TMO{000885}} &\CH{\TMO{000886}} &\CH{\TMO{000887}} &\CH{\TMO{000888}} &\CH{\TMO{000889}} &\CH{\TMO{000890}} &\CH{\TMO{000891}} &\CH{\TMO{000892}} &\CH{\TMO{000893}} &\CH{\TMO{000894}} &\CH{\TMO{000895}} &\CH{\TMO{000896}} &\CH{\TMO{000897}} &\CH{\TMO{000898}} &\CH{\TMO{000899}} &\CH{\TMO{000900}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000901}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000901} &\CH{\TMO{000901}} &\CH{\TMO{000902}} &\CH{\TMO{000903}} &\CH{\TMO{000904}} &\CH{\TMO{000905}} &\CH{\TMO{000906}} &\CH{\TMO{000907}} &\CH{\TMO{000908}} &\CH{\TMO{000909}} &\CH{\TMO{000910}} &\CH{\TMO{000911}} &\CH{\TMO{000912}} &\CH{\TMO{000913}} &\CH{\TMO{000914}} &\CH{\TMO{000915}} &\CH{\TMO{000916}} &\CH{\TMO{000917}} &\CH{\TMO{000918}} &\CH{\TMO{000919}} &\CH{\TMO{000920}} \\ \texttt{000921} &\CH{\TMO{000921}} &\CH{\TMO{000922}} &\CH{\TMO{000923}} &\CH{\TMO{000924}} &\CH{\TMO{000925}} &\CH{\TMO{000926}} &\CH{\TMO{000927}} &\CH{\TMO{000928}} &\CH{\TMO{000929}} &\CH{\TMO{000930}} &\CH{\TMO{000931}} &\CH{\TMO{000932}} &\CH{\TMO{000933}} &\CH{\TMO{000934}} &\CH{\TMO{000935}} &\CH{\TMO{000936}} &\CH{\TMO{000937}} &\CH{\TMO{000938}} &\CH{\TMO{000939}} &\CH{\TMO{000940}} \\ \texttt{000941} &\CH{\TMO{000941}} &\CH{\TMO{000942}} &\CH{\TMO{000943}} &\CH{\TMO{000944}} &\CH{\TMO{000945}} &\CH{\TMO{000946}} &\CH{\TMO{000947}} &\CH{\TMO{000948}} &\CH{\TMO{000949}} &\CH{\TMO{000950}} &\CH{\TMO{000951}} &\CH{\TMO{000952}} &\CH{\TMO{000953}} &\CH{\TMO{000954}} &\CH{\TMO{000955}} &\CH{\TMO{000956}} &\CH{\TMO{000957}} &\CH{\TMO{000958}} &\CH{\TMO{000959}} &\CH{\TMO{000960}} \\ \texttt{000961} &\CH{\TMO{000961}} &\CH{\TMO{000962}} &\CH{\TMO{000963}} &\CH{\TMO{000964}} &\CH{\TMO{000965}} &\CH{\TMO{000966}} &\CH{\TMO{000967}} &\CH{\TMO{000968}} &\CH{\TMO{000969}} &\CH{\TMO{000970}} &\CH{\TMO{000971}} &\CH{\TMO{000972}} &\CH{\TMO{000973}} &\CH{\TMO{000974}} &\CH{\TMO{000975}} &\CH{\TMO{000976}} &\CH{\TMO{000977}} &\CH{\TMO{000978}} &\CH{\TMO{000979}} &\CH{\TMO{000980}} \\ \texttt{000981} &\CH{\TMO{000981}} &\CH{\TMO{000982}} &\CH{\TMO{000983}} &\CH{\TMO{000984}} &\CH{\TMO{000985}} &\CH{\TMO{000986}} &\CH{\TMO{000987}} &\CH{\TMO{000988}} &\CH{\TMO{000989}} &\CH{\TMO{000990}} &\CH{\TMO{000991}} &\CH{\TMO{000992}} &\CH{\TMO{000993}} &\CH{\TMO{000994}} &\CH{\TMO{000995}} &\CH{\TMO{000996}} &\CH{\TMO{000997}} &\CH{\TMO{000998}} &\CH{\TMO{000999}} &\CH{\TMO{001000}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001001}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001001} &\CH{\TMO{001001}} &\CH{\TMO{001002}} &\CH{\TMO{001003}} &\CH{\TMO{001004}} &\CH{\TMO{001005}} &\CH{\TMO{001006}} &\CH{\TMO{001007}} &\CH{\TMO{001008}} &\CH{\TMO{001009}} &\CH{\TMO{001010}} &\CH{\TMO{001011}} &\CH{\TMO{001012}} &\CH{\TMO{001013}} &\CH{\TMO{001014}} &\CH{\TMO{001015}} &\CH{\TMO{001016}} &\CH{\TMO{001017}} &\CH{\TMO{001018}} &\CH{\TMO{001019}} &\CH{\TMO{001020}} \\ \texttt{001021} &\CH{\TMO{001021}} &\CH{\TMO{001022}} &\CH{\TMO{001023}} &\CH{\TMO{001024}} &\CH{\TMO{001025}} &\CH{\TMO{001026}} &\CH{\TMO{001027}} &\CH{\TMO{001028}} &\CH{\TMO{001029}} &\CH{\TMO{001030}} &\CH{\TMO{001031}} &\CH{\TMO{001032}} &\CH{\TMO{001033}} &\CH{\TMO{001034}} &\CH{\TMO{001035}} &\CH{\TMO{001036}} &\CH{\TMO{001037}} &\CH{\TMO{001038}} &\CH{\TMO{001039}} &\CH{\TMO{001040}} \\ \texttt{001041} &\CH{\TMO{001041}} &\CH{\TMO{001042}} &\CH{\TMO{001043}} &\CH{\TMO{001044}} &\CH{\TMO{001045}} &\CH{\TMO{001046}} &\CH{\TMO{001047}} &\CH{\TMO{001048}} &\CH{\TMO{001049}} &\CH{\TMO{001050}} &\CH{\TMO{001051}} &\CH{\TMO{001052}} &\CH{\TMO{001053}} &\CH{\TMO{001054}} &\CH{\TMO{001055}} &\CH{\TMO{001056}} &\CH{\TMO{001057}} &\CH{\TMO{001058}} &\CH{\TMO{001059}} &\CH{\TMO{001060}} \\ \texttt{001061} &\CH{\TMO{001061}} &\CH{\TMO{001062}} &\CH{\TMO{001063}} &\CH{\TMO{001064}} &\CH{\TMO{001065}} &\CH{\TMO{001066}} &\CH{\TMO{001067}} &\CH{\TMO{001068}} &\CH{\TMO{001069}} &\CH{\TMO{001070}} &\CH{\TMO{001071}} &\CH{\TMO{001072}} &\CH{\TMO{001073}} &\CH{\TMO{001074}} &\CH{\TMO{001075}} &\CH{\TMO{001076}} &\CH{\TMO{001077}} &\CH{\TMO{001078}} &\CH{\TMO{001079}} &\CH{\TMO{001080}} \\ \texttt{001081} &\CH{\TMO{001081}} &\CH{\TMO{001082}} &\CH{\TMO{001083}} &\CH{\TMO{001084}} &\CH{\TMO{001085}} &\CH{\TMO{001086}} &\CH{\TMO{001087}} &\CH{\TMO{001088}} &\CH{\TMO{001089}} &\CH{\TMO{001090}} &\CH{\TMO{001091}} &\CH{\TMO{001092}} &\CH{\TMO{001093}} &\CH{\TMO{001094}} &\CH{\TMO{001095}} &\CH{\TMO{001096}} &\CH{\TMO{001097}} &\CH{\TMO{001098}} &\CH{\TMO{001099}} &\CH{\TMO{001100}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001101}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001101} &\CH{\TMO{001101}} &\CH{\TMO{001102}} &\CH{\TMO{001103}} &\CH{\TMO{001104}} &\CH{\TMO{001105}} &\CH{\TMO{001106}} &\CH{\TMO{001107}} &\CH{\TMO{001108}} &\CH{\TMO{001109}} &\CH{\TMO{001110}} &\CH{\TMO{001111}} &\CH{\TMO{001112}} &\CH{\TMO{001113}} &\CH{\TMO{001114}} &\CH{\TMO{001115}} &\CH{\TMO{001116}} &\CH{\TMO{001117}} &\CH{\TMO{001118}} &\CH{\TMO{001119}} &\CH{\TMO{001120}} \\ \texttt{001121} &\CH{\TMO{001121}} &\CH{\TMO{001122}} &\CH{\TMO{001123}} &\CH{\TMO{001124}} &\CH{\TMO{001125}} &\CH{\TMO{001126}} &\CH{\TMO{001127}} &\CH{\TMO{001128}} &\CH{\TMO{001129}} &\CH{\TMO{001130}} &\CH{\TMO{001131}} &\CH{\TMO{001132}} &\CH{\TMO{001133}} &\CH{\TMO{001134}} &\CH{\TMO{001135}} &\CH{\TMO{001136}} &\CH{\TMO{001137}} &\CH{\TMO{001138}} &\CH{\TMO{001139}} &\CH{\TMO{001140}} \\ \texttt{001141} &\CH{\TMO{001141}} &\CH{\TMO{001142}} &\CH{\TMO{001143}} &\CH{\TMO{001144}} &\CH{\TMO{001145}} &\CH{\TMO{001146}} &\CH{\TMO{001147}} &\CH{\TMO{001148}} &\CH{\TMO{001149}} &\CH{\TMO{001150}} &\CH{\TMO{001151}} &\CH{\TMO{001152}} &\CH{\TMO{001153}} &\CH{\TMO{001154}} &\CH{\TMO{001155}} &\CH{\TMO{001156}} &\CH{\TMO{001157}} &\CH{\TMO{001158}} &\CH{\TMO{001159}} &\CH{\TMO{001160}} \\ \texttt{001161} &\CH{\TMO{001161}} &\CH{\TMO{001162}} &\CH{\TMO{001163}} &\CH{\TMO{001164}} &\CH{\TMO{001165}} &\CH{\TMO{001166}} &\CH{\TMO{001167}} &\CH{\TMO{001168}} &\CH{\TMO{001169}} &\CH{\TMO{001170}} &\CH{\TMO{001171}} &\CH{\TMO{001172}} &\CH{\TMO{001173}} &\CH{\TMO{001174}} &\CH{\TMO{001175}} &\CH{\TMO{001176}} &\CH{\TMO{001177}} &\CH{\TMO{001178}} &\CH{\TMO{001179}} &\CH{\TMO{001180}} \\ \texttt{001181} &\CH{\TMO{001181}} &\CH{\TMO{001182}} &\CH{\TMO{001183}} &\CH{\TMO{001184}} &\CH{\TMO{001185}} &\CH{\TMO{001186}} &\CH{\TMO{001187}} &\CH{\TMO{001188}} &\CH{\TMO{001189}} &\CH{\TMO{001190}} &\CH{\TMO{001191}} &\CH{\TMO{001192}} &\CH{\TMO{001193}} &\CH{\TMO{001194}} &\CH{\TMO{001195}} &\CH{\TMO{001196}} &\CH{\TMO{001197}} &\CH{\TMO{001198}} &\CH{\TMO{001199}} &\CH{\TMO{001200}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001201}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001201} &\CH{\TMO{001201}} &\CH{\TMO{001202}} &\CH{\TMO{001203}} &\CH{\TMO{001204}} &\CH{\TMO{001205}} &\CH{\TMO{001206}} &\CH{\TMO{001207}} &\CH{\TMO{001208}} &\CH{\TMO{001209}} &\CH{\TMO{001210}} &\CH{\TMO{001211}} &\CH{\TMO{001212}} &\CH{\TMO{001213}} &\CH{\TMO{001214}} &\CH{\TMO{001215}} &\CH{\TMO{001216}} &\CH{\TMO{001217}} &\CH{\TMO{001218}} &\CH{\TMO{001219}} &\CH{\TMO{001220}} \\ \texttt{001221} &\CH{\TMO{001221}} &\CH{\TMO{001222}} &\CH{\TMO{001223}} &\CH{\TMO{001224}} &\CH{\TMO{001225}} &\CH{\TMO{001226}} &\CH{\TMO{001227}} &\CH{\TMO{001228}} &\CH{\TMO{001229}} &\CH{\TMO{001230}} &\CH{\TMO{001231}} &\CH{\TMO{001232}} &\CH{\TMO{001233}} &\CH{\TMO{001234}} &\CH{\TMO{001235}} &\CH{\TMO{001236}} &\CH{\TMO{001237}} &\CH{\TMO{001238}} &\CH{\TMO{001239}} &\CH{\TMO{001240}} \\ \texttt{001241} &\CH{\TMO{001241}} &\CH{\TMO{001242}} &\CH{\TMO{001243}} &\CH{\TMO{001244}} &\CH{\TMO{001245}} &\CH{\TMO{001246}} &\CH{\TMO{001247}} &\CH{\TMO{001248}} &\CH{\TMO{001249}} &\CH{\TMO{001250}} &\CH{\TMO{001251}} &\CH{\TMO{001252}} &\CH{\TMO{001253}} &\CH{\TMO{001254}} &\CH{\TMO{001255}} &\CH{\TMO{001256}} &\CH{\TMO{001257}} &\CH{\TMO{001258}} &\CH{\TMO{001259}} &\CH{\TMO{001260}} \\ \texttt{001261} &\CH{\TMO{001261}} &\CH{\TMO{001262}} &\CH{\TMO{001263}} &\CH{\TMO{001264}} &\CH{\TMO{001265}} &\CH{\TMO{001266}} &\CH{\TMO{001267}} &\CH{\TMO{001268}} &\CH{\TMO{001269}} &\CH{\TMO{001270}} &\CH{\TMO{001271}} &\CH{\TMO{001272}} &\CH{\TMO{001273}} &\CH{\TMO{001274}} &\CH{\TMO{001275}} &\CH{\TMO{001276}} &\CH{\TMO{001277}} &\CH{\TMO{001278}} &\CH{\TMO{001279}} &\CH{\TMO{001280}} \\ \texttt{001281} &\CH{\TMO{001281}} &\CH{\TMO{001282}} &\CH{\TMO{001283}} &\CH{\TMO{001284}} &\CH{\TMO{001285}} &\CH{\TMO{001286}} &\CH{\TMO{001287}} &\CH{\TMO{001288}} &\CH{\TMO{001289}} &\CH{\TMO{001290}} &\CH{\TMO{001291}} &\CH{\TMO{001292}} &\CH{\TMO{001293}} &\CH{\TMO{001294}} &\CH{\TMO{001295}} &\CH{\TMO{001296}} &\CH{\TMO{001297}} &\CH{\TMO{001298}} &\CH{\TMO{001299}} &\CH{\TMO{001300}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001301}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001301} &\CH{\TMO{001301}} &\CH{\TMO{001302}} &\CH{\TMO{001303}} &\CH{\TMO{001304}} &\CH{\TMO{001305}} &\CH{\TMO{001306}} &\CH{\TMO{001307}} &\CH{\TMO{001308}} &\CH{\TMO{001309}} &\CH{\TMO{001310}} &\CH{\TMO{001311}} &\CH{\TMO{001312}} &\CH{\TMO{001313}} &\CH{\TMO{001314}} &\CH{\TMO{001315}} &\CH{\TMO{001316}} &\CH{\TMO{001317}} &\CH{\TMO{001318}} &\CH{\TMO{001319}} &\CH{\TMO{001320}} \\ \texttt{001321} &\CH{\TMO{001321}} &\CH{\TMO{001322}} &\CH{\TMO{001323}} &\CH{\TMO{001324}} &\CH{\TMO{001325}} &\CH{\TMO{001326}} &\CH{\TMO{001327}} &\CH{\TMO{001328}} &\CH{\TMO{001329}} &\CH{\TMO{001330}} &\CH{\TMO{001331}} &\CH{\TMO{001332}} &\CH{\TMO{001333}} &\CH{\TMO{001334}} &\CH{\TMO{001335}} &\CH{\TMO{001336}} &\CH{\TMO{001337}} &\CH{\TMO{001338}} &\CH{\TMO{001339}} &\CH{\TMO{001340}} \\ \texttt{001341} &\CH{\TMO{001341}} &\CH{\TMO{001342}} &\CH{\TMO{001343}} &\CH{\TMO{001344}} &\CH{\TMO{001345}} &\CH{\TMO{001346}} &\CH{\TMO{001347}} &\CH{\TMO{001348}} &\CH{\TMO{001349}} &\CH{\TMO{001350}} &\CH{\TMO{001351}} &\CH{\TMO{001352}} &\CH{\TMO{001353}} &\CH{\TMO{001354}} &\CH{\TMO{001355}} &\CH{\TMO{001356}} &\CH{\TMO{001357}} &\CH{\TMO{001358}} &\CH{\TMO{001359}} &\CH{\TMO{001360}} \\ \texttt{001361} &\CH{\TMO{001361}} &\CH{\TMO{001362}} &\CH{\TMO{001363}} &\CH{\TMO{001364}} &\CH{\TMO{001365}} &\CH{\TMO{001366}} &\CH{\TMO{001367}} &\CH{\TMO{001368}} &\CH{\TMO{001369}} &\CH{\TMO{001370}} &\CH{\TMO{001371}} &\CH{\TMO{001372}} &\CH{\TMO{001373}} &\CH{\TMO{001374}} &\CH{\TMO{001375}} &\CH{\TMO{001376}} &\CH{\TMO{001377}} &\CH{\TMO{001378}} &\CH{\TMO{001379}} &\CH{\TMO{001380}} \\ \texttt{001381} &\CH{\TMO{001381}} &\CH{\TMO{001382}} &\CH{\TMO{001383}} &\CH{\TMO{001384}} &\CH{\TMO{001385}} &\CH{\TMO{001386}} &\CH{\TMO{001387}} &\CH{\TMO{001388}} &\CH{\TMO{001389}} &\CH{\TMO{001390}} &\CH{\TMO{001391}} &\CH{\TMO{001392}} &\CH{\TMO{001393}} &\CH{\TMO{001394}} &\CH{\TMO{001395}} &\CH{\TMO{001396}} &\CH{\TMO{001397}} &\CH{\TMO{001398}} &\CH{\TMO{001399}} &\CH{\TMO{001400}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001401}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001401} &\CH{\TMO{001401}} &\CH{\TMO{001402}} &\CH{\TMO{001403}} &\CH{\TMO{001404}} &\CH{\TMO{001405}} &\CH{\TMO{001406}} &\CH{\TMO{001407}} &\CH{\TMO{001408}} &\CH{\TMO{001409}} &\CH{\TMO{001410}} &\CH{\TMO{001411}} &\CH{\TMO{001412}} &\CH{\TMO{001413}} &\CH{\TMO{001414}} &\CH{\TMO{001415}} &\CH{\TMO{001416}} &\CH{\TMO{001417}} &\CH{\TMO{001418}} &\CH{\TMO{001419}} &\CH{\TMO{001420}} \\ \texttt{001421} &\CH{\TMO{001421}} &\CH{\TMO{001422}} &\CH{\TMO{001423}} &\CH{\TMO{001424}} &\CH{\TMO{001425}} &\CH{\TMO{001426}} &\CH{\TMO{001427}} &\CH{\TMO{001428}} &\CH{\TMO{001429}} &\CH{\TMO{001430}} &\CH{\TMO{001431}} &\CH{\TMO{001432}} &\CH{\TMO{001433}} &\CH{\TMO{001434}} &\CH{\TMO{001435}} &\CH{\TMO{001436}} &\CH{\TMO{001437}} &\CH{\TMO{001438}} &\CH{\TMO{001439}} &\CH{\TMO{001440}} \\ \texttt{001441} &\CH{\TMO{001441}} &\CH{\TMO{001442}} &\CH{\TMO{001443}} &\CH{\TMO{001444}} &\CH{\TMO{001445}} &\CH{\TMO{001446}} &\CH{\TMO{001447}} &\CH{\TMO{001448}} &\CH{\TMO{001449}} &\CH{\TMO{001450}} &\CH{\TMO{001451}} &\CH{\TMO{001452}} &\CH{\TMO{001453}} &\CH{\TMO{001454}} &\CH{\TMO{001455}} &\CH{\TMO{001456}} &\CH{\TMO{001457}} &\CH{\TMO{001458}} &\CH{\TMO{001459}} &\CH{\TMO{001460}} \\ \texttt{001461} &\CH{\TMO{001461}} &\CH{\TMO{001462}} &\CH{\TMO{001463}} &\CH{\TMO{001464}} &\CH{\TMO{001465}} &\CH{\TMO{001466}} &\CH{\TMO{001467}} &\CH{\TMO{001468}} &\CH{\TMO{001469}} &\CH{\TMO{001470}} &\CH{\TMO{001471}} &\CH{\TMO{001472}} &\CH{\TMO{001473}} &\CH{\TMO{001474}} &\CH{\TMO{001475}} &\CH{\TMO{001476}} &\CH{\TMO{001477}} &\CH{\TMO{001478}} &\CH{\TMO{001479}} &\CH{\TMO{001480}} \\ \texttt{001481} &\CH{\TMO{001481}} &\CH{\TMO{001482}} &\CH{\TMO{001483}} &\CH{\TMO{001484}} &\CH{\TMO{001485}} &\CH{\TMO{001486}} &\CH{\TMO{001487}} &\CH{\TMO{001488}} &\CH{\TMO{001489}} &\CH{\TMO{001490}} &\CH{\TMO{001491}} &\CH{\TMO{001492}} &\CH{\TMO{001493}} &\CH{\TMO{001494}} &\CH{\TMO{001495}} &\CH{\TMO{001496}} &\CH{\TMO{001497}} &\CH{\TMO{001498}} &\CH{\TMO{001499}} &\CH{\TMO{001500}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001501}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001501} &\CH{\TMO{001501}} &\CH{\TMO{001502}} &\CH{\TMO{001503}} &\CH{\TMO{001504}} &\CH{\TMO{001505}} &\CH{\TMO{001506}} &\CH{\TMO{001507}} &\CH{\TMO{001508}} &\CH{\TMO{001509}} &\CH{\TMO{001510}} &\CH{\TMO{001511}} &\CH{\TMO{001512}} &\CH{\TMO{001513}} &\CH{\TMO{001514}} &\CH{\TMO{001515}} &\CH{\TMO{001516}} &\CH{\TMO{001517}} &\CH{\TMO{001518}} &\CH{\TMO{001519}} &\CH{\TMO{001520}} \\ \texttt{001521} &\CH{\TMO{001521}} &\CH{\TMO{001522}} &\CH{\TMO{001523}} &\CH{\TMO{001524}} &\CH{\TMO{001525}} &\CH{\TMO{001526}} &\CH{\TMO{001527}} &\CH{\TMO{001528}} &\CH{\TMO{001529}} &\CH{\TMO{001530}} &\CH{\TMO{001531}} &\CH{\TMO{001532}} &\CH{\TMO{001533}} &\CH{\TMO{001534}} &\CH{\TMO{001535}} &\CH{\TMO{001536}} &\CH{\TMO{001537}} &\CH{\TMO{001538}} &\CH{\TMO{001539}} &\CH{\TMO{001540}} \\ \texttt{001541} &\CH{\TMO{001541}} &\CH{\TMO{001542}} &\CH{\TMO{001543}} &\CH{\TMO{001544}} &\CH{\TMO{001545}} &\CH{\TMO{001546}} &\CH{\TMO{001547}} &\CH{\TMO{001548}} &\CH{\TMO{001549}} &\CH{\TMO{001550}} &\CH{\TMO{001551}} &\CH{\TMO{001552}} &\CH{\TMO{001553}} &\CH{\TMO{001554}} &\CH{\TMO{001555}} &\CH{\TMO{001556}} &\CH{\TMO{001557}} &\CH{\TMO{001558}} &\CH{\TMO{001559}} &\CH{\TMO{001560}} \\ \texttt{001561} &\CH{\TMO{001561}} &\CH{\TMO{001562}} &\CH{\TMO{001563}} &\CH{\TMO{001564}} &\CH{\TMO{001565}} &\CH{\TMO{001566}} &\CH{\TMO{001567}} &\CH{\TMO{001568}} &\CH{\TMO{001569}} &\CH{\TMO{001570}} &\CH{\TMO{001571}} &\CH{\TMO{001572}} &\CH{\TMO{001573}} &\CH{\TMO{001574}} &\CH{\TMO{001575}} &\CH{\TMO{001576}} &\CH{\TMO{001577}} &\CH{\TMO{001578}} &\CH{\TMO{001579}} &\CH{\TMO{001580}} \\ \texttt{001581} &\CH{\TMO{001581}} &\CH{\TMO{001582}} &\CH{\TMO{001583}} &\CH{\TMO{001584}} &\CH{\TMO{001585}} &\CH{\TMO{001586}} &\CH{\TMO{001587}} &\CH{\TMO{001588}} &\CH{\TMO{001589}} &\CH{\TMO{001590}} &\CH{\TMO{001591}} &\CH{\TMO{001592}} &\CH{\TMO{001593}} &\CH{\TMO{001594}} &\CH{\TMO{001595}} &\CH{\TMO{001596}} &\CH{\TMO{001597}} &\CH{\TMO{001598}} &\CH{\TMO{001599}} &\CH{\TMO{001600}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001601}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001601} &\CH{\TMO{001601}} &\CH{\TMO{001602}} &\CH{\TMO{001603}} &\CH{\TMO{001604}} &\CH{\TMO{001605}} &\CH{\TMO{001606}} &\CH{\TMO{001607}} &\CH{\TMO{001608}} &\CH{\TMO{001609}} &\CH{\TMO{001610}} &\CH{\TMO{001611}} &\CH{\TMO{001612}} &\CH{\TMO{001613}} &\CH{\TMO{001614}} &\CH{\TMO{001615}} &\CH{\TMO{001616}} &\CH{\TMO{001617}} &\CH{\TMO{001618}} &\CH{\TMO{001619}} &\CH{\TMO{001620}} \\ \texttt{001621} &\CH{\TMO{001621}} &\CH{\TMO{001622}} &\CH{\TMO{001623}} &\CH{\TMO{001624}} &\CH{\TMO{001625}} &\CH{\TMO{001626}} &\CH{\TMO{001627}} &\CH{\TMO{001628}} &\CH{\TMO{001629}} &\CH{\TMO{001630}} &\CH{\TMO{001631}} &\CH{\TMO{001632}} &\CH{\TMO{001633}} &\CH{\TMO{001634}} &\CH{\TMO{001635}} &\CH{\TMO{001636}} &\CH{\TMO{001637}} &\CH{\TMO{001638}} &\CH{\TMO{001639}} &\CH{\TMO{001640}} \\ \texttt{001641} &\CH{\TMO{001641}} &\CH{\TMO{001642}} &\CH{\TMO{001643}} &\CH{\TMO{001644}} &\CH{\TMO{001645}} &\CH{\TMO{001646}} &\CH{\TMO{001647}} &\CH{\TMO{001648}} &\CH{\TMO{001649}} &\CH{\TMO{001650}} &\CH{\TMO{001651}} &\CH{\TMO{001652}} &\CH{\TMO{001653}} &\CH{\TMO{001654}} &\CH{\TMO{001655}} &\CH{\TMO{001656}} &\CH{\TMO{001657}} &\CH{\TMO{001658}} &\CH{\TMO{001659}} &\CH{\TMO{001660}} \\ \texttt{001661} &\CH{\TMO{001661}} &\CH{\TMO{001662}} &\CH{\TMO{001663}} &\CH{\TMO{001664}} &\CH{\TMO{001665}} &\CH{\TMO{001666}} &\CH{\TMO{001667}} &\CH{\TMO{001668}} &\CH{\TMO{001669}} &\CH{\TMO{001670}} &\CH{\TMO{001671}} &\CH{\TMO{001672}} &\CH{\TMO{001673}} &\CH{\TMO{001674}} &\CH{\TMO{001675}} &\CH{\TMO{001676}} &\CH{\TMO{001677}} &\CH{\TMO{001678}} &\CH{\TMO{001679}} &\CH{\TMO{001680}} \\ \texttt{001681} &\CH{\TMO{001681}} &\CH{\TMO{001682}} &\CH{\TMO{001683}} &\CH{\TMO{001684}} &\CH{\TMO{001685}} &\CH{\TMO{001686}} &\CH{\TMO{001687}} &\CH{\TMO{001688}} &\CH{\TMO{001689}} &\CH{\TMO{001690}} &\CH{\TMO{001691}} &\CH{\TMO{001692}} &\CH{\TMO{001693}} &\CH{\TMO{001694}} &\CH{\TMO{001695}} &\CH{\TMO{001696}} &\CH{\TMO{001697}} &\CH{\TMO{001698}} &\CH{\TMO{001699}} &\CH{\TMO{001700}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001701}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001701} &\CH{\TMO{001701}} &\CH{\TMO{001702}} &\CH{\TMO{001703}} &\CH{\TMO{001704}} &\CH{\TMO{001705}} &\CH{\TMO{001706}} &\CH{\TMO{001707}} &\CH{\TMO{001708}} &\CH{\TMO{001709}} &\CH{\TMO{001710}} &\CH{\TMO{001711}} &\CH{\TMO{001712}} &\CH{\TMO{001713}} &\CH{\TMO{001714}} &\CH{\TMO{001715}} &\CH{\TMO{001716}} &\CH{\TMO{001717}} &\CH{\TMO{001718}} &\CH{\TMO{001719}} &\CH{\TMO{001720}} \\ \texttt{001721} &\CH{\TMO{001721}} &\CH{\TMO{001722}} &\CH{\TMO{001723}} &\CH{\TMO{001724}} &\CH{\TMO{001725}} &\CH{\TMO{001726}} &\CH{\TMO{001727}} &\CH{\TMO{001728}} &\CH{\TMO{001729}} &\CH{\TMO{001730}} &\CH{\TMO{001731}} &\CH{\TMO{001732}} &\CH{\TMO{001733}} &\CH{\TMO{001734}} &\CH{\TMO{001735}} &\CH{\TMO{001736}} &\CH{\TMO{001737}} &\CH{\TMO{001738}} &\CH{\TMO{001739}} &\CH{\TMO{001740}} \\ \texttt{001741} &\CH{\TMO{001741}} &\CH{\TMO{001742}} &\CH{\TMO{001743}} &\CH{\TMO{001744}} &\CH{\TMO{001745}} &\CH{\TMO{001746}} &\CH{\TMO{001747}} &\CH{\TMO{001748}} &\CH{\TMO{001749}} &\CH{\TMO{001750}} &\CH{\TMO{001751}} &\CH{\TMO{001752}} &\CH{\TMO{001753}} &\CH{\TMO{001754}} &\CH{\TMO{001755}} &\CH{\TMO{001756}} &\CH{\TMO{001757}} &\CH{\TMO{001758}} &\CH{\TMO{001759}} &\CH{\TMO{001760}} \\ \texttt{001761} &\CH{\TMO{001761}} &\CH{\TMO{001762}} &\CH{\TMO{001763}} &\CH{\TMO{001764}} &\CH{\TMO{001765}} &\CH{\TMO{001766}} &\CH{\TMO{001767}} &\CH{\TMO{001768}} &\CH{\TMO{001769}} &\CH{\TMO{001770}} &\CH{\TMO{001771}} &\CH{\TMO{001772}} &\CH{\TMO{001773}} &\CH{\TMO{001774}} &\CH{\TMO{001775}} &\CH{\TMO{001776}} &\CH{\TMO{001777}} &\CH{\TMO{001778}} &\CH{\TMO{001779}} &\CH{\TMO{001780}} \\ \texttt{001781} &\CH{\TMO{001781}} &\CH{\TMO{001782}} &\CH{\TMO{001783}} &\CH{\TMO{001784}} &\CH{\TMO{001785}} &\CH{\TMO{001786}} &\CH{\TMO{001787}} &\CH{\TMO{001788}} &\CH{\TMO{001789}} &\CH{\TMO{001790}} &\CH{\TMO{001791}} &\CH{\TMO{001792}} &\CH{\TMO{001793}} &\CH{\TMO{001794}} &\CH{\TMO{001795}} &\CH{\TMO{001796}} &\CH{\TMO{001797}} &\CH{\TMO{001798}} &\CH{\TMO{001799}} &\CH{\TMO{001800}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001801}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001801} &\CH{\TMO{001801}} &\CH{\TMO{001802}} &\CH{\TMO{001803}} &\CH{\TMO{001804}} &\CH{\TMO{001805}} &\CH{\TMO{001806}} &\CH{\TMO{001807}} &\CH{\TMO{001808}} &\CH{\TMO{001809}} &\CH{\TMO{001810}} &\CH{\TMO{001811}} &\CH{\TMO{001812}} &\CH{\TMO{001813}} &\CH{\TMO{001814}} &\CH{\TMO{001815}} &\CH{\TMO{001816}} &\CH{\TMO{001817}} &\CH{\TMO{001818}} &\CH{\TMO{001819}} &\CH{\TMO{001820}} \\ \texttt{001821} &\CH{\TMO{001821}} &\CH{\TMO{001822}} &\CH{\TMO{001823}} &\CH{\TMO{001824}} &\CH{\TMO{001825}} &\CH{\TMO{001826}} &\CH{\TMO{001827}} &\CH{\TMO{001828}} &\CH{\TMO{001829}} &\CH{\TMO{001830}} &\CH{\TMO{001831}} &\CH{\TMO{001832}} &\CH{\TMO{001833}} &\CH{\TMO{001834}} &\CH{\TMO{001835}} &\CH{\TMO{001836}} &\CH{\TMO{001837}} &\CH{\TMO{001838}} &\CH{\TMO{001839}} &\CH{\TMO{001840}} \\ \texttt{001841} &\CH{\TMO{001841}} &\CH{\TMO{001842}} &\CH{\TMO{001843}} &\CH{\TMO{001844}} &\CH{\TMO{001845}} &\CH{\TMO{001846}} &\CH{\TMO{001847}} &\CH{\TMO{001848}} &\CH{\TMO{001849}} &\CH{\TMO{001850}} &\CH{\TMO{001851}} &\CH{\TMO{001852}} &\CH{\TMO{001853}} &\CH{\TMO{001854}} &\CH{\TMO{001855}} &\CH{\TMO{001856}} &\CH{\TMO{001857}} &\CH{\TMO{001858}} &\CH{\TMO{001859}} &\CH{\TMO{001860}} \\ \texttt{001861} &\CH{\TMO{001861}} &\CH{\TMO{001862}} &\CH{\TMO{001863}} &\CH{\TMO{001864}} &\CH{\TMO{001865}} &\CH{\TMO{001866}} &\CH{\TMO{001867}} &\CH{\TMO{001868}} &\CH{\TMO{001869}} &\CH{\TMO{001870}} &\CH{\TMO{001871}} &\CH{\TMO{001872}} &\CH{\TMO{001873}} &\CH{\TMO{001874}} &\CH{\TMO{001875}} &\CH{\TMO{001876}} &\CH{\TMO{001877}} &\CH{\TMO{001878}} &\CH{\TMO{001879}} &\CH{\TMO{001880}} \\ \texttt{001881} &\CH{\TMO{001881}} &\CH{\TMO{001882}} &\CH{\TMO{001883}} &\CH{\TMO{001884}} &\CH{\TMO{001885}} &\CH{\TMO{001886}} &\CH{\TMO{001887}} &\CH{\TMO{001888}} &\CH{\TMO{001889}} &\CH{\TMO{001890}} &\CH{\TMO{001891}} &\CH{\TMO{001892}} &\CH{\TMO{001893}} &\CH{\TMO{001894}} &\CH{\TMO{001895}} &\CH{\TMO{001896}} &\CH{\TMO{001897}} &\CH{\TMO{001898}} &\CH{\TMO{001899}} &\CH{\TMO{001900}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001901}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001901} &\CH{\TMO{001901}} &\CH{\TMO{001902}} &\CH{\TMO{001903}} &\CH{\TMO{001904}} &\CH{\TMO{001905}} &\CH{\TMO{001906}} &\CH{\TMO{001907}} &\CH{\TMO{001908}} &\CH{\TMO{001909}} &\CH{\TMO{001910}} &\CH{\TMO{001911}} &\CH{\TMO{001912}} &\CH{\TMO{001913}} &\CH{\TMO{001914}} &\CH{\TMO{001915}} &\CH{\TMO{001916}} &\CH{\TMO{001917}} &\CH{\TMO{001918}} &\CH{\TMO{001919}} &\CH{\TMO{001920}} \\ \texttt{001921} &\CH{\TMO{001921}} &\CH{\TMO{001922}} &\CH{\TMO{001923}} &\CH{\TMO{001924}} &\CH{\TMO{001925}} &\CH{\TMO{001926}} &\CH{\TMO{001927}} &\CH{\TMO{001928}} &\CH{\TMO{001929}} &\CH{\TMO{001930}} &\CH{\TMO{001931}} &\CH{\TMO{001932}} &\CH{\TMO{001933}} &\CH{\TMO{001934}} &\CH{\TMO{001935}} &\CH{\TMO{001936}} &\CH{\TMO{001937}} &\CH{\TMO{001938}} &\CH{\TMO{001939}} &\CH{\TMO{001940}} \\ \texttt{001941} &\CH{\TMO{001941}} &\CH{\TMO{001942}} &\CH{\TMO{001943}} &\CH{\TMO{001944}} &\CH{\TMO{001945}} &\CH{\TMO{001946}} &\CH{\TMO{001947}} &\CH{\TMO{001948}} &\CH{\TMO{001949}} &\CH{\TMO{001950}} &\CH{\TMO{001951}} &\CH{\TMO{001952}} &\CH{\TMO{001953}} &\CH{\TMO{001954}} &\CH{\TMO{001955}} &\CH{\TMO{001956}} &\CH{\TMO{001957}} &\CH{\TMO{001958}} &\CH{\TMO{001959}} &\CH{\TMO{001960}} \\ \texttt{001961} &\CH{\TMO{001961}} &\CH{\TMO{001962}} &\CH{\TMO{001963}} &\CH{\TMO{001964}} &\CH{\TMO{001965}} &\CH{\TMO{001966}} &\CH{\TMO{001967}} &\CH{\TMO{001968}} &\CH{\TMO{001969}} &\CH{\TMO{001970}} &\CH{\TMO{001971}} &\CH{\TMO{001972}} &\CH{\TMO{001973}} &\CH{\TMO{001974}} &\CH{\TMO{001975}} &\CH{\TMO{001976}} &\CH{\TMO{001977}} &\CH{\TMO{001978}} &\CH{\TMO{001979}} &\CH{\TMO{001980}} \\ \texttt{001981} &\CH{\TMO{001981}} &\CH{\TMO{001982}} &\CH{\TMO{001983}} &\CH{\TMO{001984}} &\CH{\TMO{001985}} &\CH{\TMO{001986}} &\CH{\TMO{001987}} &\CH{\TMO{001988}} &\CH{\TMO{001989}} &\CH{\TMO{001990}} &\CH{\TMO{001991}} &\CH{\TMO{001992}} &\CH{\TMO{001993}} &\CH{\TMO{001994}} &\CH{\TMO{001995}} &\CH{\TMO{001996}} &\CH{\TMO{001997}} &\CH{\TMO{001998}} &\CH{\TMO{001999}} &\CH{\TMO{002000}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002001}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002001} &\CH{\TMO{002001}} &\CH{\TMO{002002}} &\CH{\TMO{002003}} &\CH{\TMO{002004}} &\CH{\TMO{002005}} &\CH{\TMO{002006}} &\CH{\TMO{002007}} &\CH{\TMO{002008}} &\CH{\TMO{002009}} &\CH{\TMO{002010}} &\CH{\TMO{002011}} &\CH{\TMO{002012}} &\CH{\TMO{002013}} &\CH{\TMO{002014}} &\CH{\TMO{002015}} &\CH{\TMO{002016}} &\CH{\TMO{002017}} &\CH{\TMO{002018}} &\CH{\TMO{002019}} &\CH{\TMO{002020}} \\ \texttt{002021} &\CH{\TMO{002021}} &\CH{\TMO{002022}} &\CH{\TMO{002023}} &\CH{\TMO{002024}} &\CH{\TMO{002025}} &\CH{\TMO{002026}} &\CH{\TMO{002027}} &\CH{\TMO{002028}} &\CH{\TMO{002029}} &\CH{\TMO{002030}} &\CH{\TMO{002031}} &\CH{\TMO{002032}} &\CH{\TMO{002033}} &\CH{\TMO{002034}} &\CH{\TMO{002035}} &\CH{\TMO{002036}} &\CH{\TMO{002037}} &\CH{\TMO{002038}} &\CH{\TMO{002039}} &\CH{\TMO{002040}} \\ \texttt{002041} &\CH{\TMO{002041}} &\CH{\TMO{002042}} &\CH{\TMO{002043}} &\CH{\TMO{002044}} &\CH{\TMO{002045}} &\CH{\TMO{002046}} &\CH{\TMO{002047}} &\CH{\TMO{002048}} &\CH{\TMO{002049}} &\CH{\TMO{002050}} &\CH{\TMO{002051}} &\CH{\TMO{002052}} &\CH{\TMO{002053}} &\CH{\TMO{002054}} &\CH{\TMO{002055}} &\CH{\TMO{002056}} &\CH{\TMO{002057}} &\CH{\TMO{002058}} &\CH{\TMO{002059}} &\CH{\TMO{002060}} \\ \texttt{002061} &\CH{\TMO{002061}} &\CH{\TMO{002062}} &\CH{\TMO{002063}} &\CH{\TMO{002064}} &\CH{\TMO{002065}} &\CH{\TMO{002066}} &\CH{\TMO{002067}} &\CH{\TMO{002068}} &\CH{\TMO{002069}} &\CH{\TMO{002070}} &\CH{\TMO{002071}} &\CH{\TMO{002072}} &\CH{\TMO{002073}} &\CH{\TMO{002074}} &\CH{\TMO{002075}} &\CH{\TMO{002076}} &\CH{\TMO{002077}} &\CH{\TMO{002078}} &\CH{\TMO{002079}} &\CH{\TMO{002080}} \\ \texttt{002081} &\CH{\TMO{002081}} &\CH{\TMO{002082}} &\CH{\TMO{002083}} &\CH{\TMO{002084}} &\CH{\TMO{002085}} &\CH{\TMO{002086}} &\CH{\TMO{002087}} &\CH{\TMO{002088}} &\CH{\TMO{002089}} &\CH{\TMO{002090}} &\CH{\TMO{002091}} &\CH{\TMO{002092}} &\CH{\TMO{002093}} &\CH{\TMO{002094}} &\CH{\TMO{002095}} &\CH{\TMO{002096}} &\CH{\TMO{002097}} &\CH{\TMO{002098}} &\CH{\TMO{002099}} &\CH{\TMO{002100}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002101}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002101} &\CH{\TMO{002101}} &\CH{\TMO{002102}} &\CH{\TMO{002103}} &\CH{\TMO{002104}} &\CH{\TMO{002105}} &\CH{\TMO{002106}} &\CH{\TMO{002107}} &\CH{\TMO{002108}} &\CH{\TMO{002109}} &\CH{\TMO{002110}} &\CH{\TMO{002111}} &\CH{\TMO{002112}} &\CH{\TMO{002113}} &\CH{\TMO{002114}} &\CH{\TMO{002115}} &\CH{\TMO{002116}} &\CH{\TMO{002117}} &\CH{\TMO{002118}} &\CH{\TMO{002119}} &\CH{\TMO{002120}} \\ \texttt{002121} &\CH{\TMO{002121}} &\CH{\TMO{002122}} &\CH{\TMO{002123}} &\CH{\TMO{002124}} &\CH{\TMO{002125}} &\CH{\TMO{002126}} &\CH{\TMO{002127}} &\CH{\TMO{002128}} &\CH{\TMO{002129}} &\CH{\TMO{002130}} &\CH{\TMO{002131}} &\CH{\TMO{002132}} &\CH{\TMO{002133}} &\CH{\TMO{002134}} &\CH{\TMO{002135}} &\CH{\TMO{002136}} &\CH{\TMO{002137}} &\CH{\TMO{002138}} &\CH{\TMO{002139}} &\CH{\TMO{002140}} \\ \texttt{002141} &\CH{\TMO{002141}} &\CH{\TMO{002142}} &\CH{\TMO{002143}} &\CH{\TMO{002144}} &\CH{\TMO{002145}} &\CH{\TMO{002146}} &\CH{\TMO{002147}} &\CH{\TMO{002148}} &\CH{\TMO{002149}} &\CH{\TMO{002150}} &\CH{\TMO{002151}} &\CH{\TMO{002152}} &\CH{\TMO{002153}} &\CH{\TMO{002154}} &\CH{\TMO{002155}} &\CH{\TMO{002156}} &\CH{\TMO{002157}} &\CH{\TMO{002158}} &\CH{\TMO{002159}} &\CH{\TMO{002160}} \\ \texttt{002161} &\CH{\TMO{002161}} &\CH{\TMO{002162}} &\CH{\TMO{002163}} &\CH{\TMO{002164}} &\CH{\TMO{002165}} &\CH{\TMO{002166}} &\CH{\TMO{002167}} &\CH{\TMO{002168}} &\CH{\TMO{002169}} &\CH{\TMO{002170}} &\CH{\TMO{002171}} &\CH{\TMO{002172}} &\CH{\TMO{002173}} &\CH{\TMO{002174}} &\CH{\TMO{002175}} &\CH{\TMO{002176}} &\CH{\TMO{002177}} &\CH{\TMO{002178}} &\CH{\TMO{002179}} &\CH{\TMO{002180}} \\ \texttt{002181} &\CH{\TMO{002181}} &\CH{\TMO{002182}} &\CH{\TMO{002183}} &\CH{\TMO{002184}} &\CH{\TMO{002185}} &\CH{\TMO{002186}} &\CH{\TMO{002187}} &\CH{\TMO{002188}} &\CH{\TMO{002189}} &\CH{\TMO{002190}} &\CH{\TMO{002191}} &\CH{\TMO{002192}} &\CH{\TMO{002193}} &\CH{\TMO{002194}} &\CH{\TMO{002195}} &\CH{\TMO{002196}} &\CH{\TMO{002197}} &\CH{\TMO{002198}} &\CH{\TMO{002199}} &\CH{\TMO{002200}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002201}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002201} &\CH{\TMO{002201}} &\CH{\TMO{002202}} &\CH{\TMO{002203}} &\CH{\TMO{002204}} &\CH{\TMO{002205}} &\CH{\TMO{002206}} &\CH{\TMO{002207}} &\CH{\TMO{002208}} &\CH{\TMO{002209}} &\CH{\TMO{002210}} &\CH{\TMO{002211}} &\CH{\TMO{002212}} &\CH{\TMO{002213}} &\CH{\TMO{002214}} &\CH{\TMO{002215}} &\CH{\TMO{002216}} &\CH{\TMO{002217}} &\CH{\TMO{002218}} &\CH{\TMO{002219}} &\CH{\TMO{002220}} \\ \texttt{002221} &\CH{\TMO{002221}} &\CH{\TMO{002222}} &\CH{\TMO{002223}} &\CH{\TMO{002224}} &\CH{\TMO{002225}} &\CH{\TMO{002226}} &\CH{\TMO{002227}} &\CH{\TMO{002228}} &\CH{\TMO{002229}} &\CH{\TMO{002230}} &\CH{\TMO{002231}} &\CH{\TMO{002232}} &\CH{\TMO{002233}} &\CH{\TMO{002234}} &\CH{\TMO{002235}} &\CH{\TMO{002236}} &\CH{\TMO{002237}} &\CH{\TMO{002238}} &\CH{\TMO{002239}} &\CH{\TMO{002240}} \\ \texttt{002241} &\CH{\TMO{002241}} &\CH{\TMO{002242}} &\CH{\TMO{002243}} &\CH{\TMO{002244}} &\CH{\TMO{002245}} &\CH{\TMO{002246}} &\CH{\TMO{002247}} &\CH{\TMO{002248}} &\CH{\TMO{002249}} &\CH{\TMO{002250}} &\CH{\TMO{002251}} &\CH{\TMO{002252}} &\CH{\TMO{002253}} &\CH{\TMO{002254}} &\CH{\TMO{002255}} &\CH{\TMO{002256}} &\CH{\TMO{002257}} &\CH{\TMO{002258}} &\CH{\TMO{002259}} &\CH{\TMO{002260}} \\ \texttt{002261} &\CH{\TMO{002261}} &\CH{\TMO{002262}} &\CH{\TMO{002263}} &\CH{\TMO{002264}} &\CH{\TMO{002265}} &\CH{\TMO{002266}} &\CH{\TMO{002267}} &\CH{\TMO{002268}} &\CH{\TMO{002269}} &\CH{\TMO{002270}} &\CH{\TMO{002271}} &\CH{\TMO{002272}} &\CH{\TMO{002273}} &\CH{\TMO{002274}} &\CH{\TMO{002275}} &\CH{\TMO{002276}} &\CH{\TMO{002277}} &\CH{\TMO{002278}} &\CH{\TMO{002279}} &\CH{\TMO{002280}} \\ \texttt{002281} &\CH{\TMO{002281}} &\CH{\TMO{002282}} &\CH{\TMO{002283}} &\CH{\TMO{002284}} &\CH{\TMO{002285}} &\CH{\TMO{002286}} &\CH{\TMO{002287}} &\CH{\TMO{002288}} &\CH{\TMO{002289}} &\CH{\TMO{002290}} &\CH{\TMO{002291}} &\CH{\TMO{002292}} &\CH{\TMO{002293}} &\CH{\TMO{002294}} &\CH{\TMO{002295}} &\CH{\TMO{002296}} &\CH{\TMO{002297}} &\CH{\TMO{002298}} &\CH{\TMO{002299}} &\CH{\TMO{002300}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002301}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002301} &\CH{\TMO{002301}} &\CH{\TMO{002302}} &\CH{\TMO{002303}} &\CH{\TMO{002304}} &\CH{\TMO{002305}} &\CH{\TMO{002306}} &\CH{\TMO{002307}} &\CH{\TMO{002308}} &\CH{\TMO{002309}} &\CH{\TMO{002310}} &\CH{\TMO{002311}} &\CH{\TMO{002312}} &\CH{\TMO{002313}} &\CH{\TMO{002314}} &\CH{\TMO{002315}} &\CH{\TMO{002316}} &\CH{\TMO{002317}} &\CH{\TMO{002318}} &\CH{\TMO{002319}} &\CH{\TMO{002320}} \\ \texttt{002321} &\CH{\TMO{002321}} &\CH{\TMO{002322}} &\CH{\TMO{002323}} &\CH{\TMO{002324}} &\CH{\TMO{002325}} &\CH{\TMO{002326}} &\CH{\TMO{002327}} &\CH{\TMO{002328}} &\CH{\TMO{002329}} &\CH{\TMO{002330}} &\CH{\TMO{002331}} &\CH{\TMO{002332}} &\CH{\TMO{002333}} &\CH{\TMO{002334}} &\CH{\TMO{002335}} &\CH{\TMO{002336}} &\CH{\TMO{002337}} &\CH{\TMO{002338}} &\CH{\TMO{002339}} &\CH{\TMO{002340}} \\ \texttt{002341} &\CH{\TMO{002341}} &\CH{\TMO{002342}} &\CH{\TMO{002343}} &\CH{\TMO{002344}} &\CH{\TMO{002345}} &\CH{\TMO{002346}} &\CH{\TMO{002347}} &\CH{\TMO{002348}} &\CH{\TMO{002349}} &\CH{\TMO{002350}} &\CH{\TMO{002351}} &\CH{\TMO{002352}} &\CH{\TMO{002353}} &\CH{\TMO{002354}} &\CH{\TMO{002355}} &\CH{\TMO{002356}} &\CH{\TMO{002357}} &\CH{\TMO{002358}} &\CH{\TMO{002359}} &\CH{\TMO{002360}} \\ \texttt{002361} &\CH{\TMO{002361}} &\CH{\TMO{002362}} &\CH{\TMO{002363}} &\CH{\TMO{002364}} &\CH{\TMO{002365}} &\CH{\TMO{002366}} &\CH{\TMO{002367}} &\CH{\TMO{002368}} &\CH{\TMO{002369}} &\CH{\TMO{002370}} &\CH{\TMO{002371}} &\CH{\TMO{002372}} &\CH{\TMO{002373}} &\CH{\TMO{002374}} &\CH{\TMO{002375}} &\CH{\TMO{002376}} &\CH{\TMO{002377}} &\CH{\TMO{002378}} &\CH{\TMO{002379}} &\CH{\TMO{002380}} \\ \texttt{002381} &\CH{\TMO{002381}} &\CH{\TMO{002382}} &\CH{\TMO{002383}} &\CH{\TMO{002384}} &\CH{\TMO{002385}} &\CH{\TMO{002386}} &\CH{\TMO{002387}} &\CH{\TMO{002388}} &\CH{\TMO{002389}} &\CH{\TMO{002390}} &\CH{\TMO{002391}} &\CH{\TMO{002392}} &\CH{\TMO{002393}} &\CH{\TMO{002394}} &\CH{\TMO{002395}} &\CH{\TMO{002396}} &\CH{\TMO{002397}} &\CH{\TMO{002398}} &\CH{\TMO{002399}} &\CH{\TMO{002400}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002401}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002401} &\CH{\TMO{002401}} &\CH{\TMO{002402}} &\CH{\TMO{002403}} &\CH{\TMO{002404}} &\CH{\TMO{002405}} &\CH{\TMO{002406}} &\CH{\TMO{002407}} &\CH{\TMO{002408}} &\CH{\TMO{002409}} &\CH{\TMO{002410}} &\CH{\TMO{002411}} &\CH{\TMO{002412}} &\CH{\TMO{002413}} &\CH{\TMO{002414}} &\CH{\TMO{002415}} &\CH{\TMO{002416}} &\CH{\TMO{002417}} &\CH{\TMO{002418}} &\CH{\TMO{002419}} &\CH{\TMO{002420}} \\ \texttt{002421} &\CH{\TMO{002421}} &\CH{\TMO{002422}} &\CH{\TMO{002423}} &\CH{\TMO{002424}} &\CH{\TMO{002425}} &\CH{\TMO{002426}} &\CH{\TMO{002427}} &\CH{\TMO{002428}} &\CH{\TMO{002429}} &\CH{\TMO{002430}} &\CH{\TMO{002431}} &\CH{\TMO{002432}} &\CH{\TMO{002433}} &\CH{\TMO{002434}} &\CH{\TMO{002435}} &\CH{\TMO{002436}} &\CH{\TMO{002437}} &\CH{\TMO{002438}} &\CH{\TMO{002439}} &\CH{\TMO{002440}} \\ \texttt{002441} &\CH{\TMO{002441}} &\CH{\TMO{002442}} &\CH{\TMO{002443}} &\CH{\TMO{002444}} &\CH{\TMO{002445}} &\CH{\TMO{002446}} &\CH{\TMO{002447}} &\CH{\TMO{002448}} &\CH{\TMO{002449}} &\CH{\TMO{002450}} &\CH{\TMO{002451}} &\CH{\TMO{002452}} &\CH{\TMO{002453}} &\CH{\TMO{002454}} &\CH{\TMO{002455}} &\CH{\TMO{002456}} &\CH{\TMO{002457}} &\CH{\TMO{002458}} &\CH{\TMO{002459}} &\CH{\TMO{002460}} \\ \texttt{002461} &\CH{\TMO{002461}} &\CH{\TMO{002462}} &\CH{\TMO{002463}} &\CH{\TMO{002464}} &\CH{\TMO{002465}} &\CH{\TMO{002466}} &\CH{\TMO{002467}} &\CH{\TMO{002468}} &\CH{\TMO{002469}} &\CH{\TMO{002470}} &\CH{\TMO{002471}} &\CH{\TMO{002472}} &\CH{\TMO{002473}} &\CH{\TMO{002474}} &\CH{\TMO{002475}} &\CH{\TMO{002476}} &\CH{\TMO{002477}} &\CH{\TMO{002478}} &\CH{\TMO{002479}} &\CH{\TMO{002480}} \\ \texttt{002481} &\CH{\TMO{002481}} &\CH{\TMO{002482}} &\CH{\TMO{002483}} &\CH{\TMO{002484}} &\CH{\TMO{002485}} &\CH{\TMO{002486}} &\CH{\TMO{002487}} &\CH{\TMO{002488}} &\CH{\TMO{002489}} &\CH{\TMO{002490}} &\CH{\TMO{002491}} &\CH{\TMO{002492}} &\CH{\TMO{002493}} &\CH{\TMO{002494}} &\CH{\TMO{002495}} &\CH{\TMO{002496}} &\CH{\TMO{002497}} &\CH{\TMO{002498}} &\CH{\TMO{002499}} &\CH{\TMO{002500}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002501}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002501} &\CH{\TMO{002501}} &\CH{\TMO{002502}} &\CH{\TMO{002503}} &\CH{\TMO{002504}} &\CH{\TMO{002505}} &\CH{\TMO{002506}} &\CH{\TMO{002507}} &\CH{\TMO{002508}} &\CH{\TMO{002509}} &\CH{\TMO{002510}} &\CH{\TMO{002511}} &\CH{\TMO{002512}} &\CH{\TMO{002513}} &\CH{\TMO{002514}} &\CH{\TMO{002515}} &\CH{\TMO{002516}} &\CH{\TMO{002517}} &\CH{\TMO{002518}} &\CH{\TMO{002519}} &\CH{\TMO{002520}} \\ \texttt{002521} &\CH{\TMO{002521}} &\CH{\TMO{002522}} &\CH{\TMO{002523}} &\CH{\TMO{002524}} &\CH{\TMO{002525}} &\CH{\TMO{002526}} &\CH{\TMO{002527}} &\CH{\TMO{002528}} &\CH{\TMO{002529}} &\CH{\TMO{002530}} &\CH{\TMO{002531}} &\CH{\TMO{002532}} &\CH{\TMO{002533}} &\CH{\TMO{002534}} &\CH{\TMO{002535}} &\CH{\TMO{002536}} &\CH{\TMO{002537}} &\CH{\TMO{002538}} &\CH{\TMO{002539}} &\CH{\TMO{002540}} \\ \texttt{002541} &\CH{\TMO{002541}} &\CH{\TMO{002542}} &\CH{\TMO{002543}} &\CH{\TMO{002544}} &\CH{\TMO{002545}} &\CH{\TMO{002546}} &\CH{\TMO{002547}} &\CH{\TMO{002548}} &\CH{\TMO{002549}} &\CH{\TMO{002550}} &\CH{\TMO{002551}} &\CH{\TMO{002552}} &\CH{\TMO{002553}} &\CH{\TMO{002554}} &\CH{\TMO{002555}} &\CH{\TMO{002556}} &\CH{\TMO{002557}} &\CH{\TMO{002558}} &\CH{\TMO{002559}} &\CH{\TMO{002560}} \\ \texttt{002561} &\CH{\TMO{002561}} &\CH{\TMO{002562}} &\CH{\TMO{002563}} &\CH{\TMO{002564}} &\CH{\TMO{002565}} &\CH{\TMO{002566}} &\CH{\TMO{002567}} &\CH{\TMO{002568}} &\CH{\TMO{002569}} &\CH{\TMO{002570}} &\CH{\TMO{002571}} &\CH{\TMO{002572}} &\CH{\TMO{002573}} &\CH{\TMO{002574}} &\CH{\TMO{002575}} &\CH{\TMO{002576}} &\CH{\TMO{002577}} &\CH{\TMO{002578}} &\CH{\TMO{002579}} &\CH{\TMO{002580}} \\ \texttt{002581} &\CH{\TMO{002581}} &\CH{\TMO{002582}} &\CH{\TMO{002583}} &\CH{\TMO{002584}} &\CH{\TMO{002585}} &\CH{\TMO{002586}} &\CH{\TMO{002587}} &\CH{\TMO{002588}} &\CH{\TMO{002589}} &\CH{\TMO{002590}} &\CH{\TMO{002591}} &\CH{\TMO{002592}} &\CH{\TMO{002593}} &\CH{\TMO{002594}} &\CH{\TMO{002595}} &\CH{\TMO{002596}} &\CH{\TMO{002597}} &\CH{\TMO{002598}} &\CH{\TMO{002599}} &\CH{\TMO{002600}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002601}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002601} &\CH{\TMO{002601}} &\CH{\TMO{002602}} &\CH{\TMO{002603}} &\CH{\TMO{002604}} &\CH{\TMO{002605}} &\CH{\TMO{002606}} &\CH{\TMO{002607}} &\CH{\TMO{002608}} &\CH{\TMO{002609}} &\CH{\TMO{002610}} &\CH{\TMO{002611}} &\CH{\TMO{002612}} &\CH{\TMO{002613}} &\CH{\TMO{002614}} &\CH{\TMO{002615}} &\CH{\TMO{002616}} &\CH{\TMO{002617}} &\CH{\TMO{002618}} &\CH{\TMO{002619}} &\CH{\TMO{002620}} \\ \texttt{002621} &\CH{\TMO{002621}} &\CH{\TMO{002622}} &\CH{\TMO{002623}} &\CH{\TMO{002624}} &\CH{\TMO{002625}} &\CH{\TMO{002626}} &\CH{\TMO{002627}} &\CH{\TMO{002628}} &\CH{\TMO{002629}} &\CH{\TMO{002630}} &\CH{\TMO{002631}} &\CH{\TMO{002632}} &\CH{\TMO{002633}} &\CH{\TMO{002634}} &\CH{\TMO{002635}} &\CH{\TMO{002636}} &\CH{\TMO{002637}} &\CH{\TMO{002638}} &\CH{\TMO{002639}} &\CH{\TMO{002640}} \\ \texttt{002641} &\CH{\TMO{002641}} &\CH{\TMO{002642}} &\CH{\TMO{002643}} &\CH{\TMO{002644}} &\CH{\TMO{002645}} &\CH{\TMO{002646}} &\CH{\TMO{002647}} &\CH{\TMO{002648}} &\CH{\TMO{002649}} &\CH{\TMO{002650}} &\CH{\TMO{002651}} &\CH{\TMO{002652}} &\CH{\TMO{002653}} &\CH{\TMO{002654}} &\CH{\TMO{002655}} &\CH{\TMO{002656}} &\CH{\TMO{002657}} &\CH{\TMO{002658}} &\CH{\TMO{002659}} &\CH{\TMO{002660}} \\ \texttt{002661} &\CH{\TMO{002661}} &\CH{\TMO{002662}} &\CH{\TMO{002663}} &\CH{\TMO{002664}} &\CH{\TMO{002665}} &\CH{\TMO{002666}} &\CH{\TMO{002667}} &\CH{\TMO{002668}} &\CH{\TMO{002669}} &\CH{\TMO{002670}} &\CH{\TMO{002671}} &\CH{\TMO{002672}} &\CH{\TMO{002673}} &\CH{\TMO{002674}} &\CH{\TMO{002675}} &\CH{\TMO{002676}} &\CH{\TMO{002677}} &\CH{\TMO{002678}} &\CH{\TMO{002679}} &\CH{\TMO{002680}} \\ \texttt{002681} &\CH{\TMO{002681}} &\CH{\TMO{002682}} &\CH{\TMO{002683}} &\CH{\TMO{002684}} &\CH{\TMO{002685}} &\CH{\TMO{002686}} &\CH{\TMO{002687}} &\CH{\TMO{002688}} &\CH{\TMO{002689}} &\CH{\TMO{002690}} &\CH{\TMO{002691}} &\CH{\TMO{002692}} &\CH{\TMO{002693}} &\CH{\TMO{002694}} &\CH{\TMO{002695}} &\CH{\TMO{002696}} &\CH{\TMO{002697}} &\CH{\TMO{002698}} &\CH{\TMO{002699}} &\CH{\TMO{002700}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002701}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002701} &\CH{\TMO{002701}} &\CH{\TMO{002702}} &\CH{\TMO{002703}} &\CH{\TMO{002704}} &\CH{\TMO{002705}} &\CH{\TMO{002706}} &\CH{\TMO{002707}} &\CH{\TMO{002708}} &\CH{\TMO{002709}} &\CH{\TMO{002710}} &\CH{\TMO{002711}} &\CH{\TMO{002712}} &\CH{\TMO{002713}} &\CH{\TMO{002714}} &\CH{\TMO{002715}} &\CH{\TMO{002716}} &\CH{\TMO{002717}} &\CH{\TMO{002718}} &\CH{\TMO{002719}} &\CH{\TMO{002720}} \\ \texttt{002721} &\CH{\TMO{002721}} &\CH{\TMO{002722}} &\CH{\TMO{002723}} &\CH{\TMO{002724}} &\CH{\TMO{002725}} &\CH{\TMO{002726}} &\CH{\TMO{002727}} &\CH{\TMO{002728}} &\CH{\TMO{002729}} &\CH{\TMO{002730}} &\CH{\TMO{002731}} &\CH{\TMO{002732}} &\CH{\TMO{002733}} &\CH{\TMO{002734}} &\CH{\TMO{002735}} &\CH{\TMO{002736}} &\CH{\TMO{002737}} &\CH{\TMO{002738}} &\CH{\TMO{002739}} &\CH{\TMO{002740}} \\ \texttt{002741} &\CH{\TMO{002741}} &\CH{\TMO{002742}} &\CH{\TMO{002743}} &\CH{\TMO{002744}} &\CH{\TMO{002745}} &\CH{\TMO{002746}} &\CH{\TMO{002747}} &\CH{\TMO{002748}} &\CH{\TMO{002749}} &\CH{\TMO{002750}} &\CH{\TMO{002751}} &\CH{\TMO{002752}} &\CH{\TMO{002753}} &\CH{\TMO{002754}} &\CH{\TMO{002755}} &\CH{\TMO{002756}} &\CH{\TMO{002757}} &\CH{\TMO{002758}} &\CH{\TMO{002759}} &\CH{\TMO{002760}} \\ \texttt{002761} &\CH{\TMO{002761}} &\CH{\TMO{002762}} &\CH{\TMO{002763}} &\CH{\TMO{002764}} &\CH{\TMO{002765}} &\CH{\TMO{002766}} &\CH{\TMO{002767}} &\CH{\TMO{002768}} &\CH{\TMO{002769}} &\CH{\TMO{002770}} &\CH{\TMO{002771}} &\CH{\TMO{002772}} &\CH{\TMO{002773}} &\CH{\TMO{002774}} &\CH{\TMO{002775}} &\CH{\TMO{002776}} &\CH{\TMO{002777}} &\CH{\TMO{002778}} &\CH{\TMO{002779}} &\CH{\TMO{002780}} \\ \texttt{002781} &\CH{\TMO{002781}} &\CH{\TMO{002782}} &\CH{\TMO{002783}} &\CH{\TMO{002784}} &\CH{\TMO{002785}} &\CH{\TMO{002786}} &\CH{\TMO{002787}} &\CH{\TMO{002788}} &\CH{\TMO{002789}} &\CH{\TMO{002790}} &\CH{\TMO{002791}} &\CH{\TMO{002792}} &\CH{\TMO{002793}} &\CH{\TMO{002794}} &\CH{\TMO{002795}} &\CH{\TMO{002796}} &\CH{\TMO{002797}} &\CH{\TMO{002798}} &\CH{\TMO{002799}} &\CH{\TMO{002800}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002801}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002801} &\CH{\TMO{002801}} &\CH{\TMO{002802}} &\CH{\TMO{002803}} &\CH{\TMO{002804}} &\CH{\TMO{002805}} &\CH{\TMO{002806}} &\CH{\TMO{002807}} &\CH{\TMO{002808}} &\CH{\TMO{002809}} &\CH{\TMO{002810}} &\CH{\TMO{002811}} &\CH{\TMO{002812}} &\CH{\TMO{002813}} &\CH{\TMO{002814}} &\CH{\TMO{002815}} &\CH{\TMO{002816}} &\CH{\TMO{002817}} &\CH{\TMO{002818}} &\CH{\TMO{002819}} &\CH{\TMO{002820}} \\ \texttt{002821} &\CH{\TMO{002821}} &\CH{\TMO{002822}} &\CH{\TMO{002823}} &\CH{\TMO{002824}} &\CH{\TMO{002825}} &\CH{\TMO{002826}} &\CH{\TMO{002827}} &\CH{\TMO{002828}} &\CH{\TMO{002829}} &\CH{\TMO{002830}} &\CH{\TMO{002831}} &\CH{\TMO{002832}} &\CH{\TMO{002833}} &\CH{\TMO{002834}} &\CH{\TMO{002835}} &\CH{\TMO{002836}} &\CH{\TMO{002837}} &\CH{\TMO{002838}} &\CH{\TMO{002839}} &\CH{\TMO{002840}} \\ \texttt{002841} &\CH{\TMO{002841}} &\CH{\TMO{002842}} &\CH{\TMO{002843}} &\CH{\TMO{002844}} &\CH{\TMO{002845}} &\CH{\TMO{002846}} &\CH{\TMO{002847}} &\CH{\TMO{002848}} &\CH{\TMO{002849}} &\CH{\TMO{002850}} &\CH{\TMO{002851}} &\CH{\TMO{002852}} &\CH{\TMO{002853}} &\CH{\TMO{002854}} &\CH{\TMO{002855}} &\CH{\TMO{002856}} &\CH{\TMO{002857}} &\CH{\TMO{002858}} &\CH{\TMO{002859}} &\CH{\TMO{002860}} \\ \texttt{002861} &\CH{\TMO{002861}} &\CH{\TMO{002862}} &\CH{\TMO{002863}} &\CH{\TMO{002864}} &\CH{\TMO{002865}} &\CH{\TMO{002866}} &\CH{\TMO{002867}} &\CH{\TMO{002868}} &\CH{\TMO{002869}} &\CH{\TMO{002870}} &\CH{\TMO{002871}} &\CH{\TMO{002872}} &\CH{\TMO{002873}} &\CH{\TMO{002874}} &\CH{\TMO{002875}} &\CH{\TMO{002876}} &\CH{\TMO{002877}} &\CH{\TMO{002878}} &\CH{\TMO{002879}} &\CH{\TMO{002880}} \\ \texttt{002881} &\CH{\TMO{002881}} &\CH{\TMO{002882}} &\CH{\TMO{002883}} &\CH{\TMO{002884}} &\CH{\TMO{002885}} &\CH{\TMO{002886}} &\CH{\TMO{002887}} &\CH{\TMO{002888}} &\CH{\TMO{002889}} &\CH{\TMO{002890}} &\CH{\TMO{002891}} &\CH{\TMO{002892}} &\CH{\TMO{002893}} &\CH{\TMO{002894}} &\CH{\TMO{002895}} &\CH{\TMO{002896}} &\CH{\TMO{002897}} &\CH{\TMO{002898}} &\CH{\TMO{002899}} &\CH{\TMO{002900}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002901}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002901} &\CH{\TMO{002901}} &\CH{\TMO{002902}} &\CH{\TMO{002903}} &\CH{\TMO{002904}} &\CH{\TMO{002905}} &\CH{\TMO{002906}} &\CH{\TMO{002907}} &\CH{\TMO{002908}} &\CH{\TMO{002909}} &\CH{\TMO{002910}} &\CH{\TMO{002911}} &\CH{\TMO{002912}} &\CH{\TMO{002913}} &\CH{\TMO{002914}} &\CH{\TMO{002915}} &\CH{\TMO{002916}} &\CH{\TMO{002917}} &\CH{\TMO{002918}} &\CH{\TMO{002919}} &\CH{\TMO{002920}} \\ \texttt{002921} &\CH{\TMO{002921}} &\CH{\TMO{002922}} &\CH{\TMO{002923}} &\CH{\TMO{002924}} &\CH{\TMO{002925}} &\CH{\TMO{002926}} &\CH{\TMO{002927}} &\CH{\TMO{002928}} &\CH{\TMO{002929}} &\CH{\TMO{002930}} &\CH{\TMO{002931}} &\CH{\TMO{002932}} &\CH{\TMO{002933}} &\CH{\TMO{002934}} &\CH{\TMO{002935}} &\CH{\TMO{002936}} &\CH{\TMO{002937}} &\CH{\TMO{002938}} &\CH{\TMO{002939}} &\CH{\TMO{002940}} \\ \texttt{002941} &\CH{\TMO{002941}} &\CH{\TMO{002942}} &\CH{\TMO{002943}} &\CH{\TMO{002944}} &\CH{\TMO{002945}} &\CH{\TMO{002946}} &\CH{\TMO{002947}} &\CH{\TMO{002948}} &\CH{\TMO{002949}} &\CH{\TMO{002950}} &\CH{\TMO{002951}} &\CH{\TMO{002952}} &\CH{\TMO{002953}} &\CH{\TMO{002954}} &\CH{\TMO{002955}} &\CH{\TMO{002956}} &\CH{\TMO{002957}} &\CH{\TMO{002958}} &\CH{\TMO{002959}} &\CH{\TMO{002960}} \\ \texttt{002961} &\CH{\TMO{002961}} &\CH{\TMO{002962}} &\CH{\TMO{002963}} &\CH{\TMO{002964}} &\CH{\TMO{002965}} &\CH{\TMO{002966}} &\CH{\TMO{002967}} &\CH{\TMO{002968}} &\CH{\TMO{002969}} &\CH{\TMO{002970}} &\CH{\TMO{002971}} &\CH{\TMO{002972}} &\CH{\TMO{002973}} &\CH{\TMO{002974}} &\CH{\TMO{002975}} &\CH{\TMO{002976}} &\CH{\TMO{002977}} &\CH{\TMO{002978}} &\CH{\TMO{002979}} &\CH{\TMO{002980}} \\ \texttt{002981} &\CH{\TMO{002981}} &\CH{\TMO{002982}} &\CH{\TMO{002983}} &\CH{\TMO{002984}} &\CH{\TMO{002985}} &\CH{\TMO{002986}} &\CH{\TMO{002987}} &\CH{\TMO{002988}} &\CH{\TMO{002989}} &\CH{\TMO{002990}} &\CH{\TMO{002991}} &\CH{\TMO{002992}} &\CH{\TMO{002993}} &\CH{\TMO{002994}} &\CH{\TMO{002995}} &\CH{\TMO{002996}} &\CH{\TMO{002997}} &\CH{\TMO{002998}} &\CH{\TMO{002999}} &\CH{\TMO{003000}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{003001}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{003001} &\CH{\TMO{003001}} &\CH{\TMO{003002}} &\CH{\TMO{003003}} &\CH{\TMO{003004}} &\CH{\TMO{003005}} &\CH{\TMO{003006}} &\CH{\TMO{003007}} &\CH{\TMO{003008}} &\CH{\TMO{003009}} &\CH{\TMO{003010}} &\CH{\TMO{003011}} &\CH{\TMO{003012}} &\CH{\TMO{003013}} &\CH{\TMO{003014}} &\CH{\TMO{003015}} &\CH{\TMO{003016}} &\CH{\TMO{003017}} &\CH{\TMO{003018}} &\CH{\TMO{003019}} &\CH{\TMO{003020}} \\ \texttt{003021} &\CH{\TMO{003021}} &\CH{\TMO{003022}} &\CH{\TMO{003023}} &\CH{\TMO{003024}} &\CH{\TMO{003025}} &\CH{\TMO{003026}} &\CH{\TMO{003027}} &\CH{\TMO{003028}} &\CH{\TMO{003029}} &\CH{\TMO{003030}} &\CH{\TMO{003031}} &\CH{\TMO{003032}} &\CH{\TMO{003033}} &\CH{\TMO{003034}} &\CH{\TMO{003035}} &\CH{\TMO{003036}} &\CH{\TMO{003037}} &\CH{\TMO{003038}} &\CH{\TMO{003039}} &\CH{\TMO{003040}} \\ \texttt{003041} &\CH{\TMO{003041}} &\CH{\TMO{003042}} &\CH{\TMO{003043}} &\CH{\TMO{003044}} &\CH{\TMO{003045}} &\CH{\TMO{003046}} &\CH{\TMO{003047}} &\CH{\TMO{003048}} &\CH{\TMO{003049}} &\CH{\TMO{003050}} &\CH{\TMO{003051}} &\CH{\TMO{003052}} &\CH{\TMO{003053}} &\CH{\TMO{003054}} &\CH{\TMO{003055}} &\CH{\TMO{003056}} &\CH{\TMO{003057}} &\CH{\TMO{003058}} &\CH{\TMO{003059}} &\CH{\TMO{003060}} \\ \texttt{003061} &\CH{\TMO{003061}} &\CH{\TMO{003062}} &\CH{\TMO{003063}} &\CH{\TMO{003064}} &\CH{\TMO{003065}} &\CH{\TMO{003066}} &\CH{\TMO{003067}} &\CH{\TMO{003068}} &\CH{\TMO{003069}} &\CH{\TMO{003070}} &\CH{\TMO{003071}} &\CH{\TMO{003072}} &\CH{\TMO{003073}} &\CH{\TMO{003074}} &\CH{\TMO{003075}} &\CH{\TMO{003076}} &\CH{\TMO{003077}} &\CH{\TMO{003078}} &\CH{\TMO{003079}} &\CH{\TMO{003080}} \\ \texttt{003081} &\CH{\TMO{003081}} &\CH{\TMO{003082}} &\CH{\TMO{003083}} &\CH{\TMO{003084}} &\CH{\TMO{003085}} &\CH{\TMO{003086}} &\CH{\TMO{003087}} &\CH{\TMO{003088}} &\CH{\TMO{003089}} &\CH{\TMO{003090}} &\CH{\TMO{003091}} &\CH{\TMO{003092}} &\CH{\TMO{003093}} &\CH{\TMO{003094}} &\CH{\TMO{003095}} &\CH{\TMO{003096}} &\CH{\TMO{003097}} &\CH{\TMO{003098}} &\CH{\TMO{003099}} &\CH{\TMO{003100}} \\ \hline \end{tabular} \end{center}} \end{document} vflib3-3.6.14.dfsg/ascii-jtex/Mojikyo/mksample.c0000644000175000017500000000763607014202732020733 0ustar mohuramohura/* * mksample.c * Make list of all characters of Mojikyo font in LaTeX form. * * * How to use this program: * * 1. Compile this program. * % gcc -o mksample mksample.c * 2. Run this program to generate (huge) LaTeX input file. * % ./mksample > sample.tex * 3. Run pLaTeX to generate DVI file. * % platex sample.tex * 4. View/Print it. For example, * % xgdvi sample.dvi * */ #include #define MINCHAR 1 #define MAXCHAR 115000 #define NCHLINE 20 #define SIZECMD "normalsize" int ku_from, ku_to, nchline, title; char *sizecmd; int mtype; #define TYPE_TTF 1 #define TYPE_TYPE1 2 void parse_args(int argc, char **argv) { if (argc == 1) return; mtype = TYPE_TTF; title = 1; argc--; while (argc > 0){ if (strcmp(*argv, "-f") == 0){ argc--; argv++; ku_from = atoi(*argv) / 100; } else if (strcmp(*argv, "-t") == 0){ argc--; argv++; ku_to = atoi(*argv) / 100; } else if (strcmp(*argv, "-n") == 0){ argc--; argv++; if ((nchline = atoi(*argv)) < 1){ fprintf(stderr, "-n option: value must be positive.\n"); } } else if (strcmp(*argv, "-s") == 0){ argc--; argv++; sizecmd = *argv; } else if (strcmp(*argv, "-ttf") == 0){ mtype = TYPE_TTF; } else if (strcmp(*argv, "-type1") == 0){ mtype = TYPE_TYPE1; } else if ((strcmp(*argv, "-h") == 0) || (strcmp(*argv, "-help") == 0) || (strcmp(*argv, "--help") == 0)){ fprintf(stderr, "Usage: mksample [-ttf] [-type1] " "[-f FROM_CODE] [-t TO_CODE] [-n LINE_NCHARS] [-s SIZE_CMD]\n"); fprintf(stderr, "Default Values:\n"); fprintf(stderr, " FROM_CODE = %d\n", MINCHAR); fprintf(stderr, " TO_CODE = %d\n", MAXCHAR); fprintf(stderr, " LINE_NCHARS = %d\n", NCHLINE); fprintf(stderr, " SIZE_CMD = %s\n", SIZECMD); exit(0); } argc--; argv++; } } int main(int argc, char **argv) { int ku, ten, i; ku_from = MINCHAR/100; ku_to = (MAXCHAR+99)/100; title = 0; nchline = NCHLINE; sizecmd = SIZECMD; parse_args(argc, argv); printf("\\documentclass[a4paper]{jarticle}\n"); printf("\\setlength{\\topmargin}{-25mm}\n"); printf("\\setlength{\\evensidemargin}{-10mm}\n"); printf("\\setlength{\\oddsidemargin}{-10mm}\n"); printf("\\setlength{\\textwidth}{180mm}\n"); printf("\\setlength{\\textheight}{263mm}\n"); printf("\\usepackage{mojikyo}\n"); printf("\\usepackage{array}\n"); printf("\\renewcommand{\\arraystretch}{0.9}\n"); #if 1 printf("\\def\\CH#1{#1}\n"); #else printf("\\def\\CH#1{\\mbox{#1}}\n"); #endif printf("\\begin{document}\n"); if (title == 0){ printf("\\begin{center}\n"); printf("\\textsf{\\textbf{\\LARGE ʸ \\quad ʸ}}\n"); printf("\\end{center}\n"); printf("\\vskip 3em\n"); } printf("\\%s\n", sizecmd); for (ku = ku_from; ku <= ku_to; ku++){ printf("\\vskip 1.2em\n"); printf("\\vbox{\n"); printf("\\noindent\\textsf{\\textbf{%06d}}\\par\n", ku*100 + 1); printf("\\begin{center}"); printf("\\begin{tabular}{|r|"); for (i = 0; i < nchline; i++) printf("c"); printf("|}\n"); printf("\\hline\n"); printf(" \n"); for (i = 0; i < nchline; i++) printf("&\\texttt{%02d}", i+1); printf("\\\\\n"); printf("\\hline\n"); for (ten = 1; ten <= 100; ten++){ if ((ten % nchline) == 1){ if (ten > 1) printf("\\\\\n"); printf("\\texttt{%06d}\n", ku*100 + ten); } if (mtype == TYPE_TTF){ printf(" &\\CH{\\TMO{%06d}}\n", ku*100 + ten); } else { printf(" &\\CH{\\PMO{%06d}}\n", ku*100 + ten); } } while ((ten % nchline) != 1){ printf(" &\n"); ten++; } printf("\\\\\n"); printf("\\hline\n"); printf("\\end{tabular}\n"); printf("\\end{center}"); printf("}\n"); printf("\n"); } printf("\\end{document}\n"); return 0; } vflib3-3.6.14.dfsg/ascii-jtex/Mojikyo/test1.dvi0000644000175000017500000000053407014177361020521 0ustar mohuramohura; TeX output 1999.11.16:1551yiƠGF min104A;z mojik101ʁRs4A;zʁRt4A;zʁRu4A;z!#K`y cmr101*; mojik101 min10K`y cmr10vflib3-3.6.14.dfsg/ascii-jtex/Mojikyo/test1-v.tex0000644000175000017500000000024307014177412020774 0ustar mohuramohura\documentclass[a4paper]{tarticle} \usepackage{mojikyo} \usepackage{array} \begin{document} \TMO{003091}\TMO{003092}\TMO{003093} \end{document} vflib3-3.6.14.dfsg/ascii-jtex/Mojikyo/samplep.tex0000644000175000017500000023017607014433431021140 0ustar mohuramohura\documentclass[a4paper]{jarticle} \setlength{\topmargin}{-25mm} \setlength{\evensidemargin}{-10mm} \setlength{\oddsidemargin}{-10mm} \setlength{\textwidth}{180mm} \setlength{\textheight}{263mm} \usepackage{mojikyo} \usepackage{array} \renewcommand{\arraystretch}{0.9} \def\CH#1{#1} \begin{document} \normalsize \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000001}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000001} &\CH{\PMO{000001}} &\CH{\PMO{000002}} &\CH{\PMO{000003}} &\CH{\PMO{000004}} &\CH{\PMO{000005}} &\CH{\PMO{000006}} &\CH{\PMO{000007}} &\CH{\PMO{000008}} &\CH{\PMO{000009}} &\CH{\PMO{000010}} &\CH{\PMO{000011}} &\CH{\PMO{000012}} &\CH{\PMO{000013}} &\CH{\PMO{000014}} &\CH{\PMO{000015}} &\CH{\PMO{000016}} &\CH{\PMO{000017}} &\CH{\PMO{000018}} &\CH{\PMO{000019}} &\CH{\PMO{000020}} \\ \texttt{000021} &\CH{\PMO{000021}} &\CH{\PMO{000022}} &\CH{\PMO{000023}} &\CH{\PMO{000024}} &\CH{\PMO{000025}} &\CH{\PMO{000026}} &\CH{\PMO{000027}} &\CH{\PMO{000028}} &\CH{\PMO{000029}} &\CH{\PMO{000030}} &\CH{\PMO{000031}} &\CH{\PMO{000032}} &\CH{\PMO{000033}} &\CH{\PMO{000034}} &\CH{\PMO{000035}} &\CH{\PMO{000036}} &\CH{\PMO{000037}} &\CH{\PMO{000038}} &\CH{\PMO{000039}} &\CH{\PMO{000040}} \\ \texttt{000041} &\CH{\PMO{000041}} &\CH{\PMO{000042}} &\CH{\PMO{000043}} &\CH{\PMO{000044}} &\CH{\PMO{000045}} &\CH{\PMO{000046}} &\CH{\PMO{000047}} &\CH{\PMO{000048}} &\CH{\PMO{000049}} &\CH{\PMO{000050}} &\CH{\PMO{000051}} &\CH{\PMO{000052}} &\CH{\PMO{000053}} &\CH{\PMO{000054}} &\CH{\PMO{000055}} &\CH{\PMO{000056}} &\CH{\PMO{000057}} &\CH{\PMO{000058}} &\CH{\PMO{000059}} &\CH{\PMO{000060}} \\ \texttt{000061} &\CH{\PMO{000061}} &\CH{\PMO{000062}} &\CH{\PMO{000063}} &\CH{\PMO{000064}} &\CH{\PMO{000065}} &\CH{\PMO{000066}} &\CH{\PMO{000067}} &\CH{\PMO{000068}} &\CH{\PMO{000069}} &\CH{\PMO{000070}} &\CH{\PMO{000071}} &\CH{\PMO{000072}} &\CH{\PMO{000073}} &\CH{\PMO{000074}} &\CH{\PMO{000075}} &\CH{\PMO{000076}} &\CH{\PMO{000077}} &\CH{\PMO{000078}} &\CH{\PMO{000079}} &\CH{\PMO{000080}} \\ \texttt{000081} &\CH{\PMO{000081}} &\CH{\PMO{000082}} &\CH{\PMO{000083}} &\CH{\PMO{000084}} &\CH{\PMO{000085}} &\CH{\PMO{000086}} &\CH{\PMO{000087}} &\CH{\PMO{000088}} &\CH{\PMO{000089}} &\CH{\PMO{000090}} &\CH{\PMO{000091}} &\CH{\PMO{000092}} &\CH{\PMO{000093}} &\CH{\PMO{000094}} &\CH{\PMO{000095}} &\CH{\PMO{000096}} &\CH{\PMO{000097}} &\CH{\PMO{000098}} &\CH{\PMO{000099}} &\CH{\PMO{000100}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000101}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000101} &\CH{\PMO{000101}} &\CH{\PMO{000102}} &\CH{\PMO{000103}} &\CH{\PMO{000104}} &\CH{\PMO{000105}} &\CH{\PMO{000106}} &\CH{\PMO{000107}} &\CH{\PMO{000108}} &\CH{\PMO{000109}} &\CH{\PMO{000110}} &\CH{\PMO{000111}} &\CH{\PMO{000112}} &\CH{\PMO{000113}} &\CH{\PMO{000114}} &\CH{\PMO{000115}} &\CH{\PMO{000116}} &\CH{\PMO{000117}} &\CH{\PMO{000118}} &\CH{\PMO{000119}} &\CH{\PMO{000120}} \\ \texttt{000121} &\CH{\PMO{000121}} &\CH{\PMO{000122}} &\CH{\PMO{000123}} &\CH{\PMO{000124}} &\CH{\PMO{000125}} &\CH{\PMO{000126}} &\CH{\PMO{000127}} &\CH{\PMO{000128}} &\CH{\PMO{000129}} &\CH{\PMO{000130}} &\CH{\PMO{000131}} &\CH{\PMO{000132}} &\CH{\PMO{000133}} &\CH{\PMO{000134}} &\CH{\PMO{000135}} &\CH{\PMO{000136}} &\CH{\PMO{000137}} &\CH{\PMO{000138}} &\CH{\PMO{000139}} &\CH{\PMO{000140}} \\ \texttt{000141} &\CH{\PMO{000141}} &\CH{\PMO{000142}} &\CH{\PMO{000143}} &\CH{\PMO{000144}} &\CH{\PMO{000145}} &\CH{\PMO{000146}} &\CH{\PMO{000147}} &\CH{\PMO{000148}} &\CH{\PMO{000149}} &\CH{\PMO{000150}} &\CH{\PMO{000151}} &\CH{\PMO{000152}} &\CH{\PMO{000153}} &\CH{\PMO{000154}} &\CH{\PMO{000155}} &\CH{\PMO{000156}} &\CH{\PMO{000157}} &\CH{\PMO{000158}} &\CH{\PMO{000159}} &\CH{\PMO{000160}} \\ \texttt{000161} &\CH{\PMO{000161}} &\CH{\PMO{000162}} &\CH{\PMO{000163}} &\CH{\PMO{000164}} &\CH{\PMO{000165}} &\CH{\PMO{000166}} &\CH{\PMO{000167}} &\CH{\PMO{000168}} &\CH{\PMO{000169}} &\CH{\PMO{000170}} &\CH{\PMO{000171}} &\CH{\PMO{000172}} &\CH{\PMO{000173}} &\CH{\PMO{000174}} &\CH{\PMO{000175}} &\CH{\PMO{000176}} &\CH{\PMO{000177}} &\CH{\PMO{000178}} &\CH{\PMO{000179}} &\CH{\PMO{000180}} \\ \texttt{000181} &\CH{\PMO{000181}} &\CH{\PMO{000182}} &\CH{\PMO{000183}} &\CH{\PMO{000184}} &\CH{\PMO{000185}} &\CH{\PMO{000186}} &\CH{\PMO{000187}} &\CH{\PMO{000188}} &\CH{\PMO{000189}} &\CH{\PMO{000190}} &\CH{\PMO{000191}} &\CH{\PMO{000192}} &\CH{\PMO{000193}} &\CH{\PMO{000194}} &\CH{\PMO{000195}} &\CH{\PMO{000196}} &\CH{\PMO{000197}} &\CH{\PMO{000198}} &\CH{\PMO{000199}} &\CH{\PMO{000200}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000201}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000201} &\CH{\PMO{000201}} &\CH{\PMO{000202}} &\CH{\PMO{000203}} &\CH{\PMO{000204}} &\CH{\PMO{000205}} &\CH{\PMO{000206}} &\CH{\PMO{000207}} &\CH{\PMO{000208}} &\CH{\PMO{000209}} &\CH{\PMO{000210}} &\CH{\PMO{000211}} &\CH{\PMO{000212}} &\CH{\PMO{000213}} &\CH{\PMO{000214}} &\CH{\PMO{000215}} &\CH{\PMO{000216}} &\CH{\PMO{000217}} &\CH{\PMO{000218}} &\CH{\PMO{000219}} &\CH{\PMO{000220}} \\ \texttt{000221} &\CH{\PMO{000221}} &\CH{\PMO{000222}} &\CH{\PMO{000223}} &\CH{\PMO{000224}} &\CH{\PMO{000225}} &\CH{\PMO{000226}} &\CH{\PMO{000227}} &\CH{\PMO{000228}} &\CH{\PMO{000229}} &\CH{\PMO{000230}} &\CH{\PMO{000231}} &\CH{\PMO{000232}} &\CH{\PMO{000233}} &\CH{\PMO{000234}} &\CH{\PMO{000235}} &\CH{\PMO{000236}} &\CH{\PMO{000237}} &\CH{\PMO{000238}} &\CH{\PMO{000239}} &\CH{\PMO{000240}} \\ \texttt{000241} &\CH{\PMO{000241}} &\CH{\PMO{000242}} &\CH{\PMO{000243}} &\CH{\PMO{000244}} &\CH{\PMO{000245}} &\CH{\PMO{000246}} &\CH{\PMO{000247}} &\CH{\PMO{000248}} &\CH{\PMO{000249}} &\CH{\PMO{000250}} &\CH{\PMO{000251}} &\CH{\PMO{000252}} &\CH{\PMO{000253}} &\CH{\PMO{000254}} &\CH{\PMO{000255}} &\CH{\PMO{000256}} &\CH{\PMO{000257}} &\CH{\PMO{000258}} &\CH{\PMO{000259}} &\CH{\PMO{000260}} \\ \texttt{000261} &\CH{\PMO{000261}} &\CH{\PMO{000262}} &\CH{\PMO{000263}} &\CH{\PMO{000264}} &\CH{\PMO{000265}} &\CH{\PMO{000266}} &\CH{\PMO{000267}} &\CH{\PMO{000268}} &\CH{\PMO{000269}} &\CH{\PMO{000270}} &\CH{\PMO{000271}} &\CH{\PMO{000272}} &\CH{\PMO{000273}} &\CH{\PMO{000274}} &\CH{\PMO{000275}} &\CH{\PMO{000276}} &\CH{\PMO{000277}} &\CH{\PMO{000278}} &\CH{\PMO{000279}} &\CH{\PMO{000280}} \\ \texttt{000281} &\CH{\PMO{000281}} &\CH{\PMO{000282}} &\CH{\PMO{000283}} &\CH{\PMO{000284}} &\CH{\PMO{000285}} &\CH{\PMO{000286}} &\CH{\PMO{000287}} &\CH{\PMO{000288}} &\CH{\PMO{000289}} &\CH{\PMO{000290}} &\CH{\PMO{000291}} &\CH{\PMO{000292}} &\CH{\PMO{000293}} &\CH{\PMO{000294}} &\CH{\PMO{000295}} &\CH{\PMO{000296}} &\CH{\PMO{000297}} &\CH{\PMO{000298}} &\CH{\PMO{000299}} &\CH{\PMO{000300}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000301}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000301} &\CH{\PMO{000301}} &\CH{\PMO{000302}} &\CH{\PMO{000303}} &\CH{\PMO{000304}} &\CH{\PMO{000305}} &\CH{\PMO{000306}} &\CH{\PMO{000307}} &\CH{\PMO{000308}} &\CH{\PMO{000309}} &\CH{\PMO{000310}} &\CH{\PMO{000311}} &\CH{\PMO{000312}} &\CH{\PMO{000313}} &\CH{\PMO{000314}} &\CH{\PMO{000315}} &\CH{\PMO{000316}} &\CH{\PMO{000317}} &\CH{\PMO{000318}} &\CH{\PMO{000319}} &\CH{\PMO{000320}} \\ \texttt{000321} &\CH{\PMO{000321}} &\CH{\PMO{000322}} &\CH{\PMO{000323}} &\CH{\PMO{000324}} &\CH{\PMO{000325}} &\CH{\PMO{000326}} &\CH{\PMO{000327}} &\CH{\PMO{000328}} &\CH{\PMO{000329}} &\CH{\PMO{000330}} &\CH{\PMO{000331}} &\CH{\PMO{000332}} &\CH{\PMO{000333}} &\CH{\PMO{000334}} &\CH{\PMO{000335}} &\CH{\PMO{000336}} &\CH{\PMO{000337}} &\CH{\PMO{000338}} &\CH{\PMO{000339}} &\CH{\PMO{000340}} \\ \texttt{000341} &\CH{\PMO{000341}} &\CH{\PMO{000342}} &\CH{\PMO{000343}} &\CH{\PMO{000344}} &\CH{\PMO{000345}} &\CH{\PMO{000346}} &\CH{\PMO{000347}} &\CH{\PMO{000348}} &\CH{\PMO{000349}} &\CH{\PMO{000350}} &\CH{\PMO{000351}} &\CH{\PMO{000352}} &\CH{\PMO{000353}} &\CH{\PMO{000354}} &\CH{\PMO{000355}} &\CH{\PMO{000356}} &\CH{\PMO{000357}} &\CH{\PMO{000358}} &\CH{\PMO{000359}} &\CH{\PMO{000360}} \\ \texttt{000361} &\CH{\PMO{000361}} &\CH{\PMO{000362}} &\CH{\PMO{000363}} &\CH{\PMO{000364}} &\CH{\PMO{000365}} &\CH{\PMO{000366}} &\CH{\PMO{000367}} &\CH{\PMO{000368}} &\CH{\PMO{000369}} &\CH{\PMO{000370}} &\CH{\PMO{000371}} &\CH{\PMO{000372}} &\CH{\PMO{000373}} &\CH{\PMO{000374}} &\CH{\PMO{000375}} &\CH{\PMO{000376}} &\CH{\PMO{000377}} &\CH{\PMO{000378}} &\CH{\PMO{000379}} &\CH{\PMO{000380}} \\ \texttt{000381} &\CH{\PMO{000381}} &\CH{\PMO{000382}} &\CH{\PMO{000383}} &\CH{\PMO{000384}} &\CH{\PMO{000385}} &\CH{\PMO{000386}} &\CH{\PMO{000387}} &\CH{\PMO{000388}} &\CH{\PMO{000389}} &\CH{\PMO{000390}} &\CH{\PMO{000391}} &\CH{\PMO{000392}} &\CH{\PMO{000393}} &\CH{\PMO{000394}} &\CH{\PMO{000395}} &\CH{\PMO{000396}} &\CH{\PMO{000397}} &\CH{\PMO{000398}} &\CH{\PMO{000399}} &\CH{\PMO{000400}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000401}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000401} &\CH{\PMO{000401}} &\CH{\PMO{000402}} &\CH{\PMO{000403}} &\CH{\PMO{000404}} &\CH{\PMO{000405}} &\CH{\PMO{000406}} &\CH{\PMO{000407}} &\CH{\PMO{000408}} &\CH{\PMO{000409}} &\CH{\PMO{000410}} &\CH{\PMO{000411}} &\CH{\PMO{000412}} &\CH{\PMO{000413}} &\CH{\PMO{000414}} &\CH{\PMO{000415}} &\CH{\PMO{000416}} &\CH{\PMO{000417}} &\CH{\PMO{000418}} &\CH{\PMO{000419}} &\CH{\PMO{000420}} \\ \texttt{000421} &\CH{\PMO{000421}} &\CH{\PMO{000422}} &\CH{\PMO{000423}} &\CH{\PMO{000424}} &\CH{\PMO{000425}} &\CH{\PMO{000426}} &\CH{\PMO{000427}} &\CH{\PMO{000428}} &\CH{\PMO{000429}} &\CH{\PMO{000430}} &\CH{\PMO{000431}} &\CH{\PMO{000432}} &\CH{\PMO{000433}} &\CH{\PMO{000434}} &\CH{\PMO{000435}} &\CH{\PMO{000436}} &\CH{\PMO{000437}} &\CH{\PMO{000438}} &\CH{\PMO{000439}} &\CH{\PMO{000440}} \\ \texttt{000441} &\CH{\PMO{000441}} &\CH{\PMO{000442}} &\CH{\PMO{000443}} &\CH{\PMO{000444}} &\CH{\PMO{000445}} &\CH{\PMO{000446}} &\CH{\PMO{000447}} &\CH{\PMO{000448}} &\CH{\PMO{000449}} &\CH{\PMO{000450}} &\CH{\PMO{000451}} &\CH{\PMO{000452}} &\CH{\PMO{000453}} &\CH{\PMO{000454}} &\CH{\PMO{000455}} &\CH{\PMO{000456}} &\CH{\PMO{000457}} &\CH{\PMO{000458}} &\CH{\PMO{000459}} &\CH{\PMO{000460}} \\ \texttt{000461} &\CH{\PMO{000461}} &\CH{\PMO{000462}} &\CH{\PMO{000463}} &\CH{\PMO{000464}} &\CH{\PMO{000465}} &\CH{\PMO{000466}} &\CH{\PMO{000467}} &\CH{\PMO{000468}} &\CH{\PMO{000469}} &\CH{\PMO{000470}} &\CH{\PMO{000471}} &\CH{\PMO{000472}} &\CH{\PMO{000473}} &\CH{\PMO{000474}} &\CH{\PMO{000475}} &\CH{\PMO{000476}} &\CH{\PMO{000477}} &\CH{\PMO{000478}} &\CH{\PMO{000479}} &\CH{\PMO{000480}} \\ \texttt{000481} &\CH{\PMO{000481}} &\CH{\PMO{000482}} &\CH{\PMO{000483}} &\CH{\PMO{000484}} &\CH{\PMO{000485}} &\CH{\PMO{000486}} &\CH{\PMO{000487}} &\CH{\PMO{000488}} &\CH{\PMO{000489}} &\CH{\PMO{000490}} &\CH{\PMO{000491}} &\CH{\PMO{000492}} &\CH{\PMO{000493}} &\CH{\PMO{000494}} &\CH{\PMO{000495}} &\CH{\PMO{000496}} &\CH{\PMO{000497}} &\CH{\PMO{000498}} &\CH{\PMO{000499}} &\CH{\PMO{000500}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000501}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000501} &\CH{\PMO{000501}} &\CH{\PMO{000502}} &\CH{\PMO{000503}} &\CH{\PMO{000504}} &\CH{\PMO{000505}} &\CH{\PMO{000506}} &\CH{\PMO{000507}} &\CH{\PMO{000508}} &\CH{\PMO{000509}} &\CH{\PMO{000510}} &\CH{\PMO{000511}} &\CH{\PMO{000512}} &\CH{\PMO{000513}} &\CH{\PMO{000514}} &\CH{\PMO{000515}} &\CH{\PMO{000516}} &\CH{\PMO{000517}} &\CH{\PMO{000518}} &\CH{\PMO{000519}} &\CH{\PMO{000520}} \\ \texttt{000521} &\CH{\PMO{000521}} &\CH{\PMO{000522}} &\CH{\PMO{000523}} &\CH{\PMO{000524}} &\CH{\PMO{000525}} &\CH{\PMO{000526}} &\CH{\PMO{000527}} &\CH{\PMO{000528}} &\CH{\PMO{000529}} &\CH{\PMO{000530}} &\CH{\PMO{000531}} &\CH{\PMO{000532}} &\CH{\PMO{000533}} &\CH{\PMO{000534}} &\CH{\PMO{000535}} &\CH{\PMO{000536}} &\CH{\PMO{000537}} &\CH{\PMO{000538}} &\CH{\PMO{000539}} &\CH{\PMO{000540}} \\ \texttt{000541} &\CH{\PMO{000541}} &\CH{\PMO{000542}} &\CH{\PMO{000543}} &\CH{\PMO{000544}} &\CH{\PMO{000545}} &\CH{\PMO{000546}} &\CH{\PMO{000547}} &\CH{\PMO{000548}} &\CH{\PMO{000549}} &\CH{\PMO{000550}} &\CH{\PMO{000551}} &\CH{\PMO{000552}} &\CH{\PMO{000553}} &\CH{\PMO{000554}} &\CH{\PMO{000555}} &\CH{\PMO{000556}} &\CH{\PMO{000557}} &\CH{\PMO{000558}} &\CH{\PMO{000559}} &\CH{\PMO{000560}} \\ \texttt{000561} &\CH{\PMO{000561}} &\CH{\PMO{000562}} &\CH{\PMO{000563}} &\CH{\PMO{000564}} &\CH{\PMO{000565}} &\CH{\PMO{000566}} &\CH{\PMO{000567}} &\CH{\PMO{000568}} &\CH{\PMO{000569}} &\CH{\PMO{000570}} &\CH{\PMO{000571}} &\CH{\PMO{000572}} &\CH{\PMO{000573}} &\CH{\PMO{000574}} &\CH{\PMO{000575}} &\CH{\PMO{000576}} &\CH{\PMO{000577}} &\CH{\PMO{000578}} &\CH{\PMO{000579}} &\CH{\PMO{000580}} \\ \texttt{000581} &\CH{\PMO{000581}} &\CH{\PMO{000582}} &\CH{\PMO{000583}} &\CH{\PMO{000584}} &\CH{\PMO{000585}} &\CH{\PMO{000586}} &\CH{\PMO{000587}} &\CH{\PMO{000588}} &\CH{\PMO{000589}} &\CH{\PMO{000590}} &\CH{\PMO{000591}} &\CH{\PMO{000592}} &\CH{\PMO{000593}} &\CH{\PMO{000594}} &\CH{\PMO{000595}} &\CH{\PMO{000596}} &\CH{\PMO{000597}} &\CH{\PMO{000598}} &\CH{\PMO{000599}} &\CH{\PMO{000600}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000601}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000601} &\CH{\PMO{000601}} &\CH{\PMO{000602}} &\CH{\PMO{000603}} &\CH{\PMO{000604}} &\CH{\PMO{000605}} &\CH{\PMO{000606}} &\CH{\PMO{000607}} &\CH{\PMO{000608}} &\CH{\PMO{000609}} &\CH{\PMO{000610}} &\CH{\PMO{000611}} &\CH{\PMO{000612}} &\CH{\PMO{000613}} &\CH{\PMO{000614}} &\CH{\PMO{000615}} &\CH{\PMO{000616}} &\CH{\PMO{000617}} &\CH{\PMO{000618}} &\CH{\PMO{000619}} &\CH{\PMO{000620}} \\ \texttt{000621} &\CH{\PMO{000621}} &\CH{\PMO{000622}} &\CH{\PMO{000623}} &\CH{\PMO{000624}} &\CH{\PMO{000625}} &\CH{\PMO{000626}} &\CH{\PMO{000627}} &\CH{\PMO{000628}} &\CH{\PMO{000629}} &\CH{\PMO{000630}} &\CH{\PMO{000631}} &\CH{\PMO{000632}} &\CH{\PMO{000633}} &\CH{\PMO{000634}} &\CH{\PMO{000635}} &\CH{\PMO{000636}} &\CH{\PMO{000637}} &\CH{\PMO{000638}} &\CH{\PMO{000639}} &\CH{\PMO{000640}} \\ \texttt{000641} &\CH{\PMO{000641}} &\CH{\PMO{000642}} &\CH{\PMO{000643}} &\CH{\PMO{000644}} &\CH{\PMO{000645}} &\CH{\PMO{000646}} &\CH{\PMO{000647}} &\CH{\PMO{000648}} &\CH{\PMO{000649}} &\CH{\PMO{000650}} &\CH{\PMO{000651}} &\CH{\PMO{000652}} &\CH{\PMO{000653}} &\CH{\PMO{000654}} &\CH{\PMO{000655}} &\CH{\PMO{000656}} &\CH{\PMO{000657}} &\CH{\PMO{000658}} &\CH{\PMO{000659}} &\CH{\PMO{000660}} \\ \texttt{000661} &\CH{\PMO{000661}} &\CH{\PMO{000662}} &\CH{\PMO{000663}} &\CH{\PMO{000664}} &\CH{\PMO{000665}} &\CH{\PMO{000666}} &\CH{\PMO{000667}} &\CH{\PMO{000668}} &\CH{\PMO{000669}} &\CH{\PMO{000670}} &\CH{\PMO{000671}} &\CH{\PMO{000672}} &\CH{\PMO{000673}} &\CH{\PMO{000674}} &\CH{\PMO{000675}} &\CH{\PMO{000676}} &\CH{\PMO{000677}} &\CH{\PMO{000678}} &\CH{\PMO{000679}} &\CH{\PMO{000680}} \\ \texttt{000681} &\CH{\PMO{000681}} &\CH{\PMO{000682}} &\CH{\PMO{000683}} &\CH{\PMO{000684}} &\CH{\PMO{000685}} &\CH{\PMO{000686}} &\CH{\PMO{000687}} &\CH{\PMO{000688}} &\CH{\PMO{000689}} &\CH{\PMO{000690}} &\CH{\PMO{000691}} &\CH{\PMO{000692}} &\CH{\PMO{000693}} &\CH{\PMO{000694}} &\CH{\PMO{000695}} &\CH{\PMO{000696}} &\CH{\PMO{000697}} &\CH{\PMO{000698}} &\CH{\PMO{000699}} &\CH{\PMO{000700}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000701}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000701} &\CH{\PMO{000701}} &\CH{\PMO{000702}} &\CH{\PMO{000703}} &\CH{\PMO{000704}} &\CH{\PMO{000705}} &\CH{\PMO{000706}} &\CH{\PMO{000707}} &\CH{\PMO{000708}} &\CH{\PMO{000709}} &\CH{\PMO{000710}} &\CH{\PMO{000711}} &\CH{\PMO{000712}} &\CH{\PMO{000713}} &\CH{\PMO{000714}} &\CH{\PMO{000715}} &\CH{\PMO{000716}} &\CH{\PMO{000717}} &\CH{\PMO{000718}} &\CH{\PMO{000719}} &\CH{\PMO{000720}} \\ \texttt{000721} &\CH{\PMO{000721}} &\CH{\PMO{000722}} &\CH{\PMO{000723}} &\CH{\PMO{000724}} &\CH{\PMO{000725}} &\CH{\PMO{000726}} &\CH{\PMO{000727}} &\CH{\PMO{000728}} &\CH{\PMO{000729}} &\CH{\PMO{000730}} &\CH{\PMO{000731}} &\CH{\PMO{000732}} &\CH{\PMO{000733}} &\CH{\PMO{000734}} &\CH{\PMO{000735}} &\CH{\PMO{000736}} &\CH{\PMO{000737}} &\CH{\PMO{000738}} &\CH{\PMO{000739}} &\CH{\PMO{000740}} \\ \texttt{000741} &\CH{\PMO{000741}} &\CH{\PMO{000742}} &\CH{\PMO{000743}} &\CH{\PMO{000744}} &\CH{\PMO{000745}} &\CH{\PMO{000746}} &\CH{\PMO{000747}} &\CH{\PMO{000748}} &\CH{\PMO{000749}} &\CH{\PMO{000750}} &\CH{\PMO{000751}} &\CH{\PMO{000752}} &\CH{\PMO{000753}} &\CH{\PMO{000754}} &\CH{\PMO{000755}} &\CH{\PMO{000756}} &\CH{\PMO{000757}} &\CH{\PMO{000758}} &\CH{\PMO{000759}} &\CH{\PMO{000760}} \\ \texttt{000761} &\CH{\PMO{000761}} &\CH{\PMO{000762}} &\CH{\PMO{000763}} &\CH{\PMO{000764}} &\CH{\PMO{000765}} &\CH{\PMO{000766}} &\CH{\PMO{000767}} &\CH{\PMO{000768}} &\CH{\PMO{000769}} &\CH{\PMO{000770}} &\CH{\PMO{000771}} &\CH{\PMO{000772}} &\CH{\PMO{000773}} &\CH{\PMO{000774}} &\CH{\PMO{000775}} &\CH{\PMO{000776}} &\CH{\PMO{000777}} &\CH{\PMO{000778}} &\CH{\PMO{000779}} &\CH{\PMO{000780}} \\ \texttt{000781} &\CH{\PMO{000781}} &\CH{\PMO{000782}} &\CH{\PMO{000783}} &\CH{\PMO{000784}} &\CH{\PMO{000785}} &\CH{\PMO{000786}} &\CH{\PMO{000787}} &\CH{\PMO{000788}} &\CH{\PMO{000789}} &\CH{\PMO{000790}} &\CH{\PMO{000791}} &\CH{\PMO{000792}} &\CH{\PMO{000793}} &\CH{\PMO{000794}} &\CH{\PMO{000795}} &\CH{\PMO{000796}} &\CH{\PMO{000797}} &\CH{\PMO{000798}} &\CH{\PMO{000799}} &\CH{\PMO{000800}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000801}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000801} &\CH{\PMO{000801}} &\CH{\PMO{000802}} &\CH{\PMO{000803}} &\CH{\PMO{000804}} &\CH{\PMO{000805}} &\CH{\PMO{000806}} &\CH{\PMO{000807}} &\CH{\PMO{000808}} &\CH{\PMO{000809}} &\CH{\PMO{000810}} &\CH{\PMO{000811}} &\CH{\PMO{000812}} &\CH{\PMO{000813}} &\CH{\PMO{000814}} &\CH{\PMO{000815}} &\CH{\PMO{000816}} &\CH{\PMO{000817}} &\CH{\PMO{000818}} &\CH{\PMO{000819}} &\CH{\PMO{000820}} \\ \texttt{000821} &\CH{\PMO{000821}} &\CH{\PMO{000822}} &\CH{\PMO{000823}} &\CH{\PMO{000824}} &\CH{\PMO{000825}} &\CH{\PMO{000826}} &\CH{\PMO{000827}} &\CH{\PMO{000828}} &\CH{\PMO{000829}} &\CH{\PMO{000830}} &\CH{\PMO{000831}} &\CH{\PMO{000832}} &\CH{\PMO{000833}} &\CH{\PMO{000834}} &\CH{\PMO{000835}} &\CH{\PMO{000836}} &\CH{\PMO{000837}} &\CH{\PMO{000838}} &\CH{\PMO{000839}} &\CH{\PMO{000840}} \\ \texttt{000841} &\CH{\PMO{000841}} &\CH{\PMO{000842}} &\CH{\PMO{000843}} &\CH{\PMO{000844}} &\CH{\PMO{000845}} &\CH{\PMO{000846}} &\CH{\PMO{000847}} &\CH{\PMO{000848}} &\CH{\PMO{000849}} &\CH{\PMO{000850}} &\CH{\PMO{000851}} &\CH{\PMO{000852}} &\CH{\PMO{000853}} &\CH{\PMO{000854}} &\CH{\PMO{000855}} &\CH{\PMO{000856}} &\CH{\PMO{000857}} &\CH{\PMO{000858}} &\CH{\PMO{000859}} &\CH{\PMO{000860}} \\ \texttt{000861} &\CH{\PMO{000861}} &\CH{\PMO{000862}} &\CH{\PMO{000863}} &\CH{\PMO{000864}} &\CH{\PMO{000865}} &\CH{\PMO{000866}} &\CH{\PMO{000867}} &\CH{\PMO{000868}} &\CH{\PMO{000869}} &\CH{\PMO{000870}} &\CH{\PMO{000871}} &\CH{\PMO{000872}} &\CH{\PMO{000873}} &\CH{\PMO{000874}} &\CH{\PMO{000875}} &\CH{\PMO{000876}} &\CH{\PMO{000877}} &\CH{\PMO{000878}} &\CH{\PMO{000879}} &\CH{\PMO{000880}} \\ \texttt{000881} &\CH{\PMO{000881}} &\CH{\PMO{000882}} &\CH{\PMO{000883}} &\CH{\PMO{000884}} &\CH{\PMO{000885}} &\CH{\PMO{000886}} &\CH{\PMO{000887}} &\CH{\PMO{000888}} &\CH{\PMO{000889}} &\CH{\PMO{000890}} &\CH{\PMO{000891}} &\CH{\PMO{000892}} &\CH{\PMO{000893}} &\CH{\PMO{000894}} &\CH{\PMO{000895}} &\CH{\PMO{000896}} &\CH{\PMO{000897}} &\CH{\PMO{000898}} &\CH{\PMO{000899}} &\CH{\PMO{000900}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{000901}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{000901} &\CH{\PMO{000901}} &\CH{\PMO{000902}} &\CH{\PMO{000903}} &\CH{\PMO{000904}} &\CH{\PMO{000905}} &\CH{\PMO{000906}} &\CH{\PMO{000907}} &\CH{\PMO{000908}} &\CH{\PMO{000909}} &\CH{\PMO{000910}} &\CH{\PMO{000911}} &\CH{\PMO{000912}} &\CH{\PMO{000913}} &\CH{\PMO{000914}} &\CH{\PMO{000915}} &\CH{\PMO{000916}} &\CH{\PMO{000917}} &\CH{\PMO{000918}} &\CH{\PMO{000919}} &\CH{\PMO{000920}} \\ \texttt{000921} &\CH{\PMO{000921}} &\CH{\PMO{000922}} &\CH{\PMO{000923}} &\CH{\PMO{000924}} &\CH{\PMO{000925}} &\CH{\PMO{000926}} &\CH{\PMO{000927}} &\CH{\PMO{000928}} &\CH{\PMO{000929}} &\CH{\PMO{000930}} &\CH{\PMO{000931}} &\CH{\PMO{000932}} &\CH{\PMO{000933}} &\CH{\PMO{000934}} &\CH{\PMO{000935}} &\CH{\PMO{000936}} &\CH{\PMO{000937}} &\CH{\PMO{000938}} &\CH{\PMO{000939}} &\CH{\PMO{000940}} \\ \texttt{000941} &\CH{\PMO{000941}} &\CH{\PMO{000942}} &\CH{\PMO{000943}} &\CH{\PMO{000944}} &\CH{\PMO{000945}} &\CH{\PMO{000946}} &\CH{\PMO{000947}} &\CH{\PMO{000948}} &\CH{\PMO{000949}} &\CH{\PMO{000950}} &\CH{\PMO{000951}} &\CH{\PMO{000952}} &\CH{\PMO{000953}} &\CH{\PMO{000954}} &\CH{\PMO{000955}} &\CH{\PMO{000956}} &\CH{\PMO{000957}} &\CH{\PMO{000958}} &\CH{\PMO{000959}} &\CH{\PMO{000960}} \\ \texttt{000961} &\CH{\PMO{000961}} &\CH{\PMO{000962}} &\CH{\PMO{000963}} &\CH{\PMO{000964}} &\CH{\PMO{000965}} &\CH{\PMO{000966}} &\CH{\PMO{000967}} &\CH{\PMO{000968}} &\CH{\PMO{000969}} &\CH{\PMO{000970}} &\CH{\PMO{000971}} &\CH{\PMO{000972}} &\CH{\PMO{000973}} &\CH{\PMO{000974}} &\CH{\PMO{000975}} &\CH{\PMO{000976}} &\CH{\PMO{000977}} &\CH{\PMO{000978}} &\CH{\PMO{000979}} &\CH{\PMO{000980}} \\ \texttt{000981} &\CH{\PMO{000981}} &\CH{\PMO{000982}} &\CH{\PMO{000983}} &\CH{\PMO{000984}} &\CH{\PMO{000985}} &\CH{\PMO{000986}} &\CH{\PMO{000987}} &\CH{\PMO{000988}} &\CH{\PMO{000989}} &\CH{\PMO{000990}} &\CH{\PMO{000991}} &\CH{\PMO{000992}} &\CH{\PMO{000993}} &\CH{\PMO{000994}} &\CH{\PMO{000995}} &\CH{\PMO{000996}} &\CH{\PMO{000997}} &\CH{\PMO{000998}} &\CH{\PMO{000999}} &\CH{\PMO{001000}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001001}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001001} &\CH{\PMO{001001}} &\CH{\PMO{001002}} &\CH{\PMO{001003}} &\CH{\PMO{001004}} &\CH{\PMO{001005}} &\CH{\PMO{001006}} &\CH{\PMO{001007}} &\CH{\PMO{001008}} &\CH{\PMO{001009}} &\CH{\PMO{001010}} &\CH{\PMO{001011}} &\CH{\PMO{001012}} &\CH{\PMO{001013}} &\CH{\PMO{001014}} &\CH{\PMO{001015}} &\CH{\PMO{001016}} &\CH{\PMO{001017}} &\CH{\PMO{001018}} &\CH{\PMO{001019}} &\CH{\PMO{001020}} \\ \texttt{001021} &\CH{\PMO{001021}} &\CH{\PMO{001022}} &\CH{\PMO{001023}} &\CH{\PMO{001024}} &\CH{\PMO{001025}} &\CH{\PMO{001026}} &\CH{\PMO{001027}} &\CH{\PMO{001028}} &\CH{\PMO{001029}} &\CH{\PMO{001030}} &\CH{\PMO{001031}} &\CH{\PMO{001032}} &\CH{\PMO{001033}} &\CH{\PMO{001034}} &\CH{\PMO{001035}} &\CH{\PMO{001036}} &\CH{\PMO{001037}} &\CH{\PMO{001038}} &\CH{\PMO{001039}} &\CH{\PMO{001040}} \\ \texttt{001041} &\CH{\PMO{001041}} &\CH{\PMO{001042}} &\CH{\PMO{001043}} &\CH{\PMO{001044}} &\CH{\PMO{001045}} &\CH{\PMO{001046}} &\CH{\PMO{001047}} &\CH{\PMO{001048}} &\CH{\PMO{001049}} &\CH{\PMO{001050}} &\CH{\PMO{001051}} &\CH{\PMO{001052}} &\CH{\PMO{001053}} &\CH{\PMO{001054}} &\CH{\PMO{001055}} &\CH{\PMO{001056}} &\CH{\PMO{001057}} &\CH{\PMO{001058}} &\CH{\PMO{001059}} &\CH{\PMO{001060}} \\ \texttt{001061} &\CH{\PMO{001061}} &\CH{\PMO{001062}} &\CH{\PMO{001063}} &\CH{\PMO{001064}} &\CH{\PMO{001065}} &\CH{\PMO{001066}} &\CH{\PMO{001067}} &\CH{\PMO{001068}} &\CH{\PMO{001069}} &\CH{\PMO{001070}} &\CH{\PMO{001071}} &\CH{\PMO{001072}} &\CH{\PMO{001073}} &\CH{\PMO{001074}} &\CH{\PMO{001075}} &\CH{\PMO{001076}} &\CH{\PMO{001077}} &\CH{\PMO{001078}} &\CH{\PMO{001079}} &\CH{\PMO{001080}} \\ \texttt{001081} &\CH{\PMO{001081}} &\CH{\PMO{001082}} &\CH{\PMO{001083}} &\CH{\PMO{001084}} &\CH{\PMO{001085}} &\CH{\PMO{001086}} &\CH{\PMO{001087}} &\CH{\PMO{001088}} &\CH{\PMO{001089}} &\CH{\PMO{001090}} &\CH{\PMO{001091}} &\CH{\PMO{001092}} &\CH{\PMO{001093}} &\CH{\PMO{001094}} &\CH{\PMO{001095}} &\CH{\PMO{001096}} &\CH{\PMO{001097}} &\CH{\PMO{001098}} &\CH{\PMO{001099}} &\CH{\PMO{001100}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001101}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001101} &\CH{\PMO{001101}} &\CH{\PMO{001102}} &\CH{\PMO{001103}} &\CH{\PMO{001104}} &\CH{\PMO{001105}} &\CH{\PMO{001106}} &\CH{\PMO{001107}} &\CH{\PMO{001108}} &\CH{\PMO{001109}} &\CH{\PMO{001110}} &\CH{\PMO{001111}} &\CH{\PMO{001112}} &\CH{\PMO{001113}} &\CH{\PMO{001114}} &\CH{\PMO{001115}} &\CH{\PMO{001116}} &\CH{\PMO{001117}} &\CH{\PMO{001118}} &\CH{\PMO{001119}} &\CH{\PMO{001120}} \\ \texttt{001121} &\CH{\PMO{001121}} &\CH{\PMO{001122}} &\CH{\PMO{001123}} &\CH{\PMO{001124}} &\CH{\PMO{001125}} &\CH{\PMO{001126}} &\CH{\PMO{001127}} &\CH{\PMO{001128}} &\CH{\PMO{001129}} &\CH{\PMO{001130}} &\CH{\PMO{001131}} &\CH{\PMO{001132}} &\CH{\PMO{001133}} &\CH{\PMO{001134}} &\CH{\PMO{001135}} &\CH{\PMO{001136}} &\CH{\PMO{001137}} &\CH{\PMO{001138}} &\CH{\PMO{001139}} &\CH{\PMO{001140}} \\ \texttt{001141} &\CH{\PMO{001141}} &\CH{\PMO{001142}} &\CH{\PMO{001143}} &\CH{\PMO{001144}} &\CH{\PMO{001145}} &\CH{\PMO{001146}} &\CH{\PMO{001147}} &\CH{\PMO{001148}} &\CH{\PMO{001149}} &\CH{\PMO{001150}} &\CH{\PMO{001151}} &\CH{\PMO{001152}} &\CH{\PMO{001153}} &\CH{\PMO{001154}} &\CH{\PMO{001155}} &\CH{\PMO{001156}} &\CH{\PMO{001157}} &\CH{\PMO{001158}} &\CH{\PMO{001159}} &\CH{\PMO{001160}} \\ \texttt{001161} &\CH{\PMO{001161}} &\CH{\PMO{001162}} &\CH{\PMO{001163}} &\CH{\PMO{001164}} &\CH{\PMO{001165}} &\CH{\PMO{001166}} &\CH{\PMO{001167}} &\CH{\PMO{001168}} &\CH{\PMO{001169}} &\CH{\PMO{001170}} &\CH{\PMO{001171}} &\CH{\PMO{001172}} &\CH{\PMO{001173}} &\CH{\PMO{001174}} &\CH{\PMO{001175}} &\CH{\PMO{001176}} &\CH{\PMO{001177}} &\CH{\PMO{001178}} &\CH{\PMO{001179}} &\CH{\PMO{001180}} \\ \texttt{001181} &\CH{\PMO{001181}} &\CH{\PMO{001182}} &\CH{\PMO{001183}} &\CH{\PMO{001184}} &\CH{\PMO{001185}} &\CH{\PMO{001186}} &\CH{\PMO{001187}} &\CH{\PMO{001188}} &\CH{\PMO{001189}} &\CH{\PMO{001190}} &\CH{\PMO{001191}} &\CH{\PMO{001192}} &\CH{\PMO{001193}} &\CH{\PMO{001194}} &\CH{\PMO{001195}} &\CH{\PMO{001196}} &\CH{\PMO{001197}} &\CH{\PMO{001198}} &\CH{\PMO{001199}} &\CH{\PMO{001200}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001201}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001201} &\CH{\PMO{001201}} &\CH{\PMO{001202}} &\CH{\PMO{001203}} &\CH{\PMO{001204}} &\CH{\PMO{001205}} &\CH{\PMO{001206}} &\CH{\PMO{001207}} &\CH{\PMO{001208}} &\CH{\PMO{001209}} &\CH{\PMO{001210}} &\CH{\PMO{001211}} &\CH{\PMO{001212}} &\CH{\PMO{001213}} &\CH{\PMO{001214}} &\CH{\PMO{001215}} &\CH{\PMO{001216}} &\CH{\PMO{001217}} &\CH{\PMO{001218}} &\CH{\PMO{001219}} &\CH{\PMO{001220}} \\ \texttt{001221} &\CH{\PMO{001221}} &\CH{\PMO{001222}} &\CH{\PMO{001223}} &\CH{\PMO{001224}} &\CH{\PMO{001225}} &\CH{\PMO{001226}} &\CH{\PMO{001227}} &\CH{\PMO{001228}} &\CH{\PMO{001229}} &\CH{\PMO{001230}} &\CH{\PMO{001231}} &\CH{\PMO{001232}} &\CH{\PMO{001233}} &\CH{\PMO{001234}} &\CH{\PMO{001235}} &\CH{\PMO{001236}} &\CH{\PMO{001237}} &\CH{\PMO{001238}} &\CH{\PMO{001239}} &\CH{\PMO{001240}} \\ \texttt{001241} &\CH{\PMO{001241}} &\CH{\PMO{001242}} &\CH{\PMO{001243}} &\CH{\PMO{001244}} &\CH{\PMO{001245}} &\CH{\PMO{001246}} &\CH{\PMO{001247}} &\CH{\PMO{001248}} &\CH{\PMO{001249}} &\CH{\PMO{001250}} &\CH{\PMO{001251}} &\CH{\PMO{001252}} &\CH{\PMO{001253}} &\CH{\PMO{001254}} &\CH{\PMO{001255}} &\CH{\PMO{001256}} &\CH{\PMO{001257}} &\CH{\PMO{001258}} &\CH{\PMO{001259}} &\CH{\PMO{001260}} \\ \texttt{001261} &\CH{\PMO{001261}} &\CH{\PMO{001262}} &\CH{\PMO{001263}} &\CH{\PMO{001264}} &\CH{\PMO{001265}} &\CH{\PMO{001266}} &\CH{\PMO{001267}} &\CH{\PMO{001268}} &\CH{\PMO{001269}} &\CH{\PMO{001270}} &\CH{\PMO{001271}} &\CH{\PMO{001272}} &\CH{\PMO{001273}} &\CH{\PMO{001274}} &\CH{\PMO{001275}} &\CH{\PMO{001276}} &\CH{\PMO{001277}} &\CH{\PMO{001278}} &\CH{\PMO{001279}} &\CH{\PMO{001280}} \\ \texttt{001281} &\CH{\PMO{001281}} &\CH{\PMO{001282}} &\CH{\PMO{001283}} &\CH{\PMO{001284}} &\CH{\PMO{001285}} &\CH{\PMO{001286}} &\CH{\PMO{001287}} &\CH{\PMO{001288}} &\CH{\PMO{001289}} &\CH{\PMO{001290}} &\CH{\PMO{001291}} &\CH{\PMO{001292}} &\CH{\PMO{001293}} &\CH{\PMO{001294}} &\CH{\PMO{001295}} &\CH{\PMO{001296}} &\CH{\PMO{001297}} &\CH{\PMO{001298}} &\CH{\PMO{001299}} &\CH{\PMO{001300}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001301}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001301} &\CH{\PMO{001301}} &\CH{\PMO{001302}} &\CH{\PMO{001303}} &\CH{\PMO{001304}} &\CH{\PMO{001305}} &\CH{\PMO{001306}} &\CH{\PMO{001307}} &\CH{\PMO{001308}} &\CH{\PMO{001309}} &\CH{\PMO{001310}} &\CH{\PMO{001311}} &\CH{\PMO{001312}} &\CH{\PMO{001313}} &\CH{\PMO{001314}} &\CH{\PMO{001315}} &\CH{\PMO{001316}} &\CH{\PMO{001317}} &\CH{\PMO{001318}} &\CH{\PMO{001319}} &\CH{\PMO{001320}} \\ \texttt{001321} &\CH{\PMO{001321}} &\CH{\PMO{001322}} &\CH{\PMO{001323}} &\CH{\PMO{001324}} &\CH{\PMO{001325}} &\CH{\PMO{001326}} &\CH{\PMO{001327}} &\CH{\PMO{001328}} &\CH{\PMO{001329}} &\CH{\PMO{001330}} &\CH{\PMO{001331}} &\CH{\PMO{001332}} &\CH{\PMO{001333}} &\CH{\PMO{001334}} &\CH{\PMO{001335}} &\CH{\PMO{001336}} &\CH{\PMO{001337}} &\CH{\PMO{001338}} &\CH{\PMO{001339}} &\CH{\PMO{001340}} \\ \texttt{001341} &\CH{\PMO{001341}} &\CH{\PMO{001342}} &\CH{\PMO{001343}} &\CH{\PMO{001344}} &\CH{\PMO{001345}} &\CH{\PMO{001346}} &\CH{\PMO{001347}} &\CH{\PMO{001348}} &\CH{\PMO{001349}} &\CH{\PMO{001350}} &\CH{\PMO{001351}} &\CH{\PMO{001352}} &\CH{\PMO{001353}} &\CH{\PMO{001354}} &\CH{\PMO{001355}} &\CH{\PMO{001356}} &\CH{\PMO{001357}} &\CH{\PMO{001358}} &\CH{\PMO{001359}} &\CH{\PMO{001360}} \\ \texttt{001361} &\CH{\PMO{001361}} &\CH{\PMO{001362}} &\CH{\PMO{001363}} &\CH{\PMO{001364}} &\CH{\PMO{001365}} &\CH{\PMO{001366}} &\CH{\PMO{001367}} &\CH{\PMO{001368}} &\CH{\PMO{001369}} &\CH{\PMO{001370}} &\CH{\PMO{001371}} &\CH{\PMO{001372}} &\CH{\PMO{001373}} &\CH{\PMO{001374}} &\CH{\PMO{001375}} &\CH{\PMO{001376}} &\CH{\PMO{001377}} &\CH{\PMO{001378}} &\CH{\PMO{001379}} &\CH{\PMO{001380}} \\ \texttt{001381} &\CH{\PMO{001381}} &\CH{\PMO{001382}} &\CH{\PMO{001383}} &\CH{\PMO{001384}} &\CH{\PMO{001385}} &\CH{\PMO{001386}} &\CH{\PMO{001387}} &\CH{\PMO{001388}} &\CH{\PMO{001389}} &\CH{\PMO{001390}} &\CH{\PMO{001391}} &\CH{\PMO{001392}} &\CH{\PMO{001393}} &\CH{\PMO{001394}} &\CH{\PMO{001395}} &\CH{\PMO{001396}} &\CH{\PMO{001397}} &\CH{\PMO{001398}} &\CH{\PMO{001399}} &\CH{\PMO{001400}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001401}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001401} &\CH{\PMO{001401}} &\CH{\PMO{001402}} &\CH{\PMO{001403}} &\CH{\PMO{001404}} &\CH{\PMO{001405}} &\CH{\PMO{001406}} &\CH{\PMO{001407}} &\CH{\PMO{001408}} &\CH{\PMO{001409}} &\CH{\PMO{001410}} &\CH{\PMO{001411}} &\CH{\PMO{001412}} &\CH{\PMO{001413}} &\CH{\PMO{001414}} &\CH{\PMO{001415}} &\CH{\PMO{001416}} &\CH{\PMO{001417}} &\CH{\PMO{001418}} &\CH{\PMO{001419}} &\CH{\PMO{001420}} \\ \texttt{001421} &\CH{\PMO{001421}} &\CH{\PMO{001422}} &\CH{\PMO{001423}} &\CH{\PMO{001424}} &\CH{\PMO{001425}} &\CH{\PMO{001426}} &\CH{\PMO{001427}} &\CH{\PMO{001428}} &\CH{\PMO{001429}} &\CH{\PMO{001430}} &\CH{\PMO{001431}} &\CH{\PMO{001432}} &\CH{\PMO{001433}} &\CH{\PMO{001434}} &\CH{\PMO{001435}} &\CH{\PMO{001436}} &\CH{\PMO{001437}} &\CH{\PMO{001438}} &\CH{\PMO{001439}} &\CH{\PMO{001440}} \\ \texttt{001441} &\CH{\PMO{001441}} &\CH{\PMO{001442}} &\CH{\PMO{001443}} &\CH{\PMO{001444}} &\CH{\PMO{001445}} &\CH{\PMO{001446}} &\CH{\PMO{001447}} &\CH{\PMO{001448}} &\CH{\PMO{001449}} &\CH{\PMO{001450}} &\CH{\PMO{001451}} &\CH{\PMO{001452}} &\CH{\PMO{001453}} &\CH{\PMO{001454}} &\CH{\PMO{001455}} &\CH{\PMO{001456}} &\CH{\PMO{001457}} &\CH{\PMO{001458}} &\CH{\PMO{001459}} &\CH{\PMO{001460}} \\ \texttt{001461} &\CH{\PMO{001461}} &\CH{\PMO{001462}} &\CH{\PMO{001463}} &\CH{\PMO{001464}} &\CH{\PMO{001465}} &\CH{\PMO{001466}} &\CH{\PMO{001467}} &\CH{\PMO{001468}} &\CH{\PMO{001469}} &\CH{\PMO{001470}} &\CH{\PMO{001471}} &\CH{\PMO{001472}} &\CH{\PMO{001473}} &\CH{\PMO{001474}} &\CH{\PMO{001475}} &\CH{\PMO{001476}} &\CH{\PMO{001477}} &\CH{\PMO{001478}} &\CH{\PMO{001479}} &\CH{\PMO{001480}} \\ \texttt{001481} &\CH{\PMO{001481}} &\CH{\PMO{001482}} &\CH{\PMO{001483}} &\CH{\PMO{001484}} &\CH{\PMO{001485}} &\CH{\PMO{001486}} &\CH{\PMO{001487}} &\CH{\PMO{001488}} &\CH{\PMO{001489}} &\CH{\PMO{001490}} &\CH{\PMO{001491}} &\CH{\PMO{001492}} &\CH{\PMO{001493}} &\CH{\PMO{001494}} &\CH{\PMO{001495}} &\CH{\PMO{001496}} &\CH{\PMO{001497}} &\CH{\PMO{001498}} &\CH{\PMO{001499}} &\CH{\PMO{001500}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001501}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001501} &\CH{\PMO{001501}} &\CH{\PMO{001502}} &\CH{\PMO{001503}} &\CH{\PMO{001504}} &\CH{\PMO{001505}} &\CH{\PMO{001506}} &\CH{\PMO{001507}} &\CH{\PMO{001508}} &\CH{\PMO{001509}} &\CH{\PMO{001510}} &\CH{\PMO{001511}} &\CH{\PMO{001512}} &\CH{\PMO{001513}} &\CH{\PMO{001514}} &\CH{\PMO{001515}} &\CH{\PMO{001516}} &\CH{\PMO{001517}} &\CH{\PMO{001518}} &\CH{\PMO{001519}} &\CH{\PMO{001520}} \\ \texttt{001521} &\CH{\PMO{001521}} &\CH{\PMO{001522}} &\CH{\PMO{001523}} &\CH{\PMO{001524}} &\CH{\PMO{001525}} &\CH{\PMO{001526}} &\CH{\PMO{001527}} &\CH{\PMO{001528}} &\CH{\PMO{001529}} &\CH{\PMO{001530}} &\CH{\PMO{001531}} &\CH{\PMO{001532}} &\CH{\PMO{001533}} &\CH{\PMO{001534}} &\CH{\PMO{001535}} &\CH{\PMO{001536}} &\CH{\PMO{001537}} &\CH{\PMO{001538}} &\CH{\PMO{001539}} &\CH{\PMO{001540}} \\ \texttt{001541} &\CH{\PMO{001541}} &\CH{\PMO{001542}} &\CH{\PMO{001543}} &\CH{\PMO{001544}} &\CH{\PMO{001545}} &\CH{\PMO{001546}} &\CH{\PMO{001547}} &\CH{\PMO{001548}} &\CH{\PMO{001549}} &\CH{\PMO{001550}} &\CH{\PMO{001551}} &\CH{\PMO{001552}} &\CH{\PMO{001553}} &\CH{\PMO{001554}} &\CH{\PMO{001555}} &\CH{\PMO{001556}} &\CH{\PMO{001557}} &\CH{\PMO{001558}} &\CH{\PMO{001559}} &\CH{\PMO{001560}} \\ \texttt{001561} &\CH{\PMO{001561}} &\CH{\PMO{001562}} &\CH{\PMO{001563}} &\CH{\PMO{001564}} &\CH{\PMO{001565}} &\CH{\PMO{001566}} &\CH{\PMO{001567}} &\CH{\PMO{001568}} &\CH{\PMO{001569}} &\CH{\PMO{001570}} &\CH{\PMO{001571}} &\CH{\PMO{001572}} &\CH{\PMO{001573}} &\CH{\PMO{001574}} &\CH{\PMO{001575}} &\CH{\PMO{001576}} &\CH{\PMO{001577}} &\CH{\PMO{001578}} &\CH{\PMO{001579}} &\CH{\PMO{001580}} \\ \texttt{001581} &\CH{\PMO{001581}} &\CH{\PMO{001582}} &\CH{\PMO{001583}} &\CH{\PMO{001584}} &\CH{\PMO{001585}} &\CH{\PMO{001586}} &\CH{\PMO{001587}} &\CH{\PMO{001588}} &\CH{\PMO{001589}} &\CH{\PMO{001590}} &\CH{\PMO{001591}} &\CH{\PMO{001592}} &\CH{\PMO{001593}} &\CH{\PMO{001594}} &\CH{\PMO{001595}} &\CH{\PMO{001596}} &\CH{\PMO{001597}} &\CH{\PMO{001598}} &\CH{\PMO{001599}} &\CH{\PMO{001600}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001601}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001601} &\CH{\PMO{001601}} &\CH{\PMO{001602}} &\CH{\PMO{001603}} &\CH{\PMO{001604}} &\CH{\PMO{001605}} &\CH{\PMO{001606}} &\CH{\PMO{001607}} &\CH{\PMO{001608}} &\CH{\PMO{001609}} &\CH{\PMO{001610}} &\CH{\PMO{001611}} &\CH{\PMO{001612}} &\CH{\PMO{001613}} &\CH{\PMO{001614}} &\CH{\PMO{001615}} &\CH{\PMO{001616}} &\CH{\PMO{001617}} &\CH{\PMO{001618}} &\CH{\PMO{001619}} &\CH{\PMO{001620}} \\ \texttt{001621} &\CH{\PMO{001621}} &\CH{\PMO{001622}} &\CH{\PMO{001623}} &\CH{\PMO{001624}} &\CH{\PMO{001625}} &\CH{\PMO{001626}} &\CH{\PMO{001627}} &\CH{\PMO{001628}} &\CH{\PMO{001629}} &\CH{\PMO{001630}} &\CH{\PMO{001631}} &\CH{\PMO{001632}} &\CH{\PMO{001633}} &\CH{\PMO{001634}} &\CH{\PMO{001635}} &\CH{\PMO{001636}} &\CH{\PMO{001637}} &\CH{\PMO{001638}} &\CH{\PMO{001639}} &\CH{\PMO{001640}} \\ \texttt{001641} &\CH{\PMO{001641}} &\CH{\PMO{001642}} &\CH{\PMO{001643}} &\CH{\PMO{001644}} &\CH{\PMO{001645}} &\CH{\PMO{001646}} &\CH{\PMO{001647}} &\CH{\PMO{001648}} &\CH{\PMO{001649}} &\CH{\PMO{001650}} &\CH{\PMO{001651}} &\CH{\PMO{001652}} &\CH{\PMO{001653}} &\CH{\PMO{001654}} &\CH{\PMO{001655}} &\CH{\PMO{001656}} &\CH{\PMO{001657}} &\CH{\PMO{001658}} &\CH{\PMO{001659}} &\CH{\PMO{001660}} \\ \texttt{001661} &\CH{\PMO{001661}} &\CH{\PMO{001662}} &\CH{\PMO{001663}} &\CH{\PMO{001664}} &\CH{\PMO{001665}} &\CH{\PMO{001666}} &\CH{\PMO{001667}} &\CH{\PMO{001668}} &\CH{\PMO{001669}} &\CH{\PMO{001670}} &\CH{\PMO{001671}} &\CH{\PMO{001672}} &\CH{\PMO{001673}} &\CH{\PMO{001674}} &\CH{\PMO{001675}} &\CH{\PMO{001676}} &\CH{\PMO{001677}} &\CH{\PMO{001678}} &\CH{\PMO{001679}} &\CH{\PMO{001680}} \\ \texttt{001681} &\CH{\PMO{001681}} &\CH{\PMO{001682}} &\CH{\PMO{001683}} &\CH{\PMO{001684}} &\CH{\PMO{001685}} &\CH{\PMO{001686}} &\CH{\PMO{001687}} &\CH{\PMO{001688}} &\CH{\PMO{001689}} &\CH{\PMO{001690}} &\CH{\PMO{001691}} &\CH{\PMO{001692}} &\CH{\PMO{001693}} &\CH{\PMO{001694}} &\CH{\PMO{001695}} &\CH{\PMO{001696}} &\CH{\PMO{001697}} &\CH{\PMO{001698}} &\CH{\PMO{001699}} &\CH{\PMO{001700}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001701}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001701} &\CH{\PMO{001701}} &\CH{\PMO{001702}} &\CH{\PMO{001703}} &\CH{\PMO{001704}} &\CH{\PMO{001705}} &\CH{\PMO{001706}} &\CH{\PMO{001707}} &\CH{\PMO{001708}} &\CH{\PMO{001709}} &\CH{\PMO{001710}} &\CH{\PMO{001711}} &\CH{\PMO{001712}} &\CH{\PMO{001713}} &\CH{\PMO{001714}} &\CH{\PMO{001715}} &\CH{\PMO{001716}} &\CH{\PMO{001717}} &\CH{\PMO{001718}} &\CH{\PMO{001719}} &\CH{\PMO{001720}} \\ \texttt{001721} &\CH{\PMO{001721}} &\CH{\PMO{001722}} &\CH{\PMO{001723}} &\CH{\PMO{001724}} &\CH{\PMO{001725}} &\CH{\PMO{001726}} &\CH{\PMO{001727}} &\CH{\PMO{001728}} &\CH{\PMO{001729}} &\CH{\PMO{001730}} &\CH{\PMO{001731}} &\CH{\PMO{001732}} &\CH{\PMO{001733}} &\CH{\PMO{001734}} &\CH{\PMO{001735}} &\CH{\PMO{001736}} &\CH{\PMO{001737}} &\CH{\PMO{001738}} &\CH{\PMO{001739}} &\CH{\PMO{001740}} \\ \texttt{001741} &\CH{\PMO{001741}} &\CH{\PMO{001742}} &\CH{\PMO{001743}} &\CH{\PMO{001744}} &\CH{\PMO{001745}} &\CH{\PMO{001746}} &\CH{\PMO{001747}} &\CH{\PMO{001748}} &\CH{\PMO{001749}} &\CH{\PMO{001750}} &\CH{\PMO{001751}} &\CH{\PMO{001752}} &\CH{\PMO{001753}} &\CH{\PMO{001754}} &\CH{\PMO{001755}} &\CH{\PMO{001756}} &\CH{\PMO{001757}} &\CH{\PMO{001758}} &\CH{\PMO{001759}} &\CH{\PMO{001760}} \\ \texttt{001761} &\CH{\PMO{001761}} &\CH{\PMO{001762}} &\CH{\PMO{001763}} &\CH{\PMO{001764}} &\CH{\PMO{001765}} &\CH{\PMO{001766}} &\CH{\PMO{001767}} &\CH{\PMO{001768}} &\CH{\PMO{001769}} &\CH{\PMO{001770}} &\CH{\PMO{001771}} &\CH{\PMO{001772}} &\CH{\PMO{001773}} &\CH{\PMO{001774}} &\CH{\PMO{001775}} &\CH{\PMO{001776}} &\CH{\PMO{001777}} &\CH{\PMO{001778}} &\CH{\PMO{001779}} &\CH{\PMO{001780}} \\ \texttt{001781} &\CH{\PMO{001781}} &\CH{\PMO{001782}} &\CH{\PMO{001783}} &\CH{\PMO{001784}} &\CH{\PMO{001785}} &\CH{\PMO{001786}} &\CH{\PMO{001787}} &\CH{\PMO{001788}} &\CH{\PMO{001789}} &\CH{\PMO{001790}} &\CH{\PMO{001791}} &\CH{\PMO{001792}} &\CH{\PMO{001793}} &\CH{\PMO{001794}} &\CH{\PMO{001795}} &\CH{\PMO{001796}} &\CH{\PMO{001797}} &\CH{\PMO{001798}} &\CH{\PMO{001799}} &\CH{\PMO{001800}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001801}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001801} &\CH{\PMO{001801}} &\CH{\PMO{001802}} &\CH{\PMO{001803}} &\CH{\PMO{001804}} &\CH{\PMO{001805}} &\CH{\PMO{001806}} &\CH{\PMO{001807}} &\CH{\PMO{001808}} &\CH{\PMO{001809}} &\CH{\PMO{001810}} &\CH{\PMO{001811}} &\CH{\PMO{001812}} &\CH{\PMO{001813}} &\CH{\PMO{001814}} &\CH{\PMO{001815}} &\CH{\PMO{001816}} &\CH{\PMO{001817}} &\CH{\PMO{001818}} &\CH{\PMO{001819}} &\CH{\PMO{001820}} \\ \texttt{001821} &\CH{\PMO{001821}} &\CH{\PMO{001822}} &\CH{\PMO{001823}} &\CH{\PMO{001824}} &\CH{\PMO{001825}} &\CH{\PMO{001826}} &\CH{\PMO{001827}} &\CH{\PMO{001828}} &\CH{\PMO{001829}} &\CH{\PMO{001830}} &\CH{\PMO{001831}} &\CH{\PMO{001832}} &\CH{\PMO{001833}} &\CH{\PMO{001834}} &\CH{\PMO{001835}} &\CH{\PMO{001836}} &\CH{\PMO{001837}} &\CH{\PMO{001838}} &\CH{\PMO{001839}} &\CH{\PMO{001840}} \\ \texttt{001841} &\CH{\PMO{001841}} &\CH{\PMO{001842}} &\CH{\PMO{001843}} &\CH{\PMO{001844}} &\CH{\PMO{001845}} &\CH{\PMO{001846}} &\CH{\PMO{001847}} &\CH{\PMO{001848}} &\CH{\PMO{001849}} &\CH{\PMO{001850}} &\CH{\PMO{001851}} &\CH{\PMO{001852}} &\CH{\PMO{001853}} &\CH{\PMO{001854}} &\CH{\PMO{001855}} &\CH{\PMO{001856}} &\CH{\PMO{001857}} &\CH{\PMO{001858}} &\CH{\PMO{001859}} &\CH{\PMO{001860}} \\ \texttt{001861} &\CH{\PMO{001861}} &\CH{\PMO{001862}} &\CH{\PMO{001863}} &\CH{\PMO{001864}} &\CH{\PMO{001865}} &\CH{\PMO{001866}} &\CH{\PMO{001867}} &\CH{\PMO{001868}} &\CH{\PMO{001869}} &\CH{\PMO{001870}} &\CH{\PMO{001871}} &\CH{\PMO{001872}} &\CH{\PMO{001873}} &\CH{\PMO{001874}} &\CH{\PMO{001875}} &\CH{\PMO{001876}} &\CH{\PMO{001877}} &\CH{\PMO{001878}} &\CH{\PMO{001879}} &\CH{\PMO{001880}} \\ \texttt{001881} &\CH{\PMO{001881}} &\CH{\PMO{001882}} &\CH{\PMO{001883}} &\CH{\PMO{001884}} &\CH{\PMO{001885}} &\CH{\PMO{001886}} &\CH{\PMO{001887}} &\CH{\PMO{001888}} &\CH{\PMO{001889}} &\CH{\PMO{001890}} &\CH{\PMO{001891}} &\CH{\PMO{001892}} &\CH{\PMO{001893}} &\CH{\PMO{001894}} &\CH{\PMO{001895}} &\CH{\PMO{001896}} &\CH{\PMO{001897}} &\CH{\PMO{001898}} &\CH{\PMO{001899}} &\CH{\PMO{001900}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{001901}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{001901} &\CH{\PMO{001901}} &\CH{\PMO{001902}} &\CH{\PMO{001903}} &\CH{\PMO{001904}} &\CH{\PMO{001905}} &\CH{\PMO{001906}} &\CH{\PMO{001907}} &\CH{\PMO{001908}} &\CH{\PMO{001909}} &\CH{\PMO{001910}} &\CH{\PMO{001911}} &\CH{\PMO{001912}} &\CH{\PMO{001913}} &\CH{\PMO{001914}} &\CH{\PMO{001915}} &\CH{\PMO{001916}} &\CH{\PMO{001917}} &\CH{\PMO{001918}} &\CH{\PMO{001919}} &\CH{\PMO{001920}} \\ \texttt{001921} &\CH{\PMO{001921}} &\CH{\PMO{001922}} &\CH{\PMO{001923}} &\CH{\PMO{001924}} &\CH{\PMO{001925}} &\CH{\PMO{001926}} &\CH{\PMO{001927}} &\CH{\PMO{001928}} &\CH{\PMO{001929}} &\CH{\PMO{001930}} &\CH{\PMO{001931}} &\CH{\PMO{001932}} &\CH{\PMO{001933}} &\CH{\PMO{001934}} &\CH{\PMO{001935}} &\CH{\PMO{001936}} &\CH{\PMO{001937}} &\CH{\PMO{001938}} &\CH{\PMO{001939}} &\CH{\PMO{001940}} \\ \texttt{001941} &\CH{\PMO{001941}} &\CH{\PMO{001942}} &\CH{\PMO{001943}} &\CH{\PMO{001944}} &\CH{\PMO{001945}} &\CH{\PMO{001946}} &\CH{\PMO{001947}} &\CH{\PMO{001948}} &\CH{\PMO{001949}} &\CH{\PMO{001950}} &\CH{\PMO{001951}} &\CH{\PMO{001952}} &\CH{\PMO{001953}} &\CH{\PMO{001954}} &\CH{\PMO{001955}} &\CH{\PMO{001956}} &\CH{\PMO{001957}} &\CH{\PMO{001958}} &\CH{\PMO{001959}} &\CH{\PMO{001960}} \\ \texttt{001961} &\CH{\PMO{001961}} &\CH{\PMO{001962}} &\CH{\PMO{001963}} &\CH{\PMO{001964}} &\CH{\PMO{001965}} &\CH{\PMO{001966}} &\CH{\PMO{001967}} &\CH{\PMO{001968}} &\CH{\PMO{001969}} &\CH{\PMO{001970}} &\CH{\PMO{001971}} &\CH{\PMO{001972}} &\CH{\PMO{001973}} &\CH{\PMO{001974}} &\CH{\PMO{001975}} &\CH{\PMO{001976}} &\CH{\PMO{001977}} &\CH{\PMO{001978}} &\CH{\PMO{001979}} &\CH{\PMO{001980}} \\ \texttt{001981} &\CH{\PMO{001981}} &\CH{\PMO{001982}} &\CH{\PMO{001983}} &\CH{\PMO{001984}} &\CH{\PMO{001985}} &\CH{\PMO{001986}} &\CH{\PMO{001987}} &\CH{\PMO{001988}} &\CH{\PMO{001989}} &\CH{\PMO{001990}} &\CH{\PMO{001991}} &\CH{\PMO{001992}} &\CH{\PMO{001993}} &\CH{\PMO{001994}} &\CH{\PMO{001995}} &\CH{\PMO{001996}} &\CH{\PMO{001997}} &\CH{\PMO{001998}} &\CH{\PMO{001999}} &\CH{\PMO{002000}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002001}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002001} &\CH{\PMO{002001}} &\CH{\PMO{002002}} &\CH{\PMO{002003}} &\CH{\PMO{002004}} &\CH{\PMO{002005}} &\CH{\PMO{002006}} &\CH{\PMO{002007}} &\CH{\PMO{002008}} &\CH{\PMO{002009}} &\CH{\PMO{002010}} &\CH{\PMO{002011}} &\CH{\PMO{002012}} &\CH{\PMO{002013}} &\CH{\PMO{002014}} &\CH{\PMO{002015}} &\CH{\PMO{002016}} &\CH{\PMO{002017}} &\CH{\PMO{002018}} &\CH{\PMO{002019}} &\CH{\PMO{002020}} \\ \texttt{002021} &\CH{\PMO{002021}} &\CH{\PMO{002022}} &\CH{\PMO{002023}} &\CH{\PMO{002024}} &\CH{\PMO{002025}} &\CH{\PMO{002026}} &\CH{\PMO{002027}} &\CH{\PMO{002028}} &\CH{\PMO{002029}} &\CH{\PMO{002030}} &\CH{\PMO{002031}} &\CH{\PMO{002032}} &\CH{\PMO{002033}} &\CH{\PMO{002034}} &\CH{\PMO{002035}} &\CH{\PMO{002036}} &\CH{\PMO{002037}} &\CH{\PMO{002038}} &\CH{\PMO{002039}} &\CH{\PMO{002040}} \\ \texttt{002041} &\CH{\PMO{002041}} &\CH{\PMO{002042}} &\CH{\PMO{002043}} &\CH{\PMO{002044}} &\CH{\PMO{002045}} &\CH{\PMO{002046}} &\CH{\PMO{002047}} &\CH{\PMO{002048}} &\CH{\PMO{002049}} &\CH{\PMO{002050}} &\CH{\PMO{002051}} &\CH{\PMO{002052}} &\CH{\PMO{002053}} &\CH{\PMO{002054}} &\CH{\PMO{002055}} &\CH{\PMO{002056}} &\CH{\PMO{002057}} &\CH{\PMO{002058}} &\CH{\PMO{002059}} &\CH{\PMO{002060}} \\ \texttt{002061} &\CH{\PMO{002061}} &\CH{\PMO{002062}} &\CH{\PMO{002063}} &\CH{\PMO{002064}} &\CH{\PMO{002065}} &\CH{\PMO{002066}} &\CH{\PMO{002067}} &\CH{\PMO{002068}} &\CH{\PMO{002069}} &\CH{\PMO{002070}} &\CH{\PMO{002071}} &\CH{\PMO{002072}} &\CH{\PMO{002073}} &\CH{\PMO{002074}} &\CH{\PMO{002075}} &\CH{\PMO{002076}} &\CH{\PMO{002077}} &\CH{\PMO{002078}} &\CH{\PMO{002079}} &\CH{\PMO{002080}} \\ \texttt{002081} &\CH{\PMO{002081}} &\CH{\PMO{002082}} &\CH{\PMO{002083}} &\CH{\PMO{002084}} &\CH{\PMO{002085}} &\CH{\PMO{002086}} &\CH{\PMO{002087}} &\CH{\PMO{002088}} &\CH{\PMO{002089}} &\CH{\PMO{002090}} &\CH{\PMO{002091}} &\CH{\PMO{002092}} &\CH{\PMO{002093}} &\CH{\PMO{002094}} &\CH{\PMO{002095}} &\CH{\PMO{002096}} &\CH{\PMO{002097}} &\CH{\PMO{002098}} &\CH{\PMO{002099}} &\CH{\PMO{002100}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002101}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002101} &\CH{\PMO{002101}} &\CH{\PMO{002102}} &\CH{\PMO{002103}} &\CH{\PMO{002104}} &\CH{\PMO{002105}} &\CH{\PMO{002106}} &\CH{\PMO{002107}} &\CH{\PMO{002108}} &\CH{\PMO{002109}} &\CH{\PMO{002110}} &\CH{\PMO{002111}} &\CH{\PMO{002112}} &\CH{\PMO{002113}} &\CH{\PMO{002114}} &\CH{\PMO{002115}} &\CH{\PMO{002116}} &\CH{\PMO{002117}} &\CH{\PMO{002118}} &\CH{\PMO{002119}} &\CH{\PMO{002120}} \\ \texttt{002121} &\CH{\PMO{002121}} &\CH{\PMO{002122}} &\CH{\PMO{002123}} &\CH{\PMO{002124}} &\CH{\PMO{002125}} &\CH{\PMO{002126}} &\CH{\PMO{002127}} &\CH{\PMO{002128}} &\CH{\PMO{002129}} &\CH{\PMO{002130}} &\CH{\PMO{002131}} &\CH{\PMO{002132}} &\CH{\PMO{002133}} &\CH{\PMO{002134}} &\CH{\PMO{002135}} &\CH{\PMO{002136}} &\CH{\PMO{002137}} &\CH{\PMO{002138}} &\CH{\PMO{002139}} &\CH{\PMO{002140}} \\ \texttt{002141} &\CH{\PMO{002141}} &\CH{\PMO{002142}} &\CH{\PMO{002143}} &\CH{\PMO{002144}} &\CH{\PMO{002145}} &\CH{\PMO{002146}} &\CH{\PMO{002147}} &\CH{\PMO{002148}} &\CH{\PMO{002149}} &\CH{\PMO{002150}} &\CH{\PMO{002151}} &\CH{\PMO{002152}} &\CH{\PMO{002153}} &\CH{\PMO{002154}} &\CH{\PMO{002155}} &\CH{\PMO{002156}} &\CH{\PMO{002157}} &\CH{\PMO{002158}} &\CH{\PMO{002159}} &\CH{\PMO{002160}} \\ \texttt{002161} &\CH{\PMO{002161}} &\CH{\PMO{002162}} &\CH{\PMO{002163}} &\CH{\PMO{002164}} &\CH{\PMO{002165}} &\CH{\PMO{002166}} &\CH{\PMO{002167}} &\CH{\PMO{002168}} &\CH{\PMO{002169}} &\CH{\PMO{002170}} &\CH{\PMO{002171}} &\CH{\PMO{002172}} &\CH{\PMO{002173}} &\CH{\PMO{002174}} &\CH{\PMO{002175}} &\CH{\PMO{002176}} &\CH{\PMO{002177}} &\CH{\PMO{002178}} &\CH{\PMO{002179}} &\CH{\PMO{002180}} \\ \texttt{002181} &\CH{\PMO{002181}} &\CH{\PMO{002182}} &\CH{\PMO{002183}} &\CH{\PMO{002184}} &\CH{\PMO{002185}} &\CH{\PMO{002186}} &\CH{\PMO{002187}} &\CH{\PMO{002188}} &\CH{\PMO{002189}} &\CH{\PMO{002190}} &\CH{\PMO{002191}} &\CH{\PMO{002192}} &\CH{\PMO{002193}} &\CH{\PMO{002194}} &\CH{\PMO{002195}} &\CH{\PMO{002196}} &\CH{\PMO{002197}} &\CH{\PMO{002198}} &\CH{\PMO{002199}} &\CH{\PMO{002200}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002201}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002201} &\CH{\PMO{002201}} &\CH{\PMO{002202}} &\CH{\PMO{002203}} &\CH{\PMO{002204}} &\CH{\PMO{002205}} &\CH{\PMO{002206}} &\CH{\PMO{002207}} &\CH{\PMO{002208}} &\CH{\PMO{002209}} &\CH{\PMO{002210}} &\CH{\PMO{002211}} &\CH{\PMO{002212}} &\CH{\PMO{002213}} &\CH{\PMO{002214}} &\CH{\PMO{002215}} &\CH{\PMO{002216}} &\CH{\PMO{002217}} &\CH{\PMO{002218}} &\CH{\PMO{002219}} &\CH{\PMO{002220}} \\ \texttt{002221} &\CH{\PMO{002221}} &\CH{\PMO{002222}} &\CH{\PMO{002223}} &\CH{\PMO{002224}} &\CH{\PMO{002225}} &\CH{\PMO{002226}} &\CH{\PMO{002227}} &\CH{\PMO{002228}} &\CH{\PMO{002229}} &\CH{\PMO{002230}} &\CH{\PMO{002231}} &\CH{\PMO{002232}} &\CH{\PMO{002233}} &\CH{\PMO{002234}} &\CH{\PMO{002235}} &\CH{\PMO{002236}} &\CH{\PMO{002237}} &\CH{\PMO{002238}} &\CH{\PMO{002239}} &\CH{\PMO{002240}} \\ \texttt{002241} &\CH{\PMO{002241}} &\CH{\PMO{002242}} &\CH{\PMO{002243}} &\CH{\PMO{002244}} &\CH{\PMO{002245}} &\CH{\PMO{002246}} &\CH{\PMO{002247}} &\CH{\PMO{002248}} &\CH{\PMO{002249}} &\CH{\PMO{002250}} &\CH{\PMO{002251}} &\CH{\PMO{002252}} &\CH{\PMO{002253}} &\CH{\PMO{002254}} &\CH{\PMO{002255}} &\CH{\PMO{002256}} &\CH{\PMO{002257}} &\CH{\PMO{002258}} &\CH{\PMO{002259}} &\CH{\PMO{002260}} \\ \texttt{002261} &\CH{\PMO{002261}} &\CH{\PMO{002262}} &\CH{\PMO{002263}} &\CH{\PMO{002264}} &\CH{\PMO{002265}} &\CH{\PMO{002266}} &\CH{\PMO{002267}} &\CH{\PMO{002268}} &\CH{\PMO{002269}} &\CH{\PMO{002270}} &\CH{\PMO{002271}} &\CH{\PMO{002272}} &\CH{\PMO{002273}} &\CH{\PMO{002274}} &\CH{\PMO{002275}} &\CH{\PMO{002276}} &\CH{\PMO{002277}} &\CH{\PMO{002278}} &\CH{\PMO{002279}} &\CH{\PMO{002280}} \\ \texttt{002281} &\CH{\PMO{002281}} &\CH{\PMO{002282}} &\CH{\PMO{002283}} &\CH{\PMO{002284}} &\CH{\PMO{002285}} &\CH{\PMO{002286}} &\CH{\PMO{002287}} &\CH{\PMO{002288}} &\CH{\PMO{002289}} &\CH{\PMO{002290}} &\CH{\PMO{002291}} &\CH{\PMO{002292}} &\CH{\PMO{002293}} &\CH{\PMO{002294}} &\CH{\PMO{002295}} &\CH{\PMO{002296}} &\CH{\PMO{002297}} &\CH{\PMO{002298}} &\CH{\PMO{002299}} &\CH{\PMO{002300}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002301}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002301} &\CH{\PMO{002301}} &\CH{\PMO{002302}} &\CH{\PMO{002303}} &\CH{\PMO{002304}} &\CH{\PMO{002305}} &\CH{\PMO{002306}} &\CH{\PMO{002307}} &\CH{\PMO{002308}} &\CH{\PMO{002309}} &\CH{\PMO{002310}} &\CH{\PMO{002311}} &\CH{\PMO{002312}} &\CH{\PMO{002313}} &\CH{\PMO{002314}} &\CH{\PMO{002315}} &\CH{\PMO{002316}} &\CH{\PMO{002317}} &\CH{\PMO{002318}} &\CH{\PMO{002319}} &\CH{\PMO{002320}} \\ \texttt{002321} &\CH{\PMO{002321}} &\CH{\PMO{002322}} &\CH{\PMO{002323}} &\CH{\PMO{002324}} &\CH{\PMO{002325}} &\CH{\PMO{002326}} &\CH{\PMO{002327}} &\CH{\PMO{002328}} &\CH{\PMO{002329}} &\CH{\PMO{002330}} &\CH{\PMO{002331}} &\CH{\PMO{002332}} &\CH{\PMO{002333}} &\CH{\PMO{002334}} &\CH{\PMO{002335}} &\CH{\PMO{002336}} &\CH{\PMO{002337}} &\CH{\PMO{002338}} &\CH{\PMO{002339}} &\CH{\PMO{002340}} \\ \texttt{002341} &\CH{\PMO{002341}} &\CH{\PMO{002342}} &\CH{\PMO{002343}} &\CH{\PMO{002344}} &\CH{\PMO{002345}} &\CH{\PMO{002346}} &\CH{\PMO{002347}} &\CH{\PMO{002348}} &\CH{\PMO{002349}} &\CH{\PMO{002350}} &\CH{\PMO{002351}} &\CH{\PMO{002352}} &\CH{\PMO{002353}} &\CH{\PMO{002354}} &\CH{\PMO{002355}} &\CH{\PMO{002356}} &\CH{\PMO{002357}} &\CH{\PMO{002358}} &\CH{\PMO{002359}} &\CH{\PMO{002360}} \\ \texttt{002361} &\CH{\PMO{002361}} &\CH{\PMO{002362}} &\CH{\PMO{002363}} &\CH{\PMO{002364}} &\CH{\PMO{002365}} &\CH{\PMO{002366}} &\CH{\PMO{002367}} &\CH{\PMO{002368}} &\CH{\PMO{002369}} &\CH{\PMO{002370}} &\CH{\PMO{002371}} &\CH{\PMO{002372}} &\CH{\PMO{002373}} &\CH{\PMO{002374}} &\CH{\PMO{002375}} &\CH{\PMO{002376}} &\CH{\PMO{002377}} &\CH{\PMO{002378}} &\CH{\PMO{002379}} &\CH{\PMO{002380}} \\ \texttt{002381} &\CH{\PMO{002381}} &\CH{\PMO{002382}} &\CH{\PMO{002383}} &\CH{\PMO{002384}} &\CH{\PMO{002385}} &\CH{\PMO{002386}} &\CH{\PMO{002387}} &\CH{\PMO{002388}} &\CH{\PMO{002389}} &\CH{\PMO{002390}} &\CH{\PMO{002391}} &\CH{\PMO{002392}} &\CH{\PMO{002393}} &\CH{\PMO{002394}} &\CH{\PMO{002395}} &\CH{\PMO{002396}} &\CH{\PMO{002397}} &\CH{\PMO{002398}} &\CH{\PMO{002399}} &\CH{\PMO{002400}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002401}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002401} &\CH{\PMO{002401}} &\CH{\PMO{002402}} &\CH{\PMO{002403}} &\CH{\PMO{002404}} &\CH{\PMO{002405}} &\CH{\PMO{002406}} &\CH{\PMO{002407}} &\CH{\PMO{002408}} &\CH{\PMO{002409}} &\CH{\PMO{002410}} &\CH{\PMO{002411}} &\CH{\PMO{002412}} &\CH{\PMO{002413}} &\CH{\PMO{002414}} &\CH{\PMO{002415}} &\CH{\PMO{002416}} &\CH{\PMO{002417}} &\CH{\PMO{002418}} &\CH{\PMO{002419}} &\CH{\PMO{002420}} \\ \texttt{002421} &\CH{\PMO{002421}} &\CH{\PMO{002422}} &\CH{\PMO{002423}} &\CH{\PMO{002424}} &\CH{\PMO{002425}} &\CH{\PMO{002426}} &\CH{\PMO{002427}} &\CH{\PMO{002428}} &\CH{\PMO{002429}} &\CH{\PMO{002430}} &\CH{\PMO{002431}} &\CH{\PMO{002432}} &\CH{\PMO{002433}} &\CH{\PMO{002434}} &\CH{\PMO{002435}} &\CH{\PMO{002436}} &\CH{\PMO{002437}} &\CH{\PMO{002438}} &\CH{\PMO{002439}} &\CH{\PMO{002440}} \\ \texttt{002441} &\CH{\PMO{002441}} &\CH{\PMO{002442}} &\CH{\PMO{002443}} &\CH{\PMO{002444}} &\CH{\PMO{002445}} &\CH{\PMO{002446}} &\CH{\PMO{002447}} &\CH{\PMO{002448}} &\CH{\PMO{002449}} &\CH{\PMO{002450}} &\CH{\PMO{002451}} &\CH{\PMO{002452}} &\CH{\PMO{002453}} &\CH{\PMO{002454}} &\CH{\PMO{002455}} &\CH{\PMO{002456}} &\CH{\PMO{002457}} &\CH{\PMO{002458}} &\CH{\PMO{002459}} &\CH{\PMO{002460}} \\ \texttt{002461} &\CH{\PMO{002461}} &\CH{\PMO{002462}} &\CH{\PMO{002463}} &\CH{\PMO{002464}} &\CH{\PMO{002465}} &\CH{\PMO{002466}} &\CH{\PMO{002467}} &\CH{\PMO{002468}} &\CH{\PMO{002469}} &\CH{\PMO{002470}} &\CH{\PMO{002471}} &\CH{\PMO{002472}} &\CH{\PMO{002473}} &\CH{\PMO{002474}} &\CH{\PMO{002475}} &\CH{\PMO{002476}} &\CH{\PMO{002477}} &\CH{\PMO{002478}} &\CH{\PMO{002479}} &\CH{\PMO{002480}} \\ \texttt{002481} &\CH{\PMO{002481}} &\CH{\PMO{002482}} &\CH{\PMO{002483}} &\CH{\PMO{002484}} &\CH{\PMO{002485}} &\CH{\PMO{002486}} &\CH{\PMO{002487}} &\CH{\PMO{002488}} &\CH{\PMO{002489}} &\CH{\PMO{002490}} &\CH{\PMO{002491}} &\CH{\PMO{002492}} &\CH{\PMO{002493}} &\CH{\PMO{002494}} &\CH{\PMO{002495}} &\CH{\PMO{002496}} &\CH{\PMO{002497}} &\CH{\PMO{002498}} &\CH{\PMO{002499}} &\CH{\PMO{002500}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002501}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002501} &\CH{\PMO{002501}} &\CH{\PMO{002502}} &\CH{\PMO{002503}} &\CH{\PMO{002504}} &\CH{\PMO{002505}} &\CH{\PMO{002506}} &\CH{\PMO{002507}} &\CH{\PMO{002508}} &\CH{\PMO{002509}} &\CH{\PMO{002510}} &\CH{\PMO{002511}} &\CH{\PMO{002512}} &\CH{\PMO{002513}} &\CH{\PMO{002514}} &\CH{\PMO{002515}} &\CH{\PMO{002516}} &\CH{\PMO{002517}} &\CH{\PMO{002518}} &\CH{\PMO{002519}} &\CH{\PMO{002520}} \\ \texttt{002521} &\CH{\PMO{002521}} &\CH{\PMO{002522}} &\CH{\PMO{002523}} &\CH{\PMO{002524}} &\CH{\PMO{002525}} &\CH{\PMO{002526}} &\CH{\PMO{002527}} &\CH{\PMO{002528}} &\CH{\PMO{002529}} &\CH{\PMO{002530}} &\CH{\PMO{002531}} &\CH{\PMO{002532}} &\CH{\PMO{002533}} &\CH{\PMO{002534}} &\CH{\PMO{002535}} &\CH{\PMO{002536}} &\CH{\PMO{002537}} &\CH{\PMO{002538}} &\CH{\PMO{002539}} &\CH{\PMO{002540}} \\ \texttt{002541} &\CH{\PMO{002541}} &\CH{\PMO{002542}} &\CH{\PMO{002543}} &\CH{\PMO{002544}} &\CH{\PMO{002545}} &\CH{\PMO{002546}} &\CH{\PMO{002547}} &\CH{\PMO{002548}} &\CH{\PMO{002549}} &\CH{\PMO{002550}} &\CH{\PMO{002551}} &\CH{\PMO{002552}} &\CH{\PMO{002553}} &\CH{\PMO{002554}} &\CH{\PMO{002555}} &\CH{\PMO{002556}} &\CH{\PMO{002557}} &\CH{\PMO{002558}} &\CH{\PMO{002559}} &\CH{\PMO{002560}} \\ \texttt{002561} &\CH{\PMO{002561}} &\CH{\PMO{002562}} &\CH{\PMO{002563}} &\CH{\PMO{002564}} &\CH{\PMO{002565}} &\CH{\PMO{002566}} &\CH{\PMO{002567}} &\CH{\PMO{002568}} &\CH{\PMO{002569}} &\CH{\PMO{002570}} &\CH{\PMO{002571}} &\CH{\PMO{002572}} &\CH{\PMO{002573}} &\CH{\PMO{002574}} &\CH{\PMO{002575}} &\CH{\PMO{002576}} &\CH{\PMO{002577}} &\CH{\PMO{002578}} &\CH{\PMO{002579}} &\CH{\PMO{002580}} \\ \texttt{002581} &\CH{\PMO{002581}} &\CH{\PMO{002582}} &\CH{\PMO{002583}} &\CH{\PMO{002584}} &\CH{\PMO{002585}} &\CH{\PMO{002586}} &\CH{\PMO{002587}} &\CH{\PMO{002588}} &\CH{\PMO{002589}} &\CH{\PMO{002590}} &\CH{\PMO{002591}} &\CH{\PMO{002592}} &\CH{\PMO{002593}} &\CH{\PMO{002594}} &\CH{\PMO{002595}} &\CH{\PMO{002596}} &\CH{\PMO{002597}} &\CH{\PMO{002598}} &\CH{\PMO{002599}} &\CH{\PMO{002600}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002601}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002601} &\CH{\PMO{002601}} &\CH{\PMO{002602}} &\CH{\PMO{002603}} &\CH{\PMO{002604}} &\CH{\PMO{002605}} &\CH{\PMO{002606}} &\CH{\PMO{002607}} &\CH{\PMO{002608}} &\CH{\PMO{002609}} &\CH{\PMO{002610}} &\CH{\PMO{002611}} &\CH{\PMO{002612}} &\CH{\PMO{002613}} &\CH{\PMO{002614}} &\CH{\PMO{002615}} &\CH{\PMO{002616}} &\CH{\PMO{002617}} &\CH{\PMO{002618}} &\CH{\PMO{002619}} &\CH{\PMO{002620}} \\ \texttt{002621} &\CH{\PMO{002621}} &\CH{\PMO{002622}} &\CH{\PMO{002623}} &\CH{\PMO{002624}} &\CH{\PMO{002625}} &\CH{\PMO{002626}} &\CH{\PMO{002627}} &\CH{\PMO{002628}} &\CH{\PMO{002629}} &\CH{\PMO{002630}} &\CH{\PMO{002631}} &\CH{\PMO{002632}} &\CH{\PMO{002633}} &\CH{\PMO{002634}} &\CH{\PMO{002635}} &\CH{\PMO{002636}} &\CH{\PMO{002637}} &\CH{\PMO{002638}} &\CH{\PMO{002639}} &\CH{\PMO{002640}} \\ \texttt{002641} &\CH{\PMO{002641}} &\CH{\PMO{002642}} &\CH{\PMO{002643}} &\CH{\PMO{002644}} &\CH{\PMO{002645}} &\CH{\PMO{002646}} &\CH{\PMO{002647}} &\CH{\PMO{002648}} &\CH{\PMO{002649}} &\CH{\PMO{002650}} &\CH{\PMO{002651}} &\CH{\PMO{002652}} &\CH{\PMO{002653}} &\CH{\PMO{002654}} &\CH{\PMO{002655}} &\CH{\PMO{002656}} &\CH{\PMO{002657}} &\CH{\PMO{002658}} &\CH{\PMO{002659}} &\CH{\PMO{002660}} \\ \texttt{002661} &\CH{\PMO{002661}} &\CH{\PMO{002662}} &\CH{\PMO{002663}} &\CH{\PMO{002664}} &\CH{\PMO{002665}} &\CH{\PMO{002666}} &\CH{\PMO{002667}} &\CH{\PMO{002668}} &\CH{\PMO{002669}} &\CH{\PMO{002670}} &\CH{\PMO{002671}} &\CH{\PMO{002672}} &\CH{\PMO{002673}} &\CH{\PMO{002674}} &\CH{\PMO{002675}} &\CH{\PMO{002676}} &\CH{\PMO{002677}} &\CH{\PMO{002678}} &\CH{\PMO{002679}} &\CH{\PMO{002680}} \\ \texttt{002681} &\CH{\PMO{002681}} &\CH{\PMO{002682}} &\CH{\PMO{002683}} &\CH{\PMO{002684}} &\CH{\PMO{002685}} &\CH{\PMO{002686}} &\CH{\PMO{002687}} &\CH{\PMO{002688}} &\CH{\PMO{002689}} &\CH{\PMO{002690}} &\CH{\PMO{002691}} &\CH{\PMO{002692}} &\CH{\PMO{002693}} &\CH{\PMO{002694}} &\CH{\PMO{002695}} &\CH{\PMO{002696}} &\CH{\PMO{002697}} &\CH{\PMO{002698}} &\CH{\PMO{002699}} &\CH{\PMO{002700}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002701}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002701} &\CH{\PMO{002701}} &\CH{\PMO{002702}} &\CH{\PMO{002703}} &\CH{\PMO{002704}} &\CH{\PMO{002705}} &\CH{\PMO{002706}} &\CH{\PMO{002707}} &\CH{\PMO{002708}} &\CH{\PMO{002709}} &\CH{\PMO{002710}} &\CH{\PMO{002711}} &\CH{\PMO{002712}} &\CH{\PMO{002713}} &\CH{\PMO{002714}} &\CH{\PMO{002715}} &\CH{\PMO{002716}} &\CH{\PMO{002717}} &\CH{\PMO{002718}} &\CH{\PMO{002719}} &\CH{\PMO{002720}} \\ \texttt{002721} &\CH{\PMO{002721}} &\CH{\PMO{002722}} &\CH{\PMO{002723}} &\CH{\PMO{002724}} &\CH{\PMO{002725}} &\CH{\PMO{002726}} &\CH{\PMO{002727}} &\CH{\PMO{002728}} &\CH{\PMO{002729}} &\CH{\PMO{002730}} &\CH{\PMO{002731}} &\CH{\PMO{002732}} &\CH{\PMO{002733}} &\CH{\PMO{002734}} &\CH{\PMO{002735}} &\CH{\PMO{002736}} &\CH{\PMO{002737}} &\CH{\PMO{002738}} &\CH{\PMO{002739}} &\CH{\PMO{002740}} \\ \texttt{002741} &\CH{\PMO{002741}} &\CH{\PMO{002742}} &\CH{\PMO{002743}} &\CH{\PMO{002744}} &\CH{\PMO{002745}} &\CH{\PMO{002746}} &\CH{\PMO{002747}} &\CH{\PMO{002748}} &\CH{\PMO{002749}} &\CH{\PMO{002750}} &\CH{\PMO{002751}} &\CH{\PMO{002752}} &\CH{\PMO{002753}} &\CH{\PMO{002754}} &\CH{\PMO{002755}} &\CH{\PMO{002756}} &\CH{\PMO{002757}} &\CH{\PMO{002758}} &\CH{\PMO{002759}} &\CH{\PMO{002760}} \\ \texttt{002761} &\CH{\PMO{002761}} &\CH{\PMO{002762}} &\CH{\PMO{002763}} &\CH{\PMO{002764}} &\CH{\PMO{002765}} &\CH{\PMO{002766}} &\CH{\PMO{002767}} &\CH{\PMO{002768}} &\CH{\PMO{002769}} &\CH{\PMO{002770}} &\CH{\PMO{002771}} &\CH{\PMO{002772}} &\CH{\PMO{002773}} &\CH{\PMO{002774}} &\CH{\PMO{002775}} &\CH{\PMO{002776}} &\CH{\PMO{002777}} &\CH{\PMO{002778}} &\CH{\PMO{002779}} &\CH{\PMO{002780}} \\ \texttt{002781} &\CH{\PMO{002781}} &\CH{\PMO{002782}} &\CH{\PMO{002783}} &\CH{\PMO{002784}} &\CH{\PMO{002785}} &\CH{\PMO{002786}} &\CH{\PMO{002787}} &\CH{\PMO{002788}} &\CH{\PMO{002789}} &\CH{\PMO{002790}} &\CH{\PMO{002791}} &\CH{\PMO{002792}} &\CH{\PMO{002793}} &\CH{\PMO{002794}} &\CH{\PMO{002795}} &\CH{\PMO{002796}} &\CH{\PMO{002797}} &\CH{\PMO{002798}} &\CH{\PMO{002799}} &\CH{\PMO{002800}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002801}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002801} &\CH{\PMO{002801}} &\CH{\PMO{002802}} &\CH{\PMO{002803}} &\CH{\PMO{002804}} &\CH{\PMO{002805}} &\CH{\PMO{002806}} &\CH{\PMO{002807}} &\CH{\PMO{002808}} &\CH{\PMO{002809}} &\CH{\PMO{002810}} &\CH{\PMO{002811}} &\CH{\PMO{002812}} &\CH{\PMO{002813}} &\CH{\PMO{002814}} &\CH{\PMO{002815}} &\CH{\PMO{002816}} &\CH{\PMO{002817}} &\CH{\PMO{002818}} &\CH{\PMO{002819}} &\CH{\PMO{002820}} \\ \texttt{002821} &\CH{\PMO{002821}} &\CH{\PMO{002822}} &\CH{\PMO{002823}} &\CH{\PMO{002824}} &\CH{\PMO{002825}} &\CH{\PMO{002826}} &\CH{\PMO{002827}} &\CH{\PMO{002828}} &\CH{\PMO{002829}} &\CH{\PMO{002830}} &\CH{\PMO{002831}} &\CH{\PMO{002832}} &\CH{\PMO{002833}} &\CH{\PMO{002834}} &\CH{\PMO{002835}} &\CH{\PMO{002836}} &\CH{\PMO{002837}} &\CH{\PMO{002838}} &\CH{\PMO{002839}} &\CH{\PMO{002840}} \\ \texttt{002841} &\CH{\PMO{002841}} &\CH{\PMO{002842}} &\CH{\PMO{002843}} &\CH{\PMO{002844}} &\CH{\PMO{002845}} &\CH{\PMO{002846}} &\CH{\PMO{002847}} &\CH{\PMO{002848}} &\CH{\PMO{002849}} &\CH{\PMO{002850}} &\CH{\PMO{002851}} &\CH{\PMO{002852}} &\CH{\PMO{002853}} &\CH{\PMO{002854}} &\CH{\PMO{002855}} &\CH{\PMO{002856}} &\CH{\PMO{002857}} &\CH{\PMO{002858}} &\CH{\PMO{002859}} &\CH{\PMO{002860}} \\ \texttt{002861} &\CH{\PMO{002861}} &\CH{\PMO{002862}} &\CH{\PMO{002863}} &\CH{\PMO{002864}} &\CH{\PMO{002865}} &\CH{\PMO{002866}} &\CH{\PMO{002867}} &\CH{\PMO{002868}} &\CH{\PMO{002869}} &\CH{\PMO{002870}} &\CH{\PMO{002871}} &\CH{\PMO{002872}} &\CH{\PMO{002873}} &\CH{\PMO{002874}} &\CH{\PMO{002875}} &\CH{\PMO{002876}} &\CH{\PMO{002877}} &\CH{\PMO{002878}} &\CH{\PMO{002879}} &\CH{\PMO{002880}} \\ \texttt{002881} &\CH{\PMO{002881}} &\CH{\PMO{002882}} &\CH{\PMO{002883}} &\CH{\PMO{002884}} &\CH{\PMO{002885}} &\CH{\PMO{002886}} &\CH{\PMO{002887}} &\CH{\PMO{002888}} &\CH{\PMO{002889}} &\CH{\PMO{002890}} &\CH{\PMO{002891}} &\CH{\PMO{002892}} &\CH{\PMO{002893}} &\CH{\PMO{002894}} &\CH{\PMO{002895}} &\CH{\PMO{002896}} &\CH{\PMO{002897}} &\CH{\PMO{002898}} &\CH{\PMO{002899}} &\CH{\PMO{002900}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{002901}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{002901} &\CH{\PMO{002901}} &\CH{\PMO{002902}} &\CH{\PMO{002903}} &\CH{\PMO{002904}} &\CH{\PMO{002905}} &\CH{\PMO{002906}} &\CH{\PMO{002907}} &\CH{\PMO{002908}} &\CH{\PMO{002909}} &\CH{\PMO{002910}} &\CH{\PMO{002911}} &\CH{\PMO{002912}} &\CH{\PMO{002913}} &\CH{\PMO{002914}} &\CH{\PMO{002915}} &\CH{\PMO{002916}} &\CH{\PMO{002917}} &\CH{\PMO{002918}} &\CH{\PMO{002919}} &\CH{\PMO{002920}} \\ \texttt{002921} &\CH{\PMO{002921}} &\CH{\PMO{002922}} &\CH{\PMO{002923}} &\CH{\PMO{002924}} &\CH{\PMO{002925}} &\CH{\PMO{002926}} &\CH{\PMO{002927}} &\CH{\PMO{002928}} &\CH{\PMO{002929}} &\CH{\PMO{002930}} &\CH{\PMO{002931}} &\CH{\PMO{002932}} &\CH{\PMO{002933}} &\CH{\PMO{002934}} &\CH{\PMO{002935}} &\CH{\PMO{002936}} &\CH{\PMO{002937}} &\CH{\PMO{002938}} &\CH{\PMO{002939}} &\CH{\PMO{002940}} \\ \texttt{002941} &\CH{\PMO{002941}} &\CH{\PMO{002942}} &\CH{\PMO{002943}} &\CH{\PMO{002944}} &\CH{\PMO{002945}} &\CH{\PMO{002946}} &\CH{\PMO{002947}} &\CH{\PMO{002948}} &\CH{\PMO{002949}} &\CH{\PMO{002950}} &\CH{\PMO{002951}} &\CH{\PMO{002952}} &\CH{\PMO{002953}} &\CH{\PMO{002954}} &\CH{\PMO{002955}} &\CH{\PMO{002956}} &\CH{\PMO{002957}} &\CH{\PMO{002958}} &\CH{\PMO{002959}} &\CH{\PMO{002960}} \\ \texttt{002961} &\CH{\PMO{002961}} &\CH{\PMO{002962}} &\CH{\PMO{002963}} &\CH{\PMO{002964}} &\CH{\PMO{002965}} &\CH{\PMO{002966}} &\CH{\PMO{002967}} &\CH{\PMO{002968}} &\CH{\PMO{002969}} &\CH{\PMO{002970}} &\CH{\PMO{002971}} &\CH{\PMO{002972}} &\CH{\PMO{002973}} &\CH{\PMO{002974}} &\CH{\PMO{002975}} &\CH{\PMO{002976}} &\CH{\PMO{002977}} &\CH{\PMO{002978}} &\CH{\PMO{002979}} &\CH{\PMO{002980}} \\ \texttt{002981} &\CH{\PMO{002981}} &\CH{\PMO{002982}} &\CH{\PMO{002983}} &\CH{\PMO{002984}} &\CH{\PMO{002985}} &\CH{\PMO{002986}} &\CH{\PMO{002987}} &\CH{\PMO{002988}} &\CH{\PMO{002989}} &\CH{\PMO{002990}} &\CH{\PMO{002991}} &\CH{\PMO{002992}} &\CH{\PMO{002993}} &\CH{\PMO{002994}} &\CH{\PMO{002995}} &\CH{\PMO{002996}} &\CH{\PMO{002997}} &\CH{\PMO{002998}} &\CH{\PMO{002999}} &\CH{\PMO{003000}} \\ \hline \end{tabular} \end{center}} \vskip 1.2em \vbox{ \noindent\textsf{\textbf{003001}}\par \begin{center}\begin{tabular}{|r|cccccccccccccccccccc|} \hline &\texttt{01}&\texttt{02}&\texttt{03}&\texttt{04}&\texttt{05}&\texttt{06}&\texttt{07}&\texttt{08}&\texttt{09}&\texttt{10}&\texttt{11}&\texttt{12}&\texttt{13}&\texttt{14}&\texttt{15}&\texttt{16}&\texttt{17}&\texttt{18}&\texttt{19}&\texttt{20}\\ \hline \texttt{003001} &\CH{\PMO{003001}} &\CH{\PMO{003002}} &\CH{\PMO{003003}} &\CH{\PMO{003004}} &\CH{\PMO{003005}} &\CH{\PMO{003006}} &\CH{\PMO{003007}} &\CH{\PMO{003008}} &\CH{\PMO{003009}} &\CH{\PMO{003010}} &\CH{\PMO{003011}} &\CH{\PMO{003012}} &\CH{\PMO{003013}} &\CH{\PMO{003014}} &\CH{\PMO{003015}} &\CH{\PMO{003016}} &\CH{\PMO{003017}} &\CH{\PMO{003018}} &\CH{\PMO{003019}} &\CH{\PMO{003020}} \\ \texttt{003021} &\CH{\PMO{003021}} &\CH{\PMO{003022}} &\CH{\PMO{003023}} &\CH{\PMO{003024}} &\CH{\PMO{003025}} &\CH{\PMO{003026}} &\CH{\PMO{003027}} &\CH{\PMO{003028}} &\CH{\PMO{003029}} &\CH{\PMO{003030}} &\CH{\PMO{003031}} &\CH{\PMO{003032}} &\CH{\PMO{003033}} &\CH{\PMO{003034}} &\CH{\PMO{003035}} &\CH{\PMO{003036}} &\CH{\PMO{003037}} &\CH{\PMO{003038}} &\CH{\PMO{003039}} &\CH{\PMO{003040}} \\ \texttt{003041} &\CH{\PMO{003041}} &\CH{\PMO{003042}} &\CH{\PMO{003043}} &\CH{\PMO{003044}} &\CH{\PMO{003045}} &\CH{\PMO{003046}} &\CH{\PMO{003047}} &\CH{\PMO{003048}} &\CH{\PMO{003049}} &\CH{\PMO{003050}} &\CH{\PMO{003051}} &\CH{\PMO{003052}} &\CH{\PMO{003053}} &\CH{\PMO{003054}} &\CH{\PMO{003055}} &\CH{\PMO{003056}} &\CH{\PMO{003057}} &\CH{\PMO{003058}} &\CH{\PMO{003059}} &\CH{\PMO{003060}} \\ \texttt{003061} &\CH{\PMO{003061}} &\CH{\PMO{003062}} &\CH{\PMO{003063}} &\CH{\PMO{003064}} &\CH{\PMO{003065}} &\CH{\PMO{003066}} &\CH{\PMO{003067}} &\CH{\PMO{003068}} &\CH{\PMO{003069}} &\CH{\PMO{003070}} &\CH{\PMO{003071}} &\CH{\PMO{003072}} &\CH{\PMO{003073}} &\CH{\PMO{003074}} &\CH{\PMO{003075}} &\CH{\PMO{003076}} &\CH{\PMO{003077}} &\CH{\PMO{003078}} &\CH{\PMO{003079}} &\CH{\PMO{003080}} \\ \texttt{003081} &\CH{\PMO{003081}} &\CH{\PMO{003082}} &\CH{\PMO{003083}} &\CH{\PMO{003084}} &\CH{\PMO{003085}} &\CH{\PMO{003086}} &\CH{\PMO{003087}} &\CH{\PMO{003088}} &\CH{\PMO{003089}} &\CH{\PMO{003090}} &\CH{\PMO{003091}} &\CH{\PMO{003092}} &\CH{\PMO{003093}} &\CH{\PMO{003094}} &\CH{\PMO{003095}} &\CH{\PMO{003096}} &\CH{\PMO{003097}} &\CH{\PMO{003098}} &\CH{\PMO{003099}} &\CH{\PMO{003100}} \\ \hline \end{tabular} \end{center}} \end{document} vflib3-3.6.14.dfsg/ascii-jtex/Mojikyo/test1-v.dvi0000644000175000017500000000055007014177422020760 0ustar mohuramohura; TeX output 1999.11.16:1552cgjtFƠ F tmin104A;z mojkv101ˁRs4A;zˁRt4A;zˁRu4A;z!#'wK`y cmr101*; mojkv101 tmin10K`y cmr10vflib3-3.6.14.dfsg/ascii-jtex/Mojikyo/samplet.dvi0000644000175000017500000014254007023145556021133 0ustar mohuramohura; TeX output 1999.12.07:1755,ܱIN kAH cmssbx100000016Eff s, ̈́ ff+ ff2L!ف0?*<Ӂ0@@́0AW<ǁ0Bm0C<0D0E<0FǼ0G<0HpZ ̈́ ff ̈́ ff3000041 ff2́0II=0J_ 0Kv=0L0M<0N0O<0P0Q<߁0Rف0S*<Ӂ0T@́0UW<ǁ0Vm0W<0X0Y<0ZǼ0[<0\pZ ̈́ ff ̈́ ff3000061 ff2́0]I=0^_ 0_v=0`0a<0b0c<0d0e<߁0fف0g*<Ӂ0h@́0iW<ǁ0jm0k<0l0m<0nǼ0o<0ppZ ̈́ ff ̈́ ff3000081 ff2́0qI=0r_ 0sv=0t0u<0v0w<0x0y<߁0zف0{*<Ӂ0|@́0}W<ǁ0~m1!<1"1#<1$Ǽ1%<1&pZ ̈́ ffff{$΍0001016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3000101 ff2́1'I=1(_ 1)v=1*1+<1,1-<1.1/<߁10ف11*<Ӂ12@́13W<ǁ14m15<1617<18Ǽ19<1:pZ ̈́ ff  ̈́ ff3000121 ff2́1;I=1<_ 1=v=1>1?<1@1A<1B1C<߁1Dف1E*<Ӂ1F@́1GW<ǁ1Hm1I<1J1K<1LǼ1M<1NpZ ̈́ ff ̈́ ff3000141 ff2́1OI=1P_ 1Qv=1R1S<1T1U<1V1W<߁1Xف1Y*<Ӂ1Z@́1[W<ǁ1\m1]<1^1_<1`Ǽ1a<1bpZ ̈́ ff ̈́ ff3000161 ff2́1cI=1d_ 1ev=1f1g<1h1i<1j1k<߁1lف1m*<Ӂ1n@́1oW<ǁ1pm1q<1r1s<1tǼ1u<1vpZ ̈́ ff ̈́ ff3000181 ff2́1wI=1x_ 1yv=1z1{<1|1}<1~2!<߁2"ف2#*<Ӂ2$@́2%W<ǁ2&m2'<2(2)<2*Ǽ2+<2,pZ ̈́ ffff0002016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3000201 ff2́2-I=2._ 2/v=2021<2223<2425<߁26ف27*<Ӂ28@́29W<ǁ2:m2;<2<2=<2>Ǽ2?<2@pZ ̈́ ff  ̈́ ff3000221 ff2́2AI=2B_ 2Cv=2D2E<2F2G<2H2I<߁2Jف2K*<Ӂ2L@́2MW<ǁ2Nm2O<2P2Q<2RǼ2S<2TpZ ̈́ ff ̈́ ff3000241 ff2́2UI=2V_ 2Wv=2X2Y<2Z2[<2\2]<߁2^ف2_*<Ӂ2`@́2aW<ǁ2bm2c<2d2e<2fǼ2g<2hpZ ̈́ ff ̈́ ff3000261 ff2́2iI=2j_ 2kv=2l2m<2n2o<2p2q<߁2rف2s*<Ӂ2t@́2uW<ǁ2vm2w<2x2y<2zǼ2{<2|pZ ̈́ ff ̈́ ff3000281 ff2́2}I=2~_ 3!v=3"3#<3$3%<3&3'<߁3(ف3)*<Ӂ3*@́3+W<ǁ3,m3-<3.3/<30Ǽ31<32pZ ̈́ ffff0003016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3000301 ff2́33I=34_ 35v=3637<3839<3:3;<߁3<ف3=*<Ӂ3>@́3?W<ǁ3@m3A<3B3C<3DǼ3E<3FpZ ̈́ ff  ̈́ ff3000321 ff2́3GI=3H_ 3Iv=3J3K<3L3M<3N3O<߁3Pف3Q*<Ӂ3R@́3SW<ǁ3Tm3U<3V3W<3XǼ3Y<3ZpZ ̈́ ff ̈́ ff3000341 ff2́3[I=3\_ 3]v=3^3_<3`3a<3b3c<߁3dف3e*<Ӂ3f@́3gW<ǁ3hm3i<3j3k<3lǼ3m<3npZ ̈́ ff ̈́ ff3000361 ff2́3oI=3p_ 3qv=3r3s<3t3u<3v3w<߁3xف3y*<Ӂ3z@́3{W<ǁ3|m3}<3~4!<4"Ǽ4#<4$pZ ̈́ ff ̈́ ff3000381 ff2́4%I=4&_ 4'v=4(4)<4*4+<4,4-<߁4.ف4/*<Ӂ40@́41W<ǁ42m43<4445<46Ǽ47<48pZ ̈́ ffff0004016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3000401 ff2́49I=4:_ 4;v=4<4=<4>4?<4@4A<߁4Bف4C*<Ӂ4D@́4EW<ǁ4Fm4G<4H4I<4JǼ4K<4LpZ ̈́ ff  ̈́ ff3000421 ff2́4MI=4N_ 4Ov=4P4Q<4R4S<4T4U<߁4Vف4W*<Ӂ4X@́4YW<ǁ4Zm4[<4\4]<4^Ǽ4_<4`pZ ̈́ ff ̈́ ff3000441 ff2́4aI=4b_ 4cv=4d4e<4f4g<4h4i<߁4jف4k*<Ӂ4l@́4mW<ǁ4nm4o<4p4q<4rǼ4s<4tpZ ̈́ ff ̈́ ff3000461 ff2́4uI=4v_ 4wv=4x4y<4z4{<4|4}<߁4~ف5!*<Ӂ5"@́5#W<ǁ5$m5%<5&5'<5(Ǽ5)<5*pZ ̈́ ff ̈́ ff3000481 ff2́5+I=5,_ 5-v=5.5/<5051<5253<߁54ف55*<Ӂ56@́57W<ǁ58m59<5:5;<5<Ǽ5=<5>pZ ̈́ ffff0005016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3000501 ff2́5?I=5@_ 5Av=5B5C<5D5E<5F5G<߁5Hف5I*<Ӂ5J@́5KW<ǁ5Lm5M<5N5O<5PǼ5Q<5RpZ ̈́ ff  ̈́ ff3000521 ff2́5SI=5T_ 5Uv=5V5W<5X5Y<5Z5[<߁5\ف5]*<Ӂ5^@́5_W<ǁ5`m5a<5b5c<5dǼ5e<5fpZ ̈́ ff ̈́ ff3000541 ff2́5gI=5h_ 5iv=5j5k<5l5m<5n5o<߁5pف5q*<Ӂ5r@́5sW<ǁ5tm5u<5v5w<5xǼ5y<5zpZ ̈́ ff ̈́ ff3000561 ff2́5{I=5|_ 5}v=5~6!<6"6#<6$6%<߁6&ف6'*<Ӂ6(@́6)W<ǁ6*m6+<6,6-<6.Ǽ6/<60pZ ̈́ ff ̈́ ff3000581 ff2́61I=62_ 63v=6465<6667<6869<߁6:ف6;*<Ӂ6<@́6=W<ǁ6>m6?<6@6A<6BǼ6C<6DpZ ̈́ ffff?K`y cmr101*,ܱIN0006016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3000601 ff2́6EI=6F_ 6Gv=6H6I<6J6K<6L6M<߁6Nف6O*<Ӂ6P@́6QW<ǁ6Rm6S<6T6U<6VǼ6W<6XpZ ̈́ ff  ̈́ ff3000621 ff2́6YI=6Z_ 6[v=6\6]<6^6_<6`6a<߁6bف6c*<Ӂ6d@́6eW<ǁ6fm6g<6h6i<6jǼ6k<6lpZ ̈́ ff ̈́ ff3000641 ff2́6mI=6n_ 6ov=6p6q<6r6s<6t6u<߁6vف6w*<Ӂ6x@́6yW<ǁ6zm6{<6|6}<6~Ǽ7!<7"pZ ̈́ ff ̈́ ff3000661 ff2́7#I=7$_ 7%v=7&7'<7(7)<7*7+<߁7,ف7-*<Ӂ7.@́7/W<ǁ70m71<7273<74Ǽ75<76pZ ̈́ ff ̈́ ff3000681 ff2́77I=78_ 79v=7:7;<7<7=<7>7?<߁7@ف7A*<Ӂ7B@́7CW<ǁ7Dm7E<7F7G<7HǼ7I<7JpZ ̈́ ffff{$΍0007016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3000701 ff2́7KI=7L_ 7Mv=7N7O<7P7Q<7R7S<߁7Tف7U*<Ӂ7V@́7WW<ǁ7Xm7Y<7Z7[<7\Ǽ7]<7^pZ ̈́ ff  ̈́ ff3000721 ff2́7_I=7`_ 7av=7b7c<7d7e<7f7g<߁7hف7i*<Ӂ7j@́7kW<ǁ7lm7m<7n7o<7pǼ7q<7rpZ ̈́ ff ̈́ ff3000741 ff2́7sI=7t_ 7uv=7v7w<7x7y<7z7{<߁7|ف7}*<Ӂ7~@́8!W<ǁ8"m8#<8$8%<8&Ǽ8'<8(pZ ̈́ ff ̈́ ff3000761 ff2́8)I=8*_ 8+v=8,8-<8.8/<8081<߁82ف83*<Ӂ84@́85W<ǁ86m87<8889<8:Ǽ8;<8<pZ ̈́ ff ̈́ ff3000781 ff2́8=I=8>_ 8?v=8@8A<8B8C<8D8E<߁8Fف8G*<Ӂ8H@́8IW<ǁ8Jm8K<8L8M<8NǼ8O<8PpZ ̈́ ffff0008016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3000801 ff2́8QI=8R_ 8Sv=8T8U<8V8W<8X8Y<߁8Zف8[*<Ӂ8\@́8]W<ǁ8^m8_<8`8a<8bǼ8c<8dpZ ̈́ ff  ̈́ ff3000821 ff2́8eI=8f_ 8gv=8h8i<8j8k<8l8m<߁8nف8o*<Ӂ8p@́8qW<ǁ8rm8s<8t8u<8vǼ8w<8xpZ ̈́ ff ̈́ ff3000841 ff2́8yI=8z_ 8{v=8|8}<8~9!<9"9#<߁9$ف9%*<Ӂ9&@́9'W<ǁ9(m9)<9*9+<9,Ǽ9-<9.pZ ̈́ ff ̈́ ff3000861 ff2́9/I=90_ 91v=9293<9495<9697<߁98ف99*<Ӂ9:@́9;W<ǁ9<m9=<9>9?<9@Ǽ9A<9BpZ ̈́ ff ̈́ ff3000881 ff2́9CI=9D_ 9Ev=9F9G<9H9I<9J9K<߁9Lف9M*<Ӂ9N@́9OW<ǁ9Pm9Q<9R9S<9TǼ9U<9VpZ ̈́ ffff0009016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3000901 ff2́9WI=9X_ 9Yv=9Z9[<9\9]<9^9_<߁9`ف9a*<Ӂ9b@́9cW<ǁ9dm9e<9f9g<9hǼ9i<9jpZ ̈́ ff  ̈́ ff3000921 ff2́9kI=9l_ 9mv=9n9o<9p9q<9r9s<߁9tف9u*<Ӂ9v@́9wW<ǁ9xm9y<9z9{<9|Ǽ9}<9~pZ ̈́ ff ̈́ ff3000941 ff2́:!I=:"_ :#v=:$:%<:&:'<:(:)<߁:*ف:+*<Ӂ:,@́:-W<ǁ:.m:/<:0:1<:2Ǽ:3<:4pZ ̈́ ff ̈́ ff3000961 ff2́:5I=:6_ :7v=:8:9<:::;<:<:=<߁:>ف:?*<Ӂ:@@́:AW<ǁ:Bm:C<:D:E<:FǼ:G<:HpZ ̈́ ff ̈́ ff3000981 ff2́:II=:J_ :Kv=:L:M<:N:O<:P:Q<߁:Rف:S*<Ӂ:T@́:UW<ǁ:Vm:W<:X:Y<:ZǼ:[<:\pZ ̈́ ffff0010016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3001001 ff2́:]I=:^_ :_v=:`:a<:b:c<:d:e<߁:fف:g*<Ӂ:h@́:iW<ǁ:jm:k<:l:m<:nǼ:o<:ppZ ̈́ ff  ̈́ ff3001021 ff2́:qI=:r_ :sv=:t:u<:v:w<:x:y<߁:zف:{*<Ӂ:|@́:}W<ǁ:~m;!<;";#<;$Ǽ;%<;&pZ ̈́ ff ̈́ ff3001041 ff2́;'I=;(_ ;)v=;*;+<;,;-<;.;/<߁;0ف;1*<Ӂ;2@́;3W<ǁ;4m;5<;6;7<;8Ǽ;9<;:pZ ̈́ ff ̈́ ff3001061 ff2́;;I=;<_ ;=v=;>;?<;@;A<;B;C<߁;Dف;E*<Ӂ;F@́;GW<ǁ;Hm;I<;J;K<;LǼ;M<;NpZ ̈́ ff ̈́ ff3001081 ff2́;OI=;P_ ;Qv=;R;S<;T;U<;V;W<߁;Xف;Y*<Ӂ;Z@́;[W<ǁ;\m;]<;^;_<;`Ǽ;a<;bpZ ̈́ ffff0011016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3001101 ff2́;cI=;d_ ;ev=;f;g<;h;i<;j;k<߁;lف;m*<Ӂ;n@́;oW<ǁ;pm;q<;r;s<;tǼ;u<;vpZ ̈́ ff  ̈́ ff3001121 ff2́;wI=;x_ ;yv=;z;{<;|;}<;~@́=?W<ǁ=@m=A<=B=C<=DǼ=E<=FpZ ̈́ ff ̈́ ff3001261 ff2́=GI==H_ =Iv==J=K<=L=M<=N=O<߁=Pف=Q*<Ӂ=R@́=SW<ǁ=Tm=U<=V=W<=XǼ=Y<=ZpZ ̈́ ff ̈́ ff3001281 ff2́=[I==\_ =]v==^=_<=`=a<=b=c<߁=dف=e*<Ӂ=f@́=gW<ǁ=hm=i<=j=k<=lǼ=m<=npZ ̈́ ffff{$΍0013016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3001301 ff2́=oI==p_ =qv==r=s<=t=u<=v=w<߁=xف=y*<Ӂ=z@́={W<ǁ=|m=}<=~>!<>"Ǽ>#<>$pZ ̈́ ff  ̈́ ff3001321 ff2́>%I=>&_ >'v=>(>)<>*>+<>,>-<߁>.ف>/*<Ӂ>0@́>1W<ǁ>2m>3<>4>5<>6Ǽ>7<>8pZ ̈́ ff ̈́ ff3001341 ff2́>9I=>:_ >;v=><>=<>>>?<>@>A<߁>Bف>C*<Ӂ>D@́>EW<ǁ>Fm>G<>H>I<>JǼ>K<>LpZ ̈́ ff ̈́ ff3001361 ff2́>MI=>N_ >Ov=>P>Q<>R>S<>T>U<߁>Vف>W*<Ӂ>X@́>YW<ǁ>Zm>[<>\>]<>^Ǽ>_<>`pZ ̈́ ff ̈́ ff3001381 ff2́>aI=>b_ >cv=>d>e<>f>g<>h>i<߁>jف>k*<Ӂ>l@́>mW<ǁ>nm>o<>p>q<>rǼ>s<>tpZ ̈́ ffff0014016Eff s, ̈́ ff+ ff2L01H̵02_L03u̩04L05̝06L07̑08L09̅10L11)y12@Ls13Vm14mLg15a16L[17U18LO19I20 ̈́ ffs3ff ̈́ ff3001401 ff2́>uI=>v_ >wv=>x>y<>z>{<>|>}<߁>~ف?!*<Ӂ?"@́?#W<ǁ?$m?%pZ ̈́ ff ̈́ ff3001441 ff2́??I=?@_ ?Av=?B?Cm@?<@@@A<@BǼ@C<@DpZ ̈́ ff ̈́ ff3001541 ff2́@EI=@F_ @Gv=@H@I<@J@K<@L@M<߁@Nف@O*<Ӂ@P@́@QW<ǁ@Rm@S<@T@U<@VǼ@W<@XpZ ̈́ ff ̈́ ff3001561 ff2́@YI=@Z_ @[v=@\@]<@^@_<@`@a<߁@bف@c*<Ӂ@d@́@eW<ǁ@fm@g<@h@i<@jǼ@k<@lpZ ̈́ ff ̈́ ff3001581 ff2́@mI=@n_ @ov=@p@q<@r@s<@t@u<߁@vف@w*<Ӂ@x@́@yW<ǁ@zm@{<@|@}<@~ǼA!A?<߁A@فAA*<ӁAB@́ACW<ǁADmAE_ B?v=B@BAC?فD?*<ӁD@@́DAW<ǁDBmDCE?ǼF?@́G?W<ǁG@mGAH?pZ ̈́ ff ̈́ ff3002381 ff2́I?I=I@_ IAv=IBICmJ?K?<߁K@فKA*<ӁKB@́KCW<ǁKDmKE_ L?v=L@LAM?فP?*<ӁP@@́PAW<ǁPBmPCQ?ǼR?6?=0@*A=$BC*=D@EW= FmG=HIǼ?<@p ̈́ ff ̈́ ff3000641 ff2ZAI=TB_NCv=HDBE=m?=@A?*=@@AW= BmC=DE6?=0@*A=$BC*=D@EW= FmG=HIǼ?<@p ̈́ ff  ̈́ ff3001921 ff2ZAI=TB_NCv=HDBE=m?=@A?*=@@AW= BmC=DE6?=0@*A=$BC*=D@EW= FmG=HI?*=@@AW= BmC=DEsample-u.tex ./a.out -k >sample-k.tex ./a.out -m >sample-m.tex $(PLATEX) sample-u.tex $(PLATEX) sample-k.tex $(PLATEX) sample-m.tex -rm -f a.out *.log *.aux vflib3-3.6.14.dfsg/ascii-jtex/eKanji/README0000644000175000017500000000252207027360061017407 0ustar mohuramohuraeKanji support in pLaTeX2e Hirotsugu Kakugawa * Macro package and font definition files for pLaTeX2e: - "ekanji.sty" - "jy1ekan.fd" - "jt1ekan.fd" * TFM files: - See tfm/ directory * Installation 1. Copy macro package file and font definition files shown above in some place under TEXMF directory. 2. Copy TFM files shown above in some place under TEXMF directory. 3. Run 'mktexlsr' * Sample files: - "sample.tex" - Try running "make samples" (after you install macro files and TFMs.) * Commands: - \EKU{char_number} for accessing a character in ekan0010.d24 font file. - \EKK{char_number} for accessing a character in ekan0020.d24 font file. - \EKM{char_number} for accessing a character in ekan0030.d24 font file. "char_number" is a character number in a font file, starting from 1. * Utility programs for eKanji fonts: See util/ directory. - ekdump Show contents of eKanji font file. Characters are displayed by ASCII art. - ekreenc Create a new eKanji font file whose character encoding is changed by another eKanji font file. (Note: pLaTeX2e is a localized TeX for Japanese by ASCII Coop. See http://www.ascii.co.jp/ptex/) vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tools/0000755000175000017500000000000007024134132017661 5ustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/eKanji/tools/Makefile0000644000175000017500000000025007022705042021320 0ustar mohuramohuraall: ekdump ekreenc clean: -rm -f ekdump ekreenc core *.core *.o a.out *~ ekdump: ekdump.c $(CC) -o ekdump ekdump.c ekreenc: ekreenc.c $(CC) -o ekreenc ekreenc.c vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tools/ekdump.c0000644000175000017500000001004207023140746021316 0ustar mohuramohura/* ekdump.c - dump eKanji font in ASCII art form. * by Hirotsugu Kakugawa * * Copyright (C) 1999 Hirotsugu Kakugawa. All rights reserved. * See "COPYING" for distribution of this software. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #define PIXEL_SIZE 24 #define DOT_FOREGROUND '*' #define DOT_BACKGROUND '.' int pixel_size = PIXEL_SIZE; char dot_fg = DOT_FOREGROUND; char dot_bg = DOT_BACKGROUND; void usage(void); void dump_char(long ch, unsigned char *buff); int main(int argc, char** argv) { unsigned char buff[24*(24/8)]; int fd, dsize, need_close; long ch; argc--; argv++; while ((argc > 0) && (argv[0][0] == '-')){ if (strcmp(argv[0], "-24") == 0){ pixel_size = 24; } else if (strcmp(argv[0], "-16") == 0){ pixel_size = 16; } else if (strcmp(argv[0], "-fg") == 0){ argc--; argv++; dot_fg = argv[0][0]; } else if (strcmp(argv[0], "-bg") == 0){ argc--; argv++; dot_bg = argv[0][0]; } else if ((strcmp(argv[0], "-h") == 0) || (strcmp(argv[0], "-help") == 0) || (strcmp(argv[0], "--help") == 0) ){ usage(); } argc--; argv++; } dsize = pixel_size * ((pixel_size + 7) / 8); if (argc > 0){ need_close = 1; if ((fd = open(argv[0], O_RDONLY)) < 0){ fprintf(stderr, "Can't open %s\n", argv[0]); exit(0); } argc--; argv++; } else { need_close = 0; fd = 0; } if (argc > 0){ while (argc > 0){ sscanf(argv[0], "%li", &ch); if (ch < 1){ fprintf(stderr, "No such character: %s\n", argv[0]); continue; } lseek(fd, (ch-1) * dsize, SEEK_SET); if (read(fd, buff, dsize) > 0){ dump_char(ch, buff); } else { fprintf(stderr, "No such character: %s\n", argv[0]); } argc--; argv++; } } else { ch = 1; while (read(fd, buff, dsize) > 0){ dump_char(ch, buff); ch++; } } if (need_close == 1){ close(fd); } return 0; } void usage(void) { fprintf(stderr, "ekdump - dump eKanji font in ASCII art form.\n"); fprintf(stderr, "Usage: ekdump [option] [font_file [code...]]\n"); fprintf(stderr, " options:\n"); fprintf(stderr, " -fg C Foreground character [default: %c]\n", DOT_FOREGROUND); fprintf(stderr, " -bg C Background character [default: %c]\n", DOT_BACKGROUND); fprintf(stderr, " -24 Dot size of the font file 24-dot (default)\n"); fprintf(stderr, " -16 Dot size of the font file 16-dot\n"); fprintf(stderr, " -help Print help.\n"); fprintf(stderr, "If character codes are not given, all characters\n"); fprintf(stderr, "are dumped in a font file. If font file name is\n"); fprintf(stderr, "not given, ekdump reads font file data from\n"); fprintf(stderr, "standard input and all characters are dumped\n"); fprintf(stderr, "in the input stream.\n"); exit(0); } void dump_char(long ch, unsigned char *buff) { int wb, i, j; static unsigned char bits[] = { 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01 }; printf("Code %06d (0x%06x, Row %d Cel %d)\n", ch, ch, (ch-1)/94+1, (ch-1)%94 + 1); wb = (pixel_size + 7) / 8; for (i = 0; i < pixel_size; i++){ for (j = 0; j < pixel_size; j++){ if ((buff[i*wb + (j/8)] & bits[j%8]) != 0){ putchar(dot_fg); } else { putchar(dot_bg); } } putchar('\n'); } putchar('\n'); } /*EOF*/ vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tools/ekreenc.c0000644000175000017500000001053307023140757021454 0ustar mohuramohura/* ekreenc.c - reencode an eKanji font. * by Hirotsugu Kakugawa * * Copyright (C) 1999 Hirotsugu Kakugawa. All rights reserved. * See "COPYING" for distribution of this software. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #define PIXEL_SIZE 24 int pixel_size = PIXEL_SIZE; int ifd, ofd; void usage(void); char *x_index(char *p, char ch); void x_memclr(unsigned char *buff, int dsize); int main(int argc, char** argv) { FILE *efp; unsigned char buff[24*(24/8)]; char line[1024]; char *efile, *ifile, *ofile, *s; int dsize, i_need_close, o_need_close; long ich, och, och_last; efile = ifile = ofile = NULL; argc--; argv++; while ((argc > 0) && (argv[0][0] == '-')){ if (strcmp(argv[0], "-24") == 0){ pixel_size = 24; } else if (strcmp(argv[0], "-16") == 0){ pixel_size = 16; } else if (strcmp(argv[0], "-i") == 0){ argc--; argv++; ifile = argv[0]; } else if (strcmp(argv[0], "-o") == 0){ argc--; argv++; ofile = argv[0]; } else if (strcmp(argv[0], "-e") == 0){ argc--; argv++; efile = argv[0]; } else if ((strcmp(argv[0], "-h") == 0) || (strcmp(argv[0], "-help") == 0) || (strcmp(argv[0], "--help") == 0) ){ usage(); } argc--; argv++; } dsize = pixel_size * ((pixel_size + 7) / 8); efp = NULL; if (efile != NULL){ if ((efp = fopen(efile, "r")) < 0){ fprintf(stderr, "Can't open reeocoding table file: %s\n", ifile); exit(0); } } else { fprintf(stderr, "ekreenc: No reencoding table file.\n"); usage(); } if (ifile != NULL){ i_need_close = 1; if ((ifd = open(ifile, O_RDONLY)) < 0){ fprintf(stderr, "Can't open input font file: %s\n", ifile); exit(0); } } else { i_need_close = 0; ifd = 0; } if (ofile != NULL){ o_need_close = 1; if ((ofd = creat(ofile, 0644)) < 0){ fprintf(stderr, "Can't open output font file: %s\n", ofile); exit(0); } } else { o_need_close = 0; ofd = 1; } och_last = 0; while (fgets(line, sizeof(line), efp) != NULL){ if ((s = x_index(buff, '#')) != NULL) *s = '\0'; if (sscanf(line, "%li%li", &och, &ich) != 2) continue; if (och_last < (och-1)){ x_memclr(buff, dsize); while (och_last < (och-1)){ write(ofd, buff, dsize); och_last++; } } if (ich > 0){ lseek(ifd, (ich-1) * dsize, SEEK_SET); if (read(ifd, buff, dsize) > 0){ write(ofd, buff, dsize); } else { fprintf(stderr, "No such character: %s\n", argv[0]); } } else { x_memclr(buff, dsize); write(ofd, buff, dsize); } och_last = och; och++; } if (i_need_close == 1){ close(ifd); } if (o_need_close == 1){ close(ofd); } fclose(efp); return 0; } void usage(void) { fprintf(stderr, "ekreenc - reencode an eKanji font file.\n"); fprintf(stderr, "Usage: ekreenc -e FILE [option]\n"); fprintf(stderr, " options:\n"); fprintf(stderr, " -e FILE Reencoding table file\n"); fprintf(stderr, " -i FILE Input font file (stdin if not given)\n"); fprintf(stderr, " -o FILE Output font file (stdout if not given)\n"); fprintf(stderr, " -24 Dot size of the font file 24-dot (default)\n"); fprintf(stderr, " -16 Dot size of the font file 16-dot\n"); fprintf(stderr, " -help Print help.\n"); exit(0); } char* x_index(char *p, char ch) { while (*p != '\0'){ if (*p == ch) return p; p++; } return NULL; } void x_memclr(unsigned char *buff, int dsize) { int i; for (i = dsize; i > 0; i--){ *buff = 0; buff++; } } /*EOF*/ vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/0000755000175000017500000000000007027332463017321 5ustar mohuramohuravflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan1000.tfm0000644000175000017500000000025407027354407021253 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan1001.tfm0000644000175000017500000000025407027354407021254 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan1002.tfm0000644000175000017500000000025407027354407021255 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan1003.tfm0000644000175000017500000000025407027354410021250 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan1004.tfm0000644000175000017500000000025407027354410021251 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/mktfm0000755000175000017500000000166307027332367020376 0ustar mohuramohura#!/bin/sh # TFM HTFM="ekan1000.tfm ekan1001.tfm ekan1002.tfm ekan1003.tfm ekan1004.tfm \ ekan2000.tfm ekan2001.tfm ekan2002.tfm ekan2003.tfm ekan2004.tfm \ ekan2005.tfm ekan2006.tfm ekan2007.tfm ekan2008.tfm \ ekan3000.tfm ekan3001.tfm ekan3002.tfm ekan3003.tfm ekan3004.tfm \ ekan3005.tfm ekan3006.tfm ekan3007.tfm ekan3008.tfm " VTFM="tekan1000.tfm tekan1001.tfm tekan1002.tfm tekan1003.tfm tekan1004.tfm \ tekan2000.tfm tekan2001.tfm tekan2002.tfm tekan2003.tfm tekan2004.tfm \ tekan2005.tfm tekan2006.tfm tekan2007.tfm tekan2008.tfm \ tekan3000.tfm tekan3001.tfm tekan3002.tfm tekan3003.tfm tekan3004.tfm \ tekan3005.tfm tekan3006.tfm tekan3007.tfm tekan3008.tfm " # PL to TFM (for JFM) PLTOTF=pltotf-j for tfm in ${HTFM} do echo Making ${tfm}... ${PLTOTF} ekan.pl ${tfm} done for tfm in ${VTFM} do echo Making ${tfm}... ${PLTOTF} tekan.pl ${tfm} done echo done. vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan1000.tfm0000644000175000017500000000025407027354410021431 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan1001.tfm0000644000175000017500000000025407027354410021432 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan1002.tfm0000644000175000017500000000025407027354410021433 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan1003.tfm0000644000175000017500000000025407027354410021434 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan1004.tfm0000644000175000017500000000025407027354410021435 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan.pl0000644000175000017500000000104107023160264020562 0ustar mohuramohura(COMMENT THIS IS A KANJI FORMAT FILE) (FAMILY EKANJI) (FACE F MRR) (CODINGSCHEME TEX KANJI TEXT) (DESIGNSIZE R 10.0) (COMMENT DESIGNSIZE IS IN POINTS) (COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) (CHECKSUM O 0) (SEVENBITSAFEFLAG TRUE) (FONTDIMEN (SLANT R 0.0) (SPACE R 0.0) (STRETCH R 0.091641) (SHRINK R 0.0) (XHEIGHT R 0.916443) (QUAD R 0.962216) (EXTRASPACE R 0.229101) (EXTRASTRETCH R 0.183283) (EXTRASHRINK R 0.114551) ) (TYPE O 0 (CHARWD R 0.962216) (CHARHT R 0.777588) (CHARDP R 0.138855) ) vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan.pl0000644000175000017500000000105507023160402020745 0ustar mohuramohura(COMMENT THIS IS A KANJI FORMAT FILE) (DIRECTION TATE) (FAMILY EKANJI) (FACE F MRR) (CODINGSCHEME JIS X0208) (DESIGNSIZE R 10.0) (COMMENT DESIGNSIZE IS IN POINTS) (COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) (CHECKSUM O 0) (SEVENBITSAFEFLAG TRUE) (FONTDIMEN (SLANT R 0.0) (SPACE R 0.0) (STRETCH R 0.091641) (SHRINK R 0.0) (XHEIGHT R 0.916443) (QUAD R 0.962216) (EXTRASPACE R 0.229101) (EXTRASTRETCH R 0.183283) (EXTRASHRINK R 0.114551) ) (TYPE O 0 (CHARWD R 0.962216) (CHARHT R 0.458221) (CHARDP R 0.458221) ) vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan2000.tfm0000644000175000017500000000025407027354410021246 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan2001.tfm0000644000175000017500000000025407027354410021247 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan2002.tfm0000644000175000017500000000025407027354410021250 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan2003.tfm0000644000175000017500000000025407027354410021251 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan2004.tfm0000644000175000017500000000025407027354410021252 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan2005.tfm0000644000175000017500000000025407027354410021253 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan2006.tfm0000644000175000017500000000025407027354410021254 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan2007.tfm0000644000175000017500000000025407027354410021255 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan2008.tfm0000644000175000017500000000025407027354410021256 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan3000.tfm0000644000175000017500000000025407027354410021247 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan3001.tfm0000644000175000017500000000025407027354410021250 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan3002.tfm0000644000175000017500000000025407027354410021251 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan3003.tfm0000644000175000017500000000025407027354410021252 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan3004.tfm0000644000175000017500000000025407027354410021253 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan3005.tfm0000644000175000017500000000025407027354410021254 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan3006.tfm0000644000175000017500000000025407027354410021255 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan3007.tfm0000644000175000017500000000025407027354410021256 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/ekan3008.tfm0000644000175000017500000000025407027354410021257 0ustar mohuramohura + TEX KANJI TEXTEKANJIe= q8w]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan2000.tfm0000644000175000017500000000025407027354410021432 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan2001.tfm0000644000175000017500000000025407027354410021433 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan2002.tfm0000644000175000017500000000025407027354410021434 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan2003.tfm0000644000175000017500000000025407027354410021435 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan2004.tfm0000644000175000017500000000025407027354410021436 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan2005.tfm0000644000175000017500000000025407027354410021437 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan2006.tfm0000644000175000017500000000025407027354410021440 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan2007.tfm0000644000175000017500000000025407027354410021441 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan2008.tfm0000644000175000017500000000025407027354410021442 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan3000.tfm0000644000175000017500000000025407027354410021433 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan3001.tfm0000644000175000017500000000025407027354410021434 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan3002.tfm0000644000175000017500000000025407027354410021435 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan3003.tfm0000644000175000017500000000025407027354410021436 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan3004.tfm0000644000175000017500000000025407027354410021437 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan3005.tfm0000644000175000017500000000025407027354410021440 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan3006.tfm0000644000175000017500000000025407027354410021441 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan3007.tfm0000644000175000017500000000025407027354410021442 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/tfm/tekan3008.tfm0000644000175000017500000000025407027354410021443 0ustar mohuramohura + JIS X0208EKANJIe=TTw]e=f3vflib3-3.6.14.dfsg/ascii-jtex/eKanji/sample.dvi0000644000175000017500000000126007027354726020525 0ustar mohuramohura; TeX output 1999.12.20:1625yiƠM !", cmsy10WK`y cmr10UnicoGdeUUekqan0010.d24:W ekan1000ʁ0!0"0#0$0&0'0(MW min105~Bg9/_fUUekqan0020:W ekan2000ˁ0!0"0#0$0&0'0(MW=t66Bg4AOBgѲekqan0030:W! ekan3000́0!0"0#0$0&0'0(1*;! ekan3000 ekan2000 ekan1000 min10 !", cmsy10K`y cmr10vflib3-3.6.14.dfsg/ascii-jtex/eKanji/sample.tex0000644000175000017500000000054707027354704020546 0ustar mohuramohura\documentclass{jarticle} \usepackage{ekanji} \begin{document} \begin{itemize} \item Unicode ekan0010.d24: \\ \EKU{1}\EKU{2}\EKU{3}\EKU{4}\EKU{6}\EKU{7}\EKU{8}\\ \item 繯 ekan0020: \\ \EKK{1}\EKK{2}\EKK{3}\EKK{4}\EKK{6}\EKK{7}\EKK{8}\\ \item ekan0030:\\ \EKM{1}\EKM{2}\EKM{3}\EKM{4}\EKM{6}\EKM{7}\EKM{8}\\ \end{itemize} \end{document} vflib3-3.6.14.dfsg/ascii-jtex/eKanji/ekanji.sty0000644000175000017500000000407507027345661020547 0ustar mohuramohura%% %% This is file `ekanji.sty' for eKanji fonts %% by Hirotsugu Kakugawa (h.kakugwa@computer.org) %% \NeedsTeXFormat{LaTeX2e}% \ProvidesPackage{ekanji}[1999/12/07 ver 1.0]% \DeclareKanjiEncodingDefaults{}{} \DeclareYokoKanjiEncoding{JY1}{ekan}{} \DeclareTateKanjiEncoding{JT1}{ekan}{} % eKanji Unicode \newcommand{\EKU}[1]{\ek@char{#1}{10}} % eKanji KangXi \newcommand{\EKK}[1]{\ek@char{#1}{20}} % eKanji Morohashi \newcommand{\EKM}[1]{\ek@char{#1}{30}} \newcommand{\ek@char}[2]{% \@tempcnta#1\relax\advance\@tempcnta-1\relax\divide\@tempcnta5640\relax% \ifnum\@tempcnta<10% \xdef\ek@block{0\the\@tempcnta}% \else% \xdef\ek@block{\the\@tempcnta}% \fi% \@tempcntb\@tempcnta% \multiply\@tempcntb5640\relax\@tempcntb-\@tempcntb% \@tempcnta#1\relax\advance\@tempcnta-1\relax\advance\@tempcntb\@tempcnta% \xdef\ek@inblock{\the\@tempcntb}% %\typeout{\ek@block, \ek@inblock} \ek@@char{\ek@inblock}% %\typeout{0x\ek@Ku\ek@Ten} {\iftdir% \kanjiencoding{JT1}\kanjifamily{ekan}% \kanjishape{#2\ek@block}\kanjiseries{m}% \else% \kanjiencoding{JY1}\kanjifamily{ekan}% \kanjishape{#2\ek@block}\kanjiseries{m}% \fi% \selectfont\char\kuten"\ek@Ku\ek@Ten\relax}% } \newcommand{\ek@@char}[1]{% \begingroup% \@tempcnta#1\relax\divide\@tempcnta94\relax% \@tempcntb\@tempcnta% \multiply\@tempcntb94\relax\@tempcntb-\@tempcntb\advance\@tempcntb#1% \ifnum\@tempcnta<30% \advance\@tempcnta16\relax% \else% \advance\@tempcnta18\relax% \fi% \advance\@tempcntb1\relax% %\typeout{Font \ek@block, Row \the\@tempcnta, Cell \the\@tempcntb}% \ek@dtoh{\the\@tempcnta}\xdef\ek@Ku{\ek@hexH\ek@hexL}% \ek@dtoh{\the\@tempcntb}\xdef\ek@Ten{\ek@hexH\ek@hexL}% \endgroup} \newcommand{\ek@dtoh}[1]{% \begingroup% \@tempcnta#1\relax\@tempcntb#1\relax% \divide\@tempcntb16\relax% \xdef\ek@hexH{\ek@@dtoh{\the\@tempcntb}}% \multiply\@tempcntb16\relax\@tempcntb-\@tempcntb\advance\@tempcntb\@tempcnta% \xdef\ek@hexL{\ek@@dtoh{\the\@tempcntb}}% \endgroup} \newcommand{\ek@@dtoh}[1]{% \ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or% 8\or 9\or A\or B\or C\or D\or E\or F% \fi} %% EOF \endinput %% end of ekanji.sty. vflib3-3.6.14.dfsg/ascii-jtex/eKanji/jt1ekan.fd0000644000175000017500000000264607027354353020415 0ustar mohuramohura\ProvidesFile{jt1ekan.fd} [1999/12/07 v1.0 eKanji defines] % \DeclareKanjiFamily{JT1}{ekan}{} % \DeclareRelationFont{JT1}{ekan}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JT1}{ekan}{bx}{}{OT1}{cmr}{bx}{} % \DeclareFontShape{JT1}{ekan}{m}{1000}{<->ekan1000}{} \DeclareFontShape{JT1}{ekan}{m}{1001}{<->ekan1001}{} \DeclareFontShape{JT1}{ekan}{m}{1002}{<->ekan1002}{} \DeclareFontShape{JT1}{ekan}{m}{1003}{<->ekan1003}{} \DeclareFontShape{JT1}{ekan}{m}{1004}{<->ekan1004}{} % \DeclareFontShape{JT1}{ekan}{m}{2000}{<->ekan2000}{} \DeclareFontShape{JT1}{ekan}{m}{2001}{<->ekan2001}{} \DeclareFontShape{JT1}{ekan}{m}{2002}{<->ekan2002}{} \DeclareFontShape{JT1}{ekan}{m}{2003}{<->ekan2003}{} \DeclareFontShape{JT1}{ekan}{m}{2004}{<->ekan2004}{} \DeclareFontShape{JT1}{ekan}{m}{2005}{<->ekan2005}{} \DeclareFontShape{JT1}{ekan}{m}{2006}{<->ekan2006}{} \DeclareFontShape{JT1}{ekan}{m}{2007}{<->ekan2007}{} \DeclareFontShape{JT1}{ekan}{m}{2008}{<->ekan2008}{} % \DeclareFontShape{JT1}{ekan}{m}{3000}{<->ekan3000}{} \DeclareFontShape{JT1}{ekan}{m}{3001}{<->ekan3001}{} \DeclareFontShape{JT1}{ekan}{m}{3002}{<->ekan3002}{} \DeclareFontShape{JT1}{ekan}{m}{3003}{<->ekan3003}{} \DeclareFontShape{JT1}{ekan}{m}{3004}{<->ekan3004}{} \DeclareFontShape{JT1}{ekan}{m}{3005}{<->ekan3005}{} \DeclareFontShape{JT1}{ekan}{m}{3006}{<->ekan3006}{} \DeclareFontShape{JT1}{ekan}{m}{3007}{<->ekan3007}{} \DeclareFontShape{JT1}{ekan}{m}{3008}{<->ekan3008}{} % \endinput vflib3-3.6.14.dfsg/ascii-jtex/eKanji/jy1ekan.fd0000644000175000017500000000264607027354334020421 0ustar mohuramohura\ProvidesFile{jy1ekan.fd} [1999/12/07 v1.0 eKanji defines] % \DeclareKanjiFamily{JY1}{ekan}{} % \DeclareRelationFont{JY1}{ekan}{m}{}{OT1}{cmr}{m}{} \DeclareRelationFont{JY1}{ekan}{bx}{}{OT1}{cmr}{bx}{} % \DeclareFontShape{JY1}{ekan}{m}{1000}{<->ekan1000}{} \DeclareFontShape{JY1}{ekan}{m}{1001}{<->ekan1001}{} \DeclareFontShape{JY1}{ekan}{m}{1002}{<->ekan1002}{} \DeclareFontShape{JY1}{ekan}{m}{1003}{<->ekan1003}{} \DeclareFontShape{JY1}{ekan}{m}{1004}{<->ekan1004}{} % \DeclareFontShape{JY1}{ekan}{m}{2000}{<->ekan2000}{} \DeclareFontShape{JY1}{ekan}{m}{2001}{<->ekan2001}{} \DeclareFontShape{JY1}{ekan}{m}{2002}{<->ekan2002}{} \DeclareFontShape{JY1}{ekan}{m}{2003}{<->ekan2003}{} \DeclareFontShape{JY1}{ekan}{m}{2004}{<->ekan2004}{} \DeclareFontShape{JY1}{ekan}{m}{2005}{<->ekan2005}{} \DeclareFontShape{JY1}{ekan}{m}{2006}{<->ekan2006}{} \DeclareFontShape{JY1}{ekan}{m}{2007}{<->ekan2007}{} \DeclareFontShape{JY1}{ekan}{m}{2008}{<->ekan2008}{} % \DeclareFontShape{JY1}{ekan}{m}{3000}{<->ekan3000}{} \DeclareFontShape{JY1}{ekan}{m}{3001}{<->ekan3001}{} \DeclareFontShape{JY1}{ekan}{m}{3002}{<->ekan3002}{} \DeclareFontShape{JY1}{ekan}{m}{3003}{<->ekan3003}{} \DeclareFontShape{JY1}{ekan}{m}{3004}{<->ekan3004}{} \DeclareFontShape{JY1}{ekan}{m}{3005}{<->ekan3005}{} \DeclareFontShape{JY1}{ekan}{m}{3006}{<->ekan3006}{} \DeclareFontShape{JY1}{ekan}{m}{3007}{<->ekan3007}{} \DeclareFontShape{JY1}{ekan}{m}{3008}{<->ekan3008}{} % \endinput vflib3-3.6.14.dfsg/ascii-jtex/eKanji/mksample.c0000644000175000017500000001052407027550445020514 0ustar mohuramohura/* * mksample.c * Make list of all characters of eKanji font in LaTeX form. * * * How to use this program: * * 1. Compile this program. * % gcc -o mksample mksample.c * 2. Run this program to generate (huge) LaTeX input file. * % ./mksample > sample.tex * 3. Run pLaTeX to generate DVI file. * % platex sample.tex * 4. View/Print it. For example, * % xgdvi sample.dvi * */ #include #define MINCHAR 1 #define NCHLINE 20 #define SIZECMD "normalsize" int font_type; int ku_from, ku_to, nchline, title; long maxchar; char *sizecmd; int mtype; struct s_fontinfo { char *fontfile; char *cmd; long maxchar; }; #define TYPE_UNICODE 0 #define TYPE_KANGXI 1 #define TYPE_MOROHASHI 2 struct s_fontinfo fontinfo[] = { { "ekan0010.d24", "EKU", 22999 }, { "ekan0020.d24", "EKK", 49188 }, { "ekan0030.d24", "EKM", 50476 }, { NULL, NULL, -1 }, }; void parse_args(int argc, char **argv) { mtype = TYPE_UNICODE; maxchar = fontinfo[mtype].maxchar; ku_from = 0; ku_to = maxchar/100; argc--; argv++; while (argc > 0){ if (strcmp(*argv, "-f") == 0){ argc--; argv++; ku_from = atoi(*argv); } else if (strcmp(*argv, "-t") == 0){ argc--; argv++; ku_to = atoi(*argv); } else if (strcmp(*argv, "-n") == 0){ argc--; argv++; if ((nchline = atoi(*argv)) < 1){ fprintf(stderr, "-n option: value must be positive.\n"); } } else if (strcmp(*argv, "-s") == 0){ argc--; argv++; sizecmd = *argv; } else if (strcmp(*argv, "-u") == 0){ mtype = TYPE_UNICODE; maxchar = fontinfo[mtype].maxchar; ku_to = maxchar/100; } else if (strcmp(*argv, "-k") == 0){ mtype = TYPE_KANGXI; maxchar = fontinfo[mtype].maxchar; ku_to = maxchar/100; } else if (strcmp(*argv, "-m") == 0){ mtype = TYPE_MOROHASHI; maxchar = fontinfo[mtype].maxchar; ku_to = maxchar/100; } else if ((strcmp(*argv, "-h") == 0) || (strcmp(*argv, "-help") == 0) || (strcmp(*argv, "--help") == 0)){ fprintf(stderr, "Usage: mksample [-u -k -m]" "[-f FROM_CODE] [-t TO_CODE] [-n LINE_NCHARS] [-s SIZE_CMD]\n"); fprintf(stderr, " LINE_NCHARS = %d\n", NCHLINE); fprintf(stderr, " SIZE_CMD = %s\n", SIZECMD); exit(0); } argc--; argv++; } } int main(int argc, char **argv) { int ku, ten, i; title = 0; nchline = NCHLINE; sizecmd = SIZECMD; parse_args(argc, argv); printf("\\documentclass[a4paper]{jarticle}\n"); printf("\\setlength{\\topmargin}{-25mm}\n"); printf("\\setlength{\\evensidemargin}{-10mm}\n"); printf("\\setlength{\\oddsidemargin}{-10mm}\n"); printf("\\setlength{\\textwidth}{180mm}\n"); printf("\\setlength{\\textheight}{263mm}\n"); printf("\\usepackage{ekanji}\n"); printf("\\usepackage{array}\n"); printf("\\renewcommand{\\arraystretch}{0.9}\n"); printf("\\def\\CH#1{#1}\n"); printf("\\begin{document}\n"); if (title == 0){ printf("\\begin{center}\n"); printf("\\textsf{\\textbf{\\LARGE e\\ %s \\ ʸ}}\\\\\n", fontinfo[mtype].fontfile); printf("\\vskip 1em\n"); printf("{\\LARGE \\verb|\\|\\texttt{%s}\\verb|{|\\textit{num}\\verb|}|}\n", fontinfo[mtype].cmd); printf("\\end{center}\n"); printf("\\vskip 3em\n"); } printf("\\%s\n", sizecmd); for (ku = ku_from; ku <= ku_to; ku++){ printf("\\vskip 1.2em\n"); printf("\\vbox{\n"); printf("\\noindent\\textsf{\\textbf{%06d}}\\par\n", ku*100 + 1); printf("\\begin{center}"); printf("\\begin{tabular}{|r|"); for (i = 0; i < nchline; i++) printf("c"); printf("|}\n"); printf("\\hline\n"); printf(" \n"); for (i = 0; i < nchline; i++) printf("&\\texttt{%02d}", i+1); printf("\\\\\n"); printf("\\hline\n"); for (ten = 1; ten <= 100; ten++){ if ((ten % nchline) == 1){ if (ten > 1) printf("\\\\\n"); printf("\\texttt{%06d}\n", ku*100 + ten); } printf(" &\\CH{\\%s{%d}}\n", fontinfo[mtype].cmd, ku*100 + ten); } while ((ten % nchline) != 1){ printf(" &\n"); ten++; } printf("\\\\\n"); printf("\\hline\n"); printf("\\end{tabular}\n"); printf("\\end{center}"); printf("}\n"); printf("\n"); } printf("\\end{document}\n"); return 0; } vflib3-3.6.14.dfsg/ascii-jtex/defc.dat0000644000175000017500000000205207405122304016713 0ustar mohuramohura#- # for the "comic-jp" font class #- # Font Kanji Hira-Kana Kata-Kana etc jpcomic dfhsgmaa dfhsmpaa dfhsmpaa dfhsgmaa fjkanaza goth10 fjkanaxa fjkanaxa goth10 # 01 fjkanazb goth10 fjkanaxb fjkanaxb goth10 # 02 fjkanazc goth10 fjkanaxc fjkanaxc goth10 # 03 fjkanazd goth10 fjkanaxd fjkanaxd goth10 # 04 fjkanaze goth10 fjkanaxe fjkanaxe goth10 # 05 fjkanazf goth10 fjkanaxf fjkanaxf goth10 # 06 fjkanazg goth10 fjkanaxg fjkanaxg goth10 # 07 fjkanazh goth10 fjkanaxh fjkanaxh goth10 # 08 fjkanazi goth10 fjkanaxi fjkanaxi goth10 # 09 fjkanazj goth10 fjkanaxj fjkanaxj goth10 # 10 fjkanazk goth10 fjkanaxk fjkanaxk goth10 # 11 fjkanazl goth10 fjkanaxl fjkanaxl goth10 # 12 fjkanazm goth10 fjkanaxm fjkanaxm goth10 # 13 fjkanazn goth10 fjkanaxn fjkanaxn goth10 # 14 fjkanazo goth10 fjkanaxo fjkanaxo goth10 # 15 fjkanazp goth10 fjkanaxp fjkanaxp goth10 # 16 fjkanazq goth10 fjkanaxq fjkanaxq goth10 # 17 fjkanazr goth10 fjkanaxr fjkanaxr goth10 # 18 fjkanazs goth10 fjkanaxs fjkanaxs goth10 # 19 fjkanazt goth10 fjkanaxt fjkanaxt goth10 # 20 #- vflib3-3.6.14.dfsg/ascii-jtex/defh.dat0000644000175000017500000000204506700271501016723 0ustar mohuramohura#(This file contains Japanese character set JISX0208.) # # Optional Japanese Kanji Font (JISX0212) List # The following is a list of Japanese Kanji font files in TrueType format # # L M B E H # W: 3 4 5 6 7 8 9 10 11 12 # m o p s v x z # FONT-NAME FILE-NAME TeX-FONT-NAME ### Ricoh TrueTypeWorld Value Font DX īL() hgrmlh.ttf rcgotsaah åB() hgrgbh.ttf rcminmaah ʿīW3() hgrhm3h.ttf rchmnmaah ### DynaFont Type Museum DFPڹåW3() dfgot3_u.ttc dfgopmaah DFPڹåW5() dfgot5_u.ttc dfgoppaah DFPܴ() dfkai5_u.ttc dfkaipaah DFPܴ() dfkai7_u.ttc dfkaisaah DFPܴ() dfkai9_u.ttc dfkaivaah DFPī() dfmin3_u.ttc dfminkaah DFPī() dfmin5_u.ttc dfhsmmaah DFPݥå() dfmrg5_u.ttc dfmrgpaah DFPݥå() dfmrg7_u.ttc dfmrgsaah DFPݥå() dfmrg9_u.ttc dfmrgvaah #EOF vflib3-3.6.14.dfsg/ascii-jtex/fontsc.lst0000644000175000017500000000154007405122326017345 0ustar mohuramohurafjkanaza goth10 fjkanaxa fjkanaxa goth10 fjkanazb goth10 fjkanaxb fjkanaxb goth10 fjkanazc goth10 fjkanaxc fjkanaxc goth10 fjkanazd goth10 fjkanaxd fjkanaxd goth10 fjkanaze goth10 fjkanaxe fjkanaxe goth10 fjkanazf goth10 fjkanaxf fjkanaxf goth10 fjkanazg goth10 fjkanaxg fjkanaxg goth10 fjkanazh goth10 fjkanaxh fjkanaxh goth10 fjkanazi goth10 fjkanaxi fjkanaxi goth10 fjkanazj goth10 fjkanaxj fjkanaxj goth10 fjkanazk goth10 fjkanaxk fjkanaxk goth10 fjkanazl goth10 fjkanaxl fjkanaxl goth10 fjkanazm goth10 fjkanaxm fjkanaxm goth10 fjkanazn goth10 fjkanaxn fjkanaxn goth10 fjkanazo goth10 fjkanaxo fjkanaxo goth10 fjkanazp goth10 fjkanaxp fjkanaxp goth10 fjkanazq goth10 fjkanaxq fjkanaxq goth10 fjkanazr goth10 fjkanaxr fjkanaxr goth10 fjkanazs goth10 fjkanaxs fjkanaxs goth10 fjkanazt goth10 fjkanaxt fjkanaxt goth10 jpcomic dfhsgmaa dfhsmpaa dfhsmpaa dfhsgmaa vflib3-3.6.14.dfsg/ascii-jtex/fontsc.tex0000644000175000017500000000076607405122326017354 0ustar mohuramohura\font\fjkanaza=fjkanaza \font\fjkanazb=fjkanazb \font\fjkanazc=fjkanazc \font\fjkanazd=fjkanazd \font\fjkanaze=fjkanaze \font\fjkanazf=fjkanazf \font\fjkanazg=fjkanazg \font\fjkanazh=fjkanazh \font\fjkanazi=fjkanazi \font\fjkanazj=fjkanazj \font\fjkanazk=fjkanazk \font\fjkanazl=fjkanazl \font\fjkanazm=fjkanazm \font\fjkanazn=fjkanazn \font\fjkanazo=fjkanazo \font\fjkanazp=fjkanazp \font\fjkanazq=fjkanazq \font\fjkanazr=fjkanazr \font\fjkanazs=fjkanazs \font\fjkanazt=fjkanazt \font\jpcomic=jpcomic vflib3-3.6.14.dfsg/ascii-jtex/instc.sh0000755000175000017500000000247110270022377017007 0ustar mohuramohura#! /bin/sh RECMKDIR=../recmkdir INSTALL_DIR=$1 FONTDEF=$2 FONTS_FILE=$3 SRC_TFM_Y=$4 SRC_TFM_T=$5 if [ $# -eq 0 ] then echo "Error." echo " Run: make install-jfm" exit fi DUP=`sed 's/#.*//' ${FONTDEF} \ | grep -v '^[ ]*$$' \ | awk '{print $1}' | sort | uniq -d` if [ ! -z "$DUP" ] ; then echo "Duplicated font definition!" $DUP >&2 exit fi if [ ! -f ${FONTS_FILE} ] ; then echo "" echo "No such file:" ${FONTS_FILE} >&2; echo "" exit 0; fi ### KPSEWHICH X=`which kpsewhich` 2> /dev/null if [ "X-$X" = "X-" ] ; then echo "Not found: kpsewhich" >&2; exit 0; fi ### TFM_Y SRC_TFM_Y=`kpsewhich ${SRC_TFM_Y}` if [ -z "${SRC_TFM_Y}" -o ! -f "${SRC_TFM_Y}" ] ; then echo "Not found: ${SRC_TFM_Y}" >&2; exit 0; fi ### TFM_T SRC_TFM_T=`kpsewhich ${SRC_TFM_T}` if [ -z "${SRC_TFM_T}" -o ! -f "${SRC_TFM_T}" ] ; then echo "Not found: ${SRC_TFM_T}" >&2; exit 0; fi ### JFM list FONT_LIST=`awk '{ print $1 }' ${FONTS_FILE}` ### JFM dir if [ ! -d ${INSTALL_DIR} ] then echo ${RECMKDIR} ${INSTALL_DIR} ${RECMKDIR} ${INSTALL_DIR} fi cd ${INSTALL_DIR} ### Make JFMs for F in ${FONT_LIST} do echo "$F.tfm t$F.tfm ..." rm -f $F.tfm t$F.tfm cp ${SRC_TFM_Y} $F.tfm cp ${SRC_TFM_T} t$F.tfm # "ln -s" should not be used, since files does not appear in "ls-R". done #EOF vflib3-3.6.14.dfsg/ascii-jtex/mkfontsc.sh0000755000175000017500000000151010267653257017521 0ustar mohuramohura#!/bin/sh case $# in 2) ;; *) echo "Usage: mkfontsc.sh DBFILE OUTFILE" echo "Example: mkfontsc.sh defc.dat fonts" exit 1 ;; esac FONTLIST=$1 OUT=$2 VAL=`sed 's/#.*//' $FONTLIST \ | awk '{ if ((NF != 0) && (NF != 5)) \ printf("Line %d: %s\n", NR, $0); }'` if [ ! -z "$VAL" ] then echo "Input file is broken!" >&2 echo $VAL exit 1 fi VAL=`sed 's/#.*//' $FONTLIST | grep -v '^[ ]*$' \ | awk '{print $1}' | sort | uniq -d ` if [ ! -z "$VAL" ] then echo "Oops!! Font names duplicates!!!" echo $VAL exit 1 fi sed 's/#.*//' $FONTLIST \ | grep -v '^[ ]*$' \ | awk '{print $1, $2, $3, $4, $5}' \ | sort \ > ${OUT}.lst sed 's/#.*//' $FONTLIST \ | grep -v '^[ ]*$' \ | sed 's/\.tt[fc]//' \ | awk '{printf("\\font\\%s=%s\n", $1, $1)}' \ | sort \ > ${OUT}.tex #EOF vflib3-3.6.14.dfsg/ascii-jtex/mksample.sh0000755000175000017500000000130710270025273017473 0ustar mohuramohura#!/bin/sh # Generate sample.tex and sample.dvi from fonts.tex file. SAMPLE=sample SAMPLE_TEX=sample.tex FONTDEF=fonts.tex TEXT="ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ" rm -f tmp1.txt tmp1.txt echo ${TEXT} > tmp1.txt FONTS=`cat ${FONTDEF} | sed 's/\\\\font\\\\\(.*\)=.*/\1/'` rm -f ${SAMPLE}.* touch ${SAMPLE_TEX} cat >> ${SAMPLE_TEX} <<__EOF__ \input fonts.tex __EOF__ for fn in ${FONTS} do echo -n "{\tt $fn}\quad " >> ${SAMPLE_TEX} echo -n "\\$fn " >> ${SAMPLE_TEX} cat tmp1.txt >> ${SAMPLE_TEX} echo '\par' >> ${SAMPLE_TEX} done cat >> ${SAMPLE_TEX} <<__EOF__ \bye __EOF__ ptex ${SAMPLE_TEX} rm -f ${SAMPLE}.log rm -f tmp1.txt vflib3-3.6.14.dfsg/ascii-jtex/sample.tex0000644000175000017500000005053410270025301017324 0ustar mohuramohura\input fonts.tex {\tt dfailpaa}\quad \dfailpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfainpaa}\quad \dfainpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfaispaa}\quad \dfaispaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfbrrsaa}\quad \dfbrrsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfbrrzaa}\quad \dfbrrzaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfbrspaa}\quad \dfbrspaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfbrsvaa}\quad \dfbrsvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfbrszaa}\quad \dfbrszaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfcfsvaa}\quad \dfcfsvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfcfypaa}\quad \dfcfypaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfcfysaa}\quad \dfcfysaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfcrdmaa}\quad \dfcrdmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfcrypaa}\quad \dfcrypaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dffrskaa}\quad \dffrskaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dffrsmaa}\quad \dffrsmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dffrykaa}\quad \dffrykaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dffuusaa}\quad \dffuusaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dffuuzaa}\quad \dffuuzaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfgihsaa}\quad \dfgihsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfgopkaa}\quad \dfgopkaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfgopmaa}\quad \dfgopmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfgoppaa}\quad \dfgoppaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfgotwaa}\quad \dfgotwaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfgotxaa}\quad \dfgotxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfgotzaa}\quad \dfgotzaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfgsksaa}\quad \dfgsksaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfgyopaa}\quad \dfgyopaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfgysmaa}\quad \dfgysmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfhgmpaa}\quad \dfhgmpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfhlepaa}\quad \dfhlepaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfhrgoaa}\quad \dfhrgoaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfhsgmaa}\quad \dfhsgmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfhsgpaa}\quad \dfhsgpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfhsgsaa}\quad \dfhsgsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfhsgvaa}\quad \dfhsgvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfhsmmaa}\quad \dfhsmmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfhsmpaa}\quad \dfhsmpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfhsmsaa}\quad \dfhsmsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfhsmvaa}\quad \dfhsmvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfinlpaa}\quad \dfinlpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfkaimaa}\quad \dfkaimaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfkaipaa}\quad \dfkaipaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfkaisaa}\quad \dfkaisaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfkaivaa}\quad \dfkaivaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfkaiyaa}\quad \dfkaiyaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfkaizaa}\quad \dfkaizaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfkbtmaa}\quad \dfkbtmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfkgmzaa}\quad \dfkgmzaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfkoioaa}\quad \dfkoioaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfktlxaa}\quad \dfktlxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfktrxaa}\quad \dfktrxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfkykmaa}\quad \dfkykmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfkykoaa}\quad \dfkykoaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfleipaa}\quad \dfleipaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dflgsvaa}\quad \dflgsvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dflispaa}\quad \dflispaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dflkapaa}\quad \dflkapaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfminyaa}\quad \dfminyaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfminzaa}\quad \dfminzaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmipmaa}\quad \dfmipmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmippaa}\quad \dfmippaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmrgkaa}\quad \dfmrgkaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmrgmaa}\quad \dfmrgmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmrgpaa}\quad \dfmrgpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmrgsaa}\quad \dfmrgsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmrgvaa}\quad \dfmrgvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmrgyaa}\quad \dfmrgyaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmrgzaa}\quad \dfmrgzaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmrmmaa}\quad \dfmrmmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmrmpaa}\quad \dfmrmpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmrmsaa}\quad \dfmrmsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfmrmvaa}\quad \dfmrmvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfoyjpaa}\quad \dfoyjpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfpocraa}\quad \dfpocraa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfpocsaa}\quad \dfpocsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfpoczaa}\quad \dfpoczaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfpopmaa}\quad \dfpopmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfpoppaa}\quad \dfpoppaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfpopraa}\quad \dfpopraa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfpopvaa}\quad \dfpopvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfpopzaa}\quad \dfpopzaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfpoqvaa}\quad \dfpoqvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfpoqzaa}\quad \dfpoqzaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfposraa}\quad \dfposraa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfruapaa}\quad \dfruapaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfruasaa}\quad \dfruasaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfrulpaa}\quad \dfrulpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfrulsaa}\quad \dfrulsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfrysvaa}\quad \dfrysvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfsgypaa}\quad \dfsgypaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfshtpaa}\quad \dfshtpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfshtsaa}\quad \dfshtsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfskasaa}\quad \dfskasaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfsogpaa}\quad \dfsogpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfsogsaa}\quad \dfsogsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfsogvaa}\quad \dfsogvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfsokmaa}\quad \dfsokmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfssomaa}\quad \dfssomaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfsumzaa}\quad \dfsumzaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dftlepaa}\quad \dftlepaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dftlesaa}\quad \dftlesaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dftlevaa}\quad \dftlevaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt dfysmsaa}\quad \dfysmsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjashxaa}\quad \fjashxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjcpemaa}\quad \fjcpemaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjcsxmaa}\quad \fjcsxmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjfdkmaa}\quad \fjfdkmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjgotmaa}\quad \fjgotmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjgotpaa}\quad \fjgotpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjgotsaa}\quad \fjgotsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjgotxaa}\quad \fjgotxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjgykmaa}\quad \fjgykmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjhigxaa}\quad \fjhigxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjhikmaa}\quad \fjhikmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjhrgoaa}\quad \fjhrgoaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjhsgpaa}\quad \fjhsgpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjhsgsaa}\quad \fjhsgsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjhsgvaa}\quad \fjhsgvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjhsmmaa}\quad \fjhsmmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjhsmraa}\quad \fjhsmraa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjhsmvaa}\quad \fjhsmvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjimapaa}\quad \fjimapaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjimbmaa}\quad \fjimbmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjimcraa}\quad \fjimcraa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjimdsaa}\quad \fjimdsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjimevaa}\quad \fjimevaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxa}\quad \fjkanaxa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxb}\quad \fjkanaxb ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxc}\quad \fjkanaxc ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxd}\quad \fjkanaxd ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxe}\quad \fjkanaxe ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxf}\quad \fjkanaxf ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxg}\quad \fjkanaxg ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxh}\quad \fjkanaxh ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxi}\quad \fjkanaxi ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxj}\quad \fjkanaxj ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxk}\quad \fjkanaxk ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxl}\quad \fjkanaxl ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxm}\quad \fjkanaxm ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxn}\quad \fjkanaxn ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxo}\quad \fjkanaxo ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxp}\quad \fjkanaxp ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxq}\quad \fjkanaxq ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxr}\quad \fjkanaxr ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxs}\quad \fjkanaxs ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkanaxt}\quad \fjkanaxt ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkedxaa}\quad \fjkedxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkykmaa}\quad \fjkykmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjkykpaa}\quad \fjkykpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjmarpaa}\quad \fjmarpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjminmaa}\quad \fjminmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjminsaa}\quad \fjminsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjmrgmaa}\quad \fjmrgmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjmrgpaa}\quad \fjmrgpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjmrgsaa}\quad \fjmrgsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjmrgxaa}\quad \fjmrgxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjreipaa}\quad \fjreipaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjtkosaa}\quad \fjtkosaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt fjtrepaa}\quad \fjtrepaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt kotppkaa}\quad \kotppkaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt kotppmaa}\quad \kotppmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt mikpnmaa}\quad \mikpnmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt mikppmaa}\quad \mikppmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt mikpppaa}\quad \mikpppaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt mikpsmaa}\quad \mikpsmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcadhxaa}\quad \rcadhxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcaegxaa}\quad \rcaegxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcaguxaa}\quad \rcaguxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcaigxaa}\quad \rcaigxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcaisxaa}\quad \rcaisxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcakgxaa}\quad \rcakgxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcamgvaa}\quad \rcamgvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcapfxaa}\quad \rcapfxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcaplxaa}\quad \rcaplxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcapsxaa}\quad \rcapsxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcashxaa}\quad \rcashxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rccbkpaa}\quad \rccbkpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcckssaa}\quad \rcckssaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rccremaa}\quad \rccremaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcgyopaa}\quad \rcgyopaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchagmaa}\quad \rchagmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchagpaa}\quad \rchagpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchagsaa}\quad \rchagsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchagvaa}\quad \rchagvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchglvaa}\quad \rchglvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchgopaa}\quad \rchgopaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchgovaa}\quad \rchgovaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchgsvaa}\quad \rchgsvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchigxaa}\quad \rchigxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchkfsaa}\quad \rchkfsaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchkgpaa}\quad \rchkgpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchkpmaa}\quad \rchkpmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchmnmaa}\quad \rchmnmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchmnvaa}\quad \rchmnvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rchrgoaa}\quad \rchrgoaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rckaipaa}\quad \rckaipaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rckedxaa}\quad \rckedxaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rckkapaa}\quad \rckkapaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rckykmaa}\quad \rckykmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcppkvaa}\quad \rcppkvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcppmvaa}\quad \rcppmvaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcrcgmaa}\quad \rcrcgmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rcspnmaa}\quad \rcspnmaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rctfkpaa}\quad \rctfkpaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rctrepaa}\quad \rctrepaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par {\tt rctsexaa}\quad \rctsexaa ĤΤۤΰäѤ򤢤ߤ郎Ϫˤ̤Ĥ ŷŷġ \par \bye vflib3-3.6.14.dfsg/ascii-jtex/sample.dvi0000644000175000017500000010537010270025301017305 0ustar mohuramohura; TeX output 2005.07.22:08073ڍ& VFlib-36.ps VFlib-36.dvi: VFlib-36.texi -rm -f VFlib-36.ps tex VFlib-36.texi texindex VFlib-36.?? tex VFlib-36.texi VFlib-36.html: VFlib-36.texi $(TEXI2HTML) VFlib-36.texi install: @echo "Installing VFlib manuals ..."; @if [ ! -d $(infodir) ] ; then \ ../recmkdir $(infodir); fi @for f in `echo $(DOC_INFO)*`; do \ ../$(INSTALL_DATA) $$f $(infodir); done -@if [ X-`../X-whereisit install-info` != "X-" ] ; then \ install-info $(DOC_INFO) \ --info-dir=$(infodir) \ --section='Miscellaneous' \ --item="* VFlib 3.6: (VFlib-36.info). A font library VFlib."; \ else \ echo "NOTICE: No 'install-info' program!"; \ echo " Edit $(infodir)/dir file by yourself."; \ fi @if [ ! -d $(runtimedir)/doc ] ; then \ ../recmkdir $(runtimedir)/doc; fi @for f in `echo *.texi *.dvi *.ps *.html`; do \ ../$(INSTALL_DATA) $$f $(runtimedir)/doc; done @if [ ! -d $(runtimedir)/doc/Paper1 ] ; then \ ../recmkdir $(runtimedir)/doc/Paper1; \ fi @for f in `echo Paper1/*.ps`; do \ ../$(INSTALL_DATA) $$f $(runtimedir)/doc/Paper1; done @if [ ! -d $(runtimedir)/doc/Paper2-ja ] ; then \ ../recmkdir $(runtimedir)/doc/Paper2-ja; fi @for f in `echo Paper2-ja/*.ps`; do \ ../$(INSTALL_DATA) $$f $(runtimedir)/doc/Paper2-ja; done uninstall: -$(RM) $(infodir)/$(DOC_INFO)* -install-info --delete $(DOC_INFO) --info-dir=$(infodir) --section='Miscellaneous' --item="* VFlib 3: (VFlib-36.info). A font library VFlib version 3.6." -$(RM) $(runtimedir)/doc/Paper1/* $(runtimedir)/doc/Paper2-ja/* -$(RMDIR) $(runtimedir)/doc/Paper1 $(runtimedir)/doc/Paper2-ja -$(RM) $(runtimedir)/doc/* -$(RMDIR) $(runtimedir)/doc clean:: -$(RM) *.log *.aux *.bbl *.blg missfont.log -$(RM) *.cp *.cps *.fn *.fns *.ky *pg *.pgs *.toc -$(RM) *.tp *.tps *.vr *.vrs *.bak -$(RM) */*.aux */*.log */*~ veryclean:: clean distclean:: clean vflib3-3.6.14.dfsg/doc/Paper1/0000755000175000017500000000000006573135332015170 5ustar mohuramohuravflib3-3.6.14.dfsg/doc/Paper1/Makefile0000644000175000017500000000125606573124665016643 0ustar mohuramohura# makefile for # # VFlib 3.5 --- a general font library that supports # multiple font formats # # by Hirotsugu Kakugawa # LATEX2e=latex BIBTEX=bibtex DVI2PS=dvips -f #--- SRC=vflib35.tex cah-gut.cls vflib35.bib \ comic-jp.eps comic-jp.gif internal.eps internal.fig \ xmdvi-image-bw.eps \ Makefile default: vflib35.ps vflib35.ps: vflib35.tex vflib35.bib -rm vflib35.aux vflib35.bbl ${LATEX2e} vflib35 ${BIBTEX} vflib35 ${LATEX2e} vflib35 ${LATEX2e} vflib35 -${DVI2PS} vflib35.dvi > vflib35.ps -rm *.dvi *.log *.aux *.bbl *.blg missfont.log clean: -rm *.log *.aux *.bbl *.blg missfont.log distclean: clean -rm *~ veryclean: clean -rm *~ *.ps *.dvi vflib3-3.6.14.dfsg/doc/Paper1/cah-gut.cls0000644000175000017500000004666306535650670017247 0ustar mohuramohura% Classe de document cah-gut.cls pour les Cahiers GUTenberg % et les publications exceptionnelles % % Classe prevue pour LaTeX2e uniquement \NeedsTeXFormat{LaTeX2e} % Informations diverses \ProvidesClass{cah-gut} [1998/01/12 v2.06.6 Classe des Cahiers GUTenberg] % Pas d'article presentes a l'italienne \DeclareOption{landscape}{\@latexerr{Option not supported}% {}} % Autres options autorisees \DeclareOption*{% \PassOptionsToClass {\CurrentOption}{article}} % Traitement des options \ProcessOptions % Chargement de la classe de base article \LoadClass[twoside]{article} % %%%%%%%%%%%%%% FICHIER EN COURS DE TRAVAUX... %%%%%%%%%%%%%%%%%% % \typeout{Feuille provisoire de style des Cahiers GUTenberg, version 2.06.6 (12/1/98)} % % utilisation du mode dense pour les listes J.A. 8/8/97 % redefinition de Abstract Resume Keyword et Motsclef pour etre % etre plus serre et independant de french J.A. 8/8/97 % espace ajoute apres --- dans headers par Denis Girou D.G. 19/6/96 % corrige par E.P. pour pb de shipout, ouf !!! le 25/4/96 %% Cette version a les valeurs corrigees pour les parametres lies a l'imposition % a la demande de l'imprimerie de l'universite de Rennes 1. J.A. 25/7/95 % et de l'imprimerie Louis-jean a Gap (cf Maurice Laugier!) J.A. 10/09/95 % qui demande une largeur papier < 17.5cm (d'ou reduction de textwidth) % et a la suite du CA du 12/09/95 ou il a ete dit qu'en ayant une hauteur de % la page papier de 22.4 cm on pouvait faire 2 exemplaires par copie % sur Ducotech (d'ou modif de ) J.A. 13/09/95 %% Par ailleurs : % Le titre courant Cahiers GUTenberg est mis en italique (10/9/95) % le foliotage a lieu desormais dans le header (13/09/95) %% Cette version du 1/2 contient des modifs recommandees par Thierry Bouche % pour remettre en points certains parametres donnes en cm % Les numros de footnotes ont t adapts LaTeX2e T.B. 21/12/95 (signale % aussi par bernard gaulle %%%%%%%%%%%%%%%%%%%%%%%%%%%% % hyphenation commands (For MLTeX) \ifx\fhyph\undefined\relax\else % si \fhyph est connu, on suppose \ehyph connu \ifx\enhyph\undefined\let\enhyph=\ehyph\fi \ifx\frhyph\undefined\let\frhyph=\fhyph\fi \fi \newcommand{\GUT}{\mbox{{\sc GUT}enberg}} \newcommand{\NoC}[1]{\gdef\N@C{#1}} \NoC{\string??} \newcommand{\DateC}[1]{\gdef\D@teC{#1}} \global\let\D@teC\empty \def\sectsize{\@setfontsize\sectsize\@xivpt{21pt}} % titre section \def\subsectsize{\@setfontsize\subsectsize\@xipt{14pt}} % titre sous-section \def\abstsize{\@setfontsize\abstsize\@viiipt{11pt}} % abstract \def\captsize{\@setfontsize\captsize@xpt{12pt}} % legendes \def\titlesize{\@setfontsize\titlesize\@xxpt{25pt}} % Grand titre \def\authsize{\@setfontsize\authsize\@xipt{14pt}} % auteur \def\affilsize{\@setfontsize\affilsize\@xpt{12pt}} % Affiliation % A MODIFIER... \def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi \def\@citea{}\@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{, }\@ifundefined {b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}}% \hbox{\csname b@\@citeb\endcsname}}}{#1}} \newcommand\affiliation[1]{\gdef\@affiliation{#1}} \gdef\@affiliation{Affiliation inconnue ?} % espacement titre \def\titlesp{\list{}{\leftmargin0pc}\item[]} \let\endtitlesp=\endlist \renewcommand{\@maketitle}{\newpage \null \vspace*{-28pt} \begin{titlesp} {\titlesize \hyphenchar\font=-1\raggedright \@title \par} \vskip 8pt \hrule \vskip 14pt {\authsize \@author \par} \vskip 6pt {\affilsize\it \@affiliation \par} \end{titlesp} \par \vskip 16pt} \renewcommand{\maketitle}{\par \begingroup \def\@fndot{\null} \def\thefootnote{\fnsymbol{footnote}} \def\@makefnmark{\hbox to 0pt{\@textsuperscript{\@thefnmark}}} % T.B. 21/12/95 \if@twocolumn \twocolumn[\@maketitle] \else \newpage \global\@topnum\z@ \@maketitle \fi\thispagestyle{titre}\@thanks \endgroup \setcounter{footnote}{0} \let\maketitle\relax \let\@maketitle\relax \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax} \newcommand{\Abstract}{\noindent\small{\bf Abstract}. % J.A. 8/8/97 \em\ifx\enhyph\undefined\relax\else\enhyph\fi} \def\endabstract{ \normalsize\rm\ifx\frhyph\undefined\relax\else\frhyph\fi\Nospacing} %\re... % J.A. 8/8/97 \newcommand{\Resume}{\noindent\small{\bf R\'esum\'e.} \rm\ifx\frhyph\undefined\relax\else\frhyph\fi} \def\endResume{ \normalsize\ifx\frhyph\undefined\relax\else\frhyph\fi\medskip\Nospacing} %\re... % J.A. 8/8/97 \newcommand{\Motsclef}{\noindent\small\textbf{Mot-cls :} \textrm\bgroup} \def\endMotsclef{\egroup\ \normalsize\Nospacing} %\re... % J.A. 8/8/97 \newcommand{\Keywords}{\noindent\small\textbf{Keywords:} \textrm\bgroup} \def\endKeywords{\egroup\ \normalsize\Nospacing} \@ifundefined{chapter}{\newcounter{chapter}}{\@addtoreset{chapter}{part}}% \newcommand{\chaptermark}[1]{}% gobble the second argument \newcommand{\chapter}{\@startsection{chapter}{0}{\z@}{-12pt plus -2pt minus% -2pt}{10pt plus 1pt minus 1pt}{\sectsize\raggedright{\bf\@chapapp\space}}}% \renewcommand{\section}{\@startsection {section}{1}{\z@}{-12pt plus -2pt minus -2pt}{10pt plus 1pt minus 1pt}{\reset@font\sectsize\raggedright}} \renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}% {-10pt plus -2pt minus -1pt}% {8pt plus 1pt minus 1pt}{\subsectsize\bf\raggedright}} \renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}{-8pt plus -2pt minus -1pt}{6pt plus 1pt minus 1 pt}{\subsectsize\it\raggedright}} \renewcommand{\paragraph}{\@startsection {paragraph}{4}{\z@}{6pt plus 2pt minus 2pt}{-1em}{\normalsize\bf}} \renewcommand{\subparagraph}{\@startsection {subparagraph}{4}{\parindent}{6pt plus 2pt minus 2pt}{-1em}{\normalsize\bf}} \newenvironment{abst}{\list{}{\leftmargin0pc}\abstsize\item[]}% {\endlist\vskip-7pt} \newcommand{\listelabel}{$\bullet$} \settowidth{\labelwidth}{\listelabel} \newenvironment{liste}{\list{}{\settowidth{\labelwidth}{\listelabel} \leftmargin\labelwidth\advance\leftmargin\labelsep\rightmargin0pt\labelsep0pt \itemsep0pt \let\makelabel\listelabel}\small}{\endlist} \newenvironment{enumeration}{\list{{\small \arabic{enumi}.\ }}% {\settowidth{\labelwidth}{{\small 1.\ }} \leftmargin\labelwidth\advance\leftmargin\labelsep\rightmargin0pt\labelsep0pt \itemsep0pt \usecounter{enumi}}\small}{\endlist} %%% Definir des listes << denses >> % J.A. 8/8/97 d'apres michel goossens \let\Otemize =\itemize \let\Onumerate =\enumerate \let\Oescription =\description \def\Nospacing{\itemsep=0pt\topsep=0pt\partopsep=0pt\parskip=0pt\parsep=0pt} % Dfinition des nouvelles listes en fonction des listes standard \renewenvironment{itemize}{\Otemize\Nospacing}{\endlist} % was \Itemize chez mg \renewenvironment{enumerate}{\Onumerate\Nospacing}{\endlist} %\En.. \renewenvironment{description}{\Oescription\Nospacing}{\endlist} %\Des... \def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth \def\@svsec{}\else \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname{.}\hskip 1em }\fi \@tempskipa #5\relax \ifdim \@tempskipa>\z@ \begingroup #6\relax \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par} \endgroup \csname #1mark\endcsname{#7}\addcontentsline {toc}{#1}{\ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname}\fi #7}\else \def\@svsechd{#6\hskip #3\@svsec #8\csname #1mark\endcsname {#7}\addcontentsline {toc}{#1}{\ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname}\fi #7}}\fi \@xsect{#5}} %Corrige' ChR --bg \renewcommand{\refname}{R\'ef\'erences bibliographiques} \ifx\bibname\undefined\let\bibname\refname\fi% --bg \def\thebibliography#1{\section*{\bibname}% \list{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth \advance\leftmargin\labelsep\usecounter{enumi}}%\small %J.A. 31/07/95 }\let\endthebibliography=\endlist \newif\if@restonecol \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi \columnseprule \z@ \columnsep 35pt\twocolumn[\section*{\indexname}] \parindent\z@ \parskip\z@ plus .3pt\relax\let\item\@idxitem} \def\@idxitem{\par\hangindent 40pt} \def\subitem{\par\hangindent 40pt \hspace*{20pt}} \renewcommand{\subsubitem}{\par\hangindent 40pt \hspace*{30pt}} \renewcommand{\endtheindex}{\if@restonecol\onecolumn\else\clearpage\fi} \renewcommand{\indexspace}{\par \vskip 10pt plus 5pt minus 3pt\relax} \long\def\@makefntext#1{\parindent 1em\noindent \hbox to 1.8em{\@textsuperscript{\@thefnmark}}#1} % T.B. 21/12/95 \setlength\textfloatsep{13\p@ \@plus 2\p@ \@minus 4\p@} %\def\caption{\refstepcounter\@captype \@dblarg{\@caption\@captype}} %\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname % ext@#1\endcsname}{#1}{\protect\numberline{\csname % the#1\endcsname}{\ignorespaces #2}}\begingroup % \@parboxrestore % \captsize % \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par % \endgroup} \setlength\abovecaptionskip{1\p@} %\long\def\@makecaption#1#2{ % \vskip 1pt % almost no skip at all % \setbox\@tempboxa\hbox{#1~#2} % \ifdim \wd\@tempboxa >\hsize % IF longer than one line: % \unhbox\@tempboxa\par % THEN set as ordinary paragraph. % \else % ELSE center. % \hbox to\hsize{\hfil\box\@tempboxa\hfil} % \fi} \setcounter{topnumber}{1} \renewcommand{\bottomfraction}{0.01} \newcommand{\titlehead}[1]{\gdef\@titlehead{#1}} \newcommand{\authorhead}[1]{\gdef\@authorhead{#1}} \long\def\author#1{\def\@author{#1} \ifx\@authorhead\undefined\let\p@authorhead\@author \else\let\p@authorhead\@authorhead\fi } \global\let\p@authorhead\relax% a good default for .toc first read BG 3/2/94 \global\let\p@title\relax \long\def\title#1{\def\@title{#1}\let\p@title\@title \addtocontents{toc}{\protect\contentsline{sommaire} {\protect\p@authorhead\protect\space:\space \protect\p@title}{\thepage}} } %%%% version ancienne avant modif du 13/09/95 J.A. %\def\g@neralhead{\vskip 10pt \hbox to\textwidth{\hrulefill}}% BG 9/2/94 %\global\let\generalhead\relax% empty pagestyle default BG 9/2/94 % %\def\ps@gut{\let\@mkboth\@gobbletwo% % \let\generalhead\g@neralhead% BG 9/2/94 % \def\@evenhead{\normalsize\it{% %\ifx\@authorhead\undefined\@author\else\@authorhead\fi}\hfil}% % \def\@oddfoot{\rm\hfil\thepage}\def\@oddhead{\normalsize\it\hfil{% %\ifx\@titlehead\undefined\@title\else\@titlehead\fi}}% % \def\@evenfoot{\rm\thepage\hfil}} %% Version modifiee J.A. 13/09/95 pour mettre foliotage dans headers \def\g@neralhead{\vskip 10pt \hbox to\textwidth{\hrulefill}}% BG 9/2/94 \global\let\generalhead\relax% empty pagestyle default BG 9/2/94 \def\ps@gut{\let\@mkboth\@gobbletwo% \let\generalhead\g@neralhead% BG 9/2/94 \def\@evenhead{\rm\thepage\normalsize\it\hfil{% \ifx\@authorhead\undefined\@author\else\@authorhead\fi}}% \def\@oddfoot{} \def\@oddhead{\normalsize\it{% \ifx\@titlehead\undefined\@title\else\@titlehead\fi}\hfil\rm\thepage}% \def\@evenfoot{}} % pas beau car dependant de la fonte, a revoir. BG 24/12/93 %\gdef\Ptinumero{n\char'027}% plus tard on utilisera \numero de french.sty %\gdef\Ptinumero{n\char'006}% provisoire pour codage Cork % EP 25/07/95 \DeclareTextSymbol{\Ptideg}{OT1}{23} \DeclareTextSymbol{\Ptideg}{T1}{6} \gdef\Ptinumero{n\kern-.12em\Ptideg} % qd il adoptera toutes les tailles. \def\ps@titre{\let\@mkboth\@gobbletwo% \let\generalhead\g@neralhead% BG 9/2/94 \def\@evenhead{\rm\thepage\hfil{\footnotesize\Etat % BG 20/1/94 et J.A. 13/09/95 \textit{Cahiers GUTenberg} \Ptinumero{}\N@C{} --- % DG 19/6/94 \D@teC}}% %J.A. 10/09/95 \def\@oddhead{{\footnotesize\Etat % BG 20/1/94 \textit{Cahiers GUTenberg} \Ptinumero{}\N@C{} --- % DG 19/6/94 \D@teC}\hfil\rm\thepage}% %J.A. 10 et 13/09/95 % \def\@oddfoot{\rm\hfil\thepage}% %J.A. 13/09/95 % \def\@evenfoot{\rm\thepage\hfil} %J.A. 13/09/95 } % Pour utiliser le format cahiers.sty dans des % occasion particulieres... Ch. R. 24/05/94 \gdef\EnTete#1{ \def\ps@titre{\let\@mkboth\@gobbletwo% \let\generalhead\g@neralhead% % \def\@evenhead{\hfill{\footnotesize #1}}% % J.A. 13/09/95 % \def\@oddhead{{\footnotesize #1}\hfill}% % J.A. 13/09/95 \def\@evenhead{\rm\thepage\hfil{\footnotesize #1}}% % J.A. 13/09/95 \def\@oddhead{{\footnotesize #1}\hfil\rm\thepage}% % J.A. 13/09/95 % \def\@oddfoot{\rm\hfil\thepage}% % J.A. 13/09/95 \def\@oddfoot{} % J.A. 13/09/95 % \def\@evenfoot{\rm\thepage\hfil}}} % J.A. 13/09/95 \def\@evenfoot{}}} % J.A. 13/09/95 \ds@twoside %Bricolage Ch. R. 15/12/94, modifie E> P. 25/04/96 \def\@outputpage{% \begingroup % the \endgroup is put in by \aftergroup \let \protect \noexpand \@resetactivechars \let\-\@dischyph \let\'\@acci\let\`\@accii\let\=\@acciii \let\\\@normalcr \let\par\@@par %% 15 Sep 87 \shipout \vbox{% \set@typeset@protect % \aftergroup \endgroup% moved in its normal place --bg 97/12 % \aftergroup \set@typeset@protect% idem --bg 97/12 % correct? or just restore by ending % the group? \if@specialpage \global\@specialpagefalse\@nameuse{ps@\@specialstyle}% \fi \if@twoside \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot \let\@themargin\oddsidemargin \else \let\@thehead\@evenhead \let\@thefoot\@evenfoot \let\@themargin\evensidemargin \fi \fi \reset@font \normalsize \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@ \@begindvi \vskip \topmargin \moveright\@themargin \vbox {% \setbox\@tempboxa \vbox to\headheight{% \vfil \color@hbox \normalcolor \hb@xt@\textwidth {% \let \label \@gobble \let \index \@gobble \let \glossary \@gobble %% 21 Jun 91 \@thehead }% {\vspace*{10pt}\hbox to\textwidth{\hrulefill}} \color@endbox }% %% 22 Feb 87 \dp\@tempboxa \z@ \box\@tempboxa \vskip \headsep \box\@outputbox \baselineskip \footskip \color@hbox \normalcolor \hb@xt@\textwidth{% \let \label \@gobble \let \index \@gobble %% 22 Feb 87 \let \glossary \@gobble %% 21 Jun 91 \@thefoot }% \color@endbox }% }% \endgroup% --bg 97/12 \set@typeset@protect% --bg 97/12 \global \@colht \textheight \stepcounter{page}% \let\firstmark\botmark } % heading needs a bar %\setlength\oddsidemargin{0mm} %\setlength\evensidemargin{35mm} %J.A. 25/7/95 \setlength\oddsidemargin{-2mm} %J.A. 13/09/75 \setlength\evensidemargin{42mm} %J.A. 13/09/95 7mm=4x .5 +(4.5-2)mm \setlength\marginparwidth {1.75cm} \setlength\marginparsep{10pt} \setlength\marginparpush{7\p@} \setlength\topmargin{2.7cm} %J.A. 25/7/95 \setlength\headheight{1cm} \setlength\headsep{14pt} \setlength\footskip{1cm} %\setlength\textheight{546pt} %J.A. 11/09/95 \setlength\textheight{507pt} %T.B. 21/12/95 (17.8cm) %\setlength\textwidth{12.45cm} \setlength\textwidth{12cm} % J.A. 11/09/95 \setlength\columnsep{10pt} \setlength\columnseprule{0pt} \setlength\footnotesep{8.4pt} \setlength{\skip\footins}{10.8\p@ \@plus 4\p@ \@minus 2\p@} \setlength\floatsep {14\p@ \@plus 2\p@ \@minus 2\p@} \setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} \setlength\intextsep {14\p@ \@plus 2\p@ \@minus 2\p@} \setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@} \setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} \setlength\@fptop{0\p@ \@plus 1fil} \setlength\@fpsep{10\p@ \@plus 2fil} \setlength\@fpbot{0\p@ \@plus 1fil} \setlength\@dblfptop{0\p@ \@plus 1fil} \setlength\@dblfpsep{10\p@ \@plus 2fil} \setlength\@dblfpbot{0\p@ \@plus 1fil} \setlength\partopsep{3\p@ \@plus 2\p@ \@minus 2\p@} \setlength\parskip{1.1ex plus 1pt} \setlength\parindent{1.5em} \setlength\topsep{10pt plus 4pt minus 6pt} \setlength\itemsep{5pt plus 2.5pt minus 1pt} \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \setlength\hfuzz{2pt} \hbadness 10000 \hyphenpenalty 50 \exhyphenpenalty 50 \setcounter{topnumber}{3} \renewcommand{\topfraction}{.99} \renewcommand{\textfraction}{.01} \clubpenalty 10000 \widowpenalty 10000 \renewcommand{\labelitemi}{---} \renewcommand{\labelitemii}{--} \renewcommand{\labelitemiii}{-} \sloppy \frenchspacing \let\@Mti\maketitle \def\maketitle{\pagestyle{gut} \thispagestyle{titre} \@Mti} % pas beau car dependant de la fonte, a revoir. BG 24/12/93 % (la plupart se retrouve dans french.sty) \def\at{{\char '100}} \def\boi{{\tt\char '134}} \def\circonflexe{{\char '136}} \def\tild{{\char '176}} \def\degre{\kern-.3em{\char '027}} %% remove the 3 following lines if you don't the guill font. %\ifx\oguill\undefined % normally defined in french.sty BG 20/194 %\font\trom=guill %\def\oguill{{\trom A}\nobreak\mbox{\hglue.25em}\nobreak} %\def\fguill{\nobreak\mbox{\hglue.25em}\nobreak{\trom B}\,} %\fi \let\@afterindentfalse\@afterindenttrue \@afterindenttrue % BG 24/12/93 : % ce n'est pas la bonne place dans le style, a mettre dans refcahiers.tex %\NoC{14} %\DateC{Mars 1993} \let\Etat\relax% valeur par defaut. \InputIfFileExists{refcahiers.tex}{}{\typeout{cahiers.sty : fichier refcahiers.tex non trouve'.}} % tant que la date n'est pas figee il s'agit d'un brouillon \ifx\D@teC\empty% defaut BG 20/01/94 \def\D@teC{\today}% redefine it with the current language BG 25/01/94 \ifx\Etat\relax\gdef\Etat{Brouillon d'article pour les }\fi% \fi% \ifx\frhyph\undefined\relax\else\frhyph\fi % Ce qui suit est dans french.sty et independant des fontes. %\gdef\AllTeX{{\rm(L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em)% % T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} \def\SommaireC{\def\sommairename{\center \Huge Cahiers \GUT{} \N@C\\\D@teC\\ \medskip \Large S O M M A I R E\\ \vspace{1cm}} \ifx\sommaire\undefined\def\sommaire[4]{\sommairename}\fi \let\SaveNl=\\ \def\LigneSC##1##2{\bgroup\def\\{\SaveNl\hspace*{0.75cm}} \noindent ##1 \dotfill\ ##2 \egroup\\} \bgroup\let\l@sommaire\LigneSC\let\thanks\@gobble \sommaire[4] \egroup }% fin de \SommaireC \def\endSommaireC{\vspace*{1cm}\bgroup \center R\'edaction des {\em Cahiers \GUT}\\ c/o Irisa/Inria, campus universitaire de Beaulieu\\ F-35042 Rennes cedex, France\\ \egroup} \gdef\l@sommaire#1#2{} \def\@ufo{\def\figurename{{\sc Figure}}% \def\tablename{{\sc Table}}}%% \@ufo% J.A. Avril 96 (avait disparu...?) \parindent0pt %J.A. 8/8/97 %%%%%%%%%%%%%%%%%% Fin inclusion %%%%%%%%%%%%%%%%%% \endinput %% %% Fin du fichier << cah-offgut.cls >>,. vflib3-3.6.14.dfsg/doc/Paper1/comic-jp.eps0000644000175000017500000011521206535650670017411 0ustar mohuramohura%!PS-Adobe-2.0 EPSF-2.0 %%Title: /AMD/keemun/export/disk1/home/kakugawa/res/EuroTeX98/comic-jp.eps %%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley %%BoundingBox: 181 402 414 439 %%Pages: 1 %%DocumentFonts: %%EndComments %%EndProlog %%Page: 1 1 % remember original state /origstate save def % build a temporary dictionary 20 dict begin % define string to hold a scanline's worth of data /pix 122 string def % define space for color conversions /grays 969 string def % space for gray scale line /npixls 0 def /rgbindx 0 def % lower left corner 181 402 translate % size of image (on paper, in 1/72inch coords) 232.56000 37.44000 scale % dimensions of data 969 156 1 % mapping matrix [969 0 0 -156 0 156] {currentfile pix readhexstring pop} image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff801ffff ffffffffffffffffffffffffff80 ffffffffffffe3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001fff ffffffffffffffffffffffffff80 fffffffffffe01ffffff9fffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80003ff ffffffffffffffffffffffffff80 fffffffffff801ffffff83ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80007f ffffffffffffffffffffffffff80 ffffffffff8000ffffff803fffffffffffffffffffffffffffffc01fffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0003f ffffffffffffffffffffffffff80 fffffffff00000ffffff000fffffffffffff8fffffffffffffff8001ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001f ffffffffffffffffffffffffff80 ffffffff8000007fffff000fffffffffffff03ffffffffffffff80001fffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000f ffffffffffffffffffffffffff80 fffffff80000007fffff000fffffffffffff007fffffffffffffc00007ffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000f ffffffffffffffffffffffffff80 ffffff000000003fffff001fffffffffffff803ffffffffffffffc0001ffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000f ffffffffffffffffffffffffff80 ffffc0000000007ffffe001fffffffffffffe00fffffffffffffff8001ffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000f ffffffffffffffffffffffffff80 fff00000000003fffffe001ffffffffffffff807ffffffffffffffc001ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff003f ffffffffffffffffffffffffff80 ff80000000000ffffffe001ffffffffffffff803ffffffffffffffc001ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff003f ffffffffffffffffffffffffff80 ff8000000001fffffffe003ffffffffffffffc00ffffffffffffffe003ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffff8fffffffffffffffffffff007f ffffffffffffffffffffffffff80 ffc000000007fffffffe003ffffffffffffffe007fffffffffffffe003ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffffc07ffffffffffffffffffff007f ffffffffffffffffffffffffff80 ffc00000007ffffffffc003fffffffffffffff003ffffffffffffff007ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffe0003ffffffffffffffffffff007f ffffffffffffffffffffffffff80 ffe0000000fffffffffc003fffffffffffffff001ffffffffffffff007ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffc00001ffffffffffffffffffff007f ffffffffffffffffffffffffff80 ffe0000000fffffffffc007fffffffffffffff001ffffffffffffff007ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffc0000000ffffffffffffffffffff007f ffffffffffffffffffffffffff80 fff0001e00fffffffffc007fffffffffffffff000ffffffffffffff007ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffff80000000007fffffffffffffffffff807f fffffff87fffffffffffffffff80 fff003fe00fffffffff8007fffffffffffffff000ffffffffffffff007ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffdffffffffffffff0000000000003fffffffffffffffffff807f ffffffc03fffffffffffffffff80 fff87ffe00fffffffff8007fffffffffffffff000ffffffffffffff007ffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffff0ffffffffffffc00000000000001fffffffffffffffffff807f ffff00001fffffffffffffffff80 fffffffe00fffffffff800ffffffffffffffff001ffffffffffffff007ffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffff0ffffffffff00000000000000001ffff7ffffffffffffff807e 000000000fffffffffffffffff80 fffffffe00fffffffff800fffffffffffffffe001ffffffffffffff007ffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffff87fffffffe000000000000000001fffe3fffffffffffffe0000 0000000007ffffffffffffffff80 fffffffe00fffffffff800fffffffffffffffe003ffffffffffffff007ffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffff83fffffc000000000000000ff003fffc3ffffffffffe0000000 0000000003ffffffffffffffff80 fffffffe00fffffffff000fffffffffffffffe007ffffffffffffff007ffffffffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff e007fffffffffffffffff81fffe00000000000001fffffffffffe0ffffffff8000000000 0000000000ffffffffffffffff80 fffffffe00fffffffff001fffffffffffffffe007fffeffffffffff007ff8fffffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff e007fffffffffffffffffc03fc00000000001c00ffffffffffffe07ffffe000000000000 0000000000ffffffffffffffff80 fffffffe00fffffffff001fffffffffffffffe007fff87fffffffff007fe07ffffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff e007fffffffffffffffffc0000000000000ff803fffffffffffff00fffc0000000000000 00000000007fffffffffffffff80 fffffffe00fffffffff001fffffffffffffffe00ffffc3fffffffff007f801ffffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff e007fffffffffffffffffe000000000000fff007fffffffffffff0000000000000000000 7fff0000007fffffffffffffff80 fffffffe00fffffffff001fffffffffffffffe00ffffc1fffffffff00fc000ffffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff c007fffffffffffffffffe00000000003fffe00ffffffffffffff800000000000000007f fffffffe00ffffffffffffffff80 fffffffe00ffffffffe003fffffffffffffffe00ffffe0fffffffff00800007fffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff c007ffffffffffffffffff000000003fffffc03fffffdffffffffc00000000000fff807f ffffffffffffffffffffffffff80 fffffffe00ffffffffe003fffffffffffffffc01ffffe0fffffffff00000003fffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff c007ffffffffffffffffff80000007ffffff807fffff87fffffffc000000000fffff807f ffffffffffffffffffffffffff80 fffffffe00ffffffffe003fffffffffffffffc01fffff03ffffffe000000003fffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff c003ffffffffffffffffffc000003fffffff01ffffff80fffffffe00000007ffffff807f ffffffffffffffffffffffffff80 fffffffe00ffffffffe003fffffffffffffffc01fffff007fff000000000003fffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff c003ffffffffffffffffffe00003fffffffe03ffffffc03ffffffe000001ffffffff80ff ffffffffffffffffffffffffff80 fffffffe00ffffffffc003fffffffffffffffc03fffff800000000000000003fffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff c003fffffffffffffffffff0003ffffffffc03fffffff00fffffff00003fffffffff80ff ffffffffffffffffffffffffff80 fffffffe00ffffffffc007fffffffffffffffc03fffffc0000000000000000ffffffffff 801fffffffffffff801ffffffffffffffffffff000003fffffffffffffffffffffffffff c003fffffffffffffffffff001fffffffff807fffffff007ffffffc001ffffffffff80ff ffffffffffffffffffffffffff80 fffffffe00ffffffffc007fffffffffffffffc03fffffe000000000000003fffffffffff 801fffffffffffff801ffffffffffffffffffff000003fffffffffffffffffffffffffff c001fffffffffffffffffff807fffffffff00ffffffff803ffffffc007ffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fffc007fffffffffffffffc07ffffff0000000000003fffffffffffff 801fffffffffffff801fffffffffffffffffffe000001fffffffffffffffffffffffffff c001fffffffffffffffffffe07ffffffffe01ffff7fffc01ffffffe01fffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fffc007fffffffffffffff807ffffff00000000000fffffffffffffff 801fffffffffffff801fffffffffffffffffffc000001fffffffffffffffffffffffffff 8001ffffffffffffffffffff0fffffffffe03fffe1fffe007ffffff87fffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fff800ffffffffffffffff807ffffffc0000000100fffffffffffffff 801fffffffffffff801fffffffffffffffffffc000000fffffffffffffffffffffffffff 8001ffffffffffffffffffffffffffffffc07fffe07fff803fffffffffffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fff800ffffffffffffffff80ffffffff00000fff00fffffffffffffff 801fffffffffffff801fffffffffffffffffff8000000fffffffffffffffffffffffffff 8000ffffffffffffffffffffffffffffff80fffff01fff801fffffffffffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fff800ffffffffffffffff80ffffffffffffffff00fffffffffffffff 801fffffffffffff801fffffffffffffffffff80000007ffffffffffffffffffffffffff 8000ffffffffffffffffffffffffffffff80fffff807ffc00fffffffffffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fff800ffffffffffffffff80ffffffffffffffff00fffffffffffffff 801fffffffffffff801fffffffffffffffffff00000003ffffffffffffffffffffffffff 8000ffffffffffffffffffffffffffffff01fffffc01ffc00fffffffffffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fff001ffffffffffffffff80ffffffffffffffff00fffffffffffffff 801fffffffffffff801ffffffffffffffffffe00000003ffffffffffffffffffffffffff 8000fffffffffffffffffffffffffffffe03fffffc00ffe00ffffffffffffffff81f80ff ffffffffffffffffffffffffff80 ffc000000000003fff001ffffffffffffffff81ffffffffffffffff00fffffffffffffff 801fffffffffffff801ffffffffffffffffffe00000001ffffffffffffffffffffffffff 00007ffffffffffffffffffffffffffffe07fffffe00ffe007ffffffffffffff800380ff ffffffffffffffffffffffffff80 ffc000000000003fff001ffffffffffffffff01ffffffffffffffff00fffffffffffffff 801fffffffffffff801ffffffffffffffffffc00200000ffffffffffffffffffffffffff 00007ffffffffffffffffffffffffffffc07ffffff807ff007fffffffffffffe000080ff ffffffffffffffffffffffffff80 fffffffc00ffffffff001ffffffffffffffff01ffffffffffffffff00fffffffffffffff 801fffffffffffff801ffffffffffffffffff8006004007fffffffffffffffffffffffff 00007ffffffffffffffffffffffffffffc0fffffff801ff007fffffffffffff8000000ff ffffffffffffffffffffffffff80 fffffffc00ffffffff003ffffffffffffffff01ffffffffffffffff80fffffffffffffff 801fffffffffffff801ffffffffffffffffff8006004007fffffffffffffffffffffffff 00003ffffffffffffffffffffffffffff80fffffffc00ff807ffffffffffffe00000007f ffffffffffffffffffffffffff80 fffffff800fffffffe003ffffffffffffffff01ffffffffffffffff80fffffffffffffff 801fffffffffffff801ffffffffffffffffff000e006003ffffffffffffffffffffffffe 00003ffffffffffffffffffffffffffff81fffffffe00ffc0fffffffffffffc003c0007f ffffffffffffffffffffffffff80 fffffff800fffffffe003ffffffffffffffff01ffffffffffffffff80fffffffffffffff 801fffffffffffff801ffffffffffffffffff001e006001ffffffffffffffffffffffffe 00003ffffffffffffffffffffffffffff81ffffffff007fe1fffffffffffffc03ff8007f ffffffffffffffffffffffffff80 fffffff800fffffffe003ffffffffffffffff03ffffffffffffffff80fffffffffffffff 801fffffffffffff801fffffffffffffffffe001e007001ffffffffffffffffffffffffe 00003ffffffffffffffffffffffffffff03ffffffff007ffffffffffffffff007ffc007f ffffffffffffffffffffffffff80 fffffff800fffffffe007ffffffffffffffff03ffffffffffffffff80fffffffffffffff 801fffffffffffff801fffffffffffffffffc003e007800ffffffffffffffffffffffffe 00001ffffffffffffffffffffffffffff03ffffffff807fffffffffffffffe00ffff003f ffffffffffffffffffffffffff80 fffffff000fffffffc007fffffffffffffffe03ffffffffffffffff80fffffffffffffff 801fffffffffffff801fffffffffffffffff8007e0078007fffffffffffffffffffffffc 00001fffffffffffffffffffffffffffe03ffffffff803fffffffffffffffe01ffff003f ffffffffffffffffffffffffff80 fffffff000fffffffc007fffffffffffffffe03ffffffffffffffff80fffffffffffffff 8000000000000000001fffffffffffffffff8007e007c003fffffffffffffffffffffffc 00001fffffffffffffffffffffffffffe07ffffffffc03fffffffffffffffc01ffff803f ffffffffffffffffffffffffff80 ffffffe000fffffffc007fffffffffffffffe03ffffffffffffffff80fffffffffffffff 8000000000000000001fffffffffffffffff000fe007e003fffffffffffffffffffffffc 00c00fffffffffffffffffffffffffffc07ffffffffc03fffffffffffffff803ffffc03f ffffffffffffffffffffffffff80 ffffffe000fffffffc007fffffffffffffffe03fffbffffffffffff80fffffffffffffff 8000000000000000001ffffffffffffffffe001fe007e001fffffffffffffffffffffffc 00c00fffffffffffffffffffffffffffc0fffffffffc07fffffffffffffff807ffffc03f ffffffffffffffffffffffffff80 ffffffc000fffffffc00ffffffffffffffffe07fff0ffffffffffff807ffffffffffffff 8000000000000000001ffffffffffffffffc003fe007f000fffffffffffffffffffffff8 00e00fffffffffffffffffffffffffffc0fffffffffc07fffffffffffffff807ffffc01f ffffffffffffffffffffffffff80 ffffffc000fffffff800ffffffffffffffffe07fff1ffffffffffff807ffffffffffffff 8000000000000000001ffffffffffffffffc003fe007f0007ffffffffffffffffffffff8 00e007ffffffffffffffffffffffffff80fffffffffe0ffffffffffffffff807ffffe01f ffffffffffffffffffffffffff80 ffffff80003ffffff800ffffffffffffffffe07ffe1ffffffffffff807ffffffffffffff 8000000000000000001ffffffffffffffff8007fe007f8003ffffffffffffffffffffff8 01e007ffffffffffffffffffffffffff80fffffffffffffffffffffffffff007ffffe01f ffffffffffffffffffffffffff80 ffffff80001ffffff800ffffffffffffffffe07ffe3ffffffffffff807ffffffffffffff 8000000000000000001ffffffffffffffff000ffe007fc003ffffffffffffffffffffff0 01f003ffffffffffffffffffffffffff81fffffffffffffffffffffffffff007ffffe00f ffffffffffffffffffffffffff80 ffffff00000ffffff801fffff3ffffffffffe07ffc3ffffffffffff807ffffffffffffff 8000000000000000001fffffffffffffffe001ffe007fe001ffffffffffffffffffffff0 01f003ffffffffffffffffffffffffff01fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 ffffff000003fffff801ffffc1ffffffffffe07ffc3ffffffffffff807ffffffffffffff 8000000000000000001fffffffffffffffc001ffe007ff000ffffffffffffffffffffff0 01f001ffffffffffffffffffffffffff01fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 fffffe000001fffff001fffe01ffffffffffe07ff87ffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffffffc003ffe007ff0007ffffffffffffffffffffe0 03f801ffffffffffffffffffffffffff01fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 fffffe000000fffff001fff800ffffffffffe07ff87ffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffffff8007ffe007ff8003ffffffffffffffffffffe0 03f800ffffffffffffffffffffffffff01fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 fffffc0000001ffff003fffc00ffffffffffe07ff07ffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffffff000fffe007ffc001ffffffffffffffffffffc0 07fc00ffffffffffffffffffffffffff03fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 fffffc00000007fff003fffc007fffffffffc07ff0fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffffffe000fffe007ffe000ffffffffffffffffffffc0 07fc007ffffffffffffffffffffffffe03fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 fffff800000003ffe003fffe007fffffffffc07fe0fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffffffc001fffe007fff0007fffffffffffffffffff80 0ffe007ffffffffffffffffffffffffe03fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 fffff000000001ffe003ffff007fffffffffc07fe1fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffffff8003fffe007fff8003fffffffffffffffffff80 0ffe003ffffffffffffffffffffffffe03fffffffffffffffffffffffffff00fffffe007 ffffffffffffffffffffffffff80 fffff0000000007fe007ffff003fffffffffc07fc1fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffffff0007fffe007fffc001fffffffffffffffffff00 1fff003ffffffffffffffffffffffffe03fffffffffffffffffffffffffff00fffffe007 ffffffffffffffffffffffffff80 ffffe00000c0007fe007ffff803fffffffffc07fc1fffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffffe000ffffe007fffe000fffffffffffffffffff00 1fff001ffffffffffffffffffffffffe03fffffffffffffffffffffffffff007ffffe007 ffffffffffffffffffffffffff80 ffffc00200e000ffe007ffff801fffffffffc07f83fffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffffc000ffffe007ffff0007fffffffffffffffffe00 3fff001ffffffffffffffffffffffffe03fffffffffffffffffffffffffff007ffffe007 ffffffffffffffffffffffffff80 ffff800600f800ffc007ffff801fffffffffc07f83fffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffff8001ffffe007ffff8003fffffffffffffffffe00 3fff800ffffffffffffffffffffffffe03fffffffffffffffffffffffffff007ffffe007 ffffffffffffffffffffffffff80 ffff800600fc01ffc00fffffc00fffffffffc07f03fffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffff0003ffffe007ffffc001fffffffffffffffffc00 7fff8007fffffffffffffffffffffffc03fffffffffffffffffffffffffff807ffffe007 ffffffffffffffffffffffffff80 ffff000e00ff01ffc00fffffc00fffffffffc07f07fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffffe0007ffffe007ffffe000fffffffffffffffffc00 7fffc007fffffffffffffffffffffffc03fffffffffffffffffffffffffff803ffffc007 ffffffffffffffffffffffffff80 ffff000e00ffc3ffc00fffffe007ffffffffc07f07fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffffc000fffffe007fffff0007ffffffffffffffff800 ffffc003fffffffffffffffffffffffc03fffffffffffffffffffffffffffc03ffffc007 ffffffffffffffffffffffffff80 fffe001e00ffe3ff800fffffe007ffffffffc07e07fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffff0001fffffe007fffff0003ffffffffffffffff000 ffffe003fffffffffffffffffffffffc03fffffffffffffffffffffffffffc01ffffc007 ffffffffffffffffffffffffff80 fffc003e00fff7ff801ffffff003ffffffffc07e0ffffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffe0003fffffe007fffff8001ffffffffffffffff001 fffff001fffffffffffffffffffffffc03fffffffffffffffffffffffffffc01ffff8007 ffffffffffffffffffffffffff80 fff8003e00ffffff801ffffff003ffffffffc07c0ffffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffc0007fffffe007fffffc000fffffffffffffffe001 fffff000fffffffffffffffffffffffc03fffffffffffffffffffffffffffe00ffff0007 ffffffffffffffffffffffffff80 fff8007e00ffffff801ffffff003ffffffffc07c1fffffffff007ff803ffffffffffffff 801fffffffffffff801fffffffffff8000ffffffe007fffffe0003ffffffffffffffc003 fffff8007ffffffffffffffffffffffc03fffffffffffffffffffffffffffe003ffc0007 ffffffffffffffffffffffffff80 fff000fe00ffffff801ffffff801ffffffffc0781ffffffff00000f803ffffffffffffff 801fffffffffffff801fffffffffff0001ffffffe007ffffff0001ffffffffffffffc007 fffffc003ffffffffffffffffffffffc03ffffffffffffffffffffffffffff000ff00007 ffffffffffffffffffffffffff80 ffe000fe00ffffff001ffffff801ffffffffc0383fffffff0000003803ffffffffffffff 801fffffffffffff801ffffffffffe0003ffffffe007ffffff8000ffffffffffffff800f fffffc001ffffffffffffffffffffffe01ffffffffffffffffffffffffffffc00000000f ffffffffffffffffffffffffff80 ffc001fe00ffffff003ffffff800ffffffffc0303ffffffc0000000003ffffffffffffff 801fffffffffffff801ffffffffff80007ffffffe007ffffffc0003fffffffffffff000f fffffe001ffffffffffffffffffffffe01ffffffffffffffffffffffffffffc00000200f ffffffffffffffffffffffffff80 ff8003fe00ffffff003ffffffc00ffffffffc0303ffffff80000000003ffffffffffffff 801fffffffffffff801ffffffffff0000fffffffe007fffffff0001ffffffffffffe001f fffffe000ffffffffffffffffffffffe00ffffffffffffffffffffffffffffe00000600f fffffffffffffffff87fffffff80 ff8003fe00ffffff003ffffffc007fffffffc0203fffffe00000000003ffffffffffffff 801fffffffffffff801fffffffffe0001fffffffe007fffffff8000ffffffffffffe003f ffffff0007fffffffffffffffffffffe00fffffffffffffffffffffffffffff80000e00f ffffffffffffffff8003ffffff80 ff0007fe00fffffe003ffffffe007fffffffe0007fffffc00000000001ffffffffffffff 801fffffffffffff801fffffffffc0003f0000000000000001fc0003fffffffffffc007f ffffff8003ffffffffffffffffffffff00ffffffffffffffffffffffffffffff0007e01f fffffffffffffffe0001ffffff80 fe0007fe00fffffe007ffffffe003fffffffe0007fffffc00ffff000007fffffffffffff 801fffffffffffff801fffffffff80007f0000000000000001fe0001fffffffffff8007f ffffffc001ffffffffffffffffffffff007fffffffffffffffffffffffffffffc00fe01f fffffffffffffffc00007fffff80 ff000ffe00fffffe007fffffff003fffffffe0007fffff807fffff00001fffffffffffff 801fffffffffffff801fffffffff0000ff0000000000000001ff0000fffffffffff000ff ffffffc000ffffffffffffffffffffff007fffffffffffffffffffffffffffffffffe01f fffffffffffffff800003fffff80 ff801ffe00fffffe007fffffff003fffffffe0007fffff81ffffffe0000fffffffffffff 801fffffffffffff801ffffffffc0001ff0000000000000001ff80003fffffffffe001ff ffffffe0007fffffffffffffffffffff003fffffffffffffffffffffffffffffffffe01f fffffffffffffff000001fffff80 ff803ffe00fffffe007fffffff801fffffffe000ffffff01fffffff80003ffffffffffff 801fffffffffffff801ffffffff80003ff0000000000000001ff80001fffffffffc003ff fffffff0003fffffffffffffffffffff003fffffffffffffffffffffffffffffffffc03f ffffffffffffffe000000fffff80 ff807ffe00fffffc00ffffffff801fffffffe000ffffff03fffffff80000ffffffffffff 801fffffffffffff801ffffffff00007ff0000000000000001ffc0003fffffffff8003ff fffffff8001fffffffffffffffffffff801fffffffffffffffffffffffffffffffffc03f ffffffffffffffc00fc007ffff80 ffc07ffe00fffffc00ffffffffc00ffffffff000ffffff03fffffff800007fffffffffff 801fffffffffffff801fffffffe0001fff0000000000000001ffe0003fffffffff0007ff fffffffc001fffffffffffffffffffff801fffffffffffffffffffffffffffffffff803f ffffffffffffff803ff803ffff80 ffe0fffe00fffffc00ffffffffc00ffffffff000fffffe07fffffff800001fffffffffff 801fffffffffffff801ffffffff0003fff0000000000000001fff0007ffffffffe000fff fffffffe000fffffffffffffffffffffc00fffffffffffffffffffffffffffffffff803f ffffffffffffff807ffc03ffff80 ffe1fffe00fffffc00ffffffffe007fffffff000fffffe07fffffff8000007ffffffffff 801fffffffffffff801ffffffff8007fff0000000000000001fff800fffffffffc001fff ffffffff0007ffffffffffffffffffffe007ffffffffffffffffffffffffffffffff807f ffffffffffffff00fffe03ffff80 fff3fffe00fffffc01ffffffff0007fffffff000fffffe07fffffff8020003ffffffffff 801fffffffffffff801ffffffffc00ffffffffffe007fffffffffc00fffffffff0001fff ffffffff0003ffffffffffffffffffffe003ffffffffffffffffffffffffffffffff007f ffffffffffffff01ffff01ffff80 fff3fffe00fffff801ffffffc00007fffffff000fffffe07fffffff8030000ffffffffff 801fffffffffffff801ffffffffe01ffffffffffe007ffffffffff01ffffffffe0003fff ffffffff8001fffffffffffffffffffff001ffffffffffffffffffffffffffffffff007f fffffffffffffe01ffff01ffff80 fff7fffe00fffff801fffff0000007fffffff000fffffe07fffffff803c0007fffffffff 801fffffffffffff801fffffffff03ffffffffffe007ffffffffff83ffffffffc0007fff ffffffffc0007ffffffffffffffffffff0007fffffffffffffffffffffffffffffff007f fffffffffffffe03ffff81ffff80 fffffffe00fffff801fff800000003fffffff000ffffff03fffffff007e0003fffffffff 801fffffffffffff801fffffffff07ffffffffffe007ffffffffffc3ffffffff8000ffff ffffffffe0003ffffffffffffffffffff8001ffffffffffffffffffffffffffffffe00ff fffffffffffffe03ffff80ffff80 fffffffe00fffff803fe0000000003fffffff800ffffff03fffffff007f8001fffffffff 8000000000000000001fffffffff8fffffffffffe007fffffffffff7ffffffff0001ffff fffffffff0001ffffffffffffffffffffc0007fffffffffffffffffffffffffffffe00ff fffffffffffffe03ffff80ffff80 fffffffe00fffff003800000000003fffffff800ffffff01ffffffe007fc0007ffffffff 8000000000000000001fffffffffdfffffffffffe007fffffffffffffffffffe0003ffff fffffffff80007fffffffffffffffffffe0001fffffffffffffffffffffffffffffc01ff fffffffffffffe03ffff80ffff80 fffffffe00fffff000000000000001fffffff800ffffff01ffffffe007fe0007ffffffff 8000000000000000001fffffffffffffffffffffe007fffffffffffffffffffc0007ffff fffffffffc0003ffffffffffffffffffff00007ffffffffffffffffffffffffffff801ff fffffffffffffe03ffff80ffff80 fffffffe00fffc0000000000000001fffffffc00ffffff807fffff800fff8003ffffffff 8000000000000000001fffffffffffffffffffffe007fffffffffffffffffff8000fffff fffffffffe0000ffffffffffffffffffff80000ffffffffffffffffffffffffffff003ff fffffffffffffe03ffff80ffff80 fffffffe00fe000000000000000000fffffffc00ffffffc03fffff001fffe003ffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffe0001fffff ffffffffff00007fffffffffffffffffffc00000ffffffffffffffffffffffffffe007ff fffffffffffffe03ffff81ffff80 fffffffe00fe000000000000003800fffffffc00ffffffe007fff8001ffff003ffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffff80003fffff ffffffffff80001fffffffffffffffffffe000000003ffffffffffffffffffffffc00fff ffffffffffffff01ffff01ffff80 fffffffe00fe0000000000000ffc007ffffffe00ffffffe0000000001ffff803ffffffff 8000000000000000001fffffffffffffffffffffe007fffffffffffffffffe00007fffff ffffffffffc00007fffffffffffffffffff000000001ffffffffffffffffffffff801fff ffffffffffffff01ffff01ffff80 fffffffe00ff000000000007fffc007ffffffe007ffffff0000000003ffffc03ffffffff 8000000000000000001fffffffffffffffffffffe007fffffffffffffffffc0000ffffff fffffffffff00001fffffffffffffffffffc00000000ffffffffffffffffffffff007fff ffffffffffffff00fffe03ffff80 fffffffe00ff0000000003fffffe003ffffffe007ffffff800000000fffffe07ffffffff 8000000000000000001fffffffffffffffffffffe007fffffffffffffffff80003ffffff fffffffffff800007ffffffffffffffffffe00000000fffffffffffffffffffffe00ffff ffffffffffffff807ffc03ffff80 fffffffe00ff00000000fffffffe003ffffffe007ffffffc00000001ffffff0fffffffff 801fffffffffffff801fffffffffffffffffffffe007fffffffffffffffff00007ffffff fffffffffffc00001fffffffffffffffffff800000007ffffffffffffffffffff801ffff ffffffffffffff803ff803ffff80 fffffffe00ff0000007fffffffff003fffffff007fffffff00000007ffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffc0000fffffff ffffffffffff00000ffffffffffffffffffff00000007fffffffffffffffffffe003ffff ffffffffffffffc00fe007ffff80 fffffffe00ff80003fffffffffff001fffffff007fffffffc000001fffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffff80003fffffff ffffffffffff80001ffffffffffffffffffffc0000007fffffffffffffffffff800fffff ffffffffffffffe000000fffff80 fffffffe00ff800fffffffffffff001fffffff807fffffffff00007fffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffff00007fffffff ffffffffffffc0003fffffffffffffffffffff8000007ffffffffffffffffffe001fffff fffffffffffffff000001fffff80 fffffffe00ff87ffffffffffffff001fffffffc07fffffffffffffffffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffff8000ffffffff fffffffffffff0007ffffffffffffffffffffffc00007ffffffffffffffffff8007fffff fffffffffffffff800003fffff80 fffffffe00ffffffffffffffffff800fffffffe0ffffffffffffffffffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffc003ffffffff fffffffffffff8007fffffffffffffffffffffffe001ffffffffffffffffffe001ffffff fffffffffffffffc00007fffff80 fffffffe00ffffffffffffffffff800ffffffff1ffffffffffffffffffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffe007ffffffff fffffffffffffe00ffffffffffffffffffffffffffffffffffffffffffffff8007ffffff fffffffffffffffe0000ffffff80 fffffffe00ffffffffffffffffffc03fffffffffffffffffffffffffffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffe00fffffffff ffffffffffffff81fffffffffffffffffffffffffffffffffffffffffffffe001fffffff ffffffffffffffff0003ffffff80 fffffffe00ffffffffffffffffffc0ffffffffffffffffffffffffffffffffffffffffff 801fffffffffffffffffffffffffffffffffffffe007fffffffffffffffff03fffffffff ffffffffffffffc1fffffffffffffffffffffffffffffffffffffffffffffc01ffffffff ffffffffffffffffe00fffffff80 fffffffe00ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffff 801fffffffffffffffffffffffffffffffffffffe007fffffffffffffffff87fffffffff fffffffffffffff3fffffffffffffffffffffffffffffffffffffffffffffe07ffffffff ffffffffffffffffffffffffff80 fffffffe00ffffffffffffffffffcfffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007fffffffffffffffffdffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3fffffffff ffffffffffffffffffffffffff80 fffffffe00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 fffffffe00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 showpage % stop using temporary dictionary end % restore original state origstate restore %%Trailer vflib3-3.6.14.dfsg/doc/Paper1/vflib35.bib0000644000175000017500000000467706573124612017135 0ustar mohuramohura@Inproceedings{Werner97, author = {Werner Lemberg}, title = {New font tools for {\TeX}}, booktitle = {Proceedings of {TUG~97}}, year = {1997}, month = Jul } @Inproceedings{Kakugawa98a, author = {Hirotsugu Kakugawa}, title = {VFlib --- a general font library that supports multiple font formats}, booktitle = {Proceedings of Euro\TeX~98}, year = {1998}, month = Mar } @Misc{FreeType, author = {David Turner and Robert Wilhelm and Werner Lemberg}, title = {The {{\pkg{FreeType}}} Package 1.1}, year = {1998}, howpublished = {Available electronically from |http://|""|www.|""|freetype.|""|org/|} } @Misc{TTFTOPK, author = {Werner Lemberg}, title = {{\pkg{ttf2pk}}}, howpublished = {Available electronically from CTAN, |language/|""|chinese|} } @Misc{HBFTOGF, author = {Werner Lemberg}, title = {{\pkg{hbf2gf}}}, howpublished = {Available electronically from CTAN, |language/|""|chinese|} } @Misc{TypeOneLib, author = {Rainer Menzner}, title = {A Library for generating Character Bitmaps from Adobe Type 1 Fonts}, howpublished = {Available electronically from |ftp://|""|ftp.|""|neuroinformatik.|""|ruhr-|""|uni-bochum.|""|de/|% |pub/|""|software/|""|t1lib/|""|t1lib-0.7.1-|""|beta.tar.gz|}, year = {1998}, mon = {May} } @Misc{BDFSpec, author = {Adobe Systems Incorporated}, title = {Glyph {Bitmap Distribution Format} ({BDF}) Specification Version 2.2}, howpublished = {Available electronically from |http://|""|www.|""|adobe.|""|com/|""% |supportservice/|""|devrelations/|""% |PDFS/|""|TN|""|/5005.|""|BDF_Spec.pdf|}, year = {1993} } @Misc{Kpathsea, author = {Karl Berry}, title = {Kpathsea version 3.2}, howpublished = {Included in \pkg{web2c 7.2}, which is available electronically from CTAN, |systems/|""|web2c/|""|web2c-7.2.tar.gz/|}, year = {1998}, month = Mar } @Misc{TTspecs, author = {{Microsoft corporation}}, title = {{TrueType} 1.0 Font Files}, howpublished = {Available electronically from |ftp://|""|ftp.|""|microsoft.|""|com/|""% |developr/|""|drg/|""|TrueType/|""|ttspec.zip|}, year = {1995}, month = Nov } @Misc{HBFspecs, author = {Nelson Chin and others}, title = {{Hanzi Bitmap Font} {(HBF)} File Format version 1.1}, howpublished = {Available electronically from |ftp://|""|ftp.|""|ifcss.|""|org/|""% |pub/|""|software/|""|info/|""|HBF-1.1.tar.gz|}, year = 1994, month = Sep } vflib3-3.6.14.dfsg/doc/Paper1/internal.eps0000644000175000017500000001770106535650670017530 0ustar mohuramohura%!PS-Adobe-2.0 EPSF-2.0 %%Title: internal.fig %%Creator: fig2dev Version 3.1 Patchlevel 2 %%CreationDate: Wed Dec 3 21:30:35 1997 %%For: kakugawa@assam (Hirotsugu Kakugawa) %%Orientation: Portrait %%BoundingBox: 0 0 251 188 %%Pages: 0 %%BeginSetup %%IncludeFeature: *PageSize Letter %%EndSetup %Magnification: 1.00 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -21.0 213.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 10 setmiterlimit n 0 792 m 0 0 l 612 0 l 612 792 l cp clip 0.06000 0.06000 sc /Helvetica-Bold ff 180.00 scf sf 4050 1350 m gs 1 -1 sc (VFlib) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 3975 2850 m gs 1 -1 sc (PK) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 3975 3045 m gs 1 -1 sc (font) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 3975 3240 m gs 1 -1 sc (driver) dup sw pop 2 div neg 0 rm col-1 sh gr 15.000 slw % Polyline [15 50.0] 50.0 sd n 1050 2025 m 3225 2025 l gs col-1 s gr [] 0 sd % Polyline [15 50.0] 50.0 sd n 1050 1575 m 3225 1575 l gs col-1 s gr [] 0 sd 7.500 slw % Polyline gs clippath 1821 2390 m 1870 2276 l 1880 2400 l 1907 2240 l 1848 2230 l cp clip 1854 2560 m 1804 2673 l 1795 2550 l 1768 2710 l 1827 2720 l cp clip n 1800 2700 m 1875 2250 l gs col-1 s gr gr % arrowhead n 1854 2560 m 1804 2673 l 1795 2550 l 1824 2555 l 1854 2560 l cp gs 0.00 setgray ef gr col-1 s % arrowhead n 1821 2390 m 1870 2276 l 1880 2400 l 1851 2395 l 1821 2390 l cp gs 0.00 setgray ef gr col-1 s % Polyline gs clippath 2568 2399 m 2558 2275 l 2625 2380 l 2574 2226 l 2517 2245 l cp clip 2682 2551 m 2691 2674 l 2625 2570 l 2676 2724 l 2733 2705 l cp clip n 2700 2700 m 2550 2250 l gs col-1 s gr gr % arrowhead n 2682 2551 m 2691 2674 l 2625 2570 l 2654 2561 l 2682 2551 l cp gs 0.00 setgray ef gr col-1 s % arrowhead n 2568 2399 m 2558 2275 l 2625 2380 l 2596 2389 l 2568 2399 l cp gs 0.00 setgray ef gr col-1 s % Polyline gs clippath 3048 2335 m 2949 2260 l 3072 2280 l 2923 2217 l 2899 2272 l cp clip 3852 2615 m 3950 2689 l 3828 2670 l 3977 2733 l 4001 2678 l cp clip n 3975 2700 m 2925 2250 l gs col-1 s gr gr % arrowhead n 3852 2615 m 3950 2689 l 3828 2670 l 3840 2642 l 3852 2615 l cp gs 0.00 setgray ef gr col-1 s % arrowhead n 3048 2335 m 2949 2260 l 3072 2280 l 3060 2308 l 3048 2335 l cp gs 0.00 setgray ef gr col-1 s % Polyline gs clippath 1225 2333 m 1330 2269 l 1267 2375 l 1382 2261 l 1339 2218 l cp clip 1025 2617 m 919 2680 l 983 2575 l 868 2689 l 911 2732 l cp clip n 900 2700 m 1350 2250 l gs col-1 s gr gr % arrowhead n 1025 2617 m 919 2680 l 983 2575 l 1004 2596 l 1025 2617 l cp gs 0.00 setgray ef gr col-1 s % arrowhead n 1225 2333 m 1330 2269 l 1267 2375 l 1246 2354 l 1225 2333 l cp gs 0.00 setgray ef gr col-1 s 15.000 slw % Polyline n 1050 1350 m 3225 1350 l 3225 2250 l 1050 2250 l cp gs col-1 s gr % Polyline n 2325 2700 m 3075 2700 l 3075 3300 l 2325 3300 l cp gs col-1 s gr % Polyline n 1425 2700 m 2175 2700 l 2175 3300 l 1425 3300 l cp gs col-1 s gr % Polyline n 525 2700 m 1275 2700 l 1275 3300 l 525 3300 l cp gs col-1 s gr % Polyline [50.0] 0 sd n 3225 3000 m 3450 3000 l gs col-1 s gr [] 0 sd 7.500 slw % Polyline gs clippath 3528 1770 m 3648 1800 l 3528 1830 l 3690 1830 l 3690 1770 l cp clip 3372 1830 m 3252 1800 l 3372 1770 l 3210 1770 l 3210 1830 l cp clip n 3225 1800 m 3675 1800 l gs col-1 s gr gr % arrowhead n 3372 1830 m 3252 1800 l 3372 1770 l 3372 1800 l 3372 1830 l cp gs 0.00 setgray ef gr col-1 s % arrowhead n 3528 1770 m 3648 1800 l 3528 1830 l 3528 1800 l 3528 1770 l cp gs 0.00 setgray ef gr col-1 s 15.000 slw % Polyline n 3675 1650 m 4275 1650 l 4275 2025 l 3675 2025 l cp gs col-1 s gr % Polyline n 1275 450 m 3675 450 l 3675 750 l 1275 750 l cp gs col-1 s gr % Polyline n 375 1125 m 4500 1125 l 4500 3525 l 375 3525 l cp gs col-1 s gr 7.500 slw % Polyline gs clippath 2445 897 m 2475 777 l 2505 897 l 2505 735 l 2445 735 l cp clip 2505 1203 m 2475 1323 l 2445 1203 l 2445 1365 l 2505 1365 l cp clip n 2475 1350 m 2475 750 l gs col-1 s gr gr % arrowhead n 2505 1203 m 2475 1323 l 2445 1203 l 2475 1203 l 2505 1203 l cp gs 0.00 setgray ef gr col-1 s % arrowhead n 2445 897 m 2475 777 l 2505 897 l 2475 897 l 2445 897 l cp gs 0.00 setgray ef gr col-1 s /Times-Roman ff 150.00 scf sf 2700 2850 m gs 1 -1 sc (TrueType) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 2700 3045 m gs 1 -1 sc (font) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 2700 3240 m gs 1 -1 sc (driver) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 900 2850 m gs 1 -1 sc (BDF) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 900 3045 m gs 1 -1 sc (font) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 900 3240 m gs 1 -1 sc (driver) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 1800 2850 m gs 1 -1 sc (PCF) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 1800 3045 m gs 1 -1 sc (font) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 1800 3240 m gs 1 -1 sc (driver) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 180.00 scf sf 2175 1875 m gs 1 -1 sc (VFlib core) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 2175 1500 m gs 1 -1 sc (VFlib API) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 2175 2175 m gs 1 -1 sc (font driver interface) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 3975 1875 m gs 1 -1 sc (vflibcap) dup sw pop 2 div neg 0 rm col-1 sh gr /Helvetica-Bold ff 180.00 scf sf 2475 675 m gs 1 -1 sc (Application Software) dup sw pop 2 div neg 0 rm col-1 sh gr 15.000 slw % Polyline n 3600 2700 m 4350 2700 l 4350 3300 l 3600 3300 l cp gs col-1 s gr $F2psEnd rs vflib3-3.6.14.dfsg/doc/Paper1/vflib35.tex0000644000175000017500000007272006573124176017200 0ustar mohuramohura%%% %%% VFlib 3.5.0 document %%% Revised: 1 September 1998 %%% %%% VFlib 3.5.0 --- a general font library that supports multiple font formats %%% %%% by Hirotsugu Kakugawa %%% %%% Email: h.kakugawa@computer.org %%% FAX: +81-824-24-0757 %%% %%% Research Institute for Information Science and Education %%% Hiroshima University %%% 1-7-1 Kagamiyama, Higashi Hiroshima, Hiroshima, %%% 739-8521 JAPAN %%% \documentclass{cah-gut} \usepackage{graphicx} \usepackage{shortvrb} \usepackage{english} \usepackage{germanb} \newcommand{\pkg}[1]{\textsf{#1}} \newcommand{\prog}[1]{\texttt{#1}} \newcommand{\file}[1]{\texttt{#1}} \newcommand{\var}[1]{\textit{#1}} \newcommand{\VFlib}{\pkg{VFlib}} \newcommand{\freetype}{\pkg{FreeType}} \newcommand{\tlib}{\pkg{T1Lib}} \newcommand{\vflibcap}{\pkg{vflibcap}} \newcommand{\hbfgf}{\prog{hbf2gf}} \newcommand{\ttfpk}{\prog{ttf2pk}} \MakeShortVerb{\|} %%%--- \setcounter{page}{1} \NoC{0} \DateC{} %%%---- \begin{document} \selectlanguage{american} %%%----------------------------------------------------------------------- \title{VFlib 3.5.0 --- a general font library that supports multiple font formats\footnote{ This paper is based on ``VFlib --- a general font library that supports multiple font formats,'' by Hirotsugu Kakugawa, Euro\TeX 98, Saint-Malo, France, 1998.} } \author{Hirotsugu Kakugawa} \affiliation{% Research Institute for Information Science and Education\\ Hiroshima University\\ 1-7-1 Kagamiyama, Higashi Hiroshima, Hiroshima,\\ 739-8521 JAPAN} \authorhead{Hirotsugu Kakugawa} \titlehead{A font library VFlib 3.5.0} \maketitle %%%----------------------------------------------------------------------- \begin{Abstract} \VFlib\ is a font library written in C providing several functions to obtain bitmaps of characters (i.e., a rasterizer). \VFlib\ hides the font format of font files and provides a unified API for all supported font formats. Thus, programmers of application software need not worry about font file formats and any software using \VFlib\ can support various font file formats immediately. In addition to this, when a new font format is supported by \VFlib, application software need not be modified to use such new fonts. \VFlib\ has been developed for not only Latin fonts but also Asian scripts such as Chinese, Japanese, and Korean. Since it is designed as a general font module, it can be used in DVI drivers for \TeX\ and \LaTeX. In this paper, we explain the API of \VFlib, a font database file called \vflibcap, and the internal structure of \VFlib. \end{Abstract} %%%----------------------------------------------------------------------- \begin{Keywords} digital fonts, computer typography, multilingual typography, multilingual information processing, \TeX \end{Keywords} %%%----------------------------------------------------------------------- \section{Introduction} \label{SEC:Introduction} Commercially and freely available fonts exist in many different font file formats. When we develop software to display or print characters which do not depend on a particular window system and/or an operating system, we must write interface routines for accessing font files for each application program again and again. To do this, programmers must have knowledge of font file formats; it will be a difficult task for programmers if the number of font formats that an application program supports becomes large. \VFlib\ is a font library written in C providing several functions to obtain glyphs (bitmaps). \VFlib\ hides the font format of font files and provides a unified API for all supported font formats so that programmers for application software need not worry about font file formats. Thus, any software using \VFlib\ can support various font file formats immediately without modification even when \VFlib\ is updated to support new font file formats. Furthermore, \VFlib\ is not window- or operating-system dependent. As far as the author knows, there is no general font library other than \VFlib\ that supports multiple font formats in a platform-independent way and that provides a unified API for font access. For example, X~Window servers support multiple font formats. But to use a font service, an X server process is required. Some font libraries have been proposed for general use: \freetype\ 1.1 by David Turner, Robert Wilhelm, and Werner Lemberg is a library for accessing TrueType fonts \cite{FreeType}. The \tlib\ by Rainer Menzner is a library to handle Type~1 PostScript fonts \cite{TypeOneLib}. Although both are very useful libraries not dependent on window or operating systems, each of them supports only one font format and has a different API. Conversion of font formats so that application software can use multiple font formats is one possible approach. For example, \ttfpk\ \cite{TTFTOPK} (TrueType fonts to PK fonts) and \hbfgf\ \cite{HBFTOGF} (HBF\footnote{ The Hanzi Bitmap Font (HBF) format \cite{HBFspecs} is a binary format for bitmap fonts for Japanese, Chinese, and Korean characters. } fonts to GF fonts), both written by Werner Lemberg, makes these font formats available to \TeX. This method is useful but one drawback is that we must convert many font files in advance. Currently, \VFlib\ supports the following font file formats: PCF, BDF, HBF, TrueType, Type~1, GF, PK, TFM, VF, Syotai Kurabu and JG \footnote{ PCF (Portable Compiled Font) format is a binary format for bitmap fonts used on X-Window. BDF (Bitmap Distribution Format) \cite{BDFSpec} is an ASCII format for distributing binary fonts. Syotai Kurabu, which means \textit{font club} in English, is a vector font format for Japanese Kanji characters. JG format is another vector font format for Japanese Kanji characters. }. To search \TeX\ font files (e.g., PK, GF, TFM, VF files) and TrueType font files, \VFlib\ uses the \pkg{kpathsea} library 3.2 by Karl Berry \cite{Kpathsea}. \VFlib\ can be used as a font module for drivers and previewers of DVI files generated by \TeX\ and \LaTeX. This paper describes \VFlib\ version 3.5.0\footnote{ \VFlib\ version 3.2 is introduced in \cite{Werner97} and version 3.3 is reported in \cite{Kakugawa98a}. }. \VFlib\ versions 1 and 2 were designed and implemented for Japanese fonts only; they are widely used in many localized software packages in Japan, e.g. by \pkg{Ghostscript}, \pkg{dvi2ps}, and \pkg{xdvi} for printing Japanese Kanji characters. \VFlib\ version 3 is designed for multilingual document processing in English, French, Chinese, Japanese, Korean, and other languages. This paper is organized as follows. In section \ref{SEC:ConceptsOfVFlib}, the basic concepts of \VFlib\ are explained. The API of \VFlib\ is shown in section \ref{SEC:VFlibOfAPI}, and the font database called \vflibcap\ is explained in section \ref{SEC:Vflibcap}. An interesting feature of \VFlib\ is the ability to provide fonts without font files. Section \ref{SEC:ClassesWithoutFontFiles} explains this feature. The author has developed several sample programs using \VFlib, and one of these is introduced briefly in section \ref{SEC:SamplePrograms}. Section \ref{SEC:Conclusion} gives concluding remarks. %%%----------------------------------------------------------------------- \section{Basic Concepts} \label{SEC:ConceptsOfVFlib} \subsection{System components} The \VFlib\ system consists of two parts: \begin{enumerate} \item A library (\file{libVFlib.a}) \\ It provides several C functions. Any application software using \VFlib\ must link with this library. \item A font database file (\file{vflibcap}) \\ This file defines fonts and their properties (called {\em capabilities}), such as point size and the font file format. Its syntax is lisp-like notation. \end{enumerate} When we initialize \VFlib, we can specify a \vflibcap\ file to be used and thus different font sets can be used by different software. \subsection{Font classes and font drivers} \VFlib\ can handle multiple font file formats. Reading a font file according to the font file format is done by an internal module in \VFlib\ corresponding to its font file format. This internal module is called a {\em font driver}. Service units provided by font drivers are called {\em font classes}. From an end-user's point of view, various font formats are distinguished by various names of font classes. Font drivers are internal to \VFlib\ and invisible to end-users. Some font drivers may not read font files on disk: they may generate glyphs and outlines by internal computation only. In addition, some font drivers may return glyphs which are obtained as glyphs by another font class. \subsection{A view of \VFlib\ font from end-users perspective} Each (virtual) font by \VFlib\ has its inherent information of point size, pixel size, and resolution of the target device. In addition, font metrics are defined for each glyph. Some font file formats may not have such concepts. For instance, TrueType font files are vector font files and do not have information on point size. Syotai Kurabu format fonts do not have font metric information at all. In such case, either (1)~the lacking information is given in \vflibcap\ or (2)~the specific font driver gives such information as default values. \subsection{Font names and font searching mechanism} In \VFlib, a font is specified by a {\em font name} on opening. First, \VFlib\ checks whether the font name is given in \vflibcap\ or not. If the font name is found, \VFlib\ reads the description for the font in \vflibcap. The description contains a font class name; \VFlib\ then invokes a font driver corresponding to the font class name. Finally the font driver opens the font file (if necessary). If the font name is not given in a \vflibcap\ file, a font searching mechanism is invoked. Since there are many font files for X~Window and \TeX, this feature is introduced to avoid writing an entry for each font file. Various font drivers will be called to see whether the font can be opened; a list of font drivers for font searching is given in the \vflibcap\ file. If a font driver succeeds in opening the font, font searching finishes and the \VFlib\ font opening function returns successfully. Otherwise, font open fails. Fonts described in a \vflibcap\ file are called {\em explicit fonts} and fonts that are searched for by the font search feature are called {\em implicit fonts}. \subsection{Two modes of opened fonts} The following two modes are provided to obtain glyphs of fonts. \begin{itemize} \item High resolution device-oriented mode (mode 1)\\ The size of glyphs is specified by the physical size of glyphs and device resolution. \item Low resolution device-oriented mode (mode 2)\\ Glyph sizes are specified by pixel size rather than by device resolution. \end{itemize} When the size of a glyph in the source font is different from the target size, \VFlib\ scales the source glyph internally. Thus, users need not know know original size of glyphs in font files. Two modes are provided by the following reason. When we write a application programs that prints documents on printer, it is convenient to specify glyph size by point and device resolution such as glyph of 12 point for a 300 dpi printer. On the other hand, when we write a application programs that displays documents on CRT screen, it is convenient to specify glyph size by pixel. \subsection{Internal Structure} The \VFlib\ library consists of a {\em core} and several {\em font drivers}. The \VFlib\ core provides entry functions of the API, as well as a font driver table, opened font table, \vflibcap\ access module, and other utility modules. The internal structure of \VFlib\ is depicted in Figure \ref{FIG:VFlibInternal}. \begin{figure} \begin{center} \mbox{\includegraphics[scale=1.0]{internal.eps}} \end{center} \caption{Internal structure of \VFlib} \label{FIG:VFlibInternal} \end{figure} Each font driver has corresponding functions for each font operation of \VFlib. Such functions are implemented to provide \VFlib\ API-compatible behaviour. The set of capabilities that can be used for each font class in \vflibcap\ file may differ; each font class defines the capabilities it needs. %%%----------------------------------------------------------------------- \section{The API} \label{SEC:VFlibOfAPI} In this section we describe the API of \VFlib. The API that \VFlib\ defines is simple. For example, as a contrast, \freetype\ defines a rich set of functions including access to kerning information. The simplicity of \VFlib\ API is a result of the limitation that it must be common to every font format that \VFlib\ supports. \VFlib\ does not have features for typesetting such as obtaining kerning information of fonts. But it is enough strong to print and display typesetted documents such as DVI files. \subsection{Data types} \VFlib\ defines the following three data types for font access: bitmaps and metrics for modes~1 and~2. \begin{itemize} \item Bitmap object \\ A bitmap object is a set of font metrics and bitmap data. The following is the definition of bitmap structure. \begin{quote} \begin{small} \setlength{\baselineskip}{1em} \begin{verbatim} struct vf_s_bitmap { int bbx_width, bbx_height; /* in pixels */ int off_x, off_y; /* in pixels */ int mv_x, mv_y; /* in pixels */ unsigned char* bitmap; int raster; }; \end{verbatim} \end{small} \end{quote} The members \prog{bbx\_width} and \prog{bbx\_height} are the width and height of the bitmap, respectively. The members \prog{bitmap} and \prog{raster} are pointers to the glyph data and the number of bytes of a raster. The members \prog{off\_x} and \prog{off\_y} form a vector from the reference point to the upper-left corner of a bitmap. The members \prog{mv\_x} and \prog{mv\_y} form a vector to the next reference point. Metric information is given in pixel form. \item Metric object (modes 1 and 2) \\ Metric objects for modes~1 (high resolution device-oriented mode) and~2 (low resolution device-oriented mode) are defined similarly as bitmap objects except that they do not have \prog{bitmap} and \prog{raster} members. Member types of mode~1 metric objects are \prog{double}, not \prog{int}; their units are points rather than pixels. \end{itemize} \subsection{Functions} \begin{itemize} \item \prog{int VF\_Init(char* \var{vflibcap}, char* \var{variable\_list})} \\ Initialize \VFlib. The first argument \var{vflibcap} is the file name of a \vflibcap\ file. The second argument {\it variable\_list} is a list of parameters passed to \VFlib\ for parameterization of \vflibcap. (See subsection \ref{SUBSEC:VFLIBCAP:PARAM} for details of parameterization.) \item \prog{int VF\_OpenFont1(char* \var{font\_name}, double \var{dpi\_x}, double \var{dpi\_y}, double \var{point\_size}, double \var{mag\_x}, double \var{mag\_y})} \\ Open a font in mode~1. The font name is given by the first argument. Two arguments \var{mag\_x} and \var{mag\_y} are horizontal and vertical magnification factors. The actual font size is determined by these arguments. This function returns a font identifier (font id) for the opened font. All font operations take this font id to specify a target font. \item \prog{int VF\_OpenFont2(char *\var{font\_name}, int \var{pixel\_size}, double \var{mag\_x}, double \var{mag\_y})} \\ Open a font in low resolution mode. This function is similar to \prog{VF\_OpenFont1()} except font size is given in pixels. \item \prog{VF\_BITMAP VF\_GetBitmap1(int \var{font\_id}, long \var{code\_point}, double \var{mag\_x}, double \var{mag\_y})} \\ Obtain a glyph bitmap of a given font id (in mode~1) and code point. The font id \var{font\_id} must be an id returned by \prog{VF\_OpenFont1()}. The size of the bitmap to be obtained can be specified by the \var{mag\_x}, and \var{mag\_y} arguments. \item \prog{VF\_BITMAP VF\_GetBitmap2(int \var{font\_id}, long \var{code\_point}, double \var{mag\_x}, double \var{mag\_y})} \\ Obtain a glyph bitmap of a given font (in mode~2) and code point. \end{itemize} \VFlib\ defines other functions such as \prog{VF\_""METRIC1 VF\_""Get""Metric1()} and \prog{VF\_""METRIC2 VF\_""Get""Metric2()} to obtain font metrics of a character of mode~1 and~2 fonts, respectively; \prog{VF\_""OUTLINE VF\_""Get""Outline()} to obtain \VFlib\ format vector data of a character of mode~1 fonts; and \prog{VF\_""BITMAP VF\_""Outline""To""Bitmap()} to convert \VFlib\ format vector data to a bitmap. By calling \prog{VF\_""Install""Font""Driver()}, a font driver is installed. %%%----------------------------------------------------------------------- \section{A Font Database File ``\vflibcap''} \label{SEC:Vflibcap} A \vflibcap\ file is a database of font definitions for \VFlib. It is read when \VFlib\ is initialized. A simple example of a \vflibcap\ file is shown below: \begin{quote} \begin{small} \setlength{\baselineskip}{1em} \begin{verbatim} (define-default VFlib (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (implicit-font-classes pcf bdf) (extension-hints (".bdf" bdf) (".pcf" pcf))) (define-default bdf (filename-extensions ".bdf") (font-directories "/usr/local/share/fonts/X11//") (compression-extensions ".gz" ".Z")) (define-default pcf (filename-extensions ".pcf") (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//") (compression-extensions ".gz" ".Z")) (define-font timR24 ; Times Roman 24pt, BDF format (font-class bdf) (dpi 300) (point-size 24) (font-file "timR24.bdf")) (define-font timR18 ; Times Roman 18pt, PCF format (font-class pcf) (dpi 300) (point-size 24) (font-file "timR18.pcf")) \end{verbatim} \end{small} \end{quote} By a \prog{define-default} construct, a default values of a font class is defined. By a \prog{define-font} construct, a font is defined. Semicolon (\prog{;}) starts a comment. In this example, there are three definitions for font class default (\prog{VFlib}, \prog{BDF}, and \prog{PCF}) and two font definitions (\prog{timR24} and \prog{timR18}). The first three entries are used to give default parameters for \VFlib\ and each font class. We explain these entries later and explain the other two entries first. Although many capabilities are defined, we explain only the fundamental ones. \subsection{Font entries} The entry \prog{timR24} has several capabilities. A capability \prog{font-""class} specifies the font class name. In this example, \prog{timR24} belongs to the \prog{bdf} font class. The capabilities \prog{dpi} and \prog{point-""size} give device resolution and point size of a font. These values are used when this font is opened in mode~1. A capability \prog{pixel-""size} gives the pixel size. This value is used when this font is opened in mode~2. The capabilities \prog{pixel-""size}, \prog{dpi}, and \prog{point-""size} can be omitted since a BDF font file contains their values. A capability \prog{font-""file} gives the file name of the font. Similarly, \prog{timR18} is defined except in cases of PCF fonts. The two font files \prog{timR24.bdf} and \prog{timR18.pcf} are both bitmap fonts used in X~Window. Although pixel size, point size, and target device resolution are together with the bitmap given in the font file, \VFlib\ internally enlarges or shrinks bitmaps to yield the requested size. From a user's point of view, only the font names (\prog{timR24} and \prog{timR18}) are visible; users need not be aware of font formats. \subsection{Default descriptions} In the example above, there are three default descriptions. The first entry \prog{VFlib} is used to give global parameters of \VFlib. In our example, the relation between the filename extension and an uncompression program is given by the capability \prog{uncompression-""programs}; it specifies that files whose names end in \prog{.Z} and \prog{.gz} are uncompressed by running commands \prog{zcat} and \prog{gzip -cd}, respectively. The capability \prog{implicit-""font-""classes} specifies a list of font classes that search implicit fonts. When a font is opened and a corresponding entry is missing in \vflibcap, font drivers given by this capability are called to search the font in given order. Suppose a font named \prog{timR10.bdf} is requested to open. Since such an entry does not exist in the \vflibcap\ file, the font is searched as an implicit font by calling the PCF font driver first, and then the BDF font driver. A capability \prog{extension-""hints} gives a relation of font name extension and font class. In the example, if an extension of a font name is \prog{.pcf} (\prog{.bdf}), the PCF (BDF) font driver is called for implicit font search. For example, if a font named \prog{timR08.bdf} is requested to open, the BDF font driver is called. This is useful for searching implicit fonts fast. The next definition \prog{BDF} is a default description for the BDF font class. A capability \prog{font-""directories} is a list of font directories in which font files are stored. If the directory name is terminated by \prog{//}, files are searched recursively under the directory. The entry \prog{compression-""extensions} gives a list of file compressions that BDF font class supports. Similarly, default definition for \prog{PCF} font class is given. \subsection{Parameterized \vflibcap} \label{SUBSEC:VFLIBCAP:PARAM} Capability values in \vflibcap\ can be overridden at execution time. By this feature, called {\em parameterization}, several applications can share the same \vflibcap\ file. The next example is a \vflibcap\ for printer driver for \TeX\ DVI file for 300 dpi Canon Laser Shot. Note that all fonts are implicit fonts. \begin{quote} \begin{small}\setlength{\baselineskip}{1em} \begin{verbatim} (define-default VFlib (implicit-font-classes pk) (extension-hints ("pk" pk)) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "/usr/local/bin/xldvi")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) ) (define-default TeX (dpi $TeX_DPI) (tfm-directories "TEXMF" "/usr/local/fonts/tfm") (tfm-filename-extensions ".tfm")) (define-default pk (font-directories "TEXMF" "/usr/local/fonts/pk")) \end{verbatim} \end{small} \end{quote} In the \prog{VFlib} entry, the capability \prog{variables-""values} gives a list of variable names and their default values. In this example, there are three variables. For instance, the default value of \prog{TeX\_""DPI} is \prog{300}. A capability value can be a value of a variable if a dollar sign (\prog{\$}) followed by a variable name is given. In the \prog{VFlib} entry, initialization parameters for \pkg{kpathsea} are given. In the \prog{TeX} entry, which is used to specify a common default description for \TeX\ related font classes, the value of the capability \prog{dpi} is given as the value of a variable \prog{TeX\_""DPI}, for example. Capabilities \prog{tfm-directories} is a list of TFM files directories, and \prog{tfm-""filename-""extensions} is a extension of a file name for TFM files. The name \prog{"TEXMF"} in \prog{tfm-""directories} is a special name to seach a file using \pkg{kpathsea}. The entry \prog{pk} entry is used to specify default description for font files in PK format. A PK file is search by \pkg{kpathsea} first since the first item of the value of the capability \prog{font-""directories} is \prog{"TEXMF"}. If it is not found, then it is searched in \prog{/usr/""local/""fonts/pk} directory next. Default variable values can be overridden by giving a list of pairs of variable names and their values when \VFlib\ is initialized by \prog{VF\_Init()}. If a Unix environment variable \prog{VFLIBCAP\_""PARAM\_\var{var}} (e.g., \prog{VFLIBCAP\_""PARAM\_TeX\_DPI} is defined, its value becomes the value of the \vflibcap\ variable \prog{TeX\_""DPI}.) The example \vflibcap\ file can be used for 600 dpi HP Laser Jet 4 printers if we override variable values so that \prog{TeX\_""DPI} is \prog{600} and \prog{TeX\_""KPATHSEA\_""MODE} is \prog{ljfour} on execution time without any file modification. %%%----------------------------------------------------------------------- \section{Font Classes without Font Files} \label{SEC:ClassesWithoutFontFiles} \begin{figure} \begin{center} \mbox{\includegraphics[scale=0.75]{comic-jp.eps}} \end{center} \caption{Mixture of {\it gothic} and {\it mincho} fonts in Japanese comics} \label{FIG:JpComics} \end{figure} Fonts provided by font classes need not be associated with font files. As examples of such font classes, the {\em Japanese comic} font class and the {\em try} font class are implemented. \subsection{The Japanese comic font class} In Japanese comics, a gothic font is used for Kanji characters and a {\it mincho} font is used for Kana characters as shown in Figure \ref{FIG:JpComics}. Without creating a new font, we can implement such fonts by the Japanese comic font driver: a font $F$ of the Japanese comic class needs two sub-fonts that are specified in a \vflibcap\ file; fonts for Kanji characters, say $F_1$, and Kana characters, say $F_2$. A glyph for code point $c$ of font $F$ is obtained from $F_1$ if $c$ is a Kanji character, and from $F_2$ if $c$ is a Kana character. The font classes of $F_1$ and $F_2$ need not be the same. \subsection{The try font class} The try font class provides a feature to open a font among list of fonts. Each font $f$ of the try font class has a list of fonts, say $g_1, g_2, ...$. When $f$ is requested to open, the font driver tries to open fonts $g_1, g_2, ...$ in this order until one of them, say $g_s$, is opened successfully. Then, any font operation on $f$ is applied on $g_s$ and therefore, $g_s$ is used as a font $f$. This font class is useful when we want to use non-standard (i.e., site dependent) fonts. Suppose that a non-standard font $f_n$ is listed followed by a standard font $f_s$ in a font list of $f$ of try font class. Then, to open $f$ is the same as opening $f_n$ if it is avaiable; otherwise, $f_s$ is used. Since $f_s$ is a standard font, opening $f$ always succeeds. Candidate fonts $g_1, g_2, ...$ can be a fonts of different font classes; for instance, $g_1$ can be a TrueType font and $g_2$ can be a PCF font. %%%----------------------------------------------------------------------- \section{Sample Programs} \label{SEC:SamplePrograms} \VFlib\ is distributed with sample programs. One of them is a previewer for DVI files. In a DVI interpreter, a \TeX\ font is opened by the following sequence. \begin{figure} \begin{center} %\mbox{\includegraphics[scale=1.2]{xmdvi-image-rgb.eps}} %\mbox{\includegraphics[scale=1.2]{xmdvi-image-gray.eps}} \mbox{\includegraphics[scale=1.2]{xmdvi-image-bw.eps}} \end{center} \caption{A DVI file previewer \pkg{xmdvi}} \label{FIG:Xmdvi} \end{figure} \begin{verbatim} sprintf(f_name, "%s.pk", name); fid = VF_OpenFont1(f_name, h_dpi, v_dpi, -1, mag, mag); \end{verbatim} The variable \prog{name} is a font name as appearing in a DVI file (e.g., \prog{cmr10}); \prog{h\_dpi} and \prog{v\_dpi} are the horizontal and vertical device resolution of the target device in dpi, respectively. The variable \prog{mag} is a magnification factor. The PK font driver finds an appropriate font file from parameters given in \prog{VF\_OpenFont1()} and the default values given in \prog{TeX} entry in \vflibcap. For instance, if the font name is \prog{cmr10.pk} and \prog{h\_dpi} = \prog{v\_dpi} = 300, and \prog{mag} = 1.2, the PK font driver looks for the font file \prog{cmr10.360pk}. Glyphs are simply obtained by calling the \prog{VF\_GetBitmap1()} function. Figure \ref{FIG:Xmdvi} shows a screen shot of a sample previewer on X~Window using Motif. This previewer supports drawing EPS figures and color changes. %%%----------------------------------------------------------------------- \section{Conclusion} \label{SEC:Conclusion} In this paper, we have introduced a font library \VFlib\ which supports multiple font formats with a unified API. It is especially useful for DVI drivers. \VFlib\ has been tested on FreeBSD 2.2.2 and Linux for Pentimun, Solaris 2.5.1 and SunOS 4.1.4 for SPARC, and SunOS 4.1 for SPARC; there is no difficulty to port it to other Unix-like operating systems. The source code and the latest information on \VFlib\ is available at |http://|""|www.|""|se.|""|hiroshima-u.|""|ac.|""|jp/|"% "|~kakugawa/|""|VFlib/|. %%%----------------------------------------------------------------------- \section*{Acknowledgements} The author would like to thank Werner Lemberg for helpful comments on specification and implementation of \VFlib. He also thank Ken'ich Handa and Satoru Tomura for valuable discussions. %%%----------------------------------------------------------------------- \bibliographystyle{plain} \bibliography{vflib35} \nocite{*} %%%----------------------------------------------------------------------- \end{document} %%%EOF vflib3-3.6.14.dfsg/doc/Paper1/xmdvi-image-bw.eps0000644000175000017500000060756406535650671020546 0ustar mohuramohura%!PS-Adobe-2.0 EPSF-2.0 %%Title: /AMD/keemun/export/disk1/home/kakugawa/res/EuroTeX98/xmdvi-image-bw.eps %%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley %%BoundingBox: 175 329 421 513 %%Pages: 1 %%DocumentFonts: %%EndComments %%EndProlog %%Page: 1 1 % remember original state /origstate save def % build a temporary dictionary 20 dict begin % define string to hold a scanline's worth of data /pix 128 string def % define space for color conversions /grays 1024 string def % space for gray scale line /npixls 0 def /rgbindx 0 def % lower left corner 175 329 translate % size of image (on paper, in 1/72inch coords) 245.73600 184.32000 scale % dimensions of data 1024 768 1 % mapping matrix [1024 0 0 -768 0 768] {currentfile pix readhexstring pop} image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff ffbf7fffdfbfffefdffff7effffbf7fffdfbfffefdffff7effffbf7fffdfbfffefdffff7 effffbf7fffdfbfffefdffff7effffbf7fffdfbfffefdffff7effffbf7fffdfbfffefdff ff7effffbf7fffdfbfffefdffff7effffbf7fffdfbfffefdffff7effffbf7fffdfbfffef dffff7effffbf7fffdfbfffefdffff7effffbf7f da6db5ad36dad69b6d6b4db6b5a6db5ad36dad69b6d6b4db6b5a6db5ad36dad69b6d6b4d b6b5a6db5ad36dad69b6d6b4db6b5a5b96b5555555555555555555555555555555555555 555555555555555555555555555555555555555555555555555555555555555555555555 555555555555555555555555555555555555559b ff271fff938fffc9c7ffe4e3fff271fff938fffc9c7ffe4e3fff271fff938fffc9c7ffe4 e3fff271fff938fffc9c7ffe4e3fff271ffeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1f ba801f7d400fbea007df5003efa801f7d400fbea007df5003efa801f7d400fbea007df50 03efa801f7d400fbea007df5003df6805bdf7ffeeeffff777fffbbbfffdddfffeeeffff7 77fffbbbfffdddfffeeeffff777fffbbbfffdddfffeeeffff777fffbbbfffdddfffeeeff ff777fffbbbfffdddfffeeeffff777fffbbbfd97 fe309bef184df78c26fbc6137de309bef184df78c26fbc6137de309bef184df78c26fbc6 137de309bef184df78c26fbc612fbcb11efcf7efffbbf7ffddfbffeefdfff77efffbbf7f fddfbffeefdfff77efffbbf7ffddfbffeefdfff77efffbbf7ffddfbffeefdfff77efffbb f7ffddfbffeefdfff77efffbbf7ffddfbfffde1d ede03efef01f7f780fbfbc07dfde03efef01f7f780fbfbc07dfde03efef01f7f780fbfbc 07dfde03efef01f7f780fbfbc07ffee03fef7dfffffeffffff7fffffbfffffdfffffefff fff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffe ffffff7fffffbfffffdfffffeffffff7fffffd3f fea86fb75437dbaa1bedd50df6ea86fb75437dbaa1bedd50df6ea86fb75437dbaa1bedd5 0df6ea86fb75437dbaa1bedd50f6eea85bfef0007fffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffc001e7f baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaabfe8c3fff461bffa20fedd77ff5f9e4e9839e4ec0fff779fffddffffee fffff77ffffbbffffddffffeefffff77ffffbbffffddffffeefffff77ffffbbffffddfff feefffff77ffffbbffffddffffeeffffeddddddb f55555555555555555555555555555555555555555555555555555555555555555555555 555555555555554fe98377f4c1fdb970fff4f7ff779e4f8999e4fce7effefffbffbffdff dffeffefff7ff7ffbffbffdffdffeffefff7ff7ffbffbffdffdffeffefff7ff7ffbffbff dffdffeffefff7ff7ffbffbffdffdffdf9d5deff dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbb6a43fdb520effa00dbfd770b7dccc719ccc4fce1219c906667eeffff f77ffffbbffffddffffeefffff77ffffbbffffddffffeefffff77ffffbbffffddffffeef ffff77ffffbbffffddffffeefffffefffcdd5d77 f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdfe506dff283ffb8e17edcb7077f614718cccc7c600c9c932667ffdfff ffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffd fffffeffffff7fffffbfffffdfffffbffc1ddefd dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbf600ff7b007ddfa03dffd76037ff3c219c4ccec08ccc991324fffffdf ffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbffff fdfffffeffffff7fffffbffffeeffffffdfdcddf f78003ffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7ffff fbfffffdff8003dbd40dfdea06f7d403fbb8f6037fe1ca99cedcfcf9c0c990324ffffdfb fffefdffff7effffbf7fffdfbfffefdffff7effffbf7fffdfbfffefdffff7effffbf7fff dfbfffefdffff7effffbf7fffffdeff77dfddeff bbbf7b76eefdd1bc7dddbbbeeedddf776eefbbb777dddbbbeeedddf776eefbbb777dddbb beeedddfeebbbbbeea8fbf7547fefaa2ffed76037fccc899ce1cfce9cfe393b24dfffffe ffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfff ffeffffff7fffffbfffffdfffffffffffdedddbb e6afebfffffff3ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffabb3cfa98befd4c5bfba63eefcd7077f9e4d999d3cfcf9cc6393399f777fff bbbfffdddfffeeeffff777fffbbbfffdddfffeeeffff777fffbbbfffdddfffeeeffff777 fffbbbfffdddfffeeeffffddeffffffffc01deff fbbc7bfcca2392727fffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffeffbab9bff0cefbf867f7ec33bfff778e6e9645983f3cfcf961f798789fffefff fff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffe ffffff7fffffbfffffdffffffeff7effedfeddf7 f7b83bfcc99922727fffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffbf83bbc5fc07f2fe0379ff01f46ef3ff7ffdfeffffef77ffdffdffffffffff7f ffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffefffff f7fffffbfffffdfffffeffffffefefbdfdffdedc dbb01b7e199933267f77fbdfbbfdefddfef7eeff7bf77fbdfbbfdefddfef7eeff7bf77fb dfbbfbbffbbfbbb76e07bbb703dd7f80feff77ff7fffffdddfffffbff7dfffefdfffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffbfff7ffffffffd7fd5fe f7b01bef399933266fffbff7ffdffbffeffdfff7fefffbff7ffdffbffeffdfff7fefffbf f7ffbfefffbfbbc7fe81e3ff40f1eda058baf0007fff7ffffeffffefffffdffff7bbffef ddfff7eefffbf77ffdfbbffefddfff7eefffbf77ffdfbbffefddfff7eefffbf77ffdfbbf fefddfff7eefffbf77ffeeefdfffffffbc001e68 bbb00bfa1899338e7fffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffbfbbbdda800fdd2007fe9003ff7fdff77ffffffffffffffffffeffffffbbfb ffddfdffeefefff77f7ffbbfbffddfdffeefefff77f7ffbbfbffddfdffeefefff77f7ffb bfbffddfdffeefeffeeffffffdfbffffeffffd03 e7383bfcc989228e7ffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbff fffffffffe803bcff4e0fefa7076dd343ff6fffdffffdfffffbbbbfbfefbfffbffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff7f7bf7fff77e3f fb9c7bfc499993d67effeeff7ff77fbffbbfdffddfeffeeff7ff77fbffbbfdffddfeffee fef7effddfaeebbbd0f037e0783ff43c0db95dff7fdffdeeefffffffffffefffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff7ffdffdd1b e7bff9ffffff7fffefbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfff fffdfeffffbff9df80b0ffc0585de03cbff0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa3f fbbffbffdfffdffdfffefff7ff7ffbffbffdffdffeffefff7ff7ffbffbffdffdffeffeff efffffbfffbffbbdc0f4ede87a7ff03c3dfd555555555555555555555555555555555555 555555555555555555555555555555555555555555555555555555555555555555555555 5555555555555555555555555555555555555537 b78003bffbfffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffeffb8003dfe4e0fff270777d392fbcffffffffffffffffffffbffffffef777ffff bbffffddffffeefffff77ffffbbffffddffffeefffff77ffffbbffffddffffeefffff77f fffbbffffddffffefffbfbbbfffffffffffffe3d fbfdffefff77ff7f7ffffbbffffddffffeefffff77ffffbbffffddffffeefffff77ffffd fbbfbfff7fffffb6ff93b77fd3ffdfe0fbff7fbff7fdffffffffdef7eeeefedfffff6dbb ffb6ddffdb6effedb77ff6dbbffb6ddffdb6effedb77ff6dbbffb6ddffdb6effedb77ff6 dbbffb6ddffdb6efdbbfbffeefefffeeffbffdff e7ffbffffffffffffbf7bffdfbdffefdefff7ef7ffbf7bffdfbdffefdefff7ef7ffbf7df ffffefffff7bffdfffffffdfffddfdffff76fbf77ec20000000021085111012000009244 004922002491001248800924400492200249100124880092440049220024910012488009 2440049220024910244040091010001100400eef f9dfeffdffffffdfff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fff 7ff7ffffffffbdbfdbfffdfddeff77ffffdf5fffffeaaaaaaaaaaaaa8aaaaa56db6d24a9 b69254db492a6da49536d24a9b69254db492a6da49536d24a9b69254db492a6da49536d2 4a9b69254db49255a9569b655555555555555dfb b55555555555555555555555555555555555555555555555555555555555555555555555 5555555555555556fedb6feff7f7fedf6dfefeffdfcfffffffffffffffffffddb6dbffdf 6dffefb6fff7db7ffbedbffdf6dffefb6fff7db7ffbedbffdf6dffefb6fff7db7ffbedbf fdf6dffefb6fffff7fffffbffffffffffeffeebf faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaabfbfffff7f7fbfdffbff7b7fbbfbead56db6db556b755555777df6aaba fb555d7daaaebed5575f6aabafb555d7daaaebed5575f6aabafb555d7daaaebed5575f6a abafb555d7daaadbd6b5b5ed55ab6daab7adbdef f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffff6dbdfffdbf7fddbfbfdeefbbedfeeffffffcfb9fffbefffbfdfffffffdf7fffff bfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7ff fffbfffffdfffcbefffeff7ffffdffffff77eefb dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffdffefad53eff6fffdeefffbfeffbfb77ff7feefdaaaebd6ded7db6d7ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffef7dad7adeb6d6f556daafd5dff f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff4fdffff6fffffbefffffbebfefddcdb9fffff7ff7fd7ffffb7ffffffef fffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdffff feffffff7ffffcdd7ffdffbffffbffffff7bf6ef fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffefffffff3ffbffbfbffedfffffedff7effffebfdb6dadf5beafd5557fefbf6eeff fb777ffdbbbffedddfff6eefffb777ffdbbbffedddfff6eefffb777ffdbbbffedddfff6e efffb777ffb77ef7d6af6adaab5edb556dfe1dfd b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffed6feedefffb7f77f7b7fdefffbffca7afffff5eebfeffffdffbfbffffe dfffff6fffffb7ffffdbffffedfffff6fffffb7ffffdbffffedfffff6fffffb7ffffdbff ffedffffedffdcbefffdfffffff7ffffff7aeebf fbffffffffffffffffffffcf93f981e7e4fffffffff3ffffffffffffffffffffffffffff ffffffdfffffff3ffffffdfdfffdfbdffeff77fefbde99d556bf7bf6bdb6d7ffffffffef fffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdffff fefffffdfffffddbb5b756d6dadeaadb56e9fdf7 f7ffffffffffffffffffffcf93f99c67e4fffffffff3fffffc1ff8ff3fffffffffffffff ffffffff87ff6e4befbf7777fdbbbffef5faffbfbfeba57fffdbdedff7ffff6ffdfeeeff ff777fffbbbfffdddfffeeeffff777fffbbbfffdddfffeeeffff777fffbbbfffdddfffee effffbbf7ff7fefefffffffffffbfffffb87aefd bbffffffffefffffffffffe731f19e73ccfffffffffffffff8cff0fc3fffffffffffffff ffffffef7bffefaef00017f8001bfc000ddf3fffffcef5f6dafef7fadeaaa89002011100 008880004440002220001110000888000444000222000111000088800044400022200011 10000442800800b7d6aadab556afb6aadf3edd0d f7fffffff7fffffffffffff271f19f33ccf9e61c9873c791f9cfe4ff3fffffffffffffff fffffffefdbb464fe3f7f5f2dffaf8ffbcfcfdffeeefd95fffb7beaf7bfff5555555555a aaaaad555556aaaaab555555aaaaaad555556aaaaab555555aaaaaad555556aaaaab5555 55aaaaa95aaadafb7ffffffffbfafffffd7bf66d fbfffffffffffffffffffff8f0e19f318cf9e4cc11339388ff8fccff3fffffffffffffff fffffffefdbb6ea7ef7df7b7fbdbdbdbfdbd6f77ffd56feaaadad5fdd7555eeffdfeeef7 ff777bffbbbdffdddeffeeef7ff777bffbbbdffdddeffeeef7ff777bffbbbdffdddeffee ef7ffbbf77f7b7adaaaaaaaaaf57aaaaabd75dfd b7ffffffffffffffffff7ff8f2e99f399cfcccccf3f3399cff9f9cff3effffff7fffffff ffffffeefdbb6f4f6fdf77f7bef3f3ffddfcfffeffdbbabddfef7eabbaffebb556abbbae aaeeeeaaeeebaabbbbaabbbaeaaeeeeaaeeebaabbbbaabbbaeaaeeeeaaeeebaabbbbaabb baeaaed5dd5aed7ef7ff77dffafd77ffdebafefd fbfffff7fffdfffffffffff272e99f399cfccc0cf873399cfe3f9cff3fffffffffffffff fffffffeedbb6eadefffe6e7fffb7bfffded7fffbbfffffff6ffdfffffddffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffefff77fdfbbfbffdddffffedf9 f7ffffffffffffbfffffffe732499f3c3cfedcfcfe33399cfc7f807f3fffffffffffdfff fffdffdef5bb6f4ff7fff3fbfffbfeddf57effdffeffffeffffffffffffffffffffffffb ffbfbffffffeffefefffffffbffbfbffffffeffefefffffffbffbfbffffffeffefefffff ffbfffffffffffffffffffffffeffffff7fffebd dbfff7ffffffbfefff7fffe733599e7c3cfe1cfcff33399cf8fffcff3fdfff7feffffbff dfffffff7bb36f2efef7f7ff777affff7dfb6dffffbddffeffbbfbfedfffbf7ffff76eff fffbfbfddbbffffefeff76efffffbfbfddbbffffefeff76efffffbfbfddbbffffefeff76 efeffbfbbbffbffbbbfeff7fefffbfffffdf7dfd f7fffffffffffffbffffffcf93199c7e7cff3c4cf133939cf9fcfccf3ff7fffffbffffef fbffffff85cb66c7dfbf777fffebbbeffdbefffbfffffeffbfffff6ff6f7fbddb77fffbf b7fffedfffefedffffb7fffbfb7fffedfffefedffffb7fffbfb7fffedfffefedffffb7ff fffedf7ffedbfb7fffdfdfddfffbefbb7df7eef5 fbfffffffffffffeffffffcf93b981fe7cff3e1cf873c79cf80cfccf3fff7fffffbfffff ffffffefffffff2ff7fbf3fdddfbff7bd9ff7fbf6fefffdffbffbffffffdffffffffffef feffbffffffbffbfeffffffeffeffbffffffbffbfeffffffeffeffbffffffbffbfefffff fdffffdffffffffffff7fffffdfffdfffffffdbd b7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffe4de0001770000af80004ecdffffbff77f7ff7beffbffbfdfffffeef7fd ffdbfffbbdff7ff6fffeef7fdffdbfffbbdff7ff6fffeef7fdffdbfffbbdff7ff6fffeef bffffffedfffbfeeeefff7ffbf7fffffdffdfe05 fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffdfffffffafefffd7d7ffebebfffdf97deffeffffffffdffbfefffff7fbfdffffff fffff7fffffffffffdffffffffffff7fffffffffffdffffffffffff7fffffffffffdfffb ef6dfbfffffbeffffffefdf7ffdefff7ff7f75fd e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffe4bab6ef5f3bb7bbbddbdbcfffbffbbfdff6fffffbfbbfffdbedf7fbdff dbfefedfef7ff6ffbfb7fbdffdbfefedfef7ff6ffbfb7fbdffdbfefedfef7ff6ffbfb7ff ffffbef7fbbffb7fffffff7deffff7bdf7fffed9 fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffeffffffebeffffffffffddfefff7ff60143fc402009020084144000a4520802200 240109200880090042480220024010920088009004248022002401092008800900424808 10884508044014800000028a1040084a08008dff b7ffffffbfffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffff fffffff82249255ffeffb7bf7fff7fbffeeeeda57feaaaaaab5552ad2aaad2a956ab5555 556d52aad555555b54aab5555556d52aad555555b54aab5555556d52aad555555b54aaa5 a552a955aaada5555556da52d695aa92d5ad5ef7 fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffeffe6cd555537e7fbfdf9fff7d9ffdffb777fefcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7f f7ffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdee5feff73bb7ff8fefb7cebaabfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffedd d80000000000000000000000000000000000000000000000000000000000000000000000 000000000000002fefdfe7f7ffdafbb7fdfd67effbefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcdeef035f5e81bfbfc0ddcf566bfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde0d fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaf67e7f767f7f3bbfb6cfd67f5ffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffc7efedb7f776f9fadbfdbcf6bbbbefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe6d fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffafeeeff3f3f7fbbbfafdf965f37fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd f7ffffedb6db77b6aab6db7777bddbffd5b6db6db6db6db6b56db5afff6d55b6db6db6db 6addb7ffffffffceebeef776f5bbf37bddfceefdbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdedd dbffffffffffdefffffffffdfdef7bff7fffffffffffffffffffffeffdffffffffffffff fff7fd6dbfffffabefe7f7f7e7fafbf3fcdd6bf97defffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd f7fbffdffffffffffffffffffffffbffffffffffffffffffffffffefffffffffffffffff ffffffff3fffffcfdfefb5fff77bbffaddfef60adfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe79 fbfffffffffffffffffffffffffffbffffffffffffffffffffffffefffffffffffffffff ffffffffffffffaef7adf777f3dbfbfbfdbb64a4ffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeddd d7ffffeffffffffffffffffffffff3ffbfffffffffffffffffffffcffeffffffffffffff ffffffff3fffffc7fdeff7fdb7f9fedbbdfef7ffb7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd fbfffffffffffffffffffffffffff7ffffffffffffffffffffffffdfffffffffffffffff ffffffff7fffffadffc773dfe6fbdff1f4ef66db7dcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd e7ffffdffffff83ff7ffffbffffffbff7bfbfffffb8ffff6ffffffeffdfffffc1fdff77f ffffffffbfffffcf5e9fe6ffcfb2f7e7f9faf7ffffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffed9 7bfffffff7fffbdff7ffffbffffffbfff9b3efffff7ffdf7ffdfffeffffffffdeeff77df ffffffffbfffffbff83dafb817f7fc0fbbbf66aabfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf3 f7ffffeffffffbdc771e3cbffffff3ffb9f38b2d3a2e3c62e3a7ffcffefffffded5a631d 7fffffff3fffffdbffbfeffffff7bff7efeef7ff7fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeff ebfffffffffffbdbb6eddb3ffffff7fffaeb76ccdb6ddbb6dd9bffdffffffffdecd9b6ec ffffffff7fffffbfbffffdffbffdffbffeff65b7bbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff5fd f7ffffdffffff83bb6efdbbffffffbfffaebf6eddb6dffb6ddbbffeffffffdfc1ddbb6ed ffffffffbfffffddfbf7ffbdfedfbffefbbef7feffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdedf bbfdfffffffffbb836ee1bbffffff3ffbb5b86eddb6dfc36ddbbffeffefffffdfddbb60d ffffffffbfffffafff7edbff7bf7feefbffd66abbfcfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffcffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf7 f7ffffeffffffbdbf6eddbbffffffbfffb5b76eddb6dfbb6ddbbffcffffffffdfddbb6fd ffffffffbfffffceefdff6efdffb77ffedeef7ff7bdfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffbffff9fffff fffffffffffffffffffffffffffffffffffffe7d fbfffffffefffbdbb6eddb3ffffffbfffbbb76cddb6ddbb6ddbbffdffdfffffdfddbb6ed ffffffff3fffffaff07037f8381bfc140d7f656dbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffe3fffffffcffe67ffffffff8ffffc7ffff ffffffffffffffffffffffffffffffffffffed0d d7ffffdffffffbdc771e2cbffffffbff7bbb8b2ddb6e3c52e3bb6deffff7fffdfddbb31d db7fffff7fffffcbe7e777f3f1b9b9f9fdfcf7ffffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffddfffffffe3ff3fffffffff9f7ffe3ffff ffffffffffffffffffffffffffffffffffffdefd fbfffffffffffffffffffffffffff3ffffffffefffffffffffffffcffeffffffffffffff ffffffffbfffffaee6ebf5b6f7fbf9bb79dd67555ddfffffffffffffffffffffffffffff fffffffffffffffffffffffc3e3c3fffff7fe1ddffffffff1ff3fffffffff003ffe3ffff ffffffffffffffffffffffffffffffffffffeded f7ffffeffffffffffffffffffffff7ff7ffffeefffffffffffffffdfffffffffffffffff ffffffffbfffffcfefeee7e7b77bfbfbdcfcf5ffffefffffffffffffffffffffffffffff ffffffffffffff87fc30001e3c3e3fffff8000ddcfe00fff9ffffffffffff071ffe7ffff fffffffffffffffffffffffffffffffffffffeb9 dbfffffffffffffffffffff7fffffbffffffff1fffffffffffffffefffffffffffffffff efffffff3fffffabefeff3f7e7fadbfbfdb967b6bfcfffffffffffffffffffffffffffff ffffffffffffff87f83c3e1e3c3e3fffffe1fc63e00007ffffffffffffffe3f1ffe7ffff ffffffffffffffffffffffffffffffffffffedfd f7ffffdffffffffffffffffdfffffbffffffffffffffffffffffffeffeffffffffffffff ffbfffff7fefffcf7ddff6ffffebff7bfdfef6fff7dfffffffffffffffffffffffffffff ffffffffffffff87f87c3f9e3e7e3ffffffffcffe7ffe3ffffffffffffffc7e3ffe7ffff ffffffffffffffffffffffffffffffffffffdefd fbffffffffdfffffffffffff7ffff3ffbffffffdffffffffffffffcffffeff7fffffffff ffffffffbffbffafeff7f7fbfefb7bdefddf67aabdefffffffffffffffffffffffffffff ffffffffffffff83f07c3f8e3ffe3ffffffff8ffe7ffe3fffffeffffffff9fe7ffe7ffff ffffffffffffffffffffffffffffffffffffedfd b6fffff00050000000000015400097ffe0112005000000000000095fff42814000089200 104000253fffffcdff7db7bf77dbffffb5faf5ffffcfffffffffffffffffffffffffffff ffffffffffffffc3f0fc3fce3ffe3ffffffff9ffe7ffe7f3fffdffffffff3fc7ffe1ffff fffffffffffffffffffffffffffffffffffffeb5 fbbfffd6dd96ef7bb6dbbbd55bbeabff8fd6aeeab6dbbfef7edb6aaffe555aaddfeb54ed d75b77a97fffffa7fbfff5effff9def7fd7f67b6bfdfffffffffffffffffffffffffffff ffffffffffffffc3f0fc39ce3ffe30fffffff9fff7ffe7f87ffbfdfc7ffeffcfffe63fff ffffffffffffffffffffffffffffffffffffedfd f7f7fffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffff ffffffffffffffcf600017f0000bf80005fcf6ffffefffffffffffffffffffffffffffff ffffffffffffffc1e0fc39fe3c3e007ffffff3fff3ffe7fe3ff7fe003ffdff8fffe78fff ffffffffffffffffffffffffffffffffffffde05 dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffafefdee7f6eeeb7bffeced67aabbcfffffffffffffffffffffffffffff ffffffffffffffe1e1fc31fe3e3e1e3ffffff3fff3ffcfff3fcffe5fffffff1fffe7e3ff fffffffffffffffffffffffffffffffffffff5ed f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcdcef7f6d7fbfbe9db7dbcf6ff7fdfffffffffffffffffffffffffffff ffffffffffffffe0c1fc01fe3e3e3f1fffffe7fff3ffcfffff9fffe7fffffe3fffe7f1ff ffffffffffffffffffffffffffffffffffffde79 fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbff7fddffb7fbdfffffffb67dbdfefffffffffffffffffffffffffffff fffffffffffffff0c1fc31fe3e3e3f1fffffe7fff3ffcfffff3fffe7fffffe7fffe7f9ff fffffffffffffffffffffffffffffffffffffdff d7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffd77ffffb7fffefdf7fddfef57f7dcfffffffffffffffffffffffffffff fffffffffffffff0c3fc39fe3e3e3f1fffffcffff3ffdffffe7fffe7fffffcffffe7ffff ffffffffffffffffffffffffffffffffffffeeff fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbfddff7fefeefefbfeffb767d5bfdfffffffffffffffffffffffffffff fffffffffffffff0c3fc39fe3e3e3f1fffff9ffff3ff9ffff8ffffe7fffff9ffffe7ffff ffffffffffffffffffffffffffffffffffffdddb f7fffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffffff fffffffffffeffcdffb7e7fdfffbbffbedfcf6ffffefffffffffffffffffffffffffffff fffffffffffffff8c7fc3ffe3e3e3f1fffff3ffff3ff9fffe1ffffeffffff3ffffe7ffff ffffffffffffffffffffffffffffffffffffeefd dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaff7fef6dffb3bf6dfb9bf67b6b7cfffffffffffffffffffffffffffff fffffffffffffff807fc3ffe3e3e3f1ffffe7ffff0000ff787ffffefffffe7ffffe7ffff fffffffffffffffffffffffffffffffffffffdbd f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcbbfc4f3fba379fff0bdeeedfbffdfffffffffffffffffffffffffffff fffffffffffffff807fc3ffe3e3e1e1ffffcfffffbffcff00fffefef3fffcfffffe7ffff ffffffffffffffffffffffffffffffffffffd69d bbfffffffffffffffffffffffffffbffffffffffffffffffffffffffffffffffdfffffff ffffffffdfffffaefd9e77bfcf7b6fe7bcfb775ebdefffffffffffffffffffffffffffff fffffffffffffff807fc3ffe3e3e0c3ffff3fffffbfffff83ffff0000fff9fffffe7ffff fffffffffffffffffffffffffffffffffffffdbd f7fbfff77776db6ddddb6dbb6db6dfff6db6dbbbbbbb6d6d6dddb6dfff7bbbb6fadbbbb6 dbbb6db6ffffffcfef9ef7f7d75bfeef9dfeebf77fcfffffffffffffffffffffffffffff fffffffffffffffc0ff007fc0c0e607fffcffffffffffffcfffff8ffcfff3fffffe7ffff ffffffffffffffffffffffffffffffffffffeead ebffffdfdfdfffff7f7fffeffffffbfffffffeefefeffffffff7ffefffdefeffdffefeff ffefffffbfffffabffbef6fddf7bbbebbddf67bfbfdfffffffffffffffffffffffffffff fffffffffffffffe1ff007fffc0ffffffffffffffffffffffffffffffffcffffffefffff ffffffffffffffffffffffffffffffffffffddb9 f7fffffffffffffffffffffffffff3ffbfffffffffffffffffffffeffdffffffffffffff ffffffffbfffffceddfee7dfff79ffdfbcfaf6eaf7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff6bd bbffffeffffffffffffffffffffffbffffffffffffffffffffffffcfffffffffffffffff ffffffff3bffffafffbbf5f7bb7beefffdbf65ffbdcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddfd f7fffffffffffffffffffffffffffbff7fffffffffffffffffffffdfffffffffffffffff ffffffff7fffbfcbb7ff777dffeb7ffdb5faf7b6ffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeebd ebfffffffffffffffffffffffffffbffffffffffffffffffffffffeffdffffffffffffff ffffffffbfffffaffdefe7ffeff3ddeff9ef677fbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffde9 f7ffffefffffffc0dbfffffffffff3ffbfffffc1ffffffffffffffeffffffff87ff6ffff ffffffffbfffffdf7f7b4def7b65f7bef37ef5eb7fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeef3 bbffffffffffffdffbffffffbefff7ffffffffdeffffffffffffffcffffffff7bff7ffff ffffffffbfffffbbefe00f7bf00ffff807dd67bfbbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd03 f7ffffffffff7fdfdb8ffffffffffbfffbffffdee3a78ebfffffffdffeffffefda62e3a7 9fffffff3f7fffcefbfffffefff7bf7fddfef77affefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff6ff ebfdffefffffffdfdb73fffffffff3ffbfffffdedd9b767bffffffefffffffefd9b6dd9b 6fffffff7fffffbfbefffbdffefdedf7fff765efbfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddbf f7ffffffffffffc1db77fffffffff7ffff7fffc1fdbb76ff7fffffcffdffffefdbb6ddbb 7ffdf7ffbfffffdfffdb7efbf7bfffff7bbef7bb7bdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd bbffffdfffffffdfdb07fffffffffbffffffffdfe1bb06ffffffffdfffffffefdbb6ddbb 9fffffffbfffffadf7fff7bfbffbbefbdced66efbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffded e7ffffffffffffdfdb7ffffffffffbff7fffffdfddbb7efffffdffeffeffffefdbb6ddbb efffffffbfffffc7bff6e7f7fb5af7ffbdfef7faffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeebd fbffffefffffffdfdb777ffffffff3ffffffffdfdd9b76ffffffffeffffffff7b9b6ddbb 6fffffff3fffffaffdc675fde373fdd1bdff655f5ddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd3d f7fffffffeffffdfdb8edbfffffff7ffffffffdfe2a78eedb7ffffcffffffff87a72e3bb 9db7ffff7fffffcb6f1ef7dfcf7bdfe5bcdaf7f7ffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee9d dbfffffffffffffffffffffffffffbffbfefffffffbfffffffffffdffeffeffffbffffff ffffffffbffeffafffaef6f7d77af7ef9dff65bebfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdbd f7ff7feeffffffffffffffffff7ff3ffffffffffffbfffffffffffeffff7fffffbffffff ffffffffbfffffcfdfbef7fede7bfee7bd76efebf7dfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeebd ebffffffffffbfffffffff7ffffff7ff7fffffffffbfffffffffffcffdfffffffbffffff ffffffff3fffffa6fbfcd5dfbf79dfffbdff737ebdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddb5 77fffffffffffffffffffffffffffbffffffffffffffffffffffffdfffffffffffffffff ffffffff7fffffcfbffff7fbffdbf6fef5dceddbffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd fbffffdffffffffffffffffffffffbffffffffffffffffffffffffeffffffffffffffffd f7ffffffbeffffaff7b7f3bfedfb7fefbcff677ebfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdbd e7fffff20000400001100080008093ffc040000000000000000002afff08000008800005 14000012bfffffc6fefda7eeff73df7ff9b6f7d7ffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeef1 7bfffff5bbb75bbdfd56eeadb73ea7ff9f5b77bbdf76eefffdbbbd2ffed6fb77b33fbb6a a5ddb6d4bfffffbfefffceffbfc5fbddf3ff66febbcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddf3 d7ffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffff ffffffffffffffdf7dc01fbbe00f7ff807faebdb7fdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff607 fafffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff ffffffffffffffbbdfffdbfffffff77fb6df777fdfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddbd f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdffbfeffeefddbdffffff6e5eb7dcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeef dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaefff5f77ffefefded6eff77bfbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd7f f40000000000000000000000000000000000000000000000000000000000000000000000 000000000000005fb7bdbdfbeebfbfff7fdce6daffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee7b bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbbfdfdffdffaf7fb7f5dff77ffb7cfffffffffffffffffffffffffffff fffffffffffffffbffffc7ff8fffe3f7ffffeffffffffffc7fffdffffffc7ffffbfdffff ffffffffffffffffffffffffffffffffffffdd5f f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdeff80eefec0fdefc07f76e56b7fdfffffffffffffffffffffffffffff fffffffffffffff8ffffcfff9fffe7f1bfbfe3fffffffffcffffc7fffffcffff7cfc7fff ffffffffffffffffffffffffffffffffffffee77 dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbfefb7ffb7dedf7feb77ff77bffdefffffffffffffffffffffffffffff fffffffffffffff9f9ffcf8f9fffe7f3cfcfe7fffffffffcfffdcfcffffcffff9e78ffff fffffffffffffffffffffffffffffffffffffdfd f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffd7bb3fbbfddfffddefffdae7fabfcfffffffffffffffffffffffffffff fffffffffffffff000ffcf9f9fffe7e7e7e7e7fffffe7bfcfe7c0007fffcfffdce73fdff ffffffffffffffffffffffffffffffffffffd6bf fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffdfffbdffddffffdbfbff7ddeff76afbfdfffffffffffffffffffffffffffff fffffffffffffff3f3ffcf9f9fffe4eff3e3e7f9fffcf800003cffcffffcfffdcfef9cff fffffffffffffffffffffffffffffffffffffdff 6781ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcf7ffff5b7fffaf7fffdbee7f6f7efffffffffffffffffffffffffffff ffffffffffffffe7f7ffcf9f9ffe005cf3f3e000fff9f9fffffcffcffffcfff800000e7f ffffffffffffffffffffffffffffffffffffeefd fb9cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffafdbfff7feffbbbfeffded75bfbdcfffffffffffffffffffffffffffff ffffffffffffffcfef9fcf9f9ffffcfcffffcff9fff9f9fffffc000ffffcfff9ffff9f3f ffffffffffffffffffffffffffffffffffffddf5 b79c87261fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcbffeed6efddfbeeff75fee7faffdfffffffffffffffffffffffffffff ffffffffffffff80000fcf9f9ffff9f97fffcff3fff3f9fdfffcffcffffcff33ffffbf3f ffffffffffffffffffffffffffffffffffffeebd eb9c3244cfffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffff ffffffffffffffaef77ff7fbffebfbfbfdbf76afbfefffffffffffffffffffffffffffff ffffffffffffff27cf9fcf9f9ffff9f97fffdc77fff3f9fc7ffcffcfe0000013fff37fbf fffffffffffffffffffffffffffffffffffffdfd f781f264cffffffffffffffffffffbffffffffffffffffffffffffffffffffffffffffff fffffffffffbffcfbffbb3bff77b7ffeedeae7fb7fcfffffffffffffffffffffffffffff fffffffffffffce7cf9fcf9f9ffff37bbffd9cefffe7f9fcfffc000ffffcffff0001ff9f ffffffffffffffffffffffffffffffffffffeef5 fb9f82640fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffbfffffa7ef8017fec00bdf6004ff756fbbdfffffffffffffffffffffffffffff ffffffffffffffe7cf9fcf9f9ffff7339ffdbcffffe7f9fcfffcfffffffcffffffe7ff9f ffffffffffffffffffffffffffffffffffffd905 d79f3264ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcdfebff777dfe9fbcffdfee7feffefffffffffffffffffffffffffffff ffffffffffffffe0001fcf9f9fffe777c7fb7cffffe7f9fcfffcfffcfff97fffffcfff9f fffffffffffffffffffffffffffffffffffffebd fb9f3244cfffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaf7baed3df56fb7febb5db6dabbfcfffffffffffffffffffffffffffff ffffffffffffffe7cf9fcf9f9fffc6efe1fbfcffffe7f9f9fffc00007ff97ffffebfff9f ffffffffffffffffffffffffffffffffffffedf5 b79f89261ffffffffffffffffffffffffffffffffffffffffffffffefffffffffdffffff ffffffffffffffdfff7fffffffbfdfffff7ef7ff7bdfffffffffffffffffffffffffffff ffffffffffffffe7cf9fcf9f9fffa3dff3f7f97fffe7f9f9effcfffffff9bffffe7fff8f fffffffffffffffffffffffffffffffffffffeff fbffffe7fffffffffffffffffff7ffbffffffefbffffffefffefbfffffffffffffffffff ffffffffffffffbbffedfeffdff7feef7bff656dbfefffffffffffffffffffffffffffff ffffffffffffffe7cf9fcf9f9ffe64afcfe7f97fffeff9f9f7fcfffe7ff3bffffe7f9fcf ffffffffffffffffffffffffffffffffffffeddd f7fffe67ffffbffffffffffffffffff7fffffffefffffffefffffffff7efffffffffffff ffffffffffffffdfd87fb7f83dfef61bdfdef7f7ffcfffffffffffffffffffffffffffff ffffffffffffffe7cf9fcf9f9fffe66007cff97fffeff9fbf3fc00003ff3dff000000fcf ffffffffffffffffffffffffffffffffffffde7f dbffff0fffffffffffffffffeffffffdfffeffffdfffefffeffffffffffbffffffffffff fffffffffffeffaef3fbffb9f76ffcfffefd66bd5ddfffffffffffffffffffffffffffff ffffffffffffffe0001f9f9f9fffe667cf0ff3bfffeff3f3f9ffcffe7fe7cffffe7fffcf ffffffffffffffffffffffffffffffffffffedf7 f7fffffffffffff7fffffff7ffffffffbf7ffffffdf7ffffffffffffffffbefdffbfffff ffffffffffffffdff6df6dfb7ffbbdbf77bef7efffefffffffffffffffffffffffffffff ffffffffffffffe7ff9f9f9f9fffe7e7cf8ff3bfffeff3f7f9f1cf1e7fe7e7fffe7fffcf fffffffffffffffffffffffffffffffffffffebf fbffffffff7ffffdffffffffffffffffffffffffffffffffffffffffffffffffffefffff bfffff7fefffffbbc7effff3f5fff9f9ffed6b76bfcfffffffffffffffffffffffffffff ffffffffffffffe7ff9f9f9f9fffe7e7cfcfe7dfffe7f3f7fcf3cf3e7fcfe3fffe7fff8f ffffffffffffffffffffffffffffffffffffedfb b7fffffffffffffffbeffffffffffffffffffffffffffffffffffffffffffffffffdffdf efffffffffffffdeede6ff66f76f737bedfce7dff7dfffffffffffffffffffffffffffff ffffffffffffffcfff9fbf9f9fffe7e7cfcfe7cfffe7f7effcf3cf3e7f9ff1fffe7fff9f ffffffffffffffffffffffffffffffffffffdedf fbfffffffffffffffffbeffffffffffffffffffffffffffffffff7ffffffffffffffdfff ff7f7fffffffffafefefebf7b7fbfbdb7f7d76fabdefffffffffffffffffffffffffffff ffffffffffffffcfff9f3fff9fffe7e7cfcfcfe7ffe7e7ef8073cf3c7f3ff87ffe7fff9f ffffffffffffffffffffffffffffffffffffedff f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdfe6eefff3f3fef9fbffdce76fffcfffffffffffffffffffffffffffff ffffffffffffff9fff9f7fff9fffe7e7cfc79fe0ffe7ee003e70003cfe7ffc1ffe7fff9f fffffffffffffffffffffffffffffffffffffe7d dbffffddadd6db7edefffdb6dab55bffdbff804922100008800008000024840802552090 a880810047ffffa6efeff777f7fbbbf3fdfd75febfdfffffffffffffffffffffffffffff ffffffffffffff3ff81effff9fffe7e00fe73ff1ffe3df03fe73ffe0f9fffe3ff07fff9f ffffffffffffffffffffffffffffffffffffedfd f7fffff7ff7ffff7f7efffffffffff5b7dffdeaaaad6fbd56eeef5ddffaaab6bba92ad55 4b6eb6769fffffcfffdff5ffff7bfffeecfae7abffefffffffffffffffffffffffffffff fffffffffffffcfffe3dffff9fffe7e7cffcfff9fff3ff7ffe7ffff9e7ffff7ffcffff3f ffffffffffffffffffffffffffffffffffffdeed fbffffffffffffffffeffefffffffffffdffb7ffffffdeffffffbfff6dffffffffffffff fffffffff7ffffaddffdd7efb7d9ff7ffddf76febbcfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffff3ffffffffffffffffffffffffff3f ffffffffffffffffffffffffffffffffffffedfd d7ffffffffffffffffcffffffffffffff9ffddddaedb7fff7bbfff7ffffffbdeefffffff ff7bffdfffffffcff6ef77fdfdfbdbdbddfee7b77fdfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffff9fffffffffffffffffffffffffe7f fffffffffffffffffffffffffffffffffffffebd fbffffdfffffffffffdffffffffffffffbff9fffbffe7fb7dfedf7dbfbdb7ff7fef6db6e dbdf6dfdfeffffa7fffff57ffffafffef57b76fddfefffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffffe7f ffffffffffffffffffffffffffffffffffffedf5 f6ffffffffffffffffeffefffffffffffdffdffffffedbffffffbffedeffdeffbfbfffff ffffff7f6ffdffcee00017f0000bf80005dce7af7dcfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffcfffffffffffffffffffffffffcff ffffffffffffffffffffffffffffffffffffde05 dbffffefffffffffffeffffffffffffff9ffdfffbfff7efdfb7feeffffbff7bff7fffffb fefdfff7ffffffafafbbe7d36f6bdbfffdfd75fbbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffdff ffffffffffffffffffffffffffffffffffffedfd f7fffffffffeffffffcffdfffffffffffbff97ffbfff7fefdfedffefffedfff6fdedb6df b7efb7bfefffffcbedff76f7fbfaf2ddecf4e6deffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeb5 fbffffffffffbfffffdffffffffffffffdffbfffbffe77feffff7dfedbff7fffbfffffff fffffffeffffffbef777dffffef7ffff7fbf77f7b7cfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff d7ffffefffffffffffeffefbfffffffffdffdfffbfff7dbfbdbfefb7feffedbfefbfeff6 fedefef7efffffdfbffdfbb6dfbddf77fbfcf5bb7fdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdedd fbffffffffffffffffeffffffffffffff9ff9fffbfff7ff7eff7ffffffb7fffbfdfb7dbf b7f7b7bdffffffb7efdf7ffff7ff7bfddfef67effdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff5ff b7ffffdfffffffffffcfffff7ffffffffbffb7ffbffe6fffffff7dff6ffdbfdeffdfffff ffffffffb7ffffddfefff6eefdefffdff77eed7abfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde77 ebdffffffe0ff7ffffdffeffefbfffbffdffdffffffefedef6dfefdbfbffedffeff7f7ed fdbdfdffffffffbf7aeddfff3f7bf6b77dfb67df7fdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff f7ffffeffef7fdffffefffffe3bfffbffdffdfff9fff7ff7fffdfefffedfff77fefdbf7f 6fffdf6defffffdfddfefdbaef7edf7dbfdef6f7b7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe1b fbfffffffef6b1ddffeffdffebb8de1ff9ff9fffffff5bffdfefbffdbff6ffff77fffbff fff7ffff7fffffbbf41c3fee4a1ffd070ff767befdcfffffffffffffffffffffffffffff ffffffffff003ffffff18fffc7ff8fffc7fffffffffffff80fffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed9f d7ffffdffef66eddffcfffffebb76dbffbffb7ffbffe7fbef6fffbefefffb7dffddffef7 fdbdbbfff7ffffdef5027bfc8137bea09b7cf6ebbfdfffffffffffffffffffffffffffff ffffffffff8fbffffff1cfffe7ffcfffe7fffffffffffff3f7fffffffffffffbffffffff ffffffffffffffffffffffffffffffffffffde17 fbffffff7e0eeeddffdfffffedb773bffdffdfffbffef7f7ffbeff7fff7ffdfdbff6dfbf 6fffffb7fffbffaff8806fbd503ded301fff67feffefffffffffffffffffffffffffffff ffffffffff8fbfffffffcfffe7ffcfffe7ffffffffffffe633fffffffffffffbffffffff fffffffffffffffffffffffffffffffffffffd9d b7ffffeffefee0ebffeffeffeeb073bffdff9fffbfff7efffff7efdefbdbffefeffffffb ffefefff6fffffdfb7c0fde9e07ffce83eeef6b7bfcfffffffffffffffffffffffffffff ffffffffff8dbfffffffcfffe7ffcfffe7ffffffffffffecc1fffffffffffff3ffffffff ffffffffffffffffffffffffffffffffffffee3f ebfbfffffefeefebffefffffeeb7edbff9ffb7ffbffe7fbb6dff7bf7bffedf7ffdbffbff f6fb7effffffffbdfa81bffd40efbea077fb6bdf7bdfffffffffffffffffffffffffffff ffffffffff8df000e071ce7fe0ffc801e4223c04080440e9e5c0c1800701c460f040fe0e 0603ffffffffffffffffffffffffffffffffdd7f f7fffffffefeeef7ffcffdffef375ebffbffdfffbfff77ffffdfffffeffff7fefff6df6f bffffbedf7ffffd7d8a3f77c51fdee28ffbee6f5bfefffffffffffffffffffffffffffff ffffffffff81f9cce671ce7fe27fc819e433b98ccccccce9e5989cce679ce773e664fce7 24c7ffffffffffffffffffffffffffffffffeedb fbffffeffefef1f7ffdfffffefb8de9ffdffdfffbfff7deffffddf7ffb6ffdf7b7fffffd ffdfdf7fbfffffbde5c2ffd2e1dff9606ded77bfffcfffffffffffffffffffffffffffff ffffffffff81f9dcf679cfffe77fc9d9e4f3b99ecccdece9e59d9ccee79c6773e727fce7 3ccffffffffffffffffffffffffffffffffffdff d7ffffffffffffffffeffffffffffffffdff9fffbfff5ffedb6ffbf6fffb7fbffedfbdff f6f6ffdff7ffffdf6803ddf400f77a10fff8e5f6bbdfffffffffffffffffffffffffffff ffffffffff8dd9dcf079cfffe77fc3c1e1f3b99e0e05e0e9e59f9ccee79c6773e027fce7 3ccfffffffffffffffffffffffffffffffffee77 fbffffffffffffffffcffefffffffffffdffb7ffbffe7f77ffffffbfbfffdfeffffdefb7 bffff7f6ffffffbfe387ff71c3ffd8c1f77d6f5f7fefffffffffffffffffffffffffffff ffffffffff8d99dce679cfffe77fc399e1f3b81cce21ccedc59f9ccee79c677367e7fce7 3c0fffffffffffffffffffffffffffffffffddfd d7ffffefffffffffffdffffffffffffff9ffdffffffef7fdfffb6fffedbffdfedbeffffd fffffdffefffffdbe80f77f407ddfd03bfdcf3f5dfcfffffffffffffffffffffffffffff ffffffffff8fb9dce659cfffe77fc19960f3ba7cca23cca4019e9ccee79ce77367a7fce7 3d3fffffffffffffffffffffffffffffffffeedf fbffffffffffffffffeffdfffffffffffbff9fff9fff7dff6dbffefbffedfff7fefffeff db6dbf7f7ffeffaf500dfde006ff7003fdf967bf7ddfffffffffffffffffffffffffffff ffffffffff8fb9dce619ce7fe779c8986473183cc333cc33ff8c88cee798e6326327cc47 3c1ffffffffffffffffffffffffffffffffffdff d7ffffdfffffffefffeffffffffffffffdffb7ffffff7fdfffefffdeffffb77fffbdb7ef fffffff7f7ffffdfeb0fdfbd87f7da92effcf6dbbfefffffffffffffffffffffffffffff ffffffffff0030006110ce7fe779cc846678880c2373c239f1e3c1800381f118f8c3ce0e 1c07ffffffffffffffffffffffffffffffffeebb fbffffffffffffffffcffefffffffffffdffdfffbffe5ff7fffedbffb6ffffdf6feffffe f7fff7fdffffffb6e986f7f4c3bffa63bedd67feffcfffffffffffffffffffffffffffff ffffffffff003ffffff087ffc01f807fc03ffbcffffffffc07ffffffff9fffffffffffff fde7ffffffffffffffffffffffffffffffffddff e7feffefffffffffffdffffffffffffffdffdfffbffefb7db6f7ff7fffb6fffbfbfbfedf bf6dbedfb7ffffdfb0cfff6867eefc33f7fef5b7b7dfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffbefffffffffffffffffff9fffffffffffff fdf7fffffffffffffffffffffffffffffffff6f7 fbffffffffffffffffeffffffffffffff9ff9fffbfff7ffffffdffdbffffb6ffffffb7fb fdffffffffffffa7fc07b3fe02f9df01fc7766fb7defffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff9cfffffffffffffffffff0fffffffffffff fce7ffffffffffffffffffffffffffffffffdddc b7ffffdfffffffffffcffeffff7ffffffbffb7ffbfff6fdfffbfdbfedbffffddbfbefdff ffff7bfdefffffd6ee05f9df03bdf780defef7afffcfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff80fffffffffffffffffff0fffffffffffff fc07ffffffffffffffffffffffffffffffffee7e fafffffeffffffffffdfffffffdffffffdffdfffbffe7dfb6dfefefffeedffffedefff6f b7dbdf6f7fffffa7fd81a3f6c0e17fa078db75fabfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd68 d7ffffffffffffffffeffddf7ffdfffffdffda25604aff7fffefbfb7ffffb6f7fffbdffd fefffffff7ffffdbba400f7d2007de9003fee7df7fefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee03 fbffffefffffffffffeffffffffffbfffdff92d557556fefdf7feffdb7bfffbefffef7ff ffbffdfbfeffffbff4e0f7fa707bf53837776d77bbcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd3f f7fffff900000000124fff2241520a0223ffbffffdfffbfafbddfdfffdf6efefdadffedb 5bf5575fafffffcdd0f07dc8783ef43c1ff8f7feffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe1b ebffffe2b6edb6edaa9ffeaa9d2ad2b4d5ffbf6dbf6dbebfeff7dfaedfdffafb7ffddbff ff7ffff6fffeffbf80b0bfc0587fe02c3ef165abbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed3f b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdfc0f4eff07a77f83d1bfcf7ff6dcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde37 fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffb6f4e8fef2785db9387fbd656dffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd3d d7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdfff83fbffc3ffffe4f7eeefbfbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff fbfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbf6fffdfdffffeefffbeff75f57fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddef f40000000000000000000000000000000000000000000000000000000000000000000000 000000000000005bfbfff77dfdb7fdffffbae7dfbbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffefb 6bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaefefb7fef6ffddfbbdbff7576ffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedbf f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdfdfdfddffff7ffbfefef6e7dfbfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeef bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbff7f7ffbdfbf7beefffbd76faeddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfb e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdb7f7f7befdfbdefffb7fee76fbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeff fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffafffffdefffffffffffdef77feffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff f79f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdbbffffffefff7bfbbff7ee6abbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde6d bb9f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbffb6dfbbfedbdfdfeefff6bff7defffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff f78e30e1c387261fffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdeffffdff77fff7feffdeef76ddfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffedf fb8e264c993244cfffffffffffffffffffffffffffffffffffffffffffffffffffffff7f fffffffffeffffa7f7def6fff7ebf77fbd7b65ff7fdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf5 d78426478ff264cfffffffffffffffffffffffffffffffffffffffffffffffffffffffdf ffffffffffefffcdf00037f8001bfc000dfef755f7efffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffff1fffffffffffc003ffffffbff3fffffffffff ffffffffffffffffffffffffffffffffffffde0d fb952071e382640fffffffffffffffffffffffffffffffffffffffffffffffffbffffff7 ffffffffffffffaf65ffb3b1fef9b9fdfdbd65febdcfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffff3fffffffffffcfe7ffffff8001fffffffffff ffffffffffffffffffffffffffffffffffffedfd f79127f8f13264ffffffffffffffffffffffffffffffffeffffffffffdfffffffffffffd fffffffeffffffcfefdbf7f76fbbfb6f6dfcf756ffdfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffff7fe7ffffffffcfe7ffffff9ff3fffffffffff fffffffffffffffffffffffffffffffffffffedd bb9b264c993244cfff7fffffffffffffffffffffffffffffbffffffffffffffff7feffff 7fffffffffffffabeefef6f7fbfbbbfffced75fcbfefffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffff0003ffffffffcfe7ffffff9ff3fffffffffff ffffffffffffffffffffffffffffffffffffd5fd f79b30e1c389261ffffffffffffffffffffffffffffffffff7dffffefffffffffdffffff feffffffffffffcecffff7b7fff9f3fffdf8e7feffcfffffffffffffffffffffffffffff ffffffffffffffffffffffff9f81e07007e79ffffe7e07fcfe7fffe7f9ff3fffffffffff fffffffffffffffffffffffffffffffffffffef9 fbffffffffffe7fffffffffffffffffffffffffffffffffffff7ffffffffff7fffffffff fff7ffffffffffafffffd3f7fffbff7bfdbf75fcbbdfffffffffffffffffffffffffffff fffffffffffffffffffffffe1f19c6700fdf9ffff87ce3fc007fffe7f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffed7d b7fffffffffe67fffffffffffffffffffffdffffffffeffffffdffffffbfffffffffffff fffdffffffffffc7fbb7f7ff6f6bbfdfb5fee7beffefffffffffffffffffffffffffffff ffffffffffffffffffffffff9f3ccf37cfbf9ffffe7df3fcfe7fffc7f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffdedd fbffffffffff0ffffffffffffffffffffeffbff7ffffffffffffdfffffefffffffffffff fffffbfffffbffaddfff777bfdf9fdfefd7d75fd5fcfffffffffffffffffffffffffffff ffffffffffffffffffffffff9f3ccf37df779cfffe7cf3fcfe7fff87f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffedf5 f7fffffffffffffeffefffffffffffff7ffffbffdffffffffffffdfffffeffffffffffff ffffffffffffffcff77bf3feffbb7ff7eddee7fcfbdfffffffffffffffffffffffffffff ffffffffffffffffffffffff9f3ccf3f9ff0007ffe7cf3fcfe7fffa7f8003fffffffffff fffffffffffffffffffffffffffffffffffffefd bbfffffffffffffffffffffffffffffffffffffffbefffffffffffffffffffffffffffff ffffffffffffffafe00016f0000bd80005fd75eebfefffffffffffffffffffffffffffff ffffffffffffffffffffffff9f3ccf3f3ff79ffffe7ff3fcfe7fff27f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffed05 f7ffffc9252aa9010010000000000002408292082a2820022254920004a9000048000492 0092040000040146efffb7d7effbf37ffcece7fcffcfffffffffffffffffffffffffffff ffffffffffffffffffffffff9f3ccf3f7ff79ffffe7fe3fc007ffe67f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffdefd dbffffaaaaa4957d77d6eeeeeeeeedb55f3caab6d555af7aaaaaaaef755577f7ab77daaa fb5575ddddf576afeb6df7f77eeafbddb5fd757ebddfffffffffffffffffffffffffffff ffffffffffffffffffffffff9f38ce3e7ff79ffffe7fe7fcfe7ffee7f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffedb5 f7ffffdfffffffd7deffbbbbbbbbbffff5f7ffefbffffdeffffffffbdffffdbefffeffff dfffffffffbfffddbfffdb7bdfffbfffffb6e7fcffefffffffffffffffffffffffffffff ffffffffffffffffffffffff9f90e43eff00001ffe7fcffcfe7ffde7f9ff3fffffffffff fffffffffffffffffffffffffffffffffffffeff fbffffdff9dff6fdf7bbfffffffffb6dbfffbbfbf6db6f7deedb76dff6d7bfffffdff7ff feffef7777efddbffdffffffffbbfb7ffdfd75deafcfffffffffffffffffffffffffffff ffffffffffffffffffffffff9fe4f93effff9ffffe7f9ffdfe7ffc01f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffedfd b7ffff9ed7fffffffffffffffffffffffffffffffffffffffffffffffff7eff76df77edb 7fdb7bfffdfaffd7f77ef77afbfefddfeffee7fcffdfffffffffffffffffffffffffffff ffffffffffffffffffffffff9ffcff3cffff9ffffe7f3bfdfe7fffe7f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffdeef fbffffb7fafbffffffffffffffffffffffffffffffffffffffffffffffe5fdbfffffdfff dbffffbdfffff73f67efbff3ffefb9fb7fbd75febdefffffffffffffffffffffffffffff ffffffffffffffffffffffff9f3dcf7cffff9ffffe7e7bfdfe7fffe7f9ff3fffffffffff fffffffffffffffffffffffffffffffffffff5bf f7ffffddf3ffffffffffffffffffffffffffffffffffffffffffffffffeffffdffbff7ff ff7fdfff6fbfdfcdebfbf6e7bf7bfaffdcfce7fcffcfffffffffffffffffffffffffffff ffffffffffffffffffffffff9f39ce7cffff9ffffe7c03f9fe7fffe7f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffdef5 bbffffdff7fffffffffffffffffffffffffffffffffffffffffffffffff7b7ef6dedfdb6 ffedf6effdf7f1afeff027f5f019fbbc05ed75debfdfffffffffffffffffffffffffffff fffffffffffffffffffffffe0303c0fcffff9ffff80c03f3f87fff81f8003fffffffffff ffffffffffffffffffffffffffffffffffffed0d f7ffff92fb7ffffffffffffffffffffffffffffffffffffffffffffffff5ff7fffff7fff dbffffffffffd6cbceeff377f7fbdbfbfdfce7fcf7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffcff3fcffff9fffffffffcffcfffffff9ff3fffffffffff fffffffffffffffffffffffffffffffffffffefd fbfffffcb3fffffffffffffffffffffffffffffffffffffffffffffffff7fbfff7ffdfff ffbf7fbdb7dfafaee7eef7f776db79dafdbd6afebdcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeddd d7ffff9fabfffffffffffffffffffffffeffffffffffffffffffffffffe7bfedbdb7f6db 7ffbdbeffef4bfcfeee7f7f3f7fbfbf3ddecf7bcffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd fbffffdfeb8811111100000000004492028080081249108022222200892fef7ffffdffff f6dffffffffafb27efef75b6f5fafafbfcfd65febfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff5b9 f7ffffdefab3d555667ddddddddd9aaaf4bb3fb3e555573faaaaaadd3555fbffffff7fff bff7fef6dbfbffceebebf7f7f7dbdbf9bdbcf7fcffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd bbffff97dfff7fffffef777777f7f7ffdfeff5febffffdeafffffff7ffff7f6aad6fed55 edfeb7bffebfddafffeef6ffe6f3fffbedfb65eebbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd7d f7fffffef76fddddbbbfffffff7f7edb7f7eff6ffdb6efffddef777fedb7f7fffffb7fff ff6ffdfb6ff77fcbdfafe7f7f7fb7bfbfdfef7fcffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeedd dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaefde7f3bdb77bdf6b7d6f657d5fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddfd f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcfffcef7ffe3f9fff3f9faf7fefbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeef5 bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffa7b69fe6eecef376e6d8ff65fcbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd79 e7bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffddf82daffc1fd7fe07fbeef7deffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeedb f8a007924920924924800000000089248440024809249011244449001248100200490040 092022124822003f7ffffbbfdff7dfffff7b65fcbddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddfb f52bbfaaaaaeaaaaaabbdf7deffeaaaab55ffaabd55557d6555555776aabadfaef557d9e eaaecdaaabaaf7dfffffdefffffefffff7fef7feffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff baffefdffffffffffffffffffbffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbbef7ffffdfdbfbeddbddf65bcafcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdff f6fdffbffffffffffffffffffefffffffffdffffffffffffffffffffffffffffffffffff fffffffffffffedefbfb7befdffbf7fffffef7eeffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee6d faed7fdfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffafffdfd77ef7dbfdf7ed7b65fcbdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddfd b4feefdfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff4bf07037f8381b7c1c0dfef7feffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee0d f9beff9cb1a73fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaf66e7f6f3f1f3f9b8f9dd65fcbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffddd f6ef6ffb2e9adfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcfe7e6e7e77779bbfbbcfcf7bef7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd fafe7f9baeba1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffeadedeff5f3f7fbfb7bfdbd65fcbdcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdded b4ffafbbaebaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffc7efeff777f7fbf3fbfdecf7feffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd f9dfbfdb2ebadfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaf7fdff7ffeff9bfdbfdfb65dcbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfd f6d25fbcb1bb3bffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff4fdefdb3ff7edbfdffb57ef7feffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffd6b9 f8d55fdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffadf7f7f76df7faff7dfdff65fcbbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfd b6fff7dfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcfffbf77fffdfbbfef7ddaf7beffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeed f9bfffbfffffffffffffbffffffffffffffffffffffffffffffffffffffffbffffffffff fffffffffffffeabe00015f0000bf80004fd65ed5fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd05 f6f6dfdfffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcf6bffd7b7bf6af3fff5fcf7fcfbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff6fd f8ffff9c3fffd7fffe7fffffe7fdffffffffcfffefc07fffbdffdf81ffff7bffbffc7bce fffef1c60e07efafef6df7e5effbb9bbbded65febfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddb5 d7bff7bddfffdffffe7fffffe7fdffffffdfcfffefdbffffbdffdfb7ffff7bbfbffbb3ce fffceebbeedfef5ddfff7dfffeffffffff7af7fcffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeff f8edbfddd98e55397d4e3139d68dad946da3a98e6dbb6a73bd1cdb76d4e77a39b7ffbbd6 c6eeeebbdddcf7b7fdffefbeffedefff7bff65bebddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffd5fd f6ffffbc36f594d67d35d6d6d5f56d67adbda6f5abbb69ad81eb5776d35b03d6afbfbbd6 baeeecb3dddb7edf6ffbfbf7fb7f7b7bdeeef7fcffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffedf baffefddd0c5d5d77d75d6d0d3c4ed763571aec5e7bb5ba1bd8bcf76b7437b179e0e7bda bb5ef2cbbdd877abffdf76ffdffbfffffdfd65feafcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7d f6db7fddd7b5d5d77d75d6d7d5b56d75b56daeb5ebbb5bafbd6bd776b75f7ad7affdfbda bb5efefbbddbf7cefbfef7ddff5bddeebddef7dcffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde9d d8ffdfbdd6b595d67b75d6d6b6b5ad65baed6eb5ad7b99adbd6b5af7335b7ad6b7fbfbdc bbbeeebb7bdb6eafdf42f7ffe172fff1acf765febdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdbd f5fff7ddd9ca55d97b7636d9b6c9b1965af26eca6d7bba73bd94daf774e77b29b7f83bdc c7bef1c77bdcefc7f79eb6dbcf7bf6e7bdfef7fcffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeead faedff9fffffffff7ffffffffffffff7ffffffffffffbbffffffffff77ffffffffffffff ffffffffffffffaf7fbef3fecf7bbfebbddd65bebfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddb9 b4ff7fbffffffff8ffffffffffffff8fffffffffffff7bfffffffffef7ffffffffffffff fffffffffffffecdfbaef7bfdb79efef3cfef7fcf7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeebd f9bfefdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffafdffef7f7fe7bfd7fbdf765eebdcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdbd f6fbffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcbff7ee6fdffdbbfeff5bef7fcffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd daffbfde1ffffdffff9fff7fffffffffffffffffffffffffffffffffffffffffffffdfff fffffffffffffeafbbf7f3dfbff9f7fbbdfd65febfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddb5 f4efefddefffffffff7fff7ffffffffffffffffffffffffffffffffffffffffffffff7ff fdffffffffffffceefbf67f7f7737f7ff96ef77cffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff6f9 fafeff9dea734d4e5e31a633fffffffffffffffffffffffffffffffffffffffbffdffdff ff7ffffbefffffb7fbefcf7f7fc7dbdee3ff65debbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddf3 d5b7efbde9ad35359f6e9b6dfffffffffffffffffffffffffffffffffffffffefffffffd ffffffffffffff5dfee01bfbd00ffff803baf7fcffefffffffffffffffffffffffffffc0 000000040000000000000000000000000000000000000000000000000000000000000000 000080000480001fffffffffffffffffffffee07 faffffddeba17575df6ebb73ffffffffffffdffffffffffffff7df7ffbffffffbfffffff ffffffffffffffbfdffdfedffff6ff7fffff65fd5fcfffffffffffffffffffffffffffc1 400000000000000000000000000000000000000000000000000000000000000000000000 000200094914009ffffffffffffffffffffffdbd f4fdbfbdebaf7575df6ebb7dbfffbfffffeff7ffbffffffffffffffdffffffffffffffff fff7fffffdffffdef7ffeffefdffebf77f76f7fefbdfffffffffffffffffffffffffffd0 040000000000000000000000000000000000000000000000000000000000000000000000 000008100220001fffffffffffffffffffffeeff b9dfefdde9ad75759f6ebb6defffff7dffffffdfeffffffdf7ffffffffffffffffffffff ffffbffffffffeb7fdf77bf7ef7f7fffddfd65dcbfefffffffffffffffffffffffffffc0 400000000000080000000000000000000000000000000000000000000000002000000000 000010144100021fffffffffffffffffffffdd77 f6f7ffde1a7375765f71bb33b6bfffffeffffffffbffffffffffffffff7fffffffffffff fffff7ffffffffcfbfbff7bffff3defbfddef7feffcfffffffffffffffffffffffffffe2 000000000000000000000000000000000000000000000000000020000002000000000000 000005020008101fffffffffffffffffffffeefd fafeef9ffbffffffdfffffffffffffffffffffffffdf7dffffffffffffdfffffffffffff ffffffffffbfffadeffcf6fdfb79fbfebdff65fcbddfffffffffffffffffffffffffffd0 200000000200000000000000000000000000000000002080000000002000800000000000 000011040082201ffffffffffffffffffffffd9d d4ffffbffbfffffe3fffffffffffffffffffffffffffffffffffffffffffdfffffffffff ffffffffffffff4ffbc6b7efa33bffd1adbaf7beffefffffffffffffffffffffffffffc0 000000001002000000000000000000000000004110200004020800400100000002000000 00000044001140bfffffffffffffffffffffeebd f9b7bfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffa77f8ef3bfcf7b6ee7b9ef65fcafcfffffffffffffffffffffffffffc0 00000000002a000000000000080092100801000000020000400008080040100840804000 000000130020001fffffffffffffffffffffddbd f6fdefdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcfdfbef7fbd77bffefbcfef7eeffdfffffffffffffffffffffffffffc0 00000000280a100000080004021000010000100004000800000000000000040000200810 000004290009005fffffffffffffffffffffee99 daffffbdefdfffffffffdfff78fc71c7fbfffff7fef7ffe3f183dc7dfff7fffbffcfffff fdfff78fc71c7eadfb3ef6dfde7bbbedbdbd65fcbdefffffffffffffffffffffffffffc0 0000000000aa800000000001000000000000000000000000100000000001000000000000 000000025004001ffffffffffffffffffffffdbd f4dfefddefffffffffffdffe777baebbfbfffff7fef7ffddeefb9bbffff7fffbffbfffff fdffe777baebbfcf7ffcd7f6ff69fedfbdeef7feffcfffffffffffffffffffffffffffc0 00000000010410000000000000000000002000000080022000842001000000040c100000 006000044810801fffffffffffffffffffffeebd f9fb7f9decd4e573139cd377777faeba9b7ce63672f4dbfdeef75bbd4e6331cbe31f3139 cd377777bfefafafefdff3ffbffbefffbdff657cbfdfffffffffffffffffffffffffffc0 00000000000880000000400000000200020004000020000800000100084100803b040200 400200008aa0029fffffffffffffffffffffddfd b6ffffbdeb5359ed6d6b4daf777e6eba6afb5bd5acf35bfdeef75bbd35b6deb355555555 5555555555555555555555555555555555555555555555555555555555ffffffffffffc0 0000000000000000020002000000000000000020000800020000000040000001ff600010 04000000e212001ffffffffffffffffffffff6b5 f8efb7ddecd75def6d9cdddf777faebae9fcdf142ef757f3eeeedbbd767618baaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabffffffffffffc0 00000000000000000000000100810002000000000000200080200020000108015da01004 00800001c480021fffffffffffffffffffffddf9 f6fbffddef575def6def5daf777faebaeaff5ed5eef757efeeee0bbd77b6f6bb5fffffdf fffffffffffffffffffffffffffffffffffffffffffffffffffffffffdffffffffffffc0 0000000000000800000000000020004020080000800000001001000000010027f6fc0000 00100000014428bfffffffffffffffffffffeef3 dafeffbdeb5759ed6d6b4d77777baeba6b7b5ad5acf367dfeedfdbbd75b6d6b2fdeeedfb bffff777ffbbbfbffffffffffffffffff7fffffffffffffffffffffffbffffffffffffc0 200000000020000000000000000000000002000000000000000040001001002fffdb8000 00540000082a501ffffffffffffffffffffffd07 f6bfefde1cd765f36d9cd37778ec71c69b7ce72672f4efc1b1dfdc7d7673394b7fffffff f7777fff77fffbfbfffbffbfdddeffbbfdbbfffff7fffffffffffffffdffffffffffffc0 000000000400800000100000000020000000020020040200000004000041017bff6fe200 000241000008541fffffffffffffffffffffee6d b9ef7f9ffffffdfffffffffffffffffeffffffffffffeffffffffffffffffffef0007fff ffffffffffffffff777fbbf7ffffbbfeffffffbffdfffffffffff8003bffffffffffffc0 0000000020a040100000410000000000000000200000400002000108040111fef6f57c00 800000000042201fffffffffffffffffffffddff f6ffefbfffffe3fffffffffffffffffeffffffffffffdfffffffffffffffffff77ff7fc0 fcff9fffffffffffffffffffffffffffffffbff77fdef7bdef7bdbbbbdffffffffffffc0 10000000044000000000004008000200820040000400004100800000000101ffffdddd08 040100000000501fffffffffffffffffffffee5f d8fbffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffed7ff7ece 7fff9ef7ff77bf7ffffffffefffffffffffffbfffffffffffffffbbbbbffffffffffffd0 0000000000055402080000000004008800001000008008100020000000411edfbd5f6b40 000004000041001ffffffffffffffffffffffd7b f5bfbfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffff770b6fce 10830ff250c98927fff7fffff777ff7fbff7fffffffffffffffffaaabdffffffffffffc0 1000000000100800000000010000000000000004000000004004400040013ffffff6fdf0 008150000000101fffffffffffffffffffffee7f faeff7ddefdfffffff7ffde3f1c71fefffffdffbdfffdf831c71f7ffdfffeffef7077fca 00898ff126449913777f777fffffefdfef7dfffffff7bdef7bdef83bbbffffffffffffc0 00000000000a000005000000010100001000000000000000000000900401fffbeedb6f5e 4000a00080082a1fffffffffffffffffffffdd37 b6feff9defffffffff7ff9ddeebaefefffffdffbdfff9ffaebaeffffdfffefff76037fc0 8c999ff3264c9933ffffffeffffdfff7ffffbfdeeeffffffffffdbfbbdffffffffffffc0 0000000004000400a004000000004000004000410028840000001004002ffbdffbf7bdef 9000140000a1021fffffffffffffffffffffeefd f8f7dfbdecd4e5f3134dddfdfebaea6df398d9cbd36fdff7ebbef5398cc72f8cd6037ecf 94999bb3264c9913fffffffbbffffffffffffdfffffffffffffffbfbbbffffffffffffc0 000000000010800000002100000000000008000020000001080000000007fffdfebdf7fb 4001080000100a1ffffffffffffffffffffffdff b6ffffddeb5359ed6d36bdfdf9bae9abed6f56b3cd6fdff7ec79f4d6db7acf7776015fcf 9c999ff3264c9933fff7ffffeeff7ffffbfffffffffffffffffffbfabdffffffffffffc0 00000000009029488080004820401100040104000800008801088000213edffffffb5b37 ba0020000040221fffffffffffffffffffffeedf fadeefddecd75def6d777df3febaeba7f37c50bbdd5fdfef9bbef5d9d862ef76f7077fce 9c9197f126449111eefef7ffffbffbfdff7ffff7ff7777777777f803bbffffffffffffc0 0000000000012023490000400000002200004000020200000000088004fff77ffdafeeda e80004000014001fffffffffffffffffffffddfd d6f7ffddef575def6d76bdeffebaebabfd7b57bbdd5fd7ef7bbef5dedbdaef77778f77cf 9c99cff270c9c927fffffdffffffffff7ffbeffeeffffffffffdeb7fbdffffffffffffc0 000000000014001a025251000000000080000020000088008000002247ffffffbffb7bff 788000000820205ffffffffffffffffffffff6f5 f8fdef9deb5759ed6d35dddfeebae9aded6b56b3cd9fdfdefbaef5d6db5acf76f3ff7f7f fffefdd1efcfff3fffffff7fffefff7ffffeff7ffffffffffffffbdfbbffffffffffffc0 000000000000002401012800080000000000080800400010004000001ffbfff7fd6fded5 d80000000012411fffffffffffffffffffffdd7d f5ff7fbe1cd765f36d4dddc1b1c71a6df39c99cbd3bfdede0c71f5d9cce52f8f77ff7fef eefffff3ff4bdf3f7fdfffddfffbdffffffffffffffffffffffffbf73dffffffffffffc0 000000000000004882414010000821002100000000004200101004000fffdffffefaeffb b84200000020105ffffffffffffffffffffffedd babfdfdffffffdfffffffffffffffbffffffffffffbffffffffffffffffffffef0007ffd fffff803ffcffb3fddff7fff77ffffdff7bffffffdeeeeeeeefff8003bffffffffffffc0 0000000000000110042a120102000000000000010000000004008008ff7dfeffffdfbb5e f80008010000003fffffffffffffffffffffedf5 f6efffdfffffe3fffffffffffffffbffffffffffff7fffffffffffffffffffff3f7fffff ffdfdfffbfffffeffff7fffffffffff7ffffbbf7bfffffffffdfbffffdffffffffffffc0 000000000002000412852d0000000008000401002208010100000043fffffffeff75eef7 a80160000004005fffffffffffffffffffffde05 d8fef7dffffffffffffffffffffffffefffffffffffffffffffffffffffffffeffeddbff 7ffbfffffbffffffffffdffffdfef7ff7ffffefffffffffffffbeffffbffffffffffffc0 000000042808082545014b400001088000402040004000100081121ffbebffdfefdf7bda df8000020001001fffffffffffffffffffffedfd f5dbdf9fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffeff f7fffbfffef77effffffffffff7ffffffdf7ffffef7fffffffffffffbdffffffffffffc0 000000001200020a108411000020000208000010140040008008003fffcbbffffdf7edef bb7000140000021ffffffffffffffffffffffef5 faff9fbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffeaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabffffffffffffe0 00000000240a0012500408424002000080020004180008801000023dbf57f7fffffdb7be fdc000020000001fffffffffffffffffffffedbf 74ffdfdfbfffffffffffffffffffffffffffffffffdfffffffffffffffffffff55555555 5555555555555555555555555555555555555555555555555555555555ffffffffffffc0 10000008540000ac00922100020040000200100102240010044249ffff43fffffeaffd77 d77400084000001fffffffffffffffffffffdefd faffdfdcb1a73f7ffffbeffdffffffffffffffffffffff7fffbefffffffffffedbffffb7 ff7f7f5b7fffefdb6db77b6dbfef777ddf7ddf6dfff6db6db6fff6dbfbffffffffffffc0 000000003400002001281000008002400020800000014402010807fff101ffefbffb6fed 79a800000000001ffffffffffffffffffffff5ef f5bf979b2e9adfdffffffeffffffffffffffffffffffffdfffffffffffffffff7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 00000000088000080d41102000200810000001002080000020013fffa803fffbffdfff7b ec4e00048000001fffffffffffffffffffffdebf baffbfbbaeba1ffefbffffffffffffffeffffffffffffff7ffffdffffffffffeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000000400000416b8248042008420420004840040802900820fffb2003fdfff6fbb5ed bc2100102000001fffffffffffffffffffffedfb f4ffdfdbaebafffffffffffffffffffffffffffffffeffff7ffffbffffffffff7fffffff ffffffffffffffffffffffffffffffffffffffffffffffffffdffffff5ffffffffffffc0 00000102040000228d0a9000000000010248000002011080810aff7e6001fffffffbbfbf 7d4240000020001ffffffffffffffffffffffeff faff9fdb2ebadfffffffffffdfffffffffffffff7ffffffffffffeffffffdffefff7ffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000000100000002b040200000200000000100910c800040007ffed0003bffffbaef5f5 b45160282800001fffffffffffffffffffffedb7 f5bfdf9cb1bb3bfffffffffff7ffffffffffffffffffffffffffffdf7dffffff3fffffff 7fffffffffbffffffffffffffffffffffffffffff7fffffffffffffff5ffffffffffffc0 000000008000000090841001084109000001000005fe12a1149fffe4000bf7cf7f7fdedf ed2410101600001fffffffffffffffffffffdefd baffdfbffffffffffffffffffdfffdffffffffffffffffffffffffffffeffffeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000000000000030518844000004040510004402ff7e08240fffea0002bff8ffff5fff7 b480a8240000001fffffffffffffffffffffed7f f4ff97dfffffffffffffffffffbefffffdffff7fffffffffffffffffffffffff7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 10000000000000001260000000000204000000051fdffe880bf7ed800155ff8b5edf2bbd ee20ec490100801ffffffffffffffffffffffefd faffbfdfffffffffffffffffffffffbffffffffffffffffffffffffffffffbfebfffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 000000000000004844480a0840110000000844803ffede8089fdf8800155ff8ffff7feb7 5a01ac120001001fffffffffffffffffffffedfd f5bfdfdfffffffffffffffffffffffffffbfffffffffffffffffffffffffffff7fffffff ffffffffbffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 100800000000080292b11000088820a110400012ffdbfff457ffd4000697fffeb7fd6bfd e5a093a40080001fffffffffffffffffffffdeb5 baffdf9c3ffffdffffff0fffde3ffbfdfc7effffeffffffffffffffffffffffeffffffff ffbfffffffffffffffffffffffffffffffffffffffffddddddb5bbbffbffffffffffffc0 003400000000000000c800200200040002010003feffffffbf7f2000b85ffdff9f6ffeb7 aa4524220050001fffffffffffffffffffffedfd f4ff9fbddfffffffffff77ffdddffffdfbffffffffffffffffffffffffffffff3fffffff fffffffffffffffffffffffffffffffffffffffffffff7f7f7ffefbff5ffffffffffffc0 000001000000000050001001000248080010515ffff75bbffffc8000a3ffffddaefbbfef d628014002c8011ffffffffffffffffffffffefd faffb7ddea8db54e5e3f76398df9aa98f1656acffffffffffffffffffffffffefffdffff fff7ffffffffffffffffffffffffffffffffffffffffffffffffffbffbffffffffffffc0 00080a000000000000100008082417010004043fdfbffff7ffe2000b5bffbffe5fbef5ba f82a04870030001fffffffffffffffffffffed05 f6ffdfdde9f5b5359fdf0dd6de369a6dfb5969b7fdffffffefffffffffffffff77ffffff bffffffffff7ffffffffffffdfffffffffffffffffffffffffffff3ff5ffffffffffffc0 0048040000000100200110000088a4204200413ffbfeffffeff2000adffffffe966faffe dc5301251174401fffffffffffffffffffffdeb5 b8bf9fddebc6ad75df1f7dd9dfd7baedfb5d6b87fffffffffffffffffffffffefffc07fc fffff03cfc9fc19ffffffffffffffffffffffff7ffffdfffffffff7ffbffffffffffffc0 00810100000000020200008244252a80102010fdfff7ef7eff00042adfdeffff6ffdfdb7 e96055404001c01ffffffffffffffffffffff5fd f5ffdf9debb6ad75dedf7ddeddd7baedfb5d6bbfffbfffffffffffffffffffff7ffce3fc ffe7f38cfc9f999ffffffffffbfffeffdfffffffffffffffffffffbff5ffffffffffffc0 001050000000000200440040aade5810010907ffffbf7bfffcc03e2dffffbffd8af7fbdd be8d57008000201fffffffffffffffffffffdebb faffdfbddbb75d759edf7dd6ddd6ba6dfb596bb7ffeffffffffffffffffffffefffcf3ff ffe7f3ce799f9f9fffffffffff7f7feffeffffffbfffef877fffffbffbffffffffffffc0 08a88202012000000001542e8bb0ba0480009fff7ffbffeff2003e2bfffff7bf4f8b5eff ed5028a82000015ffffffffffffffffffffffdff d6ffd7dc3bcb5d765f2f7e39ce39ba9cfb658bcedbffffffffffffffffffffff3ffcf324 c8c1f3e6799f099c3ffbffbffffffffffffbeffffbffff7b7fffff3ff5ffffffffffffc1 101020040000000040444815ab63d40010807fffffffdfff88003fbffffffffe28d6ffed 747d08c00004005fffffffffffffffffffffeef7 f8c91fdfffffffffdffffffffffffefffffdffffffffffeffffffffffffffffefffce304 c467f3e6319f99999ffefffffffffffffffffffffffffeff71e78f7ffbffffffffffffc0 00251001020100000011feaa5c89e0220225ffefdfb6fffe40017fffeffe7ffc0f54bb7b dd85f000000002bfffffffffffffffffffffddbd f5957fdffffffffe3ffffffffffffeffffe3fffffffdfffffffffff7dfefffff7ffc073c ce67f3e7339f99999bffffffffffffffffffffffffffeeff6edb77bff5ffffffffffffc0 00100000080000000005aa324d53ea102009f7fff7fffffd4000bdffff7efefe49d47fdf f5a921010000003fffffffffffffffffffffee7f baffef9ffffffffffffffffffffffffffffffffffffffffffffffffff7fbf7fefffcff3c ce67f3e7339f99981ffffffffffffffffffffffffffffeff6edf77bffbffffffffffffc9 0080445050010000001365d9bd04a0820903fffffffbf6f300157fffffe0bfbe0d93edfb 7c16d4041000511ffffffffffffffffffffffdaf f6f77fbfffffffffffffffffffffffffffffffffffffdffffdffffffffffffff3ffcff3c ce67f3e7879f9999fffffffffffffffffffffffffffffeff6ee7073ff5ffffffffffffc0 00540220a224120000044ab361520001004ffeffffdf7fc800257f7fff80fff40f34bf6f ee1d2810e0040a1fffffffffffffffffffffee1b b8ff9fdfbffffffffffffffffffffffffffffffffffffffffffffffffffffffefffcff3c ce67f3cf879f9999ffffffffffffffffffffffffffffeeff6efb7f7ffbffffffffffffc0 08100800090824000005b2ca95a45210240effbffbfffe200115fffff800ffeea5827bfe de0140000f000c1fffffffffffffffffffffdd9f f6df6fdfbffffffffbfffffffffffffffffffffffffffffffffff7ffffffffff7ffcff3c ce65f38fcf9f99989fffffffffffffffffffffffffffff7b6edb77bff5ffffffffffffc0 00520000120940040428a4048d700100004bdffbfffff900162fffffe000ffed6b14acdb fa0024002000205fffffffffffffffffffffee1f daffbf9cb1a73fffffefffffffffffffffffffffffffffffffbffffffffffffef7fcff3c ce73f03fcf9f999c3fffffffffffffffffffffffffffff8771e78fbffbffffffffffffc0 00222200040888080010aa8995a00412400fffffffff7100052bfffee000ffd6ab953df7 de0208000080001ffffffffffffffffffffffd3b f4fe7fbb2e9adffbfffdfffffffffffffffffffffffffffffff7ffffffffffff7fffffff ffffffffffffffffffffffffffffffffffffffffff7fefffffffff3ff5ffffffffffffc0 05080890028580800002a03a23228100020fffffdfffcc002a3fffef0001fff850507b3f 76081280bf00001fffffffffffffffffffffee6f f9deefdbaeba1ffffffffffffffffffffffffefffffffffbfffffffffffffffebfffffff fffffffffffffffffffffffffffffffffffffbffffffffffffffff7ffbffffffffffffc0 01000001000100000080aab688442004a84bfffefffea01c15fffffc0001ffeaa6802ced fe0d0ac030800f1fffffffffffffffffffffddfb b6feffdbaebafdffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff ffffffffffffffffffffdfffffbfffffffffffffffffdfffffffffbff5ffffffffffffc0 00000402000002a00008395402000440000fddffffb8801c57ff7fc00001ffc5212042f7 da8b5015cad80a1fffffffffffffffffffffee7f f8f6ef9b2ebadffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff fffffffffffffffffffffeffffefffffffffffffffffffffffffff3ffbffffffffffffc0 0000800000012000000006020048a092048fffffdfe4005fbf7ff6000015fed2480804bd 7f03b2ae0052129ffffffffffffffffffffffddf f5b9ffbcb1bb3bfffffffffffffffffffffffffffffff7ffffffffffffffffff7fffffff ffffffffffffffffffffffbffffdffbeff7fffffffffefffffffff7ff5ffffffffffffc0 00000000000000000010154200000400902efffffbc4003f3ffffe000015ffc449402175 5a8da09a0054051fffffffffffffffffffffeefd dafdbfdfffffffffffffffffffffff7ffffefffffffffffffffffffffffff7febfffffff ffffffffffffffffffffffffffff7fffbff7ff7ffffff80000224abffbffffffffffffc0 00020000000900200002001004908124210fffdffeb0015bfffff8000037bffe022084b9 ae02f414a421101fffffffffffffffffffffddef f6fbefdfffffffffffffbfffffffffffffffffdfffffffffffffffffffffffff7fffffff fffffffffffffffffffffffffffffffffffffffdffffeaeeeecd52bff5ffffffffffffc0 020021002000400000008080a00420000827fff7ff80045fffff800008bff8bcaa0100de 80810802c000021ffffffffffffffffffffffeff f8dfff9b6db6ddb6b6edeb6daaaaabeaad57b6f56db6dedb6eed6ab6db6abeb6ffffffff fffffffffffffffffffffffdfffffffffffffffffffffffffffffffffbffffffffffffc0 02000840020a00000000282404400891020ffdffff00157fff760000aafffb3a510287e9 b74004213940405fffffffffffffffffffffedbb d7f76ffffffff7ffffbfffffffffffbffffdfffffffffbffffbffffffffffbff3de00000 0000000000000000000000000000000000000000000000000000003ff5ffffffffffffd0 00000000000000000000020109048204204bdffffe00a9fffff000025fffb7549488012f 482010215354001fffffffffffffffffffffdeff faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 20000000200a10000000802420202040848effffff0154fffff00002afff7eba901006b5 2c0000411684209fffffffffffffffffffffed77 b5555555555555555555555555555555555555555555555555555555555555557fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 4000002202200000000009011084040a122fbffeff048fffff800008ffffa42120849e08 0a890a2895b2805ffffffffffffffffffffffedc ef01fefb80777dc05fbee02ddff81feff80fb3bc076afe02edff01badb80ff5effffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc2 00000000000000000000200802109080810fefffff82bff7fc000007fffd588a0510112a b52008800680141fffffffffffffffffffffedfe fbc068dee03c3f701a37b80f0db40686de03c7ef01e3b780f1dbc078fee0347b7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 040000000081000a100288a020800208104fffffff85ffffa0000a3fffffc50bca02a05a 4fde82201020081fffffffffffffffffffffde68 ff3002ff8801efc400ffe4007feb003ff9801efc800ffe4006ff3003bf9801febfffffff fffffffffffffffff7fffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000000a20000004420020a90124050421ffbffffd7fffd80002effbffd0804c0a079ff 8240bb000000111fffffffffffffffffffffed03 dd283ff69c1ffb4e0f6da707fbd303ff6181fff0e0fdd8707fec303ff6981fb77fbc1fdf f7f87ffffffffffefffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000000024a000002000082202000a08085f7fdff757ffff80000f7fffff5201c4443ade aa2ed3800900041ffffffffffffffffffffffe3f f03c1bba1e06fd0f07fe8781be43c1b7a1e0db90f06fe8782df43c16f81e0dfcfffdefff f777bffffffffffefffffffffffffffffffffffff7fffffffffffffffbffffffffffffc0 000000024200000000822a4888a44082817ffffffffffdf80000bfffffdc2032048837fb c0135c400000011fffffffffffffffffffffed1b e03c3ff0161fb80b0efc0387fe01c3ff01e1ffc0b0ffc0387f603c3ff20e1f797ffded5a 63eff8eb75bc74f2e7fffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000000a000a000000000002e8001082817ffdffbffffffa000157fffdfe0487090801f7f 0a80b2800090001fffffffffffffffffffffde3f f43d2efc1e9ffe0f47df07a6ef83e2efc1f1bdd0f8dde87a5ff83e3db81f17fcbffdecd9 b7eff764b25bb36cdbfffffffffffffffffffffffffffffffffffffffbffffffffffffc8 000000000000000000a418001088210aafffffffffff7f000015fffffd029530012813f7 094041380900401fffffffffffffffffffffed37 f9383fdc5c1dee2e1df71707ff8b8bfdc9c9ef62e4f7f1707bf938affe5c5ddf7ffc1ddb b7eff76db6dfb76edefffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000100000000000000000955222242087fffbdffffbff000021fffeff0002802000807bd ec900a808400001ffffffffffffffffffffffe3d bfe1fdfff4f77ff93f7ffc3fbbfe0fdfff07ffff83ff7fc3fedfe0fbfff07ff6fffdfddb b7eff76db6dc376ee7fffffffffffffffffffff7ffffffffffffffbffbffffffffffffc0 000000000000000000500888004000a27bffffff7ffff400001feffff8004802022006ff 892005000110001fffffffffffffffffffffedff efffef77fffffbffffddfffdfefffef77fffbbffffbbffffefffffffadffff7f3ffdfddb b7eff76db6dbb76efbffffffffffffffffeffffffffffffffffffffff5ffffffffffffc0 0002800000000000000005652412520cffdf7effffffc00008fffbff8000903430883fb6 f0028d200000041ffffffffffffffffffffffeef fb7f7ffeefbfdfbffbff7fdf6feff7ffdbfefeddfffeefff7bbb7fdeff7fdbdefffdfddb b7f5b76db6dbb76cdbfffffffffffffffffbfffffffffffffffffffffbffffffffffffc0 00240000000000000082014009080897ffbfd8fffffa000017ffffec0000e687c00484d8 389507000000005fffffffffffffffffffffedfb ffdfdddffdf6f7f6def7f7f7fbfdfdddfedbefff76effb7bffffdef7ffddfffb7ffdfddb b3f878edb6dc5772e7ffffffffffffffffff7ffffdfffffffffffffff5ffffffffffffc0 0000000000000000000049060042425ffd1ff8efdf7800083fffffc000032982b40805ab 020280524051e01fffffffffffffffffffffdebf dffdfffddf7fff7fffbfdefffedfbfff7ffffbb7dfffbfdeef77f7fddbff6efeffffffff ffffffffffffffffffffffeffffeffffdfffdffffffffffffffffffffbffffffffffffc0 000800000001000000102040442010fff00fbcffff80002efff7fe000024d8041000161c 000004811120001fffffffffffffffffffffedef f6f7f777f7edddefb7eeffbedff7ef77f7bdbffffeddeffffbdeffbffef7ffef3fffffff ffffffffffffffffffeff7ffffffbffffffffffffffffffffffffffff5ffffffffffffc0 000000000000000000008480204a86ffb41ff8ffff80002cfffffa000014920894000218 800010484090201ffffffffffffffffffffffefb ffbfbfff7dfffffdfdffbbfbfbfefbffddeffeeef7f7fb77bfffbdeedfbffb7affffffff fffffffffffffffffffffffffffffbfffffffffffffffffffffffffffbffffffffffffc0 000000000000000040042112050013ffb01fdafffe00005fffffb00000a5c8a200001857 000163028700241fffffffffffffffffffffedff dffff6efffff77ffff7bffff7f7fff6effff77ffffff7fffeeeffffff7ffffff7dffffff fffffffffffffffffffffffefeffffdffffffffffffffffffffffffff5ffffffffffffc0 00401000000000001240080090295ff6801ffff7f00002fff7fb0000152b32084000008e d20c04816884081fffffffffffffffffffffdeef fffdffbfffedffbfffdfffffefffffffffffdf7fffdffffffffffffbfffdb7debfffffff ffffffffffffffffffffffffffffffffffffffffffbffffffffefffffbffffffffffffc0 00110000000000020004404202827ff4001fbffff80003fffff80000449f41500001541f b0010921a000001ffffffffffffffffffffff5fd bdefbffdef7f6ffbb7ffeedbfbeddfbbfff7f7f76ef6ffeefbbddbbfbfeffeff7fbfffff ffffdffffffff7ffffffffffffffffffffffffffffeffffffffffffff5ffffffffffffc0 0040000000000000489105084829ffc0025ffffff8053ffffec000092b7d0855410e58be b6000a4000ba501fffffffffffffffffffffdebf ff7ff6ff7bfffddfff7bffffbffffdefedbdfdffffffbb7fdfffffeeff7bffeefff7ffff fffffdf7df7ffffffffffffffffffffffffffbf7fffdfbefffffdffffbffffffffffffc0 0020000000000000020010210442ffd0041edfb7f8029effffc00005225d1132820e9436 fc00008000b0205fffffffffffffffffffffedf7 ffdefddfffdafff77f5fbbbdafbf6fdeffff6ffdfbb7fffbfaff7efdbbffb67f7fff7fff fffffffffff7ffffffffffffffffffffffffffffffffffff7fffffbff5ffffffffffffc0 00000000000000002114c084512ffa40029ffffff905ffff7c0000055d774609c404a81f abc002800203a01ffffffffffffffffffffffefd b4000dfe00066f0003778001bbc000dfa0006fd00035e8001bb4000dfe0006deffffeaaa aab6ffbefbfebd5b6db56db77bb7dddadb7fbdbd5bfedf7beab7edfffbffffffffffffc0 004000000004800000401512045ffa0603ffdfffff07fff7e0000002ffa6c120130014fa b3801cc01688013fffffffffffffffffffffed0d f9f7dcdcdefefe7fdb7f3fffbf97fddbcf7fe6e7dfe7f1df73f9efeddcdffef73fff7fff ffffd6fbefb7efffffffffff7efef77fffeaefefff6ffbdf7fff7ffff5ffffffffffffc0 00000000004000004a09004051ffc80f17ffffffffffffff0000421ffb549042288003dc 84ff15002a02085fffffffffffffffffffffde6d fbfdfdf9f7dedebdff3e76db9fbeff9fdbedefeef6f777f7f9fb7efcfdfb6efeffffffff ffffffffffffffffffffffff7ffffffffffffffffffffffffffff9fffbffffffffffffc0 00000000000240000041520907ff400f7fefbffffffffff800010effff294c8400001bf6 a5fbcc281600005fffffffffffffffffffffedfd b9bfbdfd7ff6f6ef6f6f3fffbd9fb7d7deff6debfff3f77efbbbf7bdf9bffebf7ffdffff ffffffffffffffffffffffff77fffffffffffffffffffffffffffdfff5ffffffffffffc0 0000000000048000108492422bfb800fbfeffffffffffbf000044f7fff91880808801efe 8b6f4d200a04011ffffffffffffffffffffffefd fbfff9bdfffcfeffff7f7fffb7bfffdedfffef6ffff6f7fffbfbfffdddfffeeeffffffff fffffffffffffffffffffffefffffffffffffffffffffffffffffdfffbffffffffffffc0 0000000000101000001124249fba0007ffcfdff7ffffff0000208ffffd425a82200403b2 0093a015d480001fffffffffffffffffffffedf9 fffffcfffdfebdffff7ffffdbfffffdfdfffcfffbff7efffbbbdfffcfffbdcff7fffffff fffffffffffffffffffffffe7ffffffffffffffffffffffffffff9fff5ffffffffffffc0 0000000000010400040540817fe400dff7efb8ffdffffc00020d7ff7bf48240080040168 8120509da0a0001fffffffffffffffffffffdebd bbdbbdddef7effbff65bdb6fafb6fd9bfbdbebf7f6d7fbb7e9ffdef5bdbefe76bffeffff fffc1fdff7e06dff3ffffffefb83fbfeff0ffffffff7e0ffffff7bfffbffffffffffffc0 00080000000421200000952bffa0853fffebd8fffffdc0000027ffffffa010c410700014 060000001481101fffffffffffffffffffffedfd feffedff7feeefedbf7ffffebbffefcfff7eeefefff37ffdfb76f7bdffefeeff7fffffff fffdeffff7effdff7fffffff7fbdfffefef7fffffff7ef7fffff7dfff5ffffffffffffc0 000000000090080c00024117ec00cbfffe1efbfffefe0000023fffffff00008002096000 8c00007ac90a401ffffffffffffffffffffffef5 ffbefd7ffbfa7fffff6f77bfbfffbfdeefffafdfddf7fefffbfffffddffffedefffdffff fffded5a63efedc77fffefff7fbdab4c7dfeed563a63ef71e5c77dfffbffffffffffffc0 04042000000482800002104dfd00d3fdfe0ffafffffe0000023ffffbfb49044080024109 08000074ca82a01fffffffffffffffffffffedbd d80005ec0002dc00017f0000af00005fc0002be00016f0000bf80005f80002f77fffffff fffdecd9b7efedbb77fffffe7bbd9b36fdfeeccdd9b7ef6ed9bb79fff5ffffffffffffc0 00000000002021124000853fee00dfff701fb7ffffd0000801ffffffb84412104000e8a8 2d00e0a3a044881fffffffffffffffffffffde05 fbeff5fdbefefe7ded3b7fedbbadfb5bddefeeebffd7e7ef6adbbdd97d7edcfebffeffff fffc1ddbb7e0edbb7ffffffeff83bb76fdfeeddddbb7e0feddbb7bfffbffffffffffffc0 0000080004848048000128ff6002ffff801ffef7ff8000a43fffbfff00000100000bd004 2e4000682032201ffffffffffffffffffffff5fd f3fbbdb9efdeeeef7f7f76ff3fbfdfdf5f7eefaf76f7737bfbf9effddddbfebb7fffffff fffdfddbb7efed837effffff7fbfbb76fdfeeddc1bb7eff0dd837dfff5ffffffffffffc0 0000000000001404800041fe8022effe001fbfffe800015ffffffdb000c4a000140480a2 d90002794008001fffffffffffffffffffffded9 bf7feefefff6fffffbf7bfffdefbffb7f7ffefffffbbfffffddffffffffff7feffffffff fffdfddbb7efedbf7fbfffff77bfbb76fdfeedddfbb7efeeddbf79fffbffffffffffffc0 000001000112410010290df40c5ffde0003fdffff80021bfffbfff80002a802110000025 23e000292120001fffffffffffffffffffffedff ffdfffdfbfffdfdffedfeffff7defffdfdffbdf6fffeffbfefff7f76ef7ffddf7ffeffff fbfdfddbb7efedbbffffffff7fbfbb76fef6cddddbb7efeed9bbfbbff5ffffffffffffc0 0000000000200824800221f40c8ffff0003f7fb7f80062dfffffff80002a408204040005 4ae0003b4408001ffffffffffffffffffffffef7 f9fffbfeeefbf677dff7bbedffdff6ffafdbfff7ffefb9fdbf75dfdffaefbffebfffffff fffdfddbb3efedc77ffffffe7fbfbb767f0f2dde3bb3eff165c77dfffbffffffffffffc0 0000000002848081000105c81cbfff8002fffffdf803a1fffffff0000088400010000120 13e000092900017fffffffffffffffffffffed7f b8fdbf7cffbf7e7df7ff3fbfbf97bfb7cffef766f6fff3fffbf9fdff7cfdef777ffdffff fffffffffffffffffffffffefbfffffffffffffffffffffffdfffdfff5ffffffffffffc0 0000008000282488902855c03ff7ec0003ffdffff807fffffffb0000020a8a8022048000 2aa2003f5080101fffffffffffffffffffffdedd fbbfededffeefebffd3b5fffadbfefdfcdffafefffb5f777fafafff9fdbffafefffffffb ffffffffffffffffffffffff7fffffffffffffffffffffffddfffbfffbffffffffffffc0 0000002000010212008103822fffe0002feffffffd06fffeef7000000020040000013501 55a02000082a801fffffffffffffffffffffedfd fbfc09f9ba02eeff037f7681bf9fc0dddfc06dcdd03773f81bbbb40dddfe06df3ffefdff fffffffffffffffffff7ffff7fffffffffffffffffffffffe3fffdfff5ffffffffffffc0 000000400121108428242dc2fdfe80007fff7fffff87ffffff8000000085510101020021 12a0d02d4044001ffffffffffffffffffffffe0d bbf3fd7cfdfe7eee7f6f7f6dbfbbbdcfdbdfefefefe7f6f6dbfbf9dcfcecfefeffffffff ffffffffffffffffffffefff77fffffffffffffffffffffffffff9fffbffffffffffffc0 0000011002044009228493c17fff80003fefffffff87ffefff0000000041480001210000 b190604a9008801fffffffffffffffffffffedfd f9bb7dfdbcfede7eef7b3f7f9bbfbfdbdfddebebedf5f7b7f9f9fbfdbdfddeb77ffdffff fffffffffffffffffffffffefffffffffffffffffffffffffffffbfff5ffffffffffffc0 0000104480101220001125f3ff78001fffffdffffefffffff80000000420128000802a0a 002488000160009fffffffffffffffffffffde6d fbfbfdddfddef6deff3f7737bf9b9bdeced76eef6f77b7f37bdb7bbdedbdf6febfff0208 0000000000000042244848097c4200000420800000000000044495fffbffffffffffffc0 0000841009048484aa4417ffffe0005fffefbfffffff7fff000000000f84040000280102 1214a4000ac88a1fffffffffffffffffffffedfd db79dcfdddfefef6bb7f7f7dbbbfbedfdfdfcfefe7f7f5f7fb7bf9fdfdfd7cff7ffebaeb 7bbfbdeffffbbb5acaab55d57aacfdb6eb5b3effffbbef7ff55555fff5ffffffffffffc0 0000008120501112011145ddff0005fffffff2bbfffffff000008a09fd81200408000048 38a114210812001ffffffffffffffffffffffedd fbfbfdfdfd76befeff775f7f9fb7bfd7dbdfebcdedf6f777dbfbfbed7cddfe6effffffff ffffffff7dffffffffffffffffffffffffffffdfdffffffbfffffffffbffffffffffffc0 000042140900a000842497ffb40007ffbe1ff3ffbfffed0000152f9fff28800aa0000088 018e8fca4500421fffffffffffffffffffffedfd f7faddddfdfefdfcef5fff6fb7fe9bddffcdeeffef67bfd6fafbfb7ddff9deff3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000108120280aa2124027fffc0007fffe8fbbffffffff0000082f1ffda4200d20004040 018a15428180001fffffffffffffffffffffde79 bdebfd7f79deef7e7b7ef67bbf7fbedfdf5fefffaff3eff7bbbf6bddfffcfeeeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0400001202028014408a95ffc003bffff01ff9fffffff000021b4ffffe80000a800026a0 446f03ea0834001fffffffffffffffffffffeddd ff7bbdffdcfe7fdefe77ff3fbbdfbfd7f7dbe7dbe7f7fff3fbfff9fcedfdbe7b7fffff7f deedef7bef6fffffffffffffffff6ffffffff7f6f6ff7bddbffffdfff5ffffffffffffc0 00000081284452812a2407fe000bffff801ddbfffffe800001117fffffc1404990900407 0a5aeb521040821ffffffffffffffffffffffefd fff1f9b7f9eedffcdf3fbe7f9ffd37df7d9eeeffcef77b67eaedf3fdffd9eefebffdabd6 f7bf7bdebdfd5556db6adb6d76dbfdb6aad6dedfdfd5defffb6db7bffbffffffffffffc0 0000000801100048004957d800ffffd8001ff7ffffb800000607fffffffe800e01200550 487b9a84a108485fffffffffffffffffffffedfd b7a779fdf37cfdf1fe7df4ed3efe5f1dff2fcfbe9fe3dfcef3ffa769def3fcdf7fffffff ffffffffffffffffffffffff7ffffffffffffffffffffffffffff9fff5ffffffffffffc0 0000000aa9052a04aa8427c0007ffbe0003f7ffffb800000013ffffffefa003145100020 085458014852841fffffffffffffffffffffded9 fe0febdf07f9ef037eefc1ff77c0f7afd07f5be83baffc17b7b60ffaf706f5f6ffffffff ffffffffffffffffffffffff7ffffffffffffffffffffffffffffbfffbffffffffffffc0 0000001008280248909096c010ffffc0017fffff7e800008023fffdf77eb002a81000000 543c0a811002881fffffffffffffffffffffedf3 efeffef7efff7ffffbfdfeff7dfffffbff7fdfffbfff7fffedfff7ffffffff7f3ffdffff fffffffffffffffffffffffef7fffffffffffffffffffffffffffdfff5ffffffffffffc0 00000002410150120245470013defe00047fffdff800000417ffffffffc000016a1805a4 8174a180a046041ffffffffffffffffffffffeff fffff7ffffeff7fffedfffdfdffdff7efffffeffffdbdbbfff7ffdeddff7fbdeffffffff ffffffffffffffffffffffff7ffffffffffffffffffffffffffffdfffbffffffffffffc0 0000000020080480a8101700bfffe000297fbffff800151dffffeffffc0000021200f402 116b204200085a5fffffffffffffffffffffd5fd beff7fbdbf7effdbeff76ffdffeffbdffbedf7fbfdfffffffffdbf7ffdbfbff77ffff877 ffffbfe0feffbfc3fffffffe7fff0fffffffefc1fdff7effbffffdfff5ffffffffffffc0 0000000008209112454aa781ffff800037dffffbf8008a1ffffffff70000500080004811 417400000000001ffffffffffffffffffffffedf ffbbddfffbf7dfff7ffffbef7bfbdff7feffbdfeefeefefb6ddffffbbfffeefebffdf7b7 ffffbfef7fffbfbdfffffffefbfef7ffffffefdeffff7fffbffff9fffbffffffffffffc0 00000000008a442410411787fff000087fff7ffff80115fffffffdf000010008250024ca 41c082c08002441fffffffffffffffffffffedf7 fbfffd7fdefef77fdd3ffeffaf7efedeeff7efdfff77ffdffbffefdcff76febf7fffeff4 f1e3b7ef6ad31f7eddc7771f7ffdff1d3c78efded5a63ee3a79ffbfff5ffffffffffffc0 000010000020108949142783fff800287fffdffff80085ffffffffb000000000010460d9 417200e04080041fffffffffffffffffffffde7d bc0c0dda0e067f03036e8381bfc1c0dfe0a067f0303370381b78180dee0e06eeffffeff3 6eddafef66cdbf7eddbb76ef7ffdfeecdbb76fdecd9b7edd9b6ffdfffbffffffffffffc0 0000000000054241042297ffff80020fffdfffffff019fffffffbe000000001500504a22 500801000120129fffffffffffffffffffffed0d f9f8fdfcfceefe7e7f7f3f3bbb9f8fdbcfceeee7e7f7f3f3fbf8f9fdfcfcfeff3ffdeff7 6edf9fe0eeddbf7eddbb76ef7bfdffeddbf76fc1ddbb7eddbb7ffdfff5ffffffffffffd0 0000000000081428515527fffe00117ffffefffeff83fffffff7c0000000208820a5a89a 24c004440050041ffffffffffffffffffffffefd fb7badfddd7eeceef77f375f9fbbbb9edbdfefedeb77f5b359bbfbbdbdddb6feffffeff7 60df9fefeeddbf76dd83760e7ffdff0ddbf06fdfddbb7eddbb9ff9fffbffffffffffffc2 4000000000012082848857ffc00007ffffdfbbfffbbfffffbdb80000001c000200190080 122004000004009fffffffffffffffffffffeded dbfbfcdd7dee7ebebf377f77b79fbfcf9fcdedcf6ff377f7fbfbbaf9ecf9fe6f7fffeff7 6fdfafefeeddbf7addbf76fef7fdfeeddbf7efdfddbb7eddbbeffbfff5ffffffffffffc8 90000040200485142a5127fd00039ffff79ff2ffffffffffff0000000100100a81142a20 400000400001801fffffffffffffffffffffdeb9 f3fbfdfdfdfefefeff7f7f7fbdbfbfdfdfdfcfefeff7f7f7fbfbfbfcfdfdfefebffef7b7 6eddb7efeeddbfbdd9bb66ef7ffef6eddbb76fdfddbb7edd9b6ffdfffbffffffffffffd2 0000000000082222a12517ff800bbffffedff3ffffffff7ffe0000000210004a00549010 000208440002001fffffffffffffffffffffedfd fddbfdbffbfaeffdfd6feefebffdbfdbeeffedfff7f6efeff9b7fffdffffdeef7ffff877 71e3bbefeedd9fc2e5c7971efbff0f15dc78efdfddbb3ee3a79ff9fff5ffffffffffffc0 24200048100148491488adb800abffdff81ef3ffffffffefa00000014095480180080a00 00a000009100001ffffffffffffffffffffffefd ffffb5eddf7e7defef7b7fbfafdff6dfffbf6f7bbed7fb7b6bfedbdddf6efa7effffffff ffffffffffffffffffffffff7ffffffffffffffffffffefffffffbbffbffffffffffffc2 1104501048121290a252478000affffe801ffbbffffffff8000000022110a20000012204 007aa0200000001fffffffffffffffffffffedfd bf7dfdffffdeff7f7f3ffbfbbbf7ff9df7fbe7dffff5fffffafffef57bfffedf3ffdffff ffffffffffffffffffffffff7ffffffffffffffffffffefffffffdfff5ffffffffffffe0 402001450244a44249249f0010fff7f0001f79fdeffdff800000000117a6b08000000000 003440000000001fffffffffffffffffffffdeb5 f7efed7fbbf6dffbfb7fdfdebf7f6fcffdefeffddbb77fdffbbbfffdfffb6ef6ffffffff fffffffffffffffffffffffe7bfffffffffffffffffffdfffffffdfffbffffffffffffca 1102441054920295124917003fffff00003fefffffbfa000000007905fb5402000002200 311a20000014001fffffffffffffffffffffedfd f80001d80002fe00017700009f80005ec0002de00017e0000bf80005dc0002ff7fffffff fffffffffffffffffffffffefffffffffffffffffffffffffffffbfff5ffffffffffffd0 022808a24844a888a4852f003fff7f4000bffbfffffff0000000078117a5410000002000 029248010020001ffffffffffffffffffffffe05 f9fffdfdfffeb6bfdf3d7fffbbbbfbdf9ffdaf6ffff5f5f6d9fbb7bcf5bffabebffeffff ffffffffffffffffffffffff77fffffffffffffffffffffffffffdfffbffffffffffffc1 08849209010805124929a7046fdff800153f7fbffbfe0000000007fa6f4000080000010a 03dd20400004501fffffffffffffffffffffeded db6dbdfdb6dcfef6fb7f6dbbbf9f7f5bcedfefceeed7777ffb6afdf5fcf7fef77fff8888 8404211044924924924449257c0012492222000212200000444249fff5ffffffffffffc4 a22240845522a84912424f87fff78000295fffef7ec00000000007f5e9251000000000bf 8161f8140000041fffffffffffffffffffffde79 fffffedbfffffdffffef7ffedeffeffffffbf7f7ffffdfff7fffffffbffedffefffeaab3 39f55aad9aaa95555555aaaafb77aaaaaaccfdf5aaaedbbf555aabfffbffffffffffffe0 10011451084922a4a4aab7fffff8000035f77ffff80008000005ffff8b41a00000030037 d68aac450200181fffffffffffffffffffffedff 77ff77feffbf6fdf6f7bdfeff7f7fbeefbfedefffdf7fdfbf7bbbfbff7bffedb3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc4 89488104a29045084954edfffd8001087ffffffff800000400bfffffa24801061000801c 0113e0080400011ffffffffffffffffffffffeff fefbffbfbffbfefffbffffffffbfffbfdfdfffbdefbeeffefdfffdf6fdffbbfeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc8 40001510090a88a52a08cfffff8000283fff7ffff800000c00bffdff849204052200000a 0885f0090a00001fffffffffffffffffffffeddb efffb9f7edde77ffff6f7dbb9dfedfddfff7ebeffff7fbefbbedef7ddffdfe7f7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc2 0a52a0a5505092484bb69fbef000095fffdffffff800001d17ffffffef4001b008008006 825804000000001fffffffffffffffffffffdefd 7eefbd7dffdefdddaf7bdff7bfeff9cf6efd6fffbcf3beff7b7fff9df76fcef6bfffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffe1 20040a08868a4912a222efff800010bfffdf7ffff800111fffffefffe080210000006009 b91008001208101fffffffffffffffffffffed3d dbf0bddff85edffc6b3ffe37bb7f1bdfff8dcf7bc677ffa37bdef1bd7ff8dedf77ffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc8 0900b1a5285124ad5db52ff800030fffffdff7fbff022effffeffc97fd68044000004001 044218008004101ffffffffffffffffffffffe9d ffe79dff73d6f7b9ef7eecb59fde5bdbdf3debdf9ef777cb33f7e7bdfdf2def6ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffbffbffffffffffffc2 400007f74a8aaa42a2455f800113fffffbdfffffff00bfffffffe9ed608000a8000fb810 81800b002040001fffffffffffffffffffffedbd ff6fbd7be7de7efaef77f9e7b7fcf2defb59eff7aef3ffdf7affcdb9ef77d6ff7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc8 80000dffd524aa94c96d9e800083fffefedfbfffdf823ffffffefdaf328000e80003b900 008804000002001fffffffffffffffffffffdebd dbebbdeff5dedffbe75f7df7bf7efb9fff7deefdbe76dddf7bdeef3dbff3dcbaffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffe0 00001da0bffdf6d31bcad600001fffffbe1ef3fffd8ffffffbfff5d004000090001f1fc1 019084900000401fffffffffffffffffffffedb9 feffb5feffdefbb7ed7bfff7bdeffbd76efde7bf7ef7ffdf7bfbffbdfdffdeff7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000017fffe56ffdee63d6f0031ffffffc01ff2fffffffff7ffffdc24001000a440738400 114001240900001ffffffffffffffffffffffebd efdefcdfffbaffff7f7fdefeaffeffdfffff6fefdfd7dbf6f37fefecefbf7ef6bfffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000dff7ffffd5bffdebe047fffff70001f73ffffffffff7ff600908000003a28130304 451428180048001fffffffffffffffffffffedbd fbffbdf5dbfeb77fdf6effb7bedfefdddfdbedfffdf6feffb9eefbfdfbf7debf7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 00000005dfffdffffbdfff83ffff7700003ffbffffffffffef00018a0008128181080200 042062780000001fffffffffffffffffffffdeed bf77e9ff7eecffdbfa3fbbff37f77e8ff6fecf7def67bfbff3ffffb9bf7ff8faffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000002fdf7fffedbdfef85fffffe00013ef2efffeffdfffe8001220010055080000000 9492215c0220109ffffffffffffffffffffff5f9 fffff3bffff9ddfefcfbeffc7dfff73f7fbf97ef7fcbf7ede6dddde3efeef9df3fffffff fffffffffffffffffffffffffffffffffffefffffffffffffffffffff5ffffffffffffc0 00000001555dfeffffffbafffffbc00000bf7bfefffffff78000000108200f82005a5850 018484f80000001fffffffffffffffffffffde73 ede806f7b402ff7e01fffe00dfdd807bdfc03dffe01ffdf00fff7806fefc02feffffffff ffffffffffffffffffffffffffffffffffffbffffffffffffffffffffbffffffffffffc0 00000000576b53bfff7fffffab7c0000203ffffff7ffbfa00000000015a15f80002140b6 3402202d0000001ffffffffffffffffffffffd03 ff7efffdffbff7efdfb77fefff7fffdffdf7dfbbf7eedfffef77fffff7dfbfbb7dffffff fffffffffffffffffffffffffffffffffffffffffffffbfffffffffff5ffffffffffffc0 0000000075b6bed35bdfffdfffff80a010bffffffefdf000000000008048e0828141188b 480040e64000001fffffffffffffffffffffeeff dfffdddffffbbdfffefdefffbbf7ddfef7fdfffefeffff7f7bfdff7bbdffffeeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000000256dab5efb7adbffffff02182ff77fffffd8000000000380041ad14068124108 805c200000800b1fffffffffffffffffffffddbf fdfbfff7bddfffbf77bfffddfeffff77bfff7b6fffbbbbfbffdf7bdfff7eedff3fffffff bfffffffffffffffffffffffffffffffffffffffffffffffffffefbff5ffffffffffffc0 0000000056adaef56beedfbfffff809857fffffefffc0000000001800054d50229004450 804c012b0020051fffffffffffffffffffffeeed ef7f6d7dfffceffbff6edef7afdf77dfff6fcfffdbf7ffdefaffdffceff7fe7affffffff fffffffffffffffffffffffff7fffffffffff7fffffffffffff7fffffbffffffffffffc0 000000002b72ab5bbeddf6f5bb7f821bffdedffffe000000000007c0842202756d614500 2dae00500800029ffffffffffffffffffffffdfd 7fefbdfff75e7effcf7ffff7bbf7fbcef7fdeefbfef777ff5bb7febdfbff9edf7fffffff f7fffffffffffffffffffefbfdffffffffffffffffefff7ffffffffff5ffffffffffffc0 0000000016aedad6db7b5daf6feefdffffdffffff0000000000007dda00821001380234f 767a80400000011fffffffffffffffffffffeebd fbf1b9ef78def7bc67777a35bf7d19dbdf85e7dfc6b5fde37bfdf1adbf78defeffffffff fdfffffffffffffffdf7ffffff7ffffffbfffeffefffffdffffffffffbffffffffffffc0 00000000156db6bb6beeeefddd7bdfbd6ddff7bff800000000107ff20509002808000897 ff6400280000005fffffffffffffffffffffdd9d dee5bd7bf3cebff1ef3fdc772ffe3bdfff3dedf78ee7dfc779ffe7bdffe3cefb3fefff7f ffbfdf7dffffbefbfffdfffffff7ffffffffffdffffffff7effffffff5ffffffffffffc0 0000000005556ed6fd5bbbd777d776f7f77b7ffff800001d00bfff7d5e021430000202ff 8aaca67f4000001fffffffffffffffffffffeebd ffef9dfef5deeefaef7dfdf7bddefbdf767cef7dbef6f7df3bb76bbcedf5dedeffffbfff ffefffff7fffffffffffffffffffbefbfffffffffffffffffffffffffbffffffffffffc0 000000000aab5b7bd5b6edbd7dbf6edf7ddffffff800000f00bfffdc95111434002400b5 af6d045d0000001ffffffffffffffffffffffdbd bbefbddfb7defbfbe76ffdf7bffef9cdff5defff3cf7fedf7bffef9dff77dcf77fffffff ffffffffefbffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000000005bacaaebfddd77b6f75fbf5dbfaafff7a02009e3ffffffff802a000000337ff d9f301b8c004001fffffffffffffffffffffd69d ff6fbcf7efdaffbfed7bbbf79b6ffbdfdffdebeffef3dfdf6adddfbddfffde7effffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 000000000355bed56aff7dcfdbdedd3eef5ff3ffff02017ffffff7ffe2e1560430075fd6 032e86ef200000fffffffffffffffffffffffdb9 f7fefdfdffbedffbff3effb7bffedf5bf7ffafbfdff6fbfdfbfffdf57df7befb3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 00000000016d55bf4295af75fefbbfefbbf3737fff817ffffffffffffd5aa00802080176 04200725e802031fffffffffffffffffffffeefd bdffb5bffdfe7b7fbf7fddfeb7fff7df7f6deefbfdb7beeffbf6ff7df7bdeedeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000000002b7ebd5a822fbbf5befe7fb7ebdf3fffeffffdfffdefdf7f8250124114f805d 040000abf150005fffffffffffffffffffffdd7d ffdbf9ef6f74ffedee77ff7f3dadff8ffbffc7feefe7effed1bfb7f8fffffcff7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 00000000015f56b54093d7efdebd7effdbffb3efffbffffffffffffef0a84900408a845f 020002ab7220001fffffffffffffffffffffeee9 ef7ff2fbfff9b6fffcbeeff67fffbd3edefe9f6ffbcdffbfe7efffd3eeef71babfffffff fffffffffffffffffffffffffffffffffffffffffff7ffffffffffbffbffffffffffffc0 0000000001f7bddbbf5ebadaefeddbf5bf6dfbfffffffffff7fffffffa42a090118700c0 3400017821ca00bffffffffffffffffffffffdf3 fbe807fef403ffde01effb00eef7807bff803bff600f7de00ffdd807bffc01ff7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffdff7ffff5ffffffffffffc0 000000000ffdcdb6d6f56f6ffdffbfffeb7b53ffffffffffffffffdfa82001300088042d 4a0003c25834b11fffffffffffffffffffffee03 bffedbdfbfdeeff7bdfbbfffbfbdffdff7ffdfdbfefff7ffedbffffdfddfff76ffe00000 0000000000000000000000000000000000000000000000000000003ffbffffffffffffc0 00000002fedf7b5d7b5ff5b5575bebfaffdff7fbbffffdfbfdfbbc0000002e44a58c0112 848003dd5e932e5fffffffffffffffffffffddff ef7ffef7fff7fb7fef7fffb6fbfff6fdbfedfeffffbbbdfb7ff6fb6f77ffffdf3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000005ff7ffd5eed7b55fffbdf77ef7daef7ffff7fddf7fffdc00000022010600000000 204000f5292add3ffffffffffffffffffffff6df fbff7ffdfebfbffddfdeefeffeffb7efeffb77f7ddfffffedeffff7fff7b37fef7ffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000002b7dfb77bdb6fefb7beddeedeeeffdfffffdefffffef7a000000482a8440000000 108002ddaa0baa7fffffffffffffffffffffdd7b ffed37bf77bdfeffdbf7feef6feff6fbfbfbffbff5f777fef7ddff7bdbff9efb7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000007fefbfdad6b7abaed67b77773fbb56adb7ffffffeed00000000011043840001c09 001d00f621a4201fffffffffffffffffffffee3f eeff7deffdaf77bf5effbfabffbef7bf7f6bedfdfdbffdb6fdff6d5efeffbfdeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000006affef7ddfdb7d7bf7ddddffeafdfffbfb5ebbbf00000000000408000200001520 0013025f0270401ffffffffffffffffffffffd7b bfe07ffbf03fdff81fdefc0fddfe07efdf037fef80eddfc0bf77e07fbfe03df77fffffff fffffffffffffffffffffffffffffffffffffffefffffffffffffffff5ffffffffffffc0 0000003fdd7faf757eefdebeaf6f6dbfd7aaf75ff7fffbfb6a0000000825120188043e90 140100340400001fffffffffffffffffffffee5f fdefb77f77bbfef3f7fbedeef7eeedfdf77dfb7f3fffffdfefffeff7fbf5ef7efffc1fdf f7fffe1ffbfffdbffffefffffffffffbefffff7ffffffffffffffffffbffffffffffffc0 0000007ffffb7dfbd7bd55fdfbfbbff57effddeb7deb6f7ffdffdfc1640058026c722e8b 019004842000001fffffffffffffffffffffddf7 f7cdffdfd7fef7badf7ff9ffff7ebfffff5fdff79bf776d6fdeeedbddf777ffb3f7defff f7fffdeffbfffdefffffbffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000007adbdfeb56b77795b7f5ddfbbfd7b6defedf5efdfddf56ed82a10098004c493f45 05d001360008001fffffffffffffffffffffeefd bf7f7dfdf6dfbfffffedbfbbdfddfbdbbdfbf7bfff7dffffffbfdffff7dfdfdefffded5a 631d7dfe3b8b18b8e9ffeffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000006dfefebdffeddd017ebf76eeeb7dddf7ebfbffdfb7fbffff600885410570a228b7 010da0088100001ffffffffffffffffffffffd7f effffdf7fffeeeffff7fffffbdffffdfefffedfdfff7ddfffbfdf7fd7dfffcff7ffdecd9 b6ecfe7ddb76edb766fffffffffff7fffdffffffffffffdfffffffbff5ffffffffffffc0 0000007f77f7f76dbfff01fbdbdffbffffffbf7fbf75fdfebffadbc2482254700fcda108 004200000400001fffffffffffffffffffffeefd fdf7fdbefffeffdded5fddffb7effedeff7fefeffff77feef377ff7dfffbfebafffc1ddb b6edff9ddb76fdb76efffffffff7ffffff7fffffdffffff7fffffffffbffffffffffffc0 0000002fbfbf5ddb6b5a01dfff76bfb7eeb776fdeeffb77bfb5fffe5b68af2b63be000ca 000904020001001fffffffffffffffffffffddfd ffffb5fffbf67dff7f7aff773f7f6fd7bfdb6fbf6dd7fbffbbfffff5ef7feeef3ffdfddb b60dffec1b06fdb76efffdffffffffffffdfffffffffffffffffbffff5ffffffffffffc0 0000007bfbfeeb76fbfe017aaaffedfd7bfddfdfffef7fefdfdf76ffff7729543f200b00 080000180000001fffffffffffffffffffffeeed b6ddfcdbbfbeef7fff7fffff9bdfff9ff7ffcdf7fff6efb7faeedddd7bef7afefffdfddb b6fdfdedfb7efdb76efffffffffffffffffdffffffffffffdf7ffffffbffffffffffffc0 0000007edef7dedbafaa01f77bf5ffefdf77fbfef7bbdbf6fdfddfefedefa52a1b601280 000000120000001ffffffffffffffffffffffd7d ffff7dfffdeefffbb66f6fdbbff6fdceffffe77fdf73fdfdebfbfffdfffbfe7b7ffdfddb b6edfdeddb76edb76effffbff7ffffffffffffffffdf7ffffffffffff5ffffffffffffc0 00000057f7deb5f6f57e01bddf5edf7dffef7ed7ddfffebfdfebfd7ffffdf9059ca04d40 0000001c0000005fffffffffffffffffffffeef5 efe005eef000dbb8013bf800befe005bee002ffb8017bfc00bbfe004eef002defffdfddb b31dfe1e3b8f1cb8eefffff7fffffffffffffffffffffffffffffffffbffffffffffffc0 000000feddffdb5bafd400ef7af77bef75fbd7feffef77fdf6ff6fffffffe48118609400 018000160002001fffffffffffffffffffffdd05 fb6ff57fd7fefffbff7efdffb7beefdfbf6defdfb7d7f7dff9efadedfff7feff3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000000b5ff6ebd76fafc00fbaddbff7bdf5dfbb7ed7dffef6faffbafff7ff5000f205400 0010973c2000201fffffffffffffffffffffeefd bfcbbdddf77e6eeaf77fdd7b3ff67ddffb7f66febdf37f5edbfdef7dddd75afaffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 000000ffaffdf7ad575400def77d6deefdef7efebfdf6f7ffffadffbffdefd6801000019 000fffee9000101ffffffffffffffffffffffdb5 ffffeffffbf7ffffbeeff7dfdbffdf6dfedfffffff7ffff7f77ff7fb7ffdfedf7fbfffff ffffffffffffffffffffffffffffffffffffdffffffffffffffffffff5ffffffffffffc0 000000dffbbebaeffbf400f6daeeffbbedffefbbbbeffdf6b6effdffdfdbead808800008 0006dbda2100201fffffffffffffffffffffeeff fffefb7fdfddffffffbffdf7fffdfffffffbddef6fef7bddffffbddfffeffffebfffffff fffffffffffffffffffffffffffffdfffffffefffffffffffffffffffbffffffffffffc0 000000b77f6f6d5a975801afffdbb5efbf7b77effefedfbffbbad77ffffedde017e7983f 8002fefe1ea0011fffffffffffffffffffffdddd dc17ffdb06ffb705dbfbc3ff7fa1fbbdd0befff87bfbfc3fbdb61ff7dd0bdbef7ffeffff fffdfffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000000ebddffb9517ae8007d6d6eefbafb6fdf7d5bbbbbf6dfefffdffffffdf5ffa72e1f 860815f6175e60bffffffffffffffffffffff6ff fcbf6ffe7fbfff2ffefe9fbdebcf6fefe7eff773ff7ee9ffeffcff7efe7f7f7effffffff ffffffffffffffffbffffffffffdffffffffffdfffffffffffffefbffbffffffffffffc0 0000007f7ffb68000000006e55dbfef75fdefbdffdefff7dfefeadffffffdbffffe6bffb cf4000be1ff5d15fffffffffffffffffffffdd77 fdfbfefefff6df7fbfefbfefffdffefbebfbbfd6efdffb76fbfdbbdfbe7ff7df3fffffff fffffffffffffffffffffffffeffffffffffffffdfffffffffdffffff5ffffffffffffc0 00000080eeded800000000740000de04a17b6f76f77df7d777dbffefaeeffdffff87ffef f7cf00b61dbf717ffffffffffffffffffffffeff b1fbbbb8dcfff67cf7bf1b7bbf9b9ffecfdffde7edf7f3f7ffb9fbfbecdcfdf6ffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 000000c0dfffb0000000007e00007a002f6bf6fedf7fbdffdfdffdeffffdbdffffa7fefe fd9d00fe1bffe07fffffffffffffffffffffeddb f9bbfffcfdddfcde7dff7e7fedafbddfdedf6fedeffdb6f5def37b7ffdfddfff7fffffff f7ffeffdfffbfffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000000a0fbfb68000000007c0001f6000000000000b6af5b7eeabfbb7000017f77c5b7bb ffcf805a1f6b715fffffffffffffffffffffdeff fbfaeefdbdffbe7edfdb7f5dff3fb7f7d79bfbefe77fe7b7f7fbdbef7dfdffbeffffefff fffffefffffeffbfffffffffffffffffffffffffffffbffffffffffffbffffffffffffc0 000000a07dbee80002200055b76fde0000000000007c000000007be0000000ffffa7ffff 5bfb007e0dfff1ffffffffffffffffffffffedbf fb7bffdded6ffeeefffe6f7fbfbdbffedfcfff676ff7f3f77fb9f9fbdd6cddef3ffffbff ffffffffbfffbffff7fffffdffffffbfffffffffffdfefefbffffffff5ffffffffffffc0 000000d0dff7b8000000007d54d5b60000000000005c00000000ffe0000002ffffe6dddb ffbf805e1fdad17ffffffffffffffffffffffeed bbfbfdfdfdfedefeff3f7f7fbbbfbfdf9fdfefefeff6f7f7f9fbfbfdfdfdfefeffffff55 bd5b7fefeabff5edbd5b6daf5b6dadeb6db6dbb6daf5fd7df5b5bffffbffffffffffffc0 000000b6f6feb00012400058ab57fe0000000000007c00000000ffe0000007efffc7ff7e eded803b15bfb0ffffffffffffffffffffffedfd fff779bffffcfffffb6fffffafdf7757fffecdfffef7fff7fbfffffd7bfffebf7fffffff efffd6befff7ff7ffffffffffffffffffffffeffffff7ff7bfffdffff5ffffffffffffc0 0000005dfeedb000000000ed56ab7e0000000000006c00000001def0000006fffba7b7f5 addf802e1b77f1bfffffffffffffffffffffdefd fddfdcfb7dfe77f6df7fdb6dbff7fddfedffef7bb7d77dbddbbbb6dddf7bf6f6bfffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffdffffbffffffffffffc0 000000eb5bff68100aa0007ca957ea0000000000007c00000001f7f080000fffbfe7fdbf fefe801b0fee81fffffffffffffffffffffff5fd dffbfdbfef6efdbff776ffffbdffbfddffdbe7dffff3fffffafffff5ffdfbcff7bffff7f ffffffffffffffffffffffffffffffffffffffffffffffffffff9ffff5ffffffffffffc0 000000bfffddb0000d6001d402ab7e200000000000f400000001fff400000ff7ff65dffd bbeb801e1eabe0bfffffffffffffffffffffdeb5 f77efdfffffedffffd3ff7df2fbdef97ff7f6ffefb76f7eeebff7ffcfffdfedeffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffbffffbffffffffffffc0 000000dbbb75d0149bc801b4012bf6100000880032dc4012528b7f7820000fffffc7f7bb efbf80171bb721dffffffffffffffffffffffdfd f80005f80002fe00017f0000bf80005f80002de00017b0000bb00005d80002f77fffffbf ffffffffffffffffffffffffffffffffffffffffffffffffffffdfbff5ffffffffffffc0 000000af6efab000552806acaaabde100001b40024ec2a4d5415ebf000000bffffa77eee fefd80050efdc07fffffffffffffffffffffee05 bbffecddbbba76db7f5b7efbbbbffddddbffef6fbff7f6fff9fbedbdfcffde7effffffff fffffffffffffffffffffffffffffffffdffffffffffffffffff9ffffbffffffffffffc0 000000fbdbdef0242b900349554bb6200001200035ac28aab511dff400000ffbff87ffff bbb7a0070fd6d1bfffffffffffffffffffffdded ebb77dfdfffefcffef7e6fbf9eb7bfcfdfb6cfcbedd5f7dddb7b7ff57db6fafb3fffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffbffff5ffffffffffffc0 0000009dbf7b90514e4c070c2956fa1000515400aaec5b9beedffdb800000eff77e7dbee efde80051b75a07ffffffffffffffffffffff679 fdfff7bb6eefdf6efefffbeeffbdf77f6dfffbffff7f6dffffdbeeffefffbfdeffffffbf ffffffffffe0fff770f7ddff7e0fe7f9ffbffff7ffffffffffffdffffbffffffffffffc0 000000efdafd702459940004ca53be1000017402a9541fffbaf7ffe200000fffffa6febb fefb84070eeda1dfffffffffffffffffffffddff ffddbdeffffdffffbbdbbffff7ff7ffbffbbbef77ff7ffbbbbfeffddfbefeeff7fffffff ffffffffffef7fff6f7ff7ff7ef7fffbffffffff7ffffffedb7fdffff5ffffffffffffc0 0000005cbdeed428960400089497d4288801580136c876fcddff6fd02fffffbf9fe7dffe abd700050fbdde7ffffffffffffffffffffffedf b6ffffffeddf7bfbffffef7bbdefeddfbfffefbfdbfdf7fefeffbbffbf7dffbafeffff7f ffffffffffef71e62ff1d5a61ef6ad318ebfffffdffffffbff7f9ffffbffffffffffffc0 000002dbd6bda3ffba800021248b7eb55400b2bee9955ffffef7f7e0ffff77ff9fc5ddaf ff7d83f70d6b1effffffffffffffffffffffedfb ffbbf7bd7ff7dedef76efbdfff7bfffdf6eefffdfedfbeefefb7ffbbefff7bef3fffffff ffffffffffef6edb73eecd9b7ef66cdb767fffffffffdffffeffbffff5ffffffffffffc0 000000b67dfab1d552800004aa0bba355401555255b17edbdfdfffc1fff7fffe9fe7f76d ab7782ad1bb6deffffffffffffffffffffffde7f efbebdefddbfffefdffff7f6effbb76f7dfbfdee7ff7ff7efffeb77efd97dffeffffffbf ffffffffffe0eedf7cefddbb7e0eeddb76fffffffffffffdff7fdffffbffffffffffffc0 0000006b5aadd56dfb00000094d7f7e672000aa54849fffff7ffbac1fbffddff9da77ffe feef80ff06d8163fffffffffffffffffffffedf7 fd6fbfff3fdb7b9bedddcf77fbd6fbfff3bd6f7df4fedabb5def7dafffbfd77b7fffffff ffffffffffefeee77f6fddbb7efeeddb06f7fffffbfffffffe7fdffff5ffffffffffffc0 00000213a80307b76a4200012893daea8000048120912ddf7eeedfa176bb7fb7ffedddf7 6bbe83a509b05e1ffffffffffffffffffffffe3d bf2317bb838fdec947ff60e3bef270fbd838fff41c3ffe4e3f7d071f6e818fdeffffffff fdffffffffefeefb6f6fddbb7efeeddb7efdfffffffffffffeff9ffffbffffffffffffc0 00000000400040ad550010044b16b628108000000844b76bdffffdd170018afbefd3773b 9b93807f002a801fffffffffffffffffffffed1f ec801dfe600fffa00777d401ffc801def504ddda827bb90137dea09bff504dff3fffffbe fffffffbefefeedb6f6edd9b7efeeddb76ffbfffff7ffffe057fbffff5ffffffffffffc0 00000100000000120100002000214080a00000800031395f76cb6fc0000001d47880a82d 55487aaa003b1dffffffffffffffffffffffde8f fe689fef104b779a23ffa41377f309ffe900f7f4846fee603ff6201ef6980f7affffffff ffffffffffeff1e730f1dda73efeedd98efffffffffffffcf57fdfbffbffffffffffffc0 000002000000010446810010112aa84808000800001495bddfdffd41280405f474a2f43b d6c0f56d40368d5ffffffffffffffffffffffd1b bcf0377ef41fff3c0edd9d07df4e03bbb741ff7bc0fef9c06efde83fbf741fef7fffff7f fffffdffffffffffffffffbfffffffffffffffffffffffffffff9ffff5ffffffffffffc0 00000000000000000000000482048201422000820001314b6da55fe8400007087408a94f 44000802000891bfffffffffffffffffffffee3f eea07ff7503ddba81fffd60ffdea87fff582dfda81dffd50ffbeb077fb502dfeffbfffff ffffffffffffffffffffffbfffffffffffffffffffffffffffffbffffbffffffffffffc0 000002000000000000000000080020040000482020204a2f9bd6ad0514a80000504d522d a84915000003001fffffffffffffffffffffdd7f fe28ddbd186fff8a3f77c41effe30b777107fdf0a3fddc61bbec20bdde147fbb3fffffbf ffffffffffffffffffffffbfffffffffffffffffffffffffffffdffff5ffffffffffffc0 0000000000000000000800000040010028128088084a5140aaaaada92145aa81b922a550 450200000204001fffffffffffffffffffffeedb f970fffcb07f765c1bfd2d17db960fdfcb47f7edc377f2c1fffb68fffdb07ffeffffffff fff7ffffffffffffffffffffffffffffffffffffffefffffffffdffffbffffffffffffc0 000000000000000000000008000080010200004000148055520a9e524a9eeb7db148488a 1028aaaab4aa905ffffffffffffffffffffffdff 6a00bbed083bfe803fdf481dfea10ffed005bfa801ffb421777a20f775085b777fffffff fffffffffefffffffffffffffbffffffffffffffffffefffffff9ffff5ffffffffffffc0 00000000000000002000000000000000004902041011028a4a552c94945bbdadd5499554 a44024255514809fffffffffffffffffffffee7b f8e1ff7c60efb6387ef7143fdf8c1b7bc70feee3876ef183fde8c1bffc60ffdebfffffbf ffffffffffefffffffffffffffffffffffffffffffffffffffffbffffbffffffffffffc0 0000000000000000000000200000000480001010000d2012dad55d5524a442a2104a5111 1555554a2922101fffffffffffffffffffffdddf fa03f7fe81fdfe80f7ff406efba03fded01efff00ffbf407dff803fddd01fbfb7ff7ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffdffff5ffffffffffffc0 000000000000000000400000000000002010400000008084b52b5ea555155a55d1a15eea a9b542a14000005ffffffffffffffffffffffef7 d402dee801ffdc00ddde207fbf103bff8817bdc40fffa206f7b502eff8815efcffffff60 00100000049000000010000004000010888800000020100112495ffffbffffffffffffc0 0000000000000000000000000000800800040108000a0a2104116c95ad7fffff594b2085 555aa9140000001fffffffffffffffffffffedfd fac3ffbd69b7f7a0fffb547befa91f77d51fef6a0b6ff547fdfa93bdbd69ffdf7fffffcd b6d5deeeeaaddddddfd77777756ef7d6aab5dbbfffadd77d54aa5ffff5ffffffffffffc0 00000000000000000000000000000000001000200000001169a41f20d24ac94000880000 008d4a444000001fffffffffffffffffffffde7f ba63bbfd11ff7e9877bf4c5ffba637fdd31dffe98ffef4c3bfda63ffed11fbf6bfffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000020000000000000100000000000108000040000040225248bea594bbbeaa84180000 012e91428000001fffffffffffffffffffffedef ec33fefe39ddfd1cfdef86777fc33ddfe19fbdf1cf77b867eefc33fbfe39df7f7fffffff ffffffffffffffffffffffffffffffffffffffffbfffffffffffffbff5ffffffffffffc0 0000000000000000201000004200200002000000000410015ebb2d6a612d4100000800a0 0000aa045000001ffffffffffffffffffffffefb ff00ecb780fe6fc05f3de03f8ef01fc7b807e7dc03f3fe02f9f700dc7b80f67affffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000000000000000401400000000000002000200000000069cacf54b842004004000120 000802a90000001fffffffffffffffffffffedbc fb81fefdc0777be077bf703ddfb81eeefc0dd6f607daf703bdbf81fedec07f5f3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000000000000000029a2001000000008000220040008000056549c5da52000000c100000 000000125000401fffffffffffffffffffffdefe dfa058dfa03c3fa81c37f40f1bfa078fed03c7fd00e3bec0f1fda068ffa01c7effffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000080000000000ffacc0a05400000000000810001000005aa52fb77b540000040000d0 000000249741281fffffffffffffffffffffed68 f69003f75801eeea007de4007eea003df4801bbac00ffd2006eea003f75801fb7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000000000000000775100905400400000000108000800005f12ad6de6b2000004000120 000000a9a480941ffffffffffffffffffffffe03 fd383efe941fff0c0fdf2707efd383ef69c1fff4e0fdea706ffd383dbe9a1edebffbffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000400000000001dede2328e0d18000000ab6be000040050e55fbb5dd4a0000c2000f0 0000020a2ddd601fffffffffffffffffffffed3f f43c17fa1e0b7d0f07fe87837f03c17fa1e0ddd0b06fe8783b743c1ffa1e07fd7fe00000 0000000000000000000000000000000000000000000000000000003ff5ffffffffffffc0 00000000000000005255efeff15264500020e220100480003fbabe6d76bfe2000c585526 00000000922aa01fffffffffffffffffffffde1b e02c3fb01e1fd80f0ffc0587de02c3ff00e1ff80f0fbc0587fe01c37f0165f78ffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000040000000000555519fdfc00014a02408544080000006acacdd314eb5f4008010100 c00000002b54541fffffffffffffffffffffed3f 703d3df81e97fe0f4d6f07c5f743e3dbc1e9b7c0f4bef07a5ff03d3db81e1fdd3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000080000000000abaaee568e223ed801210152080000029b352e3cad5efab956120000 c00000000000101ffffffffffffffffffffffe37 fd382f7d1c1eee4e8fff2727ff938affa5c1fdf4e8fff2707b7cb83ffc9c9dfeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000200000000014a554ebd5c487cd00a400555000000005b68acadd6f6db52ac050020 c00000000000041fffffffffffffffffffffed3d dfe9ffdff0fffff83fbbfc1fbffe0ff7ff277f7f83dbbfcbffdfe4f77ff26f7f77ffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000004000000000555554d42b553b7ffa4aacaaa0aa80000252dde9b2895b6adfa928000 40000000b001001fffffffffffffffffffffdeff fbfffbf7fffbbbfffdfffffdf6ffffbeffffeff7fffffffff7f7ffffeffffff6ffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 000000000000020052aac2dfae8cbeffff7512aaaa4800000ad65fb2f55ae8ab4afca8a0 100000000080001ffffffffffffffffffffffdef ff7fbefeffdfffbfefeedfff7feffdefb7fffbdffff76df6deff7feeff7ffddf7ffdfdff ffffffffffffffffffffffffffffffffffffffffffffffffffffffbff5ffffffffffffc0 00000a0000000000ad55415268a522dfdaeef55554b000255129ac416b95ab567fa7fa40 300000000000001fffffffffffffffffffffeefb b7f5efbfeef6ededff7ffbb7ef7bf7fbff6dbefb7dbfff7fffbbdb7fbbdb6ffafffcf9ff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 000000000000000052aa80acad2abca96abf6baab524012d5d5abe8006a516d4c4584ad0 4bd000000000001fffffffffffffffffffffddbf fddffffbbfffffffbbedfffdfbfebf7efdffffffefeeffefbbfffffbffffff7f3ffcf9c7 9e78f2e3ffffffffffffffffffffffffffffff7ffffffffffffffffff5ffffffffffffc0 0000000000000402955541dab5296d55dd7e6a55d94802556dacad0006d567b55a92e5a9 52a400000000001fffffffffffffffffffffeeef ffffbdeffbbdbbbffeffb77fbfdfefdfafdf776efbfbdbfdefef7ddef77ddbeefffd75bb 6db76cddfffffffeffffffffffffffffffffffdfffffffffffff7ffffbffffffffffffc0 00000a0000000000aa954135554ab6b755aaabddffb7fd6fd569ffd56c9b594356ad5fef aca900000000041ffffffffffffffffffffffdfb b7bdef7b7feffffb6fbbfdefeef7fdf7fbfbdfffbf7ffedfff7bef7fdfeffefb7ffd75bb 7dff6eddfffffffffffffffffffffffffffffff7fffffffffffffffff5ffffffffffffc0 0000000000000010a4a5414855555aedbb55aafbb77dfff55fd6bdcbfffd6a3deefd6969 53555aaa0000005fffffffffffffffffffffeeff fffffffffffeedfffffefffefffffffdfffffeffffddbffffdfffffbfbffffbefffdad83 9e786ec1fffffffffffffffffffbfffffffffffffffffffffffffffffbffffffffffffc0 000000000000000400008176aeaad556d6ff76afbdc2bfbffdffefbe9b5bdfeffb9adfd6 adad75542000141fffffffffffffffffffffddff dfeffddfedffffbffdeffffffbfeffbfff7ff7bffffffffeefdfffff7ffef7ef3ffdadbf efb76edffffffefffffffffffffffffffffefffefffffffffffffffff5ffffffffffffc0 000000000000000000000056d2ddb7696b52dffd77197feff7fefd9ffea6d69936ef52aa d56acd000000021fffffffffffffffffffffee6d fefeefffffbbbff7df7fefdddfffedefffedbfededf77ff7fbfedfb7df6fbdfefffdddbb 6db76cddffffffffdfffffffffffffffffffffffbffefffffffffffffbffffffffffffc0 00000000000000000000005b5db567bb6d7e9b57f76a5ffb6f5ff7d7ed57dfaeedebad6e adabaa000000001ffffffffffffffffffffffdff ffbfff7dbfffeffef7df7efff7b77ffeedfffdff7f7fedbfbf7ffdfdfffbff7f7ffdddc7 9e78b2e3ffbefffff7ffffffffff7fffffffffffff7ffffffffffffff5ffffffffffffc0 0000080000000000000000d5536bbad6b5abeafdb7febf9fd1709e9ffffd2aaddd5e7b55 fa6e6ac0000c001fffffffffffffffffffffeedf bbfbb9dff6ecfedfff77fbf6bdffdf5bffbfcfffffd5fffdfbfbf7fd7dfffeeebbffffff fffffeffdfffffffffbefbfff7fffffffdfffffffffffffffffffffffbffffffffffffc0 0000000000000000000002b55d5d5affbff6fea7feefedf6ffdffbbffffffff77ff4d5ad 57d55b56a820801fffffffffffffffffffffddf5 fc000dfe0006bf00037f8001bfc000dfa0006bf00037780009bc000dde0006ff7fffffff ffffeeffffffffffffffff7fffffefffffffffffffffdffffdfffffff5ffffffffffffc0 0000000000000000000140edf553b7dbedbffffeffffff7f6ff7ffefbfb6b0bed55ffed1 6e5babb9200400bfffffffffffffffffffffee0d f9fffd7cfffeee7dfb7f3f7faf97f7cfcff6eec7b7f7f1dffbf97eddfcbdb6eeffffffff fffff1ffffffffffffffffeffffffbfefffffffffffff7ffffffefbffbffffffffffffc0 0000000000000000000141bf7fffffffffffdbffdefedff7fb7fb57beb5bded5ad63afb7 d7f6eca5ad401f7ffffffffffffffffffffffdfd dbb6ddecdddefeefde5b37dbbdbefddbcdbfefedfef5f7fb7b7beffdfdeffe7f7fffffff ffffffffffffffffffffffffffffff7ffffffffffffffdfffffffffff5ffffffffffffc0 00000000000000000000415bdf6ffffffdb6ff6df7abfdbdbfdfff6ffbdff7b5efab7b7a f7fd75b55a84067fffffffffffffffffffffeedd fafffdfdfff6be7f7f7f7dff3f9fbfdfdffde7ef7fb767bffbd9fbbcd9fbdedeffffffff ffffffffffffffffffffffffffffffffffffffffffffffefffbffffffbffffffffffffc0 00000000000000000002c2bdfbfeffff6ffffbff7dfffffff6fdabdf7575fd6b3adf6dd7 ded796dff553bfffffffffffffffffffffffddfd 7bfff9bdfffef6ffff6f7fffb7bfffdddfffeeeffff7f7fffbfbfffdfdfffef73ffffffc 00002200400000012441129000025540800002490008aa2804a0113ff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffaf9 f7effcfbfbfefff7ff7bffff9fffffcfffdf6feff7f3fdffeafffff57efffafefffffffd bdefaadeb7ffdddd555d55577efaa4af6fdded5577d35555b52dd57ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7d fefeddbedfbcdf7ddb3f6fdbbdeddb5fb6f7cdfbbef77fdb7bbedefddfbdbedf7ffffffe ef7afffbfeaaf7f7fff7ffffd7affffafd7f7bfffefefffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdedd bfbbfdfffdee7fdfff7ffeffbf7fffddffffef7fffd7f7ffdbf7f7ddffefeef6fffffffe ffdfeedfb7ffbf7edbbddb6dfffedfbfefdbffb6dbbfdbb6dbeb7fbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdf5 fffffddfbffef7ff7777fbfeb7df77cfeffde7fddbf6ff77fafffffcfbfffa7f3efffffc fddfffffffffffffffffffffffffffffffffffffffffffffffcfedfff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd f00005fc0002fc00013e0000bf80005bc0002fe00017b0000bb80005bc0002fefffffffd ef9bffffffffffffffffffffffffffffffffffffffffffffffddff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd05 b9eed975f77edef7ff7f3fb7afbbfedededfedafffb3f3fef3f9beedfd7efedb7ffffffd 7fdfffffffffffffffffffffffffffffffffffffffffffffffefeffff5fffffffffff9ff e7fffe7fee79fffffb9e7f9eefffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd fb7ffdfd7ff4febeed776dff3ebfb7dfdbfdafebbdf6f6efb9ebf7fdeddbeefefffffffe dfb7ffffffffffffffffffffffffffffffffffffffffffffffeff8bffbfffffffffffbff 673ffe7ff333fffcfcccffbe07ffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdb5 fff7efeff7ff77ffffdffffff7b7ffb7df7ff77fffdfbfffff7f7ffb7ffffdbf3feffffe d7dfffffffffffffffffffffffffffffffffffffffffffffffcbebfff5fffffffffe0007 001ffe7fdb26e00076c9b802cfff3fffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffdfffffffffffffffffffeeff dffdfb7fbfbfff77fef7ffeefffdfffdfffffff77ff7ffbfefffdddfdf7ffff6fffdfffc e59fffffffffffffffffffffffffffffffffffffffffffffffdfd7fffbfffffffffeffff 3f3ffe7f80007f9fe0101feecfff70071fffffffff1fffff0408ffffffffffffffffc1c3 ff8fffffffffffffcfffffffffffffffffffddfd f9bf7ffcffeddf5f77ff9bfbefdffb7febf6ddf7fdfde9fdffb9fff7faefb77f7fff7ffd fd5bffffffffffffffffffffffffffffffffffffffffffffffee1fbff5fffffffffefbff 483ffe7d9ffeff9fefffbee69ffe78e39fffefffff9fffff8f38ffffefffffffffffe3cf ffcfffffffffffffe7fffffffffffffffffff6ef f8ffdedcddfffe7fffbe3f7fbb8fdff7ceffffe5ef7ff3ffbdf8ff7f7cfdffdefffffffe ff5e11002021000491112440000400000440004922002249224dfefffbfffffffffef9ff 3fbf0100fff5ffdfeffd7e4ebffcf8f39fffefffff9fffff8f3fffffefffffffffffe39f ffcfffffffffffffe7ffffffffffffffffffddbf bbfff5fdff7eb6ffdd776fdfbfbbfedd9fefe76fffd77777ebfbbffdfdbf7eff3ffffffe bbd8d57ecfad77f95556555dddd9f7bdf55bbeaaacffacaaaaadfffff5fffffffffefbff 003ffe7fe903ff9ffa00ff3bbffcf8f39fffcfffff9fffffafbfffffcfffffffffffeb3f ffcffffffffffffff3fffffffffffffffffffef5 fbb40dbd7e02feed037f7f81afbf409fd7e02fe77033f3f81bbbf809ddfe04f6fffffffc eeffffd7fafffeafffffffff77ffbdef5ffef7ffffaaffffffffb5bffbfffffffffefbff 3fe7fc7fffcfff9ffff3f800dffdfcf383e083c1ff83087f8f38e041838311e0223fe27f 03c8447808100881f3ffffffffffffffffffed0d fbf9fdededfefebeff5f7b7dbd9f9fd7ddddedefe7f7f6f7f9fbfbdcfcddeebf7fffffff ffdf6efdbfedb7fedeeddbb7fdb7ef7ff6efbdb6dbffdbb6ddddfffff5fffffffffefb7f 4007fd3fff3fff9fffcffffecffdf8cb89ce4f9cffc99dff8038f21ccfbb9dcc73bfe17f 33e8677319999999f3ffffffffffffffffffdefd dafbbdf9fd6eb6fe777b5f6fbfb7b7dddf9fefedeef777b37b79bafdbdfdfefeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffffef3bf 3ff7fdbfff7effdfffefbde6effdf90fddce4f9cff9c8dff883cf39cef9b9dccf3bff03f b3c9e7733d999bd9fbfffffffffffffffffff5dd fbfbed7dbdfefceefe7f7f7bb7bfbddfd7dbeb6fefb5f7f7fbdbfbfdedf9bef73fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fffffffffee79f 0443f9df80107f9fe0081c0aeffdf8ff9dce6f9cff9c69ffcfbefbdccf839dcef3bfe31f 93c7e773bc5c4bc5fbffffffffffffffffffdefd fbbbf9fdedde7e7edf6f3b3f9fbbbfcfdddf6fe76bf775f6dbfbdbddfcdcecdeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffffcef9e 6677f9cfff3fff9fffcffde6effdf8ff9dcf4ddcff9e4bff8f3cf39ecdb9dde0fbbfe39f 33c3f7783d9e53d9fbffffffffffffffffffedb9 d9fb7ddcfcf6defef73f7f6fbdbfafdedfd7cfefeff7f777fafaf37d7dfdfe7f7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fffffffffcefce e677f3c7ff3fff9fffcffce68ffdfcff9dee4d9cffdc63ff8f3cf39ccdb99dd3f3bfeb8f 32e1e774f99447997bfffffffffffffffffffefd fff9fcfffdfefffe7f7bff7dbfbfbddbbfddeb7fef73eff3fbbffbdddffdfeeefff0003c 0044924920492212449249221248248124924924922249249244003ffbfffffffff9ee2e 7677eff1ff3fff9f7fcffce7cffdf8ff9dc4498aff9cf7ff8f3cf388e9b998c9f31fe3cf b4c8e63279c6679a73ffffffffffffffffffed7d ffebddbffdbeefdaff7eef7f37ef3fdfff9fefddcdf77ff6dbf7f9fdfdfcdeff3fe7bbfd ff5aaaaaaeaaace55aaaaaaad553d55d55555555555555555559f77ff5fffffffffb08ee 01078ff0fc3fc0403f2ffc16fffdf07fdde0f3e1ff98e7ff244869e1e783e640788fc1a3 08ccf1901856e78473ffffffffffffffffffdedd db7bfdfbb5ee7efeb76ffe6f9ffb9bcfedcfe7ffe7f7fbd7f9fdfb7d7f6dfefaffedff7e dffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffbfef ffcf7ffdff7fffffff9ffde6fffcf17f007fffffffa3efff0c0a7fffffffffde7fffd183 ff927ff79ffffffff3ffffffffffffffffffedfd fff37deff9fef7fcff3fb63fb6ff3fdb7f9deef7cfd6fee7fbbfd3d9f7f9badf7ff76ffe ffffffffffffffffffffffffffffffffffffffffffffffffffffffbff5ffffffffffffff fffffffffffffffffffffffffffcffffffffffffffff2fffffffffffffffffdf7fffffff fffffff7dffffffff7fffffffffffffffffffef5 efa3d97ef37cff69ee7dfcf73fbe6e9fdf3f4fbe9ee7dfcdb3eee7f9dff3fc7ebff7edfc fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff fffffffffffffffffffffffffffe7fffffffffffffff0fffffffffffffffffcf7fffffff fffffff3dffffffff7ffffffffffffffffffed79 fa0ff3df05f56f837cf7c1ff7fe0ffbff077dbf83bedf40fe6fe0efafe05dddb7fe7f77f ffffffffffffffffffffffffffffffffffffffffffffffffffffff7ff5ffffffffffffff ffffffffffffffffffffffffffff7fffffffffffffff5fffffffffffffffffd07fffffff fffffff41fffffffcfffffffffffffffffffdedb b5555555555555555555555555555555557ffeffbfef7fffffbfffeff7fff7fefff767fc fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffff3fffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffdfffffffffffffffffffedfb eaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabf6fbfff7ffffffbefefffbfeffeff7ff7fb7e ffffffffffffffffffffffffffffffffffffffffffffffffffffffbff5ffffffffffffff ffffffffffffffffffffffffffffbfffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffdffffffffffffffffffffeff f7ffffffffffffffffffffffffffffefff77fffbffddfdbedffb7f7dff7fffb6bfe6fbfd fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff effffffbfffffffffffffffdddfbfdfdf7bdddffbbffbffbfefffbefdffdb7ff7feffdfe ffffffffffffffffffffffffffffffffffffffffffffffffffffff7ff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde6d b7fbffffbf7ffbffff7fbddfffbedfff7d7fefedfef3f7dfebffdffcfdeffcfefff7f9bc fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd ef00077fefef7eeeeffbffffffffff0007a066f05036f8381bbc1c0dbe0e066f7fe64afd ffffffffffffffffffffffffffffffffffffffffffffffffffffffbff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe0d f67f77fffffe7f9fffcfffffffffff77774eefe7e7b7f2f2f9f1f8ddfc78fefebfecaafe fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeddd cf7fe7efffffff9fffcfeffeeffffb777797efedeff777b7bb79bbfdedfcdeef7ff7fffe fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd f738f3fc3446619870ccfeeffdffff77775deb6fe6f3f7f3fbfbf3ed7dddfe7efff7f77c ffffffffffffffffffffffffffffffffffffffffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeded ef7077f993324c932449ffffffdbbf07779fefefeff7e7f7fbfbfbf9fdfdfef77fe6befd fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffefd b76036f993124f9327837ffffffffe7f757fcdef7ff77bffeadffefddbffeebebfeffcfe ffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd ef6037e803324b9227c3dffdffffff3b37aeeffbded3ffb77bf6dffcff7b7aff7ff7fefe fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeb9 f76037f9f3304e9327c9fbbfefffff7f777feefff7f6fdfff9fffbddffdffef6ffe7fdbc ffffffffffffffffffffffffffffffffffffffffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff5fd ab7077f993324c93264cffffff7eef0077bba7dffff7ff7ddb7ffefddfffdebf7ffbfefd ffffffffffffffffffffffffffdfffffffffffffffffffffffdffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeed f678f7fc3332619870ce7fefffefff7ff7402fe00017b0000bf00005780002febfe7fcfe f7fffffffffffffffffffffffff7ffffffffffffffffffffefffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed05 ef3ff7bbfdffffffdffffffbbfffff7fe7bfeeedbed5f7effbfadff5fcedfa777ff7fefc fdffffbeffffff7dfffffffffffefbfffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffefd b76fb3ff7f7fff77fbbbfffffbffff77f56dafaffbf7d5fb69dbfbbdddffbedefff5fefd ffefbffffbefbfffbff7dfffbffffeffffffffffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedb5 ef0007fffffbbfffffffddfffffbbb0007bffbf6ffefff7fff7f7efdffbfeffb7ff7fcfe fffffffffffffffffbffffbfffffffefbeffffffffffffeffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeff f7ffffffdfffeffdffffffffffffffffff7fdeffeefb77fffffbffbf7bfbfdfeffe7fefe ffffffffffffffffffffffffffffffffffdf7df7df7df7ffffffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff9fd afffffdffffffffffffdff7fbf7ffffeffadffeffffffffb6defffefdeff7f6f3ff7febd fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeedf f7fdfdf7ffdffeff77bffffbf7ffff7fff7fe77bfbb6dddffb7f7bfdffffdefaffedfefe fffffffffffffffffffffffffffffffffffffffffffffffffff7ffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd7d eaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabd6fffdee7ffff7bfbdebd7bbbdeff7ff7fcfc fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe9d b55555555555555555555555555555555545edddc6f377e13bdff1adeff8ce6effe7fdfd ffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedbd fde7bdfee3defff80001dcf7bfec5bd7b73defff9cf7fecf7afde7b9fef3defb3ff7fd7e fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdead ef6b9ddff6d6b60000000577bb7ef9ddff3ce7773ef7efcf5befefbcdfb6defefff5fefe ffffffffffffffffffffffffffffffffffffffffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedb9 ffefbcfdf7dcf00000000073affe7bdf777dedffaef37bdf737dcdbdfbe7cedf7ff7fefe fffffffffffffffffffffffffffffffffffffffffffffffdfffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffebd bbffbdf7bfde8004a4900006bf6ffbcffffdefeffef7feff7bdfff3dbfffda7affe7fcbc ffffffffffffffffffffffffffffffffffffffffffffffffdfffff7ffbff83c200c631ff fe0ff83ffffffffffffffffffffffc7fffff0ff8c7fffff1fffffff87fffffffe0f1ffff c3fffffffffffffffff007c01007ffffffffedbd feef75bffbfc044000012001bbfffedbef77af7bfdb6dfbbfbfefffdeefffeff3ff7fdfd ffffefffffffffffffffffeffffffffffffffffffffffffffffffffff5ffc7ef3e6639ff fcc7f31fffffffffffffffdfffff7e7ffffe4ffce7fffff1fffffff27ffff7ffce79ffff 93fffffffffdfffffff8e38f19f3ffffffffdefd effbfdef7ed00108892409001efbb7df7bfdebffbff7f7ff7af7f7f5ffbb7eeeffedfefe ffffffbefffffffffffff7ffffffffffffffffffffffffffffffffbffbffe7df3f67f9ff fcc7f31fffffffffffffffdfffff7e7ffffe7ffce7fffffffffffff3fffff7ffcef9ffff 9ffffffffffdfffffffaf3bfddfbffffffffedb5 fbbfd8fdefc01042200080101fdfff9fffbfcfddf7e3ffefe3bfbed9bbffdc7b7ff7fefe fff7fffffbefbffffefbfffdfffffffffffffffffffff7fffffffffff5ffe7df3b67f9ff fec7fb1fffffffffffffff9ffffe7e7ffffe7ffce7fffffffffffff3ffffe7ffcff9ffff 9ffffffffff9fffffff8fb1f99dbfffffffffef9 bffef3bfff0240000488224203fede36efef1eff7d8fbb7de7edfff2fef7f1feffe7fcfc ffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffbffe3df3be6383f ffcfff3ff062380e03c1c00707fc1e0f07fc1c1ce706011180f01fe0c1c041ff8079c1ff 060e040038107073fffcf33fd9dfffffffffedf3 fee807fbb4100488800208100177803fbec01bf7e01efff00dff6807efbc03ef3ff7fdbd ffffffffffffffffffffffffffffffdffffbefbefbefffffffdffffff5fff3bf03e6389f ff0ffc3ff773bce7399ce49f77fe7e2667fc19cce6733331cee63fe09ce767ff807999ff 04e726733999f773fff8c3bffa5fffffffffde07 f7fffdeff80490201120810120ffffeffbffffbffff7eeffff7ffffbffffff7affedfefe f7fffffffffffbfeffffffffbffffff7ffffffffffffffffffffffbffbfff1bf03e739cf ffc7ff1ff373bce3389ce79f37fe7e7673fe79cce6733379cee67ff39ce767ffce799cff 9ce73e773d99f37ffff92f3ff81ffffffffff5bd df7ddf7f6098020484082044082ff7fefffbfdeefffdffff77edfdbedddf7dff7ff7fefe fffffffffffffeffffffffffefffffff7ffffffffffffffffffffffff5fff13f3be739c7 ffe7ff9ff073bce3389ce79f07fe7e7603fe79cce6738179cee67ff39ce767ffce7980ff 9ce73e773c19f07ffff8ff3ff9dfffffffffdeff fbfff7fb8022204000820400800fbdfbefbeefffedbfddedfdff7ffffffbdfdeffe7fcfc ffffffffffffffffffffffffffbefffffbffffffffffffffffffff7ffbfff97f3be739c7 fce7f39ff633bce3389ce79b63fe6e767ffe79cce6738879cee07ff39ce766ffce799fff 9ce73e773999b63ffff8ff3fdddfffffffffed77 ffef7ddf05e08404902040482205ff9fbfefebbbffe77fffbbdffbed76fffefb3ff7fefd ffffffffffffffffffffffffffffbffffffffffffffffffffffffffff5fff87f3fe739c7 fce7f39ff733bce7399ce79b73fe6e767bfe79cce67388f9cee9fff39ce766ffce799eff 9ce73e773991b73ffffaff5f99fffffffffffefd 6efbbcf623880090040809020083ebd7f7fdefffb6f3dbdf7b7bdf3dfffed6befff5fefe ffffffffffffffffffffffffffffffffffffffffffffffffdfffffbffbfffcff3fe739cf fdc7371ff7331cc73188e79373fe4e7633fe788ce623ccf9cee0fff388e764ffce798cff 9c473e7739813733fff8ff8fb9ff9fffffffed9d fff19dfc0e0224027ff0802088211bdeff8cef77c4f7ffe17bfff1bdef68deef7ff7fcbe fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fffcfe0fe6198f fc0f303ff0788c0f03c1c3c707ff1e778ffe7c1ce707dcf080203ff3c1c011ffce79e3ff 9e0e1c0018447073fff07fc7b27f9fffffffdebd dde7bdb09d20811fffffe208220079dfde3dedff9ef6f6cf5aeee7ad7bf39efaffe7fdfe fffffffffffffffffffffffffffffffffffffffffffffdffffffff7ffbfffcfe0fc21a1f ff1ffc7ffffffcff3ffffffffffffc01fffc3ff843fffff0ffef3fe1ffffffff8430ffff 0ffffffffffffffffff27ff0707fdfffffffedbd ff6fbde0380811fff7dffc8200103bcdf76dcfddbe77bfdf7bbfebb9fff7d67f3ff7fefc ffffffffffffffffffffffffffffffffffffffffffffff7ffffffffff5ffffffffffffff fffffffffffffcff3fffffffffffffffffffffffffffffffffefbfffffffffffffffffff ffffffffffffffffffffffffffffdffffffffe99 f7ed9cc274820fffc147ff8088801bdf7f79e6ff9ef7efd77bedefbcef75dedeffedfcfd fff7dffffffffffffffdfffffffffffffffffffffffdffffffefffbffbffffffffffffff fffffffffffff87e1fffffffffffffffffffffffffffffffffe73fffffffffffffffffff ffffffffffffffffffffffffffff9fffffffedbd bfdfbd81e020bfffe0b7fff002240b5fdffdefb7fed5fdbf73ffdfbdfbffdefb7ff7fefe fbffff7dffffffffdfff7ffffffffffffffffffffffffffffffffffff5ffffffffffffff fffffffffffff87e1fffffffffffffffffffffffffffffffffe03fffffffffffffffffff ffffffffffffffffffffffffffffbfffffffdebd fdfff50b9200ffff9c3ffffc200107dbf77feffffff77fff7b7df77dbeeffefeffe7febe fffffffffbfffffffdffffffffffffffffffffffffffffffffffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff5fd eff6fc07408bffff910fffff089001deffddadfb6df7f7fbdbefffddfffeda6f3ff7fefc fffffffffeffffbffffffffffffffffffffffffffdfffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeb5 fbbfb82e100fffff300fffff8004418fbdffcfdfffa3dedff2fbbdf8dbdffcfaffedfcfd fffffffffffffffffffffffffffffffffefbefbeffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf9 befff09d013fffffcec7ffffe100103feff79b7effcefffee7bfeff3fefbf9ff7ff7fdfe fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffef3 fff00038447fffffdaeffffff451003dff401ff7c01fedd00beef807ffbc036effe7fd7e fffffffffffffffffffffffffffffffffffffffffffffff7dfffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed07 f7bff27810ffffffdeeffffff804446f7bfdf7bffef77fffbfffff6db7ffb7fb3ff7fefe ffffffffffdffffffffff7fffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde6d bdffa0e103fffffffdffff7fff00103fdffffdedf7bfdeffef7bbffffddffefeffedfefc fffffffffff7ffffffffffffffffffffffffffffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff fffd41c027ff9ffffbfffedfff11021bf7ebbffffdfbf7fafbdffd6edffd9fdf7ff7fcfd fffffffffffdffffffffffffefffbffdfffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3bf9c7fe5f 3fe3efcf77fffffffffffffffffffffffffffe5f f7ef13920ffe2ffffdfffcbfffc0400eff79ef7fbcfeffde7ffeef7ffeffbdfaffe7fdbe fffffffffffffffffffffefffbfffdffffffffffffffffffffffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001f9cffe40 1ba6e7df03ffffffffffffffffffffffffffed7b deff03405ffe57fff5fffc2fffc40487bffbfbdbedefbdfeef77fb5df7bbafbf3ff7fefe ffffffffffffffffffffffefff7ffffffffffffffffffffffbeffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbaf1cffd4f 3c904c0167ffffffffffffffffffffffffffde7f ffe007123ffe17fff5fffc4fffe11007f7037fff81bfefc0fdffe077bff03beeffedfefc ffffffffffffffffffffffffffffffffffffffffffbfffffffffffbffa0f003803fff040 803803fff001fffffe003fffffffff00e00fffc01c1c3ffe00200e1f83ff80047beffcef be9ebff777ffffffffe3ff83e01fffffffffed37 edee1e007fff0ffffdffff1ffff04081ff6fdf77bffdfbdbbfeeeefffdf6fefb7ff7fcfd fbefbfffffffdffffffffffffffffffffffffffffffbfffffffffffff5c78f3cf9fff8f3 cf1cf9fff71dfffffee3bffffffffc78f3e7ffe38e3cfffee3b3e71f8fffff3bf4003dc8 3f81bf7b4ffffffffffbffe78f1ffffffffffefd ffa64c44ffff8ffff3ffff1ffffc04236e7dfbfdb6ef7f9ff77befbb6fb7bffeffe7fefe ffffefbfffffffdfffffffffffffffffffffffffffffdfffffffff7ffbe7af9efdfffafb ef9efdfff75dfffffeebbffffffffcfcfbf7ffebceb9fffeebbbf79fafffe923e787f9cf 3f3edfa75ffffffffffbfff7df9fffffffffedff bbfc1901fffffffff5fffffffffd1001ffdfffdf7fffddeeffff6fffffefefdf3ff7fefe fffffffffffffffffbffffffffffffffffffffff7ffffffffffffffff5c78fccedfff8f3 cf1cedfff71dfffffee3bffffffff9fef3b7ffe3ee33fffee3b3b74f0fffff3bc74bf1c0 ba88cf0ddffffffffffbffe71fdfffffffffdedf fef8384bfffffffffffffffffffe0490bbffe6fffff3fffffadffffcf6fffcfaffedfcbc fffffffffffffffbffffffffffffffffbfffffffffffffffffffffbffbc7cf8ceffff8f3 cf5cefffff9e044783f3e1080f07f9fef3bffff3ce2fffffebf3bf4f4fffe009df0bfdef 399eec106ffff0380fcbffe73fdfffffffffedfd eff8a003fffffffffffffffffffe4000ffff6ff7ddf6f7ffdbfbfbfdbffbfebf7ff7fdfd ffffffffffffffffff7ffffffffffffffdf7df7ffffffffffffffffff41f8f8d2ffff903 d03d2fffff1f26773be3f3bce667f9fff4bfffe70e47ffffe3f4bf67cfffffbef749fdcf 3bf3ffff67fff33cef23ffe7bffffffffffffef5 fbf06117fffffffff1ffffffffff11246fdbebbfffb7bdddf3beff6dfdfefeeeffe7fefe fffffffffffffffffffffffffffffffffffffffffffffdffffffff7ffb87afac0ffff84b ce1c0fffff3f7f7739e7f5bee373fdfff03fffe07f03ffffe3f03f666fff900277ddfdc8 bff3eef377fffb3cee73fff73fffffffffffed7d bf71540ffffe3fff047fffffffff84007effeefdf7f7fffff9efeffdefbfb6fb3ff7fcfe fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5e78f8ceffffcf3 cf9cefffff1f3e7785e3f93cf213f9f473bfffe3fe39ffffebf3bf62cfffe223f64c7dff d804168377fff83cee7bffe73f0fffffffffdedd ffe0805ffffebffc041fffffffffc0881ffdafefbdd5f7f77bfbfdf57feffe7effedfefc fffffffffffffffffffffffffffffeffffffffffffffffbfffffffbffbe78f8eeffff8f3 efdeefffff9f3e773fe3f9fce27ff9fcfbbfffebfe31ffffe3fbbf78cfffe7fbf5023d00 2fa3fe7377fff33cee7bffe7bfdfffffffffedf5 ede2211ffffe5ff00407ffffffffd00237002f7f8017bec00b7ee005ddf002df7ff7fefd fffffff7ffffffffffffffffffbffffffffffffffffffffffffffffff5f7afbcfffff8fb cf9cffffff1fbf773debfc7ee77bfafef3ffffe3feb8fffff3f3ff71cffff003f9ee7fef ff123e7bc7fff32cee7bfe671f9ffffffffffe05 ffc1043fffff6fe00403ffffffffe1201d5febdbbff7efdffbdfaf7df7f3fefaffe7fcbe ffffffffffffffffffefffffffefffffffffffffffffffffffeffffffbc78f3cffcffaf3 cf1cffcfff5f3e7399e3fcfcd633fc7cf3ff3fe3fe3ef9ffe3f3ff7bcf3fe7fbf7cffdf6 7ef3877377cff30cee7bfe57cf9e7fffffffedfd b752203fffffa7c40411ffffffffe4091f7baffeb766fb9b6bf7efecfdb76aff3ff7fdfe fffffffffffffffffffffffffffdfffffffffffffffffffbffffffbff40708393fcff040 88593fcffc061f11e780fefc0f8ffe38e4ff3fc9fc1839ff84e2fe9b233fe44bf7cffdc7 1cfbae037fcff0880231fecfc71e7fffffffdef5 ff80897fffffd38084a8fffffe7ff0800f7ffdfffffbfffffeffedffbfffff6effedfefc ffffffffffffffffffffffffffffffffffffffffffffffffeffffffffb3f41f83feff452 c2783feffc17ffffff92fdfdffffff82e0ffbfc1fd583dffa0e8fe1b03bfe7fbf7effd3f dff3fef37fefffffff88ff1ff05fffffffffedbf ff88007f9fffeb902410fffff8bff0210ff76fff6efefff7dbffffbbffedbfff7ff7fefd ffffffffffff7ffffffdffffffffffffffffffffffffffffffffff7ff5ffffffffefffff ffffffefffffffffffffe5fcffffffffffffbffffffffdffffffffffffbfffffffffffff ffffffffffeffffffffffffffffffffffffffefd be0244fe2fffe50404cc7ffff95ffa0800bdfee87fdfbc3effbc1bffff0fedbeffe7fcfe ffffffffffffffffffffbf7fffffffffffffffefbffffffffffffffffbffffffffcfffff ffffffcfffffffffffffe1f87fffffffffff3ffffffff9ffffffffffff3fffffffffffff ffffffffffcfffffffffffffffffffffffffedef f40000fe57fff60004887ffff85ff88083fff7f3ddfff16fbffcbf6eda7fffef3ff7fefe ffffffffffffffffffffffffffffffffffffffffffffffffffffffbff5ffffffffdfffff ffffffdfffffffffffffebfa7fffffffffff7ffffffffbffffffffffff7fffffffffffff ffffffffffdfffffffffffffffffffffffffdebf fd4849fe17fffa0004203ffffc3ffc1207f7bdf7ff6dfbfbeb7dfffffebb77feffedfebc ffffdfffbf7fffffffffffeffffffffffffffffff7fffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff5fb f90201ff0ffffd0304103ffffe3ffd0046ddff66e7ff72f7fff1f9bb7cfdfdbf7ff7fefd fbfffffffffff7f7ffffffffffffffdfffffffffffdffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeff ba204bff8ffffc8204001ffffffffe24039fefe7edfff7f77f7b5bffddfddff6ffe7fcfe ff7ffffffffffffffffffffffffffffffdf7dfffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedb7 fa0403fffffffe4664001ffffffffe0123d77bedefbbe773dbfbfbeffd6cff7f3ff7fdfc fffffbffffffffffffffffffffffdffefffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffefd da4093fffffffe6f24001ffffffffe9003dffeef6feef3f7ffb9fb7b79fdefdefff5fd7d fffffefffffffffffffffffffffffffffffffffffffffffffffbff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7f fa0407fffffffe2624009fffffffff0443dfefefeff7f7f7f9fbf3fdddfdfef77ff7fefe fffffffffffffffefffffffffffffffffffffffffffffffffdfffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd fc1127fffffffe13ba001fffffffff4101fdebffedf7ffeffb7ffffdfffffafeffe7fefe fffffffffffffffffffffffdfffffffffffffffffffbffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd dc4007fffffffe0ba2001fffffffff10116faf77ff75bf7edbdedf7cff6dbebf3feffcfc fffffffffffffffffffffffffffffffffffffffffffefffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeb5 fc0217fffffffe0dfa003fffffffff0441ffeffdbfd7fbfbfbf7fbedddffeeeeffebfefd ffffffffffffffffffffffffffffffffffffffffffffbffbfffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd fc908fffffffff04fa021fffffffff8001fb6ddff7f6ffdff9fdfffdfff7faff7ff7fefe fffffffffffffffffffffffffffffffffffffffffffffdffffffffbff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd d8000fffffffff027a803fffffffffa4900027e00017b0000b780005bc0002befff5fcbe ffffffdfffbffffffffffffffffffffffffff7fffffffffffffffffffbe18ffffffffc7f 803fffffffffffffffffffffffe3fffffffff8ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed05 f8492ffffffffe0d7aa03fffffffff8000bfeeeffef3f5ff6bfbddb9f57efefb3ff7fdfe fffffffbffffffffdfffffffffbfffffffffffffffffffffffffff7ff5f78ffdfffffe7f cf9ffffdfffffffffffffffeffe3fffffffffeffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeb5 b8000fddffffff0cba813fffffffff9110f7afab6fd7d76dfbdb7ffd7defbaeeffe7fefc ffffffffbff7efffffffffffdffffffffffffffffffffffffffffffffbeffffdfffffe7f efdffffdfffffffffffffffefffffffffffffeffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd f9248faafffffe8ada13ffffffffff8040fdf7fffbfeffffdefbf6efddfbff7f7ff7fcfd ff7fffffffffffffffff7ffffff7fffffffffeffffffffffffffffbff5effff9ffffff7f cedffff9fffffffffffffffcfffffffffffffeffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdebb d8000f777fffff874a1bbffffffbefa408dffdeeff77edfbf7bfbffbffbef7faffedfefe ffffffffffffffffff7ffffffffdf7ffffffffbffffffffffffbfffffbef8c0062381e7f cef070107fc188e0301f07003fe307f88e03f2f0607e038183c04083060fffffffffffff fffffffffffffffffffffffffffffffffffff5ff f8445ef7bfffffb92aeabffffff5d7c100f7bf7fefff7fdf7ff7efbf77ffbddf3ff7febe ffffffffffffffffffffeffffffffdfdf7dfffff7ffffffffffffffff5dfae4df3b99e7f d2e739ddffddcef399ce7390ffe377fcef3bc8e6727f39c93998e43376efffffffffffff ffffffffffffffffffffffffffffffffffffdef7 f9011effbfffffe012e5bfffffeebbc8107eefdbbedbf777ddfefdefff77fffeffe7fefc ffffffffffffffffffffffffffffffffffffffffffffffffefffffbffaffcef9fbbf9e7f c0f73dd9ffcdcef389c6739cfff337fcef3b9ce733ff38cf3999e739366fffffffffffff ffffffffffffffffffffffffffffffffffffedbd d8101effbffffe4f4aef7fffffef7bc244fbfbfefdfeff7eff6fbf7eeddfb7bb7ff7fcfd fffffffffffffefffffffffffffffffffffffffffffffffffbfffffff49fce79f3bc5e7f cee7b9d9ffc1cef389c6739cfff307fcef3b9ee033ff38cf3999e701060fffffffffffff fffffffffffffffffffffffffffffffffffffe7f f8445effbffffd6b8ccfdfffffeffbc000ddfef9f6ffdcff77fe77bbff3edefeffedfdfe fffffffffffffffffffffeffffffffffffffffffffffffffffffff7ffabfee7db3b99f7f dee739d9bfd8cef389c6739cdff363fcef3b9ee7f3ff38cf3981e73f62c7ffffffffffff ffffffffffffffffffffffffffffffffffffedaf f9001effbfffffdde48bcfffffdffdd11038dfec1c37f60a3fbb071fdf838ff73ff7fd7e ffffffffffffffffffffffffffffffffffffffffffffffeffffffffff53fcf79bbb9967f cfe73bddbfdccef399ce739cdff373fcef3b9ee7b3ff39cf39a7e73d72e7ffffffffffff ffffffffffffffffffffffffffffffffffffde1b d8091dffdffffebcda26f7ffffdffdc00000f7bb027f7d821dfea00ef6600ddeffe7fefc ffefffffffffffffffffffffffffffffffffffffffffffffffffffbffa7fce79339da67f cfea39d93fdccc73198e239c9ff373fcc73b9ee333ff31cf1183e71972e67fffffffffff fffffffffffffffffffffffffffffffffffffd9f fa201bddeffffef038a7fbffffddddc924847df8c07bdc603fed209fff184f7f7ff7fefd ffffffffffffffdffffffffffffffffffffffffffffffffffffffffff47fa43d7888467f 93f0f0267fc1e230381f070e3fe107fe22008c78e1ff03878380c3c7060e7fffffffffff ffffffffffffffffffffffffffffffffffffee1f b8825bddeffffcf51b93fbffffddddc00001ff7380eff9c0777ce83ddf7017fafff7fcfe ffffffffffffffffffffffffffffffffffffffffffffeffffffffffffb7f87fffffffd3f 83fffffffffffff3f9ffffffffe1ffffffffe23fffff3fffffbcffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd3b e8081bffeffffcfcb793fbffffdffdd24043effaa17f7d50fffeb06f7b543def3fe5fdbe fffffffffffffffbffffffefffffffffffffffffffffffffffffffbff5ffffffffffffff fffffffffffffff3f9ffffffffffffffffffffffffff3fffffbeffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee6f f8411dffeffffdfd3632fbffffdffdc004877bd8c3fbec61b6ee20fffe187f7effeffefc fffefffffff7ffff7fffffffffffffffffffffffdffffffffffbfffffbffffffffffffff ffffffffffffffe1f0fffffffffffffffffffffffffe1fffff9cffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfb fa101dffdffffdfd4169e7ffffeffbd12003fee583def2c1ffb968bdedb06ffb7ff7fefd ffffffffbfffffffdfffffffffffffffffdfffffffffffffffffff7ff5ffffffffffffff ffffffffffffffe1f0fffffffffffffffffffffffffe1fffff80ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff d8024effbffffdfd4d744ffffff7f7840887dfe842ffb421effa00ef7d087bdeffe7fcfe ffffffffeffffffffdffffffffffffffffffffdffbfffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdddf f9200f3e7ffffdfcaab97ffffffbef80000ef76307f7f1837ef8e1fff460bef73fedfefc ffffdffffffffffffffffffdffffff7fffffffffffbfffffffffffbff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee7d e8048fc1fffffd754aa5bffffffd5f91401fffe80fbdf407fbda03bbbd01fffefff692fe ffffff7fffffffffffffffffffffffefbffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdef 70200ffffffffe79555abffffffe3fc0141bbdc40dff6205dff103fff881f7dd7ff6aabe ffffffffffffffffffbffffffffffffffffbfffffffffffffbfffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff f9092fffffffff852aa01fffffffff84011fefea8f6ff5a7f77ac2eedd51befaffe7fffe dffffffffffffffffffffffffffffffffffeffffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddbb f8000ffffffffffd94484fffffffff910116ff6987fdf4477fda63fffd31efbf7fedbffd fffffffffffffffffff7ffffdffefffffffffffffffffdfffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff dc9087fffffffffd09028fffffffff00019fbbf0cdffb8e7ddfc33ddee29fbf6bff7f47e fffffffffffdffffffff7ffffdfffffffffffffffff7fff7ffffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdf7 fc0427fffffffffe005527ffffffff22100fe6fc0763ee01f9f7017c7b807e7f7ff7fbfc fffffffffffffffffffffffffffffffffffffffffffdfffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeedc bc4007fffffffffca5aaa7ffffffff080006f7ee07fafb03edbd81eefec0df3affe6fdfd fffffffffffffffffffffffffffffffffffffffffffffffffffbffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffd9fe ee1247fffffffffc255557ffffffff822203c7bd81e3fe8071ffa078dfd0347f7ff7fb7e fffffffffbfffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe68 fe0013fffffffffacd54a3fffffffe2001401dfa400fdd6006eea003f74801eefff7f3fe fbffffffffffffffffffffffffffffffffffeffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed03 fc4903fffffffff8a2aa8bfffffffe081181ef74e076fa707ffd383efe9c1efb3fe76ffc ffffffffffffffffffffefffffffffffffffffffffffffffffffffbff5ff9fcc02673ffc fe7ffffe7fffffe07f81ffffffffff8ffffffffffffc7fffffffffff87ffffffffffffff 8fff8ffff87ffffff1ff1fffffffffffffffde3f e40043fffffffff94d54b3ffffffff0201e07fd0f07fe8581b743c17fa1e0fbcfff7f77d fffffffffffffffffffffffffffffffffffffdfffffffffffffffffffbff9f8cfe673ffc fc7ffffe7fffffe23f88ffffffffffcfffffffffffff7fffffffffff27ffffbfffffffff efffcffff27ffffffdff1ffffffffffffffffd1b f00409fffffffff08ad349fffffffc4041e1f780b0ddc0797fe01c3fb00e17f97fedcffe ffffffffffffffffffffffffffffffffbfffff7ffffffffffbffff7ff5ff8f9cfe7f3ffc 7cffffffffffffe73f9cffffffffffcfffffffffffff7fffffffffff3fffffbfffffffff efffcffff3fffffffdffffffffffffffffffee3f b42081ffcbfffff2955451fffffffc1001e9bfc0f4ffe0787ff03d3df81e9dfcfff7db7e ff7fdf7ffffffffffffffffffffffffffffffffffffffffdfffffffffbffcf1cfe7f3ffe 78fffffffffffffe3ff8ffffffffffcfffffffffffff7fffffffffff3fffff3fffffffff efffcffff3fffffffdffffffffffffffffffdd37 f90810ff97fffff282a955fffe3ff80011d1fdf4f0f77a7275bcb82f7e5d1fdf3fe7dffe ffffffdfffff7fffffffffffff7fffffffffffffffffffffffffffbff5ffc71cfe6703fe 38e0c30670703ffc3ff0ff810380ffc1f07fc47060f97fe060ff81fe0c1c060ff800783f 2e23ce0fe0e0c0ffe5c018420c083fffffffee3d ff8084ffa5fffff926aaa9fffcdff9408f07ef7f87bfffc9ffffe4ffdff07f7efff6ff7c f7eafbfadaabeb6db6db6d5b6bd55555dadb7feab6db556fdeb55bfffbffc73c066701fe 39c0c32662311ff87fe1ff3133ceffc4e67fe7774ce47fe66eff99fe09ce773ffce6739c 8f3bcccfe0ce64ff91e41cecce4bbffffffffdff 6f92207f82ffffe3055413fffe2ff0000fff7fefffeddbffdf77fffbfbfffbf77fefdbff ddbfdeffffff7fffffffffffffffffffffffedbffffffffd77ffff7ff5ffe63c066731ff 31cc4f3e67331ff83fe0ff3bb3ceffce673fe7734e4e7ff666ffd9ff39ce773ffcee7399 cf3bcce7f3ce67ff39e79c6ce679bfffffffeeef fb80027fd3ffffe422b583fffc2ff2200fffddfbfdfffefefbdf7fdeff7ffefeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffe67cfe6739ff 33c04f0667331fff3ffcff3f83ceffce203fe770404f7ff060ffc1ff39ce773ffcee7399 ef3bcc07f3ce67ff3de79e4c06783fffffffddfb bfd1103fe3ffffe804a83ffffe9fe8009dddffbf6f7dbfb7bffbedffefef6fdb7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fff27cfe6739ff 93cfcf8267331fff3ffcff3f33ceffce27ffe7760fcf7fe66c7f99ff39ce7737fcee7399 ef3bccfff3ce67ff3de79e5cfe7b1ffffffffebf eec4013fffffffd38003bfffff1fe0801fff7befffeff7ffeefeff7bbdfbfbfebfffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfff27cfe6739ff 93cfcfe267331fef3fbcff3d32ceffce27bfe7770f4f7fe64e7f997f39ce7737fcee7399 ef3bccf7f3ce67ff3de79f1cf67b9fffffffedef ffe1241fffffffdfbf7ebfffffffc2023777defdddff7dddffdfdfdfffbeffbf7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fff0fcfe6731ff 87c04f0260331fe23f88ff1930ceffce633fe637064f7fe60e7f987f388e7727fcee7119 ef31cc67f3c467ff3de79f3c667b9fffffffdefb fb60009fffffffdfbf7fbfffffffd0003fffffbfffbbdfffbdf7fbfedbffeefaffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfff0fcfe6703ff 87e04f0670731fe07981ffc708803fcc78fff11071c63fe100ff847f3c1c018ff8003838 c788cf1ff3e0c3ff18c30f3f1c383ffffffff5ff dff4480fffffffffbf7ebfffffff84047ffff7ffffffffffef7ffff7ffffffef7fffffff fffffffffffffdf7fffffffffffffffffffffffffffffffffffffffff5fff8fcfe6707ff c7fffffe7ffffff8f9e3ffffffffffd0fffffffffff11ffffffffffe1ffffffffffffffe 23ff87ffe1ffffffc47f0fffffffffffffffdeef fff00127ffffffbfffffffffffff01007dddbdf777eeffeffffefffdfef7fb7ebfffffff fffffffffffffffdfffffffbfffffffffffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd fff89003ffffff7ffffffffffffe1000efffffffff7fbb7dfbdfddbf5fbdbfdf7fffffff ffffffdfffffffffbefffffeffffffffbffffffffbfffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffebf bdba0243ffffff7fffffffbffffe4004ff77777ddbfbffffdeffffefffffeffeffffffff fffffff7ffffffffffbefbffbffffffffefffffffefffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf7 fffc1009ffffdeffffffff6ffffd0811fbffefefffd7feeefbfdbbfdffeffcf77fffffff ffffffffffffffffffffffffffffffffffffffffffbffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd f4008440ffffaefffffffe5ffff80003a0006df0003768001bdc00056c0006bec0000000 100001280000044a4944842540000000410000000aa00010000000004bffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff50d b9ee01047fff37fffefffe17fff22003cfddcfe77ef3f3ffdaf9fefdfcfb7eff55555555 5555555555555555555555555555555555555555555555555555555555ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde6d fb7f10103fff47fffefffe27ffe08027ceffeeebf7f7f5ddf3bbefbcfdbfeef6aaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfd fbfb44411fff0bfffd7fff0fffc80005dfbbe7efdfb7777ffbf37ffdddfdfebeffff7f7f ffbfbfffdfdfffefeffff7f7fffbfbfffdfcefffffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd b3ff80040fff8bfffd7fff8fff82008fdfffedeffff5f7fff9fbfffdfdfffcfeffff7f7f ffbfbfffdfdfffefeffff7f7fffbfbfffdfd77ff7fefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddf9 fdbfd12047ffc7fffbbfffffff20001ffffeefddfbf7ffeefb7ffdedbddfbeb7ffff7fff ffbfffffdfffffe6fffff6fffffbfffffdfee555bfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeebd ffefe40903ffffff8383fffffe090116edefaeff7ee7b7ffbbfb6f79eff7eefeffff5fff ffaffdbfd7ffeeeff6ddf7eefffafffffd7f77fffbefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfd fffb708010ffffffbffbfffff880085fff7fefefdff5fdbbebbffffcfefdfeffddef77dd b7bb6ff6ddfb7fadffffd5ffb77bbb6db5fef5b6bedfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeef5 defff024407fffffcfe7fffff020005fdffdebfbf7b7fffffbfffbfdffbf7a6fff7d7eff febfffffdfdffbefdff7777bffebfffffddf67ffffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffff7ffffff ffffffffffffffffffffffffffffffffffffddbd f8000200123ffffff7dfffffe200044dc0002ee0001770000af00005dc0002fe00017f00 00bf800057c0002ee00017f00009f80004fcf6aabfdfffffffffffffffffffc7ffffffff fc7fffffffffffffc3c00c1e107f071fffffee003fc183ffffffc7027001fc1833ffffff ffffffffc3ffc7f1fffffffff8fffffffffff605 bbdf7c89000fffffecdfffff888021dfdbefcfeffff3d7ef7bbadf6cfdfffebabfff6f7b ff9bb6df5edfffe7edbff5f7fdfb6bfefdf567ffefeffffffffffffffffffff7ffffffff fc7fffffffffffff93e3ce3f79fe739fffffcee3bff1cffffffff78e771dff1cf9ffffff fffeffff93f7e7f1fffffffffcffffffffffddfd e9fbdc004243ffffdb5ffffe000003db5f7ee7af76d7f37bf3fbf7fdb5dbb6feeded3d5f 6dbf3ffbdfcd6dafa7fb67576fbbfad7b5bcf5b6bbdffffffffffffffffffff7ffffffff ffffffffffffffff9fe3e73ef9fe779fffff9ee3bff99ffffffff78e371dff99f9ffffff fffeffff9ff7e7fffffffffffcffffffffffeed9 ff7ff7240810ffffd35ffff8910047bff7fffdedfffeffffdeeffffffefffdf7fffffff7 fff7ddfeedfffffdff7ffffdfff7fffffdff67ffffcffffffffffffffffffff7ffffffff ffffffffffffffff9fe3e33ef9fe7f9fffff9ee3bff83ffffffff78c371dff83fcffffff fffcffff9fe7e7fffffffffffcfffffffffffdff ffdfff8081043fffcfbfffe004020feffeffbffffff7bf7ffffdbdedffffffbfbffff77f ffbffffffff7ffeffffffbffbffedb7fff6ef6aabfdfffffffffffffe0701f97f01c0c01 0c70402304083f8307e3e31ef9fc039e083fbfe3801c7ff0301f978d3f1801c7fcf3f01c 0e003fc107c1e0f183f0181e0487ffffffffeef7 bdffffc810410fffffffff8240001efdafdbeff77fbff3fefb7dff7fde6f7ffd776dbf9f f6fbd7dfdeedff7ef5ffdf73fddffdffeffb67ffffefffffffffffffe679de47f9ce4993 bc666666664bbf3907e3e39df9fc039ccbbfbfe3c7dc7ff339de478c1f1c7dc7fcf3f9cc cf24ff9c07e7e271bbf9c99cc487ffffffffdd7f f8fb6de0841041fffffffc4800113fffcbfffee3edfdf2efdff97fdf7cfff6de7fffff3b bfbf9df6f7cfdbdfc776fff2fff6f9bb7bfcf5b6bddffffffffffffff679dce7f9c679c1 be67266e7279bf399fe3e38df9fe739ce1bfbfe3c7de3ffb39dce78b9f1c7de3fefff9c6 cf3cff9c9fe7e7799bf9c59cec9fffffffffeedd fbbffdf20100001fffffc00120007b97dff76befffd7f7fbfbdbdff9ddfddefedfff377f ffb7bfffdfdfffebe7ffb5f7f77bbbfffdbd67ffefcffffffffffffff079dcf7f9c67809 3e60302e02783f399fe3e389f9fe739c003fbfe3c6dd1ff839dcf78b9f1c6dd1fefff9c6 0f3cff9c9fe7e77983f9c41cfc3ffffffffffdfd dbfc0d7c902224007ff009100009c0dddde06eeef03777f80afbf80dfcde06eefe017f6e 81bdaf405d96e06fefd02777781bfafc0dfcf6aabfdfffffffffffffe679dcf7f9c679f9 7e67f10e7e7b1f399fe3e3cbf9fe739cfb1fbfe3c6f91ff339dcf781071c6f91fefff9c4 cf3cdf9c9fe6e779b1f9c19cfc3c1fffffffee0d f9f9edfc040881200000400200439fdfcfdfefe7ebf3f577fbfafbfd7dfdfe7eb6ef6f7f 5bbf3fbfcfdfceeeedeff7f3f7fafbd9dd6d67ffffefffffffffffffe659dcf7f9ce79ec 7e67b11e7a7b9f399fe3e7c3f9fe739cf39fbfe3c0fb8ff329dcf78f3f1c0fb8fefff9cc cb3cdf9c9fe6e779b9f9c994f41fffffffffddfd bbdb79dd40801009208a11200107bdd7ded6e7edef77b7f37adbfaddedbd76f6febf7b5f 7fafbbb7dfdbdfe7efedf5f6f5dbb3fbfdfcf5b6bdcfffffffffffffe619dcf7f98e78cc fe63399e327b9f119fe3cfe7f9fe739c639fbfe3c0f7cff309dcf78f3f1c0f7cfcf3f98c c33c9f889fe4e779b9f98984648fffffffffee6d fb7bfcfd8822048004200408080fafded7dfef6fcff5e7f7fbf3bbfdfdedfefcfeff7f77 773f9fbddddfddede76f77b7b7fbfb7bb9fd66ffefdfffffffffffffe1100463f81c3e3c fc38fb9f8c383f839fc00fe7f07e739f183fbf80c6c381f0800463007c046c381cf3f81c 221e3fc19ff1e77083f818471ccffffffffffdfd fbfbfdbde208401220024080023bbb9fdf9eedefe6f7f5b6dbf9fbb9b9f9debe6edb5e7f 3fbbb79fd7cecf6f6fe7f7f7e779f9f9fd6cf7aabfefffffffffffffffffff11f9ffffff fc3fffffffffffff0fc03fe7f07c210fffff9f80c6c381ffffff11007c046c381cfbf9ff ffffffff0fffc010fff9fffff807ffffffffeedd dafadded788211008240100020bfbfdbdfd7efe6efb7f7f7f37b79fcfd7cf6fefefe7f5f 6f9fbfb7dfdfdfefedede6f3f3dbbbbb7df975ffffdffffffffffffffffffffff9ffffff ffffffffffffffffffffffffffffffffffff9fffc7dffffffffffffffffc7dfffdf3f9ff fffffffffffffffffff9ffffffffffffffffddfd f7f3fdfbfc0080480809040101ff9fcfdfdf66ffeff37ff3f9fffb7dfffdfceffabf77ff 7bbfffbd9effddebffeff3fff7fbfffbdcfee7b6bdcffffffffffffffffffffff0ffffff ffffffffffffffffffffffffffffffffffffcfffc7dffffffffffffffffc7dfff9f7f0ff fffffffffffffffffff0ffffffffffffffffee79 fffbbd7ffd1004022040000047fdbddefddbefffe6f7f7f77bbfebdddffdbe7ffeef3ffd 7fbb7ebfd7bbcf6edfaf77bff6fb7febfdbf76ffffdffffffffffffffffffffff0ffffff ffffffffffffffffffffffffffffffffffffefff801ffffffffffffffff801fff3f7f0ff fffffffffffffffffff0fffffffffffffffffddd bfb9fdffddc21120091200241fdfb7dfff5fef6f6ff6fed7fbfbfbfd7dedfededeff7eef 5f9ff7afdfff5feff7ebf7edb7f3edfb7dfce7aaafefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffe7ff801ffffffffffffffff801fff7ffffff ffffffffffffffffffffffffffffffffffffeefd edf375b6f9f04008800001003ef73fdbb79debfbcbd7dfe6fbdfb2fdef797ef7f4bf77fe 7bb7df3bddef9be7fecff6ffe37affb3ddef75fffbcfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffff7ffffff ffffffffffffffffffffffffffffffffffffddfd ff67f9ffb3fc02022200482137fc6e8fff2f4eff9ee3fbc7d2fde7e9fff3ecfdf9fa5fb8 ff3efc7e8f7b3ecdbf9da7bfcff3dfe5f17ee76dbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeed9 fe0fdaef05bd88200849000f7f607fbdb07fdfd83fefbc1df7be0779bb05fdbf02eefdc1 6e7fe0dfbff06fdfe82febf81fd7fc0ffbdb77ff7fefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdf3 b7f7fffffffff0888200107fdbfffffffeffb7ffdfbefffffbeffffffffffbeffffeefff ffdb7ffffdffffdfffffffdfeffb6feffdfee555fdcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff fffdfbb7eff7ff00002407fefffffb5bffefff7efff7dfbfdffffff7eeefbefffffffbff ffffdfff6f7f7ffb7f7f6eff7effffffbf7f77ffbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddfd ffbfdffefffedffc0001ffffbfefdffef7fdedf7fdfffdfef77edfbf7fffffbfb7bbbfbb fb6ff6fbfff7fdbffbfbffffffeeff7defeee76d7fefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffadf bdfffeffbedfffffffffffb7f5fdffffbf7f7fffef6efffffdfffdfdffdef7f7fffffffe dffbffefbbfdefedffffbb7dfb7fbfdffbfb75ffb7cfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf7 ff7b75dff7faeedfff7feffdbfbf7b57fbefebfb7ff3fbb77bddefeddef7befdeeee77ef f7bfff7fdfbffbefef6ff7efdfdbfdf77d7ee756fddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde7d fc1c0dfe0e067f07033781819fc1c0dfe0e06f707037b8381bfc1c0dfe0e02bf07033e83 809f81c0d7e0606ef07017f83819dc1c0dff77ffbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd0d d9d9fd78f8fefe7e7f7f3f3fb78f9fddcfcdefe7c7f7f3f3db79f8f9bcfcfefe7e7f7f3f 3fbb9b96ddcfcee7e3e5f372f3fbf9f9fddce5b57fcfffffffffffffffffffffc7ffffff ffffffffff8ffffe3ffc7fffffffffc7fffffffffffffffffffe3f1ff87ffff8307f0c18 63fffc7fffffffffffff1fffffffffffffffeefd f3fbddddbd6eeef6db773f77bfbbadcfcedfcdcfedb6f777f3dadbbdedddbeeeb6f77776 7fbfbfbfdfdbdfedeeeff7f7e7bb7bbb6cfd6effbfdfffffffffffffffffffffc7ffffff ffffffffffcfffffbffc7fffffffffc7fffffffffffffffffffc3e1ff27ffffe39ff8f3e e3ffff7fffffffffffff1dfbffffffffffffdded faf37dfdfdfebebcff3f773dbdbfbfdbdf9be7e6efe7b5e6f9fbfbfcfcfdeebefebf3f3f 5bb7b73bcf9fdbef6fe776f5f5fbd9fbfdb8f7adfbefffffffffffffffffffffffffffff ffffffffffcfffffbfffffffffffffffffffffffffffffffffff3f9ff3ffffff33ff8f3c ffffff7ffffffffffffffdfbffffffffffffee79 7bfbfd7dfdfef6feff6f7f7fafbfbfdedfdfefefeff3f7f7fb7bfbfdbdf9feeefeff6f7f 7fbdbfbfdbdf9fefefeff7b7f7f9fbf3fdfd65ffbfcfffffffffffffffffffffffffffff ffffffffffcfffffbfffffffffffffffffffffffffffffffffff3f9ff3ffffff07ffce1d ffffff7ffffffffffffff9f3fffffffffffffdfd fffff9eeefbcfdff7f7effffbf7dbf5fbfffeefff7f7effffbfbfbfdfffffcfdfdff7fff ff9fbfffdff7ffabef7ff7ef7febfffdfdfef7b57fdfffffffffffffe0780c1fc60fe07f 8303000e03ce0ffcb0847f01c0c10847040230607e0c0601010f3f9fe0c1c0ff8fffce9d e301f970601107e011811060f0603fffffffeefd bbddddfffdeebfefed7fb6ef37effbcff6fb67ffbef6ffbbbbbedfb5eddf7e7f6fed7bbb bebffddb5efdedeefbdee5fff77bbbbfd96f66ffddefffffffffffffe673199fc6efe67f bb339ccf39cccff239dc7f9ce4999dc6666666727eee7333313f3f9fe09ce4ff8fffc699 e39de467333377f333c919f3e673bfffffffdddd fefffdbbbffeff7bff37fffbbfffefdbffdfededffb7fdffebfffefd7ffbeedfff7f5fff f7bbefffd7bf7feffff7f7fbbff9ffff7dfcf7ab7fcffffffffffffff67339cfe66ff67f 9bb39dcf38cce7e738de7f9c679c8de67266e733fe6e7133787f3f9ff39ce7ffc7ffe48b f39dce67333737f337cf99f3e733bfffffffeef5 fff775fff7faefffbf7fff7fbbbb7edfeff7efff77e6efeefb7f77fdff7ffefffbf77eee ffafff7edfefffa7ffffb77ffddb7edbfd7f66ffbfdffffffffffffff073380fe60ff07f 83839dcf38cc07e7bc9e7f9c6780c9e60302e033fe0e71817cff3f9ff39ce7ffa3ffe58b f39dcf67381707f817cf99f3e033bffffffffdfd b555555555555555555555555555555540002f600017f00009f00005dc0002ec00016f00 00bf00004fc0002ec00013f0000bd80005dcf7daf7efffffffffffffe67039ffe6c7e67f b1339dcf38ccffe7bcbe7f9c679fcbe67f10e7f3fec675ac7e7fbf9ff39ce7ff23ffe1c3 f39dcf67388763f887cf99b367f3bfffffffee05 eaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabefdabeffff3777ffbbbffb4f5ddbafedffe7f7f db3bb7efdddfedefeb7bf7d7dffbfbff75fd657fbdcfffffffffffffe654f9efe6e7e65f b9329dcf39ccf7e7be3e7f9ce79ee3e67b11e7b3ffe77388f83f3f9ff39ce7ff71ffe1c7 f39dcf67388f73f88fcf99b367b3bfffffffddbd f7ffffffffffffffffffffffffffffffd7bfefcddb77f3db6bfaedfdfdfffe7efb6f3d76 ffbfbefb5fdb7f6defded6f6fbb3f3ffddf4f7eb7fdfffffffffffffe61078cfe6e7e61f b9309dcf31cc67e7be7e7f98e78ce7e63399e333fef663cce33f3f9ff388e7fef9fff1c7 f39dcf623ccf73fccfcf99326333bffffffff6f9 cfffffffff7ffffff7feeffdffffffffbff7deffffdfdfffffefff7fbdbeefdb7fffefbf efeedfffeedfffdfdfffffbbfffdbf5ffdbf65bfffefffffffffffffe1101e3fc20fe11f 8308000703cf1fe31e7c3f81c3e3e7c38fb9f8e1fe0e07dde38c0e47f3c1c3f8703ff3e7 e10046307dcf07fdcf870c78f8e00fffffffdddf f77ffeef7fff7dddfeeffbffbfffffdddbfdf7bbfff6fdfffb7f7fdbeffffbffdff7fbff fb7ff7dffff7dbf6f5f7fbfefefffbf6fffaefed5fcffffffffffffffff79fffc3ffffff ffffffff3f87fff88ffc3f9fffffffc3fffffffffffe7fffffffffffe1fffff8703ffbef e1fff11fffffffffffff0ffffffffffffffffeff ef0007fff7efdfff7ffffedfefdf0003bfffffefedffbff6dffbfffefbf7bef7fdbefeef 7fddfffbbdfffffffffedfeff7f7dfffbbdf76bffbdffffffffffffffff7dfffffffffff ffffffff3fffffffffffff9ffffffffffffffffffffeffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7b d77dd7fcffffcffffffffffffbf7abbbcf6f6dfdff77f7fffadff6fdff7dfebeffff5fff dfbfbf7fd7dffeefbffff77fbfbafefffcf6ebeabfeffffffffffffffff39fffffffffff fffffffe1fffffffffffff0ffffffffffffffffffffc3fffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdedd ef5ff7fcfdfffffffffdffffffffbbbbbff9ef7fbef6fddf7bf77f9ddfffdeefbf6777bb f3bbefd9df7bb5ededdaf5fbfd7bf7edbdfd677fffcffffffffffffffff01fffffffffff fffffffe1fffffffffffff0ffffffffffffffffffffc3fffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedbd f778f774f872493ff7bf7ff7ffffb9bbd78de7efc6e7dfe15bffd1bcf6f84efbf46f7dfe 379eff1bdfff8d67ffc6b7dfe37bbff19dbef5f6bbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffebd ab7077fc7324488fffffffffffff83bbbf3cedfb96f5f7cf72dde7bdffb3defff9ef7f7c f7bff67bcdb73defbf9ef6f78f39eee7bdef675fffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedad f76027fcf306419f7ffffdfeff7fbfb3df3defbfbe777edf7bffedaddfe7dcdf7ae66fdd b5b7bcfadffe7dededaee7fdd77bfbebbdfaf7fabfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdebd ef6033fcf326499ffdffdf7ff7ddbfb9bb7defef9ef7df9b7bbbefbcfdf5de7dfbef7bf9 f7bdfedbdbff6defffbcf3bfdf7b7fef397f656fbddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedbd b760377cf322499fffefffdfffffbebbcffde6fdfef7f7fe79feefbdb7ffdef7dfef3eff f79f7ffbdeb7f9e777fef7efff6bdf7fbddeefdeefefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffab9 ed7077dcd324489bdffbffffffff803bbfbbafbffbe6fffffbefff7dff7fdefff7bf7fde efbfeff79fffffafffbff6fddef9fbdffdfb76fb7fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddbd f738f7fc0872499ffffffffbbffebffbddffeff7bf73deefeb7f7bf5efeefadb7dfb77ff febbfb7dd7ddbdeeddfbb7bff7fb7ff76d7eebafffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffefd af7ff7fffffe7ffffeff7ffffdff9ffbafeecdfdefe7fbfb73fbdfb97dfffcfffffe3dbb b72fbfff9dffffcbff7fe7f6fdd3eefff9db67fabdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffede9 f76ff7fbfbe67ffffffff7ffffefb7dbdf7f8fdffdcf7fbfe6dffff3ffbbd9beef6cffff fe7deeef3fbbef1ff7ef4dffbfe7ffbdf3fef6df7fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde73 ef0007fffef0dfeeeffffeffffff8003bbc03ef7601bf7f00ffef005dbfc01f7fe01f7ed 00bfff8077ff401dbfe017dff00dbbe806f765fbefdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed03 b7ff7f7f7fbffefffbefffdeefffffffdffbf7ffffffdeff7bb7bf7ffedfff7f6ffedf7f fff77bfbbf77ffffeefffef6feffffffb7bcf7aebfefffffffffffffffff1ff1fffffffc 7ffffe70783fc71ffffffffff87f803ffffffe3fffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeff effff7dffff7fffffefeffffff7ffffdbbbeffbdfb6efffbefffffdedfffbfdbffeffdff b6ffdffffbdffbfbfbfddfffffb76effffff66fffdcfffffffffffffffff1df9fffffffe 7ffffe67339fe71ffffffffff27f1e3fffffffbfffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff f7fffffffffdefffffffbffffffbfeffdfefddefdfffedffff7dfdf7fbfdeffefb7fbfdf ffddffdddff7dfdf7fb7fdddf7fffffb7deef7dabfdffffffffffffffffffdf9fffffffe 7ffffc67339fe7fffffffffff3ff3f3fffffffbfffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdedb caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafffeffffff37fef79efeffd7f6ffcffbffb76fe efb7ef7fdefffee7dfff777fbdf9ddffdd7b656fffeffffffffffffffffff9f9fffffffe 7ffff867339fe7fffffffffff3fe3f3fffffffbfffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd f55555555555555555555555555555555efcebbbfa77defb5bfeff3df7ff5eb7ffcf7fdf f3bf7febd7bf75edfbfef7f7ff3bf7efbdfef7feb7cfffffffffffffc02310783ff8301e 421ffa67339fe7180f041ff060fe7fbfe041fcb83fffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe3d 6fffffffffffffffffffffffffffffffbf85efff86f7f7a37bb7f19dbdf8defdf86f6ffa 37bff71adffb8def7f82f3fde37b7f71bdef676b7fdfffffffffffffe66719f89ff399de 677ff667339fe71cee65dfe720fe7fffcc1cf2333fffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed9d d7ffffffffffffffffffffffffffffffd73de7779eb6ffcf79fde7bdff63ceffb8e67b7c f736fc7bdddf3cefef9eb6df8f5bdfe5ad7cf5ffbdefffffffffffffe66f99f9dff399de 637fe667339fe79cee70dfe733fe7fffce9ce7339fffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdebd efffe07fffffffffffffffffffffffffbf3d6dffaee7dfdf7b7f6bbceff5deb7fbef3fdd b79fbebbcfff5debfbbef7ffdb79fdefbddf67adffcffffffffffffff02f99f9dff399de 727fee67339fe79cee001fe733fe7fffcf9ce7b01fffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedad f7ffef7fffffffffffffffffffffffffdf7defddbef5fddb3befcf9dfbf7deff7bef6ffd e7bbfef9df777defbfb6f7bbdf7bf7e7bdf6f6ffbfdffffffffffffff10f99b9dff399de 72ffe027339fe79cee7d8fe733fe7fbfcf9ce7b3ffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeb9 af6fef7fffffffffffffffffffffffffbbfdeefffef777ff6bfbffb5beffda7bdfef7efb f7beeffbdbfffdadef7ed5efff7bbf7f3cff67b577effffffffffffff11f99b9dff399de 78fffe67339fe79cee79cfe733fe3f3fcf1ce7b3dfffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedbd f6afef7fffffffffffffffffffffffffdedbcfb7bdf7ffdff9bffffdfff7bedffbbf7bbf fbbfffdf9fb77beffbfdf7feddd9effff5baf5dfffcffffffffffffff99f9939dff119de 79fffe67339fe79cee31cfe233ff1f7fc608e7b199ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd ef5fef7fffffffffffffffffffffffffaffeebffefd5eefdfbef76fd77bdfefeffed5fef 7e9bdefbcdffdfe77fdff3bffffbfdddfdff67f6bddffffffffffffffb9f0c79dff83006 79fffc32793fe708038c1ff073ff8e7ff1c1e31c79ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7d b7dfef7fffffffffffffffffffffffffdfffcfddfbe7bfbf73fbffe9fdff74f7defe77fb df3f7bff9fddff4fdff7a7edf7b3bfffd9eef6bf7fefffffffffffffffff0ff007fffffc 3bfffff8fc7fc30fffffffffe1ffc0fffffff88fffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffee9 efbfef7fffffffffffffffffffffffffbdb79eff7f4ffbf7c77eddf3dfeff9bdf7fcff7f fe77ffdd3efffb9df6fdceffbde5f76ef37d67f5dfcfffffffffffffffffffffffffffff cbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf3 f77fef7fffffffffffffffffffffffffcfc037f7e01b7ef00bdff806f77c01ff7e01bbdf 00feee8077bb802fffe01fbbf00f7ff807def6df77dfffffffffffffffffffffffffffff c3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde03 cf5fef7fffffffffffffffffffffffffbbffbfbdffffeffffff7ffbbffdfbf6fdfedfffb fddfbfffbfeffffedf7ffbff7ff7f6ffddf7677bffefffffffffffffffffffffffffffff c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff f6afef7fffffffffffffffffffffffffdff6fdffdf6efbfefefdbfffbdffeffbff7f777e ef7bf7fbfdfffdbffbff6ef7ffbfbfbff7fef5eebdcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffedf eedfef7fffffffffffffffffffffffffbffbf7eff9ffbeeed7bfed77effdbbfefbdfdfdf efffffb6ef7bebebbfd9ffbdecfdeff67fbb67bfffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7d b7ffef7fffffffffffffffffffffffffdbbbdf7bfddbfffefff7ff3eff7fbedfbedbfdff adedbff7ffdf7bfff7fddffffe6ffdff3dfef6eabfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffda6f efffe07fffffffffffffffffffffffffbfeafbffdcfef7ba7dfeff6fbbfbbff7ff9eff7f ef7fedd7bbfffb7efffcfdeffefbbfff6f7767fff7cfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd7f f7ffffffffffffffffffffffffffffffcf03feef81ffbfc0efdfe07bffb037fdf80fb7d8 07dffe05fef701f7db01ef7d80fff7607ffcf6b6bfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee3b afffffffffffffffffffffffffffffffbb7ddfbdbfb7eddfff7bcdfeedf7bdbfdbfffffc fffb7eff6fbf5fbdffaf7fdfcf6f7fe7fddf67fbfdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdff f7ffffffffffffffffffffffffffffffdf3ff7ffadfdffcfbbfeefbfff76ffef7bfbeefd ddffee77fffd77ffbfbffbf7dbfbddef6ffef55ebfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeef efffffffffffffffffffffffffffffffbff6fdf77fff7bfdfeeffbefdff7effbf6df7fdf ffb6ffffddeffdefedfdfefdffffffbdfbbb67f77fdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd7d f7ffffffffffffffffffffffffffffffdbffefdffff7defffbfbfffcfdfffe7effff5dff ffbfb7ffdf7fffeeffdff7bffffb7bfffdeef6dfb7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd afffffffffffffffffffffffffffffffbeffeefbef67ffbffbbedffdefbffedfbfff77de efafffb7d7dbbfe7bfff67efbedbdefffcff67faffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfd f7ffffffffffffffffffffffffffffffcfdfa7bffbf6f7fb69fff77d7bedbaf7fefb7eff fdbdfdfedfffef6fedf7f5fdf7f9ffdbbdbcf557bddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeed efffffffffffffffffffffffffffffffbffdefef7ff7bfdffb77fff5fefffefdf7df7fbb bfbfdfffdefffbedffbdf77ffffb77ffedef66fc7fefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd7d f7ffffffffffffffffffffffffffffffdfefedffded3fbfefbdefddddffbee7fbff737ff fb9b7edb97b77fefbfffd7f7bb6bfdfefdfef7bbbfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeef5 afffffffffffffffffffffffffffffffb6002f7b8016ffc00bffe004f7f002eff8017ddc 00bfde005fff0027eb8013dfc00bdf60057b65f9f7dfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd05 f7ffffffffffffffffffffffffffffffdf7ecfdfbff7b75feafdcffdfdb77efb7afd7ff5 7eaff6ffcef77daefebff6fddffaffcff5def77bbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd efffffffffffffffffffffffffffffffbf77ebfeb6f7ffdb7bb7eb75bff7dabfebbf6efd efbefedddbbd6fefffab77efceebbbebbdf766f37dcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddb5 f7ffffffffffffffffffffffffffffffddbdfeffbfedffefdfffffffffedfffffff7bfff fbf7fdff7fff7f7dffffdfff7ffffffffefef7a7bfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff afffffffffffffffffffffffffffffffbfffdfffefbfbb7ff6fedeeeeffff777f6fdefdd bfbfff77fffffbef77bdfb7ffbb6ffdb77bf66f6ffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfb f7ffffffffffffffffffffffffffffffc0ef7bf07dfffc36ffbe17fbfe0bbdfe87dfffc3 eefba1fdedf0defff86f7ff41fffba1fdffaf7cfb7cfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeedf efffffffffffffffffffffffffffffffa6fbff73ff76f9ffdffcffbfbe7effdf3ff7769f ffffcfdfbfc7ffddf1ffeef9f6dffcfffdff65ad7fdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd77 f7ffffffffffffffffffffffffffffffcfbeefd777dfeb7df6f5fdefeedff7ff6f7fffbb 7b6fdbfffbe6f7f7d7fbfffbfff6fdbb7fdef7dffdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd afffffffffffffffffffffffffffffffafdffde3effef3f77fb9bbfef8fdbf767efddf1f 5ffd9f3b7fcf9f7fe76edbb377ffd9fbdb7d656abfcbefbefbefbefbefbefbefbefbefbe fbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbe fbefbefbefbefbefbefbefbefbefbefbefbefdff f7ffffffffffffffffffffffffffffffdbd7dfefeef7f6e7dff9fb7bfd7dfdfcdceff77f 77dfafafeedfdbdeefeffff3f5bdf37bfff8efdf7fdebaebaebaebaebaebaebaebaebaeb aebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaeb aebaebaebaebaebaebaebaebaebaebaebaebae6f efffffffffffffffffffffffffffffffbfdefbef67bfb7f3fdfbbbdfbdecefde7ebf7f77 7dfbbbbfffdbdff7edebeef6f7ff7bdb7fdd7ef7f7ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfb f7ffffffffffffffffffffffffffffffd6dffeebeffdf5f6ffbbf9fffdfdfefefef7df3f 7fbf3fbddbdfddfdcf6f7bf7e777f9f3eefcfffffdffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeff afffffffffffffffffffffffffffffffbf9fefefefe7f7f7f3fbfbfcddfdfebefeff7b7e 7fafbfbfdf9fdfefefeff7b7f7fbfbfbfdfd555555555555555555555555555555555555 555555555555555555555555555555555555555555555555555555555555555555555555 55555555555555555555555555555555555555fd f7ffffffffffffffffffffffffffffffdffba77fdff76ffffb7deffdfdbfbeeff7ff7fff dfbbff6fdbeedfefffeff7effff9bffdf9deaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabd efffffffffffffffffffffffffffffffbfdfefeef6f3ff6fdbdf7bb5ffedf6fdbeee6f77 fbbfdbfb5ffffba6edfdf6fb6dbbff7fbd7ddffeffbb6d376db69bb6db4ddb6da6db6db3 6db6d9bb6db4ddb6da6edb6d376db69b6db6cdb6db66edb6d376db69bb6db4ddb6da6db6 db36db6d9bb6db4ddb6da6edb6d376db69b6eff5 f7ffffffffffffffffffffffffffffffdbfeedffffb7fbfef9f7fefd6ffffeffffff7ffe febfffffddfdffefffbf67fffffb7beffdfffb6cdfffff7fffffbfffffdfffffeffffff7 fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffff ff7fffffbfffffdfffffeffffff7fffffbfffdfd afffffffffffffffffffffffffffffffbef7affbbff77efbfbffffedfb7edcdfdbbb3bdf df9bbedfcfef6eedffeff5ffffebdffef5ef7ffe7ef7ff6fffffb7ffffdbffffefffff77 ffffbb7ffffdbffffedfffff6fffffbffffddffffeedfffff6fffffb7ffffdbffffeffff f77ffffbb7ffffdbffffedfffff6fffffbffbfdd f7ffffffffffffffffffffffffffffffc00027600015f0000b780004fc0002f600017f00 00bf80005bc0002fc0001760000bf800057c0002ee00017e0000bf00005f800026c00013 600003f00005f80002fc00017e00009b00004d80000fc00017e0000bf00005f800026c00 013600003f00005f80002fc00017e00009b80005 efffffffffffffffffffffffffffffffbfffefefedd7d7bf6bdb6ffdbdeffe7cffff6f7b ffbbaffb5f5fffceedfbf7f6db7afb6ffdddf7fefefdb67736db3b9b6d9dd6db6fedb7d7 f6dbfbb9b6d9dcdb6cee6db6775b6dbfb6df5fdb6feee6db67736db3b9b6d9dd6db6fedb 7d7f6dbfbb9b6d9dcdb6cee6db6775b6dbe9fdf9 f7ffffffffffffffffffffffffffffffd6ddedcefff7f7f7fbf9fb6ded7df6fe6eed7d3f b69ebbbfdfdbdde7ef7ed3f3ffebb3fdb5f9bf5abadfff3f7fff9fbfffcfdfffebe7fdf5 f3ff79fbfffcfdfffe7effff3f7fffaf9ff7d7cffde7effff3f7fff9fbfffcfdfffebe7f df5f3ff79fbfffcfdfffe7effff3f7fffafb6fdd afffffffffffffffffffffffffffffffbfffdff7bbbb76fef6effffbffdfbfdffbffdfed ffffffededbeff7fb7dfffbfddfbfeffff7ffdffff7eeffdf777fefbbbfbbdbbbf7f7f7f beefdfefdbbff7dddffbeeefeef6eefdfdfdfefbbf7fbf6effdf777fefbbbfbbdbbbf7f7 f7fbeefdfefdbbff7dddffbeeefeef6eefbfff7f f7ffffffffffffffffffffffffffffffdf76f77fffffffdfbffedeff7bfbeef7ffdefbff ddfbdeff7feff7fdfff7bdeeffbeefdbbbeeefeef7f7fdefbffef7dfff7fefffefdfeff7 fffdf77efff7befffbdf7ffdffbfffbf7fbfdffff7ddfbffdefbffef7dfff7fefffefdfe ff7fffdf77efff7befffbdf7ffdffbfffff7dbfb efffffffffffffffffffffffffffffffbbfffffdeeeddbfbfddff7dfdefefbfedef7bf7e ffdef7fff7fbbdefeefdeffff7fffdfffeffbf7fbdbddf7feddfbff6efdefbeefdf6fbbf 77dffffbf77dffb77effdbbf7befbbf7dbeefddf7fffefddf7feddfbff6efdefbeefdf6f bbf77dffffbf77dffb77effdbbf7bfddddfeffdf f7ffffffffffffffffffffffffffffffcfdddeef7fffffbeeffb7ffdffefffdff7ffeff7 f77ffddbbf7fff7b7fbffbbdbf77bf6eefdbfbfbfffff7f6fffbfb7ffdf7ffbfffffbffb defbbddfbfdfdbffefedfff7dffefffffeffef7beef77eff7f6fffbfb7ffdf7ffbfffffb ffbdefbbddfbfdfdbffefedfff7deeff7f6fbef7 afffffffffffffffffffffffffffffffbcfbf7beedbbbd6ffbbf9d6f7b9f5efdedddfdd7 6ff7bbf7fbdcdbfffafd7fef6efdf7bf7ffedfdef7cedfbfb76fdfdbb7fddcfbb6deeedf ff3eeffdbb7efeddbf7f6edff773eedb7bbb7ffcfbbff6edfbfb76fdfdbb7fddcfbb6dee edfff3eeffdbb7efeddbf7f6edffff77f7fbb77d f7ffffffffffffffffffffffffffffffdbbd7ff9feffeefe3ef77fbfefbbd7f79f6f7fef f6fde77b7ff3fdefddeedefafb5f7d7bbb7fbd9fbed7edefedf6f7f6fbbff3f9fff9faf7 7aef7b6f7fb7bfb7dbdfdbeeffcfe7ffe7ebddebbdedbdfedefedf6f7f6fbbff3f9fff9f af77aef7b6f7fb7bfb7dbdfdbeef7abe7dff7fbf efffffffffffffffffffffffffffffffa938ddec1c6efa0b3ffd071dfd438dbf61c7eda0 e3dff071eeec38bef41c77fe0e3fdf071ff683c7ff49c7fdc4e3fee271ef6c18eff41c7f ee4e3ffd071ff7138ffb89c7bdb063bfd071ffb938fff41c7fdc4e3fee271ef6c18eff41 c7fee4e3ffd071ff7138ffb89c7bde4e1fdd030f f7ffffffffffffffffffffffffffffffd404ff7b007ffd4037dea00fbf504fef8805ffd8 11f7aa01fff100fbfa827db5413bfaa00ddf200f77b0077fd003bfe800fbf5047eba825e f9003efe401dff400effa003efd411faea097be400fbf90077fd003bfe800fbf5047eba8 25ef9003efe401dff400effa003ff9013f7ea09b afffffffffffffffffffffffffffffffb180f7f8c25bba513efd209bf7180ffdac27b744 037dd308db7504ffb4807ffc601efe209fff584bdf8c23db5611edab09fef140fbf4c077 bd6137b6b08f6d5847b6ac27fbc503efd301def584dedac23db5611edab09fef140fbf4c 077bd6137b6b08f6d5847b6ac26f7cc03bf6281f f7ffffffffffffffffffffffffffffffcf01bdd380ffedc06ff6e83f7e701dbf3a0fffdd 07ffee03ffe7416df3a0ef79d07fede83bba701ffb380fff9c07ffce03dfe701dffba0ff f9c07ffce03ffe701fff380f7f9c077fee83ffe701fff380fff9c07ffce03dfe701dffba 0fff9c07ffce03ffe701fff380fbd9d06fbde03f efffffffffffffffffffffffffffffffb543fffaa1eefd50fdbea07fef543ff7a81b7dd6 0fef6a87bff503fffac17bdd40f77eb07eff543effaa1eefd50f77ea86f77543feda81de fd50eefea87bbf543ddfaa1bddd50ffb6a077bf543bbfaa1eefd50f77ea86f77543feda8 1defd50eefea87bbf543ddfaa1fffd60fbeea87b f7ffffffffffffffffffffffffffffffd186ef78837fbc61bfee28edff18777f8c3fef44 1b7bc30feb7147bbb883fffc51ffdc20dfef1877ef883ffdc61ffee30ffff18777f0a3f7 dc61bfae30fff7187ffb8c3fffc61ddfc28fdf7186feb8c3ffdc61ffee30ffff18777f0a 3f7dc61bfae30fff7187ffb8c3ef7c41fefa30ef aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab07fbe5c3fbf2c1fbf970ffb4b05fda582eff2d 1fffb606ffcb85fee5a3def2c1ddfb68f77cb03f7a5a1bbf2c0ddf960bdecb07fded837d f2c1fbf9606efcb0377e582f7b2c1ff7b60df7cb07efe581bbf2c0ddf960bdecb07fded8 37df2c1fbf9606efcb0377e5837bd2d1dffa60ff f55555555555555555555555555555555087bee801dfd420efba00bbfd087dfe843fdb40 1eeea10ffed007efe882f7b4217ff200fff5087bfe883ffb421ffda10ef7d086dfa843ff b4217ffa10ffed087ff6843bdf421b7ea10ffed085ffe843ffb421ffda10ef7d086dfa84 3ffb4217ffa10ffed087ff6843fff400f7da90dd f8c1fffc60fffe307fff183fff8c1fffc60dffa387f6f183fef8e1ff7c60fffe307bff1c 37bf8c1bb7c70f7fe307fff183fbb8e1bbbc60feee3076ef183b778c1ffdc60ff7e306ef f183f768c1dbbc60edde307ff7183fdf8c1bbfc60fdda3076ef183b778c1ffdc60ff7e30 6eff183f768c1dbbc60edde306ef71c3fef941ff da03fffd01fffe80ffff407ef7a03f7bd01f77e80f7ff407dfea02efed01dbb680dfbf40 7ffba03ffdd01bdd680fbdda07defa03fffd01efbe80ffff407fffa037bfc81dff680ffb 7407ddfa03fffd01fffe80deff2077fda03fedd01f77e80ffff407fffa037bfc81dff680 ffb7407ddfa03fffd01fffe80ffbf407dfb803b7 showpage % stop using temporary dictionary end % restore original state origstate restore %%Trailer vflib3-3.6.14.dfsg/doc/Paper1/vflib35.ps0000644000175000017500000236462506573124734017034 0ustar mohuramohura%!PS-Adobe-2.0 %%Creator: dvipsk 5.66a p1.3a Copyright 1996-97 ASCII Corp.(www-ptex@ascii.co.jp) %% dvipsk 5.66a Copyright 1986-97 Radical Eye Software (www.radicaleye.com) %%Title: vflib35.dvi %%Pages: 13 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: CMR8 CMTI8 CMR10 CMR17 CMSY10 CMTI10 CMBX9 CMR9 CMSSI9 %%+ CMTI9 CMTI7 CMR12 CMSY6 CMSS10 CMTT10 CMR7 CMSS8 CMBX10 CMSSBX10 %%+ CMTT9 CMITT10 CMSS12 CMMI10 CMMI7 %%EndComments %DVIPSCommandLine: dvips -f vflib35.dvi %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 1998.09.02:1112 %%BeginProcSet: texc.pro %! /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} forall round exch round exch]setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N /cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} {adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] }if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /dir 0 def /dyy{/dir 0 def }B /dyt{/dir 1 def}B /dty{/dir 2 def}B /dtt{/dir 3 def}B /p{dir 1 eq{90 rotate show -90 rotate}{dir 2 eq{-90 rotate show 90 rotate}{show}ifelse} ifelse}B /RM{dir 1 eq{S rmoveto}{dir 3 eq{S rmoveto}{rmoveto}ifelse} ifelse}B /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V{}B /RV statusdict begin /product where{pop false[(Display)(NeXT)(LaserWriter 16/600)]{dup length product length le{ dup length product exch 0 exch getinterval eq{pop true exit}if}{pop} ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{ moveto}B /delta 0 N /tail{dup /delta X 0 RM}B /M{S p delta add tail}B /b {S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i {2 M}B /j{3 M}B /k{4 M}B /w{0 RM}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S RM}B /y{ 3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet %%BeginProcSet: texps.pro %! TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics exch def dict begin 0 1 255{exch dup type /integertype ne{pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} ifelse}for Metrics /Metrics currentdict end def[2 index currentdict end definefont 3 -1 roll makefont /setfont cvx]cvx def}def /ObliqueSlant{ dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def end %%EndProcSet %%BeginProcSet: special.pro %! TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N /vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ /CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ 10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale true def end /@MacSetUp{userdict /md known{userdict /md get type /dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{itransform lineto} }{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp {pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict maxlength dict begin /magscale true def normalscale currentpoint TR /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts /psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR /showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict begin /SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial {CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath }N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ /SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X /startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet %%BeginFont: CMMI7 %!PS-AdobeFont-1.1: CMMI7 1.100 %%CreationDate: 1996 Jul 23 07:53:53 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 110 /n put dup 115 /s put readonly def /FontBBox{0 -250 1171 750}readonly def /UniqueID 5087382 def currentdict end currentfile eexec 80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f 15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 bdd7da12534ba078ad3d780414930f01bdaae649990604a33aa9eaffbe5b5489 e5c7c9ff9d9be01b08220832c41caac64816b53bbc087ae4b621d2b44b21ae5e 3f7fe4ddb05c675abfe30510eee4a7c874bb57b2ffe521a6875eddfdfd18c781 25bfca5a097aad361dd94df46f14026c25ea988194899b95001209cb7009cead 4b4ea03473ea120e7a7e341d4e3926796347fdb3a124c29660ac09f4648b313c b58e824884382f24ce08d2edc686923acace1201c16a07a42803288cd0b946f7 546510e95b1fa1cc96f0bf72aa823d8e83d7c68c752c82a54c752eed2b1e699d e9db1830272ffbf2f4996ccc2d6fe2ae272798989525ef3b67b0d09bffcef749 a805e5f76578222b9c4a8a09b13189a16ab746ddef7875f1ecf83e568f493d82 ff729baa1e0834dbec30a35d3c49c9b10c5e1d90c6e3c8fb737df5ceb3299d96 0fb79632f91f257753b4d2e34e3f54a26c7b950981fb7fe4dee3315db63e75b0 24b4d318baec8aac9cde186f6d65767df1dba35124287c2e805bc660a3a22772 0ae4fa097f1d75107441c0a0fbb9eec17d5516fa03b98756b7df7ac7eff9c7a2 364b9f691ed5cb692dfff9dd80c761e9c4d5d6061782b327302c053ce1cd09ba 0605ebf761cf9b730524e1994e7dfaa956799d522ec53d5acba27a35c4d28279 617771938ece58c5ab664aa00c1bc4efba2d15504247a68e3af0f9bd59a387b3 80db88cca083b06f5af70d768d1699826fb12ce12efc2b4c70923e052dbb964f 5fa957c3ce225c0fda64d9b5321ee1ade207c1cc93105096cc73118f4082594c 8ecddeb0d7bfde6f70bc62f10407c26a476ed88be7999d64a15912493829a9de 62c71f5a34fbf5a843e311873cd98817dc9f8a4aeb7e0738b5de10043f5cfea7 147e63b9abf3eb818128e9889ca384f115247195c3bf4d53ed1888938a3a33e0 21a7b70e97137832386563a2a60f29c465737c1277bee1083e0e2f312bebcdb5 9dc3b69188085de7afb10d0196c3d3ce8f64d24a14fe37bbe27049f4e7a52f86 d147e1c5b0300aaf8d2fad367a99bd05ed833d1d26d8032b29c9994403ebc34a 0d253ae4b87de57ec30ed123046880d27829134dc94e219e26fdfdeb3381339c 546179d53a1011e0fb3b5c345c9665d93f052cb2865793977cf4bb4d83d1489b d6b680dce5bdfd610caf7821c298814c23b6dde73948b1b1e305900b5bec3e43 2aff3dae2bbce00e056e5332eb5510b47cb93ac8c0a62949113369de5be5958b 29403e0584a39ed70791967bbcdb26bcc67192aaa598d05dec0fc9d144727181 cf58cd0017078931d4c5a45d18067a62b94f3631e78e2d052edc0d1444e89474 964d5638ca202ee508b6527c5a7dfc591584e58050426656d8900017982dff38 096f2735f32b9a0389a2869f1a8530b68ff4a72e12e9df4e572997a8e417f1e4 d53730deb721e550b840e25010cf5d5bf8d0232403b599fbddbb4f353d1a022a ec56715b024d6c83cfa06abeda591b33b632ffe06a77b073c6f2a675fa0f15d3 b9ae53dd41b8e173f8adc5b11f8f368239531f5b3d8aaf080801f9d9681d5cbc 5ad57eeb85d541bcdcc61aae6d9a8fdc9ce644e6016d1b1fd7fe8b3b6ea3cdab 1cf3f62b391b4911c58bf55fbaa66fdd4316341f26976326304b66f9d693d4f6 6120b767036910483f8be23e259a89f6d2711a0bf3c2d642a85b73c998547556 b2ee27c2798496f9fb041a16f5 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI10 %!PS-AdobeFont-1.1: CMMI10 1.100 %%CreationDate: 1996 Jul 23 07:53:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 58 /period put dup 59 /comma put dup 70 /F put dup 99 /c put dup 102 /f put dup 103 /g put readonly def /FontBBox{-32 -250 1048 750}readonly def /UniqueID 5087385 def currentdict end currentfile eexec 80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f 15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 bdd7da12534ba078ad3d780414930da4f8d58abefd45db119b10eb409dd89792 3c6e705479464a4b310b58348c4b42393988fef4925cf984423aaf65fea9f0e6 4629953bcf50b919d968d99bd185f83112b2759cc411764e9bde677f57c5ee5a c555448d5f81a16259ded1e11bf4119d53e8ab07a802df900d3a2d5ccc1c6876 d29c5e9effb7af3ef83400b0910c07873a8c56fa7b1eb1ba426043b00cc95dbe dc6e136cbbbcb3f67509964f9f281ebf81fe5b018122eaf66c4a838487e82e18 6e006093042848a903efb3469ab6b4049767aadb95c30408dfd58d8a10f4cb22 168decd9f3ee100f07b49aa44c92139b669cc312ba20192454eb2375be6284b0 26659d964b96ae82d4942e758027fcf23c25ed01115af27ce7f20efe2a822bb6 84004f20243a49c9e93301fc21b80815c033c3e2ba58ef53da2157d524b395f2 b37abca13bc6a2f42e824ab7e47106176b0d6db267fbb795ac7425582df2e3dc 55863468a9200742bd7b552c48f8cf58bc21343bd3b95abfa140f33f37c6f3f7 8b0d8a5154eb7c1f62ec598267f13e841a3e64172663935ac8b665d86540d316 ddece329c008049c5e74b27d59022c5515059bc3b89370b1bc6a169c888bb325 e0b74282d6f053a50da4024ed1e433271a32ab8c17d41c632b41cf9f3ecd5fe1 24daf7aea7ce8a63047b245822930d517df7baaafa69d2d17f7d93cebd45416d f3459365434123a76ccf883a4973bab19807e1f0c4bab03a45f7ed69ff2660ff 3963e4def11001eec4238c368a39d874fd30b3c14f4186ec7700fbce22abe468 eb32baf7b0164f8f21a9b5e706b91411faaa44467cb2180ab03de375c1ab93e9 76e11ab92fdd4a7280a6d1a8dc65c4c89d04c8ed6988045a2a3de9a4c7b1efd3 75b2966b0ee23a33c1bd122b66e9c8e49bfa1eff0a470ce7eff00f98fd6c095e ed543dd383c3b4540801ac203ac043ea6381f7c3d32933313f39d4b7f1e472c5 072b6e8588401b21782b7498e01291d0c4ad8d8339f1e172bbb58a41c95d118f 5efc38ea578eaffcb993584e48988a95e1f1b0032550b87d7e4c15d05ea84328 b8e63e4de662bf18bd8b83b40024575c213ff6db647a900fb119a3f215fda689 498b3f0b6b35b058f4d1335593df5b5e463079acac82c8565c0c37dabd3c3ece aa54f77604ade5b80a56633a513fc1cba6a3ea8ac1491db19cd1d4adfc547b14 c6a379e6afae5b23c0d884d0736386ecb193b8f93202ae128ca43fd07574420d 53bad11db58d4e8fc4ffc85d9d376fd0fa53ee9954b034854c27387eb12a783c 6110f89010303159b2f1efd352a78c4d64d586a492294b760e9f3feadf3a582c 353f7765fa451844233cc76c419321e4c62948f8f591a79552fece1886a6af22 07a28213b394278ae79090351a170caaee19bfbcb40d1409c975fd79422b688d fe6e48079743c57b20b6a91ab88fc6b7852f07099a7571a00354ba170d0d7b9c 1d6c147011f63cba43e96f9543aec3dc2dc86a99364697b26c2427a1afe369fc 7d1f5cf7311adb17eb011c50a5b4573db540265043bdf6e8334b77cdb68b7d51 fc8675ceb182843f64317f2f66719153284396dcff76eea02b1cb8d9979dbba8 2c3007eb76b75c5f976802343535b3a832f9602955e95d9569784bde82e8cfa6 971cb4cb7da05f99ef2da4f34db6ad9abd536de1045cd24052158f623aeab784 79d85e868d62fd18e586a96196cf155dac008809dbae15998d8359ea4337c8fd a7eb2083fe1c8207265c62fa6da29063447a29552e350aded9af8dab075b3372 bb28fcafd05dca5032591ada79473a9912058031a75accbe799d74ea5b7dffb8 eff9ff7ac3fb0879468948bc0279e84d318cc5bf0189010db740695a4a2ff364 8c9cfd3cb9f46941e313409ffa94d13fbff12d7ae8ef2e880491cb90df8e666c 37a0bb8ef1ee4f56d0aaffca2e0d0a9bbee131ffe3138e7fbc950a020ec68388 bb33e4516b44bb707a8f36633bcc874a1e2729a80488b63f8a395b622b10b170 b8d2add1e37d468afb90953ead11315f9b3c253d9ee838276ef06ec57910c691 eb5fba32c6f5698aea556c6247a2eedba874efe6789f490ff4ab9dc1fed46c6b 85f016df87283810ea67be48de2fc00e6265adc99e0a04131b59fde0742805fd 286763b4c604536b46718b12f5ce366c35821edcc455bd753674ec7f233eb66b 36ff4b66b1800f03e6205f12a5012de4e9f5b5c0d8c5589059863e9dcf5ff759 2545eb256f97ba1344272b2dae0dc0ef88ee8347dacfc18ff1d91abf2da1bc4c e7de4abb98d19fba6eb8077171bece92d67b30383bc402c746bdb699a70a33cc 138c2eaa6f95362f43999d71a053ceefaf592cd548310b50a910ee5cc69060ea f4c2e2276dcb53a92542e2200369d9924bba7eaf66910adf479c08ea4d0e1ad2 e1c79983cdf2fa3282e08eb35f97c544674e1c9b728d964d9a2ad34e70568fbf 78148977d5102a34bb3ae70dc971b6e7198dcb57ca663426d30c60a6f62c 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSS12 %!PS-AdobeFont-1.1: CMSS12 1.0 %%CreationDate: 1991 Aug 20 17:33:47 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSS12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMSS12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 13 /fl put dup 97 /a put dup 98 /b put dup 99 /c put dup 105 /i put dup 112 /p put dup 118 /v put readonly def /FontBBox{-62 -251 978 758}readonly def /UniqueID 5000804 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486858b2a4b5a0cddfaf2ed604ab4eafe1b34aa4 31dcb3f73c18fcc8e8014e34597896a814c48cab18fd9dc77f4ae3457ce2499b d24f4aa1976bde782344d6dc811f065f385688b7538ce76d0f5dcfb8fe458d13 888ad60eebdbb9cc6a025850c506e45069aa14b5e3c38665bfbe4a9286dde935 692b76af24bdc584e298eea841d45d9eb87ac61187def799331f88ab8ccaad72 e5bdd6ea94580161d4666a64d5b8f76c12736a38e956909f626892039a1ede98 f694485b5ea34576e5a2bdbb58b8c14ec6724b6a3678db4365afd61f276beecd c501c230d0827f4c8925b42f5f1be2de179d0e99954f2c258310e1d7dd1bcf50 00b2eeddb59ff8d39c999e25f71765f252cd6d490ec7fc64de93e2564f66aa27 2a795dbc634db4d437644b80248b159d9fe87167af12d23ec43245d4529a9abe 93b9a60847b5fd4651dc67da13d1bae2682c531c439ae77017dc6c262a84a3ec 3fa6157090d02388e68dcb5b17482fc97f5b4cc143cb206103a09e1753e7331e 8701a112af1c5622c4688ac0674569c19c8b9b027d73aee03d3e51eed237ecbe 597276e6a19bffb51bf5e169c00e4434159439456087af1371b571bcbd53384b 60fec89664d72ff71b6cd992abc6e5469218f853925df72d7ff171be74dcef6a ad23ddada04bd0e5a5fe71d65f0420a32823990d6f8277a73e5dfe48596fc627 3c908f77f31c7d0610621dee3e1286f8e2ccf3d6660a9d74ed93d1baab063d49 e61a1cdeed78bb46732abdc2484aabf7dd725d9fc6e3c0963a83396a250ba2ad 19432e151446f7d5db35cbb0ed6bc156049e60651ae834acb96b724d32a544a4 822c77575ef321ba3852a701573103f27174a5303b6245babec520efe0992b7e 4a14d4648a784602ea2b24a396f618e1fe4d7cecbef5c0efc0be614db12ae6ec 1736736efa6374005afb834f2f6543ac65a9fa3a221004a368759581e22c80d5 de8ca7028fa20e5f82a94911685e64888cf739022be97238e499c739263a504f 0c4647832c0702a9383568e7c581752d4dd21e6cfc7d0fcecd4663f8478bbe7f c436a13acb9b4727ebe386aa3f5cf111087b069f51df8c8e3575dcf6999f39ab a0b6f41f200e2576d98f49777f550a63ef56b17517e1ceedf982bf92c5b8a19a ddd4cb8c0ce774ba5ddfae8e54bbf26815848d9bacc8ee84b8cb45967cd6d0f9 af62c327f7cc64a9df40ec9abe75c9d136910909d32d974ed18571e2568e18e7 5184581992e412888393295ddb5c86e42c2e982da3869280f1406172473673a7 5ef630a5eceb2413511431d5d29a9c2bebc09408e88ccc4bd18b45a63ffcb972 c29ec2b16617d5168e3da74bd4d7e3c19ab8a49461312a8f0f105dfea1860ed1 f12150831df0b1a4775b4fe26d3253c944de26f59b9b11734dd9d598bcfa13a7 5bf55f76ac0de1e7246bdb2b5955417f291cea6e39276a34380ccd687ea92ecc 808e8896a5705c1d0641fac51ed09c0297f09017f3a5bc6cfa8bcfc7a36960dc d964ba0d94a01b4dc2b9cb8122b77d2ae5df9d033bb62d5d4fa7abbc1a35ec22 d700fbab239b055402e9e3a97599bad550283fca32c1ac367000ddb71d89fd9a b51b311fc8957644a50c2baf5de3db975389c48a50f0b703975df1c4fca04fb8 96f975259d20d8d998cf0896b1093c1c89886c5af6c6f708a19eb81ff9a3436c b41274a02dc03f9883c462801a8d63429bf2f5067bc827de5b553d2fd6bc79ea 548bbb12a629a9caa6b9c8ed4800c74a00db9a11a8d565e44202a10b190411ab 41d1a2b600cc8527b931074ba0fb9e4028e9038077393552c6da5d38cdc2eff2 d5a9cdad40fa51f85f42187b40f11d36a2c48ee8b17cacaf1d0307052ec302af 9bd7d28b447675c4c28d261b1204ebba637ad2b12182767fe6e0c54908f51a57 fd95e8b18045331c149bb63473284b4a185e188ace7b7aa97f07be6f6a7e03a2 f7d0cc628acf10a5f50c609799f8bf7825d616fa313f00fb333ffd08eb98242f 4d128091d9d9c1fc7adf1533b0d4ccd5d3dc32a30e818335e0d6d4cb9a5a96be 127b2218f7e53d3e290586fee378d577e3473e94dccba976371887f4bb3b0617 3bf0b62255528e22d056899ab09f68572458029fca92c7d65c0277cd5d6dc46b e6a66e86377aedcafd6c68c03e23bd912553c2f3e8f006b214fd7df637a63dd5 5d129e66cbe0e63f6035 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMITT10 %!PS-AdobeFont-1.1: CMITT10 1.0 %%CreationDate: 1991 Aug 18 17:48:50 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMITT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch true def end readonly def /FontName /CMITT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 118 /v put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{11 -233 669 696}readonly def /UniqueID 5000779 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cdbafa8977dcfa841fdff9afd3a7a7c7905c219 28506d4d50a72fd1db1b54a855775831bec099a567f3f795b812ed5e145213c6 d5d27f9ec6709245e9e4068a6606742aef616dfcfc9e0b9af7e687fdcda43c51 81a08d6ab72b86fb38756fec992191c1b3fd151c417125d4777f0bd0c57d2959 0db35f1e9e27945498a3f7dd60bc54d72bc8a573457c16796914029dc282aaea fdaa4b1439f4125add4b7399be6fc68e4d5a766cbe5ddd161180d4e1ee3c95d8 64e79fd0c65b8f459336e99827454d662768df3e6c1c3647b00b70b5f96a3944 b7a197be0f58a1e995a77221bd374a40159d81c7196c94e8af7c3392255ee6dd 0663e05998ff917a62d635ca45e952252342507d6b4d28833c7809c1b88400ea 50c652efc339a66355c8017651fd24d9a5cc51ecb55bbe64ea523b094332c832 52f7b426909808ae113c1e5601b0e081fa8e7777ab93b42207100f43abbb9ce4 ebbf51e584299a06fbea62b8ad3632ff0f281ebf9503ba6b8ae4f3b57f650388 df63eea9e1ef1e08f7a2c6e4f5cae2c4dc7b42726a6ea6b7592e9355a01fe517 12264a713ba83c057cb5f663045791d4c7598b246cd3b8466a1130249568e95d ee2c0b4abfabc8e362b78d9fdc025fc19cdf1887997d32fd1487cf2bf0ccc966 319e3e3cf4add90ab51f0c3e918a00e5726ee346ae410ec3ce90404580c47572 35b3ec4f5ddf23dd43224d90d8dc932ec7f0acfbbcdaf80f261482ea4a2a2644 129c27fb4b44ba8c78d23273122cbf1ca49ae879ddeb6991b87ce2ff25c655e6 b5ad950028de17f6628f9eec6842b79f69c84b6c55ae423714e622eb4e47f9fb c30a71808d70b89cc1a9b60f0ef21ad074a63d38344446947fdb5d78dbb65a98 26cddea5ac0d21d6c5c968f699ca325ae6197151eff1d20e5091a8317925c6a4 f06acd6eddc7071104496633901318bca1dde7e87e109704afb505fc34544b5a 28e3f3b89fd39964f691d0ab288cab2afeea891fe75383eb274d2e609a8e5539 db3b33dbde2a7eeb145fb7b727102af5707b42a5407ff6c08d2c2c106bee8ff4 c84e4a4cc4c8509eb8cceda9212141aa6594a5794e1cb587d6ff43d86f0d071c de3c86e4d64e5471773344411719e08bdc081e5e02c98a348f4aa09f32c0b66d 2e0a6a9bb2fd4f30844f3f37e835813bedd93c57f34920072004d78b047007ad c5b9e318095fa6103132f4126024d4148e046409ea034309b4031b75744d9bf6 72c2af17067ede34322f85dfa2148104393de82ee2c5bbb328d1a07c047f7b44 c7ab63977e7e47f0d05876f51fb3e84e871f57bb87d1ea31a328d5afaaa48059 879cb4222bb697394d175db9558bc6e57600ee2cdae7e93f8d4d03b6ff2392d1 607c62b2aa33445303be79d140bacf05c156e2f372a4695487e4049fb775d460 469a642fb613144c0b8c5e2f1b27f25b1d291db6f0013f90d0a23fef5318de76 4f885bb90f6bdc42e2ecc1309d2cbeea6d4433d8116f22d744a57998ca6c3920 9a5166423e643fb299365eb59d238228ab51fdd348fc14e1fb37223cc647df0a e16c625da350d2962c3b5184339aa3900548e46d01e4a636ba7faeb1adcb061e c83e1cf97721639afebdb27a4849bb1494bb06e975438d7745e80c9dcaca0749 79ec3da5c766b5df9d9ffb91746030f0d66011c0250f96caf303b93b1ef3dfbd 88c61c24da10b767148c0178334cf8e7228d4865688ea3e9da0e2a45902a3d37 11c25b24e16d5c41fe30d31da5c02a87e8850b30fec9b7f6b3b5b09910b4124e 3d7d914d276cc1a3c6139d1acc9311ab09f6fd79db8ec5ccc9e41406e56ff672 2c0aea3a7893cd48bb7a45ff132b045de5e9a86021cbd5eff291329fa4f29842 6340c3a7cbe6059cdda5a23b04201cd68f82d732fe3459043c4cb0c3a632c205 240062fffe7a7b399bfd650abb207695af2875ac9e47fbf179c46df5153fcbf8 0fb741c91b00bbc5007a426f760b055dad4532d3263c2524941bd74ae4a84746 2ad3efdab9decbca71cb9a1f23ea258a546ddf53c93dd8213821b7090dbc281b fcff05e0b55f817d5b9e122aa9f3c166c3463ff1fd5ff66e3eac26a0ae55165b 23c6a446cc6b54b61e66d57e602bdbb05d57d06bb95dd3421e9c5eaaf489ba88 e172ec0b6b0d8f10d0459bd87005890ea15bab9002190d43d514114e86586371 672875ab8c38ad090e8f30beb9cd19b055e0a2a054cbc99638191fffdc9860ef aff190d93e2616146b3831e274cba6eed5470645d52abf2aef26b94f8fc369d9 c0d19056864fec745afc08125c262326369390ef7d8a0dd366a431f154ab6099 904dd0af4bea86a6957e355e448c8fd600ec97b42831cd26fd5862341829e741 f80bcd28b03d8c586a85300c990559f7078c0545a1292f284aefe390bb926053 5e34122ab9cda5305e1fac67dde45d87e33108e3c481d881beea8fdab600b0f2 58b3ba0281f84fd099236562f75c7b4e69cc5c611273d42d48f199dd29d662a9 ddd832644f643b264ba6205b34dea25c6395f41fc950abaef6f4aff806468695 4f86082b3ca2e0ae30bb2dadf5d80cb975d4c2862d1ef1dd71019e85de0eab59 73ed43f8f199c90a126a1ca8e58492587f87cdb0ee088f768acc73ed955bcfd0 8c99703417a144ed26e03b8c4b2269e2d6397b3166a4cd09a35d12f5a72288df 53e2a56b200d1bfc21d8f08c46c03c2e49067f260dc20e759bc16d7a1a4e6902 d030ca4d3d6d0f053ce35a2d6537c99231c48aaae25a1155a3dfcf8f4a465c97 6c40a21789eff0bb26ea1338eb4d1d88275b604463cd2601a29edd1d30e0bb54 cde44ebd08472f9625ddbe00f1767c5ca0631a7492bf875ac8c9ab86587947db 4f63717eac35a162b5cb8e252158721cd7b17b3b25b1b358f193383a6dfc7431 1db9aaa17e4889d8c0e860082c6e51d8689794bd93ad15fb663a61ada1a86742 3723a10308a2c7badd4063977f7768252f864567df679229c773e120532b8106 ea2e8b4302cb1d4cac57902f13d2442eb36babbe7e5986a1288110c203874f1d aa99059a894f971991923317352b0958efee480378a726d9583edf97ebd5ac95 71e5b699edc34edbcd4797d35797ef215c3bdb236df64d65c3878bb676f5bf9d a0d0e498b6593de971852b21de7255c57ab59ea5503da430ef83e8e558114d12 d28503de61510b512a0e95f208d4e15ac66b34bd6f4c8aa80f24114cfbfaa487 970602899a26be11a498dde9cfc4ed711ff182596379caa5307516e5877c84e6 7721a8c0849fc04a97d32b8cb63a8744a6a70487aaeee23e4505eb01581cffe3 1d1c724b1c06bf9c16ed5e416195b28006e8e7a3427574ca15164ae2d67f1139 358961b3b8a4444ce4c1841c99f73e4ac50644ea3347e8c7afb7f69887ddd1c6 86e1e8520f8be7cdd8293b696838adc422c2dcccfa84536cd8afdaa61be31958 da790d372c9fa653017e53642515975c8d6ce610f7f69c2ee622e2e7b3ee05a6 b1de70e8ab57446de2bc01455e69d450b331467e836fddca3c5a92169ac6a071 034da1072227828b2454d4a359b132c785efea9137c62690b753a273fb3e4e8a 20a12de0fe931312f8ba51d406e51d7ca5c8176f28335a734049eff0f56e4d67 63cac72afc957c8e32b21a1a48998467773979dfdfe92636dfbccf1db90ce6ea 544fafaeec2189fe7c904b87381ef21fa41fbe91d20fc5978d91b2407410c97d bccb13f0ad90e94c46d90c9882840df10f0a41217dbe780eab93d60d7c4990e9 2d5dfaf215375b66d2ad75382175fde915bba8f4e9094d28b388a0c3b5ba075d b0b39d5b22522947d5eb3037763bc2d8dd9cf7420815b304eb370189ddd73da9 9f809ce14c1a5e872e4ca08b0590a85335544927b19bee86a9866d310fa3f63a 15a7120ee1bf39752064119097306e15c82785e66e1ccf8befc60431d78faef7 87d8c7c9bddc3b8682554a15292a91ec5019aad4683bfd9e3828f25cb8079435 fdb1ea390503aefe465c60f3414ae08ee8fdf21cc3a45b53f33ff278edf1b650 f44ab5c756decb5e9d3636247d7d6f224ab5bc096754e1ce7dcf1b382f127356 67734e90fb63a710ac595aec5ad8c19e9c0d956bee1efd6e2da01850ca00f438 e8b5d9463abc0992d7f2f15570f3e847df6c0038a377e14e8b4013a1a477b282 7b73c797ed5c77b846c2169e6d1349a4da5c39dd84906e30e09f019b76e610db 0c36f54e0a62c7bf6373d41cbb3ffc1a4659d3b7b2c47595f17f8e0732bfddb3 f098a3303ed43818caaec81a683f39333ea27e6ab3db38aacb49b3897b2652b0 3796f59ed1c733cc0c41e743511baf42b2275c5a135de6adcc7903bac6207e19 576be1762bdd80bbbd94af2f0d39031585653cf80c5fb2dd677ffbca7efaabbc 90a3c3c338997444f694678acb08a4e2866277d3f962615898c2b0fc6ad38e5b 7ae856efabaab6f654056fa79996343821cd56ff95b6adca37a10c4591fe1057 0237d0cfc9d97d8926e9009fa82d167b588e1e5d43114c304d9b5e4f1a724168 56abdf98b8d255d115c7a26a5d7eb2aede1bdb8b61ed03fd5bacba1ec21c445e 1c913d47102967fe8b6255dbe8341f1fcd0af8af12f43e3e733fb4fee3046fac f0adc5eb56650b3e0a1cb936b82fc438a9eba0fd6e1654749dcd9177a95df277 616e691723cab1b58a109b3607ea6ab8c3e364374c6c77f04deb22d7b4d30d79 a725e1292641477c3f500fc88c5f68bb7279b6de29ce7bd7ff53ed71b6fba726 91a4036e5b04b06b5cd76cf3f8b5ed5c69814e2735f414411b6c13e0349f36f0 2ca8fc9e2f58f00bc586908c2efeefcfba24ad676797d0c37faaf090b6d4acfc fa2176a13d3189ad0eca12818d9ccd9972ad7552aa1bf124bc820e70e1b14629 1b7c18f455d6cda377e947ce7f864414ee32ab76e637744157992d1c89885fab 4ae4fc3e3295d4b3fd18c6c85098089e7c6552f177a8dfd9272ab1d8342ba53e de2bc3add1e26e0b16b3c06008b0e1f643eee251f3dd0f397ffbe744c34ee564 a54ca98a226692954f8b73a0bd0c93afafdf9f0e52df57b7baa74e1c1a6ad4ed 7894eb273076e618e27f5c5fd6b3a1e0725cc622be0e472b2ba10953016c9a09 bb8b1edf77e025a1154f415a9ede7d5643f06087f22f1d1ea8663fa2976dbdbd e96490574143fb509b23a7aa74cd147af01026eeda41fc4efaf666d01bc83e50 abcdf42fe97b9a5d17b0532458dadb87a803abef515812cdecc80c577eeaf28a 565f82ee27a7ad733790606e82dca0c05551c293256604b7713a4ae96d040797 c54f4361e0894c2fd02b05dbc565e72b326942a8b877cba344d18f38dba4c6d8 f8dd775aa49a7ec71dcdf31169bc8fdedf62379de050a4dac03d6a3b8ac9e59e ac89f895a695b88fb4a2cb344272fa44eb126f35d52633441bc0b97f5a7e0d57 e77bd57cb42216ca0f3f6253fbab43c0a06b87895bf1d0fef60127928ce9912f dab3f52e31034dced5480b4c9b1f9c9cb2c7a33bbbe961339ae04b2f1ef4ac32 9cca8db0b202f1d41c33e2c9a5c1e1de79784f3ab683182d55fc14d3f1fcd619 247266fc481520807aa72ef029a9c9cfd9637b98a254744ea6d241b57da42983 13900755b8b6f3f22c4c0ed8fd6fbd3ff218b914fff00a98feed00d9a3548d56 62e52adbcc5c1a154ca610d4f65dd36a05e79fbf800c8f97d8d88e4732b97e4b f264308a02c89742ea3ceab2fcac6f5477c46eca2c21a0819f9eba8d16494a3f 81bb90c0c4493a769a4a8820461075c970c2e7b164448f1c07f768e92da14878 d792abb49a125fc0b132048adde20fbd5a30b81445aaf49b906a98ece3baa325 94d492c97a8cbe95ecba4613acffea947036d002a630917ae5d19a76a0214c88 0700826b70b5016dc2f9b3c2af70b1d8ba 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT9 %!PS-AdobeFont-1.1: CMTT9 1.0 %%CreationDate: 1991 Aug 20 16:46:24 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 34 /quotedbl put dup 36 /dollar put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 54 /six put dup 56 /eight put dup 59 /semicolon put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 75 /K put dup 77 /M put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 88 /X put dup 89 /Y put dup 90 /Z put dup 95 /underscore put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /braceleft put dup 125 /braceright put readonly def /FontBBox{-6 -233 542 698}readonly def /UniqueID 5000831 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486be465959b1188f76df7824c135a7fb382c4e1 1b0ddfe856b6f34552ca48c24b57dd8448fac257c4d93fb122e1218fd36b99b2 d79dadb8a66613ef11039be77816a7a2d6781fe0d69cecc36232ae87a172afe0 95532a8c7ff40bdd4a5fcfb6ccfd8f73c572231734e0609c6743ee11010f6579 820b367c49069ac1d45760c0ce8dc1e67e2beb72be6d287910547e1b4bb52465 b75947d224998223275a2c340a1c14c04328cc2935c53ee2723f1de6357a291e 14863f6c1411477b3ea074052b30a4c1ef03ab324d678307e1cb02c7aaffa90b 73975378b9debcd3f6aab626a361be8068c60edd0b2be4a7bbf4efa21cc23607 bf7e2556c17b5923d7b0fc036d5fea743c55f2bbf72e8a61995bd63d7104a085 b8dd5a83d9077376a4ae8f0c048606bb9e84c640c52d0a95b35d48cfafd6ebe3 d6eb0ed88c1212818ca93e40614740a77c446b792d02945642014a5d55ba970e f97dcdd5b839f621a052d1085a1e668161d3ac0227c7867324ede883589b39e5 d152793009cb5a08eb6719a44dd01b6147e3436bdbb28215ce3d29a3b1dfc72b d942f8cb3376b4e12cff53a793d935346ceb2afc3428cd9313c671ec1911252c 19de341556999aaf7417aa5085daa35ee71353fdc2c7d83ec2dedaabb1b89b99 e4cb5282159cbfb45a286f8d6bf3abdedccbdcebaf6994b17f1be07d10f00cba 47f2fbf66c0cf524494c53786b0f88f5d96a18a086fbfd22b6cd3108ee918369 8b342fe978502afdebf98632d63bc149de9eab94230a55327fb96b72a85ef6b7 acde791164e8f856e95058b875b02a2262b85a2ff02fddaaffc3a476f7abdb58 f5b1df019a4ca14695cf1f238756b3ce61ffa44d543341b9c1a3b422ad6ad0be db2f2ef0ad1d60a8589decb250451260a0dfafca04c4435a350b80b75f198c1e ccddca12489fe22c127dbb5c933103e2f46ce88b88f2c675522e3298c09baa26 cef283439bec8604a719b048142c635d7a072533f108702ec1097a9388ab43cf 86a6b2252df5efcdce192f6ee7bd9672a63658fe79b260be2f2004c2ac184f10 b51d1103c4c62d889255f162390a5a91b397885a0b5b68f11a433e08a7acbc55 cffd779c901bc99d4edc03adff0cdb761dc4a69655e2b616074c3925d3f8485d 23deb100afdf09c5bcc38cd6f90f314303d8a68a3e0d22c760a4fbcd12565468 701f5bf31d07b1d4a429851ce202d1fd5734fa31b7e7cbd13d1db525d9ac6acf 853e6a6ffd227c8d7eefc71f070372e81ac9ffaa04fe3689edac3e868140c295 6089206f17ad84c09081ebc791022769a2da8a0bf6b185df6185669361f3799b 51ae5779c44ef079ee9928679c5485d6a1d332ff61c9efe9b7d17bc1a84e25bf 453480815ed5f6b8aea3f356712e52cf693d727ab65b2b13c5186462db65154c 1e89db23ac0fecb1a0b368da5bba4f7b56138f5151688321e2e208bd7714c75d 9dbe64ef5b5eb2c31ba313193fda5ae08a3b562ed70af5de2faa1029b75513ba 2f7b7062354f2938837ed4369b1207dcf75c373ed12973164a04e4ef04531b1b 954cfd0762fd4f3a9cdc29c026ca176f6a04aaf11ead944c3cbcecfdb92458ac 4bcb28052be40bc773fd55d6703eef7cd6d65fb6a80a83062f3020a8743081f6 e0846fe4d235cc0674d6629699250edf61f1723213b17e97f5879925399e7832 74756b4d3d96aaca8f9aaa3662f91a62b6b363c3cb76f3138963780ba8ed4d59 f17f9d428c984ef12517983883c8c0f8891c6cd33eb123aed8ff55e0502bdb6e c401c858f674727f4998ab9f743cb4a15343567e4a31f323a11eb52f38bde045 84fa6d7353b627c5cf3f3e970bb5b1bae3463da0318a24f3130c975cfff2c41c 460e9c66dcfa47546adf7aacf93eab937262434469f5ea676c33e77bde0670fc 400bcac6d6a49000c30ecb354bc24f75aef3b404a4e2a02343fe2f948d4f9e91 50865ae19dfd51c0b2d815d361ed5e042ffcefab977e73a16e6fec535cdd7fb3 a19970c0db9071f36b216c316877581fb8451d833975510aae7499a89b55712a 08199b2a8cf06aa2f22faeac15a1d60f09fa03a225356157ef6b2ce19b774960 6700c09544ccc918b404ba68eadc506e817337156a9ea9fd03df1ebbef6d78d7 f35c73ea940bd84f2444d621038f4e71385f434f2f6fcdb297ce91c329775e07 879bec8aae6f3caf5d540cc235f20d53b49b101c16b9a488a91e6f246d4a5a13 f44ca6ba1e12fb9afaa9fb95a66bffd6f29e09677297497db1d362d718a4e716 2a3045d8f9a865d605204f0e002fd1b784af4a4aa9d0660d24791a437acdbc22 204ec1d24b0e0d3752e07a5a604ff819137841ef20b214242bc5ab590821b6ca 64197f4831ac28e0aef25f6db3a7035c6ec18ff526d657483bc8152b8e40e60b d4faa09adf24abd917cfaa3e2f0612c8cf8365be7deb69bce5293eba56a10172 36d046984d7a38324400dde2c30b3c1d80955f06454222ce6e7c007b63066e76 2140ebf90e8a5070832a5c06a43b01159c0c6c42535681f82fbc72cde1dbb68a a011839d165b5bfb2bf18b10eb9e802f86c92a1766890a525063e9ab37e9bdd7 48f6024d3cec03b54629086984fbce74a3135c350370adf2132c85dd02343622 16b096ae53c3ead60cd37a4122ee7ff55b9bc565bc9d54961fe01ea71a801da1 12b9dfce4b1e1fa0efe1525969f1ba89f891fb6d01f306ec3cb70a2057a721ce 590f43c47a0251fb4198f9b529b5390ab9c1ba8b867730b9cbf72a2bd2a33019 63a7d4897ce2a743782f6d73cb2a1d9e0b2af9e53cd198a3363ce0af5fdfbe10 f0d5a3f8e947f997e5257502a7f767d071d27de70b8251ea218a394dc04913f3 e64d0804099f17cec92546ce0d8e7f64b651693e91d0f681829eb228a549e375 6513ef152e33d030e7388c7ee512b734de75425393d5746a850595dc940d33ac a7fb7c74277de02ea24ba02ff4c98a659a072f12c7858f3f8e0d597d10cadffb c5015c3dfcf2470198d5e6c77df6af141db4cbfaa7e06d643c322d5eb49be8c6 2630742ec106476d39e4a8504cfd4d4108fd1f9c66d175bf44b0af6782036d8b 5f15cefb8210c12566291b63a8e79284ba52d396e2c2cd223db7eb27392151b7 437918ddeb6466318ac503792573e2e1b306e2ca353b51c3a61cae1f739e5a46 c2fe4fa305b8c323a5418462503fff2714c70f263a61d9ae383e55af7d713878 5657d0ced17483c3c4be85076372a1dca72496b63283cb46c51b03e205d098bf 013d2e68ba5782a6859a3471af97fab2175203ffd77cef414be100b8b7e087a0 2ae259c6f1c61cd76027fce342c28d8ca1b0cf6559e3efcd45940be4b12ec92f 3965a54d6070c663d343ba6942730d242d612c2d64d83ffdc62e4aba227544f5 ce0a4e4132db7e7f768baabd3659a68802c7ae56bff7a9d4a9c9cee808d760f5 2aa92cfcc8a7ae865f87f87f2cd6d3cf8d2903c83f3827e044b971b5d802263f 69f8bcc18f4e426a0ef53339dc19243638d02aaad12da8481126b30693e2264e 4229f6070ac1b0a7f0689d188e47b59a680f28f128ae6534ba0b30dc6326c958 fbf3c82eae1e93ff4dc174ed673f717f8e3102678f081470f98a9d725283624f c512a4691c68e98eacb61ea75668531646639261e72b39ed45ccd5d6893832fb b9785e729f3970dd6c573b0c2385c259bb53d807646514e12531103e8c206533 242132c45ba5807cd3f281e52b703725225816e48b0fc70618c409c82a617540 597382b3de05fe28ce1e566c445d6e235490fb66ebd2df00e483f51e22648a2c dd196e195d119de206aad2a8e603b9db4c9a0107e8a82f254a3edb0340bb4e74 933457bf5f789c8f6baba2236349556635f25d3ff7368a7146ba4bc81376aef7 95e9dbf71dcf64d42c0534a844b70d9b5c239f0172ce4295fecbee39d144e962 431c1b499fd0d9d9f2043e5f9581a1b2105a0eb715bc97cfbaff550854ab370f f32088e936c7e8718a85c3095656a25325c4fa2b51f9adbed20a85c6621d6852 7dba282ea57a76a9123089177943b47720b9062339826e7740b179e3e3b1a5b1 cb88189449e815a14e3819d9c5734041d4b67351178c73d9bb4120bc21ec58bb 0e448eea6dbdb28f2c8404cc1e817612ea78fff77ba27e8ea3b16c57973c4522 4995211905ba4eca891bef74aa57bf089694bc9444f9449eadb58e388f7a0b8c fbbd38ae4d0999f5c53b7bf800ce991658bfb164a479d29ea3537d6e19170184 83f7b66da067e9a90c778be181926fbff1425fe9d5d96b794001309b489221fa dc732eb694e69b9fb7578590c23ac48b2d16edc0f51b406d9b49573aebcea59e 80c994f4d42a5a7bdbec6e481bb164f5ef8696e5a884d35daf18edad29a81259 5cedc1dd1320dd819ba98e9dadd1cf7b76bb3bd077843aa457720b72e0e8b3b3 866be96a83e77e1cb5a0e1c71557ea15c0ea4b7bfb9aaffd11493935400ed2d3 ab35f594c1ce811d233259c745d3e88bd7018eb4b2ae4627ec2e8fb63ac3320a f3c8426e7fc8bc1351368ef283112b4807684491e17f621c41e56fa3a82cd36d d6fc722cfc7d025e7cd972347b129f5406a21cb71734163fa8eb0c57c0cf7b51 78861768e729f429286841ef926cb01ba819146f6983e21dcae5ebd666a1bca0 3ef6fbb8c9739331651baded99c8373b49ceda26e7e6fd5065c97a3963a5693c 95f9489dcf6bf8e4b9606082a4ee42cca3b50b74a51e3c5fef5ba79fa4d79644 97c390cfd5c24d792ab986468a89d5b41bd59977df2b06d71a7277edc7def5f2 153aa96dc65f59ff391ff902116f8b9ecc567662ce687c47926885af2aafe4c0 ca2edf5f7417326d69e2140d2b939176cd90854d50d536847871c08cfa5f716d b5fd1deccf46c03cdf7d68a0cfcdd9cd9f8fec04a25869c7367077c4219e1374 ec6f21c2e37912022e25ed8bed2cb587c9a36e069ad7e1d73595e27d7269ef75 418f38e6e25fef6a5f06c21dcb850853d71e62daf6ee0590b4cf4e6d9d441393 0fa4ccf7359255fd061f16320bb32b3d640cc16e7c6bccd94942103df9f7dbbf a3ea2189be9cfd52a5fc2a6512af33637d192614e52a4195e53025a5bb967d42 94590f76b13bc9b017681115903ec0efdea47f4a62e6663b53267a8085c9f113 8c27af3a83a35eb9b9987733d22eb3988de85a98169e285984cd3a99984ee5df 1caf39255e55f932f617f15a0c3bfa42e99bc3e4fa6ac94718b35a558859fede 3a7099135be9e0fdcc2863fec71f1076205e4667bcf158b2cf390b39cf606a38 b9e696877f8f9bf93dc66e2fd1d20a3372d1cecbc4b05a6e12b7cb78e844ccd3 ead607738db5566c53338d905e9dc737af6bc53e1fcc1054bef1924f1644cac0 92894344fa239358f103f103d0e04009cce1f160802dda50cb983d5a4063d634 f6a1c880136d0cb82557e4b18cd4747aae6b36210a6d3bffb21b2f9f17c25239 c35e2d008e1e39f50d262d3a760b540110bfde240fa347dd43d564e07d5dff35 c01275862fb55da5c7131a7396599bb694eae4f1d7a4701567ce046498284780 72e8d860cd673c213059369ac1d5092be72002d42f42c0891df0d46495dbaea3 e353bcfdd00d278ee8ac9dbb495f91e03e2f53cebcdc926e3b8ac1bf7abc9620 e70d09392125c2c1032871b97be7208dc1a1cb30af16a9ea1db42d3fdd6287fd a70dbccc44b25babc15725dd732536d943605589c8360b389804785d9062220f 42965ac754543c7903599f126912dd887131a74d401a316804c9d8af9be4119b 39b530a956c0616cc4ca207618b6a2a4185dcd1644dce6b5cd618748dc3c8292 06ac9683d4ee774ed8b5aea964d4470b61cc07b4eff2b42b4b781a40e1757643 7458de526f825fb779d1b130fbed4e404657d50b8d87a602a81e427fe64910d1 e21e158823c260110b321c4d4e1cf9e439e278b6077019c8c5ca73ed8b6e7c01 c98ff2a731b056b74c6dd72d1faa62260d0dd06000c05a9b28039e7139f18c0f 65b32aea4ab71dd0b5ee762601e95aa464058ac4af8d71a525d8bd06ac8a0ca2 abd441de163b2d011941701ffbc140e96c41898437fbe42dd1431d12dbd03e5c 0d97a6069e32b94c58a203a17e4e03174c30961c23a4fe48ca82da2f462ff683 24d5fd0a5b1c41951598400e2b026a47f33fb77ecc61a5cb468bdd462900a4fc a2652e7b7690c667314ea53761308b993281f3eb9782539c4a91ef9c59d4d6ee d033266c7da63bfe8ba9ffb245b4cd613d573fe79e671d2412876696ea39ed34 0128d02cc0db6c98b8f21c8274d189f669b38248a34e7dba9b0c32a1f829b181 8ec0a49577866af2e8c0c84aa9224f3ae99f3fca29c9fa79b91938cadde3e28d d0673b0e6e6f231fa755d1d833f1b799d8205048dc62b5c2afec76895793a766 3b1adcf5fbe554bd4845c4ffe3f496faa8ca0c0f43cfedb04d4a688be13123cd 896b1138b71ba931509e9c6f5557cbe19af9e2c50ecf10ccfbdc75e4a1556e09 1a5dee1505a123cb9700ecd2db9cf130bdcec9fd85a2f5225e0778009b0693c0 706f02bd182936196fcffcd43766dfe31aee4805c4c6431203387aae0b42ac4d c76b8610b5405d00eb84ce95e73f69fec33117ed8c626202bb36b4be526103ca 69dc01a67cfaadaa230bc9ffca39b83ca3429e68499fafafcddcc389e51b63a6 c7206de24fb320b86fedaa49c5ca44c72009a3459bee4353e4acb5feb1faa40e c64eed406a566e9d5fc30aaba5ac72979a9ebf578c5a72d3dbc956c4ae6a716a 3ee53e31423a37efbe817538b649cf1bb81cec49cacb83733e51c5b34cef79d9 7a19502a73d1d4b30fac387be8eab4ea5d5599b380b7c3c6d5d612b22d212235 63e4bcd69be3831d0274e531450be867f054f5feef432ef90193c59335803dac 6c82a2f07fa577a023d4d4aefc0e1f66a7b3ca45bdacbe2db6bd6c377c1f9fce e6724400e62570f119535379bf0b918d4086dc41b352cc103a640f1e40d60cf3 57463f32e7e9dc8f257c0ca9e59ef723f081a66f5c5d40f1ac8b8661d8e271a5 8e86423567e6aa34c9d6fdafca8bbf3d7d73e8db38844564c4477334d55947e6 6f5f08c1d36c50d65602dfd5c4befd61b3e04dab5e436ec0a4e66fd01cfc4ffb 1169adc6d067c99bce201dd341d487b74dec52358bf55ab8744e98eef68e9037 6691d55d468b8f19c95c4fc518afda8e2eaa0b81d786fb6bb2082ea59eb65f17 7f228f9f89e5dd2613296e10d053f12666dbac566888cd137e0611e4ebf9a5f3 48e12f1b568e8421c6094ee14be747d3f91078e5a58ab2aaac362b1403a082a4 d923c7a2592dc7e06016d27748072579e3d356c1883e2da4fb95e015e2d80f18 675d92d5f660b9d91a08a1181e791b499407121aa07adbc7b216f3d93afdb3c9 f5482f51f62a48455ddcccc953fa664ad7f183b1125aa8ab555a7a0f17ac5358 39f5fa4ce879095ceda81c729a93dd4235deae92b5d47729c364a543de5e576f 71339dabb269664b987c92abeab17fb2d4efbbe9b2905ba41fd9767c47c97296 f2aba7caea20b84227ac8cace59b4727930b88b75d8fbad2747dae27d717c849 aab379b03a21386bd56db3a864a6d4c44d8bb4af93e8a34d08227f461227b1c2 2807e0762e82c47c537140a9a636b5ba75f3e9c51e5b0a96e05200ae97cd0a41 eb911a29636488751bd7dc765ab14668bf0a8658e38a067d1951add9e376694b c08abb95d44cae6203dba00a4ad309370dc3db1a5282356c3368a8e367742ba0 6142c9a0f4c2aafd44b4cf7d7ceacec0f29229676a0661e8b2dce6e4a7b987bd 138686e540e5fa292fffdf75e0026df855576d29c2dc19421e9878c77eb4e422 becb8583bec0117fb03bc3f5eb5fbe78449c7a3a420d401db84e3302544fe2e0 2ad933cb6f4d6a4d483ccc0468c1885912bbb5466b21956a9484e567b208f49c 44d95c07a0c5fb701f9f438212171379299e16874392267eb6dc24f43dcaa5b1 0c8fd62305fe89715d3cf7d975073b6f9cff58e2084d4349bb526c1a88d6bcfb 1aebb550b78f4e1a901998d16b7c3341f2a40da4a3b0c8b850230f49dd2dbaf3 336393069ae5d64e7f2974a203f0591bf22ec3098b6e3e19d92cb78d77588724 4c054b76983dbc7b438c0a63f0465cd4ece4321a13422c9a522df18304ca6d4c 2973c0597133968f70900c840e0ebd3bc50a55560082d1bc2dd139bc52d6ac06 ceb0925411e263b2339f1135eb75a2e41fd30c09a6a17859c03085b56339717b a7a932d98d8f21f848c660aff950d948d46b876f590450af1b4a9e54f97aad58 bba86b7b6d4ed78403f2350a812e788ae83398310c8973a4a34c78e01e762ebf 599397ce67780734286c585fd081a3ae04c7ed4698b3a7bb6bb40a3c12def459 c795321f05342d59b189701d69b030378da1c08b8e2abe1df05fa73045bf5599 2f8bc3509441aa65855ac3b6bd57a0fbe3e953ce09477cdc0c67601980b9a8af 6bc15d32cb2250d7ec85cd213d5d0e53b1515bb38c98c25822cf463a36f51906 510192730d854eb7a0fcc13e6c93350c492464f6de48e158a8ba273f83e40773 bf0edc5a3f15f6895082f48a9052bf7ae968097ac72a2f026883eafe10a035d2 cd216ab38bb23c59d690c46b58fb455f26de891220df3a09d7ec2a118330f425 56c94f417d1d942c84ea71d7a602ff7023b0ae5456d084a8298e7772d0f29bde 3f6a2adf2df0843fa4436cc6a8b27eb560b8d1485eaac3c82ebbb58c5bbb8369 7e79018c9d8e8fc82b9a6e92e2ebdafc117934ec1464a9b12f0b919bdb237c4d 297be1827687ffd871d6630fad8a2a9e3d69ec4b076eb17f5c10c8dd4e08a42a caa66abf8dfc01840e754a3c5f6d58ffb65aa707712fbae1a00f0145fb6e5b96 5d892d7e563b6a5d2c419939bf454af970de5df619de9bf15f51c1beeda33ab9 f1e74528315e0a8a140743677275545e0b28f02270b6dbe756a18d7fa167f4e0 d7b4d6cb6c2042a860ab2b9382ee48b18f38319ebec46d689a3439d82b64fc8b e8ec3450fca1a66402a3b0310442047bfdd23008d4294ca9591c8f5ab9ac03e6 0a0728e961638875522ed1c2f37084b1fb7ff4d392ee9dc7862b56aa1dcdb5cb cd135b77f27e118bc686d5a932363a9c3990f2f8d915928958ec8d15b624e5eb 7112fb7e1262f23ece19f04b5f53a6cdd72a7e040d72d202ac947984f9d80e7e 554c8f6cd18935f2561fae486b815408ee68a6b27d8ea5b72dad88c4cd3365df bbd1ab4511b8bd07f17412e3a861eb336832272d30b21c064a226760f0048f07 091f9197432ba88e853a69b7bb450146926aa0115b9b6bd9cf50f2a4c1e62688 493edc654d9b2a49f7259e89ebdd65cbe0cf2f7a0eb4ebd010eb94ba77009b86 2e6066dd906f3900e6189608bc12c3f88b4c8cb7c0ab2d67b1634d9128c0c7b2 f457ec56aae8d19229fd031e5ab82a0b67acd184c53f85ad2b228caadf1acade 5b355bff0fbe05fb020854e46fb7d560b1b4a4b42b17a0c9c0c91b73aebb2f48 538d2cf3bc1bbc0c77e4c4f7be1c3c0e70b6863fb139cd4b6d69cfd9fffd8bdb 94c918d7b147404014c2b296cabac21fc96a37b81d6c9b262f6eccdf017f0350 cb14fb1f806e7dab3203bff1ed6748b83a9226c024edd1c98e3800ccdc62218d 0124bab184c8140443bd3072fd74d8b6eb629114c1d5e092e9daf6cefb76b3fc 8ae00e6a2a9c70b0dfb37a5a7376e02d51ba794f81abfb3b1cfea6f22b0fbb97 9b02f0f4dadc7ba7ecf969133d7645ac0d72b5794b849d637de67e89629423b7 e65b97b41eef793cbe2f9f81085271dc0d31529b2209482f1b2f30f79b081f65 7407253197124c7d6bdbb11a010c0804455f31b8209eabb6d5803289550229ff 946cdfe40d962389fead3dec3e0af3ff9259c54c190d70fd841019fa7b8827e8 20537462de5d539632bec83de1fcd6c30b335a04dc6151cca439b5bc29b62c2f 81af9b1ecc6fa42609d491218569028dcfbc3783026b3b8569a79b5b6626992a b1e8f5fb0277d3b0f1029ac1fd9450db407a1676f465474cff8f251cfdcc7576 a0ea58998167c001449abc79856ce728fb785d2f30d1f073624834dff85d9972 70babc2a6636ed050b8903e5f85d592ae65ad7f26fbe49a9a5e193015625a76f 89f71f64a09ebe0dd6b9c8eed296858807e9d8e8ec267f8925f6d9ade2fd6213 758ccbd4bb1f8ec4a9094a42c6c6cd1f50d63165b3150bc997a370c56f86ced5 9b963f408fcc69671bacf7acfa9f5905a8b95ebebe4d61273727de87bb312b86 d9de448b6147a24cbf48e0cb9ff9b6ef49c634ad06c6f2a39a796bae347701b6 ea19704ec7af1c140e751b6792c08df1724523012f90e30b05fd75d42e4b61fa 7ed36e28e41130ab8c35e8d8a9a0376c0a6c14d7fad27c58166371e4d1b96bd9 af17e95dc151758640023c07237782c6f26265ca28ce96ad06827b248ab8ab28 abdfaf3d1923b6894e310cdf5da9c4184f511703885cf38e2acf26226300bad3 2dc0063f7a1a4f48c9ed7b1a7ba1d753076f57fda57656d57a894098dcdd1725 1cd54be74b6a908a3ac9615260146cd87a27f92bcae74780cc642ec3ecd16fe1 8771dc5b523fcb5499393917abae98f9ed0a4c4e899bd23c4d6fe0884592c799 b39587038d39b9768e07cf5b1c3602548bbf52907c93a194b382742381f71904 6d18b5b18bc262460718db348983e560cbe009545c7f16269802614c43898652 f67cf6949c30c652b7fbe6ae93e7591f322cc4090d6188c4ee17813dcd6c4872 ec29a52b2b8839795eebc1b3827ddded2290a82a6b3bb9170740f6da6f2328a5 58a0cb4afae245cba74ee9bb267482d02d32d5cf73f7fcad695f5739c027fcbf 9bc0178c563715139f945154b6e240b87f5bdf53533ea521e86943c43e3f1614 ed848a7f8fd375f733b3a8112fbb86ab4e31b5b2d8acaf2867ed8bfc3bb67319 f465239aae1834e5107fad65f147bef851f57a0b21ee559defb986301b08cdb0 0d0f26d6c0bf981e72c23fd980d98221924727068b8baab7470770c58ef55bf9 d22403071862a43f9c8d36833029bb759607168508c88abad5443744fcb37120 3ef08067d30d1d2774223b70b07a51d5cd8193ec5eed0ad15b087d3f2329721f 8316f36f7f65b94007bff2dcbe8f38ea822e1ee129fa834c87714fcb289a2dd2 4d2ea302a2995e03bfe34643d58e4fe84c0e69848ad6678ab36863ab60335e4e 6379da0572f883cbb648f835a0a2926bb600e77b90d88a582fe163871ce2ec76 d0afc8b90f9fa3c25b6057bdc66c61052305d45947b9ecb4c4a22903f216b73a 7fe848924ce7aedea75d66007731db8cc66cca4f82c9a957814c099ec31fd348 268716b441ca6c2c53f3b3a0aa4b580dbdfc7f425bd4fcca27d774a7b032b7ba 1248f6283c8726814d6aa8db9a5c32badba453a759ba548387987c4fd522120d 6ecde1489e90a3657a707395b47379a645ac8eff956053d88ca1548f62bab2a1 7652b86ac07675a4411692b7b66f8e03ef20569481baf9cab315f0760e93053c 644e7b2181cc7bcb540093d16a2c6497fddd885ad5c8599ab48cf645d55d5ee0 24c2e48ee8abc68162e0ebc5cb939f0adb8c2b983d214247cadaedfdfe00d6ae ccbb3cbce85af3914b38aa9473a248cfa5b81695e8bacb016e51f6c1ef144478 28f9e9805a521cda28df91d0230646a7baca1d4a93dbd4af20899d8543f7bed4 c5edf2468903ab0b3529e6a9e871a8e1fe76af5df93a8d292b428af3b69c88e5 a8a8d5f7cb0706a0fb7488d38d568acd5c4f934a78627203ed8c2e0d7295f858 51fd70e5e72a6f9b6252190d48fa37af76eec8bee64767bcb79956b7c0b29ff7 bea58091ea18a9529d7db25b3ae7c396781359b6c999493d3274032b42f05419 93b1a62c370452774b90a803134dbbccd396ebb091c1d3d86b9a436de1928b27 13a4208de2b9e08a38e6cd56627a22a3194fbb06d23be904cda0a58c0c7e6520 17d06f925c0f501f907165483daa6eb89d2353617c847c011d8cfd93be63ace7 9d75a05bc0981cb2f75b722e570e5e229f97576233c64f041609e1e5273e3ad4 1a5ba4c2191aad1bcd5f7fd969a567a22eb9795aaecd989cc73729ec1fe2a7fc a08d028e67758a719f7970aabf20f52ecd08d425da4e1d5a63c8abf1a5df7fda e3e4e3f769add568089a92b47ef0ab0b334a5ad60e5017b8796160caab5ec981 b1dc725ac7fda9b8aaa19944c50777711da6e4a110bed7fdf54354a3e3fdce0c 4597c5fd684aa1a63f46e30a63c9a7bb8b3223c4930a6fe8b0f51b1c7aa02d03 04c9dd23592d2e8298a607878b47b4efddba3c4e69882604bfca2646a8e6d817 537bfe113d4b2016f68b7623dcd7575a87a6b187bee434b3f5dd3cc5a9f3f871 1fa1493726567e6b9a5bacb7e225bab5d2c2d995f059d23e82e2c63d1ecb01b8 2c15ca7decf28ae8665c93c790a4b722776465247b3f486c947b8b2591a91315 d9b18544f328e6a2246bcfb47fc65156d067c921516cfac88740487a15820c90 97385b2e6e7748ecbf05d92c6431e3d6dea090dddab378b32512814163d4b4a9 6afa1c9f3d3fea115fcebd3b16d7eb5678d554708366b482852c89849f7f116e acd630bdd47594f86f8c4cf6472303b91a6591bc24789981d0301d783823e6d0 c472f5bfa193ea1510f177ae733fb3d219b5b4e16eeb579f7df1aca284120b5e efe647572ee63fa2554c9b19ab78dd35006b5903e00648bb512e66c9437c8f1e f9945616d298deafad424d31e8b659bc051c9b71538f01a951d348836d440cd1 cbd8f7890e1be5b5b9fb76ba6fa736aa5726d95cfa1510ddb87b3244d1a07979 c69ae613b7789321f1956c905601158cbe5a9dd508598373239f635f6cbba0ca 17035d1270d090b2ee799be402197f49ccaa4d25d4dcf092f2cc27c8c21ee528 c6a019aadaaa45d5bc800acee65d2258ccd4540739c53509be5a0b4b7fa22c08 bd868b6f3c0f2c026bb7bd16cab924ad17eef0a2e137931fe5e75256ce3562b2 0be9652cc835313bec23aae46ecab080c5aa82666773157167e4ed165115923a abf1d2ec8856378f43c202d0359c9e5e46b975d2ba48d72bc31ec53a733bb43d 2c0af031ad7dfa97b64eef913e3d8f68890505187000982c1ea85e055cfc4a1e e69799a2697bce944ab31887dfa82915aa470c759a3b05bd9e100120761b4ec5 e6fbbe0990b7a95b0064ca46a42d33348686856a6285daa9363c1084466426ff 75d8a30a08aba7989e0800744f0bb10a4739e6adf6b7a03c0d43267765ec15aa 3f356a5213c991341c1eabd73ee1e452e8f750a718c5e85b6f1ca083daccc769 bc1ca78f4b44c6af1bc10c294ed7c783a83354c7a66a2d2ee0fdc91cf6ca2f7d 5d7655d5d150050f9b38841d35914bfabd2093d19948250ea71095e2d5261eb7 d4ca8b0d4902cf0e3a3f63ca8a4163fad917d5c65a2febcc66b9f5b62e41d867 86cadb44079778341152d33d1fc124e229173b8b635535a6151724fb96a7ead9 8146ec2f54d4063fc585375b3a510221e440ce6b26bc2be67cbda51339c4ed70 05cac6758c0af9236f483cb77af6f492c2874899cdb9c1a4733f05da8ee42cc7 db4908c8277612f749fb57e61edbf561f31cf0a659731ce7d5bc8fabceb81339 c5dd46d92d03bb88fb7bd3c096db80d430f5f0ecfac5feda057e285299d0dbcc 287d7eced905822d6363e341d8fb893fdb9e8890a3fb3989a303ffb774d48093 5a46ea9d875fcc40acec62c73009daaeb2d95e24d460c4b6437007e31ebe9f71 e9f9349f6bb63f9c8786abea099e796a9d88a55e58f5e8cebff73a5de591a735 9b8c9aeb1ec3bca668da604d3db1e33b0b3d2de11a7dd3d1bfdf920984aa3398 9dc854ce089285f10a204347d883674452bc7905aaf768c315915b258bcce6c6 686a54bd4c831cfe4bca1118772853126336dd035c374855e6beb19ec1364b60 57beabb0f8dae8ee8d9808f8007c90c547962087f3e4532ed1044273cfdbe67f f7ffe42e944deb3c8ee7a3be8e98f46cba7692e705c681f8f41680f0dc4a38bc ed3882d2ce3f106abc135b0d6f8a333f57e2025da1303c7f6688562e8bfd0ee0 a50776fd469c0504185851216a342c8c0004e0f97fd3db699992ba028ea9a50c 0117e8cd0881b64f4d1a6491bf92b50655da8f79b3d8c4e811b4f68c667a7aef 2f71690d5d4f6d 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSSBX10 %!PS-AdobeFont-1.1: CMSSBX10 1.0 %%CreationDate: 1991 Aug 20 16:43:06 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSSBX10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMSSBX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 13 /fl put dup 70 /F put dup 86 /V put dup 97 /a put dup 98 /b put dup 99 /c put dup 105 /i put dup 108 /l put dup 112 /p put dup 118 /v put readonly def /FontBBox{-71 -250 1099 780}readonly def /UniqueID 5000806 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd800bcb325468d2c43f9469c605847b026bcd2 1cbf124128e8ee31aa6d4286fa6d465315407a865001dbf5f9a84d3c7974880b 04bb3fdcc784bea5fdd113f8fbd8a454347aa30bf2f5369abf0829dcd5378296 a42091f24af75e9e8310e61e74704d7d88f586944710ad7adb098ad4ef8fb0f6 34873391837c2456f1126b8b6f2a19c5f43e5c47b746fbfbe14db596bd4a5000 adaba65a30556845ae06c6e20efc20647fd0cc730d587ddcea79c40388105b0c 20782fee3f0f2257b942de0853a1ee99805fe77e1796c3d2420f5658fdf30766 0c5525634b2b530a17b104e9a21ecc2f6a30e22520eefdb6a62600acc6b6e690 358036a18b2f414ae204fd429694fd212be6ede4bf941e3257f88a03a75aaba1 59aac9d0ba10cbbb4d4458c8bb0b3894d367d6256d5577e71a7c409a6f955909 e0f05b89175e89e50d833178e230f23553979497371147f764d7d5f8c7060278 d4ff7b299631604cf2b13e03038c1d2f8a726cff45122f37597dbb6eb8dab326 f200eccbb85c7e45d16c0aef3213e6b9c6190f6cbd1d0c9b24892fe97e57f2f3 a35a9ef6f0564ae852620bbd8d333c1fe8f6423157ad465809c536e9bf60700a 6d86aa05bc4257a31cff4282186a1540d0c9f91526c436def5a58caf23890bd1 e4f862076a77ff2339272d758ade8ce76d712d09a66a486038c7526ba4ec8188 dfcb3554fc97d7896893656c3b0dd357ab78098b97b42d507072e35112e7bade 4f03b0a7802093c546be61c5c9a61562f13364ce4b089a976f9f5cb84f83a077 44631b9532e1532309e42c60407656ee331dc020c2c04dfcaeef8de0145ed640 cc6e4f5111c718d64ffd3b1c32278711bd32e1ae3ef02a322ae3e5d2798c581c d176cbaf1e95d4c442567fb081fa0627b54ce994de6b1c065c1c2910f06e3969 e56a7430eef85cb312e3d1a96678eb7b77143024a46b9966b1c20cbe6c671cf5 8b4e14544abe0887e20e7eec7169dfbd13423e4b8e3abee888a7526502297250 d07445a52560e247c07ceefbd66efe4aa4ed08d635db3290fa7a3ad8b740a373 200d535e00c4d137b25101b991f409199795208ff0b81c125e26fce0ba4382c0 1d21e1d3235cd2afd3b294a7536510780b6c1efbe5d1a90c374d5d4ba89e20c2 9b9193862fb29de32eac5141be5734ab99c10118c6f15e9cf5d9a5ca444a6906 eaf832721ebcc5a53cbe0b0fd4c49cdc3ab7abd31574e6cf611b817f5026e47a 8d63433f78f6f80f57e470ce8d4c1d09fdc6e0148007d31745907cdb57625697 932491a93ede3400dc89773f9b62628d47f5d1abf653729781a4e21f96c54fe3 87574d016fb0b3797c7cda1c43373458a9cb5493a73624b4d3312885bb575d6c 7385caca50f0c38ca9e9ec16fc813655c5b7f6e414e3c29e856d099c7913d65f f1535d01723ef164fe148fcc25b942ae39a18d469ba0bdb01fb8a5022007fbda 7028d66f0c2558b1691d768f8a105ed24d9bf1fe73fdd624e78d7d68f94edd56 4c5b60a894c5a5d766cd0712bf4c472d3eb121c497df08a693ceb7bdd3c0c797 d91adc2f9c17a78c9736945c2480ece30ec47096829fb9ac2ac07378e4796dec 2c7ce97c78d3aad517d5b4ba700f8308dd36ca1c3d6dd65dbc20a4f5d84c9be0 1a619f6f2251b73147df01062e2cf6cedd8c4d0a2afc92debed614083961eb77 6474dcae6136ef3b8cb62c1125e26eb399222d0c72dc15ee3b52f599eaedeb3a f518e4a206144bf8a1e81c87669e6a8426bd8cd1f579f42d92a87157e4458d3e e334ee2f870b04b76cd772853a5283cb037256bb6aec6cc8ba4e2f7db25f88d4 a762826129e4298351f65cbdbebed9f5a5882f159132ab3a2d96642ed4ab0d5c ff98737620991ea4b99470349a12507df391e8b77efae6a9493d1faca6e97c1d 13802a3961fb328de9c3d229b23708c9d7108b3157f7d9da06d4ad943ea766ad b513369b1737f460d156cd86d19e8b1af775cfebc878c8c16125a33d863d0605 c5bcd9de18a0c9b02f7a7e450f907b4c02c8168d4b0a71a4efe92c80a084eaac 422609b83aee7fe70529853ccc799be37fe3e53a6cf1aabda59669b068287a06 1c6492de498fc8c144fda4aa00298e329e2fde744418a4a86a58640a12813233 7cac92c8df8d66ce709602e37f6e5b1eafea9e07a37f66e2d7e4b3b9cbe78d7c d5a96b19e76c310e1bcd07d08e393d966914f491b15622c2f0523c9069feac13 167cf877fa1b85b881c81b3cef11341dcb62acdaa5bac8b05ce178f9089db0dc 278b2bbea577b450cd488bf0e1d86180a81662a34d14a55443562fb24c9910e0 10c01c41f9fc968b8a14a8db9ae57099256cf78c9e7a44db770d92d187244c05 4b5f0c780ec64cab7eb55cebda54b5a0e58610e14672dae4a6db9f0f6b8058af 3c8166e66d9ed4e7004fbff45e44bd46c0998d55de111cdf94d04eb95e3b099b 08c6a67bc531f01d2e0479616d43cf0c69bcd0cf7025197fc41a0aca90367bc2 e3c93f7d556fc1938ff85c91f58a603f55a983712643df0d04058ad7b05a9143 503bc8f8cbeb0208b41cf5cb80fdc2910290ea50bdc77697c8583b1ffdc692a4 f810fabfe308d054665d6c9611840b83c39fd5f537d6132bb93fd550cb8ddc47 a25e424d79921251014fa2d014a82ea097817a8bd7cf0f8ce04041d823e836f3 8b0d16b587d60f07fd8131cb511f8e4b62d9463158e6236430e978e0bf76b598 48268ce6ccec572f3d24c03a4072572ee7ba1f19dead4f74a1120c03db6722cb 8064d8c921a0cd46979f7d1078ade0f21080147f6f1fbfbef96cc598a8a80634 e8d2a42385e2319470c8b73e434ee356bb96146d8a84e445223d2ab2216b17d3 ba49418945d42260c8ef8cd43387ef8045d9cbb4b7f0768accb80b03e99558af 0d8457 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX10 %!PS-AdobeFont-1.1: CMBX10 1.00B %%CreationDate: 1992 Feb 19 19:54:06 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 45 /hyphen put dup 46 /period put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 65 /A put dup 68 /D put dup 70 /F put dup 73 /I put dup 74 /J put dup 80 /P put dup 83 /S put dup 84 /T put dup 97 /a put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 121 /y put dup 122 /z put readonly def /FontBBox{-301 -250 1164 946}readonly def /UniqueID 5000768 def currentdict end currentfile eexec 8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8 97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc 8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011 b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415 50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e 784c6bf7389803d9450b0c21756a017306462c563d51ece66fcc9c831843ecae 1fefc1a232e2724f7baee428ae03aadb95c3035345c15e9922fe49e1f2cfc980 237316572dbc57064edac9b0db8913a5e2d45e97e19a91435ccf8adfc835b585 48e74b291446d689c7f2f8c4325e8356e974ae30c3e2977477baeaa33d141fb7 80f59351e84bfc88c87b3a4a1d25e168b9d134554f6a581378c7d2d6eca8ac09 045cc3a5e0ed86f147133f094029e3483bebc81cfde69942cf645ea20d0a2b64 5140ccc2f9cb4a3d969f4b0a79cd3329b440dfcff5285494406f3dd08d804c86 df191e57232f6f1f83df6430f214e03fa5412b1e13d83c60c52a698bc9a38159 19a64162af7b83a9468fae9507c6cb55ea80df8c696dfbc3296c663902d77e89 a181502627281181ac8624f65be9de5fb32f056cc7dd7cbc7366a91717b5892a 34ef6b441871c6993da3a81afc9bf70ff3842a21a29c0e49da1ccba37dd6b920 2702db510b8b1109acf4c27ee8d676bdbd16abe189f34a9b61532eb777457698 cee0561838eaab2d3939c5093afbb215bac433d1918c739b62566906bb2187f3 378521fb52e70c18886e1aa15f53a1f8a169528cf2ddd54c203613ff88e619f2 6c9c50c2c3b8b8c868a88afab1dc8472e7b6f3f992a161723a3c0904865a7c42 3281601eee91f35222c4a71f343739f102eb43145a47e4fac3bd666e4c114a90 5950618ecb1bdc29f90f6ebed1d8325fe6b52e14a8870e9b4bb088e585c71b91 493c12845a101937e3473ac5e9ae24f7c358f06d590d7618e1a1d5834d87621f e3f5432b655eebd4ca61a7b00dde0aa740796ce88a43d1c6952f8d2ca63d30b6 dcbadbb0dadf13150a442714675dbe51ff838f2e47ebe8cd44f1eac6ae5b6ceb 0b07af03f5d3896ff935a198aa635e337e367e1e128d15e31afe3ffca8245e41 a3e17011340e49d52fa1e322b435b4f7f2f49ae01f6a319f68d3d786c24be810 1e1c975a8ba3d62b34cb9f5b9a42f36a24ad1453af977b0ecf5464960757498f a1fb1d4f040738689d4892980bc83b2c317e95d5e2480661f7123694194f0f7e 49f3898c0f3bce817d7c8aa74fc1bf2980fe3060f6dbbfc9a59111ae61d7ea77 2327140c845e975d349160a42e805d4063b18cc583cad0734963ac154071052b 7491456c4becc645986c242a501b1bbdc2b58b52562474e304e8ee19e02d67b1 d27b93c1ead3741df9da1af0211c5f912ec731acb58fd3978f8d9d1aaf7bd670 62fa43b6f93aaa16f0d67832d803966caaa8d9842cc89ecbeb04ac4b10680ab7 fcb741970ed89f2116964290b64c1e49ef437ac7a9d9553bfd286ebf57f7cb4c a84224eb2caedff3abd28e2dbfbcd3d643b554975fbcc2e72b17a9f71f3c464d 4acb243563e8b21d86c8a3652be4669df4dc566bc5bc764c0fddb048f485cfb7 337a300ccc1fa838f20cad2e7711eab8645204432fe3b2dc2636c5deb7f07168 57595875789bc9f8f827edcdcd40ce70c6ed29f4b8fa00fb03c7f4d3cabee66a ec463c5dc72ec0f2ac3917fcf4c0f743abc08259222487944a7a89e8a118c294 3ad95f33d2fb6a508e1f03df0d22ccbfa4cf3d305748c8966efbe32940d5f362 940933927004ff6889c1700b6b5ece3af626c591ae392bf4580d405ff2f263c9 a1374da5f5c34f34eb69357d6966b7bcedcc46fa85aa8656eff87cf6060996fc 82b0de03e8e2b806d3035ca1f39bcd751c0100693071218a1010b5d9776aee4d e2c3584ab06c352f25a1b7d2f19fdc5aced3b4cff3d18dbb716f866b95e27d26 4b3228832b10c515692246ef48110f283cbe03b3693736e41d3e1d76b1e634aa b581028f1adf7162cfef684a0ed0bffb806c2b559b1a5d972274b5cef9260a62 cef563b3b8b66fe19dbf11eb74ce5334f610b495b3acdc1f74d3c91e4ceaf1ba 2c940bec2d22a86fb1d9ce24737b9b02b10bcd48b774820acc1752809aa4b928 b0d16f58bf7ea88a8067dd54eebe7567d93ff908c77d206ac7c51b8d73ddf91b aac08f34b092f3a0e37124dc7c926c939d2cf11319eb525038b7bb2e9c6a5f65 4e3a265123520a3ab18c583e591a3c7ff9b9d6742ac8a6160aa020c8bc6d7c9f a13df7be88ad13b84c56202c2d3742a976a6b9076094daec3f0052e3ec648740 259809abbe049539393735a4bdfbaae8960bfcc456828018a74e0f198562d70a 5ec1e00034a2be0ebdae8d8fd21818be42f8516a5a225e0c9ffcbfda69a93d46 8db37420faabb1f1ceb9f23ebc6de046fffd614c99bacabead5dc3f35f4e5ff4 8d3d50e0a071abf809c42f01ad22363b4abc170b83bb0ae13dbd630dc5d4e819 ad3882605484a339d825c53ebfac94be8a5b53fa59d5864479fee4815a19a547 d7ecb9d9fabfac17d3affdf4fc3b97281d0a78effe6cdea8355d64e3d2e0a3a7 2b189c543773468e7fea338f5cb8f65a660046d3721def364be521da4fbc55f1 e150abef199a29a8e6896377db306983ec495553f297e28976abeadfc51c58a4 419616268d699b80451099c7aee599ae27f0b944ca8b41e15ea450cea78f8b32 0fff78bb87d22a7d236672e9f4470e42cdec6ee4a7ae9e4f7f6fbacdb85245be 1125121e9e3d6d07d668551d6ae0070f113dcec10afbca41200260eb70e9b0eb 2716565d5ed268822b8e38a8fd0a642e63889f124697ddb39bb6d5fd1a9bca64 3fb18718f78329476e6f2c63c1e3d5d4d4c8132de7e2d023fcb823c5eb978cee 7cf5df7568fe1ae933dfca239d3b3865fede82aa8bbed3d639ce84250ba9b7c5 9728b6543467314a4a8baa2e4d2e7f220337fdb7e17857a9753abc5e2289f42e c8ca40ff6b5b6c2cf9c60101318fc7560211d99d908cebbc6f9e513f7ffe908c 7b9f718b14dea6566f3c04c0d728051fd1db9be584c67037b1776844bfcc4548 00ff57af5c01b2df8d4c8948bb6a4aa9da56a05ec2fe3e1d71d0bc6ace05b1a9 517d08a8ba764bd0b568f97e4353cf42c9906884a27d81b04760bacd2010e1dc eb39489260fd15c3e58e6b874233047b7b8f2f1a6df9a5d1dd4e34e015432b92 f459af143449c66d9e24d060b5bca30e13f68a9a0a4b6779ca474e1aeb01e924 e717c0e45a353d4a74565aecb9975211a89ea5e8f75441be0cae66fdc14791da bbe3467e8b6d0a9af263a3c057f5a50b2544c3769b1d4d7e51f3aaf210de9409 be0e4a4dc77d3bb86742d0a5113036f6bd5d98c9cba116e69df86b62e490f6bd 760706dedb4ba4b515b09bd98229962ff389a6f42edded38eac728e72bd343c0 31021a37f1fd4817e069336be343adc34184a6386a5746e11c8d1d547332cd5f 7cfd917f359b2f230dbcda925fbecccd5c65dd875284f7da36d864f6c479bf8f 40ea723ffbfae8c3ed9c56aa637893828637a1b387510edc774b2fc76399c169 92ee7c095fbf90ffe1bdd8dedb05fe52b280488f560337086be34475d41a37d9 e01963143467da1ba2fb5a69aa07043ac16ebff30ce654b7fd8b52be442abbf8 4c88439d07f0bc6f31c7734d9dab71a60fe7ec84ed070bf2e6991700989453d4 52a02eb48a7ccb1981dea303327e20065d0e81978d00797419b26095d609c486 5252f05c022367433d8668831850e8c84d0f12bf294fa4deef105f1ec026780a 1540b9b6e538eabd47e1803db2702aaa67e79886ec40460040fae57317a21e5c 32feea92cb60f60e82842e367184929c01ec7e93f92020364bd78e8c1f766a24 09f73efccf08ea34ec7a37666d47cc49169e097145424ddad8543b0a983b541f b1433785d7f80532c0954ef76145fd8c6c4c74af42afc59e1ad7ff28324f86f8 da3d5487bf0c5d2f233d36713a9629fa5d8c86a5a47e7234d1458bb38c9b9121 807c533b294a12d5e26ecdd57efd9118b563beaf859f688dd0bfa1beeeec61ff f96a4719682bc35dc68cc3460d3aac7ca9957a154f4ebd9161c045a5287e9257 bdd905426c18af435c44b623dd1e2d082c45355eb7d0d7b168d8d60e8043dc80 b45c547b5ac00b984b7fb98e9889f935780db2d307688eb89af43369da9553e0 3acd1e8d3ce4e516c03bfc4d2c395e4c889a427907deddc2d07315fb3d3176ff fa8c1e87c553fc80762f8e31d9ae3b070994d81e025233d8655177d27fe768cc d982aafbbfd40c862751522cda5a53ca8ad1df0d68de3e4bf2b33e5155644efe 07d506a1347cabbc6e92b35eba0bd5a40c9e6502086ffcdf144c73c050a57f50 4db607e6acaa695831e3dd960e7f35c0c965993a8617f968dc07fd8eeb9da1a2 aceeb3b41b144bb466de863b98b342d3f7accf6de62b42387687f49d9db69c70 ab9698c6ab8ca56cec1ecb30db6ae0f59486cbe19db3a6312e991e635f89f020 c030accd2feba07be5bb50592a883ebd693fc7795a084ed344bfcb9951a36565 9fcf510258aff9ef24dd61489d56ffbc1e66e1bcda5ad8d77b412319c1aa4493 401d0c0d28a16f8c8d43a6a3b375367d14619a2ff31636a80c840e2eddd459c5 07b38873e21fc488a81c884b6c601325f660f78fde1850193e31969354b752c0 753d4904a22cfb25f62cd55579863ddfe6736e38745e118961232ded2cc5c078 d2ea70772c93d271da10d8b6cc3adf22ecd728a4c40c2e3da0c58012a990468c eca6480e800cead8277d7a2d68d980d0d3becd31c98449cc5a4a4b3ca2b9586e a95bb6bec52040a21b845a4473dcd0981e95e89a62f5dceb10e1853aa689edce dd24555e7d1212991f0d0bba93d53160c43bf028294df4ba57a4fbf99dec08e1 c550e58fde1eecd40ddb2cf37d1100d5e432e95158d44921583b96ef715f859f ea2b6ad07a78d476da3e8d1fdd1a58425e7b3aa3371ef5586efc658fe6d080eb 5ac1a4ae88b5c881721411751e3851957b41aa18a21a4825df996cd2ddaa6ed8 5a534e0289fa9adb028b28d208ed2ab5a7b635b2b19f97b2588d355e88208197 8acbf6420ad0b0d3f31744ab3af116272223a350f285ac3e6aee8f800b3a32db 01a76d3c161436c2e17158f2c794b7f967ca165d6f01d8526ef9b6664152c3f7 4f7dc893c5219ef79714a3efdf348ddf3c5b4d397c1a70ba0c7250be8563d2fd 571c897b9f614d59bbc3757f4f3c2958f3787f103c610d983a599819e18e75f8 18246f70b4cf0dea19fe36ed48fe1fb891fdd14b6a12e1836aca4c411e00cea0 684b07394a6db7f5ce943e51a0b056b6f58c003343b6aab332148521bfb107e6 46506b983c29c345ac31c7ed6bdaed39051b752321720c28344a0b105883f772 34bc177b1adf3f339d1273ee287bb50c5d2247ab30f5a76878d978d794f3802d 7e988cd67b9e4d9101b8f60c5918933ea3541dda641dbf88aeb03fb8b6bbb0ec 9a29c0e96a222fec5eafef8ff8fe6bd0388bd8542314f1ba2f3cbd2b45e4e5d9 7b0ed0a2242b6ba82bb7f2f15e34e082000aa0029ce493ab442220c00a1dcd96 19d01d1fbe27485e6ff050b00219aa2dc17072ea083f22816d1db11a38c990bf f0780c10b9b128bdf0652e8ce63bdf5a41fbc8b26a220166b8dc80d3978e58c4 40689218264302e168d4aaf062361d877b4888a6a4546d07600d5e7b9aba14f3 23787011b373980f2d30dc70c0d6ed02c9c04112bfd34f884f24dda180d84e45 6c62099b6d6d2373b3a9280b99ebe09bc3d2cab51d54cab67540dc0704ed03bf 916c7af39dd571b973adfe2df16afa6bce652954e3490dc4c6daa58f2e2832f8 77e3405b16863ebaf795eddde44b344bd80a0c6c6e54dd52bb7b48721b9a7e2c 2b081ef6d9a068fd5d1e64530b18a98b4f2524d742a14d839ca02921b4ab06b1 94f5417714eab4bcf81d80381f83cb9592a4b3d5a1de865db4ba3f01ab99e7e0 55e1a0efe59a38e7c75532372d74d563f52ec396301a7ae32afce9497af6c130 a263b57907f196c518747a09f847f845d4ae174a859382fc7791e6549cd5c34e 229bfc36685729ce8127b31c0aeefab4ed9982b53a15812d6acaa4eeddafa522 ebebffc4e1b09de9284e4e8120c8abd38b5a35f315d84798600579aadfaaa871 21230baf625ec8b0a99884365ad2e29ec2a359e00d5d480083d265c4eef1ff0d 856943101c5f23c48ca8fec3e85e752671f7867dbc1add50ccbb41f29709a696 4cdc688c769825d6458df80c54e5098811b4c9f532c4f53b09a8cd5e415c7122 b55c182c86fd6616a330fe8e67932714c23339de6fbc7b6029d6d7ea0f69c5d6 ca6a46ae09033483fad46a10cddbbcfe0299ac955a2ea445814cba8380443076 a3afe8ce899a640f94e677ca48331295499474704a3dd80a0a026392897018c2 18ae5a10690003d137721d691c946a267c07f6da02723ae7b05a3e3fc3aae39f 5515e918cdb08f6a98ff7b53acbe3c08db795fcf5624624b57bbe687e2472937 fbf336227a4716705fac807df4d113a1a43a4e598baba254c6e3bd8466898c20 fbbaf6e943f31f3707e0bc806a8efe0bfd47f614eef60544a46d8b03df82e168 406b8f46d2d1836f16175486a690905a818305c47a599055f40d627665e6efb4 2fa79bca697fc57509acb9fd41447b9c0f658cd30fc9ce16b7b3ffa1491bbccf dcec911b74450cee0fbda558305f2fa21b5702c7a68faf68a4f871faf3ae4baa 45ef3afdd302e4b1f71fdb7a4ce2448d07ced292217c22c46caf990ec3337a8f e535654e717e8578a121486a9ec9009c4f6de99ec1de6dbfd39a4b4c6037651e b54a7c478a871d9100211ca247d8ac5a329e6a91d52b550c18f3a82c1cf042da 35c5142ce4d609a3f4e36632393851f01be515860122680bd5d05085369dcae9 d81b46e8079c4461f20d5997bb3268d6ed3ca7ac25ad77af7945b3d16a31e0d6 e41283327cad359b457128b8e2203a9b0787f22341c9802606b604590d38062a 39eacacb73152c35d15b39f3aaa71423d3c8ee9782b45727e9c07d67d9d1d5ba 17c8354ed6dbda9e060699783653a1a63e5e4bba3f53239e66bcae656d3269a1 9baea7e762be3324d517da76005873b707d74124e3371073df18b20371daaa5c 25ec6577625b4f5c9328c313e2c1abfe7a64ddeaf34230b95cf17fa821aa9108 1538f24a4b98fad033cb515d4c9649c59ac143023756d20bb18e2b620864bbb6 e41bed504dbf5f09041a359ed18bf51a7b3e30b44908cc39dabbec27564a571c d3b7b3085f249ea762b76d4f79ac2b0c155dde717a7bf0c7f21484a2cf714a06 93b7c209436a35fbc1561239ec43f98f348d39ca21c9ccfc3ca1f9c1b070815b d38c5d4ae9114d5460603cba0fd21ec3a7be9cf4ebdc011ae9adf32e9b3a185d cfeedf0fb06140cd33e82100c030cb7770036b9d92b424b43a73d2bcc50e7710 dc9ea3253710c7f387b26b86bb41cc28d65618d36ef6132ddaf34c34507a96bd 12f64acfeee451a655db97159d4033dace620a44fad61079dd7716be0ca0d945 3b6bd9af69a41c91d0ecb8114cecdb656a34f61e91e6fcc61a6737cd977e2542 a5c6c886b37340a7e21fbd54de4f4a74953d20fe84c7136dc887d2e7b3f41292 eb12b19c15dee76339d5d985d73e18955d1aca83a4dd49df9fbb2aae8e147429 613cab3a85b172562e83bebcbd8213ddb2120926476284e44b79c6c49ce50ae7 2ad1932ff3c98754a59c09b142cd83784f44084586f92593b62cb347bbf3d888 5d2e3f9fccc68e0b110317f110692ef9854c1c0c32a2a2bfd92c88b3e84d5033 b1e3e6ef05eb3069cea76ae8a05f99fe808b75212dbf3e197ba24febc2dd86b7 776e3fda671e1e22c058920bf9587724be5cd80b4015492e7ee82120cf06d5ef 3f4db2d64e54d4dc55d3a90ef09a72f0b265c67d56596c88a88ba3b35ff825cf c980d93f3d52e6f81c13ec572d7da45321c2d36fd75a3758f79b4421b426f960 5db57b0d40d933c548af02354c50f3cfc2b98e8c27e851cf6ce2f58456d67687 a629820c835836b6674b0c1e7b7b9d22cf6892ca13b7b9d7ae282a7489037ca4 64a9cf634cd2329a6b4e83bb92186de1d459350f559e533035212eaafa4451a8 a9759f4527a3aa2912d556326d7824b78da8b908f4d3ebbba48c4794d68d89eb 3587266f526b77199a26b2eaf1c25b8108068236f624db08629df912d854e4e4 1f9c8102d289e0a4e8cbe3ee2c27cc5e74d093adaaa867c9b0efa8ed603905a6 48fa4ed656868522f29b5c9a4c26deb99fe99052274b62586232da71451781a8 d108071bf0a11aad3f35ca88dd17128da9864160c919e6880d726ef390804bfe 24a3c0386e9a4c37b974392833cb45af8a3180746d501ac07f855748f4db1a10 ee5716a5fce8edbac7dda51604a3b96f69148fc1d3f1a0e0f27d7b00e5412307 da02603a968ee0f4812d66d386d712c50068b1da2fc329e076f4130e32d6404b 20752fbbc8262f8d55c49ffc4acf6810d7345324645a58ec13e0c42988c53b60 606789ec8e21a9ddeef84b133cdc3a38c31a4a3397aabd20e3a48ed218aca3bf 45ea1df8a614ab1e5e7499db95ea627c3d936ad445ada912191514cabd24b8da 71ad63c8361db389234d9d06071eb1056d8d400ff1c1cc1139ea5eb13f1a5c71 668f7dd6e2f4194a3c67e660d0346f415a7542d37b09a761df2ebfba74f0741a d889a8b4c2ab8c7fd243d430a6c91cc632d10edb66e31178aaef8c198373ccce c6a2e85f9c4f12ddecc978abe1eddd72abbe7249139ac14a1faaf5009affe3b8 5b5ffd21e15b7469e2cec43ada4dbb29c22b86d6bc290728bebaeaa45ad210cc 05cce8ca3f9c282d911f23f8cd94b0fe3660e407567381a4fea856aa9c7aae1c e5887e7a4da831a247c398a7bd71519589d098c5b7e766bda498e19db86f64ea 0628e29c29f39a330a3e14ac1602acb4f1bc92d2a4a1e2a74d25d4c4d5467542 0912c4760957e3dc06686d105d9a5a27623a93ddf9d27a9865c57702c5984372 6d024423ae251acf1e13d1a9ff407962de24e974a824db46c771973661235488 56af54c32c6df6345946156a88ec02efefac7aed2b00bef9d60062d265a1a2ce 48f09fedff5b79715e352540cfe3a4a5bdefc90dab0091aba45ca385c38b4652 7d112b19b372adafb5c912a6e7bf2295b53f944a458d5de83d668971c10c12fd 1c4c9e99d13e365b7aa8d5817a3c6033472c7bd1b1d59d44fb55f205c9d59a3a de36b25053d24c3385b74d880e9aa196a31d5773ae87efcc11fd64555568ceb1 def7b682c8c633fb20f94a267e93dfca02fec9518dd4d280db859405778bb352 3bd3f7082087aaf77b5e75884d25cd6f47b67c86aadfc897f69cc2ce53e02952 a355188fbf04693b3205c4b973d6306e8a17f0cb3187e352ec25d4effc237278 5096237ff53c0efb8071fe2d72e73e51c48cf0650f8f9be97cff5299b8072ded 0eba1de24ecb045e89dc954f7014d41d58b87108b6a8979b987ca75767b9388c d990494b6d975308c4552a1b6c46b15613e4f5139de1747e151eac594ae65c21 2a45dbb6208ab482bd862bfcbadab9c4034c83d6d78a69bab78fae573cf8ee41 102e07b565585fb68c5fe6ac823cd072ca1b532774b5a047552893b844e6bc1f ed737dc8115f6053acc5ee84f150f4790b2db299a4f49a460cd80fd3274a780b 8c45f5d14f2dd168fdf6843060861af45f3da43b932c802e2654c444f90ae77b 978fdce06375b7bfa2ca8dbcf7d599e89b349a2b942e427c9514d7b102a53942 4035bf00e38b116a0ce63aa0f6f38303cbe7d5485d7e58824cc389e955d662dc fe4ad61d2420e0c6f6b009f49f74f3528989a3d4786554fa1a243d6c0675b2bf bea640541117fb90ee1ebfa868c4d76c42425df7509e3f5a9e472415d8ba1cbc b64208bc95a626806e87475cbf12d2a8647bf0b4aac01f0db23f545a5440ba22 7cfa21eca021cfc279e8c378a754d49f18a70df4414ce62a22151ee381 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSS8 %!PS-AdobeFont-1.1: CMSS8 1.0 %%CreationDate: 1991 Aug 20 17:34:12 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSS8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMSS8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 70 /F put dup 86 /V put dup 98 /b put dup 105 /i put dup 108 /l put readonly def /FontBBox{-65 -250 1062 761}readonly def /UniqueID 5000801 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486858b2a4b5a0cddfaf2ed604ab4eafe1b34aa4 31dcb3f73f83d75ec7227c48db19b78c44fb70b482ee1dbcb1d7fb08e9785c6d a62bee427908096a5b8f86f98d9152081f1747b469511b7f68cc2fda6418133f 75e6ee5850bb15a694473f719dedd4eb3fdc523956ae5514f74fde80f202176d 3e75352d77200ff5199c73b37488f46538df1b6acbc3e17af9850bd8b89fc663 0e6787916e0c266869f1f8202a1cb2f5bf4546ed3de9873bd1e9bb1572197b7e 0fcb8d4c206846f1794d1b79e43c77983b03421deeeb0205c9d8f85b747baf25 c3118fec3dc1a69697e20a28951030a31b5fd44d8400022b2a09032c8f116186 d0b3bf0084651683d1f4353d366419e9aa005f18b37ee47664f1f4761802c131 35ea7a68dfd58cd20584d8b452ff7d6ced0f0f3261ace39c8ed6da7619041f7d 7ed502e80cc367ee7b4789f6fd5f2a08a6d1d8c2890bb58895e89cabc039cd1f 676d04fda04e8074e4afb4af3ed0dd2dc308d7ac12cbc1c86474e6080de6b5ee cf6d60c29277593334367d368e31b49fa6a021ba69434d42bd32f07d145c38dc 8e25e08ac4d21eaad81a51865a6095b275fa248287d5bcf4bb1197f508102c50 e2dc98863474a0ee4ce3f76d3db05a5b9b09603e15dd24621f88cc54a91c3565 cebebf88085c447b7865225ec22e77b3e5e1b040f172fc5e208766916ea0e2da aa12c34ed4cbacd23b756dc57fc0b85554e94385fe48bd972971f482910f9a54 f566833fb543c420b5668e1b128d05cbe166f43e8b4eacde00b8a092ed646f3f d76539e42738796a22da10c0055d5d9d3fdf5cf9c116b9c0f3cb028db9a37021 72617d588e1aa7ddb54971c0ae4c07fc5396228125b962ae6e772a9d03ca3035 ba67911cb8716ecbac2314fade7ef1732e08c6d03973dca95c0bbe2d8a2b62c6 889144f3a45378c43f28e38775f687128b9227e4f0141dc09e16ea7634603a72 59a7cd61908512b659b7945e91307bb4a6d6938f96d5e71e9009eae0bf06a309 9aa9857c187536a856c32dc9ee38918eb5c1c3e8fc68c9978e0472a18510b5e6 ccafe67d3af79aeeaeede8203d5cd6250815579f4c1a4cfcb68f0fd857dcd003 5e71d7ba877faf2ac42127272f06de7f8fc4fe4f3562fd79413f0c089b7d5c68 cce71304da291c94bb9fe59529c7023d418597f7c5c62d8a7e66233c0a62f8f4 857fcf049d39a98c91cc798bd8627ee086612d5f4b70073f8005246860a954cb 45d8effbddd2c4621493485750533b083898118b4bceb718ced1940a4ef25c4c 0d98d763cd4ab3bcdad6fdb6bef9dba60d4cae4e3f288bb43f9d72fec79e3b7d 6e9f7d7a298f0f92a9534077fac3e16d2c3719cb47d90887c147692655d14e6c ef08633926c3196107bd643b1e0a2212f6566754b8f6b8260ee9eacc0870ee50 c3184ec7e6ebdb53f2cb426186e618dc2733f9f368f91127d97efcdaf9a16e3d 4645028a9edacef3cf9105101cd33f7e25cb30f5a070a77a37e428147876d411 11001852704ed7800e59364b697c30a9741c29b0bce038d7601d8c681117f97c 4a8874737fb7754858b2d94a1a6499c15a253d0f14283e5a5773a796d7ac0119 72134bc9c50972fcc655ca6bcef73298176647117b239bc461e23ab1d52745a7 75eaa7fcbe61f8fe7c863d375780bda027d585e6ced9f1d0ecb95eaf3e4957fd 5b6d96 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR7 %!PS-AdobeFont-1.1: CMR7 1.0 %%CreationDate: 1991 Aug 20 16:39:21 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 49 /one put dup 50 /two put dup 51 /three put dup 65 /A put readonly def /FontBBox{-27 -250 1122 750}readonly def /UniqueID 5000790 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b448685940729e6e22f4be0e08c6505cba868f7950 93f556b64b808dd710eb936d3ac83e5783b5f7e56d363a59a026a5619a357d21 c4e77bea121eb24b09027d1aad93158edf912940e91cd2f17922b35885894644 7773730bb19af9e70453e1b78d5edc123b273a979891d6d5e624f4a388f3897e 13b045e34b4ee2f5e4fc5e996d3549640010c671de14d18b0b3cd300e57dac03 22e59bfbf7b29422230870f5897fcfaad4b50c7c1c58edcd119218163d6f6e56 25ccb882db7b6d09a1586508e8cb642a11c29a46915e4a96e282079cb21922c1 c2e360b487a45302fd22ec8c5fab63e54b5e844d4b17ca2fff37c69c366dd72a d02922c14c0932f65ed03e4219c117962edbad2dcdeaa9c10ce8af38a4ae52e2 b377245b0be19a77d6c936e7530cc4d0b78d0cc4a92698fa2870fa54f2d8503e 2d17b3d52fb2febb09f2b2af0c2a1892039ebe19a690098799a858e3d39631bd 6925a154d161df3918074ada6bd52baddd0adc3f07e2d9f15e27cbf7fe8b98c4 07205c811121fa91e059f2f99322fed63f359ac9da97aec383f067f23e5de331 51e80f0a88ab50fe8fdae4a5de93c1ae2fdca06150b37246140c0e87cb2325a6 0d2349162ae3ac93144eee1e665a1289105318fdfe86b6e76251cb25adc967d3 d0b97fe5e279e1161736ab22b4ca510b964342383a840defd38f96a7280e6ac1 34e48d740607ff2e7804164a16d47735864db847c97335e6d4215cb99911a1ec 015a3edaac1f28fedd56d2467130d07bae9416c15f0827d27c6c79f59054282a 418c12c157c91223a829947f47592f7cafd93ca182b25a73a9419127e3b12a9e 5167ac3963f2b019b338ac46d63880f94dda4b538835884d2a5538c85528d6bd 977f844d32b43b0e48caed5a4bdabcefe71695d69ca784db55ff8fd5c5c42e30 40097ef70580328190679617d7ebf00b13a3f657c462f11b46c8d53f7d4497bc f7a310b09b6d8ec308fa03f57c092fea27a56235868bf10b1900f550e89dadd2 3c4f23c6d9bc79f07d03c93158f187b94b5bc17c3fb73e1f3a7de3d32db26025 53aa7ab0787d004c5bde7e9970163facd669b5a63eccfc7ebce9fef575e6fe54 a3335fd1714f82461cd7ca7d8b6d8b6f384a9b9cbe4858a1cd8b2210fa25fc3f b40826dd92f51e33ee471c3f2ae58fb35f324138d3963a736355da56c07cc88e 935f6528dfd3e12ad3e0c2a17bc1359bec1604e501c73955eabd5be6834cdb5d 382ddb7a7dc3df460930a88a8cb21e66502caba380990c3070bddffaf3fcfd6b 1fd2452586085af2c9bc8d55bda07e4bd26631ba84a8c0c1feec590702bb23e6 0a06f96928bda467a853de84089310dc2c3eeed0504e03ce1f66fdb6382f9dc0 b986b34b9643133e9b873718ecfcb428f1b11bd8d6900c1829f84391f80e1c9f e08f761a630a301cf28a8925f32f887d2088adedb9b1013f375dbd1402d690a8 b6bae374cdab844ac859651a137d9348a43cee316483282ce5faea13ca1e0e10 4ee65c2eebb08b3d09727529f51e9e6816a87de9b7fc7a7939c851a0751bcaeb 98038a88286e530e9718a1dcf54b0ef37b62c9c7c7a0bd7a2c8b61f026e25f56 b4cec9106ab6568ac1b1fcc4b4ababc4341a84ff150b56c9bc53aa5eac2f2526 019a06a6cf4baba904a90033cb87c18bef1e97f58e62996675f9a473415a5b38 8581e5525f6c650532e9bfe755ec42a7964ff7b59f014c21d59d809198857340 2e2150df93510fb223374de9c0c9403679d4e18f065d1847188833be4b4a35b8 da78201c746e8a86a25a735e0fd5ef4ccbacbad95b28c54fe0ad307a92734f04 e6134374719fcb0489109c6f90173cdaf2de113e3752ce0f79383431041c337b da53c75e02a8fcaf3fcb827e505b9c6e103133f7b2d30cb8e93de897cefd93fd f85de8ffb0418f59d82d14791f55fb4cc931b23abf7881adfba778aed7205739 6fbd1ff102006a012a4e2ab642fa239ec8ee7440b89b854e136c93f2f28e1d4a 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT10 %!PS-AdobeFont-1.1: CMTT10 1.00B %%CreationDate: 1992 Apr 26 10:42:42 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 34 /quotedbl put dup 36 /dollar put dup 37 /percent put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 58 /colon put dup 59 /semicolon put dup 61 /equal put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 88 /X put dup 90 /Z put dup 95 /underscore put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 126 /asciitilde put readonly def /FontBBox{-4 -235 731 800}readonly def /UniqueID 5000832 def currentdict end currentfile eexec 8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8 97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc 8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011 b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415 50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e 784c6bf7389803d9450b0c21756a017306462c563d51ecefaacd079732f12c29 315e4b9623a5752c6f1d8145869e120d910b2644887cea7e30b15676a92537c2 9d3aa80dc30082aba94b40990b82fb1a877e805e0c8c48f61e9f2edac05b944e e4d8084ec1d5cc517aaeec5b3ea379dd011eeb454cecab3ad2443c887c582789 72355673e503affe0394fc7db31de364e4f56c24033c7df2265c56445ec63a1d 5695a6041ea1b94407e1cdb7c5635603a4fd047e6edcaeb2d0da6c9e0e9396d5 1a4a58e8fdc1578730f992435560a6e2d3e3687703ee2f78f5896389ac8470bc 806169eb01762e89b6dc9adf857ead656620e2589aae722c37a2ed7a2941c360 b067ee34d8d5ca3bf68db725614d936bcb207781f4d4ec2ac67b13a5ad161f3f 059add7b5e3d904831e31c20c04546fae83ca93a35989e65c201756888f727b9 7e5313c9870ec96e4cec3901ea03a5c744754485e7d169bbc98bf872d0796e18 9d43b712950c3786257d8be06ab6080b9d9392313298327549a8a41c00a2cea3 690b4a333e45aa815a64facae1c2b44640860b8b8687afbefdbd5b4a541a7251 4ee7d3e0752af3e96a88c95d31fa16d34ba2f02fdb0088b165844f02611c734a dbcc2037bf741fdea7e8bcdc130c70c33772f777d8bcddf4611db99001ccff14 d7af2bb05defc3480bdab312a0eff2f375afb4e0df2f803c594b7c93f71ca4af 861ae1711932fef19bfe2f9b7adb69d68e5a70ea4d1a3d5bd85231b16993f65e fb37a0a823f0542f8c2340a073dc1be4a8347f9d3068a6435cd8278b0db1809e 8af9664c2c989b9f16873c009449b6284b85da4dee11c96a05ba83292f0edbd9 2cf674aad6ac1a5ff966ffc37e88a66048deed053565b55ef6bdb8c2f2f67832 f8939a32442ea54f13d003494d6350a2864b427a9126a9c26a031909fe53fa84 63b80c3ffd536c9a5dd29ceb03148dbc24c0033aec95c7fb4031f65dbd67a2d7 0e6b0a1bd772f5450fa1ddf2a6424fa2a5efcf7fcf2260372574d7050bbf7d9a c6340019109b8f57540141b0b96f948d83e0f470248390518a6e881ff4511933 1c274c98a1f8af8eaed5a700c5aa8785011be8b2a6cfdd0e35ddfa96332ccf95 f9ff25733ebed67bbfd4ab734fd429f2e389124ab79d94802f2ccd41741ef75f 566ad0184b43477ab5a074aaa7d5032d9e54a27050363bd1cc0fa3d7dd0c1330 618008fab04093d1b242b34a624b4fb22b90e1bf1f3e030052312cbd45e7437e b00f079e15413e7c83f4eeea4c05ed656e73a4e377a0a91db65a4a06e979971d a897cae3a21d040bbfce906e4cb48921922181c0bbd1828984cb4411567cbb35 1be89a9555c4e5f452b90a9f7d095fab7f23ff66c1fe7bd4a04494319a313491 41488f9000481d8bd9ff0c54a0c117cb0f55521ccf61d519905b5280af272f85 f73e807bf58e565c9c1332aac559fbc881f6705e4821875d5dbdd1a19d1796fe ba531e687f3614ee6126a199a0790ead9cff5eef8f1d03f5999ecdf9a2b19c32 3308db5f3d12ef2f5cad1bb0f3a24b327f0e584de6d4a1f3122e994198fb5757 3238b15a909f8035417920a9c9ffb11f1cae231190874c9cf845a1e73aa06343 61f1edadad2cf54993f550d3028242824b95cd54cd850fd2155ab5bc993a201d 6a3e50aec483f69421855ffc074feb45e96c3673c43a5e8bcf6ae530b9122368 12889fd6e61a5194d17d0f3734f908160321c6ebf6a20e796e75ad8b0efa7fb6 d35737009236319985f95fe576b96e33e4fc407cdd5fd615ad0d7b6a2d09bbb1 5a65e5c4c0f5da37edcfc0663b84626b0ce6ef0e6459ec1a8b58c439a91b3f86 fcda69e1e98ae75735def03d708559dc08d698b8030c82ca39de1e18a5fefa95 084e46639d754842ae1dcc2d26803f091ebb165ccdd19eb64ca7252a4585b06c 00af02aaf7bf0cfc2560b85b3cbf264065506a74046dc8056c41c8c614b81992 bae31f25186f24b967bfa3f32e122d03f5735986843c2376b73bb9e331d0a01c a57cb43750462ac19e98d9f980d32c01571592c27a7c6bd48708b2b1aa632ebd 3b584ad41b85add1c81d067b79bff6263c82282afabed54fa34637fe4560a05f e23c4b8c0f978aafe13abdc1a7e946fd9b7df6d81ce8e9c689656d328c2cf179 c35df6212e9be9647b067aacd26edd19130faeacf58f7cb147767f47acab6822 c8d937942c471c80eb1df1ecde59d9c45a7d065623544fab37fc20271fc232f1 3da9dcb0fb7ff65975861eb9aea396f92d1a7d4b1c1799351589575399fce35c 1262912623eda892e088c2613eef7dde4fe04b29a19df5caeb04f7eb29513bfe b6f116bb39f2e92663cb0fd6b35ad8578307a22129f72d7290a83c665209a019 48d04ff3603a7bf27eecf797babd335f24a922f489ee484d69d470061a7c19db 13b49ee78fd79b6bafdf036f878610ebbbae025f0c97a7c3f85eb630b53f6a82 d55c73ce7a9b5735a17d2f5cd57042cc1c09a52e5c72d32c530af3eb34dc169a d3ab1c0f690f3e651e62ebc32e462980189a8962ce659104a32147ae2d3576ba 7780898f0f4bf39e74856aaf59abadc6dc9377f2075463631273c27f8fd43d34 99f1afb5d0815961e395b8d37ee10562b61721777a3bb2cb25a9ec2a82ef3bcd a4e541a3cc4fd4c0937fcef79d07e5a514b795ba2ee739d933663ccb58d594a2 c4813d1fba8d51c964e96345843f92ce23cd0bc8d357816e4d241552495a1d33 68f7366416317dffdd7559ada5a51ecca4f9a7be7f8ccde409c7312a3445b8db b4f66aa3ac37e22696c251e36c386138e328091d74c8e4601193971e8d769a2a b8c8f4a9f5d3317ed6e03a047aa497aa7696469953b69b789c8c73a9d8789da2 9b8a6795917affa9ca16ed6a071ee3ba217c60667e0aec9fd208fd57631271a8 e91d902ac9dd4a467cf230c9b3595bdc2f78139ba3867b6a7c5d1c63faa856ef c2a091fa127ecd507fc2efb818c382b5a2afbca79fe4528f557560094f816c0a c6ed90c5bbe04790ff49147e9cdc385d51db8ddd05dfc1f00bddd437484a3d10 816bd36db313776df1c9511954dbb007d6fbad98cd294d81cb157e93999f6d9d f632e846663f35c524e56be7fdd3cb60d8ad6108d5b1f113994a796a880c63d9 ea2877ad451e364b967c5d1d46748297dfbfcdd0308535bab49ea0e7cff2bb2c cdfe7c05a079e7a4b9f9f6bc22afdea3ddcd185cbdc01bda1092a831d6d93f82 e9d140d461bec3a4fb9e6fd46b67f51d2bf89a4b5aaba80345523544d8718092 c37878b9227f2f3b7d761775a2857f8db86ea312b38f8e40757efbb2ba5a6e97 a7165c48cbaf02f9bd99bcb1800bd26c08c986e5ae90336bfc811c318fac94ae 9e5755daaacaa08afc8ef6c0bfed291c2471a92741bb4543dee7b18a0d5afb69 5900289dfcf336edecd075bff0634780b28c3596775e03669ade4f79723567e2 c925ba32fe6b1b3c720cf9ba25c585e444dc101a4ca1319009cc016ce17e3a7f 0e451a3d2b3ed1bc30ab69d9ac86d49f70e3e828c182635db0d6ee500437587b be534a10d95cffd96dc984833b256ba5b22073c8d31fff7ecae7a6c5b1c950e6 5a809499b80f616afed55f2d4fdeabcbc645cc25f837ee3b5d1ee9b257d9b6cc b6ea4fc169d5ec8132e4fdee223f84b4f1c7d22cb8a6c79757368d9470057582 ffce51419aaae440b6a2a765e87017bf35ed32b7c9f0daa8973127e60eb46d0b cac5d956a1cae9c820cfabaea50a2834200fd7b8344520f02d4269f185aec8b5 94b42f4a73c88df6e4a13b708c5393afc9d4a8c088669cfcd838bcf61b26ab54 9e8e97ed7269518ea0b30468ab8f1b52be606ab44b508b96ad8a3ad603835fd5 bc7a69c91a3846315f25e202552f286e376270743c7d4cd42ab9f8455fcb05ff d4f146fb1e136bc036f159ba1f916799681468db6093583bfd9dffed88ac7d94 0f3762faf90528e36fb9dfcedeafea27495363cc5fce0ab10d839da38d025e10 6cba24ac7c84a1c17360734e300a5a8421f248580de74c3d3e2ea687483e4644 d8c77e55dcc94b8ad5aab8f692380cee6d90bbabf44072150d5076264b7be4a6 a0a069a67187a4e12cb29233262687eeaf1e581a6ed9ee9f01b4e6d8e828dec3 9d28e7a02040fcbde611586fb26ff06ee696c106b07d5e4b6c01929f451935c2 74cebe57f115879b9a580a18368226d02b3bfa6291dcc219092fadb6ffdf47d9 3294f9310114d648659175e01d5ab51444c36b1ccc1ad3870d08600c88f3896e 720dc5d31bf15b4c84ff0f69b667f4dfd359ba4a7dae488f54d4fa8d0d119623 abb1b07ae6eb83e43d5f722166bd1c267e40929f888c47ede180e46a9b788dab 1a6089e9f446010634e628f2f9fb7265f862c06aea16aaee65d189843a370ab0 ba5669767b7719761ea68de230d73fc5740cbfa929e7dd9b327079a345e5ced0 2e491bee862b30076cfce02399dea18bd1f3293b43ec2948ee42d0b45778d788 0610378e77c8c57a68f353e68b668fd0e7944ea05acfd89e2ddf6e83c68baaf8 53fee428d7f848869682682d51a687883aa61465ff0dd3163bc311ee6551d015 528c0abf0b06e9ce24e46db5cee65c677cccecc53685922f270d807264badc7d 3c7af9a0014b0e8454109811a798b549af46cb5fe4e4f7461bf0576fb9b93b94 a1f13eb237f1ea5e42ab328eb5ba728f689c1255f8e2bd3e443365a2b5683a2f 633e73c312ce6e41a6924334c0bc4ba099e096373b51572a97c5a0edbad3a7ba a3a12ccaa256fc75a99190bf84f66a7c9ea93bbd3d9c5a978bc3333b04acf785 2fd2a509059e68a49c6b896b7987c2735364e2d89846021b3f0e82259891bfa5 4013688ca335ad38f0a25a81d95ae8771be41e683e60a6c5de7480aa8f13dc59 5816fafb78aa10e0b7bf3671413890e6152f33b21264b61455daff8dc129eb4d a9d661f1b4c6e5fad153c6188b5aa2ac8fd5c14ab074925e3983cd265bd84cac 26eb81066c96fdc61fb0668959034e7002927186a3c5455617f9db87933b1ffc a63728884a26e8aec307c941d54ce704c918f29dac3720fd2afda5c4fcdfd394 434b31fb4e00fa1b8019d975e84ea6c6fc88fa8638e2dd025e082d97c4138e40 7a91e5b930c2d65cc064326a93aa10058756b3e18f23b60e19dc64fd68096db2 3d9392b52d0acddf6d29e6eb8224fbc2c0652a281a36165cd4901d92fd4961e9 b875610104172954db8e16827e88ccbc98729dbc3a4a364032f60b9301138888 8eccb3c2c3ddc03d0985c74d32b0a1c04e406a7e0fa8f5cc8b2ef954c74c873b cdc199d5c83c35e1c756e2241b02af4303e6258a5317e4ae1ecfe36a3ee486e0 c3f954d8dc66c834b30bfb593e0bf3e5095ac9214b0234dea82b9949f2a180a5 b3c6d50357d0e19911b74507299b04321651f765e728fdf3d35ee34d771655e3 a711070d348bbc9b660a6ceed03466496b27279b649ff74506879f17643dc682 53d90668ffe9cc980d89296b1caabb874b84790ab0464bd0e53a909fdf95fe60 74b881d7fcdd2406cb8455ea6e8359cdbee4399452b47d8db93db297080c7d98 f55e0ffa688455fbba0a65d44bc078f84cb8e39e5e2af44ebb84859ad96f67d5 51c1b4c8f2fdaddc5bdfae93fe33938ddf5c2169b61f27f058328c77aad241d0 f20fc0bc1b5c42be73f14ac4aa5baa849a31d40cdfbf9e9497d897146275a800 a3a04128c71785fec5f1396d7d4a0dcd9ad7b4f9dc2a967cf64313b424a882e1 eef1655981209234a8ff56bc4c6aaeacf840df51b3b359b86431748d4ef3a8e1 ed54fc883db702e2f60d1154f70764fbcdb155bf9907444300b7430f2d0fde17 580696593a5c89cb21e2bc042ab282f54d01bf76789c50fb60e912e8ef184bc6 9cc95b52a9d667206e9a0db42ac8c77674157978e7a9ff78a2299f8046129e75 00fd32897612acc3961116917f02780a63d0a44bf8bc01e2d52360ab9865f818 c4159d09b108aa7717258e0b073f27ddadcbacf68bf43b2d3b8f72df125bd8c6 33984251a46714d468c8d84d0153cce4a773e1c9c7cd99375ee5f913530d8497 d91a272a6cbd8f0e325757508cd4e6dd0762933506f03bb9bc189d005fddb98e b55a66ac0cd98cc57fe32e10e30f33616456b52e96d22493a07a3e6a3cd03704 e3d1b87b923abaae341dfb2aae076963de523e2ce2a7a944274c88a319ddc448 8f6ea625eb10fa02f9ce1dad086518d16e54804439aadc1e0c6a0e49369ea563 6f6202d41fd78a4652b02466e7bd2333af83efcc4e1aa91db3d0ea06365402e2 9ef7357d4e9d38aad14b86dfb57927d16db27307ab3a868ec58750b7a64e5930 dc87cf8a459da25e8629149621b0e60f56facfd9736d423c874ba6d7afa4b53a 45ce6af0ea7df16eba5948c71c84f7abb5ec06617e5b43d0bcde120aec65311a cb0623da316c411f84d0f35ebaa4fa0585e6f36c67c70fddf3699cab3aaaa356 a0fdb282832b68c4109587de28544014146a56600a46a8b5cbccdf9c8ed7b904 376c4f450f700f4a31fa43454daa50a6a6ac187053b047019d83f298bd4abc44 79fda3a211cfb433d3e9e1f0b0b854f396b3f6654990a339e09bf6052405a802 e18533589186a76b9f829810a4ee1ec7fef2bbeb1a4877943ee57afacd1f3a79 ffb85a61f0a844116b57bdbbe9d44f9cefcc953efb43674aa544793b746cbef0 47aca4ddf22770cc8c20925be7bf911424a9bb5be0b822a93b65994ec99f1ccd 8e17ba7e2913a08c750594654b40ade44511bdd7a6eb8d43984306cb8cd398a7 3ae491014a066138490cf52ef32f2990f60af43a326fa95ab40674d3613d4b24 9b6717a20576da41cbec95948c706396e7bf0c538578975873753187b90c9303 ff315cd9e5e3dcf90a1595d66b39eb6295d553f57ecf60ca2f720294e74c026e 833368d785d5ef5cdbbc54dd24e71638c3d236b30cc7dc4259239cf0734d896c 213294c2b37742c0ba7be72795e5b6404706a5366a5ac2004cb18d8b848565f8 fe5c00b984cccf4278ea9d12dde93b16f510243eb4536470e2498f4000246737 f38c6fe408c082c08ba576778c1ea8e7017882d79a2b460a715cce663ab15898 bd15e8a2a3b11aa26009f58ba0339b8aad5f900d266825853bccf2cb30ce7379 3fa1250fc81e48abd0f5c87415a9b097b986fe1345b73b38d1db8150da9b29d9 2a527b9257335c2e9aa37ada40a61d12d1202a027df89772a5456c96b2b98f14 6737dd655393cd41bdf4cad571274d7735adabe605b0ef10f8efed020c1f5638 640d0c900cde1fe626a3ba8d509cf1687f1fc7e2a21aca917354ed71469605b5 afacc21ba5bf907fba5e9e3adf1f28cca60417fca9e039e1713036f4ef6e6bcb 6d44fd2ccc9818f0672909f334c625f05f9a884819f2bff79051fe22e643c885 a4352ea78762a179717d542f157762c1db999ae7b467a09e6b6622dba7d79f76 40bf9aaf72eb2c8c429ff3563dd3a03b4822a1e45716fabad131ca5067b7d3ed 22edb2ad5c4b8d2474cdb1ec703f7b55ef3f7d34619c5b4b75be95a86f54a9b1 c3a947b07afb59e1962b1ced348d5f4bf96b6fcd7fa5138c2b8f3ff6567c5add 8f363192456ea770e771412c40a7ab4c6638f92ba6f80ff46e64a8668b28b80f 902ab8e0ac7cc43be3556173c900194a86684d5425f2e1e9024c2c191e20ba08 32470bde61a16ee5d98e2c8799ad2d40a4ac093b48ef368a0c1d17ece33c0a98 dc7c6ee8d9ab4a46e3dce1026bdc3134db089f21ba83e8b60b68e63ff3b22cbb e6a2390827cc7c9a6dd830a04fcf25e651c1866b7bb007c23200e34a4c2f631e e48bf18bb835dc89121472daa56a4220c2fd867ea11e5a947ed6d6307e7fb3f8 1de88d87bf45230562daa0744277e615eef6fe0b6341e5f1a83ce835d0c28ffc 04e42a0df7fe312096a1afe7f17977eb982009e966fb41c198eed0d55ff3e7fe ceecb3b0f0c09c8e3d967e81029c2b689bd72da7b48f80702cbd237c5c7c17ef 907f04b86860017b4e28d4bf165dfd675397cdf57b8a8c65b4a839b9aa8ae120 b14b27806c454f21fc00bc1cdfe3a2e5685c237926e261a210cb6b91ddc520c5 fe6f455b3e0708c420b95324baef11751a10cab43097e11d3ab80cd52be2d440 cf91301f542a5977b6bc3dc35332dfc2a1375edfd2f8c6c42d06c2adacd3c33f c17c49d845cdb361d2975c4fb364c8d32b230da5470ddcc0ea684786c4c2854f 1f7141db2523a0dc7c2dccf3deb5924c6360741e469f1cf770e9d64456b5693f 1c5146def8132ff151c00cb297c949ceb111673b949f646df0771146e4640998 7eb0a365606e0ae6d588c21a83e0c98c4f45c9cbeba3fc6bc81dafd89aaf78e9 e82c48f5d56bcc4aa1314d5c293d3f9405c42cf112ddf5e0297c55a72c2dc907 444af9791068e81d5265eb77c9b50c3547f996deccfbf7eccce7d33cb9910d8d b4df7d1912298379103773074de74325ba4ff4e4bec0f0f6e850037aa2071a2f 1ab9dab401864f1d847a4bbbfcef06eb5d5cb8e88ec78668b58f9d6b557a4856 7ea1a1ce0122f60854a6f9b3c87ff4c93227954bcc50796eb91ed282a4a8be85 51943ae21b57c39a06b9eb4536ea4c5dc14bc45b6f4f686bdacb8377fad21d2d 3364f06d65c29678477133ecbc7a9d33988917451f83fe96b4b37c1858c138ce 73bc84f46bd6c5d9ec231b8c5741826384dfca3b73c95f8eff09590ab848664f 72cf27c2b898abead32d4b6645868edfdae83c5153c16b3d57117bc73fe3660c 308474ee536f17f034150440405d1f3e237962b9c4871e2a810d6db0a5b38912 920568f487466be661e4b9361965e1874b0e872a79011d6f65ed5de2df492142 8babbea234d076967f9f1457bca7b9d9f1d699f190f8fce1c6f748cd7826733d a115911648266d25c8b4354d079cb5020bf18677a69b7e664e4205e43b411ad5 ce63a2fe7e847a0e4fc93225f2ce2d56f05689679a859d80c10321f495afac87 4c39a8c8f5a577b09dd23f324bc75a43d8cca34500e432cbcd80f0df3837d981 8db1cd772a1bffc59b7d3d26206d10584cfae51633b0ad35449fbcc40d752649 91b3811597a3842a63a69a7a45fe24ef2cdbc8ee4cd0d19e07249ec03044f7be 7f69b599a3f5098bc041e6e1b33cffdf04ad8e5d43aaf27db20f1901f8bbcb45 d189330bc288c199306592c32254f6055a673a880e150246bd2b0f36c05e8e8d ba00eac9dc3788211053c9a05ab1d07d89768d2c8a5531abd5dbf0d95ecd1572 151ede5deaff2a4dedea520e66b9dcb61118a5178024724d48c7e0abe37b9754 5f77e8400f8fc74ae45b6813144c202eb678cb03f5230b185b7f20f44c2b558f 0f408ba502b82caf307fdc0702d7a380db7023b0d8db2cbafbe5a170a37f0bf3 05ae02ba0ff7561b1ca151fb06c207479cf080d55fcaf0d27b6e850e380f7481 c08fc92eae07219c85f5c704811d5b941ee43149b170bb81846351cfd015739e 7a8a0a4ccc95be001dbcd0682398920534b905de6854751e4591d1c4be4744ab 1971038bfbd043d57d3116c3fb69cf25961d4c0a34b8cf25a85e0ce309e1a3ec b2006ddb4c9bf14138e07e22ea4899898cb9042c1ddae6d75533bdeeba6a1f7f ff5796ba5ad64691e0ff9a72781df2f14cac9c2fdd90032a86e2ded9853347fd 3b7f0797d4fab875802c7a088f9688cd6e49b2d5ddb5981739dfc0072c741037 3dea9b20c808e2d0d30e161692b7f864bb134c14dd2d0b4d480381d205c2eaae ef4b48eeafe6d09152ac14050598fb81ed8d7f7130138740257335a92b2d2767 92a3aca03fb990fd247819587b206d678a022b296aca8d0830e726a3f9283bcc 426865d5a2856ad173c0debbc50557fe13695e19c19bc868baa117303e62a9ae 1e5c1d67fe6841d834910fed193375053427491fe870f705097bc6198bf09315 fc95c30aabcb1290dd4d79854e71cb77fca95a4f2a10661deb876e1e6f2da339 3cb6695c2eec5772c3b28382541ca87da5d6c4c3981b0b673023404823842178 58f7c55cbcc591ae657752c47e7541940e66344a8197c210f2cce8278cc23dfb c8822a4f4f2ff175778ef78cc875322ae95a9d73ab62c97c1139ed1737c8caac 9f2e93d5fed8b70a5df144419806ff01bca77f0da8b41831bca5f29ed4bbe40d 94129c4919c37d5402cf78aae74027d91e1330ac92c8f3d75efd9a332aea4a19 8bd93f6330a1a0d6e5055abc189c5eb4f03a4b185f82d6a71663c583094a66cd be7a6dfedac7fc57b307cc47b4c27d91cb0a57150463a5c2782dd2f72aeacaed 8a8f68fdb164bb7bdbc2abbe0f16bfba3a601920c060e01458e74984e2ba8f6f 2aec60ebf362dd696575c87bf8f4a1e80efe2a5121febe86f756313702c3dcd7 95fb725fbda1d6d315843fbdb4871c6190ac7e3c8a0fc795f04947052e07dbe4 c574a7b2562ac12a4d4931f9d9333171269904cdf8b40981ec3e785a2180492b d13ed5aba467424a41ac040ddbdfc660edc27df710c2058a44c36a4e1069257c 193ca9d679838895798accfb33fa6d2e3d628e5932e245dfdd4fe7d574ae8b42 29cf812f86d3a89540b21418dd7fe3c99f4f1e8d1e73294d860eafc89ec78d55 0052768a594bdbe1d0518d83acb7f1d506b283054a04e3393eb76beb95b38cf5 bdb781375899e9bcf1d45d49ef3b93ff5f4bc0708e58a3e3975be1233cf64ab5 dd7c0d8ea2df6cdb28874d84f5c65af2fdd710045637883e27349ca5483d905f 579abf9368191c7e2ef39041f96b88043c191c38dc68aaf93208b903ee75139e 34ab669ae89ff8ba0b8d5855db797169ef1a028acef830ed7b7bc3ceda1b1f0b 593997b19f7aabd8ce11cf706c7c239858964bed34f2fb7913fe2db9a97a410f bb438db4dcc95e5327301dfb058910943a9a42da60cd05eb6c7955f1f597a726 4963e9eabb62864c35522eadc0b41d52ab87bd63b9edfe03a6ae04edc3e0757b 1a12e62b97eb2ed3dae8470788b7e5b8508bac66d19899d613cc875b9a68effb ca95eabc32fe65bfa3567dc646d5af160225f1bd6369cc53b774986b80fc28f8 11ea22f9a7440c2635b0ac6897d6bca71083e7081b8d00ae0261e0c14d9e7b48 563e691a4ecc8490807efe7d5221279be42fcb2c25a1afb0d537cc4b58b3607e 3d90b1121d1a3b92211cd8273b000712cfe4ea7643a71f84c32115441136516b 63b36e7f49d90a3e08dd21c4be23a6785041b23d634d105b66a2cd3e11413bf6 4e3fd178786ba706326a3e72fc3b68848024e0d81ecbdf8a700841752dec20f9 8c5cbf78a26c1d7ca3e05808d699e9ce12d63b41a5eb8c5a15e703d0fdc4041f a9ccbe318c50a3e10e6e8c88c30e1b38f7b18a7090c69b79413c64e89fe7e7a1 80c82da366f5ab71a99f6b97e77a11c15ca76a437cab356975d61f69e5c9f365 5d16f09c0ae723a9b08ec04cc7b9c754cc88e0e35591c0fecb9a5c487b414a39 9005ac76ab9c221fda25341ddba9b0ea6ac9a0c8a02124b0b067b64e53f804ef af6b4d537d568058d8a012356a4da428d0dece0a57f8e004b891b5405529d78e cba2ed43efec6a72130c5a9fa3de35cef01fc0ed85cc7a22498ac6baf1e710c2 ddb79323b38757a2c098d3e1f3cd05c30a58191070990ab509b0f39fda68cda9 01f4c72631269c8f93903fd2f4e3409ceb95c740c53c69f23076be98731659fa 9fe60b97af396c77c1d504a83ef24525da378337c7976895178cee100fa5683a 1cf10dd7ca11db4ece57be30e2e1e1cd722531750e82bee951168515bae1c90e 07e9cde1135ab56b33bb01f402bfe8a4a043e73652489f43aca02e8c75255c6c f78901f96783c4663ca044ddd98df6b21680acadabbda29115d9d8a9aa779ea6 45c6e309ab9e43e80b7eb89901f9edfa5af4aed05b4cf080ce4440b2c394e660 604932565c0bfb06d23f25d84af9557677b1958a52e4b002f91112a56342d95e 70b81f50eae5d1807d13dd2fdc58be09b32e82a639508af1c0a7e58b780db1cb 5790dbccb97ade1bb64f3e4e531f9fbd1198c53a13ff9a831d9154631ec1c1eb d04c9725443d435ef6232c610518843de3b8384977f15d4cf04f645882fe561b 492993df6d2a1c915abb8aa1d65c7c36e79ce59229e1a8fc0ef85cc55f257a33 a97ba7469dcf8fb9de39721a2a413f8e63d56c5c110d7e1d6f7a6b5eceb98b0c 4168cf59231f609b226ad037e0befac227f7435478f18ee7557f5e2c66610e59 94fc5d8729b30420593f9ebfc0dc3f19869b4dd9714188de31018230fddc08a0 ab3bfe05dfefe182eaa6d0659dc1efae5679f0dc184fa656ba426dfcb5cfd5fc 65595dc91d6bb324f7618ee6c090cfb8729c6a78c7b39a14a03f5dbfc2f0f31e 9bdcb96260f8ca5cd6f8c0abbaaea9c28ecb99fce95a95c1a1d87bdc1cd3ca06 9a063fd34680230f32d66c59eaddb900de290de82578b9fb3578adba33e4d85a 7cd9a248af545d0be5ec2e15c04ee0dabe7ca1f5e5ed7ea6944d2e57e3d6a88b e751c7c1c779dda486ccbc5776c62a0302914bf09d76715464da228691feac98 613a720aa040d776b24e4884b05ab0b2516ea03ab284fa8f2467be2615f86bac 26b865e3330831569f14b198e6b0a48d8424669c4a07169538b32f58c59bcb0a c5c3f57f946563ed74faf45b6e7c3656ea0aa2eec4f494998f116a0264dee040 0e97d920e09e05fb533e854c67acd656b750d0cd9b7e27bc036f67401e063a3d 1a2bb22c62e01bbf184ce5d8c9605d83d561d2f25172e6b5af66f0a919cf56a9 6c6eeeb126f79ba9261f88b4282f74b67d029e24187f457ebf9bcc4be938b770 f6e6b1b77f89fce3a4827b5fee12129062fc5901d8243f4867586ce8febe2263 5505c7d1517421f0636e1a8225802518dfaf588c275228b378365bbc87bfd0eb 1ee3da7db967ba1e362f5036216bbb5563100ac706ca170041c1e046204d185a 814eb9796e2957ea0e4351f88439e6f879e7fc232b70c92e190c48016ad98525 13add98f3864ccebe208aa7d9d6adba67fe5a03f9ffdf89c0f8d14ec286f1912 70522da2e9d416bced5fe45136da04921cab11fee25a65204d91c5ce2d758e7f 9a751f91700e6762f23c5a97329081e78bdf4d7a977d023e21ba89cf76a96e9c 558d494b1f20f71ca43d8e4182f2cc306ddc07a6551452261153e8344cf8b37f aa362e403b6baf5388ea087f41da97cae93b2ecd99cca4cb1ff3736f3ff91526 c29e216217b28f5fddecb35c9db1a6d93156217fe6baab9191daa4efe27371a0 a8babcd6b5757b5d747a13831e5a75465e5027333fc337ff2b5886677cbc9c71 c71b1028c4ce2586304de2a9fd9b94bd8d42932a6df5adfd58d4b872f997198e 070955fac446eafda0fb93ed0bc7de0c43f75c2bc4ecc178c45cda03425498da 24e78347983856da4d95bf75378cc9bcba2aa8fa789ba4f7d975d3aa3453ed33 39c6c4cedfef2018a3a42d9d4a61d8236bc02939193a14b78f0af8335fd8dd9e c5630f6887f30335a0bb0338a565dc50c5c3b4b3dba8ebb4c9b5ba4e4298bb82 56aa3bc05b7d69831617cf56f1dead2221760c80c51ce338cbd6772d8923b246 a3117eca414c738413c7976045368eefe556a26f6e373f62c20c7377682aa33d 122c1db19535cf793246def5c628d4b0501c227bcdd6daaeb9dd546a9d0f744c 2e7733500162dfb6fa26fbded4c510b5c40f2d53da18e5c7522732649bbc45c8 acb0f195bf94229cf9ef459dadf65b730cd6bfb2a03df5ea1ba35564951080cc e6096fff7176b7907d5f5f1aff4a4087cb79ebcb3fb1add134a86b3af4962f66 1dff2da3947e457b2614f8497727b42992f60de5369dc0c8f1ce27688b56ffd3 51b8e69891f5f051f1943e837a96754c545f0542a2f6c8357b1e330e542a6fb6 670bff4bbc9541de93e2f3af8d1d1bb75369e42ec14e75d842e859d06eede2e4 444e0926140956aeedb41e52a0b968a7888cef84db2b3569e0489abc0294c804 8060a07254c64df6d56017045cf84988d9ebc85d9505272f6cc720f0fba81ad2 573c6b369876b96e62c2b992cd65933099f4b8c912bf8369853bf41014e89b55 17aeb85d861c526778adef23e8e9e83ab3809712d62c8274378d9c1f41d7ce89 d71675b56d17b903f334a18052d383f60495ad737058cca91899cf31de0a1c24 a81e1454925f4f7dd49717f28702e904c1c635b7b14da65c3c7bd0f009886ab7 34b36b430b6adc217283df5c47ca55a21e7fbca4b42f658c92db73805de005eb 14c62d08e2b9f2427640832477c3f12b24fee491994e059b4227f4a81960cf19 092f4da4d3d7ce9482eb0aee8cc0e29541b85496afd4599a666c9b58a26180de f5de1fdff73aab1ccfd0b5c61a7f0b8cd038d8e6d848fac69c5418da5e53ebc9 b2ebb2bede7cebf2e7636bb45f8ca34186aabe4724c516eece7ff979eafed1c6 ef578c04cbbb01534046f0754b6f30584876256ef5eb212aa9589d2888bac048 b44ffb87cc4c9b6ada8a2bea0ff658b635629618e6f2fbc7e9e65d4812db4c62 4a5755472b8ac7d7e88cfed599ec27806adfe19528c0ec41e751a8f675665ee6 0730274f7549600f37e82c5f493d004afe591d93788f8afec26c9da2ed276228 4202387cd21f7fd5de754e10db1e7b5bcb87e7f2c22a18c963abb1413f8038ae 2a0d8396b0727aae6da01b3f4ab75e2eaff8a812f2bd78deb2f7931b4be75c59 604660d842201511d8eaaa6708626ee963fcd1874d913a21a45d8fece07e12fe a40738e87a8837e5c891f54337fd08f939f20e45408bf608421f29632a7aed3c abc08bb3d979ed2eb638f819b6373409a89957aa3fc91b23d18795f3881938a6 174811aaf851c212012e54aa45b2ecf8df9d122100bb3a4688c893ab1fb65314 4c05d1584b1a092f057fc5961e1a7c0c681588b7dbca6bf44e4172b10e17b096 73259832454699b6e39885750a91534c41f395b69015368ddd3605eb60eaae3e 5da1e1296f3a5f7ca3e1bb20d20981288b030539a9c8cfc58fff40bfdd5ded75 641c7f9b333926ccba2a072f8b06f048443b51551840714a294e8484f9e96370 f4c61b9c599dfea25e1decfe721836241b6ad2e890d2f8906d1e7180fa207408 2ae9c0a085f17476a9729316d922a076627d5abfcbc5392025bd3e13265d6353 e31f7d41388bad147da78e8a50d2d013f087f06a7b97682f325c6429ed1e2147 13d846ae00a5661dbba6e8df39a5b4bdcdeab3caa00019969377b87448b39300 7ebdaba2a97d4d4c96958b0c2f810e159c77599eecc07eacf77594c59f5c1497 1b6ecd6d5d69f80f0022e730a24efb6cd4a55698f9be74855b1873ce1e511f3c 5b2c2eecc0f25b3bec1aade665c97e61399acd8f9a946462e8bc1ebe07e23229 5ecd09caa8302601af2420a75b0656998b5b4170c25f5558e6f5f3013929d346 80a3120f95e12168e06486ca420fd1a208bdff121d6332f405449e1c622d95bd e11a84cc3f85ca7ee5ec531fcdf7fd58b30891b02f6cbc43eebf2a23d6d17959 8daa2dda0872af8a6db8b5009155c7d974a9c969f4672b10d19fe1a89e71c8f2 c723aeb7696cbd72704ba9a5113a7fe1e43279d94e960819a474c43bb77318b5 35798ae006e65b3e32a2422df00d4b1dff126761f6b3f9afccf5cb6f56a04704 f8afe0ae4f9ad3954a15e22904fe6c56a155e3708c48f7429ea6dbfae239b1ef c5ddde90e2b54f86e83f7ac45318c0d4050031b466d081684182b0951e98e128 2ae475b1b3953c28bd9ee5c1a3f5a0c92ba86001f0d56e63075477cf7c860b8a 83678276149c11ee602b40fedfa58779c2dc22440674790176d12b6e3cf173a1 c2aa6b53376868ebf7dc1eaf293a7cf71bd2a194461c38630af9bf41ed2b034c cd76cbc8df9d24dc193906c0286ac0a3f85da94af3ef02f1f84abd60405e2ecf 43ad58bd21e5b982fb5461b8e911b5573759b937dc4428fa3916924e38a5163b bc0a540a4b55eb3c60dbc4733882d90b83458e81b8a99443fd3eb19d70c2d2a6 f51d5988ead595be1e8608396b4113a4cdc3b90a1afd4728c8b94f679e345c30 49398c20dbaebbd0c6e8f05b6b1653489e98fd17d8724b272b89eaab242228bf 3e1a8aed1bf0c72170bed131ccbf5216d6837363d6f8d2707bd81f544b96b538 473158ba5b861512eb589b533f016e78f90fca7c260c01034769fd973fed805f b153883b539a68b78cab0034d1f6c95e823f622dc7d9f1d2a71b496933848225 c74091ddb67b0d59d7c1e0ab82e941a3ac302b5954b8dc1b4beb14dff9bf0777 306c7eec378880264bf4ac53f0ecf34db8fc1baa7fbab833ec7f117bd0601ef0 b28f773f2c81c831d06a68d86d9e95a7f953f7f9b3d7b9826e35ef90ecfae5f6 a83316b0c7337fadd77264d91fb00b235b25471e8d53ac7699d20b989f9dc47e 973e4405e76ecc378ddab53eb57a7ed10846136adf4f74773ac47e3bdde1d5ef e71cd0a14f9269b1762a2bd7d51c0fe20bea3520242edbc76a6d9810ef0ec485 2db2e428d61d7958f6f7a61f535fc3496286d9699fc525eda55d417f8407ad02 3405da77c4af77b955926b138bd6fb59b2f1211c9a8fb265ea794ddcedc690db 085a16c927fa256b6af62caf35307917ea003459ca0f4590ee179f825b5977a5 b686df23df1cb92a3e75cc772962e3a7fadee742e1a8504c4abe1a3610b1 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSS10 %!PS-AdobeFont-1.1: CMSS10 1.0 %%CreationDate: 1991 Aug 20 17:33:34 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSS10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMSS10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 13 /fl put dup 46 /period put dup 49 /one put dup 50 /two put dup 55 /seven put dup 70 /F put dup 71 /G put dup 76 /L put dup 84 /T put dup 86 /V put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put readonly def /FontBBox{-61 -250 999 759}readonly def /UniqueID 5000803 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b448685bdd20eb05d43275929a6669eca687892476 7868f7357418bea5258a0ce230bd4a90e4c2449c1bb0b09a003fcc1550cc30c0 074be252faae7ebbb4540870d857f3fa917fbc959e50a1005453d38380bb2050 ab7166ae895122c76d0fe468acb4209a6a4732c83c7b3efd4a48f01a0095a944 70612ba2a396dd6f90875a7b48a6806c6d7b781c419e0404c494a7531556efd1 08e97e770410e56fe92b45557101548925cb121fe6c80914681803e6a43f603a 7a5a56dc73ad61f0e07d23b83519d73df4bbb2095c0b43c63ef3839135866235 3fdc68c810d53b36757496e93e0278a3e9ecfb064693408c428ccb882e25cbd8 0a6816f0f43d82cd7e7f65836756fd2bba49cb58c838fedcbd066007a0d05031 7bd08ed1ee6852e941da15d26b694f786dd9aa403dd448eb7459c1f1be275dcf da8d9eea3ce8c4590ffb24f7b35ba9486d675c2c05388d903335b7ca38d54a8b dfb43f0aa7d4c553f962fadf9f7515bd713d93bdb45e1917d291116d3fe3c7b1 7a0303886591e6248ca7862a83feccf080a54fc9780f848d95bae09126f5c52c 88ff1344328249a2bed8726f05890eb9988e69258044b9521bc6a56ba837d06f 28f244e71c374e76aacb5c16a0713c104b38e48a94bcaf268f27a90dc7bcd5f2 f579ad458fd22ce0ddbd9aef2cb40cb76686ea2380f985ec361517d0c488173e 6ba28e55b37c3dde4ab214f8ba90d1c86968eaf684f58125d056be4ba1ffb276 aa5910aa52a1f27e7fdb93db1689aa98404cdb94185ff6e3881aeb9427d41231 b90246e1d3e0b229160fd017197b75052f46fdb53266bc9cd275ccfdb703409b aa3554e863dfe7c5f18e4857576946cc84eaf43dbf1e7633b7245071464f5e74 e8be65b252244ec46133761189dd1a343913e74fe0d52e374a1f846e765fe298 b97bab804c9956dd42a04e2353a39d6321653324217d8b99b9c15bfbf8703113 fcc5a90f47121a49ae9ec61fcac9dfd3633584cf9a5cdb7111e5ad9dcf2a6330 e2f8c8651e2d58e550b56f0afcde24426b1d3120ef01879720c300e0e449e46d b9cb017211eb483f95374e82461377dad58f6c04f94c3b1c08102af45e22b303 fde6ba2a753973d7e7f01e5bc241bf7889ba83296e4d37aa85dd423fb612ba65 be8e0df881e02e5450657eb285c28a53d2b9ae3ce7e8a999a70dc8eff9b0c5a2 4541a9dfe9559942b479c2152b727a3d53740c4c73a7543543b8c8a434434131 c23ef68b0b91298dc9f98ccea060019ad19da07ec59dce14ebc3d4e54a272547 5af085c21ed8681fbf31ab9160de9d23faef7711ec0906086a39d443f84a94b6 30472055607d54be5fc6b11ef9f17e85f90bc9f5e5c5569822e3ff29b9d39866 52813504095d0d012b756b5caa216144827c546f63c2ed004ec7ef380dbb2238 67cf17610f7f59bc8e542e10ce6bfda143bf18b18676004f91e09e6e45dc9d74 6235b06edf4de142c467bb30e5937ec9c7901b1bdf59f4ce531211499187f80a b3e2d5dcf28b317e0050720a98bad5c7a062618a44eba1a72bfff2e47cc1b26b 1f51ff380b3f182ca45a2b0b755427076d38454879c7ebfb4f0867682d00c295 8bd0882690bec0d9bf34c95542aef265f05b139ceea371461bea1bf4adeab24d 5b7a91617d07c4e0eed637dc35a19be7d11998ae746b19de0b6d898b8b016660 61e86e45f3284628d9ed4412e86318e74208c278208a379c5001a0ecc0d69505 8745846420efcf47e401c8ec224006bf238b9e4146fad3e71c6d5457e1e395f4 2629bd231654b76612042b74eb6c15392f425007691e02245e02fdf853435007 d8d1515376701c9f04c20945ac5b1d5d975c1b9c24ee432f6394a4a1d09313ba 1b6fd85d94426f74f6789904e80486b5f42a61bbe36ac44513b3b10d04604e9d 4ed1c33ff3ae30f7cb4031d224dcb2c35cad5e76474d229d45cafab665d2d097 ae4125f3045a1b8cf5eae56b4bc28aa3bffec016142c6a92bea00b906e60f823 5370823ed62641228589c14a22a659e5c726f362188f0e47308bdfe7d5b65577 8f4cf1bc28ccdb41fa4368799980dfad58f8f43e85eb530b9379f49a32e6753b 45fd1f35ba7e1b04519cc7c18562cf11e46cdfa7f1c7ba9f8cac2bf68bcd666b a5b76884dcb5a78a446c1ea3ef8b12f93244301305961e921d2aa1ef5f35dac7 de9af351f5e45d7c2e833185e2d22cd8d2fdfa8072ae17da3b72eec9cb91d2f8 89381f8eae0c5f75357f03b9f2eefcda915c1858534292ddcf0a8a716c636605 b0bbff00767a8f455cf3cbab323fa41bab63c1bf52be45c7c94a5ff9602cbc59 33f41c17205f5e2809b81717f2e8af470c084879f768b815613a0378cc1b4051 a9d483a5cd2aec249d00f0715fea2dfad082f80dd49bb8373595b26a95b91904 d8520ddb28866017fd8604bf777bc594d07f1093131a3e50459a951b070e4ba6 1ce242f2e699f97ea46f39adb35c41daa1aa08ed8e45c4fee3f884d0d79e480e 7643b1f6ecd414ad0f598d123059a7f859f2890cd97a0be258711cc9c0bb195d 541a5e784d35d109f882c585db220ae1fe3f8879368061df0d18649f71e1b3f5 d339aaf9bbeb60fc83f5343a1d1de882d11da52c15ef7fb47972525baabc7742 2c43c93e39ee5988d57e8db7757401b0b9d5870d699afaccf2f78a951d6b4096 60bea271d4ff1d330f6d942b281b72986ea4b7960615182941ad9e1cce118136 3761f869c4eda9b5fb2fb9bbc4c877915ac6a4480065877fd13a4d4ca186ef17 bdf28c8d05beea06567ff8f3b20a0fa0727f46f80c2174aa10cf8fdff1f51728 6c7ed9f0c3ac494df0b711358fc5ad8ddf221a2f12172cebf4e7892ea178c99d e30f9a6910064bf5c76d9d00ed6fda7a1a09bbe35f039868aa9bfbc32657a2cb 973c34476dcc2a17ed0efb062758a7cd81d74fc63a3d44ab3a75760e303d1c8f e7cb18ea68499bf895ff2d328d4c1b47f2a1d6ddaddcae4eb51b8eae50701828 c015348be8495c7237df2dae747b9586bcde7b799d9fe48588f65f4274f0b651 9fa6b89c213775d1f7258441b96a700cec2ef84e838add86fd77221be5c9b8f3 d743c1cdc04b415caf752bfc97ead82d4de8bd9b238bd22e0c48de111ad1b117 87cbb1e16f8163d4b06d6074981a4bb4cbc71e3892d1fa2cd5cbc9b01a12eb1e d348cb97e479fc068c825c11313b76dfd672fcb95901bf1744bf6e9180020df2 1e581d2587aa832199b724c0a9b5ee4dfc5f8b775d027b3310f190131091eef8 bd5405bac7f17c104ae3004ae5c9979762f28bbe35cbd0fe9c889752f19cd4c7 91b8a7132f7db3b929488af5e7c28a83e07ca6a64f6b8f528f909ddbf25d9af8 3e916e2fc16425e10eb0fb2df6e60c1a733a0683ecb1c2a50d94c14e0a9b596b c0a99065ab89569ffd4dc238a01e49b0d4cfaa64ab930b6afab1eefa3f1dea9a 3d0b2fe4e241ff2e49dead71758350ef973ddc89eeb75348c90187e1aae51ac9 5b8b289ddec74989ad669c3f1fb2a6d0474d6a10b975e35fd49474bc9f1c78be 33b502b75ec5cd726d3be93c6a93a3a100adc597bfcf67edaea119ee5724d385 6ca1d00056bf0a7166dc27956ec6949007c9055948c5e414d6baf88e28bbff37 944d0e2ab1e03af5422330c4a44350b199569e4a5ddd2157e85a400f4b988797 a4cb86445f1a81553f2a86059af16242f66342e5d1a253e397afe976b0e92ebc 18089115e71017688ec4d4c95ad185dd770fc707c018224d07c1365f72215a66 4d80e42c1e3c41466eec0ca30c20e44222f48a9893810bbb43e155a0333d9ebe ce880d9d3c4d710711e283bd0504c165429601c8e4b1cac22922085b449a2969 2fdd981f624a52ad83896d440c2bf86641ba7423777e978f6f02757ef960b09d 172c896ed308dafef17d5f22a8cfc2a3840c7127125bbb3ebffbffbc447cada9 4074ba1a3a626033f4f3710e9d88aa76666e1ad01373ba4a52ac1e48d31ab5ff 0d1546f4cd570b419129f3cd5d3e7ece0c313a206c1a697d3b8ba8f54282d521 8866dcb95159bb48acafd8d990723d0ee166c5893313e55d81e957996269d321 f2b426aa4e34276e6abd657b0063a10b86cdca57a43e5a7f0541a12437b3badc 74d1dcfa0403b283784a8720116f9a215251c5c505da2139983092598ee1b8a1 78f755aef5e8a3c20303770be2ded234faab9e96f49a8b69155b53b71ba9eae8 f35777ac0633f2abd37f44e27b88694c7928b418e864b15d5c35626512e8bb71 0fac51fb02e398c9f8cbe442beaf3146bd387656573cff6277e533803196f212 8d99c2b67861af6611e48592e567fa159de4e61a1017b906f15e0a7eb10e17a2 079e1265605dfc5572687dc0f4b787274761d5e545685a07d37baea70d73bd0e 025d814a1adbeb4bc044bab9e7ec709a3c8efa75ce3ad531ad722fe17e6a82e7 d7a9ea01a71adba717c3c84752d898c57b7f825a7517a4da96abdb56fe65d11b 272d6e886368c2eba1e65e4d0e43677ae83214d7323f9b6d01b8fc2d04cf6d50 3a8da3311945ea33ca95dd79875c1f122d2ad0fe3d53bd8ac57fe3f64ccea153 c6f3c8b7022e88b2843446ec3f391d9f5776df5df129e8504173dfc85df90a1c 686ccf05310eed02994478acbebdeb26ecfd29ba749615fc9964a5b290b945b7 96c21a66d5c294180c2c29507c5c15a7dd12b0ea5ce39f55522b43d7905f5954 fbb5fe8369787fc0a19a7cabd3d44db5f322f8c24698dfc78cd29179cbf102eb 5be5b45489092d28a7eb1825dc33a8aa9c9f5b9e7fac1d0dcb328ccf45ef87f8 69d773f25aaa1974e61b59e934f9b30203f726a7ae8236de4441df1d19073e76 be6d65df926f98d68abd0abc2a9913e34677610622aa136dffb1b25fc4299873 a464e820a4a12c184df35e2a903ba53182ad7a90b23658190609bb7ff7b7ae26 ae1fd72bc6d82d8f9209d02f99f9ec12bb5d28b5962f2bd1073b25b1d0d77d70 db778e600b3c17817411bf6f949697233635b23bc8b0296c481edd7ea0633a0b 565437e7900a038ebcf274f2428e83532e1650bf02b58e200fbaf5989e72a360 4e205a06622aef0f71a98f6fe25fb69f184cd1739b2955641c6201e54b7b225e f8665d7562943be15a28a4ac1ff0e98fe10692e68dee85db7cb3b7184b5d931a 938fddb321f007cf87d3894d4e5bbd92ea1689339555ec19f024250e85a5928b 8cc7672e9316f4706e765b3685cd5b45caa0cfbde854480985048c1d383d85f5 81f6d7cdb7d18111ff418749042bc6223d39d971dd61634cfd022b4c6a9e44bf bbe50ee833dfd18b53a988eb5f842ccafa159d8195413957860b647b805e5b10 f9d37231c9aa3004de82c6a41f541557b4e4cad97e16bc94cd79759cf6ea82fc b641ebaddf45847a24807e6b1ae91dbe1f9856c657d1f39f9fd7055b0ea09de8 7f82d03aa7509166b94e5dbf8bd0ab22e2b5554d565b0c848eb78d4a76c3f3cb a8b5072eedda04200b328873d7e1b81ef505fc85e5fdca4eeb8aa6299fcc5ee2 dcfc7c5c1de9202a0eb60725ac84fd2dc1d148989724cbd381793cad0598ca97 402d2e1f3205e357612ee90880cff3f1ef07608938ffab50e8969a1f3d57f8bd 6e82f117c4588b0281c33c32ec3f6a 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY6 %!PS-AdobeFont-1.1: CMSY6 1.0 %%CreationDate: 1991 Aug 15 07:21:34 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY6) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY6 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 3 /asteriskmath put readonly def /FontBBox{-4 -948 1329 786}readonly def /UniqueID 5000816 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352 05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23 b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145 d026957276530530a2fbefc6c8f059084178f5ab59e11b6a18979f258b8c6ed3 ccafbc21aca420c9c83eea371adc20e038b4d7b8ac303004b0aa205f04135140 76407216032fdd22e6219da8f16b28ca12524deb7bca073cc5eba65c102a5e85 fd48e6d062cd4283ee570a7774597e5bf0e3400b6be72db0115f3cb12db70ce0 83722870cddfadee715f10f1fcaf20e06f3c54afe5ca238539bfe2b596116e83 f5371ff18fa5003d8543226cfd4025f9940365b392a858d27f078d3abcffe4a1 54e78c7692d1a32bf935967c64f01b24788ff8325d61145e2d4a489fd986fb77 38e6b254522c77ca2797a504a9ce4676a77ebacb026eca94dde5922c936f8e90 c43e28519671e8def84a1526a8b89450ef2bd624857da91e76994317b723923a 47cb7b71e71550262a4a4eeef7e0d2eba371584b12b189f38fdb9feabf33b900 d528bea06075d4e71d7696aa2ce7a5bf900014283045468c2625de16e2000219 15074a97c681b3c6eee6d67ec3e481e174b53d1a3dd58da4507f93fa57f4f715 e5df982321fae7682dcd02c3e977327fa2b9b80ef30e834269bba9c69dcd694b b055398be8186c0a2d19f9c101f67b30c506d8fe62dd7da5dc0d4c7abd32f9c3 c64e081ca3cda88b1949fa64f70da6cb7a544360778ed200f21b04958bdbd70f 044e7e611a28443d0c7b8049413c0ac989dd986086bb0b8a304c185458138b9f 6c929aec9a804d4422ce5429d29a5c03b8a7916ed162a368650de8db6d9961ab cf373b396ed91d0289d26958cce7318fd7cde1bedb07347b1990557b33352b61 b18672a53c81d8766a5260d28b9a2aaa542368e2c307cfedbb67e7a5a2b0fdfe 8ee5f5f0c0f3cb9e7744b87ceee63dab32 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR12 %!PS-AdobeFont-1.1: CMR12 1.0 %%CreationDate: 1991 Aug 20 16:38:05 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 34 /quotedblright put dup 46 /period put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 70 /F put dup 73 /I put dup 80 /P put dup 83 /S put dup 84 /T put dup 92 /quotedblleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 119 /w put dup 121 /y put readonly def /FontBBox{-34 -251 988 750}readonly def /UniqueID 5000794 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf 5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b edad3b72ad63c2918b6e5a2017457e0d4ebc204a520640fd7c4d05e35ea5486f a43d0e970787203855daccb1ed0b16325828b13b7c767a1a58c87902f0546ea5 404440fa6526975783c2d7a9572b8e5d5176bac598b8960609f49016aebf3763 89c1adfe6a1ffc0c53b3acd9d168ec3a278fd4f1d9b085dc2df701346c9d0887 3d230a161692b42a45bb5da343b4edd839dd60685a59aaa49fc65cd8e2ad2a9c 5cab953495172a1a9f40d5f38e922443a519dd96f667201a408bd1d89e35f4ab 98e2f68c3366efc14b5afe1018d9c845d808d4f8e07ea8168518a171ab4d6e21 70eeac099eb7ef46eb9781384da1fac3b3133bb718bc80082eaea88759745188 f266b31d0c7e791d633f16ed94e05517a32163e74cbd96dc5db066f2a5313d6d 7f09465608cb404613e0f058073af000e5bdfafbbf9da0c0d5c02a3447f2cdc1 f56481901e34265c26d331ac3f85bdcbc7c51ef9eddf2b9c189c5253f8e74282 d6f053d7d183ae17ea175e5ebc401e67d21a9fea139cbbf3bb1358c713a75843 b39a69aa2b1a7b975f53ff22d1dc3bdf7acd17afa1da21568310c68241b31d3d 03bf404bd30baf9cc19c75b958bce7155f03cb0cfe2cae0327aad4b603284a51 7c26de75b8c6f6aaa9debe4aec08ca4b646d787a9dfac85b2c01760e9c6c6162 fbbc67dbd0796831e00c477d8e23c375ffab46d289be9d2328aec2b7534ae4cd d782ec2453e7787f6e6b4537b46c01545cba6f90b8e9a1bccac1937bceeaa5e7 8e9f368ce067a0a31da98bfbb545be555a7270f0031fadd4f9b186629e5d2c5f d264f8f24cd5a1c0f68399ff4b29fd77c4a54d8296523415a982da4a48119148 87644374885b518e467b901f4b49cd0c09ded7e3f9f9d77b03311fdc465986e1 5d5974c38353e942fe9af504cf0a60d11d5bedcc8c4a7e3e2ac4753d6661cd02 8b88e5b87aea8c9d1104ca3308b4149e1a9427456819ed5e060b76b407648b40 a17c56f9f9bb87b2cf0fd3b44726db324f847b2de3ae4c26ce03ef917bf62e26 dca7e539d5f001118d1b30bd7d2ba22d7878efc0227e44eb1ad45434064115fb d516c904537819541be26fde9c8248e06f21f21d2b1232fb61a85a3540dc00fd 5f1bb7474f5fc0bfdf486ced5e58bbdb3204ab2ba86b2dc9f89a808a8009a32c bb26fa6a2d595618acdb29c1393129fdbf54819b9e916ba5320492ca105d5497 04f71a1f27c119489a6b535b9502e39d0140aff8aeb24e20a9323ef8a8c56937 3ad48532f007083e6856aff7ce37a7f33c87b0b9c87e98f134e1d73262baf649 a31dcc6c49d58a20c1511f4db1629dcbdb838411d5fde038011707397cfbfed0 3d04b7c9f84ae6686e9927d4be23de87b40e52ef55abc8570c641ca59583ddd5 1c5201c7f96bc83464b574327136b3f1d27e47fa67bc85dea85d0741bf1f779d b213ccc3516434c792b8c997904ec5f45c7549800972b9296f233d817f48fce0 8ae2941b76221938e995be3d85aaf1f3f7b601bde90aae80f42209207b1c4ac9 942cd588caf0b216b8f5985b29929e47b039b8717e5b236a07e0c8784c7644cd a61bc807a13fc2fac27b528444f80c8fee0be4053261462171476ca117761406 96629424e0992362f6532f27729282fe1532d36ad62bf0d8e3e861ee79b1ac8f bedae9b89a6f49aa3b1be4d08d68d686b8431e1a601d7a9a00513875a33c6c2b 104f7424f565886bb2b90f11087c535a7cf6d6522b2c0480704623a63ba0489d e7c79614257cc68127aec38f3cd54d9eb8d04cdfe8e4a1f6dad48d5e8ec0ba24 162be228fdd8573db2e425d258fb8646bb4d6531a5379801bd25333d304dd285 7e9869277cced1b8878c577aae19c0f262b337593b2503672fdd41cfdfda1695 35e6d8de14902ef368740591942ff870b33e8dcda45573cea593e83874929cae a090e47ea68b1affab2275e0d4d3ddcddac392f72d187337b6961129dabafc42 cc69627d7bc6cd4d5050868d757ef03f2dc74ea36f51403bc45f99bc4a5fa34c 80d494420f54de15af410254a5b552d3232ce0b4f7b220eb09c5104c01a6f277 0efc04525bd1cf80ca7158ead1f77296c6280a269a05402d199586ade1044d60 134137dda89368d7ac3c2f9b75a08ab1a9472800f262bca661310df484ae748e c7b477c844e27db1a613e72e52ee25f22204aa113597904f066a8ba61c6c26bc b8f9b12b4ead2e42e9c4b8113f35afe0af9a4b663e76569642ba0dc9e2534356 261eca4c34c228ca99114a742ac930da9a8b32236fdd258abfd848369267c18f e5ec912b8cdd27a725af1ed14daadc49e5b1ffceb9313d0e28db73f147eaec32 d1272905961d25592a041152e6cf62c09998e5a9d683feaa09fadcde65706282 16902cb5e2bacfe1352aac47fd8dd7df8ea0b5e96ccbc42c3710e26fbf21ce1f 52e10cf209f5f99e1130ddf6bef071f2029fa70afddda33ffc7b28889e260b6b 0b6f9313520b6eafa0628f709a53ae55aa31325ba07280a1e3d666b7e92b0b1e 403785a024f3555a73657483cfe1030018d6afc4d9e6f52e88b98909ccb91025 1dfb38666cd131ddf565babc47c6cb60df4279f71ae3ef8dc0188294cae3a903 fc874b0d2518a42e5c8ff68a2d6fc8f444730679850e819b9a744c3756c9db3a 058c9d4ddccc0b67484ba932c61caf08dc589064b31471bdedd5c5fbefbb3997 f1dd1f7171c6d40469628eb78f1e5edc8b98a16e4a46fa74905aa1433156b7a4 c5585eebf8d60d60e5b815c28e129d9dcef70f773584d8f3e9bbf345788ac09c e7ceb0b6d32e514cbeaa1b626b564a6f4a2e19425637b3a97b0c72989f819ade 91da7f3628b6e6c6c7c18e427e8b0767df0a833ac34a79b2bb938f57d4a50743 17c18cf356cecff6a1b82c53acfdb43b66f4546771ae77359d84f0cc144ea27a c9cf016248e3cb10d66512d9a7789f4b4939bdab158723c8d466b29f13a73f77 1fc7af065a5bee3fd1df6ea3b22a2ea4a4bfb47a70839e760494de915d17b0dd 47b4151cf82afd263b74710aa9ee24572cb5f790b52e6b25e05eeb2b6dd8b7a9 31aef200876211cfc374852e8f9b37a1ad5d3a96261cb045185ebd868251a516 b1d18811b6b3ef3b0fc058527af8bcd32f71d45e0dd5661b16918d6d3d7559f0 271ef9d06abfc7b923d4d045345e742fba944cfeabacef712cf6dc9f9271c9c9 463d335c22f37e5d0e1d3dd339ea95d2911dc037b8d0881cf7c0e3443724c5fe 958e279779a87472813aa956bf827247213c0df0b42a478768bb98cef59bbdee 6c9997de63c55533f6b92d86c6555e7b48362a2e1c5439ba3979a4c1851d31a8 2106bb456ae3bd628d3ee0ab0e2b8364df9ad0a5586afbb31271afe1b0024dea 836c7e3d381e4f23e524c4891db08bc5585e442d3f5cf5f2532001e2b54e300c f326e80f79fbd7a8b9e08a9ea21fee818e5b0eac1a125867fd845c74b6a6318e 11b6c766d344cdfe10073d995c9cdc0d7a8be09d47351018c510466d3039e7b5 74d67c0d42f152379ba84e48e77a6c2a736db204434279348b89a6d974f519ed cf083f7efc6f7ccf42cad4f6130ef74d84935cbd7f4e5f3d3a4d73e4ba42935d 396dea356d77e3b04d74f026e60f51789401f03c0cd70a4ef8fd53e40d2b1ced c42fde43c4c6ce0369c8d07d1d9aa73d58be02573c7a36f8757c870fb7948f3d e72a589c2fdc52fe55b1318c17762ab3e2cdf4b77baec757aea02af411a4d4b1 8e07f8381c35ae9dbf3173d028d562cf18f0736b749e66a310538ba7340645a9 b3b841c4928d2393086fd7b292bb4ab606a63fcebb567dee7474fca4c7dc8a32 bcded7caffa8a50ca312c4d78c94d6fe7724bcba52b053f4e57cdd1eabb7bcb0 f73c14b0e795562d96fea73dec2df7cb677a85b17c73d2f80f8d72ba5224cdf4 c1d6a22d8f6850077b341497774cc2e5d08dbb0a744cb850d66c4b361ce6d4f3 d1732786c7aae152293bc2a5103b2c70983fcd6d5488b1c51894254a9f4a4bbd 93777af4f03e162ceb77b23d3ff9f5f3dec581a3309027d3d70ed61908a1db95 d1c142dc86ed247dabb29e6ec5549de2a943c5b6fc34cce8bfc6ce13ccd93190 4f2ff7245b10890491b5085147f55d48c14e51e007c1da622e7a264e0d136f91 568c7d7befb22e63c9f63cb59d0ae7fa52fa8f0e17fbf0dedf6819b0a29b2935 e61e019cccac30ec683d62c32f03c9a0af78ad60a9cdacd5772d5e5087488f8f b7cdc7b89ef84ad34da4749983e3e90b9f31ad6c35263545dd10e8692ca076ab 9a11532439dca2ab44f2e40901e6da6d158e7a309e80978a14622b6654005007 92220dee8e5ae55ccd80ea2552b18d8ef7af3747d2d85efaa742c06deec464a3 f30c5324bb9f3c9fa5faa68ba007726c7726e87ab3d4a8ee070c789deb503d15 a3984fe4e70080e2f2c2c5571db5b771f2b9b44d05682babd1998f1999220fc1 a191e7d82ed2e6c6277e8020932675cf3eab3b3d848cac5b4fa2298db550d768 ebfc89d44d578922c1e248a7aebf4d4e6529ee5c0f030b565bc60a8d2d13ab7c ce42b95843af6f681e5509cf90261a59d7c05c1c538b3d7b760cdb092c72a750 1b59b51efe99e32714daf62970b429bde0647435d81ed6d24a16fc22854a7bae 7dc03f7326eceab995a7291d3827633d77b73717b07f6d3a6073f545629fffc8 025f8d1ff0d391e4debd8d1652d9afe427fa1b0604930cb8f1f1e7e003798446 322486771df06284e6aebf7aafca61ec5780b78d7b7ec143013aa6a80903c725 58462f7d9171a3e924e0112cb442b52b78b10a2affc970e9b5bf974b17491e51 3d9284fb530ab7140f88c8205d54a162a0a52f681f497552fe9e95c946d99317 23f965ffb7f3721bdca4c472aab0db22b9f071b60c9ef28758570ac3ef3943b7 b1ec3d08e062d8821223e7359cfe59aa383b77c555a65f76f9db847ce30d7f5a d9712e0d490404703bb725e4be61c15092be5d9ea20b660c13b08191e8fb7914 20f960775661fc03de3798a0a4e513193b9f74baca30ac3ac65bd11167e25321 79cb3b1765c01576d178214abf6cda2f87a45c1893c412ecfd3c0410ec5f7f63 4032d86c49a1f5a949246fc0a45190f3445bdc4007be98f93d48e7d961a8b20a 3d2c6611666ca127f701b3326345f79430978416b5a807e14abcc89d3bcdbe8d bdf841a3759847b5a4ccc2269dc0adb5625ec89696d36f11eb9f9ab78b00d9c7 567357e31a9be2511fff223459fee1aca2ab39e2e1a9a98c68a13eef8293b2be e8f5e8cc841d11dccee4d30a09d66d628983a8175d07f8e8f22da217f144a205 15f35369a38f5b0477783fb8ddbc940be814a88f85226ff94b43dacb525a9660 9c57db317589a381ee8eb194f1d38c8fc59ec45c063e5bf8452f5ec3080bac0d a756b6aa8c5d7685ec187406849e87671f922c0844a14eb8d4f6e55e192cd7aa 7443341643449a0a62b328fe9297ab27f82acac59ca5b7cee2ac138d5ce6e360 5e246ea4e95462eec4ed59ced0033bf5a7c2a62a683a07636e4d71d4c084c030 7e9105f03101df27d0dbf827f7c2ba7dbbfc6dc54c91d14fe36b4edd4d051015 c5627260e064dac055903b0eff2c2d385b19a53c3272d229dd9414c319840a50 26c0419645d13b982114e8f81283f7477351ea7cdd36256d1c712f025562cf55 253c6a66d4f9c5493fb9d62126a7e6cd5e743e8da71c27ba93e4f2f0f248d3dc e16ddac1b953afafed54bb5e9f349ba12ee0d8a5977cee056060066f4587fb3f d7abc45bf72b6b4a24df975aea860c3de771e19aa16461dc193d6210523f6dbd c92342f42efb9f1e56266b214faaf6a86b08ceefdab6b179b298d1fe3ecf7009 dbe7ee0b77402b1f9a16cc919a0c13e99ef36354bc52b9a847721c166ba47794 6daf0c02de3ec18e1712e9500ecd7492a96ec85a69b9e59bcdaf50f273292d2c f7545452d2a3a26f7d1f5b657cddac5423a6ddef9eeb7f4d27e21de3ef2175d3 937021baaf89cf497a162d96057f2b5df1b513b31cd97e55e8da86a9b4d30be7 d3cf3be436d536b22aada8fdb1ce948b653a7bc042a13c25fa752da0f008039e a70d6a8841a1823ee3f6c88f8b3f3dfdc15d7f2a83ea622d4d9e213361c4701c e8cdc656864f917fde3bdeb93c04d281e5b4685c87893eba5507e223b2c736fc 8df721463ebf5b9faf27eff32b75d1176be771b501ab62088c3cdb8347a67f57 73ec136ef6a0c88343c5f6d1c07cc783cb6869d48302f9f7d52f1f772f69b050 daeb2fd9cb415fd3b12932e36fcecccb99761ca5b53582a1d955b4b363d49190 51bddaccb20e3848c1567b6c70f88c0ea9cc1a2d8341aea36b0505507cd2ab8c ae7d5f2f0496e4b3316ce76b36d402896c19c85ba0880ff310f996749676e662 c045d444428fc296e0cbad10e47de4726afd8d119c76e63c85b2871db381073f 8db237eb2d607ef6574d76c9bbd947291956f9496dccc8f98ffbb2c19fdaac4c 4cfd0891aeacfdbf3e666a49fb15227c7157066b5afb9193116e0f77971602a6 ec68d7df609268ec54bee2d12ab49e8a7b109919f7b46e49de3001a29efea3b4 7b88aca7ac66d6814d0fdf67136f779d5d421c0ab440fae3002f90a69be7a0d3 9be1e18242d82d1eb5a7e7a62519bb399b8750daf20b257ce9c28ff2219c36f0 d1232a7883e872d55443c1c8b480b9b5fa68af0c5e6ba2cebf3e33644446e3fa 00e365d84d49ec1383fc23584acbd12612c21fb9b643b4dc7425df15b337f6a0 72fe2cfd302b62cb3f69113d66cfe340c0427146c373c31ee45526e93a926e2b b8906721a29d97597567f28fe9ee37583fa7ec1f26f58ed657482b30deb0393c d0a089bd1dab3d277f4a52198c9fe2039296651d81f6e05df3f250662b8a4183 2d827c02779ebcb9de65b7c1a3bfc2866d6ae3c5a0181176a783d5589f7f0964 920d6ac72e64c1ee2d2d5f42695518ec6b3691b8ec6f67c97f4cfcc314ad9c2d 0dc0de2cb4d10c480a37e2d212b89cd3054197898aa334d371314fec383321e0 c7ed9bd41eab1a9abac20dff71d3ca16a50b1990f3310d5ac40e09229e233f34 94badaea91d763519c942543fd8ca85711fdc6100fa7dafa5ccaa7697d44a038 94a9949c4bd0ff6cb5b56df89a14a3580be19f4b5ed2d9ca709e28b9fbc7bbc9 bd657a4e5976d0356d501b3772fa995bdeebc662f11a69693b4e7a057ad9e8de 196294fe718260026ca10ea488b0fbf1354dae6f470cccadf0195744e7edb0d6 0b26e2013243960cb8d24ab5373b5af3ad2195c949cbdfd04b56f304fcdce0ae 3af955e89e218288354bb7d3ce7e89bb091eb01a5c0fd4aef7febe050370e684 b94dafa982aa16291ffc6d38b856e0a971d838a3928cebfcc8c48a3588fbfa85 88bc6e702cf9fd9b19b8d51e6a27a96724516013e07093a7ca0e1ad73a120a56 83bf8afebb45765e56b9f1d46ff196617ccd77e4098359193d018efb800cdcd9 8bbc2aeae43ea2953cb70f0499a9fcacbf07728826d452b1cdea430026392c75 1d1ff01cfcf362e965d8ddc4cd3356d4b454cbd15fac2e2d9677912b4953f5a2 4af2501fed92e34f0a9b774a628a6977a5e86c851bdda3f0eda8851b93a08cf6 c05b7ee42aeed2d92394070fe8a7a0501912eac63edbca1bee7f69136f241ea3 bdaea2fe05588ecf4bf5dfaba0f0648c6edd3b41664902a040c3e259ad949b5a beeefb66bea48c3baf75c9c96fa7ac9d5d68ac1f425c30a9b5af831a364c2aa1 51af17e0c87802a86463c552513e34e07f58d3e5b72f915663d3bd43246978ce b9edacd0dfc1755a99c1b4dc021b61206bb9a3f4477523569c50bbd0da34a055 c97f874fa8277b957c6f436f6e01e87ebd4cc3c54fffcc3af5f52b2d6aa1b144 363707f2b8e5dc92470c9b94d945d2ba67f03ed7c7149c7e3c740b25abc82a30 acddef2ed4b20ab9714b8a73b8737f353dce1c104e8ed927b1dfe6607cc451f6 039ac0205aac8d8dfc83fb74229d9ae60de4bc3d58453655d9c599098a141f3a 58b0c337de5a7dbcea98f121ae1109d37c922f24c44c1968a89d90270558fc28 4776cb0b879ae7ba4859abdbd29fae696deff017a4fe799733ab78905ad82249 079cd6a7deb5c39cd1e51b9ffa254bf6877bf38499b326f7a3f183a4cc3b4228 71f3431bd43b88e34c66f69266c1a41143cc8c173208fa10c69ad509031d9b0e 14141a10d1110556d259f21e7f1f34322925dbaa6fd5ebf84b91c2bb4067ebd3 1f030910ec692ce2daaa12ca094ea0a04987cc91021841c0b4da30da7f11b18d 11e68b632fe518e3f6d66d2ece4b0e4c4e60fc014357fd04307dd5d40a544404 04332cef37be0a9843cf45f649e411d5c294bf115cdcf77471ee4a9656681cee b01992ecf80c8d3c699ad114b20015ca57b4972259c27ce5a18002a5a51cc180 5071b6f6db0fc5158ec2fddbcc7831ca6d1843bc4bc31f969e80b9267ddcd758 beee9cbd8296848f329110d2987ee9f1fa1c4b4f48fbee1309d517c8688a7a00 1099c357d39fd9e733de0c35a262be90b4eb963ee83da330fba109fec1c194d2 c7916b23d621ffcc7ee39493894df5607342b5dd7a4a19a6dc0bff67a6f82872 13f9ea4cb3ca3eee4c19016ed2132c87b9729415c9dc21fbb42a75cd0b747bf2 8c4ffd7f7b168d622c66b234a725541740e8777ebe990f41e86f48de9614846b 70cce99378415a36e495d62c87b70585898b67e8bfaa303da2cffb2cee5b74d5 e0cf1df503c253cdccd42eebbfa04bb6e216e3041a182ab820dd81ba4b6df297 1f3c6a2fe0d065af337e8b169778c327d842773c7f01278869e731275d46fb72 eceb23121a45be22dffdf242a5b4845abc088d235f6245798f8a99f5c2702291 f556e1932f7cd35077a2d4d6631a3b75e5e1c7e68bafbf7447625cb78fefa79d f5f5df91935af91970f8b1a1bf571ec0c0d50a90e17d5bffe55bc7ef634d29b3 f94ff7536ca8d19c335f7db8e1c75b983506680dd327135352192513ad25841d a5e48a5f8267c884cb5212a2a274f6851988f00d09a58edbdc508bf5fe3b9fb9 c0dc5f80c277bd48bea960260ee497870585365b42f59af3b884c6bc6f1ce422 af96948ad4331d4b7ade32792e6b8c6383f73ea102d82d7a7387c9878b9108d8 5922e36f9245f68748e6f27bdc92f2ace2cd5b74414b38a48095e0bd53045680 0766660f6e239e106231b8399e34f795bb708eb5872aeae0212602fc380d8323 cc431207c52511b2a47771c45bec3b3a63aaf3367aa54ca1bead351301720d51 1e88a5d0dfe4bd128b145e46b78329b1f82a508f21b0e508a438be8cc48404f0 c2894b817570050a0908539dd70427f82bd1f55e3b9befac47dfa975cf825a47 61fd25b887535407455da3688896784ee64a040bf9cd75961191a3b968ec908d 1464b0bf2480e39a3af65defd20923e58e179d5697ba8107db2526370d3d9c0d 9bcaa560f1b4b2fdf7fca67391e51ed6c83a490317a68e1e2ef245bda95e884e d43b6310f4177818ec80412fb38560da4aa523ee6f30d99daf313b4f9a1e63cd ed8669cb67db1b2085c599b7617ee84ba67e7d929fe9bc47f5834c64303518d2 4f0b14225a9df281d799edaf981721eeffb275dc7c2110bdf13a3f3e393bfc86 018414c1acdd1a2e8df8b86bd097193e268a524444739c18bed80ae8932a6b43 5c4edf50b8b0e7e4c6f34b044834fff9b7ab8b330d22bdcd5db1d95555b71fea 32b90f71c146fbf7659c3367d624b5e1f89eae37025aec9abf6146 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI7 %!PS-AdobeFont-1.1: CMTI7 1.0 %%CreationDate: 1991 Aug 18 21:07:18 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 65 /A put readonly def /FontBBox{-27 -250 1268 750}readonly def /UniqueID 5000825 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd80219794832af151fe9d5386d1ed91db54d1f 56dbec55d7c48ed295977e18f23fda49f00cbf6b37dbcbd34dd98770e780450f ab0bb54cb467b1038527da84f47b0cdff9561b343383c7cd96f818e10597fb39 4e91fc05dacdb7b418c8e6362ca4e803b563f227624bc4d8e0e1f76925affaeb 710c3b8220db48814ac08cc6a4d735d85316555bd4ab77a1098370dcb2bd272e fce72e2125b0a783a9b1fe202217eae8eb51e4ee2b9735b997af5b43174c58b4 07c1c7a4b7528d6ddbc7091f1fb8d4a731d78ec08e4c996301846cbeb5673597 69578272b49423899ffa88ed9e3fb5511c3e471150a3e257ba5656d21b8ed57c 4d1f6433eb9e04012c52e0fad62312eb2a88dbff69cde9d39d372dd7934fde7f 906a9c4828c1762dd4e1ae410026c58b56db7df324dad8fc3696323900480ff9 09c9f4b9acbf7d983b9429b25d317613beae8ea83b7626fa7b010aeda862d9d0 9b45c73d841e6d5e36bc8db0151d6dd635442552fa4d942210b738d3b6258846 28e541a7abb75c347ec149ecc27a148cea9cdf7f1e6842ec26e2b9fdac2bd6ae a7bb0a594e0298b7003b2b858a51d0da0ecdb9172942c16eec62c8b4352d64ac ee149e55cd6a72b0e80c67782b42c244b955a3885f87c6b7fa8d83a611e2e10d 5a6fce63f0a6cbeac3684f01f7cb60166a924849aa33626d97a1f7c7d323388b 666e15a2b4a21ee5542aef982c7c88902127b872f9405c9f3ddee6f09361efbb 93e28d89714b02c9263ff96cd423a693ae2834a8f26e926aaab01f70ad759640 dc6d18b0867d828a3c9a3a8758c2b3408100b416b920aee2155e70bcf5c76920 2d54ad46f5af53045e6040862d2cd51f0571f3d440aeb71635a5d3d55570cc88 adedcc06fad623e7a82cb94b42050eb9fb82b75f8308f11ed0f0a7dbdbfbeaae 45c912961d72a12d332bc50505f819434c841f98ca3fb09aa34ca191c15cd792 c9ffcaed6bb10d5573a2160c3479c26ef488fa8db4effba48d56bf59e5c27504 e666b770ae387ebf4b401edda401d83b692ad5212ce7567f6c05cf0783e9408d 498b7901cda05ec3491c6bba9b09250c898fae5d061f55abba770d6a1d2513a8 b088ecd9051086710f9db21be220656a335a74f296ca18d2314a3a15930e25c0 0d2bb1eddc486063878782f1ded485481983b5fa736b4f1e97834a9cd1c46157 1b1bd75da4791c5cdf8385f9e1ca5d22232ae7eede54acd919f736b2cb7d513d d140ccf9018f893177d771fc75bc764bf854d3ace479651f7c5a6e32f24821eb 2de59ebcff598195efeaafc07e78642c850768d09535843851f7b3a1901258db 3696090fe9d3c9c78f882ff8c0ed02096885a5038990ea688212f9f5d3de 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI9 %!PS-AdobeFont-1.1: CMTI9 1.0 %%CreationDate: 1991 Aug 18 21:08:07 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 40 /parenleft put dup 41 /parenright put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 65 /A put dup 67 /C put dup 68 /D put dup 69 /E put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 80 /P put dup 83 /S put dup 84 /T put dup 86 /V put dup 88 /X put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{-35 -250 1148 750}readonly def /UniqueID 5000827 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd800bcb325468c79ffacb9cd3036f2ed7bb65d cc883aff8d6350d6e8af1a9c1d2d7fcddc4c554c7e350f2420586f43e2124611 487cdb176d453854b51cb8f9100bf241899bbef87d57f1135e589813995c4d86 ce91db2b3757948f365186c2a4f32d845f659a8e95028f9c0168851997135c67 ce7654f2de4f22f51311aa78f440e5fc2c58f6df901fd071b2d53b2697bfcebc 43fe4508828b4756ebbe1f3e8512514162b3bb44493a65f11ab56deaf152fd01 bc8b642e6021af01998edc76b6a1929fbb9fa4fd1a430bfd4464b53f75075f66 c726fc037fc23cf09a178ffc60908f77d8ea9dea79c1e21fcb5a6a994e5a8e5c c6d6291891df7695db58a2dfcf3bc9a17888c29559ce8f37dd35c0ae35def3e8 daa6d8d574f457b0385efd1611c048b9ce76393fbfa006fd23d742cfe7016035 5fe95302b129a824c7794a9de47e463a7fdc42fd72b9da3fabc3e65d90258ac9 c1ecbd3654b103a488715f9e0e649b57146b786aa399c6ff39f362816306a1e0 ac83a4c83410030d740e15165683e843f69579ec1824c36935ed4705962f494c 401400303b590614e5daa8dc53fdda083fc854e535fcd575b38aa43d3d5c4a38 d56bafa926fb9e7fd69be1af2b502849500693dadd5f00b3185a8b18a0b64f28 9f33f5f1eceb14d6945a22d0def259076cb9b11d899318852053d98c379de350 8a8a7a3ae6c9a73e878f7cfaa856e64b993b13baa4ea8ad693b380171f4f04be 5464e1fde8190f963ad3dac489ca9154a9d35f479635781233c57eba78a4b34c 5b3f74db0cde46a05e26de79e8b958f6a99a3bbad79d0b461621fb80d7f5992b 3a4a42a45d55ac22fff1ca04d5e0b14713cddc23f7d69c6c672092d9c73ad09d 6b2abc5b6fbea358e522e516c59b1a2fb0115aa6e83d9765a6c739cad5b28f1c 623b1753257e6ebe5e2a0f759aa3e8659146fb8aa017e746e330195aaa911657 fdc9d73a259086cb65ad4e2e8e53741a49c77515a582b004a2b655efe4b3b657 8a6e2022f68b58a02ef05921990edcec1c004c3a23fc0d348e9a617145f493b7 331150f9f5fa2ba40c9e44882114bb6707d7dbeb9c8d2de9dc2de3faba09f3ee 5630afb7624e4b433a02e6421ba0caf70b79f9939b915f3cf46591119c3cd036 85283dadf9f3d2760e1125bb7a625f94bfdd6856774f1a74390306bfca892517 a0137b6eb76b7099dc91676d85dbe081f949f0c223870ad420da17d185b9b684 1c49041b663170a2e60b0cf22d1ea24d07c0837b5686dd0686249a63baf5fac7 eddef6f9726b32dabe34312a31b413fef3e6b351e29bba4806909c1b2c069d0a 8fe32e650304ce88b5bfd35d4888f97ed98da6aaa14b7361e19bf16566c3d2ea feeb3709cf32cf0726d5a8fcf727d8454a30a9aa61e7206f65a561f2d95d75ac 62b2dc368566e9b364bf8457c5d738c81140cefcfe09fee70a73743b4bbe9ba9 5bccd77c49551b42cb8504f8a86ec503bd7f3fa82eaa4285484e27b6894e3109 b13fab8b62b5b0bd1800d0daa721ec922e3774530a2e96b38d06ce154aa64e5b 08c40a5f74f47b3183e1f73fc76ef56e78aa41b2b02b0ca9ef094f88617cd54d 9369327f9b7f68d30984125338fd5219b605439411ff26b786b42c46d6e54e89 9866f502693243b0250f53da58a30bc2a21c0eb59ee09d4564af6628980d2635 f8856207cc07f217bd205edb34b13e9fbdca1fc5e913a1d1dd52717cfbed268d 4bd9b3860a1c7612813442f4471c66afd6ee3fc05a7fab0a5134dab234a72539 93a5f8f87043aa9b6a7322bd76030612bc41c614fc06a7d5500c320a3b67b050 6ddb55f77845b48fa18484be336363edf8ab51026282061c09fc6170f9be4f4d 475c34822e015d415c57edd58bf13a97c8bfaa324792931846100cd63fd3e32d b2165457d94d8d5fca7905962b03f39a52132989d67f62405e069c27fb4b44f5 c999635d6ece24208a63c18fea967c1bf10f52b3a9b72f6ef45f07330ff1605f 7eb6f6d7e59af37848c3c08d8a105e36f1333627e98dba1c74dec9d932f202a5 9a95eb7f2de4db05d3b6c251ca303f8b80896a0ea530b549fe9b12d7ba50e57c 85881d170936d356eddb2e5680bb98daea168ea5cabd8e8fd4c7e06ea05aa189 c156d445618f9882be85784c93b344b9c913a422c61c4d6c91ce0f03412cc667 80eb234c5bc1d2632a9f3d0d9cbe34d9f806a7c70427246a33c9fb36f49d44fa d36c784ba68e1db1fa61a31216fe519f0409732ae10b814df40d63827b651633 827d6767ea4aab87e4f17d36fa8f06e59bec6b6184d9fff65497692efed777aa 2d6ff99c3f05bfeace2e6585d14ef93c217fe3b55c970a26a037edb74653aa98 793e547ccc3f33045f4a210ff78c6144ffa29a5f3932e2d7f5903d436e544bfd 702b65e01c46dcba3086dbbee2770d7091e35f99ea486ecd029b3f17a323bedf 85497d6cd42927c4387f98cf5c996b3bb429ab8b183a69d3faea931d88d7cf65 3a10467370151af9fbb60df5210c3552d77c916b0fe5e33041351315565e6592 fbed938dfecf980657a07fbb1466458e73e77d4bfbfb405f191dbcb617bda02f 279fd0ad1cb0fff6fc08a5c7d329e24eef3ede7989694aa0f0944c7676e21776 1a8ffeda6729ce44bffe731b060af3d2cbfc661e10712238e616c8ecc78666e2 8086ef3191bd3e65b507a4a6f5a2f998fd625946378bb58a939c835c68cfa82c de7639ac9da9526487af2f749b460c638f751c9841baba4d36547e547027d537 88f7290bf9834c6ef612e58b1acdb9b981943844e4f1235dd6e4541ee7ec8427 84ae393255d6254f8cc5b4b90a90a4f3b3f88f20d2c0df3636a7127599890ebc a721b03b2c886648b3383e398946f683a19bb15df7d76fbd5ffd534e92028a5b 1318ec35326ebc975bc3e59c1329faa311591701216a8b59d974d01b256da6f7 4f291c81d8f3df5a7f6b7433410464ded8035543131c77d54ab582d9eeb6873b 4eb5218dc29e9b5b600a96ceb4307da421fdb2e15179348e49e83963fe729834 1d0767b1f2ca99b5fea775000bfe473f696ecf9216db98ffcf1db11869bcee3d 70bb97dd8b68fb444a5bfcd392b7fe3c1a40ac01616bdfbe4dcf1498e92ddda6 b3c4f1f06ae6c603a4a01ffb1015311fd059c5745768f7a35225a86b58637bc9 52135666dfc89f462a5c9d568d7e7207a90c510b86b4dac4368092a1ed9ea75d 16a22f2f2b4514edc4dc9f0242f09cba62b946bf99e4c2d3b6a8f57f177aae6b a8264e5cce41bb31a7186f23a6e0cf42da8d68aa3b268088d86ebcd4c6b925ed 2e0b7764947bb1c074cf13c72cea9283892d51f9cdeef0e9fd3fd64bea71ae66 c768afa67c3c0db0e3b7e90abf65de7b0c947cde21744ca1c314a2a089050575 4dd597451c8e67b17540a7636bbc2fab7ebdc7ac1646ccb46b3c985cd5f260d6 a86a689640bcba2da0035a2d2077f6bc78fa937d8e9bf5323bf72764f68e0e2b aa3af12fd51f87215e3efaa7930cc35ba1cd77addbf3ccf4c63e45407f05fb6c 237e3458c964ee1f064996d3f889408f6a4f30f53dbd2e745a68375b47b88d57 c33a707395dae5e60b093c1aada097bcb806d4d8ad24fafa3f9da2899d951efe 37911e49d13ff40cdee068c3d535bc14be613e7cb1d75ba00bb9c6b9ccc1a778 872a1136a7e82da44f7b31c5e0d6926d5c965e02c8ba7bf9020974828a37f3a0 4de5beee462e46751334a532f5a8c1a532a162505bd096edcbe9118a9a93fa59 deb5ab4e97a53512a6522e5d15ed4f1bc449045f081adb46dec40447517bb3d8 57030f3249863efb5e325f71490eb335ec9ee1faf377e3a4a7ecc674fe26b3db f481c85417ab8725849585fd096e4b863fef74439f12229a3a8d8abc1274a9e5 9c21d2e5d6bb5c6a3445c11984aea1e6d8a1129e5147afd85271e225f62406ac 139fcc7143ba04ec64cd1e2565c08866cce85ba84d035016265a7e5070704b1d f68088029bc63ff149fab7500f227cca04f4bbc90017eae9709abd4678961de6 45a9ee860d74546c81a5b9431105f5caf3f1d052ec79be889e27857baa4c536b 18466b6d812febecf21a30b4b1305eeb5335b1d5f74068575ed61476ef1f8a4b e4733fefe58cbd41c424244e00af55367f37a25f69c5081fad6694d76f0e227a 1059b5925f1f87c10b7a5c1bffb118a4fde6f3f8401a8409074527882886daf5 93e527f179821ec383dd5b4e675884f2acf3130d64e877940c67e0efe128c9ba 01de7a6b9f80cd474048c9165469b4cf9685db41b4bf65dbf04faec978a8b9bc d068218152287ca9ed7e8b3086cfd8f8a2273c341aada0c574e4a7194e123f54 47c092ed102c2b078d64c8943100ecdc371bd474438d252ebccd5ec67d1371fc d270a598607abdc22ef8a293764d5d9f89236bd689699b7d5b45999deec8bb6c 5435a6df618003ce4704bef6ed6c6d83fd010066185d70fa7c8ff44bbde3ea97 f7fc4f83f65c69938f82420752cf6a4181fc6e70ae9007bbd73d22857e2724c5 f830a58fb73f4fe364b9147724f8078fceecc0cf1fe0a59db177a60bbd922116 7282229e3eedf812da45eac3a00e46511c45df16e2a75d7d10fca25e34340bd3 a80abd54afd2eda9dba45005d35c1f43b8adc0e8e42ab7e1c15d64f93a4f4c5f 67bc3b8159756e55733cbea984f248d87a4965609eb2fcb6d6e1d234c3d5268f 88adae6fbc3287fb8b8e4a7161142fdcdcf0e2728db465a3d1123cba3af3ff79 2a673a06928c25b6a5389a6b288e6183df5f818ab8d2ad224b7681f5a1ed3c85 8cb90e117818f84586c7b7bd170f15e1a172de224b401f403970e58e9b9c9d4f 8343ecd8fdddfc4639d8b359baf4d6ca8148996dea3aff7ca948ea344167a910 ba27f16aa4752aaf92cfc8b1b8b81006f3be6ff0e47832be823617aec28cd9d6 aac58fb7650361b2a9c7d888d82806511ebce3490130b43b7847dffd3924759b ca4d3ded2de095c96cfca7dabfe4dba6d04d95f3983f36e278906024b6d041b7 a85b8d13b35de5beb2797ca091e822efbaac6e50d961bacc6b0451d10e6ba289 3d39729d060b128e66c3a749786439f061be999846094a1bfec2a36d4aa6d529 83e26d777278402224a38df8a88caf3260808e2e05f4e3ddad3d90534d2ba3b7 4bccbc4e58cd552aef9cfa4b4ac05170a04f676d704a347678c10c76b8122e8e 26cf72e310b73df76097551c2b5cfad62f955ebfc0a8414a8d2f541ba9fd3549 3823659731f27cb553cfd0d12a6fac41e69187157b99a669e40f63dc80b450bb 519f1aef90f33f5d7209dfa51c0e633c9eb34113a538a9e909a1a3b2896eb208 35918c601793abf2afd47775944c38b971bc1d9e5093147c223c5a5c01c82976 3ed0f1526b9b3c72dcabf78cbc2c2deea9a43d2b84e164800711474b5ce5abff 12d4819ec490c61a88a16b439552faacaa459361c61abf7926266b80ad62a8e1 a6bd0f0f89fe34b4b8ccbf4d6efea9c641b6adc9b9d201be313fee6ae6420c10 dc0268d3edcde249fe71af416eba3b6d6c23c32a77f737584db60262cbd9f13a 8222b6808d616852b713640663786933f2fdca7fa475864fb21bcfdda505646a aaea5d761e7c94f065004115f157e82b73636cffd6f21780075a1a6ac94fc77c 7d8ea97bb3ac83714a732b463e04443e61daed6704d6977f66f9d8a61555f28e 857086f3115867e74a3e91695d6973b0fb3e95cdab3cda3d08ad56a5c5a83397 097b55fb350da28865705ca5523f09809179009f3d1a35afb7409d4c5b1b79e6 e73dee563152146427582578b1ef886c1ab01cd89216c3847076516c60167376 157e921ec9ce98dda0e884ea5178dfb497f5e51f4050294fc83d812d4c0f63f1 e9e702cfd459e4f220ca6f3dd23e77bef1b20f4779c78dd7459a2b10a9c7ce77 b4ed34de18148e88bc7810da2f05584e432bb01a0a5c029820eb20c4f5a8e2e8 3ad61b6d4f6de9f523f537630b3091f3c869a15149b255a6a12744dca6be56b9 e0722d525492ec9ceb70a163f68295eac62153448165a4dfad6188becfb501f1 673698080480826de06de928701720bb046ae13cc6382052dc0ba7cdca176bf3 5b4367aa2f02252ca3a3e1e53d56aadce27aa1ca53665b448b7168773eabed23 c04611560d9640a0feb3e919bc190610ab37b92f68afe7973a96db7be46024a6 97a41af08f995d1b43551ff36c132dbbb4d16f01b587f56062e5632b85d3203f 20ccbc00bfe1adf88c9e56d0a202cc5b14b03a1675b6d1894c4afda7dbf96bb5 ac76cc2d3613c8b062e10fa114ba37dffe31f9e25b70ffa72a2c6f867f41e6e9 a4c8e38b9ed7adce1c309b601342f2fbbdf885d8af0150f1a03b9cc47d06dc85 c4b6704ec2a92daaec6b38b2e8ad58e1efb76bad0dfdce0502292f7d44ba1672 6a82ce2f09979fab29ccc390dbd5ef73c81c83e2584d449e0015990e36648b70 cc87d6fbdca84f75095a64070e84a83b2b3cfe657b95d8a1868cbf9209e90a7d f8bc219267f16dcade06cd980bb8e0b206e3c05de53e8b48de30b385d2f7daa6 31c0eefe73663c86d4ef4ebb8e689ec99c9a52de35ba77c24919f9cc6eb09e19 a38bb3380c2a7bd2e96d114e78bb7948a533569fa5f410eb38232a730edf314e 7eca09fc957c072301c5006fd7c8dbf27933a2c9ea752fe2ea0fb1d62880d4f3 89854796bfab0e1864ac95cda3aeac1df351ef9b37c1d1f3e89f554e3f5e810f 0715c8b42b1cfb7091cec724eed123f3957ee298e60e25c4f906d3139038acf0 9e8ac0d22544db01cdbed02a78bb16d498f929251c5aa969ea037376f8b8026f daf3428795710f19a9487d8f8e945dc6277e675874123690f3247a9c683e51a0 a50567c725f6a1e1d7062a4da241ab09e945954b59d94ac2d938b16b4b6a9cfd 1a416cbd972f5b363d89119f302a37e59a4f4e5545ffd3ce1e96c7a2a7b6fb70 804b787814186b86d7e0381b23ed7aeaa04a177031b4b2a7c751997b6f94740c ad042a0c48a428e96ce8c62f4c2534ae3d7f15f8b19d5071bd81ca8215886d5f 6c29addf07e7d8328bf58fd79f27b5ef2eec131c40f71b9b29232f244224191b 881b61939dc3d842ce341e82cd2a5e01691c36d5464cd645e664cb83448a7b01 795a16eb67d205f86658190f8e2dcad0da40e97b47c826427460cb845f8d0434 52b59fed279baf1783bc36e41d3aeeec21fc29bef310e98ca6560ec6babd5dce 0d472fd5efaf84e5b04e6199b108cbf5faca9f4423310948c4a6b8fa107527a9 d137e85dacdb237d4d0cfe34e89b1c9aa178a6aa52c11c1979d8a779f4057ecc 05207b9765c840dd21c505b76b8f80d31792a673cb6432d58c8a0d222f415dd5 e93a4eeef5f1c69fb88e7eda0df3a19e4c8ef74601a81534baf512332f1161c9 4b87798e88b7b556b9ae5762c707f1a990acbed8b4def89eed28456db6547d03 a5b4e27907e4b8522f8bfc780e0752123717f97bcc8387a2bae6e072bf699335 bd184d68dc70a34e45d523e9e8a377b80463eeec5bcbe5d83c538aff7a032f05 0ada0e8ef4edd9027c0451453e26af78b7e3f067b0b550ac1d951049e443d4a2 1e3cf96360c8a1fca17a6a8ba1aa3cc13677c9fd60a7fe8f30ebb0c632bad925 c6fb6c7684162a2d319466785a9938cc1e16fd5213889d89b8ad0e70061b0e73 43dc6616de950000dfadc34bc45b4430ccf2c85935aaf7a2cfeafa21cb640a35 b69b8a1eca9ce97883c81271c10699e66faadb1a4a4181839a18aa76a680c6a3 ead2296743d9903cc9209b02627f0accb838cdb691c5a007b8c0d7120a62e39d 9da2767941b84e524906eb23ac5e5c469f87e46b562b76de719350c608567726 8dfff8e804260f0be074a352cd594684f35809a5dd25f37f0b18e0bf2ca72b29 5a730a276db97ef78aa17a926994b57810df71daa0a3dc65cb7d0be2921f73cf d981b233e704c58f1054b66af24e275dbe7eefb098b77d7edc5b676b68393734 a601e872b6e75b8a4345110b62884907bf14d5e199c7e82d76afeaaa0848fb75 cd1ab424b0b60fdb10eb2954269c464b1fae545d6c51a705b3f0387e7f51da24 ec59ae7ef062863245429943510ea11541f501d2f410ae0658701f3b3c1918fa cbde169bf03d70c0d795b6ba6bab01d678f4551bc335a64b209a79298427d79f 998df44175f42fe6c01076ad42d48dccceeccab109e8e107676276e0854497de 3fd9a658abfedbfcb386c4108c68ccbf3e8b98d6c9942119ceba19ecf749e56a 30af975ffd03367825c5d11cc43f3e2237a97d57347900aca1dfb2b0c70556df 7ce7ec5b01878c94344d26c281f10c80486c443b442189caa0e56a73f94f3fe0 afe4ef89327f908094ad80dc1bd37e1678a4ee37d1247127f4d06ed3edbf78a2 cec2fefd57c3c5c186098fbf2f03fadb251d843a30cf4fc7d0c0e2cdc5da24fd c4815957561e01c88e4699d7c0287ae0f303cfadca62bea16e33813aa3e3c74b bc6ff2dfbbf2a7a292155f4454ac386e6e40202be5d89a4dd033d78f24739b77 092cefb6bd23515bc9e4420b124166359bb198c6f09c9a8eeb8089314d56cf88 5ac70e80de1d215df8d772798933d56b18f8eefbebbf7e366e50d5b51eb4f4ce d5a83a0f55935edf498d4454d2a10c97a0127d789722ba2b4a5ff69a9766167e 93c46d3d7bc785e1a9fa6724b3b068cb59d6b33ae59edbae9d1d4c31e89abb20 862b7919bd8c1f2241dea3d93ee5172a542d124e3f4c9a33a459b4ba8d771045 7c3d7a854fff3c0e9ad8848de4c9aff59314f069dc2f39cc6e45bff70d0ea6a2 531ed7dab31456e3dd337b626e0a27d7bc86591b12c29441ec96243328e891ba c5a48fc164b325528992d8a928cbd48390aa16dbc18e4903c38f7c7feb119684 2eac04b0d62eaf2561b07eba813d113947d69edb62217a706be3146e1ba3e0c5 d1c1212ca4aaf4170e7b5b9c39d552e025d141719cf081eba6e99bc4e07b47b9 e81c63c2c447be33eebcd75977ef42f7505c23cd90484fa549f519a1e7d8ba94 3e8655296c9099ba1de1ac6b8736485ef428540778a7efd47dfacee517ca20a4 748432ddf49cedcd26d5af19882a842ea6b42d225bf9499e9fbb69b13d2b7b89 d09ec51652d9a6004669ac2604ecfe4702179e6294ce52998400d88c30e0d01f c9784f5b61e23bcc1a5b569be9acd7a2bbfa5054475d878a726817832a5a5d12 a4192e24811e168258e384b83cc2bbf591a90f60f7082b37b9b9e7ec37c81c72 5d6a59e4da9b76ca378d90a2f4ad9225f892d8d4a20809ea81d7b269195f9357 3ec118c6c26583a9da2aa749d508db5f9b32cc4c864843a080bd3b7791d08f9a abe004052ea69c979403f7bf8f9a53609b80c672f413e5d77831e15b27fd2122 e4acd7cd956120faa45d01666515297ee8949447219aed565017fd350bda2218 8efdd75174e4f8ae5ea503908f8243261e4783a3fe54a07b566ade6ee394a925 e484619508c8a6d7f3911fbf73e9698eb07fadc6d0d4117645267bad0221f825 ce1745a8d6802bed925ad0c25d6a77ac95a3af1da2fca2803012b55a9d70d9ef 5510efd0f215b9ef5fa6bf71fc36cf2cfa7b2d9cb4c2796a0d57da897ccc9c2f 3ca4658ad349703f39f5b16f07304f629f23122a653307ae75bb0405a6a86b19 9f2f8b807a2871a7f2dc71fa397bbd7d31e39a86eeb742e74083f735daad56e5 f7afe1080ad430d403765ab4e6486ac2d4d605b9ac7b59f29b3938322df4bb6e c94a0eee3511dbc9b149a5be656c2a9fc364f81b26e1a59e1ce3bccb92f7095c c5a2f0b3867e8a317493fd7d4a2173a78336ac95f750003eeb42a196cfa04c93 2d4e664382378904e08d190e21693ea84191285ab2c26614b9f41a3bff48b08c 5effeff6ec2eea8c5e3ca392459fa5f0c0bdd7701d527ef98a4ec8754a679b46 4ca0bf47986262284566140178453df07a7ef16293608e32615e3d5d6b96df35 00106e6c6389299b0bdd43b0b4c938373b292f789d57d5c11caeee2ce351c161 8780f6df7ca2fdf4ffff093751dadbe3deb6e7c3c2b87a9d2f3cada897d41f72 76def9037758412ce13d0ba92e41a23fa98247eee55bd8025f66d3b6ac548c73 8aa8eecf1d4884baa212c1439ec9018adac9932e363cfb10dc03dcc9354e9e74 04d1692cc26ff31e6d239717a16aa7ad81eb569668f1bc86ce8078234c98560a 365f10e6dfb51892b4102e15c7b088ce0bfabf3400c419e5c73715c21c90896a af02319e6eb3e30d5f9a838648c376f34a983b4d53ddfdcd76ce71a7dd73ff08 441d64413ef7b1dff88510e39eea5f1196ff1384a6756f76ff4a02a887c2a8b1 62bdfe2efd31f5e57bbd1b0e810ddfdbf81e47656cc26929008c7cd743436554 bf1690bcb8dfb9971d6717710a685ff1677581bae4b400e5579b3c968fc4fb1d 59cd3627d5d4ded90d0ba5a8cc0b2dd3257067b3144926aea43b1c98873e1cca cb002cfad684cd2e154203834701017a564e0f7e973a88758193c0d1a6e0b6c0 54005ee010bed045e60e7c34e68409f42acc73f29def763499611e15ce9fbd1e 794a6dd60ed2b0bdcd9613ff4bdad1e2aa9705e249cd50be11f87484468efbfc c4cceb0defac4041ee768be4b68618254fcc9d7614746df1f80be7e62f440c96 dbb75de94b58e949969888922705c7e3a1dd9bcec531e1eb4e1e91dd1f9e5f7f 8617d02e0dbb29e83096b54a7c2b41085b7ca410b0d199f6e1477118288df719 553bb1926e3659cdbedd532350c2beabde45ae187ca817714d169e7c20af0c9d e3454a7f9ab09babe19383d94066b8993e5b397a56a12b9912d6acfc350fb5c0 0a53867d074543cd28a2daab9044456c9d2f6a08dea93f98dc63fabbdb0137af ab538fcba28057386b48db74c30ef6454aa11b4ff9890cf7892afcfd2df40d91 3fff2fa340cf284a2fbca2fe4eb6987a6477339bee128e0587c9e37a3a38a141 7ed28b4e7742d0ae0304b67a99c99ac68c9cb1dc0550b7667e2c5704a142c689 94ca8f4efd8b65915eb8b9baadbadd8eb504fca6d3a542dadd4723220bc1410f add58e07f7cc88cbe205a27a6e6eeec93ee7548cca81e611fa75daa7efd057cb 7a7ff9cf246c572c8ea38fb975b10bfa93a73b1ae1eb3c6de45a21f7b7ae9bee dae4f17fe2851b5220224af3a2623c45cef37d915ec3bbd42011c17274c06cd6 6b25d7dfd57ef623723693cc547d9e4b8cf8dee0bff41601fe5dbe44b72146a1 cbea119d4acdaf09e0d162d0d64c731b10e1d1d3a3791de7f3f031702bbdd611 c8bf68935adb2fe53cf9d7aece9376c7198f4141292d4f18893391db2e6f71bc 3ddf7c49527d7547e3018f571db3f9be768597659cccfa675f75e03ade804f4d 4921078f74813521f623c4791e7e28d567c5f6c1838b88c7344696936b61d93a 4e17aacf9e23c729ed38fa3def792c3ee750319e44dcbccda8b31c3b653c2a86 15adfc63eebc1a68b237a7b8cbdb0615b7d185ffac542a40604935f416d8f4b7 17c754d35bae2c6eba43ae5373accd86e6d234a150040f9621d43c19b2a9084e 5b300c391f9ae38faf25caa60d71d5db487426328163bab9710b5a5676b522bc e796554be4b347e1348f4211295afe52b5ccdcbd2d6b9ba8d4ba69d989a924ff 7e85a6ed3b3854fb9be91a398500791ea58cd1c7e3106b8d98ed0463d61207f9 00fd511316a42e67150a5f46e21bec79ba90f0944b0559e5ab470eb090a52cf5 1355a2e728013600fdf26e63d219b69c86232193c6a22f81aea95e0389f5079f fbfeb9ee4d4b30446077e6fd2b34c41f5a639f659aa68a684cfcf31d26ebb853 e1c83ce9d92b602bf5e6f55045ea5482c9229ca1f92d3854586c3220cc64e1a3 60ad5aabc53cf5cb4ddaff839ebd9fc0afceea18134f4ff6142a43da9eb05b49 6b171fb96df178cc614384f9bedcef06f60bac6f035dc1c9de75d942440de3fe bb203f6010ec2e3a880db321fba85b235a4080debae37972df639aa878ffa721 f15f0fe94f18fb09b2d1cd301c9ef563cd1df8a2ee71bd56a87152f04fe61c29 dee7cc51340b42c9b2b059558c602c2a0171aca46422a1ff8c5bd6aafaf915cb 06c8ac9c7fa9758d084a582ffb6f1b4cbcf2b6a253ab9244ca62498778061600 30e183b05031eb08c45c736efb12ab39402544df06dc3c3685f1d5ca1b4bfdc7 201fa7f46ed3c4c477b55401f64c543a0bcdecfb7b12d5f91f68300a1447c098 ed8972f0490d390231f87e92c1d2b8032e78dfaf39097606f31b4c5f1600e164 f77a5f3afd44110993be13ef62cb833abd8e1157d0b83b0bb4f3b2c53b41e9a6 e08861d7085fd3ddc0f65445aed084e2eb751bb47d3cae1934e475b13ef78b3d c0e20e876f22b6f61181aee3fa5ca5fef9d088711de62dfcc5d8db20f8ed4a57 f038ef57c7f8ee42dd1566a589b42413506a3b5424dc3da99727f46cb0c2b076 d208626c213e75deae587dd947a37b8188e15b8c2e081e9660f4091776b81aa1 fdbbb1e1378d7aa7612ea56f98208b7243 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSSI9 %!PS-AdobeFont-1.1: CMSSI9 1.0 %%CreationDate: 1991 Aug 20 17:35:30 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSSI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -12 def /isFixedPitch false def end readonly def /FontName /CMSSI9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 13 /fl put dup 70 /F put dup 86 /V put dup 97 /a put dup 98 /b put dup 99 /c put dup 105 /i put dup 108 /l put dup 112 /p put dup 118 /v put readonly def /FontBBox{-99 -250 1104 760}readonly def /UniqueID 5000809 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd800bcb325468d2c43f9469c6058468e21f57e c644b7a2e7a4cf7c37ee16ab1a80a14e0abd2a1ac2ec6eb2387842532a0420e1 888ad444079cb5ce2ca93145daf04c6f0503319bc9e27f5c0632ceac9748f3ec d7ae74455cb85c24927002b179665d77c8b4782dbc58bb46bb5ade548a682054 5479468bc811fe2d4abaac0e805243e22db0424849e7862f4c6a3e91032fd4ff aef24fa17adbcdaf3fa745ac43137d70c1d3a1644862f48d55ec5b8ff55ac5b4 5d2b34644ef9b7dbe5d4daf95190a42032d19b20c8867d716f3ee2a64b2647fb c2f805e34634d2f2e4de2c11129febe1041f3973a254f3ea2717b812938c51ea 39d21250486df470c6af8f9e03a5415224dd24bfae90faa827021ab475ee15cd 8197c49d1bf1c207089bbcd7e28a456d50b0bdf27f667eb0d1e0b4ebb338d378 b00927d708f21aab8292b15e775fac39a00fa8fdfdb49de36428849a5fb0e880 4209d9ffd077d9e063838af1c20b5fda0ba13bbf9957e04b3cd8b5c89652f1ee 1068acee8b623064bc2b383f7d8d9673f1efaa4fe56a6952fbeef15434c99851 5f41f1d08e1506509f6bf9dc42f7c78417c3bca35edd47be12581080130eff36 16e660b66d8de682f36e7cd7fd9536cea63dc0e916d5874b8e0bcbb10e160b38 3500c864ec6ca3183a7838b704f277c2cde64609838b9bd8ff3c5460a0b5f769 b09b6131e059a7ca7d7b31df80db1bf5a5f0e39467bfc646634a077f1291858d 642f424fc890c3ae797b72934e2a2c711111e854fa72f14a07dcaa92ea63c2a0 a95dfd4cf4fd05e1880636a8bdfaee9a086b51ace37a02d4af29e6541f490d9b 1d42030a6b2d6b9ee00b4791b59b6e2e18a155a8b5751b89477abeecc885e6c3 b7bfb3439cb25f58cf8e8097de31ed55de41cb5271c09f724cfe72c6d73946c7 e5c4234387eb9d19fc52fa709e60d22d3831aa22950dfc697e8fe55d801afc69 27150a18d0af1ee53339dad0891e11d7258e2297e2cf97e1f7c62a0b67e44ad0 26001e869571e9e51d5fd95665571e08fa761c20b0d23dfab65646e365dd913f 765d0dbd15f88f04210cfd234354fbed964693534b9e604f497c4e5cc87c33ba 24c956c65b018d251f0e7c4fcda8a7aa76aeb3cfd1596ab47c3ce312794cabb8 714c71080c86bb7a2d32a46a7217af4b56c85c9c5ee8080eb32e1c1e6fb30780 9f47b177bffbb6e95576c622468b5f966046e004bdbf9d7810e0cc97af93ada2 de7c95cbb828dd3ec12648d17170855ae9c9945909c95067f938c286f96078ee a6aff4e51309122d81241c81e72bfb82da4a36bf9a2bd9afd799719bc63dcd68 f08deaf7381d99747ded0968f29a13deb7b158166fe396bf7d09c755013aff02 ed8ac5a5421b830553a35192d2469d51fba48652fd26428728a93bed2363303e 6036dcd6c50c634943b54aaf0fcbd34ab75487cdd45326e7ed61ea3391a2edc5 c600375943d034d862576331222713bfd6c8319cf0235130b0667cce9ebfcdeb c1556277868e87619a6e528c9ca4ec32732aaf9f6a3401038367e525ac8ef731 631bddb680b83d3af6849ab772d3078184f55b0d187d8f7b1f388c55ad780467 e4ee2577a509cf54a27ca300bdb5f3a9917e4c502e6f37432f1c32ccc2a8ff2f e1ed3b456e9dbbfb536bba14a619c3872cec54811797c8f2d6819e65b11729f3 65e01c7a5f1f76d422be80b5361f518b377396a28047375bc0b175e63bb928fa 5f28a63dc600dc94420af8e6c10b826cf85adce52e440bbaa65f506688ff501c b90473df052c055eb97b6c076dd0629b2a34305aacdec2a76415384e1e0f1d0d d3417bf81945d6acf2aa202e05dd5bca38a914b0ce7c4aa2492384963aeba2bc c6673afe2a71c7564579f3c7d1e325c4996d11a9e6606e3ba6d1fe4aa6256501 32b083609c09635f54be56119442381f547438cbbcba0479c5f67996d6b16b35 2403d4ac9be474552e00600056e4c95f12fa825bc54ec1e0e3cc8359d58e8c3f a54d079a4f3ae56f986cb97275616ec3099c180ce98746f539bc18ed67c9bc60 f03da201409b6eb6df0876544be68bec9133828cf7fb899cc235863b50721ec3 f03b1cbde2d66ac2b155bae2ca52bd987ad33ab3001580cbe4468da54c216919 074346ff99ab9445965fb87b57653e6d4da92bae9dc67226cee0a28440494dd0 b61a332194ffe9808c3367e38a832990d7cebc1a6ceab8f580260f65a5a2f55c 4b5b85864471e4d369a228cfb24de3606b8f56b620e58c63730daf5d43a34c5e 31cec2f27fc4eee053cac64df998f4fc68dff72567a86005e7c95b2994dabbac 4efb336dbf78348684a250969c3a2a5b65b38b9c453660263a28a05efd0650e2 e5b01069d4e6190eb468a6f3fb810850472ba4dabb31b5ee6df640f3970f0232 7d4cdcb580d5b6acd2a399ef4966b9441c9688da9f84a7c5d33b94ca662c27a8 b57e1fdce2b2902096198996666d66227609fd65a432a615cdbb7c1c26ba16b7 8e36a533c998e3729bc071a4b0b4a14a6c6e65d45b 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR9 %!PS-AdobeFont-1.1: CMR9 1.0 %%CreationDate: 1991 Aug 20 16:39:59 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 69 /E put dup 84 /T put dup 88 /X put dup 97 /a put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 121 /y put readonly def /FontBBox{-39 -250 1036 750}readonly def /UniqueID 5000792 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b448685bdd20eb05d5e7c2126132e33a59a7170609 dcf4871a5d023c9ef57d3362d9f2d7a440bb69bf653364105f16f4d0f03582f9 aced3d05cc76489b16e3fa8a446094d30038b06ecceda269f2eab9d19a99c7f9 39f9548f206c5a457a19270b2b82c43b091dfc5573468eaa3e7a4a32f8042891 d85e4b180fcbcb3091d2800e54c87d84ce9cad6869b5aabbbe47f40c68799893 d22b765295e1e69e33aa048b7ed98ba480ceca91f3ebf8ef85fe9a3976909626 b95ac5940d53f9b02215d84a44837ba25ed15cce0d504f1d335065594f3bc824 5405407591cccb11cfd4645da60d960c0b93f187b0cf7b105543c0b70f89af5d 264b6c026e3ae646acf145950202ec73282111e3e601cf2bcde22ce3edf6db23 516481420f26552ff4472d749811f27768150450d0d0ebe3c79f999e99b5c0f2 2eaebb12d97782b1bd91b2a1f62a76412548ad53c0dd411d4a08c0f071c2c218 63d9adb75a4621803ecb84c2bb235b620b658984b2d8e0c4637e2811bc8f0d04 6c8935afc70141e1b2d9c23bdb251d304b3378faf8928bd09686aa0340fb0cb1 dc48c996ef91530ff078666fad227a3589f50b605267212d3a65ebc1019a8eec 9a0739a00279471a01e1505c17658c10030fae32f274fdc8c8774b0d5406c384 a1d17068dcb0c2575c562fdc5a2176609bad9a2c255e426a4325a4fc3053c7b3 2f35f7bbc9aa50135f30223360fa2fbf019294b3af98224c5c05d6038db08bc1 4103010094dc215ef9ccfb96b237851332c8ed81a9184cced4edbda26b381f0c 73a2bc4a92533b0e667e82ce49ddd8ac9e34d9d40fd4b5b9910eab3b1234bbf3 af6608d66eaa424c158eddb75fbe39462708da8f5c18d92fbdb2f534598a844a e076f96a741f8002af3b38d7e4bfa363f5f5d1193014f71b8226bb6336157b2a 7db1c1b6087fb5d476b13c4a625d0a03dcce9d6cf2dcbbf3d198c835b74bbc2d 6588123c1ea3bb960c04890cbb50c1a4d2708d8959fc6cf8503897fa9e89e955 9868bab66bcf8bda6df7f955ecaa8d0dc716858586c199a48b8134e50b25a42d 3e9bd723adc5849da57f0b9c187a7b5b05faefabdbd24df83abc14e0693801b7 7a16bab3dbfdddc76057104e8c912a9e226022dd86cab09cc061b6fece9e64a4 a63c6365819b55941884a7d1b747b5c4ad5143428e2855c053822b3c74b9dadc d3cd31dfc030958e08815361eada69968da8869bcf462aca5bce10a779101258 a1436a2333087e98a22f63bc7ab45241486574055dba4cfe2ddf471285b8305b ce3e546e32bfea5c27271d6c84c7851b9459cd2793b2e47def1fff5f0365c424 29e90c14ae11682bde2edd7b677b8505abd36ec53f23016cbaa9ed60364262f1 738187012a407575e459a202770d901df770bc1aa4a55d795283449334f7b6a5 5c315728a16570bcfaf9ef7b929a28cf68e62a5fb754fbdffe6e8ebc0142f364 dc0c5740b4ffa90677d65f1496c173497cd847ad31ae5938161282417e99ae77 bd5b28c9f677e48334e50bc2f1b37652327e4bffdde4438b1cf8ac8677c1bf72 7116b29247a468aee31e9689dadecaf702ab381961a7075ac03c6dd29171a724 508e315d33153ada3a3b0a6cfb294190ac388de715d21ad8068ee745c48b864e 21ffe86640d3f757567ad17cf6050e04d0b78d9fdc7f6f45c300df0b4a4a41f1 84407a87b170384336348ccf7f7e75bc65c896411098b0a70ee3869ecaf6d4ee 939491fc39e82021327631cbab090c7a13adfa6bdce35b2b36019228e3607c62 7655a9c157f0eb9153f8678a6f06ea79329ba9a2517d8a44f05560b44f69c413 6b67b20cb090107d051bb86ae3c9fe630baeaf05a40aac45f23e55d4f6f46839 28e273f85d64d2320e93e80803a82e8808287f16e54db64e5ea01a889949b096 c3ede40d07996d23713163a7e3f268dfaf18bbf748a45691fb0cde4160f6d436 ab05b7ebaed5da27a5c5cfa99f3b8a27f184e0953aa0af466fd7fcbb1b14c278 2ce199584588a9b63e77401054153ce24f7f9f7877339a7a46042fc199f34cc3 51c25b474b4fa4424149922b59df1f35ece53dada8c436eb04e55f227ead667c 76b930aa381312afb0e6c1beb6a0a2587492a237620374c07695529f5f291a2e 7921d6cb4d35b23f2554758e2691483f213da6c14ac53658d3ffdf604efbd397 b3fccefefbeb5726c8b1b19e553e7b76aa3a57ae88d6f79e7a0fc79287914d03 e90631d37e8343aba6368f1de5d8ddb86b8f491a4c84c2b18e97a7811512fdfd 0b438cd0e4b77660502fa9c1fc26c06a845edb099a3a9eb36dfdae2fbd291cfe 36ce003d42b5786b150f70217ff2228c649ad0bbfc954be62b9c27e8bf603132 9f30bf5f95f6b5187c50719f5b833abde9ddb114f00ce0ffc29099cb17fcd698 06eda91e0b849f0c26eb648f3004e574e412ca09f47527c39113b8d76368be04 af358e0fa169ab37f912e998bd797bd9fa364d699d810431bf1488644a07507d e243d84870c450cb9c8b027700a10b6b1dbfe8a4f299187cf042da4d4ab918d3 9800575f6516e7be1e115f96719331235472c1e7809eb0e166e12e80edd1d3a4 f9a6ae43a2100bc65ce65cf1ef7004621e4e08776a409d83b9b9376bb9351274 1a5d800ca2cf3a7e0e1ef2e4a96aedf0bc9815370f49de969861ad6b8b7303bf 1eec7475d0c65e1d05a95e0ae21bce54b592a60c6f11fd81ac01583a6f6a281b c147d2b47bbfb67f66ca2dcdf289cd44c92a54e385e25c1f4efd4739cfa56716 a3c4019dc5f436299d251b14e716de8ee5230da687fd210a92c6f16d12c165a0 c5a6d4301862c82c8facf4e85721826a5b401b83c303e7b14b898d10468c08a0 6d66fef4b7a8cc8d22098f3163aaaba2a77e75f5c442863af297776e9fce865d e7babb85d86a1eef3c966ae3e4fda1d257d6592163aa6d641d32d1f38d6afefb cc3494d45389ac832979797e7eec2eb6d53506548f8d2763c2d95ee7bb4018e3 37dfdf33b500810aa9364770731ae73fda774dcadf6e3752bf73aee3da7e6681 75e406a1c9d6bc2106f2fb4d2e6f6b65e752cd6d21bdd780dde73f2252cfdd54 0a15c7f9071bc866449e7dab54bdcf85c5e5710accbe144c9adb0af479cab875 a926fac4eea121a1524632d22b5d7c0f90223e411ee1c6c463bbc7628709a36c bfa9b0699f31dcd7874cd42ffa5671e44b0137aca62a4a1821c82dff2ef5f9bc e6f2f0b5c6febb10b4f17d7989d7fa91d460ba788d7720a16adc1abe2075fb8e 22142623544170c0634298b5985652975cf4708a979171f951e12fe15a82c74f 6da5c7aad4347ed56b76628912ad1f147e40efa7e08669b1213f6e7c8db04fa9 df145d4295cfd5fa7f0b8f7dcd0a83ad23509439d9098b7c9eab935fad7e4559 067d04a918ced7e5e64b3744b0a7ba061f2c7a0888d8ce161503c9d9da2f5d49 e4f76798f71d31945deb85c41a5ebd41cce79e2d7d0d0ba368b83e1952e6046e 5f10ded78db90648f700ab2d0f7a433fb2a9b798d3f6ded1bc30c605d5c50add c343da4cb13dfd2ead70cf4f998cac77503ce7d9e33841020f8929de024dd9e8 3dd87c113b64132ad6cf46a3d8b75d1407c50088ffaa3f3be52578093a46ccd5 358cd5dc149392ecdd86d1891ded4a2f0dffd9f6f8ff792cb7587971781a14ef 20276c3c3548188b8a8280a93cf26d35879c0f3bed671fe055c2887698e4ca84 3e71b6c48d8b1db672e4fc104119052bc6a270a9f3f54e9014814c04c9d2d36e 17d4e99e5de2a66382b515271d2c7d115b07350b4853a004f58af447bc16e605 f767bbfe0c197828c1bb819fa585451804ee6d989bf6f4ff29d4583150640243 4189b4de62d1506941e03e85df66306a23780bcabbb3f7ad9b2bb0ca267d2efe 2cdc7cd0277ad02ce83a993192e3104819264305b90081fe5dedd59f71320f85 6f4d08a8f2d184732b234f264e1bb6758ad6e4c57a8a3216e8e38afd58dc7c0e 98654e1ee7093fbaf6843e58411e984049cecb6d3fc39c66306147166d1a1e63 ae1848a689457d715426e3f66d0fe0c2a81af2a841d888a66bc0c6a36a4c41a8 6d0519d190a4bca4b1503c0e3b369afd4b68c3175b22d5ec3bf59ae4964d3e71 bf1328898cccc6dccc76c00b1553f4db3ab941224f3064fc620ce7eba1bd7cda ec58575ef15368226e477c0b96ba72b39d6b931ea2c57dfec1d14ab5e72e7848 11d6835a6e819373e0db1f949bc276ef55b1d495ccfabdb708da14ebb26ed690 fa5053c26c91a359eff0af334979eeb14a2747c301d2db80d4586f23ad77562a acb21c64872b2a4ad1331d08d9a6b1c2b42a37a26d26eff9fb0a3ca5c72f05c4 2ce5e659c0478dc0cff23566a104e24e0b52d787d22c98739da6a81d43c22e41 638985a71b7e6538985116bc28619e1fccd3bf02fd51bad7b73497265c53c4de 3c993af6590d1aa39c1f19cb1567bd3789d4138081cc2328aa9384bb00a0ad0e 97aa7adca672a7c773bc08a8212f3072497284b4f19b6faa8b20d0f49ec552c4 f4d4b30f657c244f5715a22273efef47dd51f07a420ac75184393b8c33c9b20b 97e545d608cb4faf7e6f2dbe41aa340e8cabc975c39bc00330e595ae66b8e26e 34440456100d83903b3f40b5fc0c5bb27f6890f4ed5fbd382b971659a78a0e0c 3ce44f185892e39b46372f083c6606c92d2f22606545e81bdd9d907260922f4b 631a6961d01137b5d23f0ea70eecc373d8bde25cc9026d9f4fd562ef81d8a8a1 00c8761ff01659f4ada860f4b016bc90c78c5f1fc3d924c753df71044b2edb23 3ddb6724e86bae8608e946b6a8990c39aa23db5d2f50ea6bdc596b3c8a000844 82c8d96c2f967be9e170a3056bb424f8b08e8538a6c05c7000c1f9fd2446104b 85cbff6d6796c1461274f4fcd63c47c61262836c87cf35f6958ae026b75370e6 1f4a5d73dd14854e775fc55c42e759b8415d3aa6cf0a4fd8c1d0ac755def0461 a630a8bd2d1d8d810aa0fb303954177c093aa742aabcf395fcac331cb572637a 3dd924c46b18aa0e7f61026d2f978e3584877b6fea93bb4fae7fe99302a5e225 2b9fc0785b2b4f4b8cefb4d0612dca13316ffd42d83520ac2fcbd132c93da485 943efaf442a2b6e28a57d8a135ff461775541bc5953a040bcbcc7c40536c2a06 e90c7f836aa2af8d7132c6b59c328ec5bdf664b21f11f7da87e9958b0e0b9074 b2be9730676342a40cf359b9e591919f8d0f5703b6354321f619924c1d0edeab 7cd2380ffe587371c98780684a42750657a563e99b3a03926723cf8dda19db05 4518ff502bc63982967dda0b51d945eee7357f3f362044083dea7350f8a19165 390b27b08db524375f9972d52c84fa713dc8fe29f5ed4406e614443ce090f4a9 29497bf1cb1d683052fbadf0c0eda959805a0dfaefa4c7131a739677735ec0b2 a79cfe3bdc5214d941297a52745656bffe9ac68c714ef6e6c77195af56ca2bdb 9b350466e57ec91a0b5827bef2fcfbe11b95dd5135a852501fa0b24e0088af06 f16a7f00297d6a8648683201cd9b0a953dd21f0747f2b3312b24bbc2292b7d46 b4285c7ac95e3448dde77cf0e90adfc45e6c967d8cb50a6625c7cabed5966e46 4fb14c264e00562ff2fccf76b93c903fb55aae9f108e304b16a9ba520cfb9ed6 03cc872a66da771e3e5a4b7995d5ca8943df21aa2f04247bf2082b8e30d06ba8 9779dbcddabe7fdb44faee7b70db67a178d815bc1ad5498ed51626b0b6fd951b 817b53c136cf76242f5b89b639ed567d3d03dcfbe8985478f66ce3c0f34272b5 fd00ef121d07af191dd5b139e6f877f8b1d6854b7ee49775c206466ed8b95ad9 2f9a767d64afc84555c5d6d2b28ce9401c77ec7c0e406ffc641910bed6bbc37d 19db630a8fa4a9b472b407831e56b896344bb5049da742dd69b06abc0f26f2b5 ea60c5d51cbe573c7608eece2de0c24394d49b31048be64f815bdaa3ac150f19 63acdb6b6a93c22ee2922c83478053403d7a32c2b329ffe9b6c4cf550e42355b c9334da0bbb86808ba758e3c2c1ea78a68bfe7705150bfe3f6c6536924fb0608 14ecf4b44824fe4e146df8e6f3d71b2162cad3591b5551a54e5254a961507f4c ae45281ff75e8cb085db1053412f6d924bd4ce2f56be68df0e92d18be6435b00 06a5895e2b840df77dbea1d536b8a65c115351bdbcc9ef 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX9 %!PS-AdobeFont-1.1: CMBX9 1.0 %%CreationDate: 1991 Aug 20 16:36:25 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 58 /colon put dup 65 /A put dup 75 /K put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 111 /o put dup 114 /r put dup 115 /s put dup 116 /t put dup 119 /w put dup 121 /y put readonly def /FontBBox{-58 -250 1195 750}readonly def /UniqueID 5000767 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486be79011d1f5bfae5c1f476ee6f05eb1d2caeb 269958b194521197b312fcced4867f3c8fbd030bd715d8ffda1dcd454b174e7a 1a97b59fe770e67702519d9d9b23d61ac08424d55fd4dda249cff0b56b9f3aff e9d0de215c02a52a6bc77155ff6b8cba5cd6646ba331254ac58ace650a967d3b 272331b87b6df06d5ab9d80fabe9f9ceac10139b61244814dd9fc295ed42d1b5 cd11c2e4beab318b20f51ca2c2930657e5343ab7bcf0e8870a0d12de4ffacb6c b3fdbdda481c2fcb84408d3d902e9a32070b2af6cd9317a33a42a43857c114b3 f4c3005cef9401f1c2bad3e69150d7145b79f95c9cfaf7a335b277e6435ab374 f6a3e78e124ac1e4615511f743ad65c5d778403a840310ac4902985f107fd33c 0049623e4c496cd353d2ae2a4804110c6a420a38ece5d5b235c5e35886a0987d 284e6110527b653b1b2c68c636ef423536180acadb954843eff4d9a82568a713 b682c574e30f793f093aef755c650e0e7175c2e3138695212d9fea7bd4b5805c a90985b134c6bc15a19afae0bfb3066363ca3e2568c2ac4559a69fc32feb443b 61243b4508b7524d974636855c83c8149d489b68fe18bd497116a953431251df bd09fa1d2ef66c85b997ab2f6b7c6d9d096cb43931379ff9782fa00c5f3cbd06 04265d16891ffc4f66e4a0307765d384c32aa83a4e4f89ac79ef8e76eed08450 e3466fbaf54f85324f0a4f04bd00ccc22d32e4132c51749bea28f112c2051857 423ea203df902ae80224d75efeb59094bdc5f4b6784ebeb01c38c34b695e681e 57a93ae18b657d13770300bde28833c732010ded4c8e79078d17acc3d4b521b1 6f2cac338c4f72e2e07c667227ef142d0273e5b501f24b02e9cad75fe9d18741 b36bbb29c9cd3d46964e00d8ba318912e69a6aa7ccf823c12a9652cbcba6e3b6 ff2f7d019bb49325264ce6707bc9bb91f9e66488dfdf3d31909a6e5d36d477b0 791f306cb70dcacf0d84ef7f356cb04aa8441c23a5c6e63fe6a6a6e3d5bffeae b88d5878323a43e2a22d5983df078383e9439b07bee0bf3b87a919c36d2c1a48 7d4621eb0520b61ed5f9ebbe614f9ecde67a458eb6019e877ea5354ba88e5733 0e02483c3cf07a7a67171afc2f4b33ee2be753ca3f08d0ecdbe8c719682543e9 fc92b4aaa43fab568d162e22d07e3fff489fc266e1f3e27d26a6f92b01c5a7e7 e27e17fd176e490f98a499668a3c9831e4cadb68bac8a88ae17f89f1a142059c ee36aec0366d171e616fbf32d47b0fb00fa8cb8f96329de60554c9e8d7e6548f a8ef72aec13542e0bc6c1e87cb76a43719d6758ad17465ea66d3edb23378462a 99f7d0910e304ec6c8fa4d73fad0a4df04dfe3a8e2e624f1aa8fc7aa54e1a657 6ff5d6fcf8e1ca2c67a781daa1386afd042018e3f3b52e5789734148b3ac3772 f382f2d8786f4a13a56236003e192d26471cb7719503f4f72b4f2c510fa1b437 8a8e4ddb151f80cbd9382323e8d073901c65dc1a8775f76879125cf58898c615 4ea5e102a3a74e767e0f4ec3ebec42c6292decf6ae9d5d740a936807da1f3943 cabb35e5c5391615a9f8e03589e918ab8f68006344a4f7394e8ddbe277bdbcff 71ff54e4b35716007bd059c65a4ac816c14e050207261f74b38d7e703cffa1f1 d423421990ae500fe3d8b0cd7e712e1c9a084a211d21d3ba70d16b5f76b26e7e cb8e5f7a7ecff1b56f6ebb4b288f7a9a1af2f750d0139a7afd35a5b11307e30b d829112d565c09e949a6cbcc92d170c27d82d9a8baae1bdc6bcd19d2ba4565d1 ebb6ab1acca0cf3825536a963a5987eede77bfbb1e8038eeda11ca9ceb8e5112 8c286eba41f1240c992a18fc787d2bb703299578324c9bf60bbd276ddf063780 a0cf91d0bfe8149e10175c767cafb073bacb74f4e62121fd8dbef577b17a1a8d 9f17191d2ab6e7e667743fd6706859dc255c6c14b06aaa5c67d3dd9e52f6c8fa dadb15d2210430b9f22c881cce8e4d0e83918f2b7b70ed79d0bd3b8e65dc5915 01c5859fc1a0f9f5cad01fb049dd482b064885da6c0a3a3ad6b0039598ffc7b3 3fb38767f33f5a3f7286f07ecf044da78a7b1ef451e858a267c7b8c250064866 dd2bfa9a6028dfc84d4b55275983c72164ce09af8a82240cb25c2a0abc921851 dad9731e288500d6d5f741d7f6862c03083aa7e979196de3d490f6f57d6f1a2d 53f2145fef714dc6210b7008936ed2f7a24588c771b7dadf555e051435622780 31e15171c04ed16352d59163247271d147d6ee316bdb848eb29becefdad4e0d1 765825286bfd67a7b1ef67a541a1904cf5f6c176e6151c106018f88d0316b229 f5ee60ea183a5ba9d403bc7f45526ec3391b4f357f1ba1ab68b98e2a35731e0e 83b84c69c4b36757fbc95d33729b5107092b0b07cd01ccf202b357c0ab4ea31f b76bf665ad4999051d6b9070dfe4666c91f5e52960ec543b7320fe81c32efb19 96ad1fb840da70c4f1d1749014a0f852d04f82b0b7edf69e507fc91153207407 68ddd9afce5d5a9d55043728aa444457139ab375aa0f6a4d69cde0925e5b7bf9 a5fe0caf8c83cde3e37c6f799f52c016d8b97485a6c51587cd1ff143ffc413b6 b33fb2dbbe4dba831c000280ab829791c91bf54b6ec0018791914e54bdf1ec46 055a7f21c39dd89d23d0f5a90495fb43316981363a71c404419c953442a59940 b592391bfddda2bb907c5afb31c2718465b3f7b6a043198476d005850d3b3711 065a3c464638c5cc311d74906109f7877a727d21a11cc73743bcc7fae70c6577 2e2883e430f58d0cd16edfaf9d2ceeb0be9cadd119303f8e6589513ef6cca117 273c39f0a7b185e5af4a8a654d794315eca1f9cf2e9ec9f787590280df0e4e94 e85f74a614c2d103528d9bf20f02a5dbae45607f514b322cb7178c4ee33e52df bfe43ae19a8a4567f71fcd50ac11d7971c2f10cd053421be0cccdaff5f72dc0f 748c05fe12e13a4da9ea2fddc99a2481e97e81904760057ef339d42a5b06103a a7c3cd86cbecb512454cac4004343632831b7d6049f8c856db85e89deeeb7319 9d033d7ae4551040431e501ad758a70e115c0c32c926306d164bfb80c340fe87 a3a7204efcee8760aec6e005fed5f6bf61a1496c131136b4662fe275a4b641f0 205c3dcb1d8118dddea4134e4351fcdd338ca94d0ef1d08a72bef46ab9a2fa70 2fa47964d3844b35a32460ea661ab9996069f3b9fa2b126f8dfe249d59216af2 9f4be7a28b07467c31fe29b57d8a32b7ca2fab4d3783048def0547f8acc27514 07d6c2a4743ca4c5e22b64ccc2c197c74ca838e95e07f6b3c663d6f8bebce1e6 d062a20483f38e41e98d883ba3434925f8c563910e362ed67e2663522920b0b3 1c0630c6618a4a4fc3e12c2f83d6bb0e14e53b73a65149c4480f6b2ad1f1403f 737976cab447321eb03b59a2f2ad48c7aa79b1aa6cce13930744587e437ca9e3 ef5754dbfa5f8fc1c6eb83bff0761baa84134992b2594a9def3bd0b1d6b24bfa c05d4d9b8b5a36fff9a1bc10cd244635dd2b3d92863143504a75929d4b7821cb ac68a74972f40afa1f4a6221af17656084595fa4f7cbd59e8dcfb11378e3d830 aa16b9151970901ffae3c6835ecfc26aa74ab0395e0b8886ef72009f848ca1e7 372ee85aa002670f6c45a6088ce29487d9c75a430384ca97f62ff13703d55895 f7c6d16e4d9c611816078b753fab157023ebb6e247039c8b60c73500e3de3ad8 bdae9a6d308aa8a73c5726938da73aae8ee2055c11cf4cfff51ef9c3911ce67d b518cfd4711e481e741cb610b50e2003a27cfa81c820d0e464e10a8bf54befb4 fc13f25f7f83c45e28369296760a4e71036093a81e4490b543f654e0c77c0006 228fc270903a3d52e6f1f94d21c99407ce6ec14322afc7d309b5cbffe8e38ffe 6086b2a06de22fc193a66dfd805794fe63dd6d720d6944239de3b43f5979d70b 303cf4d600a317aee838846212938a937b6bba8e698119fad8689298fb6bc4ad f81c1d436a24c87003156e01eefbd1ea2315797534e727365a2192fdfd784f26 339cad56ba6b45ef9059d1081b9e0f5d493d660feb4390a5fa25c6b26cf9 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI10 %!PS-AdobeFont-1.1: CMTI10 1.00B %%CreationDate: 1992 Feb 19 19:56:16 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 13 /fl put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 53 /five put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 65 /A put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 78 /N put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 88 /X put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{-163 -250 1146 969}readonly def /UniqueID 5000828 def currentdict end currentfile eexec 8053514d28ec28da1630165fab262882d3ffd20326947b1065649b533eb5e9e3 a88a87fe987918a687950b26f647d6e08bf14d983ed1d4a8ca1e2da8d985f944 2eb916f5b6ed0697ac7c33e1e36a3bf460d34ce45f1631871097cb04f18e3889 4cf4ac1538eb19481311d24fe3be7beaa4a3730e8b4831fe59d6d9ce2e46116b 629c7ba2f9ce3ecba2f43bc162a5a077ca1b2882a42afdcec3f4b75b5d63e0bc 8e5dc95257766d8ea467ad9cbaf47be60f797580cced6884b3a68f70c91f4fdf 80fd00ed9139e7f480dc3a76af72ad9b434187730bdfaefe4cbfe5c7edcaaf24 9204fd703011932e5a3c27be468b7dab69daa18dbbb6335ab8ddfdc607961c7c 02582763fa069d43563ba17704029945cf42fcb19cf78c51df0ec4d851086d43 c1ab38e865ef36865fff3a08b01cbcb070ba4893f7482dc7819ad03d337e520e 7d8cd83bb8ac7aff4df36751f4f12aaaea2b6d7260c09a26e987c904003e0723 7dbcc4a8e4e85cd3259f40d3caf55c742cbb40ad0db1044c20a4f122a63f7b81 1d945bfa69662189ce4d089464d2ead9f6ed60b581b04114d5d45e97be27a576 35154e9b8464f2a0df18da855eb51b8f64d3054b0b2e84621f025a0776d16fed b988a43d2d64c32768dd106b9f541ae8e68ac0bb7399e16f4d4ba074b2152d0a 4e9b5bfc21bfa0d531e28165e518ffc054dd4ed0d74eca079d20e79670419f92 e03bcbfeecf3554d661596f6f29e12170804d15a250d917ffe7a8b6e8fa53047 1ed97ba56481589a65ca13619129f1e26affe6c22f0c38540f8ce37efb6e9e9b 60b51a5a9cb4454fd7c7f92f2f9437159687ab590f35b946a54491a7739c9269 e0f1fb48b129811c82edb3171cbd5105fe65906974db8a7da92f4f43dc7f6b36 6981146d86d23613a0b38d9d6191db9fea0172e982cb1cc50e382f69da1b377c 1be9407f88a2a761b56f398467a057f35d18c01cc377e006182c891ec80272e2 2e3a5c7123cd27eccdc87392a9fdf63bb40f02b7649cfc53ef933c6518744cb8 9cbbd437830ef5b1d58b00b67bbcf4426dc1e6ef583b0b4ad3aebd741e3ff0f7 29ae271f032019b1e7268043fd215be590f9cf24da14a90f1683afcba8006cef 5d5632c2481fbc1bd8224e8952debb7c4596a237e5505ac143180956ca1f603e ec70cdb4a33e1c4ca1744adb40f9743167002abeff7b379d91065e5fbe232b2b 9b67fc2ba118438a603a1610d891e6d1911c604853d1e26de7640cb94b16482b 2fd8e1a0375f6cb08e9a695d433472363f5d7fbad693ad55f1d27fc4d52c0b86 c1f2f7856526af7cc8f32cc1ec116bef862215d4d5bae2dc2b015d4111288b07 48b26c9618bc18ebafef36b9ad3884e5daded46cfd1d7f6c7d08d810e4f829a1 bc025167407f5261a860602f77fc56f2e13df7c88ebe4727a431ea008e318314 0ec441b5c2fcded90b4487803614a93c1aa71e7b1377e33d78618ff6675e7dd2 aac72a9990e8930a147b20697e5007c19a202f6735d265c63693dded81e68a2a 3dbcb9ce930ae843d66723d286dc27962243f30e6f05ea2cfce452862011bba7 0578f0de8b1ccf21b16d381fb1d1e7d6771f38776db4445c8fe982d72e62e4bd ac9e16f90335ff76f6eee241e4803b59b3300da370f71154971c8ebfc17719aa 7cf803dfc155a8b0eda1bdd941a5965d67c7d8695c91c7723f6b12251b49e5c7 35cc0a253584f18113236191f687bf522f5a274307024bc204eadf23be879f0e bbb4f4e25918ebd8ad1eadab9cdc3682d0e37b84a32483e88c32968f5b4402f2 f37e152d455312633b761e321e020620d9fa9e896932a425f89080279a1688aa af36e0ab674005fdb956901f6f4d668186035977260847339d357967affbefb2 0b4f54a1861d1e7a187c458c5dd758044261378e17b43a9ddfabb59b93a18587 dfc687bc71891ecc75177dfa59548f04c8ea664bc950c881f53d793184fe1400 80bcd67c667ebe5d38d638fc9ef51f0ccf31d7bba30897db18186bacf203b809 2dd028da4bb2baad5b49603ecb04ec81e0742704f6e31ef5234b5a6a5b4ae3c2 75aacf9951c6aff065f20486a00e6142f0fa9705700fb12adbaaf9930acb0493 7a4d054d4e0528fe71b962ac6d9fa90a926d74a0571f1168638414a3eea6ab30 a804792a1a799163c1aeb32ba00d6468062aab2fde9cb6491113c9c151b28763 c195b1dda2c7f72ff221ed08a9dc762406cf3bee1705003881d57400917f0e00 0c4cce58fba3a31be7a61adad836ad024ec6275e64c85be44ca29912dd255869 45692c6741b5c537811d1c3ddff465cfc3d6fc56ab0caf268dab76a5b4af220a 46d4c0bf290ec8cf12048465e15329e309fac2de91abc6eec9dbcac867efa664 94c423653a353a00ccd0be9f2debb194f920b54bcecee976d0c65b7a7ad9e211 5231866c41c3dca80ab7c33f5d66651e7288be4335d0759cc081b8ec7560159d 5b194080ab416078d7ba930519b16ab94934c58e0ac8ab0239f7c03f201b9726 bfea94a9e840c36ec74d75f958b0503635123f2d7f82cbe5847f5265505a3fff 9875dfdfda9288e64d3e2b7a00533967b342b374c73b664ab4f9dc6884fe0ed7 04be0517be7fcd1c903cb7026ab06d05a92471d36c88be1e11ba0261809b7d4b c801793cf47056a4f749a4c1bba65aded58b40b6800edfe8c8fc37a0bc4813f8 6210da45a62c8b0399baaa8334ee03a85ce26b34e79fb2f696e0ee15f609aa3a 4bf259f30e3dc53368e2ebfcede32b713f7ab8e1812c881dee534e50349d97a5 290fa10b41a2520aea58963a8335c824a1bf3bb1811a968e5cbe1677132ff85c 89f1fc4ef2af7c93ad2c11e8482b876e7a7a35a3173b2c3996f6db9339190057 06b3d4d26affb67db82f6e77e3092d0f4b3e8c43fc3943c719e87a8771d4ecbc cffdfb64b1baa806d8a786842b202bbeaf01ee8429ca5c5efcf74353524e2cde 05639dff54bb41a9510b4457c66820dfe4263ec580a17e16ebf17de782eaca23 9a54d157f86968eed37b8f20a7729e577538f0b176a9de6f5228bb5d12d6b558 42d43e19ca0967813b4766e9d84776c6accd40c8c179c3852ac60f9427f8350b 7d404cc85689a366c935988cce6754d06beb9a381f0c70cc9b2fbb43ed10d740 41196486b4d02db05b0022f159d32f74b92975ba2227857be36c9c90faa094de 1341340758ba08424fd1bb240e3d7f84ddd3f3db15d23ff9e8d64c870f95a302 962a56434503d11f29990bd90e2636afc67f95fc28ba3faff94a73bfdd39127a fd3734e7229fae695b6a8e71d10f59538b53ad1ac8f0a8cf3615ac58a15071ed 1e9ff38063399300c19c916f04f116dee9e0255e33c93ae89a898fb0147ec41e 5460cfa0567ad92df14ec18203998da13ba80f8dbf829f74251a7f1f4b3033d4 1fa6a984721a81380f347a8b48952ac313f5362c16337baaeef7345594b54d58 8cb18ea4bd98486a8d2c3798eda6cbef6d3e6d68819fff0bdbcbf58046f83f84 85718c3367b256d36c01a4096cb19961fd9b95fc02b5bc88b95c7c95363bf85f 49c3509ec590254cf91a3cad7ec66a036c9b3024bc3b64a2a68e232734d3f1db 8e08a8d7d0db90c9e69b50159bee5be9a3202aac68ca79c23dd0a50af1e5ea96 b36c90e4609eec258b2ec4b1c2bb12d96d5c2169b91410143bd4f4d005e8030d adc31f1e8cea55f34d85851c43e89a40c610a384c00190df5e5f787155a2b171 7ffb3f8b22350af968a8794e419c2e0763039341b00a46c3306386c036fb40c7 e7638ff71e0c88604e4aeefd1700c20d53986ac7e171c0a4292ee3873cc37c22 b40d5adf1b6e4b1dd72f08dd721e0aa2cb8c1ec0acd3a12cf8654976a3ed7d08 ebdfe33ce9d2a42c85e3985d2054fd75bbc17e155a0b0f32d7f706eb7268b514 eb27e69646931cbc98a76f0a26470473070c401a1b30221b68cc5978db824b28 dfe0f449ec7ae64a0b7c6974c3b9ecf4a91eba786ce10b43172b2a3361944d4b 876cc15c309cf79558004cedce22feee14dc289b1e16cd89f2b2ca02c32ccc3a 0d84dbb7b62faeb8469a0fa728dd38e44076ed16220b0c1a118ab5aed26f74de c4660243aac453ee06e7927e87f1f7c67ae95e3dbf6b9714b72e846050aa0d3a 4d887b3231fc2fac58a532b1ee585b9577e78e8606f62e40bd9ec19e9b9bb8b0 3c8b2211afddac1b1aed19e743f8971132fbbb4cdb71ebbd3f25f9e437192906 703bfda7612c588d21c5aa2066b6133163ef241be095c85efb9e8fc4907731a1 c6084abb5591f8094e6c43e99a3bf5fbdd9763e9f926a516e03cc3b7dcc71e39 e0cbd859d349271933dbf1ede3e110894fa8effb31a16f30daa30d860b12eaef 8cc92da7d60bb08d7a59c7dbf56055ab9dca7a36bafa56da3c63c7c40f4affd0 0d53c6c4f9eec1774b647e7439173744eb2239384b4ed6661e1050f11b57318f cd015973fed82959ea45c87c9550c2c0f262d60b24922242d2faa7dc92792d91 593ebfcaca20383f7f64b694f599e4d6c28c77773e982fe479983d2514456d01 aa8b0088a3a0e019e37e929ba3d140ed566555d97dae4491fa7e9a355fe6e3a8 54153120527d11529f163a0f7e3c08438b413101afe32a7c5d71da43ca629909 1b80fb64370d5d84b045d2038a5d47f60219d3db162641e17f143baa2060ac31 10e6a61bb112c603e88cbdabab1df0b8a5519d2f03b9605baf4f37a0e98dfcd6 c8d751af540a7c7b1794d70f8e2a7c1254e698b52f6fc0f09a04cfd90b961a91 c3af16e8c90d02213ea6130b6e896beac9a1e63c99a79058c4651e0d3bb04914 3eb15ad5cbbc96bd6227c0820b7f982a80a984a13c0973db77b0d0e62e51abd6 dfc20974f79d584696305232145e47b25e22356651b801c27b5597866e8f0025 83477f5c17993b39e592afa2c28c85e02622a00d428bfe101ada953c04b8306c cc7a75cc953430f0bbd7574c164b1452aa3ceec942c2773a97d8a9ffd266d2a4 b9b42a955855c86c2d80b532c7f3a6aeedf1a6a524edd8c1647bceb25cbddd1e 057ef1a3acb49e8643ad4f94939d26a7cbb6eb5e07d513ed9ee841056c9f54cb 63bf618c844970fa3bc2a616879bfe8c6d5e82f3be704dfa0b5929db92b5b305 48e0c23ea5d84973062b2baeb63525944b34f71c54a345674bf23ea08f94f2f4 bbbf0a66b69609aa683e5e294ba085fa56ad28307e312eaf0ecc1036087deae0 973059d039e1bd34213a07baa453ea8c3faed420ab3020e9396d01130c0834e1 5c011f6b27899e8d5d850dfbface1a10a0a3ded49be6dc261995a0c848c8636c 8992b90e3e12fa426f353c5c8bede018a3102f41f5c47fe9198c31ba8f9cf9ec 341341446def488d5a457dc8ffd4a748a95f4abec1b99183afd1a78c9d2e6b2f 16276920f52fcef1b5268baaafe35c3471defb7d687cd47343d1e2cc0090fa07 edc608ebd1158d6c0d83cbe177388130147eee66b4cca29eb9a35e311f72cf82 a6dc37ec090fc4d0aee946ae4f5f2f7f131bdf8e7261a859f8c24c26cf93a498 1743807d168f580f55f8fc9d06290bfcd7bf7580dbc9d81f1fdd4c5b8142bd21 f6b53577b51b072467ed71a5db23053102260f4334f3a1ab99c4f2cb476b7862 12e7e05becb34074a51d43cab3b3ac84163c93bbf4acc07f044b9acbd7e52759 50166586a3b58d5b5335e157a8294141331ec29142bf385100ee2fb183839a40 9f85cc62ae4cee5ef814a223e0a6358e7f09b075e627c9defd5424133a57184d 9ca3cabc74dcc0bc10014a01356cf459b5876b32283252407450286918be2f46 4e27d119766adbc29e339057fc850d0a27ae0af400a1e54b58f3a521549e7685 6bbf0faf4df175bd109edb7d836841b94f2e069e94e4e18f0e200cc130bc1b5a 22b66f9c84a28b938c24c73e4244ef0a29787f67a679dcd670870d1d024810ad 364b97a8096b9410e50f93e7999e3b71866a075569c2a5db1cd049088400bd7b ec19e3ceb96dd8cccff8090cd2314bce96c3816a884bef951379ed51f370daf8 ddda599c5343847935e2fd2ba4e333dfe211fca75fcce36a5c1cd8b137e047c5 1fb5e02f20334d696a90d3b6af8c4ed836d0200c4f0fd7a4d7f6b68fb4b60ddf babe71fb9e767185aa748b1bc8a95f0e8456ba37e74eb4651ec21bc2baabed1a 322972f1303d6a62461197b48f88db7984ba58b5a2761b1c35c5c3d2101d0b12 c9863d9301c00a17d38f06a42a458e2d89da2b896f6803643f508ba8d3cf89b9 6a6d02e84cee6ad48b8c82dce6b9e0091b2610b4c1c90e4324585e097408fb4d cd5ff7f870416a617baba36f99db5e1a2b9f2e8e0f7717870cd9920329d4250c 1e6d37b9d0c1f2cbf52e6b9da165aefb4227d21d099a0f0ce8134a3889a40c89 2ad24523477bf7ad2718d59e0b6f6c87bec318ff94747d4c2235650b50b198de 8143af1e86c89db417bb41407f98f513375249493d7e732739fec43a25527792 14095656c51a6bc0bbcdde5b9c591bfd3ecb6ded57349ef251481370840b5926 532fa303c69d4e488a705a7e0a79185f7a9d41251dc99f4f4565475c30eaa71c 35182353a8bb6fe971485a7cf2a9f0231b99787fa469aa11ed8dff83fc3c47fa 348a74dc58d594f8ae330ea909df6ab6b1f78e621907b0aa5e37b8151977f6b5 1f5381b9437353446f9b6560887fe3409e0b68607a8b95ccb85a6d8a8da332a7 b89a04da56cd5ca69e25abc911959e3de147c62a2e7ad834f192ae7319cb0e6a bcc049f77bcaafcf13a1f76c9b6dbc7569bb5ee1ac1ff1458f61086761f2c4d5 687bb0dfbb83fc0fc5bf0b63f4930352b4078d9ae840a620c76eea441db6169f 5c9fef1b0ffcb5f83b2f3518bece7b463eb22cd4d4ff9ebb59515264ff800c18 d38a6d95d1b36ecfff5ab02b39e9ad883596d9d5c068ef6d6399484d02b51c9c d0bd306561f31cba51e361dce39a9109e4a76f47b5423eca66e2b20cc3568990 9bed7feda12cc6d18c7f2971ddc22c11c3882065664f3aef7ea7ce6be3cc2b96 5d10cc6e258947730282692ce03f91014808074e668f0864d98c56c9486cc1cc 15b19cf2590b56e04f373fdf082677e963a43774ed67294b8032eba52575ffca 80417e354f4083fe74482ead7f3bea34afde8c1e32e2e33994701b4aed8f0045 cecee8d8e8b4d5d87ab09bae275492a23b9d2d6fb8655c17f37ad6b286438c43 3a95f4a8b9fa0e7bbc327f65b124bb8bb1278903c4f967b17b1aff204aa5f96c 152c97e4085e01af1aa1a2132dadf782a1c6141d3993e9538265ac9f31f1bf13 7ec82a8f88d7a14b33f245e81080352539424bfc17a366315070de4d3c3f43dc eff7d1161baea9967f3e2e3ec63df4554c20dce9538354df4642128a8028ca5a 711e505eb71a5cead138ef107f142d4f9551840148f589409e2e8d704c5175af c596bc5b2fa4bae5c9cc229ef02482d5d48d08aa37c31dd4cbf679ac4599131e 2beffcdd71849ff0b8c175fcb3222575886ba7b7691e8397e0f494f50a194e8a 8e554ef99a4141fa12a949ab00ea6ff062301b1d06e7b04a5e78f21646762aa3 70639c68b7e957128fd280176b3795fbf5ce2306b45d9c299f3410e346598e52 13632d5d2c10c0c58daa53eb1cea5578ce95eebe67f4c1d8eb12007b79382df1 918772e413086d0f3fc340eed6dffa98687656d31bdc39c7b38fac6a32b40610 5c7cb5278c2f7272ca6d0a809efc1c773a1feeaed68096bdd51022d44e25cf3d 452c8c36bb6ed2f65850d7e3aede6c32171e461ad2d39b9502a935af00531a8a ef14ed7e0287c45300834a3156ef1aa696ddabead932d2f9011209718358cf7f ce5ae2e1e8ccbb496ee401f1f4c3b546d998c9c187134139948bed424bfb56e3 5eb3aa0ed93ec40cba361088687d7b9f063cfcf0cca32f6db8edf650f6a8115a 841a76d0077559c4487785d12c2a64072bc2ed49454fb5bc69023c375bfb0a92 33254ecfd5586b9892b60e72a95d5f16dc47c7d5cca8722f3026049d4ad7c69c 0a4216881a6f4a1b9e14fdb6958805a31c66f627556f0584f296c876129bfc91 8a3025647b51117dd21cf7b37361013dd337f7fdf22af2efb4a1554e05f92b0a c04f1b54261d94e55c017b7b5ea2093843b7299c3a308205d22082aa012d1694 5f25e41c209e0e66eca3aeef8cedf0b75280855f60c39d0c71125a5fab39c2fa 0d4133ac86f5f538b8b170091f8c1a27e1488855e22f720314d304623724d7d6 18b93a696a013db2522fa18ed734344c1910a6c29aeb62189207f94c7027a652 3c30cc817291687f8d830ae3729c2ab29337d3b14a4069525506b3821550a0ec 5012727e165bc24c993555cf2542b09003b9c16a3b8a346083bffbff1b9d6439 c449b9c726d87f0352cfd063c308056a7b58a80dd7a9b8cd718eed6e339f7b86 a611e6ec907785bb28bb956ebe7911e5118734fb8fb2c1746061eecde3ceb211 4f7fe11df570ad1bd20bcc0fa796da4ddc7f833c09499f8ef7cab8482f33a5be c1cd03cc9ec0d8934df2896f75a8cd23040ac34e128193763a1c082fe0d6e3fa b7a1fd9d41a5b79e591b833185267525cf564aa1cb2335ed1720965c1ff76b28 427dc7db7050fb1bd3ef6a8d66652a4fdb3e2730c0a0283468bc99f101137ecd 891810440a504e77782c1feeb7aac8806405d4322712958abd02b04c3ee4e701 161166c98105dcc63ee733eed2eba8b9c5c1788c477dd2bc112c918d388f7b59 7c0ac317124411d98679ecf1b7599ba348bab81e9918c7772cc1998fa2c0b924 b63846b25a9b9dddbd79ea72330e1544492ad02b9c0d34594823fe0210b517ca 39357a7525f68e270335705bbf25142c16aa258984880e88f87ad212aaf2a46e 96025cb6fc713e1a664637c4db33d9ea5e301b671e8d2e4b030b938e2ec4d004 e82fdf433e084f6040f1c1cb6af829ee9c9bed19243de3019b84ff23bbf61d7d 94c17873acd7767c7a3f833655362e4c8fde4d9ded5f94437af1f290988aa177 08c3a764485137b27acee141b3e7e3362b456754e4438833f0e67595ceb10c3a 30d5ecaadc3b71dde4bc0b0865c953ce3b5481665af1052d922c83b338b2c01a d2011d5b5500950060e33fcaec4aac20602fa9ccd1767d6545d11e9ce8c63fbb 424578abe1eddd728845a4b4beb33776cc7501e29a731eccbb877eb850fb5f98 faa8c99f2ce403692f59c33afb523d1233ecf2f1ffea833a874e688355b3dc65 b17cc04e98b1ee93e26880aa162f7138927f923a2601f34b1dad50d68cdebb17 460f204f9d8f18730a787c7f18a855af1a328ac2357da09ab2bc030e55eecc77 2be8f06f799d51db9da4e044c86777c7f54f6ee7878cde307c88f02343803ec1 feee475ff7ba31a0541fb32e850793cd9637c63acdd09c531621e773efd959bb 2d188680e43cc14fc3fe52f18964d3e4dc4dec9debb89314e4dd3473ec48d079 a221b57ed04477b26a036e4eae439bf71392f4a54296e87769f3d5d0f6655531 3aa08f4bb206dc7b1b3dd96899c634120b3b7038aa2aab2479646bd5dd2803d5 9038b9835e29da802c376f40eaf0e8e70fafc93b6883bcea681a286fb07dff19 e7761095fb5136c973449f6cbf6aadf9022c61ff8d805e39620e72085d342ff8 b4a744be20b906a8fb37de6e24703a6fee1184a32c978203851c05a78fb580da 15c5be14c4d84882ed062179a06ff8bc47f9b60cbe06d1036b96ed3df3357788 ad287fb7f3cb6f1d906b1d16fef12e45b2e3ff2053ca9c85dd32965bafeee643 9ad591e169b8e248055e2ba24ae3e6b372c3b03df520078f1213d66465aee1e1 d74f9c7ccd2baf05f3987977b8c8093e2bdca1f2aa1457c1aa4d0422293954cf aab20fe3ba256ef3a0cb19b12406775c9193439921c412d238b978fc0e3de9c5 fccfc4e7f34e9cc24f80c43ca77ccf47b70fa85e72c26373ac30f276964a3a21 03823addedc77ca80e9a2a84b22ac90d346299d6fc22a4e1b894d3332c5b7ada 6b416b1b5de6822a8b8b0326dfba92ce92d4d24d6a3ab0986754ad536728d95e 11191ae6fe465c4fef80113ea8ea84dc77db15b36e7c2c05ea89f2dec5aed589 5a3f677b7433eb05931c8bf5be43f734195c91bc1235c13d3345270e3a3e5225 8e7c2b5ca6508a890de09e4dee2f5cbf060ba86359582a75de647fa045f033ac a7c30932db85523f46a0aca7e36880d366ac05d5d2ce3e7e8ca385f890bd914d 332eae54d91197555c393db4b896fbe7a3b2936573a629d3911579e51af04262 314b8be520e1d58ceac5a07c5050b52a186c4675f7c1d97007ecaecad2c932dc eb39f51684f66dc794d58b443dbdfc588f738be467c474aa2ba6159f834434aa 9f2b155792f379091698c036378b952cb3c7cc1a158d13f5333c811bbad17091 16c0cdc9e2aca92eff5ee210a5bd53b2f2875715432b9359d0ff868a0d2d5963 830789b85af7df16a29cb6e4e5bedb0a003e522c236259e5fa56d151b9a49ecd 29d6e46ac25d16564cfed6f4427e2f2d196bf4820c58fa57602aa3ca54f540eb 07b41afe16e0ae0464fc2ea4d9004b1b3405f08428508c8efdc1686a77136d86 ae61557ce5f1db3e9b5b1eca78e99aa7ab0afe7d0813179e1b6353b37d75e36d aa3f72f13487a927ebec7cd8c6345f8133b7edcb05c1a90e651b5ce61b2a0257 2e22825fa0621c0dcd8bf0f144ca931da41f8b88d63f6942ceaa5339a74830d9 7d4420b08081fa2b77c4bd24e39794ce10d4a98a7698e8f3c00d4114745b98b4 880a1ddb8530c43296927686d8862e939975c3c672198c564597389765a2ee47 1436a4fce592e15501c842122ebd689d3127e0c0da5f9448a29fb4a538e77061 aa11c6dcffa6a23f868beb2bee6af431021ca87ff492a078646e71903ecae9a7 24cf73f32dae40f0e8053f725a6f43962ed83504f96061b88d3193cfda9d67e9 56e800defc27e936eff385d6e487f620a8a81401c473450c5b025be690cdb99f b179d71779902aa8a873fd1b0b14ea7eaa1e088af6f98d691a5044c677b27a2a f4abf02d94cbe7cfc72f73a00ce6e3d5ba28faa5c910812533447fd2322f54d1 e258fdb11057f4897fac13019d3d7eec8c82fe0584e3dbb53382b08f05075cd4 4a6d89eb329f61fa0238bd9390e1eb728d36880c0ca5c8f4c2956d73c4df6b6d 2c634b934276a116a0567bdc06f6e952e141257a2daed99c27ce0676707f8134 3e36ad0d6da4287f2b5c8bed08c523a9b8b54dd18ea11ef28c2d463e1b88a97c c57326624fb909ac7502ab40fa0429b375fcfae50b41a784dca146f4a9ebbb43 1f4b510d48409ac4c0e7485471aff7bff6f0252da09049e852530256f2c7a56d ddd1f0fc9bb90f13ae816c98deff1653a96503b09f0d728aff1c801e3ed01278 ba926e4746e10b9d45eabe0747ad7187856d3a8007c6b30f3df55fec80cadd1f 1154d43b30315d745f69b956df61ed2cfb717c91b6fb2c9c8eb8296aa6de2a21 dd2219f1e3187e014556f4f15638acfa90dc0b9fb40900d472e364a5113c3847 0a251e62d7b9f601c73ff21a9939930a4260f4f6d663b1c8d101f5e30aaf5f4f 204afd9dfae93eeb5ee77b94d73ff7eb0483db98c48445bcd63c2eec09f5bd42 ae96066277837d2b05afa206f2c2e84f645c6b1e799d7da09be33b33fd377808 326d1f5ff6650d46de0add1f83c372d80b649d04a6b5d7b8ba5cb36cb5069394 264cbfbf7b4d8b4e873a403b4f7002c451df7dd7af067c558ba74dc44124a69f f61617c48465cf7ac65b5b11fef05c6ecc353f5a5441acc12e82bece96e4a974 b4b2181fd8463a745043ee8ff4778db52fcea543e3923d3927ea50879fbffeaa fa2cd88fc5af6bfd580be38a5c71d3985c8baf6d1faa8b743518492f92e41d6d c665589745fcdf4739458ab4080c739d6d7af93dd5200f0b892b667a4c788287 4b7ef0865bf81d8509f332af524758a70bd232480562836eeb1c419cce575e63 d90b6a75c5348e37f3b65095a2e22c6c28003c1a314707c969b777ee731b6563 ac9918ddc36818b55711b356cc049e98e7aa701f302e5a2e0a551423eca9f95e ed2e3cf2af303b0c66070900af953ef87f8a5f1c3c6118d0bbbcbca118ce9f5a 0836a197abe6ab5ed3363f22952f9f221c750b9b8af79b98baf677b08faef6d0 e28ffa8b929d3b0394a09576301a47432aadbf10636ef944f8b6a00870487274 aec5922d5b787b1ebadbe5bede2ab069d86b34053e846e8298595259dc397bf7 c9e8e1804d94a000c61940e1a1c3d4b521b11d3124d7108a790807e6c205c25e b016fcd612e777fcca2638a6a7818755c674ad3a0aa154703d2869434cafa6a5 65489a4738bab7c2ee25d6aa6e9f2ae4647010200d990e3a8b49d65f4742b9e4 5b3d7fa0885c4168a9a28edcee78a7577e573a5580c71002775e748dd888d42a 41223641bd0669a96e8e139bcfc880337d3349bd03ff6c464f326975d4e039c0 2998e57a8581c874ce4e49c55da721c1d9e58036e52115324017fe75a841d447 db519c51c564234f5b2e65aa0ca451b709d18a0d842bfa8693bcfb02c34ca66b a421efeb7b4515af7007e657a10462f8d3db92cd760cf76e33510685f60dea85 22927ed59578b88da5dec48dea5868e9d86e887caedc835daf4b1d3fa29bb2e8 9728fa03a84d7ea31eac2f1e52bc04790fd5c7ad5b78b483de08ca13809f84de b29a349b797f107adb37aadf438bedde8bd21d0ad39523caeeb0e73ecb9af4a7 20ecba8dbffd603e55e92dcb810483e85c7e49942eec2a403d8feeb6366df59b 10db3f17773ae970328ea15b22f73694414e1ef7e398705f98d5ce504db5ee4e b26093951c10d8846494d7b49fb92789bcdf9d569948e4261c6e4c9dcea54ff5 7d7e70006d087e28bfbbbada55965154e299063e0632e857a22f1bff1cc4b725 3e2c0a1599c15823ef7f92ac715b4da8260513fc263261ba280d04e44fcb4daf 0c4f933f6bd1a8867c8551b1a7d83d0249c790e73e44e611dd6d3135dd87d4e8 ee9bff49337cff627c41fca0b420f23fa556c98630e13754f6330e3238db06f7 e8e843e6dcb27e25e781366d65c597b1b46170d47b27a4f99c606ec1b529b0ce 3841e4d266d35ddf7fdb2d7309ff2fa554a129986de12fb9a76265e87543059f cdf3b22445a85b82650643f777af9e3251e39a96d529a33615a60e84dd599dc5 90f26924abc8c4999e0bc4234ca3ae7bb53bc5f0a28a49f9b19f26f9c6c8d329 89735218229e161d12b89c9befcc75ef29c95f1b1dc25b403792a956da5fb9c4 adcab99fa55e53d196fb561f0ed4b3c840e2bda365ccc8c6bfdad2781cffa042 81f99f1e9e6c3b365614ff2caa3f921356f8ec2a9687fbd03168ec496672de0e 53fe03a186c99506cf36ed23566959d9c5d940c3bf0adff5050747a5a1245fb8 e2a2cdda8e41766c76029e66bdf5d69381c64415420b3ae95f695842a1b84669 21866df94015e57411aef839e6f55edb0a7eebadedea06de667f67f4bcd3d45b 9abcaf33ae089dbfd289e44e438dd84a6eee7a08b5338673932726aa25f7e435 2512e3589ddb5bab061a2fdd35f7beeeafc032ddb7bb63025ffafd303e8a0186 f19887c30589f4f95e6e56e1a7b2111f51c324aa1b981b47657938ec7238e023 679aea3e3a61d6809e5106573734e0f3c338637c6a218c48377470734d275032 8667e7249c655f103595a89926698ec784e5801f5d13b83c5a888dcfae0da462 a974cee8a749ce70f5cacf018c8395ba5a9ec35d0dda1e0ce954f01acfef11ef 42d18b1bf27fd71f26628208f61f61fdbb4c2b9c2a1c0b35a3172b35c4c398f0 0f021ab7eb426f8d67f01384a7f9eb1957dddea6ad84cf1ec8d59f68d4f6dd5f 8a607c6950a760ce69431948f35fa7d4de9751828a9eb3b0a47bf615e851f75a 39b27058d185e4c0910d8b2b156d11b84e150ab271ac8820f6222b8de46f6a04 ecd4fc6f949256ff478ab348380fc28755b33ffd02e9bc8612834da882647ea5 3149db01554c0f9daccfd33e6bcfdf612fa8371c0c1d7877845b6a2347c505e9 90a82482cf9b10a656e9312543c778da427f87b94c603143416b014d607f4f45 a54064cc5a8bdbcd74c12bba3e4083cc9e0aeb70e3dda1e560c9cd842698bfb7 8401adef9bb84a8ab90e1213021ade3c7c4fda462490b995c04af28ee9c06613 5371e3d703390ec87e161f616d835878fd60e828b127ffc0182e948769ffc017 ff612c7d0276aa4a61d632b779628c8533b4e0dbce936466506ebadc40eecaac 11ad6b8f6796eb1db08e838f2baa24f8daedb7978e74dcf5478ab57b02c4ed6c b1eaf598d44a20338f02e3085447459cb00d8de03f41eb2e947993ef96e7139e c0df99e91f36c3b5e8a176612ebcd4ebe1e450605b15dd1a6d1a94a885059cba 7085d2c627091af18d1e292460098a1033dbcab87dbf2e699c66993f199457d6 dec6a7d6b109c169d6bd76ad4140801ff05f74d094136c776abd23635612d478 c1b1af66b7140863f50099b16daf922b34f64a98adfd31365e84ee60cc66e116 515b329b4d72c1ab3d202df336bb46a53c289163d225cbe07967d8fd590c550d 62a9bc3912343152cd5552add9d62c7ee7ea4e69dcb2f3c286db00f7e40e85e7 1f4f7fb56af7969c2e710224223105a53be3b16fd4689f7a5459d2d345521526 df04a480443d4943813b4555a8072550ceeef638a6e23e37db32cd8721d69310 fd5bc40a8c971d208a360cc12d748598b23ed3e9122f4ed6159a0c33fef3e2f6 164b38285bc68e9ee6caf7cccc9b8cadeb30e2d3f2847e2296e2eda10758cfbf 58367169a4796daa99b75e5a6758d3d08bc8774d9a0873aa0d43cab2f400ab9e 9936aa5e3820b97cfa6645e182d9d32db2a3d607a0d0622b2dd1fe4b338a9371 f9777fdf9be789f00a47095a31745feb815dc5cc6d6b81516615837c5c291da4 13f41e24da5362b208a259c554b976f1dfeab146f8e64646a784570baf1b4199 9cdb5a5e0c1f368fef089f073281085af28e9bbc867326dbbcab5280b3aaa8e5 e4e60363402a07a741f36640031d9916bc3858d19d81997d53a3090f0828de96 2ccaa3571da9094972aa8ea22613a53b064b4f84179808e4fb3fb317bb34551a c47b02b2e9dafc337af65cac696e340cbb451044c60b0eb8fb03a73b0ada3bec 7ae984c6b08d922bfdf6de67905472ea0e25fd27d5a205d09e784bc1b3bffcb4 ad6775879ab813c93c736cc59f743806506f99103a62bc04d56388ae31677a22 26e7698c346f9d1c50e81df0123e819df1249ae3e80ab68b11295f2cf9c8d9a2 c12a942ad1c8441d251d32b96d8182d9a198a5ca2e15d0b8887abeb3da830f4e b1c6f2defdef64b287255016bead09d906ceeea59e0fadac5ab5e5ede0ab203e 83ccc303c8e6456c0dbe637e3b3b6b068ea80a3576c4f4d3730399ae49485d51 f7b87c5cf8d4b43890e12d965be4773e433774434c7382a42b946e8dc63f641d 43f3f7aaae45ba4d588e300c5234c23e1192b3593632bccf5112b11f1d2d7af1 e99c158c484d962800d810bf532344e95e34fa3b1cfad95c3bdf76d75a70a039 6359505129a7a3048facde8d71210f52cc6785ff5fd8803290d5ccd7db739ff7 e52e516ae36753a56f5d8d71b48524f20972044cf940c0803e663ce25d442dd2 d4b0b12642e5d03848610da774be683aae463ab52a14f4ae70511ea5e4b337b5 88c3230e86ab564f931f8ca0f52189c825fadbc9e5ba3e4dd4e45cfdcd49f53b c83c3a18667d37be87e40c7e2e15a857c9d4708677a4a0678ec96ef199c4f86f f4003028d884403bd0bb05b71025c03a41d9b125b1621e7d96216c917db053b3 09537639f395490b00b73735c57369ebcec29dc5fa6c7a07fb1d5d0495d63fa9 e8cbd7320d68014b38f5dda8eb0f1c9f31d4ed0139fa27bf9fbc19989834d66d b34f8509d5017991a97230cf4a0fba8dbb6f8dfe6581e533d171825a8f00e18f 3566bacb7d3febf612c031e3169823bfc771aafb7285975e540304512987e0d4 3df9a472b1702049225d38820c08224617d395a1f4f862ad832073a1eeaf39ab aef6295442920832728d1d9adb852bf16b4f6a6deac04bfc5c1ef3bbd0467cc4 ab36e196947912c630e3e6ad94dc221e1728af2b7244eac010c776b21564de47 498c583fc800a971b501288281b503e7ae4aa833ce41e660e9db3432b4c163ea cc8806a9f7f67afd9300c07453bc04a5af98da194dcdad79c4488e426067eb33 e28cb3c20a7127c058d02b1972d3dc47881004a0e819db5ddd0081ba7254d56f e6acd1d2bf600e2802e53ab66450ee276fce98dc5f0e7671f72374d3b53d0c50 6651f5b342d82ebd5400a1b94c88612e0982278ca4fe53573207382f321af287 b327fe4fd434a3210013e5f95baf2834a01965f3785be7c8992957ae3dfac90f 0c2b5a0ed23f558b3a5fa51d9add412ec2f7a4d5aa3cbb094dee4e5092c1be28 0d594f4d3126ed35f719cd5ce39eea06d9c5efb863a0bd28ffbbab39d714b97d dfcac031e4420a871aeefbd7b4488308883f912c0348330f616410f84afc0922 9eb4c1b05ddc739f067ab0d0a628f05771d2cf8380e91d47aac8093eedc3f995 39799af5bfa099923f81368e136b4b88f5d27058e89296411057ce70b8bd0885 be0502810ca6a2e84325bafe52625f978d446aeb5a2aa8ee56bc752eb0ef848f 41c181a71f15f514c34f155ca281122c710d4262cc2576d874bf9c5c98cbee32 0876b57a47f1750cff7442b0d9c16543d85643a6c42cbcbe3e3b98660311186a c31eae2f7ab9c541e6de02a152660df2626671ebd27cb97750c3e772d3b107c3 c51a8de944db5480cda166bc0c7ff1b16230ba3c71dafc616355ff 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR10 %!PS-AdobeFont-1.1: CMR10 1.00B %%CreationDate: 1992 Feb 19 19:54:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 11 /ff put dup 12 /fi put dup 13 /fl put dup 14 /ffi put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 61 /equal put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 91 /bracketleft put dup 93 /bracketright put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 124 /emdash put readonly def /FontBBox{-251 -250 1009 969}readonly def /UniqueID 5000793 def currentdict end currentfile eexec 8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8 97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc 8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011 b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415 50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e 784c6bf7389803d9450b0c21756a017306457c7e62c1d269f306bd3402e266de fc3b5e7d8a8d2f5bf0fe6ddd40d07391df4fad4a6018dce29a2b8f692b29f202 3a7c0e66de8ed85c14f1f8492167357f51a7e84cc5d92e0fee4d81cf7fbc8de5 2d2e7bb57142033993f9c08c315abade8dbc4a732e84e142d3bee51557910e12 cd8aa37c459a5e6b7f5269f59078aba3be4641a11ac48d0b625c8325b38ec08e 4c9e5e7fed976a5650d99d82114f449b9ca14c4ec957702295a39a93ef93f618 99b8ea06b092c3c1e503e6e436e0a9fa22576c8930ab3dc8c20f5d82b69cddf8 ff4dacfa9c54bed5a3aa3ea5b129fe96be632843b9b6bc91b615581a985db56b 1e01ca60ee69ca92cf5c0882ece62edad3e106d835348822400f0b66af658f2a e56ed08f8b0010571807009b73ab12a8cf14ca6c71f03c2a48c500f9d62266af 154a6375ff600d9bac3f05ce34142d6867a79581c533176bb2f3117336671e2e 44638a97167e2ea9644e31ea16c2ad2990ea33c54001e0c8156e6de8ab6a4d40 a7137ba275f39589fea2e2db8256adc103d6f9cc038037a47e8fd469c5f98a5e 3c15bd4ace40d340018b1cff7d1ed8abb0ac57b5b5a2c20a51957b96c453edb7 dae5affd91a46d938fe0a13363001d844ded4323f1ee6d30012aea19b024a552 315505535c85dc26bad31e09c50e6512802976d298c4e90d0044c362e6bf3ab3 62a454ee93de25ce54411090c29e9d75c80ce26a84404bd9de3aee0e3f921ac5 87f907572b8354a5c3165eea7e8b2ba4e333802132f760b41a900c698eb3d273 8bea0aaf7aae96a558f08b61aec7c7d65b2889bb7b99800cffee5ba19ac90fce 11437be1ddfcf0bca5670b543b9644a71c8726d0c1005abdb96f6e0cf7caaa31 95017ca81519151c2c0b04f81e717c0691b63a76e9b25329ce2625b711cb7bf9 9d23ec2bb5ec8aefb8c1a3b422ad617b3da4d49685fd44cc21a1fe5e1541163a b3e1594601d63c7e98801d7746474377ce93f81404f3570afbd5dbfe77578605 917ab96963987e6efc2d3f99fa56ecae6422579852567f90cc90e4ef6d6f71d1 858270205477e221018a375ca83c572b3f972c5181d18643cecb04909d84cf76 7174b3c0c8ec69bf1e9fdfbc0fc7ed97ec67d878ea4ddac8caa522fdc6932df7 21b81af837a200e1d96e90a7ad7589fa917658d7a173a511db53af1848892270 44c4603be1a5ac1893c15a21fe5979a09aed3473a98e06c98356dc01ed3f5e14 1c3c057c3f97e2f9e8718b12bea7715a3432abe07df50291d1a395e7ba2f06ba 7cf20988904310104fa43c7a1f6d32f5fd290d4d572cdb5ab4b433bb849dd1a3 58b292cbd5c762262751c26d8756c7a3c4e6bef14ad9a628fa2ef5c0010ee4a8 d530f3786bd4e0af07d5587e90e19687d1a31921f975bff26ec2cf07f3efd4fc 54fd4f92f08a60ce2b3beb2dc8d81a303c8103283e6e5341eaf61191f0122624 2a4a88caca606438a767277972e2ad7ddc9a36f43d5b2d010b30cac07a383c1f 9c18c89749e610d026f48268eb3f80bad4cbedb7eac3c18c0d50b5b75ec2eaa2 87e2b192f97a901713e955d597e39819d72f34be949c010addbdcc14d763552c d0bb091ee7bb377545c97b70cc479e60760d1f2c57b47b59755cc59198b4f92b 4c55aba7cb9a51888f5e4a8a7c5c9ed2ee3a22b29a3980ac64dbedaf17f322b8 fe35405f3441b03ac099c601bfec9ad4a835c46dfb3b658f72ba255563c0fdf7 628aac9c69d73b3a03d9959b4260c2d075d1f3ca63518e8e49badf8b4b01c633 77b4b1b1592350e696989754e6db50ebcc6e61d8136a9aa1fad7c8016d0fbdf9 ab6ae254ef28c6b10060dfb3bd48c2581297472f273aa5b4737c55940f91ee19 016c0815b86d843a7220e81408b258e19f149a5625b018dc58ae74addff1756d 405c72eea14e978a85716d7b192d35e8934d9a9f7cc9fce378b64b7c81374fa1 b00df1ee14c0a0b77991b66193e717ffd45c2f90feda68dd63f97b51de22314b 0db6a6412b6ad406ed1b9698900804454c039eac13f414068bdad1ca0d978f3f 58e9373e7df81245fe977a107e36cc4b89a70746115d73f8c017c4071eb3597f feac653391ca81623285524ddc9f9ad22d3ae1e482f6884a7b35e6766dedd84f c36d9e7f96bedd3f9205e5b41e1567e662d47d39d1be0588b5079b6de95c6756 dd7da647298b59d4b9d2a831fab919eb3f40cba02cf43fa530f8e6af12475105 c9d8b8fea60d32784e0987a41b6d82c8851e8d4d5ca000b79eaf10ebd546de27 fd6dae5e8bbb9b08b0ce3c32c37d7c65cf6baf2427473b1293ca5f7e05c35cca caaff9fd1f12f5f195fbf60b505174a3bf50d6cddf4b83a199073edf81efadf1 28a08c3fe20d945f2c9329c6b06d7a6f30ad0245f48067143680a22d36b1b31f a5ad2a92da3a18f187f3e5ea4b1a18d1c55a596ced406de854cc992a7dfc1ab6 76e66ea2de98be920f560bffa97d48336b35d317ee751e2789cb0ce5b361bd1d 1e86d8a4f68aea6bfa56735aa292e1666c8319ea80beb15ec327838efae72f75 0568a518a53d2774c3bb729374a7a37081d73688fed58145fad1decaf2dee63d 35a3dea415535d5ac150ad4e0bee74202d07b70b355f187f45807a209a27aa34 7f44ed7f5107f2ff4f6cd61b6f68f1adfd584a4665e213d80a715be9b8d0b5b1 19743e63d3d024a4cf3f480559f1c4c654d6a5a27393cffe09b5f72538c86cab fbfc62c84bafda4c086ea50f976f3289c3883bdb02862be175b841e51ccb27d9 80901cb4632d44d63838d98d996c56ca03b866d73fb746c434ff7b1ee700f186 75a53dbaac21e32e13f474c0d58b8738423df402fa6ec309a32f00b6338dd41c adbc7946172637e6b422291a2f73535de8f8d83dbcecfaa6d2c33c91a381eb95 e0c195775aa478784aa1c5586dc8017e2fd92080087aaabc9c35ccceb4051f1a a49e4eb60829f87cbc085ca778912215bfed8906620105a2bc73a1b76c35b635 88103e0ae30d54a5ef5a1926dc34b8debf992010214c5bf75cce5ca5e5c29a3b cc8876bab00640bfd247105159082f6f188a958b509e2506b98ef82ae3c6c15d 70b9fd08b65ee535192c715348c635921057e511ce1ed07adf67fdf8fba66a30 7ecffe33bb633e797ec87d3a51c294997a5cf9841fb96dbe62a56adb38d08258 811893e83779f54b6994793d28c0ebc38967c0509435e4754cd2b22a240aa3f0 c39605d47aca6d2881e5565e95e9339887fe7549d8017f67b7424129127d285b f7dac7f3fa5ae9c265d103af17f6583ad27d43cd082a9c1f8a54c61c9ff326ac 1ab9f3e6879dfb50c368391cd8f048ecab700090efe143f08322ecebb117f246 b9e2581fa0839a4790cbb36ee403e9b32f3847c9c24de52b5abe104844bbadc8 e7c6b7d26299bf5daf4fe2a5fd3a7ca3ce3e1a8a508618bfdaeb1fddf54465e5 2494d03af028152f5bd11682aca5019d24a09e33933c7460a01605ddab23624d 242d4656b8c120a7cc21dfadd77d0c39b42c61ee2f8a63b5488d5a1e370dea67 8834a10b7d598814106193bcf7653618533c3a4108823069195003eb9e16958e 843f0d400611eb4737c72b335532011273b65d6f77b16573602351ab03cea806 c0fb792d4737eb4759a35b52ce9c0f8f0cba5977161a683538a8a67b728bda09 338d886bdcac618ada3c80d9b68673f852cf021959c063410c42e29a0b6e64e8 01e1e5ca65797ff35d774da0e6ce2f67e355540718388a2b060f367d0ae8df65 dd936a9704c249c36e1817c991229c28a74508c987035b9605f9f12f3ea6a3cc 97b9510e5c3da48cdc390fb60db351e9c9de0e738c5f2fbdfdc0320dceb6fea3 04a1e9eefc4d7233e068a3c0613d673d905d840dfef20799a4b5aabbfbfd19d1 588c85b333788661885aea1224500d2bbb145b6e1f2437df15f14c2209a1b3bf e79ad18795c132fae07ed0b04e03352992388eeb56db9a154cf7c943711fad8c 54fa1ef2ce432ba58dcc22ecbd8f7fa53322f8642f39a577b1216791e2c58c41 1381745167711c46946577053a9d1c018db0c2116fe7ac93f76fbcff82083402 bf4cdaec16312cf2a8d179bf89c22b4ebd6933fd1cf01a6a56b3b3e26ae8234a 2826d82c552d85081e5debeb46d04c46d193902174ca03882faaa55195935d3b abb4121b73c131270a8527282bf39e1c54baff1f68505bd14e29947b09709f4c 0897a05f6b8e2b8313e96c61bdd1eba2e2afa6d5aa56c3698d0246478eca1157 bad7de7038f9bde4fc157b7f39b99b610ea56ab41c681d7aea33ed2e2d8fd5d3 c43d88c70c45e74fa4e81478bfdb11f4f25286ae3b3bb187f4332eaf1a5e8162 ef950b616f02f7b796e60043fb3000d5e2ca410aa62499c640b284ea3d5da62b 6ebc3d97b470c5ec7cec9d0c500f72f576f2aa4af0732d1efd7ee09dc23b32a9 fa893a5923a805ef13000e7e9b842d8d84f221370a524304101d779ef948c704 b41ab2f6272a8c6066372b4823cc360eb68221b0ba4cad03760cf46add32f86b 003184364478a97d774a6038bee8c4d69f93460e3f4fe29554f2cdb1acb93e4b b201acb681ac77a2ee3900e21c72b3f1f5b05429960a1ea09e851783603e62fd 1ba9faa3145e0ad2bc5934fb5f267f1d7c56f22967fdecc951c607cd46a743aa 3677d5a657870cc3e55531d871d44e0b95e5366aee216a7aca533070ba3bc0e0 441054b00bbfdc3a2c0f0324538ff0b120bd7da58d5c1070b17470ef9c6a4ba4 575a260499e93cbe59b4b533aaa244f27764a6dadee637efac8739ed67814c5b 42d1c562f85fc1ffa0ff2e9f611de728b0aca6f127af6962e6b1b1f33a0fab82 a3ea87fe81e938d555571c3ccad80f6e6be36cc8112d2652937cf165d77467f4 83e3003f42d4b9765539ac7b561f0667c66776492957910080067ec08479cd2e 17eb9da84dea53bed04603d37492d1b3e44c35fc5bbe48c708ed7cf9eb9baa86 6dfa66b626e0fd1335881d6f233d0904066df18295ea7de26aebc63312123d3d 2107a21718034ad1b5ba3379948223de6ded9b43374d75ee6ab501abe6081a43 fe502d4a01ffab3f382d0a738ab1acb93e4bb206b30a80586ad1d202877e4165 e6c40ca0c20b25a80da181e3d70dd83d0b183050c0d30a4b13efcb30cc06a96a a100d4ca12b986a8fae39017a9060668959dba01ac49cbbaa7139117ba4e1027 60b7dfd846c7b7837c42243e4f1a5c1a7e71ea8982400fae03f68407f6f121f6 d4f064140554386e2613a7d45a7ef02b04e3d3bfb1fa1c79fa709c705edd8222 a1b3ed81db702f4159cfea77d63802d0e663f329503e13250224469725a7dc62 1ed349a4da64c83255635aa0f557d41c724608a6916610b722519d8d92d10dae 5f0e0b2d990a1bfa87b10c8196d9a6cf984c4260ef0021b51acc75160cdc2f05 141f23a5e28e4a8d8f9e25695c55a18a4b14ac2734e6994e2223533e14b7017a 245b9d1ea6ee054dff6467195563c23d3e42c4611a5a8c1c226d7b847aa8d2bb adcd77782e3bd0a54cdc44d9f90d7e8d2711bddf960262c41d221de8432557ae 1943712bd0ef5664b65bcb80aeb0642fc0a1490a24447f796acef01aba64aa1f 6f8e2aebe01512ed1a99ed3ff8a1c12a4deb605468dec9597de53fc2db93c69d 2556f8c90af5c9f7adaf0267286ba6a54f4ca49a7cf3c4572a84a668c1f7354c 75029cef0231e52e956e510d4664ecbf0e7fe782169d8b6924dc1f41a1519e3a cbf83bf282b8f53a1714b6893c828e99334c0d2bdabfb1b77393230eb3c955fa 61320fa34534e864346c58d69e4ba958df34e1e43aa5c6a6dc84c96b5a524d11 78477c59e72785ad47b8bc826b7d6d25fa5b7ff9193b301efbe175848122690a 1b500ee9aa3c04bcdec20f6dd0014ef78d9e5b2f73b55c681fc6077f040b47bf 7d21e9f7c6b9c2ba05187dce6f8cae23397d3e0c13c405f313b81a6863c94bca ffb97582bcc8d0ed3c0075aba48581a1ce45f2c5e1bca39068f42d9830f354b8 cba082eee885bee812ebcd6d9d6cc9011c3c22ae302ee48f59c957d754bd9ca0 7d7665f779a24958ce26ec0c8d3d1cabea82f8ea475a9a6e4838f205e9b91b8f 7bdfd8d57a4871f1ca5fb4c4af9339ffed87072e17a778b9fdd20b8388ec9017 80f5add09621656e77c911bf5a075b7d8d4c47f8e625edfed572edd40c418f4d 7073372b8d323cac6e63ff970ab05e8e4d43fffd20326b5cafbfc16e16d9ac6b c8ee3509c7f99fe40c2e481c389f36788d6ca9c105421194aa6120e0d1b6e619 bf9b4c07a93803549bfb7456cd0ca113d352716cbd729e9289c6dfa3f33f71f3 020a492d25e9c54ba3e24e3f08d3291a818c8ef5f08e352426b6b3e62637517a 4123ee32941a22810f0dec208a3c0c79c3ca2346c7a3e0a705d88c98398b78ab ca3a4e3a071fae349d391c2125f1b530693f4205ebb9de9a6b0168e9c2c66c18 4fe430f4dc9aa0c28471a30b92e1b371c6c833f38f3b39e0d072128f6703bc96 bbd210dd77f370c06d14871e465b0308131a7929aaceee9f8320b8a2dd2fb794 39fdbe00ac06dbf5e68b72db8b220daf48b8cca7bcbd096c43ebb2789cf3b8e0 bf88b630471f448609143ed529968fa6e04a1255bbcfefb5965ecf107277cef3 2456b94c41269b2f3ed08405d9d8932a1ab98745effb33fbaa3b7f2e31802763 8fcce5815938aef4d0035ed1fe33eb9a1bcf938b9914ac62c51d8efa03dce735 7e882e245b039315b4188d543151f76424eebb6475441595c564b4852cf5c768 6d8f851239ce61b0ee04e0b2b7e1b79fe1ce9a83dffd70e2d3d4eaf11b71c7da 113feadb515a92d1f2502f1821c7042ab5cabf8aaa33bd6bd00dda15b94fd2e0 25b366b8760efe625c1ed6f1c7f6cd3d06713f965954cc9fc34b9dd42e8f037c f09fcecf6feabc54e02bdb82e004b8ab2b5564a0b076e0aae6dd2ecc350e65bd 2e7424e1f5d5a8836d0ce0ca2423e9104178fc39fe99c8e0d8194b905db7329f 3b1de01488c23c2446a70ce52745d10c12df98b6aab2d6083965717640df9f9e 9a039331132f2c79af0d5d77b5644722474711819e4ff22e67de3ce6901d91fb 7e95c7d5084dc1cd50fe13b3f7126265f853b288b8ec6c5623ab943271311be9 4b64d4c57a0f0ac26902f79ef8e80c15b0174eadd1085856acaa68dd5f25e76c 25356069f7ba8d9eacc69203750e75caa1dd8521a02f43247bf2e8f6da167a40 0689bb19ee08e9705072e43598b113d374918968dfd0e55f97db893efab82fc8 6fb8b6451520e2fec7f0fe80a3470240735a3ff019fa67588be42c4b6717a9ca 4b2a27ea1cc09d1aa4079324fe1483e1a4a78c9d889d4fa5c757dad8d256b06a e1f8a2f8c1e7e780f679c986ed9261856f1da4f85631539c0fbe0f659179d09a 99dcdace657d079304ed7cb032312a80a00a76a94a05b9dfb7b4f39ef01a2e5d 99e1daec4ec473ad15a74d8357ae10310300988a5e40614f3710ef807dcdded2 46c1c88bf189fed77140b98e1ec11d0c73b0626ca9e2a8539fda702a5a6eaca3 bc159c0195a9bf46cfca4874ad66858452ddc3b7244a067ec3b7392caedf4932 399383c541e9dd86ddbba3b52aa2a1cfa0f70cda92c5bb2e3281d0c30b9bdb12 423d8116d1990cc51363ca6111816dbaf24d3b9917720acf5a344736e44fa728 d1a9b4c649eb95fde4f383bb13a4ade5e39022d7a9e496a6555a2e4465f94f9d 33c7a3b062e5224b9ff14bd5b545bcf27bd46b70bfe7063cc89656e82bf138b8 abc112bf12913ce74c35f52a26a3582f606efdddd35e29e5c55539b0e351093d ff5ccf0d8610a5ecc4891b90a72175c531b2b8eddfd555367d4e6cc3173b16f8 8cc3deed8de3b106f8cb57932ba4e9d19b2dcfd56ceb83de04c910e9d06e8b9f 43a994ed5c25e3096a19b342ba881b1401afed280fa272b3ed908e5741571768 a69086124e2b396d1d98d0342b2fc208799c12e97f2689a87f55d5c5486e883f 003a0f5b18f5f6235445ac946781a2bcd8a51deec68c479f2a636cf535547844 0c0e9d3eb7b7085b9dc469e4062b8919ce6a32a2664b7a27471ae40fc81853d9 a1859c2520a1b490140676e637a9c528fe2647c4ee55227c5df7f182233c98c9 5461d9645da73bb697674858d25029463118d027719be451b6a98333da170969 098fd5da7a40463e62afe191a71cbcb2f6d03320cc91d54076cbb1f42aa91de3 8691b80e0a46e9bbbfbcc6e5ea03a3027591099e7e6a822cf7c7cf6bd1ce5a16 eb2eda0c97c59aeaf45f66b5fff0030769bf407fa31ee956a8b92d2210c513e0 498965e54b6fb13a1788b6477833f0df7fd4cf0510c66617d08ef2cd4bf02f96 54d3eaa0a02eeaeb34878a7719bf23f93c2cae9e9e9ddae966e6507382b3484a b7479cfa5fc4f587093bd345791d7d613a539833a756d22cf9897012e5945768 454774b8672d369cce9bc4925d470dedcaa95cb47e579790efb072a53e808aee 1050fd48d2ad6cdfaa69e3b9c66ca8020e0c5b77314fc39f35ac7fb0b08f8e0e 0dd9236559592845f29136a6e3cec13e923d2541ec9e1a21b879a9da3166d4c8 cb4666e36b31749c0cfd3d12dcaf95496ca27e5f238ef3e5420f0c1e064bc51d 7204c8312cd5082c1bcf6f55bd1623835c6f3835a1ed33b3e4e3e99340871f7e fd09e8f46fee306cc4761fac8f0e4f5496e0d8d872a59855330942005fd31745 91d369fe8b680c41e803618775b23985e180337c2de0aa53be6cabd8054b7856 4272daf6f940d3ee876059baac47414bf0612bda06238ae55142ef75a8b2b998 319e0650e9d5721255af032940e6b215db4f2179589ac0ad5c7ad78a3e2668a1 999e32827d5a5c5311844802a81845f557d7dba120b4807ebbb9b43c6eec7772 4536503df1ce895455e4413d6216a2af113ba99aa0b1a1f43f1c45f57783e9b9 6ba13f2d5eb49b8a0b39cdf6af1f93d26c8d9284b3cadd5997c8f7ad533bfde7 f3b5909641fbf80e6298d0b69e7a2e3b327d67b6aa2ea940a9f2f04444f31ab9 80e50da7f2686d58f6e8d9bc1e548efcc4bce511f39081ce1f4b91743f68f268 edb7245cc5e0e481dd587726b4d863f04999f518fb8f4b7d6899788cb4c5db59 7d5e05338c2bf83ae22d10a5b89b8f7cefb8aa4e8fd6d46cb91c8590621da91f e8854d45beae680f9cad5d2be360fe45c780a32bb5fa52f600ea73fa003cd2bc f6352dee07f0ef9a789e6884b80952db5b2874b37b92c2d400fb742c5e3f1343 3b098ce0722cce43817ae08b559a8dd975d23989e4d2040ddfc77edeb261b797 4ace5deb6629fa9545c5b26c60f0e50f19e36ea19fc384c9bb49065e3b9a2a16 5fe1689d07eab5815fe4ba7a95f02c02b5df59ff2905e0675c1b4b29d5fc8554 1749e61a5c28caa055f5df40bbd9e76c44536f031f79987decc518680c22b9c0 7149cb5a9ccb14a51c8e751a850a530d31a7bd450195f17173997cd717e40072 6887ee983a8b55448c6161d31fd76a4b9e6ed778cc1dcbf0930ecb649fbec6f2 fc53ce292d227fffc0118b2094da147f1636d563bea55b64496e798918dab527 ad85ba38952baa18e4ee3ce4c68c8f133f6a70ba4e0cd1f44b44560a9e8d3914 69d9522d121e05ebda5e9e2098250eeb53b87491d3526a787c3df83228885b69 e5a2fd77105d2da132f5988f1f62a7463be5a129a86a06173567c3e2c30f6dd8 7d4afc3cb2e200da00572813e354ea3fe6c326902473e64397336072ba18928b c24d23f9626f07fa8b51d39deeccadf9023d02c433abbe8ad3213f09539f7bcb 09f7ff1b1d498a423ccd047870164646ccb1d0809e37976aa18bcf80dad17267 304b6fa642d017a67c385a18e36c8b1cf230c75ea05dce1166408a2b83d3bb82 2d1f52b862d79e86ab7929765d16233daaec882115f7b49d0f99f9958d76a7ea 97802ededa3c8e9bcbe4aac103c2d366b847389ed4624161e2a92f3635f5ea60 1d1c4f94cf60edeaaaf66d0a0fea964590b45d87b3919a26ec4c05655887c34a 901587cb0ee910da0982e4789455a709778f834307a2afcb2557aafc7c8d56ea 1f5f93ee4a8d1f278222206361ba553927044e0749d9623153033391be5d1ffd 29fa879f811dba8d1dfe4c4083c75f9fffb461ff221f12b3605ab38651d824b5 10386a8428611c90e21c9ba24003ba1974ee7c40ebd3455a4e4bf16dfb2c6c21 072e600cce42eb6745ea88e151c435efdbb05a020d35c60dab0155e121fa3e05 627cce55d7e773bebaba292192ac9b1550d2f983ec8f98c9c3ffbc77e3538067 aedc1f2f7d2683ab97e78ba537b8c0b669c826316612834ca3d929195ce03ba5 979159926e853b7674663f971c63408a23ea4f7e6ecefaad8202cee3f933ba67 99daa1689464611cb3d0d46ad369518f4b3e44de024bc07b11a4750db8223cf4 2209c9d376e2713386ffb43b2e064bdd14fb7e3a66c36ba2d0211b85290d22e4 39eb97bb7ffb3e26c5847822aae34d1f74bce557eec48dfa333059e2a72157c1 15b6237d2dff005dfd979101fc4cefb3291c7571014bad0191432defdb251d72 39252e4fda867bbcee59b50ef21ac1ac3861bc1d20776430816149463c69c55e 48ac964fc3b9f3a492d7d1a91478f2f1ebc6f44cd7020c75ef66c034398ae4a3 19b0e2a8640948f78b5c36d29386f7dd58d0ed0ab6864097f457f9907ea055ee f5427de5afc3eac4fd88721ddfedea4d3c38cec602ac4d191c289ff5cf173efb f1122af10eeef49bcc6e5fccac754cdaf43705551ca5c6508e71d16beb1d00f1 a21eb4323b3d9dd9df82b1a2ea40806ae5b1c55d5b9fe590dc930215005bcd17 76d29b839cbe656f8cf991cd5ef1d0a0d45b1e673a297e5ba0a3c4106364e657 7186ce4216422e3f96eccbcc5a695635c87bf879745de834246c48aee910c354 41ce3014725b65b4a8cee9835ea6a2ec0498caa557b7373f0131f3b427eb9b3d c9f01f36b28862757ec9f910521aab9a763b10baebda1af5861ed4bb3e2536ff caefdf4c4e938145450c4ce414cae249b216c897dcf6c4e015e2fe2f8069e251 62b26be72e5a436d5d1fa5899340aaa33cacbdc98ea2fb78b76aeedba47f74e1 e096d9b37409fbbeb6149550234660de2151ea09f89c02748606e76d3449e0fb 285862f564b9e36b19f8e224e261c7e9b3115853aaa1e9c78e95eee72d2c9dd9 9df60a8d9c850e37ced4aa5eca709670d25e52804abb9380dc31f3da3416ce07 df7de6de93270b60acd5ee5dbfd0d384360fab8e3d11712e2128ac2e05128741 5d45c6f0b639c780d863d06b131a1bf12b6ace1c218b803adfaedcc637abf169 3f0fd4bafe972372fddc26c0d987e7439731e783dcac273b653c7b9c6589af41 28dd50040d663902bc71ad6c54d4f289920df10a1f28c21fe94d60f57e886f13 a424d9ca564844930f6e95c3a198c7bf5fa99c13ed72eb5564dd22980123b19e 516c8f801f1865251e178aa7c36b4b1a921702544fe53079686b85438b0b5674 667c6011ce78d8aa82f0852247da5954e13520349e96ac4e891f564b56121f58 27346d02c4d7eb89629f1a4504b381be3279b72a7b8429f84458f4efcb07ac34 caa9bc8fa7501f84b91ec8f4f419e702c6e7c53a466f30797e90a8bb3f1adec7 7eec1c87afa6a318853e56d24404ba31c390c6992dc3b72cc6d3eea647b38cd9 4b08139047c8d93f8ac3b55dfaf068a5b34a6c2b1b4a62239b056f05bc7f4f43 9eb7546e405df77285e4a7fc869ded958a3feca7a93a7d6c5bc1efc4b17ffeb6 4ec44eb5ee801f77585ef5b21c0ad7366d47c97291df878fcddaeba775d42a7d 2146a6470432e82ef462e228775eeac0bcbaebcfc23131c1cf533f54bc410a0d 403b8ad33bad3096ffd96a7e7835a0e2c8e97a4f333ccd13c85b1302126edf91 35587a7c6ec1d47c61df0cb7f92f6983790c66cbf31f531976df8a94c29de404 0174bbc282ff23c01b36586ae6919fd6683562ee5a55c75284e31be7d3f940fe 1f7a3cf0978d8317f0d47311fcccd8ae77989e24c52356886ea98096519676d6 102ad37457ee63c41d83fdb9062cd2cb427c50fb0b4a2c9969ad2304997ae10a 309394e27b313f4dce223b8a820384ac22f6f37e3c407081eec7c8f3da91ec1d a94cfe3fbd67bec70c056ed656086ef46bca925356d8ef54a7e96a0ecd972d38 66561bbfa9cde9b6fc3dc29ecf43a5fb90289a1212cdd78ed78185ee061a36a4 3d16271fda11a955a8f7ba199675e87b585700e20117b72ff3dc6133773ff7a3 e62d8341befce9510ce28d02d8634aebe921c7da2c53976cd574a95f6a21c460 0cc715c24021c4dfe95081a1b0254196f2a117904d5869538f75f4b93984bfd6 d6a17c11ab90e27426b5479cd0784c1cac65801477f3c0a0a5f158460d28f5f1 9ad5db4b4a4303aa3fa3a24b0e01815a993c5f073171de6416cd6d6d094463af d71628bcfbaeb370c005c905103f53cffe8808491f6ade6ed1e07457d019531b 9728efbd50436c8dbcfd9686fbce5b06881063ea3b5d3bcbb6d8c2020433b507 1336ddacfd44f2a50e2a7c5731751f8314f9961e69890d3cfb5b1bcbed75cb7d c6007da5e6ff6ba1847106a290473ca38a01bb32bb2356b21446662f5202b184 01644ef70479be6945439faecfb1a391cf04266d1b59c962bd6cdda267152757 720bc8cb4cbab902fdb0eef3c6e844162bb994965bbc0243bf7bb905312a6e2e 7e8cc9325c59bef3f356f89f8e081e57358b3b2bec3d8039469059f8f195e854 8fd5b9e02e4c2ee2ff13997a9da35fe2e00c44034d41312d6e5778c56315eb79 4e526e3d399932ff7327641faddc7df14fb25387fb833512dd36ad686c64d317 7f13ffb1d4220f4eb48dfc6eb56e6a2e4a810839ba1ae5aec23d8b0c6f316a5a a002c2f68ecb8781547b56484060d6fec46a95416201d17de8287dfa4cf98142 8b2839f6cd53ca0c203ac58a949785aa615287af97bf41a917decc4d209e4086 bab6fe96e6236df754a1e1d039abab734c581216e1c4c8f3647d27db8402e5e6 fb0977442805eca556c78dcca30ce8d83b2e0b208242dfbc941f84c8714873a7 ffb9b499a10b88dfe64eeb44a8bf214d8f41ce4e66753fab6f26a6cb4e543f73 0e7d0d6b04f267205454e49beabcc46e91d7582c10038680002fab4c5ee19588 fbc1c3c221dbdc245e4b03c1dff814095cc5183a2c48757c3d36ba00ad384118 06fe22b8a81d430cbadccdde923c4f487694604cf4f3c12e9709b5302e9fee36 44e416b1d3022faa6104859336efeaa267b657995037a01ba5d5ce85cd7a31cd 19d97b0df0ef1e280fb3f19695f53dc64f6d04eab52c0ed2b118c96292cf41b0 41f166d98751a01f73038d621f201c8283e7f5483d30e9d5fc35664b5c8ca9d0 0c95f66bb2d88738cd1d7dd5e59db36b5fd64628491d88ea82a653d353fe1d03 2ed308d6a991ea4d416b53ba5e6c0fc958b728795e72f72f14031404d409e51f d131b36acd065ea9d5a52c4cc7ae708ec89be5c24a62a56310a28a6421270977 bbf6f706f13a8edcc03773dbb6013d13203a57e9108d9ba4c34f120cabf7c10d 45758cbe4d4532af7f7320f6c7345cc48b3a901cb309b90c9f2c0db879ba7a47 cd5ee73496fe8cba96beec93711948f50c585a80f6d656afe83efdd888441088 a975e1693aac07854b73e631f9f2fb14a59750f9164ba2a063d1531251e5230b 0aa028a37fba0c1525ab8d157da1936145ff11725185b2d273c30471957a5c8d 98947ce99c483e94d06a7c0c6b8fc11a41cb8e2daeef216c5aaf7375ac4be909 39c7edcb4e40e8daa852bb4dd8f52e89c203eea5a95361638aca766d004babc0 0452c89994a447cb157da54af2c6cb2d95d9965d96b579868435d0efcce4b615 932e430f762fd7eb02612740c023933c76169fbdfd4c4d2e8d0cce5ee711f358 2d5f10b64844e58e3bcb119c69c403e58aac838e7ae83e6c2fe7723b68daf3c8 b723b546581cd68c103ca50b0f38c48748f63221326fe435a291a6cd5ea7be5c c551ddd7924bb54caa3c388024612ed778b5b17bcc88445c2645687708e9cade 450db7845a5afebf5bfdc9070d569ccf393e72b59fd86d8cd2599d14264a8a15 be88a75c3c4691d6a691271ca659108195861d9ebd6b93e40efdb2377b4e9b4a f9327716ad1a8dd097f3d1cf0f1d7bdad672d17f54cd261b20043d51c7a647fc 375e79867d8d27bd58c0757304951088861ddad1d7f83e63f6199b37d51c4a95 7f70c2a3955fa3ed81f56759c9deba4bfc68d3513236b87c1beba5a72f6fa9b0 6c1e4421d3afd10f324a1015412893407afebd81914855890d0c8750e535a688 f8a4b57c0d3be92cd22a3d0e67e178df67123854e17f0699ad1245e68b130d47 7d716609daf5f5738706d46c3d7f77d82e8de2e6e5f84117270379a2248d2ff7 f19968676970d28fbedb5c0e1dccb2ac0bc79b717766515e683b5265fae46bf7 32554eb3cc2f2d830054afad24e13738c7ad99aaa7d9f4ac77c46227ca83959d e987303ee28295bd83c73c45f652b33579fb1d7dc4955ebd241986a2682c8a1a 258eca9040607ede3f9bd0e1de63fd25b61fe650e4fc65ece3180a0d27703fd6 506dd0e30e45ce5cd936ca3ede2e18a0f0a168d7977f1f078edf1ea3a573bc6d 4b4f68fe84124324cc273d175ed93adb8aea21f479bead4315d643c15a3d0c37 cd8096c818f60507474c1270b7af3f99a474d8185737db38c4a305bf58646701 cad5c07a9ddc70fcb2a32836654fb8ea0229d18fe5c7e40527ab1693cf2fdb80 b5830e5c4a3c9a933d8e1daaa8003ab57d9248fd711a871dbc240fc1989cdcbb 599dfc9069b7194c13cfe19b95b4b1a83d96e02748515f095b6753b4b9b378c4 0cc19800aaca0b5697020c7155bbf25779a0c8d9aedf5d8e199d83ec711fed5a 9bd28f05ced5250cfeeb4e273207928d8a534ae244e44b6411e0f98b35d5633a 1a68be128bd525b9ec148ee265561e9cea280910ddc7b884b36bd3044365d5be d26212f6c7e6c637b0d3966775d42690e011801141734fcebbb70f327fa39ee7 ed29781f810ebef3ac3de63695c399f5b44af1b199ba3df3a935f8cd1602fed5 dc7c8fb0cdb2abb1961128b27f20878beb3283a205f01c582ca1ae7d34a08abb fad1f796bb30c22f5895194a59679c2638ddf4be12e68d58521494a5e61f0110 4642dd1873e0717e95b24aa55d1fed801e234d4ede2c02bc36b4c1295b9edde2 d3cd59ddd3fb3215f12edbf42da6bc472892b8d98d048ab3dc904507a9ce2512 5cc1fc65778858cdf1049fc0ddcade04b8c544acb446c24c34ef28c43236a118 a1fbdb0dfe58a85277fc1484b86e3182025784685282293cd3133bd5b499093c 6dad02f17373a75d1aa2a11fec68c6dd82524083116511c15786afcbc16bfd2b 3e62d2d399dc967427f01a1c6fea5515a37089a9813715de9d620a7ba34d1a44 49d93e63e79b543f608f856f633b37077c75205b614c25e711ac261ac0fee1c8 a3d7c6258566250425eb29daa5440f0d25eec5936dce240cf8fe6212481f2201 260c3b32a3316d7fc9c07ce8394bf163d60087c5e744da4484628b7bd22f2c00 d52b8009654d9073fbc9d140ac4ef480bc1c5c1af28b404050efc20309fe0de7 0f452c527d15c6caeec65cc203d06900103ba01c2ff52a4df1b0b0d9217a4dbf 53afe037bd0337326c4bf7c216ea628cc8f5d5cc974cc37dfe2c392bfae32b37 acb015be72ebbc4725882b8d687b966ef3f6a4d1dc7e27354d30923c9215deb5 bf0a91f2818a8a078813bfba5f931c040a73193c6ff9cacb18cee3328ca9cd10 7b8ee9ccb50548eb8d2e7ffbadb8df683691c312a653446539b1e97ef9112172 73b0622c6875a928032c7507cf1d43cbc23c3d19fb536359f1c5e33edc858c3c 314b65fc81068ce899bdc2e8287592b0abbb4adeed784a0a56f85087e0e0ffab 16b7e9f5e50c227d3ceac9edcde99afdccbf1807c62d50a63a41587a2bd7f448 d13099caa585a97e8c8f4ef62b438506685fc81a669a05b74791e5fa0323d2c0 1936f055b216fa55744a7cd362dbe9326ad7413c5c1b338c3c6945e0d004518f eec0b0f95764c9ed75f673642fff25a283c5af6f36c9ca085ecec796bccf8303 f160a0e8d881fea029332cc42548e6a0e770b427b159316ab119f81176660b2d 5c9eaa3eea7fc934b94a9e59ed07d50def172dc323a2d7abd97b496bf0badd64 58492072a68ef87024c142d1d9460b324d2069c768a7a1b3c7df336e41ad8d80 2ce931cd5153a5527d58149e3cf0adb3804855fa168f86cca32b44b1f9ad09d3 f31d1e25a4fffe57d5acf0ef9286825b2d3740341ffef38f80b925d527da7e40 d91e6971678ec2715b57225a7516638013e75379d49f933b6bd169689383314e 323bfaf34842b1f89132205b53588a836cb0e7488a9b96c54bcf8e8388c53084 83abd4df5fc03663056f77a7db0730f4753414aa37ad7863a3446e6dc420f664 a3a38ee1c9547cb1326cdb7d3cd25345efdd1ca652c4521409801d66fbe2ff9e ff085bb86e85cdfa6c6b4df1b782771cd676dcd84b63e95896ca2f6d5e856be3 891553d319ffd9635fffb2363bc8e5847ef626bb4969212d0e5c8d4146bd2657 3df9381b4aca38b4114d2812a5c9514b1993e1d3cad328934118fe3a32da6a24 90f1be574b9319ce9a80ca842bb9fa9d3e9f25596f2c98ae0128223e4b2c5f88 b1b35da195db41c0b585c401fc0a5a38200755366d60e8ce8bd0d2953a1ecc2d fa5765a692f8f64ec0663a64342ecf439a37415b27f352176d756f4820e13f1a 88fa87aa7622a2230f53690677eba5898eeaf8b81e3a833b43218d2b208675a0 623e32028826369f476d74022096eaec39392ec86fed28fb2b3a5bc41f650c8d 4360c809c35a2d4884323b6f4c94481f31de59ec6d46369283ac59e44f381c42 398e3488d272ae9175f88af9b41aa85a90189962d686336a7afab302e08ffbe5 f02c40443aedbcace0eb5a700a2e164767abbc42ab71d5d591a61785b45fc41e 1240c0a6b7e3aae7f16a49485000c21732c468d99a8c8483527806596294f8b2 fd1eb84ea87b95ddd50137951b121b45663a3a6f64b5003e5fd772b2c123f137 a09d58c0fd08bc5959e2e107b266ee8b101f6b3438ce855ce7ca07abde2f3ba3 c67f691b52ce5835f3a9847b2aed763092fb6a68fc257a03a39008ced8cb5ec1 7f2dee193d7c37b8a7ff4a1856b9ccf6295fdb0e49ab1703121736e0bf9974c5 72c2bbfee542b5bb06db19a908f0d7da8e7538dfd9bfa601534e8d19550564b8 9577226b9adc86b62b40e7abfdc524fd058daf790f4a3b970ac46a072d7fe687 9f3da059d01be8df139694e84b91ce3dd3559eb6d0f9cb1eac132a7f27f31b2f d75a4b39a1f2872845e644ab8b1c6037a75ef22bde2d158f58f3c8d8bc725bb6 e0f30d18f233a3979bd47b5d63d6705f0c2353195c0b6639ddb8f3850ce58dbe 0476ec6acd78abe6738cfe3d0bf6826edb4bc3779a63738bdffbe4f99e0b73dd 754857e43fbbd3c4413ee2ffc4e46e37e4d6bfe157b36f230131e0578b1cd690 2e614a7b0d558efa54951c174535b34b608d4be88951c3af0f5f5c88da9657c2 d464a227bdf791481f1c2952db81cdfaa960116fbf987def1f2f8686e6a43ee8 a86869b4e7fb9bdac2786388c6f5627ed2733aec0fb48fd899fbe56f3361f7e1 be5f45b0080e73f44cb9ad862c824f1df82bf5d494a0291a4e71c1939aecf374 a121a4433d3052689979e9fe50c557ba9a3db45e7b4ae33a12d834acb827ecf3 32b43fd83c6ec483272ea34e4cd52e7ae2085eb18db710f2ab8a6ce4c2d68b9e 655a6b99db5a32b82eae8d85b02ec1a495a603bf8801b895a0397dafb174f376 50a3d44ea85ac1ccfc48bbff679e3102c97928b91fcd00fc2816df67470cf4df 348636703b8a29b9e4c05e56d8912481c0e575f11cfec4b169bdf8e8c9f1d48b 27a8169866ad26c0982f7701f67127fcd9a410d798fcdc0eaedbd039cb600e10 54671ef1edf1f4644564fec0cee933a0e5700ac3c9fbc2d8ecb7ed5f9d5a4031 6b38598f339ee98fcf9b7da7b30332965a823242d2124985449afa937a0e5780 e32436ff001af7a90d50c536412ccef4a671211cbd9922441861ab78b4ce9348 8ecda16d8c5b963174421285aef3dbe02de0e976c3b05c443463aedbd40b0bd5 b2d5f540d533a40f34e80faf772b45d88c3eb8c7b5803220e5c1e6de315a5623 efa2151a7a96f29fa4088ff41da3d145fe92bf288119e3caaf623127ef730e53 3326305c74760c2e6ca12a1e779359dddbd0c12916581a6d9194a81c0b1f97ab cc9179492914c4c72b5c4c66b96afd8e46636bbee39ead27af500757acbdfd4f 83e81c4b0bd7d257c5513472a1c16f87446584996d45c2fa2fbaa284260b8369 bd6ddddde8e2cf6fb6c1e7bb55451ad160d6c55fb8ae2a74ccc118c91e6a6d94 8a02832d0b3258cdd6635a9769c8cd2df11eaa0fe245a13d0714e49fccf11105 2400b858759d57607c2bee5d9a93f6a70528ce4c0c579ff581376df3bc77b789 f1aef897357bd560a84871a4b1c8dc863c9ddf6d94392fe76438d39a86491e0a 3005b0767a684097730da656bfff2ea8d7111d86b53f5461b922b64f9b8d4ff8 cd4880ea1b09de0a563a80f934eae8a3925d93d82d4413e9c6c5fb9c3a70940a 23e540c506a6d877a82a0ed00dccc005eaf2fe8f79491c25e67be1679c02eb43 13ddc3c0d17ca79f1a1ba0e7b8226054b6af969b240aa6f6333c420d2fe81650 a2bf2df3b34db70d0c1f260f7509f0209bf32660212a1242f0ec79a11021e4c2 eef05d3778e24ee8f485392b0d21acc7198044b3a065860cb5fa7341eea43bfb d6f2f7c3d1a5b80a68ea00fa36a083f1067d82554d90bb22a913ac8461437d8b 806aecfaed217b009f6952d2e40bdd9436eb7d17f2313414db9002ddc3db813a 70a4a3f93b8598473a8be2da8dd85e37ebb5aec075d6d20cd9faee02bb40d8bb ab5f9d3aeba261f412d70cfa6ad903e45ce12f69d72e12ee0181315a35472624 302708b260cdf1aa23a10cfd7a5b4937dd7074dfda3277d47567f04b0d11769e 2ebd32f03d5caf615b613f514097bf809c28adf5f600dd4308392699542c811c 5f956f201f65981773c97c92a49ec90f003c6de1284893b3768f4ae2137d43a6 fab2b7edc9db4a456134ecb4b50c97d6d0f088589fc56d2c81cb98284e943116 95b2722f66f77ce9d634c8f97fce66ad3544a5aeb6fd221c3f005eaa78b7edb8 54f4c4189b50cf999ded9881f2d8588622356d8b6d657b071f7f6d8aab9115b4 c49329010b6b7abfdd82181acace4c8fdbf4509b19a67af150c337591a807149 7638d4ecb010ff4a0238ef09c5b8a2076580ae7e9caf1e420823a1033fc885da 3756211f8b35230ec266cb554f01525b612ad1f1402ee93c7b921af19e8a4848 8537075014cc1c15d68fd108173dd5b0740154ed7f3c83a055aecbc66abdd17f 0cf613ceaa689093931cafc52a88f44fe21845e3b2cef719c97a76719f63ab17 f3976a8942f03b0f10dda0492e304afb687b042070e0fea2b6a24a192bf97671 511c6e6c793c7fd2e9d234540e4f75 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.1: CMSY10 1.0 %%CreationDate: 1991 Aug 15 07:20:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 3 /asteriskmath put readonly def /FontBBox{-29 -960 1116 775}readonly def /UniqueID 5000820 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352 05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23 b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145 d026957276530530a2fbefc6c8f67052788e6703bb5ee49533870bca1f113ad8 3750d597b842d8d96c423ba1273ddd32f3a54a912a443fcd44f7c3a6fe3956b0 aa1e784aaec6fce08dae0c76da9d0a3eba57b98a6233d9e9f0c3f00fcc6b2c6a 9ba23af389e6dfff4efec3de05d6276c6be417703ce508377f25960ef4ed83b4 9b01b873f3a639ce00f356229b6477a081933fef3bb80e2b9dffa7f75567b1fa 4d739b772f8d674e567534c6c5bbf1cf615372be20b18472f7aa58be8c216dbd df81cc0a86b6d8318ca68fe22c8af13b54d7576fe4ca5a7af9005ea5cc4edb79 c0ab668e4fec4b7f5a9eb5f0e4c088cd818ecc4feb4b40ec8bd2981bf2336074 b64c4301c39221774c4482ad2518015bc80e2e96dabb4bdccc93d26e72a97f5e 79d51c174c832a897c1ad9d74919a70b0b25bfe1665da5878e184b28e3c86633 c87189aaceb979787acbf9ea34e408b32fa17c2f121c66d8f059b3754bf80535 3e6554a6572aa2961eafd7c38a6642feba43eab11df631b92142dee526b2bdec d4d2a3725955d0c027abc5ac4bd9eb7833eda69cc148e76495f505263e02971f 8758e3e46e8412ea05c6abb470f14d8b71b7fe7d4f1a894ebf46f24e6da21b20 1c27b9ca87f29f3004f63bbc489d24f54892e762949c971a5a0e503fc40bda6c 04cb8a579633e8a0c0ccad4854da7d3a8132525ba70ed796a7b980fc54ab8c9b c9ecb67987403acc2973e7827c94966c0a624fcf91b5fc81c8cd7ed556b871db 6e47e38ae0c977b938a7c398a954e6731dc6d17328435645d130d5e3c351677a 010c14656c794f423c8c5e93e380effa8748e0f2091017de11ed63a49c7b506d 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR17 %!PS-AdobeFont-1.1: CMR17 1.0 %%CreationDate: 1991 Aug 20 16:38:24 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR17) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR17 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 46 /period put dup 48 /zero put dup 51 /three put dup 53 /five put dup 70 /F put dup 86 /V put dup 97 /a put dup 98 /b put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 121 /y put dup 124 /emdash put readonly def /FontBBox{-33 -250 945 749}readonly def /UniqueID 5000795 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486be356c29c3aec91ef17f5d31183b1e489f1fa 559a6693fbdd04d4f7e99886d8cb7cca13d4aa9ceb34a708af22e69ccef0e504 c3997075243585edf60b6447c8d01cffb04b6e3ddbaa7da5891286861322a795 e9d990fd56af2f5c2b35801a0b07874e4ac3170481d232e150443253c92a8b05 513d4a4154a99d91f629ccd30376500f5d16aaa9b203bad6350e4b19424c0e33 75f2949bc1927a6f6221252f8a96618e646aa1b0810753c98becc26b37837775 24bca72b818d314074c1c91f4e1f4148d3d703d12d179ee6970bd55d04aa9a9d 97f63f2c7dbd129ec2ed3ba5f8080270ea5854ea165dbcc061e2f47f1aaf0997 2ac9a689a2a9620b91b53f6b5092884372f5f7afca495f331138d85a97c5bb83 d8072dc88010fc89108b60bc06d4f93c722e8908d7ce3c1ea3c70e9e65edd769 7db17ce0e012ad37d4030f33d30a73fd655b7a2e572f3378ac933dd75082f2f1 68702be19bc60cef6bd5f0ada180d21408c04b7f7db9b6dbaefe09e809a80ddf a5366d10930d3e68ca53e4721ff525853f4c784f2c2c3aa0129a34d9df00debc ae4037e4c0fbdce3989f35964b4c07e7817b805bfe8c15f0c0ebf226cff606b6 2954f0f42dff8c214a6537ab666d25389c44db7b5866440bbfc137712bcdcc89 c68cd1adfd85648b1ed29bfb45a564b02172137feef782d604e0d7e1f1737c96 719cca9e4b9dfdc87e5999b886a15ac572183dfafd8c4176cd98430c204d4e7c e989e1dea814d3088a21d9ae6c5fe7ab3d399b2982fd605e65509a8ed6790c21 a08a23e53dbe70f676d0e7b2e8261b092dc3415ac785635d133d309ac670c0c5 5868fd863ce42542ff1e83e1fa20a7a0e5d680dec3a22700f7f48d2582b8411d 757d17ab7530ceec0c6727c6a80f2493196b0b36e727bd665abc1f3ccb08b089 d3093085bad16dc2dfb4cddcf498fa794d565e891389adbb2affcb97c15e3b55 857f3133b350949deb6841c4dfa43e8a955d117aba7bdadf0ab1bcc9156a058a 33e3eecc2a655a68787e49fd19a291bfc068a5ba421f531cb760fb0d0c679c10 04c846753e0952f6283aec5381fe4403732bdf6c04fffd6922d59cd617734dc6 f0bef7b0865cdf3dd90764a4ab6374744929ce83f195e48ad5b5a64187b813db c57644ea9d49fb8148fdd79fc3b9b98c61f43e38efa587362da2b96dae6740ea 14f9b14c609399afd109c946a25baa60735465e4c68f325be1c954a9a5b85c50 366af6ca7f093fe90bd3b50c3a38821e63096eb704caa2331695fa7e501fd005 a1b663523dce913b25fc1cad2d0b085cd21006d349a651d10ebcb35216402b0b fc18e690ba186fb9c83a32de75c4f559fcc77301c5708529afe4ace6f66c7835 7e695ac253113d05c240d89e47d4d1d0d7ffbdcae3bf16acbc7eea9fe9247653 819682fa0e069ca9340b569e895e55771854fedafe1967a0e33f0b32f9412109 2f5e8b82787b741164d57a3fc69b140900a664ce8670354d54336fd5ba5f2702 58732dcb3ea69e18dda3a953cf386f768d4d47dc239d84d085588d1253c9497f 27fa308a19dd35c5829976d6853660e28049d29e3a76ed6fb8010972cd8e2948 8291fca389f37bd642866f7994ac64a69f1b5e35ca51f69fdcb7897e86c0c4e3 ce9bd90145e3aa7e251a3aadecbd3024240192f60655b34855f9bacd22bd04d7 f654d581438f91e89ab36549ce40326b76fa350b7b61f97f4a6b5883a0656d76 c5b9b2647c2a11a1024c60727179af307f7f7e39c6b24490b4be2a06636b2266 92f3c0b92a08213bfb642324a3800be1cf403386f8581d875b84b79b04b9e893 53a24445350c45da154bdedb78a6ab721072ade8fa254af2a0a1e6d10a7e9a8d 8abe6a38481611d8b1465b2a3d3e5a1d71b65e961874946eae31065248bc0e52 1b600f42909ff295624426542e67fde38520fbd8f24f94d9aaf60e7ead116519 88f05d32de199e2ccf26814ac7821007c524c7ae9fa00eeed3b435efeb1665dd de223108e8fb4c6bb054a98bb76492df1d51857e7236ab565a5066deaa9acb43 8935d70be662aef953190bfab14a5322812b9ca564ae6d33c74735cd7da9a805 cafb3515aae1e76809d4ef6ae4e11a5d82fcde6fbb91e9cabeb73a9cbe285702 ac1990114befd76ee32a5f7653d9f6688eb748ce1adcae9774e5d1df2be2f503 4ee973c4e1896a1c59957d4cbf471c437043d2cf736293b260bba3cda83f9088 d46aa239c9ab1119f14457c51c7a47bc7246b67e0d61a3ba045ca7df0b53f990 afe304ca095dce66f5727eac7dddaf09efae08535f52ea57e189f08cf1be9400 77d54ddd2142733ddff9ef4cd7413a10a513a921a0513470645c47ccc814d763 7178bd0b14a28db9569a0af65a6fa1a291ff21c3012199504b9fd18bd60f455d a16f3ccf0c8e344dacd29f8dda7d1f341f5dd9cacccc385bb37402c9a4342ec5 cfe753b846d1f0fad7bf9b5e4f6b1267d031fea12e2a6ab5cddd5f779d25ec56 c216c2a8d1900aa7ce07ac61a2f1997227826af127fcb515af78aa652cd8d2fd fa839d2a68684c3fbc753586cf4c5ee4d1ff8aa1f7dc9ad47dd620f3992b569b 7aec67a3dba659ffff91f70b7b21d6f3ac50d2bf1207c0ce9ec97dcd001f31a8 1bdcf7eaf0992f9e46c5bb2f2d28391645a2258dc3726eca0554039a46f9aac3 d6ebd21ffc6b43b972ea670ab2014668ef35382fe6a4e6e3b5cd0803ab2cd87f 85f2dd19d212dd1d537e6a3c51849fc2c106b5474babb07f7b96f12334819b5e 6e1148e3640c39a95f17f12382ec9ee5e962021ad846ee52255db03378249281 4f2d6e6be6fb92fb9be947a0b7489def5d8e66ee1e6f6445d31664aab664d8c9 ebcc9970d59511bee76292490cd4277d1ee8918805bb3af0c8d5e7adbd4844b5 3cafd94cccf9e7c28cacf2706ecd10b540ea9b509eda71d465478a749bf58208 2b46d41afb5654e0ee50de632eb63519ef90a9e71248c6d3d87dc517d3547e7e 3c84f33fda0c98acafe7b36eb8a3606d2aa258dd7e3b1535692f344a24fc5e39 8698dbe4706f02dfa2aa7749aa9fafc3e0375a8532f503e779f9476d4a4cf4ce dfdbe4ab849fbeddc1891ac491cc299f0bba63216368b3328a050776cd19e3ee 338f6636ace304d9a53e2ee77bd1f7398698b648ef4b197a6dbde0eef6f7a076 8d8e58d6860c5d61597396c6c0243529bf614cb13d46e0bc08fe2b779801c7e2 493a1031a9e6fb06cb723937bd13894a7bcac9bcfd0971dad740f5c1325ce265 9a7de601bf125293880f500c8a0b214d2b9f7bb0cb809a9df94ecf85508d3bb8 0eb6b2b213f3c2e5d5480997314c44345694128cec2c2340ea95b4dbe75d42c9 57537446415efff63aae7b83cc12e54fbc3370e0e70b94cf40483f45a079005c 61a2dc9ac99b0391bac4fc48fa432e48efc9f7952e5995ea1092121f0542b1fb b7d83fae35077c15713e09024b5629e4158a6d6eb2a4cc00981816f658ead1c1 fd57af5918d0a1c01a7373ae37751e663efb834b62553f9a19cf629bbf7c8463 0ce341f1710b3d84dc3c76f325e7bbf065bb1ad593e2fa4f4b16828abc6ac32f 2794eae5f042f5e8c8efdf2ac734b9eff8f4af25f7debc872b059ed2fac4aa78 d6f25ce4a2e982046861bae8c423953960eee6a2e9db739a86b732ba7194571a aca08bcfb363ac3b7116564ee95e818db81a7cb6d76fc236cb67d7983b768bf6 9531dcc5d53d9833d5a2f1e020f4a61ded74605554c3908f3db97da00d1764a5 08db94e64366813c376b8bbccaba53a1a1bc4f1a935e18ff35c2f283688e7ffb ab61fcf4182dd981fe96082f59739ed2851debb36ff7b1e0a382f889dfad3e0a 441b8e6c1d27e0ba66c4c501d5d75b0f79afb3f0c04972c90d373c01a2a56ad8 6a55cbe5f73128727e8e337bbb139f7d3974300fe744ec32c28ee09119401554 80f9a420433e7b3c1dba60cc5293a9e96fe767ca0bc61c4f425fc8070fc08fa0 f5474a4ddb1eb77b43671b4b49c97c2c0da0fd8fb4a78d23bb9dfdf769132f8f 3a95718ca8f9a12d20f274e47b0fdf8f290acb75b687f788a557a3d058fe914f 88192948409c07292b36d587b54843a34a0c8eeff46b94746140b18567e7852f f9bc04d5518e6696a2b0e0283a101fed7d92dcd0675bf2dea1a132c867ba47ef 3ddd230caba6ba3be85fb583cdae16ce4f0f9878c32699304c5baadc45a72c14 feab80e988372449a42462d2e87f56764f074cefb23fc674a45fa7f305685793 3fee3422d398df857aac0ba19762b1ada0751727137481fc2a7638ecef4d1ad6 0489a37f0675360f98913ca4e64d150542aef526a6cf3b5b924515d3f7beb836 6e7f1515255a625a672908c60027d71c6534e473cb5b2a1db0c3ceb3b3f59fc3 b25e58c2e439dead4f0f7e00090672bc0c9eee31ee13e924cb95d9fc47e1152b 4f5f0ee741e8983e484030dc94838f717a39bc8b07f1775263e7f567ad3f8578 ddf70caf6e58ea24f2d9c401719f9603baae82e7226f4f8c6dcb6a8db0be08b3 9074173116f929602d274b7cb643c3cff22cee23fcebefb52e579b1bf5338a75 d47c7e35a780ca589755f5a50775992a47051eec2302d80618726acb49e9bc3a 35c8e1473c382aa1ac58dbeca93669490ddfa1fc2888287f688b0c88476b9a3a fc25127263649ae25b438f2c9e2c69ad718c773b4a0e733ad5451024eae2958f 64ec38f904d87c9e788e31764b67684426ec3743cb167c88c5be4b1d8e064103 eedaa24c7eb0d85bc81d4424570631d0198799fcb4a9d572709b33d8626f836d 49bafa2895b025202b1c858bc4cfd24d4ff4857b37c75850d775ce1a330cba55 ebb2a2a5c053b7a7ed6e175d29262c400db7eaa6252200d155b3fba8be6842d9 f66bbcd250d7d08b4a1179b4cda65da77a9db6fab8f2c9161cdedc233012dcde 2e90befc2b16aff483c58badc15d3ffc43cd24a5ae80edca814684de116b9eec 967654719122726368b51690d35df412d03d18703fa90fd5749dc263bc5267e9 93ac5c0ab6aef4a8745296f8ce85112f332b5b81d95206bfda6c5aeb56c02d46 ae474d0a9034c462b0786a9ac5168a3ea0f305edab37581335bc89a8c4246e40 90c4a727258b6354f1c23e955ed0d0cea6ccaf446c2c8ec1bcc381e25ff0216a eac8deefa543e0d6e40d4dad11ad2c8149b0aa5e8e0a8180ce7a771bbae0831b fe41c09153027d5354619686ce78e69a24a652b58497c9395aa68ad1449e96a1 e5f7b2329398fb8f7ca7102c0c1da5620d0c730809ff37b90d16dd21ec331fb5 b25ba042ae005b3815e150915ce542b3c35501e5e329b7170a6edd3100e69e40 02ec6db2857a9ed2d1dc3e990d63bd8f1fd1a09b4f41e205fea42ea0e631535c 7dfb12fc7b08c98f71252216de3fed8351e585213591311add7dd98793eb7c20 2f2f3b2361b39285aacc93ae912270101297c26c5fb2012ecd501094b7d2be59 d82bc118537686ae93e07cdfa7df6e0b16703fbea5288024f70352b91765bc32 74a8c0c0a1a3f745a2710ee2cdade3976a8075b8d869edcab6e0d636cf885c37 ff9edda578c5b36a858e790a05187ad7061d5704cc872f80d93c718f1d781ea6 1d36b736298d61b260188d38f0c5c179ade8e9b7e4e716081ec088f092fd54d9 dd3ccaad3ed7d855f5e9037da6c9156e96a64bef1add858b8fe0b215d904e080 3c6735788f219505b3fe48ae12f031c66dc41a419551763720d62814061fa623 dcee9611af0d595a1302af20c56ee00ffed4d59119111a1335f54b5b449a2969 3afc7cd5c78ab5536a1f767675fb4386311a8cd90c808b072d6f992050778143 2634a1eafafd9871fb6688e242e3d512d0f7f9e4abaee5fa2b24346492e80d2f a61f4b67d359744c1d3784d7477cf7b70eac845d86d7d700eb688c66d9e4b066 a8588305162059c627b9c628e0f06a293f4671c66467be066f8a405ee27b8db4 5aa0110febd07ccf0b351ebcae3b1d472a84ee9c0f95d2597efdbd33dfa16c60 4e5bc76f6c8f41e9fbbb9839accc891bbc63cebf92bfc17ad7973301a0724855 41085422601014e34d55f37774e6fddcd4e56230be0b620d1ac961f2ba9ddb21 5e165943e5a7c4a410ea89151ca460bc7848cb1c26c8811d02cf2beae1bd94b5 9fe22c3b96a30af2eb61de5cf158b9ac78557d69c12457254b399a3386f77b82 55248f426ada4886f478e457ad655c11afdcb960d5447a6a3a5e567c73c9761c b25c675f2d79dbb3594e9e24d6df1c79f275b9f94561ae97ed3d7af26b084888 a86173b7777983281765e31d20f3c2 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI8 %!PS-AdobeFont-1.1: CMTI8 1.0 %%CreationDate: 1991 Aug 18 21:07:42 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 67 /C put dup 71 /G put dup 84 /T put dup 85 /U put dup 97 /a put dup 98 /b put dup 99 /c put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 110 /n put dup 111 /o put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put readonly def /FontBBox{-35 -250 1190 750}readonly def /UniqueID 5000826 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd803271dc8bb1656323089e9e2bb50f2b95088 87d31dc36f6372968dbd0df8505aef5b22e57f2b9834fef2c2798f9d715aa323 3e09b183f8d92797bbd3a990980982018887612cdc5507a47581f07a1cf99a5c 587021d6b67b0524e780517e7a088a6388097ced01e5a59aa8779c6ad82af704 f6283c0a8b62d57cc5d24220e4d52a7c736389ff9d77df48c0de3d3db6482774 72a5e726bf4d83d29751b70eca9ee9d04a18fb7d011542a2b2737eff052a4eff 2800d8dbc1aeeb7273d9172927c2912b597c90faf4eb15f30201e026c5d06c94 122d69e4c81882d9f10b74f81d8a85a329a5946464c9765706a4e979e3b76913 83ea8ff66e4608e5c6fa0171e0c14bba3efb8fbcd0285e6ca408671bf068e1b9 f1c040e0417a92557f6b43a2b49c772c5d6e1e6fe0315378d71f1b762c987f29 6ada445624744ef29f727436345875bab3b78eff3a86027026983eae46ee5cb6 baefe7a95b00007094774550ad81f1b2c7e3c042a77548631e4baeacfb244b62 80922062c83c0f96d439448951a8f4e8bdf68d60245c60c8a8cf3e340644ff00 efbbcbd9abfe6018af21b3fe10b1381325d2599e22b2c5ad47bd6d5ecf1f55fc 7b382f2bf4889af9fb6beb58dc03087e9de3624e2e171c669acc08ff9a88f879 48749ad40d3c781c14e04ad93b147a89b1f29c82f756d9de7c26ded896aa4918 46e3376cb7cad2c19cd70be96eb4cc3509e812fe2aac63a59c3f5016fe6380ea fa2042e6b070a6a0e9ea6d4fdedbd9147fcc6eedee7b48bcfb29d09c214fd2d1 6297d9220ae3467eeecbaa9efd677e0964f8b737d0db9a5fafc7ecc4ff00bb8c c06359af9c0db731419186f985c3ab3f726a465d094c89610c370b44b90a79d1 8b5fe467abb0378d94f43fc3d0b8af11ca813a59928a0120740953d590c3e79e d45dab21e0f843e47b0ca89f63080fa90826c373fcc0bd30f8f0c143132e0e80 d7a3ff369d489250ad6c911c700c7d391b8e1766587ed1c60388be7171f3b3cb c86ab5136c308e628a19331e6f8b6e3a007a196ecb853f6bb035a430efa23160 146348776b9bdfa35cd6d916f153a9bbc3d83059d54e5ac166156dd8db374f59 67b596ba78232a7259547f3c81a3d8c5970dff8f11a4d3ab9de3850c0db2aec1 6ff9653edbd5982b71a0da0f0a0e0a9758dfd743473c7f95b41a2b4cf040fd0b 22db3c47096b02bcf15fdc43c753c7dd6c97faf5420a39c5906e9c46f8c6d255 07d75e2df2c8ab818caa612ab6acf4d38c2a82da5a31b789da56732f4034cef3 5450f95a85d4bec5d97da4aac3fd731b60c93ff92385eeb1d93ad2f3a6431263 0a39237ddc259d0f36a19877d270dfea0560aee6cfab56f5a4b6c8d47094f9bc e6a2f5529a5df7981f82efe5bb79e2bd1915ccb694b6d0b1cabbfffd2d4b4da6 cf9097e846c3381b33d83c75afa8a7d3fcd164776bd80aab61ee12187c883ab8 2d79adfa6b285659b2d0303a76d5b4aa2a7635d4e892dceec943323fd3f0b11b cbc7e6111be20a5a9c1c10d6cdf94c6f1baf1d706b4b0c2e3eda671bfc15d39a 0d0bc69e5a73328e9cd1e2dfd3fe6608b885573e1ac5a55c60ae5ee33e94201a 7e45d2c866b477baa2829819e54f987d0432372701402496ad8f0bcf7c29f0a0 316b20a5c8411363d30fe8f9c931b817ab403aae0a07421bd3d9142ce9ae7aaa 8839dcf5404107ac1b2e78d84cfafd359c1d279e237b8f12d1386eb719c4cc99 ddcc9a0ae01365adfe5158f4dad799123d6dd900ebc29d532839a4ab02a55e28 1e141f54cbc2deabf7096c5ac044317d674fcea28acbc7663c0b3a5faba60e8b fccfcb64d271e0a652c82ceeb62edbec781c1e59928a193ae2ee068c35ebe423 1bd17f65223e8810e47434768865389dff8b90a478705c3dd5d75257d4f9f46c e0ec76816db90043faaf998b0bc5ebc2acc56827c80eb901e45b913fe24b0b1c 51570959f83984e1f3b168639ba51af3de9d64bdae70f6b7ed4d008252f2ceff f4eab117e3ea4deee620a2972d5a3b8bd38110db4084136eac66f661f01d3cce fe7898b9b3e6cc5312e8fc15da6305fb49ee1493d02cc3937e5a5c2c51e9b354 9b8a59074337648af996f5e01917de2ef2863dbdeefdb05090cdabfaa60b5940 a5c3572ad427d4f55c408111aa2648a46f69ca28c2729142572339b0d22d68bf 8b3940fb6efd51603e0a752247fdf19153644d09c46a50baa00ac66e19d50bf3 0c8388b2b6c7df1d79b2ed66332895adcc188ed815b8e234968daea5946f0532 3c8b55ab8ffd76bc7802eb0e8e20b1b10aeb7db53c553a16472b75bdb5de9275 a3c56a8a0c2ad7e724e3fc5a53f6cdcb73fb2306fb2cae5003ae3657c2ed6f45 4b68f88517c1ba42b7021b604997bdd21137b2800cad839e53522dc1214e0e5c 2782fc788a7243b19012097c35ec1a6e22b6111a3c70c52bf921531700cff7ca 5eac2cda8ecf4db201a2a7c0bc2f6c19699cebce2336a200a11f4b5937a48a51 df23eacad087fcd75dc77d93528f7ed5d9d8835af5186a7c201ab5770f741bf2 36aee70adb4ce376d2a2e18bb92d3780e4a141ac933089e8bc7dcdc93f4538ae b185617148e2143ff82ee41ff0264cd0882ea4b793738ebb50fce525f2e2200b a46409acec9b8d3f5cc7a4c43852ea70d4b5fd025689536c0792d507d3d5d6b3 799e43be2cf6ffadd4a8e72581e8de7f373fb0e363b4d75081a9dded47f3eaa5 e5e1998a0ce85802e7f30be88180fc3f0378f92a1bf6448393e5d87592ba19f7 efe5b697a780f45deb3c64ae878096109d1046330061d3280182c4bd32a7d78e 9482d6f87fc454fcb30124234469660e1bae5f9fb1a55fa1b3023a0bd8f8a938 321247bac00a4260fb89d5eb128be2116c00cb78fd90ce9442af86ceefcde9a5 57240f8bf0d59d5e62a8d207c5a47ce999eff50933d619f5008a564b24cb1aab 208c8bb6e9bce1bc7ccbceb657976c90ff69a0dd67ca3b08cc25db508f3e4c48 3f6f0e0210a12264d7d6a8210356f463fd629ca31a7f240690d46870bd9ffeff 8c2a28a337539a9550645410f3cee9ecb0e1cc861b81114af474f7c2712bd25c 99e61419134ce8edf94c7b431b3f4c1d110bebf42711ea3d1ad35c79b4767fe1 4a511c02d1282e9ce8a3efac83147c886dfce76235f4f53246b9c41b53b1a1a6 2795ea30a0242fd1676ff1b3e68ac32a21f2c4c1e73a11c6f5a4f441af0f7dd2 cabe091f41893dc0db4941c913b595e1f7fdf6584f0486b455eedb2aafe329ea bfea94dc7368907e0a851dc2e1ae7fd81aaf50ddf127ccec778a54d3c6907b36 48570676833978d9f4dc717e324927613eb891e67358d5a8b8032ea0c0cce49d 825ed8efe72e3366616725b05f57482d8bbe88983c5fd52632ef69ea9ddbe9bf 001c8e8a22ea432ff67f7ffac6564777a97d41c7877aa0602263079ec7f39d62 c9173f415b0d96dd52720734d6a7c02b2424b8a84b0174313b1292c601cadc4d b7796d9f4fd4d1b2e345a5c6da71680e39d7cd54cf70686058bf261317b59d2f 624e139157f5a80e9c57f90ac4a71e9762377da934b4ee08deb5823723bb50a3 3a57cb67fa4a092d8a05f5d012d7e42f3055897966bc7cc22bdb9b1068a4c9d9 37d3e42f8b4e095aa0aed4cc4f21e353fb6ce9db000b120891c1bdddf512a576 e9d0668714bf68dcd09ff8b121b4bfcb116176853906fe545735cd0b502f702e d0f817dc02fead78e444dbd2e0c3841f275f70ab6c8a3913979d5f865587fd52 705a2099abda90888bbd93d25ca8b97ea7c5632a7f36fdae782d17029865a189 4ec78478575c8119f5fa7a99e348bd55d884f16965a217a1e7cf0f497fe4aa52 81b3e6d268a61867a55b6371e40157f7aa2950b70c125d32a77e4a5077389d02 5660040e6f0a70eea9735dc49e173950b82b71c672e9808bc08795bda8f46964 31264985f6a7e73d24900490449c6dc1a959c6a4e5ab1c646d9e188e1c0b09d8 df211150f92df2b102cc06af058724e96b938c0edac8e35d7efd903b824d77a6 74d00ed4de0caa37fc1344ff3282eb9b044a75ba027a2e7adcc8e1407020ef5d 083e846a6ea9edc6196906439c7d990d9f0e94a570149e2ea1179375369d9e63 3d965ce9cf3f476295d5d196054f6271ffd87b3eb95e0c802f8c216584644ad3 a00079973c9b5977dc5d746bd4e6a9d2368f4aa09f245c5ba57a56ea929f33ac e1c8cb42d9191ae90fefd8a649ef1754531ecd0c7516734b7b073a27b8c06ff7 3c629e9c851824d5f662140be4b73a63bbc18130a82cf56d65fdb8266d232d70 2263577d5a2aea5ac2e8e6660174c7654668e377997d2ce2b4dfadec75394a82 0c01ee12f8fc6ed4029e26e8fd3f8d264133507b0066933aa1aac9f4a6ea2ef8 5147dce71e601046988fe00250543eff658e8b8f8e4aa65d8fd9714f3dc89df5 23dd4209bbc52cd1ace68dd68ad00e289f92fcf433b1518da445b218d8137ee7 2c3beb06ecbb39649b052a146bb624a2640d55ad00b468980320676b70b93f5b d7e479c68d36fb0d449866bbd9a8c43be03bdcc430a6fa1b6d6a718113c727c4 d74ea1a9afada6726c07c2df53ed8e59dd87d1a552ce121d16ee160c1421c497 548afcdf3153b5ced9a8a643f336a0292e959158d6c03d25dff404642a553c3d 60f510ab46790451ccc3ab138d1bbfc2061659d50a182a4ed69c5dc9deac5e25 a4e62dfec6ded1af7a82cfcdaed5c6ce3268a567ea1ec85566fa13ab71b8daa4 77b49c3cc58c1cca255958ed6024b57ea80cc15e4b8472ac0b3e36bb3e0a0a24 b3413471e82e0db0a35a5629cc15f8f9b6f0f4ea43c27fbfdddfba16265ab936 0ff4044a451da1c3b1b0f4b52185eaa2fcbd578f32c44a34df93228c0f8e3196 b9c58ea397cd363c314845c02c33630ed2808a44a78f326b18208e9c222eaa0b a883332fe5a177999f64c911c28e24d26036e8511793011face35ca1ba6898c6 a98fc2d6048d0edab13b175b1c4bb8589a53e0022a6f3abe35d17b91d813ee79 f8aca521992cb90140e6247047f657bd14493f9ec04c0ce02269a04f5e73bba3 35e29ff2127bba9d879a9ac72e863b5931c651bc163288c29df1157892b6a966 cb70861db5e765cc59619dc6e6d68ed1caa8b36a2bda112a2b10911b2f8898a8 7c33324d3287d50931e411de53551d17186708f4e6ce8a0f501ebb41c6a46869 c888b7ec66dbf341f36f7169fa6bf5da54e77de0a770091c589770381d774581 3137cae28c46513af87a9e22de2b10eff8be4c983bab54f9dfd9cfd5af474cda 9baad100058ffb45a3a29b82c6e90540de760c58c882954765c780880a178607 b13f8cdf01d2b1b4abb10effa4ffe6d06a6bffb006e87b398b707262e4f4a5e5 0887fa1d8c610d20f05e96f8361142182222f91ac7bfafb5137ed05aab2c87d9 8a73fbd6399dcc822b6d74586f3314f6471d20c30dd5b227847e9c6ffbbf29b7 d483244f9be2cc992d853f049602694ebf72be3588129ccc939b908ea07fea83 7edc319b281bc4bdde1ebc9417f9eaece17cc5eba14f0b81f44bd02766d39cca 10d6abdbe3ec00b6cedd94ce7d5ecb88df41e1ecec0cabc07cd971e8a28931c9 32822ca1de6d09d1f4879a7446401d54df188e76e5b1b6584ad0e2019671f1f5 a7783513cdb356a67b711fe5087b736a537a03ba83e42570b5d4318988644296 924a7cb513a7eda5c540626bc5c69ad0270a4833e752c604815b258891d9ee95 1520fbb39697fbcddaf11f0284ad6f20216d084ed04eedaa9fa10ee9889b5619 c89f9cf472a8d5c439d521f8cbb022ef2b771d6d585a6be295bcfc5ce0a8dd22 72405961135ee0a3622936f472284b09a256c4612ac40ae88b30276623b55cae a4be00e79da2c4b731d06cf67e3a2064115fcc5eb5dd54595175e35153466ff1 7f7351537ef7a261595328898ac4ba8292602e13ed7f167bc5f7337f5f01b643 c4b3553be3b78d9727200220e6bba772db260ac9a71ec5e87a650687c00cb478 12e3876cf2487ae5f1632810d9da1648fc3a44cb4703281fca98b24e9de1c196 9b2f737ea865b656ed 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR8 %!PS-AdobeFont-1.1: CMR8 1.0 %%CreationDate: 1991 Aug 20 16:39:40 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 23 /ring put dup 34 /quotedblright put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 77 /M put dup 80 /P put dup 83 /S put dup 84 /T put dup 86 /V put dup 87 /W put dup 88 /X put dup 91 /bracketleft put dup 92 /quotedblleft put dup 93 /bracketright put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 121 /y put dup 122 /z put dup 124 /emdash put readonly def /FontBBox{-36 -250 1070 750}readonly def /UniqueID 5000791 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf 5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b edad3b72ad63c2918b6e5a2017457e0d4ebc204b094541f345ec367ae85ca9bd 24568a01d3b9f8095f7420e6c423c414b3dcce6da48dd1c89a56d078e0d0e2f2 62a13640a06d17e44ee3866c3471fb58fedf5a3b77294517651c16bdd7267d39 a54e7171752dbde63ac19bb4b3021ce95eb5fe67390b09ae4d9ed4d704a67443 f55dce17acd996c1f5e023c9e5a18cbeecc3097f23763acb86cdd7cd13381ae7 4e48495ec7fa520539d87f8a8dcb3c826275469b6800876a457e7d1e5be867c7 b1ccad69742a8c9b0ad943482bf2a4ad0aed40baeb69a0233bad36b4ca2d2da7 322956c70375d152653500b2f22d2ab6990cadde2da14b4917f7515e64bc3d96 bf775258fc7dae4e42a4c9b6da8eddec4a800c8aadc8d75e48cae52137e05c03 677f5d6a82fa46d9f2fc7f56d62e5c605a1b7898b8d1401c2cac1a0122a2c8a7 aae09607f2c5f29293a09b9959399283be89051452898238b777db9830ff4318 a298b221c4a820c700ca964fc99e6b1d9eb0bafc39be9aa9dffa2fa326b2a466 1e67261bb3dbc85844e76f9313ab533ee16bcb478166de5502b68e6ec1ea6110 f53206cf1cfea419571b0243244b32ea38b828a01e62b03bcf476a32c2341cec b8a0fa2a3f3f339315d5f3aa7704408f6617d026ffee4925aa48537a4b2e556d 225be09392546ad561cd46cf766f0ba14c6854c5af1a528c3842b0c5aeefefcf 19f19cbce5d967153c4f88e51c776cfbe10d39328466f7a3b83d85601ef4d1ce 0cc136610fa6a74d9676e4e99291d565cad27b9eb2337b0eba4148efd0eb2866 ebf0a4209ba135ad1376cf9cc2d4110f36121055caa3f2e2e7adac6cfb2c5bc8 e8a8873621c7bee3b00c7adfaf8e94e1468624317be96f22fe61a7673f40487e 014a5fea2a5fa98fe21fb8ede5aa41d4d62883837940447b8c6027cdeaa895aa 5a42480bcfa3b2a71cecf60d1f08c2439379f57fb023588b1769cad0e239562d 44390da90ea4fc3d3ff5061589530f2138eb9af326ec1c5dc1c3bbcf1b19ca03 ebc234ca995705636b5b529f97653078008d8438bff972f49b006aa95f716c7b 2edafb46bcdb44fc3701c44f98e7198b28d76a93a76a65e525690c0ec204400d 2a66daae116eb4f507fdc0f2d71dee50d95ff1292f99271ee079a2db2b3ce231 ed1b3f6bb451bb001698702b894cc7348312fc99b99b50eaebf3c2b3b1bd6531 c45f289c380f4540a70ae46e1c28de53f7be322d4a1720d5e0418e16530ecf87 f784e3bd47629c81838ed23566a485bc50fdae54f9744814d7ddf6541e8288da 7a53af34e168edb46ba3f0486967dd123121ba1cc420e22fad0e5a8b5a912bb2 5e4acfbcdee65b8bae57cf6a2011b60c4f4a18897005b924df80a9b72a784541 fe0d98f1f42f8f07016a2384f4880b075bd54fc8b4f0e2cc06b4c763a689a07b 14f7e8707ceb826b9e0d2d02d88559aff27f830c81efd6801a7f5f501bd03bcd b2cba5f1e4b4ffb223fbc550b75354a0b33bcd80f907137e53c0ce7c8af6aaa7 494f9507bde1849be586b42336963a5ecd650e776c8f33e8e7ba2bf9a9d248b4 d41fcbac7fc30c9ec3ce5f9b38ce71dcecb0729407953d7525289fc40566c2f7 8d369d1335fef7331e1e21d104e458dfce1331cb3c0e1f793cb0d0b5781e638a a3f47fe5868289a977557dbcd1bc254afaf0193eb9ee1272f3ed9fff2ef0f498 c40b4bfdb31fcadaa0ad4b3729d53a49bdd1b50e06f817911166f92ae26a5703 95f5a279349c98f8b3fb63d8b3a60b65aedbc053f3e13fba64a70e607c519387 26772482baecba437f37e3e45a8837edad34386adbd18b03592a5a5adc3f99c4 2b783e20be8e36f705f9214809ad3f0d93029616f04bd62cd38d138f70018f75 ba996809a0b22d54fc1e5d1e20db121ff2780428f285b48fe9d02a49c02f8978 f49cb85994e6951f473aadb64196326a993a9a8bbc0e3b26b8e6877f0c04ab37 6a335cc51aad5940a5f77972963bb40ff34d6e8ea5dff1437b276470cb88e1a8 2ee1c98a34843550499ee90a1219c629caa25302006efb6eb177ddd72bb5d2b4 982816a3e53be4b4040b32b9b33f953f6040ac4299f5166a6fdb988d4554e2c5 707e66285319394598a65a10ed329cc33f00b2b175256f669d7749ef00be027e f47196f91ed9e743a9b9b868668d8771add70385aa23bfc8ef752b0e5eec635a 8f277003ec59aedaa0a6df7c7c0885d3c7394b71223357a1f1c30530c931e6d6 ee30ba8edd19bd81f6d09b5202f6d5637966b221f682ffc61130a97e439bf542 9564f94643cbe26d66de999d9afd51e8ec7033d0f8885654bae014eb3a54f051 feba0d8d49cabbc32ad571b274e058a67d09730e10d832d31f40c0c89a723db8 5bd08e9313e3f53dd7c5cc71b8b733cbf941f5195433f9a7d4882c76b9178ef1 254acda692c872d0c92bc30eddbb5a3f6f711aed10195a5dd188154ecfbf7bef 343498590d1bf5adbafd29371ee27ed250a69f4918612f26f6ba46b19ac04f8a 77fce0888369fe8d3a73e95cef414e2a9525cc42a6d2de2cd90cbd49c30bf3f2 a02c8cd90ef3e28a43c2e625a0c8b5f56e82056d526ab1c9d1a35080868214c7 0aef3628957c53ea9bcd38e5d9c1c07d5e9cec58d309c2796f9cecfe62543f4e 830e6fefbc77810aa9f210e7fb9eaa14eddc7b398dcdc8be0305d7aecd06fb81 d9acce7399ceb36138d1daf0bc9914f828dc942cd16e3711f5d53da430ae411e 9235087a184608ed0fcec80ddf7384d966586a1cfbce22d3c70fa8efbd750b93 80b04c43d2bc871c81cdfee5c4e38be5200793b3ceefce6c984833d05e34a02e b58fa2f5cb5170a5b914fa3bd91a923eb59c766db1216a98d86d92cea2ba7ef7 07d0dc3b439978bc09c5d0c4ebe7280aa012035e9922f05330a665df7cbd9d31 de090f1e08c8eda24ba73fe0c9ae11dd88e46a5e1cdc964706fb1ca56d50352c 48a4bd461516717a665841888adb7d7f1d3b6ecea6c1ea1946a8bf5c557b2daa d8657144a988116335e4f055a4dce7b49d063958e32e2cf4c22c949421154d61 3c3f85ed6e77454ebcf54d9be8294e3689b923ba861b49d20c998ea51168fef7 67a9fa3a2251c7168a30817c722dbbcbf50427117eb5963850a91cb99077319b 97f550ef727dadc2605234e5253a9a7e732e923d2df945427a609b165760906d 64dbef6da7cd504709c3fad6f5c2ae1538b72d435a3057ae36ff105a3e959588 130ea7d65d11cb7c0450a5b9a455720ed888e52a47bafab84c3f9ec4ee5ce8f2 3ba96b58cc4e344838bdaee7af59b5622941cbb15a63935785c8aef06385b570 1df33e4aa8bbeeb6558b92c2b725a435d79de35cf9f3b6d75e9a8b5ad0493837 9cdd0abfcd90aedefc126689cf3f6033f22244d66dc9df08e2e906d274ea7585 c2e3bd65efbcde1b830a5e0f9f36741240d88e28ed46b568ec8d3c9124d4a90b c2911a2c693bbfd354d5922f722d7b57926c7b72cd771c47243eb723085b84d0 f40be52f0e39ae31b09115912d949a17c2c083a23d46469b57ff2f43b757aa8e dc956908f2a0b354ba5ed843fd95f31f938e9409da6931639bdc0fa2e9409db0 43db3383280ce901397e35a898922522589ee18a1d47c4a6f722ee64dbebac4d 16b53bfaf3a8744d260c5e8807dac44fb308aed351566692d5a8d772a2c41692 715d9b595aa0fbe341fa02522bdde7c4cab5ea808cdcca7c547d6b02ac0a7006 f8529ec92c7d0e73e34327448ee65f817db7c2e82ede22fa4d5613459c837d7a 3642697cb8515bf33cad671e47d3b709e6dca9db4062189ee4561ac491193dc2 d529d142918b57c96979048101bafb45dda16c06856e12cd846c1524e672603c 3c64feda9c8709c0fedbc2cc709d6db04ab539eceabcbee5d23c7a5e1cd4da33 316ec1f82e39b5b2da80bfcafe827fa7234fc8d1ffc7a0bb172756780ccfda6d 8712462e929c065f8ffd93bc30d949faace65f41e84f044b0b36b13897bec478 fd5ffbaa07d0bf6d4f201e37e7d87add42c8fedb27d91f5bdd39e40080ceabc7 5420878d010cf86685468e338c3645d6413ffb845505a2694fa7b571c9253207 85e5598d868475271da54890c622d27d4d37cde3b00a94c29d1125058a88c079 e573845851b3b7f03c9c055f07e78add280a011df36769327676eba2375c9e80 f237fb5499ab05ce3364e6d6f224f618fe93a1bc04a6f87379a962564278597b 8074fc02541115457cd09d79296a5524ad50941c8c9e5cdad5c5c1c2e3bc740c 261ab81f3510d829ac6c5d3ca4a59417431d4dcb481da94d72e06abf00599d6b 056b6d4d3404ad882d8377fa6213441c5a502e6e716ce9638879db145394fbf3 1f6dffa4828c2595f9ac3ea3bdc46673fcc22c478441fa308afc2bafc37f7c7e 66c7e470269df3ca0940f726e6e27f158727d95b7a4c5d207b63a82505ebcced 0e4b2121b24a90c2ea72f47d1825d10407b0751804d494227b12faa9b9136caa 417cf27a07cbbe74ed63a60fa2ab2d0271aedbba208c843e77ffc47c57166dab 543a015e2ae801e6623c7be24a75d294ae78ca00569e3605c888030ba7569c69 687c97d1c58bf2aef7b1fbb275b27199a422b269c561eac6b605ca3db79934d9 83c3ce47d66236ae27e7fa3600a455759fe4e1b2183ef429e43519fd76fa40db 885013b3c118c2b66107ed98aa084182dda53cb2345cd889479657a3a9223c36 9b6a7e3667e44ae54d0f6995fcf9f8780f5d5b78a87deeaef694a4b74a482b65 318b033a9da73fe3642d3613d3546f97a2eea5f4f803ec455e552503e4d7c681 dac98673197eaac14daf954bc6cf2999b240a4e4700c8963245fbb075170c1c3 d0fcb10170a19e0e9b930d846067e12dde6ec35264c686a6c710c9ccdb4a8fbd 97532024342f33d220983d37bc9c69a197d46ea67d1713bafe12a9492fc27b51 162dfc8c758d43fd2b153ac81d154d727685b0ab9b677d85ee128ec4325f21be c7db28f0cec925e3d49b59976cabff7b118a921b3e08c30e95ff0bb507be47df f6a6f6b3ac46db9f9ee73d38ecac8202138b08b146e96f99553cac328d6b9ada 66f03172d14bd51647c0ecc4ff00efed61a4bcf50d4169a89d9cdc9e1c23fcd3 3edcc54dfffb46b11028f499e2bdedf227b16367a6bbc198dfe25a72ac87077f 0a56b8755384f093dcdd912266e091fe815ee407d7845b237deac223760596a6 cba2df9626e0f42276ee5a6da49efbad6a7493af422f5dfdcab206cac4fab66c d972cf75c64ed2babca0ad1c07e9fdde2101caaffeeaaa518b4622641539cef7 f7f6161b2055398ebe7eed155ced1f6c4891d096e07ee6b174fe2401a0935344 d6c428e74508338fcaf0c86edef87f6513b72a0c6d6e7a3ff030d711bd29b7e9 7a35d779ef6b3129463c5c467fc47050776a344480fa995c863fb73cc2bea221 e2da4de9d4ced893cc8d6849bdf003dde3e493865e55653d1f897a104dc74fc7 54c722cd4c2dedcbb46443587bc2f7b15ff71f59adaa88d11b20dd77a232aae3 065cf8a938588f37c50ab9416eae4de0985f3fb661e9fa23769df4798165c33f 3a8b7e841d295dc3f776139b651278554ce1e8f67cf6ab565f3b72e2886a3c20 062af0c58111c8202c004b626bbb6890890e9f0560716e99df92f07c0f710a82 c04ba3b2b22d7de65cc9a4fe1108bbb61bee3b17bf528ff1f8593e37f4f8d6e5 f4833de2ff681328faafa6a9d19d7e6868c44cbd848fd1df0938b8eae47066be bc653584e5b16f28b1655b6cf229d387511f3e8d4a0aa2438b8c358c7e6082a2 260989a0d3242921636857e0fb359f4c7a927e85e58a978211fb49414585f72f 1af3d527f451419e6078d743a6b2e9f6a1644614679841c588650bb5bef0cafe ce639d18ee899d5a0920b55f428aff2f84eecf27cc9a3f1186574dbcc55a2171 e032927e9f0332bd44ee936a1560b55936e3497ed463e8c22efb6c606795e602 0c0cb21f39ac1937fa1c5df954de95ba48ba8f577d473c6fe3b041f38d88df9a c7cceec0f71930a73dc4f33ad23d9d29ccfd0414b52677dec8de4c502449a4cc 03dab219900eed6be739b38eeb88d68f445cfbc36dcb768353e38faeb2252311 b9c89ce7a2ad2e77b76522e3a569191ba592bcd8f9195f19f1a46df32d756dbf 156c7364791367f1aed0831caceb777453facef24f5bde305a5e877693d44781 325611c46be4f79dff5e68e4edb6abfb2855600d5d5da53ad3c0956c2a8b03d7 e29b5664c7af326b359c6b0ebff5bb874306df8283bd589aa7788819481ff3f7 844581f5b8fa490cd910345b4e77234e1793f1b1840f359f6f5594a17b6ebac8 f11379340f12651a5ec6815de384de3ef650ca03ce6cbe3469f1679b6c679021 1e691e5aa995f862bbfd78597d3b81e70dc54ee502358caa148c9001f61a83e2 41347d6d99c36b666d2229d3715d4ce316f707bbc373e2568b363a0a0d0e5c87 ca629e3086213afd67561848aa28e18a25a80be3f7830800aeea474e5ade2e0a 8ac236255bbff9f809b40831ae036bacb8efd0353babae1c8d514d42fe71f512 ac735f061c8ed84dfd9b8c7248dc80c7681802d5024dcf9d80ea162614450a12 5b9cc8eb4387206825cbc170f77be54759751dbb4f0a54319ca8a0ec8b013dcb b29b51222f88e6111947a65ba9f6425b3a8cd32cdb3b83071c7fc198b42a0fac 9c867b5088856b074f4d28af01bce608b7044055506aa6b689c7678c6780b0e2 a717d51fffd818dc8906502e1bfd634830b33a9fc78accf5d45aa7eee37a9fc8 ddf71ab8823c36b588e7f9d5d4e98847c67043fd7633d3397c09125b81d3e494 97595d323031d6366a38497acb0ecd0803ae4b426bf271dea54a85f0d44f5db4 a498013743bf0e8685263e7bb92801e0b509208837c1388658745c1f65dc8017 3da625e890941b6cc2af767c38de720030192187093304ecd5d41473029164ea 7c37e07907269104217230b66595bfc513e427600fa86a3b8403025809184f70 87f742cad55040e3ed6812e880f29f31d091535f8de81e1e0228ae36eafdd283 769f399d380f83a7f42998d6d12867a4ab1bb9327c2f568579d4ce6289bc3a87 a7ce8e9ec9ed13c43465fc21c504aac175e887c091dc49d7e3e63ec3dbde9ac0 7b736d46102714339c73df1a49ad1615e52ae60ab465bbcfde9eef1f4b054ded d7190581aaef130cde9c8102c607dbc8a20d7c66cdc0448c1c8726b369e82173 11e5877c064d1bcf03ef1290af1ac27eb84146566792cf8c7179f9695343f6aa c32b6be529d172362b6b98fe618281328be37992b8b22d3b58f646649ee6c286 8ed2356d6cf795607889cf1055858e654431adfaa8904ee765b374c90ce27a8d e1e645b0fdc2ab6f30f321938131af7288f473fa4b047e5d29c976223a045965 6ba12cc48896329ecc1782283679b62d2e6ede65f9a7ff9c1106f6cedbc2159c 6687712368c4b106661db3e501c38d7c0125c73f44c079fc253a095f67a189e1 dc495e8a2dd0e5c226440ff1b297207f4c83fc019a2ec72c48c6c5048a834834 b19773241e4795e8292a2774907a1ad196d1b2c599fac45754ad59fcfef32924 27b51fe2943f02e5864fa81e82c1c8023dbefa19f62ccdc99039efaf566521fb 2d6950a8c2094f5148223e42b014e69fba5a84469be3b34449b7f97e52ab4545 7099d1294c8655b1c99a2e995b572e146c3efd77cb7ab6612379d73e721862ee 772ddd359e6847f7c05263c1032d7aacd44f305e898ee456500852f206f9042a d99b52e012f0ade50f277743a049bfe92f181d835e32fd6771969f53912131c7 27083e628e5e009b61b81ee02a421c98e42631db1609b6a316a0a33814bc6897 5bacc4b39436cfa515164854f63784116203426635868e18ec0f7ea779a3c9af ac065b56ad7d544554a6206578e2fcac642c58367db4c923cc55f9db35209744 8fc47a4a3b82b51a8c3a648414db3947d722304a18121a9d42964827d63ba1d3 eca063f7ff4c0c9126a2573fbf82f97c29755abb9f0d345d4bd271aa4215077f 5bbe04b45b09fbf9061b7724331512e8ccb669cd3a591c7c72428310486d24a9 48ecf57c109302a7d9c6dffde6eb777130ac3fa5861f0c34534f68ceba6f05f8 ee73daba1bd1745b8771dbb906b8d96a5ad28420c266a39bba68795a07105c17 91f3e2691a80eb0c374ffe2a72988ce337cfe8bb819ce390ac1c82c036e3d53c addfbc81c15ba6a2075f677bab0204c7a55fde2eece156a5c5a8ab62126f8b86 61d8dbcff793273f1f5e982eab95de16f3c3c60ba2e0c22694dd47c8887dd487 a61710e19a9e098797f18f894e19e903a970521dd8c92c6037eb591fde637ccc c41cb15893488438a7d8948a422eeaf89a7517d1c5e2e4d810bfe60cb16f710a d8c5524d6980338b3bb68b5461410f9240741577571c2a9a68a89258e8e4c318 178171f8e22454daa7b507b1418fa48bf178a87b15d15157328f7776484bb78b 2866aa8aa6855a7702f2907d5116e15c9df9adfb9dcf09aecc5b9be079de0964 35f936e75c8b2e2ff26044548ab40703a04b038a58357b0f319a8533e36450da efa5837d45d6a8aebd661f177544957ae2e2067cbc14b5d4d38436615025d12b 06971edc9124f1b5e6f4a9f4cf1fbb30387d4449907324a265558f31879b62c8 2ffb468298b9d608dfb1c71f4ec9f4ad52ca38012d7d43fb94d152098aed99f2 f77d637d567b7c11f270a63b2c63c58f567b01b8c13ddccc8bb5d3c2166fa4ee 841b7108dd23e43ab2a3d9c66eb593f2fa99e7b5dcaf661cf2792000af57ea3b 915393299f9622258cd783e9627b86bddb46d6e8da3e849b7338b01f2249a674 4c7860d2a093f6ee547f606b349c8f94b818bab228f96e7969bc5138cdf43a94 05ad407f078c7d168c55f353b44a8bad886f4276284cee56a0f8a97e7c101f07 8a62a7385e136e1d5a5c56bc3e2e4d4d076886ade5cc28171f60a54838240ccf 89b5cd3b977c057dfce9a5720d7d41854c3bb5263bd548b75157f119104abe9b d9470b3acd9fe8eb5954646a96376023a10d2100ecf7d0c259a9c241e3e3eea5 8f66b97d9b19ae6d7ee11557a0a872828203861fffdb4f68a7310d576068645a 073abda44989f1cc2c26f0c3e2fcb995e56b73bb711d1c118d1129ba55bf2e40 5dd00c95b7a5f4555e5dae16303ccd5cf0cdee15c1e7a6476a2eadd1312ff685 09cd8d3b33133bd2dac5146fc831cca3d9ba6f8d7355f9a0d0a8a4a599a74699 90ef83ef92e2894e59301339f4bc5f7b7775ef3081a99bab8073136f08df4af4 97fbb8921c17cee39021ff6b40e600d00c4768dac219ddf8ead31c5855b41efd 5a97eaaaf4579449e487b5f1bbd276500e0c89ff31eb4e511b0953f94e1e11c8 8d4bc4bbb225f7009f80f9487e70ac3b035ecc12a8de5ca4b5aabcefda0f2f27 c3bd62e7c83724fd235116b52a07b0781add756d8d346b3ba09cba6896dfb704 0c31639986908bb9268a6e2668bd32c3be36a07a5b208c364ee9d5dde7122cad 8f550f28abbaf538aa409520ddc5cb4efa4c8beccebb2b6262b6dcff36b323d8 0708fc41063769159551251d10976f26ccbe29504dd8211e61fdd0b99ef8c883 a91f1eb044c3d3b3bd4bba20ca59a2b929e3e9e0c166d7731059f9edcd581a16 b4b995f33ac2a1df7ce3f13e7bb0f17b5153fd0cafe77a3be6a95eb295352227 7348435cbd38ea8eead694ee400a9372343d4e1e1088eb44fd6131e1fdda7f57 6af8e3cdd7405b05d2090033d2497905a5354765f71e7a74c0348195ee682e06 bcb26402dd20d8cb05d5c25147e7f70b6b7071e4f5341c57a0742e24678121b6 311ac71a3414bdeb920af8a103a396b570916c72e9d7bdfc4ed4baeda92060e6 cb677ccd77ad4c2cf7764702ab0455d4c11c49fc733777c80598612e9ac10c87 b9752aeb7abe970272bd48b8fecc2fba574c1006a39c362ed133b331b7098226 9fffa96e8ee51efd156ddbbc2de4032b269672423c799e8159a8b889ecb40667 065ae146d38b9eb6fa9c839f5ddd0afc8312732cb51459682893985421409239 1ca9f0ef3fcf91f2b8fc8dda515185e261b7359515e9a1d49998dba746868832 44e1e0349a63c51f152c5bc6944953c4c356215d2ae3a0da01128df2b3ad973f 74d8d5ff955a6b69dd6158cfa491b2c060feaae786a48185e17665b5ad8d6115 006c0555421a4dcf542cfca7642cd9cf23e52a3753757464538fff32d728d1a2 51602b4b58fbb34a088ae53457ece6acbb5833b8793b81569fef62359d7a96d7 e8344d218440e87ecd8aebc6fd6aa97d56abd35de3a4e1e102da0fbc63ed332a 5d9b5fd324f84eab4eaf07b9ef8b17eb20648b5f3d3728f0601877f7f4ec3974 d758916ef8e2f80c9ae5a346ff4a9814f8ae5f95e7f001475ea36e2b2b2b757c 87ad847d59197aea000d20b2c76c439fa78dcf4e79d4f52a0eb4e293207f6f5a 94cffc623891e06ac55adf587bb5752763cdbbdfd84fdd172027e4f24b146eba ef4b50b09906374e2323219f267f1c9847852ef9edf92ba159e17cea8d1b2caf 6b47007bf32d33c7b0579bf6f63c6fe4a35fda509b5eb603fc44b81ad325bb5f e3f1ceec33fe9024e40bf9fa45ebcaab96d2ec7a9b82a8eb841af2d3f75a89ac 35e6b4ba3ed04e7ed94e92eb1f63b4c76e1aa9bb163b22a3b9471a0603518429 c16ce1701909e28450d4cdbc90a7cb4cb736de6cbf8f6f03df5a3f0c6ae86ffa c06baf370a49dddf582d03df2f33af699cf08db10f525f24bd00c3f4e95a6485 a0bb6625c6356684d5cf9bbdefb2aab39cee17bd49d5bdb40cb3cb6f5eca0ef5 d57fd5723ad1eb293700e5b4a36c45d5db6ec56a4dce36ac81f73c11d7e24f6c 040589d1a1d1acb67929992ac6e394b4ef5132b51e6c172a15e366e0cda68ed5 cefb06f150f439dca5a29f15b63a61b33086e5b78c93125d47699bc86477072d 49e09b4313514da04ff9ffc967728db947bffb00bd6df797152b194c94993c68 ed94d5758c5394539d8b504e220de66c75f92602ddf8d4d5e737bd01f0c56fa9 ad6063c9b0af4f26c02cd2d20a9c19331a29c0fcd5254042433e33c87672e843 23a4a81259723e75c7bbfd2697502c648ba03aaadd09f5183c0c02cf0ffc54b6 f54ed28820d0851a5383551b46c52b52b0ceb1a9afa9affbfaad707747c9a0e7 ed68e669f4cb72eaa804196c15f473459bc1d175354a5ad3d9bcc414a14ba777 9ac6bbdd92217f828eaac44c48d0ddcdf04644164bb3b8bb167d74c788839b09 58343c39d59f7de975d2fb52acaad0774b61dc9f6cd10fe83caa063481115109 1458a2b5666537b2b7bb639177002609d7dc351ddbb4333ed535878aae3bcdc0 07fe0c240028c03856be76eec3c44154b39564802c58f35e0ac6571c3b62f499 809de81a75276cf63bc0bdf3b9e43ba3c38afb09941288f0d2373f06335ce321 25478eefed8bfdd3d1ef0528d0958795853a1b7ec34afd1a45c2831d01a29265 d59b94214a268a3ea62dc141696a01bd4357b7bd9704f524fbb5c4dc6fd0c948 af1ab8f79cacd0cd39ae107688d2f17c06e03bcc5bf0e4fa16401baae32479a7 2ef9c6045da95eab165164c53f5f44058c6a7dcd8ff3f3187691af930534c6c2 7e5c2184bb08452fb8800d4472ed85a979546ac75a5b12cdc7836f9b3f2a2a24 26b0d1c66816564ab1358a6fe114dc544ccc7ec5c3afdf8c7174f9675b821427 6bf15b68747a57f35e1bc6869dac28293f1e47b2ca3dac67dcae08f0a3bfc8c3 11eef3be480a623d676c31f51d80ead727f4fb2d5dd430d81b3eebcdbd8b276e 4024597ca4176bd34212dc336d55e00207f90e116f9697902e95d4731a6c294a 79040d6fd165008b1b96d81be1810a8c513e388833d97be0ff9fd507f7e46138 321db194570bf5781a66164789a5d76fcbc486569ea285796ef9308bbcfe5f8f ef74b681db9bc3afdac6696b2d107016c5498b3a5a11c7dc7767021e0b2535bd fd5ea383b0fd8a70fe9f6d18cfbbaefd40ced5eeb9a2f2c23f1a6b3d00b99242 94460551625062d790c9b16e2c20b82aaefbc9072dd18bc39079cdf5bd0ba5de 847a76147125870d46b28c7ccca3615ea9acd4b6aea319b8c5783fe9c613b90b 67eb628502ccd595ea75ce160604917d8e62fc00753d99fa9abcc55f0ebe555e f059452c9a4de1c1449d274fd94c1c46ff96e902c3ba78a5e517e86d7897caef 27ccf6914856b29881cef9202325b5218d0aa3fd210ac31490ee0d180f8e4626 c96d9038d6596d7142ee3b1f24965a402a74c363da9d51e50522f2192573cf76 3f381c76cb841d3a637e4381d1b4dd6820962f9f3e5a781ff84f85a160406289 67b7958a64e887352f4c91f8160eee7a31881ed93b5c37b049673da61e1d53d1 a64991c3628e94020e7653cf3a2a94d8c38301f7a007177baea97227c9de00d2 42717bfe066adefba7cf939252ce015e964ee6fda98308de458e20a47459d94b e0b11cf3d93d3eb894bbcf18a0018eef1e413f6d112880103627f4212bcc9f51 494a6856e895428e37ab9713b63a10ad714248a29c75697ab4d0ca0f9068efad 422f0ccfd3b55266b9a7d3f4adb31c434e96dcf382b3539d450a5f555e1bf96f 745f3d977e42ba167560504bf7701fb32d61f1b2b42009ca785a9e193532c8e0 080cfe9bada59f0b6b7ba77b70c14485443ac37c33e41013585d997cca8d6aab 3564b4cbe46c7978d14f89b8a8a05ee5a7996ea1f029dc2cc8a0b7bea241f22e 5f474bc52bdb26b0b587cef852c4bf55d711f1b5ebf5617c876096d829045ec3 20755128d4bdb67aad5c3cfda53c12bc6d1c2eb0673232bbefaa351b21708408 9c8531b0793ec0c071c8d3738efb219a55eee5d77c4089ce45dcf2a3c455788d 48f6bf637fcbf4116393d817999870f094a84eae86071b8fe13a529308e740b7 eb4cae3d6ba15d393e5f2c5290659c4d18d4da6c1e1b0c5f5c7b923324642b55 1f7c6b0742a3a97a4e2cc1028f93455813353f294358972110682a5e62800428 2061006fc089740cf018d2f4e103c7ca4e33f53c3d7576d6ee1b4f32009d192b d3109e3d6a58d6c07435c105969bd85807a46dbb547fcc60cc93c197f4dbca90 8b8334c8e0cc1fba5c1e278cb428fe472b2e7a7bb27f6cebcfab0e757301cb9c ec3af7a30ab32bc971e4b9e2d471643dcc4c9948953758701f28a1ecb7e8353e d945f54624d5082a4e0e1846a445e25114349bc2c2704a2bd47332fc58110d98 15b5d9a510b6f710488ba44dbfdf9064ab3df61ca3f6afafa0e8f37a3128ff5e f254cb3399bc61b7831f78eb313a5defbe02d7b658f05991e57e3c56a4b5fecf ce3784e075ff013d398597cfafab0d884a66169df2b08433b6e515586fc59355 fab839ee47b4a496c4aafc4274170ff3f861835dc98e4cb22afa405d5220a534 b865a7a61e5d916988bcc1f5f48cc72716a0d62fc4a6837423da24e4b41bdb66 bee7827e5170faa7687f487e92fe5c184079c97b2171c69e78d5c5fc54b8f4d7 fd47bbb77e7b6d9aa555117e536591ee8d1dfd884db62b629be913bcd250c714 2d60c80a20ad9e6a6e20df69ca76ec9370abd9822f63302e9a9ba61e7e0e5950 6744df796f10dab8da107de0dc01c45692d54ca5868510d69f9ddf9db2c360a7 9ba9b3351e5ef0ecff1eff99304f2f7b8e1de2f214cbe01436df5bc114cccf68 b5bcb6579120b5faee59f55af05cd4115ec76cd8318c923c65ca93c0bd77c698 f33bde9704ee3014e6f0a4ffa4600bad2699ddb96ef4558e350bce722aaed441 98925a301e49d7a06bff668c709f5099f8885b283a70f0f2567ec42939a813fc 27bfadb5ee0c6655d7f88000a416ff815e20e2e465aecb5d6e83600bdcecc037 63092e1813f8cf5d9442b020ee96901da2317ab57f34c1e301527a36141d54b6 92483c949b189eb3b3f0bad4b2093284941394e64e67a95a30097450ce183f90 185906b4404661f1c30afdbfe95c4c1417297b459812e11604a85f54a09f9014 e6c6dc74b05bb7fa60cc18b1bd4f48f228af615c1e96a1dfe0d4988efc11e884 9b209798f766c2ab3db3b20e5d 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 39158280 55380996 1000 600 600 (vflib35.dvi) @start /Fa 140[ 31 4[ 41 110[{ } 2 58.1154 /CMMI7 rf /Fb 152[ 40 41 2[ 36 28[ 53 10[ 23 23 58[{ } 6 83.022 /CMMI10 rf /Fc 137[ 54 5[ 60 6[ 28 5[ 52 60 56 83[ 63 13[{ } 7 119.552 /CMSS12 rf /Fd 133[ 44 44 44 1[ 44 1[ 44 44 44 1[ 44 44 44 44 44 2[ 44 1[ 44 44 44 44 44 44 44 97[{ } 20 83.022 /CMITT10 rf /Fe 130[ 39 1[ 39 39 39 39 39 39 39 39 39 39 1[ 39 39 39 39 39 39 1[ 39 39 39 39 39 39 39 39 39 1[ 39 4[ 39 39 39 1[ 39 39 39 39 39 1[ 39 39 1[ 39 1[ 39 1[ 39 39 39 39 39 39 39 39 39 5[ 39 2[ 39 1[ 39 1[ 39 39 39 39 39 39 39 39 39 1[ 39 39 39 3[ 39 1[ 39 34[{ } 65 74.7198 /CMTT9 rf /Ff 137[ 45 5[ 51 3[ 23 2[ 23 5[ 44 51 48 10[ 67 15[ 56 56[ 53 13[{ } 10 90.9091 /CMSSBX10 rf /Fg 133[ 46 55 1[ 76 55 58 41 41 43 1[ 58 52 58 87 29 2[ 29 58 52 32 48 58 46 1[ 51 12[ 73 58 2[ 71 5[ 54 40 2[ 66 1[ 80 2[ 79 10[ 52 52 52 52 52 52 2[ 29 35 45[{ } 37 90.9091 /CMBX10 rf /Fh 147[ 17 2[ 17 6[ 36 11[ 47 15[ 40 70[{ } 5 66.4176 /CMSS8 rf /Fi 190[ 49 13[ 33 33 33 49[{ } 4 58.1154 /CMR7 rf /Fj 129[ 44 3[ 44 44 44 44 44 44 44 44 44 1[ 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 1[ 44 4[ 44 1[ 44 1[ 44 44 44 44 44 1[ 44 44 44 44 44 44 1[ 44 44 44 44 44 44 44 44 44 3[ 44 1[ 44 44 1[ 44 44 44 44 44 44 44 44 44 44 44 44 44 1[ 44 44 44 2[ 44 44 1[ 44 34[{ } 71 83.022 /CMTT10 rf /Fk 134[ 38 38 57 38 1[ 30 32 28 1[ 43 42 1[ 66 20 41 1[ 20 43 42 25 37 43 37 43 40 10[ 55 1[ 57 7[ 45 4[ 55 47 14[ 42 4[ 42 42 2[ 23 32[ 45 13[{ } 31 83.022 /CMSS10 rf /Fl 252[ 32 3[{ } 1 49.8132 /CMSY6 rf /Fm 134[ 62 1[ 85 1[ 65 46 46 46 1[ 65 59 65 98 33 62 1[ 33 65 59 1[ 52 65 52 65 59 4[ 59 7[ 85 65 2[ 80 6[ 42 2[ 76 1[ 89 85 83 88 9[ 59 59 59 59 59 59 59 2[ 33 11[ 59 34[{ } 39 119.552 /CMR12 rf /Fn 190[ 43 65[{ } 1 49.8132 /CMTI7 rf /Fo 133[ 31 37 35 51 35 41 25 31 32 1[ 39 39 43 63 20 2[ 24 39 35 24 35 39 35 35 39 8[ 57 1[ 57 1[ 55 43 2[ 52 3[ 48 59 40 30 3[ 52 58 55 1[ 57 18[ 24 27 24 2[ 31 31 27[ 43 12[{ } 42 74.7198 /CMTI9 rf /Fp 137[ 35 5[ 40 3[ 18 2[ 18 5[ 34 40 37 10[ 51 15[ 44 56[ 41 13[{ } 10 74.7198 /CMSSI9 rf /Fq 134[ 41 3[ 43 30 30 30 1[ 43 38 43 64 21 2[ 21 43 38 23 34 43 34 1[ 38 8[ 58 3[ 55 14[ 52 22[ 21 26 21 44[{ } 24 74.7198 /CMR9 rf /Fr 134[ 47 1[ 64 2[ 34 35 36 2[ 44 9[ 41 49 39 49 43 21[ 69 9[ 67 6[ 25 58[{ } 14 74.7198 /CMBX9 rf /Fs 133[ 34 40 39 55 38 45 28 34 35 1[ 42 42 47 68 21 38 1[ 25 42 38 25 38 42 38 38 42 8[ 62 1[ 62 62 59 47 61 1[ 56 1[ 62 2[ 64 44 32 62 64 54 56 3[ 62 7[ 42 42 42 1[ 42 1[ 42 42 42 42 1[ 25 30 25 30[ 49 13[{ } 52 83.022 /CMTI10 rf /Ft 136[ 66 1[ 51 35 36 36 2[ 45 3[ 48 1[ 25 1[ 45 5[ 45 21[ 71 2[ 68 72[{ } 12 90.9091 /CMR10 rf /Fu 252[ 60 3[{ } 1 119.552 /CMSY10 rf /Fv 131[ 158 2[ 83 3[ 88 61 62 61 1[ 88 79 88 133 43 2[ 43 88 79 47 70 2[ 88 79 10[ 119 15[ 104 16[ 79 1[ 79 2[ 79 1[ 43 46[{ } 24 172.188 /CMR17 rf /Fw 131[ 83 1[ 37 44 44 60 44 46 32 33 33 44 46 42 46 69 23 44 25 23 46 42 25 37 46 37 46 42 3[ 23 1[ 23 2[ 62 85 62 62 60 46 61 1[ 57 65 62 76 52 65 43 30 62 65 54 57 63 60 59 62 3[ 65 1[ 23 23 42 42 42 42 42 42 42 42 42 42 42 23 28 23 2[ 32 32 23 24[ 69 46 46 48 11[{ } 76 83.022 /CMR10 rf /Fx 138[ 38 24 29 30 2[ 36 40 1[ 18 2[ 22 36 33 22 33 1[ 33 33 36 11[ 53 51 12[ 55 3[ 51 67[{ } 19 66.4176 /CMTI8 rf /Fy 131[ 71 1[ 31 37 1[ 51 37 39 27 28 28 1[ 39 35 39 59 20 37 22 20 39 35 22 31 39 31 39 35 3[ 20 35 20 2[ 53 72 53 1[ 51 39 2[ 48 2[ 65 1[ 55 36 25 53 55 46 48 54 51 50 53 7[ 35 35 35 2[ 35 35 35 35 35 1[ 20 24 20 2[ 27 27 20 4[ 35 10[ 53 23[{ } 62 66.4176 /CMR8 rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 %%EndSetup %%Page: 1 1 1 0 bop Fy -47 775 a(Brouillon) p 262 775 a(d'article) p 536 775 a(p) r(our) p 703 775 a(les) p Fx 805 775 a(Cahiers) p 1068 775 a(GUT) p 1222 775 a(enb) l(er) l(g) p Fy 1445 775 a(n) p 1476 775 a(\0270) p 1588 775 a(|) p Fw 2746 775 a(1) p -47 874 2835 4 v Fv -47 1189 a(VFlib) p 402 1189 a(3.5.0) p 777 1189 a(|) p 986 1189 a(a) p 1117 1189 a(general) p 1659 1189 a(fon) l(t) p 1982 1189 a(library) p 2492 1189 a(that) -47 1396 y(supp) t(orts) p 598 1396 a(m) l(ultiple) p 1214 1396 a(fon) l(t) p 1537 1396 a(formats) p Fu 2059 1334 a(\003) p -47 1500 V Ft -47 1716 a(Hirotsugu) p 375 1716 a(Kakuga) m(w) m(a) p Fs -47 1903 a(R) l(ese) l(ar) l(ch) p 299 1903 a(Institute) p 632 1903 a(for) p 765 1903 a(Information) p 1228 1903 a(Scienc) l(e) p 1525 1903 a(and) p 1687 1903 a(Educ) l(ation) -47 2002 y(Hir) l(oshima) p 355 2002 a(University) -47 2102 y(1-7-1) p 169 2102 a(Kagamiyama,) p 698 2102 a(Higashi) p 997 2102 a(Hir) l(oshima,) p 1425 2102 a(Hir) l(oshima,) -47 2202 y(739-8521) p 309 2202 a(JAP) p 465 2202 a(AN) p Fr -47 2566 a(Abstract) p Fq(.) p Fp 368 2566 a(VFlib) p Fo 568 2566 a(is) p 651 2566 a(a) p 719 2566 a(font) p 879 2566 a(libr) l(ary) p 1123 2566 a(written) p 1387 2566 a(in) p 1483 2566 a(C) p 1566 2566 a(pr) l(oviding) p 1901 2566 a(sever) l(al) p 2154 2566 a(functions) p 2488 2566 a(to) p 2582 2566 a(obtain) -47 2657 y(bitmaps) p 247 2657 a(of) p 347 2657 a(char) l(acters) p 726 2657 a(\(i.e.,) p 924 2657 a(a) p 1001 2657 a(r) l(asterizer\).) p Fp 1408 2657 a(VFlib) p Fo 1617 2657 a(hides) p 1823 2657 a(the) p 1960 2657 a(font) p 2129 2657 a(format) p 2389 2657 a(of) p 2489 2657 a(font) p 2658 2657 a(\014les) -47 2749 y(and) p 112 2749 a(pr) l(ovides) p 422 2749 a(a) p 500 2749 a(uni\014e) l(d) p 759 2749 a(API) p 936 2749 a(for) p 1069 2749 a(al) t(l) p 1190 2749 a(supp) l(orte) l(d) p 1543 2749 a(font) p 1712 2749 a(formats.) p 2028 2749 a(Thus,) p 2256 2749 a(pr) l(o) l(gr) l(ammers) p 2725 2749 a(of) -47 2840 y(applic) l(ation) p 349 2840 a(softwar) l(e) p 656 2840 a(ne) l(e) l(d) p 835 2840 a(not) p 977 2840 a(worry) p 1203 2840 a(ab) l(out) p 1413 2840 a(font) p 1578 2840 a(\014le) p 1710 2840 a(formats) p 1997 2840 a(and) p 2152 2840 a(any) p 2306 2840 a(softwar) l(e) p 2613 2840 a(using) p Fp -47 2931 a(VFlib) p Fo 155 2931 a(c) l(an) p 299 2931 a(supp) l(ort) p 573 2931 a(various) p 846 2931 a(font) p 1008 2931 a(\014le) p 1136 2931 a(formats) p 1421 2931 a(imme) l(diately.) p 1874 2931 a(In) p 1978 2931 a(addition) p 2280 2931 a(to) p 2376 2931 a(this,) p 2549 2931 a(when) p 2748 2931 a(a) -47 3023 y(new) p 114 3023 a(font) p 278 3023 a(format) p 533 3023 a(is) p 620 3023 a(supp) l(orte) l(d) p 967 3023 a(by) p Fp 1072 3023 a(VFlib) p Fo(,) p 1299 3023 a(applic) l(ation) p 1694 3023 a(softwar) l(e) p 2000 3023 a(ne) l(e) l(d) p 2177 3023 a(not) p 2317 3023 a(b) l(e) p 2416 3023 a(mo) l(di\014e) l (d) p 2723 3023 a(to) -47 3114 y(use) p 88 3114 a(such) p 262 3114 a(new) p 419 3114 a(fonts.) p Fp -47 3255 a(VFlib) p Fo 152 3255 a(has) p 290 3255 a(b) l(e) l(en) p 458 3255 a(develop) l(e) l(d) p 796 3255 a(for) p 919 3255 a(not) p 1054 3255 a(only) p 1221 3255 a(L) l(atin) p 1424 3255 a(fonts) p 1615 3255 a(but) p 1744 3255 a(also) p 1901 3255 a(Asian) p 2123 3255 a(scripts) p 2369 3255 a(such) p 2544 3255 a(as) p 2642 3255 a(Chi-) -47 3355 y(nese,) p 150 3355 a(Jap) l(anese,) p 502 3355 a(and) p 653 3355 a(Kor) l(e) l(an.) p 946 3355 a(Sinc) l(e) p 1151 3355 a(it) p 1229 3355 a(is) p 1313 3355 a(designe) l(d) p 1620 3355 a(as) p 1720 3355 a(a) p 1788 3355 a(gener) l(al) p 2054 3355 a(font) p 2214 3355 a(mo) l(dule,) p 2500 3355 a(it) p 2578 3355 a(c) l(an) p 2721 3355 a(b) l(e) -47 3454 y(use) l(d) p 125 3454 a(in) p 221 3454 a(D) n(VI) p 393 3454 a(drivers) p 651 3454 a(for) p 776 3454 a(T) 818 3470 y(E) 860 3454 y(X) p 946 3454 a(and) p 1097 3454 a(L) p Fn 1117 3437 a(A) p Fo 1148 3454 a(T) 1190 3470 y(E) 1232 3454 y(X.) p 1342 3454 a(In) p 1444 3454 a(this) p 1593 3454 a(p) l(ap) l(er,) p 1823 3454 a(we) p 1939 3454 a(explain) p 2203 3454 a(the) p 2332 3454 a(API) p 2500 3454 a(of) p Fp 2592 3454 a(VFlib) p Fo(,) -47 3554 y(a) p 19 3554 a(font) p 178 3554 a(datab) l(ase) p 486 3554 a(\014le) p 611 3554 a(c) l(al) t(le) l(d) p Fp 823 3554 a(v\015ib) r(cap) p Fo(,) p 1121 3554 a(and) p 1270 3554 a(the) p 1398 3554 a(internal) p 1687 3554 a(structur) l(e) p 2010 3554 a(of) p Fp 2101 3554 a(VFlib) p Fo(.) p Fr -47 3695 a(Keyw) n(ords:) p Fq 417 3695 a(digital) p 659 3695 a(fon) n(ts,) p 872 3695 a(computer) p 1216 3695 a(t) n(yp) r(ograph) n(y) p 1593 3695 a(,) p 1642 3695 a(m) n(ultilingual) p 2074 3695 a(t) n(yp) r(ograph) n(y) p 2451 3695 a(,) p 2499 3695 a(m) n(ultilin-) -47 3794 y(gual) p 119 3794 a(information) p 535 3794 a(pro) r(cessing,) p 927 3794 a(T) 969 3810 y(E) 1012 3794 y(X) p Fm -47 4114 a(1.) p 161 4114 a(In) m(tro) s(duction) p Fw -47 4339 a(Commercially) p 474 4339 a(and) p 629 4339 a(freely) p 848 4339 a(a) n(v) p 927 4339 a(ailable) p 1183 4339 a(fon) n(ts) p 1379 4339 a(exist) p 1569 4339 a(in) p 1659 4339 a(man) n(y) p 1878 4339 a(di\013eren) n(t) p 2199 4339 a(fon) n(t) p 2362 4339 a(\014le) p 2489 4339 a(formats.) -47 4439 y(When) p 195 4439 a(w) n(e) p 317 4439 a(dev) n(elop) p 616 4439 a(soft) n(w) n(are) p 942 4439 a(to) p 1043 4439 a(displa) n(y) p 1325 4439 a(or) p 1427 4439 a(prin) n(t) p 1632 4439 a(c) n(haracters) p 2027 4439 a(whic) n(h) p 2264 4439 a(do) p 2379 4439 a(not) p 2527 4439 a(dep) r(end) -47 4539 y(on) p 78 4539 a(a) p 158 4539 a(particular) p 552 4539 a(windo) n(w) p 864 4539 a(system) p 1150 4539 a(and/or) p 1437 4539 a(an) p 1563 4539 a(op) r(erating) p 1945 4539 a(system,) p 2254 4539 a(w) n(e) p 2387 4539 a(m) n(ust) p 2603 4539 a(write) -47 4638 y(in) n(terface) p 299 4638 a(routines) p 627 4638 a(for) p 763 4638 a(accessing) p 1128 4638 a(fon) n(t) p 1307 4638 a(\014les) p 1483 4638 a(for) p 1619 4638 a(eac) n(h) p 1814 4638 a(application) p 2252 4638 a(program) p 2594 4638 a(again) -47 4738 y(and) p 115 4738 a(again.) p 360 4738 a(T) p 413 4738 a(o) p 483 4738 a(do) p 598 4738 a(this,) p 784 4738 a(programmers) p 1288 4738 a(m) n(ust) p 1495 4738 a(ha) n(v) n(e) p 1687 4738 a(kno) n(wledge) p 2089 4738 a(of) p 2184 4738 a(fon) n(t) p 2355 4738 a(\014le) p 2489 4738 a(formats;) -47 4838 y(it) p 40 4838 a(will) p 201 4838 a(b) r(e) p 318 4838 a(a) p 391 4838 a(di\016cult) p 700 4838 a(task) p 882 4838 a(for) p 1013 4838 a(programmers) p 1521 4838 a(if) p 1601 4838 a(the) p 1748 4838 a(n) n(um) n(b) r(er) p 2055 4838 a(of) p 2154 4838 a(fon) n(t) p 2328 4838 a(formats) p 2635 4838 a(that) -47 4937 y(an) p 68 4937 a(application) p 497 4937 a(program) p 830 4937 a(supp) r(orts) p 1170 4937 a(b) r(ecomes) p 1500 4937 a(large.) p -47 5029 1134 4 v Fl -47 5097 a(\003) p Fy 80 5121 a(This) p 251 5121 a(pap) r(er) p 458 5121 a(is) p 539 5121 a(based) p 745 5121 a(on) p 853 5121 a(\\VFlib) p 1099 5121 a(|) p 1203 5121 a(a) p 1271 5121 a(general) p 1524 5121 a(fon) n(t) p 1679 5121 a(library) p 1918 5121 a(that) p 2081 5121 a(supp) r(orts) p 2380 5121 a(m) n(ultiple) p 2666 5121 a(fon) n(t) -47 5199 y(formats,") p 265 5199 a(b) n(y) p 363 5199 a(Hirotsugu) p 691 5199 a(Kakuga) n(w) n(a,) p 1053 5199 a(EuroT) 1242 5213 y(E) 1282 5199 y(X98,) p 1448 5199 a(Sain) n(t-Malo,) p 1828 5199 a(F) p 1868 5199 a(rance,) p 2076 5199 a(1998.) p eop %%Page: 2 2 2 1 bop Fw 992 772 a(2) p Fs 3081 772 a(Hir) l(otsugu) p 3460 772 a(Kakugawa) p 992 874 2835 4 v Fk 992 1073 a(VFlib) p Fw 1202 1073 a(is) p 1282 1073 a(a) p 1348 1073 a(fon) n(t) p 1516 1073 a(library) p 1783 1073 a(written) p 2071 1073 a(in) p 2165 1073 a(C) p 2249 1073 a(pro) n(viding) p 2615 1073 a(sev) n(eral) p 2885 1073 a(functions) p 3240 1073 a(to) p 3338 1073 a(obtain) p 3593 1073 a(glyphs) 992 1173 y(\(bitmaps\).) p Fk 1399 1173 a(VFlib) p Fw 1613 1173 a(hides) p 1826 1173 a(the) p 1969 1173 a(fon) n(t) p 2141 1173 a(format) p 2411 1173 a(of) p 2506 1173 a(fon) n(t) p 2678 1173 a(\014les) p 2845 1173 a(and) p 3007 1173 a(pro) n(vides) p 3336 1173 a(a) p 3405 1173 a(uni\014ed) p 3678 1173 a(API) 992 1273 y(for) p 1128 1273 a(all) p 1252 1273 a(supp) r(orted) p 1651 1273 a(fon) n(t) p 1831 1273 a(formats) p 2143 1273 a(so) p 2253 1273 a(that) p 2442 1273 a(programmers) p 2955 1273 a(for) p 3091 1273 a(application) p 3529 1273 a(soft) n(w) n(are) 992 1372 y(need) p 1196 1372 a(not) p 1353 1372 a(w) n(orry) p 1599 1372 a(ab) r(out) p 1846 1372 a(fon) n(t) p 2026 1372 a(\014le) p 2170 1372 a(formats.) p 2506 1372 a(Th) n(us,) p 2749 1372 a(an) n(y) p 2916 1372 a(soft) n(w) n(are) p 3251 1372 a(using) p Fk 3480 1372 a(VFlib) p Fw 3702 1372 a(can) 992 1472 y(supp) r(ort) p 1299 1472 a(v) p 1338 1472 a(arious) p 1584 1472 a(fon) n(t) p 1754 1472 a(\014le) p 1888 1472 a(formats) p 2190 1472 a(immediately) p 2663 1472 a(without) p 2972 1472 a(mo) r(di\014cation) p 3449 1472 a(ev) n(en) p 3638 1472 a(when) p Fk 992 1571 a(VFlib) p Fw 1212 1571 a(is) p 1302 1571 a(up) r(dated) p 1634 1571 a(to) p 1743 1571 a(supp) r(ort) p 2057 1571 a(new) p 2234 1571 a(fon) n(t) p 2412 1571 a(\014le) p 2553 1571 a(formats.) p 2885 1571 a(F) p 2932 1571 a(urthermore,) p Fk 3397 1571 a(VFlib) p Fw 3616 1571 a(is) p 3707 1571 a(not) 992 1671 y(windo) n(w-) p 1322 1671 a(or) p 1424 1671 a(op) r(erating-system) p 2070 1671 a(dep) r(enden) n(t.) 992 1823 y(As) p 1107 1823 a(far) p 1227 1823 a(as) p 1321 1823 a(the) p 1456 1823 a(author) p 1716 1823 a(kno) n(ws,) p 1981 1823 a(there) p 2186 1823 a(is) p 2262 1823 a(no) p 2370 1823 a(general) p 2648 1823 a(fon) n(t) p 2811 1823 a(library) p 3074 1823 a(other) p 3283 1823 a(than) p Fk 3469 1823 a(VFlib) p Fw 3675 1823 a(that) 992 1922 y(supp) r(orts) p 1323 1922 a(m) n(ultiple) p 1639 1922 a(fon) n(t) p 1801 1922 a(formats) p 2095 1922 a(in) p 2183 1922 a(a) p 2243 1922 a(platform-indep) r(enden) n(t) p 3044 1922 a(w) n(a) n(y) p 3203 1922 a(and) p 3355 1922 a(that) p 3526 1922 a(pro) n(vides) 992 2022 y(a) p 1058 2022 a(uni\014ed) p 1326 2022 a(API) p 1499 2022 a(for) p 1623 2022 a(fon) n(t) p 1790 2022 a(access.) p 2055 2022 a(F) p 2102 2022 a(or) p 2200 2022 a(example,) p 2545 2022 a(X) p 2631 2022 a(Windo) n(w) p 2955 2022 a(serv) n(ers) p 3225 2022 a(supp) r(ort) p 3529 2022 a(m) n(ultiple) 992 2122 y(fon) n(t) p 1165 2122 a(formats.) p 1493 2122 a(But) p 1661 2122 a(to) p 1765 2122 a(use) p 1910 2122 a(a) p 1982 2122 a(fon) n(t) p 2155 2122 a(service,) p 2451 2122 a(an) p 2569 2122 a(X) p 2661 2122 a(serv) n(er) p 2904 2122 a(pro) r(cess) p 3196 2122 a(is) p 3282 2122 a(required.) p 3633 2122 a(Some) 992 2221 y(fon) n(t) p 1156 2221 a(libraries) p 1468 2221 a(ha) n(v) n(e) p 1653 2221 a(b) r(een) p 1842 2221 a(prop) r(osed) p 2188 2221 a(for) p 2308 2221 a(general) p 2588 2221 a(use:) p Fk 2747 2221 a(F) n(reeT) p 2944 2221 a(yp) r(e) p Fw 3085 2221 a(1.1) p 3212 2221 a(b) n(y) p 3320 2221 a(Da) n(vid) p 3556 2221 a(T) p 3609 2221 a(urner,) 992 2321 y(Rob) r(ert) p 1267 2321 a(Wilhelm,) p 1619 2321 a(and) p 1774 2321 a(W) p 1852 2321 a(erner) p 2059 2321 a(Lem) n(b) r(erg) p 2396 2321 a(is) p 2474 2321 a(a) p 2538 2321 a(library) p 2802 2321 a(for) p 2923 2321 a(accessing) p 3274 2321 a(T) p 3327 2321 a(rueT) n(yp) r(e) p 3651 2321 a(fon) n(ts) 992 2421 y([10) o(].) p 1178 2421 a(The) p Fk 1354 2421 a(T1Lib) p Fw 1593 2421 a(b) n(y) p 1714 2421 a(Rainer) p 1989 2421 a(Menzner) p 2334 2421 a(is) p 2423 2421 a(a) p 2498 2421 a(library) p 2774 2421 a(to) p 2881 2421 a(handle) p 3154 2421 a(T) n(yp) r(e) p 3374 2421 a(1) p 3449 2421 a(P) n(ostScript) 992 2520 y(fon) n(ts) p 1206 2520 a([8) o(].) p 1355 2520 a(Although) p 1731 2520 a(b) r(oth) p 1938 2520 a(are) p 2087 2520 a(v) n(ery) p 2279 2520 a(useful) p 2528 2520 a(libraries) p 2857 2520 a(not) p 3015 2520 a(dep) r(enden) n(t) p 3427 2520 a(on) p 3552 2520 a(windo) n(w) 992 2620 y(or) p 1099 2620 a(op) r(erating) p 1476 2620 a(systems,) p 1813 2620 a(eac) n(h) p 2005 2620 a(of) p 2105 2620 a(them) p 2323 2620 a(supp) r(orts) p 2668 2620 a(only) p 2856 2620 a(one) p 3013 2620 a(fon) n(t) p 3189 2620 a(format) p 3465 2620 a(and) p 3632 2620 a(has) p 3785 2620 a(a) 992 2719 y(di\013eren) n(t) p 1320 2719 a(API.) 992 2871 y(Con) n(v) n(ersion) p 1423 2871 a(of) p 1521 2871 a(fon) n(t) p 1695 2871 a(formats) p 2002 2871 a(so) p 2107 2871 a(that) p 2290 2871 a(application) p 2723 2871 a(soft) n(w) n(are) p 3052 2871 a(can) p 3208 2871 a(use) p 3355 2871 a(m) n(ultiple) p 3684 2871 a(fon) n(t) 992 2971 y(formats) p 1296 2971 a(is) p 1380 2971 a(one) p 1533 2971 a(p) r(ossible) p 1846 2971 a(approac) n(h.) p 2228 2971 a(F) p 2275 2971 a(or) p 2377 2971 a(example,) p Fj 2726 2971 a(ttf2pk) p Fw 3016 2971 a([6]) p 3133 2971 a(\(T) p 3218 2971 a(rueT) n(yp) r(e) p 3549 2971 a(fon) n(ts) p 3753 2971 a(to) 992 3071 y(PK) p 1144 3071 a(fon) n(ts\)) p 1382 3071 a(and) p Fj 1546 3071 a(hbf2gf) p Fw 1838 3071 a([5]) p 1956 3071 a(\(HBF) p Fi 2163 3040 a(1) p Fw 2231 3071 a(fon) n(ts) p 2438 3071 a(to) p 2542 3071 a(GF) p 2692 3071 a(fon) n(ts\),) p 2953 3071 a(b) r(oth) p 3152 3071 a(written) p 3445 3071 a(b) n(y) p 3563 3071 a(W) p 3641 3071 a(erner) 992 3170 y(Lem) n(b) r(erg,) p 1354 3170 a(mak) n(es) p 1599 3170 a(these) p 1807 3170 a(fon) n(t) p 1973 3170 a(formats) p 2272 3170 a(a) n(v) p 2351 3170 a(ailable) p 2609 3170 a(to) p 2706 3170 a(T) 2752 3188 y(E) 2798 3170 y(X.) p 2907 3170 a(This) p 3092 3170 a(metho) r(d) p 3389 3170 a(is) p 3469 3170 a(useful) p 3702 3170 a(but) 992 3270 y(one) p 1144 3270 a(dra) n(wbac) n(k) p 1516 3270 a(is) p 1599 3270 a(that) p 1779 3270 a(w) n(e) p 1901 3270 a(m) n(ust) p 2107 3270 a(con) n(v) n(ert) p 2400 3270 a(man) n(y) p 2626 3270 a(fon) n(t) p 2797 3270 a(\014les) p 2963 3270 a(in) p 3060 3270 a(adv) p 3187 3270 a(ance.) 992 3422 y(Curren) n(tly) p 1337 3422 a(,) p Fk 1399 3422 a(VFlib) p Fw 1623 3422 a(supp) r(orts) p 1975 3422 a(the) p 2129 3422 a(follo) n(wing) p 2492 3422 a(fon) n(t) p 2674 3422 a(\014le) p 2819 3422 a(formats:) p 3157 3422 a(PCF,) p 3390 3422 a(BDF,) p 3628 3422 a(HBF,) 992 3521 y(T) p 1045 3521 a(rueT) n(yp) r(e,) p 1405 3521 a(T) n(yp) r(e) p 1625 3521 a(1,) p 1724 3521 a(GF,) p 1900 3521 a(PK,) p 2078 3521 a(TFM,) p 2326 3521 a(VF,) p 2499 3521 a(Sy) n(otai) p 2759 3521 a(Kurabu) p 3070 3521 a(and) p 3238 3521 a(JG) p Fi 3380 3491 a(2) p Fw 3417 3521 a(.) p 3474 3521 a(T) p 3527 3521 a(o) p 3602 3521 a(searc) n(h) 992 3621 y(T) 1038 3639 y(E) 1084 3621 y(X) p 1181 3621 a(fon) n(t) p 1359 3621 a(\014les) p 1533 3621 a(\(e.g.,) p 1747 3621 a(PK,) p 1926 3621 a(GF,) p 2103 3621 a(TFM,) p 2351 3621 a(VF) p 2503 3621 a(\014les\)) p 2709 3621 a(and) p 2877 3621 a(T) p 2930 3621 a(rueT) n(yp) r(e) p 3267 3621 a(fon) n(t) p 3445 3621 a(\014les,) p Fk 3642 3621 a(VFlib) p Fw 992 3721 a(uses) p 1176 3721 a(the) p Fk 1328 3721 a(kpathsea) p Fw 1668 3721 a(library) p 1947 3721 a(3.2) p 2089 3721 a(b) n(y) p 2212 3721 a(Karl) p 2409 3721 a(Berry) p 2650 3721 a([1) o(].) p Fk 2796 3721 a(VFlib) p Fw 3017 3721 a(can) p 3178 3721 a(b) r(e) p 3299 3721 a(used) p 3496 3721 a(as) p 3606 3721 a(a) p 3684 3721 a(fon) n(t) 992 3820 y(mo) r(dule) p 1285 3820 a(for) p 1412 3820 a(driv) n(ers) p 1685 3820 a(and) p 1847 3820 a(preview) n(ers) p 2253 3820 a(of) p 2348 3820 a(D) n(VI) p 2529 3820 a(\014les) p 2695 3820 a(generated) p 3074 3820 a(b) n(y) p 3189 3820 a(T) 3235 3838 y(E) 3281 3820 y(X) p 3371 3820 a(and) p 3533 3820 a(L) p Fi 3555 3803 a(A) p Fw 3592 3820 a(T) 3638 3838 y(E) 3684 3820 y(X.) 992 3972 y(This) p 1180 3972 a(pap) r(er) p 1411 3972 a(describ) r(es) p Fk 1763 3972 a(VFlib) p Fw 1974 3972 a(v) n(ersion) p 2254 3972 a(3.5.0) p Fi 2426 3942 a(3) p Fw 2462 3972 a(.) p Fk 2510 3972 a(VFlib) p Fw 2721 3972 a(v) n(ersions) p 3034 3972 a(1) p 3101 3972 a(and) p 3260 3972 a(2) p 3328 3972 a(w) n(ere) p 3517 3972 a(designed) 992 4072 y(and) p 1162 4072 a(implemen) n(ted) p 1662 4072 a(for) p 1798 4072 a(Japanese) p 2158 4072 a(fon) n(ts) p 2371 4072 a(only;) p 2584 4072 a(they) p 2780 4072 a(are) p 2927 4072 a(widely) p 3196 4072 a(used) p 3394 4072 a(in) p 3500 4072 a(man) n(y) p 3735 4072 a(lo-) 992 4171 y(calized) p 1275 4171 a(soft) n(w) n(are) p 1612 4171 a(pac) n(k) p 1774 4171 a(ages) p 1965 4171 a(in) p 2073 4171 a(Japan,) p 2353 4171 a(e.g.) p 2517 4171 a(b) n(y) p Fk 2644 4171 a(Ghostscript) p Fw(,) p Fk 3098 4171 a(dvi2ps) p Fw(,) p 3377 4171 a(and) p Fk 3549 4171 a(xdvi) p Fw 3727 4171 a(for) 992 4271 y(prin) n(ting) p 1306 4271 a(Japanese) p 1655 4271 a(Kanji) p 1880 4271 a(c) n(haracters.) p Fk 2296 4271 a(VFlib) p Fw 2506 4271 a(v) n(ersion) p 2785 4271 a(3) p 2852 4271 a(is) p 2932 4271 a(designed) p 3267 4271 a(for) p 3391 4271 a(m) n(ultilingual) 992 4370 y(do) r(cumen) n(t) p 1371 4370 a(pro) r(cessing) p 1768 4370 a(in) p 1861 4370 a(English,) p 2178 4370 a(F) p 2225 4370 a(renc) n(h,) p 2468 4370 a(Chinese,) p 2797 4370 a(Japanese,) p 3169 4370 a(Korean,) p 3480 4370 a(and) p 3637 4370 a(other) 992 4470 y(languages.) p 992 4606 1134 4 v Fy 992 4674 a(1) 1119 4697 y(The) p 1278 4697 a(Hanzi) p 1495 4697 a(Bitmap) p 1763 4697 a(F) p 1803 4697 a(on) n(t) p 1941 4697 a(\(HBF\)) p 2182 4697 a(format) p 2426 4697 a([2]) p 2538 4697 a(is) p 2623 4697 a(a) p 2696 4697 a(binary) p 2932 4697 a(format) p 3176 4697 a(for) p 3298 4697 a(bitmap) p 3555 4697 a(fon) n(ts) p 3742 4697 a(for) 992 4776 y(Japanese,) p 1311 4776 a(Chinese,) p 1594 4776 a(and) p 1731 4776 a(Korean) p 1978 4776 a(c) n(haracters.) 992 4846 y(2) 1119 4869 y(PCF) p 1291 4869 a(\(P) n(ortable) p 1607 4869 a(Compiled) p 1928 4869 a(F) p 1968 4869 a(on) n(t\)) p 2123 4869 a(format) p 2356 4869 a(is) p 2430 4869 a(a) p 2492 4869 a(binary) p 2717 4869 a(format) p 2950 4869 a(for) p 3061 4869 a(bitmap) p 3308 4869 a(fon) n(ts) p 3484 4869 a(used) p 3649 4869 a(on) p 3750 4869 a(X-) 992 4948 y(Windo) n(w.) p 1290 4948 a(BDF) p 1464 4948 a(\(Bitmap) p 1745 4948 a(Distribution) p 2144 4948 a(F) p 2184 4948 a(ormat\)) p 2420 4948 a([3]) p 2518 4948 a(is) p 2589 4948 a(an) p 2687 4948 a(ASCI) r(I) p 2907 4948 a(format) p 3136 4948 a(for) p 3244 4948 a(distributing) p 3629 4948 a(binary) 992 5027 y(fon) n(ts.) p 1183 5027 a(Sy) n(otai) p 1397 5027 a(Kurabu,) p 1674 5027 a(whic) n(h) p 1875 5027 a(means) p Fx 2090 5027 a(font) p 2236 5027 a(club) p Fy 2384 5027 a(in) p 2465 5027 a(English,) p 2735 5027 a(is) p 2805 5027 a(a) p 2862 5027 a(v) n(ector) p 3073 5027 a(fon) n(t) p 3217 5027 a(format) p 3445 5027 a(for) p 3551 5027 a(Japanese) 992 5106 y(Kanji) p 1186 5106 a(c) n(haracters.) p 1541 5106 a(JG) p 1657 5106 a(format) p 1886 5106 a(is) p 1957 5106 a(another) p 2216 5106 a(v) n(ector) p 2428 5106 a(fon) n(t) p 2573 5106 a(format) p 2802 5106 a(for) p 2910 5106 a(Japanese) p 3209 5106 a(Kanji) p 3403 5106 a(c) n(haracters.) 992 5176 y(3) p Fh 1119 5199 a(VFlib) p Fy 1300 5199 a(v) n(ersion) p 1540 5199 a(3.2) p 1653 5199 a(is) p 1724 5199 a(in) n(tro) r(duced) p 2077 5199 a(in) p 2160 5199 a([7]) p 2258 5199 a(and) p 2395 5199 a(v) n(ersion) p 2635 5199 a(3.3) p 2748 5199 a(is) p 2819 5199 a(rep) r(orted) p 3104 5199 a(in) p 3186 5199 a([4].) p eop %%Page: 3 3 3 2 bop Fs -47 772 a(A) p 44 772 a(font) p 216 772 a(libr) l(ary) p 479 772 a(VFlib) p 710 772 a(3.5.0) p Fw 2746 772 a(3) p -47 874 2835 4 v -47 1073 a(This) p 151 1073 a(pap) r(er) p 392 1073 a(is) p 484 1073 a(organized) p 866 1073 a(as) p 977 1073 a(follo) n(ws.) p 1281 1073 a(In) p 1393 1073 a(section) p 1679 1073 a(2,) p 1779 1073 a(the) p 1931 1073 a(basic) p 2147 1073 a(concepts) p 2493 1073 a(of) p Fk 2602 1073 a(VFlib) p Fw -47 1173 a(are) p 95 1173 a(explained.) p 492 1173 a(The) p 666 1173 a(API) p 846 1173 a(of) p Fk 950 1173 a(VFlib) p Fw 1166 1173 a(is) p 1253 1173 a(sho) n(wn) p 1508 1173 a(in) p 1608 1173 a(section) p 1888 1173 a(3,) p 1984 1173 a(and) p 2149 1173 a(the) p 2295 1173 a(fon) n(t) p 2469 1173 a(database) -47 1273 y(called) p Fk 192 1273 a(v\015ib) r(cap) p Fw 490 1273 a(is) p 577 1273 a(explained) p 952 1273 a(in) p 1053 1273 a(section) p 1333 1273 a(4.) p 1429 1273 a(An) p 1569 1273 a(in) n(teresting) p 1981 1273 a(feature) p 2264 1273 a(of) p Fk 2369 1273 a(VFlib) p Fw 2585 1273 a(is) p 2672 1273 a(the) -47 1372 y(abilit) n(y) p 213 1372 a(to) p 316 1372 a(pro) n(vide) p 613 1372 a(fon) n(ts) p 818 1372 a(without) p 1128 1372 a(fon) n(t) p 1300 1372 a(\014les.) p 1492 1372 a(Section) p 1784 1372 a(5) p 1854 1372 a(explains) p 2177 1372 a(this) p 2341 1372 a(feature.) p 2644 1372 a(The) -47 1472 y(author) p 219 1472 a(has) p 366 1472 a(dev) n(elop) r(ed) p 751 1472 a(sev) n(eral) p 1022 1472 a(sample) p 1298 1472 a(programs) p 1663 1472 a(using) p Fk 1880 1472 a(VFlib) p Fw(,) p 2115 1472 a(and) p 2275 1472 a(one) p 2427 1472 a(of) p 2520 1472 a(these) p 2732 1472 a(is) -47 1571 y(in) n(tro) r(duced) p 368 1571 a(brie\015y) p 624 1571 a(in) p 721 1571 a(section) p 998 1571 a(6.) p 1091 1571 a(Section) p 1381 1571 a(7) p 1450 1571 a(giv) n(es) p 1654 1571 a(concluding) p 2069 1571 a(remarks.) p Fm -47 1884 a(2.) p 161 1884 a(Basic) p 472 1884 a(Concepts) p Fg -47 2122 a(2.1.) p 220 2122 a(System) p 585 2122 a(comp) s(onen) m(ts) p Fw -47 2326 a(The) p Fk 123 2326 a(VFlib) p Fw 336 2326 a(system) p 612 2326 a(consists) p 917 2326 a(of) p 1012 2326 a(t) n(w) n(o) p 1169 2326 a(parts:) 54 2553 y(1.) p 160 2553 a(A) p 250 2553 a(library) p 521 2553 a(\() p Fj(libVFlib.a) p Fw(\)) 160 2653 y(It) p 243 2653 a(pro) n(vides) p 564 2653 a(sev) n(eral) p 829 2653 a(C) p 909 2653 a(functions.) p 1283 2653 a(An) n(y) p 1453 2653 a(application) p 1874 2653 a(soft) n(w) n(are) p 2193 2653 a(using) p Fk 2404 2653 a(VFlib) p Fw 2609 2653 a(m) n(ust) 160 2753 y(link) p 324 2753 a(with) p 513 2753 a(this) p 675 2753 a(library) p 912 2753 a(.) 54 2852 y(2.) p 160 2852 a(A) p 250 2852 a(fon) n(t) p 421 2852 a(database) p 767 2852 a(\014le) p 901 2852 a(\() p Fj(vflibcap) p Fw(\)) 160 2952 y(This) p 357 2952 a(\014le) p 498 2952 a(de\014nes) p 778 2952 a(fon) n(ts) p 989 2952 a(and) p 1157 2952 a(their) p 1363 2952 a(prop) r(erties) p 1761 2952 a(\(called) p Fs 2036 2952 a(c) l(ap) l(abilities) p Fw(\),) p 2519 2952 a(suc) n(h) p 2713 2952 a(as) 160 3051 y(p) r(oin) n(t) p 377 3051 a(size) p 534 3051 a(and) p 696 3051 a(the) p 839 3051 a(fon) n(t) p 1009 3051 a(\014le) p 1143 3051 a(format.) p 1436 3051 a(Its) p 1559 3051 a(syn) n(tax) p 1825 3051 a(is) p 1908 3051 a(lisp-lik) n(e) p 2213 3051 a(notation.) -47 3278 y(When) p 204 3278 a(w) n(e) p 336 3278 a(initialize) p Fk 682 3278 a(VFlib) p Fw(,) p 927 3278 a(w) n(e) p 1058 3278 a(can) p 1220 3278 a(sp) r(ecify) p 1504 3278 a(a) p Fk 1582 3278 a(v\015ib) r(cap) p Fw 1887 3278 a(\014le) p 2030 3278 a(to) p 2141 3278 a(b) r(e) p 2263 3278 a(used) p 2462 3278 a(and) p 2632 3278 a(th) n(us) -47 3378 y(di\013eren) n(t) p 280 3378 a(fon) n(t) p 451 3378 a(sets) p 613 3378 a(can) p 766 3378 a(b) r(e) p 879 3378 a(used) p 1068 3378 a(b) n(y) p 1184 3378 a(di\013eren) n(t) p 1511 3378 a(soft) n(w) n(are.) p Fg -47 3616 a(2.2.) p 220 3616 a(F) p 277 3616 a(on) m(t) p 460 3616 a(classes) p 793 3616 a(and) p 995 3616 a(fon) m(t) p 1209 3616 a(driv) m(ers) p Fk -47 3821 a(VFlib) p Fw 162 3821 a(can) p 311 3821 a(handle) p 576 3821 a(m) n(ultiple) p 898 3821 a(fon) n(t) p 1065 3821 a(\014le) p 1196 3821 a(formats.) p 1518 3821 a(Reading) p 1839 3821 a(a) p 1905 3821 a(fon) n(t) p 2073 3821 a(\014le) p 2203 3821 a(according) p 2574 3821 a(to) p 2672 3821 a(the) -47 3920 y(fon) n(t) p 119 3920 a(\014le) p 249 3920 a(format) p 515 3920 a(is) p 595 3920 a(done) p 789 3920 a(b) n(y) p 900 3920 a(an) p 1012 3920 a(in) n(ternal) p 1315 3920 a(mo) r(dule) p 1604 3920 a(in) p Fk 1697 3920 a(VFlib) p Fw 1905 3920 a(corresp) r(onding) p 2435 3920 a(to) p 2533 3920 a(its) p 2644 3920 a(fon) n(t) -47 4020 y(\014le) p 85 4020 a(format.) p 378 4020 a(This) p 566 4020 a(in) n(ternal) p 872 4020 a(mo) r(dule) p 1164 4020 a(is) p 1246 4020 a(called) p 1481 4020 a(a) p Fs 1549 4020 a(font) p 1720 4020 a(driver) p Fw(.) p 1984 4020 a(Service) p 2267 4020 a(units) p 2474 4020 a(pro) n(vided) -47 4120 y(b) n(y) p 63 4120 a(fon) n(t) p 228 4120 a(driv) n(ers) p 496 4120 a(are) p 630 4120 a(called) p Fs 860 4120 a(font) p 1027 4120 a(classes) p Fw(.) p 1314 4120 a(F) p 1361 4120 a(rom) p 1527 4120 a(an) p 1637 4120 a(end-user's) p 2021 4120 a(p) r(oin) n(t) p 2232 4120 a(of) p 2321 4120 a(view,) p 2531 4120 a(v) p 2570 4120 a(arious) -47 4219 y(fon) n(t) p 130 4219 a(formats) p 440 4219 a(are) p 585 4219 a(distinguished) p 1096 4219 a(b) n(y) p 1218 4219 a(v) p 1257 4219 a(arious) p 1509 4219 a(names) p 1770 4219 a(of) p 1871 4219 a(fon) n(t) p 2049 4219 a(classes.) p 2343 4219 a(F) p 2390 4219 a(on) n(t) p 2542 4219 a(driv) n(ers) -47 4319 y(are) p 91 4319 a(in) n(ternal) p 398 4319 a(to) p Fk 500 4319 a(VFlib) p Fw 713 4319 a(and) p 874 4319 a(in) n(visible) p 1197 4319 a(to) p 1299 4319 a(end-users.) -47 4458 y(Some) p 180 4458 a(fon) n(t) p 356 4458 a(driv) n(ers) p 635 4458 a(ma) n(y) p 821 4458 a(not) p 975 4458 a(read) p 1165 4458 a(fon) n(t) p 1342 4458 a(\014les) p 1514 4458 a(on) p 1635 4458 a(disk:) p 1837 4458 a(they) p 2030 4458 a(ma) n(y) p 2216 4458 a(generate) p 2554 4458 a(glyphs) -47 4557 y(and) p 114 4557 a(outlines) p 424 4557 a(b) n(y) p 539 4557 a(in) n(ternal) p 846 4557 a(computation) p 1331 4557 a(only) p 1479 4557 a(.) p 1529 4557 a(In) p 1633 4557 a(addition,) p 1983 4557 a(some) p 2191 4557 a(fon) n(t) p 2362 4557 a(driv) n(ers) p 2635 4557 a(ma) n(y) -47 4657 y(return) p 207 4657 a(glyphs) p 468 4657 a(whic) n(h) p 705 4657 a(are) p 844 4657 a(obtained) p 1185 4657 a(as) p 1287 4657 a(glyphs) p 1548 4657 a(b) n(y) p 1664 4657 a(another) p 1968 4657 a(fon) n(t) p 2139 4657 a(class.) p Fg -47 4895 a(2.3.) p 220 4895 a(A) p 334 4895 a(view) p 576 4895 a(of) p Ff 705 4895 a(VFlib) p Fg 960 4895 a(fon) m(t) p 1175 4895 a(from) p 1424 4895 a(end-users) p 1889 4895 a(p) s(ersp) s(ectiv) m(e) p Fw -47 5100 a(Eac) n(h) p 167 5100 a(\(virtual\)) p 509 5100 a(fon) n(t) p 687 5100 a(b) n(y) p Fk 811 5100 a(VFlib) p Fw 1031 5100 a(has) p 1187 5100 a(its) p 1310 5100 a(inheren) n(t) p 1643 5100 a(information) p 2100 5100 a(of) p 2202 5100 a(p) r(oin) n(t) p 2427 5100 a(size,) p 2614 5100 a(pixel) -47 5199 y(size,) p 136 5199 a(and) p 301 5199 a(resolution) p 688 5199 a(of) p 786 5199 a(the) p 932 5199 a(target) p 1180 5199 a(device.) p 1458 5199 a(In) p 1565 5199 a(addition,) p 1919 5199 a(fon) n(t) p 2093 5199 a(metrics) p 2387 5199 a(are) p 2529 5199 a(de\014ned) p eop %%Page: 4 4 4 3 bop Fw 992 772 a(4) p Fs 3081 772 a(Hir) l(otsugu) p 3460 772 a(Kakugawa) p 992 874 2835 4 v Fw 992 1073 a(for) p 1112 1073 a(eac) n(h) p 1292 1073 a(glyph.) p 1536 1073 a(Some) p 1750 1073 a(fon) n(t) p 1914 1073 a(\014le) p 2040 1073 a(formats) p 2336 1073 a(ma) n(y) p 2508 1073 a(not) p 2649 1073 a(ha) n(v) n(e) p 2833 1073 a(suc) n(h) p 3013 1073 a(concepts.) p 3366 1073 a(F) p 3413 1073 a(or) p 3508 1073 a(instance,) 992 1173 y(T) p 1045 1173 a(rueT) n(yp) r(e) p 1377 1173 a(fon) n(t) p 1549 1173 a(\014les) p 1717 1173 a(are) p 1857 1173 a(v) n(ector) p 2108 1173 a(fon) n(t) p 2280 1173 a(\014les) p 2448 1173 a(and) p 2611 1173 a(do) p 2727 1173 a(not) p 2877 1173 a(ha) n(v) n(e) p 3069 1173 a(information) p 3521 1173 a(on) p 3638 1173 a(p) r(oin) n(t) 992 1273 y(size.) p 1179 1273 a(Sy) n(otai) p 1439 1273 a(Kurabu) p 1750 1273 a(format) p 2026 1273 a(fon) n(ts) p 2236 1273 a(do) p 2358 1273 a(not) p 2512 1273 a(ha) n(v) n(e) p 2710 1273 a(fon) n(t) p 2887 1273 a(metric) p 3152 1273 a(information) p 3608 1273 a(at) p 3716 1273 a(all.) 992 1372 y(In) p 1100 1372 a(suc) n(h) p 1291 1372 a(case,) p 1494 1372 a(either) p 1734 1372 a(\(1\)) p 1872 1372 a(the) p 2019 1372 a(lac) n(king) p 2305 1372 a(information) p 2759 1372 a(is) p 2846 1372 a(giv) n(en) p 3067 1372 a(in) p Fk 3168 1372 a(v\015ib) r(cap) p Fw 3468 1372 a(or) p 3574 1372 a(\(2\)) p 3711 1372 a(the) 992 1472 y(sp) r(eci\014c) p 1281 1472 a(fon) n(t) p 1452 1472 a(driv) n(er) p 1692 1472 a(giv) n(es) p 1895 1472 a(suc) n(h) p 2082 1472 a(information) p 2532 1472 a(as) p 2634 1472 a(default) p 2913 1472 a(v) p 2952 1472 a(alues.) p Fg 992 1704 a(2.4.) p 1259 1704 a(F) p 1316 1704 a(on) m(t) p 1499 1704 a(names) p 1819 1704 a(and) p 2021 1704 a(fon) m(t) p 2236 1704 a(searc) m(hing) p 2695 1704 a(mec) m(hanism) p Fw 992 1902 a(In) p Fk 1106 1902 a(VFlib) p Fw(,) p 1352 1902 a(a) p 1431 1902 a(fon) n(t) p 1612 1902 a(is) p 1706 1902 a(sp) r(eci\014ed) p 2051 1902 a(b) n(y) p 2176 1902 a(a) p Fs 2255 1902 a(font) p 2436 1902 a(name) p Fw 2669 1902 a(on) p 2795 1902 a(op) r(ening.) p 3139 1902 a(First,) p Fk 3375 1902 a(VFlib) p Fw 3598 1902 a(c) n(hec) n(ks) 992 2002 y(whether) p 1316 2002 a(the) p 1465 2002 a(fon) n(t) p 1642 2002 a(name) p 1869 2002 a(is) p 1958 2002 a(giv) n(en) p 2181 2002 a(in) p Fk 2283 2002 a(v\015ib) r(cap) p Fw 2584 2002 a(or) p 2692 2002 a(not.) p 2868 2002 a(If) p 2957 2002 a(the) p 3106 2002 a(fon) n(t) p 3282 2002 a(name) p 3509 2002 a(is) p 3598 2002 a(found,) p Fk 992 2102 a(VFlib) p Fw 1206 2102 a(reads) p 1425 2102 a(the) p 1570 2102 a(description) p 1996 2102 a(for) p 2125 2102 a(the) p 2269 2102 a(fon) n(t) p 2441 2102 a(in) p Fk 2540 2102 a(v\015ib) r(cap) p Fw(.) p 2860 2102 a(The) p 3032 2102 a(description) p 3458 2102 a(con) n(tains) p 3785 2102 a(a) 992 2201 y(fon) n(t) p 1158 2201 a(class) p 1348 2201 a(name;) p Fk 1588 2201 a(VFlib) p Fw 1796 2201 a(then) p 1980 2201 a(in) n(v) n(ok) n(es) p 2264 2201 a(a) p 2329 2201 a(fon) n(t) p 2494 2201 a(driv) n(er) p 2730 2201 a(corresp) r(onding) p 3259 2201 a(to) p 3356 2201 a(the) p 3494 2201 a(fon) n(t) p 3660 2201 a(class) 992 2301 y(name.) p 1237 2301 a(Finally) p 1519 2301 a(the) p 1662 2301 a(fon) n(t) p 1833 2301 a(driv) n(er) p 2073 2301 a(op) r(ens) p 2306 2301 a(the) p 2449 2301 a(fon) n(t) p 2620 2301 a(\014le) p 2754 2301 a(\(if) p 2862 2301 a(necessary\).) 992 2440 y(If) p 1079 2440 a(the) p 1227 2440 a(fon) n(t) p 1402 2440 a(name) p 1628 2440 a(is) p 1715 2440 a(not) p 1867 2440 a(giv) n(en) p 2088 2440 a(in) p 2190 2440 a(a) p Fk 2263 2440 a(v\015ib) r(cap) p Fw 2563 2440 a(\014le,) p 2724 2440 a(a) p 2797 2440 a(fon) n(t) p 2972 2440 a(searc) n(hing) p 3340 2440 a(mec) n(hanism) p 3771 2440 a(is) 992 2539 y(in) n(v) n(ok) n(ed.) p 1321 2539 a(Since) p 1542 2539 a(there) p 1759 2539 a(are) p 1902 2539 a(man) n(y) p 2132 2539 a(fon) n(t) p 2307 2539 a(\014les) p 2477 2539 a(for) p 2608 2539 a(X) p 2703 2539 a(Windo) n(w) p 3034 2539 a(and) p 3200 2539 a(T) 3246 2557 y(E) 3292 2539 y(X,) p 3409 2539 a(this) p 3575 2539 a(feature) 992 2639 y(is) p 1079 2639 a(in) n(tro) r(duced) p 1497 2639 a(to) p 1601 2639 a(a) n(v) n(oid) p 1823 2639 a(writing) p 2113 2639 a(an) p 2231 2639 a(en) n(try) p 2451 2639 a(for) p 2581 2639 a(eac) n(h) p 2771 2639 a(fon) n(t) p 2944 2639 a(\014le.) p 3104 2639 a(V) p 3159 2639 a(arious) p 3408 2639 a(fon) n(t) p 3581 2639 a(driv) n(ers) 992 2739 y(will) p 1152 2739 a(b) r(e) p 1267 2739 a(called) p 1505 2739 a(to) p 1610 2739 a(see) p 1747 2739 a(whether) p 2068 2739 a(the) p 2214 2739 a(fon) n(t) p 2387 2739 a(can) p 2542 2739 a(b) r(e) p 2658 2739 a(op) r(ened;) p 2967 2739 a(a) p 3039 2739 a(list) p 3181 2739 a(of) p 3278 2739 a(fon) n(t) p 3452 2739 a(driv) n(ers) p 3727 2739 a(for) 992 2838 y(fon) n(t) p 1165 2838 a(searc) n(hing) p 1530 2838 a(is) p 1616 2838 a(giv) n(en) p 1835 2838 a(in) p 1934 2838 a(the) p Fk 2080 2838 a(v\015ib) r(cap) p Fw 2377 2838 a(\014le.) p 2536 2838 a(If) p 2622 2838 a(a) p 2693 2838 a(fon) n(t) p 2866 2838 a(driv) n(er) p 3109 2838 a(succeeds) p 3444 2838 a(in) p 3543 2838 a(op) r(ening) 992 2938 y(the) p 1143 2938 a(fon) n(t,) p 1345 2938 a(fon) n(t) p 1524 2938 a(searc) n(hing) p 1895 2938 a(\014nishes) p 2194 2938 a(and) p 2364 2938 a(the) p Fk 2515 2938 a(VFlib) p Fw 2736 2938 a(fon) n(t) p 2915 2938 a(op) r(ening) p 3234 2938 a(function) p 3568 2938 a(returns) 992 3038 y(successfully) p 1402 3038 a(.) p 1452 3038 a(Otherwise,) p 1868 3038 a(fon) n(t) p 2039 3038 a(op) r(en) p 2240 3038 a(fails.) 992 3177 y(F) p 1039 3177 a(on) n(ts) p 1227 3177 a(describ) r(ed) p 1604 3177 a(in) p 1711 3177 a(a) p Fk 1790 3177 a(v\015ib) r(cap) p Fw 2095 3177 a(\014le) p 2239 3177 a(are) p 2387 3177 a(called) p Fs 2632 3177 a(explicit) p 2928 3177 a(fonts) p Fw 3142 3177 a(and) p 3313 3177 a(fon) n(ts) p 3526 3177 a(that) p 3716 3177 a(are) 992 3276 y(searc) n(hed) p 1327 3276 a(for) p 1454 3276 a(b) n(y) p 1570 3276 a(the) p 1713 3276 a(fon) n(t) p 1883 3276 a(searc) n(h) p 2135 3276 a(feature) p 2415 3276 a(are) p 2553 3276 a(called) p Fs 2788 3276 a(implicit) p 3092 3276 a(fonts) p Fw(.) p Fg 992 3508 a(2.5.) p 1259 3508 a(Tw) m(o) p 1492 3508 a(mo) s(des) p 1816 3508 a(of) p 1935 3508 a(op) s(ened) p 2295 3508 a(fon) m(ts) p Fw 992 3707 a(The) p 1163 3707 a(follo) n(wing) p 1513 3707 a(t) n(w) n(o) p 1670 3707 a(mo) r(des) p 1927 3707 a(are) p 2065 3707 a(pro) n(vided) p 2407 3707 a(to) p 2508 3707 a(obtain) p 2766 3707 a(glyphs) p 3028 3707 a(of) p 3122 3707 a(fon) n(ts.) 1075 3886 y(|) p 1200 3886 a(High) p 1400 3886 a(resolution) p 1784 3886 a(device-orien) n(ted) p 2356 3886 a(mo) r(de) p 2580 3886 a(\(mo) r(de) p 2836 3886 a(1\)) 1200 3985 y(The) p 1374 3985 a(size) p 1535 3985 a(of) p 1634 3985 a(glyphs) p 1899 3985 a(is) p 1986 3985 a(sp) r(eci\014ed) p 2325 3985 a(b) n(y) p 2444 3985 a(the) p 2591 3985 a(ph) n(ysical) p 2913 3985 a(size) p 3074 3985 a(of) p 3173 3985 a(glyphs) p 3438 3985 a(and) p 3603 3985 a(device) 1200 4085 y(resolution.) 1075 4184 y(|) p 1200 4184 a(Lo) n(w) p 1378 4184 a(resolution) p 1762 4184 a(device-orien) n(ted) p 2334 4184 a(mo) r(de) p 2558 4184 a(\(mo) r(de) p 2814 4184 a(2\)) 1200 4284 y(Glyph) p 1452 4284 a(sizes) p 1642 4284 a(are) p 1780 4284 a(sp) r(eci\014ed) p 2115 4284 a(b) n(y) p 2230 4284 a(pixel) p 2431 4284 a(size) p 2588 4284 a(rather) p 2838 4284 a(than) p 3032 4284 a(b) n(y) p 3147 4284 a(device) p 3398 4284 a(resolution.) 992 4463 y(When) p 1226 4463 a(the) p 1362 4463 a(size) p 1511 4463 a(of) p 1598 4463 a(a) p 1659 4463 a(glyph) p 1880 4463 a(in) p 1969 4463 a(the) p 2104 4463 a(source) p 2350 4463 a(fon) n(t) p 2513 4463 a(is) p 2589 4463 a(di\013eren) n(t) p 2909 4463 a(from) p 3097 4463 a(the) p 3232 4463 a(target) p 3469 4463 a(size,) p Fk 3642 4463 a(VFlib) p Fw 992 4562 a(scales) p 1219 4562 a(the) p 1357 4562 a(source) p 1606 4562 a(glyph) p 1830 4562 a(in) n(ternally) p 2170 4562 a(.) p 2215 4562 a(Th) n(us,) p 2443 4562 a(users) p 2647 4562 a(need) p 2836 4562 a(not) p 2978 4562 a(kno) n(w) p 3190 4562 a(kno) n(w) p 3402 4562 a(original) p 3697 4562 a(size) 992 4662 y(of) p 1087 4662 a(glyphs) p 1348 4662 a(in) p 1445 4662 a(fon) n(t) p 1615 4662 a(\014les.) 992 4801 y(Tw) n(o) p 1177 4801 a(mo) r(des) p 1431 4801 a(are) p 1567 4801 a(pro) n(vided) p 1907 4801 a(b) n(y) p 2020 4801 a(the) p 2160 4801 a(follo) n(wing) p 2509 4801 a(reason.) p 2788 4801 a(When) p 3028 4801 a(w) n(e) p 3148 4801 a(write) p 3359 4801 a(a) p 3425 4801 a(application) 992 4901 y(programs) p 1350 4901 a(that) p 1522 4901 a(prin) n(ts) p 1753 4901 a(do) r(cumen) n(ts) p 2161 4901 a(on) p 2269 4901 a(prin) n(ter,) p 2560 4901 a(it) p 2636 4901 a(is) p 2712 4901 a(con) n(v) n(enien) n(t) p 3115 4901 a(to) p 3209 4901 a(sp) r(ecify) p 3476 4901 a(glyph) p 3697 4901 a(size) 992 5000 y(b) n(y) p 1099 5000 a(p) r(oin) n(t) p 1308 5000 a(and) p 1461 5000 a(device) p 1704 5000 a(resolution) p 2079 5000 a(suc) n(h) p 2258 5000 a(as) p 2351 5000 a(glyph) p 2571 5000 a(of) p 2658 5000 a(12) p 2760 5000 a(p) r(oin) n(t) p 2968 5000 a(for) p 3087 5000 a(a) p 3148 5000 a(300) p 3292 5000 a(dpi) p 3426 5000 a(prin) n(ter.) p 3716 5000 a(On) 992 5100 y(the) p 1130 5100 a(other) p 1342 5100 a(hand,) p 1568 5100 a(when) p 1780 5100 a(w) n(e) p 1898 5100 a(write) p 2105 5100 a(a) p 2170 5100 a(application) p 2594 5100 a(programs) p 2954 5100 a(that) p 3129 5100 a(displa) n(ys) p 3439 5100 a(do) r(cumen) n(ts) 992 5199 y(on) p 1107 5199 a(CR) p 1221 5199 a(T) p 1309 5199 a(screen,) p 1582 5199 a(it) p 1665 5199 a(is) p 1749 5199 a(con) n(v) n(enien) n(t) p 2159 5199 a(to) p 2261 5199 a(sp) r(ecify) p 2535 5199 a(glyph) p 2764 5199 a(size) p 2921 5199 a(b) n(y) p 3036 5199 a(pixel.) p eop %%Page: 5 5 5 4 bop Fs -47 772 a(A) p 44 772 a(font) p 216 772 a(libr) l(ary) p 479 772 a(VFlib) p 710 772 a(3.5.0) p Fw 2746 772 a(5) p -47 874 2835 4 v 324 2557 a @beginspecial 0 @llx 0 @lly 251 @urx 188 @ury 2510 @rwi @setspecial %%BeginDocument: internal.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: internal.fig %%Creator: fig2dev Version 3.1 Patchlevel 2 %%CreationDate: Wed Dec 3 21:30:35 1997 %%For: kakugawa@assam (Hirotsugu Kakugawa) %%Orientation: Portrait %%BoundingBox: 0 0 251 188 %%Pages: 0 %%BeginSetup %%IncludeFeature: *PageSize Letter %%EndSetup %Magnification: 1.00 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -21.0 213.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 10 setmiterlimit n 0 792 m 0 0 l 612 0 l 612 792 l cp clip 0.06000 0.06000 sc /Helvetica-Bold ff 180.00 scf sf 4050 1350 m gs 1 -1 sc (VFlib) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 3975 2850 m gs 1 -1 sc (PK) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 3975 3045 m gs 1 -1 sc (font) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 3975 3240 m gs 1 -1 sc (driver) dup sw pop 2 div neg 0 rm col-1 sh gr 15.000 slw % Polyline [15 50.0] 50.0 sd n 1050 2025 m 3225 2025 l gs col-1 s gr [] 0 sd % Polyline [15 50.0] 50.0 sd n 1050 1575 m 3225 1575 l gs col-1 s gr [] 0 sd 7.500 slw % Polyline gs clippath 1821 2390 m 1870 2276 l 1880 2400 l 1907 2240 l 1848 2230 l cp clip 1854 2560 m 1804 2673 l 1795 2550 l 1768 2710 l 1827 2720 l cp clip n 1800 2700 m 1875 2250 l gs col-1 s gr gr % arrowhead n 1854 2560 m 1804 2673 l 1795 2550 l 1824 2555 l 1854 2560 l cp gs 0.00 setgray ef gr col-1 s % arrowhead n 1821 2390 m 1870 2276 l 1880 2400 l 1851 2395 l 1821 2390 l cp gs 0.00 setgray ef gr col-1 s % Polyline gs clippath 2568 2399 m 2558 2275 l 2625 2380 l 2574 2226 l 2517 2245 l cp clip 2682 2551 m 2691 2674 l 2625 2570 l 2676 2724 l 2733 2705 l cp clip n 2700 2700 m 2550 2250 l gs col-1 s gr gr % arrowhead n 2682 2551 m 2691 2674 l 2625 2570 l 2654 2561 l 2682 2551 l cp gs 0.00 setgray ef gr col-1 s % arrowhead n 2568 2399 m 2558 2275 l 2625 2380 l 2596 2389 l 2568 2399 l cp gs 0.00 setgray ef gr col-1 s % Polyline gs clippath 3048 2335 m 2949 2260 l 3072 2280 l 2923 2217 l 2899 2272 l cp clip 3852 2615 m 3950 2689 l 3828 2670 l 3977 2733 l 4001 2678 l cp clip n 3975 2700 m 2925 2250 l gs col-1 s gr gr % arrowhead n 3852 2615 m 3950 2689 l 3828 2670 l 3840 2642 l 3852 2615 l cp gs 0.00 setgray ef gr col-1 s % arrowhead n 3048 2335 m 2949 2260 l 3072 2280 l 3060 2308 l 3048 2335 l cp gs 0.00 setgray ef gr col-1 s % Polyline gs clippath 1225 2333 m 1330 2269 l 1267 2375 l 1382 2261 l 1339 2218 l cp clip 1025 2617 m 919 2680 l 983 2575 l 868 2689 l 911 2732 l cp clip n 900 2700 m 1350 2250 l gs col-1 s gr gr % arrowhead n 1025 2617 m 919 2680 l 983 2575 l 1004 2596 l 1025 2617 l cp gs 0.00 setgray ef gr col-1 s % arrowhead n 1225 2333 m 1330 2269 l 1267 2375 l 1246 2354 l 1225 2333 l cp gs 0.00 setgray ef gr col-1 s 15.000 slw % Polyline n 1050 1350 m 3225 1350 l 3225 2250 l 1050 2250 l cp gs col-1 s gr % Polyline n 2325 2700 m 3075 2700 l 3075 3300 l 2325 3300 l cp gs col-1 s gr % Polyline n 1425 2700 m 2175 2700 l 2175 3300 l 1425 3300 l cp gs col-1 s gr % Polyline n 525 2700 m 1275 2700 l 1275 3300 l 525 3300 l cp gs col-1 s gr % Polyline [50.0] 0 sd n 3225 3000 m 3450 3000 l gs col-1 s gr [] 0 sd 7.500 slw % Polyline gs clippath 3528 1770 m 3648 1800 l 3528 1830 l 3690 1830 l 3690 1770 l cp clip 3372 1830 m 3252 1800 l 3372 1770 l 3210 1770 l 3210 1830 l cp clip n 3225 1800 m 3675 1800 l gs col-1 s gr gr % arrowhead n 3372 1830 m 3252 1800 l 3372 1770 l 3372 1800 l 3372 1830 l cp gs 0.00 setgray ef gr col-1 s % arrowhead n 3528 1770 m 3648 1800 l 3528 1830 l 3528 1800 l 3528 1770 l cp gs 0.00 setgray ef gr col-1 s 15.000 slw % Polyline n 3675 1650 m 4275 1650 l 4275 2025 l 3675 2025 l cp gs col-1 s gr % Polyline n 1275 450 m 3675 450 l 3675 750 l 1275 750 l cp gs col-1 s gr % Polyline n 375 1125 m 4500 1125 l 4500 3525 l 375 3525 l cp gs col-1 s gr 7.500 slw % Polyline gs clippath 2445 897 m 2475 777 l 2505 897 l 2505 735 l 2445 735 l cp clip 2505 1203 m 2475 1323 l 2445 1203 l 2445 1365 l 2505 1365 l cp clip n 2475 1350 m 2475 750 l gs col-1 s gr gr % arrowhead n 2505 1203 m 2475 1323 l 2445 1203 l 2475 1203 l 2505 1203 l cp gs 0.00 setgray ef gr col-1 s % arrowhead n 2445 897 m 2475 777 l 2505 897 l 2475 897 l 2445 897 l cp gs 0.00 setgray ef gr col-1 s /Times-Roman ff 150.00 scf sf 2700 2850 m gs 1 -1 sc (TrueType) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 2700 3045 m gs 1 -1 sc (font) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 2700 3240 m gs 1 -1 sc (driver) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 900 2850 m gs 1 -1 sc (BDF) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 900 3045 m gs 1 -1 sc (font) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 900 3240 m gs 1 -1 sc (driver) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 1800 2850 m gs 1 -1 sc (PCF) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 1800 3045 m gs 1 -1 sc (font) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 1800 3240 m gs 1 -1 sc (driver) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 180.00 scf sf 2175 1875 m gs 1 -1 sc (VFlib core) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 2175 1500 m gs 1 -1 sc (VFlib API) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 2175 2175 m gs 1 -1 sc (font driver interface) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman ff 150.00 scf sf 3975 1875 m gs 1 -1 sc (vflibcap) dup sw pop 2 div neg 0 rm col-1 sh gr /Helvetica-Bold ff 180.00 scf sf 2475 675 m gs 1 -1 sc (Application Software) dup sw pop 2 div neg 0 rm col-1 sh gr 15.000 slw % Polyline n 3600 2700 m 4350 2700 l 4350 3300 l 3600 3300 l cp gs col-1 s gr $F2psEnd rs %%EndDocument @endspecial 715 2773 a(Figure) p 977 2773 a(1:) p 1069 2773 a(In) n(ternal) p 1383 2773 a(structure) p 1739 2773 a(of) p Fk 1840 2773 a(VFlib) p Fg -47 3055 a(2.6.) p 220 3055 a(In) m(ternal) p 619 3055 a(Structure) p Fw -47 3278 a(The) p Fk 131 3278 a(VFlib) p Fw 352 3278 a(library) p 630 3278 a(consists) p 944 3278 a(of) p 1046 3278 a(a) p Fs 1123 3278 a(c) l(or) l(e) p Fw 1304 3278 a(and) p 1474 3278 a(sev) n(eral) p Fs 1754 3278 a(font) p 1933 3278 a(drivers) p Fw(.) p 2240 3278 a(The) p Fk 2419 3278 a(VFlib) p Fw 2640 3278 a(core) -47 3378 y(pro) n(vides) p 280 3378 a(en) n(try) p 496 3378 a(functions) p 853 3378 a(of) p 946 3378 a(the) p 1088 3378 a(API,) p 1286 3378 a(as) p 1387 3378 a(w) n(ell) p 1555 3378 a(as) p 1655 3378 a(a) p 1723 3378 a(fon) n(t) p 1893 3378 a(driv) n(er) p 2132 3378 a(table,) p 2362 3378 a(op) r(ened) p 2644 3378 a(fon) n(t) -47 3477 y(table,) p Fk 180 3477 a(v\015ib) r(cap) p Fw 472 3477 a(access) p 714 3477 a(mo) r(dule,) p 1026 3477 a(and) p 1184 3477 a(other) p 1398 3477 a(utilit) n(y) p 1643 3477 a(mo) r(dules.) p 1988 3477 a(The) p 2156 3477 a(in) n(ternal) p 2459 3477 a(structure) -47 3577 y(of) p Fk 54 3577 a(VFlib) p Fw 267 3577 a(is) p 350 3577 a(depicted) p 682 3577 a(in) p 779 3577 a(Figure) p 1041 3577 a(1.) -47 3724 y(Eac) n(h) p 160 3724 a(fon) n(t) p 332 3724 a(driv) n(er) p 573 3724 a(has) p 723 3724 a(corresp) r(onding) p 1257 3724 a(functions) p 1616 3724 a(for) p 1745 3724 a(eac) n(h) p 1933 3724 a(fon) n(t) p 2104 3724 a(op) r(eration) p 2477 3724 a(of) p Fk 2579 3724 a(VFlib) p Fw(.) -47 3824 y(Suc) n(h) p 160 3824 a(functions) p 525 3824 a(are) p 671 3824 a(implemen) n(ted) p 1169 3824 a(to) p 1277 3824 a(pro) n(vide) p Fk 1579 3824 a(VFlib) p Fw 1799 3824 a(API-compatible) p 2407 3824 a(b) r(eha) n(viour.) -47 3924 y(The) p 124 3924 a(set) p 255 3924 a(of) p 350 3924 a(capabilities) p 785 3924 a(that) p 966 3924 a(can) p 1119 3924 a(b) r(e) p 1233 3924 a(used) p 1424 3924 a(for) p 1552 3924 a(eac) n(h) p 1739 3924 a(fon) n(t) p 1911 3924 a(class) p 2107 3924 a(in) p Fk 2204 3924 a(v\015ib) r(cap) p Fw 2501 3924 a(\014le) p 2635 3924 a(ma) n(y) -47 4023 y(di\013er;) p 191 4023 a(eac) n(h) p 377 4023 a(fon) n(t) p 548 4023 a(class) p 743 4023 a(de\014nes) p 1015 4023 a(the) p 1158 4023 a(capabilities) p 1592 4023 a(it) p 1675 4023 a(needs.) p Fm -47 4362 a(3.) p 161 4362 a(The) p 401 4362 a(API) p Fw -47 4602 a(In) p 65 4602 a(this) p 236 4602 a(section) p 522 4602 a(w) n(e) p 653 4602 a(describ) r(e) p 983 4602 a(the) p 1135 4602 a(API) p 1320 4602 a(of) p Fk 1430 4602 a(VFlib) p Fw(.) p 1675 4602 a(The) p 1854 4602 a(API) p 2040 4602 a(that) p Fk 2228 4602 a(VFlib) p Fw 2450 4602 a(de\014nes) p 2732 4602 a(is) -47 4701 y(simple.) p 246 4701 a(F) p 293 4701 a(or) p 406 4701 a(example,) p 766 4701 a(as) p 879 4701 a(a) p 959 4701 a(con) n(trast,) p Fk 1315 4701 a(F) n(reeT) p 1512 4701 a(yp) r(e) p Fw 1671 4701 a(de\014nes) p 1955 4701 a(a) p 2035 4701 a(ric) n(h) p 2210 4701 a(set) p 2351 4701 a(of) p 2457 4701 a(functions) -47 4801 y(including) p 309 4801 a(access) p 552 4801 a(to) p 650 4801 a(k) n(erning) p 943 4801 a(information.) p 1413 4801 a(The) p 1580 4801 a(simplicit) n(y) p 1956 4801 a(of) p Fk 2054 4801 a(VFlib) p Fw 2264 4801 a(API) p 2437 4801 a(is) p 2518 4801 a(a) p 2584 4801 a(result) -47 4901 y(of) p 61 4901 a(the) p 217 4901 a(limitation) p 613 4901 a(that) p 807 4901 a(it) p 903 4901 a(m) n(ust) p 1122 4901 a(b) r(e) p 1248 4901 a(common) p 1594 4901 a(to) p 1709 4901 a(ev) n(ery) p 1941 4901 a(fon) n(t) p 2126 4901 a(format) p 2409 4901 a(that) p Fk 2602 4901 a(VFlib) p Fw -47 5000 a(supp) r(orts.) p Fk 310 5000 a(VFlib) p Fw 517 5000 a(do) r(es) p 699 5000 a(not) p 840 5000 a(ha) n(v) n(e) p 1026 5000 a(features) p 1332 5000 a(for) p 1453 5000 a(t) n(yp) r(esetting) p 1879 5000 a(suc) n(h) p 2060 5000 a(as) p 2157 5000 a(obtaining) p 2520 5000 a(k) n(erning) -47 5100 y(information) p 408 5100 a(of) p 508 5100 a(fon) n(ts.) p 740 5100 a(But) p 910 5100 a(it) p 999 5100 a(is) p 1088 5100 a(enough) p 1379 5100 a(strong) p 1639 5100 a(to) p 1746 5100 a(prin) n(t) p 1957 5100 a(and) p 2124 5100 a(displa) n(y) p 2411 5100 a(t) n(yp) r(esetted) -47 5199 y(do) r(cumen) n(ts) p 368 5199 a(suc) n(h) p 556 5199 a(as) p 658 5199 a(D) n(VI) p 839 5199 a(\014les.) p eop %%Page: 6 6 6 5 bop Fw 992 772 a(6) p Fs 3081 772 a(Hir) l(otsugu) p 3460 772 a(Kakugawa) p 992 874 2835 4 v Fg 992 1073 a(3.1.) p 1259 1073 a(Data) p 1517 1073 a(t) m(yp) s(es) p Fk 992 1288 a(VFlib) p Fw 1199 1288 a(de\014nes) p 1465 1288 a(the) p 1602 1288 a(follo) n(wing) p 1946 1288 a(three) p 2152 1288 a(data) p 2335 1288 a(t) n(yp) r(es) p 2548 1288 a(for) p 2669 1288 a(fon) n(t) p 2833 1288 a(access:) p 3096 1288 a(bitmaps) p 3408 1288 a(and) p 3563 1288 a(metrics) 992 1388 y(for) p 1119 1388 a(mo) r(des) p 1376 1388 a(1) p 1445 1388 a(and) p 1606 1388 a(2.) 1075 1643 y(|) p 1200 1643 a(Bitmap) p 1498 1643 a(ob) p 1591 1643 a(ject) 1200 1742 y(A) p 1290 1742 a(bitmap) p 1577 1742 a(ob) p 1670 1742 a(ject) p 1829 1742 a(is) p 1913 1742 a(a) p 1983 1742 a(set) p 2113 1742 a(of) p 2208 1742 a(fon) n(t) p 2379 1742 a(metrics) p 2671 1742 a(and) p 2833 1742 a(bitmap) p 3120 1742 a(data.) p 3333 1742 a(The) p 3504 1742 a(follo) n(wing) 1200 1842 y(is) p 1283 1842 a(the) p 1426 1842 a(de\014nition) p 1795 1842 a(of) p 1890 1842 a(bitmap) p 2176 1842 a(structure.) p Fe 1382 1962 a(struct) p 1657 1962 a(vf_s_bitmap) p 2128 1962 a({) 1461 2039 y(int) p 2088 2039 a(bbx_width,) p 2520 2039 a(bbx_height;) p 2991 2039 a(/*) p 3108 2039 a(in) p 3226 2039 a(pixels) p 3501 2039 a(*/) 1461 2116 y(int) p 2088 2116 a(off_x,) p 2363 2116 a(off_y;) p 2991 2116 a(/*) p 3108 2116 a(in) p 3226 2116 a(pixels) p 3501 2116 a(*/) 1461 2192 y(int) p 2088 2192 a(mv_x,) p 2363 2192 a(mv_y;) p 2991 2192 a(/*) p 3108 2192 a(in) p 3226 2192 a(pixels) p 3501 2192 a(*/) 1461 2269 y(unsigned) p 1814 2269 a(char*) p 2088 2269 a(bitmap;) 1461 2346 y(int) p 2088 2346 a(raster;) 1382 2423 y(};) p Fw 1200 2565 a(The) p 1379 2565 a(mem) n(b) r(ers) p Fj 1739 2565 a(bbx) p 1876 2565 27 4 v 1901 2565 a(width) p Fw 2156 2565 a(and) p Fj 2326 2565 a(bbx) p 2463 2565 V 2488 2565 a(height) p Fw 2786 2565 a(are) p 2934 2565 a(the) p 3085 2565 a(width) p 3329 2565 a(and) p 3500 2565 a(heigh) n(t) p 3760 2565 a(of) 1200 2665 y(the) p 1344 2665 a(bitmap,) p 1655 2665 a(resp) r(ectiv) n(ely) p 2074 2665 a(.) p 2125 2665 a(The) p 2298 2665 a(mem) n(b) r(ers) p Fj 2651 2665 a(bitmap) p Fw 2941 2665 a(and) p Fj 3104 2665 a(raster) p Fw 3395 2665 a(are) p 3536 2665 a(p) r(oin) n(ters) 1200 2765 y(to) p 1311 2765 a(the) p 1464 2765 a(glyph) p 1702 2765 a(data) p 1901 2765 a(and) p 2073 2765 a(the) p 2226 2765 a(n) n(um) n(b) r(er) p 2538 2765 a(of) p 2643 2765 a(b) n(ytes) p 2870 2765 a(of) p 2974 2765 a(a) p 3053 2765 a(raster.) p 3323 2765 a(The) p 3503 2765 a(mem) n(b) r(ers) p Fj 1200 2864 a(off) p 1337 2864 V 1362 2864 a(x) p Fw 1431 2864 a(and) p Fj 1591 2864 a(off) p 1728 2864 V 1753 2864 a(y) p Fw 1823 2864 a(form) p 2017 2864 a(a) p 2085 2864 a(v) n(ector) p 2332 2864 a(from) p 2527 2864 a(the) p 2668 2864 a(reference) p 3015 2864 a(p) r(oin) n(t) p 3230 2864 a(to) p 3330 2864 a(the) p 3471 2864 a(upp) r(er-left) 1200 2964 y(corner) p 1462 2964 a(of) p 1565 2964 a(a) p 1642 2964 a(bitmap.) p 1959 2964 a(The) p 2138 2964 a(mem) n(b) r(ers) p Fj 2497 2964 a(mv) p 2590 2964 V 2616 2964 a(x) p Fw 2695 2964 a(and) p Fj 2865 2964 a(mv) p 2958 2964 V 2983 2964 a(y) p Fw 3063 2964 a(form) p 3267 2964 a(a) p 3344 2964 a(v) n(ector) p 3602 2964 a(to) p 3711 2964 a(the) 1200 3063 y(next) p 1386 3063 a(reference) p 1735 3063 a(p) r(oin) n(t.) p 1975 3063 a(Metric) p 2240 3063 a(information) p 2690 3063 a(is) p 2774 3063 a(giv) n(en) p 2991 3063 a(in) p 3088 3063 a(pixel) p 3288 3063 a(form.) 1075 3163 y(|) p 1200 3163 a(Metric) p 1465 3163 a(ob) p 1558 3163 a(ject) p 1716 3163 a(\(mo) r(des) p 2005 3163 a(1) p 2074 3163 a(and) p 2236 3163 a(2\)) 1200 3263 y(Metric) p 1464 3263 a(ob) p 1557 3263 a(jects) p 1748 3263 a(for) p 1874 3263 a(mo) r(des) p 2130 3263 a(1) p 2199 3263 a(\(high) p 2415 3263 a(resolution) p 2798 3263 a(device-orien) n(ted) p 3369 3263 a(mo) r(de\)) p 3624 3263 a(and) p 3785 3263 a(2) 1200 3362 y(\(lo) n(w) p 1378 3362 a(resolution) p 1758 3362 a(device-orien) n(ted) p 2326 3362 a(mo) r(de\)) p 2578 3362 a(are) p 2713 3362 a(de\014ned) p 2995 3362 a(similarly) p 3331 3362 a(as) p 3429 3362 a(bitmap) p 3711 3362 a(ob-) 1200 3462 y(jects) p 1386 3462 a(except) p 1642 3462 a(that) p 1816 3462 a(they) p 1998 3462 a(do) p 2108 3462 a(not) p 2250 3462 a(ha) n(v) n(e) p Fj 2436 3462 a(bitmap) p Fw 2720 3462 a(and) p Fj 2876 3462 a(raster) p Fw 3160 3462 a(mem) n(b) r(ers.) p 3529 3462 a(Mem) n(b) r(er) 1200 3562 y(t) n(yp) r(es) p 1414 3562 a(of) p 1503 3562 a(mo) r(de) p 1721 3562 a(1) p 1785 3562 a(metric) p 2038 3562 a(ob) p 2131 3562 a(jects) p 2317 3562 a(are) p Fj 2450 3562 a(double) p Fw(,) p 2757 3562 a(not) p Fj 2900 3562 a(int) p Fw(;) p 3076 3562 a(their) p 3269 3562 a(units) p 3472 3562 a(are) p 3605 3562 a(p) r(oin) n(ts) 1200 3661 y(rather) p 1449 3661 a(than) p 1643 3661 a(pixels.) p Fg 992 3933 a(3.2.) p 1259 3933 a(F) p 1316 3933 a(unctions) p Fw 1075 4104 a(|) p Fj 1200 4104 a(int) p 1374 4104 a(VF) p 1467 4104 V 1493 4104 a(Init\(char*) p Fd 1972 4104 a(vflibcap) p Fj(,) p 2408 4104 a(char*) p Fd 2669 4104 a(variable) p 3026 4104 V 3049 4104 a(list) p Fj 3238 4104 a(\)) p Fw 1200 4203 a(Initialize) p Fk 1545 4203 a(VFlib) p Fw(.) p 1783 4203 a(The) p 1956 4203 a(\014rst) p 2129 4203 a(argumen) n(t) p Fs 2502 4203 a(v\015ib) l(c) l(ap) p Fw 2802 4203 a(is) p 2888 4203 a(the) p 3033 4203 a(\014le) p 3168 4203 a(name) p 3392 4203 a(of) p 3488 4203 a(a) p Fk 3559 4203 a(v\015ib) r(cap) p Fw 1200 4303 a(\014le.) p 1362 4303 a(The) p 1538 4303 a(second) p 1811 4303 a(argumen) n(t) p Fs 2188 4303 a(variable) p 2472 4303 26 4 v 2500 4303 a(list) p Fw 2641 4303 a(is) p 2730 4303 a(a) p 2804 4303 a(list) p 2949 4303 a(of) p 3049 4303 a(parameters) p 3484 4303 a(passed) p 3753 4303 a(to) p Fk 1200 4402 a(VFlib) p Fw 1418 4402 a(for) p 1550 4402 a(parameterization) p 2197 4402 a(of) p Fk 2303 4402 a(v\015ib) r(cap) p Fw(.) p 2627 4402 a(\(See) p 2812 4402 a(subsection) p 3220 4402 a(4.3) p 3359 4402 a(for) p 3491 4402 a(details) p 3760 4402 a(of) 1200 4502 y(parameterization.\)) 1075 4602 y(|) p Fj 1200 4602 a(int) p 1374 4602 a(VF) p 1467 4602 27 4 v 1493 4602 a(OpenFont1\(char*) p Fd 2190 4602 a(font) p 2371 4602 V 2396 4602 a(name) p Fj(,) p 2657 4602 a(double) p Fd 2962 4602 a(dpi) p 3099 4602 V 3124 4602 a(x) p Fj(,) p 3255 4602 a(double) p Fd 3560 4602 a(dpi) p 3697 4602 V 3722 4602 a(y) p Fj(,) 1200 4701 y(double) p Fd 1505 4701 a(point) p 1730 4701 V 1754 4701 a(size) p Fj(,) p 2016 4701 a(double) p Fd 2321 4701 a(mag) p 2458 4701 V 2483 4701 a(x) p Fj(,) p 2614 4701 a(double) p Fd 2919 4701 a(mag) p 3056 4701 V 3081 4701 a(y) p Fj 3139 4701 a(\)) p Fw 1200 4801 a(Op) r(en) p 1417 4801 a(a) p 1480 4801 a(fon) n(t) p 1644 4801 a(in) p 1735 4801 a(mo) r(de) p 1952 4801 a(1.) p 2038 4801 a(The) p 2202 4801 a(fon) n(t) p 2366 4801 a(name) p 2581 4801 a(is) p 2658 4801 a(giv) n(en) p 2869 4801 a(b) n(y) p 2978 4801 a(the) p 3114 4801 a(\014rst) p 3279 4801 a(argumen) n(t.) p 3668 4801 a(Tw) n(o) 1200 4901 y(argumen) n(ts) p Fs 1614 4901 a(mag) p 1767 4901 26 4 v 1793 4901 a(x) p Fw 1879 4901 a(and) p Fs 2050 4901 a(mag) p 2203 4901 V 2229 4901 a(y) p Fw 2314 4901 a(are) p 2462 4901 a(horizon) n(tal) p 2862 4901 a(and) p 3033 4901 a(v) n(ertical) p 3338 4901 a(magni\014cation) 1200 5000 y(factors.) p 1508 5000 a(The) p 1694 5000 a(actual) p 1958 5000 a(fon) n(t) p 2144 5000 a(size) p 2317 5000 a(is) p 2415 5000 a(determined) p 2864 5000 a(b) n(y) p 2995 5000 a(these) p 3222 5000 a(argumen) n(ts.) p 3665 5000 a(This) 1200 5100 y(function) p 1531 5100 a(returns) p 1823 5100 a(a) p 1898 5100 a(fon) n(t) p 2074 5100 a(iden) n(ti\014er) p 2428 5100 a(\(fon) n(t) p 2637 5100 a(id\)) p 2772 5100 a(for) p 2905 5100 a(the) p 3053 5100 a(op) r(ened) p 3343 5100 a(fon) n(t.) p 3542 5100 a(All) p 3684 5100 a(fon) n(t) 1200 5199 y(op) r(erations) p 1604 5199 a(tak) n(e) p 1784 5199 a(this) p 1946 5199 a(fon) n(t) p 2116 5199 a(id) p 2213 5199 a(to) p 2315 5199 a(sp) r(ecify) p 2590 5199 a(a) p 2659 5199 a(target) p 2903 5199 a(fon) n(t.) p eop %%Page: 7 7 7 6 bop Fs -47 772 a(A) p 44 772 a(font) p 216 772 a(libr) l(ary) p 479 772 a(VFlib) p 710 772 a(3.5.0) p Fw 2746 772 a(7) p -47 874 2835 4 v 36 1073 a(|) p Fj 160 1073 a(int) p 335 1073 a(VF) p 428 1073 27 4 v 453 1073 a(OpenFont2\(char) p 1107 1073 a(*) p Fd(font) p 1332 1073 V 1356 1073 a(name) p Fj(,) p 1618 1073 a(int) p Fd 1792 1073 a(pixel) p 2017 1073 V 2041 1073 a(size) p Fj(,) p 2303 1073 a(double) p Fd 160 1173 a(mag) p 297 1173 V 322 1173 a(x) p Fj(,) p 453 1173 a(double) p Fd 758 1173 a(mag) p 895 1173 V 920 1173 a(y) p Fj 978 1173 a(\)) p Fw 160 1273 a(Op) r(en) p 415 1273 a(a) p 515 1273 a(fon) n(t) p 717 1273 a(in) p 845 1273 a(lo) n(w) p 1026 1273 a(resolution) p 1440 1273 a(mo) r(de.) p 1718 1273 a(This) p 1939 1273 a(function) p 2295 1273 a(is) p 2410 1273 a(similar) p 2714 1273 a(to) p Fj 160 1372 a(VF) p 253 1372 V 279 1372 a(OpenFont1\(\)) p Fw 786 1372 a(except) p 1047 1372 a(fon) n(t) p 1217 1372 a(size) p 1375 1372 a(is) p 1458 1372 a(giv) n(en) p 1675 1372 a(in) p 1772 1372 a(pixels.) 36 1472 y(|) p Fj 160 1472 a(VF) p 253 1472 V 279 1472 a(BITMAP) p 584 1472 a(VF) p 677 1472 V 703 1472 a(GetBitmap1\(int) p Fd 1356 1472 a(font) p 1537 1472 V 1562 1472 a(id) p Fj(,) p 1736 1472 a(long) p Fd 1954 1472 a(code) p 2135 1472 V 2160 1472 a(point) p Fj(,) p 2465 1472 a(double) p Fd 160 1571 a(mag) p 297 1571 V 322 1571 a(x) p Fj(,) p 453 1571 a(double) p Fd 758 1571 a(mag) p 895 1571 V 920 1571 a(y) p Fj 978 1571 a(\)) p Fw 160 1671 a(Obtain) p 448 1671 a(a) p 524 1671 a(glyph) p 759 1671 a(bitmap) p 1052 1671 a(of) p 1154 1671 a(a) p 1230 1671 a(giv) n(en) p 1453 1671 a(fon) n(t) p 1631 1671 a(id) p 1734 1671 a(\(in) p 1870 1671 a(mo) r(de) p 2101 1671 a(1\)) p 2209 1671 a(and) p 2377 1671 a(co) r(de) p 2575 1671 a(p) r(oin) n(t.) 160 1771 y(The) p 329 1771 a(fon) n(t) p 498 1771 a(id) p Fs 593 1771 a(font) p 740 1771 26 4 v 766 1771 a(id) p Fw 868 1771 a(m) n(ust) p 1072 1771 a(b) r(e) p 1183 1771 a(an) p 1297 1771 a(id) p 1392 1771 a(returned) p 1727 1771 a(b) n(y) p Fj 1842 1771 a(VF) p 1935 1771 27 4 v 1961 1771 a(OpenFont1\(\)) p Fw(.) p 2489 1771 a(The) p 2658 1771 a(size) 160 1870 y(of) p 258 1870 a(the) p 404 1870 a(bitmap) p 693 1870 a(to) p 798 1870 a(b) r(e) p 914 1870 a(obtained) p 1258 1870 a(can) p 1414 1870 a(b) r(e) p 1530 1870 a(sp) r(eci\014ed) p 1868 1870 a(b) n(y) p 1986 1870 a(the) p Fs 2132 1870 a(mag) p 2285 1870 26 4 v 2311 1870 a(x) p Fw(,) p 2403 1870 a(and) p Fs 2568 1870 a(mag) p 2721 1870 V 2747 1870 a(y) p Fw 160 1970 a(argumen) n(ts.) 36 2070 y(|) p Fj 160 2070 a(VF) p 253 2070 27 4 v 279 2070 a(BITMAP) p 584 2070 a(VF) p 677 2070 V 703 2070 a(GetBitmap2\(int) p Fd 1356 2070 a(font) p 1537 2070 V 1562 2070 a(id) p Fj(,) p 1736 2070 a(long) p Fd 1954 2070 a(code) p 2135 2070 V 2160 2070 a(point) p Fj(,) p 2465 2070 a(double) p Fd 160 2169 a(mag) p 297 2169 V 322 2169 a(x) p Fj(,) p 453 2169 a(double) p Fd 758 2169 a(mag) p 895 2169 V 920 2169 a(y) p Fj 978 2169 a(\)) p Fw 160 2269 a(Obtain) p 442 2269 a(a) p 511 2269 a(glyph) p 739 2269 a(bitmap) p 1025 2269 a(of) p 1120 2269 a(a) p 1189 2269 a(giv) n(en) p 1406 2269 a(fon) n(t) p 1576 2269 a(\(in) p 1705 2269 a(mo) r(de) p 1929 2269 a(2\)) p 2031 2269 a(and) p 2192 2269 a(co) r(de) p 2383 2269 a(p) r(oin) n(t.) p Fk -47 2490 a(VFlib) p Fw 174 2490 a(de\014nes) p 455 2490 a(other) p 681 2490 a(functions) p 1047 2490 a(suc) n(h) p 1243 2490 a(as) p Fj 1354 2490 a(VF) p 1447 2490 V 1472 2490 a(METRIC1) p 1821 2490 a(VF) p 1914 2490 V 1940 2490 a(GetMetric1\(\)) p Fw 2499 2490 a(and) p Fj 2669 2490 a(VF) p 2762 2490 V -47 2590 a(METRIC2) p 301 2590 a(VF) p 394 2590 V 420 2590 a(GetMetric2\(\)) p Fw 982 2590 a(to) p 1094 2590 a(obtain) p 1363 2590 a(fon) n(t) p 1545 2590 a(metrics) p 1847 2590 a(of) p 1952 2590 a(a) p 2032 2590 a(c) n(haracter) p 2406 2590 a(of) p 2511 2590 a(mo) r(de) p 2746 2590 a(1) -47 2689 y(and) p 122 2689 a(2) p 200 2689 a(fon) n(ts,) p 434 2689 a(resp) r(ectiv) n(ely;) p Fj 918 2689 a(VF) p 1011 2689 V 1037 2689 a(OUTLINE) p 1386 2689 a(VF) p 1479 2689 V 1504 2689 a(GetOutline\(\)) p Fw 2063 2689 a(to) p 2173 2689 a(obtain) p Fk 2439 2689 a(VFlib) p Fw 2660 2689 a(for-) -47 2789 y(mat) p 130 2789 a(v) n(ector) p 387 2789 a(data) p 583 2789 a(of) p 684 2789 a(a) p 760 2789 a(c) n(haracter) p 1130 2789 a(of) p 1231 2789 a(mo) r(de) p 1462 2789 a(1) p 1538 2789 a(fon) n(ts;) p 1772 2789 a(and) p Fj 1940 2789 a(VF) p 2033 2789 V 2059 2789 a(BITMAP) p 2364 2789 a(VF) p 2457 2789 V 2482 2789 a(Outline) -47 2889 y(ToBitmap\(\)) p Fw 422 2889 a(to) p 528 2889 a(con) n(v) n(ert) p Fk 827 2889 a(VFlib) p Fw 1045 2889 a(format) p 1320 2889 a(v) n(ector) p 1574 2889 a(data) p 1769 2889 a(to) p 1875 2889 a(a) p 1950 2889 a(bitmap.) p 2264 2889 a(By) p 2400 2889 a(calling) p Fj 2669 2889 a(VF) p 2762 2889 V -47 2988 a(InstallFontDrive) o(r\() o(\)) p Fw(,) p 832 2988 a(a) p 901 2988 a(fon) n(t) p 1071 2988 a(driv) n(er) p 1312 2988 a(is) p 1395 2988 a(installed.) p Fm -47 3299 a(4.) p 161 3299 a(A) p 288 3299 a(F) p 354 3299 a(on) m(t) p 559 3299 a(Database) p 1072 3299 a(File) p 1304 3299 a(\\) p Fc(v\015ib) s(cap) p Fm(") p Fw -47 3519 a(A) p Fk 44 3519 a(v\015ib) r(cap) p Fw 341 3519 a(\014le) p 477 3519 a(is) p 562 3519 a(a) p 633 3519 a(database) p 981 3519 a(of) p 1078 3519 a(fon) n(t) p 1250 3519 a(de\014nitions) p 1654 3519 a(for) p Fk 1782 3519 a(VFlib) p Fw(.) p 2020 3519 a(It) p 2112 3519 a(is) p 2197 3519 a(read) p 2384 3519 a(when) p Fk 2602 3519 a(VFlib) p Fw -47 3619 a(is) p 36 3619 a(initialized.) p 442 3619 a(A) p 532 3619 a(simple) p 791 3619 a(example) p 1116 3619 a(of) p 1211 3619 a(a) p Fk 1280 3619 a(v\015ib) r(cap) p Fw 1575 3619 a(\014le) p 1709 3619 a(is) p 1792 3619 a(sho) n(wn) p 2044 3619 a(b) r(elo) n(w:) p Fe 160 3817 a(\(define-default) p 827 3817 a(VFlib) 239 3894 y(\(uncompression-programs) p 1219 3894 a(\(".Z") p 1455 3894 a("zcat"\)) p 1769 3894 a(\(".gz") p 2043 3894 a("gzip) p 2279 3894 a(-cd"\)\)) 239 3971 y(\(implicit-font-classes) p 1180 3971 a(pcf) p 1337 3971 a(bdf\)) 239 4048 y(\(extension-hints) p 945 4048 a(\(".bdf") p 1259 4048 a(bdf\)) p 1455 4048 a(\(".pcf") p 1769 4048 a(pcf\)\)\)) 160 4201 y(\(define-default) p 827 4201 a(bdf) 239 4278 y(\(filename-extensions) p 1063 4278 a(".bdf"\)) 239 4355 y(\(font-directories) p 984 4355 a("/usr/local/share/fonts/X11//) q("\)) 239 4432 y(\(compression-extensions) p 1180 4432 a(".gz") p 1416 4432 a(".Z"\)\)) 160 4585 y(\(define-default) p 827 4585 a(pcf) 239 4662 y(\(filename-extensions) p 1063 4662 a(".pcf"\)) 239 4739 y(\(font-directories) p 984 4739 a("/usr/X11R6/lib/X11/fonts//") 984 4815 y ("/usr/openwin/lib/X11/fonts//) q("\)) 239 4892 y (\(compression-extensions) p 1180 4892 a(".gz") p 1416 4892 a(".Z"\)\)) 160 5046 y(\(define-font) p 709 5046 a(timR24) p 1102 5046 a(;) p 1180 5046 a(Times) p 1416 5046 a(Roman) p 1651 5046 a(24pt,) p 1886 5046 a(BDF) p 2043 5046 a(format) 239 5123 y(\(font-class) p 709 5123 a(bdf\)) 239 5199 y(\(dpi) p 435 5199 a(300\)) p 631 5199 a(\(point-size) p 1102 5199 a(24\)) p eop %%Page: 8 8 8 7 bop Fw 992 772 a(8) p Fs 3081 772 a(Hir) l(otsugu) p 3460 772 a(Kakugawa) p 992 874 2835 4 v Fe 1278 1073 a(\(font-file) p 1710 1073 a("timR24.bdf"\)\)) 1200 1227 y(\(define-font) p 1749 1227 a(timR18) p 2141 1227 a(;) p 2220 1227 a(Times) p 2455 1227 a(Roman) p 2690 1227 a(18pt,) p 2926 1227 a(PCF) p 3083 1227 a(format) 1278 1304 y(\(font-class) p 1749 1304 a(pcf\)) 1278 1380 y(\(dpi) p 1474 1380 a(300\)) p 1670 1380 a(\(point-size) p 2141 1380 a(24\)) 1278 1457 y(\(font-file) p 1710 1457 a("timR18.pcf"\)\)) p Fw 992 1684 a(By) p 1122 1684 a(a) p Fj 1190 1684 a(define-default) p Fw 1827 1684 a(construct,) p 2214 1684 a(a) p 2283 1684 a(default) p 2561 1684 a(v) p 2600 1684 a(alues) p 2807 1684 a(of) p 2901 1684 a(a) p 2970 1684 a(fon) n(t) p 3139 1684 a(class) p 3333 1684 a(is) p 3416 1684 a(de\014ned.) p 3724 1684 a(By) 992 1784 y(a) p Fj 1057 1784 a(define-font) p Fw 1560 1784 a(construct,) p 1945 1784 a(a) p 2010 1784 a(fon) n(t) p 2177 1784 a(is) p 2256 1784 a(de\014ned.) p 2561 1784 a(Semicolon) p 2949 1784 a(\() p Fj(;) p Fw(\)) p 3081 1784 a(starts) p 3309 1784 a(a) p 3374 1784 a(commen) n(t.) p 3751 1784 a(In) 992 1883 y(this) p 1152 1883 a(example,) p 1498 1883 a(there) p 1708 1883 a(are) p 1844 1883 a(three) p 2054 1883 a(de\014nitions) p 2453 1883 a(for) p 2578 1883 a(fon) n(t) p 2746 1883 a(class) p 2939 1883 a(default) p 3215 1883 a(\() p Fj(VFlib) p Fw(,) p Fj 3514 1883 a(BDF) p Fw(,) p 3693 1883 a(and) p Fj 992 1983 a(PCF) p Fw(\)) p 1182 1983 a(and) p 1343 1983 a(t) n(w) n(o) p 1500 1983 a(fon) n(t) p 1670 1983 a(de\014nitions) p 2071 1983 a(\() p Fj(timR24) p Fw 2392 1983 a(and) p Fj 2553 1983 a(timR18) p Fw(\).) p 2897 1983 a(The) p 3068 1983 a(\014rst) p 3238 1983 a(three) p 3450 1983 a(en) n(tries) p 3716 1983 a(are) 992 2083 y(used) p 1179 2083 a(to) p 1279 2083 a(giv) n(e) p 1447 2083 a(default) p 1724 2083 a(parameters) p 2152 2083 a(for) p Fk 2277 2083 a(VFlib) p Fw 2487 2083 a(and) p 2646 2083 a(eac) n(h) p 2831 2083 a(fon) n(t) p 2999 2083 a(class.) p 3215 2083 a(W) p 3293 2083 a(e) p 3356 2083 a(explain) p 3642 2083 a(these) 992 2182 y(en) n(tries) p 1253 2182 a(later) p 1443 2182 a(and) p 1599 2182 a(explain) p 1883 2182 a(the) p 2021 2182 a(other) p 2234 2182 a(t) n(w) n(o) p 2386 2182 a(en) n(tries) p 2647 2182 a(\014rst.) p 2837 2182 a(Although) p 3199 2182 a(man) n(y) p 3420 2182 a(capabilities) 992 2282 y(are) p 1131 2282 a(de\014ned,) p 1440 2282 a(w) n(e) p 1562 2282 a(explain) p 1850 2282 a(only) p 2032 2282 a(the) p 2175 2282 a(fundamen) n(tal) p 2655 2282 a(ones.) p Fg 992 2520 a(4.1.) p 1259 2520 a(F) p 1316 2520 a(on) m(t) p 1499 2520 a(en) m(tries) p Fw 992 2725 a(The) p 1168 2725 a(en) n(try) p Fj 1391 2725 a(timR24) p Fw 1686 2725 a(has) p 1839 2725 a(sev) n(eral) p 2117 2725 a(capabilities.) p 2580 2725 a(A) p 2675 2725 a(capabilit) n(y) p Fj 3064 2725 a(font-class) p Fw 3533 2725 a(sp) r(eci\014es) 992 2824 y(the) p 1144 2824 a(fon) n(t) p 1324 2824 a(class) p 1527 2824 a(name.) p 1781 2824 a(In) p 1894 2824 a(this) p 2065 2824 a(example,) p Fj 2422 2824 a(timR24) p Fw 2720 2824 a(b) r(elongs) p 3027 2824 a(to) p 3138 2824 a(the) p Fj 3290 2824 a(bdf) p Fw 3457 2824 a(fon) n(t) p 3637 2824 a(class.) 992 2924 y(The) p 1166 2924 a(capabilities) p Fj 1604 2924 a(dpi) p Fw 1766 2924 a(and) p Fj 1931 2924 a(point-size) p Fw 2398 2924 a(giv) n(e) p 2572 2924 a(device) p 2827 2924 a(resolution) p 3214 2924 a(and) p 3379 2924 a(p) r(oin) n(t) p 3599 2924 a(size) p 3760 2924 a(of) 992 3024 y(a) p 1060 3024 a(fon) n(t.) p 1253 3024 a(These) p 1492 3024 a(v) p 1531 3024 a(alues) p 1738 3024 a(are) p 1875 3024 a(used) p 2063 3024 a(when) p 2279 3024 a(this) p 2440 3024 a(fon) n(t) p 2609 3024 a(is) p 2691 3024 a(op) r(ened) p 2974 3024 a(in) p 3069 3024 a(mo) r(de) p 3292 3024 a(1.) p 3383 3024 a(A) p 3472 3024 a(capabilit) n(y) p Fj 992 3123 a(pixel-size) p Fw 1462 3123 a(giv) n(es) p 1671 3123 a(the) p 1820 3123 a(pixel) p 2027 3123 a(size.) p 2213 3123 a(This) p 2409 3123 a(v) p 2448 3123 a(alue) p 2629 3123 a(is) p 2718 3123 a(used) p 2914 3123 a(when) p 3137 3123 a(this) p 3305 3123 a(fon) n(t) p 3481 3123 a(is) p 3571 3123 a(op) r(ened) 992 3223 y(in) p 1087 3223 a(mo) r(de) p 1309 3223 a(2.) p 1399 3223 a(The) p 1567 3223 a(capabilities) p Fj 1999 3223 a(pixel-size) p Fw(,) p Fj 2484 3223 a(dpi) p Fw(,) p 2663 3223 a(and) p Fj 2823 3223 a(point-size) p Fw 3284 3223 a(can) p 3434 3223 a(b) r(e) p 3545 3223 a(omitted) 992 3323 y(since) p 1199 3323 a(a) p 1272 3323 a(BDF) p 1480 3323 a(fon) n(t) p 1655 3323 a(\014le) p 1793 3323 a(con) n(tains) p 2122 3323 a(their) p 2325 3323 a(v) p 2364 3323 a(alues.) p 2599 3323 a(A) p 2693 3323 a(capabilit) n(y) p Fj 3080 3323 a(font-file) p Fw 3504 3323 a(giv) n(es) p 3711 3323 a(the) 992 3422 y(\014le) p 1123 3422 a(name) p 1342 3422 a(of) p 1434 3422 a(the) p 1574 3422 a(fon) n(t.) p 1765 3422 a(Similarly) p 2084 3422 a(,) p Fj 2132 3422 a(timR18) p Fw 2418 3422 a(is) p 2499 3422 a(de\014ned) p 2782 3422 a(except) p 3040 3422 a(in) p 3135 3422 a(cases) p 3340 3422 a(of) p 3432 3422 a(PCF) p 3628 3422 a(fon) n(ts.) 992 3561 y(The) p 1171 3561 a(t) n(w) n(o) p 1337 3561 a(fon) n(t) p 1516 3561 a(\014les) p Fj 1692 3561 a(timR24.bdf) p Fw 2164 3561 a(and) p Fj 2334 3561 a(timR18.pcf) p Fw 2806 3561 a(are) p 2953 3561 a(b) r(oth) p 3158 3561 a(bitmap) p 3453 3561 a(fon) n(ts) p 3665 3561 a(used) 992 3661 y(in) p 1089 3661 a(X) p 1179 3661 a(Windo) n(w.) p 1530 3661 a(Although) p 1896 3661 a(pixel) p 2097 3661 a(size,) p 2277 3661 a(p) r(oin) n(t) p 2494 3661 a(size,) p 2675 3661 a(and) p 2836 3661 a(target) p 3081 3661 a(device) p 3332 3661 a(resolution) p 3716 3661 a(are) 992 3760 y(together) p 1330 3760 a(with) p 1530 3760 a(the) p 1683 3760 a(bitmap) p 1980 3760 a(giv) n(en) p 2207 3760 a(in) p 2314 3760 a(the) p 2467 3760 a(fon) n(t) p 2649 3760 a(\014le,) p Fk 2816 3760 a(VFlib) p Fw 3039 3760 a(in) n(ternally) p 3423 3760 a(enlarges) p 3753 3760 a(or) 992 3860 y(shrinks) p 1280 3860 a(bitmaps) p 1601 3860 a(to) p 1705 3860 a(yield) p 1908 3860 a(the) p 2054 3860 a(requested) p 2429 3860 a(size.) p 2612 3860 a(F) p 2659 3860 a(rom) p 2832 3860 a(a) p 2904 3860 a(user's) p 3139 3860 a(p) r(oin) n(t) p 3358 3860 a(of) p 3455 3860 a(view,) p 3672 3860 a(only) 992 3960 y(the) p 1141 3960 a(fon) n(t) p 1318 3960 a(names) p 1578 3960 a(\() p Fj(timR24) p Fw 1906 3960 a(and) p Fj 2073 3960 a(timR18) p Fw(\)) p 2401 3960 a(are) p 2545 3960 a(visible;) p 2831 3960 a(users) p 3046 3960 a(need) p 3246 3960 a(not) p 3399 3960 a(b) r(e) p 3518 3960 a(a) n(w) n(are) p 3760 3960 a(of) 992 4059 y(fon) n(t) p 1163 4059 a(formats.) p Fg 992 4297 a(4.2.) p 1259 4297 a(Default) p 1633 4297 a(descriptions) p Fw 992 4502 a(In) p 1088 4502 a(the) p 1223 4502 a(example) p 1540 4502 a(ab) r(o) n(v) n(e,) p 1790 4502 a(there) p 1994 4502 a(are) p 2125 4502 a(three) p 2329 4502 a(default) p 2600 4502 a(descriptions.) p 3073 4502 a(The) p 3235 4502 a(\014rst) p 3399 4502 a(en) n(try) p Fj 3609 4502 a(VFlib) p Fw 992 4602 a(is) p 1071 4602 a(used) p 1256 4602 a(to) p 1352 4602 a(giv) n(e) p 1518 4602 a(global) p 1758 4602 a(parameters) p 2183 4602 a(of) p Fk 2279 4602 a(VFlib) p Fw(.) p 2510 4602 a(In) p 2609 4602 a(our) p 2752 4602 a(example,) p 3096 4602 a(the) p 3234 4602 a(relation) p 3534 4602 a(b) r(et) n(w) n(een) 992 4701 y(the) p 1127 4701 a(\014lename) p 1447 4701 a(extension) p 1806 4701 a(and) p 1960 4701 a(an) p 2068 4701 a(uncompression) p 2619 4701 a(program) p 2944 4701 a(is) p 3020 4701 a(giv) n(en) p 3229 4701 a(b) n(y) p 3336 4701 a(the) p 3472 4701 a(capabilit) n(y) p Fj 992 4801 a(uncompression-pro) o(gr) o(am) o(s) p Fw(;) p 1994 4801 a(it) p 2069 4801 a(sp) r(eci\014es) p 2383 4801 a(that) p 2555 4801 a(\014les) p 2714 4801 a(whose) p 2951 4801 a(names) p 3197 4801 a(end) p 3346 4801 a(in) p Fj 3435 4801 a(.Z) p Fw 3542 4801 a(and) p Fj 3696 4801 a(.gz) p Fw 992 4901 a(are) p 1126 4901 a(uncompressed) p 1652 4901 a(b) n(y) p 1762 4901 a(running) p 2067 4901 a(commands) p Fj 2472 4901 a(zcat) p Fw 2669 4901 a(and) p Fj 2826 4901 a(gzip) p 3044 4901 a(-cd) p Fw(,) p 3220 4901 a(resp) r(ectiv) n(ely) p 3639 4901 a(.) p 3684 4901 a(The) 992 5000 y(capabilit) n(y) p Fj 1381 5000 a(implicit-font-cl) o(ass) o(es) p Fw 2329 5000 a(sp) r(eci\014es) p 2655 5000 a(a) p 2729 5000 a(list) p 2873 5000 a(of) p 2973 5000 a(fon) n(t) p 3148 5000 a(classes) p 3418 5000 a(that) p 3602 5000 a(searc) n(h) 992 5100 y(implicit) p 1298 5100 a(fon) n(ts.) p 1527 5100 a(When) p 1771 5100 a(a) p 1842 5100 a(fon) n(t) p 2014 5100 a(is) p 2100 5100 a(op) r(ened) p 2385 5100 a(and) p 2549 5100 a(a) p 2620 5100 a(corresp) r(onding) p 3155 5100 a(en) n(try) p 3374 5100 a(is) p 3460 5100 a(missing) p 3758 5100 a(in) p Fk 992 5199 a(v\015ib) r(cap) p Fw(,) p 1317 5199 a(fon) n(t) p 1494 5199 a(driv) n(ers) p 1774 5199 a(giv) n(en) p 1997 5199 a(b) n(y) p 2119 5199 a(this) p 2288 5199 a(capabilit) n(y) p 2677 5199 a(are) p 2822 5199 a(called) p 3064 5199 a(to) p 3172 5199 a(searc) n(h) p 3431 5199 a(the) p 3580 5199 a(fon) n(t) p 3758 5199 a(in) p eop %%Page: 9 9 9 8 bop Fs -47 772 a(A) p 44 772 a(font) p 216 772 a(libr) l(ary) p 479 772 a(VFlib) p 710 772 a(3.5.0) p Fw 2746 772 a(9) p -47 874 2835 4 v -47 1073 a(giv) n(en) p 163 1073 a(order.) p 397 1073 a(Supp) r(ose) p 716 1073 a(a) p 779 1073 a(fon) n(t) p 944 1073 a(named) p Fj 1205 1073 a(timR10.bdf) p Fw 1662 1073 a(is) p 1739 1073 a(requested) p 2105 1073 a(to) p 2200 1073 a(op) r(en.) p 2417 1073 a(Since) p 2628 1073 a(suc) n(h) -47 1173 y(an) p 72 1173 a(en) n(try) p 292 1173 a(do) r(es) p 483 1173 a(not) p 634 1173 a(exist) p 834 1173 a(in) p 934 1173 a(the) p Fk 1081 1173 a(v\015ib) r(cap) p Fw 1380 1173 a(\014le,) p 1540 1173 a(the) p 1687 1173 a(fon) n(t) p 1861 1173 a(is) p 1948 1173 a(searc) n(hed) p 2286 1173 a(as) p 2392 1173 a(an) p 2511 1173 a(implicit) -47 1273 y(fon) n(t) p 134 1273 a(b) n(y) p 259 1273 a(calling) p 533 1273 a(the) p 686 1273 a(PCF) p 895 1273 a(fon) n(t) p 1076 1273 a(driv) n(er) p 1326 1273 a(\014rst,) p 1531 1273 a(and) p 1703 1273 a(then) p 1903 1273 a(the) p 2056 1273 a(BDF) p 2270 1273 a(fon) n(t) p 2451 1273 a(driv) n(er.) p 2725 1273 a(A) -47 1372 y(capabilit) n(y) p Fj 340 1372 a(extension-hints) p Fw 1025 1372 a(giv) n(es) p 1232 1372 a(a) p 1304 1372 a(relation) p 1612 1372 a(of) p 1710 1372 a(fon) n(t) p 1884 1372 a(name) p 2109 1372 a(extension) p 2480 1372 a(and) p 2644 1372 a(fon) n(t) -47 1472 y(class.) p 172 1472 a(In) p 277 1472 a(the) p 421 1472 a(example,) p 770 1472 a(if) p 848 1472 a(an) p 964 1472 a(extension) p 1333 1472 a(of) p 1429 1472 a(a) p 1499 1472 a(fon) n(t) p 1671 1472 a(name) p 1894 1472 a(is) p Fj 1978 1472 a(.pcf) p Fw 2182 1472 a(\() p Fj(.bdf) p Fw(\),) p 2473 1472 a(the) p 2617 1472 a(PCF) -47 1571 y(\(BDF\)) p 215 1571 a(fon) n(t) p 379 1571 a(driv) n(er) p 612 1571 a(is) p 689 1571 a(called) p 918 1571 a(for) p 1038 1571 a(implicit) p 1336 1571 a(fon) n(t) p 1500 1571 a(searc) n(h.) p 1768 1571 a(F) p 1815 1571 a(or) p 1910 1571 a(example,) p 2252 1571 a(if) p 2321 1571 a(a) p 2384 1571 a(fon) n(t) p 2548 1571 a(named) p Fj -47 1671 a(timR08.bdf) p Fw 417 1671 a(is) p 501 1671 a(requested) p 873 1671 a(to) p 975 1671 a(op) r(en,) p 1200 1671 a(the) p 1343 1671 a(BDF) p 1548 1671 a(fon) n(t) p 1719 1671 a(driv) n(er) p 1960 1671 a(is) p 2044 1671 a(called.) p 2303 1671 a(This) p 2493 1671 a(is) p 2577 1671 a(useful) -47 1771 y(for) p 80 1771 a(searc) n(hing) p 443 1771 a(implicit) p 747 1771 a(fon) n(ts) p 950 1771 a(fast.) -47 1910 y(The) p 136 1910 a(next) p 336 1910 a(de\014nition) p Fj 718 1910 a(BDF) p Fw 889 1910 a(is) p 986 1910 a(a) p 1068 1910 a(default) p 1360 1910 a(description) p 1798 1910 a(for) p 1938 1910 a(the) p 2094 1910 a(BDF) p 2311 1910 a(fon) n(t) p 2494 1910 a(class.) p 2725 1910 a(A) -47 2009 y(capabilit) n(y) p Fj 335 2009 a(font-directories) p Fw 1059 2009 a(is) p 1141 2009 a(a) p 1209 2009 a(list) p 1347 2009 a(of) p 1440 2009 a(fon) n(t) p 1609 2009 a(directories) p 2010 2009 a(in) p 2106 2009 a(whic) n(h) p 2342 2009 a(fon) n(t) p 2511 2009 a(\014les) p 2676 2009 a(are) -47 2109 y(stored.) p 223 2109 a(If) p 304 2109 a(the) p 445 2109 a(directory) p 796 2109 a(name) p 1015 2109 a(is) p 1096 2109 a(terminated) p 1518 2109 a(b) n(y) p Fj 1632 2109 a(//) p Fw(,) p 1768 2109 a(\014les) p 1932 2109 a(are) p 2069 2109 a(searc) n(hed) p 2401 2109 a(recursiv) n(ely) -47 2208 y(under) p 198 2208 a(the) p 351 2208 a(directory) p 671 2208 a(.) p 730 2208 a(The) p 911 2208 a(en) n(try) p Fj 1139 2208 a(compression-exte) o(nsi) o(on) o(s) p Fw 2136 2208 a(giv) n(es) p 2349 2208 a(a) p 2428 2208 a(list) p 2577 2208 a(of) p 2681 2208 a(\014le) -47 2308 y(compressions) p 464 2308 a(that) p 656 2308 a(BDF) p 872 2308 a(fon) n(t) p 1054 2308 a(class) p 1261 2308 a(supp) r(orts.) p 1635 2308 a(Similarly) p 1954 2308 a(,) p 2016 2308 a(default) p 2307 2308 a(de\014nition) p 2688 2308 a(for) p Fj -47 2408 a(PCF) p Fw 111 2408 a(fon) n(t) p 282 2408 a(class) p 476 2408 a(is) p 560 2408 a(giv) n(en.) p Fg -47 2640 a(4.3.) p 220 2640 a(P) m(arameterized) p Ff 916 2640 a(v\015ib) s(cap) p Fw -47 2838 a(Capabilit) n(y) p 359 2838 a(v) p 398 2838 a(alues) p 607 2838 a(in) p Fk 704 2838 a(v\015ib) r(cap) p Fw 1000 2838 a(can) p 1153 2838 a(b) r(e) p 1267 2838 a(o) n(v) n(erridden) p 1676 2838 a(at) p 1778 2838 a(execution) p 2150 2838 a(time.) p 2363 2838 a(By) p 2493 2838 a(this) p 2656 2838 a(fea-) -47 2938 y(ture,) p 154 2938 a(called) p Fs 392 2938 a(p) l(ar) l(ameterization) p Fw(,) p 1050 2938 a(sev) n(eral) p 1325 2938 a(applications) p 1789 2938 a(can) p 1944 2938 a(share) p 2164 2938 a(the) p 2309 2938 a(same) p Fk 2520 2938 a(v\015ib) r(cap) p Fw -47 3038 a(\014le.) p 112 3038 a(The) p 284 3038 a(next) p 473 3038 a(example) p 800 3038 a(is) p 885 3038 a(a) p Fk 957 3038 a(v\015ib) r(cap) p Fw 1254 3038 a(for) p 1383 3038 a(prin) n(ter) p 1660 3038 a(driv) n(er) p 1902 3038 a(for) p 2031 3038 a(T) 2077 3056 y(E) 2123 3038 y(X) p 2215 3038 a(D) n(VI) p 2398 3038 a(\014le) p 2534 3038 a(for) p 2663 3038 a(300) -47 3137 y(dpi) p 96 3137 a(Canon) p 359 3137 a(Laser) p 582 3137 a(Shot.) p 799 3137 a(Note) p 999 3137 a(that) p 1179 3137 a(all) p 1294 3137 a(fon) n(ts) p 1498 3137 a(are) p 1636 3137 a(implicit) p 1941 3137 a(fon) n(ts.) p Fe 160 3305 a(\(define-default) p 827 3305 a(VFlib) 239 3382 y(\(implicit-font-classes) p 1180 3382 a(pk\)) 239 3459 y(\(extension-hints) p 945 3459 a(\("pk") p 1180 3459 a(pk\)\)) 239 3535 y(\(variable-values) p 945 3535 a(\(TeX_USE_KPATHSEA) p 1847 3535 a("Yes"\)) 945 3612 y(\(TeX_DPI) p 1847 3612 a("300"\)) 945 3689 y (\(TeX_KPATHSEA_MODE) p 1847 3689 a("cx"\)) 945 3766 y(\(TeX_KPATHSEA_PROGRAM) p 1847 3766 a("/usr/local/bin/xldvi"\)\)) 239 3843 y(\(use-kpathsea) p 1180 3843 a($TeX_USE_KPATHSEA\)) 239 3919 y(\(kpathsea-mode) p 1180 3919 a($TeX_KPATHSEA_MODE\)) 239 3996 y(\(kpathsea-program-name) p 1180 3996 a($TeX_KPATHSEA_PROGRAM\)) p 2082 3996 a(\)) 160 4150 y(\(define-default) p 827 4150 a(TeX) 239 4226 y(\(dpi) p 435 4226 a($TeX_DPI\)) 239 4303 y(\(tfm-directories) p 945 4303 a("TEXMF") p 1259 4303 a("/usr/local/fonts/tfm"\)) 239 4380 y(\(tfm-filename-extensions) p 1259 4380 a(".tfm"\)\)) 160 4534 y(\(define-default) p 788 4534 a(pk) 239 4610 y(\(font-directories) p 984 4610 a("TEXMF") p 1298 4610 a("/usr/local/fonts/pk"\)\)) p Fw -47 4801 a(In) p 63 4801 a(the) p Fj 212 4801 a(VFlib) p Fw 463 4801 a(en) n(try) p 646 4801 a(,) p 703 4801 a(the) p 852 4801 a(capabilit) n(y) p Fj 1242 4801 a(variables-values) p Fw 1973 4801 a(giv) n(es) p 2183 4801 a(a) p 2258 4801 a(list) p 2403 4801 a(of) p 2504 4801 a(v) p 2543 4801 a(ariable) -47 4901 y(names) p 207 4901 a(and) p 369 4901 a(their) p 568 4901 a(default) p 848 4901 a(v) p 887 4901 a(alues.) p 1118 4901 a(In) p 1223 4901 a(this) p 1385 4901 a(example,) p 1734 4901 a(there) p 1946 4901 a(are) p 2085 4901 a(three) p 2298 4901 a(v) p 2337 4901 a(ariables.) p 2666 4901 a(F) p 2713 4901 a(or) -47 5000 y(instance,) p 296 5000 a(the) p 436 5000 a(default) p 712 5000 a(v) p 751 5000 a(alue) p 923 5000 a(of) p Fj 1021 5000 a(TeX) p 1158 5000 27 4 v 1183 5000 a(DPI) p Fw 1339 5000 a(is) p Fj 1419 5000 a(300) p Fw(.) p 1597 5000 a(A) p 1684 5000 a(capabilit) n(y) p 2064 5000 a(v) p 2103 5000 a(alue) p 2275 5000 a(can) p 2425 5000 a(b) r(e) p 2535 5000 a(a) p 2601 5000 a(v) p 2640 5000 a(alue) -47 5100 y(of) p 53 5100 a(a) p 128 5100 a(v) p 167 5100 a(ariable) p 445 5100 a(if) p 527 5100 a(a) p 602 5100 a(dollar) p 843 5100 a(sign) p 1020 5100 a(\() p Fj($) p Fw(\)) p 1161 5100 a(follo) n(w) n(ed) p 1488 5100 a(b) n(y) p 1609 5100 a(a) p 1684 5100 a(v) p 1723 5100 a(ariable) p 2001 5100 a(name) p 2228 5100 a(is) p 2317 5100 a(giv) n(en.) p 2563 5100 a(In) p 2672 5100 a(the) p Fj -47 5199 a(VFlib) p Fw 198 5199 a(en) n(try) p 381 5199 a(,) p 432 5199 a(initialization) p 916 5199 a(parameters) p 1346 5199 a(for) p Fk 1473 5199 a(kpathsea) p Fw 1805 5199 a(are) p 1944 5199 a(giv) n(en.) p eop %%Page: 10 10 10 9 bop Fw 992 772 a(10) p Fs 3081 772 a(Hir) l(otsugu) p 3460 772 a(Kakugawa) p 992 874 2835 4 v 1681 1221 a @beginspecial 181 @llx 402 @lly 414 @urx 439 @ury 1747 @rwi @setspecial %%BeginDocument: comic-jp.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: /AMD/keemun/export/disk1/home/kakugawa/res/EuroTeX98/comic-jp.eps %%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley %%BoundingBox: 181 402 414 439 %%Pages: 1 %%DocumentFonts: %%EndComments %%EndProlog %%Page: 1 1 % remember original state /origstate save def % build a temporary dictionary 20 dict begin % define string to hold a scanline's worth of data /pix 122 string def % define space for color conversions /grays 969 string def % space for gray scale line /npixls 0 def /rgbindx 0 def % lower left corner 181 402 translate % size of image (on paper, in 1/72inch coords) 232.56000 37.44000 scale % dimensions of data 969 156 1 % mapping matrix [969 0 0 -156 0 156] {currentfile pix readhexstring pop} image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff801ffff ffffffffffffffffffffffffff80 ffffffffffffe3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001fff ffffffffffffffffffffffffff80 fffffffffffe01ffffff9fffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80003ff ffffffffffffffffffffffffff80 fffffffffff801ffffff83ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80007f ffffffffffffffffffffffffff80 ffffffffff8000ffffff803fffffffffffffffffffffffffffffc01fffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0003f ffffffffffffffffffffffffff80 fffffffff00000ffffff000fffffffffffff8fffffffffffffff8001ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001f ffffffffffffffffffffffffff80 ffffffff8000007fffff000fffffffffffff03ffffffffffffff80001fffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000f ffffffffffffffffffffffffff80 fffffff80000007fffff000fffffffffffff007fffffffffffffc00007ffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000f ffffffffffffffffffffffffff80 ffffff000000003fffff001fffffffffffff803ffffffffffffffc0001ffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000f ffffffffffffffffffffffffff80 ffffc0000000007ffffe001fffffffffffffe00fffffffffffffff8001ffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000f ffffffffffffffffffffffffff80 fff00000000003fffffe001ffffffffffffff807ffffffffffffffc001ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff003f ffffffffffffffffffffffffff80 ff80000000000ffffffe001ffffffffffffff803ffffffffffffffc001ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff003f ffffffffffffffffffffffffff80 ff8000000001fffffffe003ffffffffffffffc00ffffffffffffffe003ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffffff8fffffffffffffffffffff007f ffffffffffffffffffffffffff80 ffc000000007fffffffe003ffffffffffffffe007fffffffffffffe003ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffffc07ffffffffffffffffffff007f ffffffffffffffffffffffffff80 ffc00000007ffffffffc003fffffffffffffff003ffffffffffffff007ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffffffffffffffffffffffffe0003ffffffffffffffffffff007f ffffffffffffffffffffffffff80 ffe0000000fffffffffc003fffffffffffffff001ffffffffffffff007ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffffc00001ffffffffffffffffffff007f ffffffffffffffffffffffffff80 ffe0000000fffffffffc007fffffffffffffff001ffffffffffffff007ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffffffc0000000ffffffffffffffffffff007f ffffffffffffffffffffffffff80 fff0001e00fffffffffc007fffffffffffffff000ffffffffffffff007ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007ffffffffffffffffffffffffffffffffff80000000007fffffffffffffffffff807f fffffff87fffffffffffffffff80 fff003fe00fffffffff8007fffffffffffffff000ffffffffffffff007ffffffffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffffdffffffffffffff0000000000003fffffffffffffffffff807f ffffffc03fffffffffffffffff80 fff87ffe00fffffffff8007fffffffffffffff000ffffffffffffff007ffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffff0ffffffffffffc00000000000001fffffffffffffffffff807f ffff00001fffffffffffffffff80 fffffffe00fffffffff800ffffffffffffffff001ffffffffffffff007ffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffff0ffffffffff00000000000000001ffff7ffffffffffffff807e 000000000fffffffffffffffff80 fffffffe00fffffffff800fffffffffffffffe001ffffffffffffff007ffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffff87fffffffe000000000000000001fffe3fffffffffffffe0000 0000000007ffffffffffffffff80 fffffffe00fffffffff800fffffffffffffffe003ffffffffffffff007ffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffffffffffffff e007fffffffffffffffff83fffffc000000000000000ff003fffc3ffffffffffe0000000 0000000003ffffffffffffffff80 fffffffe00fffffffff000fffffffffffffffe007ffffffffffffff007ffffffffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff e007fffffffffffffffff81fffe00000000000001fffffffffffe0ffffffff8000000000 0000000000ffffffffffffffff80 fffffffe00fffffffff001fffffffffffffffe007fffeffffffffff007ff8fffffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff e007fffffffffffffffffc03fc00000000001c00ffffffffffffe07ffffe000000000000 0000000000ffffffffffffffff80 fffffffe00fffffffff001fffffffffffffffe007fff87fffffffff007fe07ffffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff e007fffffffffffffffffc0000000000000ff803fffffffffffff00fffc0000000000000 00000000007fffffffffffffff80 fffffffe00fffffffff001fffffffffffffffe00ffffc3fffffffff007f801ffffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff e007fffffffffffffffffe000000000000fff007fffffffffffff0000000000000000000 7fff0000007fffffffffffffff80 fffffffe00fffffffff001fffffffffffffffe00ffffc1fffffffff00fc000ffffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff c007fffffffffffffffffe00000000003fffe00ffffffffffffff800000000000000007f fffffffe00ffffffffffffffff80 fffffffe00ffffffffe003fffffffffffffffe00ffffe0fffffffff00800007fffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff c007ffffffffffffffffff000000003fffffc03fffffdffffffffc00000000000fff807f ffffffffffffffffffffffffff80 fffffffe00ffffffffe003fffffffffffffffc01ffffe0fffffffff00000003fffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff c007ffffffffffffffffff80000007ffffff807fffff87fffffffc000000000fffff807f ffffffffffffffffffffffffff80 fffffffe00ffffffffe003fffffffffffffffc01fffff03ffffffe000000003fffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff c003ffffffffffffffffffc000003fffffff01ffffff80fffffffe00000007ffffff807f ffffffffffffffffffffffffff80 fffffffe00ffffffffe003fffffffffffffffc01fffff007fff000000000003fffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff c003ffffffffffffffffffe00003fffffffe03ffffffc03ffffffe000001ffffffff80ff ffffffffffffffffffffffffff80 fffffffe00ffffffffc003fffffffffffffffc03fffff800000000000000003fffffffff 801fffffffffffff801ffffffffc00000000000000000000000000003fffffffffffffff c003fffffffffffffffffff0003ffffffffc03fffffff00fffffff00003fffffffff80ff ffffffffffffffffffffffffff80 fffffffe00ffffffffc007fffffffffffffffc03fffffc0000000000000000ffffffffff 801fffffffffffff801ffffffffffffffffffff000003fffffffffffffffffffffffffff c003fffffffffffffffffff001fffffffff807fffffff007ffffffc001ffffffffff80ff ffffffffffffffffffffffffff80 fffffffe00ffffffffc007fffffffffffffffc03fffffe000000000000003fffffffffff 801fffffffffffff801ffffffffffffffffffff000003fffffffffffffffffffffffffff c001fffffffffffffffffff807fffffffff00ffffffff803ffffffc007ffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fffc007fffffffffffffffc07ffffff0000000000003fffffffffffff 801fffffffffffff801fffffffffffffffffffe000001fffffffffffffffffffffffffff c001fffffffffffffffffffe07ffffffffe01ffff7fffc01ffffffe01fffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fffc007fffffffffffffff807ffffff00000000000fffffffffffffff 801fffffffffffff801fffffffffffffffffffc000001fffffffffffffffffffffffffff 8001ffffffffffffffffffff0fffffffffe03fffe1fffe007ffffff87fffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fff800ffffffffffffffff807ffffffc0000000100fffffffffffffff 801fffffffffffff801fffffffffffffffffffc000000fffffffffffffffffffffffffff 8001ffffffffffffffffffffffffffffffc07fffe07fff803fffffffffffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fff800ffffffffffffffff80ffffffff00000fff00fffffffffffffff 801fffffffffffff801fffffffffffffffffff8000000fffffffffffffffffffffffffff 8000ffffffffffffffffffffffffffffff80fffff01fff801fffffffffffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fff800ffffffffffffffff80ffffffffffffffff00fffffffffffffff 801fffffffffffff801fffffffffffffffffff80000007ffffffffffffffffffffffffff 8000ffffffffffffffffffffffffffffff80fffff807ffc00fffffffffffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fff800ffffffffffffffff80ffffffffffffffff00fffffffffffffff 801fffffffffffff801fffffffffffffffffff00000003ffffffffffffffffffffffffff 8000ffffffffffffffffffffffffffffff01fffffc01ffc00fffffffffffffffffff80ff ffffffffffffffffffffffffff80 ffc000000000003fff001ffffffffffffffff80ffffffffffffffff00fffffffffffffff 801fffffffffffff801ffffffffffffffffffe00000003ffffffffffffffffffffffffff 8000fffffffffffffffffffffffffffffe03fffffc00ffe00ffffffffffffffff81f80ff ffffffffffffffffffffffffff80 ffc000000000003fff001ffffffffffffffff81ffffffffffffffff00fffffffffffffff 801fffffffffffff801ffffffffffffffffffe00000001ffffffffffffffffffffffffff 00007ffffffffffffffffffffffffffffe07fffffe00ffe007ffffffffffffff800380ff ffffffffffffffffffffffffff80 ffc000000000003fff001ffffffffffffffff01ffffffffffffffff00fffffffffffffff 801fffffffffffff801ffffffffffffffffffc00200000ffffffffffffffffffffffffff 00007ffffffffffffffffffffffffffffc07ffffff807ff007fffffffffffffe000080ff ffffffffffffffffffffffffff80 fffffffc00ffffffff001ffffffffffffffff01ffffffffffffffff00fffffffffffffff 801fffffffffffff801ffffffffffffffffff8006004007fffffffffffffffffffffffff 00007ffffffffffffffffffffffffffffc0fffffff801ff007fffffffffffff8000000ff ffffffffffffffffffffffffff80 fffffffc00ffffffff003ffffffffffffffff01ffffffffffffffff80fffffffffffffff 801fffffffffffff801ffffffffffffffffff8006004007fffffffffffffffffffffffff 00003ffffffffffffffffffffffffffff80fffffffc00ff807ffffffffffffe00000007f ffffffffffffffffffffffffff80 fffffff800fffffffe003ffffffffffffffff01ffffffffffffffff80fffffffffffffff 801fffffffffffff801ffffffffffffffffff000e006003ffffffffffffffffffffffffe 00003ffffffffffffffffffffffffffff81fffffffe00ffc0fffffffffffffc003c0007f ffffffffffffffffffffffffff80 fffffff800fffffffe003ffffffffffffffff01ffffffffffffffff80fffffffffffffff 801fffffffffffff801ffffffffffffffffff001e006001ffffffffffffffffffffffffe 00003ffffffffffffffffffffffffffff81ffffffff007fe1fffffffffffffc03ff8007f ffffffffffffffffffffffffff80 fffffff800fffffffe003ffffffffffffffff03ffffffffffffffff80fffffffffffffff 801fffffffffffff801fffffffffffffffffe001e007001ffffffffffffffffffffffffe 00003ffffffffffffffffffffffffffff03ffffffff007ffffffffffffffff007ffc007f ffffffffffffffffffffffffff80 fffffff800fffffffe007ffffffffffffffff03ffffffffffffffff80fffffffffffffff 801fffffffffffff801fffffffffffffffffc003e007800ffffffffffffffffffffffffe 00001ffffffffffffffffffffffffffff03ffffffff807fffffffffffffffe00ffff003f ffffffffffffffffffffffffff80 fffffff000fffffffc007fffffffffffffffe03ffffffffffffffff80fffffffffffffff 801fffffffffffff801fffffffffffffffff8007e0078007fffffffffffffffffffffffc 00001fffffffffffffffffffffffffffe03ffffffff803fffffffffffffffe01ffff003f ffffffffffffffffffffffffff80 fffffff000fffffffc007fffffffffffffffe03ffffffffffffffff80fffffffffffffff 8000000000000000001fffffffffffffffff8007e007c003fffffffffffffffffffffffc 00001fffffffffffffffffffffffffffe07ffffffffc03fffffffffffffffc01ffff803f ffffffffffffffffffffffffff80 ffffffe000fffffffc007fffffffffffffffe03ffffffffffffffff80fffffffffffffff 8000000000000000001fffffffffffffffff000fe007e003fffffffffffffffffffffffc 00c00fffffffffffffffffffffffffffc07ffffffffc03fffffffffffffff803ffffc03f ffffffffffffffffffffffffff80 ffffffe000fffffffc007fffffffffffffffe03fffbffffffffffff80fffffffffffffff 8000000000000000001ffffffffffffffffe001fe007e001fffffffffffffffffffffffc 00c00fffffffffffffffffffffffffffc0fffffffffc07fffffffffffffff807ffffc03f ffffffffffffffffffffffffff80 ffffffc000fffffffc00ffffffffffffffffe07fff0ffffffffffff807ffffffffffffff 8000000000000000001ffffffffffffffffc003fe007f000fffffffffffffffffffffff8 00e00fffffffffffffffffffffffffffc0fffffffffc07fffffffffffffff807ffffc01f ffffffffffffffffffffffffff80 ffffffc000fffffff800ffffffffffffffffe07fff1ffffffffffff807ffffffffffffff 8000000000000000001ffffffffffffffffc003fe007f0007ffffffffffffffffffffff8 00e007ffffffffffffffffffffffffff80fffffffffe0ffffffffffffffff807ffffe01f ffffffffffffffffffffffffff80 ffffff80003ffffff800ffffffffffffffffe07ffe1ffffffffffff807ffffffffffffff 8000000000000000001ffffffffffffffff8007fe007f8003ffffffffffffffffffffff8 01e007ffffffffffffffffffffffffff80fffffffffffffffffffffffffff007ffffe01f ffffffffffffffffffffffffff80 ffffff80001ffffff800ffffffffffffffffe07ffe3ffffffffffff807ffffffffffffff 8000000000000000001ffffffffffffffff000ffe007fc003ffffffffffffffffffffff0 01f003ffffffffffffffffffffffffff81fffffffffffffffffffffffffff007ffffe00f ffffffffffffffffffffffffff80 ffffff00000ffffff801fffff3ffffffffffe07ffc3ffffffffffff807ffffffffffffff 8000000000000000001fffffffffffffffe001ffe007fe001ffffffffffffffffffffff0 01f003ffffffffffffffffffffffffff01fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 ffffff000003fffff801ffffc1ffffffffffe07ffc3ffffffffffff807ffffffffffffff 8000000000000000001fffffffffffffffc001ffe007ff000ffffffffffffffffffffff0 01f001ffffffffffffffffffffffffff01fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 fffffe000001fffff001fffe01ffffffffffe07ff87ffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffffffc003ffe007ff0007ffffffffffffffffffffe0 03f801ffffffffffffffffffffffffff01fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 fffffe000000fffff001fff800ffffffffffe07ff87ffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffffff8007ffe007ff8003ffffffffffffffffffffe0 03f800ffffffffffffffffffffffffff01fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 fffffc0000001ffff003fffc00ffffffffffe07ff07ffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffffff000fffe007ffc001ffffffffffffffffffffc0 07fc00ffffffffffffffffffffffffff03fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 fffffc00000007fff003fffc007fffffffffc07ff0fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffffffe000fffe007ffe000ffffffffffffffffffffc0 07fc007ffffffffffffffffffffffffe03fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 fffff800000003ffe003fffe007fffffffffc07fe0fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffffffc001fffe007fff0007fffffffffffffffffff80 0ffe007ffffffffffffffffffffffffe03fffffffffffffffffffffffffff00ffffff00f ffffffffffffffffffffffffff80 fffff000000001ffe003ffff007fffffffffc07fe1fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffffff8003fffe007fff8003fffffffffffffffffff80 0ffe003ffffffffffffffffffffffffe03fffffffffffffffffffffffffff00fffffe007 ffffffffffffffffffffffffff80 fffff0000000007fe007ffff003fffffffffc07fc1fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffffff0007fffe007fffc001fffffffffffffffffff00 1fff003ffffffffffffffffffffffffe03fffffffffffffffffffffffffff00fffffe007 ffffffffffffffffffffffffff80 ffffe00000c0007fe007ffff803fffffffffc07fc1fffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffffe000ffffe007fffe000fffffffffffffffffff00 1fff001ffffffffffffffffffffffffe03fffffffffffffffffffffffffff007ffffe007 ffffffffffffffffffffffffff80 ffffc00200e000ffe007ffff801fffffffffc07f83fffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffffc000ffffe007ffff0007fffffffffffffffffe00 3fff001ffffffffffffffffffffffffe03fffffffffffffffffffffffffff007ffffe007 ffffffffffffffffffffffffff80 ffff800600f800ffc007ffff801fffffffffc07f83fffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffff8001ffffe007ffff8003fffffffffffffffffe00 3fff800ffffffffffffffffffffffffe03fffffffffffffffffffffffffff007ffffe007 ffffffffffffffffffffffffff80 ffff800600fc01ffc00fffffc00fffffffffc07f03fffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffff0003ffffe007ffffc001fffffffffffffffffc00 7fff8007fffffffffffffffffffffffc03fffffffffffffffffffffffffff807ffffe007 ffffffffffffffffffffffffff80 ffff000e00ff01ffc00fffffc00fffffffffc07f07fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffffe0007ffffe007ffffe000fffffffffffffffffc00 7fffc007fffffffffffffffffffffffc03fffffffffffffffffffffffffff803ffffc007 ffffffffffffffffffffffffff80 ffff000e00ffc3ffc00fffffe007ffffffffc07f07fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffffc000fffffe007fffff0007ffffffffffffffff800 ffffc003fffffffffffffffffffffffc03fffffffffffffffffffffffffffc03ffffc007 ffffffffffffffffffffffffff80 fffe001e00ffe3ff800fffffe007ffffffffc07e07fffffffffffff807ffffffffffffff 801fffffffffffff801ffffffffffff0001fffffe007fffff0003ffffffffffffffff000 ffffe003fffffffffffffffffffffffc03fffffffffffffffffffffffffffc01ffffc007 ffffffffffffffffffffffffff80 fffc003e00fff7ff801ffffff003ffffffffc07e0ffffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffe0003fffffe007fffff8001ffffffffffffffff001 fffff001fffffffffffffffffffffffc03fffffffffffffffffffffffffffc01ffff8007 ffffffffffffffffffffffffff80 fff8003e00ffffff801ffffff003ffffffffc07c0ffffffffffffff807ffffffffffffff 801fffffffffffff801fffffffffffc0007fffffe007fffffc000fffffffffffffffe001 fffff000fffffffffffffffffffffffc03fffffffffffffffffffffffffffe00ffff0007 ffffffffffffffffffffffffff80 fff8007e00ffffff801ffffff003ffffffffc07c1fffffffff007ff803ffffffffffffff 801fffffffffffff801fffffffffff8000ffffffe007fffffe0003ffffffffffffffc003 fffff8007ffffffffffffffffffffffc03fffffffffffffffffffffffffffe003ffc0007 ffffffffffffffffffffffffff80 fff000fe00ffffff801ffffff801ffffffffc0781ffffffff00000f803ffffffffffffff 801fffffffffffff801fffffffffff0001ffffffe007ffffff0001ffffffffffffffc007 fffffc003ffffffffffffffffffffffc03ffffffffffffffffffffffffffff000ff00007 ffffffffffffffffffffffffff80 ffe000fe00ffffff001ffffff801ffffffffc0383fffffff0000003803ffffffffffffff 801fffffffffffff801ffffffffffe0003ffffffe007ffffff8000ffffffffffffff800f fffffc001ffffffffffffffffffffffe01ffffffffffffffffffffffffffffc00000000f ffffffffffffffffffffffffff80 ffc001fe00ffffff003ffffff800ffffffffc0303ffffffc0000000003ffffffffffffff 801fffffffffffff801ffffffffff80007ffffffe007ffffffc0003fffffffffffff000f fffffe001ffffffffffffffffffffffe01ffffffffffffffffffffffffffffc00000200f ffffffffffffffffffffffffff80 ff8003fe00ffffff003ffffffc00ffffffffc0303ffffff80000000003ffffffffffffff 801fffffffffffff801ffffffffff0000fffffffe007fffffff0001ffffffffffffe001f fffffe000ffffffffffffffffffffffe00ffffffffffffffffffffffffffffe00000600f fffffffffffffffff87fffffff80 ff8003fe00ffffff003ffffffc007fffffffc0203fffffe00000000003ffffffffffffff 801fffffffffffff801fffffffffe0001fffffffe007fffffff8000ffffffffffffe003f ffffff0007fffffffffffffffffffffe00fffffffffffffffffffffffffffff80000e00f ffffffffffffffff8003ffffff80 ff0007fe00fffffe003ffffffe007fffffffe0007fffffc00000000001ffffffffffffff 801fffffffffffff801fffffffffc0003f0000000000000001fc0003fffffffffffc007f ffffff8003ffffffffffffffffffffff00ffffffffffffffffffffffffffffff0007e01f fffffffffffffffe0001ffffff80 fe0007fe00fffffe007ffffffe003fffffffe0007fffffc00ffff000007fffffffffffff 801fffffffffffff801fffffffff80007f0000000000000001fe0001fffffffffff8007f ffffffc001ffffffffffffffffffffff007fffffffffffffffffffffffffffffc00fe01f fffffffffffffffc00007fffff80 ff000ffe00fffffe007fffffff003fffffffe0007fffff807fffff00001fffffffffffff 801fffffffffffff801fffffffff0000ff0000000000000001ff0000fffffffffff000ff ffffffc000ffffffffffffffffffffff007fffffffffffffffffffffffffffffffffe01f fffffffffffffff800003fffff80 ff801ffe00fffffe007fffffff003fffffffe0007fffff81ffffffe0000fffffffffffff 801fffffffffffff801ffffffffc0001ff0000000000000001ff80003fffffffffe001ff ffffffe0007fffffffffffffffffffff003fffffffffffffffffffffffffffffffffe01f fffffffffffffff000001fffff80 ff803ffe00fffffe007fffffff801fffffffe000ffffff01fffffff80003ffffffffffff 801fffffffffffff801ffffffff80003ff0000000000000001ff80001fffffffffc003ff fffffff0003fffffffffffffffffffff003fffffffffffffffffffffffffffffffffc03f ffffffffffffffe000000fffff80 ff807ffe00fffffc00ffffffff801fffffffe000ffffff03fffffff80000ffffffffffff 801fffffffffffff801ffffffff00007ff0000000000000001ffc0003fffffffff8003ff fffffff8001fffffffffffffffffffff801fffffffffffffffffffffffffffffffffc03f ffffffffffffffc00fc007ffff80 ffc07ffe00fffffc00ffffffffc00ffffffff000ffffff03fffffff800007fffffffffff 801fffffffffffff801fffffffe0001fff0000000000000001ffe0003fffffffff0007ff fffffffc001fffffffffffffffffffff801fffffffffffffffffffffffffffffffff803f ffffffffffffff803ff803ffff80 ffe0fffe00fffffc00ffffffffc00ffffffff000fffffe07fffffff800001fffffffffff 801fffffffffffff801ffffffff0003fff0000000000000001fff0007ffffffffe000fff fffffffe000fffffffffffffffffffffc00fffffffffffffffffffffffffffffffff803f ffffffffffffff807ffc03ffff80 ffe1fffe00fffffc00ffffffffe007fffffff000fffffe07fffffff8000007ffffffffff 801fffffffffffff801ffffffff8007fff0000000000000001fff800fffffffffc001fff ffffffff0007ffffffffffffffffffffe007ffffffffffffffffffffffffffffffff807f ffffffffffffff00fffe03ffff80 fff3fffe00fffffc01ffffffff0007fffffff000fffffe07fffffff8020003ffffffffff 801fffffffffffff801ffffffffc00ffffffffffe007fffffffffc00fffffffff0001fff ffffffff0003ffffffffffffffffffffe003ffffffffffffffffffffffffffffffff007f ffffffffffffff01ffff01ffff80 fff3fffe00fffff801ffffffc00007fffffff000fffffe07fffffff8030000ffffffffff 801fffffffffffff801ffffffffe01ffffffffffe007ffffffffff01ffffffffe0003fff ffffffff8001fffffffffffffffffffff001ffffffffffffffffffffffffffffffff007f fffffffffffffe01ffff01ffff80 fff7fffe00fffff801fffff0000007fffffff000fffffe07fffffff803c0007fffffffff 801fffffffffffff801fffffffff03ffffffffffe007ffffffffff83ffffffffc0007fff ffffffffc0007ffffffffffffffffffff0007fffffffffffffffffffffffffffffff007f fffffffffffffe03ffff81ffff80 fffffffe00fffff801fff800000003fffffff000ffffff03fffffff007e0003fffffffff 801fffffffffffff801fffffffff07ffffffffffe007ffffffffffc3ffffffff8000ffff ffffffffe0003ffffffffffffffffffff8001ffffffffffffffffffffffffffffffe00ff fffffffffffffe03ffff80ffff80 fffffffe00fffff803fe0000000003fffffff800ffffff03fffffff007f8001fffffffff 8000000000000000001fffffffff8fffffffffffe007fffffffffff7ffffffff0001ffff fffffffff0001ffffffffffffffffffffc0007fffffffffffffffffffffffffffffe00ff fffffffffffffe03ffff80ffff80 fffffffe00fffff003800000000003fffffff800ffffff01ffffffe007fc0007ffffffff 8000000000000000001fffffffffdfffffffffffe007fffffffffffffffffffe0003ffff fffffffff80007fffffffffffffffffffe0001fffffffffffffffffffffffffffffc01ff fffffffffffffe03ffff80ffff80 fffffffe00fffff000000000000001fffffff800ffffff01ffffffe007fe0007ffffffff 8000000000000000001fffffffffffffffffffffe007fffffffffffffffffffc0007ffff fffffffffc0003ffffffffffffffffffff00007ffffffffffffffffffffffffffff801ff fffffffffffffe03ffff80ffff80 fffffffe00fffc0000000000000001fffffffc00ffffff807fffff800fff8003ffffffff 8000000000000000001fffffffffffffffffffffe007fffffffffffffffffff8000fffff fffffffffe0000ffffffffffffffffffff80000ffffffffffffffffffffffffffff003ff fffffffffffffe03ffff80ffff80 fffffffe00fe000000000000000000fffffffc00ffffffc03fffff001fffe003ffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffffe0001fffff ffffffffff00007fffffffffffffffffffc00000ffffffffffffffffffffffffffe007ff fffffffffffffe03ffff81ffff80 fffffffe00fe000000000000003800fffffffc00ffffffe007fff8001ffff003ffffffff 8000000000000000001fffffffffffffffffffffe007ffffffffffffffffff80003fffff ffffffffff80001fffffffffffffffffffe000000003ffffffffffffffffffffffc00fff ffffffffffffff01ffff01ffff80 fffffffe00fe0000000000000ffc007ffffffe00ffffffe0000000001ffff803ffffffff 8000000000000000001fffffffffffffffffffffe007fffffffffffffffffe00007fffff ffffffffffc00007fffffffffffffffffff000000001ffffffffffffffffffffff801fff ffffffffffffff01ffff01ffff80 fffffffe00ff000000000007fffc007ffffffe007ffffff0000000003ffffc03ffffffff 8000000000000000001fffffffffffffffffffffe007fffffffffffffffffc0000ffffff fffffffffff00001fffffffffffffffffffc00000000ffffffffffffffffffffff007fff ffffffffffffff00fffe03ffff80 fffffffe00ff0000000003fffffe003ffffffe007ffffff800000000fffffe07ffffffff 8000000000000000001fffffffffffffffffffffe007fffffffffffffffff80003ffffff fffffffffff800007ffffffffffffffffffe00000000fffffffffffffffffffffe00ffff ffffffffffffff807ffc03ffff80 fffffffe00ff00000000fffffffe003ffffffe007ffffffc00000001ffffff0fffffffff 801fffffffffffff801fffffffffffffffffffffe007fffffffffffffffff00007ffffff fffffffffffc00001fffffffffffffffffff800000007ffffffffffffffffffff801ffff ffffffffffffff803ff803ffff80 fffffffe00ff0000007fffffffff003fffffff007fffffff00000007ffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffc0000fffffff ffffffffffff00000ffffffffffffffffffff00000007fffffffffffffffffffe003ffff ffffffffffffffc00fe007ffff80 fffffffe00ff80003fffffffffff001fffffff007fffffffc000001fffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffff80003fffffff ffffffffffff80001ffffffffffffffffffffc0000007fffffffffffffffffff800fffff ffffffffffffffe000000fffff80 fffffffe00ff800fffffffffffff001fffffff807fffffffff00007fffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffff00007fffffff ffffffffffffc0003fffffffffffffffffffff8000007ffffffffffffffffffe001fffff fffffffffffffff000001fffff80 fffffffe00ff87ffffffffffffff001fffffffc07fffffffffffffffffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffff8000ffffffff fffffffffffff0007ffffffffffffffffffffffc00007ffffffffffffffffff8007fffff fffffffffffffff800003fffff80 fffffffe00ffffffffffffffffff800fffffffe0ffffffffffffffffffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffc003ffffffff fffffffffffff8007fffffffffffffffffffffffe001ffffffffffffffffffe001ffffff fffffffffffffffc00007fffff80 fffffffe00ffffffffffffffffff800ffffffff1ffffffffffffffffffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffe007ffffffff fffffffffffffe00ffffffffffffffffffffffffffffffffffffffffffffff8007ffffff fffffffffffffffe0000ffffff80 fffffffe00ffffffffffffffffffc03fffffffffffffffffffffffffffffffffffffffff 801fffffffffffff801fffffffffffffffffffffe007ffffffffffffffffe00fffffffff ffffffffffffff81fffffffffffffffffffffffffffffffffffffffffffffe001fffffff ffffffffffffffff0003ffffff80 fffffffe00ffffffffffffffffffc0ffffffffffffffffffffffffffffffffffffffffff 801fffffffffffffffffffffffffffffffffffffe007fffffffffffffffff03fffffffff ffffffffffffffc1fffffffffffffffffffffffffffffffffffffffffffffc01ffffffff ffffffffffffffffe00fffffff80 fffffffe00ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffff 801fffffffffffffffffffffffffffffffffffffe007fffffffffffffffff87fffffffff fffffffffffffff3fffffffffffffffffffffffffffffffffffffffffffffe07ffffffff ffffffffffffffffffffffffff80 fffffffe00ffffffffffffffffffcfffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007fffffffffffffffffdffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3fffffffff ffffffffffffffffffffffffff80 fffffffe00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 fffffffe00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe007ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80 showpage % stop using temporary dictionary end % restore original state origstate restore %%Trailer %%EndDocument @endspecial Fw 1232 1437 a(Figure) p 1494 1437 a(2:) p 1587 1437 a(Mixture) p 1905 1437 a(of) p Fs 2000 1437 a(gothic) p Fw 2242 1437 a(and) p Fs 2403 1437 a(mincho) p Fw 2694 1437 a(fon) n(ts) p 2897 1437 a(in) p 2994 1437 a(Japanese) p 3346 1437 a(comics) 992 1724 y(In) p 1104 1724 a(the) p Fj 1255 1724 a(TeX) p Fw 1421 1724 a(en) n(try) p 1604 1724 a(,) p 1663 1724 a(whic) n(h) p 1908 1724 a(is) p 2000 1724 a(used) p 2197 1724 a(to) p 2307 1724 a(sp) r(ecify) p 2590 1724 a(a) p 2667 1724 a(common) p 3007 1724 a(default) p 3294 1724 a(description) p 3727 1724 a(for) 992 1823 y(T) 1038 1841 y(E) 1084 1823 y(X) p 1178 1823 a(related) p 1458 1823 a(fon) n(t) p 1632 1823 a(classes,) p 1923 1823 a(the) p 2069 1823 a(v) p 2108 1823 a(alue) p 2287 1823 a(of) p 2385 1823 a(the) p 2532 1823 a(capabilit) n(y) p Fj 2919 1823 a(dpi) p Fw 3081 1823 a(is) p 3168 1823 a(giv) n(en) p 3388 1823 a(as) p 3494 1823 a(the) p 3640 1823 a(v) p 3679 1823 a(alue) 992 1923 y(of) p 1091 1923 a(a) p 1164 1923 a(v) p 1203 1923 a(ariable) p Fj 1479 1923 a(TeX) p 1616 1923 27 4 v 1641 1923 a(DPI) p Fw(,) p 1827 1923 a(for) p 1958 1923 a(example.) p 2310 1923 a(Capabilities) p Fj 2771 1923 a(tfm-directories) p Fw 3457 1923 a(is) p 3544 1923 a(a) p 3617 1923 a(list) p 3760 1923 a(of) 992 2023 y(TFM) p 1214 2023 a(\014les) p 1385 2023 a(directories,) p 1815 2023 a(and) p Fj 1981 2023 a(tfm-filename-ext) o(en) o(si) o(ons) p Fw 3015 2023 a(is) p 3103 2023 a(a) p 3177 2023 a(extension) p 3548 2023 a(of) p 3647 2023 a(a) p 3721 2023 a(\014le) 992 2122 y(name) p 1214 2122 a(for) p 1341 2122 a(TFM) p 1559 2122 a(\014les.) p 1749 2122 a(The) p 1920 2122 a(name) p Fj 2141 2122 a(TEXMF") p Fw 2431 2122 a(in) p Fj 2528 2122 a(tfm-directories) p Fw 3209 2122 a(is) p 3293 2122 a(a) p 3363 2122 a(sp) r(ecial) p 3633 2122 a(name) 992 2222 y(to) p 1094 2222 a(seac) n(h) p 1313 2222 a(a) p 1382 2222 a(\014le) p 1516 2222 a(using) p Fk 1734 2222 a(kpathsea) p Fw(.) 992 2371 y(The) p 1168 2371 a(en) n(try) p Fj 1392 2371 a(pk) p Fw 1513 2371 a(en) n(try) p 1735 2371 a(is) p 1824 2371 a(used) p 2019 2371 a(to) p 2126 2371 a(sp) r(ecify) p 2407 2371 a(default) p 2692 2371 a(description) p 3122 2371 a(for) p 3255 2371 a(fon) n(t) p 3431 2371 a(\014les) p 3603 2371 a(in) p 3706 2371 a(PK) 992 2471 y(format.) p 1291 2471 a(A) p 1386 2471 a(PK) p 1540 2471 a(\014le) p 1680 2471 a(is) p 1768 2471 a(searc) n(h) p 2026 2471 a(b) n(y) p Fk 2148 2471 a(kpathsea) p Fw 2486 2471 a(\014rst) p 2663 2471 a(since) p 2872 2471 a(the) p 3020 2471 a(\014rst) p 3197 2471 a(item) p 3392 2471 a(of) p 3492 2471 a(the) p 3640 2471 a(v) p 3679 2471 a(alue) 992 2571 y(of) p 1095 2571 a(the) p 1247 2571 a(capabilit) n(y) p Fj 1639 2571 a(font-directories) p Fw 2373 2571 a(is) p Fj 2465 2571 a(TEXMF") p Fw(.) p 2786 2571 a(If) p 2877 2571 a(it) p 2969 2571 a(is) p 3061 2571 a(not) p 3217 2571 a(found,) p 3482 2571 a(then) p 3679 2571 a(it) p 3771 2571 a(is) 992 2670 y(searc) n(hed) p 1327 2670 a(in) p Fj 1424 2670 a(/usr/local/fonts) o(/pk) p Fw 2280 2670 a(directory) p 2633 2670 a(next.) 992 2820 y(Default) p 1302 2820 a(v) p 1341 2820 a(ariable) p 1628 2820 a(v) p 1667 2820 a(alues) p 1889 2820 a(can) p 2054 2820 a(b) r(e) p 2181 2820 a(o) n(v) n (erridden) p 2604 2820 a(b) n(y) p 2733 2820 a(giving) p 2993 2820 a(a) p 3076 2820 a(list) p 3229 2820 a(of) p 3337 2820 a(pairs) p 3554 2820 a(of) p 3663 2820 a(v) p 3702 2820 a(ari-) 992 2919 y(able) p 1169 2919 a(names) p 1426 2919 a(and) p 1589 2919 a(their) p 1790 2919 a(v) p 1829 2919 a(alues) p 2039 2919 a(when) p Fk 2258 2919 a(VFlib) p Fw 2473 2919 a(is) p 2559 2919 a(initialized) p 2944 2919 a(b) n(y) p Fj 3062 2919 a(VF) p 3155 2919 V 3181 2919 a(Init\(\)) p Fw(.) p 3495 2919 a(If) p 3580 2919 a(a) p 3652 2919 a(Unix) 992 3019 y(en) n(vironmen) n(t) p 1476 3019 a(v) p 1515 3019 a(ariable) p Fj 1793 3019 a(VFLIBCAP) p 2150 3019 V 2173 3019 a(PARAM) p 2398 3019 V Fd 2423 3019 a(var) p Fw 2601 3019 a(\(e.g.,) p Fj 2815 3019 a(VFLIBCAP) p 3172 3019 V 3195 3019 a(PARAM) p 3420 3019 V 3444 3019 a(TeX) p 3581 3019 V 3607 3019 a(DPI) p Fw 3771 3019 a(is) 992 3119 y(de\014ned,) p 1302 3119 a(its) p 1418 3119 a(v) p 1457 3119 a(alue) p 1634 3119 a(b) r(ecomes) p 1964 3119 a(the) p 2108 3119 a(v) p 2147 3119 a(alue) p 2323 3119 a(of) p 2419 3119 a(the) p Fk 2562 3119 a(v\015ib) r(cap) p Fw 2858 3119 a(v) p 2897 3119 a(ariable) p Fj 3170 3119 a(TeX) p 3307 3119 V 3333 3119 a(DPI) p Fw(.\)) p 3547 3119 a(The) p 3718 3119 a(ex-) 992 3218 y(ample) p Fk 1231 3218 a(v\015ib) r(cap) p Fw 1521 3218 a(\014le) p 1649 3218 a(can) p 1796 3218 a(b) r(e) p 1903 3218 a(used) p 2087 3218 a(for) p 2208 3218 a(600) p 2355 3218 a(dpi) p 2493 3218 a(HP) p 2633 3218 a(Laser) p 2851 3218 a(Jet) p 2985 3218 a(4) p 3049 3218 a(prin) n(ters) p 3351 3218 a(if) p 3421 3218 a(w) n(e) p 3538 3218 a(o) n(v) n(erride) 992 3318 y(v) p 1031 3318 a(ariable) p 1310 3318 a(v) p 1349 3318 a(alues) p 1563 3318 a(so) p 1671 3318 a(that) p Fj 1857 3318 a(TeX) p 1994 3318 V 2019 3318 a(DPI) p Fw 2183 3318 a(is) p Fj 2273 3318 a(600) p Fw 2437 3318 a(and) p Fj 2604 3318 a(TeX) p 2741 3318 V 2766 3318 a(KPATHSEA) p 3123 3318 V 3147 3318 a(MODE) p Fw 3355 3318 a(is) p Fj 3444 3318 a(ljfour) p Fw 3739 3318 a(on) 992 3417 y(execution) p 1363 3417 a(time) p 1553 3417 a(without) p 1862 3417 a(an) n(y) p 2018 3417 a(\014le) p 2152 3417 a(mo) r(di\014cation.) p Fm 992 3762 a(5.) p 1200 3762 a(F) p 1266 3762 a(on) m(t) p 1472 3762 a(Classes) p 1877 3762 a(without) p 2313 3762 a(F) p 2379 3762 a(on) m(t) p 2584 3762 a(Files) p Fw 992 4005 a(F) p 1039 4005 a(on) n(ts) p 1216 4005 a(pro) n(vided) p 1555 4005 a(b) n(y) p 1669 4005 a(fon) n(t) p 1838 4005 a(classes) p 2100 4005 a(need) p 2292 4005 a(not) p 2438 4005 a(b) r(e) p 2549 4005 a(asso) r(ciated) p 2943 4005 a(with) p 3130 4005 a(fon) n(t) p 3299 4005 a(\014les.) p 3487 4005 a(As) p 3608 4005 a(exam-) 992 4105 y(ples) p 1163 4105 a(of) p 1262 4105 a(suc) n(h) p 1453 4105 a(fon) n(t) p 1628 4105 a(classes,) p 1919 4105 a(the) p Fs 2067 4105 a(Jap) l(anese) p 2424 4105 a(c) l(omic) p Fw 2664 4105 a(fon) n(t) p 2839 4105 a(class) p 3037 4105 a(and) p 3203 4105 a(the) p Fs 3350 4105 a(try) p Fw 3485 4105 a(fon) n(t) p 3660 4105 a(class) 992 4205 y(are) p 1131 4205 a(implemen) n(ted.) p Fg 992 4475 a(5.1.) p 1259 4475 a(The) p 1473 4475 a(Japanese) p 1917 4475 a(comic) p 2213 4475 a(fon) m(t) p 2428 4475 a(class) p Fw 992 4701 a(In) p 1102 4701 a(Japanese) p 1461 4701 a(comics,) p 1758 4701 a(a) p 1833 4701 a(gothic) p 2089 4701 a(fon) n(t) p 2266 4701 a(is) p 2355 4701 a(used) p 2551 4701 a(for) p 2684 4701 a(Kanji) p 2919 4701 a(c) n(haracters) p 3321 4701 a(and) p 3488 4701 a(a) p Fs 3564 4701 a(mincho) p Fw 992 4801 a(fon) n(t) p 1161 4801 a(is) p 1243 4801 a(used) p 1431 4801 a(for) p 1556 4801 a(Kana) p 1776 4801 a(c) n(haracters) p 2170 4801 a(as) p 2270 4801 a(sho) n(wn) p 2520 4801 a(in) p 2616 4801 a(Figure) p 2876 4801 a(2.) p 2967 4801 a(Without) p 3299 4801 a(creating) p 3616 4801 a(a) p 3684 4801 a(new) 992 4901 y(fon) n(t,) p 1185 4901 a(w) n(e) p 1306 4901 a(can) p 1457 4901 a(implemen) n(t) p 1864 4901 a(suc) n(h) p 2050 4901 a(fon) n(ts) p 2252 4901 a(b) n(y) p 2366 4901 a(the) p 2508 4901 a(Japanese) p 2859 4901 a(comic) p 3093 4901 a(fon) n(t) p 3262 4901 a(driv) n(er:) p 3524 4901 a(a) p 3592 4901 a(fon) n(t) p Fb 3762 4901 a(F) p Fw 992 5000 a(of) p 1086 5000 a(the) p 1228 5000 a(Japanese) p 1579 5000 a(comic) p 1814 5000 a(class) p 2007 5000 a(needs) p 2233 5000 a(t) n(w) n(o) p 2389 5000 a(sub-fon) n(ts) p 2744 5000 a(that) p 2923 5000 a(are) p 3061 5000 a(sp) r(eci\014ed) p 3395 5000 a(in) p 3491 5000 a(a) p Fk 3559 5000 a(v\015ib) r(cap) p Fw 992 5100 a(\014le;) p 1152 5100 a(fon) n(ts) p 1358 5100 a(for) p 1488 5100 a(Kanji) p 1720 5100 a(c) n(haracters,) p 2141 5100 a(sa) n(y) p Fb 2288 5100 a(F) p Fi 2341 5112 a(1) p Fw 2378 5100 a(,) p 2432 5100 a(and) p 2597 5100 a(Kana) p 2821 5100 a(c) n(haracters,) p 3242 5100 a(sa) n(y) p Fb 3389 5100 a(F) p Fi 3442 5112 a(2) p Fw 3479 5100 a(.) p 3533 5100 a(A) p 3626 5100 a(glyph) 992 5199 y(for) p 1125 5199 a(co) r(de) p 1322 5199 a(p) r(oin) n(t) p Fb 1545 5199 a(c) p Fw 1614 5199 a(of) p 1715 5199 a(fon) n(t) p Fb 1891 5199 a(F) p Fw 1989 5199 a(is) p 2079 5199 a(obtained) p 2426 5199 a(from) p Fb 2628 5199 a(F) p Fi 2681 5211 a(1) p Fw 2752 5199 a(if) p Fb 2834 5199 a(c) p Fw 2903 5199 a(is) p 2993 5199 a(a) p 3068 5199 a(Kanji) p 3302 5199 a(c) n(haracter,) p 3693 5199 a(and) p eop %%Page: 11 11 11 10 bop Fs -47 772 a(A) p 44 772 a(font) p 216 772 a(libr) l(ary) p 479 772 a(VFlib) p 710 772 a(3.5.0) p Fw 2704 772 a(11) p -47 874 2835 4 v -47 1073 a(from) p Fb 146 1073 a(F) p Fi 199 1085 a(2) p Fw 262 1073 a(if) p Fb 336 1073 a(c) p Fw 397 1073 a(is) p 477 1073 a(a) p 544 1073 a(Kana) p 763 1073 a(c) n(haracter.) p 1146 1073 a(The) p 1314 1073 a(fon) n(t) p 1482 1073 a(classes) p 1743 1073 a(of) p Fb 1835 1073 a(F) p Fi 1888 1085 a(1) p Fw 1951 1073 a(and) p Fb 2110 1073 a(F) p Fi 2163 1085 a(2) p Fw 2226 1073 a(need) p 2417 1073 a(not) p 2562 1073 a(b) r(e) p 2672 1073 a(the) -47 1173 y(same.) p Fg -47 1456 a(5.2.) p 220 1456 a(The) p 433 1456 a(try) p 607 1456 a(fon) m(t) p 822 1456 a(class) p Fw -47 1690 a(The) p 126 1690 a(try) p 265 1690 a(fon) n(t) p 438 1690 a(class) p 635 1690 a(pro) n(vides) p 966 1690 a(a) p 1037 1690 a(feature) p 1319 1690 a(to) p 1423 1690 a(op) r(en) p 1626 1690 a(a) p 1698 1690 a(fon) n(t) p 1871 1690 a(among) p 2141 1690 a(list) p 2283 1690 a(of) p 2380 1690 a(fon) n(ts.) p 2609 1690 a(Eac) n(h) -47 1790 y(fon) n(t) p Fb 119 1790 a(f) p Fw 193 1790 a(of) p 283 1790 a(the) p 422 1790 a(try) p 555 1790 a(fon) n(t) p 721 1790 a(class) p 912 1790 a(has) p 1056 1790 a(a) p 1121 1790 a(list) p 1256 1790 a(of) p 1347 1790 a(fon) n(ts,) p 1569 1790 a(sa) n(y) p Fb 1709 1790 a(g) p Fi 1749 1802 a(1) p Fb 1786 1790 a(;) p 1823 1790 a(g) p Fi 1863 1802 a(2) p Fb 1899 1790 a(;) p 1936 1790 a(:::) p Fw(.) p 2052 1790 a(When) p Fb 2290 1790 a(f) p Fw 2364 1790 a(is) p 2443 1790 a(requested) -47 1890 y(to) p 58 1890 a(op) r(en,) p 285 1890 a(the) p 431 1890 a(fon) n(t) p 605 1890 a(driv) n(er) p 848 1890 a(tries) p 1037 1890 a(to) p 1142 1890 a(op) r(en) p 1346 1890 a(fon) n(ts) p Fb 1552 1890 a(g) p Fi 1592 1902 a(1) p Fb 1629 1890 a(;) p 1666 1890 a(g) p Fi 1706 1902 a(2) p Fb 1743 1890 a(;) p 1780 1890 a(:::) p Fw 1880 1890 a(in) p 1980 1890 a(this) p 2145 1890 a(order) p 2366 1890 a(un) n(til) p 2565 1890 a(one) p 2721 1890 a(of) -47 1989 y(them,) p 190 1989 a(sa) n(y) p Fb 335 1989 a(g) p Fa 375 2001 a(s) p Fw 410 1989 a(,) p 463 1989 a(is) p 548 1989 a(op) r(ened) p 834 1989 a(successfully) p 1244 1989 a(.) p 1296 1989 a(Then,) p 1538 1989 a(an) n(y) p 1697 1989 a(fon) n(t) p 1869 1989 a(op) r(eration) p 2243 1989 a(on) p Fb 2360 1989 a(f) p Fw 2439 1989 a(is) p 2524 1989 a(applied) -47 2089 y(on) p Fb 68 2089 a(g) p Fa 108 2101 a(s) p Fw 171 2089 a(and) p 332 2089 a(therefore,) p Fb 704 2089 a(g) p Fa 744 2101 a(s) p Fw 807 2089 a(is) p 890 2089 a(used) p 1080 2089 a(as) p 1182 2089 a(a) p 1251 2089 a(fon) n(t) p Fb 1422 2089 a(f) p Fw 1472 2089 a(.) -47 2243 y(This) p 136 2243 a(fon) n(t) p 300 2243 a(class) p 488 2243 a(is) p 565 2243 a(useful) p 797 2243 a(when) p 1007 2243 a(w) n(e) p 1123 2243 a(w) n(an) n(t) p 1319 2243 a(to) p 1414 2243 a(use) p 1551 2243 a(non-standard) p 2053 2243 a(\(i.e.,) p 2235 2243 a(site) p 2382 2243 a(dep) r(enden) n(t\)) -47 2342 y(fon) n(ts.) p 175 2342 a(Supp) r(ose) p 496 2342 a(that) p 671 2342 a(a) p 736 2342 a(non-standard) p 1239 2342 a(fon) n(t) p Fb 1406 2342 a(f) p Fa 1447 2354 a(n) p Fw 1515 2342 a(is) p 1593 2342 a(listed) p 1811 2342 a(follo) n(w) n(ed) p 2127 2342 a(b) n(y) p 2238 2342 a(a) p 2302 2342 a(standard) p 2644 2342 a(fon) n(t) p Fb -47 2442 a(f) p Fa -6 2454 a(s) p Fw 58 2442 a(in) p 156 2442 a(a) p 227 2442 a(fon) n(t) p 399 2442 a(list) p 539 2442 a(of) p Fb 635 2442 a(f) p Fw 713 2442 a(of) p 809 2442 a(try) p 947 2442 a(fon) n(t) p 1119 2442 a(class.) p 1338 2442 a(Then,) p 1579 2442 a(to) p 1682 2442 a(op) r(en) p Fb 1883 2442 a(f) p Fw 1962 2442 a(is) p 2047 2442 a(the) p 2191 2442 a(same) p 2400 2442 a(as) p 2504 2442 a(op) r(ening) p Fb -47 2542 a(f) p Fa -6 2554 a(n) p Fw 69 2542 a(if) p 149 2542 a(it) p 235 2542 a(is) p 321 2542 a(a) n(v) p 400 2542 a(aiable;) p 666 2542 a(otherwise,) p Fb 1062 2542 a(f) p Fa 1103 2554 a(s) p Fw 1169 2542 a(is) p 1255 2542 a(used.) p 1471 2542 a(Since) p Fb 1691 2542 a(f) p Fa 1732 2554 a(s) p Fw 1798 2542 a(is) p 1885 2542 a(a) p 1957 2542 a(standard) p 2307 2542 a(fon) n(t,) p 2504 2542 a(op) r(ening) p Fb -47 2641 a(f) p Fw 39 2641 a(alw) n(a) n(ys) p 313 2641 a(succeeds.) p 678 2641 a(Candidate) p 1088 2641 a(fon) n(ts) p Fb 1300 2641 a(g) p Fi 1340 2653 a(1) p Fb 1376 2641 a(;) p 1413 2641 a(g) p Fi 1453 2653 a(2) p Fb 1490 2641 a(;) p 1527 2641 a(:::) p Fw 1633 2641 a(can) p 1793 2641 a(b) r(e) p 1915 2641 a(a) p 1993 2641 a(fon) n(ts) p 2205 2641 a(of) p 2308 2641 a(di\013eren) n(t) p 2644 2641 a(fon) n(t) -47 2741 y(classes;) p 240 2741 a(for) p 367 2741 a(instance,) p Fb 714 2741 a(g) p Fi 754 2753 a(1) p Fw 818 2741 a(can) p 970 2741 a(b) r(e) p 1083 2741 a(a) p 1152 2741 a(T) p 1205 2741 a(rueT) n(yp) r(e) p 1536 2741 a(fon) n(t) p 1706 2741 a(and) p Fb 1868 2741 a(g) p Fi 1908 2753 a(2) p Fw 1972 2741 a(can) p 2124 2741 a(b) r(e) p 2237 2741 a(a) p 2307 2741 a(PCF) p 2505 2741 a(fon) n(t.) p Fm -47 3098 a(6.) p 161 3098 a(Sample) p 571 3098 a(Programs) p Fk -47 3350 a(VFlib) p Fw 163 3350 a(is) p 244 3350 a(distributed) p 667 3350 a(with) p 854 3350 a(sample) p 1129 3350 a(programs.) p 1515 3350 a(One) p 1688 3350 a(of) p 1780 3350 a(them) p 1990 3350 a(is) p 2071 3350 a(a) p 2138 3350 a(preview) n(er) p 2509 3350 a(for) p 2634 3350 a(D) n(VI) -47 3449 y(\014les.) p 142 3449 a(In) p 246 3449 a(a) p 315 3449 a(D) n(VI) p 496 3449 a(in) n(terpreter,) p 933 3449 a(a) p 1002 3449 a(T) 1048 3467 y(E) 1094 3449 y(X) p 1184 3449 a(fon) n(t) p 1355 3449 a(is) p 1438 3449 a(op) r(ened) p 1722 3449 a(b) n(y) p 1837 3449 a(the) p 1980 3449 a(follo) n(wing) p 2331 3449 a(sequence.) p Fj 84 3799 a(sprintf\(f_name,) p 781 3799 a("\045s.pk",) p 1173 3799 a(name\);) 84 3899 y(fid) p 258 3899 a(=) p 345 3899 a(VF_OpenFont1\(f_n) o(ame) o(,) p 1260 3899 a(h_dpi,) p 1565 3899 a(v_dpi,) p 1871 3899 a(-1,) p 2045 3899 a(mag,) p 2263 3899 a(mag\);) p Fw -47 4249 a(The) p 118 4249 a(v) p 157 4249 a(ariable) p Fj 425 4249 a(name) p Fw 622 4249 a(is) p 700 4249 a(a) p 764 4249 a(fon) n(t) p 930 4249 a(name) p 1146 4249 a(as) p 1243 4249 a(app) r(earing) p 1623 4249 a(in) p 1715 4249 a(a) p 1779 4249 a(D) n(VI) p 1955 4249 a(\014le) p 2083 4249 a(\(e.g.,) p Fj 2286 4249 a(cmr10) p Fw(\);) p Fj 2582 4249 a(h) p 2631 4249 27 4 v 2657 4249 a(dpi) p Fw -47 4348 a(and) p Fj 112 4348 a(v) p 161 4348 V 187 4348 a(dpi) p Fw 343 4348 a(are) p 479 4348 a(the) p 619 4348 a(horizon) n(tal) p 1007 4348 a(and) p 1166 4348 a(v) n(ertical) p 1459 4348 a(device) p 1708 4348 a(resolution) p 2089 4348 a(of) p 2181 4348 a(the) p 2321 4348 a(target) p 2564 4348 a(device) -47 4448 y(in) p 55 4448 a(dpi,) p 227 4448 a(resp) r(ectiv) n(ely) p 646 4448 a(.) p 702 4448 a(The) p 878 4448 a(v) p 917 4448 a(ariable) p Fj 1196 4448 a(mag) p Fw 1360 4448 a(is) p 1449 4448 a(a) p 1524 4448 a(magni\014cation) p 2047 4448 a(factor.) p 2313 4448 a(The) p 2490 4448 a(PK) p 2644 4448 a(fon) n(t) -47 4548 y(driv) n(er) p 192 4548 a(\014nds) p 390 4548 a(an) p 504 4548 a(appropriate) p 951 4548 a(fon) n(t) p 1121 4548 a(\014le) p 1254 4548 a(from) p 1449 4548 a(parameters) p 1878 4548 a(giv) n(en) p 2094 4548 a(in) p Fj 2189 4548 a(VF) p 2282 4548 V 2308 4548 a(OpenFont1\(\)) p Fw -47 4647 a(and) p 117 4647 a(the) p 263 4647 a(default) p 545 4647 a(v) p 584 4647 a(alues) p 796 4647 a(giv) n(en) p 1015 4647 a(in) p Fj 1115 4647 a(TeX) p Fw 1277 4647 a(en) n(try) p 1497 4647 a(in) p Fk 1597 4647 a(v\015ib) r(cap) p Fw(.) p 1918 4647 a(F) p 1965 4647 a(or) p 2070 4647 a(instance,) p 2419 4647 a(if) p 2498 4647 a(the) p 2644 4647 a(fon) n(t) -47 4747 y(name) p 169 4747 a(is) p Fj 248 4747 a(cmr10.pk) p Fw 619 4747 a(and) p Fj 776 4747 a(h) p 825 4747 V 851 4747 a(dpi) p Fw 1004 4747 a(=) p Fj 1092 4747 a(v) p 1141 4747 V 1167 4747 a(dpi) p Fw 1320 4747 a(=) p 1407 4747 a(300,) p 1578 4747 a(and) p Fj 1734 4747 a(mag) p Fw 1888 4747 a(=) p 1975 4747 a(1.2,) p 2127 4747 a(the) p 2265 4747 a(PK) p 2409 4747 a(fon) n(t) p 2575 4747 a(driv) n(er) -47 4847 y(lo) r(oks) p 165 4847 a(for) p 291 4847 a(the) p 434 4847 a(fon) n(t) p 604 4847 a(\014le) p Fj 737 4847 a(cmr10.360pk) p Fw(.) p 1267 4847 a(Glyphs) p 1551 4847 a(are) p 1689 4847 a(simply) p 1954 4847 a(obtained) p 2295 4847 a(b) n(y) p 2410 4847 a(calling) p 2672 4847 a(the) p Fj -47 4946 a(VF) p 46 4946 V 71 4946 a(GetBitmap1\(\)) p Fw 622 4946 a(function.) -47 5100 y(Figure) p 213 5100 a(3) p 281 5100 a(sho) n(ws) p 518 5100 a(a) p 586 5100 a(screen) p 834 5100 a(shot) p 1013 5100 a(of) p 1106 5100 a(a) p 1174 5100 a(sample) p 1449 5100 a(preview) n(er) p 1822 5100 a(on) p 1936 5100 a(X) p 2024 5100 a(Windo) n(w) p 2350 5100 a(using) p 2566 5100 a(Motif.) -47 5199 y(This) p 142 5199 a(preview) n(er) p 516 5199 a(supp) r(orts) p 857 5199 a(dra) n(wing) p 1173 5199 a(EPS) p 1360 5199 a(\014gures) p 1623 5199 a(and) p 1785 5199 a(color) p 1988 5199 a(c) n(hanges.) p eop %%Page: 12 12 12 11 bop Fw 992 772 a(12) p Fs 3081 772 a(Hir) l(otsugu) p 3460 772 a(Kakugawa) p 992 874 2835 4 v 1179 2830 a @beginspecial 175 @llx 329 @lly 421 @urx 513 @ury 2952 @rwi @setspecial %%BeginDocument: xmdvi-image-bw.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: /AMD/keemun/export/disk1/home/kakugawa/res/EuroTeX98/xmdvi-image-bw.eps %%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley %%BoundingBox: 175 329 421 513 %%Pages: 1 %%DocumentFonts: %%EndComments %%EndProlog %%Page: 1 1 % remember original state /origstate save def % build a temporary dictionary 20 dict begin % define string to hold a scanline's worth of data /pix 128 string def % define space for color conversions /grays 1024 string def % space for gray scale line /npixls 0 def /rgbindx 0 def % lower left corner 175 329 translate % size of image (on paper, in 1/72inch coords) 245.73600 184.32000 scale % dimensions of data 1024 768 1 % mapping matrix [1024 0 0 -768 0 768] {currentfile pix readhexstring pop} image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff ffbf7fffdfbfffefdffff7effffbf7fffdfbfffefdffff7effffbf7fffdfbfffefdffff7 effffbf7fffdfbfffefdffff7effffbf7fffdfbfffefdffff7effffbf7fffdfbfffefdff ff7effffbf7fffdfbfffefdffff7effffbf7fffdfbfffefdffff7effffbf7fffdfbfffef dffff7effffbf7fffdfbfffefdffff7effffbf7f da6db5ad36dad69b6d6b4db6b5a6db5ad36dad69b6d6b4db6b5a6db5ad36dad69b6d6b4d b6b5a6db5ad36dad69b6d6b4db6b5a5b96b5555555555555555555555555555555555555 555555555555555555555555555555555555555555555555555555555555555555555555 555555555555555555555555555555555555559b ff271fff938fffc9c7ffe4e3fff271fff938fffc9c7ffe4e3fff271fff938fffc9c7ffe4 e3fff271fff938fffc9c7ffe4e3fff271ffeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1f ba801f7d400fbea007df5003efa801f7d400fbea007df5003efa801f7d400fbea007df50 03efa801f7d400fbea007df5003df6805bdf7ffeeeffff777fffbbbfffdddfffeeeffff7 77fffbbbfffdddfffeeeffff777fffbbbfffdddfffeeeffff777fffbbbfffdddfffeeeff ff777fffbbbfffdddfffeeeffff777fffbbbfd97 fe309bef184df78c26fbc6137de309bef184df78c26fbc6137de309bef184df78c26fbc6 137de309bef184df78c26fbc612fbcb11efcf7efffbbf7ffddfbffeefdfff77efffbbf7f fddfbffeefdfff77efffbbf7ffddfbffeefdfff77efffbbf7ffddfbffeefdfff77efffbb f7ffddfbffeefdfff77efffbbf7ffddfbfffde1d ede03efef01f7f780fbfbc07dfde03efef01f7f780fbfbc07dfde03efef01f7f780fbfbc 07dfde03efef01f7f780fbfbc07ffee03fef7dfffffeffffff7fffffbfffffdfffffefff fff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffe ffffff7fffffbfffffdfffffeffffff7fffffd3f fea86fb75437dbaa1bedd50df6ea86fb75437dbaa1bedd50df6ea86fb75437dbaa1bedd5 0df6ea86fb75437dbaa1bedd50f6eea85bfef0007fffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffc001e7f baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaabfe8c3fff461bffa20fedd77ff5f9e4e9839e4ec0fff779fffddffffee fffff77ffffbbffffddffffeefffff77ffffbbffffddffffeefffff77ffffbbffffddfff feefffff77ffffbbffffddffffeeffffeddddddb f55555555555555555555555555555555555555555555555555555555555555555555555 555555555555554fe98377f4c1fdb970fff4f7ff779e4f8999e4fce7effefffbffbffdff dffeffefff7ff7ffbffbffdffdffeffefff7ff7ffbffbffdffdffeffefff7ff7ffbffbff dffdffeffefff7ff7ffbffbffdffdffdf9d5deff dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbb6a43fdb520effa00dbfd770b7dccc719ccc4fce1219c906667eeffff f77ffffbbffffddffffeefffff77ffffbbffffddffffeefffff77ffffbbffffddffffeef ffff77ffffbbffffddffffeefffffefffcdd5d77 f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdfe506dff283ffb8e17edcb7077f614718cccc7c600c9c932667ffdfff ffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffd fffffeffffff7fffffbfffffdfffffbffc1ddefd dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbf600ff7b007ddfa03dffd76037ff3c219c4ccec08ccc991324fffffdf ffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbffff fdfffffeffffff7fffffbffffeeffffffdfdcddf f78003ffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7ffff fbfffffdff8003dbd40dfdea06f7d403fbb8f6037fe1ca99cedcfcf9c0c990324ffffdfb fffefdffff7effffbf7fffdfbfffefdffff7effffbf7fffdfbfffefdffff7effffbf7fff dfbfffefdffff7effffbf7fffffdeff77dfddeff bbbf7b76eefdd1bc7dddbbbeeedddf776eefbbb777dddbbbeeedddf776eefbbb777dddbb beeedddfeebbbbbeea8fbf7547fefaa2ffed76037fccc899ce1cfce9cfe393b24dfffffe ffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfff ffeffffff7fffffbfffffdfffffffffffdedddbb e6afebfffffff3ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffabb3cfa98befd4c5bfba63eefcd7077f9e4d999d3cfcf9cc6393399f777fff bbbfffdddfffeeeffff777fffbbbfffdddfffeeeffff777fffbbbfffdddfffeeeffff777 fffbbbfffdddfffeeeffffddeffffffffc01deff fbbc7bfcca2392727fffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffeffbab9bff0cefbf867f7ec33bfff778e6e9645983f3cfcf961f798789fffefff fff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffe ffffff7fffffbfffffdffffffeff7effedfeddf7 f7b83bfcc99922727fffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffbf83bbc5fc07f2fe0379ff01f46ef3ff7ffdfeffffef77ffdffdffffffffff7f ffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffefffff f7fffffbfffffdfffffeffffffefefbdfdffdedc dbb01b7e199933267f77fbdfbbfdefddfef7eeff7bf77fbdfbbfdefddfef7eeff7bf77fb dfbbfbbffbbfbbb76e07bbb703dd7f80feff77ff7fffffdddfffffbff7dfffefdfffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffbfff7ffffffffd7fd5fe f7b01bef399933266fffbff7ffdffbffeffdfff7fefffbff7ffdffbffeffdfff7fefffbf f7ffbfefffbfbbc7fe81e3ff40f1eda058baf0007fff7ffffeffffefffffdffff7bbffef ddfff7eefffbf77ffdfbbffefddfff7eefffbf77ffdfbbffefddfff7eefffbf77ffdfbbf fefddfff7eefffbf77ffeeefdfffffffbc001e68 bbb00bfa1899338e7fffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffbfbbbdda800fdd2007fe9003ff7fdff77ffffffffffffffffffeffffffbbfb ffddfdffeefefff77f7ffbbfbffddfdffeefefff77f7ffbbfbffddfdffeefefff77f7ffb bfbffddfdffeefeffeeffffffdfbffffeffffd03 e7383bfcc989228e7ffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbff fffffffffe803bcff4e0fefa7076dd343ff6fffdffffdfffffbbbbfbfefbfffbffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff7f7bf7fff77e3f fb9c7bfc499993d67effeeff7ff77fbffbbfdffddfeffeeff7ff77fbffbbfdffddfeffee fef7effddfaeebbbd0f037e0783ff43c0db95dff7fdffdeeefffffffffffefffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff7ffdffdd1b e7bff9ffffff7fffefbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfff fffdfeffffbff9df80b0ffc0585de03cbff0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa3f fbbffbffdfffdffdfffefff7ff7ffbffbffdffdffeffefff7ff7ffbffbffdffdffeffeff efffffbfffbffbbdc0f4ede87a7ff03c3dfd555555555555555555555555555555555555 555555555555555555555555555555555555555555555555555555555555555555555555 5555555555555555555555555555555555555537 b78003bffbfffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffeffb8003dfe4e0fff270777d392fbcffffffffffffffffffffbffffffef777ffff bbffffddffffeefffff77ffffbbffffddffffeefffff77ffffbbffffddffffeefffff77f fffbbffffddffffefffbfbbbfffffffffffffe3d fbfdffefff77ff7f7ffffbbffffddffffeefffff77ffffbbffffddffffeefffff77ffffd fbbfbfff7fffffb6ff93b77fd3ffdfe0fbff7fbff7fdffffffffdef7eeeefedfffff6dbb ffb6ddffdb6effedb77ff6dbbffb6ddffdb6effedb77ff6dbbffb6ddffdb6effedb77ff6 dbbffb6ddffdb6efdbbfbffeefefffeeffbffdff e7ffbffffffffffffbf7bffdfbdffefdefff7ef7ffbf7bffdfbdffefdefff7ef7ffbf7df ffffefffff7bffdfffffffdfffddfdffff76fbf77ec20000000021085111012000009244 004922002491001248800924400492200249100124880092440049220024910012488009 2440049220024910244040091010001100400eef f9dfeffdffffffdfff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fff 7ff7ffffffffbdbfdbfffdfddeff77ffffdf5fffffeaaaaaaaaaaaaa8aaaaa56db6d24a9 b69254db492a6da49536d24a9b69254db492a6da49536d24a9b69254db492a6da49536d2 4a9b69254db49255a9569b655555555555555dfb b55555555555555555555555555555555555555555555555555555555555555555555555 5555555555555556fedb6feff7f7fedf6dfefeffdfcfffffffffffffffffffddb6dbffdf 6dffefb6fff7db7ffbedbffdf6dffefb6fff7db7ffbedbffdf6dffefb6fff7db7ffbedbf fdf6dffefb6fffff7fffffbffffffffffeffeebf faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaabfbfffff7f7fbfdffbff7b7fbbfbead56db6db556b755555777df6aaba fb555d7daaaebed5575f6aabafb555d7daaaebed5575f6aabafb555d7daaaebed5575f6a abafb555d7daaadbd6b5b5ed55ab6daab7adbdef f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffff6dbdfffdbf7fddbfbfdeefbbedfeeffffffcfb9fffbefffbfdfffffffdf7fffff bfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7ff fffbfffffdfffcbefffeff7ffffdffffff77eefb dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffdffefad53eff6fffdeefffbfeffbfb77ff7feefdaaaebd6ded7db6d7ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffef7dad7adeb6d6f556daafd5dff f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff4fdffff6fffffbefffffbebfefddcdb9fffff7ff7fd7ffffb7ffffffef fffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdffff feffffff7ffffcdd7ffdffbffffbffffff7bf6ef fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffefffffff3ffbffbfbffedfffffedff7effffebfdb6dadf5beafd5557fefbf6eeff fb777ffdbbbffedddfff6eefffb777ffdbbbffedddfff6eefffb777ffdbbbffedddfff6e efffb777ffb77ef7d6af6adaab5edb556dfe1dfd b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffed6feedefffb7f77f7b7fdefffbffca7afffff5eebfeffffdffbfbffffe dfffff6fffffb7ffffdbffffedfffff6fffffb7ffffdbffffedfffff6fffffb7ffffdbff ffedffffedffdcbefffdfffffff7ffffff7aeebf fbffffffffffffffffffffcf93f981e7e4fffffffff3ffffffffffffffffffffffffffff ffffffdfffffff3ffffffdfdfffdfbdffeff77fefbde99d556bf7bf6bdb6d7ffffffffef fffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdffff fefffffdfffffddbb5b756d6dadeaadb56e9fdf7 f7ffffffffffffffffffffcf93f99c67e4fffffffff3fffffc1ff8ff3fffffffffffffff ffffffff87ff6e4befbf7777fdbbbffef5faffbfbfeba57fffdbdedff7ffff6ffdfeeeff ff777fffbbbfffdddfffeeeffff777fffbbbfffdddfffeeeffff777fffbbbfffdddfffee effffbbf7ff7fefefffffffffffbfffffb87aefd bbffffffffefffffffffffe731f19e73ccfffffffffffffff8cff0fc3fffffffffffffff ffffffef7bffefaef00017f8001bfc000ddf3fffffcef5f6dafef7fadeaaa89002011100 008880004440002220001110000888000444000222000111000088800044400022200011 10000442800800b7d6aadab556afb6aadf3edd0d f7fffffff7fffffffffffff271f19f33ccf9e61c9873c791f9cfe4ff3fffffffffffffff fffffffefdbb464fe3f7f5f2dffaf8ffbcfcfdffeeefd95fffb7beaf7bfff5555555555a aaaaad555556aaaaab555555aaaaaad555556aaaaab555555aaaaaad555556aaaaab5555 55aaaaa95aaadafb7ffffffffbfafffffd7bf66d fbfffffffffffffffffffff8f0e19f318cf9e4cc11339388ff8fccff3fffffffffffffff fffffffefdbb6ea7ef7df7b7fbdbdbdbfdbd6f77ffd56feaaadad5fdd7555eeffdfeeef7 ff777bffbbbdffdddeffeeef7ff777bffbbbdffdddeffeeef7ff777bffbbbdffdddeffee ef7ffbbf77f7b7adaaaaaaaaaf57aaaaabd75dfd b7ffffffffffffffffff7ff8f2e99f399cfcccccf3f3399cff9f9cff3effffff7fffffff ffffffeefdbb6f4f6fdf77f7bef3f3ffddfcfffeffdbbabddfef7eabbaffebb556abbbae aaeeeeaaeeebaabbbbaabbbaeaaeeeeaaeeebaabbbbaabbbaeaaeeeeaaeeebaabbbbaabb baeaaed5dd5aed7ef7ff77dffafd77ffdebafefd fbfffff7fffdfffffffffff272e99f399cfccc0cf873399cfe3f9cff3fffffffffffffff fffffffeedbb6eadefffe6e7fffb7bfffded7fffbbfffffff6ffdfffffddffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffefff77fdfbbfbffdddffffedf9 f7ffffffffffffbfffffffe732499f3c3cfedcfcfe33399cfc7f807f3fffffffffffdfff fffdffdef5bb6f4ff7fff3fbfffbfeddf57effdffeffffeffffffffffffffffffffffffb ffbfbffffffeffefefffffffbffbfbffffffeffefefffffffbffbfbffffffeffefefffff ffbfffffffffffffffffffffffeffffff7fffebd dbfff7ffffffbfefff7fffe733599e7c3cfe1cfcff33399cf8fffcff3fdfff7feffffbff dfffffff7bb36f2efef7f7ff777affff7dfb6dffffbddffeffbbfbfedfffbf7ffff76eff fffbfbfddbbffffefeff76efffffbfbfddbbffffefeff76efffffbfbfddbbffffefeff76 efeffbfbbbffbffbbbfeff7fefffbfffffdf7dfd f7fffffffffffffbffffffcf93199c7e7cff3c4cf133939cf9fcfccf3ff7fffffbffffef fbffffff85cb66c7dfbf777fffebbbeffdbefffbfffffeffbfffff6ff6f7fbddb77fffbf b7fffedfffefedffffb7fffbfb7fffedfffefedffffb7fffbfb7fffedfffefedffffb7ff fffedf7ffedbfb7fffdfdfddfffbefbb7df7eef5 fbfffffffffffffeffffffcf93b981fe7cff3e1cf873c79cf80cfccf3fff7fffffbfffff ffffffefffffff2ff7fbf3fdddfbff7bd9ff7fbf6fefffdffbffbffffffdffffffffffef feffbffffffbffbfeffffffeffeffbffffffbffbfeffffffeffeffbffffffbffbfefffff fdffffdffffffffffff7fffffdfffdfffffffdbd b7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffe4de0001770000af80004ecdffffbff77f7ff7beffbffbfdfffffeef7fd ffdbfffbbdff7ff6fffeef7fdffdbfffbbdff7ff6fffeef7fdffdbfffbbdff7ff6fffeef bffffffedfffbfeeeefff7ffbf7fffffdffdfe05 fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffdfffffffafefffd7d7ffebebfffdf97deffeffffffffdffbfefffff7fbfdffffff fffff7fffffffffffdffffffffffff7fffffffffffdffffffffffff7fffffffffffdfffb ef6dfbfffffbeffffffefdf7ffdefff7ff7f75fd e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffe4bab6ef5f3bb7bbbddbdbcfffbffbbfdff6fffffbfbbfffdbedf7fbdff dbfefedfef7ff6ffbfb7fbdffdbfefedfef7ff6ffbfb7fbdffdbfefedfef7ff6ffbfb7ff ffffbef7fbbffb7fffffff7deffff7bdf7fffed9 fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffeffffffebeffffffffffddfefff7ff60143fc402009020084144000a4520802200 240109200880090042480220024010920088009004248022002401092008800900424808 10884508044014800000028a1040084a08008dff b7ffffffbfffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffff fffffff82249255ffeffb7bf7fff7fbffeeeeda57feaaaaaab5552ad2aaad2a956ab5555 556d52aad555555b54aab5555556d52aad555555b54aab5555556d52aad555555b54aaa5 a552a955aaada5555556da52d695aa92d5ad5ef7 fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffeffe6cd555537e7fbfdf9fff7d9ffdffb777fefcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7f f7ffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdee5feff73bb7ff8fefb7cebaabfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffedd d80000000000000000000000000000000000000000000000000000000000000000000000 000000000000002fefdfe7f7ffdafbb7fdfd67effbefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcdeef035f5e81bfbfc0ddcf566bfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde0d fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaf67e7f767f7f3bbfb6cfd67f5ffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffc7efedb7f776f9fadbfdbcf6bbbbefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe6d fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffafeeeff3f3f7fbbbfafdf965f37fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd f7ffffedb6db77b6aab6db7777bddbffd5b6db6db6db6db6b56db5afff6d55b6db6db6db 6addb7ffffffffceebeef776f5bbf37bddfceefdbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdedd dbffffffffffdefffffffffdfdef7bff7fffffffffffffffffffffeffdffffffffffffff fff7fd6dbfffffabefe7f7f7e7fafbf3fcdd6bf97defffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd f7fbffdffffffffffffffffffffffbffffffffffffffffffffffffefffffffffffffffff ffffffff3fffffcfdfefb5fff77bbffaddfef60adfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe79 fbfffffffffffffffffffffffffffbffffffffffffffffffffffffefffffffffffffffff ffffffffffffffaef7adf777f3dbfbfbfdbb64a4ffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeddd d7ffffeffffffffffffffffffffff3ffbfffffffffffffffffffffcffeffffffffffffff ffffffff3fffffc7fdeff7fdb7f9fedbbdfef7ffb7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd fbfffffffffffffffffffffffffff7ffffffffffffffffffffffffdfffffffffffffffff ffffffff7fffffadffc773dfe6fbdff1f4ef66db7dcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd e7ffffdffffff83ff7ffffbffffffbff7bfbfffffb8ffff6ffffffeffdfffffc1fdff77f ffffffffbfffffcf5e9fe6ffcfb2f7e7f9faf7ffffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffed9 7bfffffff7fffbdff7ffffbffffffbfff9b3efffff7ffdf7ffdfffeffffffffdeeff77df ffffffffbfffffbff83dafb817f7fc0fbbbf66aabfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf3 f7ffffeffffffbdc771e3cbffffff3ffb9f38b2d3a2e3c62e3a7ffcffefffffded5a631d 7fffffff3fffffdbffbfeffffff7bff7efeef7ff7fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeff ebfffffffffffbdbb6eddb3ffffff7fffaeb76ccdb6ddbb6dd9bffdffffffffdecd9b6ec ffffffff7fffffbfbffffdffbffdffbffeff65b7bbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff5fd f7ffffdffffff83bb6efdbbffffffbfffaebf6eddb6dffb6ddbbffeffffffdfc1ddbb6ed ffffffffbfffffddfbf7ffbdfedfbffefbbef7feffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdedf bbfdfffffffffbb836ee1bbffffff3ffbb5b86eddb6dfc36ddbbffeffefffffdfddbb60d ffffffffbfffffafff7edbff7bf7feefbffd66abbfcfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffcffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf7 f7ffffeffffffbdbf6eddbbffffffbfffb5b76eddb6dfbb6ddbbffcffffffffdfddbb6fd ffffffffbfffffceefdff6efdffb77ffedeef7ff7bdfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffbffff9fffff fffffffffffffffffffffffffffffffffffffe7d fbfffffffefffbdbb6eddb3ffffffbfffbbb76cddb6ddbb6ddbbffdffdfffffdfddbb6ed ffffffff3fffffaff07037f8381bfc140d7f656dbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffe3fffffffcffe67ffffffff8ffffc7ffff ffffffffffffffffffffffffffffffffffffed0d d7ffffdffffffbdc771e2cbffffffbff7bbb8b2ddb6e3c52e3bb6deffff7fffdfddbb31d db7fffff7fffffcbe7e777f3f1b9b9f9fdfcf7ffffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffddfffffffe3ff3fffffffff9f7ffe3ffff ffffffffffffffffffffffffffffffffffffdefd fbfffffffffffffffffffffffffff3ffffffffefffffffffffffffcffeffffffffffffff ffffffffbfffffaee6ebf5b6f7fbf9bb79dd67555ddfffffffffffffffffffffffffffff fffffffffffffffffffffffc3e3c3fffff7fe1ddffffffff1ff3fffffffff003ffe3ffff ffffffffffffffffffffffffffffffffffffeded f7ffffeffffffffffffffffffffff7ff7ffffeefffffffffffffffdfffffffffffffffff ffffffffbfffffcfefeee7e7b77bfbfbdcfcf5ffffefffffffffffffffffffffffffffff ffffffffffffff87fc30001e3c3e3fffff8000ddcfe00fff9ffffffffffff071ffe7ffff fffffffffffffffffffffffffffffffffffffeb9 dbfffffffffffffffffffff7fffffbffffffff1fffffffffffffffefffffffffffffffff efffffff3fffffabefeff3f7e7fadbfbfdb967b6bfcfffffffffffffffffffffffffffff ffffffffffffff87f83c3e1e3c3e3fffffe1fc63e00007ffffffffffffffe3f1ffe7ffff ffffffffffffffffffffffffffffffffffffedfd f7ffffdffffffffffffffffdfffffbffffffffffffffffffffffffeffeffffffffffffff ffbfffff7fefffcf7ddff6ffffebff7bfdfef6fff7dfffffffffffffffffffffffffffff ffffffffffffff87f87c3f9e3e7e3ffffffffcffe7ffe3ffffffffffffffc7e3ffe7ffff ffffffffffffffffffffffffffffffffffffdefd fbffffffffdfffffffffffff7ffff3ffbffffffdffffffffffffffcffffeff7fffffffff ffffffffbffbffafeff7f7fbfefb7bdefddf67aabdefffffffffffffffffffffffffffff ffffffffffffff83f07c3f8e3ffe3ffffffff8ffe7ffe3fffffeffffffff9fe7ffe7ffff ffffffffffffffffffffffffffffffffffffedfd b6fffff00050000000000015400097ffe0112005000000000000095fff42814000089200 104000253fffffcdff7db7bf77dbffffb5faf5ffffcfffffffffffffffffffffffffffff ffffffffffffffc3f0fc3fce3ffe3ffffffff9ffe7ffe7f3fffdffffffff3fc7ffe1ffff fffffffffffffffffffffffffffffffffffffeb5 fbbfffd6dd96ef7bb6dbbbd55bbeabff8fd6aeeab6dbbfef7edb6aaffe555aaddfeb54ed d75b77a97fffffa7fbfff5effff9def7fd7f67b6bfdfffffffffffffffffffffffffffff ffffffffffffffc3f0fc39ce3ffe30fffffff9fff7ffe7f87ffbfdfc7ffeffcfffe63fff ffffffffffffffffffffffffffffffffffffedfd f7f7fffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffff ffffffffffffffcf600017f0000bf80005fcf6ffffefffffffffffffffffffffffffffff ffffffffffffffc1e0fc39fe3c3e007ffffff3fff3ffe7fe3ff7fe003ffdff8fffe78fff ffffffffffffffffffffffffffffffffffffde05 dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffafefdee7f6eeeb7bffeced67aabbcfffffffffffffffffffffffffffff ffffffffffffffe1e1fc31fe3e3e1e3ffffff3fff3ffcfff3fcffe5fffffff1fffe7e3ff fffffffffffffffffffffffffffffffffffff5ed f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcdcef7f6d7fbfbe9db7dbcf6ff7fdfffffffffffffffffffffffffffff ffffffffffffffe0c1fc01fe3e3e3f1fffffe7fff3ffcfffff9fffe7fffffe3fffe7f1ff ffffffffffffffffffffffffffffffffffffde79 fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbff7fddffb7fbdfffffffb67dbdfefffffffffffffffffffffffffffff fffffffffffffff0c1fc31fe3e3e3f1fffffe7fff3ffcfffff3fffe7fffffe7fffe7f9ff fffffffffffffffffffffffffffffffffffffdff d7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffd77ffffb7fffefdf7fddfef57f7dcfffffffffffffffffffffffffffff fffffffffffffff0c3fc39fe3e3e3f1fffffcffff3ffdffffe7fffe7fffffcffffe7ffff ffffffffffffffffffffffffffffffffffffeeff fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbfddff7fefeefefbfeffb767d5bfdfffffffffffffffffffffffffffff fffffffffffffff0c3fc39fe3e3e3f1fffff9ffff3ff9ffff8ffffe7fffff9ffffe7ffff ffffffffffffffffffffffffffffffffffffdddb f7fffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffffff fffffffffffeffcdffb7e7fdfffbbffbedfcf6ffffefffffffffffffffffffffffffffff fffffffffffffff8c7fc3ffe3e3e3f1fffff3ffff3ff9fffe1ffffeffffff3ffffe7ffff ffffffffffffffffffffffffffffffffffffeefd dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaff7fef6dffb3bf6dfb9bf67b6b7cfffffffffffffffffffffffffffff fffffffffffffff807fc3ffe3e3e3f1ffffe7ffff0000ff787ffffefffffe7ffffe7ffff fffffffffffffffffffffffffffffffffffffdbd f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcbbfc4f3fba379fff0bdeeedfbffdfffffffffffffffffffffffffffff fffffffffffffff807fc3ffe3e3e1e1ffffcfffffbffcff00fffefef3fffcfffffe7ffff ffffffffffffffffffffffffffffffffffffd69d bbfffffffffffffffffffffffffffbffffffffffffffffffffffffffffffffffdfffffff ffffffffdfffffaefd9e77bfcf7b6fe7bcfb775ebdefffffffffffffffffffffffffffff fffffffffffffff807fc3ffe3e3e0c3ffff3fffffbfffff83ffff0000fff9fffffe7ffff fffffffffffffffffffffffffffffffffffffdbd f7fbfff77776db6ddddb6dbb6db6dfff6db6dbbbbbbb6d6d6dddb6dfff7bbbb6fadbbbb6 dbbb6db6ffffffcfef9ef7f7d75bfeef9dfeebf77fcfffffffffffffffffffffffffffff fffffffffffffffc0ff007fc0c0e607fffcffffffffffffcfffff8ffcfff3fffffe7ffff ffffffffffffffffffffffffffffffffffffeead ebffffdfdfdfffff7f7fffeffffffbfffffffeefefeffffffff7ffefffdefeffdffefeff ffefffffbfffffabffbef6fddf7bbbebbddf67bfbfdfffffffffffffffffffffffffffff fffffffffffffffe1ff007fffc0ffffffffffffffffffffffffffffffffcffffffefffff ffffffffffffffffffffffffffffffffffffddb9 f7fffffffffffffffffffffffffff3ffbfffffffffffffffffffffeffdffffffffffffff ffffffffbfffffceddfee7dfff79ffdfbcfaf6eaf7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff6bd bbffffeffffffffffffffffffffffbffffffffffffffffffffffffcfffffffffffffffff ffffffff3bffffafffbbf5f7bb7beefffdbf65ffbdcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddfd f7fffffffffffffffffffffffffffbff7fffffffffffffffffffffdfffffffffffffffff ffffffff7fffbfcbb7ff777dffeb7ffdb5faf7b6ffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeebd ebfffffffffffffffffffffffffffbffffffffffffffffffffffffeffdffffffffffffff ffffffffbfffffaffdefe7ffeff3ddeff9ef677fbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffde9 f7ffffefffffffc0dbfffffffffff3ffbfffffc1ffffffffffffffeffffffff87ff6ffff ffffffffbfffffdf7f7b4def7b65f7bef37ef5eb7fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeef3 bbffffffffffffdffbffffffbefff7ffffffffdeffffffffffffffcffffffff7bff7ffff ffffffffbfffffbbefe00f7bf00ffff807dd67bfbbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd03 f7ffffffffff7fdfdb8ffffffffffbfffbffffdee3a78ebfffffffdffeffffefda62e3a7 9fffffff3f7fffcefbfffffefff7bf7fddfef77affefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff6ff ebfdffefffffffdfdb73fffffffff3ffbfffffdedd9b767bffffffefffffffefd9b6dd9b 6fffffff7fffffbfbefffbdffefdedf7fff765efbfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddbf f7ffffffffffffc1db77fffffffff7ffff7fffc1fdbb76ff7fffffcffdffffefdbb6ddbb 7ffdf7ffbfffffdfffdb7efbf7bfffff7bbef7bb7bdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd bbffffdfffffffdfdb07fffffffffbffffffffdfe1bb06ffffffffdfffffffefdbb6ddbb 9fffffffbfffffadf7fff7bfbffbbefbdced66efbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffded e7ffffffffffffdfdb7ffffffffffbff7fffffdfddbb7efffffdffeffeffffefdbb6ddbb efffffffbfffffc7bff6e7f7fb5af7ffbdfef7faffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeebd fbffffefffffffdfdb777ffffffff3ffffffffdfdd9b76ffffffffeffffffff7b9b6ddbb 6fffffff3fffffaffdc675fde373fdd1bdff655f5ddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd3d f7fffffffeffffdfdb8edbfffffff7ffffffffdfe2a78eedb7ffffcffffffff87a72e3bb 9db7ffff7fffffcb6f1ef7dfcf7bdfe5bcdaf7f7ffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee9d dbfffffffffffffffffffffffffffbffbfefffffffbfffffffffffdffeffeffffbffffff ffffffffbffeffafffaef6f7d77af7ef9dff65bebfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdbd f7ff7feeffffffffffffffffff7ff3ffffffffffffbfffffffffffeffff7fffffbffffff ffffffffbfffffcfdfbef7fede7bfee7bd76efebf7dfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeebd ebffffffffffbfffffffff7ffffff7ff7fffffffffbfffffffffffcffdfffffffbffffff ffffffff3fffffa6fbfcd5dfbf79dfffbdff737ebdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddb5 77fffffffffffffffffffffffffffbffffffffffffffffffffffffdfffffffffffffffff ffffffff7fffffcfbffff7fbffdbf6fef5dceddbffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd fbffffdffffffffffffffffffffffbffffffffffffffffffffffffeffffffffffffffffd f7ffffffbeffffaff7b7f3bfedfb7fefbcff677ebfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdbd e7fffff20000400001100080008093ffc040000000000000000002afff08000008800005 14000012bfffffc6fefda7eeff73df7ff9b6f7d7ffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeef1 7bfffff5bbb75bbdfd56eeadb73ea7ff9f5b77bbdf76eefffdbbbd2ffed6fb77b33fbb6a a5ddb6d4bfffffbfefffceffbfc5fbddf3ff66febbcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddf3 d7ffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffff ffffffffffffffdf7dc01fbbe00f7ff807faebdb7fdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff607 fafffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff ffffffffffffffbbdfffdbfffffff77fb6df777fdfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddbd f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdffbfeffeefddbdffffff6e5eb7dcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeef dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaefff5f77ffefefded6eff77bfbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd7f f40000000000000000000000000000000000000000000000000000000000000000000000 000000000000005fb7bdbdfbeebfbfff7fdce6daffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee7b bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbbfdfdffdffaf7fb7f5dff77ffb7cfffffffffffffffffffffffffffff fffffffffffffffbffffc7ff8fffe3f7ffffeffffffffffc7fffdffffffc7ffffbfdffff ffffffffffffffffffffffffffffffffffffdd5f f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdeff80eefec0fdefc07f76e56b7fdfffffffffffffffffffffffffffff fffffffffffffff8ffffcfff9fffe7f1bfbfe3fffffffffcffffc7fffffcffff7cfc7fff ffffffffffffffffffffffffffffffffffffee77 dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbfefb7ffb7dedf7feb77ff77bffdefffffffffffffffffffffffffffff fffffffffffffff9f9ffcf8f9fffe7f3cfcfe7fffffffffcfffdcfcffffcffff9e78ffff fffffffffffffffffffffffffffffffffffffdfd f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffd7bb3fbbfddfffddefffdae7fabfcfffffffffffffffffffffffffffff fffffffffffffff000ffcf9f9fffe7e7e7e7e7fffffe7bfcfe7c0007fffcfffdce73fdff ffffffffffffffffffffffffffffffffffffd6bf fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffdfffbdffddffffdbfbff7ddeff76afbfdfffffffffffffffffffffffffffff fffffffffffffff3f3ffcf9f9fffe4eff3e3e7f9fffcf800003cffcffffcfffdcfef9cff fffffffffffffffffffffffffffffffffffffdff 6781ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcf7ffff5b7fffaf7fffdbee7f6f7efffffffffffffffffffffffffffff ffffffffffffffe7f7ffcf9f9ffe005cf3f3e000fff9f9fffffcffcffffcfff800000e7f ffffffffffffffffffffffffffffffffffffeefd fb9cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffafdbfff7feffbbbfeffded75bfbdcfffffffffffffffffffffffffffff ffffffffffffffcfef9fcf9f9ffffcfcffffcff9fff9f9fffffc000ffffcfff9ffff9f3f ffffffffffffffffffffffffffffffffffffddf5 b79c87261fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcbffeed6efddfbeeff75fee7faffdfffffffffffffffffffffffffffff ffffffffffffff80000fcf9f9ffff9f97fffcff3fff3f9fdfffcffcffffcff33ffffbf3f ffffffffffffffffffffffffffffffffffffeebd eb9c3244cfffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffff ffffffffffffffaef77ff7fbffebfbfbfdbf76afbfefffffffffffffffffffffffffffff ffffffffffffff27cf9fcf9f9ffff9f97fffdc77fff3f9fc7ffcffcfe0000013fff37fbf fffffffffffffffffffffffffffffffffffffdfd f781f264cffffffffffffffffffffbffffffffffffffffffffffffffffffffffffffffff fffffffffffbffcfbffbb3bff77b7ffeedeae7fb7fcfffffffffffffffffffffffffffff fffffffffffffce7cf9fcf9f9ffff37bbffd9cefffe7f9fcfffc000ffffcffff0001ff9f ffffffffffffffffffffffffffffffffffffeef5 fb9f82640fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffbfffffa7ef8017fec00bdf6004ff756fbbdfffffffffffffffffffffffffffff ffffffffffffffe7cf9fcf9f9ffff7339ffdbcffffe7f9fcfffcfffffffcffffffe7ff9f ffffffffffffffffffffffffffffffffffffd905 d79f3264ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcdfebff777dfe9fbcffdfee7feffefffffffffffffffffffffffffffff ffffffffffffffe0001fcf9f9fffe777c7fb7cffffe7f9fcfffcfffcfff97fffffcfff9f fffffffffffffffffffffffffffffffffffffebd fb9f3244cfffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaf7baed3df56fb7febb5db6dabbfcfffffffffffffffffffffffffffff ffffffffffffffe7cf9fcf9f9fffc6efe1fbfcffffe7f9f9fffc00007ff97ffffebfff9f ffffffffffffffffffffffffffffffffffffedf5 b79f89261ffffffffffffffffffffffffffffffffffffffffffffffefffffffffdffffff ffffffffffffffdfff7fffffffbfdfffff7ef7ff7bdfffffffffffffffffffffffffffff ffffffffffffffe7cf9fcf9f9fffa3dff3f7f97fffe7f9f9effcfffffff9bffffe7fff8f fffffffffffffffffffffffffffffffffffffeff fbffffe7fffffffffffffffffff7ffbffffffefbffffffefffefbfffffffffffffffffff ffffffffffffffbbffedfeffdff7feef7bff656dbfefffffffffffffffffffffffffffff ffffffffffffffe7cf9fcf9f9ffe64afcfe7f97fffeff9f9f7fcfffe7ff3bffffe7f9fcf ffffffffffffffffffffffffffffffffffffeddd f7fffe67ffffbffffffffffffffffff7fffffffefffffffefffffffff7efffffffffffff ffffffffffffffdfd87fb7f83dfef61bdfdef7f7ffcfffffffffffffffffffffffffffff ffffffffffffffe7cf9fcf9f9fffe66007cff97fffeff9fbf3fc00003ff3dff000000fcf ffffffffffffffffffffffffffffffffffffde7f dbffff0fffffffffffffffffeffffffdfffeffffdfffefffeffffffffffbffffffffffff fffffffffffeffaef3fbffb9f76ffcfffefd66bd5ddfffffffffffffffffffffffffffff ffffffffffffffe0001f9f9f9fffe667cf0ff3bfffeff3f3f9ffcffe7fe7cffffe7fffcf ffffffffffffffffffffffffffffffffffffedf7 f7fffffffffffff7fffffff7ffffffffbf7ffffffdf7ffffffffffffffffbefdffbfffff ffffffffffffffdff6df6dfb7ffbbdbf77bef7efffefffffffffffffffffffffffffffff ffffffffffffffe7ff9f9f9f9fffe7e7cf8ff3bfffeff3f7f9f1cf1e7fe7e7fffe7fffcf fffffffffffffffffffffffffffffffffffffebf fbffffffff7ffffdffffffffffffffffffffffffffffffffffffffffffffffffffefffff bfffff7fefffffbbc7effff3f5fff9f9ffed6b76bfcfffffffffffffffffffffffffffff ffffffffffffffe7ff9f9f9f9fffe7e7cfcfe7dfffe7f3f7fcf3cf3e7fcfe3fffe7fff8f ffffffffffffffffffffffffffffffffffffedfb b7fffffffffffffffbeffffffffffffffffffffffffffffffffffffffffffffffffdffdf efffffffffffffdeede6ff66f76f737bedfce7dff7dfffffffffffffffffffffffffffff ffffffffffffffcfff9fbf9f9fffe7e7cfcfe7cfffe7f7effcf3cf3e7f9ff1fffe7fff9f ffffffffffffffffffffffffffffffffffffdedf fbfffffffffffffffffbeffffffffffffffffffffffffffffffff7ffffffffffffffdfff ff7f7fffffffffafefefebf7b7fbfbdb7f7d76fabdefffffffffffffffffffffffffffff ffffffffffffffcfff9f3fff9fffe7e7cfcfcfe7ffe7e7ef8073cf3c7f3ff87ffe7fff9f ffffffffffffffffffffffffffffffffffffedff f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdfe6eefff3f3fef9fbffdce76fffcfffffffffffffffffffffffffffff ffffffffffffff9fff9f7fff9fffe7e7cfc79fe0ffe7ee003e70003cfe7ffc1ffe7fff9f fffffffffffffffffffffffffffffffffffffe7d dbffffddadd6db7edefffdb6dab55bffdbff804922100008800008000024840802552090 a880810047ffffa6efeff777f7fbbbf3fdfd75febfdfffffffffffffffffffffffffffff ffffffffffffff3ff81effff9fffe7e00fe73ff1ffe3df03fe73ffe0f9fffe3ff07fff9f ffffffffffffffffffffffffffffffffffffedfd f7fffff7ff7ffff7f7efffffffffff5b7dffdeaaaad6fbd56eeef5ddffaaab6bba92ad55 4b6eb6769fffffcfffdff5ffff7bfffeecfae7abffefffffffffffffffffffffffffffff fffffffffffffcfffe3dffff9fffe7e7cffcfff9fff3ff7ffe7ffff9e7ffff7ffcffff3f ffffffffffffffffffffffffffffffffffffdeed fbffffffffffffffffeffefffffffffffdffb7ffffffdeffffffbfff6dffffffffffffff fffffffff7ffffaddffdd7efb7d9ff7ffddf76febbcfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffff3ffffffffffffffffffffffffff3f ffffffffffffffffffffffffffffffffffffedfd d7ffffffffffffffffcffffffffffffff9ffddddaedb7fff7bbfff7ffffffbdeefffffff ff7bffdfffffffcff6ef77fdfdfbdbdbddfee7b77fdfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffff9fffffffffffffffffffffffffe7f fffffffffffffffffffffffffffffffffffffebd fbffffdfffffffffffdffffffffffffffbff9fffbffe7fb7dfedf7dbfbdb7ff7fef6db6e dbdf6dfdfeffffa7fffff57ffffafffef57b76fddfefffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffffe7f ffffffffffffffffffffffffffffffffffffedf5 f6ffffffffffffffffeffefffffffffffdffdffffffedbffffffbffedeffdeffbfbfffff ffffff7f6ffdffcee00017f0000bf80005dce7af7dcfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffcfffffffffffffffffffffffffcff ffffffffffffffffffffffffffffffffffffde05 dbffffefffffffffffeffffffffffffff9ffdfffbfff7efdfb7feeffffbff7bff7fffffb fefdfff7ffffffafafbbe7d36f6bdbfffdfd75fbbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffdff ffffffffffffffffffffffffffffffffffffedfd f7fffffffffeffffffcffdfffffffffffbff97ffbfff7fefdfedffefffedfff6fdedb6df b7efb7bfefffffcbedff76f7fbfaf2ddecf4e6deffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeb5 fbffffffffffbfffffdffffffffffffffdffbfffbffe77feffff7dfedbff7fffbfffffff fffffffeffffffbef777dffffef7ffff7fbf77f7b7cfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff d7ffffefffffffffffeffefbfffffffffdffdfffbfff7dbfbdbfefb7feffedbfefbfeff6 fedefef7efffffdfbffdfbb6dfbddf77fbfcf5bb7fdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdedd fbffffffffffffffffeffffffffffffff9ff9fffbfff7ff7eff7ffffffb7fffbfdfb7dbf b7f7b7bdffffffb7efdf7ffff7ff7bfddfef67effdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff5ff b7ffffdfffffffffffcfffff7ffffffffbffb7ffbffe6fffffff7dff6ffdbfdeffdfffff ffffffffb7ffffddfefff6eefdefffdff77eed7abfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde77 ebdffffffe0ff7ffffdffeffefbfffbffdffdffffffefedef6dfefdbfbffedffeff7f7ed fdbdfdffffffffbf7aeddfff3f7bf6b77dfb67df7fdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff f7ffffeffef7fdffffefffffe3bfffbffdffdfff9fff7ff7fffdfefffedfff77fefdbf7f 6fffdf6defffffdfddfefdbaef7edf7dbfdef6f7b7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe1b fbfffffffef6b1ddffeffdffebb8de1ff9ff9fffffff5bffdfefbffdbff6ffff77fffbff fff7ffff7fffffbbf41c3fee4a1ffd070ff767befdcfffffffffffffffffffffffffffff ffffffffff003ffffff18fffc7ff8fffc7fffffffffffff80fffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed9f d7ffffdffef66eddffcfffffebb76dbffbffb7ffbffe7fbef6fffbefefffb7dffddffef7 fdbdbbfff7ffffdef5027bfc8137bea09b7cf6ebbfdfffffffffffffffffffffffffffff ffffffffff8fbffffff1cfffe7ffcfffe7fffffffffffff3f7fffffffffffffbffffffff ffffffffffffffffffffffffffffffffffffde17 fbffffff7e0eeeddffdfffffedb773bffdffdfffbffef7f7ffbeff7fff7ffdfdbff6dfbf 6fffffb7fffbffaff8806fbd503ded301fff67feffefffffffffffffffffffffffffffff ffffffffff8fbfffffffcfffe7ffcfffe7ffffffffffffe633fffffffffffffbffffffff fffffffffffffffffffffffffffffffffffffd9d b7ffffeffefee0ebffeffeffeeb073bffdff9fffbfff7efffff7efdefbdbffefeffffffb ffefefff6fffffdfb7c0fde9e07ffce83eeef6b7bfcfffffffffffffffffffffffffffff ffffffffff8dbfffffffcfffe7ffcfffe7ffffffffffffecc1fffffffffffff3ffffffff ffffffffffffffffffffffffffffffffffffee3f ebfbfffffefeefebffefffffeeb7edbff9ffb7ffbffe7fbb6dff7bf7bffedf7ffdbffbff f6fb7effffffffbdfa81bffd40efbea077fb6bdf7bdfffffffffffffffffffffffffffff ffffffffff8df000e071ce7fe0ffc801e4223c04080440e9e5c0c1800701c460f040fe0e 0603ffffffffffffffffffffffffffffffffdd7f f7fffffffefeeef7ffcffdffef375ebffbffdfffbfff77ffffdfffffeffff7fefff6df6f bffffbedf7ffffd7d8a3f77c51fdee28ffbee6f5bfefffffffffffffffffffffffffffff ffffffffff81f9cce671ce7fe27fc819e433b98ccccccce9e5989cce679ce773e664fce7 24c7ffffffffffffffffffffffffffffffffeedb fbffffeffefef1f7ffdfffffefb8de9ffdffdfffbfff7deffffddf7ffb6ffdf7b7fffffd ffdfdf7fbfffffbde5c2ffd2e1dff9606ded77bfffcfffffffffffffffffffffffffffff ffffffffff81f9dcf679cfffe77fc9d9e4f3b99ecccdece9e59d9ccee79c6773e727fce7 3ccffffffffffffffffffffffffffffffffffdff d7ffffffffffffffffeffffffffffffffdff9fffbfff5ffedb6ffbf6fffb7fbffedfbdff f6f6ffdff7ffffdf6803ddf400f77a10fff8e5f6bbdfffffffffffffffffffffffffffff ffffffffff8dd9dcf079cfffe77fc3c1e1f3b99e0e05e0e9e59f9ccee79c6773e027fce7 3ccfffffffffffffffffffffffffffffffffee77 fbffffffffffffffffcffefffffffffffdffb7ffbffe7f77ffffffbfbfffdfeffffdefb7 bffff7f6ffffffbfe387ff71c3ffd8c1f77d6f5f7fefffffffffffffffffffffffffffff ffffffffff8d99dce679cfffe77fc399e1f3b81cce21ccedc59f9ccee79c677367e7fce7 3c0fffffffffffffffffffffffffffffffffddfd d7ffffefffffffffffdffffffffffffff9ffdffffffef7fdfffb6fffedbffdfedbeffffd fffffdffefffffdbe80f77f407ddfd03bfdcf3f5dfcfffffffffffffffffffffffffffff ffffffffff8fb9dce659cfffe77fc19960f3ba7cca23cca4019e9ccee79ce77367a7fce7 3d3fffffffffffffffffffffffffffffffffeedf fbffffffffffffffffeffdfffffffffffbff9fff9fff7dff6dbffefbffedfff7fefffeff db6dbf7f7ffeffaf500dfde006ff7003fdf967bf7ddfffffffffffffffffffffffffffff ffffffffff8fb9dce619ce7fe779c8986473183cc333cc33ff8c88cee798e6326327cc47 3c1ffffffffffffffffffffffffffffffffffdff d7ffffdfffffffefffeffffffffffffffdffb7ffffff7fdfffefffdeffffb77fffbdb7ef fffffff7f7ffffdfeb0fdfbd87f7da92effcf6dbbfefffffffffffffffffffffffffffff ffffffffff0030006110ce7fe779cc846678880c2373c239f1e3c1800381f118f8c3ce0e 1c07ffffffffffffffffffffffffffffffffeebb fbffffffffffffffffcffefffffffffffdffdfffbffe5ff7fffedbffb6ffffdf6feffffe f7fff7fdffffffb6e986f7f4c3bffa63bedd67feffcfffffffffffffffffffffffffffff ffffffffff003ffffff087ffc01f807fc03ffbcffffffffc07ffffffff9fffffffffffff fde7ffffffffffffffffffffffffffffffffddff e7feffefffffffffffdffffffffffffffdffdfffbffefb7db6f7ff7fffb6fffbfbfbfedf bf6dbedfb7ffffdfb0cfff6867eefc33f7fef5b7b7dfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffbefffffffffffffffffff9fffffffffffff fdf7fffffffffffffffffffffffffffffffff6f7 fbffffffffffffffffeffffffffffffff9ff9fffbfff7ffffffdffdbffffb6ffffffb7fb fdffffffffffffa7fc07b3fe02f9df01fc7766fb7defffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff9cfffffffffffffffffff0fffffffffffff fce7ffffffffffffffffffffffffffffffffdddc b7ffffdfffffffffffcffeffff7ffffffbffb7ffbfff6fdfffbfdbfedbffffddbfbefdff ffff7bfdefffffd6ee05f9df03bdf780defef7afffcfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff80fffffffffffffffffff0fffffffffffff fc07ffffffffffffffffffffffffffffffffee7e fafffffeffffffffffdfffffffdffffffdffdfffbffe7dfb6dfefefffeedffffedefff6f b7dbdf6f7fffffa7fd81a3f6c0e17fa078db75fabfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd68 d7ffffffffffffffffeffddf7ffdfffffdffda25604aff7fffefbfb7ffffb6f7fffbdffd fefffffff7ffffdbba400f7d2007de9003fee7df7fefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee03 fbffffefffffffffffeffffffffffbfffdff92d557556fefdf7feffdb7bfffbefffef7ff ffbffdfbfeffffbff4e0f7fa707bf53837776d77bbcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd3f f7fffff900000000124fff2241520a0223ffbffffdfffbfafbddfdfffdf6efefdadffedb 5bf5575fafffffcdd0f07dc8783ef43c1ff8f7feffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe1b ebffffe2b6edb6edaa9ffeaa9d2ad2b4d5ffbf6dbf6dbebfeff7dfaedfdffafb7ffddbff ff7ffff6fffeffbf80b0bfc0587fe02c3ef165abbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed3f b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdfc0f4eff07a77f83d1bfcf7ff6dcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde37 fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffb6f4e8fef2785db9387fbd656dffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd3d d7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdfff83fbffc3ffffe4f7eeefbfbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff fbfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbf6fffdfdffffeefffbeff75f57fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddef f40000000000000000000000000000000000000000000000000000000000000000000000 000000000000005bfbfff77dfdb7fdffffbae7dfbbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffefb 6bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaefefb7fef6ffddfbbdbff7576ffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedbf f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdfdfdfddffff7ffbfefef6e7dfbfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeef bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbff7f7ffbdfbf7beefffbd76faeddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfb e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdb7f7f7befdfbdefffb7fee76fbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeff fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffafffffdefffffffffffdef77feffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff f79f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdbbffffffefff7bfbbff7ee6abbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde6d bb9f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbffb6dfbbfedbdfdfeefff6bff7defffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff f78e30e1c387261fffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffdeffffdff77fff7feffdeef76ddfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffedf fb8e264c993244cfffffffffffffffffffffffffffffffffffffffffffffffffffffff7f fffffffffeffffa7f7def6fff7ebf77fbd7b65ff7fdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf5 d78426478ff264cfffffffffffffffffffffffffffffffffffffffffffffffffffffffdf ffffffffffefffcdf00037f8001bfc000dfef755f7efffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffff1fffffffffffc003ffffffbff3fffffffffff ffffffffffffffffffffffffffffffffffffde0d fb952071e382640fffffffffffffffffffffffffffffffffffffffffffffffffbffffff7 ffffffffffffffaf65ffb3b1fef9b9fdfdbd65febdcfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffff3fffffffffffcfe7ffffff8001fffffffffff ffffffffffffffffffffffffffffffffffffedfd f79127f8f13264ffffffffffffffffffffffffffffffffeffffffffffdfffffffffffffd fffffffeffffffcfefdbf7f76fbbfb6f6dfcf756ffdfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffff7fe7ffffffffcfe7ffffff9ff3fffffffffff fffffffffffffffffffffffffffffffffffffedd bb9b264c993244cfff7fffffffffffffffffffffffffffffbffffffffffffffff7feffff 7fffffffffffffabeefef6f7fbfbbbfffced75fcbfefffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffff0003ffffffffcfe7ffffff9ff3fffffffffff ffffffffffffffffffffffffffffffffffffd5fd f79b30e1c389261ffffffffffffffffffffffffffffffffff7dffffefffffffffdffffff feffffffffffffcecffff7b7fff9f3fffdf8e7feffcfffffffffffffffffffffffffffff ffffffffffffffffffffffff9f81e07007e79ffffe7e07fcfe7fffe7f9ff3fffffffffff fffffffffffffffffffffffffffffffffffffef9 fbffffffffffe7fffffffffffffffffffffffffffffffffffff7ffffffffff7fffffffff fff7ffffffffffafffffd3f7fffbff7bfdbf75fcbbdfffffffffffffffffffffffffffff fffffffffffffffffffffffe1f19c6700fdf9ffff87ce3fc007fffe7f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffed7d b7fffffffffe67fffffffffffffffffffffdffffffffeffffffdffffffbfffffffffffff fffdffffffffffc7fbb7f7ff6f6bbfdfb5fee7beffefffffffffffffffffffffffffffff ffffffffffffffffffffffff9f3ccf37cfbf9ffffe7df3fcfe7fffc7f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffdedd fbffffffffff0ffffffffffffffffffffeffbff7ffffffffffffdfffffefffffffffffff fffffbfffffbffaddfff777bfdf9fdfefd7d75fd5fcfffffffffffffffffffffffffffff ffffffffffffffffffffffff9f3ccf37df779cfffe7cf3fcfe7fff87f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffedf5 f7fffffffffffffeffefffffffffffff7ffffbffdffffffffffffdfffffeffffffffffff ffffffffffffffcff77bf3feffbb7ff7eddee7fcfbdfffffffffffffffffffffffffffff ffffffffffffffffffffffff9f3ccf3f9ff0007ffe7cf3fcfe7fffa7f8003fffffffffff fffffffffffffffffffffffffffffffffffffefd bbfffffffffffffffffffffffffffffffffffffffbefffffffffffffffffffffffffffff ffffffffffffffafe00016f0000bd80005fd75eebfefffffffffffffffffffffffffffff ffffffffffffffffffffffff9f3ccf3f3ff79ffffe7ff3fcfe7fff27f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffed05 f7ffffc9252aa9010010000000000002408292082a2820022254920004a9000048000492 0092040000040146efffb7d7effbf37ffcece7fcffcfffffffffffffffffffffffffffff ffffffffffffffffffffffff9f3ccf3f7ff79ffffe7fe3fc007ffe67f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffdefd dbffffaaaaa4957d77d6eeeeeeeeedb55f3caab6d555af7aaaaaaaef755577f7ab77daaa fb5575ddddf576afeb6df7f77eeafbddb5fd757ebddfffffffffffffffffffffffffffff ffffffffffffffffffffffff9f38ce3e7ff79ffffe7fe7fcfe7ffee7f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffedb5 f7ffffdfffffffd7deffbbbbbbbbbffff5f7ffefbffffdeffffffffbdffffdbefffeffff dfffffffffbfffddbfffdb7bdfffbfffffb6e7fcffefffffffffffffffffffffffffffff ffffffffffffffffffffffff9f90e43eff00001ffe7fcffcfe7ffde7f9ff3fffffffffff fffffffffffffffffffffffffffffffffffffeff fbffffdff9dff6fdf7bbfffffffffb6dbfffbbfbf6db6f7deedb76dff6d7bfffffdff7ff feffef7777efddbffdffffffffbbfb7ffdfd75deafcfffffffffffffffffffffffffffff ffffffffffffffffffffffff9fe4f93effff9ffffe7f9ffdfe7ffc01f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffedfd b7ffff9ed7fffffffffffffffffffffffffffffffffffffffffffffffff7eff76df77edb 7fdb7bfffdfaffd7f77ef77afbfefddfeffee7fcffdfffffffffffffffffffffffffffff ffffffffffffffffffffffff9ffcff3cffff9ffffe7f3bfdfe7fffe7f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffdeef fbffffb7fafbffffffffffffffffffffffffffffffffffffffffffffffe5fdbfffffdfff dbffffbdfffff73f67efbff3ffefb9fb7fbd75febdefffffffffffffffffffffffffffff ffffffffffffffffffffffff9f3dcf7cffff9ffffe7e7bfdfe7fffe7f9ff3fffffffffff fffffffffffffffffffffffffffffffffffff5bf f7ffffddf3ffffffffffffffffffffffffffffffffffffffffffffffffeffffdffbff7ff ff7fdfff6fbfdfcdebfbf6e7bf7bfaffdcfce7fcffcfffffffffffffffffffffffffffff ffffffffffffffffffffffff9f39ce7cffff9ffffe7c03f9fe7fffe7f9ff3fffffffffff ffffffffffffffffffffffffffffffffffffdef5 bbffffdff7fffffffffffffffffffffffffffffffffffffffffffffffff7b7ef6dedfdb6 ffedf6effdf7f1afeff027f5f019fbbc05ed75debfdfffffffffffffffffffffffffffff fffffffffffffffffffffffe0303c0fcffff9ffff80c03f3f87fff81f8003fffffffffff ffffffffffffffffffffffffffffffffffffed0d f7ffff92fb7ffffffffffffffffffffffffffffffffffffffffffffffff5ff7fffff7fff dbffffffffffd6cbceeff377f7fbdbfbfdfce7fcf7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffcff3fcffff9fffffffffcffcfffffff9ff3fffffffffff fffffffffffffffffffffffffffffffffffffefd fbfffffcb3fffffffffffffffffffffffffffffffffffffffffffffffff7fbfff7ffdfff ffbf7fbdb7dfafaee7eef7f776db79dafdbd6afebdcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeddd d7ffff9fabfffffffffffffffffffffffeffffffffffffffffffffffffe7bfedbdb7f6db 7ffbdbeffef4bfcfeee7f7f3f7fbfbf3ddecf7bcffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd fbffffdfeb8811111100000000004492028080081249108022222200892fef7ffffdffff f6dffffffffafb27efef75b6f5fafafbfcfd65febfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff5b9 f7ffffdefab3d555667ddddddddd9aaaf4bb3fb3e555573faaaaaadd3555fbffffff7fff bff7fef6dbfbffceebebf7f7f7dbdbf9bdbcf7fcffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd bbffff97dfff7fffffef777777f7f7ffdfeff5febffffdeafffffff7ffff7f6aad6fed55 edfeb7bffebfddafffeef6ffe6f3fffbedfb65eebbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd7d f7fffffef76fddddbbbfffffff7f7edb7f7eff6ffdb6efffddef777fedb7f7fffffb7fff ff6ffdfb6ff77fcbdfafe7f7f7fb7bfbfdfef7fcffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeedd dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaefde7f3bdb77bdf6b7d6f657d5fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddfd f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcfffcef7ffe3f9fff3f9faf7fefbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeef5 bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffa7b69fe6eecef376e6d8ff65fcbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd79 e7bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffddf82daffc1fd7fe07fbeef7deffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeedb f8a007924920924924800000000089248440024809249011244449001248100200490040 092022124822003f7ffffbbfdff7dfffff7b65fcbddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddfb f52bbfaaaaaeaaaaaabbdf7deffeaaaab55ffaabd55557d6555555776aabadfaef557d9e eaaecdaaabaaf7dfffffdefffffefffff7fef7feffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff baffefdffffffffffffffffffbffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffbbef7ffffdfdbfbeddbddf65bcafcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdff f6fdffbffffffffffffffffffefffffffffdffffffffffffffffffffffffffffffffffff fffffffffffffedefbfb7befdffbf7fffffef7eeffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee6d faed7fdfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffafffdfd77ef7dbfdf7ed7b65fcbdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddfd b4feefdfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff4bf07037f8381b7c1c0dfef7feffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee0d f9beff9cb1a73fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaf66e7f6f3f1f3f9b8f9dd65fcbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffddd f6ef6ffb2e9adfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcfe7e6e7e77779bbfbbcfcf7bef7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd fafe7f9baeba1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffeadedeff5f3f7fbfb7bfdbd65fcbdcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdded b4ffafbbaebaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffc7efeff777f7fbf3fbfdecf7feffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd f9dfbfdb2ebadfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaf7fdff7ffeff9bfdbfdfb65dcbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfd f6d25fbcb1bb3bffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff4fdefdb3ff7edbfdffb57ef7feffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffd6b9 f8d55fdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffadf7f7f76df7faff7dfdff65fcbbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfd b6fff7dfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcfffbf77fffdfbbfef7ddaf7beffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeed f9bfffbfffffffffffffbffffffffffffffffffffffffffffffffffffffffbffffffffff fffffffffffffeabe00015f0000bf80004fd65ed5fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd05 f6f6dfdfffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcf6bffd7b7bf6af3fff5fcf7fcfbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff6fd f8ffff9c3fffd7fffe7fffffe7fdffffffffcfffefc07fffbdffdf81ffff7bffbffc7bce fffef1c60e07efafef6df7e5effbb9bbbded65febfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddb5 d7bff7bddfffdffffe7fffffe7fdffffffdfcfffefdbffffbdffdfb7ffff7bbfbffbb3ce fffceebbeedfef5ddfff7dfffeffffffff7af7fcffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeff f8edbfddd98e55397d4e3139d68dad946da3a98e6dbb6a73bd1cdb76d4e77a39b7ffbbd6 c6eeeebbdddcf7b7fdffefbeffedefff7bff65bebddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffd5fd f6ffffbc36f594d67d35d6d6d5f56d67adbda6f5abbb69ad81eb5776d35b03d6afbfbbd6 baeeecb3dddb7edf6ffbfbf7fb7f7b7bdeeef7fcffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffedf baffefddd0c5d5d77d75d6d0d3c4ed763571aec5e7bb5ba1bd8bcf76b7437b179e0e7bda bb5ef2cbbdd877abffdf76ffdffbfffffdfd65feafcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7d f6db7fddd7b5d5d77d75d6d7d5b56d75b56daeb5ebbb5bafbd6bd776b75f7ad7affdfbda bb5efefbbddbf7cefbfef7ddff5bddeebddef7dcffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde9d d8ffdfbdd6b595d67b75d6d6b6b5ad65baed6eb5ad7b99adbd6b5af7335b7ad6b7fbfbdc bbbeeebb7bdb6eafdf42f7ffe172fff1acf765febdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdbd f5fff7ddd9ca55d97b7636d9b6c9b1965af26eca6d7bba73bd94daf774e77b29b7f83bdc c7bef1c77bdcefc7f79eb6dbcf7bf6e7bdfef7fcffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeead faedff9fffffffff7ffffffffffffff7ffffffffffffbbffffffffff77ffffffffffffff ffffffffffffffaf7fbef3fecf7bbfebbddd65bebfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddb9 b4ff7fbffffffff8ffffffffffffff8fffffffffffff7bfffffffffef7ffffffffffffff fffffffffffffecdfbaef7bfdb79efef3cfef7fcf7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeebd f9bfefdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffafdffef7f7fe7bfd7fbdf765eebdcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdbd f6fbffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcbff7ee6fdffdbbfeff5bef7fcffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd daffbfde1ffffdffff9fff7fffffffffffffffffffffffffffffffffffffffffffffdfff fffffffffffffeafbbf7f3dfbff9f7fbbdfd65febfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddb5 f4efefddefffffffff7fff7ffffffffffffffffffffffffffffffffffffffffffffff7ff fdffffffffffffceefbf67f7f7737f7ff96ef77cffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff6f9 fafeff9dea734d4e5e31a633fffffffffffffffffffffffffffffffffffffffbffdffdff ff7ffffbefffffb7fbefcf7f7fc7dbdee3ff65debbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddf3 d5b7efbde9ad35359f6e9b6dfffffffffffffffffffffffffffffffffffffffefffffffd ffffffffffffff5dfee01bfbd00ffff803baf7fcffefffffffffffffffffffffffffffc0 000000040000000000000000000000000000000000000000000000000000000000000000 000080000480001fffffffffffffffffffffee07 faffffddeba17575df6ebb73ffffffffffffdffffffffffffff7df7ffbffffffbfffffff ffffffffffffffbfdffdfedffff6ff7fffff65fd5fcfffffffffffffffffffffffffffc1 400000000000000000000000000000000000000000000000000000000000000000000000 000200094914009ffffffffffffffffffffffdbd f4fdbfbdebaf7575df6ebb7dbfffbfffffeff7ffbffffffffffffffdffffffffffffffff fff7fffffdffffdef7ffeffefdffebf77f76f7fefbdfffffffffffffffffffffffffffd0 040000000000000000000000000000000000000000000000000000000000000000000000 000008100220001fffffffffffffffffffffeeff b9dfefdde9ad75759f6ebb6defffff7dffffffdfeffffffdf7ffffffffffffffffffffff ffffbffffffffeb7fdf77bf7ef7f7fffddfd65dcbfefffffffffffffffffffffffffffc0 400000000000080000000000000000000000000000000000000000000000002000000000 000010144100021fffffffffffffffffffffdd77 f6f7ffde1a7375765f71bb33b6bfffffeffffffffbffffffffffffffff7fffffffffffff fffff7ffffffffcfbfbff7bffff3defbfddef7feffcfffffffffffffffffffffffffffe2 000000000000000000000000000000000000000000000000000020000002000000000000 000005020008101fffffffffffffffffffffeefd fafeef9ffbffffffdfffffffffffffffffffffffffdf7dffffffffffffdfffffffffffff ffffffffffbfffadeffcf6fdfb79fbfebdff65fcbddfffffffffffffffffffffffffffd0 200000000200000000000000000000000000000000002080000000002000800000000000 000011040082201ffffffffffffffffffffffd9d d4ffffbffbfffffe3fffffffffffffffffffffffffffffffffffffffffffdfffffffffff ffffffffffffff4ffbc6b7efa33bffd1adbaf7beffefffffffffffffffffffffffffffc0 000000001002000000000000000000000000004110200004020800400100000002000000 00000044001140bfffffffffffffffffffffeebd f9b7bfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffa77f8ef3bfcf7b6ee7b9ef65fcafcfffffffffffffffffffffffffffc0 00000000002a000000000000080092100801000000020000400008080040100840804000 000000130020001fffffffffffffffffffffddbd f6fdefdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffcfdfbef7fbd77bffefbcfef7eeffdfffffffffffffffffffffffffffc0 00000000280a100000080004021000010000100004000800000000000000040000200810 000004290009005fffffffffffffffffffffee99 daffffbdefdfffffffffdfff78fc71c7fbfffff7fef7ffe3f183dc7dfff7fffbffcfffff fdfff78fc71c7eadfb3ef6dfde7bbbedbdbd65fcbdefffffffffffffffffffffffffffc0 0000000000aa800000000001000000000000000000000000100000000001000000000000 000000025004001ffffffffffffffffffffffdbd f4dfefddefffffffffffdffe777baebbfbfffff7fef7ffddeefb9bbffff7fffbffbfffff fdffe777baebbfcf7ffcd7f6ff69fedfbdeef7feffcfffffffffffffffffffffffffffc0 00000000010410000000000000000000002000000080022000842001000000040c100000 006000044810801fffffffffffffffffffffeebd f9fb7f9decd4e573139cd377777faeba9b7ce63672f4dbfdeef75bbd4e6331cbe31f3139 cd377777bfefafafefdff3ffbffbefffbdff657cbfdfffffffffffffffffffffffffffc0 00000000000880000000400000000200020004000020000800000100084100803b040200 400200008aa0029fffffffffffffffffffffddfd b6ffffbdeb5359ed6d6b4daf777e6eba6afb5bd5acf35bfdeef75bbd35b6deb355555555 5555555555555555555555555555555555555555555555555555555555ffffffffffffc0 0000000000000000020002000000000000000020000800020000000040000001ff600010 04000000e212001ffffffffffffffffffffff6b5 f8efb7ddecd75def6d9cdddf777faebae9fcdf142ef757f3eeeedbbd767618baaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabffffffffffffc0 00000000000000000000000100810002000000000000200080200020000108015da01004 00800001c480021fffffffffffffffffffffddf9 f6fbffddef575def6def5daf777faebaeaff5ed5eef757efeeee0bbd77b6f6bb5fffffdf fffffffffffffffffffffffffffffffffffffffffffffffffffffffffdffffffffffffc0 0000000000000800000000000020004020080000800000001001000000010027f6fc0000 00100000014428bfffffffffffffffffffffeef3 dafeffbdeb5759ed6d6b4d77777baeba6b7b5ad5acf367dfeedfdbbd75b6d6b2fdeeedfb bffff777ffbbbfbffffffffffffffffff7fffffffffffffffffffffffbffffffffffffc0 200000000020000000000000000000000002000000000000000040001001002fffdb8000 00540000082a501ffffffffffffffffffffffd07 f6bfefde1cd765f36d9cd37778ec71c69b7ce72672f4efc1b1dfdc7d7673394b7fffffff f7777fff77fffbfbfffbffbfdddeffbbfdbbfffff7fffffffffffffffdffffffffffffc0 000000000400800000100000000020000000020020040200000004000041017bff6fe200 000241000008541fffffffffffffffffffffee6d b9ef7f9ffffffdfffffffffffffffffeffffffffffffeffffffffffffffffffef0007fff ffffffffffffffff777fbbf7ffffbbfeffffffbffdfffffffffff8003bffffffffffffc0 0000000020a040100000410000000000000000200000400002000108040111fef6f57c00 800000000042201fffffffffffffffffffffddff f6ffefbfffffe3fffffffffffffffffeffffffffffffdfffffffffffffffffff77ff7fc0 fcff9fffffffffffffffffffffffffffffffbff77fdef7bdef7bdbbbbdffffffffffffc0 10000000044000000000004008000200820040000400004100800000000101ffffdddd08 040100000000501fffffffffffffffffffffee5f d8fbffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffed7ff7ece 7fff9ef7ff77bf7ffffffffefffffffffffffbfffffffffffffffbbbbbffffffffffffd0 0000000000055402080000000004008800001000008008100020000000411edfbd5f6b40 000004000041001ffffffffffffffffffffffd7b f5bfbfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffff770b6fce 10830ff250c98927fff7fffff777ff7fbff7fffffffffffffffffaaabdffffffffffffc0 1000000000100800000000010000000000000004000000004004400040013ffffff6fdf0 008150000000101fffffffffffffffffffffee7f faeff7ddefdfffffff7ffde3f1c71fefffffdffbdfffdf831c71f7ffdfffeffef7077fca 00898ff126449913777f777fffffefdfef7dfffffff7bdef7bdef83bbbffffffffffffc0 00000000000a000005000000010100001000000000000000000000900401fffbeedb6f5e 4000a00080082a1fffffffffffffffffffffdd37 b6feff9defffffffff7ff9ddeebaefefffffdffbdfff9ffaebaeffffdfffefff76037fc0 8c999ff3264c9933ffffffeffffdfff7ffffbfdeeeffffffffffdbfbbdffffffffffffc0 0000000004000400a004000000004000004000410028840000001004002ffbdffbf7bdef 9000140000a1021fffffffffffffffffffffeefd f8f7dfbdecd4e5f3134dddfdfebaea6df398d9cbd36fdff7ebbef5398cc72f8cd6037ecf 94999bb3264c9913fffffffbbffffffffffffdfffffffffffffffbfbbbffffffffffffc0 000000000010800000002100000000000008000020000001080000000007fffdfebdf7fb 4001080000100a1ffffffffffffffffffffffdff b6ffffddeb5359ed6d36bdfdf9bae9abed6f56b3cd6fdff7ec79f4d6db7acf7776015fcf 9c999ff3264c9933fff7ffffeeff7ffffbfffffffffffffffffffbfabdffffffffffffc0 00000000009029488080004820401100040104000800008801088000213edffffffb5b37 ba0020000040221fffffffffffffffffffffeedf fadeefddecd75def6d777df3febaeba7f37c50bbdd5fdfef9bbef5d9d862ef76f7077fce 9c9197f126449111eefef7ffffbffbfdff7ffff7ff7777777777f803bbffffffffffffc0 0000000000012023490000400000002200004000020200000000088004fff77ffdafeeda e80004000014001fffffffffffffffffffffddfd d6f7ffddef575def6d76bdeffebaebabfd7b57bbdd5fd7ef7bbef5dedbdaef77778f77cf 9c99cff270c9c927fffffdffffffffff7ffbeffeeffffffffffdeb7fbdffffffffffffc0 000000000014001a025251000000000080000020000088008000002247ffffffbffb7bff 788000000820205ffffffffffffffffffffff6f5 f8fdef9deb5759ed6d35dddfeebae9aded6b56b3cd9fdfdefbaef5d6db5acf76f3ff7f7f fffefdd1efcfff3fffffff7fffefff7ffffeff7ffffffffffffffbdfbbffffffffffffc0 000000000000002401012800080000000000080800400010004000001ffbfff7fd6fded5 d80000000012411fffffffffffffffffffffdd7d f5ff7fbe1cd765f36d4dddc1b1c71a6df39c99cbd3bfdede0c71f5d9cce52f8f77ff7fef eefffff3ff4bdf3f7fdfffddfffbdffffffffffffffffffffffffbf73dffffffffffffc0 000000000000004882414010000821002100000000004200101004000fffdffffefaeffb b84200000020105ffffffffffffffffffffffedd babfdfdffffffdfffffffffffffffbffffffffffffbffffffffffffffffffffef0007ffd fffff803ffcffb3fddff7fff77ffffdff7bffffffdeeeeeeeefff8003bffffffffffffc0 0000000000000110042a120102000000000000010000000004008008ff7dfeffffdfbb5e f80008010000003fffffffffffffffffffffedf5 f6efffdfffffe3fffffffffffffffbffffffffffff7fffffffffffffffffffff3f7fffff ffdfdfffbfffffeffff7fffffffffff7ffffbbf7bfffffffffdfbffffdffffffffffffc0 000000000002000412852d0000000008000401002208010100000043fffffffeff75eef7 a80160000004005fffffffffffffffffffffde05 d8fef7dffffffffffffffffffffffffefffffffffffffffffffffffffffffffeffeddbff 7ffbfffffbffffffffffdffffdfef7ff7ffffefffffffffffffbeffffbffffffffffffc0 000000042808082545014b400001088000402040004000100081121ffbebffdfefdf7bda df8000020001001fffffffffffffffffffffedfd f5dbdf9fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffeff f7fffbfffef77effffffffffff7ffffffdf7ffffef7fffffffffffffbdffffffffffffc0 000000001200020a108411000020000208000010140040008008003fffcbbffffdf7edef bb7000140000021ffffffffffffffffffffffef5 faff9fbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffeaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabffffffffffffe0 00000000240a0012500408424002000080020004180008801000023dbf57f7fffffdb7be fdc000020000001fffffffffffffffffffffedbf 74ffdfdfbfffffffffffffffffffffffffffffffffdfffffffffffffffffffff55555555 5555555555555555555555555555555555555555555555555555555555ffffffffffffc0 10000008540000ac00922100020040000200100102240010044249ffff43fffffeaffd77 d77400084000001fffffffffffffffffffffdefd faffdfdcb1a73f7ffffbeffdffffffffffffffffffffff7fffbefffffffffffedbffffb7 ff7f7f5b7fffefdb6db77b6dbfef777ddf7ddf6dfff6db6db6fff6dbfbffffffffffffc0 000000003400002001281000008002400020800000014402010807fff101ffefbffb6fed 79a800000000001ffffffffffffffffffffff5ef f5bf979b2e9adfdffffffeffffffffffffffffffffffffdfffffffffffffffff7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 00000000088000080d41102000200810000001002080000020013fffa803fffbffdfff7b ec4e00048000001fffffffffffffffffffffdebf baffbfbbaeba1ffefbffffffffffffffeffffffffffffff7ffffdffffffffffeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000000400000416b8248042008420420004840040802900820fffb2003fdfff6fbb5ed bc2100102000001fffffffffffffffffffffedfb f4ffdfdbaebafffffffffffffffffffffffffffffffeffff7ffffbffffffffff7fffffff ffffffffffffffffffffffffffffffffffffffffffffffffffdffffff5ffffffffffffc0 00000102040000228d0a9000000000010248000002011080810aff7e6001fffffffbbfbf 7d4240000020001ffffffffffffffffffffffeff faff9fdb2ebadfffffffffffdfffffffffffffff7ffffffffffffeffffffdffefff7ffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000000100000002b040200000200000000100910c800040007ffed0003bffffbaef5f5 b45160282800001fffffffffffffffffffffedb7 f5bfdf9cb1bb3bfffffffffff7ffffffffffffffffffffffffffffdf7dffffff3fffffff 7fffffffffbffffffffffffffffffffffffffffff7fffffffffffffff5ffffffffffffc0 000000008000000090841001084109000001000005fe12a1149fffe4000bf7cf7f7fdedf ed2410101600001fffffffffffffffffffffdefd baffdfbffffffffffffffffffdfffdffffffffffffffffffffffffffffeffffeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000000000000030518844000004040510004402ff7e08240fffea0002bff8ffff5fff7 b480a8240000001fffffffffffffffffffffed7f f4ff97dfffffffffffffffffffbefffffdffff7fffffffffffffffffffffffff7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 10000000000000001260000000000204000000051fdffe880bf7ed800155ff8b5edf2bbd ee20ec490100801ffffffffffffffffffffffefd faffbfdfffffffffffffffffffffffbffffffffffffffffffffffffffffffbfebfffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 000000000000004844480a0840110000000844803ffede8089fdf8800155ff8ffff7feb7 5a01ac120001001fffffffffffffffffffffedfd f5bfdfdfffffffffffffffffffffffffffbfffffffffffffffffffffffffffff7fffffff ffffffffbffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 100800000000080292b11000088820a110400012ffdbfff457ffd4000697fffeb7fd6bfd e5a093a40080001fffffffffffffffffffffdeb5 baffdf9c3ffffdffffff0fffde3ffbfdfc7effffeffffffffffffffffffffffeffffffff ffbfffffffffffffffffffffffffffffffffffffffffddddddb5bbbffbffffffffffffc0 003400000000000000c800200200040002010003feffffffbf7f2000b85ffdff9f6ffeb7 aa4524220050001fffffffffffffffffffffedfd f4ff9fbddfffffffffff77ffdddffffdfbffffffffffffffffffffffffffffff3fffffff fffffffffffffffffffffffffffffffffffffffffffff7f7f7ffefbff5ffffffffffffc0 000001000000000050001001000248080010515ffff75bbffffc8000a3ffffddaefbbfef d628014002c8011ffffffffffffffffffffffefd faffb7ddea8db54e5e3f76398df9aa98f1656acffffffffffffffffffffffffefffdffff fff7ffffffffffffffffffffffffffffffffffffffffffffffffffbffbffffffffffffc0 00080a000000000000100008082417010004043fdfbffff7ffe2000b5bffbffe5fbef5ba f82a04870030001fffffffffffffffffffffed05 f6ffdfdde9f5b5359fdf0dd6de369a6dfb5969b7fdffffffefffffffffffffff77ffffff bffffffffff7ffffffffffffdfffffffffffffffffffffffffffff3ff5ffffffffffffc0 0048040000000100200110000088a4204200413ffbfeffffeff2000adffffffe966faffe dc5301251174401fffffffffffffffffffffdeb5 b8bf9fddebc6ad75df1f7dd9dfd7baedfb5d6b87fffffffffffffffffffffffefffc07fc fffff03cfc9fc19ffffffffffffffffffffffff7ffffdfffffffff7ffbffffffffffffc0 00810100000000020200008244252a80102010fdfff7ef7eff00042adfdeffff6ffdfdb7 e96055404001c01ffffffffffffffffffffff5fd f5ffdf9debb6ad75dedf7ddeddd7baedfb5d6bbfffbfffffffffffffffffffff7ffce3fc ffe7f38cfc9f999ffffffffffbfffeffdfffffffffffffffffffffbff5ffffffffffffc0 001050000000000200440040aade5810010907ffffbf7bfffcc03e2dffffbffd8af7fbdd be8d57008000201fffffffffffffffffffffdebb faffdfbddbb75d759edf7dd6ddd6ba6dfb596bb7ffeffffffffffffffffffffefffcf3ff ffe7f3ce799f9f9fffffffffff7f7feffeffffffbfffef877fffffbffbffffffffffffc0 08a88202012000000001542e8bb0ba0480009fff7ffbffeff2003e2bfffff7bf4f8b5eff ed5028a82000015ffffffffffffffffffffffdff d6ffd7dc3bcb5d765f2f7e39ce39ba9cfb658bcedbffffffffffffffffffffff3ffcf324 c8c1f3e6799f099c3ffbffbffffffffffffbeffffbffff7b7fffff3ff5ffffffffffffc1 101020040000000040444815ab63d40010807fffffffdfff88003fbffffffffe28d6ffed 747d08c00004005fffffffffffffffffffffeef7 f8c91fdfffffffffdffffffffffffefffffdffffffffffeffffffffffffffffefffce304 c467f3e6319f99999ffefffffffffffffffffffffffffeff71e78f7ffbffffffffffffc0 00251001020100000011feaa5c89e0220225ffefdfb6fffe40017fffeffe7ffc0f54bb7b dd85f000000002bfffffffffffffffffffffddbd f5957fdffffffffe3ffffffffffffeffffe3fffffffdfffffffffff7dfefffff7ffc073c ce67f3e7339f99999bffffffffffffffffffffffffffeeff6edb77bff5ffffffffffffc0 00100000080000000005aa324d53ea102009f7fff7fffffd4000bdffff7efefe49d47fdf f5a921010000003fffffffffffffffffffffee7f baffef9ffffffffffffffffffffffffffffffffffffffffffffffffff7fbf7fefffcff3c ce67f3e7339f99981ffffffffffffffffffffffffffffeff6edf77bffbffffffffffffc9 0080445050010000001365d9bd04a0820903fffffffbf6f300157fffffe0bfbe0d93edfb 7c16d4041000511ffffffffffffffffffffffdaf f6f77fbfffffffffffffffffffffffffffffffffffffdffffdffffffffffffff3ffcff3c ce67f3e7879f9999fffffffffffffffffffffffffffffeff6ee7073ff5ffffffffffffc0 00540220a224120000044ab361520001004ffeffffdf7fc800257f7fff80fff40f34bf6f ee1d2810e0040a1fffffffffffffffffffffee1b b8ff9fdfbffffffffffffffffffffffffffffffffffffffffffffffffffffffefffcff3c ce67f3cf879f9999ffffffffffffffffffffffffffffeeff6efb7f7ffbffffffffffffc0 08100800090824000005b2ca95a45210240effbffbfffe200115fffff800ffeea5827bfe de0140000f000c1fffffffffffffffffffffdd9f f6df6fdfbffffffffbfffffffffffffffffffffffffffffffffff7ffffffffff7ffcff3c ce65f38fcf9f99989fffffffffffffffffffffffffffff7b6edb77bff5ffffffffffffc0 00520000120940040428a4048d700100004bdffbfffff900162fffffe000ffed6b14acdb fa0024002000205fffffffffffffffffffffee1f daffbf9cb1a73fffffefffffffffffffffffffffffffffffffbffffffffffffef7fcff3c ce73f03fcf9f999c3fffffffffffffffffffffffffffff8771e78fbffbffffffffffffc0 00222200040888080010aa8995a00412400fffffffff7100052bfffee000ffd6ab953df7 de0208000080001ffffffffffffffffffffffd3b f4fe7fbb2e9adffbfffdfffffffffffffffffffffffffffffff7ffffffffffff7fffffff ffffffffffffffffffffffffffffffffffffffffff7fefffffffff3ff5ffffffffffffc0 05080890028580800002a03a23228100020fffffdfffcc002a3fffef0001fff850507b3f 76081280bf00001fffffffffffffffffffffee6f f9deefdbaeba1ffffffffffffffffffffffffefffffffffbfffffffffffffffebfffffff fffffffffffffffffffffffffffffffffffffbffffffffffffffff7ffbffffffffffffc0 01000001000100000080aab688442004a84bfffefffea01c15fffffc0001ffeaa6802ced fe0d0ac030800f1fffffffffffffffffffffddfb b6feffdbaebafdffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff ffffffffffffffffffffdfffffbfffffffffffffffffdfffffffffbff5ffffffffffffc0 00000402000002a00008395402000440000fddffffb8801c57ff7fc00001ffc5212042f7 da8b5015cad80a1fffffffffffffffffffffee7f f8f6ef9b2ebadffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff fffffffffffffffffffffeffffefffffffffffffffffffffffffff3ffbffffffffffffc0 0000800000012000000006020048a092048fffffdfe4005fbf7ff6000015fed2480804bd 7f03b2ae0052129ffffffffffffffffffffffddf f5b9ffbcb1bb3bfffffffffffffffffffffffffffffff7ffffffffffffffffff7fffffff ffffffffffffffffffffffbffffdffbeff7fffffffffefffffffff7ff5ffffffffffffc0 00000000000000000010154200000400902efffffbc4003f3ffffe000015ffc449402175 5a8da09a0054051fffffffffffffffffffffeefd dafdbfdfffffffffffffffffffffff7ffffefffffffffffffffffffffffff7febfffffff ffffffffffffffffffffffffffff7fffbff7ff7ffffff80000224abffbffffffffffffc0 00020000000900200002001004908124210fffdffeb0015bfffff8000037bffe022084b9 ae02f414a421101fffffffffffffffffffffddef f6fbefdfffffffffffffbfffffffffffffffffdfffffffffffffffffffffffff7fffffff fffffffffffffffffffffffffffffffffffffffdffffeaeeeecd52bff5ffffffffffffc0 020021002000400000008080a00420000827fff7ff80045fffff800008bff8bcaa0100de 80810802c000021ffffffffffffffffffffffeff f8dfff9b6db6ddb6b6edeb6daaaaabeaad57b6f56db6dedb6eed6ab6db6abeb6ffffffff fffffffffffffffffffffffdfffffffffffffffffffffffffffffffffbffffffffffffc0 02000840020a00000000282404400891020ffdffff00157fff760000aafffb3a510287e9 b74004213940405fffffffffffffffffffffedbb d7f76ffffffff7ffffbfffffffffffbffffdfffffffffbffffbffffffffffbff3de00000 0000000000000000000000000000000000000000000000000000003ff5ffffffffffffd0 00000000000000000000020109048204204bdffffe00a9fffff000025fffb7549488012f 482010215354001fffffffffffffffffffffdeff faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 20000000200a10000000802420202040848effffff0154fffff00002afff7eba901006b5 2c0000411684209fffffffffffffffffffffed77 b5555555555555555555555555555555555555555555555555555555555555557fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 4000002202200000000009011084040a122fbffeff048fffff800008ffffa42120849e08 0a890a2895b2805ffffffffffffffffffffffedc ef01fefb80777dc05fbee02ddff81feff80fb3bc076afe02edff01badb80ff5effffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc2 00000000000000000000200802109080810fefffff82bff7fc000007fffd588a0510112a b52008800680141fffffffffffffffffffffedfe fbc068dee03c3f701a37b80f0db40686de03c7ef01e3b780f1dbc078fee0347b7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 040000000081000a100288a020800208104fffffff85ffffa0000a3fffffc50bca02a05a 4fde82201020081fffffffffffffffffffffde68 ff3002ff8801efc400ffe4007feb003ff9801efc800ffe4006ff3003bf9801febfffffff fffffffffffffffff7fffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000000a20000004420020a90124050421ffbffffd7fffd80002effbffd0804c0a079ff 8240bb000000111fffffffffffffffffffffed03 dd283ff69c1ffb4e0f6da707fbd303ff6181fff0e0fdd8707fec303ff6981fb77fbc1fdf f7f87ffffffffffefffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000000024a000002000082202000a08085f7fdff757ffff80000f7fffff5201c4443ade aa2ed3800900041ffffffffffffffffffffffe3f f03c1bba1e06fd0f07fe8781be43c1b7a1e0db90f06fe8782df43c16f81e0dfcfffdefff f777bffffffffffefffffffffffffffffffffffff7fffffffffffffffbffffffffffffc0 000000024200000000822a4888a44082817ffffffffffdf80000bfffffdc2032048837fb c0135c400000011fffffffffffffffffffffed1b e03c3ff0161fb80b0efc0387fe01c3ff01e1ffc0b0ffc0387f603c3ff20e1f797ffded5a 63eff8eb75bc74f2e7fffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000000a000a000000000002e8001082817ffdffbffffffa000157fffdfe0487090801f7f 0a80b2800090001fffffffffffffffffffffde3f f43d2efc1e9ffe0f47df07a6ef83e2efc1f1bdd0f8dde87a5ff83e3db81f17fcbffdecd9 b7eff764b25bb36cdbfffffffffffffffffffffffffffffffffffffffbffffffffffffc8 000000000000000000a418001088210aafffffffffff7f000015fffffd029530012813f7 094041380900401fffffffffffffffffffffed37 f9383fdc5c1dee2e1df71707ff8b8bfdc9c9ef62e4f7f1707bf938affe5c5ddf7ffc1ddb b7eff76db6dfb76edefffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000100000000000000000955222242087fffbdffffbff000021fffeff0002802000807bd ec900a808400001ffffffffffffffffffffffe3d bfe1fdfff4f77ff93f7ffc3fbbfe0fdfff07ffff83ff7fc3fedfe0fbfff07ff6fffdfddb b7eff76db6dc376ee7fffffffffffffffffffff7ffffffffffffffbffbffffffffffffc0 000000000000000000500888004000a27bffffff7ffff400001feffff8004802022006ff 892005000110001fffffffffffffffffffffedff efffef77fffffbffffddfffdfefffef77fffbbffffbbffffefffffffadffff7f3ffdfddb b7eff76db6dbb76efbffffffffffffffffeffffffffffffffffffffff5ffffffffffffc0 0002800000000000000005652412520cffdf7effffffc00008fffbff8000903430883fb6 f0028d200000041ffffffffffffffffffffffeef fb7f7ffeefbfdfbffbff7fdf6feff7ffdbfefeddfffeefff7bbb7fdeff7fdbdefffdfddb b7f5b76db6dbb76cdbfffffffffffffffffbfffffffffffffffffffffbffffffffffffc0 00240000000000000082014009080897ffbfd8fffffa000017ffffec0000e687c00484d8 389507000000005fffffffffffffffffffffedfb ffdfdddffdf6f7f6def7f7f7fbfdfdddfedbefff76effb7bffffdef7ffddfffb7ffdfddb b3f878edb6dc5772e7ffffffffffffffffff7ffffdfffffffffffffff5ffffffffffffc0 0000000000000000000049060042425ffd1ff8efdf7800083fffffc000032982b40805ab 020280524051e01fffffffffffffffffffffdebf dffdfffddf7fff7fffbfdefffedfbfff7ffffbb7dfffbfdeef77f7fddbff6efeffffffff ffffffffffffffffffffffeffffeffffdfffdffffffffffffffffffffbffffffffffffc0 000800000001000000102040442010fff00fbcffff80002efff7fe000024d8041000161c 000004811120001fffffffffffffffffffffedef f6f7f777f7edddefb7eeffbedff7ef77f7bdbffffeddeffffbdeffbffef7ffef3fffffff ffffffffffffffffffeff7ffffffbffffffffffffffffffffffffffff5ffffffffffffc0 000000000000000000008480204a86ffb41ff8ffff80002cfffffa000014920894000218 800010484090201ffffffffffffffffffffffefb ffbfbfff7dfffffdfdffbbfbfbfefbffddeffeeef7f7fb77bfffbdeedfbffb7affffffff fffffffffffffffffffffffffffffbfffffffffffffffffffffffffffbffffffffffffc0 000000000000000040042112050013ffb01fdafffe00005fffffb00000a5c8a200001857 000163028700241fffffffffffffffffffffedff dffff6efffff77ffff7bffff7f7fff6effff77ffffff7fffeeeffffff7ffffff7dffffff fffffffffffffffffffffffefeffffdffffffffffffffffffffffffff5ffffffffffffc0 00401000000000001240080090295ff6801ffff7f00002fff7fb0000152b32084000008e d20c04816884081fffffffffffffffffffffdeef fffdffbfffedffbfffdfffffefffffffffffdf7fffdffffffffffffbfffdb7debfffffff ffffffffffffffffffffffffffffffffffffffffffbffffffffefffffbffffffffffffc0 00110000000000020004404202827ff4001fbffff80003fffff80000449f41500001541f b0010921a000001ffffffffffffffffffffff5fd bdefbffdef7f6ffbb7ffeedbfbeddfbbfff7f7f76ef6ffeefbbddbbfbfeffeff7fbfffff ffffdffffffff7ffffffffffffffffffffffffffffeffffffffffffff5ffffffffffffc0 0040000000000000489105084829ffc0025ffffff8053ffffec000092b7d0855410e58be b6000a4000ba501fffffffffffffffffffffdebf ff7ff6ff7bfffddfff7bffffbffffdefedbdfdffffffbb7fdfffffeeff7bffeefff7ffff fffffdf7df7ffffffffffffffffffffffffffbf7fffdfbefffffdffffbffffffffffffc0 0020000000000000020010210442ffd0041edfb7f8029effffc00005225d1132820e9436 fc00008000b0205fffffffffffffffffffffedf7 ffdefddfffdafff77f5fbbbdafbf6fdeffff6ffdfbb7fffbfaff7efdbbffb67f7fff7fff fffffffffff7ffffffffffffffffffffffffffffffffffff7fffffbff5ffffffffffffc0 00000000000000002114c084512ffa40029ffffff905ffff7c0000055d774609c404a81f abc002800203a01ffffffffffffffffffffffefd b4000dfe00066f0003778001bbc000dfa0006fd00035e8001bb4000dfe0006deffffeaaa aab6ffbefbfebd5b6db56db77bb7dddadb7fbdbd5bfedf7beab7edfffbffffffffffffc0 004000000004800000401512045ffa0603ffdfffff07fff7e0000002ffa6c120130014fa b3801cc01688013fffffffffffffffffffffed0d f9f7dcdcdefefe7fdb7f3fffbf97fddbcf7fe6e7dfe7f1df73f9efeddcdffef73fff7fff ffffd6fbefb7efffffffffff7efef77fffeaefefff6ffbdf7fff7ffff5ffffffffffffc0 00000000004000004a09004051ffc80f17ffffffffffffff0000421ffb549042288003dc 84ff15002a02085fffffffffffffffffffffde6d fbfdfdf9f7dedebdff3e76db9fbeff9fdbedefeef6f777f7f9fb7efcfdfb6efeffffffff ffffffffffffffffffffffff7ffffffffffffffffffffffffffff9fffbffffffffffffc0 00000000000240000041520907ff400f7fefbffffffffff800010effff294c8400001bf6 a5fbcc281600005fffffffffffffffffffffedfd b9bfbdfd7ff6f6ef6f6f3fffbd9fb7d7deff6debfff3f77efbbbf7bdf9bffebf7ffdffff ffffffffffffffffffffffff77fffffffffffffffffffffffffffdfff5ffffffffffffc0 0000000000048000108492422bfb800fbfeffffffffffbf000044f7fff91880808801efe 8b6f4d200a04011ffffffffffffffffffffffefd fbfff9bdfffcfeffff7f7fffb7bfffdedfffef6ffff6f7fffbfbfffdddfffeeeffffffff fffffffffffffffffffffffefffffffffffffffffffffffffffffdfffbffffffffffffc0 0000000000101000001124249fba0007ffcfdff7ffffff0000208ffffd425a82200403b2 0093a015d480001fffffffffffffffffffffedf9 fffffcfffdfebdffff7ffffdbfffffdfdfffcfffbff7efffbbbdfffcfffbdcff7fffffff fffffffffffffffffffffffe7ffffffffffffffffffffffffffff9fff5ffffffffffffc0 0000000000010400040540817fe400dff7efb8ffdffffc00020d7ff7bf48240080040168 8120509da0a0001fffffffffffffffffffffdebd bbdbbdddef7effbff65bdb6fafb6fd9bfbdbebf7f6d7fbb7e9ffdef5bdbefe76bffeffff fffc1fdff7e06dff3ffffffefb83fbfeff0ffffffff7e0ffffff7bfffbffffffffffffc0 00080000000421200000952bffa0853fffebd8fffffdc0000027ffffffa010c410700014 060000001481101fffffffffffffffffffffedfd feffedff7feeefedbf7ffffebbffefcfff7eeefefff37ffdfb76f7bdffefeeff7fffffff fffdeffff7effdff7fffffff7fbdfffefef7fffffff7ef7fffff7dfff5ffffffffffffc0 000000000090080c00024117ec00cbfffe1efbfffefe0000023fffffff00008002096000 8c00007ac90a401ffffffffffffffffffffffef5 ffbefd7ffbfa7fffff6f77bfbfffbfdeefffafdfddf7fefffbfffffddffffedefffdffff fffded5a63efedc77fffefff7fbdab4c7dfeed563a63ef71e5c77dfffbffffffffffffc0 04042000000482800002104dfd00d3fdfe0ffafffffe0000023ffffbfb49044080024109 08000074ca82a01fffffffffffffffffffffedbd d80005ec0002dc00017f0000af00005fc0002be00016f0000bf80005f80002f77fffffff fffdecd9b7efedbb77fffffe7bbd9b36fdfeeccdd9b7ef6ed9bb79fff5ffffffffffffc0 00000000002021124000853fee00dfff701fb7ffffd0000801ffffffb84412104000e8a8 2d00e0a3a044881fffffffffffffffffffffde05 fbeff5fdbefefe7ded3b7fedbbadfb5bddefeeebffd7e7ef6adbbdd97d7edcfebffeffff fffc1ddbb7e0edbb7ffffffeff83bb76fdfeeddddbb7e0feddbb7bfffbffffffffffffc0 0000080004848048000128ff6002ffff801ffef7ff8000a43fffbfff00000100000bd004 2e4000682032201ffffffffffffffffffffff5fd f3fbbdb9efdeeeef7f7f76ff3fbfdfdf5f7eefaf76f7737bfbf9effddddbfebb7fffffff fffdfddbb7efed837effffff7fbfbb76fdfeeddc1bb7eff0dd837dfff5ffffffffffffc0 0000000000001404800041fe8022effe001fbfffe800015ffffffdb000c4a000140480a2 d90002794008001fffffffffffffffffffffded9 bf7feefefff6fffffbf7bfffdefbffb7f7ffefffffbbfffffddffffffffff7feffffffff fffdfddbb7efedbf7fbfffff77bfbb76fdfeedddfbb7efeeddbf79fffbffffffffffffc0 000001000112410010290df40c5ffde0003fdffff80021bfffbfff80002a802110000025 23e000292120001fffffffffffffffffffffedff ffdfffdfbfffdfdffedfeffff7defffdfdffbdf6fffeffbfefff7f76ef7ffddf7ffeffff fbfdfddbb7efedbbffffffff7fbfbb76fef6cddddbb7efeed9bbfbbff5ffffffffffffc0 0000000000200824800221f40c8ffff0003f7fb7f80062dfffffff80002a408204040005 4ae0003b4408001ffffffffffffffffffffffef7 f9fffbfeeefbf677dff7bbedffdff6ffafdbfff7ffefb9fdbf75dfdffaefbffebfffffff fffdfddbb3efedc77ffffffe7fbfbb767f0f2dde3bb3eff165c77dfffbffffffffffffc0 0000000002848081000105c81cbfff8002fffffdf803a1fffffff0000088400010000120 13e000092900017fffffffffffffffffffffed7f b8fdbf7cffbf7e7df7ff3fbfbf97bfb7cffef766f6fff3fffbf9fdff7cfdef777ffdffff fffffffffffffffffffffffefbfffffffffffffffffffffffdfffdfff5ffffffffffffc0 0000008000282488902855c03ff7ec0003ffdffff807fffffffb0000020a8a8022048000 2aa2003f5080101fffffffffffffffffffffdedd fbbfededffeefebffd3b5fffadbfefdfcdffafefffb5f777fafafff9fdbffafefffffffb ffffffffffffffffffffffff7fffffffffffffffffffffffddfffbfffbffffffffffffc0 0000002000010212008103822fffe0002feffffffd06fffeef7000000020040000013501 55a02000082a801fffffffffffffffffffffedfd fbfc09f9ba02eeff037f7681bf9fc0dddfc06dcdd03773f81bbbb40dddfe06df3ffefdff fffffffffffffffffff7ffff7fffffffffffffffffffffffe3fffdfff5ffffffffffffc0 000000400121108428242dc2fdfe80007fff7fffff87ffffff8000000085510101020021 12a0d02d4044001ffffffffffffffffffffffe0d bbf3fd7cfdfe7eee7f6f7f6dbfbbbdcfdbdfefefefe7f6f6dbfbf9dcfcecfefeffffffff ffffffffffffffffffffefff77fffffffffffffffffffffffffff9fffbffffffffffffc0 0000011002044009228493c17fff80003fefffffff87ffefff0000000041480001210000 b190604a9008801fffffffffffffffffffffedfd f9bb7dfdbcfede7eef7b3f7f9bbfbfdbdfddebebedf5f7b7f9f9fbfdbdfddeb77ffdffff fffffffffffffffffffffffefffffffffffffffffffffffffffffbfff5ffffffffffffc0 0000104480101220001125f3ff78001fffffdffffefffffff80000000420128000802a0a 002488000160009fffffffffffffffffffffde6d fbfbfdddfddef6deff3f7737bf9b9bdeced76eef6f77b7f37bdb7bbdedbdf6febfff0208 0000000000000042244848097c4200000420800000000000044495fffbffffffffffffc0 0000841009048484aa4417ffffe0005fffefbfffffff7fff000000000f84040000280102 1214a4000ac88a1fffffffffffffffffffffedfd db79dcfdddfefef6bb7f7f7dbbbfbedfdfdfcfefe7f7f5f7fb7bf9fdfdfd7cff7ffebaeb 7bbfbdeffffbbb5acaab55d57aacfdb6eb5b3effffbbef7ff55555fff5ffffffffffffc0 0000008120501112011145ddff0005fffffff2bbfffffff000008a09fd81200408000048 38a114210812001ffffffffffffffffffffffedd fbfbfdfdfd76befeff775f7f9fb7bfd7dbdfebcdedf6f777dbfbfbed7cddfe6effffffff ffffffff7dffffffffffffffffffffffffffffdfdffffffbfffffffffbffffffffffffc0 000042140900a000842497ffb40007ffbe1ff3ffbfffed0000152f9fff28800aa0000088 018e8fca4500421fffffffffffffffffffffedfd f7faddddfdfefdfcef5fff6fb7fe9bddffcdeeffef67bfd6fafbfb7ddff9deff3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000108120280aa2124027fffc0007fffe8fbbffffffff0000082f1ffda4200d20004040 018a15428180001fffffffffffffffffffffde79 bdebfd7f79deef7e7b7ef67bbf7fbedfdf5fefffaff3eff7bbbf6bddfffcfeeeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0400001202028014408a95ffc003bffff01ff9fffffff000021b4ffffe80000a800026a0 446f03ea0834001fffffffffffffffffffffeddd ff7bbdffdcfe7fdefe77ff3fbbdfbfd7f7dbe7dbe7f7fff3fbfff9fcedfdbe7b7fffff7f deedef7bef6fffffffffffffffff6ffffffff7f6f6ff7bddbffffdfff5ffffffffffffc0 00000081284452812a2407fe000bffff801ddbfffffe800001117fffffc1404990900407 0a5aeb521040821ffffffffffffffffffffffefd fff1f9b7f9eedffcdf3fbe7f9ffd37df7d9eeeffcef77b67eaedf3fdffd9eefebffdabd6 f7bf7bdebdfd5556db6adb6d76dbfdb6aad6dedfdfd5defffb6db7bffbffffffffffffc0 0000000801100048004957d800ffffd8001ff7ffffb800000607fffffffe800e01200550 487b9a84a108485fffffffffffffffffffffedfd b7a779fdf37cfdf1fe7df4ed3efe5f1dff2fcfbe9fe3dfcef3ffa769def3fcdf7fffffff ffffffffffffffffffffffff7ffffffffffffffffffffffffffff9fff5ffffffffffffc0 0000000aa9052a04aa8427c0007ffbe0003f7ffffb800000013ffffffefa003145100020 085458014852841fffffffffffffffffffffded9 fe0febdf07f9ef037eefc1ff77c0f7afd07f5be83baffc17b7b60ffaf706f5f6ffffffff ffffffffffffffffffffffff7ffffffffffffffffffffffffffffbfffbffffffffffffc0 0000001008280248909096c010ffffc0017fffff7e800008023fffdf77eb002a81000000 543c0a811002881fffffffffffffffffffffedf3 efeffef7efff7ffffbfdfeff7dfffffbff7fdfffbfff7fffedfff7ffffffff7f3ffdffff fffffffffffffffffffffffef7fffffffffffffffffffffffffffdfff5ffffffffffffc0 00000002410150120245470013defe00047fffdff800000417ffffffffc000016a1805a4 8174a180a046041ffffffffffffffffffffffeff fffff7ffffeff7fffedfffdfdffdff7efffffeffffdbdbbfff7ffdeddff7fbdeffffffff ffffffffffffffffffffffff7ffffffffffffffffffffffffffffdfffbffffffffffffc0 0000000020080480a8101700bfffe000297fbffff800151dffffeffffc0000021200f402 116b204200085a5fffffffffffffffffffffd5fd beff7fbdbf7effdbeff76ffdffeffbdffbedf7fbfdfffffffffdbf7ffdbfbff77ffff877 ffffbfe0feffbfc3fffffffe7fff0fffffffefc1fdff7effbffffdfff5ffffffffffffc0 0000000008209112454aa781ffff800037dffffbf8008a1ffffffff70000500080004811 417400000000001ffffffffffffffffffffffedf ffbbddfffbf7dfff7ffffbef7bfbdff7feffbdfeefeefefb6ddffffbbfffeefebffdf7b7 ffffbfef7fffbfbdfffffffefbfef7ffffffefdeffff7fffbffff9fffbffffffffffffc0 00000000008a442410411787fff000087fff7ffff80115fffffffdf000010008250024ca 41c082c08002441fffffffffffffffffffffedf7 fbfffd7fdefef77fdd3ffeffaf7efedeeff7efdfff77ffdffbffefdcff76febf7fffeff4 f1e3b7ef6ad31f7eddc7771f7ffdff1d3c78efded5a63ee3a79ffbfff5ffffffffffffc0 000010000020108949142783fff800287fffdffff80085ffffffffb000000000010460d9 417200e04080041fffffffffffffffffffffde7d bc0c0dda0e067f03036e8381bfc1c0dfe0a067f0303370381b78180dee0e06eeffffeff3 6eddafef66cdbf7eddbb76ef7ffdfeecdbb76fdecd9b7edd9b6ffdfffbffffffffffffc0 0000000000054241042297ffff80020fffdfffffff019fffffffbe000000001500504a22 500801000120129fffffffffffffffffffffed0d f9f8fdfcfceefe7e7f7f3f3bbb9f8fdbcfceeee7e7f7f3f3fbf8f9fdfcfcfeff3ffdeff7 6edf9fe0eeddbf7eddbb76ef7bfdffeddbf76fc1ddbb7eddbb7ffdfff5ffffffffffffd0 0000000000081428515527fffe00117ffffefffeff83fffffff7c0000000208820a5a89a 24c004440050041ffffffffffffffffffffffefd fb7badfddd7eeceef77f375f9fbbbb9edbdfefedeb77f5b359bbfbbdbdddb6feffffeff7 60df9fefeeddbf76dd83760e7ffdff0ddbf06fdfddbb7eddbb9ff9fffbffffffffffffc2 4000000000012082848857ffc00007ffffdfbbfffbbfffffbdb80000001c000200190080 122004000004009fffffffffffffffffffffeded dbfbfcdd7dee7ebebf377f77b79fbfcf9fcdedcf6ff377f7fbfbbaf9ecf9fe6f7fffeff7 6fdfafefeeddbf7addbf76fef7fdfeeddbf7efdfddbb7eddbbeffbfff5ffffffffffffc8 90000040200485142a5127fd00039ffff79ff2ffffffffffff0000000100100a81142a20 400000400001801fffffffffffffffffffffdeb9 f3fbfdfdfdfefefeff7f7f7fbdbfbfdfdfdfcfefeff7f7f7fbfbfbfcfdfdfefebffef7b7 6eddb7efeeddbfbdd9bb66ef7ffef6eddbb76fdfddbb7edd9b6ffdfffbffffffffffffd2 0000000000082222a12517ff800bbffffedff3ffffffff7ffe0000000210004a00549010 000208440002001fffffffffffffffffffffedfd fddbfdbffbfaeffdfd6feefebffdbfdbeeffedfff7f6efeff9b7fffdffffdeef7ffff877 71e3bbefeedd9fc2e5c7971efbff0f15dc78efdfddbb3ee3a79ff9fff5ffffffffffffc0 24200048100148491488adb800abffdff81ef3ffffffffefa00000014095480180080a00 00a000009100001ffffffffffffffffffffffefd ffffb5eddf7e7defef7b7fbfafdff6dfffbf6f7bbed7fb7b6bfedbdddf6efa7effffffff ffffffffffffffffffffffff7ffffffffffffffffffffefffffffbbffbffffffffffffc2 1104501048121290a252478000affffe801ffbbffffffff8000000022110a20000012204 007aa0200000001fffffffffffffffffffffedfd bf7dfdffffdeff7f7f3ffbfbbbf7ff9df7fbe7dffff5fffffafffef57bfffedf3ffdffff ffffffffffffffffffffffff7ffffffffffffffffffffefffffffdfff5ffffffffffffe0 402001450244a44249249f0010fff7f0001f79fdeffdff800000000117a6b08000000000 003440000000001fffffffffffffffffffffdeb5 f7efed7fbbf6dffbfb7fdfdebf7f6fcffdefeffddbb77fdffbbbfffdfffb6ef6ffffffff fffffffffffffffffffffffe7bfffffffffffffffffffdfffffffdfffbffffffffffffca 1102441054920295124917003fffff00003fefffffbfa000000007905fb5402000002200 311a20000014001fffffffffffffffffffffedfd f80001d80002fe00017700009f80005ec0002de00017e0000bf80005dc0002ff7fffffff fffffffffffffffffffffffefffffffffffffffffffffffffffffbfff5ffffffffffffd0 022808a24844a888a4852f003fff7f4000bffbfffffff0000000078117a5410000002000 029248010020001ffffffffffffffffffffffe05 f9fffdfdfffeb6bfdf3d7fffbbbbfbdf9ffdaf6ffff5f5f6d9fbb7bcf5bffabebffeffff ffffffffffffffffffffffff77fffffffffffffffffffffffffffdfffbffffffffffffc1 08849209010805124929a7046fdff800153f7fbffbfe0000000007fa6f4000080000010a 03dd20400004501fffffffffffffffffffffeded db6dbdfdb6dcfef6fb7f6dbbbf9f7f5bcedfefceeed7777ffb6afdf5fcf7fef77fff8888 8404211044924924924449257c0012492222000212200000444249fff5ffffffffffffc4 a22240845522a84912424f87fff78000295fffef7ec00000000007f5e9251000000000bf 8161f8140000041fffffffffffffffffffffde79 fffffedbfffffdffffef7ffedeffeffffffbf7f7ffffdfff7fffffffbffedffefffeaab3 39f55aad9aaa95555555aaaafb77aaaaaaccfdf5aaaedbbf555aabfffbffffffffffffe0 10011451084922a4a4aab7fffff8000035f77ffff80008000005ffff8b41a00000030037 d68aac450200181fffffffffffffffffffffedff 77ff77feffbf6fdf6f7bdfeff7f7fbeefbfedefffdf7fdfbf7bbbfbff7bffedb3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc4 89488104a29045084954edfffd8001087ffffffff800000400bfffffa24801061000801c 0113e0080400011ffffffffffffffffffffffeff fefbffbfbffbfefffbffffffffbfffbfdfdfffbdefbeeffefdfffdf6fdffbbfeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc8 40001510090a88a52a08cfffff8000283fff7ffff800000c00bffdff849204052200000a 0885f0090a00001fffffffffffffffffffffeddb efffb9f7edde77ffff6f7dbb9dfedfddfff7ebeffff7fbefbbedef7ddffdfe7f7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc2 0a52a0a5505092484bb69fbef000095fffdffffff800001d17ffffffef4001b008008006 825804000000001fffffffffffffffffffffdefd 7eefbd7dffdefdddaf7bdff7bfeff9cf6efd6fffbcf3beff7b7fff9df76fcef6bfffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffe1 20040a08868a4912a222efff800010bfffdf7ffff800111fffffefffe080210000006009 b91008001208101fffffffffffffffffffffed3d dbf0bddff85edffc6b3ffe37bb7f1bdfff8dcf7bc677ffa37bdef1bd7ff8dedf77ffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc8 0900b1a5285124ad5db52ff800030fffffdff7fbff022effffeffc97fd68044000004001 044218008004101ffffffffffffffffffffffe9d ffe79dff73d6f7b9ef7eecb59fde5bdbdf3debdf9ef777cb33f7e7bdfdf2def6ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffbffbffffffffffffc2 400007f74a8aaa42a2455f800113fffffbdfffffff00bfffffffe9ed608000a8000fb810 81800b002040001fffffffffffffffffffffedbd ff6fbd7be7de7efaef77f9e7b7fcf2defb59eff7aef3ffdf7affcdb9ef77d6ff7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc8 80000dffd524aa94c96d9e800083fffefedfbfffdf823ffffffefdaf328000e80003b900 008804000002001fffffffffffffffffffffdebd dbebbdeff5dedffbe75f7df7bf7efb9fff7deefdbe76dddf7bdeef3dbff3dcbaffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffe0 00001da0bffdf6d31bcad600001fffffbe1ef3fffd8ffffffbfff5d004000090001f1fc1 019084900000401fffffffffffffffffffffedb9 feffb5feffdefbb7ed7bfff7bdeffbd76efde7bf7ef7ffdf7bfbffbdfdffdeff7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000017fffe56ffdee63d6f0031ffffffc01ff2fffffffff7ffffdc24001000a440738400 114001240900001ffffffffffffffffffffffebd efdefcdfffbaffff7f7fdefeaffeffdfffff6fefdfd7dbf6f37fefecefbf7ef6bfffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000dff7ffffd5bffdebe047fffff70001f73ffffffffff7ff600908000003a28130304 451428180048001fffffffffffffffffffffedbd fbffbdf5dbfeb77fdf6effb7bedfefdddfdbedfffdf6feffb9eefbfdfbf7debf7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 00000005dfffdffffbdfff83ffff7700003ffbffffffffffef00018a0008128181080200 042062780000001fffffffffffffffffffffdeed bf77e9ff7eecffdbfa3fbbff37f77e8ff6fecf7def67bfbff3ffffb9bf7ff8faffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000002fdf7fffedbdfef85fffffe00013ef2efffeffdfffe8001220010055080000000 9492215c0220109ffffffffffffffffffffff5f9 fffff3bffff9ddfefcfbeffc7dfff73f7fbf97ef7fcbf7ede6dddde3efeef9df3fffffff fffffffffffffffffffffffffffffffffffefffffffffffffffffffff5ffffffffffffc0 00000001555dfeffffffbafffffbc00000bf7bfefffffff78000000108200f82005a5850 018484f80000001fffffffffffffffffffffde73 ede806f7b402ff7e01fffe00dfdd807bdfc03dffe01ffdf00fff7806fefc02feffffffff ffffffffffffffffffffffffffffffffffffbffffffffffffffffffffbffffffffffffc0 00000000576b53bfff7fffffab7c0000203ffffff7ffbfa00000000015a15f80002140b6 3402202d0000001ffffffffffffffffffffffd03 ff7efffdffbff7efdfb77fefff7fffdffdf7dfbbf7eedfffef77fffff7dfbfbb7dffffff fffffffffffffffffffffffffffffffffffffffffffffbfffffffffff5ffffffffffffc0 0000000075b6bed35bdfffdfffff80a010bffffffefdf000000000008048e0828141188b 480040e64000001fffffffffffffffffffffeeff dfffdddffffbbdfffefdefffbbf7ddfef7fdfffefeffff7f7bfdff7bbdffffeeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000000256dab5efb7adbffffff02182ff77fffffd8000000000380041ad14068124108 805c200000800b1fffffffffffffffffffffddbf fdfbfff7bddfffbf77bfffddfeffff77bfff7b6fffbbbbfbffdf7bdfff7eedff3fffffff bfffffffffffffffffffffffffffffffffffffffffffffffffffefbff5ffffffffffffc0 0000000056adaef56beedfbfffff809857fffffefffc0000000001800054d50229004450 804c012b0020051fffffffffffffffffffffeeed ef7f6d7dfffceffbff6edef7afdf77dfff6fcfffdbf7ffdefaffdffceff7fe7affffffff fffffffffffffffffffffffff7fffffffffff7fffffffffffff7fffffbffffffffffffc0 000000002b72ab5bbeddf6f5bb7f821bffdedffffe000000000007c0842202756d614500 2dae00500800029ffffffffffffffffffffffdfd 7fefbdfff75e7effcf7ffff7bbf7fbcef7fdeefbfef777ff5bb7febdfbff9edf7fffffff f7fffffffffffffffffffefbfdffffffffffffffffefff7ffffffffff5ffffffffffffc0 0000000016aedad6db7b5daf6feefdffffdffffff0000000000007dda00821001380234f 767a80400000011fffffffffffffffffffffeebd fbf1b9ef78def7bc67777a35bf7d19dbdf85e7dfc6b5fde37bfdf1adbf78defeffffffff fdfffffffffffffffdf7ffffff7ffffffbfffeffefffffdffffffffffbffffffffffffc0 00000000156db6bb6beeeefddd7bdfbd6ddff7bff800000000107ff20509002808000897 ff6400280000005fffffffffffffffffffffdd9d dee5bd7bf3cebff1ef3fdc772ffe3bdfff3dedf78ee7dfc779ffe7bdffe3cefb3fefff7f ffbfdf7dffffbefbfffdfffffff7ffffffffffdffffffff7effffffff5ffffffffffffc0 0000000005556ed6fd5bbbd777d776f7f77b7ffff800001d00bfff7d5e021430000202ff 8aaca67f4000001fffffffffffffffffffffeebd ffef9dfef5deeefaef7dfdf7bddefbdf767cef7dbef6f7df3bb76bbcedf5dedeffffbfff ffefffff7fffffffffffffffffffbefbfffffffffffffffffffffffffbffffffffffffc0 000000000aab5b7bd5b6edbd7dbf6edf7ddffffff800000f00bfffdc95111434002400b5 af6d045d0000001ffffffffffffffffffffffdbd bbefbddfb7defbfbe76ffdf7bffef9cdff5defff3cf7fedf7bffef9dff77dcf77fffffff ffffffffefbffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000000005bacaaebfddd77b6f75fbf5dbfaafff7a02009e3ffffffff802a000000337ff d9f301b8c004001fffffffffffffffffffffd69d ff6fbcf7efdaffbfed7bbbf79b6ffbdfdffdebeffef3dfdf6adddfbddfffde7effffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 000000000355bed56aff7dcfdbdedd3eef5ff3ffff02017ffffff7ffe2e1560430075fd6 032e86ef200000fffffffffffffffffffffffdb9 f7fefdfdffbedffbff3effb7bffedf5bf7ffafbfdff6fbfdfbfffdf57df7befb3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 00000000016d55bf4295af75fefbbfefbbf3737fff817ffffffffffffd5aa00802080176 04200725e802031fffffffffffffffffffffeefd bdffb5bffdfe7b7fbf7fddfeb7fff7df7f6deefbfdb7beeffbf6ff7df7bdeedeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000000002b7ebd5a822fbbf5befe7fb7ebdf3fffeffffdfffdefdf7f8250124114f805d 040000abf150005fffffffffffffffffffffdd7d ffdbf9ef6f74ffedee77ff7f3dadff8ffbffc7feefe7effed1bfb7f8fffffcff7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 00000000015f56b54093d7efdebd7effdbffb3efffbffffffffffffef0a84900408a845f 020002ab7220001fffffffffffffffffffffeee9 ef7ff2fbfff9b6fffcbeeff67fffbd3edefe9f6ffbcdffbfe7efffd3eeef71babfffffff fffffffffffffffffffffffffffffffffffffffffff7ffffffffffbffbffffffffffffc0 0000000001f7bddbbf5ebadaefeddbf5bf6dfbfffffffffff7fffffffa42a090118700c0 3400017821ca00bffffffffffffffffffffffdf3 fbe807fef403ffde01effb00eef7807bff803bff600f7de00ffdd807bffc01ff7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffdff7ffff5ffffffffffffc0 000000000ffdcdb6d6f56f6ffdffbfffeb7b53ffffffffffffffffdfa82001300088042d 4a0003c25834b11fffffffffffffffffffffee03 bffedbdfbfdeeff7bdfbbfffbfbdffdff7ffdfdbfefff7ffedbffffdfddfff76ffe00000 0000000000000000000000000000000000000000000000000000003ffbffffffffffffc0 00000002fedf7b5d7b5ff5b5575bebfaffdff7fbbffffdfbfdfbbc0000002e44a58c0112 848003dd5e932e5fffffffffffffffffffffddff ef7ffef7fff7fb7fef7fffb6fbfff6fdbfedfeffffbbbdfb7ff6fb6f77ffffdf3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000005ff7ffd5eed7b55fffbdf77ef7daef7ffff7fddf7fffdc00000022010600000000 204000f5292add3ffffffffffffffffffffff6df fbff7ffdfebfbffddfdeefeffeffb7efeffb77f7ddfffffedeffff7fff7b37fef7ffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000002b7dfb77bdb6fefb7beddeedeeeffdfffffdefffffef7a000000482a8440000000 108002ddaa0baa7fffffffffffffffffffffdd7b ffed37bf77bdfeffdbf7feef6feff6fbfbfbffbff5f777fef7ddff7bdbff9efb7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000007fefbfdad6b7abaed67b77773fbb56adb7ffffffeed00000000011043840001c09 001d00f621a4201fffffffffffffffffffffee3f eeff7deffdaf77bf5effbfabffbef7bf7f6bedfdfdbffdb6fdff6d5efeffbfdeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000006affef7ddfdb7d7bf7ddddffeafdfffbfb5ebbbf00000000000408000200001520 0013025f0270401ffffffffffffffffffffffd7b bfe07ffbf03fdff81fdefc0fddfe07efdf037fef80eddfc0bf77e07fbfe03df77fffffff fffffffffffffffffffffffffffffffffffffffefffffffffffffffff5ffffffffffffc0 0000003fdd7faf757eefdebeaf6f6dbfd7aaf75ff7fffbfb6a0000000825120188043e90 140100340400001fffffffffffffffffffffee5f fdefb77f77bbfef3f7fbedeef7eeedfdf77dfb7f3fffffdfefffeff7fbf5ef7efffc1fdf f7fffe1ffbfffdbffffefffffffffffbefffff7ffffffffffffffffffbffffffffffffc0 0000007ffffb7dfbd7bd55fdfbfbbff57effddeb7deb6f7ffdffdfc1640058026c722e8b 019004842000001fffffffffffffffffffffddf7 f7cdffdfd7fef7badf7ff9ffff7ebfffff5fdff79bf776d6fdeeedbddf777ffb3f7defff f7fffdeffbfffdefffffbffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000007adbdfeb56b77795b7f5ddfbbfd7b6defedf5efdfddf56ed82a10098004c493f45 05d001360008001fffffffffffffffffffffeefd bf7f7dfdf6dfbfffffedbfbbdfddfbdbbdfbf7bfff7dffffffbfdffff7dfdfdefffded5a 631d7dfe3b8b18b8e9ffeffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000006dfefebdffeddd017ebf76eeeb7dddf7ebfbffdfb7fbffff600885410570a228b7 010da0088100001ffffffffffffffffffffffd7f effffdf7fffeeeffff7fffffbdffffdfefffedfdfff7ddfffbfdf7fd7dfffcff7ffdecd9 b6ecfe7ddb76edb766fffffffffff7fffdffffffffffffdfffffffbff5ffffffffffffc0 0000007f77f7f76dbfff01fbdbdffbffffffbf7fbf75fdfebffadbc2482254700fcda108 004200000400001fffffffffffffffffffffeefd fdf7fdbefffeffdded5fddffb7effedeff7fefeffff77feef377ff7dfffbfebafffc1ddb b6edff9ddb76fdb76efffffffff7ffffff7fffffdffffff7fffffffffbffffffffffffc0 0000002fbfbf5ddb6b5a01dfff76bfb7eeb776fdeeffb77bfb5fffe5b68af2b63be000ca 000904020001001fffffffffffffffffffffddfd ffffb5fffbf67dff7f7aff773f7f6fd7bfdb6fbf6dd7fbffbbfffff5ef7feeef3ffdfddb b60dffec1b06fdb76efffdffffffffffffdfffffffffffffffffbffff5ffffffffffffc0 0000007bfbfeeb76fbfe017aaaffedfd7bfddfdfffef7fefdfdf76ffff7729543f200b00 080000180000001fffffffffffffffffffffeeed b6ddfcdbbfbeef7fff7fffff9bdfff9ff7ffcdf7fff6efb7faeedddd7bef7afefffdfddb b6fdfdedfb7efdb76efffffffffffffffffdffffffffffffdf7ffffffbffffffffffffc0 0000007edef7dedbafaa01f77bf5ffefdf77fbfef7bbdbf6fdfddfefedefa52a1b601280 000000120000001ffffffffffffffffffffffd7d ffff7dfffdeefffbb66f6fdbbff6fdceffffe77fdf73fdfdebfbfffdfffbfe7b7ffdfddb b6edfdeddb76edb76effffbff7ffffffffffffffffdf7ffffffffffff5ffffffffffffc0 00000057f7deb5f6f57e01bddf5edf7dffef7ed7ddfffebfdfebfd7ffffdf9059ca04d40 0000001c0000005fffffffffffffffffffffeef5 efe005eef000dbb8013bf800befe005bee002ffb8017bfc00bbfe004eef002defffdfddb b31dfe1e3b8f1cb8eefffff7fffffffffffffffffffffffffffffffffbffffffffffffc0 000000feddffdb5bafd400ef7af77bef75fbd7feffef77fdf6ff6fffffffe48118609400 018000160002001fffffffffffffffffffffdd05 fb6ff57fd7fefffbff7efdffb7beefdfbf6defdfb7d7f7dff9efadedfff7feff3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000000b5ff6ebd76fafc00fbaddbff7bdf5dfbb7ed7dffef6faffbafff7ff5000f205400 0010973c2000201fffffffffffffffffffffeefd bfcbbdddf77e6eeaf77fdd7b3ff67ddffb7f66febdf37f5edbfdef7dddd75afaffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 000000ffaffdf7ad575400def77d6deefdef7efebfdf6f7ffffadffbffdefd6801000019 000fffee9000101ffffffffffffffffffffffdb5 ffffeffffbf7ffffbeeff7dfdbffdf6dfedfffffff7ffff7f77ff7fb7ffdfedf7fbfffff ffffffffffffffffffffffffffffffffffffdffffffffffffffffffff5ffffffffffffc0 000000dffbbebaeffbf400f6daeeffbbedffefbbbbeffdf6b6effdffdfdbead808800008 0006dbda2100201fffffffffffffffffffffeeff fffefb7fdfddffffffbffdf7fffdfffffffbddef6fef7bddffffbddfffeffffebfffffff fffffffffffffffffffffffffffffdfffffffefffffffffffffffffffbffffffffffffc0 000000b77f6f6d5a975801afffdbb5efbf7b77effefedfbffbbad77ffffedde017e7983f 8002fefe1ea0011fffffffffffffffffffffdddd dc17ffdb06ffb705dbfbc3ff7fa1fbbdd0befff87bfbfc3fbdb61ff7dd0bdbef7ffeffff fffdfffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000000ebddffb9517ae8007d6d6eefbafb6fdf7d5bbbbbf6dfefffdffffffdf5ffa72e1f 860815f6175e60bffffffffffffffffffffff6ff fcbf6ffe7fbfff2ffefe9fbdebcf6fefe7eff773ff7ee9ffeffcff7efe7f7f7effffffff ffffffffffffffffbffffffffffdffffffffffdfffffffffffffefbffbffffffffffffc0 0000007f7ffb68000000006e55dbfef75fdefbdffdefff7dfefeadffffffdbffffe6bffb cf4000be1ff5d15fffffffffffffffffffffdd77 fdfbfefefff6df7fbfefbfefffdffefbebfbbfd6efdffb76fbfdbbdfbe7ff7df3fffffff fffffffffffffffffffffffffeffffffffffffffdfffffffffdffffff5ffffffffffffc0 00000080eeded800000000740000de04a17b6f76f77df7d777dbffefaeeffdffff87ffef f7cf00b61dbf717ffffffffffffffffffffffeff b1fbbbb8dcfff67cf7bf1b7bbf9b9ffecfdffde7edf7f3f7ffb9fbfbecdcfdf6ffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 000000c0dfffb0000000007e00007a002f6bf6fedf7fbdffdfdffdeffffdbdffffa7fefe fd9d00fe1bffe07fffffffffffffffffffffeddb f9bbfffcfdddfcde7dff7e7fedafbddfdedf6fedeffdb6f5def37b7ffdfddfff7fffffff f7ffeffdfffbfffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000000a0fbfb68000000007c0001f6000000000000b6af5b7eeabfbb7000017f77c5b7bb ffcf805a1f6b715fffffffffffffffffffffdeff fbfaeefdbdffbe7edfdb7f5dff3fb7f7d79bfbefe77fe7b7f7fbdbef7dfdffbeffffefff fffffefffffeffbfffffffffffffffffffffffffffffbffffffffffffbffffffffffffc0 000000a07dbee80002200055b76fde0000000000007c000000007be0000000ffffa7ffff 5bfb007e0dfff1ffffffffffffffffffffffedbf fb7bffdded6ffeeefffe6f7fbfbdbffedfcfff676ff7f3f77fb9f9fbdd6cddef3ffffbff ffffffffbfffbffff7fffffdffffffbfffffffffffdfefefbffffffff5ffffffffffffc0 000000d0dff7b8000000007d54d5b60000000000005c00000000ffe0000002ffffe6dddb ffbf805e1fdad17ffffffffffffffffffffffeed bbfbfdfdfdfedefeff3f7f7fbbbfbfdf9fdfefefeff6f7f7f9fbfbfdfdfdfefeffffff55 bd5b7fefeabff5edbd5b6daf5b6dadeb6db6dbb6daf5fd7df5b5bffffbffffffffffffc0 000000b6f6feb00012400058ab57fe0000000000007c00000000ffe0000007efffc7ff7e eded803b15bfb0ffffffffffffffffffffffedfd fff779bffffcfffffb6fffffafdf7757fffecdfffef7fff7fbfffffd7bfffebf7fffffff efffd6befff7ff7ffffffffffffffffffffffeffffff7ff7bfffdffff5ffffffffffffc0 0000005dfeedb000000000ed56ab7e0000000000006c00000001def0000006fffba7b7f5 addf802e1b77f1bfffffffffffffffffffffdefd fddfdcfb7dfe77f6df7fdb6dbff7fddfedffef7bb7d77dbddbbbb6dddf7bf6f6bfffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffdffffbffffffffffffc0 000000eb5bff68100aa0007ca957ea0000000000007c00000001f7f080000fffbfe7fdbf fefe801b0fee81fffffffffffffffffffffff5fd dffbfdbfef6efdbff776ffffbdffbfddffdbe7dffff3fffffafffff5ffdfbcff7bffff7f ffffffffffffffffffffffffffffffffffffffffffffffffffff9ffff5ffffffffffffc0 000000bfffddb0000d6001d402ab7e200000000000f400000001fff400000ff7ff65dffd bbeb801e1eabe0bfffffffffffffffffffffdeb5 f77efdfffffedffffd3ff7df2fbdef97ff7f6ffefb76f7eeebff7ffcfffdfedeffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffbffffbffffffffffffc0 000000dbbb75d0149bc801b4012bf6100000880032dc4012528b7f7820000fffffc7f7bb efbf80171bb721dffffffffffffffffffffffdfd f80005f80002fe00017f0000bf80005f80002de00017b0000bb00005d80002f77fffffbf ffffffffffffffffffffffffffffffffffffffffffffffffffffdfbff5ffffffffffffc0 000000af6efab000552806acaaabde100001b40024ec2a4d5415ebf000000bffffa77eee fefd80050efdc07fffffffffffffffffffffee05 bbffecddbbba76db7f5b7efbbbbffddddbffef6fbff7f6fff9fbedbdfcffde7effffffff fffffffffffffffffffffffffffffffffdffffffffffffffffff9ffffbffffffffffffc0 000000fbdbdef0242b900349554bb6200001200035ac28aab511dff400000ffbff87ffff bbb7a0070fd6d1bfffffffffffffffffffffdded ebb77dfdfffefcffef7e6fbf9eb7bfcfdfb6cfcbedd5f7dddb7b7ff57db6fafb3fffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffbffff5ffffffffffffc0 0000009dbf7b90514e4c070c2956fa1000515400aaec5b9beedffdb800000eff77e7dbee efde80051b75a07ffffffffffffffffffffff679 fdfff7bb6eefdf6efefffbeeffbdf77f6dfffbffff7f6dffffdbeeffefffbfdeffffffbf ffffffffffe0fff770f7ddff7e0fe7f9ffbffff7ffffffffffffdffffbffffffffffffc0 000000efdafd702459940004ca53be1000017402a9541fffbaf7ffe200000fffffa6febb fefb84070eeda1dfffffffffffffffffffffddff ffddbdeffffdffffbbdbbffff7ff7ffbffbbbef77ff7ffbbbbfeffddfbefeeff7fffffff ffffffffffef7fff6f7ff7ff7ef7fffbffffffff7ffffffedb7fdffff5ffffffffffffc0 0000005cbdeed428960400089497d4288801580136c876fcddff6fd02fffffbf9fe7dffe abd700050fbdde7ffffffffffffffffffffffedf b6ffffffeddf7bfbffffef7bbdefeddfbfffefbfdbfdf7fefeffbbffbf7dffbafeffff7f ffffffffffef71e62ff1d5a61ef6ad318ebfffffdffffffbff7f9ffffbffffffffffffc0 000002dbd6bda3ffba800021248b7eb55400b2bee9955ffffef7f7e0ffff77ff9fc5ddaf ff7d83f70d6b1effffffffffffffffffffffedfb ffbbf7bd7ff7dedef76efbdfff7bfffdf6eefffdfedfbeefefb7ffbbefff7bef3fffffff ffffffffffef6edb73eecd9b7ef66cdb767fffffffffdffffeffbffff5ffffffffffffc0 000000b67dfab1d552800004aa0bba355401555255b17edbdfdfffc1fff7fffe9fe7f76d ab7782ad1bb6deffffffffffffffffffffffde7f efbebdefddbfffefdffff7f6effbb76f7dfbfdee7ff7ff7efffeb77efd97dffeffffffbf ffffffffffe0eedf7cefddbb7e0eeddb76fffffffffffffdff7fdffffbffffffffffffc0 0000006b5aadd56dfb00000094d7f7e672000aa54849fffff7ffbac1fbffddff9da77ffe feef80ff06d8163fffffffffffffffffffffedf7 fd6fbfff3fdb7b9bedddcf77fbd6fbfff3bd6f7df4fedabb5def7dafffbfd77b7fffffff ffffffffffefeee77f6fddbb7efeeddb06f7fffffbfffffffe7fdffff5ffffffffffffc0 00000213a80307b76a4200012893daea8000048120912ddf7eeedfa176bb7fb7ffedddf7 6bbe83a509b05e1ffffffffffffffffffffffe3d bf2317bb838fdec947ff60e3bef270fbd838fff41c3ffe4e3f7d071f6e818fdeffffffff fdffffffffefeefb6f6fddbb7efeeddb7efdfffffffffffffeff9ffffbffffffffffffc0 00000000400040ad550010044b16b628108000000844b76bdffffdd170018afbefd3773b 9b93807f002a801fffffffffffffffffffffed1f ec801dfe600fffa00777d401ffc801def504ddda827bb90137dea09bff504dff3fffffbe fffffffbefefeedb6f6edd9b7efeeddb76ffbfffff7ffffe057fbffff5ffffffffffffc0 00000100000000120100002000214080a00000800031395f76cb6fc0000001d47880a82d 55487aaa003b1dffffffffffffffffffffffde8f fe689fef104b779a23ffa41377f309ffe900f7f4846fee603ff6201ef6980f7affffffff ffffffffffeff1e730f1dda73efeedd98efffffffffffffcf57fdfbffbffffffffffffc0 000002000000010446810010112aa84808000800001495bddfdffd41280405f474a2f43b d6c0f56d40368d5ffffffffffffffffffffffd1b bcf0377ef41fff3c0edd9d07df4e03bbb741ff7bc0fef9c06efde83fbf741fef7fffff7f fffffdffffffffffffffffbfffffffffffffffffffffffffffff9ffff5ffffffffffffc0 00000000000000000000000482048201422000820001314b6da55fe8400007087408a94f 44000802000891bfffffffffffffffffffffee3f eea07ff7503ddba81fffd60ffdea87fff582dfda81dffd50ffbeb077fb502dfeffbfffff ffffffffffffffffffffffbfffffffffffffffffffffffffffffbffffbffffffffffffc0 000002000000000000000000080020040000482020204a2f9bd6ad0514a80000504d522d a84915000003001fffffffffffffffffffffdd7f fe28ddbd186fff8a3f77c41effe30b777107fdf0a3fddc61bbec20bdde147fbb3fffffbf ffffffffffffffffffffffbfffffffffffffffffffffffffffffdffff5ffffffffffffc0 0000000000000000000800000040010028128088084a5140aaaaada92145aa81b922a550 450200000204001fffffffffffffffffffffeedb f970fffcb07f765c1bfd2d17db960fdfcb47f7edc377f2c1fffb68fffdb07ffeffffffff fff7ffffffffffffffffffffffffffffffffffffffefffffffffdffffbffffffffffffc0 000000000000000000000008000080010200004000148055520a9e524a9eeb7db148488a 1028aaaab4aa905ffffffffffffffffffffffdff 6a00bbed083bfe803fdf481dfea10ffed005bfa801ffb421777a20f775085b777fffffff fffffffffefffffffffffffffbffffffffffffffffffefffffff9ffff5ffffffffffffc0 00000000000000002000000000000000004902041011028a4a552c94945bbdadd5499554 a44024255514809fffffffffffffffffffffee7b f8e1ff7c60efb6387ef7143fdf8c1b7bc70feee3876ef183fde8c1bffc60ffdebfffffbf ffffffffffefffffffffffffffffffffffffffffffffffffffffbffffbffffffffffffc0 0000000000000000000000200000000480001010000d2012dad55d5524a442a2104a5111 1555554a2922101fffffffffffffffffffffdddf fa03f7fe81fdfe80f7ff406efba03fded01efff00ffbf407dff803fddd01fbfb7ff7ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffdffff5ffffffffffffc0 000000000000000000400000000000002010400000008084b52b5ea555155a55d1a15eea a9b542a14000005ffffffffffffffffffffffef7 d402dee801ffdc00ddde207fbf103bff8817bdc40fffa206f7b502eff8815efcffffff60 00100000049000000010000004000010888800000020100112495ffffbffffffffffffc0 0000000000000000000000000000800800040108000a0a2104116c95ad7fffff594b2085 555aa9140000001fffffffffffffffffffffedfd fac3ffbd69b7f7a0fffb547befa91f77d51fef6a0b6ff547fdfa93bdbd69ffdf7fffffcd b6d5deeeeaaddddddfd77777756ef7d6aab5dbbfffadd77d54aa5ffff5ffffffffffffc0 00000000000000000000000000000000001000200000001169a41f20d24ac94000880000 008d4a444000001fffffffffffffffffffffde7f ba63bbfd11ff7e9877bf4c5ffba637fdd31dffe98ffef4c3bfda63ffed11fbf6bfffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000020000000000000100000000000108000040000040225248bea594bbbeaa84180000 012e91428000001fffffffffffffffffffffedef ec33fefe39ddfd1cfdef86777fc33ddfe19fbdf1cf77b867eefc33fbfe39df7f7fffffff ffffffffffffffffffffffffffffffffffffffffbfffffffffffffbff5ffffffffffffc0 0000000000000000201000004200200002000000000410015ebb2d6a612d4100000800a0 0000aa045000001ffffffffffffffffffffffefb ff00ecb780fe6fc05f3de03f8ef01fc7b807e7dc03f3fe02f9f700dc7b80f67affffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000000000000000401400000000000002000200000000069cacf54b842004004000120 000802a90000001fffffffffffffffffffffedbc fb81fefdc0777be077bf703ddfb81eeefc0dd6f607daf703bdbf81fedec07f5f3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000000000000000029a2001000000008000220040008000056549c5da52000000c100000 000000125000401fffffffffffffffffffffdefe dfa058dfa03c3fa81c37f40f1bfa078fed03c7fd00e3bec0f1fda068ffa01c7effffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000080000000000ffacc0a05400000000000810001000005aa52fb77b540000040000d0 000000249741281fffffffffffffffffffffed68 f69003f75801eeea007de4007eea003df4801bbac00ffd2006eea003f75801fb7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000000000000000775100905400400000000108000800005f12ad6de6b2000004000120 000000a9a480941ffffffffffffffffffffffe03 fd383efe941fff0c0fdf2707efd383ef69c1fff4e0fdea706ffd383dbe9a1edebffbffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000400000000001dede2328e0d18000000ab6be000040050e55fbb5dd4a0000c2000f0 0000020a2ddd601fffffffffffffffffffffed3f f43c17fa1e0b7d0f07fe87837f03c17fa1e0ddd0b06fe8783b743c1ffa1e07fd7fe00000 0000000000000000000000000000000000000000000000000000003ff5ffffffffffffc0 00000000000000005255efeff15264500020e220100480003fbabe6d76bfe2000c585526 00000000922aa01fffffffffffffffffffffde1b e02c3fb01e1fd80f0ffc0587de02c3ff00e1ff80f0fbc0587fe01c37f0165f78ffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 0000040000000000555519fdfc00014a02408544080000006acacdd314eb5f4008010100 c00000002b54541fffffffffffffffffffffed3f 703d3df81e97fe0f4d6f07c5f743e3dbc1e9b7c0f4bef07a5ff03d3db81e1fdd3fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 0000080000000000abaaee568e223ed801210152080000029b352e3cad5efab956120000 c00000000000101ffffffffffffffffffffffe37 fd382f7d1c1eee4e8fff2727ff938affa5c1fdf4e8fff2707b7cb83ffc9c9dfeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 00000200000000014a554ebd5c487cd00a400555000000005b68acadd6f6db52ac050020 c00000000000041fffffffffffffffffffffed3d dfe9ffdff0fffff83fbbfc1fbffe0ff7ff277f7f83dbbfcbffdfe4f77ff26f7f77ffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffc0 000004000000000555554d42b553b7ffa4aacaaa0aa80000252dde9b2895b6adfa928000 40000000b001001fffffffffffffffffffffdeff fbfffbf7fffbbbfffdfffffdf6ffffbeffffeff7fffffffff7f7ffffeffffff6ffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 000000000000020052aac2dfae8cbeffff7512aaaa4800000ad65fb2f55ae8ab4afca8a0 100000000080001ffffffffffffffffffffffdef ff7fbefeffdfffbfefeedfff7feffdefb7fffbdffff76df6deff7feeff7ffddf7ffdfdff ffffffffffffffffffffffffffffffffffffffffffffffffffffffbff5ffffffffffffc0 00000a0000000000ad55415268a522dfdaeef55554b000255129ac416b95ab567fa7fa40 300000000000001fffffffffffffffffffffeefb b7f5efbfeef6ededff7ffbb7ef7bf7fbff6dbefb7dbfff7fffbbdb7fbbdb6ffafffcf9ff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffc0 000000000000000052aa80acad2abca96abf6baab524012d5d5abe8006a516d4c4584ad0 4bd000000000001fffffffffffffffffffffddbf fddffffbbfffffffbbedfffdfbfebf7efdffffffefeeffefbbfffffbffffff7f3ffcf9c7 9e78f2e3ffffffffffffffffffffffffffffff7ffffffffffffffffff5ffffffffffffc0 0000000000000402955541dab5296d55dd7e6a55d94802556dacad0006d567b55a92e5a9 52a400000000001fffffffffffffffffffffeeef ffffbdeffbbdbbbffeffb77fbfdfefdfafdf776efbfbdbfdefef7ddef77ddbeefffd75bb 6db76cddfffffffeffffffffffffffffffffffdfffffffffffff7ffffbffffffffffffc0 00000a0000000000aa954135554ab6b755aaabddffb7fd6fd569ffd56c9b594356ad5fef aca900000000041ffffffffffffffffffffffdfb b7bdef7b7feffffb6fbbfdefeef7fdf7fbfbdfffbf7ffedfff7bef7fdfeffefb7ffd75bb 7dff6eddfffffffffffffffffffffffffffffff7fffffffffffffffff5ffffffffffffc0 0000000000000010a4a5414855555aedbb55aafbb77dfff55fd6bdcbfffd6a3deefd6969 53555aaa0000005fffffffffffffffffffffeeff fffffffffffeedfffffefffefffffffdfffffeffffddbffffdfffffbfbffffbefffdad83 9e786ec1fffffffffffffffffffbfffffffffffffffffffffffffffffbffffffffffffc0 000000000000000400008176aeaad556d6ff76afbdc2bfbffdffefbe9b5bdfeffb9adfd6 adad75542000141fffffffffffffffffffffddff dfeffddfedffffbffdeffffffbfeffbfff7ff7bffffffffeefdfffff7ffef7ef3ffdadbf efb76edffffffefffffffffffffffffffffefffefffffffffffffffff5ffffffffffffc0 000000000000000000000056d2ddb7696b52dffd77197feff7fefd9ffea6d69936ef52aa d56acd000000021fffffffffffffffffffffee6d fefeefffffbbbff7df7fefdddfffedefffedbfededf77ff7fbfedfb7df6fbdfefffdddbb 6db76cddffffffffdfffffffffffffffffffffffbffefffffffffffffbffffffffffffc0 00000000000000000000005b5db567bb6d7e9b57f76a5ffb6f5ff7d7ed57dfaeedebad6e adabaa000000001ffffffffffffffffffffffdff ffbfff7dbfffeffef7df7efff7b77ffeedfffdff7f7fedbfbf7ffdfdfffbff7f7ffdddc7 9e78b2e3ffbefffff7ffffffffff7fffffffffffff7ffffffffffffff5ffffffffffffc0 0000080000000000000000d5536bbad6b5abeafdb7febf9fd1709e9ffffd2aaddd5e7b55 fa6e6ac0000c001fffffffffffffffffffffeedf bbfbb9dff6ecfedfff77fbf6bdffdf5bffbfcfffffd5fffdfbfbf7fd7dfffeeebbffffff fffffeffdfffffffffbefbfff7fffffffdfffffffffffffffffffffffbffffffffffffc0 0000000000000000000002b55d5d5affbff6fea7feefedf6ffdffbbffffffff77ff4d5ad 57d55b56a820801fffffffffffffffffffffddf5 fc000dfe0006bf00037f8001bfc000dfa0006bf00037780009bc000dde0006ff7fffffff ffffeeffffffffffffffff7fffffefffffffffffffffdffffdfffffff5ffffffffffffc0 0000000000000000000140edf553b7dbedbffffeffffff7f6ff7ffefbfb6b0bed55ffed1 6e5babb9200400bfffffffffffffffffffffee0d f9fffd7cfffeee7dfb7f3f7faf97f7cfcff6eec7b7f7f1dffbf97eddfcbdb6eeffffffff fffff1ffffffffffffffffeffffffbfefffffffffffff7ffffffefbffbffffffffffffc0 0000000000000000000141bf7fffffffffffdbffdefedff7fb7fb57beb5bded5ad63afb7 d7f6eca5ad401f7ffffffffffffffffffffffdfd dbb6ddecdddefeefde5b37dbbdbefddbcdbfefedfef5f7fb7b7beffdfdeffe7f7fffffff ffffffffffffffffffffffffffffff7ffffffffffffffdfffffffffff5ffffffffffffc0 00000000000000000000415bdf6ffffffdb6ff6df7abfdbdbfdfff6ffbdff7b5efab7b7a f7fd75b55a84067fffffffffffffffffffffeedd fafffdfdfff6be7f7f7f7dff3f9fbfdfdffde7ef7fb767bffbd9fbbcd9fbdedeffffffff ffffffffffffffffffffffffffffffffffffffffffffffefffbffffffbffffffffffffc0 00000000000000000002c2bdfbfeffff6ffffbff7dfffffff6fdabdf7575fd6b3adf6dd7 ded796dff553bfffffffffffffffffffffffddfd 7bfff9bdfffef6ffff6f7fffb7bfffdddfffeeeffff7f7fffbfbfffdfdfffef73ffffffc 00002200400000012441129000025540800002490008aa2804a0113ff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffaf9 f7effcfbfbfefff7ff7bffff9fffffcfffdf6feff7f3fdffeafffff57efffafefffffffd bdefaadeb7ffdddd555d55577efaa4af6fdded5577d35555b52dd57ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7d fefeddbedfbcdf7ddb3f6fdbbdeddb5fb6f7cdfbbef77fdb7bbedefddfbdbedf7ffffffe ef7afffbfeaaf7f7fff7ffffd7affffafd7f7bfffefefffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdedd bfbbfdfffdee7fdfff7ffeffbf7fffddffffef7fffd7f7ffdbf7f7ddffefeef6fffffffe ffdfeedfb7ffbf7edbbddb6dfffedfbfefdbffb6dbbfdbb6dbeb7fbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdf5 fffffddfbffef7ff7777fbfeb7df77cfeffde7fddbf6ff77fafffffcfbfffa7f3efffffc fddfffffffffffffffffffffffffffffffffffffffffffffffcfedfff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd f00005fc0002fc00013e0000bf80005bc0002fe00017b0000bb80005bc0002fefffffffd ef9bffffffffffffffffffffffffffffffffffffffffffffffddff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd05 b9eed975f77edef7ff7f3fb7afbbfedededfedafffb3f3fef3f9beedfd7efedb7ffffffd 7fdfffffffffffffffffffffffffffffffffffffffffffffffefeffff5fffffffffff9ff e7fffe7fee79fffffb9e7f9eefffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd fb7ffdfd7ff4febeed776dff3ebfb7dfdbfdafebbdf6f6efb9ebf7fdeddbeefefffffffe dfb7ffffffffffffffffffffffffffffffffffffffffffffffeff8bffbfffffffffffbff 673ffe7ff333fffcfcccffbe07ffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdb5 fff7efeff7ff77ffffdffffff7b7ffb7df7ff77fffdfbfffff7f7ffb7ffffdbf3feffffe d7dfffffffffffffffffffffffffffffffffffffffffffffffcbebfff5fffffffffe0007 001ffe7fdb26e00076c9b802cfff3fffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffdfffffffffffffffffffeeff dffdfb7fbfbfff77fef7ffeefffdfffdfffffff77ff7ffbfefffdddfdf7ffff6fffdfffc e59fffffffffffffffffffffffffffffffffffffffffffffffdfd7fffbfffffffffeffff 3f3ffe7f80007f9fe0101feecfff70071fffffffff1fffff0408ffffffffffffffffc1c3 ff8fffffffffffffcfffffffffffffffffffddfd f9bf7ffcffeddf5f77ff9bfbefdffb7febf6ddf7fdfde9fdffb9fff7faefb77f7fff7ffd fd5bffffffffffffffffffffffffffffffffffffffffffffffee1fbff5fffffffffefbff 483ffe7d9ffeff9fefffbee69ffe78e39fffefffff9fffff8f38ffffefffffffffffe3cf ffcfffffffffffffe7fffffffffffffffffff6ef f8ffdedcddfffe7fffbe3f7fbb8fdff7ceffffe5ef7ff3ffbdf8ff7f7cfdffdefffffffe ff5e11002021000491112440000400000440004922002249224dfefffbfffffffffef9ff 3fbf0100fff5ffdfeffd7e4ebffcf8f39fffefffff9fffff8f3fffffefffffffffffe39f ffcfffffffffffffe7ffffffffffffffffffddbf bbfff5fdff7eb6ffdd776fdfbfbbfedd9fefe76fffd77777ebfbbffdfdbf7eff3ffffffe bbd8d57ecfad77f95556555dddd9f7bdf55bbeaaacffacaaaaadfffff5fffffffffefbff 003ffe7fe903ff9ffa00ff3bbffcf8f39fffcfffff9fffffafbfffffcfffffffffffeb3f ffcffffffffffffff3fffffffffffffffffffef5 fbb40dbd7e02feed037f7f81afbf409fd7e02fe77033f3f81bbbf809ddfe04f6fffffffc eeffffd7fafffeafffffffff77ffbdef5ffef7ffffaaffffffffb5bffbfffffffffefbff 3fe7fc7fffcfff9ffff3f800dffdfcf383e083c1ff83087f8f38e041838311e0223fe27f 03c8447808100881f3ffffffffffffffffffed0d fbf9fdededfefebeff5f7b7dbd9f9fd7ddddedefe7f7f6f7f9fbfbdcfcddeebf7fffffff ffdf6efdbfedb7fedeeddbb7fdb7ef7ff6efbdb6dbffdbb6ddddfffff5fffffffffefb7f 4007fd3fff3fff9fffcffffecffdf8cb89ce4f9cffc99dff8038f21ccfbb9dcc73bfe17f 33e8677319999999f3ffffffffffffffffffdefd dafbbdf9fd6eb6fe777b5f6fbfb7b7dddf9fefedeef777b37b79bafdbdfdfefeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffffef3bf 3ff7fdbfff7effdfffefbde6effdf90fddce4f9cff9c8dff883cf39cef9b9dccf3bff03f b3c9e7733d999bd9fbfffffffffffffffffff5dd fbfbed7dbdfefceefe7f7f7bb7bfbddfd7dbeb6fefb5f7f7fbdbfbfdedf9bef73fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fffffffffee79f 0443f9df80107f9fe0081c0aeffdf8ff9dce6f9cff9c69ffcfbefbdccf839dcef3bfe31f 93c7e773bc5c4bc5fbffffffffffffffffffdefd fbbbf9fdedde7e7edf6f3b3f9fbbbfcfdddf6fe76bf775f6dbfbdbddfcdcecdeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffffcef9e 6677f9cfff3fff9fffcffde6effdf8ff9dcf4ddcff9e4bff8f3cf39ecdb9dde0fbbfe39f 33c3f7783d9e53d9fbffffffffffffffffffedb9 d9fb7ddcfcf6defef73f7f6fbdbfafdedfd7cfefeff7f777fafaf37d7dfdfe7f7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fffffffffcefce e677f3c7ff3fff9fffcffce68ffdfcff9dee4d9cffdc63ff8f3cf39ccdb99dd3f3bfeb8f 32e1e774f99447997bfffffffffffffffffffefd fff9fcfffdfefffe7f7bff7dbfbfbddbbfddeb7fef73eff3fbbffbdddffdfeeefff0003c 0044924920492212449249221248248124924924922249249244003ffbfffffffff9ee2e 7677eff1ff3fff9f7fcffce7cffdf8ff9dc4498aff9cf7ff8f3cf388e9b998c9f31fe3cf b4c8e63279c6679a73ffffffffffffffffffed7d ffebddbffdbeefdaff7eef7f37ef3fdfff9fefddcdf77ff6dbf7f9fdfdfcdeff3fe7bbfd ff5aaaaaaeaaace55aaaaaaad553d55d55555555555555555559f77ff5fffffffffb08ee 01078ff0fc3fc0403f2ffc16fffdf07fdde0f3e1ff98e7ff244869e1e783e640788fc1a3 08ccf1901856e78473ffffffffffffffffffdedd db7bfdfbb5ee7efeb76ffe6f9ffb9bcfedcfe7ffe7f7fbd7f9fdfb7d7f6dfefaffedff7e dffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffbfef ffcf7ffdff7fffffff9ffde6fffcf17f007fffffffa3efff0c0a7fffffffffde7fffd183 ff927ff79ffffffff3ffffffffffffffffffedfd fff37deff9fef7fcff3fb63fb6ff3fdb7f9deef7cfd6fee7fbbfd3d9f7f9badf7ff76ffe ffffffffffffffffffffffffffffffffffffffffffffffffffffffbff5ffffffffffffff fffffffffffffffffffffffffffcffffffffffffffff2fffffffffffffffffdf7fffffff fffffff7dffffffff7fffffffffffffffffffef5 efa3d97ef37cff69ee7dfcf73fbe6e9fdf3f4fbe9ee7dfcdb3eee7f9dff3fc7ebff7edfc fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff fffffffffffffffffffffffffffe7fffffffffffffff0fffffffffffffffffcf7fffffff fffffff3dffffffff7ffffffffffffffffffed79 fa0ff3df05f56f837cf7c1ff7fe0ffbff077dbf83bedf40fe6fe0efafe05dddb7fe7f77f ffffffffffffffffffffffffffffffffffffffffffffffffffffff7ff5ffffffffffffff ffffffffffffffffffffffffffff7fffffffffffffff5fffffffffffffffffd07fffffff fffffff41fffffffcfffffffffffffffffffdedb b5555555555555555555555555555555557ffeffbfef7fffffbfffeff7fff7fefff767fc fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffff3fffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffdfffffffffffffffffffedfb eaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabf6fbfff7ffffffbefefffbfeffeff7ff7fb7e ffffffffffffffffffffffffffffffffffffffffffffffffffffffbff5ffffffffffffff ffffffffffffffffffffffffffffbfffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffdffffffffffffffffffffeff f7ffffffffffffffffffffffffffffefff77fffbffddfdbedffb7f7dff7fffb6bfe6fbfd fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff effffffbfffffffffffffffdddfbfdfdf7bdddffbbffbffbfefffbefdffdb7ff7feffdfe ffffffffffffffffffffffffffffffffffffffffffffffffffffff7ff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde6d b7fbffffbf7ffbffff7fbddfffbedfff7d7fefedfef3f7dfebffdffcfdeffcfefff7f9bc fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd ef00077fefef7eeeeffbffffffffff0007a066f05036f8381bbc1c0dbe0e066f7fe64afd ffffffffffffffffffffffffffffffffffffffffffffffffffffffbff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe0d f67f77fffffe7f9fffcfffffffffff77774eefe7e7b7f2f2f9f1f8ddfc78fefebfecaafe fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeddd cf7fe7efffffff9fffcfeffeeffffb777797efedeff777b7bb79bbfdedfcdeef7ff7fffe fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd f738f3fc3446619870ccfeeffdffff77775deb6fe6f3f7f3fbfbf3ed7dddfe7efff7f77c ffffffffffffffffffffffffffffffffffffffffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeded ef7077f993324c932449ffffffdbbf07779fefefeff7e7f7fbfbfbf9fdfdfef77fe6befd fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffefd b76036f993124f9327837ffffffffe7f757fcdef7ff77bffeadffefddbffeebebfeffcfe ffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd ef6037e803324b9227c3dffdffffff3b37aeeffbded3ffb77bf6dffcff7b7aff7ff7fefe fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeb9 f76037f9f3304e9327c9fbbfefffff7f777feefff7f6fdfff9fffbddffdffef6ffe7fdbc ffffffffffffffffffffffffffffffffffffffffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff5fd ab7077f993324c93264cffffff7eef0077bba7dffff7ff7ddb7ffefddfffdebf7ffbfefd ffffffffffffffffffffffffffdfffffffffffffffffffffffdffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeed f678f7fc3332619870ce7fefffefff7ff7402fe00017b0000bf00005780002febfe7fcfe f7fffffffffffffffffffffffff7ffffffffffffffffffffefffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed05 ef3ff7bbfdffffffdffffffbbfffff7fe7bfeeedbed5f7effbfadff5fcedfa777ff7fefc fdffffbeffffff7dfffffffffffefbfffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffefd b76fb3ff7f7fff77fbbbfffffbffff77f56dafaffbf7d5fb69dbfbbdddffbedefff5fefd ffefbffffbefbfffbff7dfffbffffeffffffffffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedb5 ef0007fffffbbfffffffddfffffbbb0007bffbf6ffefff7fff7f7efdffbfeffb7ff7fcfe fffffffffffffffffbffffbfffffffefbeffffffffffffeffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeff f7ffffffdfffeffdffffffffffffffffff7fdeffeefb77fffffbffbf7bfbfdfeffe7fefe ffffffffffffffffffffffffffffffffffdf7df7df7df7ffffffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff9fd afffffdffffffffffffdff7fbf7ffffeffadffeffffffffb6defffefdeff7f6f3ff7febd fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeedf f7fdfdf7ffdffeff77bffffbf7ffff7fff7fe77bfbb6dddffb7f7bfdffffdefaffedfefe fffffffffffffffffffffffffffffffffffffffffffffffffff7ffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd7d eaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabd6fffdee7ffff7bfbdebd7bbbdeff7ff7fcfc fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe9d b55555555555555555555555555555555545edddc6f377e13bdff1adeff8ce6effe7fdfd ffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedbd fde7bdfee3defff80001dcf7bfec5bd7b73defff9cf7fecf7afde7b9fef3defb3ff7fd7e fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdead ef6b9ddff6d6b60000000577bb7ef9ddff3ce7773ef7efcf5befefbcdfb6defefff5fefe ffffffffffffffffffffffffffffffffffffffffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedb9 ffefbcfdf7dcf00000000073affe7bdf777dedffaef37bdf737dcdbdfbe7cedf7ff7fefe fffffffffffffffffffffffffffffffffffffffffffffffdfffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffebd bbffbdf7bfde8004a4900006bf6ffbcffffdefeffef7feff7bdfff3dbfffda7affe7fcbc ffffffffffffffffffffffffffffffffffffffffffffffffdfffff7ffbff83c200c631ff fe0ff83ffffffffffffffffffffffc7fffff0ff8c7fffff1fffffff87fffffffe0f1ffff c3fffffffffffffffff007c01007ffffffffedbd feef75bffbfc044000012001bbfffedbef77af7bfdb6dfbbfbfefffdeefffeff3ff7fdfd ffffefffffffffffffffffeffffffffffffffffffffffffffffffffff5ffc7ef3e6639ff fcc7f31fffffffffffffffdfffff7e7ffffe4ffce7fffff1fffffff27ffff7ffce79ffff 93fffffffffdfffffff8e38f19f3ffffffffdefd effbfdef7ed00108892409001efbb7df7bfdebffbff7f7ff7af7f7f5ffbb7eeeffedfefe ffffffbefffffffffffff7ffffffffffffffffffffffffffffffffbffbffe7df3f67f9ff fcc7f31fffffffffffffffdfffff7e7ffffe7ffce7fffffffffffff3fffff7ffcef9ffff 9ffffffffffdfffffffaf3bfddfbffffffffedb5 fbbfd8fdefc01042200080101fdfff9fffbfcfddf7e3ffefe3bfbed9bbffdc7b7ff7fefe fff7fffffbefbffffefbfffdfffffffffffffffffffff7fffffffffff5ffe7df3b67f9ff fec7fb1fffffffffffffff9ffffe7e7ffffe7ffce7fffffffffffff3ffffe7ffcff9ffff 9ffffffffff9fffffff8fb1f99dbfffffffffef9 bffef3bfff0240000488224203fede36efef1eff7d8fbb7de7edfff2fef7f1feffe7fcfc ffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffbffe3df3be6383f ffcfff3ff062380e03c1c00707fc1e0f07fc1c1ce706011180f01fe0c1c041ff8079c1ff 060e040038107073fffcf33fd9dfffffffffedf3 fee807fbb4100488800208100177803fbec01bf7e01efff00dff6807efbc03ef3ff7fdbd ffffffffffffffffffffffffffffffdffffbefbefbefffffffdffffff5fff3bf03e6389f ff0ffc3ff773bce7399ce49f77fe7e2667fc19cce6733331cee63fe09ce767ff807999ff 04e726733999f773fff8c3bffa5fffffffffde07 f7fffdeff80490201120810120ffffeffbffffbffff7eeffff7ffffbffffff7affedfefe f7fffffffffffbfeffffffffbffffff7ffffffffffffffffffffffbffbfff1bf03e739cf ffc7ff1ff373bce3389ce79f37fe7e7673fe79cce6733379cee67ff39ce767ffce799cff 9ce73e773d99f37ffff92f3ff81ffffffffff5bd df7ddf7f6098020484082044082ff7fefffbfdeefffdffff77edfdbedddf7dff7ff7fefe fffffffffffffeffffffffffefffffff7ffffffffffffffffffffffff5fff13f3be739c7 ffe7ff9ff073bce3389ce79f07fe7e7603fe79cce6738179cee67ff39ce767ffce7980ff 9ce73e773c19f07ffff8ff3ff9dfffffffffdeff fbfff7fb8022204000820400800fbdfbefbeefffedbfddedfdff7ffffffbdfdeffe7fcfc ffffffffffffffffffffffffffbefffffbffffffffffffffffffff7ffbfff97f3be739c7 fce7f39ff633bce3389ce79b63fe6e767ffe79cce6738879cee07ff39ce766ffce799fff 9ce73e773999b63ffff8ff3fdddfffffffffed77 ffef7ddf05e08404902040482205ff9fbfefebbbffe77fffbbdffbed76fffefb3ff7fefd ffffffffffffffffffffffffffffbffffffffffffffffffffffffffff5fff87f3fe739c7 fce7f39ff733bce7399ce79b73fe6e767bfe79cce67388f9cee9fff39ce766ffce799eff 9ce73e773991b73ffffaff5f99fffffffffffefd 6efbbcf623880090040809020083ebd7f7fdefffb6f3dbdf7b7bdf3dfffed6befff5fefe ffffffffffffffffffffffffffffffffffffffffffffffffdfffffbffbfffcff3fe739cf fdc7371ff7331cc73188e79373fe4e7633fe788ce623ccf9cee0fff388e764ffce798cff 9c473e7739813733fff8ff8fb9ff9fffffffed9d fff19dfc0e0224027ff0802088211bdeff8cef77c4f7ffe17bfff1bdef68deef7ff7fcbe fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fffcfe0fe6198f fc0f303ff0788c0f03c1c3c707ff1e778ffe7c1ce707dcf080203ff3c1c011ffce79e3ff 9e0e1c0018447073fff07fc7b27f9fffffffdebd dde7bdb09d20811fffffe208220079dfde3dedff9ef6f6cf5aeee7ad7bf39efaffe7fdfe fffffffffffffffffffffffffffffffffffffffffffffdffffffff7ffbfffcfe0fc21a1f ff1ffc7ffffffcff3ffffffffffffc01fffc3ff843fffff0ffef3fe1ffffffff8430ffff 0ffffffffffffffffff27ff0707fdfffffffedbd ff6fbde0380811fff7dffc8200103bcdf76dcfddbe77bfdf7bbfebb9fff7d67f3ff7fefc ffffffffffffffffffffffffffffffffffffffffffffff7ffffffffff5ffffffffffffff fffffffffffffcff3fffffffffffffffffffffffffffffffffefbfffffffffffffffffff ffffffffffffffffffffffffffffdffffffffe99 f7ed9cc274820fffc147ff8088801bdf7f79e6ff9ef7efd77bedefbcef75dedeffedfcfd fff7dffffffffffffffdfffffffffffffffffffffffdffffffefffbffbffffffffffffff fffffffffffff87e1fffffffffffffffffffffffffffffffffe73fffffffffffffffffff ffffffffffffffffffffffffffff9fffffffedbd bfdfbd81e020bfffe0b7fff002240b5fdffdefb7fed5fdbf73ffdfbdfbffdefb7ff7fefe fbffff7dffffffffdfff7ffffffffffffffffffffffffffffffffffff5ffffffffffffff fffffffffffff87e1fffffffffffffffffffffffffffffffffe03fffffffffffffffffff ffffffffffffffffffffffffffffbfffffffdebd fdfff50b9200ffff9c3ffffc200107dbf77feffffff77fff7b7df77dbeeffefeffe7febe fffffffffbfffffffdffffffffffffffffffffffffffffffffffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff5fd eff6fc07408bffff910fffff089001deffddadfb6df7f7fbdbefffddfffeda6f3ff7fefc fffffffffeffffbffffffffffffffffffffffffffdfffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeb5 fbbfb82e100fffff300fffff8004418fbdffcfdfffa3dedff2fbbdf8dbdffcfaffedfcfd fffffffffffffffffffffffffffffffffefbefbeffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf9 befff09d013fffffcec7ffffe100103feff79b7effcefffee7bfeff3fefbf9ff7ff7fdfe fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffef3 fff00038447fffffdaeffffff451003dff401ff7c01fedd00beef807ffbc036effe7fd7e fffffffffffffffffffffffffffffffffffffffffffffff7dfffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed07 f7bff27810ffffffdeeffffff804446f7bfdf7bffef77fffbfffff6db7ffb7fb3ff7fefe ffffffffffdffffffffff7fffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde6d bdffa0e103fffffffdffff7fff00103fdffffdedf7bfdeffef7bbffffddffefeffedfefc fffffffffff7ffffffffffffffffffffffffffffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff fffd41c027ff9ffffbfffedfff11021bf7ebbffffdfbf7fafbdffd6edffd9fdf7ff7fcfd fffffffffffdffffffffffffefffbffdfffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3bf9c7fe5f 3fe3efcf77fffffffffffffffffffffffffffe5f f7ef13920ffe2ffffdfffcbfffc0400eff79ef7fbcfeffde7ffeef7ffeffbdfaffe7fdbe fffffffffffffffffffffefffbfffdffffffffffffffffffffffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001f9cffe40 1ba6e7df03ffffffffffffffffffffffffffed7b deff03405ffe57fff5fffc2fffc40487bffbfbdbedefbdfeef77fb5df7bbafbf3ff7fefe ffffffffffffffffffffffefff7ffffffffffffffffffffffbeffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbaf1cffd4f 3c904c0167ffffffffffffffffffffffffffde7f ffe007123ffe17fff5fffc4fffe11007f7037fff81bfefc0fdffe077bff03beeffedfefc ffffffffffffffffffffffffffffffffffffffffffbfffffffffffbffa0f003803fff040 803803fff001fffffe003fffffffff00e00fffc01c1c3ffe00200e1f83ff80047beffcef be9ebff777ffffffffe3ff83e01fffffffffed37 edee1e007fff0ffffdffff1ffff04081ff6fdf77bffdfbdbbfeeeefffdf6fefb7ff7fcfd fbefbfffffffdffffffffffffffffffffffffffffffbfffffffffffff5c78f3cf9fff8f3 cf1cf9fff71dfffffee3bffffffffc78f3e7ffe38e3cfffee3b3e71f8fffff3bf4003dc8 3f81bf7b4ffffffffffbffe78f1ffffffffffefd ffa64c44ffff8ffff3ffff1ffffc04236e7dfbfdb6ef7f9ff77befbb6fb7bffeffe7fefe ffffefbfffffffdfffffffffffffffffffffffffffffdfffffffff7ffbe7af9efdfffafb ef9efdfff75dfffffeebbffffffffcfcfbf7ffebceb9fffeebbbf79fafffe923e787f9cf 3f3edfa75ffffffffffbfff7df9fffffffffedff bbfc1901fffffffff5fffffffffd1001ffdfffdf7fffddeeffff6fffffefefdf3ff7fefe fffffffffffffffffbffffffffffffffffffffff7ffffffffffffffff5c78fccedfff8f3 cf1cedfff71dfffffee3bffffffff9fef3b7ffe3ee33fffee3b3b74f0fffff3bc74bf1c0 ba88cf0ddffffffffffbffe71fdfffffffffdedf fef8384bfffffffffffffffffffe0490bbffe6fffff3fffffadffffcf6fffcfaffedfcbc fffffffffffffffbffffffffffffffffbfffffffffffffffffffffbffbc7cf8ceffff8f3 cf5cefffff9e044783f3e1080f07f9fef3bffff3ce2fffffebf3bf4f4fffe009df0bfdef 399eec106ffff0380fcbffe73fdfffffffffedfd eff8a003fffffffffffffffffffe4000ffff6ff7ddf6f7ffdbfbfbfdbffbfebf7ff7fdfd ffffffffffffffffff7ffffffffffffffdf7df7ffffffffffffffffff41f8f8d2ffff903 d03d2fffff1f26773be3f3bce667f9fff4bfffe70e47ffffe3f4bf67cfffffbef749fdcf 3bf3ffff67fff33cef23ffe7bffffffffffffef5 fbf06117fffffffff1ffffffffff11246fdbebbfffb7bdddf3beff6dfdfefeeeffe7fefe fffffffffffffffffffffffffffffffffffffffffffffdffffffff7ffb87afac0ffff84b ce1c0fffff3f7f7739e7f5bee373fdfff03fffe07f03ffffe3f03f666fff900277ddfdc8 bff3eef377fffb3cee73fff73fffffffffffed7d bf71540ffffe3fff047fffffffff84007effeefdf7f7fffff9efeffdefbfb6fb3ff7fcfe fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5e78f8ceffffcf3 cf9cefffff1f3e7785e3f93cf213f9f473bfffe3fe39ffffebf3bf62cfffe223f64c7dff d804168377fff83cee7bffe73f0fffffffffdedd ffe0805ffffebffc041fffffffffc0881ffdafefbdd5f7f77bfbfdf57feffe7effedfefc fffffffffffffffffffffffffffffeffffffffffffffffbfffffffbffbe78f8eeffff8f3 efdeefffff9f3e773fe3f9fce27ff9fcfbbfffebfe31ffffe3fbbf78cfffe7fbf5023d00 2fa3fe7377fff33cee7bffe7bfdfffffffffedf5 ede2211ffffe5ff00407ffffffffd00237002f7f8017bec00b7ee005ddf002df7ff7fefd fffffff7ffffffffffffffffffbffffffffffffffffffffffffffffff5f7afbcfffff8fb cf9cffffff1fbf773debfc7ee77bfafef3ffffe3feb8fffff3f3ff71cffff003f9ee7fef ff123e7bc7fff32cee7bfe671f9ffffffffffe05 ffc1043fffff6fe00403ffffffffe1201d5febdbbff7efdffbdfaf7df7f3fefaffe7fcbe ffffffffffffffffffefffffffefffffffffffffffffffffffeffffffbc78f3cffcffaf3 cf1cffcfff5f3e7399e3fcfcd633fc7cf3ff3fe3fe3ef9ffe3f3ff7bcf3fe7fbf7cffdf6 7ef3877377cff30cee7bfe57cf9e7fffffffedfd b752203fffffa7c40411ffffffffe4091f7baffeb766fb9b6bf7efecfdb76aff3ff7fdfe fffffffffffffffffffffffffffdfffffffffffffffffffbffffffbff40708393fcff040 88593fcffc061f11e780fefc0f8ffe38e4ff3fc9fc1839ff84e2fe9b233fe44bf7cffdc7 1cfbae037fcff0880231fecfc71e7fffffffdef5 ff80897fffffd38084a8fffffe7ff0800f7ffdfffffbfffffeffedffbfffff6effedfefc ffffffffffffffffffffffffffffffffffffffffffffffffeffffffffb3f41f83feff452 c2783feffc17ffffff92fdfdffffff82e0ffbfc1fd583dffa0e8fe1b03bfe7fbf7effd3f dff3fef37fefffffff88ff1ff05fffffffffedbf ff88007f9fffeb902410fffff8bff0210ff76fff6efefff7dbffffbbffedbfff7ff7fefd ffffffffffff7ffffffdffffffffffffffffffffffffffffffffff7ff5ffffffffefffff ffffffefffffffffffffe5fcffffffffffffbffffffffdffffffffffffbfffffffffffff ffffffffffeffffffffffffffffffffffffffefd be0244fe2fffe50404cc7ffff95ffa0800bdfee87fdfbc3effbc1bffff0fedbeffe7fcfe ffffffffffffffffffffbf7fffffffffffffffefbffffffffffffffffbffffffffcfffff ffffffcfffffffffffffe1f87fffffffffff3ffffffff9ffffffffffff3fffffffffffff ffffffffffcfffffffffffffffffffffffffedef f40000fe57fff60004887ffff85ff88083fff7f3ddfff16fbffcbf6eda7fffef3ff7fefe ffffffffffffffffffffffffffffffffffffffffffffffffffffffbff5ffffffffdfffff ffffffdfffffffffffffebfa7fffffffffff7ffffffffbffffffffffff7fffffffffffff ffffffffffdfffffffffffffffffffffffffdebf fd4849fe17fffa0004203ffffc3ffc1207f7bdf7ff6dfbfbeb7dfffffebb77feffedfebc ffffdfffbf7fffffffffffeffffffffffffffffff7fffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff5fb f90201ff0ffffd0304103ffffe3ffd0046ddff66e7ff72f7fff1f9bb7cfdfdbf7ff7fefd fbfffffffffff7f7ffffffffffffffdfffffffffffdffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdeff ba204bff8ffffc8204001ffffffffe24039fefe7edfff7f77f7b5bffddfddff6ffe7fcfe ff7ffffffffffffffffffffffffffffffdf7dfffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedb7 fa0403fffffffe4664001ffffffffe0123d77bedefbbe773dbfbfbeffd6cff7f3ff7fdfc fffffbffffffffffffffffffffffdffefffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffefd da4093fffffffe6f24001ffffffffe9003dffeef6feef3f7ffb9fb7b79fdefdefff5fd7d fffffefffffffffffffffffffffffffffffffffffffffffffffbff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7f fa0407fffffffe2624009fffffffff0443dfefefeff7f7f7f9fbf3fdddfdfef77ff7fefe fffffffffffffffefffffffffffffffffffffffffffffffffdfffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd fc1127fffffffe13ba001fffffffff4101fdebffedf7ffeffb7ffffdfffffafeffe7fefe fffffffffffffffffffffffdfffffffffffffffffffbffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd dc4007fffffffe0ba2001fffffffff10116faf77ff75bf7edbdedf7cff6dbebf3feffcfc fffffffffffffffffffffffffffffffffffffffffffefffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeb5 fc0217fffffffe0dfa003fffffffff0441ffeffdbfd7fbfbfbf7fbedddffeeeeffebfefd ffffffffffffffffffffffffffffffffffffffffffffbffbfffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd fc908fffffffff04fa021fffffffff8001fb6ddff7f6ffdff9fdfffdfff7faff7ff7fefe fffffffffffffffffffffffffffffffffffffffffffffdffffffffbff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd d8000fffffffff027a803fffffffffa4900027e00017b0000b780005bc0002befff5fcbe ffffffdfffbffffffffffffffffffffffffff7fffffffffffffffffffbe18ffffffffc7f 803fffffffffffffffffffffffe3fffffffff8ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed05 f8492ffffffffe0d7aa03fffffffff8000bfeeeffef3f5ff6bfbddb9f57efefb3ff7fdfe fffffffbffffffffdfffffffffbfffffffffffffffffffffffffff7ff5f78ffdfffffe7f cf9ffffdfffffffffffffffeffe3fffffffffeffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeb5 b8000fddffffff0cba813fffffffff9110f7afab6fd7d76dfbdb7ffd7defbaeeffe7fefc ffffffffbff7efffffffffffdffffffffffffffffffffffffffffffffbeffffdfffffe7f efdffffdfffffffffffffffefffffffffffffeffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd f9248faafffffe8ada13ffffffffff8040fdf7fffbfeffffdefbf6efddfbff7f7ff7fcfd ff7fffffffffffffffff7ffffff7fffffffffeffffffffffffffffbff5effff9ffffff7f cedffff9fffffffffffffffcfffffffffffffeffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdebb d8000f777fffff874a1bbffffffbefa408dffdeeff77edfbf7bfbffbffbef7faffedfefe ffffffffffffffffff7ffffffffdf7ffffffffbffffffffffffbfffffbef8c0062381e7f cef070107fc188e0301f07003fe307f88e03f2f0607e038183c04083060fffffffffffff fffffffffffffffffffffffffffffffffffff5ff f8445ef7bfffffb92aeabffffff5d7c100f7bf7fefff7fdf7ff7efbf77ffbddf3ff7febe ffffffffffffffffffffeffffffffdfdf7dfffff7ffffffffffffffff5dfae4df3b99e7f d2e739ddffddcef399ce7390ffe377fcef3bc8e6727f39c93998e43376efffffffffffff ffffffffffffffffffffffffffffffffffffdef7 f9011effbfffffe012e5bfffffeebbc8107eefdbbedbf777ddfefdefff77fffeffe7fefc ffffffffffffffffffffffffffffffffffffffffffffffffefffffbffaffcef9fbbf9e7f c0f73dd9ffcdcef389c6739cfff337fcef3b9ce733ff38cf3999e739366fffffffffffff ffffffffffffffffffffffffffffffffffffedbd d8101effbffffe4f4aef7fffffef7bc244fbfbfefdfeff7eff6fbf7eeddfb7bb7ff7fcfd fffffffffffffefffffffffffffffffffffffffffffffffffbfffffff49fce79f3bc5e7f cee7b9d9ffc1cef389c6739cfff307fcef3b9ee033ff38cf3999e701060fffffffffffff fffffffffffffffffffffffffffffffffffffe7f f8445effbffffd6b8ccfdfffffeffbc000ddfef9f6ffdcff77fe77bbff3edefeffedfdfe fffffffffffffffffffffeffffffffffffffffffffffffffffffff7ffabfee7db3b99f7f dee739d9bfd8cef389c6739cdff363fcef3b9ee7f3ff38cf3981e73f62c7ffffffffffff ffffffffffffffffffffffffffffffffffffedaf f9001effbfffffdde48bcfffffdffdd11038dfec1c37f60a3fbb071fdf838ff73ff7fd7e ffffffffffffffffffffffffffffffffffffffffffffffeffffffffff53fcf79bbb9967f cfe73bddbfdccef399ce739cdff373fcef3b9ee7b3ff39cf39a7e73d72e7ffffffffffff ffffffffffffffffffffffffffffffffffffde1b d8091dffdffffebcda26f7ffffdffdc00000f7bb027f7d821dfea00ef6600ddeffe7fefc ffefffffffffffffffffffffffffffffffffffffffffffffffffffbffa7fce79339da67f cfea39d93fdccc73198e239c9ff373fcc73b9ee333ff31cf1183e71972e67fffffffffff fffffffffffffffffffffffffffffffffffffd9f fa201bddeffffef038a7fbffffddddc924847df8c07bdc603fed209fff184f7f7ff7fefd ffffffffffffffdffffffffffffffffffffffffffffffffffffffffff47fa43d7888467f 93f0f0267fc1e230381f070e3fe107fe22008c78e1ff03878380c3c7060e7fffffffffff ffffffffffffffffffffffffffffffffffffee1f b8825bddeffffcf51b93fbffffddddc00001ff7380eff9c0777ce83ddf7017fafff7fcfe ffffffffffffffffffffffffffffffffffffffffffffeffffffffffffb7f87fffffffd3f 83fffffffffffff3f9ffffffffe1ffffffffe23fffff3fffffbcffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd3b e8081bffeffffcfcb793fbffffdffdd24043effaa17f7d50fffeb06f7b543def3fe5fdbe fffffffffffffffbffffffefffffffffffffffffffffffffffffffbff5ffffffffffffff fffffffffffffff3f9ffffffffffffffffffffffffff3fffffbeffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee6f f8411dffeffffdfd3632fbffffdffdc004877bd8c3fbec61b6ee20fffe187f7effeffefc fffefffffff7ffff7fffffffffffffffffffffffdffffffffffbfffffbffffffffffffff ffffffffffffffe1f0fffffffffffffffffffffffffe1fffff9cffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfb fa101dffdffffdfd4169e7ffffeffbd12003fee583def2c1ffb968bdedb06ffb7ff7fefd ffffffffbfffffffdfffffffffffffffffdfffffffffffffffffff7ff5ffffffffffffff ffffffffffffffe1f0fffffffffffffffffffffffffe1fffff80ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff d8024effbffffdfd4d744ffffff7f7840887dfe842ffb421effa00ef7d087bdeffe7fcfe ffffffffeffffffffdffffffffffffffffffffdffbfffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdddf f9200f3e7ffffdfcaab97ffffffbef80000ef76307f7f1837ef8e1fff460bef73fedfefc ffffdffffffffffffffffffdffffff7fffffffffffbfffffffffffbff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee7d e8048fc1fffffd754aa5bffffffd5f91401fffe80fbdf407fbda03bbbd01fffefff692fe ffffff7fffffffffffffffffffffffefbffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdef 70200ffffffffe79555abffffffe3fc0141bbdc40dff6205dff103fff881f7dd7ff6aabe ffffffffffffffffffbffffffffffffffffbfffffffffffffbfffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff f9092fffffffff852aa01fffffffff84011fefea8f6ff5a7f77ac2eedd51befaffe7fffe dffffffffffffffffffffffffffffffffffeffffffffffffffffffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddbb f8000ffffffffffd94484fffffffff910116ff6987fdf4477fda63fffd31efbf7fedbffd fffffffffffffffffff7ffffdffefffffffffffffffffdfffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff dc9087fffffffffd09028fffffffff00019fbbf0cdffb8e7ddfc33ddee29fbf6bff7f47e fffffffffffdffffffff7ffffdfffffffffffffffff7fff7ffffff7ffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdf7 fc0427fffffffffe005527ffffffff22100fe6fc0763ee01f9f7017c7b807e7f7ff7fbfc fffffffffffffffffffffffffffffffffffffffffffdfffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeedc bc4007fffffffffca5aaa7ffffffff080006f7ee07fafb03edbd81eefec0df3affe6fdfd fffffffffffffffffffffffffffffffffffffffffffffffffffbffbffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffd9fe ee1247fffffffffc255557ffffffff822203c7bd81e3fe8071ffa078dfd0347f7ff7fb7e fffffffffbfffffffffffffffffffffffffffffffffffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe68 fe0013fffffffffacd54a3fffffffe2001401dfa400fdd6006eea003f74801eefff7f3fe fbffffffffffffffffffffffffffffffffffeffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed03 fc4903fffffffff8a2aa8bfffffffe081181ef74e076fa707ffd383efe9c1efb3fe76ffc ffffffffffffffffffffefffffffffffffffffffffffffffffffffbff5ff9fcc02673ffc fe7ffffe7fffffe07f81ffffffffff8ffffffffffffc7fffffffffff87ffffffffffffff 8fff8ffff87ffffff1ff1fffffffffffffffde3f e40043fffffffff94d54b3ffffffff0201e07fd0f07fe8581b743c17fa1e0fbcfff7f77d fffffffffffffffffffffffffffffffffffffdfffffffffffffffffffbff9f8cfe673ffc fc7ffffe7fffffe23f88ffffffffffcfffffffffffff7fffffffffff27ffffbfffffffff efffcffff27ffffffdff1ffffffffffffffffd1b f00409fffffffff08ad349fffffffc4041e1f780b0ddc0797fe01c3fb00e17f97fedcffe ffffffffffffffffffffffffffffffffbfffff7ffffffffffbffff7ff5ff8f9cfe7f3ffc 7cffffffffffffe73f9cffffffffffcfffffffffffff7fffffffffff3fffffbfffffffff efffcffff3fffffffdffffffffffffffffffee3f b42081ffcbfffff2955451fffffffc1001e9bfc0f4ffe0787ff03d3df81e9dfcfff7db7e ff7fdf7ffffffffffffffffffffffffffffffffffffffffdfffffffffbffcf1cfe7f3ffe 78fffffffffffffe3ff8ffffffffffcfffffffffffff7fffffffffff3fffff3fffffffff efffcffff3fffffffdffffffffffffffffffdd37 f90810ff97fffff282a955fffe3ff80011d1fdf4f0f77a7275bcb82f7e5d1fdf3fe7dffe ffffffdfffff7fffffffffffff7fffffffffffffffffffffffffffbff5ffc71cfe6703fe 38e0c30670703ffc3ff0ff810380ffc1f07fc47060f97fe060ff81fe0c1c060ff800783f 2e23ce0fe0e0c0ffe5c018420c083fffffffee3d ff8084ffa5fffff926aaa9fffcdff9408f07ef7f87bfffc9ffffe4ffdff07f7efff6ff7c f7eafbfadaabeb6db6db6d5b6bd55555dadb7feab6db556fdeb55bfffbffc73c066701fe 39c0c32662311ff87fe1ff3133ceffc4e67fe7774ce47fe66eff99fe09ce773ffce6739c 8f3bcccfe0ce64ff91e41cecce4bbffffffffdff 6f92207f82ffffe3055413fffe2ff0000fff7fefffeddbffdf77fffbfbfffbf77fefdbff ddbfdeffffff7fffffffffffffffffffffffedbffffffffd77ffff7ff5ffe63c066731ff 31cc4f3e67331ff83fe0ff3bb3ceffce673fe7734e4e7ff666ffd9ff39ce773ffcee7399 cf3bcce7f3ce67ff39e79c6ce679bfffffffeeef fb80027fd3ffffe422b583fffc2ff2200fffddfbfdfffefefbdf7fdeff7ffefeffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffe67cfe6739ff 33c04f0667331fff3ffcff3f83ceffce203fe770404f7ff060ffc1ff39ce773ffcee7399 ef3bcc07f3ce67ff3de79e4c06783fffffffddfb bfd1103fe3ffffe804a83ffffe9fe8009dddffbf6f7dbfb7bffbedffefef6fdb7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fff27cfe6739ff 93cfcf8267331fff3ffcff3f33ceffce27ffe7760fcf7fe66c7f99ff39ce7737fcee7399 ef3bccfff3ce67ff3de79e5cfe7b1ffffffffebf eec4013fffffffd38003bfffff1fe0801fff7befffeff7ffeefeff7bbdfbfbfebfffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfff27cfe6739ff 93cfcfe267331fef3fbcff3d32ceffce27bfe7770f4f7fe64e7f997f39ce7737fcee7399 ef3bccf7f3ce67ff3de79f1cf67b9fffffffedef ffe1241fffffffdfbf7ebfffffffc2023777defdddff7dddffdfdfdfffbeffbf7fffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fff0fcfe6731ff 87c04f0260331fe23f88ff1930ceffce633fe637064f7fe60e7f987f388e7727fcee7119 ef31cc67f3c467ff3de79f3c667b9fffffffdefb fb60009fffffffdfbf7fbfffffffd0003fffffbfffbbdfffbdf7fbfedbffeefaffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfff0fcfe6703ff 87e04f0670731fe07981ffc708803fcc78fff11071c63fe100ff847f3c1c018ff8003838 c788cf1ff3e0c3ff18c30f3f1c383ffffffff5ff dff4480fffffffffbf7ebfffffff84047ffff7ffffffffffef7ffff7ffffffef7fffffff fffffffffffffdf7fffffffffffffffffffffffffffffffffffffffff5fff8fcfe6707ff c7fffffe7ffffff8f9e3ffffffffffd0fffffffffff11ffffffffffe1ffffffffffffffe 23ff87ffe1ffffffc47f0fffffffffffffffdeef fff00127ffffffbfffffffffffff01007dddbdf777eeffeffffefffdfef7fb7ebfffffff fffffffffffffffdfffffffbfffffffffffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd fff89003ffffff7ffffffffffffe1000efffffffff7fbb7dfbdfddbf5fbdbfdf7fffffff ffffffdfffffffffbefffffeffffffffbffffffffbfffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffebf bdba0243ffffff7fffffffbffffe4004ff77777ddbfbffffdeffffefffffeffeffffffff fffffff7ffffffffffbefbffbffffffffefffffffefffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf7 fffc1009ffffdeffffffff6ffffd0811fbffefefffd7feeefbfdbbfdffeffcf77fffffff ffffffffffffffffffffffffffffffffffffffffffbffffffffffffff5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd f4008440ffffaefffffffe5ffff80003a0006df0003768001bdc00056c0006bec0000000 100001280000044a4944842540000000410000000aa00010000000004bffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff50d b9ee01047fff37fffefffe17fff22003cfddcfe77ef3f3ffdaf9fefdfcfb7eff55555555 5555555555555555555555555555555555555555555555555555555555ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde6d fb7f10103fff47fffefffe27ffe08027ceffeeebf7f7f5ddf3bbefbcfdbfeef6aaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfd fbfb44411fff0bfffd7fff0fffc80005dfbbe7efdfb7777ffbf37ffdddfdfebeffff7f7f ffbfbfffdfdfffefeffff7f7fffbfbfffdfcefffffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd b3ff80040fff8bfffd7fff8fff82008fdfffedeffff5f7fff9fbfffdfdfffcfeffff7f7f ffbfbfffdfdfffefeffff7f7fffbfbfffdfd77ff7fefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddf9 fdbfd12047ffc7fffbbfffffff20001ffffeefddfbf7ffeefb7ffdedbddfbeb7ffff7fff ffbfffffdfffffe6fffff6fffffbfffffdfee555bfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeebd ffefe40903ffffff8383fffffe090116edefaeff7ee7b7ffbbfb6f79eff7eefeffff5fff ffaffdbfd7ffeeeff6ddf7eefffafffffd7f77fffbefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfd fffb708010ffffffbffbfffff880085fff7fefefdff5fdbbebbffffcfefdfeffddef77dd b7bb6ff6ddfb7fadffffd5ffb77bbb6db5fef5b6bedfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeef5 defff024407fffffcfe7fffff020005fdffdebfbf7b7fffffbfffbfdffbf7a6fff7d7eff febfffffdfdffbefdff7777bffebfffffddf67ffffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffff7ffffff ffffffffffffffffffffffffffffffffffffddbd f8000200123ffffff7dfffffe200044dc0002ee0001770000af00005dc0002fe00017f00 00bf800057c0002ee00017f00009f80004fcf6aabfdfffffffffffffffffffc7ffffffff fc7fffffffffffffc3c00c1e107f071fffffee003fc183ffffffc7027001fc1833ffffff ffffffffc3ffc7f1fffffffff8fffffffffff605 bbdf7c89000fffffecdfffff888021dfdbefcfeffff3d7ef7bbadf6cfdfffebabfff6f7b ff9bb6df5edfffe7edbff5f7fdfb6bfefdf567ffefeffffffffffffffffffff7ffffffff fc7fffffffffffff93e3ce3f79fe739fffffcee3bff1cffffffff78e771dff1cf9ffffff fffeffff93f7e7f1fffffffffcffffffffffddfd e9fbdc004243ffffdb5ffffe000003db5f7ee7af76d7f37bf3fbf7fdb5dbb6feeded3d5f 6dbf3ffbdfcd6dafa7fb67576fbbfad7b5bcf5b6bbdffffffffffffffffffff7ffffffff ffffffffffffffff9fe3e73ef9fe779fffff9ee3bff99ffffffff78e371dff99f9ffffff fffeffff9ff7e7fffffffffffcffffffffffeed9 ff7ff7240810ffffd35ffff8910047bff7fffdedfffeffffdeeffffffefffdf7fffffff7 fff7ddfeedfffffdff7ffffdfff7fffffdff67ffffcffffffffffffffffffff7ffffffff ffffffffffffffff9fe3e33ef9fe7f9fffff9ee3bff83ffffffff78c371dff83fcffffff fffcffff9fe7e7fffffffffffcfffffffffffdff ffdfff8081043fffcfbfffe004020feffeffbffffff7bf7ffffdbdedffffffbfbffff77f ffbffffffff7ffeffffffbffbffedb7fff6ef6aabfdfffffffffffffe0701f97f01c0c01 0c70402304083f8307e3e31ef9fc039e083fbfe3801c7ff0301f978d3f1801c7fcf3f01c 0e003fc107c1e0f183f0181e0487ffffffffeef7 bdffffc810410fffffffff8240001efdafdbeff77fbff3fefb7dff7fde6f7ffd776dbf9f f6fbd7dfdeedff7ef5ffdf73fddffdffeffb67ffffefffffffffffffe679de47f9ce4993 bc666666664bbf3907e3e39df9fc039ccbbfbfe3c7dc7ff339de478c1f1c7dc7fcf3f9cc cf24ff9c07e7e271bbf9c99cc487ffffffffdd7f f8fb6de0841041fffffffc4800113fffcbfffee3edfdf2efdff97fdf7cfff6de7fffff3b bfbf9df6f7cfdbdfc776fff2fff6f9bb7bfcf5b6bddffffffffffffff679dce7f9c679c1 be67266e7279bf399fe3e38df9fe739ce1bfbfe3c7de3ffb39dce78b9f1c7de3fefff9c6 cf3cff9c9fe7e7799bf9c59cec9fffffffffeedd fbbffdf20100001fffffc00120007b97dff76befffd7f7fbfbdbdff9ddfddefedfff377f ffb7bfffdfdfffebe7ffb5f7f77bbbfffdbd67ffefcffffffffffffff079dcf7f9c67809 3e60302e02783f399fe3e389f9fe739c003fbfe3c6dd1ff839dcf78b9f1c6dd1fefff9c6 0f3cff9c9fe7e77983f9c41cfc3ffffffffffdfd dbfc0d7c902224007ff009100009c0dddde06eeef03777f80afbf80dfcde06eefe017f6e 81bdaf405d96e06fefd02777781bfafc0dfcf6aabfdfffffffffffffe679dcf7f9c679f9 7e67f10e7e7b1f399fe3e3cbf9fe739cfb1fbfe3c6f91ff339dcf781071c6f91fefff9c4 cf3cdf9c9fe6e779b1f9c19cfc3c1fffffffee0d f9f9edfc040881200000400200439fdfcfdfefe7ebf3f577fbfafbfd7dfdfe7eb6ef6f7f 5bbf3fbfcfdfceeeedeff7f3f7fafbd9dd6d67ffffefffffffffffffe659dcf7f9ce79ec 7e67b11e7a7b9f399fe3e7c3f9fe739cf39fbfe3c0fb8ff329dcf78f3f1c0fb8fefff9cc cb3cdf9c9fe6e779b9f9c994f41fffffffffddfd bbdb79dd40801009208a11200107bdd7ded6e7edef77b7f37adbfaddedbd76f6febf7b5f 7fafbbb7dfdbdfe7efedf5f6f5dbb3fbfdfcf5b6bdcfffffffffffffe619dcf7f98e78cc fe63399e327b9f119fe3cfe7f9fe739c639fbfe3c0f7cff309dcf78f3f1c0f7cfcf3f98c c33c9f889fe4e779b9f98984648fffffffffee6d fb7bfcfd8822048004200408080fafded7dfef6fcff5e7f7fbf3bbfdfdedfefcfeff7f77 773f9fbddddfddede76f77b7b7fbfb7bb9fd66ffefdfffffffffffffe1100463f81c3e3c fc38fb9f8c383f839fc00fe7f07e739f183fbf80c6c381f0800463007c046c381cf3f81c 221e3fc19ff1e77083f818471ccffffffffffdfd fbfbfdbde208401220024080023bbb9fdf9eedefe6f7f5b6dbf9fbb9b9f9debe6edb5e7f 3fbbb79fd7cecf6f6fe7f7f7e779f9f9fd6cf7aabfefffffffffffffffffff11f9ffffff fc3fffffffffffff0fc03fe7f07c210fffff9f80c6c381ffffff11007c046c381cfbf9ff ffffffff0fffc010fff9fffff807ffffffffeedd dafadded788211008240100020bfbfdbdfd7efe6efb7f7f7f37b79fcfd7cf6fefefe7f5f 6f9fbfb7dfdfdfefedede6f3f3dbbbbb7df975ffffdffffffffffffffffffffff9ffffff ffffffffffffffffffffffffffffffffffff9fffc7dffffffffffffffffc7dfffdf3f9ff fffffffffffffffffff9ffffffffffffffffddfd f7f3fdfbfc0080480809040101ff9fcfdfdf66ffeff37ff3f9fffb7dfffdfceffabf77ff 7bbfffbd9effddebffeff3fff7fbfffbdcfee7b6bdcffffffffffffffffffffff0ffffff ffffffffffffffffffffffffffffffffffffcfffc7dffffffffffffffffc7dfff9f7f0ff fffffffffffffffffff0ffffffffffffffffee79 fffbbd7ffd1004022040000047fdbddefddbefffe6f7f7f77bbfebdddffdbe7ffeef3ffd 7fbb7ebfd7bbcf6edfaf77bff6fb7febfdbf76ffffdffffffffffffffffffffff0ffffff ffffffffffffffffffffffffffffffffffffefff801ffffffffffffffff801fff3f7f0ff fffffffffffffffffff0fffffffffffffffffddd bfb9fdffddc21120091200241fdfb7dfff5fef6f6ff6fed7fbfbfbfd7dedfededeff7eef 5f9ff7afdfff5feff7ebf7edb7f3edfb7dfce7aaafefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffe7ff801ffffffffffffffff801fff7ffffff ffffffffffffffffffffffffffffffffffffeefd edf375b6f9f04008800001003ef73fdbb79debfbcbd7dfe6fbdfb2fdef797ef7f4bf77fe 7bb7df3bddef9be7fecff6ffe37affb3ddef75fffbcfffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffff7ffffff ffffffffffffffffffffffffffffffffffffddfd ff67f9ffb3fc02022200482137fc6e8fff2f4eff9ee3fbc7d2fde7e9fff3ecfdf9fa5fb8 ff3efc7e8f7b3ecdbf9da7bfcff3dfe5f17ee76dbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeed9 fe0fdaef05bd88200849000f7f607fbdb07fdfd83fefbc1df7be0779bb05fdbf02eefdc1 6e7fe0dfbff06fdfe82febf81fd7fc0ffbdb77ff7fefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdf3 b7f7fffffffff0888200107fdbfffffffeffb7ffdfbefffffbeffffffffffbeffffeefff ffdb7ffffdffffdfffffffdfeffb6feffdfee555fdcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff fffdfbb7eff7ff00002407fefffffb5bffefff7efff7dfbfdffffff7eeefbefffffffbff ffffdfff6f7f7ffb7f7f6eff7effffffbf7f77ffbfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddfd ffbfdffefffedffc0001ffffbfefdffef7fdedf7fdfffdfef77edfbf7fffffbfb7bbbfbb fb6ff6fbfff7fdbffbfbffffffeeff7defeee76d7fefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffadf bdfffeffbedfffffffffffb7f5fdffffbf7f7fffef6efffffdfffdfdffdef7f7fffffffe dffbffefbbfdefedffffbb7dfb7fbfdffbfb75ffb7cfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf7 ff7b75dff7faeedfff7feffdbfbf7b57fbefebfb7ff3fbb77bddefeddef7befdeeee77ef f7bfff7fdfbffbefef6ff7efdfdbfdf77d7ee756fddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde7d fc1c0dfe0e067f07033781819fc1c0dfe0e06f707037b8381bfc1c0dfe0e02bf07033e83 809f81c0d7e0606ef07017f83819dc1c0dff77ffbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd0d d9d9fd78f8fefe7e7f7f3f3fb78f9fddcfcdefe7c7f7f3f3db79f8f9bcfcfefe7e7f7f3f 3fbb9b96ddcfcee7e3e5f372f3fbf9f9fddce5b57fcfffffffffffffffffffffc7ffffff ffffffffff8ffffe3ffc7fffffffffc7fffffffffffffffffffe3f1ff87ffff8307f0c18 63fffc7fffffffffffff1fffffffffffffffeefd f3fbddddbd6eeef6db773f77bfbbadcfcedfcdcfedb6f777f3dadbbdedddbeeeb6f77776 7fbfbfbfdfdbdfedeeeff7f7e7bb7bbb6cfd6effbfdfffffffffffffffffffffc7ffffff ffffffffffcfffffbffc7fffffffffc7fffffffffffffffffffc3e1ff27ffffe39ff8f3e e3ffff7fffffffffffff1dfbffffffffffffdded faf37dfdfdfebebcff3f773dbdbfbfdbdf9be7e6efe7b5e6f9fbfbfcfcfdeebefebf3f3f 5bb7b73bcf9fdbef6fe776f5f5fbd9fbfdb8f7adfbefffffffffffffffffffffffffffff ffffffffffcfffffbfffffffffffffffffffffffffffffffffff3f9ff3ffffff33ff8f3c ffffff7ffffffffffffffdfbffffffffffffee79 7bfbfd7dfdfef6feff6f7f7fafbfbfdedfdfefefeff3f7f7fb7bfbfdbdf9feeefeff6f7f 7fbdbfbfdbdf9fefefeff7b7f7f9fbf3fdfd65ffbfcfffffffffffffffffffffffffffff ffffffffffcfffffbfffffffffffffffffffffffffffffffffff3f9ff3ffffff07ffce1d ffffff7ffffffffffffff9f3fffffffffffffdfd fffff9eeefbcfdff7f7effffbf7dbf5fbfffeefff7f7effffbfbfbfdfffffcfdfdff7fff ff9fbfffdff7ffabef7ff7ef7febfffdfdfef7b57fdfffffffffffffe0780c1fc60fe07f 8303000e03ce0ffcb0847f01c0c10847040230607e0c0601010f3f9fe0c1c0ff8fffce9d e301f970601107e011811060f0603fffffffeefd bbddddfffdeebfefed7fb6ef37effbcff6fb67ffbef6ffbbbbbedfb5eddf7e7f6fed7bbb bebffddb5efdedeefbdee5fff77bbbbfd96f66ffddefffffffffffffe673199fc6efe67f bb339ccf39cccff239dc7f9ce4999dc6666666727eee7333313f3f9fe09ce4ff8fffc699 e39de467333377f333c919f3e673bfffffffdddd fefffdbbbffeff7bff37fffbbfffefdbffdfededffb7fdffebfffefd7ffbeedfff7f5fff f7bbefffd7bf7feffff7f7fbbff9ffff7dfcf7ab7fcffffffffffffff67339cfe66ff67f 9bb39dcf38cce7e738de7f9c679c8de67266e733fe6e7133787f3f9ff39ce7ffc7ffe48b f39dce67333737f337cf99f3e733bfffffffeef5 fff775fff7faefffbf7fff7fbbbb7edfeff7efff77e6efeefb7f77fdff7ffefffbf77eee ffafff7edfefffa7ffffb77ffddb7edbfd7f66ffbfdffffffffffffff073380fe60ff07f 83839dcf38cc07e7bc9e7f9c6780c9e60302e033fe0e71817cff3f9ff39ce7ffa3ffe58b f39dcf67381707f817cf99f3e033bffffffffdfd b555555555555555555555555555555540002f600017f00009f00005dc0002ec00016f00 00bf00004fc0002ec00013f0000bd80005dcf7daf7efffffffffffffe67039ffe6c7e67f b1339dcf38ccffe7bcbe7f9c679fcbe67f10e7f3fec675ac7e7fbf9ff39ce7ff23ffe1c3 f39dcf67388763f887cf99b367f3bfffffffee05 eaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabefdabeffff3777ffbbbffb4f5ddbafedffe7f7f db3bb7efdddfedefeb7bf7d7dffbfbff75fd657fbdcfffffffffffffe654f9efe6e7e65f b9329dcf39ccf7e7be3e7f9ce79ee3e67b11e7b3ffe77388f83f3f9ff39ce7ff71ffe1c7 f39dcf67388f73f88fcf99b367b3bfffffffddbd f7ffffffffffffffffffffffffffffffd7bfefcddb77f3db6bfaedfdfdfffe7efb6f3d76 ffbfbefb5fdb7f6defded6f6fbb3f3ffddf4f7eb7fdfffffffffffffe61078cfe6e7e61f b9309dcf31cc67e7be7e7f98e78ce7e63399e333fef663cce33f3f9ff388e7fef9fff1c7 f39dcf623ccf73fccfcf99326333bffffffff6f9 cfffffffff7ffffff7feeffdffffffffbff7deffffdfdfffffefff7fbdbeefdb7fffefbf efeedfffeedfffdfdfffffbbfffdbf5ffdbf65bfffefffffffffffffe1101e3fc20fe11f 8308000703cf1fe31e7c3f81c3e3e7c38fb9f8e1fe0e07dde38c0e47f3c1c3f8703ff3e7 e10046307dcf07fdcf870c78f8e00fffffffdddf f77ffeef7fff7dddfeeffbffbfffffdddbfdf7bbfff6fdfffb7f7fdbeffffbffdff7fbff fb7ff7dffff7dbf6f5f7fbfefefffbf6fffaefed5fcffffffffffffffff79fffc3ffffff ffffffff3f87fff88ffc3f9fffffffc3fffffffffffe7fffffffffffe1fffff8703ffbef e1fff11fffffffffffff0ffffffffffffffffeff ef0007fff7efdfff7ffffedfefdf0003bfffffefedffbff6dffbfffefbf7bef7fdbefeef 7fddfffbbdfffffffffedfeff7f7dfffbbdf76bffbdffffffffffffffff7dfffffffffff ffffffff3fffffffffffff9ffffffffffffffffffffeffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7b d77dd7fcffffcffffffffffffbf7abbbcf6f6dfdff77f7fffadff6fdff7dfebeffff5fff dfbfbf7fd7dffeefbffff77fbfbafefffcf6ebeabfeffffffffffffffff39fffffffffff fffffffe1fffffffffffff0ffffffffffffffffffffc3fffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdedd ef5ff7fcfdfffffffffdffffffffbbbbbff9ef7fbef6fddf7bf77f9ddfffdeefbf6777bb f3bbefd9df7bb5ededdaf5fbfd7bf7edbdfd677fffcffffffffffffffff01fffffffffff fffffffe1fffffffffffff0ffffffffffffffffffffc3fffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedbd f778f774f872493ff7bf7ff7ffffb9bbd78de7efc6e7dfe15bffd1bcf6f84efbf46f7dfe 379eff1bdfff8d67ffc6b7dfe37bbff19dbef5f6bbdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffebd ab7077fc7324488fffffffffffff83bbbf3cedfb96f5f7cf72dde7bdffb3defff9ef7f7c f7bff67bcdb73defbf9ef6f78f39eee7bdef675fffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedad f76027fcf306419f7ffffdfeff7fbfb3df3defbfbe777edf7bffedaddfe7dcdf7ae66fdd b5b7bcfadffe7dededaee7fdd77bfbebbdfaf7fabfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdebd ef6033fcf326499ffdffdf7ff7ddbfb9bb7defef9ef7df9b7bbbefbcfdf5de7dfbef7bf9 f7bdfedbdbff6defffbcf3bfdf7b7fef397f656fbddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedbd b760377cf322499fffefffdfffffbebbcffde6fdfef7f7fe79feefbdb7ffdef7dfef3eff f79f7ffbdeb7f9e777fef7efff6bdf7fbddeefdeefefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffab9 ed7077dcd324489bdffbffffffff803bbfbbafbffbe6fffffbefff7dff7fdefff7bf7fde efbfeff79fffffafffbff6fddef9fbdffdfb76fb7fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddbd f738f7fc0872499ffffffffbbffebffbddffeff7bf73deefeb7f7bf5efeefadb7dfb77ff febbfb7dd7ddbdeeddfbb7bff7fb7ff76d7eebafffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffefd af7ff7fffffe7ffffeff7ffffdff9ffbafeecdfdefe7fbfb73fbdfb97dfffcfffffe3dbb b72fbfff9dffffcbff7fe7f6fdd3eefff9db67fabdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffede9 f76ff7fbfbe67ffffffff7ffffefb7dbdf7f8fdffdcf7fbfe6dffff3ffbbd9beef6cffff fe7deeef3fbbef1ff7ef4dffbfe7ffbdf3fef6df7fcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde73 ef0007fffef0dfeeeffffeffffff8003bbc03ef7601bf7f00ffef005dbfc01f7fe01f7ed 00bfff8077ff401dbfe017dff00dbbe806f765fbefdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed03 b7ff7f7f7fbffefffbefffdeefffffffdffbf7ffffffdeff7bb7bf7ffedfff7f6ffedf7f fff77bfbbf77ffffeefffef6feffffffb7bcf7aebfefffffffffffffffff1ff1fffffffc 7ffffe70783fc71ffffffffff87f803ffffffe3fffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeff effff7dffff7fffffefeffffff7ffffdbbbeffbdfb6efffbefffffdedfffbfdbffeffdff b6ffdffffbdffbfbfbfddfffffb76effffff66fffdcfffffffffffffffff1df9fffffffe 7ffffe67339fe71ffffffffff27f1e3fffffffbfffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff f7fffffffffdefffffffbffffffbfeffdfefddefdfffedffff7dfdf7fbfdeffefb7fbfdf ffddffdddff7dfdf7fb7fdddf7fffffb7deef7dabfdffffffffffffffffffdf9fffffffe 7ffffc67339fe7fffffffffff3ff3f3fffffffbfffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdedb caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafffeffffff37fef79efeffd7f6ffcffbffb76fe efb7ef7fdefffee7dfff777fbdf9ddffdd7b656fffeffffffffffffffffff9f9fffffffe 7ffff867339fe7fffffffffff3fe3f3fffffffbfffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedfd f55555555555555555555555555555555efcebbbfa77defb5bfeff3df7ff5eb7ffcf7fdf f3bf7febd7bf75edfbfef7f7ff3bf7efbdfef7feb7cfffffffffffffc02310783ff8301e 421ffa67339fe7180f041ff060fe7fbfe041fcb83fffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe3d 6fffffffffffffffffffffffffffffffbf85efff86f7f7a37bb7f19dbdf8defdf86f6ffa 37bff71adffb8def7f82f3fde37b7f71bdef676b7fdfffffffffffffe66719f89ff399de 677ff667339fe71cee65dfe720fe7fffcc1cf2333fffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed9d d7ffffffffffffffffffffffffffffffd73de7779eb6ffcf79fde7bdff63ceffb8e67b7c f736fc7bdddf3cefef9eb6df8f5bdfe5ad7cf5ffbdefffffffffffffe66f99f9dff399de 637fe667339fe79cee70dfe733fe7fffce9ce7339fffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdebd efffe07fffffffffffffffffffffffffbf3d6dffaee7dfdf7b7f6bbceff5deb7fbef3fdd b79fbebbcfff5debfbbef7ffdb79fdefbddf67adffcffffffffffffff02f99f9dff399de 727fee67339fe79cee001fe733fe7fffcf9ce7b01fffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedad f7ffef7fffffffffffffffffffffffffdf7defddbef5fddb3befcf9dfbf7deff7bef6ffd e7bbfef9df777defbfb6f7bbdf7bf7e7bdf6f6ffbfdffffffffffffff10f99b9dff399de 72ffe027339fe79cee7d8fe733fe7fbfcf9ce7b3ffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeb9 af6fef7fffffffffffffffffffffffffbbfdeefffef777ff6bfbffb5beffda7bdfef7efb f7beeffbdbfffdadef7ed5efff7bbf7f3cff67b577effffffffffffff11f99b9dff399de 78fffe67339fe79cee79cfe733fe3f3fcf1ce7b3dfffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedbd f6afef7fffffffffffffffffffffffffdedbcfb7bdf7ffdff9bffffdfff7bedffbbf7bbf fbbfffdf9fb77beffbfdf7feddd9effff5baf5dfffcffffffffffffff99f9939dff119de 79fffe67339fe79cee31cfe233ff1f7fc608e7b199ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdefd ef5fef7fffffffffffffffffffffffffaffeebffefd5eefdfbef76fd77bdfefeffed5fef 7e9bdefbcdffdfe77fdff3bffffbfdddfdff67f6bddffffffffffffffb9f0c79dff83006 79fffc32793fe708038c1ff073ff8e7ff1c1e31c79ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7d b7dfef7fffffffffffffffffffffffffdfffcfddfbe7bfbf73fbffe9fdff74f7defe77fb df3f7bff9fddff4fdff7a7edf7b3bfffd9eef6bf7fefffffffffffffffff0ff007fffffc 3bfffff8fc7fc30fffffffffe1ffc0fffffff88fffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffee9 efbfef7fffffffffffffffffffffffffbdb79eff7f4ffbf7c77eddf3dfeff9bdf7fcff7f fe77ffdd3efffb9df6fdceffbde5f76ef37d67f5dfcfffffffffffffffffffffffffffff cbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedf3 f77fef7fffffffffffffffffffffffffcfc037f7e01b7ef00bdff806f77c01ff7e01bbdf 00feee8077bb802fffe01fbbf00f7ff807def6df77dfffffffffffffffffffffffffffff c3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffde03 cf5fef7fffffffffffffffffffffffffbbffbfbdffffeffffff7ffbbffdfbf6fdfedfffb fddfbfffbfeffffedf7ffbff7ff7f6ffddf7677bffefffffffffffffffffffffffffffff c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffedff f6afef7fffffffffffffffffffffffffdff6fdffdf6efbfefefdbfffbdffeffbff7f777e ef7bf7fbfdfffdbffbff6ef7ffbfbfbff7fef5eebdcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffedf eedfef7fffffffffffffffffffffffffbffbf7eff9ffbeeed7bfed77effdbbfefbdfdfdf efffffb6ef7bebebbfd9ffbdecfdeff67fbb67bfffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffed7d b7ffef7fffffffffffffffffffffffffdbbbdf7bfddbfffefff7ff3eff7fbedfbedbfdff adedbff7ffdf7bfff7fddffffe6ffdff3dfef6eabfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffda6f efffe07fffffffffffffffffffffffffbfeafbffdcfef7ba7dfeff6fbbfbbff7ff9eff7f ef7fedd7bbfffb7efffcfdeffefbbfff6f7767fff7cfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd7f f7ffffffffffffffffffffffffffffffcf03feef81ffbfc0efdfe07bffb037fdf80fb7d8 07dffe05fef701f7db01ef7d80fff7607ffcf6b6bfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffee3b afffffffffffffffffffffffffffffffbb7ddfbdbfb7eddfff7bcdfeedf7bdbfdbfffffc fffb7eff6fbf5fbdffaf7fdfcf6f7fe7fddf67fbfdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdff f7ffffffffffffffffffffffffffffffdf3ff7ffadfdffcfbbfeefbfff76ffef7bfbeefd ddffee77fffd77ffbfbffbf7dbfbddef6ffef55ebfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeef efffffffffffffffffffffffffffffffbff6fdf77fff7bfdfeeffbefdff7effbf6df7fdf ffb6ffffddeffdefedfdfefdffffffbdfbbb67f77fdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd7d f7ffffffffffffffffffffffffffffffdbffefdffff7defffbfbfffcfdfffe7effff5dff ffbfb7ffdf7fffeeffdff7bffffb7bfffdeef6dfb7efffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd afffffffffffffffffffffffffffffffbeffeefbef67ffbffbbedffdefbffedfbfff77de efafffb7d7dbbfe7bfff67efbedbdefffcff67faffcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfd f7ffffffffffffffffffffffffffffffcfdfa7bffbf6f7fb69fff77d7bedbaf7fefb7eff fdbdfdfedfffef6fedf7f5fdf7f9ffdbbdbcf557bddfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeed efffffffffffffffffffffffffffffffbffdefef7ff7bfdffb77fff5fefffefdf7df7fbb bfbfdfffdefffbedffbdf77ffffb77ffedef66fc7fefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd7d f7ffffffffffffffffffffffffffffffdfefedffded3fbfefbdefddddffbee7fbff737ff fb9b7edb97b77fefbfffd7f7bb6bfdfefdfef7bbbfcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeef5 afffffffffffffffffffffffffffffffb6002f7b8016ffc00bffe004f7f002eff8017ddc 00bfde005fff0027eb8013dfc00bdf60057b65f9f7dfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffd05 f7ffffffffffffffffffffffffffffffdf7ecfdfbff7b75feafdcffdfdb77efb7afd7ff5 7eaff6ffcef77daefebff6fddffaffcff5def77bbfefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd efffffffffffffffffffffffffffffffbf77ebfeb6f7ffdb7bb7eb75bff7dabfebbf6efd efbefedddbbd6fefffab77efceebbbebbdf766f37dcfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffddb5 f7ffffffffffffffffffffffffffffffddbdfeffbfedffefdfffffffffedfffffff7bfff fbf7fdff7fff7f7dffffdfff7ffffffffefef7a7bfdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeeff afffffffffffffffffffffffffffffffbfffdfffefbfbb7ff6fedeeeeffff777f6fdefdd bfbfff77fffffbef77bdfb7ffbb6ffdb77bf66f6ffefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfb f7ffffffffffffffffffffffffffffffc0ef7bf07dfffc36ffbe17fbfe0bbdfe87dfffc3 eefba1fdedf0defff86f7ff41fffba1fdffaf7cfb7cfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeedf efffffffffffffffffffffffffffffffa6fbff73ff76f9ffdffcffbfbe7effdf3ff7769f ffffcfdfbfc7ffddf1ffeef9f6dffcfffdff65ad7fdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffdd77 f7ffffffffffffffffffffffffffffffcfbeefd777dfeb7df6f5fdefeedff7ff6f7fffbb 7b6fdbfffbe6f7f7d7fbfffbfff6fdbb7fdef7dffdefffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffeefd afffffffffffffffffffffffffffffffafdffde3effef3f77fb9bbfef8fdbf767efddf1f 5ffd9f3b7fcf9f7fe76edbb377ffd9fbdb7d656abfcbefbefbefbefbefbefbefbefbefbe fbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbefbe fbefbefbefbefbefbefbefbefbefbefbefbefdff f7ffffffffffffffffffffffffffffffdbd7dfefeef7f6e7dff9fb7bfd7dfdfcdceff77f 77dfafafeedfdbdeefeffff3f5bdf37bfff8efdf7fdebaebaebaebaebaebaebaebaebaeb aebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaebaeb aebaebaebaebaebaebaebaebaebaebaebaebae6f efffffffffffffffffffffffffffffffbfdefbef67bfb7f3fdfbbbdfbdecefde7ebf7f77 7dfbbbbfffdbdff7edebeef6f7ff7bdb7fdd7ef7f7ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffdfb f7ffffffffffffffffffffffffffffffd6dffeebeffdf5f6ffbbf9fffdfdfefefef7df3f 7fbf3fbddbdfddfdcf6f7bf7e777f9f3eefcfffffdffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffeff afffffffffffffffffffffffffffffffbf9fefefefe7f7f7f3fbfbfcddfdfebefeff7b7e 7fafbfbfdf9fdfefefeff7b7f7fbfbfbfdfd555555555555555555555555555555555555 555555555555555555555555555555555555555555555555555555555555555555555555 55555555555555555555555555555555555555fd f7ffffffffffffffffffffffffffffffdffba77fdff76ffffb7deffdfdbfbeeff7ff7fff dfbbff6fdbeedfefffeff7effff9bffdf9deaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabd efffffffffffffffffffffffffffffffbfdfefeef6f3ff6fdbdf7bb5ffedf6fdbeee6f77 fbbfdbfb5ffffba6edfdf6fb6dbbff7fbd7ddffeffbb6d376db69bb6db4ddb6da6db6db3 6db6d9bb6db4ddb6da6edb6d376db69b6db6cdb6db66edb6d376db69bb6db4ddb6da6db6 db36db6d9bb6db4ddb6da6edb6d376db69b6eff5 f7ffffffffffffffffffffffffffffffdbfeedffffb7fbfef9f7fefd6ffffeffffff7ffe febfffffddfdffefffbf67fffffb7beffdfffb6cdfffff7fffffbfffffdfffffeffffff7 fffffbfffffdfffffeffffff7fffffbfffffdfffffeffffff7fffffbfffffdfffffeffff ff7fffffbfffffdfffffeffffff7fffffbfffdfd afffffffffffffffffffffffffffffffbef7affbbff77efbfbffffedfb7edcdfdbbb3bdf df9bbedfcfef6eedffeff5ffffebdffef5ef7ffe7ef7ff6fffffb7ffffdbffffefffff77 ffffbb7ffffdbffffedfffff6fffffbffffddffffeedfffff6fffffb7ffffdbffffeffff f77ffffbb7ffffdbffffedfffff6fffffbffbfdd f7ffffffffffffffffffffffffffffffc00027600015f0000b780004fc0002f600017f00 00bf80005bc0002fc0001760000bf800057c0002ee00017e0000bf00005f800026c00013 600003f00005f80002fc00017e00009b00004d80000fc00017e0000bf00005f800026c00 013600003f00005f80002fc00017e00009b80005 efffffffffffffffffffffffffffffffbfffefefedd7d7bf6bdb6ffdbdeffe7cffff6f7b ffbbaffb5f5fffceedfbf7f6db7afb6ffdddf7fefefdb67736db3b9b6d9dd6db6fedb7d7 f6dbfbb9b6d9dcdb6cee6db6775b6dbfb6df5fdb6feee6db67736db3b9b6d9dd6db6fedb 7d7f6dbfbb9b6d9dcdb6cee6db6775b6dbe9fdf9 f7ffffffffffffffffffffffffffffffd6ddedcefff7f7f7fbf9fb6ded7df6fe6eed7d3f b69ebbbfdfdbdde7ef7ed3f3ffebb3fdb5f9bf5abadfff3f7fff9fbfffcfdfffebe7fdf5 f3ff79fbfffcfdfffe7effff3f7fffaf9ff7d7cffde7effff3f7fff9fbfffcfdfffebe7f df5f3ff79fbfffcfdfffe7effff3f7fffafb6fdd afffffffffffffffffffffffffffffffbfffdff7bbbb76fef6effffbffdfbfdffbffdfed ffffffededbeff7fb7dfffbfddfbfeffff7ffdffff7eeffdf777fefbbbfbbdbbbf7f7f7f beefdfefdbbff7dddffbeeefeef6eefdfdfdfefbbf7fbf6effdf777fefbbbfbbdbbbf7f7 f7fbeefdfefdbbff7dddffbeeefeef6eefbfff7f f7ffffffffffffffffffffffffffffffdf76f77fffffffdfbffedeff7bfbeef7ffdefbff ddfbdeff7feff7fdfff7bdeeffbeefdbbbeeefeef7f7fdefbffef7dfff7fefffefdfeff7 fffdf77efff7befffbdf7ffdffbfffbf7fbfdffff7ddfbffdefbffef7dfff7fefffefdfe ff7fffdf77efff7befffbdf7ffdffbfffff7dbfb efffffffffffffffffffffffffffffffbbfffffdeeeddbfbfddff7dfdefefbfedef7bf7e ffdef7fff7fbbdefeefdeffff7fffdfffeffbf7fbdbddf7feddfbff6efdefbeefdf6fbbf 77dffffbf77dffb77effdbbf7befbbf7dbeefddf7fffefddf7feddfbff6efdefbeefdf6f bbf77dffffbf77dffb77effdbbf7bfddddfeffdf f7ffffffffffffffffffffffffffffffcfdddeef7fffffbeeffb7ffdffefffdff7ffeff7 f77ffddbbf7fff7b7fbffbbdbf77bf6eefdbfbfbfffff7f6fffbfb7ffdf7ffbfffffbffb defbbddfbfdfdbffefedfff7dffefffffeffef7beef77eff7f6fffbfb7ffdf7ffbfffffb ffbdefbbddfbfdfdbffefedfff7deeff7f6fbef7 afffffffffffffffffffffffffffffffbcfbf7beedbbbd6ffbbf9d6f7b9f5efdedddfdd7 6ff7bbf7fbdcdbfffafd7fef6efdf7bf7ffedfdef7cedfbfb76fdfdbb7fddcfbb6deeedf ff3eeffdbb7efeddbf7f6edff773eedb7bbb7ffcfbbff6edfbfb76fdfdbb7fddcfbb6dee edfff3eeffdbb7efeddbf7f6edffff77f7fbb77d f7ffffffffffffffffffffffffffffffdbbd7ff9feffeefe3ef77fbfefbbd7f79f6f7fef f6fde77b7ff3fdefddeedefafb5f7d7bbb7fbd9fbed7edefedf6f7f6fbbff3f9fff9faf7 7aef7b6f7fb7bfb7dbdfdbeeffcfe7ffe7ebddebbdedbdfedefedf6f7f6fbbff3f9fff9f af77aef7b6f7fb7bfb7dbdfdbeef7abe7dff7fbf efffffffffffffffffffffffffffffffa938ddec1c6efa0b3ffd071dfd438dbf61c7eda0 e3dff071eeec38bef41c77fe0e3fdf071ff683c7ff49c7fdc4e3fee271ef6c18eff41c7f ee4e3ffd071ff7138ffb89c7bdb063bfd071ffb938fff41c7fdc4e3fee271ef6c18eff41 c7fee4e3ffd071ff7138ffb89c7bde4e1fdd030f f7ffffffffffffffffffffffffffffffd404ff7b007ffd4037dea00fbf504fef8805ffd8 11f7aa01fff100fbfa827db5413bfaa00ddf200f77b0077fd003bfe800fbf5047eba825e f9003efe401dff400effa003efd411faea097be400fbf90077fd003bfe800fbf5047eba8 25ef9003efe401dff400effa003ff9013f7ea09b afffffffffffffffffffffffffffffffb180f7f8c25bba513efd209bf7180ffdac27b744 037dd308db7504ffb4807ffc601efe209fff584bdf8c23db5611edab09fef140fbf4c077 bd6137b6b08f6d5847b6ac27fbc503efd301def584dedac23db5611edab09fef140fbf4c 077bd6137b6b08f6d5847b6ac26f7cc03bf6281f f7ffffffffffffffffffffffffffffffcf01bdd380ffedc06ff6e83f7e701dbf3a0fffdd 07ffee03ffe7416df3a0ef79d07fede83bba701ffb380fff9c07ffce03dfe701dffba0ff f9c07ffce03ffe701fff380f7f9c077fee83ffe701fff380fff9c07ffce03dfe701dffba 0fff9c07ffce03ffe701fff380fbd9d06fbde03f efffffffffffffffffffffffffffffffb543fffaa1eefd50fdbea07fef543ff7a81b7dd6 0fef6a87bff503fffac17bdd40f77eb07eff543effaa1eefd50f77ea86f77543feda81de fd50eefea87bbf543ddfaa1bddd50ffb6a077bf543bbfaa1eefd50f77ea86f77543feda8 1defd50eefea87bbf543ddfaa1fffd60fbeea87b f7ffffffffffffffffffffffffffffffd186ef78837fbc61bfee28edff18777f8c3fef44 1b7bc30feb7147bbb883fffc51ffdc20dfef1877ef883ffdc61ffee30ffff18777f0a3f7 dc61bfae30fff7187ffb8c3fffc61ddfc28fdf7186feb8c3ffdc61ffee30ffff18777f0a 3f7dc61bfae30fff7187ffb8c3ef7c41fefa30ef aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab07fbe5c3fbf2c1fbf970ffb4b05fda582eff2d 1fffb606ffcb85fee5a3def2c1ddfb68f77cb03f7a5a1bbf2c0ddf960bdecb07fded837d f2c1fbf9606efcb0377e582f7b2c1ff7b60df7cb07efe581bbf2c0ddf960bdecb07fded8 37df2c1fbf9606efcb0377e5837bd2d1dffa60ff f55555555555555555555555555555555087bee801dfd420efba00bbfd087dfe843fdb40 1eeea10ffed007efe882f7b4217ff200fff5087bfe883ffb421ffda10ef7d086dfa843ff b4217ffa10ffed087ff6843bdf421b7ea10ffed085ffe843ffb421ffda10ef7d086dfa84 3ffb4217ffa10ffed087ff6843fff400f7da90dd f8c1fffc60fffe307fff183fff8c1fffc60dffa387f6f183fef8e1ff7c60fffe307bff1c 37bf8c1bb7c70f7fe307fff183fbb8e1bbbc60feee3076ef183b778c1ffdc60ff7e306ef f183f768c1dbbc60edde307ff7183fdf8c1bbfc60fdda3076ef183b778c1ffdc60ff7e30 6eff183f768c1dbbc60edde306ef71c3fef941ff da03fffd01fffe80ffff407ef7a03f7bd01f77e80f7ff407dfea02efed01dbb680dfbf40 7ffba03ffdd01bdd680fbdda07defa03fffd01efbe80ffff407fffa037bfc81dff680ffb 7407ddfa03fffd01fffe80deff2077fda03fedd01f77e80ffff407fffa037bfc81dff680 ffb7407ddfa03fffd01fffe80ffbf407dfb803b7 showpage % stop using temporary dictionary end % restore original state origstate restore %%Trailer %%EndDocument @endspecial Fw 1740 3046 a(Figure) p 2002 3046 a(3:) p 2095 3046 a(A) p 2184 3046 a(D) n(VI) p 2366 3046 a(\014le) p 2499 3046 a(preview) n(er) p Fk 2873 3046 a(xmdvi) p Fm 992 3370 a(7.) p 1200 3370 a(Conclusion) p Fw 992 3651 a(In) p 1095 3651 a(this) p 1255 3651 a(pap) r(er,) p 1510 3651 a(w) n(e) p 1631 3651 a(ha) n(v) n(e) p 1821 3651 a(in) n(tro) r(duced) p 2235 3651 a(a) p 2303 3651 a(fon) n(t) p 2472 3651 a(library) p Fk 2743 3651 a(VFlib) p Fw 2954 3651 a(whic) n(h) p 3190 3651 a(supp) r(orts) p 3529 3651 a(m) n(ultiple) 992 3751 y(fon) n(t) p 1163 3751 a(formats) p 1466 3751 a(with) p 1655 3751 a(a) p 1724 3751 a(uni\014ed) p 1996 3751 a(API.) p 2195 3751 a(It) p 2285 3751 a(is) p 2369 3751 a(esp) r(ecially) p 2743 3751 a(useful) p 2981 3751 a(for) p 3108 3751 a(D) n(VI) p 3289 3751 a(driv) n(ers.) p Fk 992 3919 a(VFlib) p Fw 1205 3919 a(has) p 1354 3919 a(b) r(een) p 1550 3919 a(tested) p 1796 3919 a(on) p 1912 3919 a(F) p 1959 3919 a(reeBSD) p 2262 3919 a(2.2.2) p 2461 3919 a(and) p 2622 3919 a(Lin) n(ux) p 2859 3919 a(for) p 2987 3919 a(P) n(en) n(tim) n (un,) p 3387 3919 a(Solaris) p 3656 3919 a(2.5.1) 992 4019 y(and) p 1153 4019 a(SunOS) p 1428 4019 a(4.1.4) p 1626 4019 a(for) p 1752 4019 a(SP) p 1848 4019 a(AR) n(C,) p 2078 4019 a(and) p 2239 4019 a(SunOS) p 2515 4019 a(4.1) p 2648 4019 a(for) p 2774 4019 a(SP) p 2870 4019 a(AR) n(C;) p 3100 4019 a(there) p 3312 4019 a(is) p 3394 4019 a(no) p 3509 4019 a(di\016cult) n(y) 992 4118 y(to) p 1097 4118 a(p) r(ort) p 1283 4118 a(it) p 1370 4118 a(to) p 1475 4118 a(other) p 1695 4118 a(Unix-lik) n(e) p 2054 4118 a(op) r(erating) p 2429 4118 a(systems.) p 2764 4118 a(The) p 2938 4118 a(source) p 3196 4118 a(co) r(de) p 3391 4118 a(and) p 3556 4118 a(the) p 3702 4118 a(lat-) 992 4218 y(est) p 1123 4218 a(information) p 1573 4218 a(on) p Fk 1690 4218 a(VFlib) p Fw 1903 4218 a(is) p 1988 4218 a(a) n(v) p 2067 4218 a(ailable) p 2330 4218 a(at) p Fj 2432 4218 a(http://www.se.hi) o(ros) o(hi) o(ma) o(-u.) o(ac) o(.jp) o(/) 992 4318 y(~kakugawa/VFlib/) p Fw(.) p Fm 992 4719 a(Ac) m(kno) m(wledgemen) m(ts) p Fw 992 5000 a(The) p 1176 5000 a(author) p 1458 5000 a(w) n(ould) p 1714 5000 a(lik) n(e) p 1879 5000 a(to) p 1994 5000 a(thank) p 2246 5000 a(W) p 2324 5000 a(erner) p 2550 5000 a(Lem) n(b) r(erg) p 2907 5000 a(for) p 3047 5000 a(helpful) p 3335 5000 a(commen) n(ts) p 3739 5000 a(on) 992 5100 y(sp) r(eci\014cation) p 1469 5100 a(and) p 1634 5100 a(implemen) n(tation) p 2231 5100 a(of) p Fk 2336 5100 a(VFlib) p Fw(.) p 2576 5100 a(He) p 2706 5100 a(also) p 2877 5100 a(thank) p 3118 5100 a(Ken'ic) n(h) p 3424 5100 a(Handa) p 3693 5100 a(and) 992 5199 y(Satoru) p 1260 5199 a(T) p 1313 5199 a(om) n(ura) p 1569 5199 a(for) p 1696 5199 a(v) p 1735 5199 a(aluable) p 2021 5199 a(discussions.) p eop %%Page: 13 13 13 12 bop Fs -47 772 a(A) p 44 772 a(font) p 216 772 a(libr) l(ary) p 479 772 a(VFlib) p 710 772 a(3.5.0) p Fw 2704 772 a(13) p -47 874 2835 4 v Fm -47 1073 a(Bibliograph) m(y) p Fw -6 1289 a([1]) p 123 1289 a(Karl) p 307 1289 a(Berry) p 506 1289 a(.) p 556 1289 a(Kpathsea) p 920 1289 a(v) n(ersion) p 1196 1289 a(3.2.) p 1353 1289 a(Included) p 1686 1289 a(in) p Fk 1778 1289 a(w) n(eb2c) p 2013 1289 a(7.2) p Fw(,) p 2164 1289 a(whic) n(h) p 2396 1289 a(is) p 2474 1289 a(a) n(v) p 2553 1289 a(ailable) 123 1389 y(electronically) p 639 1389 a(from) p 846 1389 a(CT) p 959 1389 a(AN,) p Fj 1144 1389 a(systems/web2c/web) o(2c) o(-7.) o(2.) o(tar) o(.g) o(z/) p Fw 2501 1389 a(,) p 2557 1389 a(Marc) n(h) 123 1488 y(1998.) -6 1654 y([2]) p 123 1654 a(Nelson) p 420 1654 a(Chin) p 649 1654 a(et) p 772 1654 a(al.) p 975 1654 a(Hanzi) p 1239 1654 a(Bitmap) p 1564 1654 a(F) p 1611 1654 a(on) n(t) p 1783 1654 a(\(HBF\)) p 2077 1654 a(\014le) p 2237 1654 a(format) p 2533 1654 a(v) n(ersion) 123 1754 y(1.1.) p 287 1754 a(Av) p 388 1754 a(ailable) p 650 1754 a(electronically) p 1154 1754 a(from) p Fj 1349 1754 a(ftp://ftp.ifcss.) o(org) o(/p) o(ub/) o(so) o(ft) o(war) o(e/) 123 1854 y(info/HBF-1.1.tar.) o(gz) p Fw(,) p 1002 1854 a(Septem) n(b) r(er) p 1413 1854 a(1994.) -6 2020 y([3]) p 123 2020 a(Adob) r(e) p 434 2020 a(Systems) p 804 2020 a(Incorp) r(orated.) p 1474 2020 a(Glyph) p 1774 2020 a(Bitmap) p 2120 2020 a(Distribution) p 2638 2020 a(F) p 2685 2020 a(or-) 123 2119 y(mat) p 352 2119 a(\(BDF\)) p 678 2119 a(sp) r(eci\014cation) p 1209 2119 a(v) n(ersion) p 1549 2119 a(2.2.) p 1888 2119 a(Av) p 1989 2119 a(ailable) p 2310 2119 a(electronically) 123 2219 y(from) p Fj 347 2219 a(http://www.adob) o(e.c) o(om) o(/s) o(upp) o(or) o(tse) o(rv) o (ice) o(/d) o(ev) o(rel) o(at) o(ion) o(s/) o(PD) o(FS/) o(TN) 123 2319 y(/5005.BDF_Spec.pd) o(f) p Fw(,) p 959 2319 a(1993.) -6 2485 y([4]) p 123 2485 a(Hirotsugu) p 501 2485 a(Kakuga) n(w) n(a.) p 923 2485 a(V\015ib) p 1120 2485 a(|) p 1223 2485 a(a) p 1284 2485 a(general) p 1562 2485 a(fon) n(t) p 1724 2485 a(library) p 1986 2485 a(that) p 2158 2485 a(supp) r(orts) p 2490 2485 a(m) n(ultiple) 123 2584 y(fon) n(t) p 294 2584 a(formats.) p 629 2584 a(In) p Fs 733 2584 a(Pr) l(o) l(c) l(e) l (e) l(dings) p 1176 2584 a(of) p 1274 2584 a(Eur) l(oT) 1493 2602 y(E) 1539 2584 y(X) p 1630 2584 a(98) p Fw(,) p 1766 2584 a(Marc) n(h) p 2025 2584 a(1998.) -6 2750 y([5]) p 123 2750 a(W) p 201 2750 a(erner) p 410 2750 a(Lem) n(b) r(erg.) p Fk 779 2750 a(hbf2gf) p Fw 1005 2750 a(.) p 1057 2750 a(Av) p 1158 2750 a(ailable) p 1418 2750 a(electronically) p 1919 2750 a(from) p 2111 2750 a(CT) p 2224 2750 a(AN,) p Fj 2395 2750 a(language/) 123 2850 y(chinese) p Fw(.) -6 3016 y([6]) p 123 3016 a(W) p 201 3016 a(erner) p 412 3016 a(Lem) n(b) r(erg.) p Fk 783 3016 a(ttf2pk) p Fw(.) p 1050 3016 a(Av) p 1151 3016 a(ailable) p 1412 3016 a(electronically) p 1915 3016 a(from) p 2109 3016 a(CT) p 2222 3016 a(AN,) p Fj 2395 3016 a(language/) 123 3116 y(chinese) p Fw(.) -6 3282 y([7]) p 123 3282 a(W) p 201 3282 a(erner) p 410 3282 a(Lem) n(b) r(erg.) p 779 3282 a(New) p 961 3282 a(fon) n(t) p 1128 3282 a(to) r(ols) p 1325 3282 a(for) p 1448 3282 a(T) 1494 3300 y(E) 1540 3282 y(X.) p 1656 3282 a(In) p Fs 1755 3282 a(Pr) l(o) l(c) l(e) l(e) l(dings) p 2195 3282 a(of) p 2289 3282 a(TUG) p 2500 3282 a(97) p Fw(,) p 2632 3282 a(July) 123 3381 y(1997.) -6 3547 y([8]) p 123 3547 a(Rainer) p 445 3547 a(Menzner.) p 975 3547 a(A) p 1118 3547 a(library) p 1441 3547 a(for) p 1622 3547 a(generating) p 2081 3547 a(c) n(haracter) p 2496 3547 a(bitmaps) 123 3647 y(from) p 360 3647 a(adob) r(e) p 643 3647 a(t) n(yp) r(e) p 871 3647 a(1) p 981 3647 a(fon) n(ts.) p 1338 3647 a(Av) p 1439 3647 a(ailable) p 1743 3647 a(electronically) p 2289 3647 a(from) p Fj 2526 3647 a(ftp://) 123 3747 y (ftp.neuroinformat) o(ik.) o(ru) o(hr) o(-un) o(i-) o(boc) o(hu) o(m.d) o(e/) o(pu) o(b/s) o(of) o(twa) o(re) o(/t) o(1li) o(b/) 123 3846 y(t1lib-0.7.1-beta.) o(tar) o(.g) o(z) p Fw(,) p 1177 3846 a(1998.) -6 4012 y([9]) p 123 4012 a(Microsoft) p 501 4012 a(corp) r(oration.) p 1003 4012 a(T) p 1056 4012 a(rueT) n(yp) r(e) p 1394 4012 a(1.0) p 1536 4012 a(fon) n(t) p 1715 4012 a(\014les.) p 1937 4012 a(Av) p 2038 4012 a(ailable) p 2310 4012 a(electronically) 123 4112 y(from) p Fj 324 4112 a(ftp://ftp.micro) o(so) o(ft.) o(co) o(m/d) o(ev) o(elo) o(pr) o(/d) o(rg/) o(Tr) o(ueT) o(yp) o(e/) o(tts) o(pe) o (c.z) o(ip) p Fw 2770 4112 a(,) 123 4211 y(No) n(v) n(em) n(b) r(er) p 516 4211 a(1995.) -47 4378 y([10]) p 123 4378 a(Da) n(vid) p 361 4378 a(T) p 414 4378 a(urner,) p 654 4378 a(Rob) r(ert) p 929 4378 a(Wilhelm,) p 1281 4378 a(and) p 1437 4378 a(W) p 1515 4378 a(erner) p 1723 4378 a(Lem) n(b) r(erg.) p 2089 4378 a(The) p Fk 2254 4378 a(F) n(reeT) p 2451 4378 a(yp) r(e) p Fw 2594 4378 a(pac) n(k-) 123 4477 y(age) p 271 4477 a(1.1.) p 436 4477 a(Av) p 537 4477 a(ailable) p 801 4477 a(electronically) p 1306 4477 a(from) p Fj 1502 4477 a(http://www.free) o(typ) o(e.) o(org) o(/) p Fw(,) p 2598 4477 a(1998.) p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF vflib3-3.6.14.dfsg/doc/Paper2-ja/0000755000175000017500000000000006662715032015561 5ustar mohuramohuravflib3-3.6.14.dfsg/doc/Paper2-ja/00_README0000644000175000017500000000052506651542771016750 0ustar mohuramohuraThis short paper describes VFlib in Japanese. It is appeared in a joint meeting of electric- and information- related academic societies in Chugoku area of Japan. The dvi file itself can be previewed by previewers (e.g., xldvi) in TeX-Guy package in standard X Window environmnet using default installation of TypeHack. Hirotsugu Kakugawa vflib3-3.6.14.dfsg/doc/Paper2-ja/00_README-ja0000644000175000017500000000025006651542756017336 0ustar mohuramohuraΥǥ쥯ȥ˼Ƥʸϡܸǽ񤫤줿 VFlib δʷǤʿ10ǯŵϢز ϢˤȯɽΤǤ ͵ vflib3-3.6.14.dfsg/doc/Paper2-ja/Makefile0000644000175000017500000000054506551316721017224 0ustar mohuramohuraall: vflib-ja.ps vflib-ja.ps: vflib-ja.dvi -dvips -f vflib-ja.dvi > vflib-ja.ps rm -f ml-web-page.eps vflib-ja.dvi: vflib-ja.tex gzip -cd < ml-web-page.eps.gz > ml-web-page.eps platex vflib-ja bibtex vflib-ja platex vflib-ja platex vflib-ja clean: -rm *.aux *.log *.bbl *.blg veryclean distclean: clean -rm *~ CLEAN: clean -rm *.dvi *.ps *~ vflib3-3.6.14.dfsg/doc/Paper2-ja/ml-web-page.eps.gz0000644000175000017500000004105006551316721021005 0ustar mohuramohuraĢ5ml-web-page.epsM8׃_^t؎L?{v &<7n8EvWVwTWVdUχND8= I"J" >8Cb*o~w_u&|ſw~_^tWO^_w?wr_}pwӻw_x|ww??Oo?y?>ͻ?yw߽}>?y㯿<|>OW}:,O^/~y凇ǧw?p~ݧ=ܽyxï޿ǧ޽yj= w/Kw?<>\vhOOO$"ic_}Շ۽}xs.~~.SOӻ_?=O݇/_? x|z?v}7}w/!~g}?ק~|o~~DZY>>~%| "MT U&*AA*L#T *䦓0; ([WKQ!-)/׊Bʹqio^!FEי ǯ( m. \خAa6wAa;` hDPr5)8U 轷'*LjtVTǖW.ϡWͷRP?,:2Ըr0YƓW'nZ qn 8 Qa]> I9ރ:+(x0 yv=_D>fplR`QaPXYy;Dw{a6Jʂ8 9(]?㹰3T"nVVTCo^AgQa)=!]DDA E*qYXkȆz늈JnDA+ "h!h nvo{# <() "U"˃6Q "6A~"o"aATA40 # QaD * DDA0"h`FA **L~a͌sH6"b%RvhVk#W %;g u#JyQɪ P{/n iVZSU  Yf8]Ua/0Kam4/ sAT|uLyAM KapvLנ4nR5]۶Õըi3 vZMi~Y+M4&P~L';vݖ!iiء8k ٖAVmƅ$V^IaũJbj}jS*7~@a6R/ŵa~C T.ۋpJ ;?R`V5|[ ~p3 :(L,Xhk4 W(Lvu= 2.Usga KaN~&Ouk1\epz=h>3fa Ϙ9&iRgarv7"MW攮hw [/u!]RaMǙD6+,.FaLm}Z.ڼ[TXRm(d"|ٴg’j^+$Q5+02Ҡ%ZUUR\GaM$ onCD61'.r0ETiRaH{LK'xm^5VYQ5=fn_g}"yٸ}nO7~L4ck)_-˔_:2.q&h #R0oZ )kΔCS$)lJ֔ ;*19YN6)3VtXȮt9wsaw-끨0@'9n֙%94精gM"FH\?`UYMP D(<\a$TJ A/.D@TAm G/ 6 1Q*l *6]Ӳ<=\;"\2 # $E` C. oI@9شQa^~=M$MAgF 't=FP;hwJz<|M![+3Ƹ>끨0 ׌ *mkK]DmAQamى끨0"h`FA "ATA40 # QaD * DDA0"h`FA "ATA40 # QaD * DDA0"h`FA "ATA40 # Ea߆OkC?"hˠ*̎`B' B DDA0"h`FA "ATA40 # QaD * DDA0"h`FA "ATA40 # QaD * DDA0"h` +jJϨUJ@}A4vIʳ@ێbf? "jGA=@C+,;ڢ*y0j 0=Jצ=R|""f:KTA'jq"Bz:亀g"h>hD?,0tEL/ӹ]iFA-6,+U734* VXE)t#ޕ #a_,.$lͶ|MWӷx{?FBD\Ј  {BfQ:MIDPhpٗo kCfaz∯TAVXCW{&2bw,_jRaXa1=U HXR #FwJYרh +Eh]jRa\a45 +MUwTAU79$4U|lOf) WGA=@* "h0"h`FA "ATA40 #  Ot(y:}ُO%Og,{NCDT Zo? h`υ5 ͎W9=0V– CiŒٞENsUA 0=IG;ETEOB2Y#JJaW[qAA_5EặU]4oh"; 9ƖTU}-hz`,+5h%iGA 0}DKB|[]tPGUo¬$Ag -:~¦ :FU+,/EWk 7 CMMtЈ U0PI! jQJtР ˂kE),^ϼ̷F4’!yX?TX:簏|J-PIx[ZaVӻ` njmZQEA*,v:t:<*BJ "; u\MKB$q(ZQ{M-HP}ZQEA) | [5$FDA- *5mJa]DAgQai /A7ڒu5lP9D@TA40 # QaD * DDA0"h`FA "ATA40 # QaD * DDA0"h`FA "ATA40 # QaD * Dm|ڪVkl]"K5n8 KfN$#>TnyJTauʑ}>|#;קjyU7ڬ!#M7PaFyOb:="Σuƴ_(yVQaD wxj^8J w0I)oR5Y#TX?6w-s:f ॼ;Å.z*l0eF.V y2lfU (H:kD}ga8㬈> 0Ga3faz֘oQHؖՖSfw0\ dTXײB!Ӓr<hڟ\an1ll[a=qCzUמVBCHpf+8+` &*), 9й*:ho⠓{8V^@rv%vK ؛j-4/2ygÎ`m>Ga~%*)#5ll}AarnݠjgW< Z]ք.Eaӻ WY'nkP$"V*TO$ADgUXK;)?#S<¨jsy8][*,Ž6.ƖF\5&O]NE4MIhͪpV`TGx S04ѝa?|d_aȭ{D1\jqQdN1 K#.QݸUT ),_~rT@ k-_*(Nrr>K'FIV),^74Os 4J]FlVB>[aRFbphVR7dL/NjcfU= v= 3t'ӱuxf+ N pֶ<9BUyTXkg_S`exc쥍Lh},,ߥbe/yLʩbK8 %qM_ 5YNM YXrGl L,$>9%*){! .ʗlX(ꭰyƙCq0~gPh;lދJTSBP>[SAa](G[uֺVVu"==\X~9E_աhiJv7i* M-O.n;U{ ƌhn|U5}I y%zRM02+Քpxz.[35cupŪ lsDk Cjp^sa+r(: 9G Kb:2,Sa 3OE}lg͡KT|"}zepg{*) v*\Hk6Ͽr/ݐjr/kĔ\į@y uՇ'ZŜAТ/ql,"+("WXiЧ[U,Eb Ltu%7k}l iRBD08ZFOTۨVœh~Ff?"wVXQ D6͸mڨC8G7.Qa߶&ġ"*Xƞ kT<4)L7\^ڨx`ҌOm R]VQago SGQD1g*&Ob!]aIDV+*fU+`97 4>%~G"Qy 0U,G8Ca_ȎZa-8&&.[kvB_yWX}rD'5dk-#"TR3V}Wś,TX[/w|JDzTybq`n (Lo>1Ormɥ»[Kž+*f.$F.q̼, <՛hpY?5 pj,uvvA97Z{RؼJK[WVj*`ǹzt 0 ; Juv!Y{ T tB͇WX]6;Gi7gqܺztQaT0d|)y^*sfa'5i+̾|k;4skJK3oiT>CWiRX]ZًTXiw<*~" zt _|];Z)$1\*ayg/ʼ9{Rd _սU WonfX:ݖNj2s\BGk]P[/Gezy5);՛hx)´hrz>D Fςhw>;xNG bӝRd7MŹ^_FdE" 'y_{}Dv#Uń,(>GUF]ۋ0TGOꢃ)MN*NBh9E 1vzT |Xt٥!~`’NďȝK)QaN @êӒ=b0I5[M#fOKG}B]}ʝO0&9-!~G. mOcœG= KGz+1wiCai _,(m3KY.v8-ITX[\Lwg""kC !t < ;ѳLys7Kb'^ve 3&Fn(Jβu9 s^埚u/){ 0kL#^1`;]KaD/bUZ^f¼ap.#UYجd=h4[Jtx :.I.CTArrYmYD~[0Uai7H#XvgRǵTSЈ SjffaM (,]URƁYQa]^۞L   L&wr #yDM>[?8C;{;M # #hXNjN3#ڔg~;UZzVT@+lck( XV#Z͂_H4¼t;af*:.鼅<cCNAϠBD / cev@C+tL *vb6jh$;6;*wdƞ.e @_`ޚn4siȂ1~FB]UլPaRau6B={)BKet;6Iq/L"QxhoalCMEdͫJkm`^wZ0k v@C+l0̻6R*R2Y;նZf5hhycŸB o3&1#BPM"S{M0t;6ouHVր쥈ԝ4¼6VaK>;2kfg!jSjR=aӔ{\  [Vſ<}]BT U<ɣَ: 9lfxќ@=60M<ϲ jݰ 9L❥0y_acIpGP8pQt;MfN/lDG]a+Sa 9Vp)(7μv-mv蝝t;aVT,+Q_a5ɋbiQ۪մ_ha%5h`\Rh ˵Q*^;]v 7*D( ;k7&@UAt * DDA0"h`FA "ATA40 # QaD * DDA0"h`FA d0"h0"h^V~0"h * DDA0"h`FA "ATA40 # QaD * 4N]= F KtfZgDRiΐfȁzslO)&^#(!"}$|ԡ1ʥ#i,Vش<(  FV; Ϣ0!e㘳4͞Rt,zve凇̓;^I륺s+PX~_ѥ[BQ^1c|}rsW!l7^mHa]tù&"eHbAh&PF5pIV?xFl*PX='2vF rǹ[0ڐw.<q ɹN̓ CS SW<eeWݟJW+t_4y|<¬jViiXh BIsMۂB4kVga kꅱ>а owi ($_݈Mtm#Ӽ #Q‚ Pyk)Ř %*&OwQ87 c}avvLxt |jI53AT *b3(̻XJ/ ZA *BjvyvADP3 # Qa90" *(/ j@Zفy$ٽFQag#5ٮIҼCuaD6-wi "? *{C+mMvl. 4ª?IHjIɾZxAB9b恨>0o[ec.#g60"* d.IYoKf mq^^42]ZaIbȶA}](=ΔO5rd#ۏVon@M=YnMZn*&;νJg!Ah'REEAavg.4}G: "Lʋ?XZa.Cl-ٱ Aq.OEv@$Ma,jTI/9}& Mwq_gb'N8 b-*̚i&gbrH/Lv (,7ٛXB[zʡ `_MkfGW~Q azR_~\Ra؊ k90u{vRXRv5*wq)& !՛foZg mH^M_^I|3Gz,Ft7I*(B7d\`#͈dtN|VN7O7x KaT1\Os|3r%0}sFo/*vl%+L_V7 z5^Aa OwwnPX&2牓yڳNyASf՜j :"""G%%ݏKBeG]@5nXaYDx@MX4=hQw(G8%gaOrKQa͠M*L 9PMS8 Cn)G8%Ca5|]YTXg*d[Zy60yLv~@wK/$Ubɋ1vxv>:q[&U+=ۤ0&gs|r4Ny|wUD]ÚɸiKZULPnA5/,Mn]`л"ȮDZMG>Rb]XY*4YXVuTXJ$=>"ѲQag]Ha| Ñum_Ft1Ђ*)U#wPL COYS(t:D (l/+Z]T0Ӹ [տvD* gq=dŜt ֮Va O\F^}wD+#&p+j㋧Ө%grkVؔ0%š^YPoV٫iT ~BaEG[’/ V|C:| @% iG /|2+ vQ nrl8*ߎ "+xSnAYDy;y9Un珥0x)&ULW^Hp}%:ν*PY`m՛0V bo7V*ݍhi:(,f Clj ( k Vu^5wH&2E ۋ UX iR+x9 89 F.Vyssvptz+S,0 ֦V.mճRlU0,*̮J9] &pƅdyFa{iDZ [+Va ]Na8]dad}@"rvZyEeTS>+R?,|<Յ T.Ǧz7{)]JMeߨ0Kƅ[{-- s&hTPX ɚ^Qv*,gNOvv_NSaY *L赍 F Fм赍< -! "]e-?DA=+l SI"6ATA40(QXحAABR#*oFlV"2 C 9<{}k^>JY Zh6 VkJGlIM'Ww߾}=Fv+ *Pkg&5?* ־{nGK',iT(Xz;˯ǯ92*q5&OtᗏOO{?< ==(B}, title = {$B%^%k%A%j%s%,%k4D6-$NpJs=hM}%7%9%F%`8~$1m5,HFMQ%U%)%s%H%i%$%V%i%jz(kAHG cmssbx10VFlib!lύW' goth103Q@nM5$^$7$$!#5U$K3+ H/#$l$KBP$9$k%U!%)%s#%H%U!%!%$#%kFI$_=P$7It$r:n@.$9$kI,MW$,$"$jy !" 3+H/$N]$H$9$kJ8;z=89g$K$O@)8B$r$7$F$* $i-$:y !"oB?8@8l>pJs=hM}%=%U%H%&%(%"$NItIJ$H$7$F$bMxMQ2DG=$G$"$k!#K\9F$G$O VFlib3.4.1ʁ$N-35MW$H!" VFlibgʁ$rMxMQ$7$?1~MQ%=%U%H%&%(%"$K$D$$$F>R2p$9$k!#3- 2 >kAHff cmssbx10VFlibg$N4X?t$HFbIt9=B$OUVFlib.ʁ$OCʁ8@ 8l$G5-=R$5$l$?4X?t72$G$"$jy !"o%i%$%V%i%j(?$G$"$k!#M5؝intVFffs#OpenFont1(char*@fontffsnameV,double@dpiffsxK<,double@dpiffsyK<,؝double@pointffs#sizeh݁,double@magffs#xK<,double@magffs#y)؝|ʁ%Uz%)%s%HA': 3 cmti10Afontff[namemʁ$r%*!<%W%s$9$k!#%Uz%)%s%H%5%$%:$O!"el5-$NVFlibbʁ4X?t$h$jJ,$+$k$h$&$K!"}1~MQ%=%U%H%&%(%"B&$OO@M}E*$J%U&%)%sl%HL>$r;XDj$9$k$@$1$G!" %Uf%)%s뾁%H7A<0$r;XDj$9$kI,MW$O$J$$!#́O@M}E*$J%Uf%)%s뾁%H$N6qBNE*$JDj5A$Ouvflibcapʁ$G뾁5-=R$9$k!#?^?M1 ʁ$K$=$NNc$r<($9y !#o(ʁ$3$NNc$G$O!"Fs$D$N%U- %)%s%HUtimR24ʁ$HtimR18ʁ$,Dj5A$5$l$F$$$k!#o$^$?!"%U- %)%s %Hુ%UY%!%$%k$,05=L$5$l$F$$$k$+$I$&$+$r<+F0H=JL$7!"g9I,MW$J$i$P%U%)%s%H%*!<%W%s;~$K2rE`$9$k$h$&5- =R$7$F$$$k!#o)OUʁ3Fខ$l$KBP1~$7$?%U啁%)%sខ%H%I%i%$%P $r_2VFlib-Kʁ$N⽁FbIt$GMQ0U$7$F$$$k!#q%U8%)%s⽁%H$,%*!<%W%s$5$l$k$H$-$Ovflibcapʁ$r;2>H$7$F%U8%)%s⽁%H7A<0 $rvD4$Y!"_%Uc%)%sv%H7A<0$KBP1~$7$?%Uc%)%sv%H%I%i%$%P$r8F$S=P$7$F%Uc%)%sv%H$r%*!<%W%s$9$k!#%Sc%C%Hv%^%C %WMW5a$KBP$7$F$b!"n%U%)%s%H7A<0$KBP1~$7$?%U%)%s%H%I%i%$%P$r8F$S=P$9y !#$b$7%U%)%s%H$,%"%&%H%i%$ %s%U%)%s%H$J$i$P!"%"%&%H%i%$%s%G!<%?$r%i%9%?%i%$%:$7%S%C%H%^%C%W$rJV$9y !#%S%C%H%^%C%W%U%)%s%H $N>l9g$O!"oE,@Z$JBg$-$5$K3HBggʁ=L>.$r$7$?%S- %C%H%^%C%W$r:n$C$FJV$9y !#*iԍq}Ɏq1^ (define-default TVFlib;;VFlibʁA4BN$G$N%G%U- %)%k%HCM$NDj5A NEa(uncompression-programs T(".Z""zcat")(".gz""gzip-cd"))) 򪍑 (define-default Tbdf"};;BDFʁ%U- %)%s%H%/%i%9$N%G%U%)%k%HCM$NDj5AEa(compression-extensions".gz"".Z") Ea(font-directories T"/usr/local/share/fonts/X11//")) mR (define-default Tpcf"};;PCFʁ%U- %)%s%H%/%i%9$N%G%U%)%k%HCM$NDj5AEa(font-directories T"/usr/X11R6/lib/X11/fonts//") NEa(compression-extensions".gz"".Z")) (define-font TtimR24;;"timR24"ʁ%U- %)%s%H$NDj5A(BDFʁ%U- %)!<%^%C%H)Ea(font-classbdf)(dpi300)(point-size24)(font-file"timR24.bdf")) (define-font TtimR18;;"timR18"ʁ%U- %)%s%H$NDj5A(PCFʁ%U- %)!<%^%C%H)Ea(font-classpcf)(dpi300)(point-size24)(font-file"timR18.pcf"))%/ʁ?^f1:vflibcapgʁ%U- %!%$%k$NNc 3 1~MQ%=%U%H%&%(%"$NNcAOUʁ%32%s%Q%&%s%I%F%-%9%H$GId9g2=$5$l$F$$$k%W%l%$%s%F%-%9%H$+$i2hA|%U- %!%$2%k$r:n$k%=%U%H%&%(%" ctext2pgmBʁ$r:n@.$7$?!#7J8=qFb$K;XNa$rKd$a9~$`$3$H$G!"%$%?%j%C%/$d%\!<%k%I$J$I$N%U%)%s%H%U%'!< %9$N@ZBX$d!"oHelv!etiafʁ$dTimesʁ$J$I$N%U- %)%s%H%U%!%_%j!<$N@ZBX$($,J8=qFb$G2DG=$G$"$k!#留ϴYps: currentpoint currentpoint translate 0.84756 0.84756 scale neg exch neg exch translateBPSfile="ml-web-page.eps" llx=109 lly=239 urx=410 ury=490 rwi=3010 eps: currentpoint currentpoint translate 1 0.84756 div 1 0.84756 div scale neg exch neg exch translate^?^f2:ctext2pgmʁ$K$h$kB?8@8lJ8=qOU%3%s%Q%&%s%I%F%-%9%H$H$O/ISO-2022ʁId9g 2=bJ}<0$N%5%V%;^%C%Hb$N$R$H$D$G$"$jy !"LׁJ#?t$NJ8 ;zA=89g$NJ8;z$,:.:_2DG=$J%F%-%9%H$NId9g2= J}<0$G$"$k!#ctext2pgmʁ$G$O!"1Q8l!"%U%i%s %9d8l!"j݁%I%$%D8l!"%m%7%"8l!"Cf9q8l!"4Z9q8l!" F|(K\8l$J$I$NB>!"o1&$+$i:8$XJ8;z$r=q$$$F$f $/A%X%V%i%$8l$d%"%i%S%"8l$,:.:_$7$?%F%-%9 %HM$b%5%]!<%H$7$F$$$k!#oF@$i$l$?2hA|%U- %!%$ %k$ruWWWVʁ%Z!<%8$KF~$l$k$3$H$G!"o?^2ʁ$K <(j$9MM$JB?8@8l̤WWWʁ%Zj!<%8$,:n@.2DG=$H$J $kN!#~(ʁ%F%-%9%H$NF~NO$K$OerMuleʁ%(N%GB%#%?$r;H MQ$7$?!#o)OUʁ$3_$NB>Z:VFlibVʁ$r;H- $C$?T,[wEB XVʁ$N_%W%l%S- %e!< %"!<$d%W%j%s%?%I%i%$%P$b3+H/$7$?!#- 4 7kO@OUVFlibBʁ$rW1~MQ%=%U%H%&%(%"$G;HMQ$9$kMxE@ $O0!"M0J2<$NDL$j$G$"$k!#1.ʁ1~MQ%=%U%H%&%(%" $K+$*$$$FMF0W$K3Fl9g$O%S v%C%H%^%C%W%U%)%s%H$GBeMQ$9$k$h$&y !"vflibcapʁ$G$N%U%)%s%H Djv5A$rJQ99$9$l$P$h$$!#u?$3$N$H$-!"1~MQ%=%U%H%&%(%"$dJ8=q%U%!%$v%k$NJQ99$OITMW$G$"$k!#B?8@8lJ8=q =hM}$K$*$$$F$O3Fl9g$,B?$$$,!"VFlibTʁ$K$h$j$=$NLdBj$,2r7h $G$-$k!#OUVFlib63.4.1ʁ$O ;Cʁ8@58l$G=q$+$l$F$*$jy !"Ls ;2ʁK|8ʁ@i59T$"$k!#F0:n3NG'$O6FereeBSD62.2.2ʁ$HSolaris2.5.1 ʁ$G x9T$J- $C$? x!#oVFlibʁ$OHGNU9LibraryGeneralPublicLicenseʁ$K=>$$!"o%=!<%9%3!<%I0l<0$rL5NA$GG[I[ $7$F$$$k!#o>\:Y$Oghttp://www.se.hiroshima-u.ac.jp/~kakugawa/VFlib/fʁ$r;2>H$5$l$?$$!#- ;29MJ88% [1]Ηʁ6S8+fB>.B 3 goth10B%^%k%A%j%s%,%k4D6-$NhVFlib|ageneralfontlibrarythatsuppMortsmultiplefontformats.>hInΗAPrpoceedingsofEurpoT"R[wE)X98,fMarc!h1998.;iǩ B 3 goth10A': 3 cmti10@kAHff cmssbx10=m#R 3 cmss10p 1107 484 a<3840>p 1245 484 a<386c>p 1383 484 a<3e70>p 1521 484 a<4a73>p 1659 484 a<3d68>p 1797 484 a<4d7d>p 1927 484 a<2537>p 2071 484 a<2539>p 2207 484 a<2546>p 2346 484 a<2560>p 2487 484 a<387e>p 2616 484 a<2431>p 907 691 a<4846>p 1045 691 a<4d51>p 1177 691 a<2555>p 1320 691 a<2529>p 1450 691 a<2573>p 1576 691 a<2548>p 1731 691 a<2569>p 1875 691 a<2524>p 1998 691 a<2556>p 2145 691 a<2569>p 2282 691 a<256a>p Fn 2479 691 a(VFlib) p Fm 1364 969 a<3351>p 1460 969 a<406e>p 1556 969 a<4d35>p 1652 969 a<3c21>p Fl 1897 969 a(\() p Fm 1941 969 a<392d>p 2037 969 a<4567>p 2133 969 a<4267>p 2228 969 a<3358>p Fl 2324 969 a(\)) p Fk -118 1379 a(1) p Fj 79 1379 a<244f>p 191 1379 a<2438>p 311 1379 a<2461>p 426 1379 a<244b>p Fi -38 1509 a<256c>p 56 1509 a<213c>p 142 1509 a<2536>p 230 1509 a<213c>p 311 1509 a<2553>p 405 1509 a<213c>p 492 1509 a<2560>p 572 1509 a<2557>p 668 1509 a<256a>p 751 1509 a<2573>p 841 1509 a<253f>p 926 1509 a<2464>p 1016 1509 a<3962>p 1104 1509 a<3272>p 1191 1509 a<417c>p 1278 1509 a<4559>p 1359 1509 a<2530>p 1451 1509 a<2569>p 1538 1509 a<2555>p 1629 1509 a<2523>p 1693 1509 a<2543>p 1782 1509 a<252f>p 1863 1509 a<2547>p 1958 1509 a<2523>p 2043 1509 a<2539>p 2122 1509 a<2557>p 2210 1509 a<256c>p 2307 1509 a<2524>p 2386 1509 a<242c>p 2478 1509 a<4961>p 2566 1509 a<355a>p 2645 1509 a<2437>p 2744 1509 a<2122>p 2826 1509 a<4a38>p 2914 1509 a<3d71>p 2999 1509 a<244e>p 3088 1509 a<493d>p 3175 1509 a<3c28>p Fh 3282 1509 a(\001) p Fi 3327 1509 a<3075>p 3414 1509 a<3a7e>p 3498 1509 a<2472>p 3588 1509 a<2468>p 3674 1509 a<246a>p 3762 1509 a<487e>p -126 1614 a<2437>p -32 1614 a<242f>p 55 1614 a<3954>p 139 1614 a<244a>p 225 1614 a<2428>p 315 1614 a<246b>p 400 1614 a<2468>p 489 1614 a<2426>p 572 1614 a<244b>p 658 1614 a<244a>p 747 1614 a<2443>p 831 1614 a<243f>p 921 1614 a<2123>p 1000 1614 a<243d>p 1082 1614 a<246c>p 1171 1614 a<244b>p 1262 1614 a<483c>p 1347 1614 a<2424>p 1435 1614 a<4d4d>p 1523 1614 a<2139>p 1603 1614 a<244a>p 1690 1614 a<2555>p 1778 1614 a<2529>p 1859 1614 a<2573>p 1944 1614 a<2548>p 2031 1614 a<242c>p 2123 1614 a<467e>p 2210 1614 a<3c6a>p 2296 1614 a<3244>p 2383 1614 a<473d>p 2466 1614 a<2448>p 2553 1614 a<244a>p 2642 1614 a<2443>p 2724 1614 a<2446>p 2812 1614 a<242d>p 2896 1614 a<2446>p 2986 1614 a<2424>p 3072 1614 a<246b>p 3162 1614 a<2123>p 3243 1614 a<4a38>p 3330 1614 a<3d71>p 3416 1614 a<3d68>p 3503 1614 a<4d7d>p 3587 1614 a<2537>p 3677 1614 a<2539>p 3762 1614 a<2546>p -118 1719 a<2560>p -36 1719 a<244b>p 54 1719 a<242a>p 137 1719 a<2431>p 229 1719 a<246b>p 316 1719 a<493d>p 403 1719 a<3c28>p Fh 510 1719 a(\001) p Fi 554 1719 a<3075>p 640 1719 a<3a7e>p 727 1719 a<4974>p 812 1719 a<244e>p 901 1719 a<332b>p 988 1719 a<482f>p 1072 1719 a<2447>p 1162 1719 a<4c64>p 1248 1719 a<426a>p 1332 1719 a<2448>p 1419 1719 a<244a>p 1509 1719 a<246b>p 1594 1719 a<244e>p 1678 1719 a<242c>p 1774 1719 a<2122>p 1855 1719 a<423f>p 1941 1719 a<242f>p 2027 1719 a<244e>p 2115 1719 a<3c6f>p 2202 1719 a<4e60>p 2287 1719 a<244e>p 2374 1719 a<2555>p 2462 1719 a<2529>p 2543 1719 a<2573>p 2629 1719 a<2548>p 2722 1719 a<3741>p 2809 1719 a<3c30>p 2894 1719 a<244e>p 2983 1719 a<4238>p 3070 1719 a<3a5f>p 3153 1719 a<2447>p 3241 1719 a<2422>p 3330 1719 a<246b>p 3419 1719 a<2123>p 3502 1719 a<317e>p 3589 1719 a<4d51>p 3674 1719 a<253d>p 3760 1719 a<2555>p -124 1823 a<2548>p -34 1823 a<2526>p 53 1823 a<2528>p 139 1823 a<2522>p 226 1823 a<244e>p 313 1823 a<4d78>p 401 1823 a<4d51>p 488 1823 a<3c54>p 570 1823 a<244b>p 658 1823 a<2448>p 746 1823 a<2443>p 829 1823 a<2446>p 914 1823 a<244f>p 1008 1823 a<2122>p 1086 1823 a<2468>p 1171 1823 a<246a>p 1259 1823 a<423f>p 1346 1823 a<242f>p 1431 1823 a<244e>p 1518 1823 a<2555>p 1605 1823 a<2529>p 1686 1823 a<2573>p 1771 1823 a<2548>p 1863 1823 a<3741>p 1950 1823 a<3c30>p 2031 1823 a<242c>p 2122 1823 a<2535>p 2204 1823 a<255d>p 2295 1823 a<213c>p 2375 1823 a<2548>p 2468 1823 a<2435>p 2549 1823 a<246c>p 2639 1823 a<2446>p 2727 1823 a<2424>p 2815 1823 a<246b>p 2898 1823 a<2433>p 2985 1823 a<2448>p 3069 1823 a<242c>p 3161 1823 a<4b3e>p 3248 1823 a<245e>p 3326 1823 a<2437>p 3420 1823 a<2424>p 3508 1823 a<2123>p 3590 1823 a<3555>p 3672 1823 a<244b>p 3763 1823 a<332b>p -118 1928 a<482f>p -31 1928 a<3c54>p 53 1928 a<244b>p 141 1928 a<2448>p 230 1928 a<2443>p 315 1928 a<2446>p 402 1928 a<244f>p 497 1928 a<2122>p 577 1928 a<2555>p 666 1928 a<2529>p 748 1928 a<2573>p 835 1928 a<2548>p 928 1928 a<3741>p 1016 1928 a<3c30>p 1101 1928 a<243d>p 1184 1928 a<246c>p 1272 1928 a<243e>p 1360 1928 a<246c>p 1448 1928 a<244b>p 1540 1928 a<4250>p 1626 1928 a<2439>p 1713 1928 a<246b>p 1799 1928 a<2555>p 1888 1928 a<2529>p 1970 1928 a<2573>p 2057 1928 a<2548>p 2148 1928 a<2555>p 2234 1928 a<2521>p 2327 1928 a<2524>p 2409 1928 a<256b>p 2499 1928 a<4649>p 2585 1928 a<245f>p 2674 1928 a<3d50>p 2753 1928 a<2437>p 2848 1928 a<4974>p 2933 1928 a<2472>p 3023 1928 a<3a6e>p 3110 1928 a<402e>p 3197 1928 a<2439>p 3284 1928 a<246b>p 3372 1928 a<492c>p 3460 1928 a<4d57>p 3542 1928 a<242c>p 3632 1928 a<2422>p 3721 1928 a<246a>p 3808 1928 a<2122>p -118 2032 a<332b>p -31 2032 a<482f>p 55 2032 a<244e>p 144 2032 a<3c6a>p 232 2032 a<3456>p 314 2032 a<242c>p 407 2032 a<417d>p 491 2032 a<2428>p 579 2032 a<2446>p 661 2032 a<2437>p 757 2032 a<245e>p 846 2032 a<2426>p 931 2032 a<2123>p -31 2137 a<4846>p 58 2137 a<4d51>p 145 2137 a<2555>p 234 2137 a<2529>p 317 2137 a<2573>p 404 2137 a<2548>p 497 2137 a<2569>p 591 2137 a<2524>p 668 2137 a<2556>p 763 2137 a<2569>p 855 2137 a<256a>p Fg 977 2137 a(VFlib) p Ff 1216 2137 a(3.4.1) p Fi 1435 2137 a<244f>p Ff 1549 2137 a(C) p Fi 1638 2137 a<3840>p 1726 2137 a<386c>p 1812 2137 a<2447>p 1904 2137 a<352d>p 1992 2137 a<3d52>p 2080 2137 a<2435>p 2164 2137 a<246c>p 2257 2137 a<243f>p 2345 2137 a<2569>p 2439 2137 a<2524>p 2517 2137 a<2556>p 2611 2137 a<2569>p 2703 2137 a<256a>p 2789 2137 a<2447>p 2883 2137 a<2122>p 2965 2137 a<2555>p 3055 2137 a<2529>p 3137 2137 a<2573>p 3225 2137 a<2548>p 3319 2137 a<3741>p 3408 2137 a<3c30>p 3493 2137 a<244b>p 3585 2137 a<304d>p 3674 2137 a<4238>p 3755 2137 a<2437>p -121 2241 a<244a>p -30 2241 a<2424>p 60 2241 a<3741>p 148 2241 a<2447>p 239 2241 a<2555>p 328 2241 a<2529>p 411 2241 a<2573>p 499 2241 a<2548>p 592 2241 a<2472>p 685 2241 a<4d78>p 775 2241 a<4d51>p 865 2241 a<3244>p 954 2241 a<473d>p 1041 2241 a<2448>p 1126 2241 a<2437>p 1222 2241 a<243f>p 1313 2241 a<3458>p 1403 2241 a<3f74>p 1493 2241 a<3732>p 1580 2241 a<2472>p 1672 2241 a<4473>p 1762 2241 a<3621>p 1851 2241 a<2439>p 1941 2241 a<246b>p 2033 2241 a<2123>p Ff 2119 2241 a(\() p Fi 2154 2241 a<383d>p 2244 2241 a<3a5f>p 2338 2241 a<2122>p Ff 2422 2241 a(BDF,) p 2681 2241 a(PCF,) p 2934 2241 a(HBF,) p Fi 3192 2241 a<3d71>p 3281 2241 a<424e>p 3371 2241 a<3666>p 3461 2241 a<335a>p 3551 2241 a<4974>p Ff 3638 2241 a(,) p 3707 2241 a(JG,) -118 2346 y(T) p -60 2346 a(rueT) m(yp) s(e,) p 327 2346 a(PK,) p 515 2346 a(GF,) p 701 2346 a(TFM) p Fi 937 2346 a<244e>p 1025 2346 a<2555>p 1114 2346 a<2529>p 1197 2346 a<2573>p 1283 2346 a<2548>p 1376 2346 a<3741>p 1464 2346 a<3c30>p 1548 2346 a<2472>p 1638 2346 a<2535>p 1721 2346 a<255d>p 1813 2346 a<213c>p 1894 2346 a<2548>p 1980 2346 a<2437>p 2073 2346 a<2446>p 2162 2346 a<2424>p 2251 2346 a<246b>p 2340 2346 a<2123>p Ff 2425 2346 a(\)) p Fg 2491 2346 a(VFlib) p Fi 2710 2346 a<244f>p 2801 2346 a<4148>p 2889 2346 a<4847>p 2974 2346 a<244e>p 3062 2346 a<3059>p 3149 2346 a<244e>p 3238 2346 a<3521>p 3326 2346 a<473d>p 3409 2346 a<244f>p 3501 2346 a<3b7d>p 3586 2346 a<243f>p 3673 2346 a<244a>p 3762 2346 a<2424>p -123 2450 a<242c>p -27 2450 a<2122>p 55 2450 a<4d57>p 143 2450 a<3561>p 229 2450 a<2435>p 311 2450 a<246c>p 403 2450 a<243f>p 490 2450 a<2555>p 578 2450 a<2529>p 660 2450 a<2573>p 747 2450 a<2548>p 837 2450 a<2448>p 927 2450 a<4a38>p 1015 2450 a<3b7a>p 1099 2450 a<2533>p 1188 2450 a<213c>p 1263 2450 a<2549>p 1360 2450 a<244b>p 1451 2450 a<4250>p 1537 2450 a<2439>p 1624 2450 a<246b>p 1705 2450 a<2553>p 1798 2450 a<2543>p 1880 2450 a<2548>p 1974 2450 a<255e>p 2059 2450 a<2543>p 2139 2450 a<2557>p 2232 2450 a<2472>p 2322 2450 a<4a56>p 2408 2450 a<2439>p 2493 2450 a<2569>p 2585 2450 a<2539>p 2671 2450 a<253f>p 2755 2450 a<2569>p 2847 2450 a<2524>p 2931 2450 a<2536>p 3016 2450 a<2448>p 3099 2450 a<2437>p 3191 2450 a<2446>p 3279 2450 a<244e>p 3369 2450 a<3521>p 3456 2450 a<473d>p 3540 2450 a<2472>p 3630 2450 a<3b7d>p 3717 2450 a<2444>p 3806 2450 a<2123>p Ff -118 2555 a(P) m(ostScript) p Fi 324 2555 a<2555>p 410 2555 a<2521>p 504 2555 a<2524>p 585 2555 a<256b>p 673 2555 a<2464>p Ff 792 2555 a(D) m(VI) p Fi 988 2555 a<2555>p 1075 2555 a<2521>p 1168 2555 a<2524>p 1249 2555 a<256b>p 1338 2555 a<244e>p 1419 2555 a<2557>p 1515 2555 a<256a>p 1598 2555 a<2573>p 1688 2555 a<253f>p 1763 2555 a<2549>p 1862 2555 a<2569>p 1953 2555 a<2524>p 2036 2555 a<2550>p 2123 2555 a<244a>p 2203 2555 a<2449>p 2305 2555 a<2122>p 2387 2555 a<4148>p 2475 2555 a<4847>p 2562 2555 a<3a51>p 2648 2555 a<245f>p 2737 2555 a<4a38>p 2824 2555 a<3d71>p 2909 2555 a<2472>p 2999 2555 a<493d>p 3087 2555 a<3c28>p Fh 3194 2555 a(\001) p Fi 3239 2555 a<3075>p 3326 2555 a<3a7e>p 3413 2555 a<2439>p 3500 2555 a<246b>p 3586 2555 a<253d>p 3674 2555 a<2555>p 3757 2555 a<2548>p -120 2659 a<2526>p -33 2659 a<2528>p 57 2659 a<2522>p 147 2659 a<4662>p 235 2659 a<4974>p 322 2659 a<244e>p 410 2659 a<2555>p 499 2659 a<2529>p 582 2659 a<2573>p 669 2659 a<2548>p 761 2659 a<2562>p 848 2659 a<2538>p 937 2659 a<2565>p 1026 2659 a<213c>p 1111 2659 a<256b>p 1200 2659 a<2448>p 1284 2659 a<2437>p 1377 2659 a<2446>p 1468 2659 a<4d78>p 1556 2659 a<4d51>p 1645 2659 a<3244>p 1733 2659 a<473d>p 1818 2659 a<2447>p 1908 2659 a<2422>p 1998 2659 a<246b>p 2088 2659 a<2123>p 2174 2659 a<245e>p 2260 2659 a<243f>p 2350 2659 a<4250>p 2439 2659 a<3e5d>p 2524 2659 a<2448>p 2614 2659 a<2439>p 2703 2659 a<246b>p 2791 2659 a<4a38>p 2880 2659 a<3b7a>p 2968 2659 a<3d38>p 3057 2659 a<3967>p 3141 2659 a<244b>p 3229 2659 a<244f>p 3322 2659 a<4029>p 3410 2659 a<3842>p 3495 2659 a<2472>p 3578 2659 a<2437>p 3672 2659 a<2446>p 3762 2659 a<242a>p -122 2764 a<2469>p -33 2764 a<243a>p 58 2764 a<2122>p 141 2764 a<423f>p 229 2764 a<3840>p 317 2764 a<386c>p 406 2764 a<3e70>p 494 2764 a<4a73>p 582 2764 a<3d68>p 670 2764 a<4d7d>p 756 2764 a<253d>p 844 2764 a<2555>p 929 2764 a<2548>p 1021 2764 a<2526>p 1109 2764 a<2528>p 1197 2764 a<2522>p 1285 2764 a<244e>p 1376 2764 a<4974>p 1464 2764 a<494a>p 1549 2764 a<2448>p 1632 2764 a<2437>p 1725 2764 a<2446>p 1815 2764 a<2462>p 1905 2764 a<4d78>p 1993 2764 a<4d51>p 2081 2764 a<3244>p 2169 2764 a<473d>p 2255 2764 a<2447>p 2344 2764 a<2422>p 2434 2764 a<246b>p 2524 2764 a<2123>p 2609 2764 a<4b5c>p 2698 2764 a<3946>p 2783 2764 a<2447>p 2870 2764 a<244f>p Fg 2995 2764 a(VFlib) p Ff 3231 2764 a(3.4.1) p Fi 3450 2764 a<244e>p 3540 2764 a<3335>p 3628 2764 a<4d57>p 3714 2764 a<2448>p 3809 2764 a<2122>p Fg -118 2869 a(VFlib) p Fi 102 2869 a<2472>p 192 2869 a<4d78>p 280 2869 a<4d51>p 359 2869 a<2437>p 453 2869 a<243f>p 542 2869 a<317e>p 629 2869 a<4d51>p 715 2869 a<253d>p 802 2869 a<2555>p 886 2869 a<2548>p 977 2869 a<2526>p 1065 2869 a<2528>p 1152 2869 a<2522>p 1238 2869 a<244b>p 1328 2869 a<2444>p 1415 2869 a<2424>p 1500 2869 a<2446>p 1592 2869 a<3e52>p 1679 2869 a<3270>p 1766 2869 a<2439>p 1853 2869 a<246b>p 1943 2869 a<2123>p Fk -118 3094 a(2) p Fe 84 3094 a(VFlib) p Fj 391 3094 a<244e>p 508 3094 a<3458>p 623 3094 a<3f74>p 734 3094 a<2448>p 853 3094 a<4662>p 968 3094 a<4974>p 1083 3094 a<393d>p 1198 3094 a<4224>p Fg -31 3225 a(VFlib) p Fi 189 3225 a<244f>p Ff 301 3225 a(C) p Fi 388 3225 a<3840>p 475 3225 a<386c>p 560 3225 a<2447>p 651 3225 a<352d>p 738 3225 a<3d52>p 825 3225 a<2435>p 908 3225 a<246c>p 1000 3225 a<243f>p 1090 3225 a<3458>p 1177 3225 a<3f74>p 1265 3225 a<3732>p 1350 3225 a<2447>p 1439 3225 a<2422>p 1528 3225 a<246a>p 1615 3225 a<2122>p 1697 3225 a<2569>p 1790 3225 a<2524>p 1867 3225 a<2556>p 1960 3225 a<2569>p 2050 3225 a<256a>p Ff 2170 3225 a(\() p Fd(libVFlib3.a) p Ff(\)) p Fi 2794 3225 a<2448>p 2877 3225 a<2437>p 2969 3225 a<2446>p 3060 3225 a<317e>p 3148 3225 a<4d51>p 3234 3225 a<253d>p 3322 3225 a<2555>p 3405 3225 a<2548>p 3497 3225 a<2526>p 3585 3225 a<2528>p 3673 3225 a<2522>p 3759 3225 a<244b>p -117 3329 a<256a>p -36 3329 a<2573>p 55 3329 a<252f>p 140 3329 a<2435>p 220 3329 a<246c>p 309 3329 a<2446>p 398 3329 a<3b48>p 484 3329 a<4d51>p 569 3329 a<2435>p 650 3329 a<246c>p 742 3329 a<246b>p 830 3329 a<2123>p Fg 908 3329 a(VFlib) p Fi 1123 3329 a<244f>p 1214 3329 a<4f40>p 1300 3329 a<4d7d>p 1386 3329 a<452a>p 1469 3329 a<244a>p 1556 3329 a<2555>p 1641 3329 a<2529>p 1720 3329 a<2573>p 1806 3329 a<2548>p 1895 3329 a<2472>p 1984 3329 a<4473>p 2070 3329 a<3621>p 2148 3329 a<2437>p 2246 3329 a<2122>p 2321 3329 a<4f40>p 2408 3329 a<4d7d>p 2494 3329 a<452a>p 2577 3329 a<244a>p 2664 3329 a<2555>p 2749 3329 a<2529>p 2828 3329 a<2573>p 2913 3329 a<2548>p 3002 3329 a<2448>p 3091 3329 a<3c42>p 3177 3329 a<3a5d>p 3261 3329 a<244e>p 3347 3329 a<2555>p 3432 3329 a<2529>p 3512 3329 a<2573>p 3597 3329 a<2548>p 3687 3329 a<2555>p 3769 3329 a<2521>p -115 3434 a<2524>p -35 3434 a<256b>p 53 3434 a<244e>p 141 3434 a<3458>p 227 3434 a<3738>p 310 3434 a<244f>p Fd 419 3434 a(vflibcap) p Fi 825 3434 a<2448>p 915 3434 a<3846>p 994 3434 a<2450>p 1082 3434 a<246c>p 1174 3434 a<246b>p 1258 3434 a<2555>p 1345 3434 a<2529>p 1425 3434 a<2573>p 1510 3434 a<2548>p 1597 3434 a<2547>p 1688 3434 a<213c>p 1773 3434 a<253f>p 1859 3434 a<2559>p 1947 3434 a<213c>p 2034 3434 a<2539>p 2118 3434 a<244b>p 2207 3434 a<352d>p 2293 3434 a<3d52>p 2379 3434 a<2439>p 2465 3434 a<246b>p 2554 3434 a<2123>p Fg 2634 3434 a(VFlib) p Fi 2850 3434 a<242c>p 2941 3434 a<4473>p 3028 3434 a<3621>p 3113 3434 a<2439>p 3199 3434 a<246b>p 3286 3434 a<3458>p 3373 3434 a<3f74>p 3457 3434 a<244e>p 3546 3434 a<306c>p 3632 3434 a<4974>p 3715 3434 a<2472>p 3809 3434 a<2122>p -118 3538 a<304a>p -31 3538 a<323c>p 53 3538 a<244b>p 144 3538 a<3c28>p 231 3538 a<2439>p 316 3538 a<2123>p Fh -15 3679 a(\017) p Fd 57 3679 a(int) p 248 3679 a(VF) p 350 3679 29 4 v 378 3679 a(Init\(char*) p Fc 903 3679 a(vflibcap) p Fd 1300 3679 a(,) p 1396 3679 a(char*) p Fc 1682 3679 a(variable) p 2072 3679 V 2098 3679 a(list) p Fd 2305 3679 a(\)) p Ff 57 3784 a(|) p Fg 178 3784 a(VFlib) p Fi 398 3784 a<2472>p 488 3784 a<3d69>p 576 3784 a<347c>p 663 3784 a<323d>p 750 3784 a<2439>p 837 3784 a<246b>p 927 3784 a<2123>p 1013 3784 a<3a47>p 1101 3784 a<3d69>p 1186 3784 a<244e>p 1276 3784 a<307a>p 1363 3784 a<3f74>p 1446 3784 a<244f>p 1542 3784 a<2122>p Fd 1625 3784 a(vflibcap) p Fi 2036 3784 a<244e>p 2123 3784 a<2551>p 2214 3784 a<2539>p 2301 3784 a<4c3e>p 2384 3784 a<2447>p 2473 3784 a<2422>p 2562 3784 a<246b>p 2652 3784 a<2123>p Fh -15 3906 a(\017) p Fd 57 3906 a(int) p 248 3906 a(VF) p 350 3906 V 378 3906 a(OpenFont1\(char*) p Fc 1141 3906 a(font) p 1339 3906 V 1366 3906 a(name) p Fd 1573 3906 a(,) p 1669 3906 a(double) p Fc 2003 3906 a(dpi) p 2153 3906 V 2180 3906 a(x) p Fd 2244 3906 a(,) p 2339 3906 a(double) p Fc 2673 3906 a(dpi) p 2823 3906 V 2851 3906 a(y) p Fd 2914 3906 a(,) 57 4011 y(double) p Fc 391 4011 a(point) p 637 4011 V 664 4011 a(size) p Fd 871 4011 a(,) p 966 4011 a(double) p Fc 1300 4011 a(mag) p 1450 4011 V 1478 4011 a(x) p Fd 1541 4011 a(,) p 1637 4011 a(double) p Fc 1971 4011 a(mag) p 2121 4011 V 2148 4011 a(y) p Fd 2212 4011 a(\)) p Ff 57 4116 a(|) p Fi 171 4116 a<2555>p 256 4116 a<2529>p 334 4116 a<2573>p 418 4116 a<2548>p Fb 537 4116 a(font) p 698 4116 28 4 v 726 4116 a(name) p Fi 969 4116 a<2472>p 1056 4116 a<252a>p 1142 4116 a<213c>p 1220 4116 a<2557>p 1309 4116 a<2573>p 1398 4116 a<2439>p 1484 4116 a<246b>p 1572 4116 a<2123>p 1646 4116 a<2555>p 1730 4116 a<2529>p 1808 4116 a<2573>p 1893 4116 a<2548>p 1983 4116 a<2535>p 2073 4116 a<2524>p 2152 4116 a<253a>p 2237 4116 a<244f>p 2330 4116 a<2122>p 2404 4116 a<3c42>p 2489 4116 a<3954>p 2574 4116 a<3b7e>p 2656 4116 a<244b>p 2745 4116 a<307a>p 2831 4116 a<3f74>p 2913 4116 a<2447>p 3002 4116 a<3b58>p 3087 4116 a<446a>p 3173 4116 a<3244>p 3258 4116 a<473d>p 3341 4116 a<2447>p 3427 4116 a<2422>p 3515 4116 a<246b>p 3602 4116 a<2123>p 3675 4116 a<252a>p 3762 4116 a<213c>p 49 4220 a<2557>p 139 4220 a<2573>p 228 4220 a<244b>p 319 4220 a<402e>p 407 4220 a<3879>p 493 4220 a<2439>p 581 4220 a<246b>p 666 4220 a<2448>p 761 4220 a<2122>p 842 4220 a<2555>p 932 4220 a<2529>p 1014 4220 a<2573>p 1101 4220 a<2548>p 1194 4220 a<3c31>p 1281 4220 a<4a4c>p 1369 4220 a<3b52>p 1451 4220 a<242c>p 1544 4220 a<4a56>p 1630 4220 a<2435>p 1713 4220 a<246c>p 1806 4220 a<246b>p 1895 4220 a<2123>p Fh -15 4343 a(\017) p Fd 57 4343 a(VF) p 159 4343 29 4 v 187 4343 a(BITMAP) p 521 4343 a(VF) p 623 4343 V 651 4343 a(GetBitmap1\(int) p Fc 1366 4343 a(font) p 1564 4343 V 1592 4343 a(id) p Fd 1703 4343 a(,) p 1798 4343 a(long) p Fc 2037 4343 a(code) p 2235 4343 V 2262 4343 a(point) p Fd 2517 4343 a(,) 57 4447 y(double) p Fc 391 4447 a(mag) p 541 4447 V 568 4447 a(x) p Fd(,) p 712 4447 a(double) p Fc 1046 4447 a(mag) p 1196 4447 V 1223 4447 a(y) p Fd 1287 4447 a(\)) p Ff 57 4552 a(|) p Fi 178 4552 a<3b58>p 266 4552 a<446a>p 345 4552 a<2437>p 438 4552 a<243f>p 526 4552 a<2555>p 615 4552 a<2529>p 698 4552 a<2573>p 784 4552 a<2548>p 878 4552 a<3c31>p 965 4552 a<4a4c>p 1053 4552 a<3b52>p 1138 4552 a<244e>p 1226 4552 a<2555>p 1315 4552 a<2529>p 1398 4552 a<2573>p 1484 4552 a<2548>p 1575 4552 a<2447>p 1663 4552 a<244e>p 1757 4552 a<2122>p 1840 4552 a<3b58>p 1928 4552 a<446a>p 2007 4552 a<2437>p 2100 4552 a<243f>p 2190 4552 a<4a38>p 2277 4552 a<3b7a>p 2362 4552 a<2533>p 2451 4552 a<213c>p 2527 4552 a<2549>p 2625 4552 a<244e>p 2708 4552 a<2553>p 2801 4552 a<2543>p 2884 4552 a<2548>p 2977 4552 a<255e>p 3064 4552 a<2543>p 3144 4552 a<2557>p 3237 4552 a<2472>p 3327 4552 a<4640>p 3415 4552 a<246b>p 3504 4552 a<2123>p -31 4693 a<3e65>p 57 4693 a<352d>p 142 4693 a<244e>p Fg 262 4693 a(VFlib) p Fi 484 4693 a<3458>p 572 4693 a<3f74>p 658 4693 a<2468>p 746 4693 a<246a>p 833 4693 a<4a2c>p 917 4693 a<242b>p 1009 4693 a<246b>p 1095 4693 a<2468>p 1186 4693 a<2426>p 1267 4693 a<244b>p 1362 4693 a<2122>p 1445 4693 a<317e>p 1533 4693 a<4d51>p 1618 4693 a<253d>p 1706 4693 a<2555>p 1789 4693 a<2548>p 1880 4693 a<2526>p 1968 4693 a<2528>p 2055 4693 a<2522>p 2144 4693 a<4226>p 2228 4693 a<244f>p 2319 4693 a<4f40>p 2407 4693 a<4d7d>p 2494 4693 a<452a>p 2578 4693 a<244a>p 2667 4693 a<2555>p 2756 4693 a<2529>p 2839 4693 a<2573>p 2925 4693 a<2548>p 3018 4693 a<4c3e>p 3103 4693 a<2472>p 3193 4693 a<3b58>p 3280 4693 a<446a>p 3367 4693 a<2439>p 3454 4693 a<246b>p 3538 4693 a<2440>p 3626 4693 a<2431>p 3714 4693 a<2447>p 3809 4693 a<2122>p -120 4797 a<2555>p -33 4797 a<2529>p 49 4797 a<2573>p 134 4797 a<2548>p 227 4797 a<3741>p 314 4797 a<3c30>p 398 4797 a<2472>p 487 4797 a<3b58>p 574 4797 a<446a>p 660 4797 a<2439>p 747 4797 a<246b>p 834 4797 a<492c>p 922 4797 a<4d57>p 1004 4797 a<244f>p 1092 4797 a<244a>p 1181 4797 a<2424>p 1271 4797 a<2123>p 1353 4797 a<4f40>p 1440 4797 a<4d7d>p 1527 4797 a<452a>p 1610 4797 a<244a>p 1698 4797 a<2555>p 1786 4797 a<2529>p 1867 4797 a<2573>p 1953 4797 a<2548>p 2044 4797 a<244e>p 2133 4797 a<3671>p 2219 4797 a<424e>p 2306 4797 a<452a>p 2390 4797 a<244a>p 2480 4797 a<446a>p 2567 4797 a<3541>p 2650 4797 a<244f>p Fd 2770 4797 a(vflibcap) p Fi 3178 4797 a<2447>p 3267 4797 a<352d>p 3354 4797 a<3d52>p 3440 4797 a<2439>p 3527 4797 a<246b>p 3616 4797 a<2123>p 3699 4797 a<3f5e>p Ff 3805 4797 a(1) p Fi -122 4902 a<244b>p -33 4902 a<243d>p 55 4902 a<244e>p 145 4902 a<4e63>p 229 4902 a<2472>p 320 4902 a<3c28>p 407 4902 a<2439>p 492 4902 a<2123>p Ff 578 4902 a(\() p Fi 610 4902 a<2433>p 699 4902 a<244e>p 789 4902 a<4e63>p 873 4902 a<2447>p 960 4902 a<244f>p 1056 4902 a<2122>p 1139 4902 a<4673>p 1226 4902 a<2444>p 1311 4902 a<244e>p 1400 4902 a<2555>p 1490 4902 a<2529>p 1572 4902 a<2573>p 1659 4902 a<2548>p Fd 1783 4902 a(timR24) p Fi 2098 4902 a<2448>p Fd 2219 4902 a(timR18) p Fi 2532 4902 a<242c>p 2624 4902 a<446a>p 2712 4902 a<3541>p 2798 4902 a<2435>p 2881 4902 a<246c>p 2972 4902 a<2446>p 3061 4902 a<2424>p 3150 4902 a<246b>p 3239 4902 a<2123>p 3325 4902 a<245e>p 3410 4902 a<243f>p 3504 4902 a<2122>p 3586 4902 a<2555>p 3675 4902 a<2529>p 3758 4902 a<2573>p -124 5006 a<2548>p -34 5006 a<2555>p 50 5006 a<2521>p 141 5006 a<2524>p 222 5006 a<256b>p 306 5006 a<242c>p 398 5006 a<3035>p 484 5006 a<3d4c>p 570 5006 a<2435>p 651 5006 a<246c>p 741 5006 a<2446>p 829 5006 a<2424>p 917 5006 a<246b>p 999 5006 a<242b>p 1080 5006 a<2449>p 1178 5006 a<2426>p 1258 5006 a<242b>p 1346 5006 a<2472>p 1435 5006 a<3c2b>p 1522 5006 a<4630>p 1608 5006 a<483d>p 1695 5006 a<4a4c>p 1773 5006 a<2437>p 1872 5006 a<2122>p 1950 5006 a<492c>p 2037 5006 a<4d57>p 2120 5006 a<244a>p 2205 5006 a<2469>p 2289 5006 a<2450>p 2380 5006 a<2555>p 2467 5006 a<2529>p 2547 5006 a<2573>p 2633 5006 a<2548>p 2723 5006 a<252a>p 2811 5006 a<213c>p 2890 5006 a<2557>p 2980 5006 a<2573>p 3071 5006 a<3b7e>p 3154 5006 a<244b>p 3244 5006 a<3272>p 3331 5006 a<4560>p 3416 5006 a<2439>p 3503 5006 a<246b>p 3589 5006 a<2468>p 3677 5006 a<2426>p 3763 5006 a<352d>p -118 5111 a<3d52>p -39 5111 a<2437>p 54 5111 a<2446>p 143 5111 a<2424>p 232 5111 a<246b>p 321 5111 a<2123>p Ff 407 5111 a(\)) p Fi -31 5216 a<3346>p 56 5216 a<3c6f>p 140 5216 a<244e>p 227 5216 a<2555>p 313 5216 a<2529>p 394 5216 a<2573>p 480 5216 a<2548>p 572 5216 a<3741>p 659 5216 a<3c30>p 742 5216 a<2472>p 831 5216 a<2535>p 913 5216 a<255d>p 1004 5216 a<213c>p 1084 5216 a<2548>p 1178 5216 a<3244>p 1264 5216 a<473d>p 1348 5216 a<2448>p 1436 5216 a<2439>p 1523 5216 a<246b>p 1608 5216 a<243f>p 1694 5216 a<2461>p 1787 5216 a<2122>p 1863 5216 a<2555>p 1950 5216 a<2529>p 2030 5216 a<2573>p 2116 5216 a<2548>p 2209 5216 a<3741>p 2295 5216 a<3c30>p 2380 5216 a<243d>p 2462 5216 a<246c>p 2549 5216 a<243e>p 2636 5216 a<246c>p 2724 5216 a<244b>p 2814 5216 a<4250>p 2901 5216 a<317e>p 2979 5216 a<2437>p 3072 5216 a<243f>p 3158 5216 a<2555>p 3245 5216 a<2529>p 3325 5216 a<2573>p 3411 5216 a<2548>p 3491 5216 a<2549>p 3588 5216 a<2569>p 3678 5216 a<2524>p 3760 5216 a<2550>p -121 5320 a<2472>p Fg -3 5320 a(VFlib) p Fi 216 5320 a<244e>p 305 5320 a<4662>p 391 5320 a<4974>p 475 5320 a<2447>p 564 5320 a<4d51>p 651 5320 a<3055>p 729 5320 a<2437>p 821 5320 a<2446>p 909 5320 a<2424>p 997 5320 a<246b>p 1085 5320 a<2123>p 1164 5320 a<2555>p 1252 5320 a<2529>p 1332 5320 a<2573>p 1417 5320 a<2548>p 1505 5320 a<242c>p 1594 5320 a<252a>p 1682 5320 a<213c>p 1760 5320 a<2557>p 1851 5320 a<2573>p 1941 5320 a<2435>p 2023 5320 a<246c>p 2115 5320 a<246b>p 2199 5320 a<2448>p 2286 5320 a<242d>p 2371 5320 a<244f>p Fd 2490 5320 a(vflibcap) p Fi 2897 5320 a<2472>p 2987 5320 a<3b32>p 3073 5320 a<3e48>p 3152 5320 a<2437>p 3243 5320 a<2446>p 3331 5320 a<2555>p 3418 5320 a<2529>p 3499 5320 a<2573>p 3584 5320 a<2548>p 3676 5320 a<3741>p 3763 5320 a<3c30>p -121 5425 a<2472>p -32 5425 a<4434>p 53 5425 a<2459>p 146 5425 a<2122>p 224 5425 a<2555>p 312 5425 a<2529>p 393 5425 a<2573>p 478 5425 a<2548>p 571 5425 a<3741>p 658 5425 a<3c30>p 741 5425 a<244b>p 831 5425 a<4250>p 918 5425 a<317e>p 997 5425 a<2437>p 1090 5425 a<243f>p 1177 5425 a<2555>p 1264 5425 a<2529>p 1345 5425 a<2573>p 1431 5425 a<2548>p 1512 5425 a<2549>p 1609 5425 a<2569>p 1699 5425 a<2524>p 1781 5425 a<2550>p 1868 5425 a<2472>p 1958 5425 a<3846>p 2037 5425 a<2453>p 2131 5425 a<3d50>p 2210 5425 a<2437>p 2302 5425 a<2446>p 2389 5425 a<2555>p 2477 5425 a<2529>p 2558 5425 a<2573>p 2644 5425 a<2548>p 2734 5425 a<2472>p 2821 5425 a<252a>p 2909 5425 a<213c>p 2988 5425 a<2557>p 3079 5425 a<2573>p 3170 5425 a<2439>p 3257 5425 a<246b>p 3346 5425 a<2123>p 3421 5425 a<2553>p 3513 5425 a<2543>p 3594 5425 a<2548>p 3687 5425 a<255e>p 3771 5425 a<2543>p -126 5529 a<2557>p -32 5529 a<4d57>p 55 5529 a<3561>p 138 5529 a<244b>p 228 5529 a<4250>p 307 5529 a<2437>p 399 5529 a<2446>p 486 5529 a<2462>p 579 5529 a<2122>p 656 5529 a<2555>p 744 5529 a<2529>p 824 5529 a<2573>p 910 5529 a<2548>p 1002 5529 a<3741>p 1089 5529 a<3c30>p 1171 5529 a<244b>p 1262 5529 a<4250>p 1349 5529 a<317e>p 1427 5529 a<2437>p 1520 5529 a<243f>p 1607 5529 a<2555>p 1694 5529 a<2529>p 1775 5529 a<2573>p 1860 5529 a<2548>p 1941 5529 a<2549>p 2037 5529 a<2569>p 2128 5529 a<2524>p 2210 5529 a<2550>p 2296 5529 a<2472>p 2386 5529 a<3846>p 2466 5529 a<2453>p 2559 5529 a<3d50>p 2645 5529 a<2439>p 2731 5529 a<2123>p 2810 5529 a<2462>p 2891 5529 a<2437>p 2983 5529 a<2555>p 3071 5529 a<2529>p 3152 5529 a<2573>p 3237 5529 a<2548>p 3325 5529 a<242c>p 3414 5529 a<2522>p 3501 5529 a<2526>p 3584 5529 a<2548>p 3674 5529 a<2569>p 3766 5529 a<2524>p -123 5634 a<2573>p -34 5634 a<2555>p 54 5634 a<2529>p 135 5634 a<2573>p 221 5634 a<2548>p 310 5634 a<244a>p 396 5634 a<2469>p 480 5634 a<2450>p 577 5634 a<2122>p 655 5634 a<2522>p 742 5634 a<2526>p 825 5634 a<2548>p 915 5634 a<2569>p 1006 5634 a<2524>p 1086 5634 a<2573>p 1172 5634 a<2547>p 1263 5634 a<213c>p 1349 5634 a<253f>p 1434 5634 a<2472>p 1522 5634 a<2569>p 1611 5634 a<2539>p 1698 5634 a<253f>p 1782 5634 a<2569>p 1873 5634 a<2524>p 1955 5634 a<253a>p 2037 5634 a<2437>p 2125 5634 a<2553>p 2216 5634 a<2543>p 2297 5634 a<2548>p 2390 5634 a<255e>p 2474 5634 a<2543>p 2553 5634 a<2557>p 2645 5634 a<2472>p 2735 5634 a<4a56>p 2820 5634 a<2439>p 2906 5634 a<2123>p 2981 5634 a<2553>p 3073 5634 a<2543>p 3154 5634 a<2548>p 3246 5634 a<255e>p 3331 5634 a<2543>p 3410 5634 a<2557>p 3502 5634 a<2555>p 3590 5634 a<2529>p 3671 5634 a<2573>p 3757 5634 a<2548>p -120 5738 a<244e>p -31 5738 a<3e6c>p 57 5738 a<3967>p 140 5738 a<244f>p 236 5738 a<2122>p 319 5738 a<452c>p 407 5738 a<405a>p 491 5738 a<244a>p 582 5738 a<4267>p 667 5738 a<242d>p 756 5738 a<2435>p 839 5738 a<244b>p 932 5738 a<3348>p 1019 5738 a<4267>p Fh 1126 5738 a(\001) p Fi 1172 5738 a<3d4c>p 1259 5738 a<3e2e>p 1344 5738 a<2472>p 1426 5738 a<2437>p 1520 5738 a<243f>p 1602 5738 a<2553>p 1696 5738 a<2543>p 1778 5738 a<2548>p 1872 5738 a<255e>p 1958 5738 a<2543>p 2039 5738 a<2557>p 2131 5738 a<2472>p 2221 5738 a<3a6e>p 2309 5738 a<2443>p 2394 5738 a<2446>p 2484 5738 a<4a56>p 2570 5738 a<2439>p 2656 5738 a<2123>p eop %%Page: 2 2 2 1 bop Fd -118 94 a(\(define-default) p 693 94 a(VFlib) p 1123 94 a(;;) p 1266 94 a(VFlib) p Fi 1552 94 a<4134>p 1640 94 a<424e>p 1724 94 a<2447>p 1813 94 a<244e>p 1896 94 a<2547>p 1988 94 a<2555>p 2077 94 a<2529>p 2162 94 a<256b>p 2246 94 a<2548>p 2340 94 a<434d>p 2425 94 a<244e>p 2515 94 a<446a>p 2602 94 a<3541>p Fd -23 172 a(\(uncompression-programs) p 1171 172 a(\(".Z") p 1457 172 a("zcat"\)) p 1839 172 a(\(".gz") p 2173 172 a("gzip) p 2459 172 a(-cd"\)\)\)) -118 271 y(\(define-default) p 693 271 a(bdf) p 1123 271 a(;;) p 1266 271 a(BDF) p Fi 1455 271 a<2555>p 1544 271 a<2529>p 1627 271 a<2573>p 1713 271 a<2548>p 1808 271 a<252f>p 1893 271 a<2569>p 1983 271 a<2539>p 2068 271 a<244e>p 2151 271 a<2547>p 2242 271 a<2555>p 2332 271 a<2529>p 2416 271 a<256b>p 2501 271 a<2548>p 2594 271 a<434d>p 2680 271 a<244e>p 2769 271 a<446a>p 2856 271 a<3541>p Fd -23 348 a(\(compression-extensions) p 1123 348 a(".gz") p 1409 348 a(".Z"\)) -23 440 y(\(font-directories) p 884 440 a("/usr/local/share/fonts/X) o(11//) o("\)\)) -118 526 y(\(define-default) p 693 526 a(pcf) p 1123 526 a(;;) p 1266 526 a(PCF) p Fi 1455 526 a<2555>p 1544 526 a<2529>p 1627 526 a<2573>p 1713 526 a<2548>p 1808 526 a<252f>p 1893 526 a<2569>p 1983 526 a<2539>p 2068 526 a<244e>p 2151 526 a<2547>p 2242 526 a<2555>p 2332 526 a<2529>p 2416 526 a<256b>p 2501 526 a<2548>p 2594 526 a<434d>p 2680 526 a<244e>p 2769 526 a<446a>p 2856 526 a<3541>p Fd -23 618 a(\(font-directories) p 884 618 a("/usr/X11R6/lib/X11/fonts) o (//"\)) -23 695 y(\(compression-extensions) p 1123 695 a(".gz") p 1409 695 a(".Z"\)\)) -118 850 y(\(define-font) p 550 850 a(timR24) p 1027 850 a(;;) p 1171 850 a("timR24") p Fi 1598 850 a<2555>p 1688 850 a<2529>p 1770 850 a<2573>p 1856 850 a<2548>p 1948 850 a<244e>p 2036 850 a<446a>p 2125 850 a<3541>p Fd 2260 850 a(\(BDF) p Fi 2497 850 a<2555>p 2586 850 a<2529>p 2673 850 a<213c>p 2760 850 a<255e>p 2848 850 a<2543>p 2930 850 a<2548>p Fd 3024 850 a(\)) -23 927 y(\(font-class) p 550 927 a(bdf\)) p 789 927 a(\(dpi) p 1027 927 a(300\)) p 1266 927 a(\(point-size) p 1839 927 a(24\)) p 2030 927 a(\(font-file) p 2555 927 a("timR24.bdf"\)\)) -118 1026 y(\(define-font) p 550 1026 a(timR18) p 1027 1026 a(;;) p 1171 1026 a("timR18") p Fi 1598 1026 a<2555>p 1688 1026 a<2529>p 1770 1026 a<2573>p 1856 1026 a<2548>p 1948 1026 a<244e>p 2036 1026 a<446a>p 2125 1026 a<3541>p Fd 2260 1026 a(\(PCF) p Fi 2497 1026 a<2555>p 2586 1026 a<2529>p 2673 1026 a<213c>p 2760 1026 a<255e>p 2848 1026 a<2543>p 2930 1026 a<2548>p Fd 3024 1026 a(\)) -23 1104 y(\(font-class) p 550 1104 a(pcf\)) p 789 1104 a(\(dpi) p 1027 1104 a(300\)) p 1266 1104 a(\(point-size) p 1839 1104 a(24\)) p 2030 1104 a(\(font-file) p 2555 1104 a("timR18.pcf"\)\)) p Fi 1288 1415 a<3f5e>p Ff 1406 1415 a(1:) p Fd 1517 1415 a(vflibcap) p Fi 1917 1415 a<2555>p 2004 1415 a<2521>p 2097 1415 a<2524>p 2178 1415 a<256b>p 2267 1415 a<244e>p 2355 1415 a<4e63>p Fk -118 1689 a(3) p Fj 84 1689 a<317e>p 199 1689 a<4d51>p 308 1689 a<253d>p 424 1689 a<2555>p 526 1689 a<2548>p 654 1689 a<2526>p 772 1689 a<2528>p 885 1689 a<2522>p 1002 1689 a<244e>p 1119 1689 a<4e63>p Fi -34 1820 a<2533>p 53 1820 a<2573>p 144 1820 a<2551>p 231 1820 a<2526>p 318 1820 a<2573>p 399 1820 a<2549>p 497 1820 a<2546>p 584 1820 a<252d>p 677 1820 a<2539>p 759 1820 a<2548>p 849 1820 a<2447>p 940 1820 a<4964>p 1029 1820 a<3967>p 1117 1820 a<323d>p 1204 1820 a<2435>p 1287 1820 a<246c>p 1379 1820 a<2446>p 1469 1820 a<2424>p 1557 1820 a<246b>p 1638 1820 a<2557>p 1728 1820 a<256c>p 1826 1820 a<2524>p 1906 1820 a<2573>p 1998 1820 a<2546>p 2085 1820 a<252d>p 2177 1820 a<2539>p 2259 1820 a<2548>p 2349 1820 a<242b>p 2437 1820 a<2469>p 2529 1820 a<3268>p 2617 1820 a<417c>p 2704 1820 a<2555>p 2790 1820 a<2521>p 2884 1820 a<2524>p 2966 1820 a<256b>p 3054 1820 a<2472>p 3145 1820 a<3a6e>p 3234 1820 a<246b>p 3320 1820 a<253d>p 3408 1820 a<2555>p 3492 1820 a<2548>p 3585 1820 a<2526>p 3673 1820 a<2528>p 3761 1820 a<2522>p Fd -118 1924 a(ctext2pgm) p Fi 336 1924 a<2472>p 425 1924 a<3a6e>p 511 1924 a<402e>p 589 1924 a<2437>p 681 1924 a<243f>p 772 1924 a<2123>p 850 1924 a<4a38>p 937 1924 a<3d71>p 1023 1924 a<4662>p 1105 1924 a<244b>p 1195 1924 a<3b58>p 1281 1924 a<4e61>p 1364 1924 a<2472>p 1453 1924 a<4b64>p 1538 1924 a<2461>p 1626 1924 a<397e>p 1713 1924 a<2460>p 1796 1924 a<2433>p 1881 1924 a<2448>p 1967 1924 a<2447>p 2060 1924 a<2122>p 2140 1924 a<2524>p 2222 1924 a<253f>p 2310 1924 a<256a>p 2394 1924 a<2543>p 2479 1924 a<252f>p 2563 1924 a<2464>p 2645 1924 a<255c>p 2736 1924 a<213c>p 2819 1924 a<256b>p 2897 1924 a<2549>p 2992 1924 a<244a>p 3071 1924 a<2449>p 3165 1924 a<244e>p 3252 1924 a<2555>p 3338 1924 a<2529>p 3417 1924 a<2573>p 3502 1924 a<2548>p 3593 1924 a<2555>p 3678 1924 a<2527>p 3762 1924 a<213c>p -117 2029 a<2539>p -32 2029 a<244e>p 57 2029 a<405a>p 144 2029 a<4258>p 230 2029 a<2464>p 323 2029 a<2122>p Ff 407 2029 a(Helv) m(etia) p Fi 761 2029 a<2464>p Ff 881 2029 a(Times) p Fi 1151 2029 a<244a>p 1231 2029 a<2449>p 1327 2029 a<244e>p 1414 2029 a<2555>p 1504 2029 a<2529>p 1586 2029 a<2573>p 1673 2029 a<2548>p 1764 2029 a<2555>p 1851 2029 a<2521>p 1941 2029 a<255f>p 2030 2029 a<256a>p 2116 2029 a<213c>p 2201 2029 a<244e>p 2291 2029 a<405a>p 2378 2029 a<4258>p 2463 2029 a<2428>p 2548 2029 a<242c>p 2641 2029 a<4a38>p 2728 2029 a<3d71>p 2816 2029 a<4662>p 2900 2029 a<2447>p 2991 2029 a<3244>p 3078 2029 a<473d>p 3163 2029 a<2447>p 3251 2029 a<2422>p 3341 2029 a<246b>p 3430 2029 a<2123>p 1724 3951 a currentpoint currentpoint translate 0.84756 0.84756 scale neg exch neg exch translate 1724 3951 a 1724 3951 a @beginspecial 109 @llx 239 @lly 410 @urx 490 @ury 3010 @rwi @setspecial %%BeginDocument: ml-web-page.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: /usr/home/kakugawa/res/ChuugokuShibu98/Sample1.eps %%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley %%BoundingBox: 109 239 410 490 %%Pages: 1 %%DocumentFonts: %%EndComments %%EndProlog %%Page: 1 1 % remember original state /origstate save def % build a temporary dictionary 20 dict begin % define string to hold a scanline's worth of data /pix 601 string def % define space for color conversions /grays 601 string def % space for gray scale line /npixls 0 def /rgbindx 0 def % lower left corner 109 239 translate % size of image (on paper, in 1/72inch coords) 300.52800 250.99200 scale 601 502 8 % dimensions of data [601 0 0 -502 0 502] % mapping matrix {currentfile pix readhexstring pop} image d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d300000000000000000000000000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d300000000000000000000000000d3d3d3 d3d3d300d3d3d3d3d3d3d3d3d3d3d300d3d3d3d3d3d3d3d3d30000d3d3d30000d3d3d3d3 d3d3d3d3d30000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3d3d3d3d3d3d3000000000000d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000 00d3d3d3d3d30000d3d3d3d3d30000d3d3d3d3d3d3d3d30000d3d30000d3d30000d30000 d30000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3 d3d3d30000000000000000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3d3d3d3d3d3d3 d3d3d3d3d30000d3d3d3d3d3d3d3d3d3d3d3d3d3000000000000d3d30000d3d30000d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d300d3d3d300d3d3d300d3d3d300d3d3d3 d3d3d300d3d3d3d3d3d3d3d3d3d3d300d3d3d3d3d3d3d3d3d3000000d3d30000d3d3d3d3 d3d3d3d3d30000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d300000000d3d3d3d3d3d3d30000d3d3d30000 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3 d3d3d3d3d3d30000d3d3d3d3d30000d3d3d3d3d3d3d3d30000d3d30000d3d3d3d3d30000 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3 d3d3d3d3d3d30000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3d30000d3d3d3d3d30000d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d300d3d3d300d3d3d300d3d3d300d3d3d3 d3d3d300d3d3d3d3000000d3d3d3d300d3d3d3d3d3d3d3d3d3000000d3d30000d3d30000 0000d3d300000000d3d300000000d3d3d300000000d3d3d300000000d3d30000d30000d3 d3d300000000d3d3d30000d3d3d3d3d3d3d300d3d300d3d3d3d3d3d3d30000d3d3d30000 d300000000d3d3d30000d30000d3d300000000d3d3d3d3d3d3d300000000d3d300000000 d3d3d3d3d3d3000000d3d3d3000000d30000d3d30000d30000d300000000d30000d30000 d30000d30000d30000d3d3d30000d30000d30000d3d30000d3d300000000d3d30000d3d3 d3d3d3d3d3d30000d3d3d3d300000000d3d30000d3d30000d300000000d3d300000000d3 d3d3d3d3d30000d30000d30000d3d3d3d3d3d3d30000d3d3d30000d30000d300000000d3 00d3000000d3000000d3d3d300000000d3d30000d30000d3d3d300000000d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d300d3d3d300d3d3d300d3d3d300d3d3d3 d3d3d300d3d3d30000000000d3d3d300d3d3d3d3d3d3d3d3d30000d300d30000d30000d3 d30000d3d30000d3d30000d3d30000d30000d3d30000d30000d3d30000d3000000d30000 d30000d3d30000d3d30000d3d3d3d3d3d30000d3d30000d3d3d3d3d3d30000d3d3d30000 0000d3d30000d30000d3000000d30000d3d30000d3d3d3d3d30000d3d30000d3d30000d3 d3d3d3d3d3d3000000d3d3d3000000d30000d3d30000d30000d3d30000d3d30000d30000 d30000d3000000d30000d30000d3000000d30000d3d30000d30000d3d30000d30000d3d3 d3d3d3d3d3d30000d3d3d30000d3d30000d30000d3d30000d3d30000d3d30000d3d30000 d3d3d3d3d30000d3000000d30000d3d3d3d3d3d30000d3d3d30000d30000d3d30000d3d3 0000d3d30000d3d30000d30000d3d30000d3000000d30000d30000d3d30000d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d30000000000d3d3d300d3d3d300d3d3d3 d3d3d300d3d300000000000000d3d300d3d3d3d3d3d3d3d3d30000d300d30000d30000d3 d30000d3d30000d3d3000000d3d3d3d30000d3d3d3d3d3d3d3d3d30000d30000d3d30000 d30000d3d30000d3d3d3d3d3d3d3d3d3d30000d3d30000d3d3d3d3d3d3000000000000d3 d3d3d3d30000d30000d3d30000d30000d3d30000d3d3d3d3d30000d3d30000d3d30000d3 d3d3d3d3d3d300000000d300000000d30000d3d30000d30000d3d30000d3d30000d30000 d30000d30000d3d30000d30000d3d30000d30000d3d30000d3d3d3d3d30000d30000d3d3 d3d3d3d3d3d30000d3d3d30000d3d30000d3d300000000d3d3d30000d3d3000000d3d3d3 d3d3d3d3d30000d30000d3d30000d3d3d3d3d3d3000000000000d3d30000d3d30000d3d3 0000d3d30000d3d30000d3d3d3d3d30000d30000d3d30000d3000000d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d300d3d3d3d3d3d3d300d3d3d300d3d3d3 d3d3d300d3d300000000000000d3d300d3d3d3d3d3d3d3d3d30000d3d3000000d3000000 000000d3d30000d3d3d3d3000000d3d30000d3d3d3d3d3d30000000000d30000d3d30000 d3000000000000d3d3d3d3d3d3d3d3d3d3000000000000d3d3d3d3d3d30000d3d3d3d3d3 d30000000000d30000d3d30000d3000000000000d3d3d3d3d30000d3d30000d3d30000d3 d3d3d3d3d3d30000d300d300d30000d30000d3d30000d30000d3d30000d3d30000d30000 d30000d30000d3d30000d30000d3d30000d30000d3d30000d3d30000000000d30000d3d3 d3d3d3d3d3d30000d3d3d3000000000000d3d3d30000d3d3d3d30000d3d3d3d3000000d3 d3d3d3d3d30000d30000d3d30000d3d3d3d3d3d30000d3d3d30000d30000d3d30000d3d3 0000d3d30000d3d30000d3d30000000000d30000d3d30000d3d3d3000000d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d300d3d3d3d3d3d3d300d3d3d300d3d3d3 d3d3d300d3d300000000000000d3d300d3d3d3d3d3d3d3d3d30000d3d3000000d30000d3 d3d3d3d3d30000d3d3d3d3d3000000d30000d3d3d3d3d30000d3d30000d30000d3d30000 d30000d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3d3d30000d3d3d3d3d30000d3d3d3d3d3 0000d3d30000d30000d3d30000d30000d3d3d3d3d3d3d3d3d30000d3d30000d3d30000d3 d3d3d3d3d3d30000d3000000d30000d30000d3d30000d30000d3d30000d3d30000d30000 d30000d30000d3d30000d30000d3d30000d30000d3d30000d30000d3d30000d30000d3d3 d3d3d3d3d3d30000d3d3d30000d3d3d3d3d3d300000000d3d3d30000d3d3d3d3d3000000 d3d3d3d3d30000d30000d3d30000d3d3d3d3d3d30000d3d3d30000d30000d3d30000d3d3 0000d3d30000d3d30000d30000d3d30000d30000d3d30000d3d3d3d3000000d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d300d3d3d3d3d3d3d300d3d3d300d3d3d3 d3d3d300d3d3d30000000000d3d3d300d3d3d3d3d3d3d3d3d30000d3d3d30000d30000d3 d30000d3d30000d3000000d3d30000d30000d3d30000d30000d3d30000d3000000d30000 d30000d3d30000d3d30000d3d3d3d3d30000d3d3d3d30000d3d3d3d3d30000d3d3d3d3d3 0000d3d30000d30000d3000000d30000d3d30000d3d3d3d3d30000d3d30000d3d30000d3 d3d3d3d3d3d30000d3d300d3d30000d30000d3000000d30000d3d30000d3000000d30000 d30000d30000d3d30000d30000d3000000d30000d3000000d30000d3d30000d30000d3d3 d3d3d3d3d3d30000d3d3d30000d3d30000d30000d3d30000d3d30000d3000000d3d30000 d3d3d3d3d30000d30000d3d30000d3d3d3d3d3d30000d3d3d30000d30000d3d30000d300 0000d3d30000d3d30000d30000d3d30000d3000000d30000d30000d3d30000d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3000000000000000000d3d3d300d3d3d3 d3d3d300d3d3d3d3000000d3d3d3d300d3d3d3d3d3d3d3d3d30000d3d3d30000d3d30000 0000d3d3d3d30000d3d300000000d3d3d300000000d3d3d3000000d300000000d30000d3 d3d300000000d3d3d30000d3d3d3d3d30000d3d3d3d30000d3d3d3d3d30000d3d3d3d3d3 d3000000d30000d30000d30000d3d300000000d3d3d3d3d3d3d300000000d3d3d30000d3 d3d3d3d3d3d30000d3d300d3d30000d3d30000d30000d30000d3d3d30000d30000d30000 d30000d30000d3d30000d3d30000d30000d3d30000d30000d3d3000000d300000000d3d3 d3d3d3d3d3d30000d3d3d3d300000000d3d30000d3d30000d3d3d30000d3d300000000d3 d3d3d3d3d30000d30000d3d30000d3d3d3d3d3d3000000000000d3d30000d3d3d30000d3 0000d3d30000d3d30000d3d3000000d300000000d30000d3d3d300000000d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d300d3d3d3d3d3d3d3d3d3d3d300d3d3d3 d3d3d300d3d3d3d3d3d3d3d3d3d3d300d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d30000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d300d3d3d3d3d3d3d3d3d3d3d300d3d3d3 d3d3d300d3d3d3d3d3d3d3d3d3d3d300d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d30000d3d30000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d30000d3d30000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d300d3d3d3d3d3d3d3d3d3d3d300d3d3d3 d3d3d300000000000000000000000000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d300000000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d300000000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d30000d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d300000000000000000000000000d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e365 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b20000000000000000b20000b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2000000000000b2b2b2b2b20000b20000b2b20000b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b200000000b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000000000b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2000000000000b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 00000000b2b2b2b2b2b2b2b2b2b2b20000b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000000000b2b2b20000b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b20000b2b200000000b2 b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b2b2b2b2b2b2 b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2b20000b2b2b2b2b20000b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b200 00b2b20000b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b20000b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b20000b2b20000b2b2b2 b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b2b2b2b2b2b2 b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b20000b20000b2b200000000b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b2b20000b20000b20000b200000000b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b20000b20000b2b200000000b2b20000 b2b20000b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2 00000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b2b200000000 b2b2b200000000b2b20000b2b20000b200b2000000b2000000b2b2b200000000b2b20000 b200000000b2b20000b2b200000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000 b2b2b2b20000b20000b20000b2b200000000b20000b2b200000000b2b20000b20000b2b2 b200000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b200 00b20000b200000000b2b2b200000000b2b200000000b2b200000000b2b20000b2000000 00b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b20000b2b200000000b2 0000b20000b2b2b20000b20000b2b200000000b2b20000b2b20000b2b20000b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b2b200000000 b2b20000b20000b20000b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b20000b20000b20000b2b20000b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b20000b2000000b20000b2b20000b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b20000b20000b20000b2b20000b20000 b2b20000b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b2b2b200 00b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b2b200 00b20000b2b20000b20000b20000b2b20000b2b20000b2b20000b20000b2b20000b20000 0000000000b20000b2b20000b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000 b2b2b2b20000b2000000b20000b2b20000b2b20000b20000b2b20000b2000000b20000b2 0000b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b200 000000000000b2b20000b20000b2b20000b2b20000b2b20000b2b20000b2000000000000 00b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b200b2b20000b2b200b20000b2 000000b20000b20000b2000000b20000b2b20000b20000b2b20000b2b20000b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b2b200 00b20000b2000000b20000b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b20000000000b20000b20000b20000b2b20000b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2000000000000b20000b2b20000b20000b2b20000b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b20000b20000b20000b2b20000b2b200 00b20000b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b200000000b200 00b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2000000000000b2b20000b2b200 00b20000b2b20000b200000000b2b2b20000b2b20000b2b20000b2b2b2b2b20000b20000 00b2b200000000b2b2b2000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000 b2b2b2b20000b20000b2b20000b2b20000b2b20000b20000b2b20000b20000b2b20000b2 000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b200 0000b2b20000b2b20000b20000b2b2b2b2b2b20000b2b20000b2b20000b2000000b2b2b2 0000b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b20000b20000b20000b2 0000b2b20000b20000b2b20000b20000b2b20000b2b20000b20000b20000b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b200000000000000b20000b2b200 00b20000b20000b2b20000b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b20000b20000b2000000000000b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b20000b2b20000b20000b2b20000b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b200b2b200b2b20000b2000000000000b2b200 00b20000b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b20000b200 00b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b2b200 00b20000b2b20000b200000000b2b2b20000b2b20000b2b20000b2b20000000000b20000 b2b2b200000000b2b2b2b2b2000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000 b2b2b2b20000b20000b2b20000b2b20000b2b20000b20000b2b20000b20000b2b20000b2 b2b2000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b200 00b2b2b2000000000000b20000b2b2b2b2b2b20000b2b20000b2b20000b20000b2b2b2b2 0000b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b20000b20000b20000b2 0000b2b20000b20000b2b20000b20000b2b20000b2b20000b20000b20000b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000000000 00b20000b20000b2b20000b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b20000b20000b20000b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b20000b2b20000b20000b2b20000b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b200000000b2b20000b20000b2b2b2b2b2b200 00b20000b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b20000b200 00b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b2b200 00b20000b2b20000b20000b20000b2b20000b2b20000b2b20000b20000b2b20000b20000 b2b2b20000b20000b2b2b2b2b2000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000 b2b2b2b20000b20000b2b20000b2b20000b2b20000b20000b2b20000b20000b2b20000b2 b2b2b2000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b200 00b2b2b20000b2b2b2b2b20000b2b2b2b2b2b20000b2b20000b2b20000b20000b2b2b2b2 b2000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b20000b2b20000b2 0000b2b20000b20000b2b20000b20000b2b20000b2b20000b20000b20000b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b2b2b2 b2b20000b20000b2b20000b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b20000b20000b20000b2b20000b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b2b20000b2000000b20000b2b20000b200 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b2b20000b2b2b2 0000b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b200 00b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b2b200 00b20000b2b20000b20000b2b20000b20000b2b20000b2b20000b20000b2b20000b20000 b2b2b20000b2b20000b20000b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b200 00b2b20000b2b2000000b20000b2b20000b2000000b20000b2b20000b20000b2b20000b2 0000b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b20000b2b20000b200 00b2b2b20000b2b20000b20000b2b20000b2b20000b2000000b2b20000b20000b2b2b2b2 b2000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b20000b2b20000b2 0000b2b20000b20000b2000000b20000b2b20000b2b2b20000b2b20000b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b20000b2b200 00b20000b2000000b20000b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b2b20000b20000b2b200000000b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2000000000000b2b20000b20000b20000b2b2b20000b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b2b200000000b2b2b2b2 0000b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b200000000b200b2b2 00000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2000000000000b2b2b200000000 b2b2b200000000b2b20000b2b2b200000000b2b20000b2b20000b2b2000000b200000000 b2b2b20000b2b2b20000b200000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 00000000b2b2b20000b20000b2b2b2b20000b20000b2b200000000b2b20000b2b20000b2 b200000000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000000000b2b2b20000b200 00b2b2b2b200000000b2b2b200000000b2b2b2b20000b2b200000000b2b20000b2b2b2b2 b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b20000b2b20000b2 0000b2b20000b2b20000b20000b2b200000000b2b2b2b20000b2b20000b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b20000b2b2b20000b2b200000000 b2b20000b20000b20000b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b200b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 0000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b20000b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26565 e3e365656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 65656565656565656565656565656565656565656565656565 e36565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 65656565656565656565656565656565656565656565656565 e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b265 e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b265 e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b265 e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b265 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 65656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565e3 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2e3e3 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2e3e3 6565e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 65e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff656565656565656565656565656565b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565656565656565656565656565e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696e39696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff656596969696e3e36596969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff656596969696e3e36596969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565969696e3e3b26565969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565969696e3e3b26565969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696e3e3b2b2b265659696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffff00000000ffffffffff000000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696e3e3b2b2b265659696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffffffffffffff00ffff00ffffffff0000ff00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff656596e3e3b2b2b2b2b2656596e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffff000000ffffffff00000000ffffffff00ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff656596e3e3b2b2b2b2b2656596e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffff0000000000ffffffff00ff00ffffffff0000ff0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3656565656565656565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffff00ffff0000ffffffffff0000ffffffffff000000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e365656565656565656565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ffffffffffff00ffffffffff0000000000000000000000ffffffffff0000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 ffffffffffff00ffffffffffff000000000000000000ffffffffff0000ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ffffffffffff00ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff0000 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff ffffff000000ffffff0000ffffff00ffffffffffffffff0000ff00ffff0000ffff00ffff ffff0000ffffffffffff00ffffffff00ffff0000ffffffff0000ffffffff00ffffffff00 00ffffffffff000000ffffff0000ffff0000ffff0000ffffffffff0000ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff ff0000ffff0000ffffff00ffffff00ffffffffffffff00ffff0000ffffff00ff0000ffff 0000ffff00ffffffff0000ffffffff00ffffff00ffff0000ffff00ffffff00ffff0000ff ff00ffff0000ffff0000ffffff00ff00ff00ff00ff00ffffff0000ffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff ff00ffffffff00ffff0000ffff0000ffffffffffff00ffffff00ffffffff0000ffffffff 00ffffff00ffffffffff00ffffff0000ffffff00ffff00ffffff00ffff0000ffff00ffff ffffffff00ffffffff00ffffff0000ffff0000ffff00ffffff00ffffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff 0000ffffffff00ffff00ffffff00ffffffffffff0000ffffff00ffffff0000ffffffff00 ffff0000ffffffffffff0000ffff0000ffff00ffff00ffff0000ffffff00ffff0000ffff ffffff0000ffffffff00ffff0000ffff0000ffff0000ffff00ffff0000ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff 00ffffffff0000ff0000ffff0000ffffffffffff00ffffff0000ffffff00ffffffffff00 0000ffffffffffffffff0000ff00ff00ffff00ffff000000ffffffffff00ffff00ffffff ffffff00ffffffff0000ffff00ffffff00ffffff00ffffff000000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff 00ffffffff00ffff00ffff0000ffffffffffffff00ffffff00ffffff0000ffffffffff00 ffffffffffffffffffffff00ff00ff00ff00ffffff00ffffffffffff0000ffff00ffffff ffffff00ffffffff00ffff0000ffff0000ffff0000ffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff 0000ffff0000ffff00ff00ff00ff00ffffffffff00ffff0000ff00ff00ffffffffffff00 00ffff00ffffffffffffff0000ffff0000ffffffff0000ffff00ffff00ff00ff0000ffff 00ffff0000ffff0000ffff00ffffff00ffffff00ff00ffff0000ffff00ffff00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff ff000000ffffffff0000ffff0000ffffffffffffff0000ffff00ffff00ffffffffffffff 000000ffffffffffffffff00ffffff00ffffffffffff000000ffffff0000ffffff000000 ffffffff000000ffffffff00ffffff00ffffff0000ffffffff000000ffffff00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffff ffff0000ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff ffff00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffffffffffffff ffff00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00000000000000ffffffffffffff ffff00ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffff00000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffff0000ffffffffffffffff ffffffffffffffffffffffffff00ffffffffffffffffffffffff0000000000ffffffffff ffff00ffffffffffff0000ffffffffffffffffffffffffffff0000000000000000000000 ffffffffff00ffffffffffffff00ffffffffffffffffffffffff000000000000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffffffffffffff ffffffffffffffffffffffffff00ffffffffffffffffffffff000000ffffffffffffffff ffff00ffffffffffffff00ffffffffffffffffffffffffff0000ffff00000000000000ff ffffffffff00ffffffffffffff00ffffffffffffffffffffff0000ffffffff00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff0000ffffffffffffff0000ffffffffffffffff ffffffffffffffffffffffff000000ffffffffffffffff00000000ffffffffffffffffff ff0000ffffffffffffff00ffffffffffffffffffffffffffffffffff0000ffffffffffff ffffffffff0000ffffffffff000000ffffffffff00ffffff00ffffffffff0000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffff000000000000000000ffffffffffffffffff ffffffffffffff000000000000000000000000000000000000ff00000000000000000000 0000ffffffffffffffff00ffffffffffffffffffffffffffffffff00ffffffffffffffff ffffffffffff0000000000000000000000000000000000000000000000000000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff000000ffffffffffffff00000000000000ffffffffffffffffffff ffffffffffffff0000000000ffff000000000000000000ffffffff000000000000000000 00ffffffffffffffffff00ffffffffffffffffffffffffffffffff00ffffffffffffffff ffffffffffffff0000000000ffff000000000000ff00000000000000000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffff ffffffffffffffff00ffff00ffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffffffffff ffffffffffffff0000ff000000000000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffff ffff000000000000ffffff00ffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff00 ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff000000ff00ffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff0000ffffff0000ffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff00ffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00ffffffffffffffffffffffffff000000ffffffffff000000ffffff ffff0000ff00ffffffffffff0000ffff0000ffff0000ffffffff000000ffffff0000ffff 00ff0000ffff0000ffffffff00ffff0000ffff0000ffffffff000000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00ffffffffffffffffffffff0000ffff0000ffff0000ffff0000ffff ff00ffff0000ffffffffffffff00ff00ff00ff00ff00ffff0000ffff0000ffffff00ff00 00ffff00ff00ff00ffffff0000ffffff00ff00ff00ffffff0000ffff0000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00ffffffffffff00000000ffff00ffffffff00ffff00ffffffff00ffff 00ffffff00ffffffffffffffff0000ffff0000ffff00ffff00ffffffff00ffffff0000ff ffffff0000ffff00ffffffff00ffffff0000ffff00ffffff00ffffff00ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00ffffffffffffff0000ffff0000ffffffff00ff0000ffffffff00ff00 00ffffff00ffffffffffffff0000ffff0000ffff0000ff0000ffffffff00ffff0000ffff ffff0000ffff0000ffffff0000ffff0000ffff0000ffffff00ffffff00ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00ffffffffffffff00ffffff00ffffffff0000ff00ffffffff0000ff00 ffffff0000ffffffffffffff00ffffff00ffffff00ffff00ffffffff0000ffff00ffffff ffff00ffffff00ffffffff00ffffff00ffffff00ffffffff00ffff0000ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff0000ffffffffffff00ffffff00ffffffff00ffff00ffffffff00ffff00 ffffff0000ffffffffffff0000ffff0000ffff0000ffff00ffffffff00ffff0000ffffff ff0000ffff0000ffffff0000ffff0000ffff0000ffffffffff000000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff0000ffffffff00ffffffff0000ffff0000ffff0000ffff0000ffff00 ffff00ff00ff00ffffffff00ffffff00ffffff00ff00ff0000ffff0000ffff00ffffffff ff00ffffff00ff00ffff00ff00ff00ffffff00ff00ffffff00ffffffffffff00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff0000000000ffffffffffff000000ffffffffff000000ffffffffff 0000ffffff00ffffffffff00ffffff00ffffff0000ffffff000000ffffffff00ffffffff ff00ffffff0000ffffff0000ffff00ffffff0000ffffffff000000ffffffff00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff0000ffff0000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00ffffff0000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff 00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff000000000000ffffffffffffff00000000000000000000ffffffff00000000ff ff0000000000000000ffffffffffffffff00ffffffffffffffffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff00ff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffffffff00ffffffffffffffffff000000000000000000 0000000000ffffffffffffff0000000000ffffffffffffffff00ffffff00ffffffff00ff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff000000ffffffff0000ffffffff00000000000000000000000000000000000000000000 00ffffff00ffffffffff00000000000000000000000000000000ffffffff00ffffffffff ff00ffffffffffffffff000000ff00ff000000ffffffffff0000ffffff00ffffffff00ff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000ff0000ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff000000000000ffffffffffff00ffffffffffff00ffffffffffffffffff00ffffffff 00ffffffffffffffff0000ffffff00ffffff0000ffffffff00ffffffff00ffffffff00ff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00ff0000ffffffffffffffffff00000000000000000000ffffffff0000000000 ffffff00ffffff00ffffffffffff00ffffffffffff00ffffffff00000000000000000000 000000000000ffff0000ffffffff00ffffffff00ffffffff00ffffff00000000ffff00ff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff00ffffff00ffffffffffff0000ffffffff0000ffffffffffffffffffffffffffff ffffffffffffffff00ffffffff0000ffffffff0000ffff0000ffffff00ffff00ffff00ff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff000000ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff00ffffff00ffffffffffffff00ffffffff00ffffffffffffffff00000000000000 000000ffffffff0000ffffffff00ffffffffffff00ffff0000ffffff00ffff00ffff00ff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000000ffffffff000000000000ffffffff00000000000000000000ffffffff0000000000 ff000000000000000000ffffffffff0000ffff0000ffffffffffffffff00ffffffffffff ffff00ffffffff00ffffffff0000ffffffffffff00ff00ff00ffff000000ff00ffff00ff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00ff0000ffffffffffffffffff00000000000000 000000ffffffff00ffffffff00ffffffffffffff00ffffff00ff0000ff000000ffff00ff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff000000ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff ffff00000000000000ffffffffffffffff0000ffffffffffffffffffff00ffffffffffff ffff00ffffffff00ffffff0000ffffffffffff0000ffffff00ffffffffff00ffffff00ff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff000000ff0000ffff0000ffffffffff00000000000000000000ffffffff0000000000 ffff00ffffffffff00ffffffffffffff00000000ffffffffffffffffff00000000000000 000000ffffffff00ffff0000ffffffffffffff00ffffffff00ffffffff0000ffffffffff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00ff0000ffffffffffff00ffffffffffffffff00ffffffff00ffffff00 ffff00ffffffffff00ffffffffffff0000ffff0000ffffffffffffffffffffffff00ffff ffffffffffffffff000000ffffffffffff000000ffffffff00ffffffff00ffffffffffff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff000000ffffffffffffff00ffffffffffffffff00ffffffff00ffffff00 ffff00ffffffffff00ffffffffff0000ffffffff0000ffffffff00000000000000000000 000000000000ffffffffffffffffff000000ffffffffffff00ffffff0000ffffffffffff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00000000ffffffffffffffffff00ffffffffffffffff00ffffffff00ffffff00 ffff00ffffffffff00ffffff000000ffffffffffff000000ffffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffff00ffff0000ffffffffffffff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000ffffffffffffffffffffffff00000000000000000000ffffffff0000000000 ffff00000000000000ff000000ffffffffffffffffffff000000ffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffff00ff0000ffffffffffffff00 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffff000000ffffffff00ffffffff0000ffff00 0000ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff000000ffffffffffffffffff00ffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 ffffffffffffffffffffffffffffffffffffffffffffff0000ff0000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffff0000ffffffff00ffffffff0000ffffff 0000ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff0000ffffffffffffffffff00ffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 ffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff0000ffffff0000ffffffffffffffffff 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff0000ffffffffffffffff0000ffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff0000ff0000ffffffff000000ff0000ffffffffffffffffffff000000ffff00000000ff 0000ffffff000000ffffff000000ff0000ff000000ffffff000000ff0000ffffffff0000 ffffffff000000ffffffffffffffffff000000ffffff00000000ffffffffffffff000000 ff0000ff000000ffffff000000ff000000ffffff0000ffff00000000ffff000000ffffff 0000ffff000000ffff000000ff0000ffffffffff0000ffff00ff000000ff000000ffffff ff000000ffffffff0000ffffffffffffff00000000ffffffff000000ffff00000000ff00 00ff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffff0000ffffffffff000000000000ffffffffffffffff0000ff0000ffff000000ff 00ffff0000ffff0000ffffff000000ff000000ff0000ffffff000000ff0000ffffff0000 ffffff0000ff0000ffffffffffffff0000ff0000ffffff0000ffffffffffffffffff0000 00ff000000ff0000ffffff0000ffff0000ffffff0000ffffff0000ffffffff0000ffffff 0000ffffff0000ffffff000000000000ffffff00ffff000000ffff0000ffff0000ffff00 00ffff0000ffffff0000ffffffffffffffff0000ffffffff0000ff0000ffff000000ff00 ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000ffff0000ffffffffff0000ffff0000ffffffffffffff0000ffff0000ffffff000000 ffffff0000ffff0000ffffff0000ffff0000ffff0000ffffff0000ffffff0000ffff0000 ffff0000ffff0000ffffffffffff0000ffffff0000ffff0000ffffffffffffffffff0000 ffff0000ffff0000ffffff0000ffff0000ffffff0000ffffff0000ffffffff0000ffffff 0000ffffff0000ffffff0000ffff0000ffff0000ffff0000ffffff0000ffff0000ffff00 00ffff0000ffffff0000ffffffffffffffff0000ffffff0000ffff0000ffffff000000ff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffff0000ffffffff0000ffff0000ffffffffffffff000000000000ffffff000000 ffffffffffff000000ffffff0000ffff0000ffff0000ffffff0000ffffff0000ffff0000 ffff000000000000ffffffffffff0000ffffff0000ffff0000ffffffffffffffffff0000 ffff0000ffff0000ffffff0000ffff0000ffffff0000ffffff0000ffffffff0000ffffff 0000ffffff0000ffffff0000ffff0000ffff0000ffff0000ffffff0000ffff0000ffffff ffff000000ffffff0000ffffffffffffffff0000ffffff000000000000ffffff000000ff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00000000000000ffffffff0000ffff0000ffffffffffffff0000ffffffffffffffff0000 ffffffff0000ff0000ffffff0000ffff0000ffff0000ffffff0000ffffff0000ffff0000 ffff0000ffffffffffffffffffff0000ffffff0000ffff0000ffffffffffffffffff0000 ffff0000ffff0000ffffff0000ffff0000ffffff0000ffffff0000ffffffff0000ffffff 0000ffffff0000ffffff0000ffff0000ffff0000ffff00ffffffff0000ffff0000ffffff 0000ff0000ffffff0000ffffffffffffffff0000ffffff0000ffffffffffffffff0000ff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffff0000ffffff0000ffff0000ffffffffffffff0000ffffffffffffff000000 00ffff0000ffff0000ffffff0000ffff0000ffff0000ffffff0000ffffff0000ffff0000 ffff0000ffffffffffffffffffff0000ffffff0000ffff0000ffffffffffffffffff0000 ffff0000ffff0000ffffff0000ffff0000ffffff0000ffffff0000ffffffff0000ffffff 0000ffffff0000ffffff0000ffff0000ffffff000000ffffffffff0000ffff0000ffff00 00ffff0000ffffff0000ffffffffffffffff0000ffffff0000ffffffffffffff00000000 ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 ffffffffffff0000ffffff0000ffff0000ffffffffffffffff0000ffff00ffff00ffff00 00ffff0000ffff0000ff00ff0000ffff0000ffff0000ffffff000000ff0000ffffff0000 ffffff0000ffff00ffffffffffffff0000ff0000ffffff0000ffffffffffffffffff0000 ffff0000ffff0000ffffff0000ff00000000ffff0000ffffff0000ff00ffff0000ffffff 0000ffffff0000ffffff0000ffff0000ffffff00ffffffffffffff0000ff00000000ff00 00ffff0000ff00ff0000ffffffffffffffff0000ff00ffff0000ffff00ffff00ffff0000 ffffff0000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00ffffffff00000000ff00000000ff000000ffffffffffffffff000000ffff000000ff00 0000ffff000000ff0000ff00000000ff0000ff00000000ffff0000ff0000ffffff000000 00ffffff000000ffffffffffffffffff000000ffffff00000000ffffffffffffff000000 00ff0000ff00000000ffffff0000ff0000ffff00000000ffffff0000ffff00000000ff00 000000ff00000000ff00000000ff000000ff000000000000ffffffff0000ff0000ffffff 000000ff0000ff00000000ffffffffffffffff0000ffffffff000000ffff000000ff0000 00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff000000000000ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffff00ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffff00ffffffffff00000000ffff0000000000000000ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00000000ffff0000000000000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff0000000000 0000000000000000000000ffffffffffffffffffff00ffffffffffff0000000000000000 0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffff000000ffffffffffff00000000000000 00000000000000ff0000000000ffffffffff00ffffffffffffffffffffff0000000000ff ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff ff0000000000000000000000000000ffffffffffffffffffffff00ffffffffffff000000 00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffff00ffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffff 0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffff00ffffffff00000000000000ffffff00ffffffffffffffffffffffffffff 0000ffffffffffffffffff000000ffffffff000000ffffffffffffffffffffff00ffffff ff00ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff00ff ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffff ffffff00ffffffff00ffffff00ff000000000000000000ffffffffff000000ff00ff0000 00ffffffffffff00000000000000000000ffffffffffffffff0000ffffffffffffffffff ffffffffffffffffffffffffff0000ff00000000000000ffffff00ffffffffffffffffff ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffff00ffffffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffff 00ffffff00000000000000000000ffffffffffffffffffffffffffffffffffffffffff00 ffff00ffffff00ffffffffffffffffffffffff000000000000ffffffffffffffffffff00 00ffffff00ff00ffffffffff00ffffffffffff00ffffffffffffffffffffff0000ffffff 0000ffffffffffffffffffffffffffffffffffff0000ffffffffffff0000ffffffff00ff ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffff00ffffffffff00ffffff00ffffffffff00ffffffffffffffff0000ffffff00ffffff 0000ffffffffff00ffffffffffffffff00ffffffffffffffffff00ffffffffffffffffff ffffffffffffff00ffffffff0000ffffffffffffffffffff000000000000ffffffffffff ffffffff0000ffffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffff00ffffff00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffff 00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffff0000000000ffffff00ffffff00ffffffffffffffffff0000 ffffffff00ff00ffffffffff00ffffffffffff00ffffffffffffffffffffffff00ffffff ff00ffffffffffffffffffffffffffffffffffffff00ffffffff000000ffffffffff00ff ffffffffffffffff0000ffffffffff000000000000000000ffffffff0000000000000000 000000000000000000ffffff00ffffffffff00ffffffffffffff0000ffffffff00ffffff ff00ffffffffff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffffffff00ffffff0000ffffffff0000000000ffffff00ffffff00ffffffffffff ffffff0000ffffffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff00ffffff000000000000ff0000000000ffffff000000ff ffff00000000ffffffff000000ffff00000000000000ff00000000ffffff000000ff0000 00ff000000ffff000000ff00000000000000ffff000000ffffffffffffffffffffffffff 00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff000000 000000000000000000ffffffffffffffffffffff00ffffff00ffffffffffffffffff00ff ffffffffffffffffffffffff00ffffffffffff00ffffffffff000000ffffffff00ffffff ff00ffffffff000000ffffffffffffffffffffffff0000ff000000ffffffffffffff00ff ffffffffffffffffff00ffffffffffffffffffffffffff0000ffffffffffffffffffffff ffffffffffffffff00ffffff00ffffffffff00ffffffffffffff00ffffffff0000ffffff ff0000ffffffff00ffffffffffffffff00ffffffffff0000ffffffffffffffffffff00ff ffffffffffffff00ffff0000ffffffffffffffffffffffffff00ffffff00ffffffffffff ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff00ffffffff00ffff00ffffff00ffffff00ff00ffffff00 ffffff00ffff00ffff00ffffff00ff00ffff00ffff00ffff00ffff00ffffff00ffffff00 ffffff00ffffff0000ffff00ffff00ffff00ff00ffffff00ffffffffffffffffffffffff 00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffff ffff00ffffffffff00ffffffffffffffffffffff00ffffff00ffffffffffffffff0000ff ffffffffffffffffffffffff00ffffffffffff00ffffffff00ffffff00ffffff00ffffff ff00ffffff00ffffff00ffffffffffffffffffffffff000000ffffffffffffffffff00ff ffffffffffffffffff0000ffffffffffffffffffffffffff00ffffffffffff0000000000 0000000000ffffff00ffffff000000000000000000000000ff0000ffffffff00ffffffff ffff00ffffffff00ffffffffffffffff00ffffffffffff0000ffffffffffffffff0000ff ffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffff00ffffffffffff ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff000000000000ffffffff00ffff00ffffff00ffffff00ffffffffff00 ffffff00ffff00ffff00ffffffffffffffff00ffffffffff00ffff00ffffff00ffffff00 ffffff00ffff00ff00ffffffffff00ffffffff00ffffff00ffffffffffffffffffffffff 00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffff ffff00ffffffffff00ffffff0000000000ff000000000000000000ffffffffffff00ffff ffffffffffffffffffffffff0000000000000000ffffff00ffffffff00ffffff00ffffff ff00ffff00ffffffffff00ffffffffffffffffffff0000ffffffffffffffffffffff00ff ffffffffffffffffffff00ffffffffffffffffffffffffff00ffffffffffff00ffffffff ffffffff00ffffff00ffffff00ffffff00ff00ff00ffffffff00ffffffff0000ffffffff ffff00ffffffff00ffffffffffffffff00ffffffffffffff00ffffffffffffff0000ffff ffffffffffffff00ffffffffffffffffff0000000000ff000000000000000000ffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff00ffffffff00ffff00ffffff00ffffff00ffff00000000 ffffff00000000ffff00ffffffffffffffff00ffffffffff00000000ffffffff00ff00ff ffffff00ffff00ff00ffffffffff00ffffffff0000000000ffffffffffffffffffffffff 00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffff ffff00ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffffffffffffffff00ffffffffffff00ffffff000000000000ffffff00ffffff ff00ffff00ffffffffff00ffffffffffffffffff0000ffffffffffffffffffffffff00ff ffffffffffffffffffff00ffffffffffffffffffffffffff00ffffffffffff0000000000 0000000000ffffff00ffffff00ffffff00ff00ff00ffffffff00ffffffff00ffffffffff ffff00ffffffff00ffffffffffffffff00ffffffffffffffffffffffffffff0000ffffff ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff00ffffffff00ffff00ffffff00ffffff00ff00ffffff00 ffffff00ffffff00ff00ffffffffffffffff00ffffffffff00ffffff00ffffff00ff00ff ffffff00ff00ffff00ffffffffff00ffffffff00ffffffffffffffffffffffffffffffff 00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffff0000000000 0000000000000000000000ffffffffffffffff00000000000000ffffffffffffff00ffff ffffffffffffffffffffffff00ffffffffffff00ffffff00ffffffffffffffff00ffffff ff00ffff00ffffffffff00ffffffffffffffff0000ffffffffffffffffffffffffff0000 ffff00ffffffffffffff00ffffffffffffffffffffffff0000ffffffffffff00ffffffff ffffffff00ffffff00ffffff00ffff0000ff00ff0000ffffff00ffffff0000ffffffffff ff0000ffffffff00ffffffffffffffff00ffffffffffffffffffffffffff0000ffffffff ffffffffffff0000ffffffffffffffffffffffffffffffff00000000000000ffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffffff00ffffffff00ffff00ffffff00ffffff00ff00ffffff00 ffffff00ffffff00ff00ffffffffffffffff00ffffffffff00ffffff00ffffff00ff00ff ffffff00ff00ffff00ffffffffff00ffffffff00ffffffffffffffffffffffffffffffff 00ffffff00ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff ff00ffff00ffffffffffffff0000000000ffff00ffffffffff00ffffffffffffff0000ff ffffffffffffffffffffffff00ffffffffffff00ffffff00ffffffffffffffff00ffffff ff00ffff00ffffffffff00ffffffffffffffff00ffffffffffffffffffffffffffffff00 ff0000ffffffffffffffffffffffffffffffffffffff0000ffffffffffffff0000000000 0000000000ffffff0000000000ffff00ffff00ffff00ffffff00ffff0000ffffffffffff ff00ffffffffff00ffffffffffffffff00ffffffffffffffffffffffff0000ffffffffff ffffffffffff00ffffffffffffffffffff0000000000ffff00ffffffffff00ffffffffff ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00ffffffff00ffffffff00ffffff00ffffff00ffffff00ff00ffffff00 ffffff00ffffff00ff00ffffff00ffffffff00ffffffffff00ffffff00ffffffff00ffff ffffff0000ffffff00ffffffffff00ffffffff00ffffff00ffffffffffffffffffffffff 00ff00ff00ffffffff00ff0000ffffffffffffffffffffffffffffffffffffffffffffff 0000ffff0000ffffffffffff00ffffff00ffff00ffffffffff00ffffffffffffffff0000 ffffffffffffffffffffffff00ffffffffffff00ffffffff00ffffff00ffffff00ffffff ff00ffffff00ffffff00ffffffffffffffffff00ffffffffffffffffffffffffffffff00 0000ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff00 ffffffffffffffffffffffffffff0000ffff00ffff0000ffffff000000ffffffffffff00 0000ffffffffff00000000000000000000ffffffffffffffffffff000000ffffffffffff ffffffffff0000ffffffffffffffffffff00ffffff00ffff00ffffffffff00ffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00000000ffffffff00000000000000ffff00000000ffffff000000ff 00ff0000000000ffffff000000ffffffff000000ffffff0000000000ffffffffff00ffff ffff000000ffff000000ffffff000000ffffffff000000ffffffffffffffffffffffffff 0000ffff00ffffff0000ffff0000ffff0000ffffffffffffffffffffffffffffffffff00 00ffffffff0000ffffffffff00ffffff00ffff00ffffffffff00ffffffffffffffffff00 0000ffffffffffffffffff000000ffffffff000000ffffffff000000ffffff000000ffff 000000ffffff000000ffffffffffffffffffff0000ffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffff000000ffffffffffffffff00ffff00ffff 00ffffffff0000ffffffffffff0000ffffff00ffffff0000ffffffffffffffffff000000 ffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffff ffffffff0000ffffffffffffffffffffff00ffffff00ffff00ffffffffff00ffffffffff ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00ffffffffff00ffff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffffff00000000ffffffffffffffff0000ffffffffffffffffffffffffffff000000 ffffffffffff000000ffffff00ffffff00ffff00ffffffffff00ffffffffffffffffffff ff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff00000000000000000000ffffffffffff ffffffffffffffffffffffffffffffff00000000ffffffffffffffffff0000ffff00ffff ffffff00ffff0000ffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffff ffff000000ffffffffffffffffffffffff00ffffff00ffff00ffffffffff00ffffffffff ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00ffffffffff00ffff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff000000ffff ffffffffffffffff000000ff0000000000ffff00000000000000ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff0000 00000000ffffff00ffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff0000000000ffff00000000000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff0000ffffffffff ffffffffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff0000ffffffffffffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00ffffffffffffff00ff00ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff000000 00000000000000ffffffffffffffffffff00ffffffffffffffffff00000000ffff000000 0000000000ffffffffff00ffffffffffffffffffffffffffffffffffffff0000ffffffff ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff ff00ffffffffffffffffffff00ffffffffffffff00ffffffffffffffffffffffffffffff ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff000000ffffffffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00ffffffffffffff00ff00ffffffff00ffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffff00ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff 00ffffffffffffffffff00ffffffffffff0000ffffffffffffff00ffffffff0000ffffff ffffffffffffffffffff00ffffffffffffffffffff00000000000000000000ffffffffff ffffff0000ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff ff00ffffffffffffffffffff00ffffffffffffff00ffffffffffffffffffffffffffffff ffffffffffffffffff0000ffffffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffff000000ffffffffffff0000000000000000000000000000ff0000 000000ffffffffff00ffffffffffff00000000000000000000000000ffffffffffffffff ffff00ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff0000ffffffffffffffffffffffffff00ffffffffffffff00ff ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000000000000000000000000000ffffffffffffffffffffffffffffffffffffff00ffff ffffffffffff00ffffffffffffffffffff00ffffffffffffffff00000000000000ffffff 00ffffffffffff00000000000000ffffffff0000ffffffffffff00ffffffffffffffffff ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ffffff00ffffffffffffffffffffffff0000ffffff00000000000000ffffff0000000000 0000000000000000ffffff0000ffffffffffffff00ffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffff00ff ffff00ff000000000000000000ffffffffffffffffffff0000ffffffffff000000000000 00000000000000000000ffffffff00ffffff0000000000ffffffffffffffffffffffffff ffffffffffffffffffffffff00ffffff000000ffffffffffffff00ffffffffffffff00ff ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffff00ffffff00000000000000000000000000000000ffffffffffffffff0000 00000000ffffffffffff00ffffffffffffffff0000ffffffff0000ffffffffffffffffff ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ffff0000ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffff00ffffff00000000000000000000ffffffffffffffffffffff ffffffffffffffffffff0000ffffffffffff0000ffffffff00ffffffffffffffff0000ff ffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffffffff00ff ffff00ffffffffff00ffffffffffffffffffffffffff0000ffffff00ff00ffffffffffff ffff00ffffffffffffffff00000000ffff0000ffffff0000ffffffffffffffffffffffff ffffffffffffffffffffffff0000000000ffffffffffffffffff00ffffffffffffff00ff ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffff00ffffffffffffffff00ff00ff00ffffffffffffff0000000000ffffff00 ffffff00ffffffffff0000ffffffffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff00 00ffffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffffff00ffff ffffffffffffffffffffff00ffffffff000000ffffffffff00ffffffffffffffffff0000 ffffffffff000000000000000000ffffffff0000000000000000000000000000000000ff ffff00ffffffffff00ffffffffffffffffffffffff0000ffffffff00ff00ffffffffffff ffff00ffffffffffffffffffffff00ff0000ffffffffff0000ffffffffffffffffffffff ffffffffffffffffffff00000000ffffffffffffffffffffffff00ffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffff00ffffffffffffffff00ff00ff0000ffffffffffffffffffffffffffff00 ffffff00ffffffffff00ffffffffffff00ffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff00 ffffffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffffff00ffff ffffffffffffffffffffff0000ff000000ffffffffffffff00ffffffffffffffffffff00 ffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff00ff ffff00ffffffffff00ffffffffffffffffffffffff00ffffffffffffffffffffffffff00 000000ffffffffffffffffffffff000000ffffffffffffff00ffffffffffffffffffffff ffffffffffffff00000000ffff00ffffffffffffffffffffffff00ffffffffffffff00ff ffffffff0000ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff0000ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff000000 00000000000000ffffffffffffff0000ff00ffff00ffffffffffffffffffffffffffff00 ffffff00ffffffffff00ffffffffffff00ffffffffffffffff00ffff00000000000000ff ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ff0000ff000000ffffffffffffffffff00ffffffffffffffffffffffffffffffffff0000 000000000000ffffffffff00ffffffffffffffff00ffffffffffffffffffffffff00ffff ffffffffffffffffffffffff000000ffffffffffffffffff00ffffffffffffffffffff00 00ffffffffffffffffffffffffff00ffffffffffff00000000000000000000ffffff00ff ffff000000000000000000000000ffffffffffff0000ffffffffffffffffffffffff0000 ffff0000ffffffffffffffffffff0000ffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffff00ffffff00000000ffffffffff00ffffffffffffff00ff ffffffffff0000ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffff00ffffffffffffff00ffff00ffff0000ffffffffff0000000000ff000000 000000000000ffff0000ffffffffffff00ffffffffffffffff00000000ffffffffff0000 ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ff00ff00ffffff00ffffffffffffffff00ffffffffffffffffffffffffffffffff0000ff ffffffffffff00ffffffff00ffffffffffffffff00ffffffffffffffffffffffff00ffff ffffffffffffffffffffff0000ffffffffffffffffffffff00ffffffffffffffffffffff 00ffffffffffffffffffffffffff00ffffffffffff00ffffffffffffffff00ffffff00ff ffff00ffffff00ff00ff00ffffffffffffffffff00ffffffffffffffffffffffffff00ff ffffff00ffffffffffffffffffff00ffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffff0000000000ffffffffffffffff00ffffffffffffff00ff ffffffffffff00ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffff00ffffffffffff0000ffff00ffffff0000ffffffffffffffffffffffffff ffffffffffffffff00ffffffffffffff00ffffffffffffff0000ffffffffffffffffff00 ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ff0000ffffffff00ffffffffffffffff00ffffffffffffffffffffffffffffff0000ffff ffffffffffffff00ffffff00ffffffffffffffff00ffffffffffffffffffffffff00ffff ffffffffffffffffffff0000ffffffffffffffffffffffff00ffffffffffffffffffffff 00ffffffffffffffffffffffffff00ffffffffffff00000000000000000000ffffff00ff ffff00ffffff00ff00ff00ffffffffffffffffff00ffffffffffffffffffffffffff00ff ffffff00ffffffffffffffffff0000ffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff0000ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffff00ffffffffff0000ffffff00ffffffff0000ffffffffffffffffffff0000 0000000000ffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffff00 ffffffffffffffffffff00ffffffffffffffffff00ffffffffffffffffffffffffffffff 0000ffffffffff00ffffffffffffffff00ffffff00ffffffffffffffffffffffffffffff ffffffffffffff00ffffff00ffffffff0000000000ffffffffffffffffffffffff00ffff ffffffffffffffffff0000ffffffffffffffffffffffffff0000ffff00ffffffffffffff 00ffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffff00ffffff00ff ffff00ffff0000ff00ff0000ffffffffffffffff00ffffffffffffffffffffffffff0000 ffffff00ffffffffffffffff000000ffffffffff000000ff00ffffffffffffffffffffff ffffffffffffffff00000000ffff00ffffffffffffffffffffffffffffffffffff0000ff ffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffff00ffffffff0000ffffffff00ffffffffff0000ffff0000000000ffff00ff ffffffff00ffffffffffffff0000000000ffffffffffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff 00ffffffffffff00ffffffff00ffffff00ffffff00ffffffffffffffffffffffffffffff ffffffffffffff00ffffff00ffffff00ffffffff000000ffffffffffffffffffff00ffff ffffffffffffffffff00ffffffffffffffffffffffffffffff00ff0000ffffffffffffff ffffffffffffffffffffffff0000ffffffffffffff00000000000000000000ffffff0000 000000ffff00ffff00ffff00ffffffffffffffff0000ffffffffffffffffffffffffff00 00000000ffffffffffffff0000ff00ffffffff00ffffff00ffffffffffffffffffffffff ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff00ffff ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffffffffff0000ffffffffffffffffffffffffffffffff00ffff ffffffffffff00ffffff0000ffff00000000000000ffffff0000ff00ffffff00ffff00ff ffffffff00ffffffffffff00ffffffff000000ffffffffffffffffffffffffffffff0000 ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff 00ffffffffffff00ffffff0000ffffff00ff00ff0000ffffffffffffffffffffffffffff ffffffffffff0000ffffff00ff00ff00ffffffff00ff0000ffffffffffffffffff00ffff ffffffffffffffffff00ffffffffffffffffffffffffffffff000000ffffffffffffffff ffffffffffffffffffffff0000ffffffffffffffffffffffff00ffffffffffffffffffff ffffffff0000ffff00ffff0000ffffffffffffffff0000ffffffffffffffffffffffffff ffff00ffffffffffffffffffffff00ffffffff00ffff000000ffff0000ffffffffffffff ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff0000ffff ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffff00ffff00ffffffffffffffffffffffffffffff00ffff ffffffffffff00ffffffffffffffffffff00ffffffffffffffffff00ffffff00ffff00ff ffffffff00ffffffffffff00ffffff0000ff0000ffffffffffffffffffffffff000000ff ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff00 00ffffffffffff00ffff0000ffffffff0000ffffff0000000000000000ffffffffffffff ffffffff000000ffffffff0000ffff00ffffff0000ffff0000ffffffffffffffff00ffff ffffffffffffffffff0000ffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffff000000ffffffffffffffff00ffff00ffff00ffffffff0000ffffff ffffff0000ffffff00ffffff0000ffffffffffffffff000000ffffffffffffffffffffff ff0000ffffffffffffffffffffff00ffffffffff000000ff000000ffff00ffffffffffff ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff0000ffffff ffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff0000ffffffffffffffff00ffff00ffffffffffffffffffffffffffffff000000 00000000000000ffffffffffffffffffff00ffffffffffffffffff00ffffff00ffff00ff ffffffff00ffffffffffffff00000000ffffffffffffffffffffffffff00000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffff00 0000000000ffffffffffffff00ffffff00000000ffffffffffffffffffffffffff00ffff ffffffffffffffffffff00000000000000000000ffffffffffffffffffffffffffffffff ffffffffffff00000000ffffffffffffffffff0000ffff00ffffffffff00ffff0000ffff ffffffffffffffff00ffffffffffffffffffffffffffffff000000ffffffffffffffffff 0000ffffffffffffffffffffffff00ffffffffffffffffffffff00ffff00ffffffffffff ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff000000ffffffff ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff000000ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffff0000000000ffff0000 0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff0000ffffffff000000000000ffffff00ffff ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff0000 00ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff00ffffffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 00000000000000ffffff00000000000000000000000000000000ffffffffffffffffffff ffffffffffffffff00ffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00ffffffffffffffffffffffffffffff000000000000000000 00ffffffffffffffffff000000ffffffffffffffffffff00000000000000000000ffffff ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffff0000000000000000000000000000ffffffffffffffffffffffffff ffffffffffffff00000000000000000000ffffff00000000000000000000000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00000000000000000000000000ffffffffffffff0000000000ffffffffffffffffffffff ffffffffffffffffffffffffffffff00ffffffff00ffffffffffff000000000000000000 00000000ffffffff00ffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff000000ffffffffffffffffffffffffffffff0000ffffffff ffffffffffffffff000000ffffffffffff00000000000000000000000000ffffffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffff00ffffffffffffffffffffffff00ffffffffffffff0000000000ff ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff0000ffffffffff000000ff00ff000000ffffff000000000000 00000000000000000000ffffff00ffffff00ffffffff00ffffffffffffffffffffffff00 00ffffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ff00ffffffffffffffffffff00ffffffffffffffffffffff000000000000000000000000 00000000ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00000000 000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffff00ffff0000000000000000ffff00ffffffffff000000ff00ff0000 00ffffff00000000000000000000000000000000ffffff00ffffff00ffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffff0000ffffffffff0000ffffff00ffffff0000ffffffffffffffff ffffffffffffffffffff00000000000000000000000000000000ffffffffffffffff0000 ffffff00ff00ff00ffffff00000000000000000000ffffffffffffffffffffffffffffff ffffff00ffff00ffffff000000000000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ff00ffffffffffffffffffff0000ffffffffffff0000ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff00ff00ffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 00000000000000ffff00ffffffffff00ffffffffffff00ffffffff0000ffffff00ffffff 0000ffffffffffffffffffffffffffffffffffff00000000000000000000000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffff0000ffffffffff0000ffffffff00ffffffff00ffffffffff000000 00000000000000ffffffffffff00ffffff00ffffffff00ffffffffffffffffffff0000ff ffffff00ff00ff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffff00ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ff00ffffffffffffffffffffff00ffffffff000000ffffffffffff000000000000000000 00ffffffffffff000000000000000000ffffffffffffffffffff0000ffffffffffffffff ffffff000000000000000000ffffffffffffffffffffff0000ffffffff00ff00ffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00 ffffffffffff00ffff00ffffffffff00ffffffffffff00ffffff0000ffffffff00ffffff ff00ffffffffff00000000000000000000ffffffffffff00ffffff00ffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffff0000ffffffffffff00ffffffff0000ffffffff0000ffffffffffffff ffffffffffffffffffffffffff00ffffff000000000000ffffffffffffffffffff00ffff ffffffffffffff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffffff00000000ffffffffff00ffffffffffff00 00ffff00ffffffffffffff000000000000ffff0000ffff00ffffffff00000000ffffffff ffffffffffffffffffffffffff0000ff000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff0000ffffffffffffff0000ffffffffffffffffffff ffffffffffffffffffffff0000ffffffffffffffffffff00ffffffffffffffffffffffff ff00000000ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00 ffffffffffff00ffff00ffffffffff00ffffffffffff00ffffff00ffffffff0000ffffff ff0000ffffffffffffffffffffffffffffffffffffffff00ffffff000000000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffff0000ffffffff00ffffffffffff00ffffffffffffff ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff0000ffff ffffffffffffff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffff00ffffffff00ffffffff00ffffffffff00ff ff00ff00ffffffffffff00ffff00ffffffff00ffff00ff00ffffff00ffffffffffffffff ffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00ffffffff0000000000000000000000000000ff ffffffffffffffffffffffff00ffffffffffffffffff0000ffffffffffffffffffffffff 0000ffff0000ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00 ffffffffffff00ffff00ffff0000000000000000ffff00ffff0000ffffffff00ffffffff ffff00ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffff00ffffffff0000ffffffffffff00ffffffff000000 00000000000000ffffffffffff000000000000000000000000ffffffffffffff00ffffff ffffffffffffff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffff00ffffffffffffffffff00ffffffffff00ff ffff00ffffffffffffff00ffffff00ffffff00ffffff00ffffff00ffffffffffffffffff ffffffffffffffffffffffffff0000ffffffffffffffffffffffff000000000000000000 00ffffffffffffffffffffffffffffff00ffffffffffffffffffff0000ffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffff00ffffffffffffffffffffffffff 00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00 ffffffffffff00ffff00ffffffffff00ffffffffffff00ffff00ffffffff0000ffffffff ffff00ffffffff00000000000000000000ffffffffffff000000000000000000000000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffff00ffffffff00ffffffffffffff00ffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff00ffffff ffffffffffffff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffffff00000000ffffffffff00ffffffffff00ff ffff00ffffffffffffff00ffffff00ffffff00ffffff00ffffff00ffffffffffffffffff ffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00ffffffffffffffffff0000ffffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffff00ffffffffffffffffffffffffff 00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00 ffffffffffff00ffff00ffffffffff00ffff00ffffff00ffff00ffffffff00ffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff0000ffffffffffffffffff00ffffff0000ffffffffffff0000ffffffffffffff ffffffffffffffffffff00000000000000000000000000000000ffffffffffff00ffffff ffffffffffffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffff00ffffffffffffffffff00ffffffffff00ff ffff00ffffffffffffff00ffffff00ffffff00ffffff00ffffff00ffffffffffffffffff ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff0000ffffffffffffffff0000ffffffffffffffffff ffffffffffffffffffffff0000ffffffffffffffffff00ffffffffffffffffffffffffff 0000ffffff00ffffffffffffffffffffffffffffffffffffffffffffff00000000000000 00000000000000ffff00ffffffffff00ffffff00ffff00ffff00ffffff0000ffffffffff ff0000ffffffffffffffffffffffffffffffffff00000000000000000000000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffff00ffff0000ffffffffffffff00ffffffffff000000 00000000000000ffffffffffffffff00ff00ffff00ffffffffffffffffffffff0000ffff ffffffffffffff00ffffff00ffffffff000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffff00ffffffffffffffffff00ffffffffff00ff ffff00ffffffffffffff00ffffff00ffffff00ffffff00ffffffff00ffffffffffffffff ffffffffffffffffffffff00ffffffffffffffffffffffffffffff000000000000000000 00ffffffffffffffffffffffffff0000ffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffff0000ffffffffffffffffffff0000ffffffffffffffffffffffff ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffff00ffffffffff00ffffff00ffff00ffff00ffff0000ffffffffffff ff00ffffffffff00000000000000000000ffffffffffffffff00ff00ffff00ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffff000000ffffffffffff000000ffffffffff00ffff ffffffffffff00ffffffffffffff0000ff00ffff0000ffffffffffffffffffffff0000ff ffffffffffffff00ff00ff00ffffffff00ff0000ffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffff00ffffffff00ffffffff00ffffffffff00ff ff00ff00ffffffffffff00ffffff00ffffff00ffff00ff00ffffffff000000ffffffffff ffffffffffffffffffffff00ffffffffffffffffffffffffffffff00ffffffffffffffff 00ffffffffffffffffffffffff0000ffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffff0000ffffffffffffffffffffffff0000ffffffffffffffffffffff ffffffff00ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffff00ff00000000000000000000ff00ffffff000000ffffffffffff00 0000ffffffffff00ffffffffffffffff00ffffffffffffff0000ff00ffff0000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff0000ffffffffffffffffffffffffffffffffffffff000000ffffffffffffff00ffff ffffffffffff00ffffffffff000000ffff00ffffff000000ffffffffffffffffffff0000 00ffffffffffff0000ffff00ffffff0000ffff0000ffff0000ffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffffff00000000ffffffffffff0000ffffffff00 00ffff00ffffffffffffff000000ffffffffff0000ffff00ffffffffffffff00ffffffff ffffffffffffffffffffff0000ffffffffffffffffffffffffffff00ffffffffffffffff 00ffffffffffffffffffff000000ffffffffffffffffffffff0000ffffffffffffffffff ffffffffffffff000000ffffffffffffffffffffffffffff000000ffffffffffffffffff ffffff0000ffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffff00ffffffffffffffffffffffff00ffffffffffffffffffff000000 ffffffffffffff00ffffffffffffffff00ffffffffff000000ffff00ffffff000000ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffff00ffffff000000ffffffff00ffffffffff000000ffffffffffffffffffff 000000ffffffffff00ffffff00000000ffffffffffffffff0000ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff ffffffffffffffffffffffff00000000000000000000ffffffffff00ffffffffffffffff 00ffffffffffffff00000000ffffffffffffffffffffffffffff000000ffffffffffffff ffffffff00000000ffffffffffffffffffffffffffffffffffff000000ffffffffffffff ffff0000ffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffff0000000000000000000000000000ffffffffffffffffffffffffff ffffffffffffff00ffffffffffffffff00ffffff000000ffffffff00ffffffffff000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 00000000000000ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 00ffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000000ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00000000000000000000ffffffffffffffffffff00ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff0000000000ffffffffffff00ffffff00ffff ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffff00ff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff ffffffffffffff00ffffffffffffffffffffffffffffffff00ffffffffffffffffffffff ffffff00ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00ffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff00ffffff00ffff ffffffffffffffffff00ffffff00000000000000ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffff00ff00ffffffffffffffffff00 ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffff0000ffffffffffffffffffffffffffffff0000ffffffffffffffffff ffffffff0000ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000000000000000000000000ffffffff00ffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff00ffffff00ffff ffffffffffffffffff00ffffffffffffffffff00ffffffffffffffffffffffffffffffff ffffff00000000000000000000000000ffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff00ffffffff00 ffffffffffffff00000000000000000000000000ffffffff00ffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff 00000000ffffffffff00ffffffffff00ffffffffffffffffffff00ffffffffffff00ffff ffffffffff00ffffffffffffffffffffffff00ffffff00ffffffffffffffffff00000000 00ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff0000ffffffffffff0000ffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffff00000000 00000000ffffffffff00ffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffff0000ffffffffff00000000000000000000000000000000ffff ffffffffffffffffffffffffffffffffffffff00ffffffff00ffffffffffffffff000000 ffffffffffffffffffffffffffffffff00000000000000ffffffffffffff00ffffffff00 ffffffffffffffffffffffffffffff0000ffffffffffff0000ffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00 ffffffff00ffffffff00ffffffffffff00ffffffff000000000000ffffffffffffff0000 ffffffffff00ffffffffffffffffff00ffffff0000ff00ffffffffffffffff00ffffffff ff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff0000ffffff00ff00ff00ffffff00000000000000000000ffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffff00ffffff ffffff00ffff000000000000ffffffffff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffff0000ffffff00ff00ffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffff00ffffffff0000ffffffffffffffffff00 00ffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffff00ffffffff00 ffffffffffffffffffffffffffff0000ffffff00ff00ff00ffffff000000000000000000 00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00 ffffffff00ffffffff00ffff00ffffff00ffffffffffffffffff00ffffffff00ffffffff ff00ffffff00ffffffffffffffffffff00ffffff00ff00ffffffffffffff00ffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff0000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffff00ff00ff00ffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffff0000ffff00ffffffff ffff00ffffffffff00ffff00ffffffff00ffffffffffffffffffffffff00ffffffffffff ffffffffffffffffff0000ffffffff00ff00ffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffffff ffffffffffffffff00ffffffffffff0000ffffffffff00ffffffffffffff00ffffffff00 ffffffffffffffffffffffffff0000ffffffff00ff00ff00ffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00 ffffffff00ffffffff0000000000ffff00ffffffff000000000000ffffffffff00000000 000000ffff00ffffffffffffffffff00ffffffff00ff00ffffffffffffff00ffffffffff ffff00ffffffffffffffffffff00ffffffffffffffffffffffffff00ffffffff000000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffff00ff00ff00ffffffff00 ffffffffffffffff00ffff00ffffffff00ffff00ffffffffffffffffff00ffffffffffff ffffffffffffffffff00ffffffffffffffffffffffffff00000000ffffffffffffffffff ffffffffffffffffffffffffffffffffffff0000ffffffffff0000ffffffffffffffffff ffffffffffffff0000ffffffffff0000ffffffffff0000ffffffffffffff00ffffffff00 ffffffffffffffffffffffffff00ffffffffffffffffff00ffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00 ffffffff00ffffffff00ffffffffffff00ffffff000000ffffff00ffffffffffffffffff ffffffffff00ffff00ffffffffff0000ff00000000ff00ffffffffffffffff00ffffffff ff00ffffffffffffffffffffff00ffffffffffffffffffffffffff0000ff000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff0000ffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffffffffff00 ffffffffffffffff00ffff00000000000000000000ffffffffffffffff00ffffffffffff ffffffffffffffff0000ffffffffffffffffffffffff0000ffff0000ffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffffffffffffffff ffffffffffff0000ffffffffff0000ffffffffffff00ffffffffffffffff00ffffffff00 ffffffffff00ffffffffffff0000ffffffffffffffffff00ffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff 00000000ffffffffff00ffffffffffffff000000ffffffffffff00ffffffffffff000000 00ffffffff0000000000ffffff00ffff00ffffff00ff00ffffffffffffffffff00000000 00ffffffffffffffffffffffff00ffffffffffffffffffffffffffff000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffffff00ff00 ff00ffffffffffff00ffff00ffffffff00ffffffffffffffffffffffff00ffffffffffff ffffffffffffffff00ffffffffffffffffffffffffff00ffffffff00ffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffff0000ffffffffffffffff ffffffffff0000ffffffffffffffffffffffffff0000ffffffffffffffff00ffffffff00 ffffffff0000ffffffffffff00ffffffffffffffffffff00ffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffff00ffffffffffffffffffffffffffffffff00ffffffffff00ffffff ff00ffffff00ffffffffffff00ffffffff00ffff00ff00ffffffffffffffffffffffff00 ffffffffffffffffffffffffff00ffffffffffffffffffffffffff0000ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffffff00ff00 ffff00ffffffff00ffffff00ffffffff00ffffffffffffffffffffffff00ffffffffffff ffffffffffffffff00ffffffffffffffffffffffffff00ffffffff00ffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffffff ffffffff0000ffffffffffffffffffffffffffff00ffffffffffffffffff00ffffffff00 ffffff0000ffffffffffffff00ffffffffffffffffffff00ffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffff00ffffffffffffffffffffffff000000ffffffffffffff00ffffff ff00ffffff00ffffffffff00ffffffffffffffff00ff00ffffffffffffffff00ffffffff 00ffffffffffffffffffffffff00ffffffffffffffffffffffff0000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffff00ffffffff0000000000ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffff00ffff00 ffff0000ffffffff00ff00ffffffffff00ffffffffffffffffffffffff00ffffffffffff ffffffffffffffff00ffffffffffffffffffffffffff0000ffffff00ffffffffffffffff ffffffffffffffffffffffffffffffffff0000ffffffffffffffff00ffffffffffffffff ffffff0000ffffffffffffffffffffffffffff0000ffffffffffffffff0000ffffffff00 ffff0000ffffffffffffffff00ffffffffffffffffffff00ffffffff0000000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff00ffffff00ffffffffffff00ffffff ff00ffffff00ffffffffffffffffffffffffffff00ff00ffffffffffffffffff00ffffff 00ffffffffffffffffffffffff00ffffffffffffffffffffff0000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff0000ffffffffffffffffff00ffffff00ffffffff000000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffff00 ffffff00ffffffffff00ffffffffffff00ffffffffffffffffffffffff00ffffffffffff ffffffffffffffff0000ffffffffffffffffffffffffff0000000000ffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffff0000ffffffffffffff ff000000ffffffffffffffffffffffffffff0000ffffffffffffffffff00ffffffffff00 ff0000ffffffffffffffffff0000ffffffffffffffffff00ffffff00ffffffff000000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff0000ffffffffffffffffffffffffffffffffff00ffffffffff00ffffffffffff000000 00ffffffff00ffffffffffffffffffffffffffff00ff00ffffffff00ffffffff00ffffff 00ffffff00ffffffffffffffff00ffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffff00ff00ff00ffffffff00ff0000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00 ffffffffffffffff00ff00ffffffffff00ffffffffffffffffffffffff00ffffffffffff ffffffffffffffffff0000ffffffffffffffffffffffffffffff00ffffffffffffffff00 00ffffffffffffffffffffffffffffff0000ffffffffffffffffffff00ffffffffffff00 0000ffffffffffffffffffffffffffffff0000ffffffffffffffffff0000ffffffffff00 0000ffffffffffffffffffffff0000ffffffffffffffff00ff00ff00ffffffff00ff0000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff00ffffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffff00ff00ffffffffff0000000000000000 000000000000ffffffffffffff00ffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff000000ffffffffffff0000ffff00ffffff0000ffff0000ffff0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00 ffffffffffffff00ffffff00ffffffff00ffffffffffffffffffffffff00ffffffffffff ffffffffffffffffffff000000ffffffffffffffffffffffff0000ffffffffffffff00ff ff00ffffffffffffffffffffffffff0000ffffffffffffffffffffff00ffffff00000000 ffffffffffffffffffffffffffffff000000ffffffffffffffffff0000ffffffffffff00 00ffffffffffffffffffffffffff000000ffffffffffff0000ffff00ffffff0000ffff00 00ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff00ffffffffff00ffffffffffffffffffffff00ffffff00ffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffff00ff00ffffffffffff00ffffffffffff ffffffffffffffffffffffffff00ffffffffffffffffffffff0000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff000000ffffffffff00ffffff00000000ffffffffffffffff0000ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ff00 ffffffffffff00ffffffff00ffff00ff00ffffffffffffffffffffffff00ffffffffffff ffffffffffffffffffffffff000000ffffffffffffffffff0000ffffffffffffffff00ff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff000000ffffffffff00ffffff00000000ffffffff ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00000000000000ffffffffffffffffffffff000000ffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff ffffffffffffffffffffffffff00ffffffffffffffffffffffff00000000000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ff ffffffffffffffffffffffffffffff00ffffffffffffffffff0000000000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffff00 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff0000000000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00ffffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ffffffffff00ff00ffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffffff00000000ffff0000000000000000ffffff ffffffffffffffffffffffffffffffff00ffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00ffffffffffffffffffffffff00ffffffffffffffffffffff ff00ffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ffffffffff00ff00ffffffffffffffffffffffffff0000 ffffffffffffff00ffffffffffffffffffffffffffffffffffffffff00ffffffffffff00 000000000000000000000000ffffffff00ffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00ffffffffffffffffffffffff00ffffffffffffffffffffff ff00ffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffff00ffffffffffff00ffffffffffffffff00ffffffffffff00000000 0000000000000000ffff00000000000000000000000000000000ffffffffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff0000ff ffffff00ffffff0000ffffffffffffff00ff00000000000000ffffff00ffffffffffffff ffffffffffffff0000ffffffffffff0000ffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff00000000ff00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff000000000000000000000000ffffff0000000000000000ffffffffffffffff 0000ffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffffffffffff00 000000ff00ffffffffffffffffff00ffff00ffffffffff000000ffffffffffffffffffff ff00000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffff0000ffffffffff00ffffffffffffffff0000ffffffffffffffffff ffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff0000ffff ffffff0000ffffff00ffffffffffffff00ffffffffffffffffff000000000000ffffffff ffffffffffff0000ffffff00ff00ff00ffffff00000000000000000000ffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffff0000ffffffff0000 ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ff ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00ffffffffffffffffffffff00ffffffffffffffffffffffff 00ffffff00000000000000000000ffffffffffffffffff00ffffffffffffffffff0000ff ffffff0000ffffffffffffffffff00ffff00ffffffff00ffffff00ffffffffffffffff00 00ffffffff0000ffffffffffffffffffffff00ffffffff00ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffff0000ffffffff00ffffffffffffffffff0000ffffffffffffffff ffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff000000ffffff ffffffff00ffffff0000ffffffffff0000ffff0000000000ffffff00ffffff00ffffffff ffffffffff0000ffffffff00ff00ff00ffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffff00 ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ff ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff ffffffffffffffffffffff00ffffffffffffffffffffff00ffffffff0000000000ffffff 00ffffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffffff00ffffff ffffffff00ffffffffffffffffffffffffffffffffff00ffffff00ffffffffffffff00ff ffffffffffff00ffffffffffffffffffffff00ffffffff00ffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffff00ffffffff00ffffffffffffffffffff00ffffffff00000000 0000000000000000ffffffffffffff00000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00000000ffffffffffffffffffffffff000000ffffffffff ffffffff0000ffffff00ffffffffff00ffffffffffffffffffffff00ffffff00ffffffff ffffffffff00ffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffffffffffffffff ffff0000ffffff0000ff00000000ffffff000000ffffff00ff000000ffffffffffffffff ffff00ffffffffffffff000000ffffffff0000ff0000ffffffffffffffff00ffffffffff ffffffffff000000000000000000000000ffffffffffff00ffffffffffffffffffffffff 00ffffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffff00ffffffff ffffffffffffffff00ff00000000ffffff0000ffffff00ffffff00ffffffffffff00ffff ffffffffffffffffffffff000000ffffff00000000ff00000000ffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffff0000ffffff00ffffffffffffffffffff0000ffffffffffffff ffff00ffffffffffffffffffffff0000ffff0000ffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ffff000000ffffffffffffffff000000ff00ffffffffff ffffffffff00ffffffffffffffff0000ffffffffffffffffffffff00ffffff00ffffffff ffffffff0000ffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffffffffffffffff ffffff00ffffffff00ffff00ffffffff00ffffff00ff000000ffff0000ffffffffffffff ffff00ffffffffffff00ffffff00ffff00ffff0000ffffffffffffffffff00ffffffffff ffffffffffffffffffffff00ffffffffffffffffffff0000ffffffffffffffffffffffff 00ffffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffff00ffffffff ffffffffffffff000000ff00ff00ffffffff00ffffff00ffff00ffffffffffffff00ffff ffffffffffffffffffff00ffffff00ffffff00ffffffff00ffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffff00ffffff00ffffffffffffffffffffff00ffffffffffffff ffff00ffffffffffffffffffffff00ffffffff00ffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ffffffff000000ffffff00000000ffffff00ffffffffff ffffffffffffffffffffffffffff00ffffffff0000000000ff000000000000000000ffff ffffffff00ffffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffffffffff000000 00ffff00ffffffff00ffff00ffffff00ffffffff00ffff00ffffffff00ffffffffffffff ffff00ffffffffffff00ffffff00ff00ffffffff00ffffffffffffffffff00ffffffffff ffffffffffffffffffffff00ffffffffffffffffffff00ffffffffffffffffffffffffff 00ffffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffff00ffffffff ffff00000000ffff00ffffffff00ffffffff00ffffff00ff0000ffffffffffffff00ffff ffffffff00000000ff00ffffffffff00ffff00ffffffff00ffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffff00ffffff00ffffffffffffffffffffff00ffffffffffffff ffff00ffffffffffffffffffffff00ffffffff00ffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffffffff ffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffffffffffffff00 ffffff00ffffffff00ffff00ffffff000000000000ffff00ffffffff00ffffffffffffff ffff00ffffffffffffffff000000ff00ffffffff00ffffffffffffffffff00ffffffffff ffffffffffffffffffffff00ffffffffffffffffffff00ffffffffffffffffffffffffff 00ffffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffff00ffffffff ffffffff00ffffff00ffffffff00ffffffff00ffffff00ffffff00ffffffffffff00ffff ffffffffffff00ffff00ffffffffff00ffff00ffffffff00ffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000ffff00ffffffffffffff00ffffff0000ffff00ffffffffffffff00ffffffff000000 000000ffffffffffffffffffffff0000ffffff00ffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffffffff ffffffffffffffffffffffff0000ffffffffffffffffffffffff00000000000000ffffff ffffffff00ffffffffffffffffffff00ffffffff0000000000ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffffffffffffff00 ffffff00ffffffff00ffff00ffffff00ffffffffffffff00ffffffff00ffffffffffffff ffff00ffffffffffff0000ffff00ffff00ffff00ffffffffffffffffffff00ffffffffff ffffffffffff000000000000ffffffffffffffffff0000ffffffffffffffffffffffffff 00ffffffff0000000000ffffffffffffffffffffffffff00ffffffffffffff00ffffffff ffffffff00ffffff00ffffffff00ffffffff00ffffff00ffffffff00ffffffffff00ffff ffffffffffff00ffff00ffffffffff00ffff00ffffffff00ffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ff0000ffffffffffffffffffffffff00ff0000ffffffffffffffffffffff00ffffff ffff000000ffffffffffffffffffff0000000000ffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffffffff ffffffffffffffffffffff0000ffffffffffff0000000000ffff00ffffffffff00ffffff ffffffff0000ffffffffffffffffff00ffffff00ffffffff000000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff00 ffffff00ffffffff00ffff00ffffff00ffffffffffffff00ffffffff00ffffffffffffff ffff00ffffffffffff00ffffff00ffff000000ffffffffffffffffffffff00ffffffffff ffffffffff00ffffffffff000000ffffffffffffff00ffffffffffffffffffffffffffff 00ffffff00ffffffff000000ffffffffffffffffffffffffffffffffffffffff00ffffff ffffffff00ffffff00ffffffff00ffffffff00ffffff00ffffffff00ffffffffffff00ff ffffffffffff00ffff00ffffffffff00ffff00ffffffff00ffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff000000ffffffffffffffffffffffffff000000ffffffffffffffffffffffff00ffffff ffff00ff000000ffffffffffffffffffffff00ffffffffffffffff0000ffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffffffff ffffffffffffffffffff0000ffffffffffffff00ffffff00ffff00ffffffffff00ffffff ffffffffff0000ffffffffffffffff00ff00ff00ffffffff00ff0000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff0000 ffffff00ffffff000000ff00ff00ffff00ffffff00ffff00ffffffff00ffffffffffffff ffff00ffffffffffff00ffff0000ff00ffffffffffffffffffffffffffff00ffffffffff ffffffffff00ffffffffff00ff000000ffffffffff00ffffffffff00ffffffffffffffff 00ff00ff00ffffffff00ff0000ffffffffffffffffffffffffffffffffffffffff0000ff ffffff0000ffffff00ffffffff00ffffff0000ffffff00ff00ffff00ffffffffffffff00 00ffffffff0000ffffff00ffffff00ffffff00ff00ffff00ff00ffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff00ffffff ff0000ffffff0000ffffffffffffffffff0000ffffffffffffff00ffff00ffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffffffff ffffffffffffffff000000ffffffffffffffff00ffffff00ffff00ffffffffff00ffffff ffffffffffff000000ffffffffffff0000ffff00ffffff0000ffff0000ffff0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffff ffffffff000000ff00ffffff00ffffffff000000ffff000000ffff000000ffffffffffff ff000000ffffffffffff0000ff0000ff0000000000ffffffffffffffffff00ffffffffff ffffffffff00ffffffff0000ffffff0000ffffff0000ffffffffff0000ffffffffffffff 0000ffff00ffffff0000ffff0000ffffffffffffffffffffffffffffffffffffffffff00 000000ffffffff000000ffffffff000000ff0000ff0000ffff0000ffffffffffffffffff ff00000000ffffffffffff000000ffffffffff00ffffffff00ffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 0000ffffffffffffffffffffffffffff0000ffffffffffffffff00ffff00ffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffffffff ffffffffffff000000ffffffffffffffffffff00ffffff00ffff00ffffffffff00ffffff ffffffffffffffff000000ffffffffff00ffffff00000000ffffffffffffffff0000ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffff00ffffffffff ffffffffffff0000000000ffffffffffffffffff00ffffffffffffff000000000000ffff ff00ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff000000ffffffffffffffffffff0000ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0000000000ffff00000000000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff00ffffffffff00ffffffff0000000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff0000ffffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3e3e3e3e3e3e3e3e3e3e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3e3e3e3e3e3e3e3e365e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffffffffffffffffffffffffffffff00000000000000000000ffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00ffffff00000000ffff0000000000000000ffffffffffffff ffffffffffffffffffffffff00ffffffffffffff00ffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff000000000000000000000000ffffffffffff00000000000000000000ffffffffff ffffffffffffffffffff0000ffffffffffffffffffffffff00ffffffffffff0000000000 0000000000000000ffffffff00ffffffffffffff00ffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffff00000000000000000000000000000000ffff00ffffff ffffffffff00ffffffffffff000000000000000000000000ffff00000000000000000000 000000000000ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff0000ffffff00000000000000ffffff00ffffffffffffffffffffff ffffff0000ffffffffffff0000ffffffffffffff00ffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff 00ffffffffffffffff00ffffffffffff00ffffffffffffffff00ffffffffffff00000000 0000000000000000ffff00000000000000000000000000000000ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff0000ffffffffffff0000ffffffffffffffffffffffffffffffffffffffff00ffffff ffffffffff0000ffffffffffffffffffffff00ffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffff ffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff0000ffffffffffffffffffffffff000000000000ffffffffffffffff ffff0000ffffff00ff00ff00ffffff00000000000000000000ffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff0000ffffffff 00ffffffffffffffff0000ffffffffff00ffffffffffffffff0000ffffffffffffffffff ffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff00ffffffff000000ffffffffffff00000000000000000000ffffffffff00ffffff ffffffffffff0000ffffffffffffffffffff00ffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000ffffffffffff ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff000000ffffffffffff0000000000ffffff00ffffff00ffffffffffffffff ff0000ffffffff00ff00ff00ffffffffffffffff00ffffffffffffffffffffffffff00ff ffffffffffff00000000000000ffffff000000ffffffffff0000000000ffff00ffff00ff ff00ffffffffffffff00ffffffffffffffffffffffffff00ffffffff000000ffffffffff 00ffffffffffffffffff0000ffffffff00ffffffffffffffffff0000ffffffffffffffff ffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ff000000ffffffffffffffffffffffffffffffffffffffffffffff00ffffff ffffffffffffff00ffffffff000000000000000000000000ffffffffffffff00000000ff ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff0000ffffffffff ffffffffffffffffffffffff0000ffffffffffff000000000000000000000000ffffffff ffffffff000000ffffffffffffffffffffffffffffffff00ffffff00ffffffffffffffff ff00ffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffffffff00ff ffffffffffffffff00ffffff00ffffffffff00ffffffffffffffffff00ffff00ffff00ff ff00ffffffffffffff00ffffffffffffffffffffffffff0000ff000000ffffffffffffff 00ffffffffffffffffffff00ffffffff00ffffffffffffffffffff00ffffffff00000000 0000000000000000ffffffffffffff00000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff ffffffffffffff0000ffffffffffffffffff00ffffffffffffffffffffff0000ffff0000 ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff0000ffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff00ffffffff ffff000000ff00ffffffffffffffffffffffffffffffff00ffffff00ffffffffffffffff 0000ffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffffffff00ff ffffffffffffffff00ffffff00ffffffffff00ffffffffffffffffff00ffff00ffff00ff ff00ffffffffffffff00ffffffffffffffffffffffffffff000000ffffffffffffffffff 00ffffffffffffffffffff0000ffffff00ffffffffffffffffffff0000ffffffffffffff ffff00ffffffffffffffffffffff0000ffff0000ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffff00000000000000000000ffffffffff00ffffff ffffffffffffffff00ffffffffffffffffff00ffffffffffffffffffffff00ffffffff00 ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff0000ffffff ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff0000ffffff00 000000ffffff00ffffffffffffffff0000000000ff000000000000000000ffffffffffff 00ffffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffffffff00ff ffffffffffffffff00ffffff00ffffffffff00ffffffffffffffffff00ffff00ffff00ff ff00ffffffffffffff00ffffffffffffffffffffffffff0000ffffffffffffffffffffff 00ffffffffffffffffffffff00ffffff00ffffffffffffffffffffff00ffffffffffffff ffff00ffffffffffffffffffffff00ffffffff00ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff ffffffffffffffff00ffffffffffffffffff00ffffffffffffffffffffff00ffffffff00 ffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff0000ffff ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff00ffffffffff ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffffffff00ff ffffffffffffffff00ffffff00ffffffffff00ffffffffffffffffff00ffff00ffff00ff ff00ffffffffffffff00ffffffffffffffffffffffff0000ffffffffffffffffffffffff 00ffffffffffffffffffffff00ffffff00ffffffffffffffffffffff00ffffffffffffff ffff00ffffffffffffffffffffff00ffffffff00ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff 00ffffffffffffff00ffffffff000000000000ffffffffffffffffffffff0000ffffff00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff0000ffffffffff ffffffffffff00ffffffffffffffffffffffffffffff00000000000000ffffffffffffff 00ffffffffffffffffffff00ffffffff0000000000ffffffffffffffffffffffffff00ff ffffffffffffffff00ffffff00ffffffffff00ffffffffffffffff00ffffff00ffff00ff ff00ffffffffffffff00ffffffffffffffffffffff0000ffffffffffffffffffffffffff 0000ffff00ffffffffffffff00ffffff0000ffff00ffffffffffffff00ffffffff000000 000000ffffffffffffffffffffff0000ffffff00ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffffffffffffffffffffffffffffff00000000000000000000ffffffffffff00ff00 00ffffffffffffffffffffff00ffffffffff000000ffffffffffffffffffff0000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 ffffffffffffffff0000ffffffffffffffffffffffffffffffffffff0000ffffffffffff ffffffffffff00ffffffffffffffff0000000000ffff00ffffffffff00ffffffffffffff 0000ffffffffffffffffff00ffffff00ffffffff000000ffffffffffffffffffffffffff ffffffffffffffff00ffffff00ffffffffff00ffffffffffffffff00ffffff00ffff00ff ff00ffffffffffffff00ffffffffffffffffffffff00ffffffffffffffffffffffffffff ff00ff0000ffffffffffffffffffffffff00ff0000ffffffffffffffffffffff00ffffff ffff000000ffffffffffffffffffff0000000000ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffff000000 ffffffffffffffffffffffff00ffffffffff00ff000000ffffffffffffffffffffff00ff ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff00 00ffffffffff000000ffffffffffffffffffffffffffffffffffff0000ffffffffffffff ffffffffffff00ffffffffffffffff00ffffff00ffff00ffffffffff00ffffffffffffff ff0000ffffffffffffffff00ff00ff00ffffffff00ff0000ffffffffffffffffffffffff ffffffffffffffff00ffffff00ffffffffff00ffffffffffffff00ffffffff00ffff00ff ff00ffffffffffffff00ffffffffffffffffffffff00ffffffffffffffffffffffffffff ff000000ffffffffffffffffffffffffff000000ffffffffffffffffffffffff00ffffff ffff00ff000000ffffffffffffffffffffff00ffffffffffffffff0000ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff0000ffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffff00ff ffffffffffffffffffffffff00ffffffff0000ffffff0000ffffffffffffffffff0000ff ffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff000000ffffffffffffffffffffffffffffffffffff000000ffffffffffffffff ffffffffffff00ffffffffffffffff00ffffff00ffff00ffffffffff00ffffffffffffff ffff000000ffffffffffff0000ffff00ffffff0000ffff0000ffffffffffffffffffffff ffffffffffffffff0000000000ffffffffff00ffffffffff0000ffffffffff0000000000 0000ffffffffffffff00ffffffffffffffffffffff0000ffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff00ffffff ff0000ffffff0000ffffffffffffffffff0000ffffffffffffff00ffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00000000000000000000ffffffffff00ffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffff0000000000ffffffffffffffffffffffffffff0000ffff ffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffff ffffffffffff00ffffffffffffffff00ffffff00ffff00ffffffffff00ffffffffffffff ffffffff000000ffffffffff00ffffff00000000ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffff00ffffffffffffffffffffffff00000000000000000000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 0000ffffffffffffffffffffffffffff0000ffffffffffffffff00ffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00000000000000000000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff0000000000ffff00000000000000ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff000000ffffffffffffffffffff0000ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3b2b2b2b2b2b2b26565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3656565656565656565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e365656565656565656565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00000000000000ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffff 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffff00ffffffff0000ffffffffffffffffffffffffffff0000ffffff0000ffffffff ffffffffff00ffff00ffffffffffffffff00ffffffffffffffffffffffffffff00000000 00000000ffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffffffffff ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ffff00ffffff00ff0000ffffffffffffffffffffffffffffffffffff00ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff00 ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffff00ffffffffff00ffffffffffffffffffffffffffffff00ffffffff00ffffffff ffffffffff00ffff00ffffffffffffffff00ffffffffffffffffffffffffffffff00ffff ffffff00ffffffffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffff ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ffff00ffffff00ffff00ffffffffffffffffffffffffffffffffffff00ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffff00ff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffff00ffffffff0000ffffffffffffffffffffffffffff0000ffffff0000ffffffff ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffff00ff000000ffffffff000000ffffffffffff00000000ffffff0000 00ffffff00ff0000ffffff00ff0000ffff0000ffffffffffffffffffffffffffffffffff ffffffffff00ffffff000000000000ff0000000000ffffff000000ffffff00000000ffff ffff000000ffff00000000000000ff00000000ffffff000000ff000000ff000000ffff00 0000ff00000000000000ffff000000ffffffffffffffffffffffffffff00ff0000ffff00 00ffffffffff000000ffffffff000000ffffff00ff000000ffffff00000000ffffffffff ffffffffffffffffff00ffff0000ffffffffff0000ffffffff00ffffffff00ffffffff00 0000ffffffffffffffffffffffffffffff00ffffff00ff000000ffffffffffffff00ffff ffffffffffffff00ff000000ffffffff0000ff0000ffffff00ffffffff00ffffff000000 00ffff00ff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffff0000ffff0000ffff00ffffff00ffffffffffff00ffffffff00ffff ff00ff000000ff00ffff000000ffff0000ffff00ffffffffffffffffffffffffffffffff ffffffffff00ffffffff00ffff00ffffff00ffffff00ff00ffffff00ffffff00ffff00ff ff00ffffff00ff00ffff00ffff00ffff00ffff00ffffff00ffffff00ffffff00ffffff00 00ffff00ffff00ffff00ff00ffffff00ffffffffffffffffffffffff000000ffff0000ff ff00ffffff00ffffff00ffff00ffffff00ff000000ffff0000ff00ffffff00ffffffffff ffffffffffffffffff00ff00ff00ffffff0000ffff00ffffff00ffffffff00ffff0000ff ff0000ffffffffffffffffffffffffff0000ffff000000ffff0000ffffffffffff00ffff ffff00ffffff000000ffff0000ffff00ffff0000ffffffff00ffffff0000ffff00ffffff 00ffff0000ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffff00ffffffff00ff00ffffffff00ffffffffffff00ffffff00ffffff ff00ffff00ffffffffffff00ffffff00ffffff00ffffffffffffffffffffffffffffffff 000000000000ffffffff00ffff00ffffff00ffffff00ffffffffff00ffffff00ffff00ff ff00ffffffffffffffff00ffffffffff00ffff00ffffff00ffffff00ffffff00ffff00ff 00ffffffffff00ffffffff00ffffff00ffffffffffffffffffffffffff00ffffff00ffff ff00ffff00ffffffff00ffff00ffffff00ffff00ffffffff00ff00ffffffffffffffffff ffffffffffffffff000000ffff00ffffff00ffffff00ffff0000ffffff0000ffff00ffff ffff00ffffffffffffffffffffffffffff00ffffff00ffffffff00ffffffffffff000000 000000ffffffff00ffffffff00ff00ffffffff00ffffffff00ffffffff00ffff00ffffff ffffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffff00ffffffff00ff000000000000ffffffffffff00ffffff00000000 0000ffff00ffffffffffff00ffffff00ffffff00ffffffffffffffffffffffffffffffff ffffffffff00ffffffff00ffff00ffffff00ffffff00ffff00000000ffffff00000000ff ff00ffffffffffffffff00ffffffffff00000000ffffffff00ff00ffffffff00ffff00ff 00ffffffffff00ffffffff0000000000ffffffffffffffffffffffffff00ffffff00ffff ff00ffff000000000000ffffffff000000ffff00ffffffff00ffff000000ffffffffffff ffffffffffffffff0000ffff0000ffff00ffff0000ffffff00ffffffff00ffff0000ffff ffff00ffffffffffffffffffffffffffff00ffffff00ffffffff00ffffffffffff00ffff ffff00ffffffff00ffffffff00ff00ffffffff00ffffffff00ffffffff00ffffff000000 ffffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffff00ffffffff00ff00ffffffffffffffffffffff00ffffff00ffffff ffffffff00ffffffffffff00ffffff00ffffff00ffffffffffffffffffffffffffffffff ffffffffff00ffffffff00ffff00ffffff00ffffff00ff00ffffff00ffffff00ffffff00 ff00ffffffffffffffff00ffffffffff00ffffff00ffffff00ff00ffffffff00ff00ffff 00ffffffffff00ffffffff00ffffffffffffffffffffffffffffffffff00ffffff00ffff ff00ffff00ffffffffffffff0000ffff00ffff00ffffffff00ffffffffff00ffffffffff ffffffffffffffff00ffffff00ffffff000000ffffffffff00ffffffff00ffff00ffffff ff0000ffffffffffffffffffffffffffff00ffffff00ffffffff00ffffffffffff00ffff ffffffffffffff00ffffffff00ffff00ffff00ffffffffff00ffffffff00ffffffffffff 00ffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffff00ffffffff00ff00ffffffffffffffffffffff00ffffff00ffffff ffffffff00ffffffffffff00ffffff00ffffff00ffffffffffffffffffffffffffff00ff ffffffffff00ffffffff00ffff00ffffff00ffffff00ff00ffffff00ffffff00ffffff00 ff00ffffffffffffffff00ffffffffff00ffffff00ffffff00ff00ffffffff00ff00ffff 00ffffffffff00ffffffff00ffffffffffffffffffffffffffffffffff00ffffff00ffff ff00ffff00ffffffffffffff00ffffff00ffff00ffffffff00ff00ffffff00ffffffffff ffffffffffffff0000ffff0000ffffff00ffffffffffff0000ffffff0000ffff00ffffff ff00ffffffffffffffffffffffffffffff00ffffff00ffffffff00ffffffffffff00ffff ffffffffffffff00ffffffff00ffff000000ffffffffffff00ffffffff00ffff00ffffff 00ffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffff00ffffffff00ffff00ffffff00ffffffffffff00ff00ffff00ffff ff00ffff00ffffffffffff00ffffff00ffffff00ffffffffffffffffffffffffffffff00 ffffffff00ffffffff00ffffff00ffffff00ffffff00ff00ffffff00ffffff00ffffff00 ff00ffffff00ffffffff00ffffffffff00ffffff00ffffffff00ffffffffff0000ffffff 00ffffffffff00ffffffff00ffffff00ffffffffffffffffffffffffff00ffffff00ffff ff00ffffff00ffffff00ffff00ffff0000ff0000ffffffff00ff0000ffff00ffffffffff ffffffffffffff00ffffff00ff00ffff0000ffff00ffff00ff00ffff00ff00ff0000ffff 0000ffffffffffffffffffffffffffffff00ffffff00ffffffff00ffffffffffff00ffff ffffffff00ffff00ffffffff00ff00ffffffffffffffffff00ffffffff00ffff0000ffff 00ffff00ffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff000000ffffffff000000ffff000000ffff000000ffffffffffffffff00ffffffff0000 00ffff000000ffffffff000000ff000000ff000000ffffffffffffffffffffffffffffff 00000000ffffffff00000000000000ffff00000000ffffff000000ff00ff0000000000ff ffff000000ffffffff000000ffffff0000000000ffffffffff00ffffffff000000ffff00 0000ffffff000000ffffffff000000ffffffffffffffffffffffffff000000ff000000ff 000000ffffff000000ffffffff0000ff0000000000ffff00000000ff0000ffffffffffff ffffffffffffff00ffffff0000ffffffff000000ffffff0000ffffff0000ffffff000000 ffffffffffffffffffffffffffffffff000000ff000000ffff000000ffffffff00000000 00000000ffff000000ffff000000ff0000000000ffffff000000ffff000000ff00ff0000 ffff000000ffff000000ff00ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00ffffffffff00ffff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00ffffffffff00ffff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00ff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff0000ffffff00ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff00ffffffff ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00000000000000000000ffffffffffffffff0000ffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff00ffffffff ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00ffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff00 00ffffff00000000000000ffffff00000000000000000000000000ffffff0000ffffffff ffffff00ffffffffffff00ffff00ffffffffffffffffffff000000000000000000ffff00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff00ffffff0000 0000000000000000ffff00ffff00ffffffffffffffffffff00ffffff00ffffff00ff0000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff00ffff00ffffff000000000000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff00ffffffffff ffffff00ffffffffffff00ffff00ffffffffffffffffffff00ffffff00ffffff00ffff00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff00ffff00ffffff00ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffff00ff000000ffffffffffffffffff00ffffffff000000ffffff00ff000000ffff ffff000000ffffff00ff000000ffffffff000000ffffff00000000ffffff000000ffffff ffffffffffffffffff00ffff00000000ffffffffffffff00ff0000ffff0000ffffffffff 000000ffffffff000000ffffff00ff000000ffffff00000000ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff00ffffffffff ffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00 ff000000ffffffff000000ffff00000000ff000000ffffffffff00000000ffffff000000 ffff00000000ff000000ffffffffffffffffffffffff00ffffffffffffffff00000000ff ffffffff00ffffffffffff0000ffff00ffffffffffffff000000000000ffff0000ffff00 ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffff000000ffff0000ffffffffffffffff00ffffff00ffffff00ff000000ffff0000ff ff00ffffff00ff000000ffff0000ffff00ffffff00ff00ffffff00ffff00ffffff00ffff ffffffffffffffff0000ffffff00ffffffffffffffff000000ffff0000ffff00ffffff00 ffffff00ffff00ffffff00ff000000ffff0000ff00ffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff0000ff000000ffffffffffffffffff00 ffffffffffffffffffffffffffffffffff0000000000000000ffffffffff00ffffffffff ffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00 00ffff0000ffff00ffffff00ffff00ffffffff00ffffffffff00ffffff00ffff00ffffff 00ffff00ffffffff00ffffffffffffffffffffffffff00ffffffffffffff00ffffffff00 ffffffff00ffffffffff00ffff00ff00ffffffffffff00ffff00ffffffff00ffff00ff00 ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffff00ffffffff00ffffffffffffffff00ffffff00ffffff00ffff00ffffffff00ff ff00ffffff00ffff00ffffffff00ff00ffffffff00ff00ffffffffff00ffffffff00ffff ffffffffffffffffff00ffffff00ffffffffffffffffff00ffffff00ffffff00ffff00ff ffffff00ffff00ffffff00ffff00ffffffff00ff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffffffffffffffff00 ffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffff00ffffffffff ffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00 ffffffff00ff00ffffffff00ffff00ffffffff00ffffffffff00ffffffffffff00ffffff 00ffff00ffffffff00ffffffffffffffffffffffffff00ffffffffffffff00ffffffffff ffffffff00ffffffffff00ffffff00ffffffffffffff00ffffff00ffffff00ffffff00ff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffff00ffffffff00ffffffffffffffff00ffffffffff000000ffff00ffffffff00ff ffffff000000ffff00ffffffff00ff000000000000ffff000000ffff000000000000ffff ffffffffffffffffff00ffffff00ffffffffffffffffff00ffffff00ffffff00ffff0000 00000000ffffffff000000ffff00ffffffff00ffff000000ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffff00 ffffffffffffffffffffffffffffff0000ffffffffffffffffff00ffffff00ffffffffff ffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00 ffffffff00ff000000000000ffffff00ffff00ffffffffffffff000000ffffffffff0000 00ffffff00ffff00ffffffffffffffffffffffffffff00ffffffffffffffff00000000ff ffffffff00ffffffffff00ffffff00ffffffffffffff00ffffff00ffffff00ffffff00ff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffff00ffffffff00ffffffffffffffff00ffffff0000ffff00ffff00ffffffff00ff ff0000ffff00ffff00ffffffff00ff00ffffffffffffffffffff00ff00ffffffffffffff ffffffffffffffffff00ffffff00ffffffffffffffffff00ffffff00ffffff00ffff00ff ffffffffffff0000ffff00ffff00ffffffff00ffffffffff00ffffffffffffffffffffff ffffff00ffffffffffffffffffffffffffffff0000ffffffffff00ffffffffffffffff00 ffffff00ffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffffffff00 00000000ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00 ffffffff00ff00ffffffffffffffff00ffff00ffffffffffffffffffff00ffff0000ffff 00ffffff00ffff00ffffffffffffffffffffffffffff00ffffffffffffff00ffffffffff ffffffff00ffffffffff00ffffff00ffffffffffffff00ffffff00ffffff00ffffff00ff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffff00ffffffff00ffffffffff00ffff00ffffff00ffffff00ffff00ffffffff00ff ff00ffffff00ffff00ffffffff00ff00ffffffffffff00ffffff00ff00ffffffffffffff ffffffffffffffffff00ffffff00ffffffffffffffffff00ffffff00ffffff00ffff00ff ffffffffffff00ffffff00ffff00ffffffff00ff00ffffff00ffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffff00ffffffffffff00ffffffff00ffffff00 ffffff00ffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffffff00ff ffffff000000ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00 ffffffff00ff00ffffffffffffffffff00ff00ffffffffffff00ffffff00ffff00ffffff 00ffffffff00ff00ffffffffffffffffffffffffffff00ffffffffffffff00ffffffffff ffffffff00ffffffffff00ffffff00ffffffffffffff00ffffff00ffffff00ffffff00ff ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffff00ffffffff00ffffffffff00ffff00ffffff00ffff0000ff000000ffffff00ff ff00ffff0000ff0000ffffffff00ffff00ffffff00ff0000ffff00ffff00ffffff00ffff ff00ffffffffffffff00ffffff00ff00ffffffffffffff00ffffff00ffffff00ffffff00 ffffff00ffff00ffff0000ff0000ffffffff00ff0000ffff00ffffffffffffffffffffff ffffffff000000ffffffffffffffffffffffff00ffffffffffff00ffffff0000ffffff00 ff00ff0000ffffffffffffffffffffffffffffffffffffffff0000ffffff00ff00ff00ff ffffff00ff0000ffffffffffffffffffff00ffffffffffffffffffff00ffffffffffff00 ffffffff00ffff00ffffff00ffffffffff00ffffffffffffff0000ffff00ffff00ffff00 00ff00ffffff00ffffffffffffffffffffffffffffff00ffffffffffffff00ffffffff00 ffffffff00ffffffffff00ffff00ff00ffffffffffff00ffffff00ffffff00ffff00ff00 ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00ffff000000ffff000000ffffffffff0000ffffffffff0000ff0000ff00ff000000ffff ffff0000ff0000000000ffff000000ffff000000ffff00ff0000ffffffff000000ffffff ff00ffffffffffff000000ffffff00ffffffffffffff000000ff000000ff000000ffffff 000000ffffffff0000ff0000000000ffff00000000ff0000ffffffffffffffffffffffff ffffffffffff000000000000000000ffffff0000ffffffffffff00ffff0000ffffffff00 00ffffff0000000000000000ffffffffffffffffffffff000000ffffffff0000ffff00ff ffff0000ffff0000ffffffffffffffffff00ffffffffffffffffff000000ffffffff0000 00ffff000000ffff000000ffffffffffff00ffffffffffffff00ff0000ffffffff0000ff 0000ffffffff00ffffffffffffffffffffffffffffff00ffffffffffffffff00000000ff ffffffffff0000ffffffff0000ffff00ffffffffffffff000000ffffffffff0000ffff00 ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffff000000ffffffffffff 00ffffffffffffffffffffffffffffffffff000000000000ffffffffffffff00ffffff00 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffff00ffffffffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffff00ffffffffffffffffffffff00ffff ff00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffff00ffffffffffffffffffffff00ffff ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffff00000000ff00ffffffffffffffffffffff ffffffffffffffffffffffffff00ffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff00ff000000ffffffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00ff00ffffffffffffffffffffff ffff000000ffffffffffffffffffffffffffffffffff0000000000ff00ffff00ffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00ffff00ffffffff00ffffff0000000000000000ffffffffff00ffff ffffffffffff00ffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffff0000ffffffff0000ffffffffffffffffffffff ffffffffffffffffffffffff0000ffffffffffffffffffff0000ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffffffff00ffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff0000ffffffffffffffffffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffff ffffff00ffffffffffffffffffffffffffffffff0000ffffffffff0000ff0000ffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00ffff00ffffffff00ffffff00ffffffffffff00ffff000000000000 ffffffffff00ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00ffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffff00ffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffffff00ffffff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff00ffffffffffffffffffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffffffffffffffffff ffffff00ffffffffffffffffffffffffffffffff00ffffffffffffff00ffff00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00ffff00ffffff0000ffff00ffffffffffff00ffffffffff00ffff00 ffffffff00ffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffff00ff000000ffffffffffff00ffffffffffffffffffffffff00ff0000ffffff00 0000ffffffff000000ffffffff00ff000000ffffffffffffff00ffffffff000000ffffff 00ff000000ffffffff0000ff0000ff0000ffffff0000ffffff000000ffffffff0000ff00 00ffffff000000ffffffffffffffffffffffffffffff00ffffffff00ffffff00000000ff ffffffffffff00000000ffffffffffffff0000ff0000ffff00ff0000ffffff000000ffff ffff000000ffffffff00ff000000ffffffffff00000000ffffff000000ffffffffffffff ffff00ff0000ffff0000ffffffffff000000ffffffff00ffffff00ffffffffffffffffff ffffff00ffffffff00ff000000ffffffffffff00ffffffffffffffff00ffff00ff000000 ffffffff00ffffff00ff000000ffffffff000000ffffff00000000ffffff000000ffffff ffffffffffffffffffffffffffff00ff00ff00ffffffff00ffffffffffffffff00ffff00 ffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00ffff000000ffff0000ffffffffff00ffffffffffffffffffffff000000ff00ffff00ff ffff00ffff00ffffff00ffffff00ffff00ffffffffffffffff00ffffff00ffffff00ff00 0000ffff0000ffff00ffff0000ffffff00ffffffff00ffff00ffffff00ffff00ffff0000 ffffff00ffffff00ffffffffffffffffffffffffff00ffffffffff00ffffffff00ffffff ffffffffff00ffffff00ffffffffffff00ffff0000ffff000000ff00ffff00ffffff00ff ff00ffffff00ffffff00ffff00ffffffffffffff00ffffffff00ffffff00ffffffffffff ff000000ffff0000ffff00ffffff00ffffff00ffffff00ffffffff00ffffffffffffffff ffffff00ffffff000000ffff0000ffffffffff00ffffffffffffffffffffff0000ffff00 00ffff0000ffff000000ffff0000ffff00ffffff00ff00ffffff00ffff00ffffff00ffff ffffffffffffffffffffffffffffffff00ffffffffffff00ffffffffffffffff00ffff00 000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffff00ffffffff00ffffffffff00ffffffffffff00000000ffff00ffffffff00ffff ffff00ff00ffffffff00ffffff00ff00ffffffffffffffffff00ffffff00ffffff00ffff 00ffffffff00ff00ffffffff00ffffff00ffffffff00ffff00ffffff00ff00ffffffff00 ffff00ffffffff00ffffffffffffffffffffffffff00ffffffffff00ffffffff00ffffff ffffffffff00ffffffffffffffffff00ffffffff00ffffff00ffffffff00ffffffff00ff 00ffffffff00ffffff00ff00ffffffffffffffff00ffffff00ffffffffff00ffffffffff ffff00ffffff00ffffff00ffff00ffffffff00ffffff00ffffffff00ffffffffffffffff ffffff00ffffffff00ffffffff00ffffffffff00ffffffffffffffffffffff00ffffffff 00ffffff00ffffff00ffffffff00ff00ffffffff00ff00ffffffffff00ffffffff00ffff ffffffffffffffffffffffffffffffff00ffffffff00ff00ff00ffffffffffff00ffff00 ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffff00ffffffff00ffffffffff00ffffffffffffffff00ffffff00ffffffff000000 000000ff000000000000ffffff0000ffffffffffffffffffff00ffffffffff000000ffff 00ffffffff00ff00ffffffff00ffffff00ffffffff00ffffffff000000ff00ffffffff00 ffff000000000000ffffffffffffffffffffffffff00ffffffffff00ffffffff00ffffff ffffffffffff000000ffffffffffff00ffffffff00ffffff00ffffffff000000000000ff 000000000000ffffff0000ffffffffffffffffff00ffffff00ffffffffff00ffffffffff ffff00ffffff00ffffff00ffff000000000000ffffff00ffffffff00ffffffffffffffff ffffff00ffffffff00ffffffff00ffffffffff00ffffffffffffffffffffff00ffffffff 00ffffff00ffffff00ffffffff00ff000000000000ffff000000ffff000000000000ffff ffffffffffffffffffffffffffffffff00ffffffff00ff00ffff00ffffffff00ffffff00 ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffff00ffffffff00ffffffffff00ffffffffffffffff00ffffff00ffffffff00ffff ffffffff00ffffffffffffffff00ff00ffffffffffffffffff00ffffff0000ffff00ffff 00ffffffff00ffff00ffff00ffffffff00ffffffff00ffff0000ffff00ffff00ffff00ff ffff00ffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffff00ffffff ffffffffffffffffff00ffffffffffff00ffff00ffffffff00ffffffff00ffffffffffff 00ffffffffffffffff00ff00ffffffffffffffff00ffffff00ffffffffff00ffffffffff ffff00ffffff00ffffff00ffff00ffffffffffffffffffffffffff00ffffffffffffffff ffffff00ffffffff00ffffffff00ffffffffff00ffffffffffffffffffffff00ffffffff 00ffffff00ffffff00ffffffff00ff00ffffffffffffffffffff00ff00ffffffffffffff ffffffffffffffffffffffffffffffff00ffffff00ffff00ffff0000ffffffff00ff00ff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffff00ffffffff00ffffffffffff00ffffffffffffff00ffffff00ffffffff00ffff ffffffff00ffffffffffffffff00ffff00ffffffffffffffff00ffffff00ffffff00ffff 00ffffffff00ffff000000ffffffffff00ffffffff00ffff00ffffff00ffff000000ffff ffff00ffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffff00ffffff ffffffffff00ffffff00ffffffffffff000000ffffffffff00ffffffff00ffffffffffff 00ffffffffffffffff00ffff00ffffffffffffff00ffffff00ffffffffff00ffffffffff ffff00ffffff00ffffff00ffff00ffffffffffffffffffffffffff00ffffffffffffffff ffffff00ffffffff00ffffffff00ffffffffffff00ffffffffffffff00ffff00ffffffff 00ffffff00ffffff00ffffffff00ff00ffffffffffff00ffffff00ff00ffffffffffffff ffffffffffffffffffffffffffffffff00ffff00ffffff00ffffff00ffffffffff00ffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffff00ffffffff00ffffffffffffff0000ffffffff0000ffffff00ffffffffff00ff ffff00ffff00ffffff00ffffff00ffffff00ffffffffffffff00ffffff00ffff0000ff00 00ffffffff00ff00ffffffffffffffff00ffffff000000ff00ffff0000ff00ffffffffff ffffff00ffffff00ffff00ffffffffffffffffffff00ffffffffff00ffffffff00ff00ff ffffffffff0000ffff00ffffffffff00ffffffffffffffff00ffffffffff00ffffff00ff ff00ffffff00ffffff00ffffff00ffffffffffff00ff00ffff00ffffff00ffffffffffff ffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffffff00ffffffffffffffff ffffff00ffffffff00ffffffff00ffffffffffff0000ffffffff0000ffffff00ffffffff 00ffffff00ffffff00ffffffff00ffff00ffffff00ff0000ffff00ffff00ffffff00ffff ff00ffffffffffffffffffffffffffff00ffffffffffff00ffffffffffffffff00ff00ff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000ff000000ffff000000ffffffffffffffff00000000ffffffff000000ffffffffff00 0000ffffffff000000ffffff000000ff000000ffffffffff000000ffffff0000ff000000 0000ffff000000ff0000000000ffffffff000000ff00ffffff0000ff0000ff0000000000 ffffffff000000ffffff00ffffffffffffffffffffff00ffffff000000ffffffff00ffff ffffffffff00ff0000ffffffffffffff0000000000ffff000000ffffffffff000000ffff ffff000000ffffff000000ff000000ffffffffffff00ffffffff000000ffffffffffffff ff000000ff000000ff000000ffffff000000ffffffff00ffffff00ffffffffffffffffff ffff000000ffff000000ffff000000ffffffffffffff00000000ffffffff000000ffff00 0000ff000000ff000000ffff000000ffff000000ffff00ff0000ffffffff000000ffffff ff00ffffffffffffffffffffffffffff00ffffffffffff00ffffffffffffff00ffffff00 ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00ffffffffff00ffffffffffffffffffffffffffffffff00ffffffffff 00ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff ffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffff00ffffffff00ff00ffffffffffff00ffffffff00 ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00ffffffffff00ffffffffffffffffffffffffffffffff00ffffffffff 00ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff ffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffffffffffff ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff0000ffffff00ffffffffffffffffffffffffffffffffff0000ffffff00 ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffff0000ffffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff00000000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff00 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff00000000ffffffffff00ffffffffff00ffffffffffff ffffffff00ffffffffffff00ffffffffffffff00ffffffffffffffffffffffff00ffffff 00ffffffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff ff0000ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffff00000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffff00ffffff00ffffffff00ffffffff00ffffffffffff00ffffffff00 0000000000ffffffffffffff0000ffffffffff00ffffffffffffffffff00ffffff0000ff 00ffffffffffffffff00ffffffffff00ffffffffff00ffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696969696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff 00ffff00ffffffffff00ffffff0000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffff00ffffff00ffffffff00ffffffff00ffff00ffffff00ffffffffff ffffffff00ffffffff00ffffffffff00ffffff00ffffffffffffffffffff00ffffff00ff 00ffffffffffffff00ffffffffffffff00ffffffff00ffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3e3e3e3e3e3e3e3e3e3e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff 00ffffffffffffffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffff00ffffff00ffffffff00ffffffff0000000000ffff00ffffffff00 0000000000ffffffffff00000000000000ffff00ffffffffffffffffff00ffffffff00ff 00ffffffffffffff00ffffffffffffff00ffffffff00ffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3e3e3e3e3e3e3e36565e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffff00000000ffffffffffffff000000ffffffffffff000000ff000000ffff000000 ffff000000ffffffff00ff0000ffffff0000ff00ffffffffffffffff000000ffffffffff 00ffffffffffffff00000000ffff00ff000000ffffffff000000ffffffffffffff000000 00ffffff000000ffffffff00ff0000ffff0000ffffffffff000000ffffffffffffffff00 ff0000ffff0000ffffffffff000000ffffffff000000ffffff00ff000000ffffffff00ff ffff00ff000000ffffffff0000ff0000ffffffffffffffffffffff00ffffff00ffffffff ffffff000000ffffffff00ff0000ffffff000000ffffffff000000ffffff00ff000000ff ffffffffffff00ff000000ffffffff000000ffffffff000000ffffffff00ff000000ffff ffff00ffffffff000000ffffffffffffff00000000ffffff000000ffff00000000ff0000 00ffffffffffffffffffffffff00ffffffff00ffffffff00ffffffffffff00ffffff0000 00ffffff00ffffffffffffffffffffffffffff00ffff00ffffffffff0000ff00000000ff 00ffffffffffffffff00ffffffffff00ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff656596e3e3b2b2b2b2b2656596e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00ffff00ffffff00ffffffffffff00ffffff00ffffffffffff00ffffff00ffffffff00ff ff00ffffff00ffff000000ff00ffff00ffff0000ffffffffffffff00ffffff00ffffff00 000000ffffffffffff00ffffffff0000ffff0000ffff00ffffff00ffffffffff00ffffff 00ffff00ffffff00ffff000000ffff0000ffff00ffffff00ffffff00ffffffffffff0000 00ffff0000ffff00ffffff00ffffff00ffff00ffffff00ff000000ffff0000ffff0000ff ff000000ffff0000ffff00ffff0000ffffffffffffffffffffffff00ffff00ffffffffff ffff00ffffff00ffff000000ff00ffff00ffffff00ffff00ffffff00ff000000ffff0000 ffffffffff000000ffff0000ffff00ffffff00ffff00ffffff00ffff000000ffff0000ff ffff00ffffff00ffffff00ffffffffff00ffffff00ffff00ffffff00ffff00ffffffff00 ffffffffffffffffffffffffffff00000000ffffffffff00ffffffffffffff000000ffff ffffffff00ffffffffffff00000000ffffffff0000000000ffffff00ffff00ffffff00ff 00ffffffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff656596e3e3b2b2b2b2b2656596e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffff00ffffffffffffffffffff00ffffff00ffffffffffff00ffffff00ffffffff00ff 00ffffffffff00ffff00ffffffff00ffffffff00ffffffffffff00ffffffffff00ffffff 00ffffffffffffffff00ffffffff00ffffffff00ff00ffffffff00ffffffffff00ffffff ffffff00ffffff00ffffff00ffffff00ffffff00ffff00ffffffff00ffffffffffffff00 ffffff00ffffff00ffff00ffffffff00ffff00ffffff00ffff00ffffffff00ffffff00ff ffff00ffffffff00ff00ffffffff00ffffffffffffffffffffffff000000ffffffffffff ff00ffffffffff00ffff00ffffffff00ffffffff00ffff00ffffff00ffff00ffffffff00 ffffffffffff00ffffffff00ff00ffffffff00ff00ffffffffff00ffff00ffffffff00ff ffff00ffff00ffffffff00ffffffffff00ffffffffffff00ffffff00ffff00ffffffff00 ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff ffffffff00ffffffffff00ffffffff00ffffff00ffffffffffff00ffffffff00ffff00ff 00ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696e3e3b2b2b265659696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffff000000ffffffffffffffffff000000ffffffffffffff00ffffff00ffff00ffff 00ffffffffff00ffff00ffffffff00ffffffff00ffffffffffff00ffffffffff00ffffff 00ffffffffffffffff00ffffffff00ffffffff00ff000000000000ffffffffffff000000 ffffffffff000000ffffff00ffffff00ffffff00ffff000000000000ffffffffffffff00 ffffff00ffffff00ffff000000000000ffffffff000000ffff00ffffffff00ffffff00ff ffff00ffffffff00ff00ffffffff00ffffffffffffffffffffffff00ffff00ffffffffff ff00ffffffffff00ffff00ffffffff000000000000ffffffff000000ffff00ffffffff00 ffffffffffff00ffffffff00ff000000000000ff00ffffffffff00ffff00ffffffff00ff ffff00ffff000000000000ffffffffffff000000ffffffffff000000ffffff00ffff00ff ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff 000000ffffffffffffff00ffffffff00ffffff00ffffffffff00ffffffffffffffff00ff 00ffffffffffffffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696e3e3b2b2b265659696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffff00ffffffffffff0000ffff00ffffffffffffff00ffffff00ffff00ffff 00ffffffffff00ffff00ffffffff00ffffffff00ffffffffffff00ffffffffff00ffffff 00ffffffffffffffff00ffffffff00ffffffff00ff00ffffffffffffffffffffffffffff 00ffff0000ffff00ffffff00ffffff00ffffff00ffff00ffffffffffffffffffffffff00 ffffff00ffffff00ffff00ffffffffffffff0000ffff00ffff00ffffffff00ffffff00ff ffff00ffffffff00ffff00ffff00ffffffffffffffffffffffffff00ffffff00ffffffff ff00ffffffffff00ffff00ffffffff00ffffffffffffff0000ffff00ffff00ffffffff00 ffffffffffff00ffffffff00ff00ffffffffffff00ffffffffff00ffff00ffffffff00ff ffff00ffff00ffffffffffffffffffffffffffff00ffff0000ffff00ffffff00ffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffff00ffffffffffff00ffffffff00ffffff00ffffffffffffffffffffffffffff00ff 00ffffffffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565969696e3e3b26565969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffff00ffffff00ffffffffffff00ffffff00ffffffffffffffff00ff00ff00ff00ffff 00ffffffffff00ffff00ffffffff00ffffffff00ffffffffffff00ffffffffff00ffffff 00ffffffffffffffff00ffffffff00ffffffff00ff00ffffffffffffffffffff00ffffff 00ffff00ffffff00ffffff00ffffff00ffffff00ffff00ffffffffffffffffffffffff00 ffffff00ffffff00ffff00ffffffffffffff00ffffff00ffff00ffffffff00ffffff00ff ffff00ffffffff00ffff000000ffffffffffffffffffffffffffff00ffffffff00ffffff ff00ffffffffff00ffff00ffffffff00ffffffffffffff00ffffff00ffff00ffffffff00 ffffffffffff00ffffffff00ff00ffffffffffff00ffffffffff00ffff00ffffffff00ff ffff00ffff00ffffffffffffffffffff00ffffff00ffff00ffffff00ffffffff00ff00ff ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff00ff ffffffff00ffffffffffff00000000ffffffff00ffffffffffffffffffffffffffff00ff 00ffffffff00ffffffff00ffffff00ffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565969696e3e3b26565969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffff0000ffff00ffffffffffff00ffff0000ff00ffffffffffffff00ffffff00ffffff ff00ffffff00ffffff00ffffffffff00ffff000000ffffffffffff00ffffff00ffffffff 00ffffffffffffffff00ff00ffff00ffffffff00ffff00ffffff00ffffffffff0000ffff 00ffff00ffff0000ff00ff00ffffff00ffffff00ffffff00ffffff00ffffffffffffff00 ffffff00ffffff00ffffff00ffffff00ffff00ffff0000ff0000ffffffff00ffffff00ff ffff00ffffffff00ff00ffffffffffffffff00ffffffffffffffff00ffffffffff00ffff ffff00ffffff00ffffff00ffffffffff00ffffff00ffff00ffff0000ff0000ffffffff00 ffffffffffff0000ffffff00ffff00ffffff00ffff00ffffff00ffffff0000ffffff00ff ffff00ffffff00ffffff00ffffffffff0000ffff00ffff00ffff0000ff00ffffff00ffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff00ff ffffffff00ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff00ff 00ffffffffff0000000000000000000000000000ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff656596969696e3656596969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000ff00ff0000ffffffffffffffff0000ff0000ffffffffffffffff00ffffff00ffffff ffff000000ffffff000000ffffffffff0000ff00ffffffffffffffff000000ffffffff00 000000ffffffffffffff00ffff000000ffff000000ffff000000ffffffffffff00ff0000 ffffffff0000ff0000ff000000ff000000ff000000ffffff000000ffffffffffffff0000 00ff000000ff000000ffffff000000ffffffff0000ff0000000000ffff000000ff000000 ff000000ffff000000ff0000000000ffffff00ffffffffffffff00000000ffff00000000 ffffff000000ffffff000000ffffffffff000000ffffffff0000ff0000000000ffff0000 00ffffffffff00ff000000ffffffff000000ffffffff000000ffffffff00ff000000ffff ff000000ffffff000000ffffffffffff00ff0000ffffffff0000ff0000ffffffff00ffff ffffffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffffffff00 ffffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff00ff 00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff656596969696e3656596969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff00ffffffffff00ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffff00000000000000ffffffffffffffffffffff 000000ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65659696969696659696969696e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff00ffffffffff00ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff6565e3e3e3e3e3e3e3e3e3e3e3e3e3b2b2b2 b2b2b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff0000ffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff65e3e3e3e3e3e3e3e3e3e3e3e3e3e3b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 e36565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 65656565656565656565656565656565656565656565656565 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e365 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b265 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e365b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e365b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3c3c3c3c3c3c3c3c3c3c3c3c3c300ffffc3c3c3c3c382828282c3c3c3c3c3 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b265656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 6565656565656565656565656565656565656565656565656565b2b2b2b2b2b2b2b2b2b2 65656565656565656565656565656565656565e3e3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b26565b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3c382828282828282828282828200ffffc3c3c3c382ffd7d7d7c382c3c3c3 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b265656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656565656565656565656565656565 65656565656565656565656565656565656565656565656565e3b2b2b2b2b2b2b2b2b2b2 656565656565656565656565656565656565e3e3e3b2b214141414141414141414141414 b2b2b2b2b2b2b2b2b2b2b2b2b26565b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3c3ffd7d7d7d7d7d7d7d7d7d72700ffffc3c3c382ffd7820082d7c300c3c3 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b265659b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9be3e3b2b2b2b2b2b2b2b2b2b2 65659b9b9b9b9b9b9b9b9b9b9b9b9b9b9be3e3e3e3b2b214b2b2b2b2b2b2b2b2b2b2c314 82b2b2b2b2b2b2b2b2b2b2b2b26565b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3c327828282820000000000c38200ffffc3828282d78200000082d70000c3 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b265659b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9be3e3b2b2b2b2b2b2b2b2b2b2 65659b9b9b9b9b9b9b9b9b9b9b9b9b9b9be3e3e3e3b2b21414c3c3c3c3c3c3c3c3c31414 82b2b2b2b2b2b2b2b2b2b2b2b26565b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3c3c3ffd7d7d70000000000c300ffffc3c3d7d7d7d700c3c300d7d7d700c3 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b265659b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9be3e3b2b2b2b2b2b2b2b2b2b2 65659b9b9b9b9b9b9b9b9b9b9b9b9b9b9be3e3e3e3b2b214b214c3c3c3c3c3c3c314c314 82b2b2b2b2b2b2b2b2b2b2b2b26565b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3c3c3ffd7d7d70000c3c3c3c300ffffc300000082ff00c3c300d7d7d700c3 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b265659b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9be3e3b2b2b2b2b2b2b2b2b2b2 65659b9b9b9b9b9b9b9b9b9b9b9b9b9b9be3e3e3e3b2b214b2c314c3c3c3c3c314c3c314 82b2b2b2b2b2b2b2b2b2b2b2b26565b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3c3c3ffd7d7d70000c3c3c38200ffffc3c3000000ff8200c32782820000c3 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b265659b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9be3e3b2b2b2b2b2b2b2b2b2b2 65659b9b9b9b9b9b9b9b9b9b9b9b9b9b9be3e3e3e3b2b214b2c38214c3c3c31482c3c314 82b2b2b2b2b2b2b2b2b2b2b2b26565b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3c3c3ffd700d70000c3c3c300ffffffc3c3c3c300d7d78200d7d7d70000c3 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b265659b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b 9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9be3e3b2b2b2b2b2b2b2b2b2b2 65659b9b9b9b9b9b9b9b9b9b9b9b9b9b9be3e3e3e3b2b214b214c3c3141414c3c314c314 82b2b2b2b2b2b2b2b2b2b2b2b26565b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3c3c3c300000000c3c3c3c300ffffc3c3c3c3c3c300d7ffffd7d7000000c3 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b26565e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3b2b2b2b2b2b2b2b2b2b2 6565e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3b2b21414c3c3c3c3c3c3c3c3c31414 82b2b2b2b2b2b2b2b2b2b2b2b26565b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3c3c3c3c3c3c3c3c3c3c3c300ffffc3c3c3c3c3c3c300000000000000c3c3 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b265e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3 e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3b2b2b2b2b2b2b2b2b2b2 65e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3b2b214141414141414141414141414 82b2b2b2b2b2b2b2b2b2b2b2b26565b2b2b2b2b2b2b2b2b265 b2b2b2b2e3e3656565656565656565656565656565656565656565656565656565656565 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2e3e3656565656565656565656565656565 656565656565656565656565656565b2b2b2b2b2b2b2b2b265 b2b2b2b2e365656565656565656565656565656565656565656565656565656565656565 6565b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2e365656565656565656565656565656565 656565656565656565656565656565b2b2b2b2b2b2b2b2b265 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b265 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2 b2b2b2b2b2b2b2b2b2b2b2b2b2b2b265656565656565656565 showpage % stop using temporary dictionary end % restore original state origstate restore %%Trailer %%EndDocument @endspecial 1724 3951 a currentpoint currentpoint translate 1 0.84756 div 1 0.84756 div scale neg exch neg exch translate 1724 3951 a Fi 2093 4163 a<3f5e>p Ff 2211 4163 a(2:) p Fd 2322 4163 a(ctext2pgm) p Fi 2778 4163 a<244b>p 2868 4163 a<2468>p 2956 4163 a<246b>p 3044 4163 a<423f>p 3132 4163 a<3840>p 3219 4163 a<386c>p 3307 4163 a<4a38>p 3394 4163 a<3d71>p -34 2133 a<2533>p 53 2133 a<2573>p 144 2133 a<2551>p 233 2133 a<2526>p 317 2133 a<2573>p 400 2133 a<2549>p 498 2133 a<2546>p 586 2133 a<252d>p 678 2133 a<2539>p 760 2133 a<2548>p 851 2133 a<2448>p 938 2133 a<244f>p Ff 1065 2133 a(ISO-2022) p Fi 1465 2133 a<4964>p 1554 2133 a<3967>p -118 2238 a<323d>p -34 2238 a<4a7d>p 51 2238 a<3c30>p 134 2238 a<244e>p 219 2238 a<2535>p 297 2238 a<2556>p 388 2238 a<253b>p 469 2238 a<2543>p 545 2238 a<2548>p 634 2238 a<244e>p 716 2238 a<2452>p 802 2238 a<2448>p 889 2238 a<2444>p 970 2238 a<2447>p 1057 2238 a<2422>p 1143 2238 a<246a>p 1230 2238 a<2122>p 1300 2238 a<4a23>p 1384 2238 a<3f74>p 1467 2238 a<244e>p 1554 2238 a<4a38>p -118 2342 a<3b7a>p -30 2342 a<3d38>p 58 2342 a<3967>p 144 2342 a<244e>p 234 2342 a<4a38>p 322 2342 a<3b7a>p 405 2342 a<242c>p 498 2342 a<3a2e>p 586 2342 a<3a5f>p 674 2342 a<3244>p 762 2342 a<473d>p 847 2342 a<244a>p 936 2342 a<2546>p 1023 2342 a<252d>p 1115 2342 a<2539>p 1197 2342 a<2548>p 1288 2342 a<244e>p 1378 2342 a<4964>p 1466 2342 a<3967>p 1554 2342 a<323d>p -118 2447 a<4a7d>p -31 2447 a<3c30>p 53 2447 a<2447>p 141 2447 a<2422>p 230 2447 a<246b>p 319 2447 a<2123>p Fd 402 2447 a(ctext2pgm) p Fi 858 2447 a<2447>p 945 2447 a<244f>p 1040 2447 a<2122>p 1120 2447 a<3151>p 1208 2447 a<386c>p 1299 2447 a<2122>p 1378 2447 a<2555>p 1465 2447 a<2569>p 1548 2447 a<2573>p -117 2551 a<2539>p -31 2551 a<386c>p 59 2551 a<2122>p 125 2551 a<2549>p 227 2551 a<2524>p 309 2551 a<2544>p 396 2551 a<386c>p 487 2551 a<2122>p 565 2551 a<256d>p 648 2551 a<2537>p 737 2551 a<2522>p 825 2551 a<386c>p 916 2551 a<2122>p 994 2551 a<4366>p 1081 2551 a<3971>p 1167 2551 a<386c>p 1258 2551 a<2122>p 1336 2551 a<345a>p 1423 2551 a<3971>p 1509 2551 a<386c>p 1600 2551 a<2122>p -118 2656 a<467c>p -30 2656 a<4b5c>p 58 2656 a<386c>p 143 2656 a<244a>p 224 2656 a<2449>p 320 2656 a<244e>p 411 2656 a<423e>p 503 2656 a<2122>p 586 2656 a<3126>p 670 2656 a<242b>p 758 2656 a<2469>p 850 2656 a<3a38>p 936 2656 a<2458>p 1026 2656 a<4a38>p 1114 2656 a<3b7a>p 1199 2656 a<2472>p 1290 2656 a<3d71>p 1377 2656 a<2424>p 1462 2656 a<2446>p 1552 2656 a<2466>p -118 2761 a<242f>p -31 2761 a<2558>p 50 2761 a<2556>p 144 2761 a<2569>p 236 2761 a<2524>p 322 2761 a<386c>p 408 2761 a<2464>p 496 2761 a<2522>p 584 2761 a<2569>p 666 2761 a<2553>p 760 2761 a<2522>p 850 2761 a<386c>p 933 2761 a<242c>p 1026 2761 a<3a2e>p 1114 2761 a<3a5f>p 1194 2761 a<2437>p 1288 2761 a<243f>p 1376 2761 a<2546>p 1463 2761 a<252d>p 1555 2761 a<2539>p -124 2865 a<2548>p -32 2865 a<2462>p 56 2865 a<2535>p 143 2865 a<255d>p 234 2865 a<213c>p 316 2865 a<2548>p 403 2865 a<2437>p 496 2865 a<2446>p 586 2865 a<2424>p 674 2865 a<246b>p 765 2865 a<2123>p 850 2865 a<4640>p 935 2865 a<2469>p 1022 2865 a<246c>p 1113 2865 a<243f>p 1203 2865 a<3268>p 1291 2865 a<417c>p 1377 2865 a<2555>p 1463 2865 a<2521>p 1557 2865 a<2524>p -121 2970 a<256b>p -33 2970 a<2472>p Ff 92 2970 a(WWW) p Fi 404 2970 a<255a>p 494 2970 a<213c>p 578 2970 a<2538>p 667 2970 a<244b>p 760 2970 a<467e>p 843 2970 a<246c>p 936 2970 a<246b>p 1021 2970 a<2433>p 1110 2970 a<2448>p 1198 2970 a<2447>p 1294 2970 a<2122>p 1377 2970 a<3f5e>p Ff 1486 2970 a(2) p Fi 1550 2970 a<244b>p -118 3074 a<3c28>p -35 3074 a<2439>p 50 3074 a<4d4d>p 133 3074 a<244a>p 221 3074 a<423f>p 306 3074 a<3840>p 391 3074 a<386c>p Ff 494 3074 a(WWW) p Fi 786 3074 a<255a>p 873 3074 a<213c>p 954 3074 a<2538>p 1039 3074 a<242c>p 1129 3074 a<3a6e>p 1214 3074 a<402e>p 1299 3074 a<3244>p 1384 3074 a<473d>p 1465 3074 a<2448>p 1550 3074 a<244a>p -118 3179 a<246b>p -30 3179 a<2123>p Ff 52 3179 a(\() p Fi 85 3179 a<2546>p 170 3179 a<252d>p 261 3179 a<2539>p 342 3179 a<2548>p 431 3179 a<244e>p 520 3179 a<467e>p 606 3179 a<4e4f>p 689 3179 a<244b>p 776 3179 a<244f>p Ff 896 3179 a(Mule) p Fi 1121 3179 a<2528>p 1204 3179 a<2547>p 1298 3179 a<2523>p 1380 3179 a<253f>p 1463 3179 a<2472>p 1554 3179 a<3b48>p -118 3283 a<4d51>p -39 3283 a<2437>p 55 3283 a<243f>p 146 3283 a<2123>p Ff 232 3283 a(\)) p Fi -34 3388 a<2433>p 58 3388 a<244e>p 149 3388 a<423e>p Fg 282 3388 a(VFlib) p Fi 510 3388 a<2472>p 603 3388 a<3b48>p 691 3388 a<2443>p 777 3388 a<243f>p Ff 910 3388 a(T) 961 3407 y(E) 1011 3388 y(X) p Fi 1105 3388 a<244e>p 1190 3388 a<2557>p 1281 3388 a<256c>p 1372 3388 a<2553>p 1464 3388 a<2565>p 1553 3388 a<213c>p -120 3492 a<2522>p -32 3492 a<213c>p 54 3492 a<2464>p 136 3492 a<2557>p 233 3492 a<256a>p 315 3492 a<2573>p 406 3492 a<253f>p 481 3492 a<2549>p 580 3492 a<2569>p 671 3492 a<2524>p 754 3492 a<2550>p 842 3492 a<2462>p 932 3492 a<332b>p 1019 3492 a<482f>p 1099 3492 a<2437>p 1192 3492 a<243f>p 1283 3492 a<2123>p Fk -118 3718 a(4) p Fj 84 3718 a<376b>p 199 3718 a<4f40>p Fg -31 3848 a(VFlib) p Fi 196 3848 a<2472>p 290 3848 a<317e>p 380 3848 a<4d51>p 468 3848 a<253d>p 559 3848 a<2555>p 645 3848 a<2548>p 739 3848 a<2526>p 830 3848 a<2528>p 920 3848 a<2522>p 1009 3848 a<2447>p 1103 3848 a<3b48>p 1193 3848 a<4d51>p 1282 3848 a<2439>p 1373 3848 a<246b>p 1463 3848 a<4d78>p 1554 3848 a<4540>p -122 3953 a<244f>p -27 3953 a<2122>p 56 3953 a<304a>p 144 3953 a<323c>p 229 3953 a<244e>p 318 3953 a<444c>p 405 3953 a<246a>p 489 3953 a<2447>p 578 3953 a<2422>p 668 3953 a<246b>p 757 3953 a<2123>p Ff 842 3953 a(1.) p Fi 942 3953 a<317e>p 1030 3953 a<4d51>p 1115 3953 a<253d>p 1203 3953 a<2555>p 1286 3953 a<2548>p 1377 3953 a<2526>p 1465 3953 a<2528>p 1552 3953 a<2522>p -122 4057 a<244b>p -31 4057 a<242a>p 57 4057 a<2424>p 142 4057 a<2446>p 235 4057 a<4d46>p 323 4057 a<3057>p 407 4057 a<244b>p 499 4057 a<3346>p 587 4057 a<3c6f>p 673 4057 a<2555>p 762 4057 a<2529>p 845 4057 a<2573>p 932 4057 a<2548>p 1026 4057 a<3741>p 1114 4057 a<3c30>p 1197 4057 a<242c>p 1290 4057 a<4d78>p 1378 4057 a<4d51>p 1463 4057 a<2447>p 1552 4057 a<242d>p -118 4162 a<246b>p -31 4162 a<2123>p Ff 45 4162 a(2.) p Fg 142 4162 a(VFlib) p Fi 356 4162 a<242c>p 446 4162 a<3f37>p 524 4162 a<2437>p 616 4162 a<2424>p 700 4162 a<2555>p 786 4162 a<2529>p 864 4162 a<2573>p 949 4162 a<2548>p 1040 4162 a<3741>p 1126 4162 a<3c30>p 1208 4162 a<2472>p 1296 4162 a<2535>p 1379 4162 a<255d>p 1467 4162 a<213c>p 1547 4162 a<2548>p -119 4267 a<2439>p -35 4267 a<246c>p 51 4267 a<2450>p 150 4267 a<2122>p 233 4267 a<317e>p 322 4267 a<4d51>p 408 4267 a<253d>p 496 4267 a<2555>p 580 4267 a<2548>p 672 4267 a<2526>p 760 4267 a<2528>p 848 4267 a<2522>p 935 4267 a<2472>p 1026 4267 a<4a51>p 1114 4267 a<3939>p 1201 4267 a<2439>p 1289 4267 a<246b>p 1375 4267 a<2433>p 1463 4267 a<2448>p 1551 4267 a<244a>p -118 4371 a<242f>p -32 4371 a<243d>p 54 4371 a<244e>p 143 4371 a<2555>p 233 4371 a<2529>p 316 4371 a<2573>p 402 4371 a<2548>p 491 4371 a<242c>p 584 4371 a<4d78>p 672 4371 a<4d51>p 760 4371 a<3244>p 848 4371 a<473d>p 933 4371 a<2448>p 1021 4371 a<244a>p 1112 4371 a<246b>p 1201 4371 a<2123>p Ff 1287 4371 a(3.) p Fi 1389 4371 a<2555>p 1478 4371 a<2529>p 1561 4371 a<2573>p 1647 4371 a<2548>p 1741 4371 a<446a>p 1829 4371 a<3541>p 1914 4371 a<2472>p 2009 4371 a<2122>p 2093 4371 a<4d78>p 2180 4371 a<4d51>p 2265 4371 a<2537>p 2357 4371 a<2539>p 2443 4371 a<2546>p 2532 4371 a<2560>p 2620 4371 a<4226>p 2705 4371 a<2447>p 2796 4371 a<3c2b>p 2884 4371 a<4d33>p 2968 4371 a<244b>p 3059 4371 a<446a>p 3147 4371 a<3541>p 3232 4371 a<2447>p 3321 4371 a<242d>p 3410 4371 a<246b>p 3501 4371 a<2123>p 3587 4371 a<3962>p 3675 4371 a<494a>p 3762 4371 a<304c>p -121 4476 a<244a>p -33 4476 a<2522>p 54 4476 a<2526>p 136 4476 a<2548>p 228 4476 a<2569>p 321 4476 a<2524>p 400 4476 a<2573>p 490 4476 a<2555>p 578 4476 a<2529>p 659 4476 a<2573>p 746 4476 a<2548>p 834 4476 a<242c>p 923 4476 a<244a>p 1012 4476 a<2424>p 1100 4476 a<3e6c>p 1187 4476 a<3967>p 1270 4476 a<244f>p 1354 4476 a<2553>p 1446 4476 a<2543>p 1528 4476 a<2548>p 1621 4476 a<255e>p 1706 4476 a<2543>p 1785 4476 a<2557>p 1879 4476 a<2555>p 1967 4476 a<2529>p 2048 4476 a<2573>p 2135 4476 a<2548>p 2225 4476 a<2447>p 2315 4476 a<4265>p 2402 4476 a<4d51>p 2488 4476 a<2439>p 2575 4476 a<246b>p 2662 4476 a<2468>p 2751 4476 a<2426>p 2837 4476 a<2122>p Fd 2918 4476 a(vflibcap) p Fi 3326 4476 a<2447>p 3414 4476 a<244e>p 3500 4476 a<2555>p 3589 4476 a<2529>p 3671 4476 a<2573>p 3757 4476 a<2548>p -118 4580 a<446a>p -32 4580 a<3541>p 52 4580 a<2472>p 141 4580 a<4a51>p 228 4580 a<3939>p 314 4580 a<2439>p 395 4580 a<246c>p 481 4580 a<2450>p 573 4580 a<2468>p 660 4580 a<2424>p 748 4580 a<2123>p 827 4580 a<2433>p 915 4580 a<244e>p 1000 4580 a<2448>p 1088 4580 a<242d>p 1179 4580 a<2122>p 1259 4580 a<317e>p 1346 4580 a<4d51>p 1430 4580 a<253d>p 1517 4580 a<2555>p 1599 4580 a<2548>p 1690 4580 a<2526>p 1775 4580 a<2528>p 1863 4580 a<2522>p 1950 4580 a<2464>p 2038 4580 a<4a38>p 2125 4580 a<3d71>p 2209 4580 a<2555>p 2294 4580 a<2521>p 2385 4580 a<2524>p 2465 4580 a<256b>p 2553 4580 a<244e>p 2640 4580 a<4a51>p 2728 4580 a<3939>p 2811 4580 a<244f>p 2901 4580 a<4954>p 2988 4580 a<4d57>p 3071 4580 a<2447>p 3159 4580 a<2422>p 3247 4580 a<246b>p 3336 4580 a<2123>p 3417 4580 a<423f>p 3503 4580 a<3840>p 3590 4580 a<386c>p 3676 4580 a<4a38>p 3763 4580 a<3d71>p -118 4685 a<3d68>p -31 4685 a<4d7d>p 53 4685 a<244b>p 143 4685 a<242a>p 229 4685 a<2424>p 314 4685 a<2446>p 401 4685 a<244f>p 492 4685 a<3346>p 580 4685 a<3c6f>p 667 4685 a<3840>p 754 4685 a<386c>p 839 4685 a<244e>p 926 4685 a<2555>p 1014 4685 a<2529>p 1096 4685 a<2573>p 1183 4685 a<2548>p 1271 4685 a<242c>p 1363 4685 a<4631>p 1450 4685 a<306c>p 1538 4685 a<3741>p 1625 4685 a<3c30>p 1709 4685 a<2447>p 1799 4685 a<4237>p 1883 4685 a<246f>p 1970 4685 a<244a>p 2060 4685 a<2424>p 2148 4685 a<3e6c>p 2235 4685 a<3967>p 2317 4685 a<242c>p 2409 4685 a<423f>p 2495 4685 a<2424>p 2579 4685 a<242c>p 2675 4685 a<2122>p Fg 2756 4685 a(VFlib) p Fi 2974 4685 a<244b>p 3065 4685 a<2468>p 3151 4685 a<246a>p 3237 4685 a<243d>p 3324 4685 a<244e>p 3415 4685 a<4c64>p 3502 4685 a<426a>p 3584 4685 a<242c>p 3676 4685 a<3272>p 3763 4685 a<3768>p -121 4789 a<2447>p -33 4789 a<242d>p 57 4789 a<246b>p 146 4789 a<2123>p Fg -31 4894 a(VFlib) p Ff 199 4894 a(3.4.1) p Fi 408 4894 a<244f>p Ff 517 4894 a(C) p Fi 600 4894 a<3840>p 686 4894 a<386c>p 769 4894 a<2447>p 858 4894 a<3d71>p 940 4894 a<242b>p 1025 4894 a<246c>p 1113 4894 a<2446>p 1201 4894 a<242a>p 1286 4894 a<246a>p 1374 4894 a<2122>p 1451 4894 a<4c73>p Ff 1555 4894 a(2) p Fi 1617 4894 a<4b7c>p Ff 1722 4894 a(8) p Fi 1784 4894 a<4069>p 1871 4894 a<3954>p 1955 4894 a<2422>p 2043 4894 a<246b>p 2131 4894 a<2123>p 2208 4894 a<4630>p 2295 4894 a<3a6e>p 2381 4894 a<334e>p 2467 4894 a<4727>p 2549 4894 a<244f>p Ff 2667 4894 a(F) p 2718 4894 a(reeBSD) p 3046 4894 a(2.2.2) p Fi 3256 4894 a<2448>p Ff 3373 4894 a(Solaris) p 3664 4894 a(2.5.1) p Fi -121 4998 a<2447>p -31 4998 a<3954>p 54 4998 a<244a>p 145 4998 a<2443>p 231 4998 a<243f>p 322 4998 a<2123>p Fg 408 4998 a(VFlib) p Fi 628 4998 a<244f>p Ff 751 4998 a(GNU) p 991 4998 a(Library) p 1321 4998 a(General) p 1662 4998 a(Public) p 1948 4998 a(License) p Fi 2265 4998 a<244b>p 2357 4998 a<3d3e>p 2444 4998 a<2424>p 2537 4998 a<2122>p 2619 4998 a<253d>p 2707 4998 a<213c>p 2796 4998 a<2539>p 2882 4998 a<2533>p 2971 4998 a<213c>p 3047 4998 a<2549>p 3147 4998 a<306c>p 3235 4998 a<3c30>p 3320 4998 a<2472>p 3411 4998 a<4c35>p 3499 4998 a<4e41>p 3584 4998 a<2447>p 3675 4998 a<475b>p 3763 4998 a<495b>p -126 5103 a<2437>p -34 5103 a<2446>p 56 5103 a<2424>p 143 5103 a<246b>p 233 5103 a<2123>p 319 5103 a<3e5c>p 407 5103 a<3a59>p 490 5103 a<244f>p Fd 602 5103 a(http://www.se.hiroshima) o (-u.a) o(c.j) o(p/~k) o(akug) o(awa) o(/VFl) o(ib/) p Fi 2920 5103 a<2472>p 3010 5103 a<3b32>p 3098 5103 a<3e48>p 3184 5103 a<2435>p 3268 5103 a<246c>p 3358 5103 a<243f>p 3447 5103 a<2424>p 3536 5103 a<2123>p Fj -118 5329 a<3b32>p -3 5329 a<394d>p 112 5329 a<4a38>p 227 5329 a<3825>p Ff -118 5459 a([1]) p Fi 23 5459 a<3653>p 111 5459 a<382b>p 229 5459 a<423e>p Ff 316 5459 a(.) p Fa 380 5459 a<255e>p 466 5459 a<256b>p 554 5459 a<2541>p 641 5459 a<256a>p 726 5459 a<2573>p 814 5459 a<252c>p 903 5459 a<256b>p 994 5459 a<3444>p 1081 5459 a<362d>p 1167 5459 a<244e>p 1255 5459 a<3c42>p 1344 5459 a<383d>p Ff 1431 5459 a(.) p Fi 1489 5459 a<2557>p 1577 5459 a<256c>p 1667 5459 a<2573>p 1757 5459 a<2546>p 1850 5459 a<2523>p 1935 5459 a<2539>p 2021 5459 a<255b>p 2108 5459 a<213c>p 2193 5459 a<256b>p Ff 2284 5459 a(,) p 2340 5459 a(1996.) -118 5636 y([2]) p 23 5636 a(Hirotsugu) p 452 5636 a(Kakuga) m(w) m(a.) p 949 5636 a(VFlib) p 1215 5636 a(|) p 1343 5636 a(a) p 1425 5636 a(general) p 1745 5636 a(fon) m(t) p 1939 5636 a(library) p 2241 5636 a(that) p 2445 5636 a(supp) s(orts) p 2824 5636 a(m) m(ultiple) p 3187 5636 a(fon) m(t) p 3380 5636 a(formats.) p 3767 5636 a(In) p Fb 23 5740 a(Pr) p 118 5740 a(o) p 159 5740 a(c) p 196 5740 a(e) p 233 5740 a(e) p 270 5740 a(dings) p 509 5740 a(of) p 616 5740 a(Eur) p 760 5740 a(oT) 856 5760 y(E) 906 5740 y(X) p 1006 5740 a(98) p Ff(,) p 1155 5740 a(Marc) m(h) p 1438 5740 a(1998.) p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF vflib3-3.6.14.dfsg/doc/Paper2-ja/vflib-ja.tex0000644000175000017500000002143206551316725020002 0ustar mohuramohura%%% *** This text is written in Japanese *** %%% %%% $BEE5$>pJs4X783X2qCf9q;YItBg2q(B(1998$BG/EY(B) %%% %%% $B!VB?8@8l>pJs=hM}%7%9%F%`8~$1HFMQ%U%)%s%H%i%$%V%i%j(B VFlib$B!W(B %%% $B3Q@nM5pJs=hM}%7%9%F%`8~$1(B}\\ \textbf{$BHFMQ%U%)%s%H%i%$%V%i%j(B \vflib}} \author{\textbf{$B3Q@nM5$^$7$$!#(B $B5U$K3+H/$l$KBP$9$k%U%)%s%H%U%!%$%kFI$_=P$7It$r:n@.$9$kI,MW$,$"$j!"(B $B3+H/$N]$H$9$kJ8;z=89g$K$O@)8B$r$7$F$*$i$:!"(B $BB?8@8l>pJs=hM}%=%U%H%&%(%"$NItIJ$H$7$F$bMxMQ2DG=$G$"$k!#(B $BK\9F$G$O(B \vflib~3.4.1 $B$N35MW$H!"(B \vflib $B$rMxMQ$7$?1~MQ%=%U%H%&%(%"$K$D$$$F>R2p$9$k!#(B \section{\vflib $B$N4X?t$HFbIt9=B$(B} \vflib $B$O(BC$B8@8l$G5-=R$5$l$?4X?t72$G$"$j!"(B $B%i%$%V%i%j(B (\verb|libVFlib3.a|) $B$H$7$F1~MQ%=%U%H%&%(%"$K%j%s%/$5$l$F;HMQ$5$l$k!#(B \vflib $B$OO@M}E*$J%U%)%s%H$rDs6!$7!"(B $BO@M}E*$J%U%)%s%H$H$G$"$k!#(B \item \prog{int VF\_OpenFont1(\mbox{char* \var{font\_name}}, \mbox{double \var{dpi\_x}}, \mbox{double \var{dpi\_y}}, \mbox{double \var{point\_size}}, \mbox{double \var{mag\_x}}, \mbox{double \var{mag\_y}})}\\ --- $B%U%)%s%H(B \var{font\_name} $B$r%*!<%W%s$9$k!#(B $B%U%)%s%H%5%$%:$O!"e5-$N(B \vflib $B4X?t$h$jJ,$+$k$h$&$K!"(B $B1~MQ%=%U%H%&%(%"B&$OO@M}E*$J%U%)%s%HL>$r;XDj$9$k$@$1$G!"(B $B%U%)%s%H7A<0$r;XDj$9$kI,MW$O$J$$!#(B $BO@M}E*$J%U%)%s%H$N6qBNE*$JDj5A$O(B \verb|vflibcap| $B$G5-=R$9$k!#(B $B?^(B\ref{FIG:VFLIBCAP}$B$K$=$NNc$r<($9!#(B ($B$3$NNc$G$O!"Fs$D$N%U%)%s%H(B |timR24| $B$H(B |timR18| $B$,Dj5A$5$l$F$$$k!#(B $B$^$?!"%U%)%s%H%U%!%$%k$,05=L$5$l$F$$$k$+$I$&$+$r<+F0H=JL$7!"(B $BI,MW$J$i$P%U%)%s%H%*!<%W%s;~$K2rE`$9$k$h$&5-=R$7$F$$$k!#(B) $B3F$l$KBP1~$7$?%U%)%s%H%I%i%$%P$r(B \vflib $B$NFbIt$GMQ0U$7$F$$$k!#(B $B%U%)%s%H$,%*!<%W%s$5$l$k$H$-$O(B \verb|vflibcap| $B$r;2>H$7$F%U%)%s%H7A<0$rD4$Y!"(B $B%U%)%s%H7A<0$KBP1~$7$?%U%)%s%H%I%i%$%P$r8F$S=P$7$F%U%)%s%H$r%*!<%W%s$9$k!#(B $B%S%C%H%^%C%WMW5a$KBP$7$F$b!"(B $B%U%)%s%H7A<0$KBP1~$7$?%U%)%s%H%I%i%$%P$r8F$S=P$9!#(B $B$b$7%U%)%s%H$,%"%&%H%i%$%s%U%)%s%H$J$i$P!"(B $B%"%&%H%i%$%s%G!<%?$r%i%9%?%i%$%:$7%S%C%H%^%C%W$rJV$9!#(B $B%S%C%H%^%C%W%U%)%s%H$N>l9g$O!"(B $BE,@Z$JBg$-$5$K3HBg(B$\cdot$$B=L>.$r$7$?%S%C%H%^%C%W$r:n$C$FJV$9!#(B \begin{figure} \setlength{\baselineskip}{0.85em} \begin{verbatim} (define-default VFlib ;; VFlib $BA4BN$G$N%G%U%)%k%HCM$NDj5A(B (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd"))) (define-default bdf ;; BDF $B%U%)%s%H%/%i%9$N%G%U%)%k%HCM$NDj5A(B (compression-extensions ".gz" ".Z") (font-directories "/usr/local/share/fonts/X11//")) (define-default pcf ;; PCF $B%U%)%s%H%/%i%9$N%G%U%)%k%HCM$NDj5A(B (font-directories "/usr/X11R6/lib/X11/fonts//") (compression-extensions ".gz" ".Z")) (define-font timR24 ;; "timR24" $B%U%)%s%H$NDj5A(B (BDF $B%U%)!<%^%C%H(B) (font-class bdf) (dpi 300) (point-size 24) (font-file "timR24.bdf")) (define-font timR18 ;; "timR18" $B%U%)%s%H$NDj5A(B (PCF $B%U%)!<%^%C%H(B) (font-class pcf) (dpi 300) (point-size 24) (font-file "timR18.pcf")) \end{verbatim} \caption{\texttt{vflibcap}$B%U%!%$%k$NNc(B} \label{FIG:VFLIBCAP} \end{figure} \section{$B1~MQ%=%U%H%&%(%"$NNc(B} $B%3%s%Q%&%s%I%F%-%9%H$GId9g2=$5$l$F$$$k%W%l%$%s%F%-%9%H$+$i(B $B2hA|%U%!%$%k$r:n$k%=%U%H%&%(%"(B \prog{ctext2pgm} $B$r:n@.$7$?!#(B $BJ8=qFb$K;XNa$rKd$a9~$`$3$H$G!"(B $B%$%?%j%C%/$d%\!<%k%I$J$I$N%U%)%s%H%U%'!<%9$N@ZBX$d!"(B Helvetia $B$d(B Times $B$J$I$N%U%)%s%H%U%!%_%j!<$N@ZBX$($,J8=qFb$G2DG=$G$"$k!#(B \begin{wrapfigure}[20]{r}[0cm]{9.0cm} \resizebox{9.0cm}{!}{\includegraphics{ml-web-page.eps}} %% \resizebox{9.0cm}{!}{\includegraphics[draft]{ml-web-page.eps}} \caption{\prog{ctext2pgm} $B$K$h$kB?8@8lJ8=q(B} \label{FIG:CTEXT2PGM} \end{wrapfigure} $B%3%s%Q%&%s%I%F%-%9%H$H$O(B ISO-2022 $BId9g2=J}<0$N%5%V%;%C%H$N$R$H$D$G$"$j!"(B $BJ#?t$NJ8;z=89g$NJ8;z$,:.:_2DG=$J%F%-%9%H$NId9g2=J}<0$G$"$k!#(B \prog{ctext2pgm} $B$G$O!"1Q8l!"%U%i%s%98l!"%I%$%D8l!"%m%7%"8l!"(B $BCf9q8l!"4Z9q8l!"F|K\8l$J$I$NB>!"(B $B1&$+$i:8$XJ8;z$r=q$$$F$f$/%X%V%i%$8l$d%"%i%S%"8l(B $B$,:.:_$7$?%F%-%9%H$b%5%]!<%H$7$F$$$k!#(B $BF@$i$l$?2hA|%U%!%$%k$r(B WWW $B%Z!<%8$KF~$l$k$3$H$G!"(B $B?^(B\ref{FIG:CTEXT2PGM}$B$K<($9MM$JB?8@8l(BWWW$B%Z!<%8$,:n@.2DG=$H$J$k!#(B ($B%F%-%9%H$NF~NO$K$O(B Mule $B%(%G%#%?$r;HMQ$7$?!#(B) $B$3$NB>(B \vflib $B$r;H$C$?(B \TeX $B$N%W%l%S%e!<%"!<$d%W%j%s%?%I%i%$%P$b3+H/$7$?!#(B \section{$B7kO@(B} \vflib $B$r1~MQ%=%U%H%&%(%"$G;HMQ$9$kMxE@$O!"0J2<$NDL$j$G$"$k!#(B 1.~$B1~MQ%=%U%H%&%(%"$K$*$$$FMF0W$K3Fl9g$O%S%C%H%^%C%W%U%)%s%H$GBeMQ$9$k$h$&!"(B |vflibcap| $B$G$N%U%)%s%HDj5A$rJQ99$9$l$P$h$$!#(B $B$3$N$H$-!"1~MQ%=%U%H%&%(%"$dJ8=q%U%!%$%k$NJQ99$OITMW$G$"$k!#(B $BB?8@8lJ8=q=hM}$K$*$$$F$O3Fl9g$,B?$$$,!"(B \vflib $B$K$h$j$=$NLdBj$,2r7h$G$-$k!#(B \vflib~3.4.1 $B$O(BC$B8@8l$G=q$+$l$F$*$j!"Ls(B2$BK|(B8$B@i9T$"$k!#(B $BF0:n3NG'$O(B FreeBSD 2.2.2 $B$H(B Solaris 2.5.1 $B$G9T$J$C$?!#(B \vflib $B$O(B GNU Library General Public License $B$K=>$$!"(B $B%=!<%9%3!<%I0l<0$rL5NA$GG[I[$7$F$$$k!#>\:Y$O(B |http://|""|www.|""|se.|""|hiroshima-u.|""|ac.|""|jp/|""|~kakugawa/|""|VFlib/| $B$r;2>H$5$l$?$$!#(B \bibliographystyle{plain} \bibliography{vflib-ja} \nocite{*} \end{document} vflib3-3.6.14.dfsg/doc/Paper2-ja/wrapfig.sty0000644000175000017500000005247306551316726020000 0ustar mohuramohura% W R A P F I G . S T Y ver 3.1 (Nov 2, 1995) % % Copyright (C) 1991,1992,1995 by Donald Arseneau % These macros may be freely transmitted, reproduced, or modified, % but not sold. This notice must be left intact. % % Environments "wrapfigure" and "wraptable" place a figure or table % at the side of the page and wrap text around it. % % \begin{wrapfigure}[12]{r}[34pt]{5cm}

\end{wrapfigure} % -- - ---- --- % [number of narrow lines] {placement} [overhang] {width of figure} % % Placement is one of r, l, i, o, R, L, I, O, for right, left, % inside, outside, (here / FLOAT). % The figure sticks into the margin by `overhang', if given, or by the % length \wrapoverhang, which is normally zero. % The number of wrapped text lines is normally calculated from the height % of the figure, but may be specified manually ("12" above). % % More detailed instructions are given below, following the definitions. % Please direct any problem reports to asnd@Triumf.ca %%%%% ----- Begin definitions ----- %%%%% \@ifundefined{c@WF@wrappedlines}{}{\endinput} \newdimen\wrapoverhang \wrapoverhang\z@ \newdimen\WF@size \newcount\c@WF@wrappedlines % used globally \newbox\WF@box \newtoks\WF@everypar \newif\ifWF@float \let\@@parshape\parshape \let\WF@@everypar\everypar \def\wrapfigure{\def\@captype{figure}\@ifnextchar[\WF@wr{\WF@wr[]}} \def\wraptable{\def\@captype{table}\@ifnextchar[\WF@wr{\WF@wr[]}} \def\WF@wr[#1]#2{% first two args: #1=num lines, #2=placement \xdef\WF@wfname{wrap\@captype\space}% \ifvoid\WF@box\else \WFclear \WF@collision \fi \xdef\WF@place{\string`\@car#2r\@nil}% \ifnum\lccode\WF@place=\WF@place \global\WF@floatfalse \else \global\WF@floattrue \fi \ifx\parshape\WF@fudgeparshape \ifWF@float\else\WF@collision\fi \else \ifx\par\@@par \ifnum\@@parshape>\z@\WF@conflict\fi \else \WF@conflict\fi \fi \gdef\WF@wli{#1}% \@ifnextchar[\WF@rapt{\WF@rapt[\wrapoverhang]}} \def\WF@rapt[#1]#2{% final two args: #1 = overhang, #2 = width, \gdef\WF@ovh{#1}% hold overhang for later, when \width is known \global\setbox\WF@box\vtop\bgroup \setlength\hsize{#2}\@parboxrestore} \def\endwrapfigure{\par\hrule\@width\hsize\@height\z@ % force width \egroup % end the \vtop; width is known so now is "later" \def\width{\wd\WF@box}\setlength\wrapoverhang{\WF@ovh}% \xdef\WF@ovh{\the\wrapoverhang}% save until wrapping \ifdim\ht\WF@box>\topskip \ht\WF@box\z@ \fi % too much height, set flag. \ifdim\ht\WF@box<.5\p@ % too tall (starts with \vbox) or too short \global\setbox\WF@box\vtop{\vskip-1.4ex\unvbox\WF@box}\fi \global\WF@size\dp\WF@box % box is guaranteed to have little height. \global\advance\WF@size1.5\baselineskip \global\advance\WF@size\tw@\intextsep \aftergroup\WF@startfloating % even when not really floating! \ifWF@float\else \ifhmode {\unskip \parfillskip\z@skip \par \vskip-\parskip}\aftergroup\noindent \fi\fi \global\@ignoretrue} \let\endwraptable\endwrapfigure % Subvert \everypar to float fig and do wrapping. Also for non-float. \def\WF@startfloating{% \WF@everypar\expandafter{\the\everypar}\let\everypar\WF@everypar \WF@@everypar{\ifvoid\WF@box\else\WF@floathand\fi \the\everypar \WF@wraphand }} \def\WF@floathand{% \ifx\parshape\WF@fudgeparshape \WF@fltmes\else \ifx\par\@@par\ifnum\@@parshape=\z@\ifdim\hangindent=\z@ \setbox\z@\lastbox \begingroup \@@par \WF@@everypar{}\WF@putfigmaybe \endgroup % start wrapping \ifvoid\z@\else\box\z@\fi % replace indentation \else\WF@fltmes\fi\else\WF@fltmes\fi\else\WF@fltmes\fi\fi} % Put fig here if it fits or if it can't float \def\WF@putfigmaybe{% \ifinner \vskip-\parskip \global\WF@floatfalse \let\pagetotal\maxdimen % kludge flag for "not top of page" \else % outer page \@tempdima\pagedepth % save page depth {\advance\parskip\@tempdima\vskip-\parskip}% back up to baseline \penalty\interlinepenalty % update pg. parameters \@tempdimb\pagegoal \advance\@tempdimb-\pagetotal % room left on page \ifdim\@tempdimb<\z@ % \WF@info{Page overfull already;}% \global\WF@floatfalse \ifdim-\@tempdimb>\pageshrink \else \pagebreak \fi \else \ifdim\WF@size>\@tempdimb % \WF@info{Size \the\WF@size\space does not fit in \the\@tempdimb}% \ifWF@float \dimen@.5\baselineskip \else \dimen@ 2\baselineskip\fi \ifdim\pagestretch>\dimen@ \dimen@\pagestretch \fi \ifdim\pagefilstretch>\z@ \dimen@\@tempdimb \fi \ifdim\pagefillstretch>\z@ \dimen@\@tempdimb \fi \advance\dimen@.5\baselineskip \ifdim\dimen@>\@tempdimb % \WF@info{Page nearly full; can stretch}% \global\WF@floatfalse \pagebreak \fi \else % \WF@info{Fits in \the\@tempdimb;}% \global\WF@floatfalse \fi\fi \vskip\@tempdima\relax % (return erased page depth) \fi \noindent \ifWF@float \WF@fltmes \else % putting here; \WF@info{Put \WF@wfname here:}% {\ifodd\if@twoside\c@page\else\@ne\fi % assign l/r to i/o placement \lccode`i`l\lccode`o`r\else \lccode`i`r\lccode`o`l\fi \xdef\WF@place{\the\lccode\lccode\WF@place}}% twice to get only l or r \hbox to\z@{% llap or rlap depending on {l} or {r}; calc effective width \@tempdima\wd\WF@box \@tempdimb\WF@ovh \advance\@tempdima-\@tempdimb \advance\@tempdima\columnsep \@tempdimb\hsize \advance\@tempdimb-\@tempdima \ifnum `l=\WF@place % fig on left \hss % figure overlaps space to the left \def\@tempa{\kern\columnsep}% position to left of the gap \else % fig on right \@tempdima\z@ % no left indentation \kern\@tempdimb \kern\columnsep \def\@tempa{\hss}% figure overlaps space to the right \fi \ifdim\@tempdimb<\hsize \xdef\WF@wrapil{\the\@tempdima \the\@tempdimb}% indentation and length \else \xdef\WF@wrapil{\z@ \the\hsize}% \fi \ifdim\pagetotal=\z@ % \WF@info{Put \WF@wfname at top of p.\thepage}% \global\advance\WF@size-\intextsep \else % \WF@info{Putting \WF@wfname in middle of page}% \setbox\WF@box\hbox{\lower\intextsep\box\WF@box}% \fi \dp\WF@box\z@ \box\WF@box \@tempa }% end \hbox to 0pt \aftergroup\WF@startwrapping % after the \endgroup which immediately follows \fi} \def\WF@startwrapping{% \ifx\WF@wli\@empty {\advance\WF@size1.1\baselineskip \divide\WF@size\baselineskip \global\c@WF@wrappedlines\WF@size}% \else \setcounter{WF@wrappedlines}{\WF@wli}\global\advance\c@WF@wrappedlines\@ne \fi \ifnum\c@WF@wrappedlines>\@ne \let\parshape\WF@fudgeparshape \let\WF@pspars\@empty \let\WF@@par\par \def\@setpar##1{\def\WF@@par{##1}}\def\par{\@par}\let\@par\WF@mypar \xdef\WF@restoretol{\tolerance\the\tolerance}\tolerance9999 \fi} \def\WF@wraphand{% \ifnum\c@WF@wrappedlines<\tw@ \WF@finale \else \begingroup % Create \parshape command: \@tempcnta\@ne \let\WF@wrapil\relax \gdef\WF@ps{}% \@whilenum \@tempcnta<\c@WF@wrappedlines\do{% repeated indentation, length \xdef\WF@ps{\WF@ps\WF@wrapil}\advance\@tempcnta\@ne }\endgroup \ifx\WF@pspars\@empty \@@parshape\c@WF@wrappedlines \WF@ps \WF@noil \else % use external `parshape' values to modify my parshape \WF@modps \fi\fi} \def\WF@mypar{\relax \WF@@par % what the rest of LaTeX expects \par to be (usually \@@par) \ifnum\@@parshape=\z@ \let\WF@pspars\@empty \fi % reset `parshape' \global\advance\c@WF@wrappedlines-\prevgraf \prevgraf\z@ \ifnum\c@WF@wrappedlines<\tw@ \WF@finale \fi} \def\WF@modps{\begingroup \afterassignment\@tempdimb \@tempdima\WF@pspars % a=ind, b=wid \afterassignment\dimen@\advance\@tempdima\WF@wrapil \advance\@tempdimb\dimen@ \advance\@tempdimb-\hsize \def\WF@wrapil{\the\@tempdima \the\@tempdimb}% \edef\@tempb{\@@parshape\c@WF@wrappedlines \WF@ps \WF@pspars}% \expandafter\endgroup\@tempb} \let\@@setpar\@setpar \def\WF@noil{\z@ \hsize} \let\WF@pspars\@empty \def\WF@fudgeparshape{\relax \ifnum\c@WF@wrappedlines<\tw@ \WF@finale \else \afterassignment\WF@fudgeparshapee \fam \fi} \def\WF@fudgeparshapee{\ifnum\fam=\@ne \expandafter \WF@parshapeee \else \WF@conflict \@@parshape\fam \fi} \def\WF@parshapeee#1#2{\begingroup \delimitershortfall#1\nulldelimiterspace#2\edef\@tempa{% \def\noexpand\WF@pspars{\the\delimitershortfall \the\nulldelimiterspace}}% \expandafter\endgroup\@tempa \WF@wraphand} \def\WF@finale{\ifx\parshape\WF@fudgeparshape \WF@restoretol \let\@setpar\@@setpar \let\par\WF@@par \WF@info{Finish wrapping text}% \ifx\par\@@par \def\@par{\let\par\@@par\par}\else \let\@par\WF@@par \fi \let\parshape\@@parshape \parshape\ifx\WF@pspars\@empty \z@ \else \@ne \WF@pspars\fi \fi \ifvoid\WF@box \ifx\everypar\WF@everypar \let\everypar\WF@@everypar \everypar\expandafter{\the\WF@everypar}% \fi\fi} \newcommand{\WFclear}{\ifvoid\WF@box\else \vskip\bigskipamount \box\WF@box \let\everypar\WF@@everypar \everypar\expandafter{\the\WF@everypar}% \fi \global\c@WF@wrappedlines\z@ \WF@finale} \begingroup \toks0={\let\everypar\WF@@everypar \everypar\expandafter{\the\WF@everypar}% \let\parshape\@@parshape \let\@setpar\@@setpar } \toks1=\expandafter{\@arrayparboxrestore} \toks2=\expandafter{\clearpage} \edef\@tempa{\def\noexpand\@arrayparboxrestore{\the\toks0 \the\toks1}% \def\noexpand\clearpage{\noexpand\protect\noexpand\WFclear \the\toks2}} \expandafter \endgroup\@tempa \def\WF@conflict{\WF@warning {\WF@wfname used inside a conflicting environment}} \def\WF@collision{\WF@warning{Collision between wrapping environments}} \def\WF@fltmes{\ifWF@float \WF@info{\WF@wfname floats}% \else \WF@warning{Stationary \WF@wfname forced to float}\fi} \let\WF@warning\@warning \let\WF@info\@gobble \@ifundefined{DeclareOption}{\endinput}{} \def\WF@warning{\PackageWarning{wrapfig}} \ProvidesPackage{wrapfig}[1995/11/02 \space v 3.1] \DeclareOption{verbose}{\def\WF@info{\PackageInfo{wrapfig}}} \ProcessOptions \AtEndDocument{\WFclear} \endinput %%%%% ----- End definitions ----- %%%%% %%%%% ----- Begin Instructions ----- %%%%% W R A P F I G . S T Y \ \ ver 3.1 \ \ (Nov 2, 1995) Copyright (C) 1991,1992,1995 by Donald Arseneau (asnd@Triumf.ca) Wrapfig.sty provides the environments "wrapfigure" and "wraptable" for typesetting a narrow float at the edge of the text, and making the text wrap around it. The "wrapfigure" and "wraptable" environments interact properly with the "\caption" command to produce proper numbering, but they are not regular floats like "figure" and "table", so (beware!) they may be printed out of sequence with the regular floats. There are four parameters for "\begin{wrapfigure}", two optional and two required, plus the text of the figure, with a caption perhaps: \begin{wrapfigure}[12]{r}[34pt]{5cm}
\end{wrapfigure} == = ==== === [number of narrow lines] {placement} [overhang] {width} Some idiosyncrasies: - You must not specify a wrapfigure in any type of list environment or or immediately before or immediately after one. It is OK to follow a list if there is a blank line ("\par") in between. - If you put a wrapfigure in a parbox or a minipage, or any other type of grouping, the text wrapping should end before the group does. - It does work in two-column format, but are your figures that small? - It may be out of sequence with regular floats. - The hlines that may be printed above and below floats are ignored; you must insert them manually if desired. - "\linewidth" is not adjusted within the wrapped text (because it can only be set for whole paragraphs at a time). It is set within the figure. \section{Placement and Floating} Parameter "#2" (required) is the figure placement code, but the valid codes are different from regular figures. They come in pairs: an uppercase version which allows the figure to float, and a lowercase version that puts the figure ``exactly here''. r R - the right side of the text l L - the left side of the text i I - the inside edge--near the binding (if "[twoside]" document) o O - the outside edge--far from the binding You should specify one code only, not a list. The figure or table must be on one side or the other; it cannot be in the middle with text on both sides. The "i" and "o" options refer to the inside and outside of the whole page, not individual columns. The ability to float is somewhat restricted, and you will get best results by giving exact manual placement, but floating is more convenient while revising the document. Any changes to the formatting can ruin your manual positioning so you should adjust the placement just before printing a final copy. Here are some tips for good placement: - The environment should be placed so as to not run over a page break. - The environment must not be placed in special places like lists. - Only plain text should wrap around the figure. Section titles and big equations are bad; lists are bad if the figure is on the left. (These are legal, they just look poor.) Small equations look fine. - It is convenient to begin the environment between paragraphs, but if you want placement in the middle of a paragraph, you must put the environment between two words where there is a natural line break. When floating, \LaTeX\ tries to apply these rules. More specifically, a floated wrapping environment will only begin... - at the beginning of a paragraph, - when there is enough room on the page, or it is possible to go on the next page, - if the `paragraph' is not in a section title or a list, - if the paragraph is not wrapping around another figure, - in the main text (not in a minipage etc.) It is possible that a non-floating wrapfigure will be forced to float when an earlier one is still being processed. A warning will be written in that case. You can have more information about the floating process written to the log file by specifying "\usepackage[verbose]{wrapfig}". If there is a lot of flexibility on a page, a floating wrapfigure may be placed badly; you must turn to manual placement. A rare problem is that floats and footnotes specified within the wrapping text can also cause poor placement and bad formatting. \section {Sizing and optional overhang} Parameter "#4" (the second required parameter) is the width of the figure or table. It is possible that the contents will be wider or narrower than this value (if you use a tabbing environment or "\hbox") and the wrapped text will use the greater of the specified and actual widths. \LaTeX\ will wrap surrounding text around the figure, leaving a gap of "\intextsep" at the top and bottom, and "\columsep" at the side, by producing a series of shortened text lines beside the figure. The indentation (shortening) of the text is the figure width plus "\columnsep" minus overhang (if any; see below). \LaTeX\ calculates the number of short lines needed based on the height of the figure and the length "\intextsep". You can override this guess by giving the first optional argument (parameter "#1") specifying the number of shortened lines (counting each displayed equation as 3 lines). This is particularly useful when the surrounding text contains extra vertical spacing that is not accounted for automatically. The second optional parameter ("#3") tells how much the figure should hang out into the margin. The default overhang is given by the length "\wrapoverhang", which is "0pt" normally but can be changed using "\setlength". For example, to have all wrapfigures use the space reserved for marginal notes, \setlength{\wrapoverhang}{\marginparwidth} \addtolength{\wrapoverhang}{\marginparsep} When you do specify the overhang explicitly for a particular figure, you can use a special unit called "\width" meaning the width of the figure. For example, "[0.5\width]" makes the center of the figure sit on the edge of the text, and "[\width]" puts the figure entirely in the margin (and the adjacent text is indented by just "\columnsep"). \section{Some Random Implementation Notes} Unfortunately, \LaTeX's system of setting "\everypar" and "\par" is unable to coexist peacefully with a wrapping environment, so I was forced to subvert the "\@setpar" mechanism and "\everypar". ("\everypar" is already subverted once by NFSS.) When checking the room left on the page, remember that if there is less than "\baselineskip" the new paragraph will begin on the next page, even if there is no page stretch. If non-floating, I force a bad page break rather than have the figure hang into the bottom margin. Here are notes on various variables and some macros; what info they store and how they are used. \WF@wli - number-of-wrapped-lines parameter, saved for start of wrapping. Set globally by "\WF@wr" (set empty if no optional parameter given). The floating mechanism ignores this and uses the real size. \WF@ovh - margin overhang set globally by "\WF@rapt", saved until placing figure (but not reset). Actually, the setting is very tricky so that the expected values are used when a figure floats. First, the expression is saved without evaluation by "\WF@rapt" ("\begin{wrapfigure}") because "\width" is still unknown. Soon after that, "\endwrapfigure" executes "\WF@ovh" to evaluate the overhang and save the result (so that changes to "\wrapoverhang" while this figure is floating won't affect this figure). Finally, it is used by "\WF@putfigmaybe" when printing the fig. \WF@place - a macro that is used as a number, giving the placement code. It might start out as "`I" and later be converted to "114" (r). \WF@box - tested for void at "\begin{wrapfigure}", to avoid collisions, by "\everypar" to do floating, and by "\WF@finale" before resetting "\everypar". Voided globally when used by "\WF@putfigmaybe" (or by "\WF@wr" if an old figure must be dumped prematurely). \par - test if it is "\@@par" by "\begin{wrapfigure}" and "\WF@floathand" to float past special environments. It is set to "\@par" ("\WF@mypar") by "\WF@startwrapping", and restored by an end-group (bad!) or by "\WF@finale" (good). It is protected from change by redefining "\@setpar". \parshape - let to "\WF@fudgeparshape" by "\WF@startwrapping", so lists will continue wrapping; "\@@parshape" preserves the real "\parshape" command, and it is restored by "\WF@finale" or "\@parboxrestore". "\WF@floathand" and "\WF@wr" test if old wrapping is still in progress with "\ifx\parshape\WF@fudgeparshape". The value of "\@@parshape" is also tested to float past lists and other wrapping environments. \hangindent - tested to float past section titles etc. \c@WF@wrappedlines - the number of shortened lines + 1; set globally by "\WF@startwrapping" and decremented by "\par" ("\WF@mypar"). It is > 1 only when wrapping is incomplete. "\WF@wraphand", "\WF@fudgeparshape", and "\WF@mypar" test the number for calling "\WF@finale". It may get stuck at some high value if "\par" is restored by an end-group, (and wrapping is terminated prematurely) so it is unwise to use this as a test for wrapping-complete. \pagetotal - one of many parameters used to compute floating. When putting a wrapfigure in a parbox, I assign "\let\pagetotal\maxdimen" (locally!) to signal not-top-of-page and no floating. \WF@pspars - the "\parshape" parameters as LaTeX sets them for lists ("\WF@fudgeparshape"); when wrapping I test it and use it to modify my own real params for the paragraph. They are also used when "\parshape" is restored after wrapping. \WF@finale - is performed by "\par" when wrapping should end. However, that might happen inside a group (a list especially), so the subverted versions of "\par", "\parshape" etc. will be reinstated when the group ends. Thus, they must themselves test "\c@WF@wrappedlines" < 2 to see when wrapping is over, and if so, they should just do "\WF@finale" again. These are the tests to see if a floating wrapfigure will fit at a particular spot. These tests are performed at the beginning of every paragraph after the figure, except in lists etc. ("\pagegoal" - "\pagetotal" is the room left on the page.) > room_left := \pagegoal - \pagetotal if room_left < 0 then page overfull already: put figure (on next page) else if figure_size > room_left then does not fit if max(min_stretch, \pagestretch) + extra > room_left then page can stretch until full: put figure (at top of next page) fi else figure fits: put figure fi fi < Even if a wrapfigure is not floating, it will go through the same logic to generate a "\pagebreak", and maybe an underfull page, when the current page can stretch until full. The "min_stretch" depends on whether it is floating or not: ".5\baselineskip" (floating) "2\baselineskip" (not). The "extra" is ".5\baselineskip" in either case. These values can be adjusted. There are some other `magic numbers' for floating that aren't really so special, but you must change them together if you change them at all. To make floating wrapfigures float less and fit on pages more frequently, but not change the number of wrapped lines, decrease the "1.5" in "\global\advance\WF@size1.5\baselineskip" and increase the "1.1" in "\advance\WF@size1.1\baselineskip" by the same amount (and vice versa). To make more (or fewer) wrapped lines for the same size figure, without changing the floating, change "1.1" in "\advance\WF@size1.1\baselineskip" unilaterally. %%%%% ----- End Instructions ----- %%%%% Test file integrity: ASCII 32-54, 55-126: !"#$%&'()*+,-./0123456789 :;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ vflib3-3.6.14.dfsg/doc/VFlib-36.dvi0000644000175000017500000130025410400435027015765 0ustar mohuramohura; TeX output 2006.02.27:08303)ٚFNj cmbx12FAƧFVonZtLibraryVFlib 0>| 2K`y 3 cmr10VFlibfv!ersion3.6.14User'smanual @FinalfRevision:26Feeb2006pXNff cmbx12XHirotsuguffKakugawả>|*Chapterf1:Cop!yrightY13)^׍ONG cmbx12O1 QCopuyright33Cop!yrightf(C)1996-2006HirotsuguKakuga!wa.Allfrightsreserved.33ThisG leispartoftheVFlibLibrarye..Thislibraryisfreesoft!ware;youGcanredistributeit 33and/ormoMdifyitunderthetermsoftheGNULibraryGeneralPublicLicenseaspublishedb!ytheCFereeSoft!wareCFoundation;eitherv!ersion2oftheLicense,2zor(atyouroption)anylaterv!ersion.)wThislibraryisdistributedinthehopMethatitwillbeuseful,butWITHOUTQANYWȈARRANTY;Swithoutev!entheimpliedwarrantyofMERCHANTeABILITYSorFITNESSF!ORAZPeARTICULARPURPOSE.ZSeetheGNULibraryGeneralPublicLicenseformoredetails.Yeoudshouldha!vedreceivedacopyoftheGNUdLibraryGeneralPublicLicensealongwiththislibrary;kifMPnot,_!writetotheFereeSoft!wareMPFoundation,_!59TemplePlace-Suite330,_!Boston,MA02111-1307,fUSA.o2VFlibf3.6.143)Chapterf2:Cop!yingb:33)^׍O2 QCopuyingnJ&GNUfLIBRAReYGENERALPUBLICLICENSE 33Veersionf2,June1991UCop!yrightcf;!", 3 cmsy10 @1991fFereeSoft!warefFoundation,Inc.U675fMassAv!e,Cambridge,MA02139,USAffUEv!eryonefispMermittedtocop!yanddistributeverbatimcopiesUoffthislicensedoMcumen!t,butchangingitisnotallowed.U[Thisfisthe rstreleasedv!ersionofthelibraryGPL.LItis n!umbMeredf2becauseitgoeswithv!ersion2oftheordinaryGPL.] XPreamble܍Theͻlicensesformostsoft!wareͻaredesignedtotak!eawayyourfreedomtoshareandchangeit.By3con!trast,WtheGNU3GeneralPublicLicensesareintendedtoguaranteeyourfreedomtosharefandc!hangefreesoftware{tomakesurethesoftwareisfreeforallitsusers.This%license,DtheLibraryGeneralPublicLicense,appliestosomespMeciallydesignatedFereeSoft!ware/gFeoundationsoft!ware,Qand/gtoan!yotherlibrarieswhoseauthorsdecidetouseit.xYoucanfuseitfory!ourlibraries,toMo.Whenw!espMeakoffreesoftware,Xwearereferringtofreedom,Xnotprice.OurGeneralPublicLicenses™aredesignedtomak!esurethatyouhavethefreedomtodistributecopiesoffreesoftware(andc!hargeforthisserviceifyouwish),athatyoureceivesourcecoMdeorcangetitifyouwantit,Z"thatGy!oucanchangethesoftwareorusepiecesofitinnewfreeprograms;fandthatyouknowy!oufcandothesethings.TeoNprotecty!ourrights,xweneedtomakerestrictionsthatforbidanyonetodenyyoutheserigh!tsortoaskyoutosurrendertherights.TheserestrictionstranslatetocertainrespMonsibilitiesforfy!ouifyoudistributecopiesofthelibrarye,orifyoumoMdifyit.FeorMexample,_Hify!oudistributecopiesofthelibrary,_Hwhethergratisorforafee,y!oumustgivethe>precipien!tsalltherightsthatwegaveyou.6Yeoumustmakesurethattheye,S;toMo,receive>porcangetYthesourcecoMde.Ify!oulinkaprogramwiththelibrarye,youmustprovidecompleteobject lesktotherecipien!tssothattheycanrelinkthemwiththelibrarye,waftermakingchangestothelibraryfandrecompilingit.Andy!oumustshowthemthesetermssotheyknowtheirrights.OurtmethoMdofprotectingy!ourrightshastwosteps:1(1)copyrightthelibrarye,and(2)o ery!oufthislicensewhichgivesyoulegalpMermissiontocopye,distributeand/ormoMdifythelibrary.Also,0 foreac!hdistributor'sprotection,w!ewanttomakecertainthateveryoneunderstandsthatf)thereisnow!arrantyf)forthisfreelibrarye.'IfthelibraryismoMdi edb!ysomeoneelseandpassedeon,w!ewantitsrecipientstoknowthatwhattheyhaveisnottheoriginalversion,sothatfan!yproblemsintroMducedbyotherswillnotre ectontheoriginalauthors'reputations.Finallye,IRan!y2 freeprogramisthreatenedconstantlybysoftwarepatents.WeewishtoavoidthedangerF9thatcompaniesdistributingfreesoft!wareF9willindividuallyobtainpaten!tlicenses,n.thusin|e ecttransformingtheprogramin!toproprietarysoftware.Teopreventthis,wehavemadeitclearfthatan!ypatentmustbMelicensedforeveryone'sfreeuseornotlicensedatall.MostʗGNU`soft!ware,includingsomelibraries,isco!veredbytheordinaryGNU`GeneralPublicLicense,88whic!hwasdesignedforutilityprograms.Thislicense,88theGNULibraryGeneralPublicLicense,appliestocertaindesignatedlibraries.Thislicenseisquitedi eren!tfromtheordinaryone;7bMeXsuretoreaditinfull, anddon'tassumethatan!ythinginitisthesameasintheordinarylicense.R4VFlibf3.6.143)^׍TheLreasonw!ehaveaseparatepubliclicenseforsomelibrariesisthattheyblurthedistinction 33w!eusuallymakebMetweenmoMdifyingoraddingtoaprogramandsimplyusingit. Linkingaprogramwithalibrarye,withoutc!hangingthelibrary,isinsomesensesimplyusingthelibrary,andZisanalogoustorunningautilit!yprogramorapplicationprogram.AHowever,inatextualand;legalsense,`8thelink!edexecutableisacombinedwork,`8aderivdDativeoftheoriginallibrarye,andftheordinaryGeneralPublicLicensetreatsitassuc!h.BecauseVofthisblurreddistinction,usingtheordinaryGeneralPublicLicenseforlibrariesdidnote ectiv!elypromotesoftwaresharing,bMecausemostdevelopMersdidnotusethelibraries.Weefconcludedthatw!eakerfconditionsmigh!tpromotesharingbMetter.Ho!wever,unrestrictedlinkingofnon-freeprogramsw!oulddeprivetheusersofthoseprogramsofallbMene tfromthefreestatusofthelibrariesthemselv!es.ThisLibraryGeneralPublicLicenseis&in!tendedtopMermitdevelopMersofnon-freeprogramstousefreelibraries,@Xwhilepreservingyourfreedomasauserofsuc!hprogramstochangethefreelibrariesthatareincorpMoratedinthem.(WeeKha!venotseenhowtoachievethisasregardschangesinheader les,butwehaveachieveditϢasregardsc!hangesintheactualfunctionsoftheLibrarye.)YThehopMeisthatthiswillleadtofasterfdev!elopmentoffreelibraries.Theprecisetermsandconditionsforcop!ying,-distributionandmoMdi cationfollow.Paycloseatten!tionctothedi erencebMetweena3Library(indepMenden!toftheuseoftheLibraryinatoolforwritingit).fWhetherthatisdtruefdepMendsonwhattheLibrarydoesandwhattheprogramthatusestheLibrarydoes.2.dYeouPma!ycopyanddistributeverbatimcopiesoftheLibrary'scompletesourcecoMdeasyoudreceiv!e>vit,dyinanymedium,dyprovidedthatyouconspicuouslyandappropriatelypublishonChapterf2:Cop!yingb:53)^׍deac!h(copyanappropriatecopyrightnoticeanddisclaimerofwarranty;jkeepintactallthe 33dnoticesgthatrefertothisLicenseandtotheabsenceofan!ywarranty;|anddistributeacopydoffthisLicensealongwiththeLibrarye. dYeou7ma!ychargeafeeforthephysicalactoftransferringacopye,andyoumayatyouroptiondo erfw!arrantyprotectioninexchangeforafee.3.dYeouyma!ymoMdifyyourcopyorcopiesoftheLibraryoranypMortionofit,thusformingadw!orkbasedontheLibrarye,andcopyanddistributesuchmoMdi cationsorworkunderthedtermsfofSection1abMo!ve,fprovidedthatyoualsomeetalloftheseconditions:Ja.+\ThefmoMdi edw!orkmustitselfbMeasoftwarelibrarye.b.+\Yeoui|m!ustcausethe lesmoMdi edtocarryprominentnoticesstatingthatyouchanged+\thef lesandthedateofan!ychange.:c.+\Yeoum!ustcausethewholeoftheworktobMelicensedatnochargetoallthirdparties+\underfthetermsofthisLicense.d.+\If&afacilit!yinthemoMdi edLibraryreferstoafunctionoratableofdatatobesupplied+\b!y$anapplicationprogramthatusesthefacilitye,Totherthanasanargumentpassed+\whenjthefacilit!yisinvoked, thenyoumustmakeagoModjfaithe orttoensurethat,+\inDtheev!entDanapplicationdoMesnotsupplysuc!hfunctionortable,thefacilitystill+\opMerates,fandperformswhatev!erpartofitspurposeremainsmeaningful.+\(Feorhexample, afunctioninalibrarytocomputesquareroMotshasapurposethatis+\en!tirelyewell-de nedindepMendentoftheapplication.BTherefore,rSubsection2drequires+\thatFan!yapplication-suppliedfunctionortableusedbythisfunctionmustbMeoptional:+\iftheapplicationdoMesnotsupplyit,thesquarerootfunctionm!uststillcomputesquare+\roMots.)zፑdTheserequiremen!tsapplytothemoMdi edworkasawhole.Ifidenti ablesectionsofthatdw!orkarenotderivedfromtheLibrarye,andcanbMereasonablyconsideredindependen!tanddseparateIw!orksinthemselves,thenthisLicense,anditsterms,donotapplytothosesectionsdwhen^y!oudistributethemasseparateworks.Butwhenyoudistributethesamesectionsasdpart# ofawholewhic!hisaworkbasedontheLibrarye,B1thedistributionofthewholemustdbMeܔonthetermsofthisLicense,whosepermissionsforotherlicenseesextendtotheen!tiredwhole,fandth!ustoeachandeverypartregardlessofwhowroteit.dTh!us,aeitisnottheintentofthissectiontoclaimrightsorcontestyourrightstoworkdwrittenJen!tirelybyyou;iprather,]>theintentistoexercisetherighttocontrolthedistributiondoffderivdDativ!eorcollectiveworksbasedontheLibrarye.dInaddition,Rmereaggregationofanotherw!orknotbasedontheLibrarywiththeLibraryd(or_withaw!orkbasedontheLibrary)onavolumeofastorageordistributionmediumddoMesfnotbringtheotherw!orkunderthescopeofthisLicense.4.dYeouma!yopttoapplythetermsoftheordinaryGNUGeneralPublicLicenseinsteadofthisdLicenseEtoagiv!encopyoftheLibrarye.}ToEdothis,youmustalterallthenoticesthatreferdtoҪthisLicense,ݻsothattheyrefertotheordinaryGNUҞGeneralPublicLicense,v!ersion2,dinstead\oftothisLicense.(Ifanew!erversionthanversion2oftheordinaryGNU[GeneraldPublic$LicensehasappMeared,>theny!oucanspecifythatv!ersioninsteadifyouwish.)Donotdmak!efanyotherchangeinthesenotices.dOnceAJthisc!hangeismadeinagivencopye,hitisirreversibleforthatcopye,hsotheordinarydGNUrGeneralr=PublicLicenseappliestoallsubsequen!tcopiesandderivdDativeworksmadedfromfthatcop!ye.dThispoptionisusefulwheny!ouwishtocopypartofthecoMdeoftheLibraryintoaprogramdthatfisnotalibrarye.5.dYeou~ma!ycopyanddistributetheLibrary(orapMortionorderivdDativeofit,underSection2)dinobjectcoMdeorexecutableformunderthetermsofSections1and2abo!veprovidedthat*x6VFlibf3.6.143)^׍dy!ouaccompanyitwiththecompletecorrespMondingmachine-readablesourcecoMde,which 33dm!ust# bMedistributedunderthetermsofSections1and2abo!ve# onamediumcustomarilydusedfforsoft!warefinterchange.dIfGdistributionofobjectcoMdeismadeb!yo eringaccesstocopyfromadesignatedplace,dthendo eringequivdDalen!taccesstocopythesourcecoMdefromthesameplacesatis esthedrequiremen!tStodistributethesourcecoMde,eventhoughthirdpartiesarenotcompMelledtodcop!yfthesourcealongwiththeobjectcoMde.6.dA0programtthatcon!tainsnoderivdDativeofanypMortionoftheLibrarye,vbutisdesignedtodw!orkŘwiththeLibrarybybMeingcompiledorlinkedwithit,eiscalleda"workthatusesthedLibrary".ڱSuc!hawork,inisolation,isnotaderivdDativ!eworkoftheLibrarye,andthereforedfallsfoutsidethescopMeofthisLicense.dHo!wever,΅linkingLa"w!orkthatusestheLibrary"withtheLibrarycreatesanexecutabledthatApisaderivdDativ!eoftheLibrary(bMecauseitcontainspMortionsoftheLibrary),Uratherthanda(r"w!orkthatusesthelibrary".TheexecutableisthereforecoveredbythisLicense.Sectiond6fstatestermsfordistributionofsuc!hexecutables.dWhen#a"w!orkthatusestheLibrary"usesmaterialfromaheader lethatispartofthedLibrarye,'theobjectcoMdeforthew!orkmaybMeaderivdDativeworkoftheLibraryeventhoughdthe'sourcecoMdeisnot.sWhetherthisistrueisespeciallysigni can!tiftheworkcanbMelinkeddwithout%UtheLibrarye,Eorifthew!orkisitselfalibrary.ZThethresholdforthistobMetrueisdnotfpreciselyde nedb!ylaw.dIfsuc!hanobject leusesonlynumericalparameters,@datastructurelayoutsandaccessors,dandGsmallmacrosandsmallinlinefunctions(tenlinesorlessinlength),Zthentheuseofthedobject2 leisunrestricted,J regardlessofwhetheritislegallyaderivdDativ!ework.b(Executablesdcon!tainingfthisobjectcoMdeplusportionsoftheLibrarywillstillfallunderSection6.)dOtherwise,|ifhthew!orkisaderivdDativeoftheLibrarye,|youmaydistributetheobjectcoMdedforthew!orkunderthetermsofSection6.AnyexecutablescontainingthatworkalsofalldunderfSection6,whetherornottheyarelink!eddirectlywiththeLibraryitself.7.dAsanexceptiontotheSectionsabMo!ve,youmayalsocompileorlinka"workthatusesdthe>Library"withtheLibrarytoproMduceaw!orkcontainingpMortionsoftheLibrarye,e andddistributezthatw!orkundertermsofyourchoice,providedthatthetermspMermitmodi -dcationXofthew!orkforthecustomer'sownuseandreverseengineeringfordebuggingsuchdmoMdi cations.dYeoum!ustgiveprominentnoticewitheachcopyoftheworkthattheLibraryisusedinitdand(thattheLibraryanditsuseareco!vered(bythisLicense.dYeoumustsupplyacopyofdthis]License./Ifthew!orkduringexecutiondisplayscopyrightnotices,youmustincludethedcop!yrightLfnoticefortheLibraryamongthem,uasw!ellasareferencedirectingtheusertodthefcop!yofthisLicense.Also,youmustdooneofthesethings:Ja.+\Accompan!y*+theworkwiththecompletecorrespMondingmachine-readablesourcecoMde+\for"TtheLibraryincludingwhatev!erchangeswereusedinthework(whichmustbMe+\distributedunderSections1and2abMo!ve);<and,uifthew!orkisanexecutablelinked+\withtheLibrarye,0withthecompletemac!hine-readable"workthatusestheLibrary",0as+\object˰coMdeand/orsourcecode,nsothattheusercanmodifytheLibraryandthenrelink+\toSproMduceamodi edexecutablecon!tainingthemodi edLibrarye.(Itisunderstood+\thatutheuserwhoc!hangesthecontentsofde nitions lesintheLibrarywillnot+\necessarilyfbMeabletorecompiletheapplicationtousethemodi edde nitions.)b.+\Accompan!y*theworkwithawritteno er,[vdDalidforatleastthreeyears,[togivethe+\sameuserthematerialsspMeci edinSubsection6a,7abo!ve,7forac!hargenomorethan+\thefcostofpMerformingthisdistribution.:c.+\Ifadistributionofthew!orkismadebyo eringaccesstocopyfromadesignatedplace,+\o erfequivdDalen!taccesstocopytheabMovespMeci edmaterialsfromthesameplace.=Chapterf2:Cop!yingb:73)^׍d.+\VeerifyjCthattheuserhasalreadyreceiv!edacopyofthesematerialsorthatyouhave 33+\alreadyfsen!tthisuseracopye.dFeorxanexecutable,therequiredformofthe"w!orkthatusestheLibrary"mustincludeanyddatayUandutilit!yprogramsneededforreproMducingtheexecutablefromit.VHowever,asadspMecial47exception,Wthesourcecodedistributedneednotincludean!ythingthatisnormallyddistributed(ineithersourceorbinaryform)withthemajorcompMonen!ts(compiler,kernel,dand/soon)oftheopMeratingsystemonwhic!htheexecutableruns,Q;unlessthatcomponen!tditselffaccompaniestheexecutable.dItma!yhappMenthatthisrequirementcontradictsthelicenserestrictionsofotherproprietarydlibrariesnthatdonotnormallyaccompan!ytheopMeratingsystem.Suchacontradictionmeansdy!oufcannotusebMoththemandtheLibrarytogetherinanexecutablethatyoudistribute.8.dYeouma!yplacelibraryfacilitiesthatareaworkbasedontheLibraryside-by-sideinasingledlibrary!=togetherwithotherlibraryfacilitiesnotco!vered!=bythisLicense,;anddistributesuchdacom!binedlibrarye,,providedthattheseparatedistributionoftheworkbasedontheLibrarydandUQoftheotherlibraryfacilitiesisotherwisepMermitted, andpro!videdthatyoudothesedt!wofthings:J1.+\Accompan!ythecombinedlibrarywithacopyofthesameworkbasedontheLibrarye,+\uncom!binedwithanyotherlibraryfacilities.ThismustbMedistributedundertheterms+\offtheSectionsabMo!ve.J2.+\Giv!eprominentnoticewiththecombinedlibraryofthefactthatpartofitisawork+\basedontheLibrarye,andexplainingwhereto ndtheaccompan!yinguncombinedform+\offthesamew!ork.9.dYeouzma!ynotcopye,moMdify,sublicense,linkzwith,ordistributetheLibraryexceptasexpresslydpro!videdunderthisLicense.իAnyattemptotherwisetocopye,moMdify,sublicense,linkwith,dorLdistributetheLibraryisv!oid,v]andwillautomaticallyterminateyourrightsunderthisdLicense.Ho!wever,partieswhoha!vereceivedcopies,orrights,fromyouunderthisLicensedwillfnotha!veftheirlicensesterminatedsolongassuc!hpartiesremaininfullcompliance.vL10.dYeouParenotrequiredtoacceptthisLicense,b sincey!ouhavenotsignedit.bHowever,b nothingdelsegran!tsyoupMermissiontomodifyordistributetheLibraryoritsderivdDativ!eworks.lThesedactionsyHareprohibitedb!ylawifyoudonotacceptthisLicense.Therefore,NbymoMdifyingorddistributingtheLibrary(oran!yworkbasedontheLibrary),youindicateyouracceptanceofdthisLicensetodoso,3andallitstermsandconditionsforcop!ying,distributingormoMdifyingdthefLibraryorw!orksbasedonit.vL11.dEac!h!timeyouredistributetheLibrary(oranyworkbasedontheLibrary),@therecipientdautomaticallyreceiv!esalicensefromtheoriginallicensortocopye,6distribute,linkwithordmoMdify3theLibrarysubjecttothesetermsandconditions.Yeouma!ynotimposean!yfurtherdrestrictionszontherecipien!ts'exerciseoftherightsgrantedherein.^YeouarenotrespMonsibledforfenforcingcomplianceb!ythirdpartiestothisLicense.vL12.dIf,gas4aconsequenceofacourtjudgmen!torallegationofpatentinfringementorforanydotherbreason(notlimitedtopaten!tissues),@aconditionsareimpMosedonyou(whetherbydcourtL=order,^Eagreemen!torotherwise)thatcontradicttheconditionsofthisLicense,^Etheydodnots*excusey!oufromtheconditionsofthisLicense.Ifyoucannotdistributesoastosatisfydsim!ultaneouslyyourobligationsunderthisLicenseandanyotherpMertinentobligations,thendas@aconsequencey!oumaynotdistributetheLibraryatall.Feorexample,Tifapatentlicensedw!ouldcnotpMermitroyalty-freeredistributionoftheLibrarybyallthosewhoreceivecopiesddirectlyorindirectlythroughy!ou,JthentheonlywayyoucouldsatisfybMothitandthisdLicensefw!ouldbMetorefrainentirelyfromdistributionoftheLibrarye.dIfan!ypMortionofthissectionisheldinvdDalidorunenforceableunderanyparticularcircum-dstance,theݯbalanceofthesectionisin!tendedtoapplye,andthesectionasawholeisin!tendeddtofapplyinothercircumstances.R8VFlibf3.6.143)^׍dItnisnotthepurpMoseofthissectiontoinducey!outoinfringeanypatentsorotherpropMerty 33drigh!t"claimsortocontestvdDalidityofanysuchclaims;`thissectionhasthesolepurpMoseofdprotectingUthein!tegrityUofthefreesoft!wareUdistributionsystemwhic!hisimplementedbydpubliclicensepractices.Man!ypMeoplehavemadegenerouscontributionstothewiderangedof7soft!waredistributedthroughthatsysteminrelianceonconsistentapplicationofthatdsystem;it+isuptotheauthor/donortodecideifheorsheiswillingtodistributesoft!waredthroughfan!yothersystemandalicenseecannotimpMosethatchoice.fdThissectionisin!tendedtomakethoroughlyclearwhatisbMelievedtobMeaconsequenceofdthefrestofthisLicense.vL13.dIf lthedistributionand/oruseoftheLibraryisrestrictedincertaincoun!trieseitherbydpaten!tsorbycopyrightedinterfaces,!theoriginalcopyrightholderwhoplacestheLibrarydunderPthisLicensema!yaddanexplicitgeographicaldistributionlimitationexcludingthosedcoun!tries,sothatdistributionispMermittedonlyinoramongcountriesnotthusexcluded.Indsuc!hBcase,thisLicenseincorpMoratesthelimitationasifwritteninthebodyofthisLicense.vL14.dThe!lFereeSoft!ware!lFoundationma!ypublishrevisedand/ornewversionsoftheLibrarydGeneralIDPublicLicensefromtimetotime.Suc!hnewversionswillbMesimilarinspirittothedpresen!tfversion,butmaydi erindetailtoaddressnewproblemsorconcerns.dEac!hversionisgivenadistinguishingversionnumbMer.̫IftheLibraryspeci esav!ersiondn!umbMerofthisLicensewhic!happliestoitand"anylaterversion",eyouhavetheoptionofdfollo!wingVthetermsandconditionseitherofthatversionorofanylaterversionpublisheddb!y/theFereeSoftwareFeoundation. IftheLibrarydoMesnotspecifyalicensev!ersionnumbMer,dy!oufmaychoMoseanyversioneverpublishedbytheFereeSoftwareFeoundation.vL15.dIfy!ouwishtoincorpMoratepartsoftheLibraryintootherfreeprogramswhosedistributiondconditionsareincompatiblewiththese,swritetotheauthortoaskforpMermission. 1Feordsoft!ware@whichiscopyrightedbytheFereeSoftwareFeoundation,{writetotheFreeSoft!waredFeoundation;Mew!e sometimesmakeexceptionsforthis.]OurdecisionwillbMeguidedbythetwodgoals%ofpreservingthefreestatusofallderivdDativ!esofourfreesoftwareandofpromotingdthefsharingandreuseofsoft!warefgenerallye.%̍dXNOf@W33ARRANTYffvL16.dBECA!USE\THELIBRAReYISLICENSEDFREEOFCHARGE,\7THEREISNOWȈAR-dRANTYp F!ORTHELIBRAReY,pTOTHEEXTENTPERMITTEDBYAPPLICABLEdLAȈW.EX!CEPTWHENOTHERWISESTeATEDINWRITINGTHECOPYRIGHTdHOLDERS}AND/OROTHERPeARTIES}PR!OVIDETHELIBRAReY"ASIS"WITH-dOUTWȈARRANTYOFANYKIND,EITHEREXPRESSEDORIMPLIED,INCLUDING,dBUT>HNOTLIMITEDTO,>THEIMPLIEDWȈARRANTIESOFMER!CHANTeABILITYdAND5FITNESSF!ORAPeARTICULAR5PURPOSE.݅THEENTIRERISKASTOTHEdQUALITY"ANDPERF!ORMANCEOFTHELIBRAReYISWITHYOU.:SHOULDTHEdLIBRAReYPR!OVEDEFECTIVE,QYOUASSUMETHECOSTOFALLNECESSAReYdSERȈVICING,fREPeAIRORCORRECTION.vL17.dINNOEVENTUNLESSREQUIREDBYAPPLICABLELAȈWORA!GREEDTOINdWRITING!WILLANYCOPYRIGHTHOLDER,%ORANYOTHERPeARTY!WHOMAeYdMODIFY|AND/ORREDISTRIBUTETHELIBRAReYASPERMITTEDABO!VE,BEdLIABLE5TOYOUF!ORDAMAGES,~INCLUDINGANYGENERAL,SPECIAL,INCI-dDENTeAL2ORCONSEQUENTIALD!AMAGES2ARISINGOUTOFTHEUSEORIN-dABILITYTOUSETHELIBRAReY(INCLUDINGBUTNOTLIMITEDTOLOSSOFdD!AeTAORDAeTABEINGRENDEREDINACCURAeTEORLOSSESSUSTAINEDBYdYOUUORTHIRDPeARTIESUORAFȈAILUREOFTHELIBRAReYTOOPERATEWITH f}Chapterf2:Cop!yingb:93)^׍dANYOTHERSOFTWȈARE),EVENIFSUCHHOLDEROROTHERPeARTYHASBEEN 33dAD!VISEDfOFTHEPOSSIBILITYOFSUCHDAMAGES.XENDf@OFTERMSANDCONDITIONS x10"2VFlibf3.6.143)^׍XApps3endix:Howf@toApplyTheseTfermstoYourNewLibrariesffIfXy!oudevelopanewlibrarye,h\andyouwantittobMeofthegreatestpossibleusetothepublic, 33w!eurecommendmakingitfreesoftwarethateveryonecanredistributeandchange. Yeoucandosob!ypMermittingredistributionundertheseterms(or,Calternativelye,underthetermsoftheordinaryfGeneralPublicLicense).33Teoapplytheseterms,attac!hthefollowingnoticestothelibrarye.|ItissafesttoattachthemtoAthestartofeac!hsource letomoste ectivelyconveytheexclusionofwarranty;chandeach leshouldfha!veatleastthe"copyright"lineandapMointertowherethefullnoticeisfound. UAsearching nishesandtheVFlibfontopMeningfunctionreturnssuccessfullye.9Otherwise,ffon!topMenfails.9Feon!ts!describMedinav ibcap learecalledexplicitpfontsandfon!tsthataresearched9forb!ythefontsearchfeaturearecalledimplicit |fonts.SuppMortforexplicitand9implicitffon!tsdepMendsonfontdriver.33ObtainingfBitmaps(Glyph)9Tw!ofinterfacesareprovidedtoobtainglyph(bitmaps)ofafont.9Highfresolutiondeviceorien!tedglyphsThis2methoMdissuitablefordevicesofhighresolutionsuc!haslaserprint-sers.ThesizeofglyphisspMeci edb!ythephysicalsizeofglyphanddevicesresolution.˞Whenothesizeofaglyphinthesourcefon!tisdi erentfromstheftargetsize,VFlibscalesthesourceglyphin!ternallye.9Lo!wfresolutiondeviceorientedglyphsThismethoMdissuitableforlo!wresolutiondevicessuchasCReTdisplays.sGlyphysizesarespMeci edb!ypixelsizeratherthanbydeviceresolution.sWhen thesizeofaglyphinthesourcefon!tisdi erentfromthetargetssize,fVFlibscalesthesourceglyphin!ternallye. ?Chapterf4:InstallingVFlib8X133)^׍O4 QInstallingzVFlibgVFlibkusesGNU2autoMconfandGNUlibtoMoltocompile.Accordingtothefollo!wingprocedure, 33compilefandinstallVFlib.VFlib(optionally)usesFereeT!ypMe1.3.0orlater,T1Lib5.1orlater,andkpathsea3.2libraries.Theypm!ustbMeinstalledbeforecompilingVFlibify!ouwantusethem.TheyareavdDailablefromtheffollo!wingsites:dFereeT!ypMezVFlibistestedwithFreeT!ypMe1.3.(FreeT!ypMe1.0doesnotw!orkwithcurrentdVFlib3.)xI+\http://www.freetype.org/I+\ftp://ftp.freetype.org/pub/freetype/freetype-1.3.tar.gzdT1LibfVFlibistestedwithT1Lib5.1.I+\ftp://sunsite.unc.edu/pub/Linux/libs/graphics/I+\http://www.neuroinformatik.ruhr-uni-bochum.de/ini/PEOPLE/rmz/t1lib/t1lib.htmlI+\ftp://ftp.neuroinformatik.ruhr-uni-bochum.de/pub/software/t1lib/dkpathseafVFlibistestedwithkpathsea3.2inw!eb2c-7.2b.I+\ftp://ftp.ctan.org/tex-archive/system/web2c/1.dVFlibfistestedonthefollo!wingplatforms:+\FereeBSDf2.2.2and3.2onIBMPC-clones+\Solarisf2.5.1onSunSPeAR!CStationsdP!ortingztoUnix-likesystemiseasysincethesourcecoMdeisnotspeci csystemdependen!t. 33dP!ortingftonon-Unix-likesystemisnotdicult;pleasetrye.2.dGofin!tothedirectory`VFlib3-3.6.14'.3.dRunftheconfigurescript.2%./configure T[RET]dBydefault,bitmap;(gintP{Lraster;U};Utypedefstructvf_s_bitmap* TVF_BITMAP;bbx_widthandbbx_heightarethebitmapwidthandheigh!t.}Apairofoff_xandoff_y)forms߿av!ectortotheleft-uppMercornerofthebitmapfromthereferencepoin!t.A߰pairofmv_xandmv_yisav!ectortothenextreferencepMointfromthecurrentreferencepMoint.D(PositivevdDaluesfindicateamo!vefintotherightanduppMerdirectionrespectiv!elye.)The@Dunitofbbx_width,fbbx_height,off_x,off_y,mv_x,and@Dmv_yispixels.vbitmapisapMoin!terftothebitmapdata;onepixelcorrespondstoonebit.TheleftuppMercorneristhebeginningofthebitmapdata,$andarasterlineisde nedasahorizon!tal;linefromthelefttotherightcorneroftheglyphbitmap.Nbitmapisasequenceofraster)linesstartingfromthetoptothebMottom.%Thedistance(inb!ytes)oftwoconsecutiverasterrlinesinmemoryisgiv!enbyraster.̱Althoughtherasterlinelengthofabitmapis(bbx_width+7)/8,ity'isnotguaran!teedthatthisvdDalueisthesameasraster.V!ThetypMeofbitmapisapMoin!tertounsignedfchardataobject,pandeachunsignedfchardataobjectcontainseightpixels.LetP[0]bMethestartaddressofarasterline.Thex-thpixelcoun!tedfromtheleftmostpixelf(whic!hispixel0)is1ifandonlyifP[x/8]&(0x80>>(x%8))isnon-zero.Ifmobbx_widthisnotam!ultipleof8,xthereexistbitsthatdonotcorrespMondtoanypixelsbuttheirxvdDaluesarealw!aysxzero.Evenifbbx_widthand/orbbx_heightarezero,atleastonebyteisfalloMcatedforthebitmapdata.Th!us,bitmapisalwaysnon-NULL. pa5.1.2d(metric1Mtypie Afmetric1objectisastructureofthefollo!wing:Ustructvf_s_metric1{(gdoublebbx_width,bbx_height; T/*inpoints*/(gdoubleoff_x,off_y;?*VF_OUTLINE;AccordingftoCPUarc!hitecture,VF_OUTLINE_ELEMisde nedasintifsizeoflongis8.UtypedeflongP{LVF_OUTLINE_ELEM;Outlinedataisanarra!yofVF>xHtOUTLINE>xHELEMtypMe(longorinttypMe).yOutlinedataconsistsfromt!woparts:/headerandoutline.XTheheaderpartcon!tainsmetricdataandoutlinepartfcon!tainsoutlinerepresentationofacharacter.DoMcumen!tation:forthisfeatureisnot nished. Seethesourcecode(e.g.,VFlib-3_6.h,raster.c,fbm2ol,forexample)forfurtherinformation."͍X5.2Ffunctionsf@andvariables+W a5.2.1d(d߆T # cmtt12dVF_Init()ffUint TVF_Init(char*vflibcap,char*variable_listDs)Feunctionalit!y9InitializationfofVFlib. Chapterf5:ProgrammingwithVFlib ߚ193)^׍Argumen!ts 339v ibMcapis*a lenameofv ibcap(this leisafon!tdatabase).kxHtlist?isalistofparameterspassedtoVFlib.ThisisusedtospMecifyvalues9ofparameterizedv ibMcap les.(Seebasic.txtforparameterizedv ibcap le.)The9t!ypMesofthisargumentisastringanditssyntaxisasequenceofVeariable=Value,9separatedfb!yacomma,.Feorexample,DPI=400,LEVEL=1,FOO=bar.UUReturnfvdDalue9Ifinitializationsucceeds,Uanon-negativ!eintegerisreturned.ܖIfinitializationfails,Ua9negativ!efintegerisreturned.DDa5.2.2d(dvf_errorffUint Tvf_errorffFeunctionalit!y9ThisisaglobalvdDariable.BHoldingtheerrorcoMdeofVFlib.Ifnoerror,$itk!eeps0.If9anferroroMccurs,thecorrespondingerrorcodeisset.a5.2.3d(dVF_ClearError()ffUvoid TVF_ClearError(void)ffFeunctionalit!y9ClearftheerrorcoMdevdDariableofVFlib.a5.2.4d(dVF_OpenFont1()ffUint TVF_OpenFont1(char*font_name,bIdoubledpi_x,doubledpi_y,doublepoint_size,bIdoublemag_x,doublemag_yDs)ffFeunctionalit!y9OpMen!;afon!t.N[(IfthesamefontisopMenedmultipletimes,?VFlibkeepstrackofthe9n!umbMer֢ofopenedfon!tinstancesofthefont.)nSincethefontisopMenedwithdevice9resolution,pMoin!t!sizeandmagni cation,afon!topMenedbythisfunctionmaybMe9usefulfforhighresolutiondevicessuc!haslaserprinters.UUArgumen!ts9Thegargumen!tfont>xHtnameisanameofthefonttobMeopened.Thedeviceresolution9ofj^thetargetdeviceisspMeci edb!ydpi>xHtx+(horizontal)dpi>xHtyZv(vertical).ThesevdDaluesR20"2VFlibf3.6.143)^׍9areigiv!eninDPI](dotspMerinch).gTheargumentpMoint>xHtsizeqpspeci esithesizeofthe 339bitmap. Ifmthisargumen!tisnegativethebitmapsizewillbMetheinherentsizeofthe9fon!t.ܰ9Teoobtainamagni edbitmap,+giv!eamagni cationfactortotheargumentmag>xHtx9(horizon!tal)]andmag>xHtyu(vertical).RIftheargumentpMoint>xHtsizejdisnon-negative,font9size"willbMepoin!t>xHtsizetimesmag>xHx%(mag>xHy)largeforhorizon!tal(vertical)direction.-ReturnfVealue9A(non-negativ!e(>integerisreturnedonsuccess.ceThisvdDalueisafontidenti er(font9id);it&isusedtospMecifyafon!tforfurtherfontopMerations.IfVF_OpenFont1()fails,9afnegativ!eintegerisreturned.a5.2.5d(dVF_OpenFont2()ffUint TVF_OpenFont2(char*font_name,bIintpixel_size,doublemag_x,doublemag_yDs)/Feunctionalit!y9OpMen!;afon!t.N[(IfthesamefontisopMenedmultipletimes,?VFlibkeepstrackofthe9n!umbMerBofopenedfon!tinstancesofthefont.)&SincethefontisopMenedwithpixelsize9andmagni cation,xafon!topMenedbythisfunctionmaybMeusefulforlowresolution9devicesfsuc!hasCReTdisplaye.Argumen!ts9TheHargumen!tfontHisanameofthefonttobMeopened.tTheargumen!tpixel>xHtsize9spMeci esw2thesizeofthebitmap.!Ifthisargumen!tisnegativethebitmapsizewillbMe9theZinheren!tsizeofthefont.Teoobtainamagni edbitmap,giveamagni cation9factor#]totheargumen!tmag>xHtx(horizontal)andmag>xHtyu(vertical).TIftheargument9pMoin!t>xHtsize isknon-negative,efontsizewillbMepixel>xHtsize timesmag>xHx-^(mag>xHy)large9forfhorizon!tal(vertical)direction.ReturnfVealue9A(non-negativ!e(>integerisreturnedonsuccess.ceThisvdDalueisafontidenti er(font9id);it&isusedtospMecifyafon!tforfurtherfontopMerations.IfVF_OpenFont2()fails,9afnegativ!eintegerisreturned.a5.2.6d(dVF_CloseFont()ffUint TVF_CloseFont(intfont_idDs)/Feunctionalit!y9Closefafon!t.Argumen!ts9Thefargumen!tfont>xHtidisafontidtobMeclosed.ReturnfVealue9Anon-negativ!eintegerisreturnedonsuccess.dAnegativeintegerisreturnedon9failure.a5.2.7d(dVF_GetBitmap1()ffUVF_BITMAP TVF_GetBitmap1(intfont_id,longcode_point,doublemag_x,doublemag_yDs)ōChapterf5:ProgrammingwithVFlib ߚ213)^׍Feunctionalit!y 339ObtainKaglyphbitmapofgiv!enfontidandcoMdepoin!t.Thefontidfont>xHtidmustbMe9anBidb!yVF_OpenFont1().SizeofbitmaptobMeobtainedcanbespeci edb!ymag>xHtx9andfmag>xHty~argumen!ts.Argumen!ts9fon!t>xHtidE^spMeci es thefont;o^coMde>xHtpoint speci es thecoMdepoin!tofacharacter.oTeo9obtainzamagni edbitmap,giv!eamagni cationfactortotheargumentmag>xHtx9(horizon!tal)andmag>xHty(vertical).xIfafontisopMenedwithmagni cationfactor92andanbitmapisobtainedb!ythisfunctionwithmagni cationfactor2,#thenthe9sizefofyieldingbitmapwillbMe4timeslargerthantheoriginalsize.ReturnfVealue9ThereturnvdDalueisapMoin!tertoanewlyallocatedbitmapobject.Ifitfailstoobtain9abitmap,then!ullpMointerisreturned.pjIfthebitmapobjectisnolongerneeded,9it݀m!ustbMereleasedbythefunctionVF_FreeBitmap().*Thefontmaynothavethe9spMeci edsize;]insuc!hcase,VFlibinternallyenlargesorshrinkstheglyphtoobtain9afbitmapoftherequestedsize.͍a5.2.8d(dVF_GetBitmap2()ffUVF_BITMAP TVF_GetBitmap2(intfont_id,longcode_point,doublemag_x,doublemag_yDs) ̍Feunctionalit!y9Obtainaglyphbitmapofgiv!enfontidandcoMdepoin!t.Thefontid'font>xHtid'must9bMe:anidb!yVF_OpenFont2().ZSizeofbitmaptobeobtainedcanbespeci edb!y9pixel>xHtsize,fmag>xHxgandmag>xHy~argumen!ts.Argumen!ts9fon!t>xHtidE^spMeci es thefont;o^coMde>xHtpoint speci es thecoMdepoin!tofacharacter.oTeo9obtainzamagni edbitmap,giv!eamagni cationfactortotheargumentmag>xHtx9(horizon!tal)andmag>xHty(vertical).xIfafontisopMenedwithmagni cationfactor92andanbitmapisobtainedb!ythisfunctionwithmagni cationfactor2,#thenthe9sizefofyieldingbitmapwillbMe4timeslargerthantheoriginalsize.ReturnfVealue9ThereturnvdDalueisapMoin!tertoanewlyallocatedbitmapobject.Ifitfailstoobtain9abitmap,then!ullpMointerisreturned.pjIfthebitmapobjectisnolongerneeded,9it݀m!ustbMereleasedbythefunctionVF_FreeBitmap().*Thefontmaynothavethe9spMeci edsize;]insuc!hcase,VFlibinternallyenlargesorshrinkstheglyphtoobtain9afbitmapoftherequestedsize.͍a5.2.9d(dVF_GetMetric1()ffUVF_METRIC1 TVF_GetMetric1(intfont_id,longcode_point,_VF_METRIC1metric1,_doublemag_x,doublemag_yDs) ̍Feunctionalit!y9Obtainffon!tmetricsofagivenfontandcoMdepoin!t.Argumen!ts9Samefargumen!tsasofVF_GetBitmap1().`22"2VFlibf3.6.143)^׍ReturnfVealue 339ApMoin!tertoametric1objectisreturned.oIfanerroroccurs,)theNULLpoin!terisre-9turned.5Themobtainedmetricisametricforabitmapobtainedb!yVF_GetBitmap1()9withnthesameargumen!ts,buttheunitoftheobtainedmetricispMoint.Ifthemetric19objectfisnolongerneededitm!ustbMereleasedbythefunctionVF_FreeMetric1().ƨa5.2.10d(dVF_GetMetric2()ffUVF_METRIC2 TVF_GetMetric2(intfont_id,longcode_point,_VF_METRIC2metric2,_doublemag_x,doublemag_yDs)bMFeunctionalit!y9Obtainffon!tmetricsofagivenfontandcoMdepoin!t.Argumen!ts9Samefargumen!tsasofVF_GetBitmap2().ReturnfVealue9ApMoin!tertoametric2objectisreturned.oIfanerroroccurs,)theNULLpoin!terisre-9turned.5Themobtainedmetricisametricforabitmapobtainedb!yVF_GetBitmap2()9withthesameargumen!ts,buttheunitoftheobtainedmetricispixel.Ifthemetric29objectVisnolongerneeded,itm!ustbMereleasedbythefunctionVF_FreeMetric2().ƨa5.2.11d(dVF_GetOutline()ffUVF_OUTLINE TVF_GetOutline(intfont_id,longcode_point,_doublemag_x,doublemag_yDs)Feunctionalit!y9Obtainfoutlinedatafromagiv!enfontandcoMdepoin!t.Argumen!ts9SamefasVF_GetBitmap1().ReturnfVealue9Return vdDalueisapMoin!tertoanewlyallocatedoutlinedataobject.oIfitfailsto9obtainaoutlinedata,theNULLrpMoin!terisreturned.7Eveniftheoriginalfontisa9bitmap,*VFlibin!ternallycreatesoutlinedatafromthebitmap.DIfthesourcefontis9aV*v!ectorfont,f6VFlibinternallyconvertsthedataformattoVFliboutlinedatastyle.9AMbitmapMofan!yspMeci edsizecanbeobtainedfromoutlinedatab!ythefunction9VF_Outline2Bitmap().nj(DefaultcrpMoin!tsizeanddeviceresolutionisalsokeptinthe9outlinefdata.)ƨa5.2.12d(dVF_OutlineToBitmap()ffUVF_OUTLINE TVF_OutlineToBitmap(VF_OUTLINEoutline,doubledpi_x,doubledpi_y,doublepoint_size,doublemag_x,doublemag_yDs)Feunctionalit!y9Obtainfabitmapfromoutlinedata.Argumen!ts9Theyargumen!toutlinevisapMointertoanoutlineobjecttobMerasterised.wTheargu-9men!tsdpi>xHtx,[dpi>xHy,pMoin!t>xHsize,mag>xHx7andmag>xHyarethesameasthecorrespMonding,Chapterf5:ProgrammingwithVFlib ߚ233)^׍9argumen!ts>ofVF_GetBitmap1().Theoutlinedatacontainsinformationondevice 339resolutionFandpMoin!tsizespeci edb!yVF_GetOutline().(Ifnotspeci ed,ndefault9vdDalues"areused.Th!us,bitmapswithadefaultsizecanbMeobtainedbygiving-1for9thefargumen!ts).ReturnfVealue9AipMoin!teri'toabitmapobjectisreturned.sTheNULLpMoin!terisreturnedonfailure.9If{thebitmapobjectisnolongerneededitm!ustbMereleasedbythefunctionVF_9FreeBitmap().s3a5.2.13d(dVF_GetFontBoundingBox1()ffUint TVF_GetFontBoundingBox1(intfont_id,doublemag_x,doublemag_y,double*w,double*h,double*xoff,double*yoffDs)Feunctionalit!y9Obtainffon!tbMoundingbo!xinformationofagivenfont.Argumen!ts9Theargumen!tfont>xHtidTlspMecifyafontininterest.ThefunctionwritesthebMounding9bMo!xUinformationtothelocationspoin!tedbyw,h,xo ,andUyo .wmandhpMointto9data objectsforwidthandheigh!tofbMoundingbo!x,!Orespectivelye.ixo and yo pMoint9todataobjectsforlargesthorizon!talandverticaldisplacementoflowerleftcorner9ofbMoundingbo!xfromreferencepoin!ts.NotethatthesevdDaluesdoesnotguaran!tee9the *minimalit!y;] theyonlyguaranteethatallcharacterscanbMecontainedinabMox9descriv!edbythem.IfsomevdDaluesofw,(h,xo ,ory!o -(arenotininterest,(NULL9pMoin!terfcanbegiv!en.Y9Theargumen!tmag>xHtxGandmag>xHyaremagini cationfactortobMescaledforagiv!en9fon!tffont>xHtid.ReturnfVealue9IfKfon!tbMoundinginformationissuccessfullyobtained,3anon-negativeintegerisre-9turned;fotherwize,negativ!eintegerisreturned.Y9UnitsfofbMoundingbo!xinformationisinpoin!t.s3a5.2.14d(dVF_GetFontBoundingBox2()ffUint TVF_GetFontBoundingBox2(intfont_id,doublemag_x,doublemag_y,int*w,int*h,int*xoff,int*yoffDs)SameasVF_GetFontBoundingBox1()exceptunitsoffon!tbMoundingbo!xparametersarepixel.s3a5.2.15d(dVF_GetProp()ffUchar* TVF_GetProp(intfont_id,char*prop_nameDs)Feunctionalit!y9ObtainapropMert!yofgivenfont.&(ThisfunctionisfontclassdepMendent.&Yeoumust9bMefv!erycarefultouseit!)Argumen!ts9Theargumen!tfont>xHtid spMeci esafontfromwhichtoobtainapropMertye. 'prop-9ert!y>xHtnameCmspMeci esfthepropert!yname.̍24"2VFlibf3.6.143)^׍ReturnfVealue 339Ifthegiv!enpropMertyexists,itsvdDalueisreturnedasastring.NThestringforthe9propMert!yFWvdDalueisnewlyallocatedandm!ustbereleasedb!yfree()mFifitisnolonger9needed.Iffthegiv!enpropMertyisunde ned,theNULLpMointerisreturned.a5.2.16d(dVF_CopyBitmap()ffUVF_BITMAP TVF_CopyBitmap(VF_BITMAPbmDs)ċFeunctionalit!y9Mak!efacopyofabitmapobject.>ÍArgumen!ts9Thefargumen!tbmisapMointertoabitmapobjecttobMecopied.ReturnfVealue9AnewbitmapobjectisalloMcated;QallvdDaluesarecopied.4ReturnvalueisapMoin!ter9tovfanewbitmap.MThesourcebitmapbmremainsuna ected.IfanerroroMccurs,9theNULLpMoin!terisreturned.TheobtainedbitmapobjectmustbMereleasedby9VF_FreeBitmap()fifitisnolongerneeded.a5.2.17d(dVF_MakeScaledBitmap()ffUVF_BITMAP TVF_MakeScaledBitmap(VF_BITMAPbm,doublemag_x,doublemag_yDs)ċFeunctionalit!y9Mak!efanenlargedorshrinkedbitmap.Argumen!ts9ThebQargumen!tbmspMeci esthesourcebitmapobject,Kmag>xHtx#andmag>xHyRigiv!ethe9magni cationKfactorinthehorizon!talandverticaldirectionrespMectivelye. vIfthe9magni cationNIfactorislessthan1,_ashrink!edbitmapisobtained.~Vealuesformag>xHtx9and,mag>xHtyDcanbMearbitrarysuc!has(magVxHx$: b> 3 cmmi10>F1andmagVxHy(\<1)or(magVxHx$<19andfmagVxHy'=_> 1).ReturnfVealue9Abitmapobjectwhosebitmapisenlargedorshrink!ediscreatedandapMointerto9thenewbitmapisreturned.IfanerroroMccurs,theNULLpoin!terisreturned.The9sourcehbitmapbmremainsuna ected.UseVF_FreeBitmap()ifthereturnedbitmap9objectfisnolongernecessarye.a5.2.18d(dVF_ReflectedBitmap()ffUVF_BITMAP TVF_ReflectedBitmap(VF_BITMAPbm,^Aintrefl_x,doublerefl_yDs)ċFeunctionalit!y9Mak!efabitmapwithhorizontallyand/orverticallyre ectedimage.Argumen!ts9The #argumen!tbmspMeci esthesourcebitmapobject,&re >xHtx΂andre >xHy;spMecifythe9re ection,respMectiv!elye.MIfdre >xHtx%isnon-zero,theimageisholizon!tallyre ected;Þif9re >xHtyNis6non-zero,"@theimageisv!erticallyre ected.Incaserelf>xHx•andre >xHyNarebMoth9zero,fthee ectisthesameasVF_CopyBitmap().&nChapterf5:ProgrammingwithVFlib ߚ253)^׍ReturnfVealue 339AVnewbitmapobjectiscreatedandapMoin!tertothenewbitmapisreturned.^If9anerroroMccurs,theNULLpoin!terisreturned.~Metricsofcreatedbitmapisthe9sameasthatoftheoriginalbitmap.Thesourcebitmapbmremainsuna ected.9UsefVF_FreeBitmap()ifthereturnedbitmapobjectisnolongernecessarye.[ma5.2.19d(dVF_RotatedBitmap()ffUVF_BITMAP TVF_RotatedBitmap(VF_BITMAPbm,intangleDs){Feunctionalit!y9Mak!efabitmapimagewithrotatedimage.Argumen!ts9Thedargumen!tbmspMeci esthesourcebitmapobject,angleykgivesrotationanglein9degree.\DByЈthelimitationofimplemen!tation,rotatinanglemustbMemultipleof90.9ThefrotationangleangleCmm!ustbMeoneofthefollowing:9VF_BM_ROTATE_0sRotation~ angleiszero.{Th!us,Rthee ectisthesameasVF_CopyBitmap().9VF_BM_ROTATE_90sRotationfangleis90degree.9VF_BM_ROTATE_180sRotationfangleis180degree.9VF_BM_ROTATE_270sRotationfangleis270degree.ReturnfVealue9AbitmapobjectwhosebitmapisrotatediscreatedandapMoin!tertothenewbitmap9isgreturned.-IfanerroroMccurs,2gtheNULLJpoin!terisreturned.-Thesourcebitmap9bmremainsuna ected.B UseVF_FreeBitmap()ifthebitmapobjectisnolonger9necessarye.W9ThisFfunctionrotatesabitmapwiththereferencepMoin!tasorigin.Thevectortothe9nextH!referencepMoin!tisalsorotated.qTherefore,Zpositionofthereferencepoin!tanda9v!ectorBXtothenextreferencepMointofVF_RotatedBitmap(bm,fVF_BM_ROTATE_180)9andfthatofVF_ReflectedBitmap(bm,1,1)aredi eren!t.[ma5.2.20d(dVF_DumpBitmap()ffUvoid TVF_DumpBitmap(VF_BITMAPbmDs)Feunctionalit!y9Prin!tfabitmapinASCIMI-art-styletostdout.Argumen!ts9Thefargumen!tbmspMeci esabitmaptobedispla!yed.[ma5.2.21d(dVF_ImageOut_PBMAscii()ffUint TVF_ImageOut_PBMAscii(VF_BITMAPbm,FILE*fp,_intimage_width,intimage_height,_intposition_x,intposition_y,_intmargin_l,intmargin_r,_intmargin_t,intmargin_b,2Ѝ26"2VFlibf3.6.143)^׍_intreverse,intshrink, 33_char*prog,char*titleDs)(Feunctionalit!y9Prin!tfabitmapbminPBMASCIMIformattoa lestreamfp.Argumen!ts9bm̘isabitmaptobMewrittentoa lestreamfp.PtSizeofoutputimage(inpixel)is9spMeci edܩb!yimage>xHtwidthandimage>xHheigh!t.If-1isgivenforthesearguments,9the9imagefsizeshouldbMeminim!umtocontainthebitmapbm.9Argumen!tspMosition>xHtxsandposition>xHty,speci esthehorizon!talandverticalpMosition9of,asourcebitmapbminanoutputimage le,*respMectiv!elye. pTheseparameters9ha!vefe ectwhenimage>xHtwidthandimage>xHheigh!tarespMeci ed.PossiblevdDaluesfor9pMosition>xHtxgis9VF_IMAGEOUT_POSITION_NONEsSamefasVF_IMAGEOUT_POSITION_LEFT.9VF_IMAGEOUT_POSITION_CENTERsbmfiscen!teredinoutputimage.9VF_IMAGEOUT_POSITION_LEFTsbmfis ushedleftinoutputimage.9VF_IMAGEOUT_POSITION_RIGHTsbmfis ushedrigh!tedinoutputimage.9P!ossiblefvdDaluesforpMosition>xHty~is9VF_IMAGEOUT_POSITION_NONEsSamefasVF_IMAGEOUT_POSITION_TOP.9VF_IMAGEOUT_POSITION_CENTERsbmfiscen!teredinoutputimage.9VF_IMAGEOUT_POSITION_TOPsbmfisplacedatthetopinoutputimage.9VF_IMAGEOUT_POSITION_BOTTOMsbmfisplacedatthebMottominoutputimage.9Argumen!tstmargin>xHtl,vintmargin>xHtrsareusedtospMe cyleftandrightmargins,vre-9spMectiv!elye.Argumentsmargin>xHtt,zintmargin>xHtbAareusedtospMe cytopandbottom9margins,frespMectiv!elye.9IfUtheargumen!treverseisnot0,Hblackandwhiteinanoutputimageisreversed.9Argumen!t|shrinkspMecifysshrinkfactorofimagebm.(IfthisvdDalueis1,bmisnot9shrink!ed.Note:Y`Currentlye,ishrinkingjimageisnotsuppMortedinPBM'ASCIIformat.)9Argumen!tsgprogW&andtitleareusedtoemmbMedprogramnameandtitleinanimage9 le.pa5.2.22d(dVF_ImageOut_PGMAscii()ffUint TVF_ImageOut_PGMAscii(VF_BITMAPbm,FILE*fp,_intimage_width,intimage_height,_intposition_x,intposition_y,_intmargin_l,intmargin_r,_intmargin_t,intmargin_b,_intreverse,intshrink,_char*prog,char*titleDs)=!Chapterf5:ProgrammingwithVFlib ߚ273)^׍Feunctionalit!y 339Prin!tfabitmapbminPGMASCIMIformattoa lestreamfp.UUArgumen!ts9Argumen!tsarethesameasthatofVF_ImageOut_PGMAscii().Ifshrinkisgreater9thanf1,outputimageisan!ti-aliased(gray-scaled).DDa5.2.23d(dVF_ImageOut_PGMRaw()ffUint TVF_ImageOut_PGMRaw(VF_BITMAPbm,FILE*fp,Eintimage_width,intimage_height,Eintposition_x,intposition_y,Eintmargin_l,intmargin_r,Eintmargin_t,intmargin_b,Eintreverse,intshrink,Echar*prog,char*titleDs)ffFeunctionalit!y9Prin!tfabitmapbminPGMRawformattoa lestreamfp.Argumen!ts9Argumen!tsarethesameasthatofVF_ImageOut_PGMAscii().Ifshrinkisgreater9thanf1,outputimageisan!ti-aliased(gray-scaled).DDa5.2.24d(dVF_ImageOut_EPS()ffUint TVF_ImageOut_EPS(VF_BITMAPbm,FILE*fp,Gintimage_width,intimage_height,Gintposition_x,intposition_y,Gintmargin_l,intmargin_r,Gintmargin_t,intmargin_b,Gintreverse,intshrink,Gchar*prog,char*title,Gdoubleptsize,intpixsizeDs)ffFeunctionalit!y9Prin!tfabitmapbminEPS(EncapsulatedPostScript)formattoa lestreamfp.Argumen!ts9Argumen!tsarethesameasthatofVF_ImageOut_PGMAscii().Ifshrinkisgreater9than@1,outputimageisan!ti-aliased(gray-scaled).jArgumentsptsizeIGandpixsize9spMecifysizeofEPSboundingbo!x;pixsize+ pixelsoccup!yptsize+ poin!tsinphysical9papMer.DDa5.2.25d(dVF_ImageOut_ASCIIArt()ffUint TVF_ImageOut_ASCIIArt(VF_BITMAPbm,FILE*fp,_intimage_width,intimage_height,_intposition_x,intposition_y,_intmargin_l,intmargin_r,_intmargin_t,intmargin_b,_intreverse,intshrinkDs)ffFeunctionalit!y9Prin!tfabitmapbminASCIMIartformattoa lestreamfp.H28"2VFlibf3.6.143)^׍Argumen!ts 339Argumen!tsfarethesameasthatofVF_ImageOut_PGMAscii()..a5.2.26d(dVF_ImageOut_ASCIIArtV()ffUint TVF_ImageOut_ASCIIArtV(VF_BITMAPbm,FILE*fp,Cintimage_width,intimage_height,Cintposition_x,intposition_y,Cintmargin_l,intmargin_r,Cintmargin_t,intmargin_b,Cintreverse,intshrinkDs)UFeunctionalit!y9Prin!t5abitmapbminASCIMIartformattoa lestreamfp.KImageisrotatedin9cloMc!kwise,f90degree.J=Argumen!ts9Argumen!tsfarethesameasthatofVF_ImageOut_PGMAscii().a5.2.27d(dVF_FreeBitmap()ffUvoid TVF_FreeBitmap(VF_BITMAPbmDs)UFeunctionalit!y9Releasefabitmapobject.J=Argumen!ts9Thefargumen!tbmisapMointertoabitmapobjecttobMereleased.a5.2.28d(dVF_FreeMetric1()ffUvoid TVF_FreeMetric1(VF_METRIC1metricDs)UFeunctionalit!y9Releasefametric1object.J=Argumen!ts9Thefargumen!tmetricPjisapMointertoametric1object.a5.2.29d(dVF_FreeMetric2()ffUvoid TVF_FreeMetric2(VF_METRIC2metricDs)UFeunctionalit!y9Releasefametric2object.J=Argumen!ts9Thefargumen!tmetricPjisapMointertoametric2object.a5.2.30d(dVF_InstallFontDriver()ffUint TVF_InstallFontDriver(char*class_name,_int(*driver)(VF_FONTfont,;char*class_name,;char*font_name,;intimplicit_flagDs));RChapterf5:ProgrammingwithVFlib ߚ293)^׍Feunctionalit!y 339Installfafon!tdriver.-Argumen!ts9class>xHtname@isafon!tclassname,odrivermisapMointertoafunctionofafontdriverof9thefon!tclass.Thefunctiongivenbydriver0iscalledwhenafontofthisfontclass9isopMenedb!yVF_OpenFont1()andVF_OpenFont2().Thefunctiondriveriscalled9with Zparametersofthefon!ttobMeopened:Wfon!tHZisadataobjectforfontmanagement9de nedsEb!yVFlibinternallye.Dzclass>xHtnameListhefontclassname.Dzfont>xHtnameListhe9nameofthefon!ttobMeopened.Thisargumen!tisthesameastheargumentof9VF_OpenFont1()andVF_OpenFont2().fimplicit>xHtfon!tisa agwhosevdDalueis1ifa9fon!tistobMeopenedasanimplicitfon!t(afontwhichdoMesnotexplicitlyappearin9v ibMcap)and0ifitistobeopenedasanexplicitfon!t(afontthatdoMesappearin9v ibMcap).ReturnfVealue9Ifk0successful,canon-negativ!eintegerisreturned.,Typicallye,thisf leisinstalled`/usr/local/include/'directorye.-Nev!erforget,thatapplicationsoftwarethatusesVFlibmustbMelinkedagainstFereeTypMe1.2or)later(`libttf.a'or`libttf.so'),5T1Lib5.1orlater(`libt1.a'or`libt1.so'),andkpathsea3.2].(`libkpathsea.a'or`libkpathsea.so'),ify!oucon gureVFlibtousethem.6(IfVFlibiscon guredfnottousethem,theyarenotnecessarye.)Irecommendsharedlibraryv!ersionsfortheseoptionallibrariesifyoubuiltasharedlibraryv!ersionfofVFlib.U#includeVFlibfm!ustbMeinitializedbeforeitisused.Uchar*vflibcap="vflibcap";Uchar*params= T"TeX_DPI=300,KPATHSEA_MODE=cx";ffUif(VF_Init(vflibcap,params)<0){(gfprintf(stderr,"InitializingVFlib:failed\n");(gexit(1);U}Feollo!wingfprogramfragmentopMensafont,obtainsabitmap,andprintobtainedbitmap.Uint3fid;UVF_BITMAP>bm;ffUif((fid=VF_OpenFont2("timR24.pcf",-1,1.0,1.0))<0){(gfprintf(stderr,"Openingfont:failed\n");(gexit(1);U}Ubm=VF_GetBitmap2(fid,0x67,1.0,1.0);UVF_DumpBitmap(bm);Y30"2VFlibf3.6.143)^׍X5.4Af@simpleexample!The"follo!wingprogramcoMdeisa"banner"likeusingVFlib.+Feorsimplicitye,thisprogram 33accepts`only1-b!yteencoMdedcharacters. Itreadsaninputfromstandardinputandprintsc!haractersfinascii-artformtostandardoutput.͍U/*"*vflbanner.c-abannerbyVFlib"*byHirotsuguKakugawa"*"*"*/U/*"*Copyright(C)1998HirotsuguKakugawa."*Allrightsreserved."*"*Thisprogramisfreesoftware;youcanredistributeitand/ormodify"*itunderthetermsoftheGNUGeneralPublicLicenseaspublishedby"*theFreeSoftwareFoundation;eitherversion2,or(atyouroption)"*anylaterversion."*"*Thisprogramisdistributedinthehopethatitwillbeuseful,"*butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof"*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeethe"*GNUGeneralPublicLicenseformoredetails."*"*YoushouldhavereceivedacopyoftheGNUGeneralPublicLicense"*alongwiththisprogram;ifnot,writetotheFreeSoftware"*Foundation,Inc.,675MassAve,Cambridge,MA02139,USA."*/ffU#include"config.h"U#includeU#includeU#includeU#include"VFlib-3_6.h"U#define TDEFAULT_FONT"timR18.pcf"'Uchar*vflibcap;Uchar*fontname;Uvoid Tusage(void);Uvoid Tvflbanner(FILE*fp);'UintUmain(intargc,char**argv)U{(gvflibcap=NULL;(gfontname=DEFAULT_FONT;dChapterf5:ProgrammingwithVFlib ߚ313)l (g--argc;argv++; 33(gwhile(argc>0){3if((argc>=1)J&&((strcmp(argv[0],"-h")==0)||(strcmp(argv[0],"--help")==0))){?fQusage();?fQexit(0);3}elseif((argc>=2)&&(strcmp(argv[0],"-v")==0)){?fQ--argc;argv++;?fQvflibcap=argv[0];?fQ--argc;argv++;3}elseif((argc>=2)&&(strcmp(argv[0],"-f")==0)){?fQ--argc;argv++;?fQfontname=argv[0];?fQ--argc;argv++;3}else{?fQbreak;3}(g}ff(gvflbanner(stdin);(greturn0; 33U}Uvoidusage(void)U{(gprintf("vflbanner-abannerprogramusingVFlib\n");(gprintf("Usage:vflbanner[-vvflibcap][-ffontname]\n");(gprintf("Thisprogramreadsatextfromstandardinput. TItsupports\n");(gprintf("1-bitencodedfontonly.Thus,`ctextpgm'isbetterthanthis.\n");U}'UvoidUvflbanner(FILE T*fp)U{(gint Tfid;(gint Tch;(gint Tpos_x,pos_y;(gVF_BITMAP Tbm,page_bm;(gstructvf_s_bitmaplist TPageBuff;(gif(VF_Init(vflibcap,NULL)<0){3printf("VFlibinitializationerror");3switch(vf_error){3caseVF_ERR_INTERNAL:?fQprintf("-Internalerror.\n");break;3caseVF_ERR_NO_MEMORY:?fQprintf("-Serverrunsoutofmemory.\n");break;3caseVF_ERR_NO_VFLIBCAP:?fQprintf("- TNovflibcap.\n");break; kڍ32"2VFlibf3.6.143)^׍3default: 33?fQprintf("- TErrorcode%d\n",vf_error);break;3}3fflush(stdout);3exit(1);(g}ff(gif((fid=VF_OpenFont1(fontname,-1,-1,-1,1,1))<0)3return;(gVF_BitmapListInit(&PageBuff);(gpos_x=pos_y=0;(gwhile((ch=getc(fp))!=EOF){3if(!isprint(ch))?fQch='';3if((bm=VF_GetBitmap1(fid,(long)ch,1,1))==NULL)?fQcontinue;3VF_BitmapListPut(&PageBuff,bm,pos_x,pos_y);3pos_x=pos_x+bm->mv_x;(g}(gpage_bm=VF_BitmapListCompose(&PageBuff);(gVF_DumpBitmap(page_bm);(gVF_BitmapListFinish(&PageBuff);(gVF_FreeBitmap(page_bm);(gVF_CloseFont(fid);U}U/*EOF*/33Byfthefollo!wingcommandsisusedtocompletheprogram.U%gcc-c`VFlib3-config--cflags`vflbanner.c 33U%gcc-ovflbannervflbanner.o`VFlib3-config--libs`VFlib3-configisaprogramtoprin!tmiscinformationoncon gurationofVFlib.ItprintsC compileroptiontospMecifyincludedirectory(`--cflags'),2dependen!tlibraries(`--libs'),2forexample.RunfVFlib3-configwith`--help'optionfordetail.!r!Chapterf6:Weritingav ibMcap-FV333)^׍O6 QWaGritingzav ib=cap-XX6.1Intros3ductionf@tov ibcapAMv ibMcap| leisadatabaseoffon!tde nitionsfortheVFliblibrarye.Av ibMcapfon!tde nition 33is>describMedinaformatsimilartotermcapandprin!tcap.fV ibcappro!videslogicalfontnamesandlogicalfon!tnamesmaynotcorrespMondstofont lestobMeaccessed.=Inthisdocumen!t, 8wesimplyfsa!y"font"todenotelogicalfonts.Eac!hfVFlibfontshaveitsownparameterslistedbMelow:dPixelfsize,uፍdP!ointfsize,anddResolutionfoftargetdevice.=Thesetparametersma!ynotbMeavdDailableinfont le.7Feorinstance,qtheseparametersarelacking 33inTerueT!ypMefonts.7Lackinginformationisgiveninv ibMcap le, 6oritisgivenbyafontdriverasfdefaultvdDalues.Note:Ify!ouwanttouseVFlibforT,[wEB XDVIdrivers,usuchaspreviewersandpronterdriver,usefvflmkcaptexprogramtogeneratev ibMcap leautomaticallye. MeX6.2Syntaxf@ofv ibs3capThesyn!taxofv ibMcap leislisp-likeform.D6Asemicolon;startsacommentandfollowingtext$isignoredun!tiltheendofline.EAcoloninastringwhichisenclosedbydoublecolonsisnotKconsideredasacommen!tcharacterandformsapartofstring.Inthefollowingexplanation,w!efignorecomments.Av ibMcap leisasequenceofexpressionscalleds-expressions.cBasicdataitemofs-expressionisKstring.Unlik!elisp,thereisno"numbMer"typMe.AHsequenceofdigitsisparsedasastring.TeoincludeNaspMecialc!haractersinastringsuchasdoublequotation,controlcoMde,andparenthesis,escapMefsequencecanbeused.Stringisasequenceofc!haractersofthefollowingform:=StringfFeorm1:9Sequencefofc!haractersenclosedbydoublequotations.uፑ9Examples:gF"helloworld" 33gF"a,b,c,d"gF"Hesaid\"Thanks!\"."gF"a*(b+c)"StringfFeorm2:9Sequencetofc!haractersexceptspace,tab,newline,andtclosingparenthesis.Aostart9c!haracterfmustnotbMeadoublequotation.uፑ9Examples:gFfont-file 33gFhello\worldgFHe\said\\"Thanks!\".gFa*\(b+c\)Unlinklisp,thereisnodistinctionbMet!weenstringandsym!bolinv ibcap;theyarethesamedataft!ypMe.Thatis,HELLOand"HELLO"arethesame."wM34"2VFlibf3.6.143)^׍P!arenthesesisusedtoforma"list"lik!einlisp.bdfpcfhbfascii-jtex-kanji)(g(variable-valuesR("TeX_DPI""300"))ffU(define-defaultbdf(g(filename-extensions".bdf")(g(font-directories9"/usr/X11R6/lib/X11/fonts//""/usr/local/share/fonts/X11//")(g(compression-extensions".gz"".Z"))U(define-fonttimR24 T;timesroman24(g(font-classbdf)(g(font-file"timR24.bdf"))U(define-fonttimR18 T;timesroman18(g(font-classbdf)(g(font-file"timR18.bdf"))򇍍X6.3Macrosf@inv ibs3cap>Teona!voidwritingthesamecapabilities,.macrofeatureisprovidedinv ib. IncaseofCAPeABILITY-DEF,isastring,*itistreatedasamacroandamacrode nitionforitisex-panded.Feorfinstance, U(define-fonttimR18(gMACRO-NAME(g(font-file"timR18.bdf"))is*afon!tde nitionusingamacroMACRO-NAME.jSuppMoseamacroMACRO-NAMEisde nedasfollo!ws.U(define-macroMACRO-NAME(g(font-classbdf)(g(dpi300))Then,fthefon!tde nitionfortimR24isthesameasfollow.#Chapterf6:Weritingav ibMcap-FV353)^׍U(define-fonttimR18 33(g(font-classbdf)(g(dpi300))(g(font-file"timR18.bdf"))v~Thefruleofmacrexpandisasfollo!wingproMcedure.1.dLoMoksnforuseofmacros.\Feromthe rstCAPABILITY-DEF9Ktothelastone,yitisc!heckednif 33dit.isastring(th!usamacro)ornotinorder.Ifitisamacro,FcorrespMondingmacrode nitiondisfsubstituted.Then,nextCAPeABILITY-DEFpisc!hecked.T؍2.dMacrofexpandisdonerecursiv!elye.Thus,famacrocanbMeusedinanothermacro.:X6.4Searchingf@font lesSomefon!tclasses(e.g.,WBDF,PCF)fde nesafont-directoriescapabilityinv ibMcap le. This_capabilit!yspMeci esalistoffontdirectories, forinstance,(font-directories"/usr/local/fonts/"f"/opt/fonts""/usr/local/share/fonts//").LAfon!t lecanbMesearc!hedfrecursivelyinadirectorytreeifafontdirectorynameendsbydoubleslashes//.v~Somefon!tdriverssuppMort lesearchbykpathsea. {Typicallye,font lesareloMcatedun-der3`/usr/local/share/texmf'. ThisdirectoryisusedtoholdT,[wEB X-related les.Ifafon!tdriv!erpsuppMortssearchingbykpathsea,raspMecialnameTEXMFcanbegiv!eninalistoffont-directoriescapabilit!ye. Forinstance,,suppMosethat(font-directoriesf"/opt1/fonts//""TEXMF"f"/opt2/fonts//")/ isspMeci ed.Then lesaresearc!hedunder/opt1/fonts,Fbykpath-sea,fandthen/opt2/fonts,inthisorder.Curren!tlye,pk,gf,tfm,vf,truetypMe,and6typMe1fontclassessupMortsearcing lesbykpathsea.:X6.5Ffastf@font lesearchIn1casethereareman!yfontdirectoriesandsub-directorywhichcontainsmanyfont le,searc!hing̱afont letakelongtime,Dsincefontdirectoriesaretraversedto ndarequestedfont le.$Feorz;fastfon!t lesearch,font lehintdatabase(FDBz0forshort)canbMeused.$ItisplacedinaroMotofafon!tdirectorye,anditcontainspairsoffont lenameandrelativepathnameofthefon!tf lefromthefontdirectorye.The lenameofFDBisVFlib.fdb.Theffollo!wingisanexampleofFDB le.Utimes__m.pfbtype1/t/times__m.pfbUtimes__m.afmtype1/t/times__m.afmUzac_____.ttfttf/z/zac_____.ttfUzalescap.ttfttf/z/zalescap.ttfSuppMose| thatthisFDB{ leislocatedin`/foo/bar/',forinstance.ziThe letellsusthatthereisa) le`times__m.pfb'andabsolutepathnameofthe leis`/foo/bar/type1/t/times__m.pfb'.IfjFDBjO leisfoundinaroMotdirectoryoffon!tdirectorye,theFDB leisopMenedto ndarequestedkvfon!t le.8Ifarequestedfont leisnotfound,w@otherfontdirectoryissearched,w@i.e.,thedirectory isnottra!versed atall.IncaseFDB leisnotfound,tafon!tdirectoryistraversedto ndfarequestedfon!t le.It3misimpMortan!ttoremembMerthatyoumustnotforgettoupMdateFDB3I leafteryouaddednewfon!t lesinafontdirectorye.9Ifyouforget, installedfont lesarenotfoundeveniftheyarein#Zafon!tdirectorye.TTo#ZupMdateaFDB#: le,Bruntheutilityprogramvflmkfdb.TSeeSection9.3[v mkfdb],fpage81,fordetailsoftheprogram.AFDB lem!ustbMelocatedinarootofafon!tdirectoryanditsnamemustbMe`VFlib.fdb'.Ev!enfifthereisaFDB leinasub-directoryofafontdirectorye,VFlibdoMesnotlookforit.$m36"2VFlibf3.6.143)^׍X6.6Compressedf@font lesUUTeoreducediskstorage, `compressedfon!t lesanduncompressiononthe yissuppMortedby 33somek1fon!tclass.,>NotethatthisfeatureisfontclassdepMendentandnotallfontclasssuppMortthis.""In)av ibMcap le,afon!t lenameneednothaveacompressedtypMeextension,suchas.gz.WhenfVFlibsearc!hesafont le,itinternallyaddscompressedtypMeextensionand ndsa le.͍X6.7Explicitf@andimplicitfontsFeon!tsexplicitlyde nedinav ibMcap learecalledexplicitfonts.Fon!tsdoMesnotappearv ibMcapf leandsearc!hedbyfontdriversondemandarecalledimplicitfonts.͍X6.8Vfariablesf@inv ibs3capInav ibMcap le,$vdDariablescanbeusedascapabilit!yvdDalues.AscapabilityvdDaluecanbMeavalueoffavdDariableifadollarsign($)follo!wedfbyavdDariablenameisgiven.""Feor^instance,(dpif$TeX_DPI)canbMeusedinsteadof(dpi300).ThevdDalueforavariablem!ust bMede nedsomewhere.DefaultvdDaluecanbegiv!enin(define-defaultfVFlib...), OwhichwillfbMeexplainedlater.DefaultvdDaluescanbMeo!verriddenoninitializationfunctionofVFlibVF_Init(),orUnixen-vironmen!tvvdDariablesVFLIBCAP_PARAM_varDs.2 Feorexample,zVFLIBCAP_PARAM_TeX_DPIisde ned,itsfvdDaluebMecomesthevalueofthev ibMcapvariableTeX_DPI.TheFvdDalueofanen!vironmentFvariableVFLIBCAP_PARAM_var]isparsedasanS-expression,5notasӼanstring.Th!us,ifyouwanttospMecifyastringABCf123,thevdDalueofanenvironmentvdDariabluem!ust:bMe\"abcf123\".9(Withoutdoublequotation,_itwillbeasequenceoft!wo:strings.9Onlythef rstoneise ectiv!eandthesecondoneisignored.)͍X6.9VFlibf@defaultsUUTeofspMecifyglobalbeha!viorofVFlib,(virtual)fontclassVFlibisde ned.Theffollo!wingcapabilityarede ned.implicit-font-classesf(optional)9|Alistofimplicitfon!tclasses.*Feontclasseslistedbythiscapabilityiscandidates9forfimplicitfon!tsearching.9example:(implicit-font-classesf"bdf""pcf""gf")extension-hintsf(optional)9| Alistofparisoffon!tnamepMost xandcorrespondingfon!tclassname.Thisishint9informationFlto ndfon!tclassfromafontnameincaseofsearchinganimplicitfont.9IfOanimplicitfon!tnamematcheswithapMost xgivenbythiscapabilitye,z spMeci ed9fon!t'classisinvokedtosearchanimplicitfont.aThisise ectivetoreducetimeto9searc!hfanimplicitfont.9example:(extension-hintsf(".pcf"pcf)(".bdf"bdf)("gf"gf))variable-valuesf(optional)9|fAlistofpairsofanameofv ibMcapvdDariableanditsdefaultvalue.9example: ߛ(variable-valuesf("TeX_DPI""300")("TeX_KPATHSEA_MODE""cx")9(vf("p1""v1")%QChapterf6:Weritingav ibMcap-FV373)^׍uncompression-programsf(optional) 339|dIAd9listofpairsof lenameextensionandcorrespMondinguncompressionprogram.9This)isusedforreadingcompressedfon!t les.R&Anuncompressionprogrammust9outputfuncompresseddatatostandardoutput./9Thisicapabilit!yisjustde nesrelationsofanextensionandanuncompressionpro-9gram.@RAolistofsuppMortedcompressedt!ypesofafon!tclassisgiveninafontclass9defaultfdescriptionofeac!hfontclass.9example:(uncompression-programsf(".Z""zcat")(".gz""gzip-cd")+code-conversion-filesf(optional)9|vAmlistof lenamesforencoMdingcon!version.ҍCurrentlye,?TrueT!ypevfontclassuses9this.SeefChapter8[CoMdecon!versionfsystem],page73.9example:(code-conversion-filesf"iso8859-1_unicode.ccv".ccv")+use-kpathseaf(optional)9|e?Ae agwhetherkpathseaisusedornottosearc!hT,[wEB Xfon!t les.iVealueofthis9capabilit!yfmustbMeoneof"Yes"or"No".9example:(use-kpathseaf"Yes")+kpathsea-modef(optional)9|fAdevicemoMdenameforkpathsealibrarye.9example:(kpathsea-modef"cx")+kpathsea-dpif(optional)9|fDeviceresolution(indpi)ofadevicemoMdeforkpathsealibrarye.9example:(kpathsea-modef300)+kpathsea-program-namef(optional)9|fAnapplicationprogramnameforkpathsealibrarye.9example:(kpathsea-modef"xgdvi")X6.10BDFf@fontclassHbThezBDFyformatisabitmapfon!tformatencoMdedinhuman-readable,platformindepMendentformatffordistributingXWindo!wfonts.Thisffon!tclasssuppMortscompressedfont lesandimplicitfonts.Feon!tfclassname:bdfCapabilitiesfforfon!tclassdefault:+font-directoriesf(optional)9|Alistoffon!tdirectoriesforsearchingfont les.Recursivesearchingoffont les9isfsuppMort.compression-extensionsf(optional)9|vAvlistofsuppMortedcompressiont!ypeforthisfon!tclass.ThisfontclasssuppMorts9only,compressiont!ypMegivenbythiscapabilitye. pUWhenafontissearched,a le9follo!wed8byacompressionextensionissearchedifgivenfont leisnotfound.J(Note9that~uncompression-programscapabilit!yofVFlibclassdefaultdescriptiongivesa9uncompressionfprograms.)/9example:(compression-extensionsf".gz"".Z")&Ս38"2VFlibf3.6.143)^׍dpif(optional) 339|eDefualtdeviceresolution.Defaulthorizon!talandverticalresolutionswillbMethe9samefvdDalue. 9example:(dpif300)zdpi-xf(optional)9|fDefaulthorizon!taldeviceresolution.9example:(dpi-xf300)zdpi-yf(optional)9|fDefaultv!erticaldeviceresolution.9example:(dpi-yf300)zaspect-ratiof(optional)9|AspMectratioofc!haracters.5kIfthisvdDalueis0.5thenwidthishalf,5andif2then9widthfisdoubled.9example:(aspect-ratiof0.8)zpropertiesf(optional)9|AlistofpairsofapropMert!ynameanditsvdDalue.D6Propert!yvdDaluesgivenbythis9parameterfisusedb!yVF_GetProp()9example:(propertiesf("PROP-1""value-1")("PROP-2""value-2"))zvariable-valuesf(optional)9|fAlistofpairsofav ibMcapvdDariablenameanditsdefaultvalue.9example: ߛ(variable-valuesf("TeX_DPI""300")("TeX_KPATHSEA_MODE""cx")9("TeX_KPATHSEA_PROGRAM"f"/usr/X11R6/xldvi"))zᡦCapabilitiesfforfon!tde nition:zfont-classf(essen!tial)9|fAfon!tclassname.ThisvdDaluemustbMebdf.font-directoriesf(optional)9|Alistoffon!tdirectoriesforsearchingfont les.Recursivesearchingoffont les9isfsuppMort.Afon!t leissearchedinthedirectoriesgivenbythiscapabilitye. 9If$thiscapabilit!yisnotgiven,0thefontdirectoryspMeci edbytheclassdefaultisused9tosearc!hfonts.Ifthiscapabilityisgiven,thefontdirectoryspMeci edbytheclass9defaultfisnotusedtosearc!hfonts.font-filef(optional)9|!Afon!t lenamestring.U IfthiscapabilityisnotspMeci ed,thefontnameisused9asʂthefon!t lename.J1Multiplefont lenamescanbMelistedinthiscapabilitye.J1The9driv!ergdtriestoopMenafontlisted rst. IfitisimpMossibletoopen,thenittriesto9opMenthesecondfon!t.Thisisrepeatedun!tilafontissuccessfullyopMened.Ifallfonts9arefimpMossibletoopen,fon!topenfails. 9example:(font-filef"timI24.bdf""timR24.bdf")point-sizef(optional)9|jfon!tsizeinpMoints.Ifthesizeisdi erentfromthesizede nedintheBDF[font9 le,Tthe1bitmapisenlargedorshrink!edtoyieldthespMeci edsize.6Thiscapability9hasfe ectfortheVFlibfunctionsVF_GetBitmap1()andVF_GetMetric1(). 9example:(point-sizef24.0)' Chapterf6:Weritingav ibMcap-FV393)^׍pixel-sizef(optional) 339|fon!tsizeinpixels.Ifthesizeisdi erentfromthesizede nedintheBDFfont9 le,Tthe1bitmapisenlargedorshrink!edtoyieldthespMeci edsize.6Thiscapability9hasfe ectfortheVFlibfunctionsVF_GetBitmap2()andVF_GetMetric2().dٍ9example:(pixel-sizef24)magnificationf(optional)9|fmagni cationfactor.Thefon!tismagni edbythisfactor.9example:(magnificationf1.20)character-setf(optional)9|ThisisusedforcoMdepoin!tconversion.fVealueofthiscapabilitygivesanexternal9viewxofac!haractersetofafont.ՎCoMdeconversion(ccv)isdeterminedbythisvdDalue9andfthefollo!wingthreecapabilities.encodingf(optional)9|ThisisusedforcoMdepoin!tconversion.fVealueofthiscapabilitygivesanexternal9viewfofanencoMdingofafon!t.font-character-setf(optional)9|ThisisusedforcoMdepoin!tconversion.}Vealueofthiscapabilitygivesaninternal9viewDdofac!haractersetofafont.2Therefore,WthisvdDaluemustmatchthecharacterset9offthefon!t legivenbyfont-filecapabilitye.font-encodingf(optional)9|ThisisusedforcoMdepoin!tconversion.}Vealueofthiscapabilitygivesaninternal9viewNOofanencoMdingofafon!t.Therefore,_thisvdDaluemustmatchtheencoMdingofthe9fon!tf legivenbyfont-filecapabilitye.dٍ9The?follo!wingexamplede nesafontnamediso8859_5-fontwithISO-8859-5en-9coMdingfb!yusingaKOI8-RencoMdedfont le.VH(define-fontiso8859_5-fontb8(font-classpcf)b8(character-set"ISO8859-5")>(encoding"ISO")b8(font-character-set"KOI8-R")(font-encoding"KOI8-R")b8(font-file"koi8x13.pcf"))9CoMdePcon!versionisdonebyasubsystemnamedCCV.SeeChapter8[CoMdeconver-9sionfsystem],page73fordetail.$>X6.11PCFf@fontclassɲFeon!tfclassname:pcfOtherfspMeci cationisthesameasBDFfon!tclassexceptfontclassnameispcf.X6.12HBFf@fontclassɲFeon!tfclassname:hbfOtherfspMeci cationisthesameasBDFfon!tclassexceptfontclassnameishbf.(^40"2VFlibf3.6.143)^׍X6.13TfrueTyps3ef@fontclass\(TerueT!ypMeisavectorfontfontformat.ThisfontclasssuppMortsimplicitfontsbutdoMesnot 33suppMort>compressedfon!t les.TerueTypMefontdriverusesFereeTypMelibraryversion1.2developMedb!yDavidTeurner,ľRobMertWilhelm,andWeernerLem!bMerg.&Seehttp://www.freetype.org/fordetail.(Feon!tfclassname:truetypeCapabilitiesfforfon!tclassdefault:֍font-directoriesf(optional)9|Alistoffon!tdirectories.GThisdriversuppMortsfont lesearchbykpathsea.GTeo9searc!hfafont lebykpathsea,useTEXMFforadirectoryname.(point-sizef(optional)pixel-sizef(optional)dpif(optional)dpi-xf(optional)dpi-yf(optional)aspect-ratiof(optional)hintingf(optional)9|IfthevdDalueofcapabilit!yon,"hinting"informationisusedtorendercharacters.9Thisise ectiv!ewhensmallcharactersarerendered.*IfthevdDalueisoff,hintingis9disabled.Hin!tingfinformationisusedbydefault.9Note!thatenablinghin!tinghase ectwhenobtainingbitmaps.Ithasnoe ectwhen9y!ou7eobtainandrasterizeoutlinedatainVFlibformat,[sinceVFliboutlineformat9doMesfnotsupportshin!tinginformation.platform-idf(optional)9|QATerueT!ypMefontcanhavemultiplecharactercoMde-glyphmappingtables.9ACmappingD@tableisselectedb!yspMecifyingapairofplatformID(Microsoft,9Macintosh,%etc)andencoMdingID(Unicode,Shift-JIS,etc).uThiscapabilit!yis9usedftospMecifyplatformIDofamappingtabletobeselected.9Vealuefofthiscapabilit!yisoneofstringsbMelow:9appleApplefplatform9macintosh,fmacsMacin!toshfplatform9ascii,fisosISOfplatform9microsoft,fwindows,mssMicrosoftfplatform9any,f?,*An!yplatform9DefaultfvdDalueforthiscapabilit!yisMicrosoftplatform.9example:(platform-idf"microsoft")encoding-idf(optional)9|fTeogetherwithplatformid,thiscapabilit!yisusedtospMecifyamappingtable.)čChapterf6:Weritingav ibMcap-FV413)^׍9WhenISOplatformisselectedb!ytheencoding-idcapabilitye,vdDalueofthis 339encoding-idfcapabilit!yisoneofstringsbMelow:`9asciiASCIMIfencoding.9iso10464 ӣISOf10464encoMding.9iso8859-1 33sISO8859-1fencoMding.9any,f?,*An!yencoMding.J9WhenAppleplatformisselectedb!ytheencoding-idcapabilitye,kvdDalueofthis9encoding-idfcapabilit!yisoneofstringsbMelow:9unicode1.1sUnicoMdef1.1encoding.9unicode2.0sUnicoMdef2.0encoding.9iso10464 ӣISOf10464encoMding.9any,f?,*An!yencoMdingJ9When_KMicrosoftplatformisselectedb!ytheencoding-idcapabilitye,vdDalueofthis9encoding-idfcapabilit!yisoneofstringsbMelow:9symbol9unicodeMUnicoMdefencoding.9shift-jis,fsjis,ms-kanjisShiftfJISencoMding.9big5"KBig5fencoMding.9rpc9wansung9johab9any,f?,*An!yencoMdingJ9WhenMacin!toshplatformisselectedbytheencoding-idcapabilitye,BvdDalueofthis9encoding-idfcapabilit!yisoneofstringsbMelow:9roman9japanese9traditional-chinese9korean*׍42"2VFlibf3.6.143)^׍9arabic9hebrew9greek9russian9any,f?,*An!yencoMding9example:(encoding-idf"any")propertiesf(optional) 33variable-valuesf(optional)""Capabilitiesfforfon!tde nition:font-classf(essen!tial)9ThisfvdDaluem!ustbMe"truetypMe".font-directoriesf(optional)9|Alistoffon!tdirectoriesforsearchingfont les.Recursivesearchingoffont les9issuppMort.JAfon!t leissearchedinthedirectoriesbythiscapabilitye.JIfnotfound,9thenfafon!tissearchedinadirectoriesgivenbytheclassdefault.""9Teofsearc!hafont lebykpathsea,useTEXMFforadirectoryname.font-filef(optional)point-sizef(optional)pixel-sizef(optional)dpif(optional)dpi-xf(optional)dpi-yf(optional)magnificationf(optional)aspect-ratiof(optional)hintingf(optional)font-numberf(optional)encoding-forcef(optional)9|#IncaseencoMdingiddataisbrok!eninaTerueTypMefont,itsvdDaluecanbMeoverridden9b!yfthiscapabilitye.""9examplef(encoding-force"unicode")character-setf(optional)9|X_Teogetherwithencodingcapabilit!y,thiscapabilit!yisusedtochange"external9view"ofafon!t.AfontwouldbMeafontofacharactersetgivenbythiscapability9and:nencoMdinggiv!enbyencodingcapabilitye.Conversionoffontinternalcharacter9setmandencoMdingtoanexternalviewisdeterminedb!ythesecapabilitye.Conversion9isdoneb!ybycoMdeconversionsystem,mcalledCCV.Chapter8[CoMdeconversion9system],Cpage73CoMdecon!version lesarespeci edincode-conversion-filesin9VFlibffon!tclassdefault.SeeSection6.9[VFlibdefaults],page36.""9Feorexample,afon!tofJISX0208characterset(aJapanesecharacterset)inShift-9JISfencoMdingfon!tscanbeaccessedasaJISencodingfon!t.encodingf(optional)9|Teogetherwithcharacter-setcapabilit!y,athiscapabilit!yde nesaexternalview9offafon!t.Chapter8[CoMdeconversionsystem],page73+ҍChapterf6:Weritingav ibMcap-FV433)^׍propertiesf(optional) 33jisx0212-row47-empty-sjisf(optional)9|=Thiscapabilit!yisusedforanad-hoMcsolutiontohandleJISdoMesnotha!ve>afunctiontoobtainoutlinedataofac!haracterinTypMe1font,cthisfontdriv!ercreatesanoutlinedatafromabitmap(forcompatibility).jThus,aitisveryuglye.jIfyourapplication,soft!warerequiresoutlinedata,youarerecommendedtousethesamefontinotherfon!tęformat,suchasTerueTypMe.Thus,theoutlineobtainedVF_GetOutline()functionforTypMe1fon!tfshouldbMeusedonlywhenthesamefontinotherfontformatisnotavdDailable.Feon!tfclassname:type1Capabilitiesfforfon!tclassdefault:font-directoriesf(optional)9|AlistofdirectoriesofT!ypMe1font les.ݞThisdriversuppMortsfont lesearchby9kpathsea.Teofsearc!hafont lebykpathsea,useTEXMFforadirectoryname.afm-directoriesf(optional)9|AýlistofdirectoriesofAFM les.5Eac!helementofthiscapabilityshouldnotbMe9adirectoryforrecursiv!esearch(endingby//).ԽThisiswhyAFM lesaresearched9b!y_insideofT1Lib,.`althoughTypMe1font lesaresearchedbya lesearchsubsystem9offVFlib.encoding-vector-directoriesf(optional)9|AlistofdirectoriesofencoMding les.ݱEac!helementofthiscapabilityshouldnot9bMe`adirectoryforrecursiv!esearch(endingby//).ƸThisiswhyencoMdingvector les9arefsearc!hedbyinsideofT1Lib.9Bydefault,Zdirectories/usr/local/share/VFlib/x.y.zDs/t1lib/and9/usr/local/share/VFlib/site/t1lib/- areregistered. qOptionaldirectoriescan9bMefinstalledb!ythiscapabilitye.9T1Libwadopts leformatforencoMdingv!ector le. 1Whenwewanttouseen-9coMding@v!ector lessuppliedbydvips,ewemustconvertthemintoT1Libfor-9mat. Teoautomatethis,y!oucanuseaUnixShellscriptmkt1enc.shwhichis,֍44"2VFlibf3.6.143)^׍9in*K/usr/local/share/VFlib/x.y.zDs/t1lib/directorye. iEncoMdingv!ector lesfor 339dvipslarecon!vertedlintoT1Libformatandtheyarealsoinstalledinthisdirectorye.qpoint-sizef(optional)pixel-sizef(optional)dpif(optional)dpi-xf(optional)dpi-yf(optional)aspect-ratiof(optional)log-levelf(optional)9|oSelectlog leoutputt!ypMeofT1Lib.The lenameofalog leis`t1lib.log'.If9thisfcapabilit!yisnotgiven,thelog leisnotcreated.9errorOnlyferrormessagesarewrittentothelog le.9warningMWearningfmessagesanderrormessagesarewrittentothelog le.9statisticssStatisticsfmessagesandabMo!vefwrittentothelog le.9debugAn!ybmessagesusefulfordebuggingandabMovearewrittentothelog le.9none"KNev!erfusealog le.9Seefusersman!ualofT1Libfordetail.propertiesf(optional)variable-valuesf(optional)yҡCapabilitiesfforfon!tde nition:qfont-classf(essen!tial)9ThisfvdDaluem!ustbMe"typMe1".font-filef(optional)9Alistoffon!t lenames.Feont leissearchedinthelistedorderuntilexistingfont9 lesfisfound.yҍ9example:(font-filef"AvantGarde-Book""a0100131.pfb")9Bydthisexample,P`AvantGarde-Book'isseac!hed rst. Ifitexists,itisopMened. 339Otherwise,f`a0100131.pfb'͚isseac!hednext.SxIfitexists,itisopMened.SxIfitdoesnot9existfeither,fon!topMenfails.encoding-vectorf(optional)9A lenameforencoMdingv!ector.This lemustbMeresideinadirectoylistedby9encoding-vector-directoriesfcapabilit!yfortypMe1fontclassdefault.point-sizef(optional)pixel-sizef(optional)dpif(optional)dpi-xf(optional)dpi-yf(optional)magnificationf(optional)aspect-ratiof(optional)slant-factorf(optional)9|^Slan!tfactorofafont.[ThisvdDalueistan(th),wherethisslantangleofafont.9DefaultfvdDalueis0,incaseofthis90degree.yҍ9example:(slant-factorf0.2)-OChapterf6:Weritingav ibMcap-FV453)^׍propertiesf(optional)"獍X6.15Zeitf@fontclass ڍThisYfon!tclasssuppMorts"SyotaiKurubu"format;wRitisavectorfontformatforJapanese 33Kanjifc!haracters.~Sev!eralffreeJapanesefontsinthis leformatareavdDailable.dUmedafv!ectorfonts퍍I+\ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/umeda-vector/mincho.vf1.gzI+\ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/umeda-vector/mincho.vf2.gzI+\ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/umeda-vector-+\font/mincho.vf1.gzI+\ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/umeda-vector-+\font/mincho.vf2.gz~dWeatanabMefv!ectorfontsI+\ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/watanabe-vector/mincho.vf1.gzI+\ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/watanabe-vector/mincho.vf2.gzI+\ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/watanabe-vector-+\font/mincho.vf1.gzI+\ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/watanabe-vector-+\font/mincho.vf2.gz~dWeadalabffon!tsI+\ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/wadalab-vector/I+\ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/wadalab-vector-font/I+\See3alsoftp://ftp.ipl.t.u-tokyo.ac.jp/Font/forFereeJapaneseKanjifon!tsin+\T!ypMef1formats.$aThisffon!tclassdoMesnotsupportcompressedfon!t lesnorimplicitfonts.~Feon!tfclassname:zeitCapabilitiesfforfon!tclassdefault:$afont-directoriesf(optional)filename-extensionsf(optional)9| ^Tw!o le lesformafontforthisfontclass,#\e.g.,mincho.vf1 ^andmincho.vf2.9Extensionfcandidateswithoutdigitm!ustbMethevdDalueforthiscapabilitye.퍑9example:(filename-extensionsf".vf"".VF").46"2VFlibf3.6.143)^׍point-sizef(optional) 33pixel-sizef(optional)dpif(optional)dpi-xf(optional)dpi-yf(optional)aspect-ratiof(optional)writing-directionf(optional)9|Defaultwritingdirection.]Horizontalorvertical;1edefaultisHorizontal.This9istthesameas(vector-to-bbx-upper-leftf0.00.86)tand(vector-to-next-9ref-pointf1.00.0)RifvdDalueofthiscapabilit!yis"horizontal". mOtherwise, itis9theͰsameas(vector-to-bbx-upper-leftf-0.50.0)Ͱand(vector-to-next-ref-9pointf0.0-1.0).ǃvector-to-bbx-upper-leftf(optional)9|DefaultvdDalueofav!ectorfromthereferencepMointofacharactertouppMer-left9bMoundingfbo!x.RightanduparepMositivedirections.}[9example:(vector-to-bbx-upper-leftf00.86)vector-to-next-ref-pointf(optional)9|fDefaultvdDalueofav!ectorfromthereferencepMointtonextreferencepMoint.}[9example:(vector-to-next-ref-pointf1.00.0)propertiesf(optional)variable-valuesf(optional)ǃCapabilitiesfforfon!tde nition:font-classf(essen!tial)9|fAfon!tclassname.ǃfont-namef(optional)9|ZFeon!t lenamewithoutextensions.TogetherwithvdDaleandextensiongiv!enby9defaultdescription,Dfon!t lenamesareformed.Feorexample,ifminchoisgiv!en9forGthefont-namecapabilit!yand(".vf")isgivenforthefilename-extensions9capabilit!ye,fthenfont lesmincho.vf1andmincho.vf2areused.}[9example:(font-namef"mincho")point-sizef(optional)pixel-sizef(optional)dpif(optional)dpi-xf(optional)dpi-yf(optional)magnificationf(optional)aspect-ratiof(optional)writing-directionf(optional)vector-to-bbx-upper-leftf(optional)9example:(vector-to-bbx-upper-leftf00.86)vector-to-next-ref-pointf(optional)9example:(vector-to-next-ref-pointf1.00.0)propertiesf(optional)/(Chapterf6:Weritingav ibMcap-FV473)^׍X6.16JGf@fontclassJG]fon!tformatisavectorfontformatforJapanesecharactersetsJIS]X0208.;JGfontdriver 33isfbasedonthew!orkbyHideoMorishita.RFeon!tfclassname:jgCapabilitiesfforfon!tclassdefault:bfilename-extensionsf(optional)9|nThree lesformafon!tforthisfontclass,e.g.,mincho.fn0,mincho.fn1,and9mincho.fn2.Extension=kcandidateswithoutdigitm!ustbMethevdDalueforthiscapa-9bilit!ye.C 9example:(filename-extensionsf".fn"".FN")(Otherfcapabilitiesarethesameaszeitfon!tclass.)R卑Capabilit!yfforfontde nition:Capabilitiesfarethesameaszeitfon!tclass.O=X6.17eKanjif@fontclassThe8eKanjifon!tformatisabitmapfontformatforKanjicharacters.RThe rstcharacter 33inaneKanjifon!t lehascoMdepoin!t1,andthesecondcharacterhascoMdepoin!t2.Thatis,c!haractersZinaneKanjifontarenumbMeredsequentiallystartingfrom1.(ThisencoMdingschemecanfbMec!hangedbysettingsomecapabilities.)R卑eKanjifon!t lesaredistributedatthefollowingURL:http://www.zinbun.kyoto-u.ac.jp/~ekanji/fThedistributionpac!kdDagecontainsthefollowingfont les.dUnicoMdef(`ekan0010.d24')C dKy!otofUniversityKangXi(`ekan0020.d24')dMorohashifDaiKan!wa(`ekan0030.d24')dJISfX0208(`jisx9052.d24')bFeon!tfclassname:ekanjiCapabilitiesfforfon!tclassdefault:font-directoriesf(optional) 33font-dot-sizef(optional)9|fDotsizeofc!haractersinthefont le.DefaultvdDalueis24.C 9example:(font-dot-sizef24)Rpoint-sizef(optional)pixel-sizef(optional)dpif(optional)dpi-xf(optional)dpi-yf(optional)aspect-ratiof(optional)writing-directionf(optional)9|Defaultwritingdirection.]Horizontalorvertical;1edefaultisHorizontal.This9istthesameas(vector-to-bbx-upper-leftf0.00.92)tand(vector-to-next-9ref-pointf1.00.0)&mifvdDalueofthiscapabilit!yis"Horizontal". ]Otherwise,nitis0&48"2VFlibf3.6.143)^׍9theͰsameas(vector-to-bbx-upper-leftf-0.50.0)Ͱand(vector-to-next-ref- 339pointf0.0-1.0).ʓvector-to-bbx-upper-leftf(optional)9|DefaultvdDalueofav!ectorfromthereferencepMointofacharactertouppMer-left9bMoundingfbo!x.RightanduparepMositivedirections.~㍑9example:(vector-to-bbx-upper-leftf00.90)vector-to-next-ref-pointf(optional)9|fDefaultvdDalueofav!ectorfromthereferencepMointtonextreferencepMoint.~㍑9example:(vector-to-next-ref-pointf1.00.0)propertiesf(optional)variable-valuesf(optional)~㡦Capabilit!yfforfontde nition:ʓfont-classf(essen!tial)9|fAfon!tclassname.font-namef(optional)9|fFeon!t lenamewithextension.font-dot-sizef(optional)9|fDotsizeofc!haractersinthefont le.point-sizef(optional)pixel-sizef(optional)dpif(optional)dpi-xf(optional)dpi-yf(optional)magnificationf(optional)aspect-ratiof(optional)character-setf(optional)encodingf(optional)font-character-setf(optional)font-encodingf(optional)9|MSelectcoMdecon!version.DIfMyouwanttoaccessaeKanjifontbyISO-2022(JIS)9encoMdingsc!heme,1`de neeKanjiforcharacter-set,ISO2022forencoding,eKanji9for0Ffont-character-set,RandSEQUENTIAL2-1forencoding.{}Thenthe rstc!har-9acterfintheeKanjifon!tisaccessedbycoMdepoin!t0x2121.mock-font-encodingf(optional)9|HBythiscapabilit!ye,AencoMdingofaneKanjifont leisvirtuallychanged.This9capabilit!ygVrequiresanargumentandparameter. Therearethreekeywordsforan9argumen!t:~㍍B˄OWrawfNoe ect,i.e.,fon!tencoMdingisnotchanged.B˄OWsubblocks-94x94eB{AneKanjifon!t leisvirtuallydividedby94x94subbloMcks 33OW(bloMc!ksof94x94=8836characters)andselectsB-thbloMckforthisfontde ni-OWtion.HThis4impliesthataneKanjifon!t lewiththiscapabilityo ersonly8836OW(=94x94)c!haractersamongallthecharactersofaneKanjifont le./QThe rstOWsub"bloMc!kisnumbMeredzero.R(AfontwithBn=0forthiscapabilityselectstheOW rstfsubbloMc!k.)~㍑OWCharacterswithc!haractercoMdefrom8836!B+1to8836!B+8836inanOWeKanjiffon!t leisaccessedbycharactercoMdefrom0x2121to0x7e7e.13Chapterf6:Weritingav ibMcap-FV493)^׍B˄OWsubblocks-94x60kB capabilitiesintheVFlibdefaultdescriptionify!ouwanttousethefontmappingfeatureoffthisclass.MappMedV[fon!tisrecursively(recursively)requestedtoopMenandanyopMerationssuchasob-tainingfbitmapsontherequestedfon!tareappliedonthemappMedfont.Feon!tfclassname:TeXCapabilitiesfforfon!tclassdefault:,dpif(optional)9|fDefaultdeviceresolutionforT,[wEB X-relatedfon!ts.tfm-directoriesf(optional)9|rAmlistofdirectoriesofTFM les.׌Directorieslistedb!ythiscapabilityisusedfor9searc!hing,TFM les.|.IfadirectorynameisTEXMF,]kpathseaisinvokedtosearcha9 le.܍9example:(tfm-directoriesf"TEXMF""/usr/local/share/font/tfm//")2$P50"2VFlibf3.6.143)^׍tfm-filename-extensionsf(optional) 339|1A,listofextensionsof lenamesforTFM les.!ThisisusedtoconstructaTFM9 lefname,e.g.,"cmr10.tfm"forafon!t"cmr10".Wō9example:(tfm-filename-extensionsf"tfm")|Wfont-mappingf(optional)9|Feon!tmappingrulesaredescribMedinthiscapabilitye.џWhenafontisrequestedto9opMen`(asanimplicitfon!t),thefontnameismappMedtoanothernameandspeci ed9fon!tfdriverisrequestedtoopMenthemappedfon!t.9Syn!taxfofthiscapabilityisasfollows:VH(font-mappingb8((DRIVER-NAMEMAPPING-FORMATFONT-OPEN-OPTIONSDs)...gFFONT-NAMEFONT-NAME...)b8((DRIVER-NAMEMAPPING-FORMATFONT-OPEN-OPTIONSDs)...gFFONT-NAMEFONT-NAME...)b8...)9Th!us,vdDalueKforthiscapabilityisasequenceofitems((DRIVER-NAMEMAPPING-9FORMATFONT-OPEN-OPTIONSDs)f...FONT-NAMEFONT-NAME...),-anddthisformsa9mappingerule. F!ONT-NAMEisafontnameandthisruleappliesifrequested9fon!t8namematchesFONT-NAME.(FONT-NAMEisanamewithoutdirectoryand9extension]*parts.*A\fon!tnamerequestedtoopMeniscomparedwithFONT-NAME9b!ydeletingdirectoryandextensionparts.)IfFONT-NAMEcontains*character,9itmatc!hestotherestofrequestedfontname.8Feorexample,cm*matchescmr109andƍcmbx10.>RTh!us,ΗincaseFONT-NAMEj is*,Ηallfontsmatchesandthusallfonts9appliesftherule.9The'fon!tnameismappMedaccordingtotheformatMAPPING-FORMAeTand9mappMedBnameisopenedb!ycallingafontdriverDRIVER-NAME.VF_OpenFont1()9andQVF_OpenFont2()arenotused.(AsaspMecialcase,whenDRIVER-NAME7is*,9VF_OpenFont1()forVF_OpenFont2()isusedtoopMenamappedfon!t.)9The.syn!taxofMAPPING-FORMAeTwissimilartoaformatstringofprintf()func-9tiono*inColibrarye,z6butcon!versiono*charactersandsemanticsaredi erent.tConversion9spMeci cationisin!troducedb!y%character.Non-conversioncharactersaresimply9copiedfandcon!versionfspMeci cationsaresubstitutedforthefollo!wing:|W9%%.Q%fc!haracter9%f.Qthefrequestedfon!tnamewithoutextensionanddirectoryparts.9%d.Qfon!tf leresolutionpartintheextensionoftherequestedfontname9%e.Q lefformatpartintheextensionoftherequestedfon!tname9FeorTinstance,let/foo/bar/qwe.300pkistherequestedfon!tname.Then%fisqwe, 339%dɏis300,and%eispk.@AWcon!versionɏspMeci cationwillben!ullstringifcorresponding9substringfdoMesnotexist.9Ingeneral,BmappMedfon!tsareopenedwiththesameparameters(deviceresolution,9magni cationp factors,qpMoin!torpixelsize)oftherequestedfont.:Suchparameters9canybMec!hangedbyoptionalFONT-OPEN-OPTIONSpart.Feollowingdescriptions9canfbMeusedforF!ONT-OPEN-OPTIONS:9Wee'canspMecifym!ultiple(DRIVER-NAMEMAPPING-FORMATFONT-OPEN-OPTIONSDs)'in9a#ruledescription.qThisisusefulifw!eneedtowritemultiplemappingrulesforthe9samefsetoffon!ts.9Affon!tisopMenedbythefollowingwaye.32Chapterf6:Weritingav ibMcap-FV513)^׍?1.OWFeorVeac!hrule(fromthe rstonetothelastone),therequestedfontnameis 33OWc!heckedC,iftheruleappliestothefon!t.0IftheruledoMesnotapplye,j^checknextOWrule.?2.OWFeor eac!h(DRIVER-NAMEqHMAPPING-FORMAeT7FONT-OPEN-OPTIONS)OWintherule,Ftherequestedfon!tismappMedandfontopMenisattempted.dIfaOWmappMed"qfon!tisissuccessfullyopened,sitisusedasarequestedfon!t. QOth-OWerwise,snextfmapping(DRIVER-NAME LMAPPING-F!ORMAeT1;FONT-OPEN-OWOPTIONS)fisattempted.ThisisrepMeatedforamappedfon!tisopened.?3.OWIffon!topensucceeds;min10.jtexisusedasmin10.300pkandfon!tOWopMenf nishes.Ifthefon!tisnotopened,con!tinueftothenextstep.?2.OWThe-secondruleappliestotherequestedfon!tsince*isgiveninthefontlist.OWThetype1driv!erisinvokedtoopMenamappednamemin10.pfb. Ifitisopened,OWmin10.jtexqisusedasmin10.300pkandfon!topMen nishes.IfthefontisnotOWopMened,fcon!tinuetothenextstep.?3.OWThefsecondruleappliestothereqiestedfon!tsince*isgiveninthefontlist.Uo=1.e-The5pkdriv!erisinvokedtoopMenamappednamemin10.300pk.eIfitisnote-opMened,fnextmappingisattempted.Uo=2.e-The5gfdriv!erisinvokedtoopMenamappednamemin10.300gf.eIfitisnote-opMened,fnextmappingisattempted.Uo=3.e-Theftfmdriv!erisinvokedtoopMenamappednamemin10.tfm.9Iffev!erythingabMovefails,fontopMenforcmr10.300pkfails.B˄OWpoint-size-from-tfm=(optional)|WhenamappMedfon!tisopened(inmodeOW1,highresolutionorien!tedmoMde),poin!tsizewhichisobtainedfromaTFMOW legisgiv!en.ThisisnecessarywhenweuseTerueTypMeand/orTypMe1fontsforOWmappMedSfon!ts.Feorexample,c"cmr10.ttf"and"cmr10.pfb"intheBaKoMafontOWsetKdonotha!veKpMointsizeinformation,]sinceTerueTypMeandTypMe1formatfontsOWcannotfha!veinformationonpMointsize.B˄OW(magnification-adjustmentfmagDs)p(optional)|MappMedfon!tsareopenedOWwith;magni cationfactorsmagni edb!ymag.]ThiscanbMeusedtoadjustsizeOWoffmappMedfon!ts.Butmostofthecase,thisisnotnecessarye.9Asfarestrictionoffon!tsofthisclass,eachfontmusthaveaTFM le.4A52"2VFlibf3.6.143)^׍resolution-accuracyf(optional) 33resolution-correctionsf(optional)9|EAccordingtoarithmeticerrors,DPI/vdDalueforfon!t lesandcomputedvalue(=9deviceresolutiontimesmagni cationvdDalue)ma!ybMedi erent.Thesetwocapabilities9giv!efcorrectresolutionvdDaluesforPKandGFfonts.39Syn!taxfofthesecapabilitiesareasfollows:VH(resolution-accuracyACCURACYDs) 33VH(resolution-correctionsb8(DEVICE-RESOLUTIONFONT-RESOLIONFONT-RESOLION...)b8(DEVICE-RESOLUTIONFONT-RESOLIONFONT-RESOLION...)gF...)39DEVICE-RESOLUTIONistheresolutionoftargetdeviceinDPI8andF!ONT-9RESOLUTIONisfafon!tresolutionvdDalue.9TeoB ndafon!t le,Vfontresolutioniscomputedbydeviceresolutiontimesmagni ca-9tionDfactor.Then,lgthisdriv!er ndsalist(DEVICE-RESOLUTIONFONT-RESOLUTION9FONT-RESOLUTION...f)\suc!hthatDEVICE-RESOLUTIONisthesameasreso-9lutionoftargetdevice.(Ifthereisnosuc!hlististhecapabilityvdDalue,Qfont le9resolutionfisnotcorrectedandcomputedvdDalueisused.)9Feoreac!hFONT-RESOLUTION%inthelist, thedriverchecksifthecomputedfont9 le*resolutionisintherangefromF!ONT-RESOLUTIONZmtimes(1-ACCURACYV)9too!F!ONT-RESOLUTIONtimes(1+ACCURACYV).Ifthecomputedresolutionisin9theArange,Ufon!t leresolutionischangedtoFONT-RESOLUTION.Then,Uafont le9isfsearc!hedbythecorrectedfont leresolution.9example:VH(resolution-accuracy0.02)VH(resolution-corrections\x(300 T;;cxb8300 T32936043251862274689610751290 T240270)\x(600 T;;ljfourb8600 T657720864103712441493179221502580 T480540))9Becarefulnottomaptothesamename!@Otherwise,+fon!topMenwillbeanin nite9loMop. A(VFlibrestrictsthedepthofnestedfon!topen. AEv!enifthefontnameis9mappMedftothesamename,VFlibwilldetectsanerror,an!ywaye.)3propertiesf(optional)variable-valuesf(optional)X6.19PKf@fontclass&fPK+fon!ts+arebitmapfontsusedbyT,[wEB X+system.PKfont+driverprovidesalogicalviewofPKfon!tsDwhenafontisrequestedtoopMenasanimplicitfont;2ifagivenfont lenameiscmr10.pk,requested*deviceresolutionis300andmagni cationis1.2,jthenPK%fon!tdriverloMoksforafont leQxcmr10.360pk.Th!us,btfontnames(forfontopMen)shouldnotbethesameasfon!t lenameson lesystems.TeoFsearc!hafont le,Y`thekpathsealibrarycanbMeused.AFspecialnameTEXMFinalistoffon!tdirectoriesf(capabilit!yfont-directories)isusedtosearcha lebykpathsea.Teo@Aenablekpathsea,fthevdDalueforuse-kpathseacapabilit!yinVFlibclassdefaultmustbMe"Yes".Thisffon!tclasssuppMortscompressedfont lesandimplicitfonts.5OkChapterf6:Weritingav ibMcap-FV533)^׍Feon!tfclassname:pk 33HCapabilitiesfforfon!tclassdefault:SǍfont-directoriesf(optional)9|Alistofdirectorynamesforfon!t les.J.ThisdriversuppMortsfont lesearchby9kpathsea.Teofsearc!hafont lebykpathsea,useTEXMFforadirectoryname.Hfilename-extensionsf(optional)9|,A,listofextensionsof lenamesforPKfon!ts.qThisisusedtoconstructafont9 lefname"cmr10.300pk"from"cmr10.pk"for300dpifon!ts.>9example:(filename-extensionsf"pk")make-missing-glyphf(optional)9|7GenerateaPK7fon!t lefromMetafontsource lebyrunningMETeAFONT7on9theQ ye,bifarequestedPKQ}fon!t ledoMesnotexist.example:t(make-missing-glyphs9"yes")point-sizef(optional)pixel-sizef(optional)dpif(optional)propertiesf(optional)variable-valuesf(optional)H롦Capabilitiesfforfon!tde nition:SǍfont-classf(essen!tial)9|fAfon!tclassname.Hfont-filef(optional)9|afon!t lename.?MAnextension(e.g.,.300pk)canbMeomitted.Incaseofthis9capabilit!yfisnotgiven,fontnameisusedasthiscapabilityvdDalue.point-sizef(optional)pixel-sizef(optional)dpif(optional)propertiesf(optional)magnificationf(optional)$+qX6.20GFf@fontclass!|HFeon!tfclassname:gfOtherfcapabilitiesarethesameasonesforpkfon!tclass.6\ݍ54"2VFlibf3.6.143)^׍X6.21TFMf@fontclass̍TFMf lesscon!tainsonlymetricinformationfortypMesettingT,[wEB Xfdocumen!ts.wThisfontclass 33pro!videstfontswhosemetricsarede nedbyTFMtfont les.CSinceTFMt lesdonothaveglyph,glyphofafon!tofthisfontclassare(blackorwhite)rectangles.#FeontsofthisfontclasscanbMeusedfassubstitutesofPK,GF,orVF lesincasetheyaremissing.IfIthe leisnotfound,\4itissearc!hedbyfont-directoriescapabilitygiveninTFMfontclassdefault0description.}DNotethattheextensionoffon!t les(givenbythefilename-extensionscapabilit!y)hasnoe ectforsearchingbykpathsealibrarye.4Theextensionoffont lesmustbMe".tfm".Seefkpathseaman!ualfordetail.Thisffon!tclasssuppMortscompressedfont lesandimplicitfonts.Feon!tfclassname:tfmCapabilitiesfforfon!tclassdefault:̍font-directoriesf(optional)9|Alistofdirectorynamesforfon!t les.J.ThisdriversuppMortsfont lesearchby9kpathsea.Teofsearc!hafont lebykpathsea,useTEXMFforadirectoryname.filename-extensionsf(optional)glyph-stylef(optional)9|De nesdefaultglyphst!yle: emptyorfill.Ifemptyisgiven,allglyphofafont9arefwhiterectangles.Iffillisgiv!en,allglyphofafontareblackrectangles.point-sizef(optional)pixel-sizef(optional)dpif(optional)propertiesf(optional)variable-valuesf(optional)Capabilitiesfforfon!tde nition:̍font-classf(essen!tial)9|fAfon!tclassname.font-filef(optional)glyph-stylef(optional)9|De nesglyphst!yle:emptyorfill.^Ifemptyisgiven,Fallglyphofafontare9whitefrectangles.Iffillisgiv!en,allglyphofafontareblackrectangles.point-sizef(optional)pixel-sizef(optional)dpif(optional)magnificationf(optional)aspect-ratiof(optional)propertiesf(optional)͍X6.22VFf@fontclass̍Thisfon!tclasshandlesVirtualF)ont les.PAvirtualfontconsistsofafontprogramandsubfon!ts.QAfontprograminavf leissimilartoD!VI leformats.QGlyphofavirtualfon!tareconstructedfromabMo!xinstructioninafontprogramandglyphtakenfromsubfonts.RTherefore,7cChapterf6:Weritingav ibMcap-FV553)^׍thisjfon!tclassrequiresafontmappingruletoobtainglyphfromsubfonts.4YeoucanspMecifyVFlib 33notftoopMensubfon!tsofavirtualfontincaseofsubfontsareunavdDailable.Feon!tfclassname:vfCapabilitiesfforfon!tclassdefault:font-directoriesf(optional)9|Alistofdirectorynamesforfon!t les.J.ThisdriversuppMortsfont lesearchby9kpathsea>librarye.MTosearc!hafont lebykpathsealibrarye,SsuseTEXMFforadirectory9name.filename-extensionsf(optional)9|fAextensionstringforvirtualfon!t les."9example:(filename-extensionsf"vf")tfm-directoriesf(optional)tfm-filename-extensionsf(optional)font-mappingf(optional)9|>A>setofrulesformappingforsubfon!tstoopMenasanVFlibfonts.cThisisthe9sameVasT,[wEB X@fon!tmappMer,Ri.e.,font-mappingVcapabilityforTeXfontclassdefault9description."9Becarefulnottomaptothesamename!@Otherwise,+fon!topMenwillbeanin nite9loMop. A(VFlibrestrictsthedepthofnestedfon!topen. AEv!enifthefontnameis9mappMedftothesamename,VFlibwilldetectsanerror,an!ywaye.)open-stylef(optional)9|fThiscapabilit!yspMeci eshowsubfontsareopMened.9none"K|Bo!xesareusedinsteadofglyphofsubfonts.SubfontsarenotopMened.9try(|{ Thevirtualfon!tdrivertriestoopMeneachsubfont.[IfsubfontsaresopMened,3glyph+aretak!enfromopenedsubfon!ts.IfsomesubfontsarenotsopMened,3bo!xesareusedinsteadofglyphofsuchsubfonts./TItisnotanserrorfev!enifallsubfontsarenotopMened.9requireM|9Thevirtualfon!tdrivertriestoopMeneachsubfont.;Itisanerrorifsev!eryfsubfontisnotopMened.glyph-stylef(optional)9|BIncasebMo!xesareusedinsteadofglyphofsubfonts,9thiscapabilitycontrolsthe9loMoksfofbo!xes.9empty|fBo!xesarewhite,i.e.,allpixelsarevdDalue0.9fill"K|fBo!xesareblack,i.e.,allpixelsarevdDalue1.point-sizef(optional)pixel-sizef(optional)dpif(optional)propertiesf(optional)variablesf(optional)debugf(optional)Capabilitiesfforfon!tde nition:font-filef(optional)9|fFilenameofavirtualfon!t.8n56"2VFlibf3.6.143)^׍point-sizef(optional) 33pixel-sizef(optional)dpif(optional)magnificationf(optional)propertiesf(optional)33X6.23ASCIs3If@JapaneseTL32EdXKanjifontclassThisZisforKanjiwfon!tsofJapaneseT,[wEB XYloMcalizedbyASCIMIYCo.ThisfontdriverprovidesKanjiZfon!tsIftruetypeisselectedfor9division-schemeݯcapabilit!ye,Mojik%d.ttfisassumedforthiscapabilitybydefault.9%dninMojik%d.ttfissubstitutedb!yfontnumbMer, startingfrom101.5Iftype1is9selectedfordivision-schemecapabilit!ye,5mo%dm%02d.pfbisassumedforthiscapa-9bilit!y5bydefault.!KThe rst%dinmo%dm%02d.pfbisamajorfontnumbMer,-)starting9fromm101.gThesecond%dinmo%dm%02d.pfbisaminorfon!tnumbMer,startingfrom96.9In8casey!ouwanttouseafontnameformatotherthandescribMedabo!ve,mthis8capa-9bilit!yshouldbMede ned.Notethatformatstingshouldcontainexactlyone%difyou9selectKtruetypedivisionsc!heme,tMandexactlytwo%dsifyouselecttype1division9sc!heme.͍truetype-subfont-encodingf(optional)9Thiscapabilit!yhase ectonlywhentruetypedivisionschemeisselected.~This9capabilit!yQselectscharacterencoMdingschemeofunderlayingTerueTypMefont les.9Ifa\unicodeisgiv!entothiscapabilitye,underlayingTerueTypMefontsareencoMdedin9UnicoMde.Ifiso-2022(asaliases,VYiso2022orjiscanbeused)isgiv!entothis9capabilit!ye,funderlayingTerueTypMefontsareencoMdedinISO2022(JIS).9DefaultYvdDalueisunicode,(whic!histhesameasthetheMojikyofont lesinTerueTypMe9format.͍propertiesf(optional)3X6.27Examplef@v ibs3cap1PThisfexamplev ibMcapisforgeneraluse.<60"2VFlibf3.6.143)^׍U;;----------------------------------------------------------------- 33U;;>VFlibDefaultU;;-----------------------------------------------------------------U(define-default TVFlib(g;;hinttofindfontclassfromfontnameforfastfontopen(g(extension-hints T(".bdf"bdf)(".pcf"pcf)(".hbf"hbf)(".ttf"truetype)(".ttc"truetype)(".pfa"type1)(".pfb"type1)("pk"TeX)("gf"gf)("tfm"tfm))(g;;implicitfontclasses(g(implicit-font-classes Tpcfbdfhbftruetypetype1zeitjggftfm)ff(g;;uncompressionprograms(g(uncompression-programs T(".Z""zcat")(".gz""gzip-cd"))(g;;alistofdefaultvaluesofvariables(g;;*Note*"variable-values"mustcomebeforevariableuses(g(variable-values T(TeX_DPIV:"300")(TeX_USE_KPATHSEA"}"Yes")(TeX_KPATHSEA_MODER"cx")(TeX_KPATHSEA_PROGRAM T"/usr/local/bin/xldvi"))(g;;kpathsea:enabled/disabled(g(use-kpathsea?BDFFontClassDefaultU;;-----------------------------------------------------------------U(define-default Tbdf(g;;fontdirectories(g(font-directories T"/usr/local/share/fonts/X11//")(g;;extensionsofcompressedfontfilesthatthisfontclasssupports(g(compression-extensions".gz"".Z")(g;;defaultvaluesforfontsofthisfontclass(g(variable-values(VAR1("PROP1""VAL1")) T;justfordebugging...`(VAR2("PROP2""VAL2"))`(VARX("PROPX""VFlib-VALX")))=Chapterf6:Weritingav ibMcap-FV613)^׍(g;;propertiesforallfontsofthisfontclass 33(g(properties("FONT_CLASS""BDF")))ffU;;-----------------------------------------------------------------U;;>PCFFontClassDefaultU;;-----------------------------------------------------------------U(define-default Tpcf(g;;fontdirectories(g(font-directories T"/usr/X11R6/lib/X11/fonts//"G"/usr/local/X11R6/lib/X11/fonts//"G"/usr/openwin/lib/X11/fonts//"G"/usr/X386/lib/X11/fonts//"G"/usr/XFree86/lib/X11/fonts//"G"/usr/X11/lib/X11/fonts//"G"/usr/local/lib/X11/fonts//"G"/usr/X11R5/lib/X11/fonts//"G"/usr/local/X11R5/lib/X11/fonts//"G"/usr/local/share/fonts/X11//")(g;;extensionsofcompressedfontfilesthatthisfontclasssupports(g(compression-extensions".gz"".Z")(g;;propertiesforallfontsofthisfontclass(g(properties("FONT_CLASS""PCF")) T)U;;-----------------------------------------------------------------U;;>HBFFontClassDefaultU;;-----------------------------------------------------------------U(define-default Thbf(g;;fontdirectories(g(font-directories T"/usr/local/share/fonts/HBF//")(g;;extensionsofcompressedfontfilesthatthisfontclasssupports(g(compression-extensions".gz"".Z")(g;;propertiesforallfontsofthisfontclass(g(properties("FONT_CLASS""HBF")) T)U;;-----------------------------------------------------------------U;;TrueTypeFontClassDefaultU;;-----------------------------------------------------------------U(define-default Ttruetype(g;;fontdirectories(g(font-directories T"TEXMF";-aspecialnametosearchby`kpathsea'G"/usr/local/share/fonts/bakoma/ttf/"G"/usr/local/share/fonts/FontCity2//"G"/usr/local/share/fonts/DynaFont-Premium30/win95//"G"/usr/local/share/fonts/DynaFont-SpecialPack1/win95//"G"/usr/local/share/fonts/TrueTypeWorld-ValueFont141//"G"/usr/local/share/fonts/FontAsia//"G"/usr/local/share/fonts/FontGarden/ttf//" T)(g;;debuggingflags>('*'selectsall)(g(debug"")(g;;propertiesforallfontsofthisfontclass(g(properties("FONT_CLASS""TrueType")) T)>]62"2VFlibf3.6.143)^׍U;;----------------------------------------------------------------- 33U;;Type1FontClassDefaultU;;-----------------------------------------------------------------U(define-defaulttype1(g;;font(pfa,pfb)directories(g(font-directories"TEXMF" T;-aspecialnametosearchby`kpathsea'"/usr/local/share/fonts/bakoma/pfb/")(g;;AFMdirectories(g(afm-directories"TEXMF">;-aspecialnametosearchby`kpathsea'!"/usr/local/share/fonts/bakoma/afm/")(g;;T1Liblogfileoutputlevel:"none","error","warning","stat","debug"(g(log-level"none"))ffU;;-----------------------------------------------------------------U;;>SyotraiClubFontClassDefaultU;;-----------------------------------------------------------------U(define-default Tzeit(g;;filenameextensions("vf"for"mincho.vf{1,2}")(g(filename-extensions T".vf")(g;;fontdirectories(g(font-directories>"/usr/local/share/fonts/Watanabe//"`"/usr/local/share/fonts/WadaLab//")(g;;propertiesforallfontsofthisfontclass(g(properties T("FONT_CLASS""ZEIT")s#K("CHARSET_REGISTRY""jisx0208.1983")s#K("CHARSET_ENCODING""0")))U;;-----------------------------------------------------------------U;;>JGFontClassDefaultU;;-----------------------------------------------------------------U(define-default Tjg(g;;filenameextensions("fn"for"zkyo0by.fn{0,1,2}")(g(filename-extensions".fn")(g;;fontdirectories(g(font-directories T"/usr/local/share/fonts/JG-Fonts//")(g;;propertiesforallfontsofthisfontclass(g(properties T("FONT_CLASS""JG")s#K("CHARSET_REGISTRY""jisx0208.1983")s#K("CHARSET_ENCODING""0")))U;;-----------------------------------------------------------------U;;>TeX-relatedFontClassDefaultandTeXFontMapperU;;-----------------------------------------------------------------U(define-default TTeX(g;;TFMfiledirectories(g(tfm-directories T"TEXMF""/usr/local/share/fonts/bakoma/tfm/")(g;;possibleextensionsofTFMfiles(g(tfm-filename-extensions T".tfm")(g;;fontnamemappingrules(g(font-mapping.'S((ascii-jtex-kanji"%f.jtex") T"min*""goth*""tmin*""tgoth*")?7Chapterf6:Weritingav ibMcap-FV633)^׍.'S((type1"%f.pfb"point-size-from-tfm(magnification-adjustment1.0)) 339*).'S((pk"%f.%dpk")(gf"%f.%dgf") T*).'S((tfm"%f.%dtfm") T*))(g;;accuracyofdeviceresolutions,usedwith'resolution-corrections'(g(resolution-accuracy0.02)(g;;fontresolutionvaluesforeachdeviceresolutions.(g(resolution-corrections.'S(240 T;;sparcptr3240 T263288312346415498597).'S(300 T;;cx3300 T32936043251862274689610751290 T240270).'S(400 T;;sparcptr3400 T438480576691829995119414331720 T320360).'S(600 T;;ljfour3600 T657720864103712441493179221502580 T480540))(g;;defaultdeviceresolution(g(dpi$TeX_DPI))ffU;;-----------------------------------------------------------------U;;>TeXGFFontClassDefaultU;;-----------------------------------------------------------------U(define-default Tgf(g;;fontdirectories(g(font-directories T"TEXMF"G"/usr/local/TeX/gf//")(g;;propertiesforallfontsofthisfontclass(g(properties T("FONT_CLASS""GF")))U;;-----------------------------------------------------------------U;;>TeXPKFontClassDefaultU;;-----------------------------------------------------------------U(define-default Tpk(g;;fontdirectories(g(font-directories T"TEXMF"G"/usr/local/TeX/pk//")(g;;propertiesforallfontsofthisfontclass(g(properties T("FONT_CLASS""PK")))U;;-----------------------------------------------------------------U;;>TeXTFMFontClassDefaultU;;-----------------------------------------------------------------U(define-default Ttfm(g;;fontdirectories(g(font-directories T"TEXMF"G"/usr/local/TeX/tfm//")(g;;glyphstyle:"fill"(allpixelsblack)or"empty"(allpixelswhite)(g(glyph-style T"fill")(g;;propertiesforallfontsofthisfontclass(g(properties T("FONT_CLASS""TFM")))U;;-----------------------------------------------------------------@K64"2VFlibf3.6.143)^׍U;;>ASCII-jTeXKanjiFontClassDefault 33U;;-----------------------------------------------------------------U(define-default Tascii-jtex-kanji(g;;TFMfiledirectories(g(tfm-directories T"TEXMF")(g;;possibleextensionsofTFMfiles(g(tfm-filename-extensions".tfm")(g;;Suffixfornamemapping(g;;(e.g.,implicitfont"min10.300pk"ismappedto"min10.jtex")(g(implicit-font-mapping-suffix".jtex"))ffU;;-----------------------------------------------------------------U;;>JapaneseComicFontClassDefaultU;;-----------------------------------------------------------------U(define-default Tjapanese-comic(g;;debuggingflags>('*'selectsall)(g(debug"f")(g;;propertiesforallfontsofthisfontclass(g(properties T("FONT_CLASS""JAPANESE-COMIC")s#K("CHARSET_REGISTRY""jisx0208.1983")s#K("CHARSET_ENCODING""0")))'U;;-----------------------------------------------------------------U;; TsamplefontdefinitionsforJapaneseTeXU(define-fontjtex-min(font-classpcf)(font-file"jiskan24.pcf"))U(define-fontjtex-goth>(font-classpcf)(font-file"jiskan24.pcf"))U(define-fontjtex-tmin>(font-classpcf)(font-file"jiskan24.pcf"))U(define-fontjtex-tgoth T(font-classpcf)(font-file"jiskan24.pcf"))U;;Definitionsfor"min10"fonts.ThesefontsareusedbyU;;'namemapping'featureofascii-jtex-kanjidriver.U;;(e.g.,"min10.400pk"ismappedto"min10.jtex")U(define-macromin-common(g(font-classascii-jtex-kanji)(kanji-fontjtex-min)(g(kanji-font-magnification0.85)(metric-adjustment-file"jiskan24.adj"))U(define-macrogoth-common(g(font-classascii-jtex-kanji)(kanji-fontjtex-goth)(g(kanji-font-magnification0.85)(metric-adjustment-file"jiskan24.adj"))U(define-macrotmin-common(g(font-classascii-jtex-kanji)(kanji-fontjtex-tmin)(g(kanji-font-magnification0.85)(g(metric-adjustment-file"jiskan24v.adj"))U(define-macrotgoth-common(g(font-classascii-jtex-kanji)(kanji-fontjtex-tgoth)(g(kanji-font-magnification0.85)(g(metric-adjustment-file"jiskan24v.adj"))U(define-fontmin5.jtexR(kanji-font-point-size T5)min-common)U(define-fontmin6.jtexR(kanji-font-point-size T6)min-common)U(define-fontmin7.jtexR(kanji-font-point-size T7)min-common)U(define-fontmin8.jtexR(kanji-font-point-size T8)min-common)AҒChapterf6:Weritingav ibMcap-FV653)^׍U(define-fontmin9.jtexR(kanji-font-point-size T9)min-common) 33U(define-fontmin10.jtex(kanji-font-point-size10) Tmin-common)U(define-fontgoth5.jtex(kanji-font-point-size T5)goth-common)U(define-fontgoth6.jtex(kanji-font-point-size T6)goth-common)U(define-fontgoth7.jtex(kanji-font-point-size T7)goth-common)U(define-fontgoth8.jtex(kanji-font-point-size T8)goth-common)U(define-fontgoth9.jtex(kanji-font-point-size T9)goth-common)U(define-fontgoth10.jtex>(kanji-font-point-size10) Tgoth-common)U(define-fonttmin5.jtex(kanji-font-point-size T5)tmin-common)U(define-fonttmin6.jtex(kanji-font-point-size T6)tmin-common)U(define-fonttmin7.jtex(kanji-font-point-size T7)tmin-common)U(define-fonttmin8.jtex(kanji-font-point-size T8)tmin-common)U(define-fonttmin9.jtex(kanji-font-point-size T9)tmin-common)U(define-fonttmin10.jtex>(kanji-font-point-size10) Ttmin-common)U(define-fonttgoth5.jtex>(kanji-font-point-size T5)tgoth-common)U(define-fonttgoth6.jtex>(kanji-font-point-size T6)tgoth-common)U(define-fonttgoth7.jtex>(kanji-font-point-size T7)tgoth-common)U(define-fonttgoth8.jtex>(kanji-font-point-size T8)tgoth-common)U(define-fonttgoth9.jtex>(kanji-font-point-size T9)tgoth-common)U(define-fonttgoth10.jtex T(kanji-font-point-size10)tgoth-common)ffU;;-----------------------------------------------------------------U;;EOF X6.28Examplef@v ibs3cap2؍This9"v ibMcap leisanexampleforT,[wEB X9D!VIdrivers.qThis9"v ibMcap leprovidesasetoffontsofftheformNAME.DVIDspkandNAME.pk.Feorexample,cmr10.300pkandcmr10.pk.FeorJapaneseKanjic!haracterfontsmin5...min10,>goth5...goth10,>tmin5..tmin10,tgoth5~...Дtgoth10,X~Windo!wPCFformatfon!tjiskan24.pcfisusedviaascii-jtex-kanjifon!tfdriver.Other8xfon!tsaresolvedinPK8\andGFformatfon!ts.8IfafontisnotavdDailableintheseformats,a7TFM)fon!tisusedtoproMducea"black"bMox.P(TFM) lesaremetrics lesanddonotconatinglyph.ButfTFMdriv!erinVFlibproMducesa"bo!x"glyphasitwarefont les.)P!arametersLofdeviceresolutionandmagni cationfactorforthefunctionVF_OpenFont1()determinesfthefon!tsizeandfontmetricstobMeopened.TeouseVFlibwiththisv ibMcap le,RIrecommendtoopenfon!tbyVF_OpenFont1(name.pk,dpi,fdpi,-1,mag,magDs), wherename.pkisafon!tname(e.g.,cmr10.pk),dpi>isthedeviceresolutionFindpi(e.g.,Y300),andFmag6isthemagni cationfactor(e.g.,Y1.2formagstep1fon!ts).U;;-----------------------------------------------------------------U;;>VFlibDefaultU;;-----------------------------------------------------------------U(define-defaultVFlib(g(extension-hints T("pk"TeX))(g(implicit-font-classes)(g(uncompression-programs T(".Z""zcat")(".gz""gzip-cd"))(g(variable-values T(TeX_USE_KPATHSEA"}"Yes")(TeX_DPIV:"300") T;;or"600"(TeX_KPATHSEA_MODER"cx")>;;or"ljfour"(TeX_KPATHSEA_PROGRAM T"/usr/local/bin/xldvi"))Bl66"2VFlibf3.6.143)^׍(g(use-kpathsea?TeX-relatedFontClassDefaultandTeXFontMapperU;;-----------------------------------------------------------------U(define-default TTeX(g(tfm-directories T"TEXMF")(g(tfm-filename-extensions T".tfm")(g(font-mapping.'S((ascii-jtex-kanji"%f.jtex") T"min*""goth*""tmin*""tgoth*").'S((pk"%f.%dpk")(gf"%f.%dgf") T*).'S((tfm"%f.%dtfm")*))(g(resolution-accuracy0.02)(g(resolution-corrections.'S(240 T;;sparcptr3240 T263288312346415498597).'S(300 T;;cx3300 T32936043251862274689610751290 T240270).'S(400 T;;sparcptr3400 T438480576691829995119414331720 T320360).'S(600 T;;ljfour3600 T657720864103712441493179221502580 T480540))(g(dpi$TeX_DPI))U;;-----------------------------------------------------------------U;;>GFFontClassDefaultU;;-----------------------------------------------------------------U(define-defaultgf(g(font-directories T"TEXMF"))U;;-----------------------------------------------------------------U;;>PKFontClassDefaultU;;-----------------------------------------------------------------U(define-defaultpk(g(font-directories T"TEXMF"))U;;-----------------------------------------------------------------U;;>VFFontClassDefaultU;;-----------------------------------------------------------------U(define-defaultvf(g(font-directories T"TEXMF")C;Chapterf6:Weritingav ibMcap-FV673)^׍(g(font-mapping 33.'S((type1"%f.pfb"point-size-from-tfm) T*))(g(open-style"try")R;;"none","try",or"require"(g(glyph-style"fill")) T;;"fill",or"empty"ffU;;-----------------------------------------------------------------U;;>TFMFontClassDefaultU;;-----------------------------------------------------------------U(define-defaulttfm(g(glyph-style T"fill"))U;;-----------------------------------------------------------------U;;>ASCII-JTeXKanjifontsU;;-----------------------------------------------------------------U(define-default Tascii-jtex-kanji(g(tfm-directories T"TEXMF")(g(implicit-font-mapping-suffix".jtex"))U;;-----------------------------------------------------------------U;;Type1FontClassDefaultU;;-----------------------------------------------------------------U(define-defaulttype1(g(font-directories T"TEXMF")(g(afm-directories>"TEXMF")(g(log-level"none")(g(dpi$TeX_DPI))U;;-----------------------------------------------------------------U;;TrueTypeFontClassDefaultU;;-----------------------------------------------------------------U(define-defaulttruetype(g(font-directories T"TEXMF")(g(platform-id"microsoft")(g(dpi$TeX_DPI))U;;-----------------------------------------------------------------U;;>PCFFontClassDefaultU;;-----------------------------------------------------------------U(define-default Tpcf(g(font-directories T"/usr/X11R6/lib/X11/fonts//"G"/usr/local/X11R6/lib/X11/fonts//"G"/usr/openwin/lib/X11/fonts//"G"/usr/X386/lib/X11/fonts//"G"/usr/XFree86/lib/X11/fonts//"G"/usr/X11/lib/X11/fonts//"G"/usr/local/lib/X11/fonts//"G"/usr/X11R5/lib/X11/fonts//"G"/usr/local/X11R5/lib/X11/fonts//"G"/usr/local/share/fonts/X11//")(g(compression-extensions".gz"".Z")(g(dpi$TeX_DPI))D68"2VFlibf3.6.143)l U;;----------------------------------------------------------------- 33U;; TJapaneseKanjifontsusingstandardX11PCFfontsU(define-fontjtex-min(font-classpcf)(font-file"jiskan24.pcf"))U(define-fontjtex-goth>(font-classpcf)(font-file"jiskan24.pcf"))U(define-fontjtex-tmin>(font-classpcf)(font-file"jiskan24.pcf"))U(define-fontjtex-tgoth T(font-classpcf)(font-file"jiskan24.pcf"))ffU(define-macromin-common(g(font-classascii-jtex-kanji)(kanji-fontjtex-min)(g(kanji-font-magnification0.85)(metric-adjustment-file"jiskan24.adj"))U(define-macrogoth-common(g(font-classascii-jtex-kanji)(kanji-fontjtex-goth)(g(kanji-font-magnification0.85)(metric-adjustment-file"jiskan24.adj"))U(define-macrotmin-common(g(font-classascii-jtex-kanji)(kanji-fontjtex-tmin)(g(kanji-font-magnification0.85)(metric-adjustment-file"jiskan24v.adj"))U(define-macrotgoth-common(g(font-classascii-jtex-kanji)(kanji-fontjtex-tgoth)(g(kanji-font-magnification0.85)(metric-adjustment-file"jiskan24v.adj"))U(define-fontmin5.jtexR(kanji-font-point-size T5)min-common)U(define-fontmin6.jtexR(kanji-font-point-size T6)min-common)U(define-fontmin7.jtexR(kanji-font-point-size T7)min-common)U(define-fontmin8.jtexR(kanji-font-point-size T8)min-common)U(define-fontmin9.jtexR(kanji-font-point-size T9)min-common)U(define-fontmin10.jtex(kanji-font-point-size10) Tmin-common)U(define-fontgoth5.jtex(kanji-font-point-size T5)goth-common)U(define-fontgoth6.jtex(kanji-font-point-size T6)goth-common)U(define-fontgoth7.jtex(kanji-font-point-size T7)goth-common)U(define-fontgoth8.jtex(kanji-font-point-size T8)goth-common)U(define-fontgoth9.jtex(kanji-font-point-size T9)goth-common)U(define-fontgoth10.jtex>(kanji-font-point-size10) Tgoth-common)U(define-fonttmin5.jtex(kanji-font-point-size T5)tmin-common)U(define-fonttmin6.jtex(kanji-font-point-size T6)tmin-common)U(define-fonttmin7.jtex(kanji-font-point-size T7)tmin-common)U(define-fonttmin8.jtex(kanji-font-point-size T8)tmin-common)U(define-fonttmin9.jtex(kanji-font-point-size T9)tmin-common)U(define-fonttmin10.jtex>(kanji-font-point-size10) Ttmin-common)U(define-fonttgoth5.jtex>(kanji-font-point-size T5)tgoth-common)U(define-fonttgoth6.jtex>(kanji-font-point-size T6)tgoth-common)U(define-fonttgoth7.jtex>(kanji-font-point-size T7)tgoth-common)U(define-fonttgoth8.jtex>(kanji-font-point-size T8)tgoth-common)U(define-fonttgoth9.jtex>(kanji-font-point-size T9)tgoth-common)U(define-fonttgoth10.jtex T(kanji-font-point-size10)tgoth-common)U;;-----------------------------------------------------------------U;;EOFEۍChapterf6:Weritingav ibMcap-FV693)^׍X6.29Examplef@v ibs3cap3!ThisisanexampleforT,[wEB XD!VIdrivers.GThisv ibMcapdesgnatesVFlibtousePK les.Feor 33missingfPK les,blac!k"bMoxes"byTFMfontsareusedassubstitutesofglyphsofPK les͍U;;-----------------------------------------------------------------U;;>VFlibDefaultU;;-----------------------------------------------------------------U(define-defaultVFlib(g(extension-hints T("pk"TeX)("gf"TeX))(g(implicit-font-classes)(g(uncompression-programs T(".Z""zcat")(".gz""gzip-cd"))(g(variable-values T(TeX_USE_KPATHSEA"}"Yes")(TeX_DPIV:"300") T;;or"600"(TeX_KPATHSEA_MODER"cx")>;;or"ljfour"(TeX_KPATHSEA_PROGRAM T"/usr/local/bin/xldvi"))(g(use-kpathsea?TeX-relatedFontClassDefaultandTeXFontMapperU;;-----------------------------------------------------------------U(define-default TTeX(g(tfm-directories T"TEXMF""/usr/local/lib/jtex/fonts""/usr/local/lib/tex/fonts")(g(tfm-filename-extensions T".tfm")(g(font-mapping.'S((pk"%f.%dpk")*).'S((tfm"%f.%dtfm")*))(g(resolution-accuracy0.02)(g(resolution-corrections.'S(240 T;;sparcptr3240 T263288312346415498597).'S(300 T;;cx3300 T32936043251862274689610751290 T240270).'S(400 T;;sparcptr3400 T438480576691829995119414331720 T320360).'S(600 T;;ljfour3600 T657720864103712441493179221502580 T480540))(g(dpi$TeX_DPI))U;;-----------------------------------------------------------------U;;>PKFontClassDefaultU;;-----------------------------------------------------------------U(define-defaultpk(g(font-directories"TEXMF"))U;;-----------------------------------------------------------------U;;>TFMFontClassDefaultU;;-----------------------------------------------------------------F 70"2VFlibf3.6.143)^׍U(define-defaulttfm 33(g(glyph-style T"fill"))ffU;;-----------------------------------------------------------------U;EOFGTChapterf7:Debuggingav ibMcaps713)^׍O7 QDebuggingzav ib=cap33Thereisnoutilit!yprogramsthatcheckssyntaxofav ibMcap le.?ButVFlibcheckssyntax 33offv ibMcap lewhenafon!tdriverisinitializedorafontisopMened.33VFliboprin!tsamessagetoinformauserifsyntaxisillegal,z&unde nedcapabilityisused(thisma!yXBbMeatypMographicalerror),essentialcapabilityismissing,anunde nedmacroisused,orformsfofcapabilit!yvdDaluesareillegal.Theffollo!wingUnixenvironmentvdDariablesareusedtoprintdebuggingmessages.33VFLIB_DEBUG_FONT_OPEN9|fIfthisen!vironmentfvdDariableisde ned,theproMcessesoffon!topensareprin!ted.VFLIB_DEBUG_FONT_SEARCH9|fIfthisvdDariableisde ned,theproMcessesoffon!topensareprin!tedVFLIB_DEBUG_VFLIBCAP9|fIfthisvdDariableisde ned,theproMcessofreadingofv ibcap leisprin!ted.VFLIB_DEBUG_PARAMETERS9|$HIfthisvdDariableisde ned,>NVFlibprin!tshowparameters(vdDariables)inv ibMcap le9arefsubstituted.VFLIB_DEBUG_CCV9|fIfthisvdDariableisde ned,theproMcessofreadingCCV lesisprin!ted.VFLIB_DEBUG_CCV_MAPPING9|fIfthisvdDariableisde ned,encoMdingcon!versionsfbyCCVareprinted.HJ72"2VFlibf3.6.143)IFChapterf8:CoMdecon!versionfsystem{733)^׍O8 QCo=dezconuversionsystemCoMde con!versionsystem(CCV) risusedtoconvertfromacharactersetandanencoMdingto 33another.#FeorY8example,hafon!tofUnicoMdecharactersetandUnicoMdeencodingcanbeaccessedasISO8859-2c!haractersetofISOencoMdingb!yencodingcon!version.TerueTypefontclassmakesuseofthisfeaturetohidein!visibleinternalfontencoMdingschemeandprovidesdesiredexternalviewftousers.Con!versionfruleisgiv!enbyoneofthefollowingtwomethoMdsdIn!ternal:functionsinVFlib(writteninC)4ThesefunctionsarehardcoMdedandnewconver- 33dsionsfrulescannotbMeaddedwithoutmodifyingsourcecode.dExternal les,&calledCCV les. AlistofCCV lestobMeusedisspeci edincode-dconversion-filesfcapabilit!yofVFlibdefault. =X8.1Howf@CCVworks%Eac!hfconversionrulehasthefollowinginformation.dEXTERNALfc!harsetnamedEXTERNALfencoMdingnamedINTERNALfc!harsetnamedINTERNALfencoMdingnamedotherfinfosuc!hasformatandsizeofconversiontable...䱍OnIin!voMcationofVFlib,,theseinformationisreadfromeachCCV. les.(CCV lesarenotfullygloadedatinitializationofVFlib;hVFlibjustc!hecksgrelationofcon!version.Conversiongtables,whic!hcanbMelarge,3areloadedondemand.)Inaddition,whenVFlibisinitialized,in!ternalCCVfunctionsfareinstalledandtheseinformationisgiv!enforeachconversionfunction."EXTERNAL";"meansexternalview(i.e.,PusersideencoMding)and"INTERNAL"meansin!ternal1lview(i.e.,-fontencoMding). ~Userscande nearbitrarycharsetandencoMdingnames,except_thatsomefon!tdrivermayprede nednamesforinternaluse.K(TerueTypMefontdriverusessomefprede nednames,suc!has"unicoMde".)CCVsystemhasacon!versiontablesearc!hingmechanism. Teableissearchedbysourcec!harset/encoMding ynamesanddestinationcharset/encoMdingnames. IfthereisaCCV _ lelistedincode_conversion_filescapabilit!yofVFlibdefaultsentryinv ibMcapthatmatchescharsetandfencoMdingname,theCCV leisdynamicallyloadedandusedforcodecon!version.Feorexample,^aCCV leiso8859-1_unicode.ccvhasthefollo!wingcharset/encoMdingnames:dEXTERNALfc!harsetname:ISO8859-1dEXTERNALfc!harsetencoMding:ISOdINTERNALfc!harsetname:UNICODEdINTERNALfc!harsetencoMding:UNICODE䱍Byl!thisCCVl le,waunicoMdefon!tcanbeview!edasaISOlencodingofISOl8859-1c!harset.q(Itis6v!eryimpMortanttonotethatnamesarejustsymbMolsandnothaveanymeaning;FintheabMoveexample,fcon!versiontoISOencoMdingisimplementedbyconversiontablebModyinCCV le.)InBthecurren!timplementation,BDF,PCF,HBF,andTerueTypMefontdriversuseCCVsystem.Infthefollo!wing,howTerueTypMefontdriverusesCCVisdescribMed.Eac!hTerueTypMefonthasinformationabMoutcharsetnameandencoMdingnameofthefont.Whenafon!tentryisde nedinv ibMcap leandencodingandcharacter-setcapabilityisde ned,#Ssa!ye,Eand WCrespMectivelye. AccordingtointernalcharsetandencoMdinginformationofTerueT!ypMefont,thedriversearchesaCCVtable,whentheVFlibfontisopMened,thatmatchestheffollo!wingconversionrelation.J74"2VFlibf3.6.143)^׍dEXTERNALfc!harsetname:E""dEXTERNALfc!harsetencoMding:CdINTERNALfc!harsetname:pMossiblye,UNICODE(fromfont leinfo)dINTERNALfc!harsetencoMding:possiblye,fUNICODE(fromfont leinfo)If.notfound,Qcon!version.isimpMossible.6Iffound,aCCV lefoundisused.6Afterafon!t 33isopMened,JMCCV”tableisusedforcon!vertingcodepoin!tsforVFliboperationsuc!hasVF_GetBitmap1().͍X8.2Thef@internal(hardcos3ded)CCVfunctionsUUVFlibfhassev!eralhardcoMdedCCVfunctions.FeollowingsCCVfunctionsareimplemented.""dfromfISO-2022(ISO2022)toShiftJIS(SJIS)dfromfShiftJIS(SJIS)toISO2022(ISO2022)dfromfEUC(EUC)toISO2022(ISO2022)dfromfRo!w-Cell(Row-Cell)toISO2022(ISO2022)dfromfISO-2022(ISO2022)toRo!w-Cell(Row-Cell)dfromfISO-2022(ISO2022)toWeanSung(WanSung)dfromfRo!w-Cell(Row-Cell)toWeanSung(WanSung)dfromfISO-2022(ISO2022)toSequen!tialNumbMering(Sequential2-0andSequential2-1)dBytheseencoMdingsc!hemes, [charactersaren!umberedsequentiallystartingfrom0 33d(Sequential2-0)or1(Sequential2-1).Thatis,Sequential2-0encoMdingisanencodingdsuc!hethatcoMdeofthe rstcharacteris0,3coMdeofthesecondis1,...,andcoMdeofthei-thdc!haracter]is(i-1). Sequential2-1encoMdingisanencodingsuc!hthatcodeofthe rstdc!haracter9is1,ncoMdeofthesecondis2,...,andcoMdeofthei-this(i).WExternalcodepoin!tdm!ust+bMeencodedt!wo-byte,ޜi.e.,0x2121...7e7e.,These+vdDaluesarecon!verted+to0...8835ord1...8836.EncoMdingonameJISisde nedasanaliasofISO2022.EncodingnameKu-Tenisde nedasanfaliasofRow-Cell.Notethatthesealiasesarede nedonlyforhardcordedCCVfunctions.""AllUoftheseareimplemen!tedsimplearithmeticandlargeconversiontablesarenotnecessaryinfmemorye.͍X8.3Thef@syntaxofCCV lesUUThesyn!taxofCCV lesislisp-likenotation, Gsimilartov ibMcap les.TheCCV lede nesitso!wndirectiveset,8explainedbMelow.Acodeconversiontableisdividedinseveralsub-tablestoCreducethe lesize(andmemorysizewhenthe leisloadedin!tomemory).uThesub-tablesarefcalled`bloMc!ks'.(charset-external-nameffrom-cs-nameDs)(charset-external-encodingffrom-cs-encDs)(charset-internal-namefto-cs-nameDs)(charset-internal-encodingfto-cs-encDs)9|&ZThesefourdirectiv!esdescribMescharactersetandencoMdinginformationofconver-9sion.(table-typeftypeDs)9t!ypMeCmmustfbeoneofthefollo!wing:""OWarrayK-Chapterf8:CoMdecon!versionfsystem{753)^׍OWrandom-arrays(c1-minfc1minDs) 33(c1-maxfc1maxDs)(c2-minfc2minDs)(c2-maxfc2maxDs)(block-sizefsizeDs)(nblocksfnblocksDs)(blockfblockcode0code1...)LetfcPjbMeacodepoin!tofacharactertobMeconvertedbythisCCV le.It iscon!verted asfollo!ws.LLetc1bMec/sizeandc2bMecʼmodulosize.LThebloc!knumbMerb 33thatryshouldbMereferredtoisc1-c1min.BThepositioniinthebloc!kbisc2-c2min.BThus,~thevdDaluefofi-then!tryofabloMcknumbMeredb isconvertedcoMdepoin!t.c1max,Hc2maxand'n!bloMcks@areusedinternallytodeterminethenecessarymemoryareatoloadfthetable.Theoreticallye,Iarray2isenoughforthevdDaluefortable-typedirectiv!e.IButincasethatthereareman!ybloMcksthatdonothaveconversionentries.ThisishappMeninthecaseofCNS11643c!haracter{set(aHanjicharactersetinTeaiwan).ϱTo{reducethetablesize,dsomeofbloMckscanbMeomittedfb!ygivingrandom-arrayfortable-typedirective.Incaseofarray,loMokupforcodecon!versionisimplemen!tedbyindexinganentirearraye,whic!hdisveryfast.Incaseofrandom-array,UNICODEU(charset-external-nameISO8859-1)U(charset-external-encodingISO)U(charset-internal-nameUNICODE)U(charset-internal-encodingUNICODE)U(table-typearray)U;CodepointCisconvertedtoC'bythefollowingformula:U;>C'=Table[(c1-c1min)*M+(c2-c2min)],U;>wherec1=C/Bandc2=C%B,andM=c2max-c2min+1.U;>Bisablocksizegivenbythe'block-size:'parameter.U(c1-min0x0)U(c1-max0x0)U(c2-min0x20)U(c2-max0xff)U(block-size256)U(nblocks1)U;0x0020...0x00ffU(block030x00200x00210x00220x00230x00240x00250x00260x002730x00280x00290x002a0x002b0x002c0x002d0x002e0x002fL:,76"2VFlibf3.6.143)^׍30x00300x00310x00320x00330x00340x00350x00360x0037 3330x00380x00390x003a0x003b0x003c0x003d0x003e0x003f30x00400x00410x00420x00430x00440x00450x00460x004730x00480x00490x004a0x004b0x004c0x004d0x004e0x004f30x00500x00510x00520x00530x00540x00550x00560x005730x00580x00590x005a0x005b0x005c0x005d0x005e0x005f30x00600x00610x00620x00630x00640x00650x00660x006730x00680x00690x006a0x006b0x006c0x006d0x006e0x006f30x00700x00710x00720x00730x00740x00750x00760x007730x00780x00790x007a0x007b0x007c0x007d0x007e-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-130x00a00x00a10x00a20x00a30x00a40x00a50x00a60x00a730x00a80x00a90x00aa0x00ab0x00ac0x00ad0x00ae0x00af30x00b00x00b10x00b20x00b30x00b40x00b50x00b60x00b730x00b80x00b90x00ba0x00bb0x00bc0x00bd0x00be0x00bf30x00c00x00c10x00c20x00c30x00c40x00c50x00c60x00c730x00c80x00c90x00ca0x00cb0x00cc0x00cd0x00ce0x00cf30x00d00x00d10x00d20x00d30x00d40x00d50x00d60x00d730x00d80x00d90x00da0x00db0x00dc0x00dd0x00de0x00df30x00e00x00e10x00e20x00e30x00e40x00e50x00e60x00e730x00e80x00e90x00ea0x00eb0x00ec0x00ed0x00ee0x00ef30x00f00x00f10x00f20x00f30x00f40x00f50x00f60x00f730x00f80x00f90x00fa0x00fb0x00fc0x00fd0x00fe0x00ff)̍X8.5Examplef@ofaCCV le2UUThefollo!wingexampleisaCCV lethatvirtuallyprovidesaCNS11643Plane1characterset)fon!tusingaUnicoMdefont.%This leisdistributedwithVFlibandinstalledbythenamecns11643-1_unicode.ccv.""Thisf leisanexampleofCCV lesthatha!vefrandom-arraysfortable-typedirectiv!e.U;Conversiontable:CNS11643-1==>UNICODE 33U(charset-external-nameCNS11643-1)U(charset-external-encodingISO2022)U(charset-internal-nameUNICODE)U(charset-internal-encodingUNICODE)U(table-typerandom-arrays)U;CodepointCisconvertedtoC'bythefollowingformula:U;>C'=Table[(c1-c1min)*M+(c2-c2min)],U;>wherec1=C/Bandc2=C%B,andM=c2max-c2min+1.U;>Bisablocksizegivenbythe'block-size:'parameter.U(c1-min0x121)U(c1-max0xe67)U(c2-min0x21)U(c2-max0x7e)U(block-size256)U(nblocks218)U;0x12121...0x1217eU(block0MFgChapterf8:CoMdecon!versionfsystem{773)^׍30x30000xff0c0x30010x30020xff0e0x30fb0xff1b0xff1a 3330xff1f0xff010xfe300x20260x20250xfe500xfe510xfe5230x00b70xfe540xfe550xfe560xfe570xfe310x20140xfe3230x2013-1R-1-1-10xff080xff090xfe3530xfe360xff5b0xff5d0xfe370xfe380x30140x30150xfe3930xfe3a0x30100x30110xfe3b0xfe3c0x300a0x300b0xfe3d30xfe3e0x30080x30090xfe3f0xfe400x300c0x300d0xfe4130xfe420x300e0x300f0xfe430xfe440xfe590xfe5a0xfe5b30xfe5c0xfe5d0xfe5e0x20180x20190x201c0x201d0x301d30x301e0x20320x20350xff030xff060xff0a0x203b0x00a730x30030x25cb0x25cf0x25b30x25b20x25ce0x26060x260530x25c70x25c60x25a10x25a00x25bd0x25bc)U;0x12221...0x1227eU(block130x32a30x21050x203e-1R0xff3f-10xfe490xfe4a30xfe4d0xfe4e0xfe4b0xfe4c0xfe5f0xfe600xfe610xff0b30xff0d0x00d70x00f70x00b10x221a0xff1c0xff1e0xff1d30x22660x22670x22600x221e0x22520x22610xfe620xfe6330xfe640xfe660xfe650x223c0x22290x222a0x22a50x222030x221f0x22bf0x33d20x33d10x222b0x222e0x22350x223430x26400x26420x26410x26090x21910x21930x21920x219030x21960x21970x21990x21980x20160xff5c0xff0f0xff3c30x22150xfe680xff040xffe50x30120xffe00xffe10xff0530xff200x21030x21090xfe690xfe6a0xfe6b0x33d50x339c30x339d0x339e0x33ce0x33a10x338e0x338f0x33c40x00b030x51590x515b0x515e0x515d0x51610x5163)U;0x12321...0x1237eU(block230x55e70x74e90x7cce0x25810x25820x25830x25840x258530x25860x25870x25880x258f0x258e0x258d0x258c0x258b30x258a0x25890x253c0x25340x252c0x25240x251c0x259430x25000x25020x25950x250c0x25100x25140x25180x256d30x256e0x25700x256f0x25500x255e0x256a0x25610x25e230x25e30x25e50x25e40x25710x25720x2573-1R-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1)ffU...it'sverylong,snip,snip,snip...U;0xe6621...0xe667e 33U(block339730x7bd00x7c2f0x7c320x7c420x7c4e0x7c680x7ca90x7ced30x7dd00x7e070x7dd30x7e640x7f40-1R0x80410x806330x80bb0x67110x67250x82480x83100x83620x83120x842130x841e0x84e20x84de0x84e10x85730x85d40x85f50x863730x86450x86720x874a0x87a90x87a50x87f50x88340x885030x88870x89540x89840x8b030x8c520x8cd80x8d0c0x8d1830x8db00x8ebc0x8ed50x8faa0x909c-1R0x915c0x922bNQD78"2VFlibf3.6.143)^׍30x92210x92730x92f40x92f50x933f0x93420x93860x93be 3330x93bc0x93bd0x93f10x93f20x93ef0x94220x94230x942430x94670x94660x95970x95ce0x95e70x973b0x974d0x98e430x99420x9b1d0x9b98-1R0x9d490x64490x5e710x5e8530x61d30x990e0x80020x781e-1R-1)U;0xe6721...0xe677eU(block339830x55280x55720x55ba0x55f00x55ee0x56b80x56b90x56c430x80530x92b0-1R-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1-1-13-1R-1-1-1-1-1)O\Chapterf9:Utilit!yprograms4ɤ793)^׍O9 QUtilituyzprograms(}X9.1v mkcaptexvflmkcaptexmisautilit!yprogramtogeneratev ibMcap leforT,[wEB XRDVIdrivermsoftwareau- 33tomaticallye.ۙWithsimplecommandlinearugmen!ts,av ibMcapthatusesPK,GF,VirtualFon!t,T!ypMef1fontswithcomplexT,[wEB Xfontmappingrules.㎍Usage:vflmkcaptexf[OPTIONS...][CLASS...]Usage:vflmkcaptexf[SHOReTCUTp][OPTIONS...]`CLASS...Ds'4isalistoffon!tclassnamestosuppMortbyv ibMcap letobegenerated.(H`OP- 33TIONS...Ds'tisoptionlisttocustomizedefaultsettings.>`SHORTCUT'isashortcutnametot!ypicaloptionsfandclassnamelist.㎍Shortcut:minimumMThisfisthesameascommandlineoptionpk.UsePKfon!tsonlye.simpleRThisisthesameascommandlineoption-gpktfm.UsePKfon!ts.IfPKfon!t 339 leismissing,"itisgeneratedon-the- ye.oIffon!tcannotbMecreated,blac!ksquareis9displa!yedfinsteadofc!haracterglyph(aslongascorrespMondingTFM leexists).standard ӣThisisthesameascommandlineoption-t1-g.:Usedefaultclasslisttype1vf9pktfm.MissingfPKfon!tiscreatedon-the- ye.simple-ja9Thisisthesameascommandlineoption-gpktfm-jtex-jisx0212-jpcf.9(JapanesefsuppMortforsimpleshortcut.)standard-ja9ThisǛisthesameascommandlineoption-t1-g-jtex-jisx0212-jpcf.9(JapanesefsuppMortforstandardshortcut.)Feon!tfclasslist:gf.QEnablestouseGFԾfon!t les.lFeorsearchingfont les,kpathseaisused.9That 2is, $fon!t lesaresearchedunderT,[wEB X `texmf'directory(typicallye,9`/usr/local/share/texmf').pk.QEnablesftousePKfon!t les.Feorsearchingfont les,kpathseaisused.vf.QEnablesftouseVirtualFeon!t les.Forsearc!hingfont les,kpathseaisused.tfm(Enablesk6touseTFMk les.,NThisoptionenablestodispla!yblacksquareinsteadof9glyph.ThesizeofsquareobMeysfon!tmetricofeachcharacter.Thisisusefulwhen9glyphf le(e.g.,PK,T!ypMe1)ismissing.type1Enables%touseT!ypMe1fonts.'(Currentlye,/itsuppMortsRomanfonts.'CJK fontsare9notfsuppMorted.)Feorsearc!hingfont les,kpathseaisused.㎍9By:thisoption,1ofon!tde nitionsforPostScriptfontsusedinT,[wEB XDVI les:are9generated)b!yreading`psfonts.map'ofdvips. H'EachPostScriptfontlistedin9`psfonts.map'0isc!hecked0ifitexists. }(FeorP!ostScriptfonts,hthisprogramauto-9maticallysearc!hsAdobMeAcrobat3and4fontdirectories.)IfaPostScriptfont9in}Xquestionisnotfound,Ghostscriptfon!tde nition le`Fontmap'ischeckedto9substitutefthefon!tbyafontinGhostscriptfontdirectorye.9This!featureisv!eryusefulfordisplayingandprintingT,[wEB XDVI les!withPostScript9fon!ts.FSo,IwrecommnedwobtainAdobMeAcrobat3and4forTypMe1PostScriptfonts.9(Lin!uxfversionarefreelyavdDailable.)P`80"2VFlibf3.6.143)^׍When7afon!tisrequestedtoopMen,[KthefontistriedtoopMenbyfontclassesbytheorderin 33thefcommandline.(So,b!y8a`vflibcap'generatedbythefollowingexample,fontinPK/formatisrearched rst.Iffafon!tinPKformatisnotfound,fontinTypMe1formatissearchednext.Uvflmkcaptexpktype1Therefore,ftheorderoffon!tclassesdecidesthepriorityoffont leformatstosearch.Options:---helpRPrin!tfalistofcommandlineoptionsandexit.'--version9Prin!tfversionnumbMerofthisprogramandexit.-pPROGMApplicationtjprogramname.4Thisisusedb!ykpathseaforfont lesearch.4Defaultis9xgdvi,fwhic!hisaDVIpreviewerintheT,[wEB X-GuypackdDage.-nMODEMDevicefmoMdenameforfon!t lesearch,usedbykpathsea.Defaultiscx-rDPIRDevicefresolutioninDPI.Defaultis300.9Ifathisoptionisnotgiv!en,vflmkcaptexreads`mode.mf',whic!hisadevicemoMde9de nitionf leforMETeAF!ONT,andobtainsreviceresolutionautomatically.-g.QCon guref`vflibcap'togeneratenon-existingPK leson-the- ye.-pk(Whens`CLASS...Ds'isnotgiv!en,0 defaultfontclasssetisassumedbydefault.Feorsuch9case,generatea`vflibcap'tosearc!hPKfont lebMeforesearchingTypMe1fontby9thisfoption.-t1(When!`CLASS...Ds'isnotgiv!en,Egeneratea`vflibcap'tosearchTypMe1font le9bMeforefsearc!hingPKfont lebythisoption.-OptionsfforJapaneseT,nEXsuppMort:-jtexGenerateAfon!tde nitionsforJISX0208charactersetusedbyJapaneseT,[wEB X.By 339default,aQaP `vflibcap'tobMegeneratedusesJapaneseKanjic!haracterinPCFOformat9(infX11fon!tdirectory).Seealso`-jpcf',`-jekanji'and`-jttf'options.-jisx02129GenerateSfon!tde nitionsforJIS?X0208charactersetusedbyJapaneseT,[wEB X.Note9that4`generatedfon!tnamesarenotstandard.ItisusedforprivdDateuseoftheauthor.-jpcfSwitc!hftousePCFfontsforJapaneseKanjicharacters.(Thisisthedefault.)-jekanji ӣSwitc!h؄touseeKanjifontsforJapaneseKanjicharacters.t8SeeSection6.17[eKanji9fon!tfclass],page47fordetailabMouteKanjifonts.-jttfSwitc!hftouseTerueTypMefontsforJapaneseKanjicharacters.-jpfdDIR9AddGaPCFGxfon!tdirectorye.vflmkcaptexcheckstypicalX11PCFGxfontdirectories9andiexistingdirectoriesareaddedtoPCFifon!tdirectorylist.'Thisoptionshould9bMelusedwheny!ouwanttoaddoptional(andnotautomaticallydetected)PCFlfont9directorye.ThisfoptioncanbMeusedm!ultipletimes.-jefdDIR9AddfaeKanjifon!tdirectorye.ThisoptioncanbMeusedmultipletimes.-jtfdDIR9AddfaTerueT!ypMefontdirectorye.ThisoptioncanbMeusedmultipletimes.Qn{Chapterf9:Utilit!yprograms4ɤ813)^׍-jtdbFILE 339BySthisoption,anexternalde nitiondatabase leFILEisreadforgenerating9de nitionswofnon-standardT,[wEB XwJapanesefon!tsusingJapaneseTerueTypMefont les.9Eac!h\}lineinFILEisapairof(1)fontnameusedinT,[wEB X\jand(2)TerueTypMefont le9name.Feollo!wingfisanexample:--VHdfailpaadcail5.ttcVHdfainpaadcai5.ttcVHdfaispaadcais5.ttcVHdfbrrsaadfbrr7.ttcVHdfbrrzaadfbrrc.ttcVHdfbrspaadfbrs5.ttcVHdfbrsvaadfbrs9.ttcVHdfbrszaadfbrsc.ttc9Seef lesinadirectory`ascii-jtex/'fordetail.''vflmkcaptex_isaUnixShellscript.EItusesfollo!wingprogramstogeneratea`vflibcap' le.Descriptionsqfthefollo!wngprogramsareommitedsincemostofusersneverusethemdirectlye.Feorfdetails,in!vokefeachprogramwith`--help'optiontoseehowtouseit.vflmkvfl ӣAfgeneratorforVFlibdefaults.(SeeSection6.9[VFlibdefaults],page36.)vflmktex ӣA<_generatordefault$v ibMcapis`/usr/local/share/VFlib/3.6.14/vflibcap'.)J-s%shrink vflserverhasafeaturetoprin!tobtainedbitmapsinASCIMI-artstylefordebugging9purpMose.Whenthisfeatureisenabled,rbitmapsareshrink!edbythisfactor.Thisis9e ectiv!efwhenobtainedbitmapsarehuge.cmd- le...SAsequenceofcommandscanbMereadfrom les.Commandsin lescmd- le...are9executed=ingiv!enorder.cAfterexecutingall les,vflserverreadsasequenceof9commandsxfromstandardinput.U7Th!us,vquitcommandmaybMeexplicitlygivenin9cmd- le.ThisQoptionise ectiv!eintheproMcessoffontdriverdevelopmenttodothe9samefcommandsman!ytimes..a10.1.2d(UsingMv servervianetwork}Beforeeusingvflservervianet!work,ritemustbMeinstalledtobein!vokedbyinetd.WYeoumustbMefaroottodothefollo!wingprocedures.JFirst,fedit`/etc/services':dNet!workfservicename:v serv!er>dWeellfkno!wnpMort:4681dProtoMcol:tcpV;Addfthefollo!winglineto`/etc/inetd.conf'.JUvflserverstreamtcpnowaitnobody/usr/local/bin/vflservervflserverIfy!ouneedtoexplicitlyspMecifyav ibcap letobeused,y!oumustgive`-v'optionasfollows:Uvflserverstreamtcpnowaitnobady/usr/local/bin/vflservervflserver-v/foo/vflibcapTeofforceinetdtore-read`inetd.conf',sendaHUPsignaltoinetd.Weey nishedinstallingv serv!ertousevianetwork.Now,usetelnettocheckifvflserver 33isfcorrectlyinstalledtonet!workfservice.Thefollo!winganexampleinteraction.U%telnetlocalhostvflserverUTrying127.0.0.1...UConnectedtolocalhost.UEscapecharacteris'^]'.T荟84"2VFlibf3.6.143)^׍U;ThisisafontserverVFLSERVERVersion2.0FriMar1311:58:42JST1998 33(g...ffU;Type`HELP'fordescriptionoftheprotocol.U(100"vflserverready.")Uopen1timR14.pcfU(1000"timR14.pcf")UdebugbitmaponU(100"Ascii-artbitmapon.")Ubitmap100x67U(1008130990""3eccc4c4cc78407c7f83c1e27c"U""89012345678901"+------------+U9|D|9U0|..@@@@@.>|0U1|@@..@@..>|1U2|@@...@..>|2U3|@@...@..>|3U4|@@..@@..>|4U5|.@@@@...>|5U6|.@......>|6U7|.@@@@@..>|7U8|.@@@@@@@>|8U9|+.....@@o|9U0|@@.....@>|0U1|@@@...@.>|1U2|.@@@@@..>|2U3|D|3"+------------+"89012345678901U")UquitU(100"HappyHacking")UConnectionclosedbyforeignhost.%̍a10.1.3d(TheMprotoicolofv server210.1.3.1d(Introiduction"̍TheVFLSERȈVERProtoMcolisacomm!unicationprotocolbet!weenaserv!erwhicho ersfontservicefandaclien!twhichusesfonts.Theic!haractersetassumedbythisprotoMcolisASCIIJc!haracterset.?Alineisasequenceofc!haracterterminatedbyanewlinecharacterandcommunicationbMetweenaserverandaclientisfline-orien!ted.UChapterf10:Sampleprograms+853)^׍a10.1.3.2d(ReplyMFģormatofaServerEac!h[requesttoaserverbyaclienttakesaformofaline.Thefollowingareexamplesof 33clien!t'sfrequests.㍑UOPEN1timR24.pcfUDEBUGBITMAPONUBITMAP1133A؁replyb!yaservertoaclientisanS-expression,%j(lisp-likenotation).uThefollowingareexamplesfofserv!er'srespMonse.U(1000"timR14.pcf")U(100"Ascii-artbitmapon.")U(1008130990"3eccc4c4cc78407c7f83c1e27c")The3 rstn!umbMer3oftheresponseofeac!hreplybyaserverareformedbydecimaldigitsandthese|{threedigitsindicatesthestatusofanexecutionofclien!t'srequest.Thus,thisthreedigitsisfastatuscoMde.They rstdigitisoneof`1',`2',....,`5'.Ifythisdigitis`1',itthereisnoerroratall.Ifitis`5',Itthere(aresomeerrorstoac!hieve(arequest.e3Accordingtothedegreeoffatalness,thedigitisAadecided;Itis`1'ifnoerrorisdetectedandis`5'ifsomefatalerrorsaredetectedanditisimpMossibleftocon!tinueftoexecuteaserv!er.Ifitisnot`5',aclientcanreceivesomeresult.Xa10.1.3.3d(TheMProtoicolThe7Xfollo!wingde nescommandsandtheirargumentsbyaclient,andcorrespMondingre-spMonsesDb!yaserver.Commandnameiscase-insensitive,kibutargumentsarecase-sensitive.Intheodescriptionofcommandformat,zargumen!tsenclosedby[]canbMeomitted,zwhileargumentsthatfarenotenclosedb!y[]areessentialargumentsandcannotbMeomitted.OPEN1ffon!t>xHtnameCm[pMoint>xHtsizeCm[mag>xHxgmag>xHy~[dpi>xHxgdpi>xHy~]]]9OpMenkZafon!tinmode1(highresolutiondeviceorien!tedmode).,Thiscorresponds9to0VF_OpenFont1()function.XxHtnameCm[pixel>xHsizeCm[mag>xHxgmag>xHy~]]9OpMenafon!tinmode2(lo!wresolutiondeviceorientedmoMde).'Thiscorresponds9to0VF_OpenFont2()function.XxHtid9Closedfafon!t.㍑9RespMonse:(statusmessage)BITMAP1ffon!t>xHtidcoMde>xHpoin!tf[fmag>xHxgmag>xHy~]9Obtain abitmap. fon!t>xHtid_isafontid. ThiscommandcorrespMondstoVF_9GetBitmap1()ffunctionofVFlib.V͍86"2VFlibf3.6.143)^׍9RespMonse:l9Whenthecommandissuccessful:o(statuswidthheightoffxoffymvxmvy 339bitmap)swidthgandheigh!tgisasizeofbitmapinpixels.bitmaphisencoMdedassasequenceofhexadecimaln!umbMer.Eightpixelsareencodedtot!woshexadecimal_n!umbMerandtheweightofthei-th(0 <=i<8)pixelfromsthe+leftmostpixelis0x80>>i."+bitmap,is+asequenceofencoMdedofsrasters;the: rstrasterbMeginsfromtheupperleftcornertoupperrigh!tscorner.GThen,it4isfollo!wed4bynextraster(onepixeldownfromthes rsteraster).ZOnerasteris(wKnidth+7)=8eb!ytes,randbitmapcontainsansencoMdedbitmapof((wKnidth+7)=8)heigdhtb!ytes.uThus,thelengthofsbitmapgisf2n((wKnidth+7)=8)heigdht.9Whenfthecommandfailed:(statusmessage)sstatusindicatesfthatanerroroMccurred.BITMAP2ffon!t>xHtidcoMde>xHpoin!tf[fpixel>xHsizeCm[mag>xHxgmag>xHy~]]9Obtain5 abitmap.ThiscommandcorrespMondstoVF_GetBitmap2()function.Re-9spMonsefisthesameasBITMAP1command.METRIC1ffon!t>xHtidcoMde>xHpoin!tf[fpoint>xHtsizeCm[fmag>xHxgmag>xHy~]]9Obtaindametricinformationofafon!t.ThiscommandcorrespMondstoVF_9GetMetric1()ffunction.Oߍ9RespMonse:9Whenthecommandissuccessful:o(statuswidthheightoffxoffymvxmvy9)sEac!h+elementoftherespMonseisthesameasreturnvdDaluesforBITMAP1scommandfexceptfortheirunitsarepMoin!ts.9Whenfthecommandfailed:(statusmessage)sstatusindicatesfthatanerroroMccurred.METRIC2ffon!t>xHtidcoMde>xHpoin!tf[fpixel>xHsizeCm[mag>xHxgmag>xHy~]]9Obtaindametricinformationofafon!t.ThiscommandcorrespMondstoVF_9GetMetric2()ffunction.Oߍ9RespMonse:SamefasMETRIC1commandexceptforunitsarepoin!ts.FONTBBX1ffon!t>xHtid[mag>xHxgmag>xHy~]9Obtain9fon!tbMoundinginformationofagivenfontfont>xHtidcopMenedinmode1.The9argumen!tӳmag>xHtxmag>xHyaremagni cationfactortobMescaled.eThiscommandcor-9respMondsftoVF_GetFontBoundingBox1()function.Oߍ9RespMonse:9Whenfthecommandissuccessful:(statuswidthheightxoffyoff)swidthWandheigh!tarewidthandheightofbMoundingbo!x,respectivelye.sxo andny!o arethelargesthorizon!talandverticaldisplacementofslo!werdbleftcornerofbMoundingbo!xfromreferencepoin!ts. Notethatsthese vdDaluesdoMesnotguaran!teetheminimality;theyonlyguaranteesthatallc!haracterscanbMecontainedinabMoxdescribMedbythem.pUnitssoffreturnvdDaluesarepMoin!t.9Whenfthecommandfailed:(statusmessage)sstatusindicatesfthatanerroroMccurred.FONTBBX2ffon!t>xHtid[mag>xHxgmag>xHy~]9Argumen!ts'-andreturnvdDaluesarethesameexceptfont>xHtidmustbMeinmode2and9unitsfofreturnvdDaluesarepixel.WoChapterf10:Sampleprograms+873)^׍PROPERTYffon!t>xHtidpropMerty>xHname 339ObtainfapropMert!ynamedpropert!y>xHtnameCmofafontfont>xHtid.Rk9RespMonse:q9Whenfthecommandissuccessful:(statusvalue)9Whenfthecommandfailed:(statusmessage)sstatusindicatesfthatanerroroMccurred.MINIMIZE-BBXf[ ag~]9SelectamoMdewhetherabitmapsen!tfromaservershouldbMeminimizedornot.)If9 agisON,9bMoundingbo!xesofbitmapssentfromaserverisminimizednottocontain9whiteW8pixelsaspMossible.xIf agGPisOFF,gbitmapssen!tfromaserverisnotguaranteed9tobMeminimizedboundingbo!xes.If agisnotgiven, currentmoMdeisreturned.9InitialfmoMdeisOFF.Rk9RespMonse:Thefcurren!tmodeisreturnedev!eniftheoperationfailsorsucceeds.9Whenfthecommandissuccessful:(status-codemode)sMoMdeCmisfoneofONorOFF.9Whenfthecommandfailed:(status-codemode)sMoMdeCmisfoneofONorOFF.QUIT"KFinishfin!teractionbMetweenaserverandaclient.ThisopMerationalwayssucceeds.Rk9RespMonse:(statusmessage)X10.2v test֍vfltestdispla!ysglyphofagivenfontandcharactersbyASCIMI-artformonacharacterterminal. ItFcdoMesnotrequiresXEWindo!wSystem,abutthefontoftheterminalmustbMea xed-widthffon!t,sincebitmapsareprintedbyASCIMI-artform.qUsage:vfltestf[OPTIONS...]F!ONT>xHtNAMEICHAR>xHLISTOptions:ۍ-mode1RAffon!tisopMenedinmode1(highresolutiondeviceorien!tedmode).-mode2RAffon!tisopMenedinmode2(lo!wresolutiondeviceorientedmoMde).-ol(Bitmaps&areobtainedb!yVF_GetOutline()andthenVF_OutlineToBitmap().This 339optionfise ectiv!eonlywhenafontisopMenedinmode1.-vfv ibMcap9Aa leanameofv ibMcaptobeused. Ifthisoptionisnotgiv!en,odefaultv ibcap leis9used.(P!ossiblye,>default$v ibMcapis`/usr/local/share/VFlib/3.6.14/vflibcap'.)-pfpMoin!tfor-ppixel9SpMecify#poin!torpixelsizeofcharacters.qIfthisoptionisnotgiven,&0sizeofcharacters9areforiginalsizeofafon!t.-dqdpiuGiv!eadeviceresolutioninDPI.Thisoptionise ectiveonlywhenafontisopMened9infmoMde1.-mMmagSpMecifyv!erticalandhorizontalmagni cationfactor.Ifthisoptionisnotgiven,9magni cationffactoris1.0.-mxfmag>xHth9SpMecifyhorizon!talmagni cationfactor.Ifthisoptionisnotgiven,ohorizontalmag-9ni cationffactoris1.0.Xe88"2VFlibf3.6.143)^׍-myfmag>xHtv 339SpMecifyv!erticalmagni cationfactor.ݢIfthisoptionisnotgiven,verticalmagni ca-9tionffactoris1.0.!--helpRPrin!tfcommandlineargumentsandkeyopMerationsonawindow.Aflistofc!haracterisasequenceofthefollowingforms.coMde$8iAe`c!haractereqisgivenbycharactercoMde.6Decimal(e.g.,ro`34')andHexa-decimal(e.g., 339`0x67')fn!umbMerscanbeused.from -to ̰ThisformspMeci esc!haractersbyarangeofcharactercoMde,%ffromfromtoto(e.g.,9`0x20f-0x7e').Spacec!haractersarenecessarybMeforeandafterminussign(-).=c!harlist@ThisfformspMeci escharactersbyalistof1-bytecharacters,e.g.,`=abcdefg'.fX10.3v x11=ݍvflx11fdispla!ysglyphofagivenfontinawindow.ItrequiresX11R5orX11R6. Usage:vflx11f[OPTIONS...]F!ONT>xHtNAMEOptions:!-mode1RAffon!tisopMenedinmode1(highresolutiondeviceorien!tedmode).-ol(Bitmaps&areobtainedb!yVF_GetOutline()andthenVF_OutlineToBitmap().This9isfe ectiv!ewhenafontisopMenedinmode1.-mode2RAffon!tisopMenedinmode2(lo!wresolutiondeviceorientedmoMde).-vfv ibMcap9Aa leanameofv ibMcaptobeused. Ifthisoptionisnotgiv!en,odefaultv ibcap leis9used.(P!ossiblye,>default$v ibMcapis`/usr/local/share/VFlib/3.6.14/vflibcap'.)-pfpMoin!tfor-ppixel9SpMecify#poin!torpixelsizeofcharacters.qIfthisoptionisnotgiven,&0sizeofcharacters9areforiginalsizeofafon!t.-mMmagSpMecifyv!erticalandhorizontalmagni cationfactor.Ifthisoptionisnotgiven,9magni cationffactoris1.0.-mxfmag>xHth9SpMecifyhorizon!talmagni cationfactor.Ifthisoptionisnotgiven,ohorizontalmag-9ni cationffactoris1.0.-myfmag>xHtv9SpMecifyv!erticalmagni cationfactor.ݢIfthisoptionisnotgiven,verticalmagni ca-9tionffactoris1.0.--helpRPrin!tfcommandlineargumentsandkeyopMerationsonawindow.Feollo!wingfopMerationsarede nedonavflx11window. cmsy9h̟@ff|v|{Ycmr8q̟ٚff|v䴞i9Finishfvflx11h̟@ffb̟ٚff莍!&i9Goftopreviouspage.h̟@ffTSPC̟ٚffT i9Goftonextpage.h̟@ff\t[̟ff\tIJi9Goftoprevious4page.h̟@ff\t]̟ff\tIJi9Goftonext4page.h̟˼ff4D{̟ٚff'螙i9Goftoprevious16page.Y*Chapterf10:Sampleprograms+893)^׍h̟˼ff4D}̟ٚff'螙i9Goftonext16page.gh̟@ff+̟ٚff'螙i9Enlargefthewindo!w.h̟@ffX-̟ٚffX=i9Shrinkfthewindo!w.h̟@ff<̟ٚff'螙i9Goftothe rstpage.h̟@ff>̟ٚff'螙i9Goftothelastpage.h̟@ff\m̟ٚff\ }i9Markfthecurren!tpage.h̟@ff@g̟ٚff@Bi9Gotofthemark!edpage."X10.4v disolBvfldisolfdispla!ys`disassembledlists'ofvectordataofagivenfontandcoMdepoin!ts.gUsage:vfldisolf[OPTIONS...]F!ONT>xHtNAMEICODE...Options:-vVFLIBCAP 339Aa leanameofv ibMcaptobeused. Ifthisoptionisnotgiv!en,odefaultv ibcap leis9used.(P!ossiblye,>default$v ibMcapis`/usr/local/share/VFlib/3.6.14/vflibcap'.)g-dDPIRResolutionofdeviceindpi.Ifthisoptionisnotgiv!en,defaultresolutionofafont9isfused.-pPOINT ӣP!ointTsizeofc!haracters.Ifthisoptionisnotgiven,defaultpMointsizeofafontis9used.-x.QPrin!tfhexadecimaldumpofoutlinedatainsteadofdisassembledlist."X10.5ctext2pgmBctext2pgmۙcreatesanimage leinPGMforPBMformatfromam!ultilingualtext leencoMdedb!yNcompMoundtextformat.?ItalsosupportsvdDarioustextencodingssuc!hasChinese,9Japanese,Korean FEUCsandShift-JIS.PGM ,andPBMformatsarepMortableformats,%image lescanbeeasilyfcon!vertedtoanotherimageformatsuchasGIF,TIFF.gItfsuppMortsvdDariousc!haractersetsandleft-to-rightandright-to-leftdirectionalities.ISOf8859-1,2,3,4,5,7,8,99|fLatinc!haractersets,includingHebrewwhichiswrittenfromrighttoleft.MulefArabic9|V AnArabicscript,writtenfromrigh!ttoleft.Thischaractersetisusedbythe9m!ultilingualfeditorMule.JISfX0201,JISX0208,JISX02129|fJapanesec!haractersets.GBf2312|AChinesec!haracterset.CNSf11641-1,CNS11641-29|fChinesec!haractersets.KSCf5601 |AHanglec!haracterset.Zƍ90"2VFlibf3.6.143)^׍a10.5.1d(RunningMctext2pgmIUsage:ctext2pgmf[OPTIONS...][ leCm]f|&qctext2pgmreads lex(ifnotgiv!en,Fsreadsstandardinput)andprintsimage letostandard 33output.Example:U%ctext2pgm-pgm-ctext-16-timesDOC-10.txt T>IMAGE.pgm(Nev!erfforgettoredirecttheoutput.)OptionsfforVFlib:-vf"K|B4av ibMcap letobeusedb!yctext2pgm.wDefaultvdDalueis`vflibcap-ctext2pgm'.OptionsfforinputencoMdingandscript:-ctextR|uAssumethatanencoMdingofinput le. (Thisisthedefaultinputencoding.)9Defaultfwritingdirectionalit!yissettoleft-to-right.f9ByȝthisencoMding,+m!ultiplecharactersetcanbMeusedinaninputtextbyescapMe9sequences.MixtureMofscriptsofleft-to-righ!tandright-to-leftdirectionalitiesisalso9suppMorted.-iso-8859-1for-latin-19|CAssumethatinput leisencoMdedb!yiso-8859-1.'Escapesequenceisnotallo!wed9infinput le.Defaultwritingdirectionalit!yissettoleft-to-right.-iso-8859-2for-latin-29|CAssumethatinput leisencoMdedb!yiso-8859-2.'Escapesequenceisnotallo!wed9infinput le.Defaultwritingdirectionalit!yissettoleft-to-right.-iso-8859-3for-latin-39|CAssumethatinput leisencoMdedb!yiso-8859-3.'Escapesequenceisnotallo!wed9infinput le.Defaultwritingdirectionalit!yissettoleft-to-right.-iso-8859-4for-latin-49|CAssumethatinput leisencoMdedb!yiso-8859-4.'Escapesequenceisnotallo!wed9infinput le.Defaultwritingdirectionalit!yissettoleft-to-right.-iso-8859-5,f-cyrillicor-russian9|CAssumethatinput leisencoMdedb!yiso-8859-5.'Escapesequenceisnotallo!wed9infinput le.Defaultwritingdirectionalit!yissettoleft-to-right.-iso-8859-7for-greek9|CAssumethatinput leisencoMdedb!yiso-8859-7.'Escapesequenceisnotallo!wed9infinput le.Defaultwritingdirectionalit!yissettoleft-to-right.-iso-8859-8for-hebrew9|CAssumethatinput leisencoMdedb!yiso-8859-7.'Escapesequenceisnotallo!wed9infinput le.Defaultwritingdirectionalit!yissettoright-to-left.-iso-8859-9for-latin-59|CAssumethatinput leisencoMdedb!yiso-8859-9.'Escapesequenceisnotallo!wed9infinput le.Defaultwritingdirectionalit!yissettoleft-to-right.-euc-jpfor-euc-jp19|Assumethatinput leisencoMdedb!yJapaneseEUC.Defaultwritingdirectionality9isfsettoleft-to-righ!t.f9JISX0201Romanc!haractersetisusedforcoMdeset0,1JISX0208isusedforcode9setSL1,cJISS7X0201KanaisusedforcoMdeset2,candJISX0212isusedforcoMdeset3.[dChapterf10:Sampleprograms+913)^׍-euc-jp2 ӣ|fSameas-euc-jp1exceptASCIMIc!haractersetisusedforcodeset0.k-euc-krM|/Assumethatinput leisencoMdedb!yKoreanEUC.Defaultwritingdirectionality 339isfsettoleft-to-righ!t.ύ9ASCIMIfc!haractersetisusedforcodeset0andKSC5601isusedforcodeset1.-euc-cnfor-euc-gb9|Assumethatinput leisencoMdedb!yChineseEUCbysimpli edHanzi.Default9writingfdirectionalit!yissettoleft-to-right.ύ9ASCIMIfc!haractersetisusedforcodeset0,andGB2312isusedforcodeset1.-euc-cns ӣ|9@Assumethatinput leisencoMdedb!yChineseEUC9%bytraditionalHanzi.{Default9writingfdirectionalit!yissettoleft-to-right.ύ9ASCIMIc!haractersetisusedforcodeset0,CNS11643-1isusedforcodeset1,and9CNSf11643-2isusedforcoMdeset3.-sjis| Assumethatinput leisencoMdedb!yShift-JIS.Escapesequenceisnotallo!wed9infinput le.Defaultwritingdirectionalit!yissettoleft-to-right.ύ9ASCIMIfc!haractersetisusedforcodeset0,JISX0208isusedforcodeset1,andOptionsffordirectionalit!y:-l2r"K|fSelectleft-to-righ!tdirectionalityfortypMesetting.-r2l"K|fSelectrigh!t-to-leftdirectionalityfortypMesetting.Optionsfforfon!tselection:-fixed,f-times,-helvor-cour9|oSelectafon!tfamily:pFixed,=Times,Helvetia,oroCourier,respMectivelye.:GDefault9fon!tffamilyisTimes.-boldfor-italic9|dSelectafon!tface:bMoldoritalic(oroblique),1respectiv!elye.2Defaultfaceisnormal.-14,f-16,-18or-249|fSelectafon!tsetof14-,16-,18-,or24-dot,respMectivelye.Defaultfontsizeif16.-scalen ӣ|fSelectascalablefon!tsetandscalesthefontton}qdot.-mm"K|fSpMecifyv!erticalandhorizontalmagni cationfactors.DefaultvdDalueis1.-mxm|fSpMecifyhorizon!talmagni cationfactor.-mym|fSpMecifyv!erticalmagni cationfactor.-font-list9|fPrin!tallinstalledcharactersetsandfontnames.Thenexittheprogram.Optionsffort!ypMesetting:-bs"K|*SpMecifyfactorofbaselineskip. kBaselineofatextismo!ved*thisvdDaluetimes9dot-sizefofaselectedfon!tset.DefaultvdDalueis1.2.-center-line9|fEac!hlineiscentered.Outputimageisverticallyandhorizontallycentered.-flush-left9|Eac!hlineis ushedleft._ThisisdefaultmoMdeifwritingdirectionalityisleft-to-9righ!t.Outputfimageis ushedleft.-left-line9|fEac!hlineis ushedleft,butimageisnot ushedleft.\92"2VFlibf3.6.143)^׍-flush-right 339|Eac!hlineis ushedtoright.ThisisthedefaultmoMdeifwritingdirectionalityis9righ!t-to-left.(NotePthatoptions`-flush-right'and`-r2l'aredi erent|consider9anwEnglishtextincludingArabicw!ordsinthesameline.)YOutputimageis ushed9righ!t.͍-right-line9|fEac!hlineis ushedright,butimageisnot ushedright.It3isimpMortan!ttonoticethatthedi erenceof`-flush-left'and`-left-line'options(and`-flush-right'a;and`-right-line'options).By`-flush-left'option,oinputtextist!ypMesetto usheac!hlineleftandtypMesetresultisplacedintheleftofanoutputimage.bBy`-left-line'option,ïinputtextist!ypMesetto usheachlineleftanddoMesnotspecifyho!wtoputthetypMesetresultinanoutputimage.Thedi erenceappMearswhenthehorizon!talsizeofoutputimageisexplicitlyfgiv!enby`-pw'option.Optionsfforoutput:-pgmfor-pgm-raw9|fSelectbinaryPGMformatforimageoutput.-pgm-ascii9|fSelectasciiPGMformatforimageoutput.ThisisthedefaultoutputmoMde.-pbmfor-pbm-ascii9|fSelectasciiPBMformatforoutputanimage.-ascii-artfor-ascii-art-v9|Animageisprin!tedasanASCIMI art.(Veerticalmode)Baselineisv!ertical;vthus9thisfmoMdeissimilartothebannercommandonUnix.-ascii-art-h9|fAnimageisprin!tedasanASCIMIart.(HorizontalmoMde)Baselineishorizontal.-eps"K|BSelectEPSBformatforimageoutput.Bydefault,i16-dotfon!tisprintedby12-9pMoin!tRinEPSG le.XTeochangethepMointsize,ٍusethe-eps-ptsizeoptiondescribMed9bMelo!w.-eps-ptsizept9|XSelectpMoin!tsizeofcharactersforEPSUoutput. Ifthisoptionisgiven,pMointsize9offeac!hcharacterisscaledtoptfpMointregardlessdotsizeoffonts.-none|fAnimageisnotshippMedout.-r.Q|Rev!ersetheblackandwhiteofoutputimage.,(ThisoptiondoMesnothavee ect9whenfEPSisselectedforimageoutputformat.)-sn"K|Shrinkfactorforan!ti-aliasedoutput.rWnbynpixelsareshrinkedtogetherand9formsonepixelinanoutputimage..Thisoptionhase ectwhenoutputformatis9PGMfandEPS.DefaultvdDalueis1.-pww|SpMecifywidthofoutputimage(inpixels).WIfthisoptionisnotgiv!en,>thewidth9offoutputimageisthesmallestwidthtocon!taintheglyphofallcharacters.-ph(|SpMecifyheigh!tofoutputimage(inpixels).ԳIfthisoptionisnotgiven,htheheight9offoutputimageisthesmallestheigh!ttocontaintheglyphofallcharacters.-g.Q|.1SpMecifyhorizon!talandverticalmarginsofoutputimage(inpixels). u>Default9marginfiszeropixel.-gx(|JSpMecifyhorizon!talmarginofoutputimage(inpixels).Defaultmarginiszero9pixel.]GChapterf10:Sampleprograms+933)^׍-gy(|VISpMecifyv!erticalmarginofoutputimage(inpixels).)Defaultmarginiszeropixel.A}-center-image 339|fAnimageoft!ypMesettextishorizontalyandverticallycentered.-h-center-image9|fAnimageoft!ypMesettextishorizontalycentered.-v-center-image9|fAnimageoft!ypMesettextisverticallycentered.-left-image9|fAnimageoft!ypMesettextis ushedleft.-right-image9|fAnimageoft!ypMesettextis ushedright.-top-image9|fAnimageoft!ypMesettextis ushedtop.-bottom-image9|fAnimageoft!ypMesettextis ushedbottom.a10.5.2d(MakingMinput lesforctext2pgmtAn!y}texteditorcanbMeusedtoprepareinput lesforctext2pgm.IInput lesareplaintexts.If@(y!ouwanttocreateanimagecontainingmultiplecharactersets,fsavethe lesbycpompoundtextencoMding.Ify!ouwanttomakeimagesofArabictext,usetheMuleeditor.(Muleisanextension#ofGNUfEmacsform!ultilingualtextproMcessing.)U-FeormakingimagesofArabicscript,ctext2pgmfonlysuppMortsatextcreatedb!yMule,ISO-8859-6isnotsupported.A}Unlik!eBxT,[wEB XBPandHTML,newlinesofinput lesarenotLbignoredandanewlinecharacterininputtextbreaksline.-Th!us,inputtextistypMesetlike`verbatim'environmentofLaT,[wEB Xor`
f...
'tagofHTML.a10.5.3d(CommandsMininputtexttSev!eral\|commandscanbMeembMeddedintext lessuchasfontswitch. Commandsequencestartsb!yabackslash(\)followedbyonecharacterwhichrepresentscommandname.~Ifyouw!antftodispla!yabackslashcharacteritself,usedoublebackslashes\\.A}Feollo!wingfcommandsarede ned:H\f,f\t,\h,\c9|VChangeoffon!tfamilies.ZCurrentfontfamilyischangedto xed,ftimes,Helvetia,9courier,frespMectiv!elye.A}\d.Q|Curren!tfontfamilyischangedtothedefaultfontfamilye.Thedefaultfontfamily9canfbMespeci edb!yacommandlineoption.\N,¨\B,\I |VChangeoffon!tfaces. }Currentfontfaceischangedtonormal,¨bMold,italic,9respMectiv!elye.\D.Q|;Curren!tfontfaceischangedtothedefaultfontface.]Thedefaultfontfacecan9bMefspeci edb!yacommandlineoption.\..Q|fSameas\dfollo!wedfby\D.\(.Q|Blac!kandwhiteofglyphoffollowingcharactersarereversed.Thiscommandis9recommendedonlyfor xed-widthfon!ts.(Feorthereasonofcurrentimplementation,^}94"2VFlibf3.6.143)^׍9resultingbitmapisuglyforpropMortionalfon!tsandyoucannotreadthetextinan 339image.)339Nestingfof\(hasnoe ect.33\).Q|fEndofrev!ersingblackandwhite.\\.Q|fPrin!tbackslashitself.a10.5.4d(TģroubleMshoiotingffIncasey!oufailedtoobtainadesiredimageoutput,thefollowingcommandlineoptionsfordebuggingMma!ybMeuseful.(Debuggingmessagesareprintedtostandardoutput.The`-none'optionPisusefultosuppressprin!tingbinaryimagetoyourterminal. ڼOtherwise,mdebuggingmessagefandimage leareprin!tedtogetheronyourterminal!)-ds(|fPrin!tthestatetransitionoftheparserforcompMoundtext.-dr2l|fPrin!tthestatetransitionofbi-directionalityhandling.-df(|fPrin!tfontnametobMeopened.-dbc"K|fPrin!teachcharacterglyphinascii-artform.-dbl"K|fPrin!teachlineimagebyinascii-artform.-dbp"K|fPrin!tentirepageimageinascii-artform.-dall|fSelectsalldebuggingoptionsabMo!ve._rChapterf11:Di erencebMet!weenfVFlibv!ersion3.6and2y953)^׍O11 QDi erencezb=etuweenVFlibversion3.6and233VFlib4v!ersion3.6andversion2arequitedi erentandyoushouldforgetabMoutVFlibversion 332.33VFlibf2w!asdesignedonlyforJapaneseKanjifonts9VFlibf3.6canhandlefon!tsformultilingualtextprinting.Feon!tfmetricisintroMducedinVFlib3.69VFlibz^2doMesnotconceptsonfon!tmetricssinceitassumesallcharactersarethe9sameBmetrics.Feon!tmetricsisintroMducedinVFlib3.6andproportionalfon!tscan9bMefused.Syn!taxfofv ibMcap le9Syn!tax-zofv ibMcap leisquitedi erent.VFlib2adoptedtermcap-likenotation,Ebut9no!wfVFlib3.6adoptslisp-likenotation.Argumen!tsfandreturnvdDaluesoffunctionarechanged9InXVFlib2,8bitmapsofc!haractersarewritteninaframebu erwhichisgivenby9argumen!t.ButfinVFlib3.6,abitmapobjectisreturned.`d96"2VFlibf3.6.143)a Ac!knowledgmentsf(973)^׍OAcuknowledgments33SinceIreleasedVFlibv!ersion1,_somanypMeoplehelpedmetoimpro!veVFlib.Iamgrateful 33forallofthem.SpMecialgratitudeisduetoSatoruTeom!ura,MKen'ichiHanda,WeernerLem!bMerg,andfIc!hiroMatsuda.b^98"2VFlibf3.6.143)cConceptfindexw?993)^׍OConceptzindexε򍍠T&6XAbqo cmr9Arabic捑U%j cmti9.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. `389 1CASCIAITJapaneseTuAEXKanjifon9tclassRU.`U.U.U.U.U.U.U.U.U.U.U.q56!׍XBBDFTfon9tclassrU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.37XCCCV䪍U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y73ChineseTEUCWU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.߬89CNST11641`U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. $89coAdeTcon9versionsystem>U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.73coAde-con9version- lesU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.4K73compAoundTtext&ǍU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.93Cop9yright샍U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. aЬ1CyrillicՍU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U."89!؍XEeKanjiTfon9tclass^U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.47Emacs U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.~j93EUCU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.c89explicitTfon9ts?KU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.36!؍XFfon9tTclass͍U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.q11fon9tTdriverjU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.11F:reeT9ypAe 1U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. ~13,T40!؍XGGBT2312mU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. 89GFTfon9tclassMU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. 53GNUTEmacs ɍU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.93GNUTLibraryGeneralPublicLicenseLU.`U.U.U.U.U.U.U.U.U.U.U.U. 1!؍XHHBFTfon9tclassU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.G39HebrewU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.߬89HighTresolutionorien9tedmoAdeaU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.z12!؍XIimplicitTfon9tsLU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. @36InstallingTVFlibU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.L-13ISOT8859*U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.S89XJJapaneseTcomicfon9tclassRU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.57JapaneseTEUC':U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.89JGTfon9tclass/U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. 47JISTX0201U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. 5c89JISTX0208U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. 5c89JISTX0212U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. 5c89T&6XK KangXiU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. Ԭ47 KoreanTEUC36U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.89kpathsea(U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. ]u13KSCT5601zU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. #Ǭ89 XLleft-to-righ9tTdirectionalityLU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.d89LGPL"U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Ao1libVFlib.aU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U./11,T15libVFlib.soU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.11,T15Lo9wTresolutionorientedmoAde=U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.12 XMMojiky9oTfontmappingclass 9U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.58MorohashiTDaiKan9wa\U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.47MuleU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.u89,T93<XPPBMaJU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.֗89PCFTfon9tclassߔU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.T39PGM͍U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.|89PKTfon9tclassrōU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.52 XRrigh9t-to-leftTdirectionalityLU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.d89<XSShiftTJIS卑U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. u191XTT1Lib!U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. ̬13,T43 TuAEXTdefaultandTuAEXfon9tmappingfontclassU.`U.U.U. u49TFMTfon9tclassU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. mj54T:rueT9ypAeTfontclassōU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.40T:ryTfon9tclassU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.r58T9ypAe1TfontclassU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. ~ 43<XUUnicoAde(U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.47 XVv|rariables'EU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. 36VFTfon9tclassU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. )ج54VFlib-3\Ɖc4g6.hOzU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Ǭ29VFlib.fdbЍU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. 35,T82v ibAcapU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.>F11,T15VFLIBCAPƉc4gP:ARAMƉc4gv|rarLU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.36VirtualTF:on9tlibrary\kU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.ѷ11<XWw9eb2cӍU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.{ 13 XZZeitTfon9tclass9U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.45dN100{VFlibf3.6.143)endDataft!ypMeindexi1013)^׍ODataztuyp=eindexa3XSFstructTvf_s_bitmap&U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. 17structTvf_s_metric1ЍU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. o17structTvf_s_metric2ЍU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. o183XV?XVF_BITMAPU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.,߬17 DVF_METRIC1ȍU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.17VF_METRIC2ȍU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.18VF_OUTLINEȍU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.18VF_OUTLINE_ELEM׍U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. P$18fn102{VFlibf3.6.143)gx{Feunctionfindexo01033)^׍OFaGunctionzindexmVF_ClearErrorjU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.y19 VF_CloseFont14U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.20VF_CopyBitmapjU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.y24VF_DumpBitmapjU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.y25vf_error\U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y19VF_FreeBitmapjU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.y28VF_FreeMetric1U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. |28VF_FreeMetric2U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. |28VF_GetBitmap1jU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.y20VF_GetBitmap2jU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.y21VF_GetFontBoundingBox1QU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.23VF_GetFontBoundingBox2QU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.23VF_GetMetric1jU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.y21VF_GetMetric2jU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.y22VF_GetOutlinejU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.y22mVF_GetPropȍU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.23 VF_ImageOut_ASCIIArt卑U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.p227VF_ImageOut_ASCIIArtVU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Ch28VF_ImageOut_EPS׍U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. P$27VF_ImageOut_PBMAscii卑U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.p225VF_ImageOut_PGMAscii卑U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.p226VF_ImageOut_PGMRawTyU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Ƭ27VF_Init&U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.s18VF_InstallFontDriver卑U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.p228VF_MakeScaledBitmap'U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.24VF_OpenFont114U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.19VF_OpenFont214U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.20VF_OutlineToBitmapTyU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Ƭ22VF_ReflectedBitmapTyU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Ƭ24VF_RotatedBitmap U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U. #Z25hxЍ104{VFlibf3.6.143)iProgramfindexo71053)^׍OProgramzindexrNڍXCZctext2pgmU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.,߬89!!XVvflbannerU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.,߬30 Qvfldisol\U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y89ڍvfldrvs&U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.s82 OVFlib3-configjU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.y32vflmkcaptex]U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K79vflmkfdb\U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y81vflppjU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.81vflserverU.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.,߬83vfltest&U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.s87vflx11=U.`U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.=88jM106{VFlibf3.6.143) jXQ cmr12ji3)^׍OShortzConutentsj1Copryright 32YF Cff cmbxti10Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. j12Copryingz32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. 31j33InrtroSduction!32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.^j114InstallingVFlib\32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. Kj135ProgrammingwithVFlib 32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. |j176WVritingav ibScaps$32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.j337Debuggingav ibScap732Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.Dj718CoSdeconrversionsystem32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. j739Utilitryprograms32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.,cj7910Sampleprograms𖍑32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. `Nj8311Di erencebSetrweenVFlibversion3.6and2]32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.ͥj95Acrknowledgmentsr32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. a*j97ConceptindexD&32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. j99DatatrypSeindex2ݍ32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. j101FVunctionindexݍ32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. #j103Programindexk32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. w"j105ujii=VFlib3.6.143)ž{iii3)^׍OTaGablezofConutents(*֍X132CopyrightG獑32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. 3]X1 }232Copying32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.X3$Pream!ble5..ԍ..................................................................... 3 33$GNUfLIBRAReYGENERALPUBLICLICENSE5..ԍ................................ 4$AppMendix:Ho!wftoApplyTheseTeermstoYourNewLibrariesፑ..ԍ................... 10X332Intros3duction-Ս32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.KX11432InstallingffVFlibÍ32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.9X13532ProgrammingffwithVFlib32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.X17$5.1 5Dataft!ypMesS ..ԍ.............................................................. (;17H5.1.1 5bitmapft!ypMe䲍..ԍ.................................................... 17H5.1.2 5metric1ft!ypMe..ԍ................................................... c17H5.1.3 5metric2ft!ypMe..ԍ................................................... c17H5.1.4 5outlineft!ypMen..ԍ.................................................... U18$5.2 5FeunctionsfandvdDariables..ԍ.................................................. 18H5.2.1 5VF_Init()..ԍ..................................................... !18H5.2.2 5vf_error[..ԍ...................................................... 19H5.2.3 5VF_ClearError()n..ԍ...............................................19H5.2.4 5VF_OpenFont1()^ٍ..ԍ................................................ 4 19H5.2.5 5VF_OpenFont2()^ٍ..ԍ................................................ 4 20H5.2.6 5VF_CloseFont()^ٍ..ԍ................................................ 4 20H5.2.7 5VF_GetBitmap1()n..ԍ...............................................20H5.2.8 5VF_GetBitmap2()n..ԍ...............................................21H5.2.9 5VF_GetMetric1()n..ԍ...............................................21H5.2.10 5VF_GetMetric2()u..ԍ............................................. ]22H5.2.11 5VF_GetOutline()u..ԍ............................................. ]22H5.2.12 5VF_OutlineToBitmap()^..ԍ........................................ 22H5.2.13 5VF_GetFontBoundingBox1()..ԍ................................... iM23H5.2.14 5VF_GetFontBoundingBox2()..ԍ................................... iM23H5.2.15 5VF_GetProp()L..ԍ................................................. }23H5.2.16 5VF_CopyBitmap()u..ԍ............................................. ]24H5.2.17 5VF_MakeScaledBitmap()..ԍ....................................... $24H5.2.18 5VF_ReflectedBitmap()^..ԍ........................................ 24H5.2.19 5VF_RotatedBitmap()4..ԍ.......................................... e25H5.2.20 5VF_DumpBitmap()u..ԍ............................................. ]25H5.2.21 5VF_ImageOut_PBMAscii()..ԍ...................................... b25H5.2.22 5VF_ImageOut_PGMAscii()..ԍ...................................... b26H5.2.23 5VF_ImageOut_PGMRaw()^..ԍ........................................ 27H5.2.24 5VF_ImageOut_EPS()..ԍ........................................... 27H5.2.25 5VF_ImageOut_ASCIIArt()..ԍ...................................... b27H5.2.26 5VF_ImageOut_ASCIIArtV()E..ԍ..................................... N28H5.2.27 5VF_FreeBitmap()u..ԍ............................................. ]28H5.2.28 5VF_FreeMetric1()@ ..ԍ............................................ ;28H5.2.29 5VF_FreeMetric2()@ ..ԍ............................................ ;28ivCBVFlibf3.6.143)<׍H5.2.30 5VF_InstallFontDriver()..ԍ...................................... b28 33$5.3 5Buildingfanapplicationsoft!warefwithVFlib.K..ԍ............................... |29$5.4 5Afsimpleexample..ԍ....................................................... 2933X632Wfritingffav ibs3cap:32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.& X33$6.1 5In!troMductionftov ibcapV..ԍ.................................................. +733$6.2 5Syn!taxfofv ibMcap;ȍ..ԍ....................................................... 33$6.3 5Macrosfinv ibMcapmp..ԍ....................................................... B34$6.4 5Searc!hingffont lesB..ԍ...................................................... s35$6.5 5Feastffon!t lesearchz..ԍ...................................................... O35$6.6 5Compressedffon!t les..ԍ.................................................... o+35$6.7 5Explicitfandimplicitfon!tsN..ԍ............................................... `36$6.8 5Veariablesfinv ibMcapV..ԍ..................................................... 36$6.9 5VFlibfdefaults Ѝ..ԍ...........................................................36$6.10 5BDFffon!tclass..ԍ......................................................... 37$6.11 5PCFffon!tclassv..ԍ......................................................... L.39$6.12 5HBFffon!tclass)..ԍ......................................................... P39$6.13 5TerueT!ypMeffontclass=..ԍ.................................................... 39$6.14 5T!ypMe1ffontclassA..ԍ........................................................ C43$6.15 5Zeitffon!tclassǍ..ԍ.......................................................... 45$6.16 5JGffon!tclassm..ԍ........................................................... BI46$6.17 5eKanjiffon!tclass<..ԍ....................................................... 47$6.18 5T,[wEB XfdefaultandT,[wEXfon!tmappingfontclassD..ԍ............................. 049$6.19 5PKffon!tclass$..ԍ.......................................................... 52$6.20 5GFffon!tclassA؍..ԍ.......................................................... 53$6.21 5TFMffon!tclass,..ԍ......................................................... ?53$6.22 5VFffon!tclassr..ԍ.......................................................... G54$6.23 5ASCIMIfJapaneseT,[wEB XKanjifon!tclass4..ԍ.................................... xe56$6.24 5Japanesefcomicfon!tclass..ԍ............................................... C57$6.25 5Teryffon!tclass|..ԍ.......................................................... m58$6.26 5Mojiky!offontmappingclass{..ԍ............................................. 58$6.27 5Examplefv ibMcap1z..ԍ..................................................... ٫59$6.28 5Examplefv ibMcap2z..ԍ..................................................... ٫65$6.29 5Examplefv ibMcap3z..ԍ..................................................... ٫6833X732Debuggingffav ibs3cap瑍32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.X71 832Cos3deffconversionsystem(b32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.X73$8.1 5Ho!wfCCVworks+..ԍ........................................................ [73$8.2 5Thefin!ternal(hardcoMded)CCVfunctions%Í..ԍ.................................. 74$8.3 5Thefsyn!taxofCCV lesF..ԍ................................................. 874$8.4 5ExamplefofaCCV le1X..ԍ................................................. -75$8.5 5ExamplefofaCCV le2X..ԍ................................................. -76X932Utilityffprogramsq32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.X79$9.1 5v mk!captexH獑..ԍ............................................................. 79$9.2 5v pp..ԍ................................................................... s781$9.3 5v mkfdbDC..ԍ................................................................ s81$9.4 5v drvs..ԍ..................................................................82wv3)<׍X1032SampleffprogramsB32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. X83$10.1 5v serv!erFƍ..ԍ............................................................... 83 33H10.1.1 5Usingfv serv!erfromcommandliney..ԍ.............................. 83H10.1.2 5Usingfv serv!ervianetwork...ԍ..................................... 83H10.1.3 5ThefprotoMcolofv serv!erC..ԍ....................................... 84l10.1.3.1 5In!troMduction0G..ԍ.......................................... w84l10.1.3.2 5ReplyfFeormatofaServ!er덑..ԍ.............................. ^84l10.1.3.3 5ThefProtoMcol.䍑..ԍ......................................... 85$10.2 5v testKw..ԍ................................................................. 87$10.3 5v x11 ..ԍ................................................................. =88$10.4 5v disolЍ..ԍ................................................................ 89$10.5 5ctext2pgmYp..ԍ............................................................. .89H10.5.1 5Runningfctext2pgmݚ..ԍ............................................ 89H10.5.2 5Makingfinput lesforctext2pgm%..ԍ................................ XV93H10.5.3 5Commandsfininputtext..ԍ....................................... ֽ93H10.5.4 5TeroublefshoMoting..ԍ.............................................. c9433X1132Di erenceffbs3etweenVFlibversion3.6and2*32Y.32.32.32.32.32.32.32.32.32.32.32.X95 Acknowledgments뮍32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.#X97Conceptffindex32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. X99Datafftyps3eindex#32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32. X101Ffunctionffindexp32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.X103Programffindex卑32Y.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.32.[X105[nviCBVFlibf3.6.143)~e;>|qjXQ cmr12d߆T # cmtt12aN # cmbx12YF Cff cmbxti10XNff cmbx12ONG cmbx12FNj cmbx12A 3 cmmi109>(x%8))} is non-zero. If @code{bbx_width} is not a multiple of 8, there exist bits that do not correspond to any pixels but their values are always zero. Even if @code{bbx_width} and/or @code{bbx_height} are zero, at least one byte is allocated for the bitmap data. Thus, @code{bitmap} is always non-NULL. @c Node, Next, Previous, Up @node metric1 type, metric2 type, bitmap type, Data types @subsection metric1 type A metric1 object is a structure of the following: @example struct vf_s_metric1 @{ double bbx_width, bbx_height; /* in points */ double off_x, off_y; /* in points */ double mv_x, mv_y; /* in points */ @}; typedef struct vf_s_metric1* VF_METRIC1; @end example @tindex struct vf_s_metric1 @tindex VF_METRIC1 The members of this structure are the same as the members of a bitmap object but the members' unit is point. @c Node, Next, Previous @node metric2 type, outline type, metric1 type, Data types @subsection metric2 type A metric2 object is a structure of the following: @example struct vf_s_metric2 @{ int bbx_width, bbx_height; /* in pixels */ int off_x, off_y; /* in pixels */ int mv_x, mv_y; /* in pixels */ @}; typedef struct vf_s_metric2* VF_METRIC2; @end example @tindex struct vf_s_metric2 @tindex VF_METRIC2 The members of this structure are the same as the members of a bitmap object, and the members' unit is pixel also. @c Node, Previous @node outline type, , metric2 type, Data types @subsection outline type VFlib defines its private outline data formats for presenting vector data of characters. This data format is used by VFlib API functions @code{VF_GetOutline()} and @code{VF_OutlineToBitmap()}. Each font driver returns a outline data of a character of a font if a font driver of that font supports @code{VF_GetOutline()} function. Even if data format of a font is different from VFlib-format, a font driver converts outline data to VFlib-format data. For instance, the PCF font driver (note that PCF is a bitmap font format) supports @code{VF_GetOutline()} function and it constructs and return an outline data which is a set of square; each square corresponds to a pixel of a bitmap. Note that not all font drivers support @code{VF_GetOutline()} function, but most of them do. The developer of font drivers are strongly recommented to implement this feature even if the font font format is bitmap-based. (The function is supported by BDF, PCF, HBF, PK, GF, TFM, Zeit, JG, TrueType, and Type 1 font drivers.) Outline data is defined as follows: @example /* Outline data */ typedef long VF_OUTLINE_ELEM; typedef VF_OUTLINE_ELEM *VF_OUTLINE; @end example @tindex VF_OUTLINE_ELEM @tindex VF_OUTLINE According to CPU architecture, @code{VF_OUTLINE_ELEM} is defined as @code{int} if size of @code{long} is 8. @example typedef long VF_OUTLINE_ELEM; @end example Outline data is an array of VF_OUTLINE_ELEM type (@code{long} or @code{int} type). Outline data consists from two parts: header and outline. The header part contains metric data and outline part contains outline representation of a character. Documentation for this feature is not finished. See the source code (e.g., @code{VFlib-3_6.h}, @code{raster.c}, @code{bm2ol}, for example) for further information. @c Node, f Next, @node Functions and variables, Building an application software with VFlib, Data types, Programming with VFlib @section Functions and variables @menu @b{Initialization} * VF_Init():: @b{Errors} * vf_error:: * VF_ClearError():: @b{Font open and close} * VF_OpenFont1():: * VF_OpenFont2():: * VF_CloseFont():: @b{Bitmaps and metrics} * VF_GetBitmap1():: * VF_GetBitmap2():: * VF_GetMetric1():: * VF_GetMetric2():: @b{Outline} * VF_GetOutline():: * VF_OutlineToBitmap():: @b{Font information} * VF_GetFontBoundingBox1():: * VF_GetFontBoundingBox2():: * VF_GetProp():: @b{Bitmap operations} * VF_CopyBitmap():: * VF_MakeScaledBitmap():: * VF_ReflectedBitmap():: * VF_RotatedBitmap():: * VF_DumpBitmap():: @b{Writing a bitmap to file} * VF_ImageOut_PBMAscii():: * VF_ImageOut_PGMAscii():: * VF_ImageOut_PGMRaw():: * VF_ImageOut_EPS():: * VF_ImageOut_ASCIIArt():: * VF_ImageOut_ASCIIArtV():: @b{Releasing data objects} * VF_FreeBitmap():: * VF_FreeMetric1():: * VF_FreeMetric2():: @b{Installing a font driver} * VF_InstallFontDriver():: @end menu @c Node, Next, Previous, Up @node VF_Init(), vf_error, , Functions and variables @subsection @code{VF_Init()} @example int VF_Init(char* @var{vflibcap}, char* @var{variable_list}) @end example @findex VF_Init @table @asis @item Functionality Initialization of VFlib. @item Arguments @var{vflibcap} is a file name of vflibcap (this file is a font database). If the null pointer is given, the default path name given on compile time is used (a typical default value is @code{/usr/local/lib/VFlib/3.6.14/vflibcap}). Searching of a vflibcap file is done in the following way. First, VFlib try to open a file as given to the first argument. (That is, VFlib searches it relative to current working directory.) If not found, then VFlib try to open the file under default runtime directory (e.g., @code{/usr/local/lib/VFlib/3.6.14/}). For example, @code{vflibcap-tex} is given, VFlib first look for @code{vflibcap-tex} in current directory, and then, it looks for the file under runtime directory. Default runtime directory can be changed by an environment variable @code{VFLIB_RUNTIME_DIRECTORY} on runtime. If an environment variable @code{VFLIB_VFLIBCAP_PATH} is set, the first argument of this function is ignored and its value is used. If an environment variable @code{VFLIB_VFLIBCAP_DIRECTORY} is set, a vflibcap file is searched under a directory sepecified by this environment variable. @var{variable_list} is a list of parameters passed to VFlib. This is used to specify values of parameterized vflibcap files. (See basic.txt for parameterized vflibcap file.) The type of this argument is a string and its syntax is a sequence of @var{Variable=Value}, separated by a comma @code{,}. For example, @code{DPI=400, LEVEL=1, FOO=bar}. @item Return value If initialization succeeds, a non-negative integer is returned. If initialization fails, a negative integer is returned. @end table @c Node, Next, Previous, Up @node vf_error, VF_ClearError(), VF_Init(), Functions and variables @subsection @code{vf_error} @vindex vf_error @example int vf_error @end example @table @asis @item Functionality This is a global variable. Holding the error code of VFlib. If no error, it keeps 0. If an error occurs, the corresponding error code is set. @end table @c Node, Next, Previous, Up @node VF_ClearError(), VF_OpenFont1(), vf_error, Functions and variables @subsection @code{VF_ClearError()} @findex VF_ClearError @example void VF_ClearError(void) @end example @table @asis @item Functionality Clear the error code variable of VFlib. @end table @c Node, Next, Previous, Up @node VF_OpenFont1(), VF_OpenFont2(), VF_ClearError(), Functions and variables @subsection @code{VF_OpenFont1()} @findex VF_OpenFont1 @example int VF_OpenFont1(char* @var{font_name}, double @var{dpi_x}, double @var{dpi_y}, double @var{point_size}, double @var{mag_x}, double @var{mag_y}) @end example @table @asis @item Functionality Open a font. (If the same font is opened multiple times, VFlib keeps track of the number of opened font instances of the font.) Since the font is opened with device resolution, point size and magnification, a font opened by this function may be useful for high resolution devices such as laser printers. @item Arguments The argument @var{font_name} is a name of the font to be opened. The device resolution of the target device is specified by @var{dpi_x} (horizontal) @var{dpi_y} (vertical). These values are given in DPI (dots per inch). The argument @var{point_size} specifies the size of the bitmap. If this argument is negative the bitmap size will be the inherent size of the font. To obtain a magnified bitmap, give a magnification factor to the argument @var{mag_x} (horizontal) and @var{mag_y} (vertical). If the argument @var{point_size} is non-negative, font size will be @var{point_size} times @var{mag_x} (@var{mag_y}) large for horizontal (vertical) direction. @item Return Value A non-negative integer is returned on success. This value is a font identifier (font id); it is used to specify a font for further font operations. If @code{VF_OpenFont1()} fails, a negative integer is returned. @end table @c Node, Next, Previous, Up @node VF_OpenFont2(), VF_CloseFont(), VF_OpenFont1(), Functions and variables @subsection @code{VF_OpenFont2()} @findex VF_OpenFont2 @example int VF_OpenFont2(char* @var{font_name}, int @var{pixel_size}, double @var{mag_x}, double @var{mag_y}) @end example @table @asis @item Functionality Open a font. (If the same font is opened multiple times, VFlib keeps track of the number of opened font instances of the font.) Since the font is opened with pixel size and magnification, a font opened by this function may be useful for low resolution devices such as CRT display. @item Arguments The argument @var{font} is a name of the font to be opened. The argument @var{pixel_size} specifies the size of the bitmap. If this argument is negative the bitmap size will be the inherent size of the font. To obtain a magnified bitmap, give a magnification factor to the argument @var{mag_x} (horizontal) and @var{mag_y} (vertical). If the argument @var{point_size} is non-negative, font size will be @var{pixel_size} times @var{mag_x} (@var{mag_y}) large for horizontal (vertical) direction. @item Return Value A non-negative integer is returned on success. This value is a font identifier (font id); it is used to specify a font for further font operations. If @code{VF_OpenFont2()} fails, a negative integer is returned. @end table @c Node, Next, Previous, Up @node VF_CloseFont(), VF_GetBitmap1(), VF_OpenFont2(), Functions and variables @subsection @code{VF_CloseFont()} @findex VF_CloseFont @example int VF_CloseFont(int @var{font_id}) @end example @table @asis @item Functionality Close a font. @item Arguments The argument @var{font_id} is a font id to be closed. @item Return Value A non-negative integer is returned on success. A negative integer is returned on failure. @end table @c Node, Next, Previous, Up @node VF_GetBitmap1(), VF_GetBitmap2(), VF_CloseFont(), Functions and variables @subsection @code{VF_GetBitmap1()} @findex VF_GetBitmap1 @example VF_BITMAP VF_GetBitmap1(int @var{font_id}, long @var{code_point}, double @var{mag_x}, double @var{mag_y}) @end example @table @asis @item Functionality Obtain a glyph bitmap of given font id and code point. The font id @var{font_id} must be an id by @code{VF_OpenFont1()}. Size of bitmap to be obtained can be specified by @var{mag_x} and @var{mag_y} arguments. @item Arguments @var{font_id} specifies the font; @var{code_point} specifies the code point of a character. To obtain a magnified bitmap, give a magnification factor to the argument @var{mag_x} (horizontal) and @var{mag_y} (vertical). If a font is opened with magnification factor 2 and an bitmap is obtained by this function with magnification factor 2, then the size of yielding bitmap will be 4 times larger than the original size. @item Return Value The return value is a pointer to a newly allocated bitmap object. If it fails to obtain a bitmap, the null pointer is returned. If the bitmap object is no longer needed, it must be released by the function @code{VF_FreeBitmap()}. The font may not have the specified size; in such case, VFlib internally enlarges or shrinks the glyph to obtain a bitmap of the requested size. @end table @c Node, Next, Previous, Up @node VF_GetBitmap2(), VF_GetMetric1(), VF_GetBitmap1(), Functions and variables @subsection @code{VF_GetBitmap2()} @findex VF_GetBitmap2 @example VF_BITMAP VF_GetBitmap2(int @var{font_id}, long @var{code_point}, double @var{mag_x}, double @var{mag_y}) @end example @table @asis @item Functionality Obtain a glyph bitmap of given font id and code point. The font id 'font_id' must be an id by @code{VF_OpenFont2()}. Size of bitmap to be obtained can be specified by @var{pixel_size}, @var{mag_x} and @var{mag_y} arguments. @item Arguments @var{font_id} specifies the font; @var{code_point} specifies the code point of a character. To obtain a magnified bitmap, give a magnification factor to the argument @var{mag_x} (horizontal) and @var{mag_y} (vertical). If a font is opened with magnification factor 2 and an bitmap is obtained by this function with magnification factor 2, then the size of yielding bitmap will be 4 times larger than the original size. @item Return Value The return value is a pointer to a newly allocated bitmap object. If it fails to obtain a bitmap, the null pointer is returned. If the bitmap object is no longer needed, it must be released by the function @code{VF_FreeBitmap()}. The font may not have the specified size; in such case, VFlib internally enlarges or shrinks the glyph to obtain a bitmap of the requested size. @end table @c Node, Next, Previous, Up @node VF_GetMetric1(), VF_GetMetric2(), VF_GetBitmap2(), Functions and variables @subsection @code{VF_GetMetric1()} @findex VF_GetMetric1 @example VF_METRIC1 VF_GetMetric1(int @var{font_id}, long @var{code_point}, VF_METRIC1 @var{metric1}, double @var{mag_x}, double @var{mag_y}) @end example @table @asis @item Functionality Obtain font metrics of a given font and code point. @item Arguments Same arguments as of @code{VF_GetBitmap1()}. @item Return Value A pointer to a metric1 object is returned. If an error occurs, the NULL pointer is returned. The obtained metric is a metric for a bitmap obtained by @code{VF_GetBitmap1()} with the same arguments, but the unit of the obtained metric is point. If the metric1 object is no longer needed it must be released by the function @code{VF_FreeMetric1()}. @end table @c Node, Next, Previous, Up @node VF_GetMetric2(), VF_GetOutline(), VF_GetMetric1(), Functions and variables @subsection @code{VF_GetMetric2()} @findex VF_GetMetric2 @example VF_METRIC2 VF_GetMetric2(int @var{font_id}, long @var{code_point}, VF_METRIC2 @var{metric2}, double @var{mag_x}, double @var{mag_y}) @end example @table @asis @item Functionality Obtain font metrics of a given font and code point. @item Arguments Same arguments as of @code{VF_GetBitmap2()}. @item Return Value A pointer to a metric2 object is returned. If an error occurs, the NULL pointer is returned. The obtained metric is a metric for a bitmap obtained by @code{VF_GetBitmap2()} with the same arguments, but the unit of the obtained metric is pixel. If the metric2 object is no longer needed, it must be released by the function @code{VF_FreeMetric2()}. @end table @c Node, Next, Previous, Up @node VF_GetOutline(), VF_OutlineToBitmap(), VF_GetMetric2(), Functions and variables @subsection @code{VF_GetOutline()} @findex VF_GetOutline @example VF_OUTLINE VF_GetOutline(int @var{font_id}, long @var{code_point}, double @var{mag_x}, double @var{mag_y}) @end example @table @asis @item Functionality Obtain outline data from a given font and code point. @item Arguments Same as @code{VF_GetBitmap1()}. @item Return Value Return value is a pointer to a newly allocated outline data object. If it fails to obtain a outline data, the NULL pointer is returned. Even if the original font is a bitmap, VFlib internally creates outline data from the bitmap. If the source font is a vector font, VFlib internally converts the data format to VFlib outline data style. A bitmap of any specified size can be obtained from outline data by the function @code{VF_Outline2Bitmap()}. (Default point size and device resolution is also kept in the outline data.) @end table @c Node, Next, Previous, Up @node VF_OutlineToBitmap(), VF_GetFontBoundingBox1(), VF_GetOutline(), Functions and variables @subsection @code{VF_OutlineToBitmap()} @findex VF_OutlineToBitmap @example VF_OUTLINE VF_OutlineToBitmap(VF_OUTLINE @var{outline}, double @var{dpi_x}, double @var{dpi_y}, double @var{point_size}, double @var{mag_x}, double @var{mag_y}) @end example @table @asis @item Functionality Obtain a bitmap from outline data. @item Arguments The argument @var{outline} is a pointer to an outline object to be rasterised. The arguments @var{dpi_x}, @var{dpi_y}, @var{point_size}, @var{mag_x} and @var{mag_y} are the same as the corresponding arguments of @code{VF_GetBitmap1()}. The outline data contains information on device resolution and point size specified by @code{VF_GetOutline()}. (If not specified, default values are used. Thus, bitmaps with a default size can be obtained by giving -1 for the arguments). @item Return Value A pointer to a bitmap object is returned. The NULL pointer is returned on failure. If the bitmap object is no longer needed it must be released by the function @code{VF_FreeBitmap()}. @end table @c Node, Next, Previous, Up @node VF_GetFontBoundingBox1(), VF_GetFontBoundingBox2(), VF_OutlineToBitmap(), Functions and variables @subsection @code{VF_GetFontBoundingBox1()} @findex VF_GetFontBoundingBox1 @example int VF_GetFontBoundingBox1(int @var{font_id}, double @var{mag_x}, double @var{mag_y}, double* @var{w}, double* @var{h}, double* @var{xoff}, double* @var{yoff}) @end example @table @asis @item Functionality Obtain font bounding box information of a given font. @item Arguments The argument @var{font_id} specify a font in interest. The function writes the bounding box information to the locations pointed by @var{w}, @var{h}, @var{xoff}, and @var{yoff}. @var{w} and @var{h} point to data objects for width and height of bounding box, respectively. @var{xoff} and @var{yoff} point to data objects for largest horizontal and vertical displacement of lower left corner of bounding box from reference points. Note that these values does not guarantee the minimality; they only guarantee that all characters can be contained in a box descrived by them. If some values of @var{w}, @var{h}, @var{xoff}, or @var{yoff} are not in interest, NULL pointer can be given. The argument @var{mag_x} and @var{mag_y} are maginification factor to be scaled for a given font @var{font_id}. @item Return Value If font bounding information is successfully obtained, a non-negative integer is returned; otherwize, negative integer is returned. Units of bounding box information is in point. @end table @c Node, Next, Previous, Up @node VF_GetFontBoundingBox2(), VF_GetProp(), VF_GetFontBoundingBox1(), Functions and variables @subsection @code{VF_GetFontBoundingBox2()} @findex VF_GetFontBoundingBox2 @example int VF_GetFontBoundingBox2(int @var{font_id}, double @var{mag_x}, double @var{mag_y}, int* @var{w}, int* @var{h}, int* @var{xoff}, int* @var{yoff}) @end example Same as @code{VF_GetFontBoundingBox1()} except units of font bounding box parameters are pixel. @c Node, Next, Previous, Up @node VF_GetProp(), VF_CopyBitmap(), VF_GetFontBoundingBox2(), Functions and variables @subsection @code{VF_GetProp()} @findex VF_GetProp @example char* VF_GetProp(int @var{font_id}, char* @var{prop_name}) @end example @table @asis @item Functionality Obtain a property of given font. (This function is font class dependent. You must be very careful to use it!) @item Arguments The argument @var{font_id} specifies a font from which to obtain a property. @var{property_name} specifies the property name. @item Return Value If the given property exists, its value is returned as a string. The string for the property value is newly allocated and must be released by @var{free()} if it is no longer needed. If the given property is undefined, the NULL pointer is returned. @end table @c Node, Next, Previous, Up @node VF_CopyBitmap(), VF_MakeScaledBitmap(), VF_GetProp(), Functions and variables @subsection @code{VF_CopyBitmap()} @findex VF_CopyBitmap @example VF_BITMAP VF_CopyBitmap(VF_BITMAP @var{bm}) @end example @table @asis @item Functionality Make a copy of a bitmap object. @item Arguments The argument @var{bm} is a pointer to a bitmap object to be copied. @item Return Value A new bitmap object is allocated; all values are copied. Return value is a pointer to a new bitmap. The source bitmap @var{bm} remains unaffected. If an error occurs, the NULL pointer is returned. The obtained bitmap object must be released by @code{VF_FreeBitmap()} if it is no longer needed. @end table @c Node, Next, Previous, Up @node VF_MakeScaledBitmap(), VF_ReflectedBitmap(), VF_CopyBitmap(), Functions and variables @subsection @code{VF_MakeScaledBitmap()} @findex VF_MakeScaledBitmap @example VF_BITMAP VF_MakeScaledBitmap(VF_BITMAP @var{bm}, double @var{mag_x}, double @var{mag_y}) @end example @table @asis @item Functionality Make an enlarged or shrinked bitmap. @item Arguments The argument @var{bm} specifies the source bitmap object, @var{mag_x} and @var{mag_y} give the magnification factor in the horizontal and vertical direction respectively. If the magnification factor is less than 1, a shrinked bitmap is obtained. Values for @var{mag_x} and @var{mag_y} can be arbitrary such as (@math{@var{mag_x} > 1} and @math{@var{mag_y} < 1}) or (@math{@var{mag_x} < 1} and @math{@var{mag_y} > 1}). @item Return Value A bitmap object whose bitmap is enlarged or shrinked is created and a pointer to the new bitmap is returned. If an error occurs, the NULL pointer is returned. The source bitmap @var{bm} remains unaffected. Use @code{VF_FreeBitmap()} if the returned bitmap object is no longer necessary. @end table @c Node, Next, Previous, Up @node VF_ReflectedBitmap(), VF_RotatedBitmap(), VF_MakeScaledBitmap(), Functions and variables @subsection @code{VF_ReflectedBitmap()} @findex VF_ReflectedBitmap @example VF_BITMAP VF_ReflectedBitmap(VF_BITMAP @var{bm}, int @var{refl_x}, double @var{refl_y}) @end example @table @asis @item Functionality Make a bitmap with horizontally and/or vertically reflected image. @item Arguments The argument @var{bm} specifies the source bitmap object, @var{refl_x} and @var{refl_y} specify the reflection, respectively. If @var{refl_x} is non-zero, the image is holizontally reflected; if @var{refl_y} is non-zero, the image is vertically reflected. In case @var{relf_x} and @var{refl_y} are both zero, the effect is the same as @code{VF_CopyBitmap()}. @item Return Value A new bitmap object is created and a pointer to the new bitmap is returned. If an error occurs, the NULL pointer is returned. Metrics of created bitmap is the same as that of the original bitmap. The source bitmap @var{bm} remains unaffected. Use @code{VF_FreeBitmap()} if the returned bitmap object is no longer necessary. @end table @c Node, Next, Previous, Up @node VF_RotatedBitmap(), VF_DumpBitmap(), VF_ReflectedBitmap(), Functions and variables @subsection @code{VF_RotatedBitmap()} @findex VF_RotatedBitmap @example VF_BITMAP VF_RotatedBitmap(VF_BITMAP @var{bm}, int @var{angle}) @end example @table @asis @item Functionality Make a bitmap image with rotated image. @item Arguments The argument @var{bm} specifies the source bitmap object, @var{angle} gives rotation angle in degree. By the limitation of implementation, rotatin angle must be multiple of 90. The rotation angle @var{angle} must be one of the following: @table @code @item VF_BM_ROTATE_0 Rotation angle is zero. Thus, the effect is the same as @code{VF_CopyBitmap()}. @item VF_BM_ROTATE_90 Rotation angle is 90 degree. @item VF_BM_ROTATE_180 Rotation angle is 180 degree. @item VF_BM_ROTATE_270 Rotation angle is 270 degree. @end table @item Return Value A bitmap object whose bitmap is rotated is created and a pointer to the new bitmap is returned. If an error occurs, the NULL pointer is returned. The source bitmap @var{bm} remains unaffected. Use @code{VF_FreeBitmap()} if the bitmap object is no longer necessary. This function rotates a bitmap with the reference point as origin. The vector to the next reference point is also rotated. Therefore, position of the reference point and a vector to the next reference point of @code{VF_RotatedBitmap(@var{bm}, VF_BM_ROTATE_180)} and that of @code{VF_ReflectedBitmap(@var{bm}, 1, 1)} are different. @end table @c Node, Next, Previous, Up @node VF_DumpBitmap(), VF_ImageOut_PBMAscii(), VF_RotatedBitmap(), Functions and variables @subsection @code{VF_DumpBitmap()} @findex VF_DumpBitmap @example void VF_DumpBitmap(VF_BITMAP @var{bm}) @end example @table @asis @item Functionality Print a bitmap in ASCII-art-style to stdout. @item Arguments The argument @var{bm} specifies a bitmap to be displayed. @end table @c Node, Next, Previous, Up @node VF_ImageOut_PBMAscii(), VF_ImageOut_PGMAscii(), VF_DumpBitmap(), Functions and variables @subsection @code{VF_ImageOut_PBMAscii()} @findex VF_ImageOut_PBMAscii @example int VF_ImageOut_PBMAscii(VF_BITMAP @var{bm}, FILE *@var{fp}, int @var{image_width}, int @var{image_height}, int @var{position_x}, int @var{position_y}, int @var{margin_l}, int @var{margin_r}, int @var{margin_t}, int @var{margin_b}, int @var{reverse}, int @var{shrink}, char *@var{prog}, char *@var{title}) @end example @table @asis @item Functionality Print a bitmap @var{bm} in PBM ASCII format to a file stream @var{fp}. @item Arguments @var{bm} is a bitmap to be written to a file stream @var{fp}. Size of output image (in pixel) is specified by @var{image_width} and @var{image_height}. If -1 is given for these arguments, the image size should be minimum to contain the bitmap @var{bm}. Arguments @var{position_x} and @var{position_y} specifies the horizontal and vertical position of a source bitmap @var{bm} in an output image file, respectively. These parameters have effect when @var{image_width} and @var{image_height} are specified. Possible values for @var{position_x} is @table @code @item VF_IMAGEOUT_POSITION_NONE Same as @code{VF_IMAGEOUT_POSITION_LEFT}. @item VF_IMAGEOUT_POSITION_CENTER @var{bm} is centered in output image. @item VF_IMAGEOUT_POSITION_LEFT @var{bm} is flushed left in output image. @item VF_IMAGEOUT_POSITION_RIGHT @var{bm} is flushed righted in output image. @end table Possible values for @var{position_y} is @table @code @item VF_IMAGEOUT_POSITION_NONE Same as @code{VF_IMAGEOUT_POSITION_TOP}. @item VF_IMAGEOUT_POSITION_CENTER @var{bm} is centered in output image. @item VF_IMAGEOUT_POSITION_TOP @var{bm} is placed at the top in output image. @item VF_IMAGEOUT_POSITION_BOTTOM @var{bm} is placed at the bottom in output image. @end table Arguments @var{margin_l}, int @var{margin_r} are used to speficy left and right margins, respectively. Arguments @var{margin_t}, int @var{margin_b} are used to speficy top and bottom margins, respectively. If the argument @var{reverse} is not 0, black and white in an output image is reversed. Argument @var{shrink} specifys shrink factor of image @var{bm}. (If this value is 1, @var{bm} is not shrinked. Note: Currently, shrinking image is not supported in PBM ASCII format.) Arguments @var{prog} and @var{title} are used to emmbed program name and title in an image file. @end table @c Node, Next, Previous, Up @node VF_ImageOut_PGMAscii(), VF_ImageOut_PGMRaw(), VF_ImageOut_PBMAscii(), Functions and variables @subsection @code{VF_ImageOut_PGMAscii()} @findex VF_ImageOut_PGMAscii @example int VF_ImageOut_PGMAscii(VF_BITMAP @var{bm}, FILE *@var{fp}, int @var{image_width}, int @var{image_height}, int @var{position_x}, int @var{position_y}, int @var{margin_l}, int @var{margin_r}, int @var{margin_t}, int @var{margin_b}, int @var{reverse}, int @var{shrink}, char *@var{prog}, char *@var{title}) @end example @table @asis @item Functionality Print a bitmap @var{bm} in PGM ASCII format to a file stream @var{fp}. @item Arguments Arguments are the same as that of @code{VF_ImageOut_PGMAscii()}. If @var{shrink} is greater than 1, output image is anti-aliased (gray-scaled). @end table @c Node, Next, Previous, Up @node VF_ImageOut_PGMRaw(), VF_ImageOut_EPS(), VF_ImageOut_PGMAscii(), Functions and variables @subsection @code{VF_ImageOut_PGMRaw()} @findex VF_ImageOut_PGMRaw @example int VF_ImageOut_PGMRaw(VF_BITMAP @var{bm}, FILE *@var{fp}, int @var{image_width}, int @var{image_height}, int @var{position_x}, int @var{position_y}, int @var{margin_l}, int @var{margin_r}, int @var{margin_t}, int @var{margin_b}, int @var{reverse}, int @var{shrink}, char *@var{prog}, char *@var{title}) @end example @table @asis @item Functionality Print a bitmap @var{bm} in PGM Raw format to a file stream @var{fp}. @item Arguments Arguments are the same as that of @code{VF_ImageOut_PGMAscii()}. If @var{shrink} is greater than 1, output image is anti-aliased (gray-scaled). @end table @c Node, Next, Previous, Up @node VF_ImageOut_EPS(), VF_ImageOut_ASCIIArt(), VF_ImageOut_PGMRaw(), Functions and variables @subsection @code{VF_ImageOut_EPS()} @findex VF_ImageOut_EPS @example int VF_ImageOut_EPS(VF_BITMAP @var{bm}, FILE *@var{fp}, int @var{image_width}, int @var{image_height}, int @var{position_x}, int @var{position_y}, int @var{margin_l}, int @var{margin_r}, int @var{margin_t}, int @var{margin_b}, int @var{reverse}, int @var{shrink}, char *@var{prog}, char *@var{title}, double @var{ptsize}, int @var{pixsize}) @end example @table @asis @item Functionality Print a bitmap @var{bm} in EPS (Encapsulated PostScript) format to a file stream @var{fp}. @item Arguments Arguments are the same as that of @code{VF_ImageOut_PGMAscii()}. If @var{shrink} is greater than 1, output image is anti-aliased (gray-scaled). Arguments @var{ptsize} and @var{pixsize} specify size of EPS bounding box; @var{pixsize} pixels occupy @var{ptsize} points in physical paper. @end table @c Node, Next, Previous, Up @node VF_ImageOut_ASCIIArt(), VF_ImageOut_ASCIIArtV(), VF_ImageOut_EPS(), Functions and variables @subsection @code{VF_ImageOut_ASCIIArt()} @findex VF_ImageOut_ASCIIArt @example int VF_ImageOut_ASCIIArt(VF_BITMAP @var{bm}, FILE *@var{fp}, int @var{image_width}, int @var{image_height}, int @var{position_x}, int @var{position_y}, int @var{margin_l}, int @var{margin_r}, int @var{margin_t}, int @var{margin_b}, int @var{reverse}, int @var{shrink}) @end example @table @asis @item Functionality Print a bitmap @var{bm} in ASCII art format to a file stream @var{fp}. @item Arguments Arguments are the same as that of @code{VF_ImageOut_PGMAscii()}. @end table @c Node, Next, Previous, Up @node VF_ImageOut_ASCIIArtV(), VF_FreeBitmap(), VF_ImageOut_ASCIIArt(), Functions and variables @subsection @code{VF_ImageOut_ASCIIArtV()} @findex VF_ImageOut_ASCIIArtV @example int VF_ImageOut_ASCIIArtV(VF_BITMAP @var{bm}, FILE *@var{fp}, int @var{image_width}, int @var{image_height}, int @var{position_x}, int @var{position_y}, int @var{margin_l}, int @var{margin_r}, int @var{margin_t}, int @var{margin_b}, int @var{reverse}, int @var{shrink}) @end example @table @asis @item Functionality Print a bitmap @var{bm} in ASCII art format to a file stream @var{fp}. Image is rotated in clockwise, 90 degree. @item Arguments Arguments are the same as that of @code{VF_ImageOut_PGMAscii()}. @end table @c Node, Next, Previous, Up @node VF_FreeBitmap(), VF_FreeMetric1(), VF_ImageOut_ASCIIArtV(), Functions and variables @subsection @code{VF_FreeBitmap()} @findex VF_FreeBitmap @example void VF_FreeBitmap(VF_BITMAP @var{bm}) @end example @table @asis @item Functionality Release a bitmap object. @item Arguments The argument @var{bm} is a pointer to a bitmap object to be released. @end table @c Node, Next, Previous, Up @node VF_FreeMetric1(), VF_FreeMetric2(), VF_FreeBitmap(), Functions and variables @subsection @code{VF_FreeMetric1()} @findex VF_FreeMetric1 @example void VF_FreeMetric1(VF_METRIC1 @var{metric}) @end example @table @asis @item Functionality Release a metric1 object. @item Arguments The argument @var{metric} is a pointer to a metric1 object. @end table @c Node, Next, Previous, Up @node VF_FreeMetric2(), VF_InstallFontDriver(), VF_FreeMetric1(), Functions and variables @subsection @code{VF_FreeMetric2()} @findex VF_FreeMetric2 @example void VF_FreeMetric2(VF_METRIC2 @var{metric}) @end example @table @asis @item Functionality Release a metric2 object. @item Arguments The argument @var{metric} is a pointer to a metric2 object. @end table @c Node, Next, Previous, Up @node VF_InstallFontDriver(), , VF_FreeMetric2(), Functions and variables @subsection @code{VF_InstallFontDriver()} @findex VF_InstallFontDriver @example int VF_InstallFontDriver(char* @var{class_name}, int(*driver)(VF_FONT @var{font}, char* @var{class_name}, char* @var{font_name}, int @var{implicit_flag})); @end example @table @asis @item Functionality Install a font driver. @item Arguments @var{class_name} is a font class name, @var{driver} is a pointer to a function of a font driver of the font class. The function given by @var{driver} is called when a font of this font class is opened by @code{VF_OpenFont1()} and @code{VF_OpenFont2()}. The function @var{driver} is called with parameters of the font to be opened: @var{font} is a data object for font management defined by VFlib internally. @var{class_name} is the font class name. @var{font_name} is the name of the font to be opened. This argument is the same as the argument of @code{VF_OpenFont1()} and @code{VF_OpenFont2()}. @var{implicit_font} is a flag whose value is 1 if a font is to be opened as an implicit font (a font which does not explicitly appear in vflibcap) and 0 if it is to be opened as an explicit font (a font that does appear in vflibcap). @item Return Value If successful, a non-negative integer is returned. A negative integer is returned if the installation of the font driver fails. @end table @c Node, Next, Previous, Up @node Building an application software with VFlib, A simple example, Functions and variables, Programming with VFlib @section Building an application software with VFlib An application software that use VFlib must include a header file @file{VFlib-3_6.h}. @iftex @cindex VFlib-3\_6.h @end iftex @ifinfo @cindex VFlib-3_6.h @end ifinfo Typically, this file is installed @file{/usr/local/include/} directory. Never forget, that application software that uses VFlib must be linked against FreeType 1.2 or later (@file{libttf.a} or @file{libttf.so}), T1Lib 5.1 or later (@file{libt1.a} or @file{libt1.so}), and kpathsea 3.2 (@file{libkpathsea.a} or @file{libkpathsea.so}), if you configure VFlib to use them. (If VFlib is configured not to use them, they are not necessary.) I recommend shared library versions for these optional libraries if you built a shared library version of VFlib. @example #include @end example VFlib must be initialized before it is used. @example char* vflibcap = "vflibcap"; char* params = "TeX_DPI=300, KPATHSEA_MODE=cx"; if (VF_Init(vflibcap, params) < 0)@{ fprintf(stderr, "Initializing VFlib: failed\n"); exit(1); @} @end example Following program fragment opens a font, obtains a bitmap, and print obtained bitmap. @example int fid; VF_BITMAP bm; if ((fid = VF_OpenFont2("timR24.pcf", -1, 1.0, 1.0)) < 0)@{ fprintf(stderr, "Opening font: failed\n"); exit(1); @} bm = VF_GetBitmap2(fid, 0x67, 1.0, 1.0); VF_DumpBitmap(bm); @end example @c Node, Next, Previous, Up @node A simple example, , Building an application software with VFlib, Programming with VFlib @section A simple example @pindex vflbanner The following program code is a "banner" like using VFlib. For simplicity, this program accepts only 1-byte encoded characters. It reads an input from standard input and prints characters in ascii-art form to standard output. @example /* * vflbanner.c - a banner by VFlib * by Hirotsugu Kakugawa * * */ /* * Copyright (C) 1998 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include #include #include #include "VFlib-3_6.h" #define DEFAULT_FONT "timR18.pcf" char *vflibcap; char *fontname; void usage(void); void vflbanner(FILE *fp); int main(int argc, char **argv) @{ vflibcap = NULL; fontname = DEFAULT_FONT; --argc; argv++; while (argc > 0)@{ if ((argc >= 1) && ((strcmp(argv[0], "-h") == 0) || (strcmp(argv[0], "--help") == 0)))@{ usage(); exit(0); @} else if ((argc >= 2) && (strcmp(argv[0], "-v") == 0))@{ --argc; argv++; vflibcap = argv[0]; --argc; argv++; @} else if ((argc >= 2) && (strcmp(argv[0], "-f") == 0))@{ --argc; argv++; fontname = argv[0]; --argc; argv++; @} else @{ break; @} @} vflbanner(stdin); return 0; @} void usage(void) @{ printf("vflbanner - a banner program using VFlib\n"); printf("Usage: vflbanner [-v vflibcap] [-f fontname]\n"); printf("This program reads a text from standard input. It supports\n"); printf("1-bit encoded font only. Thus, `ctextpgm' is better than this.\n"); @} void vflbanner(FILE *fp) @{ int fid; int ch; int pos_x, pos_y; VF_BITMAP bm, page_bm; struct vf_s_bitmaplist PageBuff; if (VF_Init(vflibcap, NULL) < 0)@{ printf("VFlib initialization error"); switch (vf_error)@{ case VF_ERR_INTERNAL: printf(" - Internal error.\n"); break; case VF_ERR_NO_MEMORY: printf(" - Server runs out of memory.\n"); break; case VF_ERR_NO_VFLIBCAP: printf(" - No vflibcap.\n"); break; default: printf(" - Error code %d\n", vf_error); break; @} fflush(stdout); exit(1); @} if ((fid = VF_OpenFont1(fontname, -1, -1, -1, 1, 1)) < 0) return; VF_BitmapListInit(&PageBuff); pos_x = pos_y = 0; while ((ch = getc(fp)) != EOF)@{ if (!isprint(ch)) ch = ' '; if ((bm = VF_GetBitmap1(fid, (long)ch, 1, 1)) == NULL) continue; VF_BitmapListPut(&PageBuff, bm, pos_x, pos_y); pos_x = pos_x + bm->mv_x; @} page_bm = VF_BitmapListCompose(&PageBuff); VF_DumpBitmap(page_bm); VF_BitmapListFinish(&PageBuff); VF_FreeBitmap(page_bm); VF_CloseFont(fid); @} /*EOF*/ @end example By the following commands is used to comple the program. @example % gcc -c `VFlib3-config --cflags` vflbanner.c % gcc -o vflbanner vflbanner.o `VFlib3-config --libs` @end example @pindex VFlib3-config @command{VFlib3-config} is a program to print misc information on configuration of VFlib. It prints C compiler option to specify include directory (@option{--cflags}), dependent libraries (@option{--libs}), for example. Run @command{VFlib3-config} with @option{--help} option for detail. @c ------------------------------------------------------------------------ @c Node, Next, Previous, Up @node Writing a vflibcap, Debugging a vflibcap, Programming with VFlib, Top @chapter Writing a vflibcap @menu @b{Introduction} * Introduction to vflibcap:: * Syntax of vflibcap:: * Macros in vflibcap:: * Searching font files:: * Fast font file search:: * Compressed font files:: * Explicit and implicit fonts:: * Variables in vflibcap:: @b{Global definitions} * VFlib defaults:: @b{Font drivers} * BDF font class:: * PCF font class:: * HBF font class:: * TrueType font class:: * Type1 font class:: * Zeit font class:: * JG font class:: * eKanji font class:: * TeX default and TeX font mapping font class:: * PK font class:: * GF font class:: * TFM font class:: * VF font class:: @b{Font drivers that map to another fonts} * ASCII Japanese TeX Kanji font class:: * Japanese comic font class:: * Try font class:: * Mojikyo font mapping class:: @b{Examples of vflibcaps} * Example vflibcap 1:: * Example vflibcap 2:: * Example vflibcap 3:: @end menu @c Node, Next, Previous, Up @node Introduction to vflibcap, Syntax of vflibcap, , Writing a vflibcap @section Introduction to vflibcap A vflibcap file is a database of font definitions for the VFlib library. A vflibcap font definition is described in a format similar to termcap and printcap. Vflibcap provides logical font names and logical font names may not corresponds to font files to be accessed. In this document, we simply say "font" to denote logical fonts. Each VFlib fonts have its own parameters listed below: @itemize @bullet @item Pixel size, @item Point size, and @item Resolution of target device. @end itemize These parameters may not be available in font file. For instance, these parameters are lacking in TrueType fonts. Lacking information is given in vflibcap file, or it is given by a font driver as default values. @b{Note:} If you want to use VFlib for @TeX{} DVI drivers, such as previewers and pronter driver, use @command{vflmkcaptex} program to generate vflibcap file automatically. @c Node, Next, Previous, Up @node Syntax of vflibcap, Macros in vflibcap, Introduction to vflibcap, Writing a vflibcap @section Syntax of vflibcap The syntax of vflibcap file is lisp-like form. A semicolon @code{;} starts a comment and following text is ignored until the end of line. A colon in a string which is enclosed by double colons is not considered as a comment character and forms a part of string. In the following explanation, we ignore comments. A vflibcap file is a sequence of expressions called s-expressions. Basic data item of s-expression is string. Unlike lisp, there is no "number" type. A sequence of digits is parsed as a string. To include a special characters in a string such as double quotation, control code, and parenthesis, escape sequence can be used. String is a sequence of characters of the following form: @table @asis @item String Form 1: Sequence of characters enclosed by double quotations. Examples: @example "hello world" "a, b, c, d" "He said \"Thanks!\"." "a*(b+c)" @end example @item String Form 2: Sequence of characters except space, tab, newline, and closing parenthesis. A start character must not be a double quotation. Examples: @example font-file hello\ world He\ said\ \"Thanks!\". a*\(b+c\) @end example @end table Unlink lisp, there is no distinction between string and symbol in vflibcap; they are the same data type. That is, @code{HELLO} and @code{"HELLO"} are the same. Parentheses is used to form a "list" like in lisp. For example, @code{(A B C)} is a list of three strings. List can be nested any depth, e.g., @code{(A (B1 B2 B3) (C1 (C21 C22) C3))}. A vflibcap must be a sequence of s-expression of the following forms: @table @asis @item @code{(define-default @var{FONT-CLASS} @var{CAPABILITY-DEF} ... )} This expression defines a default values for a font class. @item @code{(define-font @var{NAME} @var{CAPABILITY-DEF} ... )} This expression defines a font. @item @code{(define-macro @var{NAME} @var{CAPABILITY-DEF} ... )} This expression defines a macro @var{NAME}. @end table @var{CAPABILITY-DEF} must be a list of form @code{(@var{CAPABILITY-NAME} @var{VALUE})}, e.g., @code{(font-file "/usr/local/share/fonts/"}. Each font class defines its own set of capabilities and capability sets can be different by font classes. This is an example of vflibcap file. @example ;; vflibcap (define-default VFlib (extension-hints (".bdf" bdf) (".pcf" pcf)) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd") ("pk" ascii-jtex-kanji)) (implicit-font-classes bdf pcf hbf ascii-jtex-kanji) (variable-values ("TeX_DPI" "300")) (define-default bdf (filename-extensions ".bdf") (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/share/fonts/X11//") (compression-extensions ".gz" ".Z")) (define-font timR24 ; times roman 24 (font-class bdf) (font-file "timR24.bdf")) (define-font timR18 ; times roman 18 (font-class bdf) (font-file "timR18.bdf")) @end example @c Node, Next, Previous, Up @node Macros in vflibcap, Searching font files, Syntax of vflibcap, Writing a vflibcap @section Macros in vflibcap To avoid writing the same capabilities, macro feature is provided in vflib. In case of @var{CAPABILITY-DEF} is a string, it is treated as a macro and a macro definition for it is expanded. For instance, @example (define-font timR18 MACRO-NAME (font-file "timR18.bdf")) @end example is a font definition using a macro @code{MACRO-NAME}. Suppose a macro @code{MACRO-NAME} is defined as follows. @example (define-macro MACRO-NAME (font-class bdf) (dpi 300)) @end example Then, the font definition for @code{timR24} is the same as follow. @example (define-font timR18 (font-class bdf) (dpi 300)) (font-file "timR18.bdf")) @end example The rule of macr expand is as following procedure. @enumerate @item Looks for use of macros. From the first @var{CAPABILITY-DEF} to the last one, it is checked if it is a string (thus a macro) or not in order. If it is a macro, corresponding macro definition is substituted. Then, next @var{CAPABILITY-DEF} is checked. @item Macro expand is done recursively. Thus, a macro can be used in another macro. @end enumerate @c Node, Next, Previous, Up @node Searching font files, Fast font file search, Macros in vflibcap, Writing a vflibcap @section Searching font files Some font classes (e.g., BDF, PCF) defines a @code{font-directories} capability in vflibcap file. This capability specifies a list of font directories, for instance, @code{(font-directories "/usr/local/fonts/" "/opt/fonts" "/usr/local/share/fonts//")}. A font file can be searched recursively in a directory tree if a font directory name ends by double slashes @code{//}. Some font drivers support file search by kpathsea. Typically, font files are located under @file{/usr/local/share/texmf}. This directory is used to hold @TeX{}-related files. If a font driver supports searching by kpathsea, a special name @code{TEXMF} can be given in a list of @code{font-directories} capability. For instance, suppose that @code{(font-directories "/opt1/fonts//" "TEXMF" "/opt2/fonts//")} is specified. Then files are searched under @code{/opt1/fonts}, by kpathsea, and then @code{/opt2/fonts}, in this order. Currently, pk, gf, tfm, vf, truetype, and type1 font classes suport searcing files by kpathsea. @c Node, Next, Previous, Up @node Fast font file search, Compressed font files, Searching font files, Writing a vflibcap @section Fast font file search @cindex VFlib.fdb In case there are many font directories and sub-directory which contains many font file, searching a font file take long time, since font directories are traversed to find a requested font file. For fast font file search, font file hint database (FDB for short) can be used. It is placed in a root of a font directory, and it contains pairs of font file name and relative pathname of the font file from the font directory. The file name of FDB is @code{VFlib.fdb}. The following is an example of FDB file. @example times__m.pfb type1/t/times__m.pfb times__m.afm type1/t/times__m.afm zac_____.ttf ttf/z/zac_____.ttf zalescap.ttf ttf/z/zalescap.ttf @end example Suppose that this FDB file is located in @file{/foo/bar/}, for instance. The file tells us that there is a file @file{times__m.pfb} and absolute path name of the file is @file{/foo/bar/type1/t/times__m.pfb}. If FDB file is found in a root directory of font directory, the FDB file is opened to find a requested font file. If a requested font file is not found, other font directory is searched, i.e., the directory is not traversed at all. In case FDB file is not found, a font directory is traversed to find a requested font file. It is important to remember that you must not forget to update FDB file after you added new font files in a font directory. If you forget, installed font files are not found evenif they are in a font directory. To update a FDB file, run the utility program @code{vflmkfdb}. See @ref{vflmkfdb}, for details of the program. A FDB file must be located in a root of a font directory and its name must be @file{VFlib.fdb}. Even if there is a FDB file in a sub-directory of a font directory, VFlib does not look for it. @c Node, Next, Previous, Up @node Compressed font files, Explicit and implicit fonts, Fast font file search, Writing a vflibcap @section Compressed font files To reduce disk storage, compressed font files and uncompression on the fly is supported by some font class. Note that this feature is font class dependent and not all font class support this. In a vflibcap file, a font file name need not have a compressed type extension, such as @code{.gz}. When VFlib searches a font file, it internally adds compressed type extension and finds a file. @c Node, Next, Previous, Up @node Explicit and implicit fonts, Variables in vflibcap, Compressed font files, Writing a vflibcap @section Explicit and implicit fonts @cindex explicit fonts @cindex implicit fonts Fonts explicitly defined in a vflibcap file are called @emph{explicit fonts}. Fonts does not appear vflibcap file and searched by font drivers on demand are called @emph{implicit fonts}. @c Node, Next, Previous, Up @node Variables in vflibcap, VFlib defaults, Explicit and implicit fonts, Writing a vflibcap @section Variables in vflibcap @cindex variables In a vflibcap file, variables can be used as capability values. A capability value can be a value of a variable if a dollar sign (@code{$}) followed by a variable name is given. For instance, @code{(dpi $TeX_DPI)} can be used instead of @code{(dpi 300)}. The value for a variable must be defined somewhere. Default value can be given in @code{(define-default VFlib ...)}, which will be explained later. @cindex VFLIBCAP_PARAM_var Default values can be overridden on initialization function of VFlib @code{VF_Init()}, or Unix environment variables @code{VFLIBCAP_PARAM_@var{var}}. For example, @code{VFLIBCAP_PARAM_TeX_DPI} is defined, its value becomes the value of the vflibcap variable @code{TeX_DPI}. The value of an environment variable @code{VFLIBCAP_PARAM_@var{var}} is parsed as an S-expression, not as an string. Thus, if you want to specify a string @code{ABC 123}, the value of an environment variablue must be @code{\"abc 123\"}. (Without double quotation, it will be a sequence of two strings. Only the first one is effective and the second one is ignored.) @c Node, Next, Previous, Up @node VFlib defaults, BDF font class, Variables in vflibcap, Writing a vflibcap @section VFlib defaults To specify global behavior of VFlib, (virtual) font class @code{VFlib} is defined. The following capability are defined. @table @asis @item @code{implicit-font-classes} (optional) --- A list of implicit font classes. Font classes listed by this capability is candidates for implicit font searching. example: @code{(implicit-font-classes "bdf" "pcf" "gf")} @item @code{extension-hints} (optional) --- A list of paris of font name postfix and corresponding font class name. This is hint information to find font class from a font name in case of searching an implicit font. If an implicit font name matches with a postfix given by this capability, specified font class is invoked to search an implicit font. This is effective to reduce time to search an implicit font. example: @code{(extension-hints (".pcf" pcf) (".bdf" bdf) ("gf" gf))} @item @code{variable-values} (optional) --- A list of pairs of a name of vflibcap variable and its default value. example: @code{(variable-values ("TeX_DPI" "300") ("TeX_KPATHSEA_MODE" "cx") (v ("p1" "v1")} @item @code{uncompression-programs} (optional) --- A list of pairs of file name extension and corresponding uncompression program. This is used for reading compressed font files. An uncompression program must output uncompressed data to standard output. This capability is just defines relations of an extension and an uncompression program. A list of supported compressed types of a font class is given in a font class default description of each font class. example: @code{(uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")} @item @code{code-conversion-files} (optional) --- A list of file names for encoding conversion. Currently, TrueType font class uses this. See @ref{Code conversion system}. example: @code{(code-conversion-files "iso8859-1_unicode.ccv".ccv")} @item @code{use-kpathsea} (optional) --- A flag whether kpathsea is used or not to search @TeX{} font files. Value of this capability must be one of @code{"Yes"} or @code{"No"}. example: @code{(use-kpathsea "Yes")} @item @code{kpathsea-mode} (optional) --- A device mode name for kpathsea library. example: @code{(kpathsea-mode "cx")} @item @code{kpathsea-dpi} (optional) --- Device resolution (in dpi) of a device mode for kpathsea library. example: @code{(kpathsea-mode 300)} @item @code{kpathsea-program-name} (optional) --- An application program name for kpathsea library. example: @code{(kpathsea-mode "xgdvi")} @end table @c Node, Next, Previous, Up @node BDF font class, PCF font class, VFlib defaults, Writing a vflibcap @section BDF font class The BDF format is a bitmap font format encoded in human-readable, platform independent format for distributing X Window fonts. This font class supports compressed font files and implicit fonts. @* @noindent @b{Font class name}: @code{bdf} @cindex BDF font class @* @noindent @b{Capabilities for font class default:} @* @table @asis @item @code{font-directories} (optional) --- A list of font directories for searching font files. Recursive searching of font files is support. @item @code{compression-extensions} (optional) --- A list of supported compression type for this font class. This font class supports only compression type given by this capability. When a font is searched, a file followed by a compression extension is searched if given font file is not found. (Note that @code{uncompression-programs} capability of VFlib class default description gives a uncompression programs.) example: @code{(compression-extensions ".gz" ".Z")} @item @code{dpi} (optional) --- Defualt device resolution. Default horizontal and vertical resolutions will be the same value. example: @code{(dpi 300)} @item @code{dpi-x} (optional) --- Default horizontal device resolution. example: @code{(dpi-x 300)} @item @code{dpi-y} (optional) --- Default vertical device resolution. example: @code{(dpi-y 300)} @item @code{aspect-ratio} (optional) --- Aspect ratio of characters. If this value is 0.5 then width is half, and if 2 then width is doubled. example: @code{(aspect-ratio 0.8)} @item @code{properties} (optional) --- A list of pairs of a property name and its value. Property values given by this parameter is used by @code{VF_GetProp()} example: @code{(properties ("PROP-1" "value-1") ("PROP-2" "value-2"))} @item @code{variable-values} (optional) --- A list of pairs of a vflibcap variable name and its default value. example: @code{(variable-values ("TeX_DPI" "300") ("TeX_KPATHSEA_MODE" "cx") ("TeX_KPATHSEA_PROGRAM" "/usr/X11R6/xldvi"))} @end table @* @noindent @b{Capabilities for font definition:} @* @table @asis @item @code{font-class} (essential) --- A font class name. This value must be @code{bdf}. @item @code{font-directories} (optional) --- A list of font directories for searching font files. Recursive searching of font files is support. A font file is searched in the directories given by this capability. If this capability is not given, the font directory specified by the class default is used to search fonts. If this capability is given, the font directory specified by the class default is not used to search fonts. @item @code{font-file} (optional) --- A font file name string. If this capability is not specified, the font name is used as the font file name. Multiple font file names can be listed in this capability. The driver tries to open a font listed first. If it is impossible to open, then it tries to open the second font. This is repeated until a font is successfully opened. If all fonts are impossible to open, font open fails. example: @code{(font-file "timI24.bdf" "timR24.bdf")} @item @code{point-size} (optional) --- font size in points. If the size is different from the size defined in the BDF font file, the bitmap is enlarged or shrinked to yield the specified size. This capability has effect for the VFlib functions @code{VF_GetBitmap1()} and @code{VF_GetMetric1()}. example: @code{(point-size 24.0)} @item @code{pixel-size} (optional) --- font size in pixels. If the size is different from the size defined in the BDF font file, the bitmap is enlarged or shrinked to yield the specified size. This capability has effect for the VFlib functions @code{VF_GetBitmap2()} and @code{VF_GetMetric2()}. example: @code{(pixel-size 24)} @item @code{magnification} (optional) --- magnification factor. The font is magnified by this factor. example: @code{(magnification 1.20)} @item @code{character-set} (optional) --- This is used for code point conversion. Value of this capability gives an external view of a character set of a font. Code conversion (ccv) is determined by this value and the following three capabilities. @item @code{encoding} (optional) --- This is used for code point conversion. Value of this capability gives an external view of an encoding of a font. @item @code{font-character-set} (optional) --- This is used for code point conversion. Value of this capability gives an internal view of a character set of a font. Therefore, this value must match the character set of the font file given by @code{font-file} capability. @item @code{font-encoding} (optional) --- This is used for code point conversion. Value of this capability gives an internal view of an encoding of a font. Therefore, this value must match the encoding of the font file given by @code{font-file} capability. The following example defines a font named @code{iso8859_5-font} with ISO-8859-5 encoding by using a KOI8-R encoded font file. @example (define-font iso8859_5-font (font-class pcf) (character-set "ISO8859-5") (encoding "ISO") (font-character-set "KOI8-R") (font-encoding "KOI8-R") (font-file "koi8x13.pcf")) @end example Code conversion is done by a subsystem named CCV. See @ref{Code conversion system} for detail. @end table @c Node, Next, Previous, Up @node PCF font class, HBF font class, BDF font class, Writing a vflibcap @section PCF font class @cindex PCF font class @noindent @b{Font class name:} @code{pcf} @* Other specification is the same as BDF font class except font class name is @code{pcf}. @c Node, Next, Previous, Up @node HBF font class, TrueType font class, PCF font class, Writing a vflibcap @section HBF font class @cindex HBF font class @noindent @b{Font class name:} @code{hbf} @* Other specification is the same as BDF font class except font class name is @code{hbf}. @c Node, Next, Previous, Up @node TrueType font class, Type1 font class, HBF font class, Writing a vflibcap @section TrueType font class @cindex TrueType font class TrueType is a vector font font format. This font class supports implicit fonts but does not support compressed font files. @cindex FreeType TrueType font driver uses FreeType library version 1.2 developed by David Turner, Robert Wilhelm, and Werner Lemberg. See @url{http://www.freetype.org/} for detail. @* @noindent @b{Font class name:} @code{truetype} @* @noindent @b{Capabilities for font class default:} @* @table @asis @item @code{font-directories} (optional) --- A list of font directories. This driver supports font file search by kpathsea. To search a font file by kpathsea, use @code{TEXMF} for a directory name. @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{dpi-x} (optional) @item @code{dpi-y} (optional) @item @code{aspect-ratio} (optional) @c @item @code{writing-direction} (optional) @item @code{hinting} (optional) --- If the value of capability @code{on}, "hinting" information is used to render characters. This is effective when small characters are rendered. If the value is @code{off}, hinting is disabled. Hinting information is used by default. Note that enabling hinting has effect when obtaining bitmaps. It has no effect when you obtain and rasterize outline data in VFlib format, since VFlib outline format does not supports hinting information. @item @code{platform-id} (optional) --- A TrueType font can have multiple character code - glyph mapping tables. A mapping table is selected by specifying a pair of platform ID (@code{Microsoft}, @code{Macintosh}, etc) and encoding ID (@code{Unicode}, @code{Shift-JIS}, etc). This capability is used to specify platform ID of a mapping table to be selected. Value of this capability is one of strings below: @table @asis @item @code{apple} Apple platform @item @code{macintosh}, @code{mac} Macintosh platform @item @code{ascii}, @code{iso} ISO platform @item @code{microsoft}, @code{windows}, @code{ms} Microsoft platform @item @code{any}, @code{?}, @code{*} Any platform @end table Default value for this capability is Microsoft platform. example: @code{(platform-id "microsoft")} @item @code{encoding-id} (optional) --- Together with platform id, this capability is used to specify a mapping table. When ISO platform is selected by the @code{encoding-id} capability, value of this @code{encoding-id} capability is one of strings below: @* @table @asis @item @code{ascii} ASCII encoding. @item @code{iso10464} ISO 10464 encoding. @item @code{iso8859-1} ISO8859-1 encoding. @item @code{any}, @code{?}, @code{*} Any encoding. @end table @* When Apple platform is selected by the @code{encoding-id} capability, value of this @code{encoding-id} capability is one of strings below: @* @table @asis @item @code{unicode1.1} Unicode 1.1 encoding. @item @code{unicode2.0} Unicode 2.0 encoding. @item @code{iso10464} ISO 10464 encoding. @item @code{any}, @code{?}, @code{*} Any encoding @end table @* When Microsoft platform is selected by the @code{encoding-id} capability, value of this @code{encoding-id} capability is one of strings below: @* @table @asis @item @code{symbol} @item @code{unicode} Unicode encoding. @item @code{shift-jis}, @code{sjis}, @code{ms-kanji} Shift JIS encoding. @item @code{big5} Big5 encoding. @item @code{rpc} @item @code{wansung} @item @code{johab} @item @code{any}, @code{?}, @code{*} Any encoding @end table @* When Macintosh platform is selected by the @code{encoding-id} capability, value of this @code{encoding-id} capability is one of strings below: @table @asis @item @code{roman} @item @code{japanese} @item @code{traditional-chinese} @item @code{korean} @item @code{arabic} @item @code{hebrew} @item @code{greek} @item @code{russian} @item @code{any}, @code{?}, @code{*} Any encoding @end table example: @code{(encoding-id "any")} @item @code{properties} (optional) @item @code{variable-values} (optional) @end table @* @noindent @b{Capabilities for font definition:} @* @table @asis @item @code{font-class} (essential) This value must be "truetype". @item @code{font-directories} (optional) --- A list of font directories for searching font files. Recursive searching of font files is support. A font file is searched in the directories by this capability. If not found, then a font is searched in a directories given by the class default. To search a font file by kpathsea, use @code{TEXMF} for a directory name. @item @code{font-file} (optional) @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{dpi-x} (optional) @item @code{dpi-y} (optional) @item @code{magnification} (optional) @item @code{aspect-ratio} (optional) @c @item @code{writing-direction} (optional) @item @code{hinting} (optional) @item @code{font-number} (optional) @item @code{encoding-force} (optional) --- In case encoding id data is broken in a TrueType font, its value can be overridden by this capability. example @code{(encoding-force "unicode")} @item @code{character-set} (optional) --- Together with @code{encoding} capability, this capability is used to change "external view" of a font. A font would be a font of a character set given by this capability and encoding given by @code{encoding} capability. Conversion of font internal character set and encoding to an external view is determined by these capability. Conversion is done by by code conversion system, called CCV. @ref{Code conversion system} Code conversion files are specified in @code{code-conversion-files} in @code{VFlib} font class default. See @ref{VFlib defaults}. For example, a font of JIS X 0208 character set (a Japanese character set) in Shift-JIS encoding fonts can be accessed as a JIS encoding font. @item @code{encoding} (optional) --- Together with @code{character-set} capability, this capability defines a external view of a font. @ref{Code conversion system} @item @code{properties} (optional) @item @code{jisx0212-row47-empty-sjis} (optional) --- This capability is used for an ad-hoc solution to handle JIS X 0212 fonts with non-standard encoding such that row 47 is empty and followed rows are shifted by one. (That is, Kanjis in row 48 of JIS X 0212 appeard in row 49 in such fonts.) JIS X 0212 fonts of Ricoh TrueTypeWorld ValueFont DX are such fonts. If @code{yes} is given to this capability, buggy encoding is virtually fixed. This capability can apply to other products of buggy encoded JIS X 0212 fonts whose internal encoding is Shift JIS. (Use @code{ftdump} utility of FreeType package to check internal encoding scheme of fonts.) @end table @c Node, Next, Previous, Up @node Type1 font class, Zeit font class, TrueType font class, Writing a vflibcap @section Type1 font class @cindex Type1 font class Type1 is a vector font font format used by PostScript. This font class supports implicit fonts but does not support compressed font files. @cindex T1Lib This Type1 font driver uses T1Lib library version 5.1 or later developed by Rainer Menzner. See @url{http://www.neuroinformatik.ruhr-uni-bochum.de/ini/PEOPLE/rmz/t1lib/t1lib.html} for detail. Be careful, VFlib does not work with old T1Lib. Obtain and install T1Lib 5.1 or later. Currently, this font driver supports only 8-bit encoded fonts, i.e., it does not support for fonts of Japanese Kanji characters. The function @code{VF_GetOutline()} for Type1 font files is supported but the result is ugly. Since T1Lib does not have a function to obtain outline data of a character in Type1 font, this font driver creates an outline data from a bitmap (for compatibility). Thus, it is very ugly. If your application software requires outline data, you are recommended to use the same font in other font format, such as TrueType. Thus, the outline obtained @code{VF_GetOutline()} function for Type1 font should be used only when the same font in other font format is not available. @* @noindent @b{Font class name:} @code{type1} @* @noindent @b{Capabilities for font class default:} @* @table @asis @item @code{font-directories} (optional) --- A list of directories of Type1 font files. This driver supports font file search by kpathsea. To search a font file by kpathsea, use @code{TEXMF} for a directory name. @item @code{afm-directories} (optional) --- A list of directories of AFM files. Each element of this capability should not be a directory for recursive search (ending by @t{//}). This is why AFM files are searched by inside of T1Lib, although Type1 font files are searched by a file search subsystem of VFlib. @item @code{encoding-vector-directories} (optional) --- A list of directories of encoding files. Each element of this capability should not be a directory for recursive search (ending by @t{//}). This is why encoding vector files are searched by inside of T1Lib. By default, directories @code{/usr/local/share/VFlib/@var{x.y.z}/t1lib/} and @code{/usr/local/share/VFlib/site/t1lib/} are registered. Optional directories can be installed by this capability. T1Lib adopts file format for encoding vector file. When we want to use encoding vector files supplied by @command{dvips}, we must convert them into T1Lib format. To automate this, you can use a Unix Shell script @command{mkt1enc.sh} which is in @code{/usr/local/share/VFlib/@var{x.y.z}/t1lib/} directory. Encoding vector files for @command{dvips} are converted into T1Lib format and they are also installed in this directory. @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{dpi-x} (optional) @item @code{dpi-y} (optional) @item @code{aspect-ratio} (optional) @item @code{log-level} (optional) --- Select logfile output type of T1Lib. The filename of a logfile is @file{t1lib.log}. If this capability is not given, the logfile is not created. @table @asis @item @code{error} Only error messages are written to the logfile. @item @code{warning} Warning messages and error messages are written to the logfile. @item @code{statistics} Statistics messages and above written to the logfile. @item @code{debug} Any messages useful for debugging and above are written to the logfile. @item @code{none} Never use a logfile. @end table See users manual of T1Lib for detail. @item @code{properties} (optional) @item @code{variable-values} (optional) @end table @* @noindent @b{Capabilities for font definition:} @* @table @asis @item @code{font-class} (essential) This value must be "type1". @item @code{font-file} (optional) A list of font file names. Font file is searched in the listed order until existing font files is found. example: @code{(font-file "AvantGarde-Book" "a0100131.pfb")} By this example, @file{AvantGarde-Book} is seached first. If it exists, it is opened. Otherwise, @file{a0100131.pfb} is seached next. If it exists, it is opened. If it does not exist either, font open fails. @item @code{encoding-vector} (optional) A file name for encoding vector. This file must be reside in a directoy listed by @code{encoding-vector-directories} capability for type1 font class default. @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{dpi-x} (optional) @item @code{dpi-y} (optional) @item @code{magnification} (optional) @item @code{aspect-ratio} (optional) @item @code{slant-factor} (optional) --- Slant factor of a font. This value is tan(@var{th}), where @var{th} is slant angle of a font. Default value is 0, in case of @var{th} is 90 degree. example: @code{(slant-factor 0.2)} @c @item @code{character-set} (optional) @c --- Together with @code{encoding} capability, this capability @c is used to change "external view" of a font. @c A font would be a font of a character set given by this capability @c and encoding given by @code{encoding} capability. @c Conversion of font internal character set and encoding to @c an external view is determined by these capability. @c Conversion is done by by code conversion system, called CCV. @c @ref{Code conversion system} @c Code conversion files are specified in @c @code{code-conversion-files} in @code{VFlib} font class default. @c @xref{VFlib defaults} @c @c For example, a font of JIS X 0208 character set (a Japanese character set) @c in Shift-JIS encoding fonts can be accessed as a JIS encoding font. @c @c @item @code{encoding} (optional) @c --- Together with @code{character-set} capability, @c this capability defines a external view of a font. @c @ref{Code conversion system} @item @code{properties} (optional) @end table @c Node, Next, Previous, Up @node Zeit font class, JG font class, Type1 font class, Writing a vflibcap @section Zeit font class @cindex Zeit font class This font class supports @i{"Syotai Kurubu"} format; it is a vector font format for Japanese Kanji characters. Several free Japanese fonts in this file format are available. @itemize @bullet @item Umeda vector fonts @itemize @minus @item @url{ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/umeda-vector/mincho.vf1.gz} @item @url{ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/umeda-vector/mincho.vf2.gz} @item @url{ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/umeda-vector-font/mincho.vf1.gz} @item @url{ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/umeda-vector-font/mincho.vf2.gz} @end itemize @* @item Watanabe vector fonts @itemize @minus @item @url{ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/watanabe-vector/mincho.vf1.gz} @item @url{ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/watanabe-vector/mincho.vf2.gz} @item @url{ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/watanabe-vector-font/mincho.vf1.gz} @item @url{ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/watanabe-vector-font/mincho.vf2.gz} @end itemize @* @item Wadalab fonts @itemize @minus @item @url{ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/wadalab-vector/} @item @url{ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/wadalab-vector-font/} @item See also @url{ftp://ftp.ipl.t.u-tokyo.ac.jp/Font/} for Free Japanese Kanji fonts in Type 1 formats. @end itemize @end itemize This font class does not support compressed font files nor implicit fonts. @* @noindent @b{Font class name:} @code{zeit} @* @noindent @b{Capabilities for font class default:} @* @table @asis @item @code{font-directories} (optional) @item @code{filename-extensions} (optional) --- Two file files form a font for this font class, e.g., @code{mincho.vf1} and @code{mincho.vf2}. Extension candidates without digit must be the value for this capability. example: @code{(filename-extensions ".vf" ".VF")} @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{dpi-x} (optional) @item @code{dpi-y} (optional) @item @code{aspect-ratio} (optional) @item @code{writing-direction} (optional) --- Default writing direction. @code{Horizontal} or @code{vertical}; default is @code{Horizontal}. This is the same as @code{(vector-to-bbx-upper-left 0.0 0.86)} and @code{(vector-to-next-ref-point 1.0 0.0)} if value of this capability is "horizontal". Otherwise, it is the same as @code{(vector-to-bbx-upper-left -0.5 0.0)} and @code{(vector-to-next-ref-point 0.0 -1.0)}. @item @code{vector-to-bbx-upper-left} (optional) --- Default value of a vector from the reference point of a character to upper-left bounding box. Right and up are positive directions. example: @code{(vector-to-bbx-upper-left 0 0.86)} @item @code{vector-to-next-ref-point} (optional) --- Default value of a vector from the reference point to next reference point. example: @code{(vector-to-next-ref-point 1.0 0.0)} @item @code{properties} (optional) @item @code{variable-values} (optional) @end table @* @noindent @b{Capabilities for font definition:} @table @asis @item @code{font-class} (essential) --- A font class name. @item @code{font-name} (optional) --- Font file name without extensions. Together with vale and extension given by default description, font file names are formed. For example, if @code{mincho} is given for the @code{font-name} capability and @code{(".vf")} is given for the @code{filename-extensions} capability, then font files @code{mincho.vf1} and @code{mincho.vf2} are used. example: @code{(font-name "mincho")} @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{dpi-x} (optional) @item @code{dpi-y} (optional) @item @code{magnification} (optional) @item @code{aspect-ratio} (optional) @item @code{writing-direction} (optional) @item @code{vector-to-bbx-upper-left} (optional) example: @code{(vector-to-bbx-upper-left 0 0.86)} @item @code{vector-to-next-ref-point} (optional) example: @code{(vector-to-next-ref-point 1.0 0.0)} @item @code{properties} (optional) @end table @c Node, Next, Previous, Up @node JG font class, eKanji font class, Zeit font class, Writing a vflibcap @section JG font class @cindex JG font class JG font format is a vector font format for Japanese character sets JIS X 0208. JG font driver is based on the work by Hideo Morishita. @* @noindent @b{Font class name:} @code{jg} @* @noindent @b{Capabilities for font class default:} @* @table @asis @item @code{filename-extensions} (optional) --- Three files form a font for this font class, e.g., @code{mincho.fn0}, @code{mincho.fn1}, and @code{mincho.fn2}. Extension candidates without digit must be the value for this capability. example: @code{(filename-extensions ".fn" ".FN")} @end table (Other capabilities are the same as @code{zeit} font class.) @b{Capability for font definition:} Capabilities are the same as @code{zeit} font class. @c Node, Next, Previous, Up @node eKanji font class, TeX default and TeX font mapping font class, JG font class, Writing a vflibcap @section eKanji font class @cindex eKanji font class The eKanji font format is a bitmap font format for Kanji characters. The first character in an eKanji font file has code point 1, and the second character has code point 2. That is, characters in an eKanji font are numbered sequentially starting from 1. (This encoding scheme can be changed by setting some capabilities.) eKanji font files are distributed at the following URL: @url{http://www.zinbun.kyoto-u.ac.jp/~ekanji/} The distribution package contains the following font files. @itemize @bullet @item Unicode (@file{ekan0010.d24}) @cindex Unicode @item Kyoto University KangXi (@file{ekan0020.d24}) @cindex KangXi @item Morohashi DaiKanwa (@file{ekan0030.d24}) @cindex Morohashi DaiKanwa @item JIS X 0208 (@file{jisx9052.d24}) @end itemize @noindent @b{Font class name:} @code{ekanji} @noindent @b{Capabilities for font class default:} @table @asis @item @code{font-directories} (optional) @item @code{font-dot-size} (optional) --- Dot size of characters in the font file. Default value is 24. example: @code{(font-dot-size 24)} @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{dpi-x} (optional) @item @code{dpi-y} (optional) @item @code{aspect-ratio} (optional) @item @code{writing-direction} (optional) --- Default writing direction. @code{Horizontal} or @code{vertical}; default is @code{Horizontal}. This is the same as @code{(vector-to-bbx-upper-left 0.0 0.92)} and @code{(vector-to-next-ref-point 1.0 0.0)} if value of this capability is "Horizontal". Otherwise, it is the same as @code{(vector-to-bbx-upper-left -0.5 0.0)} and @code{(vector-to-next-ref-point 0.0 -1.0)}. @item @code{vector-to-bbx-upper-left} (optional) --- Default value of a vector from the reference point of a character to upper-left bounding box. Right and up are positive directions. example: @code{(vector-to-bbx-upper-left 0 0.90)} @item @code{vector-to-next-ref-point} (optional) --- Default value of a vector from the reference point to next reference point. example: @code{(vector-to-next-ref-point 1.0 0.0)} @item @code{properties} (optional) @item @code{variable-values} (optional) @end table @* @b{Capability for font definition:} @table @asis @item @code{font-class} (essential) --- A font class name. @item @code{font-name} (optional) --- Font file name with extension. @item @code{font-dot-size} (optional) --- Dot size of characters in the font file. @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{dpi-x} (optional) @item @code{dpi-y} (optional) @item @code{magnification} (optional) @item @code{aspect-ratio} (optional) @item @code{character-set} (optional) @itemx @code{encoding} (optional) @itemx @code{font-character-set} (optional) @itemx @code{font-encoding} (optional) --- Select code conversion. If you want to access a eKanji font by ISO-2022 (JIS) encoding scheme, define @code{eKanji} for @code{character-set}, @code{ISO2022} for @code{encoding}, @code{eKanji} for @code{font-character-set}, and @code{SEQUENTIAL2-1} for @code{encoding}. Then the first character in the eKanji font is accessed by code point 0x2121. @item @code{mock-font-encoding} (optional) --- By this capability, encoding of an eKanji font file is virtually changed. This capability requires an argument and parameter. There are three keywords for an argument: @itemize @bullet @item @code{raw} No effect, i.e., font encoding is not changed. @item @code{subblocks-94x94} @var{B} An eKanji font file is virtually divided by 94x94 sub blocks (blocks of 94x94 = 8836 characters) and selects @var{B}-th block for this font definition. This implies that an eKanji font file with this capability offers only 8836 (= 94x94) characters among all the characters of an eKanji font file. The first sub block is numbered zero. (A font with @var{B} = 0 for this capability selects the first sub block.) Characters with character code from @math{8836*B+1} to @math{8836*B+8836} in an eKanji font file is accessed by character code from 0x2121 to 0x7e7e. @item @code{subblocks-94x60} @var{B} This is similar to the case for @code{subblocks-94x60}. An eKanji font file is virtually divided by 94x60 sub blocks (blocks of 94x60 = 5640 characters) and selects @var{B}-th block for this font definition. The first sub block is numbered zero. Characters with character code from @math{5640*B+1} to @math{5640*B+5640} in an eKanji font file is accessed by character code from 0x3021 to 0x4e7e (first 30 rows) and from 0x5021 to 0x6e7e (another 30 rows). (This division scheme is the same as Mojikyo scheme.) @item @code{with-offset} @var{OFFS} An offset value @var{OFFS} is added to obtain character code of a character in an eKanji font file. When @var{OFFS} is @code{-0x4dff}, the first character in an eKanji font file is accessed by code number 0x4e00, since @math{0x4e00 + (-0x4dff) = 1}. @end itemize Theoretically, the same functionality shown above can be implemented within the CCV subsystem framework @ref{Code conversion system}, the eKanji font driver defines this capability, since the eKanji font file format adopts curious character encoding scheme and it seems to be simpler and cleaner to define this capability. @item @code{writing-direction} (optional) @item @code{vector-to-bbx-upper-left} (optional) example: @code{(vector-to-bbx-upper-left 0 0.86)} @item @code{vector-to-next-ref-point} (optional) example: @code{(vector-to-next-ref-point 1.0 0.0)} @item @code{properties} (optional) @end table @c Node, Next, Previous, Up @node TeX default and TeX font mapping font class, PK font class, eKanji font class, Writing a vflibcap @section @TeX{} default and @TeX{} font mapping font class @cindex @TeX{} default and @TeX{} font mapping font class This is a special font class to define common default values of @TeX{}-related font classes. This font class has a feature to map a requested font to another font. Thus, this class is also called @i{"@TeX{} font mapping class"} or @i{"@TeX{} font mapper"}. @TeX{}-related font classes include the followings: GF, PK, TFM, VF, ASCII Japanese TeX. This font class supports only implicit fonts and explicit fonts is not supported. Therefore, the driver name of this font class must be given in @code{extension-hints} and/or @code{implicit-font-classes} capabilities in the @code{VFlib} default description if you want to use the font mapping feature of this class. Mapped font is recursively (recursively) requested to open and any operations such as obtaining bitmaps on the requested font are applied on the mapped font. @* @noindent @b{Font class name:} @code{TeX} @* @noindent @b{Capabilities for font class default:} @* @table @asis @item @code{dpi} (optional) --- Default device resolution for @TeX{}-related fonts. @item @code{tfm-directories} (optional) --- A list of directories of TFM files. Directories listed by this capability is used for searching TFM files. If a directory name is @code{TEXMF}, kpathsea is invoked to search a file. example: @code{(tfm-directories "TEXMF" "/usr/local/share/font/tfm//")} @item @code{tfm-filename-extensions} (optional) --- A list of extensions of filenames for TFM files. This is used to construct a TFM file name, e.g., "cmr10.tfm" for a font "cmr10". example: @code{(tfm-filename-extensions "tfm")} @item @code{font-mapping} (optional) --- Font mapping rules are described in this capability. When a font is requested to open (as an implicit font), the font name is mapped to another name and specified font driver is requested to open the mapped font. Syntax of this capability is as follows: @example (font-mapping ((@var{DRIVER-NAME} @var{MAPPING-FORMAT} @var{FONT-OPEN-OPTIONS}) ... @var{FONT-NAME} @var{FONT-NAME} ...) ((@var{DRIVER-NAME} @var{MAPPING-FORMAT} @var{FONT-OPEN-OPTIONS}) ... @var{FONT-NAME} @var{FONT-NAME} ...) ...) @end example Thus, value for this capability is a sequence of items @code{((@var{DRIVER-NAME} @var{MAPPING-FORMAT} @var{FONT-OPEN-OPTIONS}) ... @var{FONT-NAME} @var{FONT-NAME} ...)}, and this forms a mapping rule. @var{FONT-NAME} is a font name and this rule applies if requested font name matches @var{FONT-NAME}. (@var{FONT-NAME} is a name without directory and extension parts. A font name requested to open is compared with @var{FONT-NAME} by deleting directory and extension parts.) If @var{FONT-NAME} contains @code{*} character, it matches to the rest of requested font name. For example, @code{cm*} matches @code{cmr10} and @code{cmbx10}. Thus, in case @var{FONT-NAME} is @code{*}, all fonts matches and thus all fonts applies the rule. The font name is mapped according to the format @var{MAPPING-FORMAT} and mapped name is opened by calling a font driver @var{DRIVER-NAME}. @code{VF_OpenFont1()} and @code{VF_OpenFont2()} are not used. (As a special case, when @var{DRIVER-NAME} is @code{*}, @code{VF_OpenFont1()} or @code{VF_OpenFont2()} is used to open a mapped font.) The syntax of @var{MAPPING-FORMAT} is similar to a format string of @code{printf()} function in C library, but conversion characters and semantics are different. Conversion specification is introduced by @code{%} character. Non-conversion characters are simply copied and conversion specifications are substituted for the following: @table @asis @item @code{%%} @code{%} character @item @code{%f} the requested font name without extension and directory parts. @item @code{%d} font file resolution part in the extension of the requested font name @item @code{%e} file format part in the extension of the requested font name @end table For instance, let @code{/foo/bar/qwe.300pk} is the requested font name. Then @code{%f} is @code{qwe}, @code{%d} is @code{300}, and @code{%e} is @code{pk}. A conversion specification will be null string if corresponding substring does not exist. In general, mapped fonts are opened with the same parameters (device resolution, magnification factors, point or pixel size) of the requested font. Such parameters can be changed by optional @var{FONT-OPEN-OPTIONS} part. Following descriptions can be used for @var{FONT-OPEN-OPTIONS}: We can specify multiple @code{(@var{DRIVER-NAME} @var{MAPPING-FORMAT} @var{FONT-OPEN-OPTIONS})} in a rule description. This is useful if we need to write multiple mapping rules for the same set of fonts. A font is opened by the following way. @enumerate @item For each rule (from the first one to the last one), the requested font name is checked if the rule applies to the font. If the rule does not apply, check next rule. @item For each (@var{DRIVER-NAME} @var{MAPPING-FORMAT} @var{FONT-OPEN-OPTIONS}) in the rule, the requested font is mapped and font open is attempted. If a mapped font is is successfully opened, it is used as a requested font. Otherwise, next mapping (@var{DRIVER-NAME} @var{MAPPING-FORMAT} @var{FONT-OPEN-OPTIONS}) is attempted. This is repeated for a mapped font is opened. @item If mapped fonts are not opened, next rule is checked. This is repeated for all rules until a mapped font is opened. @end enumerate example: @example (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*") ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ((pk "%f.%dpk") (gf "%f.%dgf") (tfm "%f.tfm") *)) @end example For this example, suppose that @code{min10.300pk} is requested to open. @enumerate @item The first rule applies to the requested font since @code{min*} is in the font list. The @code{ascii-jtex-kanji} driver is invoked to open a mapped name @code{min10.jtex}. If it is opened, font open succeeds; @code{min10.jtex} is used as @code{min10.300pk} and font open finishes. If the font is not opened, continue to the next step. @item The second rule applies to the requested font since @code{*} is given in the font list. The @code{type1} driver is invoked to open a mapped name @code{min10.pfb}. If it is opened, @code{min10.jtex} is used as @code{min10.300pk} and font open finishes. If the font is not opened, continue to the next step. @item The second rule applies to the reqiested font since @code{*} is given in the font list. @enumerate @item The @code{pk} driver is invoked to open a mapped name @code{min10.300pk}. If it is not opened, next mapping is attempted. @item The @code{gf} driver is invoked to open a mapped name @code{min10.300gf}. If it is not opened, next mapping is attempted. @item The @code{tfm} driver is invoked to open a mapped name @code{min10.tfm}. @end enumerate @end enumerate If everything above fails, font open for @code{cmr10.300pk} fails. @itemize @bullet @item @code{point-size-from-tfm} (optional) --- When a mapped font is opened (in mode 1, high resolution oriented mode), point size which is obtained from a TFM file is given. This is necessary when we use TrueType and/or Type1 fonts for mapped fonts. For example, "cmr10.ttf" and "cmr10.pfb" in the BaKoMa font set do not have point size information, since TrueType and Type1 format fonts cannot have information on point size. @item @code{(magnification-adjustment @var{mag})} (optional) --- Mapped fonts are opened with magnification factors magnified by @var{mag}. This can be used to adjust size of mapped fonts. But most of the case, this is not necessary. @end itemize As a restriction of fonts of this class, each font must have a TFM file. @item @code{resolution-accuracy} (optional) @itemx @code{resolution-corrections} (optional) --- According to arithmetic errors, DPI value for font files and computed value (= device resolution times magnification value) may be different. These two capabilities give correct resolution values for PK and GF fonts. Syntax of these capabilities are as follows: @example (resolution-accuracy @var{ACCURACY}) (resolution-corrections (@var{DEVICE-RESOLUTION} @var{FONT-RESOLION} @var{FONT-RESOLION} ... ) (@var{DEVICE-RESOLUTION} @var{FONT-RESOLION} @var{FONT-RESOLION} ... ) ...) @end example @var{DEVICE-RESOLUTION} is the resolution of target device in DPI and @var{FONT-RESOLUTION} is a font resolution value. To find a font file, font resolution is computed by device resolution times magnification factor. Then, this driver finds a list @code{(@var{DEVICE-RESOLUTION} @var{FONT-RESOLUTION} @var{FONT-RESOLUTION} ... )} such that @var{DEVICE-RESOLUTION} is the same as resolution of target device. (If there is no such list is the capability value, font file resolution is not corrected and computed value is used.) For each @var{FONT-RESOLUTION} in the list, the driver checks if the computed font file resolution is in the range from @var{FONT-RESOLUTION} times (1-@var{ACCURACY}) to @var{FONT-RESOLUTION} times (1+@var{ACCURACY}). If the computed resolution is in the range, font file resolution is changed to @var{FONT-RESOLUTION}. Then, a font file is searched by the corrected font file resolution. example: @example (resolution-accuracy 0.02) (resolution-corrections (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) @end example Be careful not to map to the same name! Otherwise, font open will be an infinite loop. (VFlib restricts the depth of nested font open. Even if the font name is mapped to the same name, VFlib will detects an error, anyway.) @item @code{properties} (optional) @item @code{variable-values} (optional) @end table @c Node, Next, Previous, Up @node PK font class, GF font class, TeX default and TeX font mapping font class, Writing a vflibcap @section PK font class @cindex PK font class PK fonts are bitmap fonts used by @TeX{} system. PK font driver provides a logical view of PK fonts when a font is requested to open as an implicit font; if a given font filename is @code{cmr10.pk}, requested device resolution is 300 and magnification is 1.2, then PK font driver looks for a font file @code{cmr10.360pk}. Thus, font names (for font open) should not be the same as font filenames on filesystems. To search a font file, the kpathsea library can be used. A special name @code{TEXMF} in a list of font directories (capability @code{font-directories}) is used to search a file by kpathsea. To enable kpathsea, the value for @code{use-kpathsea} capability in @code{VFlib} class default must be @code{"Yes"}. This font class supports compressed font files and implicit fonts. @* @noindent @b{Font class name:} @code{pk} @* @noindent @b{Capabilities for font class default:} @* @table @asis @item @code{font-directories} (optional) --- A list of directory names for font files. This driver supports font file search by kpathsea. To search a font file by kpathsea, use @code{TEXMF} for a directory name. @item @code{filename-extensions} (optional) --- A list of extensions of filenames for PK fonts. This is used to construct a font file name "cmr10.300pk" from "cmr10.pk" for 300 dpi fonts. example: @code{(filename-extensions "pk")} @item @code{make-missing-glyph} (optional) --- Generate a PK font file from Metafont source file by running METAFONT on the fly, if a requested PK font file does not exist. example: @code{(make-missing-glyphs "yes")} @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{properties} (optional) @item @code{variable-values} (optional) @end table @* @noindent @b{Capabilities for font definition:} @* @table @asis @item @code{font-class} (essential) --- A font class name. @item @code{font-file} (optional) --- a font filename. An extension (e.g., @code{.300pk}) can be omitted. In case of this capability is not given, font name is used as this capability value. @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{properties} (optional) @item @code{magnification} (optional) @end table @c Node, Next, Previous, Up @node GF font class, TFM font class, PK font class, Writing a vflibcap @section GF font class @cindex GF font class @* @noindent @b{Font class name:} @code{gf} @* Other capabilities are the same as ones for @code{pk} font class. @c Node, Next, Previous, Up @node TFM font class, VF font class, GF font class, Writing a vflibcap @section TFM font class @cindex TFM font class TFM files contains only metric information for typesetting @TeX{} documents. This font class provides fonts whose metrics are defined by TFM font files. Since TFM files do not have glyph, glyph of a font of this font class are (black or white) rectangles. Fonts of this font class can be used as substitutes of PK, GF, or VF files in case they are missing. If the file is not found, it is searched by @code{font-directories} capability given in @code{TFM} font class default description. Note that the extension of font files (given by the @code{filename-extensions} capability) has no effect for searching by kpathsea library. The extension of font files must be ".tfm". See kpathsea manual for detail. This font class supports compressed font files and implicit fonts. @* @noindent @b{Font class name:} @code{tfm} @* @noindent @b{Capabilities for font class default:} @* @table @asis @item @code{font-directories} (optional) --- A list of directory names for font files. This driver supports font file search by kpathsea. To search a font file by kpathsea, use @code{TEXMF} for a directory name. @item @code{filename-extensions} (optional) @item @code{glyph-style} (optional) --- Defines default glyph style: @code{empty} or @code{fill}. If @code{empty} is given, all glyph of a font are white rectangles. If @code{fill} is given, all glyph of a font are black rectangles. @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{properties} (optional) @item @code{variable-values} (optional) @end table @noindent @b{Capabilities for font definition:} @table @asis @item @code{font-class} (essential) --- A font class name. @item @code{font-file} (optional) @item @code{glyph-style} (optional) --- Defines glyph style: @code{empty} or @code{fill}. If @code{empty} is given, all glyph of a font are white rectangles. If @code{fill} is given, all glyph of a font are black rectangles. @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{magnification} (optional) @item @code{aspect-ratio} (optional) @item @code{properties} (optional) @end table @c Node, Next, Previous, Up @node VF font class, ASCII Japanese TeX Kanji font class, TFM font class, Writing a vflibcap @section VF font class @cindex VF font class This font class handles @i{Virtual Font} files. A virtual font consists of a font program and subfonts. A font program in a vf file is similar to DVI file formats. Glyph of a virtual font are constructed from a box instruction in a font program and glyph taken from subfonts. Therefore, this font class requires a font mapping rule to obtain glyph from subfonts. You can specify VFlib not to open subfonts of a virtual font in case of subfonts are unavailable. @noindent @b{Font class name:} @code{vf} @noindent @b{Capabilities for font class default:} @table @asis @item @code{font-directories} (optional) --- A list of directory names for font files. This driver supports font file search by kpathsea library. To search a font file by kpathsea library, use @code{TEXMF} for a directory name. @item @code{filename-extensions} (optional) --- A extension string for virtual font files. example: @code{(filename-extensions "vf")} @item @code{tfm-directories} (optional) @item @code{tfm-filename-extensions} (optional) @item @code{font-mapping} (optional) --- A set of rules for mapping for subfonts to open as an VFlib fonts. This is the same as @TeX{} font mapper, i.e., @code{font-mapping} capability for @code{TeX} font class default description. Be careful not to map to the same name! Otherwise, font open will be an infinite loop. (VFlib restricts the depth of nested font open. Even if the font name is mapped to the same name, VFlib will detects an error, anyway.) @item @code{open-style} (optional) --- This capability specifies how subfonts are opened. @table @asis @item @code{none} --- Boxes are used instead of glyph of subfonts. Subfonts are not opened. @item @code{try} --- The virtual font driver tries to open each subfont. If subfonts are opened, glyph are taken from opened subfonts. If some subfonts are not opened, boxes are used instead of glyph of such subfonts. It is not an error even if all subfonts are not opened. @item @code{require} --- The virtual font driver tries to open each subfont. It is an error if every subfont is not opened. @end table @item @code{glyph-style} (optional) --- In case boxes are used instead of glyph of subfonts, this capability controls the looks of boxes. @table @asis @item @code{empty} --- Boxes are white, i.e., all pixels are value 0. @item @code{fill} --- Boxes are black, i.e., all pixels are value 1. @end table @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{properties} (optional) @item @code{variables} (optional) @item @code{debug} (optional) @end table @noindent @b{Capabilities for font definition:} @table @asis @item @code{font-file} (optional) --- File name of a virtual font. @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{magnification} (optional) @item @code{properties} (optional) @end table @c Node, Next, Previous, Up @node ASCII Japanese TeX Kanji font class, Japanese comic font class, VF font class, Writing a vflibcap @section ASCII Japanese @TeX{} Kanji font class @cindex ASCII Japanese @TeX{} Kanji font class This is for @i{Kanji} fonts of Japanese @TeX{} localized by ASCII Co. This font driver provides @i{Kanji} fonts that can be accessed as if they were PK fonts by using another VFlib font. Font metrics of @i{Kanji} characters defined by ASCII j@TeX{} may not match that of a @i{Kanji} font to be used. This case happens when @code{jiskan24.pcf} font is used as a Japanese @i{Kanji} font for @TeX{}. This font driver works as a @emph{filter} that modifies font metrics of another font. Change of font metrics is defined by an external file called @code{adjustment file}. See sample distribution of adjustment files for their syntax. (Not documented now...) Font metrics of a font of this class is defined by a TFM font; a vector to the next reference point is taken from a TFM file. A vector to upper left corner of a bitmap is taken from subfont. Then, font metrics is modified according to an adjustment file. This driver supports vertical writing. In case fonts for vertical writing are not available, the driver rotates glyph of some characters, e,g, parenthesis, to yield (possible) correct glyph. @noindent @b{Font class name:} @code{ascii-jtex} @noindent @b{Capabilities for font class default:} @table @asis @item @code{implicit-font-mapping-suffix} (optional) --- A suffix to map a font name for searching an implicit font. Suppose a font is requested to open. Then, font name is mapped in such a way that extension is deleted and the suffix given by this capability is added. Then, an vflibcap entry of the mapped name is searched. If such an entry exists, it is used for the implicit font and the font is opened as if it were an explicit font. (Note that a font of the mapped name must exist as an explicit font, not as an implicit font.) Suppose @code{min10.400pk} is requested to open as an implicit font and the value of this capability is @code{.jtex}. Then mapped name is @code{min10.jtex} and it is opened by this font driver internally. example: @code{(implicit-font-mapping-suffix ".jtex")} @item @code{tfm-directories} (optional) @item @code{tfm-filename-extensions} (optional) @item @code{properties} (optional) @item @code{variable-values} (optional) @end table @noindent @b{Capabilities for font definition:} @table @asis @item @code{font-class} (essential) --- A font class name. @item @code{kanji-font} (optional) --- Font name for a subfont. @item @code{kanji-font-point-size} (optional) --- Default point size of subfont. If point size is not explicitly given when a font is opened, This value is used. @item @code{kanji-font-pixel-size} (optional) --- Default pixel size of a subfont. If pixel size is not explicitly given when a font is opened, This value is used. @item @code{kanji-font-magnification} (optional) --- magnification factor for subfont. @item @code{tfm-file} (optional) --- TFM file that defines font metrics of a font. example: @code{(tfm-file "min10.tfm")} @item @code{metric-adjustment-file} (optional) --- a file name for font metric adjustment file. @item @code{properties} (optional) @end table @c Node, Next, Previous, Up @node Japanese comic font class, Try font class, ASCII Japanese TeX Kanji font class, Writing a vflibcap @section Japanese comic font class @cindex Japanese comic font class This font driver composes two Japanese @i{Kanji} fonts. According to code point (@i{Kana} or @i{kanji} character), one of two font is selected to obtain a bitmap or metric. This font class provides Japanese fonts that composes @i{Kana} and @i{Kanji} font. @noindent @b{Font class name:} @code{japanese-comic} @noindent @b{Capabilities for font class default:} @table @asis @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{properties} (optional) @item @code{variable-values} (optional) @end table @noindent @b{Capabilities for font definition:} @table @asis @item @code{font-class} (essential) --- A font class name. @item @code{kanji-font} (optional) --- A VFlib font name for Kanji characters. For code points for Kanji characters, this font is used to obtain bitmaps and metrics. @item @code{kana-font} (optional) --- A VFlib font name for Kana font (code point: 0x2121 ... 0x287f). For code points except Kanji characters, this font is used to obtain bitmaps and metrics. @item @code{symbol-font} (optional) --- A VFlib font name for symbol characters (code point: 0x2121 ... 0x227f). If this capability is not given, a font given by @code{kana-font} is used for symbol characters. @item @code{alpha-numeric-font} (optional) --- A VFlib font name for alphabet and numeric characters (code point: 0x2321 ... 0x237f). If this capability is not given, a font given by @code{kana-font} is used for alphabet and numeric characters. @item @code{hirakana-font} (optional) --- A VFlib font name for Hirakana characters (code point: 0x2421 ... 0x247f). If this capability is not given, a font given by @code{kana-font} is used for Hirakana characters. @item @code{katakana-font} (optional) --- A VFlib font name for Katakana characters (code point: 0x2521 ... 0x257f). If this capability is not given, a font given by @code{kana-font} is used for Katakana characters. @item @code{greek-font} (optional) --- A VFlib font name for Greek characters (code point: 0x2621 ... 0x267f). If this capability is not given, a font given by @code{kana-font} is used for Greek characters. @item @code{cyrillic-font} (optional) --- A VFlib font name for Cyrillic characters (code point: 0x2721 ... 0x277f). If this capability is not given, a font given by @code{kana-font} is used for Cyrillic characters. @item @code{keisen-font} (optional) --- A VFlib font name for Keisen characters (code point: 0x2821 ... 0x287f). If this capability is not given, a font given by @code{kana-font} is used for Keisen characters. @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{magnification} (optional) @item @code{properties} (optional) @end table @c Node, Next, Previous, Up @node Try font class, Mojikyo font mapping class, Japanese comic font class, Writing a vflibcap @section Try font class @cindex Try font class A font of this font class has a list of @emph{sub-fonts}. When a font of this class is requested open, the try font driver tries to open the sub-fonts one after another until one of them is successfully opened. If all sub-fonts in the list are not opened, the font is failed to be opened. All font operation of the font is applied to an opened sub-font. @noindent @b{Font class name:} @code{try} @noindent @b{Capabilities for font class default:} @table @asis @item @code{properties} (optional) @item @code{variable-values} (optional) @end table @noindent @b{Capabilities for font definition:} @table @asis @item @code{font-class} (essential) --- A font class name. This must be @code{try}. @item @code{font-list} (optional) --- A list of sub-fonts. These fonts are VFlib fonts, not a font file names. @item @code{point-size} (optional) @item @code{pixel-size} (optional) @item @code{dpi} (optional) @item @code{magnification} (optional) @item @code{properties} (optional) @end table @c Node, Next, Previous, Up @node Mojikyo font mapping class, Example vflibcap 1, Try font class, Writing a vflibcap @section Mojikyo font mapping class @cindex Mojikyo font mapping class This font driver is specific to the Mojikyo font files, which is a huge collection (more than 80 thousand) of Kanji characters. (Access @url{http://www.mojikyo.gr.jp/} for detail.) The Mojikyo font is supplied by a set of font files, since the number of characters is too huge to contain in a single font file. The Mojikyo font defines its own character encoding, staring from 1 and each character has its own character code. (Character codes are not the codes in a font file.) The Mojikyo font set is supplied by both TrueType and Type 1 formats. A single character space of the Mojikyo is divided into font file number and character code in a font file. This means that we must compute font file among many font files and code point in a font file to obtain a glyph of Mojikyo characters. To avoid such complex procedure, this font driver provides a virtual single font. Note that this font driver only delegates requested characters to other font driver (TrueType or Type 1). Therefore, TrueType and/or Type 1 font driver must be configured in VFlib and they must be propopery set up in a vflibcap file. @noindent @b{Font class name:} @code{mojikyo-mapper} @noindent @b{Capabilities for font class default:} @table @asis @item @code{properties} (optional) @item @code{variable-values} (optional) @end table @noindent @b{Capabilities for font definition:} @table @asis @item @code{font-class} (essential) --- A font class name. This must be @code{mojikyo-mapper}. @item @code{division-scheme} (optional) Mapping scheme from the Mojikyo character space to real font files is different by real font file format (TrueType/Type1). This capability defines which mapping scheme is used. If @code{truetype} is given for this capability, underlaying font files are in TrueType format. If @code{type1} is given for this capability, underlaying font files are in Type 1 format. Default value for this capability is @code{truetype}. Aliases of division scheme names are defined as follows: @code{ttf} is an alias of @code{truetype}, and @code{pfb} is an alias of @code{type1}. @item @code{subfont-name-format} (optional) This capability defines format of font file names. If @code{truetype} is selected for @code{division-scheme} capability, @code{Mojik%d.ttf} is assumed for this capability by default. @code{%d} in @code{Mojik%d.ttf} is substituted by font number, starting from 101. If @code{type1} is selected for @code{division-scheme} capability, @code{mo%dm%02d.pfb} is assumed for this capability by default. The first @code{%d} in @code{mo%dm%02d.pfb} is a major font number, starting from 101. The second @code{%d} in @code{mo%dm%02d.pfb} is a minor font number, starting from 6. In case you want to use a font name format other than described above, this capability should be defined. Note that format sting should contain exactly one @code{%d} if you select @code{truetype} division scheme, and exactly two @code{%d}s if you select @code{type1} division scheme. @item @code{truetype-subfont-encoding} (optional) This capability has effect only when @code{truetype} division scheme is selected. This capability selects character encoding scheme of underlaying TrueType font files. If @code{unicode} is given to this capability, underlaying TrueType fonts are encoded in Unicode. If @code{iso-2022} (as aliases, @code{iso2022} or @code{jis} can be used) is given to this capability, underlaying TrueType fonts are encoded in ISO 2022 (JIS). Default value is @code{unicode}, which is the same as the the Mojikyo font files in TrueType format. @item @code{properties} (optional) @end table @c Node, Next, Previous, Up @node Example vflibcap 1, Example vflibcap 2, Mojikyo font mapping class, Writing a vflibcap @section Example vflibcap 1 This example vflibcap is for general use. @c vflibcaps/vflibcaps (sniped) @example ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib ;; hint to find font class from font name for fast font open (extension-hints (".bdf" bdf) (".pcf" pcf) (".hbf" hbf) (".ttf" truetype) (".ttc" truetype) (".pfa" type1) (".pfb" type1) ("pk" TeX) ("gf" gf) ("tfm" tfm)) ;; implicit font classes (implicit-font-classes pcf bdf hbf truetype type1 zeit jg gf tfm) ;; uncompression programs (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) ;; a list of default values of variables ;; *Note* "variable-values" must come before variable uses (variable-values (TeX_DPI "300") (TeX_USE_KPATHSEA "Yes") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "/usr/local/bin/xldvi")) ;; kpathsea: enabled/disabled (use-kpathsea $TeX_USE_KPATHSEA) ;; kpathsea mode (e.g., "cx") (kpathsea-mode $TeX_KPATHSEA_MODE) ;; kpathsea program name (e.g., "/usr/local/bin/xdvi") (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) ;; encoding/charset conversion files (code-conversion-files "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv" "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv" "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv" "jisx0201_unicode.ccv" "jisx0208_unicode.ccv" "jisx0212_unicode.ccv" "ksc5601_unicode.ccv" "gb12345_unicode.ccv" "gb2312_unicode.ccv" "big5_unicode.ccv" "cns11643_unicode.ccv" "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv")) ;; ----------------------------------------------------------------- ;; BDF Font Class Default ;; ----------------------------------------------------------------- (define-default bdf ;; font directories (font-directories "/usr/local/share/fonts/X11//") ;; extensions of compressed font files that this font class supports (compression-extensions ".gz" ".Z") ;; default values for fonts of this font class (variable-values (VAR1 ("PROP1" "VAL1")) ; just for debugging... (VAR2 ("PROP2" "VAL2")) (VARX ("PROPX" "VFlib-VALX")) ) ;; properties for all fonts of this font class (properties ("FONT_CLASS" "BDF")) ) ;; ----------------------------------------------------------------- ;; PCF Font Class Default ;; ----------------------------------------------------------------- (define-default pcf ;; font directories (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/fonts/X11//") ;; extensions of compressed font files that this font class supports (compression-extensions ".gz" ".Z") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "PCF")) ) ;; ----------------------------------------------------------------- ;; HBF Font Class Default ;; ----------------------------------------------------------------- (define-default hbf ;; font directories (font-directories "/usr/local/share/fonts/HBF//") ;; extensions of compressed font files that this font class supports (compression-extensions ".gz" ".Z") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "HBF")) ) ;; ----------------------------------------------------------------- ;; TrueType Font Class Default ;; ----------------------------------------------------------------- (define-default truetype ;; font directories (font-directories "TEXMF" ; - a special name to search by `kpathsea' "/usr/local/share/fonts/bakoma/ttf/" "/usr/local/share/fonts/FontCity2//" "/usr/local/share/fonts/DynaFont-Premium30/win95//" "/usr/local/share/fonts/DynaFont-SpecialPack1/win95//" "/usr/local/share/fonts/TrueTypeWorld-ValueFont141//" "/usr/local/share/fonts/FontAsia//" "/usr/local/share/fonts/FontGarden/ttf//" ) ;; debugging flags ('*' selects all) (debug "") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "TrueType")) ) ;; ----------------------------------------------------------------- ;; Type1 Font Class Default ;; ----------------------------------------------------------------- (define-default type1 ;; font (pfa, pfb) directories (font-directories "TEXMF" ; - a special name to search by `kpathsea' "/usr/local/share/fonts/bakoma/pfb/") ;; AFM directories (afm-directories "TEXMF" ; - a special name to search by `kpathsea' "/usr/local/share/fonts/bakoma/afm/") ;; T1Lib logfile output level: "none", "error", "warning", "stat", "debug" (log-level "none")) ;; ----------------------------------------------------------------- ;; Syotrai Club Font Class Default ;; ----------------------------------------------------------------- (define-default zeit ;; filename extensions ("vf" for "mincho.vf@{1,2@}") (filename-extensions ".vf") ;; font directories (font-directories "/usr/local/share/fonts/Watanabe//" "/usr/local/share/fonts/WadaLab//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "ZEIT") ("CHARSET_REGISTRY" "jisx0208.1983") ("CHARSET_ENCODING" "0") )) ;; ----------------------------------------------------------------- ;; JG Font Class Default ;; ----------------------------------------------------------------- (define-default jg ;; filename extensions ("fn" for "zkyo0by.fn@{0,1,2@}") (filename-extensions ".fn") ;; font directories (font-directories "/usr/local/share/fonts/JG-Fonts//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "JG") ("CHARSET_REGISTRY" "jisx0208.1983") ("CHARSET_ENCODING" "0"))) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX ;; TFM file directories (tfm-directories "TEXMF" "/usr/local/share/fonts/bakoma/tfm/") ;; possible extensions of TFM files (tfm-filename-extensions ".tfm") ;; font name mapping rules (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*") ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ((pk "%f.%dpk") (gf "%f.%dgf") *) ((tfm "%f.%dtfm") *)) ;; accuracy of device resolutions, used with 'resolution-corrections' (resolution-accuracy 0.02) ;; font resolution values for each device resolutions. (resolution-corrections (240 ;; sparcptr 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) ;; default device resolution (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; TeX GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf ;; font directories (font-directories "TEXMF" "/usr/local/TeX/gf//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "GF")) ) ;; ----------------------------------------------------------------- ;; TeX PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk ;; font directories (font-directories "TEXMF" "/usr/local/TeX/pk//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "PK")) ) ;; ----------------------------------------------------------------- ;; TeX TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm ;; font directories (font-directories "TEXMF" "/usr/local/TeX/tfm//") ;; glyph style: "fill" (all pixels black) or "empty" (all pixels white) (glyph-style "fill") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "TFM")) ) ;; ----------------------------------------------------------------- ;; ASCII-jTeX Kanji Font Class Default ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji ;; TFM file directories (tfm-directories "TEXMF") ;; possible extensions of TFM files (tfm-filename-extensions ".tfm") ;; Suffix for name mapping ;; (e.g., implicit font "min10.300pk" is mapped to "min10.jtex") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; Japanese Comic Font Class Default ;; ----------------------------------------------------------------- (define-default japanese-comic ;; debugging flags ('*' selects all) (debug "f") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "JAPANESE-COMIC") ("CHARSET_REGISTRY" "jisx0208.1983") ("CHARSET_ENCODING" "0"))) ;; ----------------------------------------------------------------- ;; sample font definitions for Japanese TeX (define-font jtex-min (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-goth (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tmin (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tgoth (font-class pcf) (font-file "jiskan24.pcf")) ;; Definitions for "min10" fonts. These fonts are used by ;; 'name mapping' feature of ascii-jtex-kanji driver. ;; (e.g., "min10.400pk" is mapped to "min10.jtex") (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24v.adj")) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24v.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) ;; ----------------------------------------------------------------- ;; EOF @end example @c Node, Next, Previous, Up @node Example vflibcap 2, Example vflibcap 3, Example vflibcap 1, Writing a vflibcap @section Example vflibcap 2 This vflibcap file is an example for @TeX{} DVI drivers. This vflibcap file provides a set of fonts of the form @code{@var{NAME}.@var{DVI}pk} and @code{@var{NAME}.pk}. For example, @code{cmr10.300pk} and @code{cmr10.pk}. For Japanese Kanji character fonts @code{min5} ... @code{min10}, @code{goth5} ... @code{goth10}, @code{tmin5} .. @code{tmin10}, @code{tgoth5} ... @code{tgoth10}, X Window PCF format font @code{jiskan24.pcf} is used via @code{ascii-jtex-kanji} font driver. Other fonts are solved in PK and GF format fonts. If a font is not available in these formats, a TFM font is used to produce a "black" box. (TFM files are metrics files and do not conatin glyph. But TFM driver in VFlib produces a "box" glyph as it ware font files.) Parameters of device resolution and magnification factor for the function @code{VF_OpenFont1()} determines the font size and font metrics to be opened. To use VFlib with this vflibcap file, I recommend to open font by @code{VF_OpenFont1(@var{name}.pk, @var{dpi}, @var{dpi}, -1, @var{mag}, @var{mag})}, where @code{@var{name}.pk} is a font name (e.g., @code{cmr10.pk}), @var{dpi} is the device resolution in dpi (e.g., @code{300}), and @var{mag} is the magnification factor (e.g., @code{1.2} for magstep 1 fonts). @c vflibcaps/vflibcap-tex (sniped) @example ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (extension-hints ("pk" TeX)) (implicit-font-classes) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") ;; or "600" (TeX_KPATHSEA_MODE "cx") ;; or "ljfour" (TeX_KPATHSEA_PROGRAM "/usr/local/bin/xldvi")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv" "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv" "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv" "jisx0201_unicode.ccv" "jisx0208_unicode.ccv" "jisx0212_unicode.ccv" "ksc5601_unicode.ccv" "gb12345_unicode.ccv" "gb2312_unicode.ccv" "big5_unicode.ccv" "cns11643_unicode.ccv" "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv")) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*") ((pk "%f.%dpk") (gf "%f.%dgf") *) ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ;; sparcptr 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; VF Font Class Default ;; ----------------------------------------------------------------- (define-default vf (font-directories "TEXMF") (font-mapping ((type1 "%f.pfb" point-size-from-tfm) *) ) (open-style "try") ;; "none", "try", or "require" (glyph-style "fill")) ;; "fill", or "empty" ;; ----------------------------------------------------------------- ;; TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm (glyph-style "fill")) ;; ----------------------------------------------------------------- ;; ASCII-JTeX Kanji fonts ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji (tfm-directories "TEXMF") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; Type1 Font Class Default ;; ----------------------------------------------------------------- (define-default type1 (font-directories "TEXMF") (afm-directories "TEXMF") (log-level "none") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; TrueType Font Class Default ;; ----------------------------------------------------------------- (define-default truetype (font-directories "TEXMF") (platform-id "microsoft") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; PCF Font Class Default ;; ----------------------------------------------------------------- (define-default pcf (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/fonts/X11//") (compression-extensions ".gz" ".Z") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; Japanese Kanji fonts using standard X11 PCF fonts (define-font jtex-min (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-goth (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tmin (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tgoth (font-class pcf) (font-file "jiskan24.pcf")) (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24v.adj")) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24v.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) ;; ----------------------------------------------------------------- ;; EOF @end example @c Node, Next, Previous, Up @node Example vflibcap 3, , Example vflibcap 2, Writing a vflibcap @section Example vflibcap 3 This is an example for @TeX{} DVI drivers. This vflibcap desgnates VFlib to use PK files. For missing PK files, black "boxes" by TFM fonts are used as substitutes of glyphs of PK files @c vflibcaps/vflibca-tex-pk @example ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (extension-hints ("pk" TeX) ("gf" TeX)) (implicit-font-classes) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") ;; or "600" (TeX_KPATHSEA_MODE "cx") ;; or "ljfour" (TeX_KPATHSEA_PROGRAM "/usr/local/bin/xldvi")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM)) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX (tfm-directories "TEXMF" "/usr/local/lib/jtex/fonts" "/usr/local/lib/tex/fonts") (tfm-filename-extensions ".tfm") (font-mapping ((pk "%f.%dpk") *) ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ;; sparcptr 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm (glyph-style "fill")) ;; ----------------------------------------------------------------- ;EOF @end example @c ------------------------------------------------------------------------ @c Node, Next, Previous, Up @node Debugging a vflibcap, Code conversion system, Writing a vflibcap, Top @chapter Debugging a vflibcap There is no utility programs that checks syntax of a vflibcap file. But VFlib checks syntax of vflibcap file when a font driver is initialized or a font is opened. VFlib prints a message to inform a user if syntax is illegal, undefined capability is used (this may be a typographical error), essential capability is missing, an undefined macro is used, or forms of capability values are illegal. The following Unix environment variables are used to print debugging messages. @table @asis @item @code{VFLIB_DEBUG_FONT_OPEN} --- If this environment variable is defined, the processes of font opens are printed. @item @code{VFLIB_DEBUG_FONT_SEARCH} --- If this variable is defined, the processes of font opens are printed @item @code{VFLIB_DEBUG_VFLIBCAP} --- If this variable is defined, the process of reading of vflibcap file is printed. @item @code{VFLIB_DEBUG_PARAMETERS} --- If this variable is defined, VFlib prints how parameters (variables) in vflibcap file are substituted. @item @code{VFLIB_DEBUG_CCV} --- If this variable is defined, the process of reading CCV files is printed. @item @code{VFLIB_DEBUG_CCV_MAPPING} --- If this variable is defined, encoding conversions by CCV are printed. @end table @c ------------------------------------------------------------------------ @c Node, Next, Previous, Up @node Code conversion system, Utility programs, Debugging a vflibcap, Top @chapter Code conversion system @cindex CCV @cindex code conversion system @cindex code-conversion-files Code conversion system (CCV) is used to convert from a character set and an encoding to another. For example, a font of Unicode character set and Unicode encoding can be accessed as ISO 8859-2 character set of ISO encoding by encoding conversion. TrueType font class makes use of this feature to hide invisible internal font encoding scheme and provides desired external view to users. Conversion rule is given by one of the following two methods @itemize @bullet @item Internal functions in VFlib (written in C) These functions are hardcoded and new conversions rules cannot be added without modifying source code. @item External files, called CCV files. A list of CCV files to be used is specified in @code{code-conversion-files} capability of @code{VFlib} default. @end itemize @section How CCV works Each conversion rule has the following information. @itemize @bullet @item EXTERNAL charset name @item EXTERNAL encoding name @item INTERNAL charset name @item INTERNAL encoding name @item other info such as format and size of conversion table... @end itemize On invocation of VFlib, these information is read from each CCV files. (CCV files are not fully loaded at initialization of VFlib; VFlib just checks relation of conversion. Conversion tables, which can be large, are loaded on demand.) In addition, when VFlib is initialized, internal CCV functions are installed and these information is given for each conversion function. "EXTERNAL" means external view (i.e., user side encoding) and "INTERNAL" means internal view (i.e., font encoding). Users can define arbitrary charset and encoding names, except that some font driver may predefined names for internal use. (TrueType font driver uses some predefined names, such as "unicode".) CCV system has a conversion table searching mechanism. Table is searched by source charset/encoding names and destination charset/encoding names. If there is a CCV file listed in @code{code_conversion_files} capability of @code{VFlib} defaults entry in vflibcap that matches charset and encoding name, the CCV file is dynamically loaded and used for code conversion. For example, a CCV file @t{iso8859-1_unicode.ccv} has the following charset/encoding names: @itemize @bullet @item EXTERNAL charset name: @t{ISO8859-1} @item EXTERNAL charset encoding: @t{ISO} @item INTERNAL charset name: @t{UNICODE} @item INTERNAL charset encoding: @t{UNICODE} @end itemize By this CCV file, a unicode font can be viewed as a ISO encoding of ISO 8859-1 charset. (It is very important to note that names are just symbols and not have any meaning; in the above example, conversion to ISO encoding is implemented by conversion table body in CCV file.) In the current implementation, BDF, PCF, HBF, and TrueType font drivers use CCV system. In the following, how TrueType font driver uses CCV is described. Each TrueType font has information about charset name and encoding name of the font. When a font entry is defined in vflibcap file and @code{encoding} and @code{character-set} capability is defined, say, @var{E} and @var{C} respectively. According to internal charset and encoding information of TrueType font, the driver searches a CCV table, when the VFlib font is opened, that matches the following conversion relation. @itemize @bullet @item EXTERNAL charset name: @var{E} @item EXTERNAL charset encoding: @var{C} @item INTERNAL charset name: possibly, @t{UNICODE} (from font file info) @item INTERNAL charset encoding: possibly, @t{UNICODE} (from font file info) @end itemize If not found, conversion is impossible. If found, a CCV file found is used. After a font is opened, CCV table is used for converting code points for VFlib operation such as @code{VF_GetBitmap1()}. @section The internal (hardcoded) CCV functions VFlib has several hardcoded CCV functions. Followings CCV functions are implemented. @itemize @bullet @item from ISO-2022 (@code{ISO2022}) to Shift JIS (@code{SJIS}) @item from Shift JIS (@code{SJIS}) to ISO 2022 (@code{ISO2022}) @item from EUC (@code{EUC}) to ISO 2022 (@code{ISO2022}) @item from Row-Cell (@code{Row-Cell}) to ISO 2022 (@code{ISO2022}) @item from ISO-2022 (@code{ISO2022}) to Row-Cell (@code{Row-Cell}) @item from ISO-2022 (@code{ISO2022}) to WanSung (@code{WanSung}) @item from Row-Cell (@code{Row-Cell}) to WanSung (@code{WanSung}) @item from ISO-2022 (@code{ISO2022}) to Sequential Numbering (@code{Sequential2-0} and @code{Sequential2-1}) By these encoding schemes, characters are numbered sequentially starting from 0 (@code{Sequential2-0}) or 1 (@code{Sequential2-1}). That is, @code{Sequential2-0} encoding is an encoding such that code of the first character is 0, code of the second is 1, ..., and code of the i-th character is (i-1). @code{Sequential2-1} encoding is an encoding such that code of the first character is 1, code of the second is 2, ..., and code of the i-th is (i). External code point must be encoded two-byte, i.e., 0x2121...7e7e. These values are converted to 0...8835 or 1...8836. @end itemize Encoding name @code{JIS} is defined as an alias of @code{ISO2022}. Encoding name @code{Ku-Ten} is defined as an alias of @code{Row-Cell}. Note that these aliases are defined only for hardcorded CCV functions. All of these are implemented simple arithmetic and large conversion tables are not necessary in memory. @section The syntax of CCV files The syntax of CCV files is lisp-like notation, similar to vflibcap files. The CCV file defines its own directive set, explained below. A code conversion table is divided in several sub-tables to reduce the file size (and memory size when the file is loaded into memory). The sub-tables are called `blocks'. @table @code @item (charset-external-name @var{from-cs-name}) @itemx (charset-external-encoding @var{from-cs-enc}) @itemx (charset-internal-name @var{to-cs-name}) @itemx (charset-internal-encoding @var{to-cs-enc}) --- These four directives describes character set and encoding information of conversion. @item (table-type @var{type}) @var{type} must be one of the following: @itemize @asis @item @code{array} @item @code{random-arrays} @end itemize @item (c1-min @var{c1min}) @itemx (c1-max @var{c1max}) @itemx (c2-min @var{c2min}) @itemx (c2-max @var{c2max}) @itemx (block-size @var{size}) @itemx (nblocks @var{nblocks}) @itemx (block @var{block} @var{code0} @var{code1} ...) @end table Let @var{c} be a code point of a character to be converted by this CCV file. It is converted as follows. Let @var{c1} be @var{c}/@var{size} and @var{c2} be @var{c} modulo @var{size}. The block number @var{b} that should be referred to is @var{c1}-@var{c1min}. The position @var{i} in the block @var{b} is @var{c2}-@var{c2min}. Thus, the value of @var{i}-th entry of a block numbered @var{b} is converted code point. @var{c1max}, @var{c2max} and @var{nblocks} are used internally to determine the necessary memory area to load the table. Theoretically, @code{array} is enough for the value for @code{table-type} directive. But in case that there are many blocks that do not have conversion entries. This is happen in the case of CNS11643 character set (a Hanji character set in Taiwan). To reduce the table size, some of blocks can be omitted by giving @code{random-array} for @code{table-type} directive. In case of @code{array}, lookup for code conversion is implemented by indexing an entire array, which is very fast. In case of @code{random-array}, lookup for code conversion takes time to find a corresponding sub-table (block), since the table is not linear. @section Example of a CCV file 1 The following example is a CCV file that virtually provides a ISO 8859-1 character set font using a Unicode font. That is, a Unicode font can be used as if it were a ISO 8859-1 font by the CCV file. This file is distributed with VFlib and installed by the name @code{iso8859-1_unicode.ccv}. This file is a table indexed by code points of ISO 8859-1; contents of table entries are Unicode code points. @c iso8859-1_unicode.ccv @example ; Conversion table: ISO8859-1 ==> UNICODE (charset-external-name ISO8859-1) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x20) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0020 ... 0x00ff (block 0 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x00a0 0x00a1 0x00a2 0x00a3 0x00a4 0x00a5 0x00a6 0x00a7 0x00a8 0x00a9 0x00aa 0x00ab 0x00ac 0x00ad 0x00ae 0x00af 0x00b0 0x00b1 0x00b2 0x00b3 0x00b4 0x00b5 0x00b6 0x00b7 0x00b8 0x00b9 0x00ba 0x00bb 0x00bc 0x00bd 0x00be 0x00bf 0x00c0 0x00c1 0x00c2 0x00c3 0x00c4 0x00c5 0x00c6 0x00c7 0x00c8 0x00c9 0x00ca 0x00cb 0x00cc 0x00cd 0x00ce 0x00cf 0x00d0 0x00d1 0x00d2 0x00d3 0x00d4 0x00d5 0x00d6 0x00d7 0x00d8 0x00d9 0x00da 0x00db 0x00dc 0x00dd 0x00de 0x00df 0x00e0 0x00e1 0x00e2 0x00e3 0x00e4 0x00e5 0x00e6 0x00e7 0x00e8 0x00e9 0x00ea 0x00eb 0x00ec 0x00ed 0x00ee 0x00ef 0x00f0 0x00f1 0x00f2 0x00f3 0x00f4 0x00f5 0x00f6 0x00f7 0x00f8 0x00f9 0x00fa 0x00fb 0x00fc 0x00fd 0x00fe 0x00ff ) @end example @section Example of a CCV file 2 The following example is a CCV file that virtually provides a CNS 11643 Plane 1 character set font using a Unicode font. This file is distributed with VFlib and installed by the name @code{cns11643-1_unicode.ccv}. This file is an example of CCV files that have @code{random-arrays} for @code{table-type} directive. @example ; Conversion table: CNS11643-1 ==> UNICODE (charset-external-name CNS11643-1) (charset-external-encoding ISO2022) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type random-arrays) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x121) (c1-max 0xe67) (c2-min 0x21) (c2-max 0x7e) (block-size 256) (nblocks 218) ; 0x12121 ... 0x1217e (block 0 0x3000 0xff0c 0x3001 0x3002 0xff0e 0x30fb 0xff1b 0xff1a 0xff1f 0xff01 0xfe30 0x2026 0x2025 0xfe50 0xfe51 0xfe52 0x00b7 0xfe54 0xfe55 0xfe56 0xfe57 0xfe31 0x2014 0xfe32 0x2013 -1 -1 -1 -1 0xff08 0xff09 0xfe35 0xfe36 0xff5b 0xff5d 0xfe37 0xfe38 0x3014 0x3015 0xfe39 0xfe3a 0x3010 0x3011 0xfe3b 0xfe3c 0x300a 0x300b 0xfe3d 0xfe3e 0x3008 0x3009 0xfe3f 0xfe40 0x300c 0x300d 0xfe41 0xfe42 0x300e 0x300f 0xfe43 0xfe44 0xfe59 0xfe5a 0xfe5b 0xfe5c 0xfe5d 0xfe5e 0x2018 0x2019 0x201c 0x201d 0x301d 0x301e 0x2032 0x2035 0xff03 0xff06 0xff0a 0x203b 0x00a7 0x3003 0x25cb 0x25cf 0x25b3 0x25b2 0x25ce 0x2606 0x2605 0x25c7 0x25c6 0x25a1 0x25a0 0x25bd 0x25bc ) ; 0x12221 ... 0x1227e (block 1 0x32a3 0x2105 0x203e -1 0xff3f -1 0xfe49 0xfe4a 0xfe4d 0xfe4e 0xfe4b 0xfe4c 0xfe5f 0xfe60 0xfe61 0xff0b 0xff0d 0x00d7 0x00f7 0x00b1 0x221a 0xff1c 0xff1e 0xff1d 0x2266 0x2267 0x2260 0x221e 0x2252 0x2261 0xfe62 0xfe63 0xfe64 0xfe66 0xfe65 0x223c 0x2229 0x222a 0x22a5 0x2220 0x221f 0x22bf 0x33d2 0x33d1 0x222b 0x222e 0x2235 0x2234 0x2640 0x2642 0x2641 0x2609 0x2191 0x2193 0x2192 0x2190 0x2196 0x2197 0x2199 0x2198 0x2016 0xff5c 0xff0f 0xff3c 0x2215 0xfe68 0xff04 0xffe5 0x3012 0xffe0 0xffe1 0xff05 0xff20 0x2103 0x2109 0xfe69 0xfe6a 0xfe6b 0x33d5 0x339c 0x339d 0x339e 0x33ce 0x33a1 0x338e 0x338f 0x33c4 0x00b0 0x5159 0x515b 0x515e 0x515d 0x5161 0x5163 ) ; 0x12321 ... 0x1237e (block 2 0x55e7 0x74e9 0x7cce 0x2581 0x2582 0x2583 0x2584 0x2585 0x2586 0x2587 0x2588 0x258f 0x258e 0x258d 0x258c 0x258b 0x258a 0x2589 0x253c 0x2534 0x252c 0x2524 0x251c 0x2594 0x2500 0x2502 0x2595 0x250c 0x2510 0x2514 0x2518 0x256d 0x256e 0x2570 0x256f 0x2550 0x255e 0x256a 0x2561 0x25e2 0x25e3 0x25e5 0x25e4 0x2571 0x2572 0x2573 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) @var{... it's very long, snip, snip, snip ...} ; 0xe6621 ... 0xe667e (block 3397 0x7bd0 0x7c2f 0x7c32 0x7c42 0x7c4e 0x7c68 0x7ca9 0x7ced 0x7dd0 0x7e07 0x7dd3 0x7e64 0x7f40 -1 0x8041 0x8063 0x80bb 0x6711 0x6725 0x8248 0x8310 0x8362 0x8312 0x8421 0x841e 0x84e2 0x84de 0x84e1 0x8573 0x85d4 0x85f5 0x8637 0x8645 0x8672 0x874a 0x87a9 0x87a5 0x87f5 0x8834 0x8850 0x8887 0x8954 0x8984 0x8b03 0x8c52 0x8cd8 0x8d0c 0x8d18 0x8db0 0x8ebc 0x8ed5 0x8faa 0x909c -1 0x915c 0x922b 0x9221 0x9273 0x92f4 0x92f5 0x933f 0x9342 0x9386 0x93be 0x93bc 0x93bd 0x93f1 0x93f2 0x93ef 0x9422 0x9423 0x9424 0x9467 0x9466 0x9597 0x95ce 0x95e7 0x973b 0x974d 0x98e4 0x9942 0x9b1d 0x9b98 -1 0x9d49 0x6449 0x5e71 0x5e85 0x61d3 0x990e 0x8002 0x781e -1 -1 ) ; 0xe6721 ... 0xe677e (block 3398 0x5528 0x5572 0x55ba 0x55f0 0x55ee 0x56b8 0x56b9 0x56c4 0x8053 0x92b0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) @end example @c ------------------------------------------------------------------------ @c Node, Next, Previous, Up @node Utility programs, Sample programs, Code conversion system, Top @chapter Utility programs @menu * vflmkcaptex:: * vflpp:: * vflmkfdb:: * vfldrvs:: @end menu @node vflmkcaptex, vflpp, , Utility programs @section vflmkcaptex @pindex vflmkcaptex @command{vflmkcaptex} is a utility program to generate vflibcap file for @TeX{} DVI driver software automatically. With simple command line arugments, a vflibcap that uses PK, GF, Virtual Font, Type 1 fonts with complex @TeX{} font mapping rules. @noindent @b{Usage:} @t{vflmkcaptex} [ @var{OPTIONS...} ] [ @var{CLASS...} ] @noindent @b{Usage:} @t{vflmkcaptex} [ @var{SHORTCUT} ] [ @var{OPTIONS...} ] @option{@var{CLASS...}} is a list of font class names to support by vflibcap file to be generated. @option{@var{OPTIONS...}} is option list to customize default settings. @option{@var{SHORTCUT}} is a shortcut name to typical options and class name list. @noindent @b{Shortcut:} @table @asis @item @t{minimum} This is the same as command line option @t{pk}. Use PK fonts only. @item @t{simple} This is the same as command line option @t{-g pk tfm}. Use PK fonts. If PK font file is missing, it is generated on-the-fly. If font cannot be created, black square is displayed instead of character glyph (as long as corresponding TFM file exists). @item @t{standard} This is the same as command line option @t{-t1 -g}. Use default class list @t{type1 vf pk tfm}. Missing PK font is created on-the-fly. @item @t{simple-ja} This is the same as command line option @t{-g pk tfm -jtex -jisx0212 -jpcf}. (Japanese support for @t{simple} shortcut.) @item @t{standard-ja} This is the same as command line option @t{-t1 -g -jtex -jisx0212 -jpcf}. (Japanese support for @t{standard} shortcut.) @end table @noindent @b{Font class list:} @table @asis @item @t{gf} Enables to use GF font files. For searching font files, kpathsea is used. That is, font files are searched under @TeX{} @file{texmf} directory (typically, @file{/usr/local/share/texmf}). @item @t{pk} Enables to use PK font files. For searching font files, kpathsea is used. @item @t{vf} Enables to use Virtual Font files. For searching font files, kpathsea is used. @item @t{tfm} Enables to use TFM files. This option enables to display black square instead of glyph. The size of square obeys font metric of each character. This is useful when glyph file (e.g., PK, Type1) is missing. @item @t{type1} Enables to use Type 1 fonts. (Currently, it supports Roman fonts. CJK fonts are not supported.) For searching font files, kpathsea is used. By this option, font definitions for PostScript fonts used in @TeX{} DVI files are generated by reading @file{psfonts.map} of @command{dvips}. Each PostScript font listed in @file{psfonts.map} is checked if it exists. (For PostScript fonts, this program automatically searchs Adobe Acrobat 3 and 4 font directories.) If a PostScript font in question is not found, @command{Ghostscript} font definition file @file{Fontmap} is checked to substitute the font by a font in @command{Ghostscript} font directory. This feature is very useful for displaying and printing @TeX{} DVI files with PostScript fonts. So, I recommned obtain Adobe Acrobat 3 and 4 for Type 1 PostScript fonts. (Linux version are freely available.) @end table When a font is requested to open, the font is tried to open by font classes by the order in the command line. So, by a @file{vflibcap} generated by the following example, font in PK format is rearched first. If a font in PK format is not found, font in Type 1 format is searched next. @example vflmkcaptex pk type1 @end example Therefore, the order of font classes decides the priority of font file formats to search. @noindent @b{Options:} @table @asis @item @t{--help} Print a list of command line options and exit. @item @t{--version} Print version number of this program and exit. @item @t{-p @var{PROG}} Application program name. This is used by kpathsea for font file search. Default is @t{xgdvi}, which is a DVI previewer in the @TeX{}-Guy package. @item @t{-n @var{MODE}} Device mode name for font file search, used by kpathsea. Default is @t{cx} @item @t{-r @var{DPI}} Device resolution in DPI. Default is 300. If this option is not given, @command{vflmkcaptex} reads @file{mode.mf}, which is a device mode definition file for METAFONT, and obtains revice resolution automatically. @item @t{-g} Configure @file{vflibcap} to generate non-existing PK files on-the-fly. @item @t{-pk} When @option{@var{CLASS...}} is not given, default font class set is assumed by default. For such case, generate a @file{vflibcap} to search PK font file before searching Type 1 font by this option. @item @t{-t1} When @option{@var{CLASS...}} is not given, generate a @file{vflibcap} to search Type 1 font file before searching PK font file by this option. @end table @noindent @b{Options for Japanese @TeX{} support:} @table @asis @item @t{-jtex} Generate font definitions for JIS X0208 character set used by Japanese @TeX{}. By default, a @file{vflibcap} to be generated uses Japanese Kanji character in PCF format (in X11 font directory). See also @option{-jpcf}, @option{-jekanji} and @option{-jttf} options. @item @t{-jisx0212} Generate font definitions for JIS X0208 character set used by Japanese @TeX{}. Note that generated font names are not standard. It is used for private use of the author. @item @t{-jpcf} Switch to use PCF fonts for Japanese Kanji characters. (This is the default.) @item @t{-jekanji} Switch to use eKanji fonts for Japanese Kanji characters. See @ref{eKanji font class} for detail about eKanji fonts. @item @t{-jttf} Switch to use TrueType fonts for Japanese Kanji characters. @item @t{-jpfd @var{DIR}} Add a PCF font directory. @command{vflmkcaptex} checks typical X11 PCF font directories and existing directories are added to PCF font directory list. This option should be used when you want to add optional (and not automatically detected) PCF font directory. This option can be used multiple times. @item @t{-jefd @var{DIR}} Add a eKanji font directory. This option can be used multiple times. @item @t{-jtfd @var{DIR}} Add a TrueType font directory. This option can be used multiple times. @item @t{-jtdb @var{FILE}} By this option, an external definition database file @var{FILE} is read for generating definitions of non-standard @TeX{} Japanese fonts using Japanese TrueType font files. Each line in @var{FILE} is a pair of (1) font name used in @TeX{} and (2) TrueType font file name. Following is an example: @example dfailpaa dcail5.ttc dfainpaa dcai5.ttc dfaispaa dcais5.ttc dfbrrsaa dfbrr7.ttc dfbrrzaa dfbrrc.ttc dfbrspaa dfbrs5.ttc dfbrsvaa dfbrs9.ttc dfbrszaa dfbrsc.ttc @end example See files in a directory @file{ascii-jtex/} for detail. @end table @command{vflmkcaptex} is a Unix Shell script. It uses following programs to generate a @file{vflibcap} file. Descriptions the followng programs are ommited since most of users never use them directly. For details, invoke each program with @option{--help} option to see how to use it. @table @asis @item @command{vflmkvfl} A generator for VFlib defaults. (See @ref{VFlib defaults}.) @item @command{vflmktex} A generator for TeX mapping class. (See @ref{TeX default and TeX font mapping font class}.) @item @command{vflmkpk} A generator for PK class. (See @ref{PK font class}.) @item @command{vflmkgf} A generator for GF class. (See @ref{GF font class}.) @item @command{vflmkvf} A generator for Virtual Font class. (See @ref{VF font class}.) @item @command{vflmktfm} A generator for TFM class. (See @ref{TFM font class}.) @item @command{vflmkt1} A generator for Type 1 class. (See @ref{Type1 font class}.) @item @command{vflmkekan} A generator for eKanji class. (See @ref{eKanji font class}.) @item @command{vflmkajt} A generator for ASCII Japanese @TeX{} class. (See @ref{ASCII Japanese TeX Kanji font class}.) @end table @node vflpp, vflmkfdb, vflmkcaptex, Utility programs @section vflpp @pindex vflpp @command{vflpp} prettyprints (i.e., grinds) a vflibcap file. It eliminate all comment strings and unnecessary space and newline characters. @noindent @b{Usage:} @t{vflpp} [ @var{vflibcap-file} ] A program @command{vflpp} prettyprints a file @var{vflibcap} to standard output. If no argument is given, @command{vflpp} reads from standard input. @node vflmkfdb, vfldrvs, vflpp, Utility programs @section vflmkfdb @pindex vflmkfdb @noindent @b{Usage:} @t{vflmkfdb} @var{font-directory} [ ... ] A program @command{vflmkfdb} makes a font file hint database (FDB for short) in a font directories given in the command line argument. It is used in a font file search module in VFlib. In case there are many font files in many directories, search a font file consumes much time to traverse directory hierarchy. FDB file contains pairs of file name and path name to the file in a single file. By reading FDB file, a font file can be found without traversing directories. @cindex VFlib.fdb For each @var{font-directory}, a FDB file named @file{VFlib.fdb} is created in the directory. @node vfldrvs, , vflmkfdb, Utility programs @section vfldrvs @pindex vfldrvs @noindent @b{Usage:} @t{vfldrvs} A program @command{vfldrvs} prints a list of pre-installed font drivers in VFlib. @c ------------------------------------------------------------------------ @c Node, Next, Previous, Up @node Sample programs, Difference between VFlib version 3.6 and 2, Utility programs, Top @chapter Sample programs @menu * vflserver:: * vfltest:: * vflx11:: * vfldisol:: * ctext2pgm:: @end menu @node vflserver, vfltest, , Sample programs @section vflserver @pindex vflserver @command{vflserver} is a font server that provides the functionality of VFlib via network. @command{vflserver} can be invokes from command line or via network. @menu * Using vflserver from command line:: * Using vflserver via network:: * The protocol of vflserver:: @end menu @node Using vflserver from command line, Using vflserver via network, , vflserver @subsection Using vflserver from command line @noindent @b{Usage:} @t{vflserver} [@t{-v} @var{vflibcap}] [@t{-s} @var{shrink}] [@var{cmd-file ...}] @command{vflserver} receives a command, executes it, and return a result. This is repeated until connection is closed or quit command is executed. @command{vflserver} reads a sequence of command from standard input if @var{cmd-file} option is not given. @noindent Options: @table @asis @item @t{-v} @var{vflibcap} A file name of vflibcap to be used. If this option is not given, default vflibcap file is used. (Possibly, default vflibcap is @file{/usr/local/share/VFlib/3.6.14/vflibcap}.) @item @t{-s} @var{shrink} @command{vflserver} has a feature to print obtained bitmaps in ASCII-art style for debugging purpose. When this feature is enabled, bitmaps are shrinked by this factor. This is effective when obtained bitmaps are huge. @item @var{cmd-file ...} A sequence of commands can be read from files. Commands in files @var{cmd-file ...} are executed in given order. After executing all files, @command{vflserver} reads a sequence of commands from standard input. Thus, quit command may be explicitly given in @var{cmd-file}. This option is effective in the process of font driver development to do the same commands many times. @end table @node Using vflserver via network, The protocol of vflserver, Using vflserver from command line, vflserver @subsection Using vflserver via network Before using @command{vflserver} via network, it must be installed to be invoked by @command{inetd}. You must be a root to do the following procedures. @noindent First, edit @file{/etc/services}: @itemize @bullet @item Network service name: vflserver @item Well known port: 4681 @item Protocol: tcp @end itemize @noindent Add the following line to @file{/etc/inetd.conf}. @example vflserver stream tcp nowait nobody /usr/local/bin/vflserver vflserver @end example If you need to explicitly specify a vflibcap file to be used, you must give @option{-v} option as follows: @example vflserver stream tcp nowait nobady /usr/local/bin/vflserver vflserver -v /foo/vflibcap @end example @noindent To force inetd to re-read @file{inetd.conf}, send a HUP signal to inetd. We finished installing vflserver to use via network. Now, use @command{telnet} to check if @command{vflserver} is correctly installed to network service. The following an example interaction. @example % telnet localhost vflserver Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. ; This is a font server VFLSERVER Version 2.0 Fri Mar 13 11:58:42 JST 1998 ... ; Type `HELP' for description of the protocol. (100 "vflserver ready.") open1 timR14.pcf (100 0 "timR14.pcf") debug bitmap on (100 "Ascii-art bitmap on.") bitmap1 0 0x67 (100 8 13 0 9 9 0 "3eccc4c4cc78407c7f83c1e27c" " 89012345678901 +------------+ 9| |9 0| ..@@@@@@@@@@. |0 1| @@@@..@@@@.. |1 2| @@@@...@@.. |2 3| @@@@...@@.. |3 4| @@@@..@@@@.. |4 5| .@@@@@@@@... |5 6| .@@...... |6 7| .@@@@@@@@@@.. |7 8| .@@@@@@@@@@@@@@ |8 9| +.....@@@@ o |9 0| @@@@.....@@ |0 1| @@@@@@...@@. |1 2| .@@@@@@@@@@.. |2 3| |3 +------------+ 89012345678901 ") quit (100 "Happy Hacking") Connection closed by foreign host. @end example @node The protocol of vflserver, , Using vflserver via network, vflserver @subsection The protocol of vflserver @subsubsection Introduction The VFLSERVER Protocol is a communication protocol between a server which offers font service and a client which uses fonts. The character set assumed by this protocol is ASCII character set. A line is a sequence of character terminated by a newline character and communication between a server and a client is line-oriented. @subsubsection Reply Format of a Server Each request to a server by a client takes a form of a line. The following are examples of client's requests. @example OPEN1 timR24.pcf DEBUG BITMAP ON BITMAP1 1 33 @end example A reply by a server to a client is an S-expression, (lisp-like notation). The following are examples of server's response. @example (100 0 "timR14.pcf") (100 "Ascii-art bitmap on.") (100 8 13 0 9 9 0 "3eccc4c4cc78407c7f83c1e27c") @end example The first number of the response of each reply by a server are formed by decimal digits and these three digits indicates the status of an execution of client's request. Thus, this three digits is a status code. The first digit is one of @samp{1}, @samp{2}, ...., @samp{5}. If this digit is @samp{1}, it there is no error at all. If it is @samp{5}, there are some errors to achieve a request. According to the degree of fatalness, the digit is decided; It is @samp{1} if no error is detected and is @samp{5} if some fatal errors are detected and it is impossible to continue to execute a server. If it is not @samp{5}, a client can receive some result. @subsubsection The Protocol The following defines commands and their arguments by a client, and corresponding responses by a server. Command name is case-insensitive, but arguments are case-sensitive. In the description of command format, arguments enclosed by [ ] can be omitted, while arguments that are not enclosed by [ ] are essential arguments and cannot be omitted. @table @asis @item @t{OPEN1} @var{font_name} [ @var{point_size} [ @var{mag_x} @var{mag_y} [ @var{dpi_x} @var{dpi_y} ]]] Open a font in mode 1 (high resolution device oriented mode). This corresponds to @code{VF_OpenFont1()} function. If it succeeds opening the font, a font identifier is returned. After a font is opened, any request for a font is specified by font identifier (not font name). @noindent @b{Response:} @table @asis @item When the command is successful: @t{( @var{status} @var{fontid} @var{message} )} @var{fontid} is a font id represented by non-negative integer in decimal. @item When the command failed: @t{( @var{status} @var{message} )} @var{status} indicates that an error occurred. @end table @item @t{OPEN2} @var{font_name} [ @var{pixel_size} [ @var{mag_x} @var{mag_y} ]] Open a font in mode 2 (low resolution device oriented mode). This corresponds to @code{VF_OpenFont2()} function. If it succeeds opening the font, a font identifier is returned. After a font is opened, any request for a font is specified by font identifier (not font name). @noindent @b{Response:} Response is the same as one for @command{OPEN1} command. @item @t{CLOSE} @var{font_id} Closed a font. @noindent @b{Response:} @t{( @var{status} @var{message} )} @item @t{BITMAP1} @var{font_id} @var{code_point} [ @var{mag_x} @var{mag_y} ] Obtain a bitmap. @var{font_id} is a font id. This command corresponds to @code{VF_GetBitmap1()} function of VFlib. @noindent @b{Response:} @table @asis @item When the command is successful: @t{( @var{status} @var{width} @var{height} @var{offx} @var{offy} @var{mvx} @var{mvy} @var{bitmap} )} @var{width} and @var{height} is a size of bitmap in pixels. @var{bitmap} is encoded as a sequence of hexadecimal number. Eight pixels are encoded to two hexadecimal number and the weight of the i-th @math{(0 <= i < 8)} pixel from the leftmost pixel is @t{0x80 >> i}. @var{bitmap} is a sequence of encoded of rasters; the first raster begins from the upper left corner to upper right corner. Then, it is followed by next raster (one pixel down from the first raster). One raster is @math{(width+7)/8} bytes, and @var{bitmap} contains an encoded bitmap of @math{((width+7)/8)*height} bytes. Thus, the length of @var{bitmap} is @math{2*((width+7)/8)*height}. @item When the command failed: @t{( @var{status} @var{message} )} @var{status} indicates that an error occurred. @end table @item @t{BITMAP2} @var{font_id} @var{code_point} [ @var{pixel_size} [ @var{mag_x} @var{mag_y} ]] Obtain a bitmap. This command corresponds to @code{VF_GetBitmap2()} function. Response is the same as @command{BITMAP1} command. @item @t{METRIC1} @var{font_id} @var{code_point} [ @var{point_size} [ @var{mag_x} @var{mag_y} ]] Obtain a metric information of a font. This command corresponds to @code{VF_GetMetric1()} function. @noindent @b{Response:} @table @asis @item When the command is successful: @t{( @var{status} @var{width} @var{height} @var{offx} @var{offy} @var{mvx} @var{mvy} )} Each element of the response is the same as return values for @command{BITMAP1} command except for their units are points. @item When the command failed: @t{( @var{status} @var{message} )} @var{status} indicates that an error occurred. @end table @item @t{METRIC2} @var{font_id} @var{code_point} [ @var{pixel_size} [ @var{mag_x} @var{mag_y} ]] Obtain a metric information of a font. This command corresponds to @code{VF_GetMetric2()} function. @noindent @b{Response:} Same as METRIC1 command except for units are points. @item @t{FONTBBX1} @var{font_id} [ @var{mag_x} @var{mag_y} ] Obtain font bounding information of a given font @var{font_id} opened in mode 1. The argument @var{mag_x} @var{mag_y} are magnification factor to be scaled. This command corresponds to @code{VF_GetFontBoundingBox1()} function. @noindent @b{Response:} @table @asis @item When the command is successful: @t{( @var{status} @var{width} @var{height} @var{xoff} @var{yoff} )} @var{width} and @var{height} are width and height of bounding box, respectively. @var{xoff} and @var{yoff} are the largest horizontal and vertical displacement of lower left corner of bounding box from reference points. Note that these values does not guarantee the minimality; they only guarantee that all characters can be contained in a box described by them. Units of return values are point. @item When the command failed: @t{( @var{status} @var{message} )} @var{status} indicates that an error occurred. @end table @item @t{FONTBBX2} @var{font_id} [ @var{mag_x} @var{mag_y} ] Arguments and return values are the same except @var{font_id} must be in mode 2 and units of return values are pixel. @item @t{PROPERTY} @var{font_id} @var{property_name} Obtain a property named @var{property_name} of a font @var{font_id}. @noindent @b{Response:} @table @asis @item When the command is successful: @t{( @var{status} @var{value} )} @item When the command failed: @t{( @var{status} @var{message} )} @var{status} indicates that an error occurred. @end table @item @t{MINIMIZE-BBX} [ @var{flag} ] Select a mode whether a bitmap sent from a server should be minimized or not. If @var{flag} is @code{ON}, bounding boxes of bitmaps sent from a server is minimized not to contain white pixels as possible. If @var{flag} is @code{OFF}, bitmaps sent from a server is not guaranteed to be minimized bounding boxes. If @var{flag} is not given, current mode is returned. Initial mode is @code{OFF}. @noindent @b{Response:} The current mode is returned even if the operation fails or succeeds. @table @asis @item When the command is successful: @t{( @var{status-code} @var{mode} )} @var{Mode} is one of @code{ON} or @code{OFF}. @item When the command failed: @t{( @var{status-code} @var{mode} )} @var{Mode} is one of @code{ON} or @code{OFF}. @end table @item @t{QUIT} Finish interaction between a server and a client. This operation always succeeds. @noindent @b{Response:} @t{( @var{status} @var{message} )} @end table @node vfltest, vflx11, vflserver, Sample programs @section vfltest @pindex vfltest @command{vfltest} displays glyph of a given font and characters by ASCII-art form on a character terminal. It does not requires X Window System, but the font of the terminal must be a fixed-width font, since bitmaps are printed by ASCII-art form. @noindent @b{Usage:} @t{vfltest} [ @var{OPTIONS...} ] @var{FONT_NAME} @var{CHAR_LIST} @noindent @b{Options:} @table @asis @item @t{-mode1} A font is opened in mode 1 (high resolution device oriented mode). @item @t{-mode2} A font is opened in mode 2 (low resolution device oriented mode). @item @t{-ol} Bitmaps are obtained by @code{VF_GetOutline()} and then @code{VF_OutlineToBitmap()}. This option is effective only when a font is opened in mode 1. @item @t{-v} @var{vflibcap} A file name of vflibcap to be used. If this option is not given, default vflibcap file is used. (Possibly, default vflibcap is @file{/usr/local/share/VFlib/3.6.14/vflibcap}.) @item @t{-p} @var{point} or @t{-p} @var{pixel} Specify point or pixel size of characters. If this option is not given, size of characters are original size of a font. @item @t{-d} @var{dpi} Give a device resolution in DPI. This option is effective only when a font is opened in mode 1. @item @t{-m} @var{mag} Specify vertical and horizontal magnification factor. If this option is not given, magnification factor is 1.0. @item @t{-mx} @var{mag_h} Specify horizontal magnification factor. If this option is not given, horizontal magnification factor is 1.0. @item @t{-my} @var{mag_v} Specify vertical magnification factor. If this option is not given, vertical magnification factor is 1.0. @item @t{--help} Print command line arguments and key operations on a window. @end table A list of character is a sequence of the following forms. @table @asis @item @var{code} A character is given by character code. Decimal (e.g., @samp{34}) and Hexa-decimal (e.g., @samp{0x67}) numbers can be used. @item @var{from} @t{-} @var{to} This form specifies characters by a range of character code, from @var{from} to @var{to} (e.g., @samp{0x20 - 0x7e}). Space characters are necessary before and after minus sign (@code{-}). @item @t{=}@var{charlist} This form specifies characters by a list of 1-byte characters, e.g., @samp{=abcdefg}. @end table @node vflx11, vfldisol, vfltest, Sample programs @section vflx11 @pindex vflx11 @command{vflx11} displays glyph of a given font in a window. It requires X11R5 or X11R6. @noindent @b{Usage:} @t{vflx11} [ @var{OPTIONS...} ] @var{FONT_NAME} @noindent @b{Options:} @table @asis @item @t{-mode1} A font is opened in mode 1 (high resolution device oriented mode). @item @t{-ol} Bitmaps are obtained by @code{VF_GetOutline()} and then @code{VF_OutlineToBitmap()}. This is effective when a font is opened in mode 1. @item @t{-mode2} A font is opened in mode 2 (low resolution device oriented mode). @item @t{-v} @var{vflibcap} A file name of vflibcap to be used. If this option is not given, default vflibcap file is used. (Possibly, default vflibcap is @file{/usr/local/share/VFlib/3.6.14/vflibcap}.) @item @t{-p} @var{point} or @t{-p} @var{pixel} Specify point or pixel size of characters. If this option is not given, size of characters are original size of a font. @item @t{-m} @var{mag} Specify vertical and horizontal magnification factor. If this option is not given, magnification factor is 1.0. @item @t{-mx} @var{mag_h} Specify horizontal magnification factor. If this option is not given, horizontal magnification factor is 1.0. @item @t{-my} @var{mag_v} Specify vertical magnification factor. If this option is not given, vertical magnification factor is 1.0. @item @t{--help} Print command line arguments and key operations on a window. @end table @noindent Following operations are defined on a @command{vflx11} window. @table @asis @item @key{q} Finish @command{vflx11} @item @key{b} Go to previous page. @item @key{SPC} Go to next page. @item @key{[} Go to previous 4 page. @item @key{]} Go to next 4 page. @item @key{@{} Go to previous 16 page. @item @key{@}} Go to next 16 page. @item @key{+} Enlarge the window. @item @key{-} Shrink the window. @item @key{<} Go to the first page. @item @key{>} Go to the last page. @item @key{m} Mark the current page. @item @key{g} Goto the marked page. @end table @node vfldisol, ctext2pgm, vflx11, Sample programs @section vfldisol @pindex vfldisol @command{vfldisol} displays `disassembled lists' of vector data of a given font and code points. @noindent @b{Usage:} @t{vfldisol} [ @var{OPTIONS...} ] @var{FONT_NAME} @var{CODE} ... @noindent @b{Options:} @table @asis @item @t{-v @var{VFLIBCAP}} A file name of vflibcap to be used. If this option is not given, default vflibcap file is used. (Possibly, default vflibcap is @file{/usr/local/share/VFlib/3.6.14/vflibcap}.) @item @t{-d @var{DPI}} Resolution of device in dpi. If this option is not given, default resolution of a font is used. @item @t{-p @var{POINT}} Point size of characters. If this option is not given, default point size of a font is used. @item @t{-x} Print hexadecimal dump of outline data instead of disassembled list. @end table @node ctext2pgm, , vfldisol, Sample programs @section ctext2pgm @pindex ctext2pgm @cindex PGM @cindex PBM @command{ctext2pgm} creates an image file in PGM or PBM format from a multilingual text file encoded by compound text format. It also supports various text encodings such as Chinese, Japanese, Korean EUCs and Shift-JIS. PGM and PBM formats are portable formats, image files can be easily converted to another image format such as GIF, TIFF. @cindex EUC @cindex Japanese EUC @cindex Korean EUC @cindex Chinese EUC It supports various character sets and left-to-right and right-to-left directionalities. @cindex right-to-left directionality @cindex left-to-right directionality @table @asis @cindex ISO 8859 @cindex Hebrew @cindex Cyrillic @item ISO 8859-1,2,3,4,5,7,8,9 --- Latin character sets, including Hebrew which is written from right to left. @cindex Arabic @cindex Mule @item Mule Arabic --- An Arabic script, written from right to left. This character set is used by the multilingual editor Mule. @cindex JIS X 0201 @cindex JIS X 0208 @cindex JIS X 0212 @item JIS X 0201, JIS X 0208, JIS X 0212 --- Japanese character sets. @cindex GB 2312 @item GB 2312 --- A Chinese character set. @cindex CNS 11641 @item CNS 11641-1, CNS 11641-2 --- Chinese character sets. @cindex KSC 5601 @item KSC 5601 --- A Hangle character set. @end table @subsection Running ctext2pgm @noindent @b{Usage:} @t{ctext2pgm} [ @var{OPTIONS...} ] [ @var{file} ] @noindent --- @command{ctext2pgm} reads @var{file} (if not given, reads standard input) and prints image file to standard output. @b{Example:} @example % ctext2pgm -pgm -ctext -16 -times DOC-10.txt > IMAGE.pgm @end example (Never forget to redirect the output.) @noindent @b{Options for VFlib:} @table @asis @item @t{-v @var{f}} --- a vflibcap file to be used by @command{ctext2pgm}. Default value is @file{vflibcap-ctext2pgm}. @end table @noindent @b{Options for input encoding and script:} @table @asis @item @t{-ctext} --- Assume that an encoding of input file. (This is the default input encoding.) Default writing directionality is set to left-to-right. By this encoding, multiple character set can be used in an input text by escape sequences. Mixture of scripts of left-to-right and right-to-left directionalities is also supported. @item @t{-iso-8859-1} or @t{-latin-1} --- Assume that input file is encoded by iso-8859-1. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. @item @t{-iso-8859-2} or @t{-latin-2} --- Assume that input file is encoded by iso-8859-2. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. @item @t{-iso-8859-3} or @t{-latin-3} --- Assume that input file is encoded by iso-8859-3. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. @item @t{-iso-8859-4} or @t{-latin-4} --- Assume that input file is encoded by iso-8859-4. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. @item @t{-iso-8859-5}, @t{-cyrillic} or @t{-russian} --- Assume that input file is encoded by iso-8859-5. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. @item @t{-iso-8859-7} or @t{-greek} --- Assume that input file is encoded by iso-8859-7. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. @item @t{-iso-8859-8} or @t{-hebrew} --- Assume that input file is encoded by iso-8859-7. Escape sequence is not allowed in input file. Default writing directionality is set to right-to-left. @item @t{-iso-8859-9} or @t{-latin-5} --- Assume that input file is encoded by iso-8859-9. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. @item @t{-euc-jp} or @t{-euc-jp1} --- Assume that input file is encoded by Japanese EUC. Default writing directionality is set to left-to-right. JIS X 0201 Roman character set is used for code set 0, JIS X 0208 is used for code set 1, JIS X 0201 Kana is used for code set 2, and JIS X 0212 is used for code set 3. @item @t{-euc-jp2} --- Same as @t{-euc-jp1} except ASCII character set is used for code set 0. @item @t{-euc-kr} --- Assume that input file is encoded by Korean EUC. Default writing directionality is set to left-to-right. ASCII character set is used for code set 0 and KSC 5601 is used for code set 1. @item @t{-euc-cn} or @t{-euc-gb} --- Assume that input file is encoded by Chinese EUC by simplified Hanzi. Default writing directionality is set to left-to-right. ASCII character set is used for code set 0, and GB 2312 is used for code set 1. @item @t{-euc-cns} --- Assume that input file is encoded by Chinese EUC by traditional Hanzi. Default writing directionality is set to left-to-right. ASCII character set is used for code set 0, CNS 11643-1 is used for code set 1, and CNS 11643-2 is used for code set 3. @cindex Shift JIS @item @t{-sjis} --- Assume that input file is encoded by Shift-JIS. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. ASCII character set is used for code set 0, JIS X 0208 is used for code set 1, and @end table @noindent @b{Options for directionality:} @table @asis @item @t{-l2r} --- Select left-to-right directionality for typesetting. @item @t{-r2l} --- Select right-to-left directionality for typesetting. @end table @noindent @b{Options for font selection:} @table @asis @item @t{-fixed}, @t{-times}, @t{-helv} or @t{-cour} --- Select a font family: Fixed, Times, Helvetia, or Courier, respectively. Default font family is Times. @item @t{-bold} or @t{-italic} --- Select a font face: bold or italic (or oblique), respectively. Default face is normal. @item @t{-14}, @t{-16}, @t{-18} or @t{-24} --- Select a font set of 14-, 16-, 18-, or 24-dot, respectively. Default font size if 16. @item @t{-scale @var{n}} --- Select a scalable font set and scales the font to @i{n} dot. @item @t{-m @var{m}} --- Specify vertical and horizontal magnification factors. Default value is 1. @item @t{-mx @var{m}} --- Specify horizontal magnification factor. @item @t{-my @var{m}} --- Specify vertical magnification factor. @item @t{-font-list} --- Print all installed character sets and font names. Then exit the program. @end table @noindent @b{Options for typesetting:} @table @asis @item @t{-b @var{s}} --- Specify factor of baseline skip. Baseline of a text is moved this value times dot-size of a selected font set. Default value is 1.2. @item @t{-center-line} --- Each line is centered. Output image is vertically and horizontally centered. @item @t{-flush-left} --- Each line is flushed left. This is default mode if writing directionality is left-to-right. Output image is flushed left. @item @t{-left-line} --- Each line is flushed left, but image is not flushed left. @item @t{-flush-right} --- Each line is flushed to right. This is the default mode if writing directionality is right-to-left. (Note that options @option{-flush-right} and @option{-r2l} are different --- consider an English text including Arabic words in the same line.) Output image is flushed right. @item @t{-right-line} --- Each line is flushed right, but image is not flushed right. @end table It is important to notice that the difference of @option{-flush-left} and @option{-left-line} options (and @option{-flush-right} and @option{-right-line} options). By @option{-flush-left} option, input text is typeset to flush each line left and typeset result is placed in the left of an output image. By @option{-left-line} option, input text is typeset to flush each line left and does not specify how to put the typeset result in an output image. The difference appears when the horizontal size of output image is explicitly given by @option{-pw} option. @noindent @b{Options for output:} @table @asis @item @t{-pgm} or @t{-pgm-raw} --- Select binary PGM format for image output. @item @t{-pgm-ascii} --- Select ascii PGM format for image output. This is the default output mode. @item @t{-pbm} or @t{-pbm-ascii} --- Select ascii PBM format for output an image. @item @t{-ascii-art} or @t{-ascii-art-v} --- An image is printed as an ASCII art. (Vertical mode) Baseline is vertical; thus this mode is similar to the @command{banner} command on Unix. @item @t{-ascii-art-h} --- An image is printed as an ASCII art. (Horizontal mode) Baseline is horizontal. @item @t{-eps} --- Select EPS format for image output. By default, 16-dot font is printed by 12-point in EPS file. To change the point size, use the @t{-eps-ptsize} option described below. @item @t{-eps-ptsize @var{pt}} --- Select point size of characters for EPS output. If this option is given, point size of each character is scaled to @var{pt} point regardless dot size of fonts. @item @t{-none} --- An image is not shipped out. @item @t{-r} --- Reverse the black and white of output image. (This option does not have effect when EPS is selected for image output format.) @item @t{-s @var{n}} --- Shrink factor for anti-aliased output. @var{n} by @var{n} pixels are shrinked together and forms one pixel in an output image. This option has effect when output format is PGM and EPS. Default value is 1. @item @t{-pw @var{w}} --- Specify width of output image (in pixels). If this option is not given, the width of output image is the smallest width to contain the glyph of all characters. @item @t{-ph} --- Specify height of output image (in pixels). If this option is not given, the height of output image is the smallest height to contain the glyph of all characters. @item @t{-g} --- Specify horizontal and vertical margins of output image (in pixels). Default margin is zero pixel. @item @t{-gx} --- Specify horizontal margin of output image (in pixels). Default margin is zero pixel. @item @t{-gy} --- Specify vertical margin of output image (in pixels). Default margin is zero pixel. @item @t{-center-image} --- An image of typeset text is horizontaly and vertically centered. @item @t{-h-center-image} --- An image of typeset text is horizontaly centered. @item @t{-v-center-image} --- An image of typeset text is vertically centered. @item @t{-left-image} --- An image of typeset text is flushed left. @item @t{-right-image} --- An image of typeset text is flushed right. @item @t{-top-image} --- An image of typeset text is flushed top. @item @t{-bottom-image} --- An image of typeset text is flushed bottom. @end table @subsection Making input files for ctext2pgm Any text editor can be used to prepare input files for @command{ctext2pgm}. Input files are plain texts. If you want to create an image containing multiple character sets, save the files by @emph{compound text} encoding. @cindex compound text If you want to make images of Arabic text, use the @command{Mule} editor. (@command{Mule} is an extension of @command{GNU Emacs} for multilingual text processing.) For making images of Arabic script, @command{ctext2pgm} only supports a text created by Mule, ISO-8859-6 is not supported. @cindex Mule @cindex GNU Emacs @cindex Emacs Unlike @TeX{} and HTML, newlines of input files are @emph{not} ignored and a newline character in input text breaks line. Thus, input text is typeset like `verbatim' environment of La@TeX{} or `
 ... 
' tag of HTML. @subsection Commands in input text Several commands can be embedded in text files such as font switch. Command sequence starts by a backslash (@code{\}) followed by one character which represents command name. If you want to display a backslash character itself, use double backslashes @code{\\}. Following commands are defined: @table @asis @item @code{\f}, @code{\t}, @code{\h}, @code{\c} --- Change of font families. Current font family is changed to fixed, times, Helvetia, courier, respectively. @item @code{\d} --- Current font family is changed to the default font family. The default font family can be specified by a command line option. @item @code{\N}, @code{\B}, @code{\I} --- Change of font faces. Current font face is changed to normal, bold, italic, respectively. @item @code{\D} --- Current font face is changed to the default font face. The default font face can be specified by a command line option. @item @code{\.} --- Same as @code{\d} followed by @code{\D}. @item @code{\(} --- Black and white of glyph of following characters are reversed. This command is recommended @emph{only} for fixed-width fonts. (For the reason of current implementation, resulting bitmap is ugly for proportional fonts and you cannot read the text in an image.) Nesting of @code{\(} has no effect. @item @code{\)} --- End of reversing black and white. @item @code{\\} --- Print backslash itself. @end table @subsection Trouble shooting In case you failed to obtain a desired image output, the following command line options for debugging may be useful. (Debugging messages are printed to standard output. The @option{-none} option is useful to suppress printing binary image to your terminal. Otherwise, debugging message and image file are printed together on your terminal!) @table @asis @item @t{-ds} --- Print the state transition of the parser for compound text. @item @t{-dr2l} --- Print the state transition of bi-directionality handling. @item @t{-df} --- Print font name to be opened. @item @t{-dbc} --- Print each character glyph in ascii-art form. @item @t{-dbl} --- Print each line image by in ascii-art form. @item @t{-dbp} --- Print entire page image in ascii-art form. @item @t{-dall} --- Selects all debugging options above. @end table @c ------------------------------------------------------------------------ @c Node, Next, Previous, Up @node Difference between VFlib version 3.6 and 2, Concept index, Sample programs, Top @chapter Difference between VFlib version 3.6 and 2 VFlib version 3.6 and version 2 are quite different and you should forget about VFlib version 2. @table @asis @item VFlib 2 was designed only for Japanese Kanji fonts VFlib 3.6 can handle fonts for multilingual text printing. @item Font metric is introduced in VFlib 3.6 VFlib 2 does not concepts on font metrics since it assumes all characters are the same metrics. Font metrics is introduced in VFlib 3.6 and proportional fonts can be used. @item Syntax of vflibcap file Syntax of vflibcap file is quite different. VFlib 2 adopted termcap-like notation, but now VFlib 3.6 adopts lisp-like notation. @item Arguments and return values of function are changed In VFlib 2, bitmaps of characters are written in a frame buffer which is given by argument. But in VFlib 3.6, a bitmap object is returned. @end table @c ------------------------------------------------------------------------ @c Node, Next, Previous, Up @node Acknowledgments, Concept index, Difference between VFlib version 3.6 and 2, Top @unnumbered Acknowledgments Since I released VFlib version 1, so many people helped me to improve VFlib. I am grateful for all of them. Special gratitude is due to Satoru Tomura, Ken'ichi Handa, Werner Lemberg, and Ichiro Matsuda. @c ------------------------------------------------------------------------ @c Node, Next, Previous, Up @node Concept index, Data type index, Acknowledgments, Top @unnumbered Concept index @printindex cp @c ------------------------------------------------------------------------ @c Node, Next, Previous, Up @node Data type index, Function index, Concept index, Top @unnumbered Data type index @printindex tp @c ------------------------------------------------------------------------ @c Node, Next, Previous, Up @node Function index, Program index, Data type index, Top @unnumbered Function index @printindex fn @c ------------------------------------------------------------------------ @c Node, Next, Previous, Up @node Program index, Acknowledgments, Function index, Top @unnumbered Program index @printindex pg @c ------------------------------------------------------------------------ @summarycontents @contents @c ------------------------------------------------------------------------ @bye vflib3-3.6.14.dfsg/doc/VFlib-36_toc.html0000644000175000017500000002100010400435232016776 0ustar mohuramohura VFlib 3.6.14 - Table of Contents

A Font Library VFlib

VFlib version 3.6.14 User's manual

Final Revision: 26 Feb 2006

Hirotsugu Kakugawa



This document was generated on 27 February 2006 using texi2html 1.56k. vflib3-3.6.14.dfsg/doc/VFlib-36.html0000644000175000017500000076742010400435232016160 0ustar mohuramohura VFlib 3.6.14

A Font Library VFlib

VFlib version 3.6.14 User's manual

Final Revision: 26 Feb 2006

Hirotsugu Kakugawa


Copyright

Copyright (C) 1996-2006 Hirotsugu Kakugawa. All rights reserved.

This file is part of the VFlib Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Copying

GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991

Copyright (C) 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

[This is the first released version of the library GPL.  It is
 numbered 2 because it goes with version 2 of the ordinary GPL.]

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.

This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it.

For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights.

Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library.

Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license.

The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such.

Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better.

However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries.

The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library.

Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one.

GNU LIBRARY GENERAL PUBLIC LICENSE

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  1. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.
  2. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
  3. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
    1. The modified work must itself be a software library.
    2. You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.
    3. You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.
    4. If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)
    These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
  4. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library.
  5. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.
  6. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.
  7. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
    1. Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)
    2. Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
    3. If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.
    4. Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
    For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.
  8. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:
    1. Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.
    2. Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
  9. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
  10. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.
  11. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
  12. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
  13. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
  14. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.
  15. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

    NO WARRANTY

  16. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
  17. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

Appendix: How to Apply These Terms to Your New Libraries

If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License).

To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

one line to give the library's name and a brief idea of what it does.
Copyright (C) year  name of author

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  library `Frob' (a library for tweaking knobs) written by James Random Hacker.

  signature of Ty Coon, 1 April 1990
  Ty Coon, President of Vice

That's all there is to it!

Introduction

Today many font files are available in various font file formats. When we need a software to display or print characters which does not depend on a windowing system and/or an operating system, we must write interface routines for accessing font files in each application software again and again. To do this, programmers must have knowledge on font file formats; it will be a hard task for programmers if the number of font formats that an application software supports becomes large.

VFlib is a font library written in C providing several functions to obtain bitmaps of characters. VFlib hides the font format of font files and provides a unified API for all supported font formats. Thus, programmers for application software need not have knowledge on font file formats. Instead, any software using VFlib can support various font file formats immediately.

This document describes the fundamental concepts of VFlib and gives a brief introduction in writing programs using VFlib.

As described above, VFlib supports many font file formats and absorbs differences between font file formats. Currently, VFlib supports the following font file formats: PCF, BDF, HBF, TrueType, Type1, GF, PK, Virtual Fonts, TFM, SyotaiKurabu (a vector font format for Japanese Kanji characters), JG (another vector font format for Japanese Kanji characters), and eKanji (a bitmap font format for Kanji characters).

The VFlib system consists of two parts:

A library (`libVFlib.a' and/or `libVFlib.so')
It provides several C functions. Any application software using VFlib must link this library. VFlib (optionally) uses kpathsea, FreeType, and T1Lib libraries. Application software linked with VFlib must be linked with these external libraries, if you want to use them. Application software must be linked against kpathsea, FreeType and T1Lib in addition to VFlib if you configured VFlib to use them.
A font database file (`vflibcap')
When we open a font, information about the font file (font format, location, possibly necessary glyph modifications etc.) is necessary. This file describes such information; it is read when the initialization function of VFlib is called.

Basic concept of VFlib

Font Classes and Font Drivers
VFlib can handle multiple font file formats. Reading a font file according to its font file format is done by an internal module in VFlib corresponding to its font file format. This internal module is called a font driver. Service units provided by a font driver is called font class. From an end-user's point of view, various font formats are distinguished by various names of font classes. Font drivers themselves are internal of VFlib and invisible for end-users. Some font drivers may not read font files on disk; they may generate glyph and outlines by internal computation only. In addition, some font drivers may return glyph which are obtained as glyph by another font class (hence the name `Virtual Font library').
A View of VFlib Font From The End-User
Each (virtual) font by VFlib has its inherent information of point size, pixel size, and resolution of the target device. In addition to these font metrics are defined for each glyph. Some font file formats does not have such concepts; in such case, (1) lacking information is given in a font database file `vflibcap' or (2) the specific font driver gives such information as default values. For instance, a TrueType font file is a vector font file and does not has information on point size and resolution of the target device (such information is unnecessary since vector fonts can be scaled at any size). SyotaiKurabu font format (a vector font for Japanese Kanji) does not have font metric information at all. A font driver for this font format virtually generates font metrics by information given in a vflibcap file.
Font Names and Font Searching Mechanism
In VFlib, a font is specified by a font name when a font is requested to open. First, VFlib checks whether the font name is given in vflibcap or not. If the font name is found, VFlib reads the description for the font in vflibcap. The description contains a font class name; VFlib then invokes a font driver corresponding to the font class name. Finally the font driver opens the font file (if necessary). If the font name is not given in a vflibcap file, a font searching mechanism is invoked. Since there are many font files for X Window and TeX, this feature is introduced to avoid writing an entry for each font file. Various font drivers will be called to see whether the font can be opened. If a font driver succeeds in opening the font, font searching finishes and the VFlib font opening function returns successfully. Otherwise, font open fails. Fonts described in a vflibcap file are called explicit fonts and fonts that are searched for by the font search feature are called implicit fonts. Support for explicit and implicit fonts depends on font driver.
Obtaining Bitmaps (Glyph)
Two interfaces are provided to obtain glyph (bitmaps) of a font.
High resolution device oriented glyph
This method is suitable for devices of high resolution such as laser printers. The size of glyph is specified by the physical size of glyph and device resolution. When the size of a glyph in the source font is different from the target size, VFlib scales the source glyph internally.
Low resolution device oriented glyph
This method is suitable for low resolution devices such as CRT displays. Glyph sizes are specified by pixel size rather than by device resolution. When the size of a glyph in the source font is different from the target size, VFlib scales the source glyph internally.

Installing VFlib

VFlib uses GNU autoconf and GNU libtool to compile. According to the following procedure, compile and install VFlib.

VFlib (optionally) uses FreeType 1.3.0 or later, T1Lib 5.1 or later, and kpathsea 3.2 libraries. They must be installed before compiling VFlib if you want use them. They are available from the following sites:

  1. VFlib is tested on the following platforms:
    • FreeBSD 2.2.2 and 3.2 on IBM PC-clones
    • Solaris 2.5.1 on Sun SPARC Stations
    Porting to Unix-like system is easy since the source code is not specific system dependent. Porting to non-Unix-like system is not difficult; please try.
  2. Go into the directory `VFlib3-3.6.14'.
  3. Run the @command{configure} script.
    % ./configure  [RET]
    
    By default, VFlib does not support for TrueType and Type1 fonts and TeX font searching by kpathsea library for searching TeX-related font files such as GF, PK, TFM, VF. For such features, VFlib (optionally) uses FreeType library version 1.2 or later for rendering TrueType font files, T1Lib library version 5.1 or later for rendering Type 1 font files, and kpathsea library version 3.2. VFlib can be built to use these libraries by giving options when you run @command{configure} script. Probably, the following is the typical options to configure script to use TrueType and Type 1 fonts and font search feature by kpathsea library.
    % ./configure \
           --with-kpathsea \
           --with-kpathsea-includedir=/usr/local/include \
           --with-kpathsea-libdir=/usr/local/lib
           --with-freetype \
           --with-freetype-includedir=/usr/local/include/freetype \
           --with-freetype-libdir=/usr/local/lib"
           --with-t1lib \
           --with-t1lib-includedir=/usr/local/include \
           --with-t1lib-libdir=/usr/local/lib            [RET]
    
    Note: See the @command{configure-site} script; it invokes the @command{configure} script with typical settings shown above. Options for configure script is as follows:
    --enable-shared
    Enable to build a shared library version of VFlib. By default, shared library version is created, if the target system supports shared library.
    --disable-shared
    Disable to build a shared library version of VFlib.
    --disable-static
    Disable to build a static library version of VFlib. By default, static library version is not created, if the target system supports shared library.
    --enable-static
    Enable to build a shared library version of VFlib.
    --disable-bdf
    VFlib is built without the BDF font driver.
    --disable-pcf
    VFlib is built without the PCF font driver.
    --disable-hbf
    VFlib is built without the HBF font driver.
    --disable-gf
    VFlib is built without the TeX GF font driver.
    --disable-pk
    VFlib is built without the TeX PK font driver.
    --disable-tfm
    VFlib is built without the TeX TFM font driver.
    --disable-jtex
    VFlib is built without the Japanese TeX Kanji font driver.
    --disable-tex-fonts
    VFlib is built without all TeX-related font drivers, i.e., GF, PK, VF, TFM, and ASCII Japanese TeX Kanji.
    --disable-zeit
    VFlib is built without the Zeit (Syotai Kurabu) font driver.
    --disable-jg
    VFlib is built without the JG font driver.
    --disable-ekanji
    VFlib is built without the eKanji font driver.
    --disable-comic
    VFlib is built without the Japanese comic font driver.
    --disable-try
    VFlib is built without the Try font driver.
    --disable-mojikmap
    VFlib is built without the Mojikyo font mapping driver.
    --with-freetype[=LIB]
    FreeType library file is LIB. Default value is ttf. (Application programs must be linked against `libLIB.a' or `libLIB.so'.)
    --with-freetype-includedir=DIR
    FreeType include files are in DIR.
    --with-freetype-libdir=DIR
    FreeType library files are in DIR.
    --with-t1lib[=LIB]
    T1Lib library file is LIB. Default value is t1. (Application programs must be linked against `libLIB.a' or `libLIB.so'.)
    --with-t1lib-includedir=DIR
    T1Lib include files are in DIR.
    --with-t1lib-libdir=DIR
    T1lib library files are in DIR.
    --with-kpathsea=LIB
    Kpathsea library file is LIB. Default value is kpathsea. (Application programs must be linked against `libLIB.a' or `libLIB.so'.)
    --with-kpathsea-includedir=DIR
    Kpathsea include files are in DIR.
    --with-kpathsea-libdir=DIR
    Kpathsea library files are in DIR.
  4. Run @command{make} to compile VFlib.
    % make  [RET]
    
  5. Become a super user (root) and run @command{make} with @option{install} option to install. (Run @command{make} with @option{uninstall} option to uninstall.)
    # make  install [RET]
    
  6. If installation is successful, the following has been created:
    `libVFlib.a' and/or `libVFlib.so'
    These are the library files and linked with application programs.
    @command{vflserver, @command{vflmkcaptex}, @command{vflx11}, @command{vfltest}, etc.}
    -- A VFlib server and test programs on X11 By @command{vflserver}, the functionality of VFlib is available via network if @command{vflserver} is registered in `/etc/inetd.conf'. It can be used interactively by invocation from shell. Interactive use of VFlib is useful for testing or debugging purposes. @command{vflx11} is a test program that displays characters on X Window System. You can use it to test if a font is correctly configured in vflibcap file. @command{vflmkcaptex} is an automatic vflibcap generator for TeX DVI drivers, especially software in the TeX-Guy package. It is a Unix Shell script, and it invokes many subprograms (written in C) to generate font definitions for each font format. @command{vfltest} is a test program that displays characters on terminal by ascii-art form.

Installation directories are as follows:

`/usr/local/share/VFlib/3.6.14/' (= `$prefix/share/VFlib/3.6.14/')
Runtime files such as vflibcap are installed here. This runtime root directory can be changed on runtime by an environment variable VFLIB_RUNTIME_DIRECTORY. If this environment variable is not set, the default directory (`/usr/local/share/VFlib/3.6.14/') is used. Under this directory, there are following subdirectories:
`ccv'
In this directory, code conversion files are installed. This directory can be changed on runtime by setting an environment variable VFLIB_CCV_DIRECTORY. If this variable is set, default runtime directory and the value by VFLIB_RUNTIME_DIRECTORY variable are ignored.
`t1lib'
Encoding vector files for T1Lib (for Type 1 fonts) are stored in this directory. Note that the file format for encoding vector files used by T1Lib is different from those used by standard PostScript. To convert standard PostScript encoding vector files into T1Lib format, use `mkt1enc.sh' program in this directory. By default, this directory contains files converted from encoding vector files in the @command{dvips} distribution.
`ascii-jtex'
In this directory, runtime files for Japanese TeX by ASCII Coop. are installed. This directory can be changed on runtime by setting an environment variable VFLIB_ASCII_JTEX_DIRECTORY. If this variable is set, default runtime directory and the value by VFLIB_RUNTIME_DIRECTORY variable are ignored.
`doc'
This directory contains several papers on VFlib, written by Hirotsugu Kakugawa.
`/usr/local/share/VFlib/site/'
Runtime files (vflibcap, ccv files, etc.) that are created by each site should be placed here. For each versiion of VFlib, it has own runtime directory (`/usr/local/share/VFlib/x.y.z/') for default settings; and therefore, the directory where runtime files such as vflibcap in differs by versions of VFlib. In oder to use your own runtime files regardless VFlib versions, runtime files modified for your system environment should be installed in `/usr/local/share/VFlib/site/', which is called "site directory". Before searching in `/usr/local/share/VFlib/x.y.z/', VFlib searches a runtime file in site directory. Note that there is no directory hierarchy in site directory; all runtime files are in the same directory. The site directory can be changed by an environment variable VFLIB_RUNTIME_SITE_DIRECTORY.
`/usr/local/bin/'
Binary programs such as @command{vflserver}, @command{vflx11}, etc are installed here.
`/usr/local/include/'
Include file for C programs `VFlib-3_6.h' is installed here.
`/usr/local/lib/'
VFlib library files such as `libVFlib.a', `libVFlib.so' are installed here.

Install directories can be changed when you run configure script by the @option{--prefix=} option, for example. Invoke @command{configure} with @option{--help} option for details.

Programming with VFlib

Data types

bitmap type

A bitmap object is a structure of the following:

struct vf_s_bitmap {
  int              bbx_width, bbx_height; /* in pixels */
  int              off_x, off_y;          /* in pixels */
  int              mv_x,  mv_y;           /* in pixels */
  unsigned char*   bitmap;
  int              raster;
};
typedef struct vf_s_bitmap*  VF_BITMAP;

bbx_width and bbx_height are the bitmap width and height. A pair of off_x and off_y) forms a vector to the left-upper corner of the bitmap from the reference point. A pair of mv_x and mv_y is a vector to the next reference point from the current reference point. (Positive values indicate a move into the right and upper direction respectively.)

The unit of bbx_width, bbx_height, off_x, off_y, mv_x, and mv_y is pixels. bitmap is a pointer to the bitmap data; one pixel corresponds to one bit.

The left upper corner is the beginning of the bitmap data, and a raster line is defined as a horizontal line from the left to the right corner of the glyph bitmap. bitmap is a sequence of raster lines starting from the top to the bottom. The distance (in bytes) of two consecutive raster lines in memory is given by raster. Although the raster line length of a bitmap is (bbx_width+7)/8, it is not guaranteed that this value is the same as raster. The type of bitmap is a pointer to unsigned char data object, and each unsigned char data object contains eight pixels. Let P[0] be the start address of a raster line. The x-th pixel counted from the leftmost pixel (which is pixel 0) is 1 if and only if P[x/8] & (0x80>>(x%8)) is non-zero.

If bbx_width is not a multiple of 8, there exist bits that do not correspond to any pixels but their values are always zero. Even if bbx_width and/or bbx_height are zero, at least one byte is allocated for the bitmap data. Thus, bitmap is always non-NULL.

metric1 type

A metric1 object is a structure of the following:

struct vf_s_metric1 {
  double    bbx_width, bbx_height;  /* in points */
  double    off_x, off_y;           /* in points */
  double    mv_x, mv_y;             /* in points */
};
typedef struct vf_s_metric1*  VF_METRIC1;

The members of this structure are the same as the members of a bitmap object but the members' unit is point.

metric2 type

A metric2 object is a structure of the following:

struct vf_s_metric2 {
  int    bbx_width, bbx_height;     /* in pixels */
  int    off_x, off_y;              /* in pixels */
  int    mv_x, mv_y;                /* in pixels */
};
typedef struct vf_s_metric2*  VF_METRIC2;

The members of this structure are the same as the members of a bitmap object, and the members' unit is pixel also.

outline type

VFlib defines its private outline data formats for presenting vector data of characters. This data format is used by VFlib API functions VF_GetOutline() and VF_OutlineToBitmap().

Each font driver returns a outline data of a character of a font if a font driver of that font supports VF_GetOutline() function. Even if data format of a font is different from VFlib-format, a font driver converts outline data to VFlib-format data. For instance, the PCF font driver (note that PCF is a bitmap font format) supports VF_GetOutline() function and it constructs and return an outline data which is a set of square; each square corresponds to a pixel of a bitmap.

Note that not all font drivers support VF_GetOutline() function, but most of them do. The developer of font drivers are strongly recommented to implement this feature even if the font font format is bitmap-based. (The function is supported by BDF, PCF, HBF, PK, GF, TFM, Zeit, JG, TrueType, and Type 1 font drivers.)

Outline data is defined as follows:

/* Outline data */
typedef long              VF_OUTLINE_ELEM;
typedef VF_OUTLINE_ELEM   *VF_OUTLINE;

According to CPU architecture, VF_OUTLINE_ELEM is defined as int if size of long is 8.

typedef long              VF_OUTLINE_ELEM;

Outline data is an array of VF_OUTLINE_ELEM type (long or int type). Outline data consists from two parts: header and outline. The header part contains metric data and outline part contains outline representation of a character.

Documentation for this feature is not finished. See the source code (e.g., VFlib-3_6.h, raster.c, bm2ol, for example) for further information.

Functions and variables

VF_Init()

int  VF_Init(char* vflibcap, char* variable_list)

Functionality
Initialization of VFlib.
Arguments
vflibcap is a file name of vflibcap (this file is a font database). If the null pointer is given, the default path name given on compile time is used (a typical default value is /usr/local/lib/VFlib/3.6.14/vflibcap). Searching of a vflibcap file is done in the following way. First, VFlib try to open a file as given to the first argument. (That is, VFlib searches it relative to current working directory.) If not found, then VFlib try to open the file under default runtime directory (e.g., /usr/local/lib/VFlib/3.6.14/). For example, vflibcap-tex is given, VFlib first look for vflibcap-tex in current directory, and then, it looks for the file under runtime directory. Default runtime directory can be changed by an environment variable VFLIB_RUNTIME_DIRECTORY on runtime. If an environment variable VFLIB_VFLIBCAP_PATH is set, the first argument of this function is ignored and its value is used. If an environment variable VFLIB_VFLIBCAP_DIRECTORY is set, a vflibcap file is searched under a directory sepecified by this environment variable. variable_list is a list of parameters passed to VFlib. This is used to specify values of parameterized vflibcap files. (See basic.txt for parameterized vflibcap file.) The type of this argument is a string and its syntax is a sequence of Variable=Value, separated by a comma ,. For example, DPI=400, LEVEL=1, FOO=bar.
Return value
If initialization succeeds, a non-negative integer is returned. If initialization fails, a negative integer is returned.

vf_error

int  vf_error 
Functionality
This is a global variable. Holding the error code of VFlib. If no error, it keeps 0. If an error occurs, the corresponding error code is set.

VF_ClearError()

void  VF_ClearError(void)
Functionality
Clear the error code variable of VFlib.

VF_OpenFont1()

int  VF_OpenFont1(char* font_name,
                  double dpi_x, double dpi_y, double point_size, 
                  double mag_x, double mag_y)
Functionality
Open a font. (If the same font is opened multiple times, VFlib keeps track of the number of opened font instances of the font.) Since the font is opened with device resolution, point size and magnification, a font opened by this function may be useful for high resolution devices such as laser printers.
Arguments
The argument font_name is a name of the font to be opened. The device resolution of the target device is specified by dpi_x (horizontal) dpi_y (vertical). These values are given in DPI (dots per inch). The argument point_size specifies the size of the bitmap. If this argument is negative the bitmap size will be the inherent size of the font. To obtain a magnified bitmap, give a magnification factor to the argument mag_x (horizontal) and mag_y (vertical). If the argument point_size is non-negative, font size will be point_size times mag_x (mag_y) large for horizontal (vertical) direction.
Return Value
A non-negative integer is returned on success. This value is a font identifier (font id); it is used to specify a font for further font operations. If VF_OpenFont1() fails, a negative integer is returned.

VF_OpenFont2()

int  VF_OpenFont2(char* font_name,
                  int pixel_size, double mag_x, double mag_y)
Functionality
Open a font. (If the same font is opened multiple times, VFlib keeps track of the number of opened font instances of the font.) Since the font is opened with pixel size and magnification, a font opened by this function may be useful for low resolution devices such as CRT display.
Arguments
The argument font is a name of the font to be opened. The argument pixel_size specifies the size of the bitmap. If this argument is negative the bitmap size will be the inherent size of the font. To obtain a magnified bitmap, give a magnification factor to the argument mag_x (horizontal) and mag_y (vertical). If the argument point_size is non-negative, font size will be pixel_size times mag_x (mag_y) large for horizontal (vertical) direction.
Return Value
A non-negative integer is returned on success. This value is a font identifier (font id); it is used to specify a font for further font operations. If VF_OpenFont2() fails, a negative integer is returned.

VF_CloseFont()

int  VF_CloseFont(int font_id)
Functionality
Close a font.
Arguments
The argument font_id is a font id to be closed.
Return Value
A non-negative integer is returned on success. A negative integer is returned on failure.

VF_GetBitmap1()

VF_BITMAP  VF_GetBitmap1(int font_id, long code_point,
                         double mag_x, double mag_y)
Functionality
Obtain a glyph bitmap of given font id and code point. The font id font_id must be an id by VF_OpenFont1(). Size of bitmap to be obtained can be specified by mag_x and mag_y arguments.
Arguments
font_id specifies the font; code_point specifies the code point of a character. To obtain a magnified bitmap, give a magnification factor to the argument mag_x (horizontal) and mag_y (vertical). If a font is opened with magnification factor 2 and an bitmap is obtained by this function with magnification factor 2, then the size of yielding bitmap will be 4 times larger than the original size.
Return Value
The return value is a pointer to a newly allocated bitmap object. If it fails to obtain a bitmap, the null pointer is returned. If the bitmap object is no longer needed, it must be released by the function VF_FreeBitmap(). The font may not have the specified size; in such case, VFlib internally enlarges or shrinks the glyph to obtain a bitmap of the requested size.

VF_GetBitmap2()

VF_BITMAP  VF_GetBitmap2(int font_id, long code_point,
                         double mag_x, double mag_y)
Functionality
Obtain a glyph bitmap of given font id and code point. The font id 'font_id' must be an id by VF_OpenFont2(). Size of bitmap to be obtained can be specified by pixel_size, mag_x and mag_y arguments.
Arguments
font_id specifies the font; code_point specifies the code point of a character. To obtain a magnified bitmap, give a magnification factor to the argument mag_x (horizontal) and mag_y (vertical). If a font is opened with magnification factor 2 and an bitmap is obtained by this function with magnification factor 2, then the size of yielding bitmap will be 4 times larger than the original size.
Return Value
The return value is a pointer to a newly allocated bitmap object. If it fails to obtain a bitmap, the null pointer is returned. If the bitmap object is no longer needed, it must be released by the function VF_FreeBitmap(). The font may not have the specified size; in such case, VFlib internally enlarges or shrinks the glyph to obtain a bitmap of the requested size.

VF_GetMetric1()

VF_METRIC1  VF_GetMetric1(int font_id, long code_point,
                          VF_METRIC1 metric1,
                          double mag_x, double mag_y)
Functionality
Obtain font metrics of a given font and code point.
Arguments
Same arguments as of VF_GetBitmap1().
Return Value
A pointer to a metric1 object is returned. If an error occurs, the NULL pointer is returned. The obtained metric is a metric for a bitmap obtained by VF_GetBitmap1() with the same arguments, but the unit of the obtained metric is point. If the metric1 object is no longer needed it must be released by the function VF_FreeMetric1().

VF_GetMetric2()

VF_METRIC2  VF_GetMetric2(int font_id, long code_point,
                          VF_METRIC2 metric2,
                          double mag_x, double mag_y)
Functionality
Obtain font metrics of a given font and code point.
Arguments
Same arguments as of VF_GetBitmap2().
Return Value
A pointer to a metric2 object is returned. If an error occurs, the NULL pointer is returned. The obtained metric is a metric for a bitmap obtained by VF_GetBitmap2() with the same arguments, but the unit of the obtained metric is pixel. If the metric2 object is no longer needed, it must be released by the function VF_FreeMetric2().

VF_GetOutline()

VF_OUTLINE  VF_GetOutline(int font_id, long code_point,
                          double mag_x, double mag_y)
Functionality
Obtain outline data from a given font and code point.
Arguments
Same as VF_GetBitmap1().
Return Value
Return value is a pointer to a newly allocated outline data object. If it fails to obtain a outline data, the NULL pointer is returned. Even if the original font is a bitmap, VFlib internally creates outline data from the bitmap. If the source font is a vector font, VFlib internally converts the data format to VFlib outline data style. A bitmap of any specified size can be obtained from outline data by the function VF_Outline2Bitmap(). (Default point size and device resolution is also kept in the outline data.)

VF_OutlineToBitmap()

VF_OUTLINE  VF_OutlineToBitmap(VF_OUTLINE outline,
                               double dpi_x, double dpi_y, 
                               double point_size,
                               double mag_x, double mag_y)
Functionality
Obtain a bitmap from outline data.
Arguments
The argument outline is a pointer to an outline object to be rasterised. The arguments dpi_x, dpi_y, point_size, mag_x and mag_y are the same as the corresponding arguments of VF_GetBitmap1(). The outline data contains information on device resolution and point size specified by VF_GetOutline(). (If not specified, default values are used. Thus, bitmaps with a default size can be obtained by giving -1 for the arguments).
Return Value
A pointer to a bitmap object is returned. The NULL pointer is returned on failure. If the bitmap object is no longer needed it must be released by the function VF_FreeBitmap().

VF_GetFontBoundingBox1()

int  VF_GetFontBoundingBox1(int font_id, 
                            double mag_x, double mag_y,
                            double* w, double* h,
                            double* xoff, double* yoff)
Functionality
Obtain font bounding box information of a given font.
Arguments
The argument font_id specify a font in interest. The function writes the bounding box information to the locations pointed by w, h, xoff, and yoff. w and h point to data objects for width and height of bounding box, respectively. xoff and yoff point to data objects for largest horizontal and vertical displacement of lower left corner of bounding box from reference points. Note that these values does not guarantee the minimality; they only guarantee that all characters can be contained in a box descrived by them. If some values of w, h, xoff, or yoff are not in interest, NULL pointer can be given. The argument mag_x and mag_y are maginification factor to be scaled for a given font font_id.
Return Value
If font bounding information is successfully obtained, a non-negative integer is returned; otherwize, negative integer is returned. Units of bounding box information is in point.

VF_GetFontBoundingBox2()

int  VF_GetFontBoundingBox2(int font_id, 
                            double mag_x, double mag_y,
                            int* w, int* h,
                            int* xoff, int* yoff)

Same as VF_GetFontBoundingBox1() except units of font bounding box parameters are pixel.

VF_GetProp()

char*  VF_GetProp(int font_id, char* prop_name)
Functionality
Obtain a property of given font. (This function is font class dependent. You must be very careful to use it!)
Arguments
The argument font_id specifies a font from which to obtain a property. property_name specifies the property name.
Return Value
If the given property exists, its value is returned as a string. The string for the property value is newly allocated and must be released by free() if it is no longer needed. If the given property is undefined, the NULL pointer is returned.

VF_CopyBitmap()

VF_BITMAP  VF_CopyBitmap(VF_BITMAP bm)
Functionality
Make a copy of a bitmap object.
Arguments
The argument bm is a pointer to a bitmap object to be copied.
Return Value
A new bitmap object is allocated; all values are copied. Return value is a pointer to a new bitmap. The source bitmap bm remains unaffected. If an error occurs, the NULL pointer is returned. The obtained bitmap object must be released by VF_FreeBitmap() if it is no longer needed.

VF_MakeScaledBitmap()

VF_BITMAP  VF_MakeScaledBitmap(VF_BITMAP bm, 
                               double mag_x, double mag_y)
Functionality
Make an enlarged or shrinked bitmap.
Arguments
The argument bm specifies the source bitmap object, mag_x and mag_y give the magnification factor in the horizontal and vertical direction respectively. If the magnification factor is less than 1, a shrinked bitmap is obtained. Values for mag_x and mag_y can be arbitrary such as (mag_x > 1 and mag_y < 1) or (mag_x < 1 and mag_y > 1).
Return Value
A bitmap object whose bitmap is enlarged or shrinked is created and a pointer to the new bitmap is returned. If an error occurs, the NULL pointer is returned. The source bitmap bm remains unaffected. Use VF_FreeBitmap() if the returned bitmap object is no longer necessary.

VF_ReflectedBitmap()

VF_BITMAP  VF_ReflectedBitmap(VF_BITMAP bm, 
                              int refl_x, double refl_y)
Functionality
Make a bitmap with horizontally and/or vertically reflected image.
Arguments
The argument bm specifies the source bitmap object, refl_x and refl_y specify the reflection, respectively. If refl_x is non-zero, the image is holizontally reflected; if refl_y is non-zero, the image is vertically reflected. In case relf_x and refl_y are both zero, the effect is the same as VF_CopyBitmap().
Return Value
A new bitmap object is created and a pointer to the new bitmap is returned. If an error occurs, the NULL pointer is returned. Metrics of created bitmap is the same as that of the original bitmap. The source bitmap bm remains unaffected. Use VF_FreeBitmap() if the returned bitmap object is no longer necessary.

VF_RotatedBitmap()

VF_BITMAP  VF_RotatedBitmap(VF_BITMAP bm, int angle)
Functionality
Make a bitmap image with rotated image.
Arguments
The argument bm specifies the source bitmap object, angle gives rotation angle in degree. By the limitation of implementation, rotatin angle must be multiple of 90. The rotation angle angle must be one of the following:
VF_BM_ROTATE_0
Rotation angle is zero. Thus, the effect is the same as VF_CopyBitmap().
VF_BM_ROTATE_90
Rotation angle is 90 degree.
VF_BM_ROTATE_180
Rotation angle is 180 degree.
VF_BM_ROTATE_270
Rotation angle is 270 degree.
Return Value
A bitmap object whose bitmap is rotated is created and a pointer to the new bitmap is returned. If an error occurs, the NULL pointer is returned. The source bitmap bm remains unaffected. Use VF_FreeBitmap() if the bitmap object is no longer necessary. This function rotates a bitmap with the reference point as origin. The vector to the next reference point is also rotated. Therefore, position of the reference point and a vector to the next reference point of VF_RotatedBitmap(bm, VF_BM_ROTATE_180) and that of VF_ReflectedBitmap(bm, 1, 1) are different.

VF_DumpBitmap()

void  VF_DumpBitmap(VF_BITMAP bm)
Functionality
Print a bitmap in ASCII-art-style to stdout.
Arguments
The argument bm specifies a bitmap to be displayed.

VF_ImageOut_PBMAscii()

int  VF_ImageOut_PBMAscii(VF_BITMAP bm, FILE *fp, 
                          int image_width, int image_height,
                          int position_x, int position_y, 
                          int margin_l, int margin_r,
                          int margin_t, int margin_b,
                          int reverse, int shrink,
                          char *prog, char *title)
Functionality
Print a bitmap bm in PBM ASCII format to a file stream fp.
Arguments
bm is a bitmap to be written to a file stream fp. Size of output image (in pixel) is specified by image_width and image_height. If -1 is given for these arguments, the image size should be minimum to contain the bitmap bm. Arguments position_x and position_y specifies the horizontal and vertical position of a source bitmap bm in an output image file, respectively. These parameters have effect when image_width and image_height are specified. Possible values for position_x is
VF_IMAGEOUT_POSITION_NONE
Same as VF_IMAGEOUT_POSITION_LEFT.
VF_IMAGEOUT_POSITION_CENTER
bm is centered in output image.
VF_IMAGEOUT_POSITION_LEFT
bm is flushed left in output image.
VF_IMAGEOUT_POSITION_RIGHT
bm is flushed righted in output image.
Possible values for position_y is
VF_IMAGEOUT_POSITION_NONE
Same as VF_IMAGEOUT_POSITION_TOP.
VF_IMAGEOUT_POSITION_CENTER
bm is centered in output image.
VF_IMAGEOUT_POSITION_TOP
bm is placed at the top in output image.
VF_IMAGEOUT_POSITION_BOTTOM
bm is placed at the bottom in output image.
Arguments margin_l, int margin_r are used to speficy left and right margins, respectively. Arguments margin_t, int margin_b are used to speficy top and bottom margins, respectively. If the argument reverse is not 0, black and white in an output image is reversed. Argument shrink specifys shrink factor of image bm. (If this value is 1, bm is not shrinked. Note: Currently, shrinking image is not supported in PBM ASCII format.) Arguments prog and title are used to emmbed program name and title in an image file.

VF_ImageOut_PGMAscii()

int  VF_ImageOut_PGMAscii(VF_BITMAP bm, FILE *fp, 
                          int image_width, int image_height,
                          int position_x, int position_y, 
                          int margin_l, int margin_r,
                          int margin_t, int margin_b,
                          int reverse, int shrink,
                          char *prog, char *title)
Functionality
Print a bitmap bm in PGM ASCII format to a file stream fp.
Arguments
Arguments are the same as that of VF_ImageOut_PGMAscii(). If shrink is greater than 1, output image is anti-aliased (gray-scaled).

VF_ImageOut_PGMRaw()

int  VF_ImageOut_PGMRaw(VF_BITMAP bm, FILE *fp, 
                        int image_width, int image_height,
                        int position_x, int position_y, 
                        int margin_l, int margin_r,
                        int margin_t, int margin_b,
                        int reverse, int shrink,
                        char *prog, char *title)
Functionality
Print a bitmap bm in PGM Raw format to a file stream fp.
Arguments
Arguments are the same as that of VF_ImageOut_PGMAscii(). If shrink is greater than 1, output image is anti-aliased (gray-scaled).

VF_ImageOut_EPS()

int  VF_ImageOut_EPS(VF_BITMAP bm, FILE *fp, 
                     int image_width, int image_height,
                     int position_x, int position_y, 
                     int margin_l, int margin_r,
                     int margin_t, int margin_b,
                     int reverse, int shrink,
                     char *prog, char *title,
                     double ptsize, int pixsize)
Functionality
Print a bitmap bm in EPS (Encapsulated PostScript) format to a file stream fp.
Arguments
Arguments are the same as that of VF_ImageOut_PGMAscii(). If shrink is greater than 1, output image is anti-aliased (gray-scaled). Arguments ptsize and pixsize specify size of EPS bounding box; pixsize pixels occupy ptsize points in physical paper.

VF_ImageOut_ASCIIArt()

int  VF_ImageOut_ASCIIArt(VF_BITMAP bm, FILE *fp, 
                          int image_width, int image_height,
                          int position_x, int position_y, 
                          int margin_l, int margin_r,
                          int margin_t, int margin_b,
                          int reverse, int shrink)
Functionality
Print a bitmap bm in ASCII art format to a file stream fp.
Arguments
Arguments are the same as that of VF_ImageOut_PGMAscii().

VF_ImageOut_ASCIIArtV()

int  VF_ImageOut_ASCIIArtV(VF_BITMAP bm, FILE *fp, 
                           int image_width, int image_height,
                           int position_x, int position_y, 
                           int margin_l, int margin_r,
                           int margin_t, int margin_b,
                           int reverse, int shrink)
Functionality
Print a bitmap bm in ASCII art format to a file stream fp. Image is rotated in clockwise, 90 degree.
Arguments
Arguments are the same as that of VF_ImageOut_PGMAscii().

VF_FreeBitmap()

void  VF_FreeBitmap(VF_BITMAP bm)
Functionality
Release a bitmap object.
Arguments
The argument bm is a pointer to a bitmap object to be released.

VF_FreeMetric1()

void  VF_FreeMetric1(VF_METRIC1 metric)
Functionality
Release a metric1 object.
Arguments
The argument metric is a pointer to a metric1 object.

VF_FreeMetric2()

void  VF_FreeMetric2(VF_METRIC2 metric)
Functionality
Release a metric2 object.
Arguments
The argument metric is a pointer to a metric2 object.

VF_InstallFontDriver()

int  VF_InstallFontDriver(char* class_name, 
                          int(*driver)(VF_FONT font, 
                                       char* class_name,
                                       char* font_name,
                                       int implicit_flag));
Functionality
Install a font driver.
Arguments
class_name is a font class name, driver is a pointer to a function of a font driver of the font class. The function given by driver is called when a font of this font class is opened by VF_OpenFont1() and VF_OpenFont2(). The function driver is called with parameters of the font to be opened: font is a data object for font management defined by VFlib internally. class_name is the font class name. font_name is the name of the font to be opened. This argument is the same as the argument of VF_OpenFont1() and VF_OpenFont2(). implicit_font is a flag whose value is 1 if a font is to be opened as an implicit font (a font which does not explicitly appear in vflibcap) and 0 if it is to be opened as an explicit font (a font that does appear in vflibcap).
Return Value
If successful, a non-negative integer is returned. A negative integer is returned if the installation of the font driver fails.

Building an application software with VFlib

An application software that use VFlib must include a header file `VFlib-3_6.h'. Typically, this file is installed `/usr/local/include/' directory.

Never forget, that application software that uses VFlib must be linked against FreeType 1.2 or later (`libttf.a' or `libttf.so'), T1Lib 5.1 or later (`libt1.a' or `libt1.so'), and kpathsea 3.2 (`libkpathsea.a' or `libkpathsea.so'), if you configure VFlib to use them. (If VFlib is configured not to use them, they are not necessary.)

I recommend shared library versions for these optional libraries if you built a shared library version of VFlib.

#include <VFlib-3_6.h>

VFlib must be initialized before it is used.

char* vflibcap = "vflibcap";
char* params =  "TeX_DPI=300, KPATHSEA_MODE=cx";

if (VF_Init(vflibcap, params) < 0){
  fprintf(stderr, "Initializing VFlib: failed\n");
  exit(1);
}

Following program fragment opens a font, obtains a bitmap, and print obtained bitmap.

int         fid;
VF_BITMAP   bm;

if ((fid = VF_OpenFont2("timR24.pcf", -1, 1.0, 1.0)) < 0){
  fprintf(stderr, "Opening font: failed\n");
  exit(1);
}

bm = VF_GetBitmap2(fid, 0x67, 1.0, 1.0);

VF_DumpBitmap(bm);

A simple example

The following program code is a "banner" like using VFlib. For simplicity, this program accepts only 1-byte encoded characters. It reads an input from standard input and prints characters in ascii-art form to standard output.

/* 
 * vflbanner.c - a banner by VFlib
 * by Hirotsugu Kakugawa
 *
 *
 */
/*
 * Copyright (C) 1998 Hirotsugu Kakugawa. 
 * All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  
 */

#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include "VFlib-3_6.h"

#define  DEFAULT_FONT  "timR18.pcf"

char    *vflibcap;
char    *fontname;

void  usage(void);
void  vflbanner(FILE *fp);

int
main(int argc, char **argv)
{
  vflibcap = NULL;
  fontname = DEFAULT_FONT;

  --argc; argv++;
  while (argc > 0){
    if ((argc >= 1)
        && ((strcmp(argv[0], "-h") == 0) || (strcmp(argv[0], "--help") == 0))){
      usage();
      exit(0);
    } else if ((argc >= 2) && (strcmp(argv[0], "-v") == 0)){
      --argc; argv++;
      vflibcap = argv[0];
      --argc; argv++;
    } else if ((argc >= 2) && (strcmp(argv[0], "-f") == 0)){
      --argc; argv++;
      fontname = argv[0];
      --argc; argv++;
    } else {
      break;
    }
  }

  vflbanner(stdin);

  return 0;
}

void usage(void)
{
  printf("vflbanner - a banner program using VFlib\n");
  printf("Usage: vflbanner [-v vflibcap] [-f fontname]\n"); 
  printf("This program reads a text from standard input.  It supports\n");
  printf("1-bit encoded font only. Thus, `ctextpgm' is better than this.\n");
}

void
vflbanner(FILE  *fp)
{
  int  fid;
  int  ch; 
  int  pos_x, pos_y; 
  VF_BITMAP  bm, page_bm;
  struct vf_s_bitmaplist  PageBuff;

  if (VF_Init(vflibcap, NULL) < 0){
    printf("VFlib initialization error");
    switch (vf_error){
    case VF_ERR_INTERNAL:
      printf(" - Internal error.\n"); break;
    case VF_ERR_NO_MEMORY:
      printf(" - Server runs out of memory.\n"); break;
    case VF_ERR_NO_VFLIBCAP:
      printf(" -  No vflibcap.\n"); break;
    default: 
      printf(" -  Error code %d\n", vf_error); break;
    }
    fflush(stdout);
    exit(1);
  }

  if ((fid = VF_OpenFont1(fontname, -1, -1, -1, 1, 1)) < 0)
    return;
    
  VF_BitmapListInit(&PageBuff);

  pos_x = pos_y = 0; 
  while ((ch = getc(fp)) != EOF){
    if (!isprint(ch))
      ch = ' ';
    if ((bm = VF_GetBitmap1(fid, (long)ch, 1, 1)) == NULL)
      continue;
    VF_BitmapListPut(&PageBuff, bm, pos_x, pos_y);
    pos_x = pos_x + bm->mv_x;
  }

  page_bm = VF_BitmapListCompose(&PageBuff);
  VF_DumpBitmap(page_bm);
  VF_BitmapListFinish(&PageBuff);
  VF_FreeBitmap(page_bm);

  VF_CloseFont(fid);
}

/*EOF*/

By the following commands is used to comple the program.

% gcc -c `VFlib3-config --cflags` vflbanner.c
% gcc -o vflbanner vflbanner.o `VFlib3-config --libs` 

@command{VFlib3-config} is a program to print misc information on configuration of VFlib. It prints C compiler option to specify include directory (@option{--cflags}), dependent libraries (@option{--libs}), for example. Run @command{VFlib3-config} with @option{--help} option for detail.

Writing a vflibcap

Introduction to vflibcap

A vflibcap file is a database of font definitions for the VFlib library. A vflibcap font definition is described in a format similar to termcap and printcap. Vflibcap provides logical font names and logical font names may not corresponds to font files to be accessed. In this document, we simply say "font" to denote logical fonts.

Each VFlib fonts have its own parameters listed below:

  • Pixel size,
  • Point size, and
  • Resolution of target device.

These parameters may not be available in font file. For instance, these parameters are lacking in TrueType fonts. Lacking information is given in vflibcap file, or it is given by a font driver as default values.

Note: If you want to use VFlib for TeX DVI drivers, such as previewers and pronter driver, use @command{vflmkcaptex} program to generate vflibcap file automatically.

Syntax of vflibcap

The syntax of vflibcap file is lisp-like form. A semicolon ; starts a comment and following text is ignored until the end of line. A colon in a string which is enclosed by double colons is not considered as a comment character and forms a part of string. In the following explanation, we ignore comments.

A vflibcap file is a sequence of expressions called s-expressions. Basic data item of s-expression is string. Unlike lisp, there is no "number" type. A sequence of digits is parsed as a string. To include a special characters in a string such as double quotation, control code, and parenthesis, escape sequence can be used. String is a sequence of characters of the following form:

String Form 1:
Sequence of characters enclosed by double quotations. Examples:
   "hello world"
   "a, b, c, d"
   "He said \"Thanks!\"."
   "a*(b+c)"
String Form 2:
Sequence of characters except space, tab, newline, and closing parenthesis. A start character must not be a double quotation. Examples:
   font-file
   hello\ world
   He\ said\ \"Thanks!\".
   a*\(b+c\)

Unlink lisp, there is no distinction between string and symbol in vflibcap; they are the same data type. That is, HELLO and "HELLO" are the same.

Parentheses is used to form a "list" like in lisp. For example, (A B C) is a list of three strings. List can be nested any depth, e.g., (A (B1 B2 B3) (C1 (C21 C22) C3)).

A vflibcap must be a sequence of s-expression of the following forms:

(define-default FONT-CLASS CAPABILITY-DEF ... )
This expression defines a default values for a font class.
(define-font NAME CAPABILITY-DEF ... )
This expression defines a font.
(define-macro NAME CAPABILITY-DEF ... )
This expression defines a macro NAME.

CAPABILITY-DEF must be a list of form (CAPABILITY-NAME VALUE), e.g., (font-file "/usr/local/share/fonts/". Each font class defines its own set of capabilities and capability sets can be different by font classes.

This is an example of vflibcap file.

;; vflibcap
(define-default VFlib
  (extension-hints         (".bdf" bdf) (".pcf" pcf))
  (uncompression-programs  (".Z" "zcat") (".gz" "gzip -cd")
                           ("pk" ascii-jtex-kanji))
  (implicit-font-classes   bdf pcf hbf ascii-jtex-kanji)
  (variable-values     ("TeX_DPI" "300"))

(define-default bdf
  (filename-extensions ".bdf")
  (font-directories
     "/usr/X11R6/lib/X11/fonts//" "/usr/local/share/fonts/X11//")
  (compression-extensions ".gz" ".Z"))

(define-font timR24  ; times roman 24
  (font-class bdf)
  (font-file "timR24.bdf"))

(define-font timR18  ; times roman 18
  (font-class bdf)
  (font-file "timR18.bdf"))

Macros in vflibcap

To avoid writing the same capabilities, macro feature is provided in vflib. In case of CAPABILITY-DEF is a string, it is treated as a macro and a macro definition for it is expanded. For instance,

(define-font timR18
  MACRO-NAME
  (font-file "timR18.bdf"))

is a font definition using a macro MACRO-NAME. Suppose a macro MACRO-NAME is defined as follows.

(define-macro MACRO-NAME
  (font-class bdf)
  (dpi 300))

Then, the font definition for timR24 is the same as follow.

(define-font timR18
  (font-class bdf)
  (dpi 300))
  (font-file "timR18.bdf"))

The rule of macr expand is as following procedure.

  1. Looks for use of macros. From the first CAPABILITY-DEF to the last one, it is checked if it is a string (thus a macro) or not in order. If it is a macro, corresponding macro definition is substituted. Then, next CAPABILITY-DEF is checked.
  2. Macro expand is done recursively. Thus, a macro can be used in another macro.

Searching font files

Some font classes (e.g., BDF, PCF) defines a font-directories capability in vflibcap file. This capability specifies a list of font directories, for instance, (font-directories "/usr/local/fonts/" "/opt/fonts" "/usr/local/share/fonts//"). A font file can be searched recursively in a directory tree if a font directory name ends by double slashes //.

Some font drivers support file search by kpathsea. Typically, font files are located under `/usr/local/share/texmf'. This directory is used to hold TeX-related files. If a font driver supports searching by kpathsea, a special name TEXMF can be given in a list of font-directories capability. For instance, suppose that (font-directories "/opt1/fonts//" "TEXMF" "/opt2/fonts//") is specified. Then files are searched under /opt1/fonts, by kpathsea, and then /opt2/fonts, in this order.

Currently, pk, gf, tfm, vf, truetype, and type1 font classes suport searcing files by kpathsea.

Fast font file search

In case there are many font directories and sub-directory which contains many font file, searching a font file take long time, since font directories are traversed to find a requested font file. For fast font file search, font file hint database (FDB for short) can be used. It is placed in a root of a font directory, and it contains pairs of font file name and relative pathname of the font file from the font directory. The file name of FDB is VFlib.fdb.

The following is an example of FDB file.

times__m.pfb	type1/t/times__m.pfb
times__m.afm	type1/t/times__m.afm
zac_____.ttf	ttf/z/zac_____.ttf
zalescap.ttf	ttf/z/zalescap.ttf

Suppose that this FDB file is located in `/foo/bar/', for instance. The file tells us that there is a file `times__m.pfb' and absolute path name of the file is `/foo/bar/type1/t/times__m.pfb'.

If FDB file is found in a root directory of font directory, the FDB file is opened to find a requested font file. If a requested font file is not found, other font directory is searched, i.e., the directory is not traversed at all. In case FDB file is not found, a font directory is traversed to find a requested font file.

It is important to remember that you must not forget to update FDB file after you added new font files in a font directory. If you forget, installed font files are not found evenif they are in a font directory. To update a FDB file, run the utility program vflmkfdb. See section vflmkfdb, for details of the program.

A FDB file must be located in a root of a font directory and its name must be `VFlib.fdb'. Even if there is a FDB file in a sub-directory of a font directory, VFlib does not look for it.

Compressed font files

To reduce disk storage, compressed font files and uncompression on the fly is supported by some font class. Note that this feature is font class dependent and not all font class support this.

In a vflibcap file, a font file name need not have a compressed type extension, such as .gz. When VFlib searches a font file, it internally adds compressed type extension and finds a file.

Explicit and implicit fonts

Fonts explicitly defined in a vflibcap file are called explicit fonts. Fonts does not appear vflibcap file and searched by font drivers on demand are called implicit fonts.

Variables in vflibcap

In a vflibcap file, variables can be used as capability values. A capability value can be a value of a variable if a dollar sign ($) followed by a variable name is given.

For instance, (dpi $TeX_DPI) can be used instead of (dpi 300). The value for a variable must be defined somewhere. Default value can be given in (define-default VFlib ...), which will be explained later.

Default values can be overridden on initialization function of VFlib VF_Init(), or Unix environment variables VFLIBCAP_PARAM_var. For example, VFLIBCAP_PARAM_TeX_DPI is defined, its value becomes the value of the vflibcap variable TeX_DPI.

The value of an environment variable VFLIBCAP_PARAM_var is parsed as an S-expression, not as an string. Thus, if you want to specify a string ABC 123, the value of an environment variablue must be \"abc 123\". (Without double quotation, it will be a sequence of two strings. Only the first one is effective and the second one is ignored.)

VFlib defaults

To specify global behavior of VFlib, (virtual) font class VFlib is defined.

The following capability are defined.

implicit-font-classes (optional)
--- A list of implicit font classes. Font classes listed by this capability is candidates for implicit font searching. example: (implicit-font-classes "bdf" "pcf" "gf")
extension-hints (optional)
--- A list of paris of font name postfix and corresponding font class name. This is hint information to find font class from a font name in case of searching an implicit font. If an implicit font name matches with a postfix given by this capability, specified font class is invoked to search an implicit font. This is effective to reduce time to search an implicit font. example: (extension-hints (".pcf" pcf) (".bdf" bdf) ("gf" gf))
variable-values (optional)
--- A list of pairs of a name of vflibcap variable and its default value. example: (variable-values ("TeX_DPI" "300") ("TeX_KPATHSEA_MODE" "cx") (v ("p1" "v1")
uncompression-programs (optional)
--- A list of pairs of file name extension and corresponding uncompression program. This is used for reading compressed font files. An uncompression program must output uncompressed data to standard output. This capability is just defines relations of an extension and an uncompression program. A list of supported compressed types of a font class is given in a font class default description of each font class. example: (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")
code-conversion-files (optional)
--- A list of file names for encoding conversion. Currently, TrueType font class uses this. See section Code conversion system. example: (code-conversion-files "iso8859-1_unicode.ccv".ccv")
use-kpathsea (optional)
--- A flag whether kpathsea is used or not to search TeX font files. Value of this capability must be one of "Yes" or "No". example: (use-kpathsea "Yes")
kpathsea-mode (optional)
--- A device mode name for kpathsea library. example: (kpathsea-mode "cx")
kpathsea-dpi (optional)
--- Device resolution (in dpi) of a device mode for kpathsea library. example: (kpathsea-mode 300)
kpathsea-program-name (optional)
--- An application program name for kpathsea library. example: (kpathsea-mode "xgdvi")

BDF font class

The BDF format is a bitmap font format encoded in human-readable, platform independent format for distributing X Window fonts.

This font class supports compressed font files and implicit fonts.

Font class name: bdf

Capabilities for font class default:

font-directories (optional)
--- A list of font directories for searching font files. Recursive searching of font files is support.
compression-extensions (optional)
--- A list of supported compression type for this font class. This font class supports only compression type given by this capability. When a font is searched, a file followed by a compression extension is searched if given font file is not found. (Note that uncompression-programs capability of VFlib class default description gives a uncompression programs.) example: (compression-extensions ".gz" ".Z")
dpi (optional)
--- Defualt device resolution. Default horizontal and vertical resolutions will be the same value. example: (dpi 300)
dpi-x (optional)
--- Default horizontal device resolution. example: (dpi-x 300)
dpi-y (optional)
--- Default vertical device resolution. example: (dpi-y 300)
aspect-ratio (optional)
--- Aspect ratio of characters. If this value is 0.5 then width is half, and if 2 then width is doubled. example: (aspect-ratio 0.8)
properties (optional)
--- A list of pairs of a property name and its value. Property values given by this parameter is used by VF_GetProp() example: (properties ("PROP-1" "value-1") ("PROP-2" "value-2"))
variable-values (optional)
--- A list of pairs of a vflibcap variable name and its default value. example: (variable-values ("TeX_DPI" "300") ("TeX_KPATHSEA_MODE" "cx") ("TeX_KPATHSEA_PROGRAM" "/usr/X11R6/xldvi"))


Capabilities for font definition:

font-class (essential)
--- A font class name. This value must be bdf.
font-directories (optional)
--- A list of font directories for searching font files. Recursive searching of font files is support. A font file is searched in the directories given by this capability. If this capability is not given, the font directory specified by the class default is used to search fonts. If this capability is given, the font directory specified by the class default is not used to search fonts.
font-file (optional)
--- A font file name string. If this capability is not specified, the font name is used as the font file name. Multiple font file names can be listed in this capability. The driver tries to open a font listed first. If it is impossible to open, then it tries to open the second font. This is repeated until a font is successfully opened. If all fonts are impossible to open, font open fails. example: (font-file "timI24.bdf" "timR24.bdf")
point-size (optional)
--- font size in points. If the size is different from the size defined in the BDF font file, the bitmap is enlarged or shrinked to yield the specified size. This capability has effect for the VFlib functions VF_GetBitmap1() and VF_GetMetric1(). example: (point-size 24.0)
pixel-size (optional)
--- font size in pixels. If the size is different from the size defined in the BDF font file, the bitmap is enlarged or shrinked to yield the specified size. This capability has effect for the VFlib functions VF_GetBitmap2() and VF_GetMetric2(). example: (pixel-size 24)
magnification (optional)
--- magnification factor. The font is magnified by this factor. example: (magnification 1.20)
character-set (optional)
--- This is used for code point conversion. Value of this capability gives an external view of a character set of a font. Code conversion (ccv) is determined by this value and the following three capabilities.
encoding (optional)
--- This is used for code point conversion. Value of this capability gives an external view of an encoding of a font.
font-character-set (optional)
--- This is used for code point conversion. Value of this capability gives an internal view of a character set of a font. Therefore, this value must match the character set of the font file given by font-file capability.
font-encoding (optional)
--- This is used for code point conversion. Value of this capability gives an internal view of an encoding of a font. Therefore, this value must match the encoding of the font file given by font-file capability. The following example defines a font named iso8859_5-font with ISO-8859-5 encoding by using a KOI8-R encoded font file.
(define-font iso8859_5-font
  (font-class pcf)
  (character-set "ISO8859-5")   (encoding "ISO")
  (font-character-set "KOI8-R") (font-encoding "KOI8-R")
  (font-file "koi8x13.pcf"))
Code conversion is done by a subsystem named CCV. See section Code conversion system for detail.

PCF font class

Font class name: pcf

Other specification is the same as BDF font class except font class name is pcf.

HBF font class

Font class name: hbf

Other specification is the same as BDF font class except font class name is hbf.

TrueType font class

TrueType is a vector font font format. This font class supports implicit fonts but does not support compressed font files. TrueType font driver uses FreeType library version 1.2 developed by David Turner, Robert Wilhelm, and Werner Lemberg. See http://www.freetype.org/ for detail.

Font class name: truetype

Capabilities for font class default:

font-directories (optional)
--- A list of font directories. This driver supports font file search by kpathsea. To search a font file by kpathsea, use TEXMF for a directory name.
point-size (optional)
pixel-size (optional)
dpi (optional)
dpi-x (optional)
dpi-y (optional)
aspect-ratio (optional)
hinting (optional)
--- If the value of capability on, "hinting" information is used to render characters. This is effective when small characters are rendered. If the value is off, hinting is disabled. Hinting information is used by default. Note that enabling hinting has effect when obtaining bitmaps. It has no effect when you obtain and rasterize outline data in VFlib format, since VFlib outline format does not supports hinting information.
platform-id (optional)
--- A TrueType font can have multiple character code - glyph mapping tables. A mapping table is selected by specifying a pair of platform ID (Microsoft, Macintosh, etc) and encoding ID (Unicode, Shift-JIS, etc). This capability is used to specify platform ID of a mapping table to be selected. Value of this capability is one of strings below:
apple
Apple platform
macintosh, mac
Macintosh platform
ascii, iso
ISO platform
microsoft, windows, ms
Microsoft platform
any, ?, *
Any platform
Default value for this capability is Microsoft platform. example: (platform-id "microsoft")
encoding-id (optional)
--- Together with platform id, this capability is used to specify a mapping table. When ISO platform is selected by the encoding-id capability, value of this encoding-id capability is one of strings below:
ascii
ASCII encoding.
iso10464
ISO 10464 encoding.
iso8859-1
ISO8859-1 encoding.
any, ?, *
Any encoding.

When Apple platform is selected by the encoding-id capability, value of this encoding-id capability is one of strings below:
unicode1.1
Unicode 1.1 encoding.
unicode2.0
Unicode 2.0 encoding.
iso10464
ISO 10464 encoding.
any, ?, *
Any encoding

When Microsoft platform is selected by the encoding-id capability, value of this encoding-id capability is one of strings below:
symbol
unicode
Unicode encoding.
shift-jis, sjis, ms-kanji
Shift JIS encoding.
big5
Big5 encoding.
rpc
wansung
johab
any, ?, *
Any encoding

When Macintosh platform is selected by the encoding-id capability, value of this encoding-id capability is one of strings below:
roman
japanese
traditional-chinese
korean
arabic
hebrew
greek
russian
any, ?, *
Any encoding
example: (encoding-id "any")
properties (optional)
variable-values (optional)


Capabilities for font definition:

font-class (essential)
This value must be "truetype".
font-directories (optional)
--- A list of font directories for searching font files. Recursive searching of font files is support. A font file is searched in the directories by this capability. If not found, then a font is searched in a directories given by the class default. To search a font file by kpathsea, use TEXMF for a directory name.
font-file (optional)
point-size (optional)
pixel-size (optional)
dpi (optional)
dpi-x (optional)
dpi-y (optional)
magnification (optional)
aspect-ratio (optional)
hinting (optional)
font-number (optional)
encoding-force (optional)
--- In case encoding id data is broken in a TrueType font, its value can be overridden by this capability. example (encoding-force "unicode")
character-set (optional)
--- Together with encoding capability, this capability is used to change "external view" of a font. A font would be a font of a character set given by this capability and encoding given by encoding capability. Conversion of font internal character set and encoding to an external view is determined by these capability. Conversion is done by by code conversion system, called CCV. section Code conversion system Code conversion files are specified in code-conversion-files in VFlib font class default. See section VFlib defaults. For example, a font of JIS X 0208 character set (a Japanese character set) in Shift-JIS encoding fonts can be accessed as a JIS encoding font.
encoding (optional)
--- Together with character-set capability, this capability defines a external view of a font. section Code conversion system
properties (optional)
jisx0212-row47-empty-sjis (optional)
--- This capability is used for an ad-hoc solution to handle JIS X 0212 fonts with non-standard encoding such that row 47 is empty and followed rows are shifted by one. (That is, Kanjis in row 48 of JIS X 0212 appeard in row 49 in such fonts.) JIS X 0212 fonts of Ricoh TrueTypeWorld ValueFont DX are such fonts. If yes is given to this capability, buggy encoding is virtually fixed. This capability can apply to other products of buggy encoded JIS X 0212 fonts whose internal encoding is Shift JIS. (Use ftdump utility of FreeType package to check internal encoding scheme of fonts.)

Type1 font class

Type1 is a vector font font format used by PostScript. This font class supports implicit fonts but does not support compressed font files. This Type1 font driver uses T1Lib library version 5.1 or later developed by Rainer Menzner. See http://www.neuroinformatik.ruhr-uni-bochum.de/ini/PEOPLE/rmz/t1lib/t1lib.html for detail.

Be careful, VFlib does not work with old T1Lib. Obtain and install T1Lib 5.1 or later.

Currently, this font driver supports only 8-bit encoded fonts, i.e., it does not support for fonts of Japanese Kanji characters.

The function VF_GetOutline() for Type1 font files is supported but the result is ugly. Since T1Lib does not have a function to obtain outline data of a character in Type1 font, this font driver creates an outline data from a bitmap (for compatibility). Thus, it is very ugly. If your application software requires outline data, you are recommended to use the same font in other font format, such as TrueType. Thus, the outline obtained VF_GetOutline() function for Type1 font should be used only when the same font in other font format is not available.

Font class name: type1

Capabilities for font class default:

font-directories (optional)
--- A list of directories of Type1 font files. This driver supports font file search by kpathsea. To search a font file by kpathsea, use TEXMF for a directory name.
afm-directories (optional)
--- A list of directories of AFM files. Each element of this capability should not be a directory for recursive search (ending by //). This is why AFM files are searched by inside of T1Lib, although Type1 font files are searched by a file search subsystem of VFlib.
encoding-vector-directories (optional)
--- A list of directories of encoding files. Each element of this capability should not be a directory for recursive search (ending by //). This is why encoding vector files are searched by inside of T1Lib. By default, directories /usr/local/share/VFlib/x.y.z/t1lib/ and /usr/local/share/VFlib/site/t1lib/ are registered. Optional directories can be installed by this capability. T1Lib adopts file format for encoding vector file. When we want to use encoding vector files supplied by @command{dvips}, we must convert them into T1Lib format. To automate this, you can use a Unix Shell script @command{mkt1enc.sh} which is in /usr/local/share/VFlib/x.y.z/t1lib/ directory. Encoding vector files for @command{dvips} are converted into T1Lib format and they are also installed in this directory.
point-size (optional)
pixel-size (optional)
dpi (optional)
dpi-x (optional)
dpi-y (optional)
aspect-ratio (optional)
log-level (optional)
--- Select logfile output type of T1Lib. The filename of a logfile is `t1lib.log'. If this capability is not given, the logfile is not created.
error
Only error messages are written to the logfile.
warning
Warning messages and error messages are written to the logfile.
statistics
Statistics messages and above written to the logfile.
debug
Any messages useful for debugging and above are written to the logfile.
none
Never use a logfile.
See users manual of T1Lib for detail.
properties (optional)
variable-values (optional)


Capabilities for font definition:

font-class (essential)
This value must be "type1".
font-file (optional)
A list of font file names. Font file is searched in the listed order until existing font files is found. example: (font-file "AvantGarde-Book" "a0100131.pfb") By this example, `AvantGarde-Book' is seached first. If it exists, it is opened. Otherwise, `a0100131.pfb' is seached next. If it exists, it is opened. If it does not exist either, font open fails.
encoding-vector (optional)
A file name for encoding vector. This file must be reside in a directoy listed by encoding-vector-directories capability for type1 font class default.
point-size (optional)
pixel-size (optional)
dpi (optional)
dpi-x (optional)
dpi-y (optional)
magnification (optional)
aspect-ratio (optional)
slant-factor (optional)
--- Slant factor of a font. This value is tan(th), where th is slant angle of a font. Default value is 0, in case of th is 90 degree. example: (slant-factor 0.2)
properties (optional)

Zeit font class

This font class supports "Syotai Kurubu" format; it is a vector font format for Japanese Kanji characters.

Several free Japanese fonts in this file format are available.

This font class does not support compressed font files nor implicit fonts.

Font class name: zeit

Capabilities for font class default:

font-directories (optional)
filename-extensions (optional)
--- Two file files form a font for this font class, e.g., mincho.vf1 and mincho.vf2. Extension candidates without digit must be the value for this capability. example: (filename-extensions ".vf" ".VF")
point-size (optional)
pixel-size (optional)
dpi (optional)
dpi-x (optional)
dpi-y (optional)
aspect-ratio (optional)
writing-direction (optional)
--- Default writing direction. Horizontal or vertical; default is Horizontal. This is the same as (vector-to-bbx-upper-left 0.0 0.86) and (vector-to-next-ref-point 1.0 0.0) if value of this capability is "horizontal". Otherwise, it is the same as (vector-to-bbx-upper-left -0.5 0.0) and (vector-to-next-ref-point 0.0 -1.0).
vector-to-bbx-upper-left (optional)
--- Default value of a vector from the reference point of a character to upper-left bounding box. Right and up are positive directions. example: (vector-to-bbx-upper-left 0 0.86)
vector-to-next-ref-point (optional)
--- Default value of a vector from the reference point to next reference point. example: (vector-to-next-ref-point 1.0 0.0)
properties (optional)
variable-values (optional)


Capabilities for font definition:

font-class (essential)
--- A font class name.
font-name (optional)
--- Font file name without extensions. Together with vale and extension given by default description, font file names are formed. For example, if mincho is given for the font-name capability and (".vf") is given for the filename-extensions capability, then font files mincho.vf1 and mincho.vf2 are used. example: (font-name "mincho")
point-size (optional)
pixel-size (optional)
dpi (optional)
dpi-x (optional)
dpi-y (optional)
magnification (optional)
aspect-ratio (optional)
writing-direction (optional)
vector-to-bbx-upper-left (optional)
example: (vector-to-bbx-upper-left 0 0.86)
vector-to-next-ref-point (optional)
example: (vector-to-next-ref-point 1.0 0.0)
properties (optional)

JG font class

JG font format is a vector font format for Japanese character sets JIS X 0208. JG font driver is based on the work by Hideo Morishita.

Font class name: jg

Capabilities for font class default:

filename-extensions (optional)
--- Three files form a font for this font class, e.g., mincho.fn0, mincho.fn1, and mincho.fn2. Extension candidates without digit must be the value for this capability. example: (filename-extensions ".fn" ".FN")

(Other capabilities are the same as zeit font class.)

Capability for font definition:

Capabilities are the same as zeit font class.

eKanji font class

The eKanji font format is a bitmap font format for Kanji characters. The first character in an eKanji font file has code point 1, and the second character has code point 2. That is, characters in an eKanji font are numbered sequentially starting from 1. (This encoding scheme can be changed by setting some capabilities.)

eKanji font files are distributed at the following URL: http://www.zinbun.kyoto-u.ac.jp/~ekanji/ The distribution package contains the following font files.

  • Unicode (`ekan0010.d24')
  • Kyoto University KangXi (`ekan0020.d24')
  • Morohashi DaiKanwa (`ekan0030.d24')
  • JIS X 0208 (`jisx9052.d24')

Font class name: ekanji

Capabilities for font class default:

font-directories (optional)
font-dot-size (optional)
--- Dot size of characters in the font file. Default value is 24. example: (font-dot-size 24)
point-size (optional)
pixel-size (optional)
dpi (optional)
dpi-x (optional)
dpi-y (optional)
aspect-ratio (optional)
writing-direction (optional)
--- Default writing direction. Horizontal or vertical; default is Horizontal. This is the same as (vector-to-bbx-upper-left 0.0 0.92) and (vector-to-next-ref-point 1.0 0.0) if value of this capability is "Horizontal". Otherwise, it is the same as (vector-to-bbx-upper-left -0.5 0.0) and (vector-to-next-ref-point 0.0 -1.0).
vector-to-bbx-upper-left (optional)
--- Default value of a vector from the reference point of a character to upper-left bounding box. Right and up are positive directions. example: (vector-to-bbx-upper-left 0 0.90)
vector-to-next-ref-point (optional)
--- Default value of a vector from the reference point to next reference point. example: (vector-to-next-ref-point 1.0 0.0)
properties (optional)
variable-values (optional)


Capability for font definition:

font-class (essential)
--- A font class name.
font-name (optional)
--- Font file name with extension.
font-dot-size (optional)
--- Dot size of characters in the font file.
point-size (optional)
pixel-size (optional)
dpi (optional)
dpi-x (optional)
dpi-y (optional)
magnification (optional)
aspect-ratio (optional)
character-set (optional)
encoding (optional)
font-character-set (optional)
font-encoding (optional)
--- Select code conversion. If you want to access a eKanji font by ISO-2022 (JIS) encoding scheme, define eKanji for character-set, ISO2022 for encoding, eKanji for font-character-set, and SEQUENTIAL2-1 for encoding. Then the first character in the eKanji font is accessed by code point 0x2121.
mock-font-encoding (optional)
--- By this capability, encoding of an eKanji font file is virtually changed. This capability requires an argument and parameter. There are three keywords for an argument:
  • raw No effect, i.e., font encoding is not changed.
  • subblocks-94x94 B An eKanji font file is virtually divided by 94x94 sub blocks (blocks of 94x94 = 8836 characters) and selects B-th block for this font definition. This implies that an eKanji font file with this capability offers only 8836 (= 94x94) characters among all the characters of an eKanji font file. The first sub block is numbered zero. (A font with B = 0 for this capability selects the first sub block.) Characters with character code from 8836*B+1 to 8836*B+8836 in an eKanji font file is accessed by character code from 0x2121 to 0x7e7e.
  • subblocks-94x60 B This is similar to the case for subblocks-94x60. An eKanji font file is virtually divided by 94x60 sub blocks (blocks of 94x60 = 5640 characters) and selects B-th block for this font definition. The first sub block is numbered zero. Characters with character code from 5640*B+1 to 5640*B+5640 in an eKanji font file is accessed by character code from 0x3021 to 0x4e7e (first 30 rows) and from 0x5021 to 0x6e7e (another 30 rows). (This division scheme is the same as Mojikyo scheme.)
  • with-offset OFFS An offset value OFFS is added to obtain character code of a character in an eKanji font file. When OFFS is -0x4dff, the first character in an eKanji font file is accessed by code number 0x4e00, since 0x4e00 + (-0x4dff) = 1.
Theoretically, the same functionality shown above can be implemented within the CCV subsystem framework section Code conversion system, the eKanji font driver defines this capability, since the eKanji font file format adopts curious character encoding scheme and it seems to be simpler and cleaner to define this capability.
writing-direction (optional)
vector-to-bbx-upper-left (optional)
example: (vector-to-bbx-upper-left 0 0.86)
vector-to-next-ref-point (optional)
example: (vector-to-next-ref-point 1.0 0.0)
properties (optional)

TeX default and TeX font mapping font class

This is a special font class to define common default values of TeX-related font classes.

This font class has a feature to map a requested font to another font. Thus, this class is also called "TeX font mapping class" or "TeX font mapper". TeX-related font classes include the followings: GF, PK, TFM, VF, ASCII Japanese TeX.

This font class supports only implicit fonts and explicit fonts is not supported. Therefore, the driver name of this font class must be given in extension-hints and/or implicit-font-classes capabilities in the VFlib default description if you want to use the font mapping feature of this class.

Mapped font is recursively (recursively) requested to open and any operations such as obtaining bitmaps on the requested font are applied on the mapped font.

Font class name: TeX

Capabilities for font class default:

dpi (optional)
--- Default device resolution for TeX-related fonts.
tfm-directories (optional)
--- A list of directories of TFM files. Directories listed by this capability is used for searching TFM files. If a directory name is TEXMF, kpathsea is invoked to search a file. example: (tfm-directories "TEXMF" "/usr/local/share/font/tfm//")
tfm-filename-extensions (optional)
--- A list of extensions of filenames for TFM files. This is used to construct a TFM file name, e.g., "cmr10.tfm" for a font "cmr10". example: (tfm-filename-extensions "tfm")
font-mapping (optional)
--- Font mapping rules are described in this capability. When a font is requested to open (as an implicit font), the font name is mapped to another name and specified font driver is requested to open the mapped font. Syntax of this capability is as follows:
(font-mapping
  ((DRIVER-NAME MAPPING-FORMAT FONT-OPEN-OPTIONS) ... 
   FONT-NAME FONT-NAME ...)
  ((DRIVER-NAME MAPPING-FORMAT FONT-OPEN-OPTIONS) ... 
   FONT-NAME FONT-NAME ...)
  ...) 
Thus, value for this capability is a sequence of items ((DRIVER-NAME MAPPING-FORMAT FONT-OPEN-OPTIONS) ... FONT-NAME FONT-NAME ...), and this forms a mapping rule. FONT-NAME is a font name and this rule applies if requested font name matches FONT-NAME. (FONT-NAME is a name without directory and extension parts. A font name requested to open is compared with FONT-NAME by deleting directory and extension parts.) If FONT-NAME contains * character, it matches to the rest of requested font name. For example, cm* matches cmr10 and cmbx10. Thus, in case FONT-NAME is *, all fonts matches and thus all fonts applies the rule. The font name is mapped according to the format MAPPING-FORMAT and mapped name is opened by calling a font driver DRIVER-NAME. VF_OpenFont1() and VF_OpenFont2() are not used. (As a special case, when DRIVER-NAME is *, VF_OpenFont1() or VF_OpenFont2() is used to open a mapped font.) The syntax of MAPPING-FORMAT is similar to a format string of printf() function in C library, but conversion characters and semantics are different. Conversion specification is introduced by % character. Non-conversion characters are simply copied and conversion specifications are substituted for the following:
%%
% character
%f
the requested font name without extension and directory parts.
%d
font file resolution part in the extension of the requested font name
%e
file format part in the extension of the requested font name
For instance, let /foo/bar/qwe.300pk is the requested font name. Then %f is qwe, %d is 300, and %e is pk. A conversion specification will be null string if corresponding substring does not exist. In general, mapped fonts are opened with the same parameters (device resolution, magnification factors, point or pixel size) of the requested font. Such parameters can be changed by optional FONT-OPEN-OPTIONS part. Following descriptions can be used for FONT-OPEN-OPTIONS: We can specify multiple (DRIVER-NAME MAPPING-FORMAT FONT-OPEN-OPTIONS) in a rule description. This is useful if we need to write multiple mapping rules for the same set of fonts. A font is opened by the following way.
  1. For each rule (from the first one to the last one), the requested font name is checked if the rule applies to the font. If the rule does not apply, check next rule.
  2. For each (DRIVER-NAME MAPPING-FORMAT FONT-OPEN-OPTIONS) in the rule, the requested font is mapped and font open is attempted. If a mapped font is is successfully opened, it is used as a requested font. Otherwise, next mapping (DRIVER-NAME MAPPING-FORMAT FONT-OPEN-OPTIONS) is attempted. This is repeated for a mapped font is opened.
  3. If mapped fonts are not opened, next rule is checked. This is repeated for all rules until a mapped font is opened.
example:
(font-mapping
 ((ascii-jtex-kanji "%f.jtex")  
  "min*" "goth*" "tmin*" "tgoth*")
 ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) 
  *)
 ((pk "%f.%dpk") (gf "%f.%dgf") (tfm "%f.tfm")
  *))
For this example, suppose that min10.300pk is requested to open.
  1. The first rule applies to the requested font since min* is in the font list. The ascii-jtex-kanji driver is invoked to open a mapped name min10.jtex. If it is opened, font open succeeds; min10.jtex is used as min10.300pk and font open finishes. If the font is not opened, continue to the next step.
  2. The second rule applies to the requested font since * is given in the font list. The type1 driver is invoked to open a mapped name min10.pfb. If it is opened, min10.jtex is used as min10.300pk and font open finishes. If the font is not opened, continue to the next step.
  3. The second rule applies to the reqiested font since * is given in the font list.
    1. The pk driver is invoked to open a mapped name min10.300pk. If it is not opened, next mapping is attempted.
    2. The gf driver is invoked to open a mapped name min10.300gf. If it is not opened, next mapping is attempted.
    3. The tfm driver is invoked to open a mapped name min10.tfm.
If everything above fails, font open for cmr10.300pk fails.
  • point-size-from-tfm (optional) --- When a mapped font is opened (in mode 1, high resolution oriented mode), point size which is obtained from a TFM file is given. This is necessary when we use TrueType and/or Type1 fonts for mapped fonts. For example, "cmr10.ttf" and "cmr10.pfb" in the BaKoMa font set do not have point size information, since TrueType and Type1 format fonts cannot have information on point size.
  • (magnification-adjustment mag) (optional) --- Mapped fonts are opened with magnification factors magnified by mag. This can be used to adjust size of mapped fonts. But most of the case, this is not necessary.
As a restriction of fonts of this class, each font must have a TFM file.
resolution-accuracy (optional)
resolution-corrections (optional)
--- According to arithmetic errors, DPI value for font files and computed value (= device resolution times magnification value) may be different. These two capabilities give correct resolution values for PK and GF fonts. Syntax of these capabilities are as follows:
(resolution-accuracy ACCURACY)
(resolution-corrections
  (DEVICE-RESOLUTION FONT-RESOLION FONT-RESOLION ... )
  (DEVICE-RESOLUTION FONT-RESOLION FONT-RESOLION ... )
   ...)
DEVICE-RESOLUTION is the resolution of target device in DPI and FONT-RESOLUTION is a font resolution value. To find a font file, font resolution is computed by device resolution times magnification factor. Then, this driver finds a list (DEVICE-RESOLUTION FONT-RESOLUTION FONT-RESOLUTION ... ) such that DEVICE-RESOLUTION is the same as resolution of target device. (If there is no such list is the capability value, font file resolution is not corrected and computed value is used.) For each FONT-RESOLUTION in the list, the driver checks if the computed font file resolution is in the range from FONT-RESOLUTION times (1-ACCURACY) to FONT-RESOLUTION times (1+ACCURACY). If the computed resolution is in the range, font file resolution is changed to FONT-RESOLUTION. Then, a font file is searched by the corrected font file resolution. example:
(resolution-accuracy 0.02)
(resolution-corrections
 (300  ;; cx
  300  329  360  432  518  622  746  896 1075 1290  240 270)
 (600  ;; ljfour
  600  657  720  864 1037 1244 1493 1792 2150 2580  480 540))
Be careful not to map to the same name! Otherwise, font open will be an infinite loop. (VFlib restricts the depth of nested font open. Even if the font name is mapped to the same name, VFlib will detects an error, anyway.)
properties (optional)
variable-values (optional)

PK font class

PK fonts are bitmap fonts used by TeX system. PK font driver provides a logical view of PK fonts when a font is requested to open as an implicit font; if a given font filename is cmr10.pk, requested device resolution is 300 and magnification is 1.2, then PK font driver looks for a font file cmr10.360pk. Thus, font names (for font open) should not be the same as font filenames on filesystems.

To search a font file, the kpathsea library can be used. A special name TEXMF in a list of font directories (capability font-directories) is used to search a file by kpathsea.

To enable kpathsea, the value for use-kpathsea capability in VFlib class default must be "Yes".

This font class supports compressed font files and implicit fonts.

Font class name: pk

Capabilities for font class default:

font-directories (optional)
--- A list of directory names for font files. This driver supports font file search by kpathsea. To search a font file by kpathsea, use TEXMF for a directory name.
filename-extensions (optional)
--- A list of extensions of filenames for PK fonts. This is used to construct a font file name "cmr10.300pk" from "cmr10.pk" for 300 dpi fonts. example: (filename-extensions "pk")
make-missing-glyph (optional)
--- Generate a PK font file from Metafont source file by running METAFONT on the fly, if a requested PK font file does not exist. example: (make-missing-glyphs "yes")
point-size (optional)
pixel-size (optional)
dpi (optional)
properties (optional)
variable-values (optional)


Capabilities for font definition:

font-class (essential)
--- A font class name.
font-file (optional)
--- a font filename. An extension (e.g., .300pk) can be omitted. In case of this capability is not given, font name is used as this capability value.
point-size (optional)
pixel-size (optional)
dpi (optional)
properties (optional)
magnification (optional)

GF font class


Font class name: gf

Other capabilities are the same as ones for pk font class.

TFM font class

TFM files contains only metric information for typesetting TeX documents. This font class provides fonts whose metrics are defined by TFM font files. Since TFM files do not have glyph, glyph of a font of this font class are (black or white) rectangles. Fonts of this font class can be used as substitutes of PK, GF, or VF files in case they are missing.

If the file is not found, it is searched by font-directories capability given in TFM font class default description. Note that the extension of font files (given by the filename-extensions capability) has no effect for searching by kpathsea library. The extension of font files must be ".tfm". See kpathsea manual for detail.

This font class supports compressed font files and implicit fonts.

Font class name: tfm

Capabilities for font class default:

font-directories (optional)
--- A list of directory names for font files. This driver supports font file search by kpathsea. To search a font file by kpathsea, use TEXMF for a directory name.
filename-extensions (optional)
glyph-style (optional)
--- Defines default glyph style: empty or fill. If empty is given, all glyph of a font are white rectangles. If fill is given, all glyph of a font are black rectangles.
point-size (optional)
pixel-size (optional)
dpi (optional)
properties (optional)
variable-values (optional)

Capabilities for font definition:

font-class (essential)
-- A font class name.
font-file (optional)
glyph-style (optional)
--- Defines glyph style: empty or fill. If empty is given, all glyph of a font are white rectangles. If fill is given, all glyph of a font are black rectangles.
point-size (optional)
pixel-size (optional)
dpi (optional)
magnification (optional)
aspect-ratio (optional)
properties (optional)

VF font class

This font class handles Virtual Font files. A virtual font consists of a font program and subfonts. A font program in a vf file is similar to DVI file formats. Glyph of a virtual font are constructed from a box instruction in a font program and glyph taken from subfonts. Therefore, this font class requires a font mapping rule to obtain glyph from subfonts. You can specify VFlib not to open subfonts of a virtual font in case of subfonts are unavailable.

Font class name: vf

Capabilities for font class default:

font-directories (optional)
--- A list of directory names for font files. This driver supports font file search by kpathsea library. To search a font file by kpathsea library, use TEXMF for a directory name.
filename-extensions (optional)
--- A extension string for virtual font files. example: (filename-extensions "vf")
tfm-directories (optional)
tfm-filename-extensions (optional)
font-mapping (optional)
--- A set of rules for mapping for subfonts to open as an VFlib fonts. This is the same as TeX font mapper, i.e., font-mapping capability for TeX font class default description. Be careful not to map to the same name! Otherwise, font open will be an infinite loop. (VFlib restricts the depth of nested font open. Even if the font name is mapped to the same name, VFlib will detects an error, anyway.)
open-style (optional)
--- This capability specifies how subfonts are opened.
none
--- Boxes are used instead of glyph of subfonts. Subfonts are not opened.
try
--- The virtual font driver tries to open each subfont. If subfonts are opened, glyph are taken from opened subfonts. If some subfonts are not opened, boxes are used instead of glyph of such subfonts. It is not an error even if all subfonts are not opened.
require
--- The virtual font driver tries to open each subfont. It is an error if every subfont is not opened.
glyph-style (optional)
--- In case boxes are used instead of glyph of subfonts, this capability controls the looks of boxes.
empty
--- Boxes are white, i.e., all pixels are value 0.
fill
--- Boxes are black, i.e., all pixels are value 1.
point-size (optional)
pixel-size (optional)
dpi (optional)
properties (optional)
variables (optional)
debug (optional)

Capabilities for font definition:

font-file (optional)
--- File name of a virtual font.
point-size (optional)
pixel-size (optional)
dpi (optional)
magnification (optional)
properties (optional)

ASCII Japanese TeX Kanji font class

This is for Kanji fonts of Japanese TeX localized by ASCII Co. This font driver provides Kanji fonts that can be accessed as if they were PK fonts by using another VFlib font. Font metrics of Kanji characters defined by ASCII jTeX may not match that of a Kanji font to be used. This case happens when jiskan24.pcf font is used as a Japanese Kanji font for TeX. This font driver works as a filter that modifies font metrics of another font. Change of font metrics is defined by an external file called adjustment file. See sample distribution of adjustment files for their syntax. (Not documented now...)

Font metrics of a font of this class is defined by a TFM font; a vector to the next reference point is taken from a TFM file. A vector to upper left corner of a bitmap is taken from subfont. Then, font metrics is modified according to an adjustment file.

This driver supports vertical writing. In case fonts for vertical writing are not available, the driver rotates glyph of some characters, e,g, parenthesis, to yield (possible) correct glyph.

Font class name: ascii-jtex

Capabilities for font class default:

implicit-font-mapping-suffix (optional)
--- A suffix to map a font name for searching an implicit font. Suppose a font is requested to open. Then, font name is mapped in such a way that extension is deleted and the suffix given by this capability is added. Then, an vflibcap entry of the mapped name is searched. If such an entry exists, it is used for the implicit font and the font is opened as if it were an explicit font. (Note that a font of the mapped name must exist as an explicit font, not as an implicit font.) Suppose min10.400pk is requested to open as an implicit font and the value of this capability is .jtex. Then mapped name is min10.jtex and it is opened by this font driver internally. example: (implicit-font-mapping-suffix ".jtex")
tfm-directories (optional)
tfm-filename-extensions (optional)
properties (optional)
variable-values (optional)

Capabilities for font definition:

font-class (essential)
--- A font class name.
kanji-font (optional)
--- Font name for a subfont.
kanji-font-point-size (optional)
--- Default point size of subfont. If point size is not explicitly given when a font is opened, This value is used.
kanji-font-pixel-size (optional)
--- Default pixel size of a subfont. If pixel size is not explicitly given when a font is opened, This value is used.
kanji-font-magnification (optional)
--- magnification factor for subfont.
tfm-file (optional)
--- TFM file that defines font metrics of a font. example: (tfm-file "min10.tfm")
metric-adjustment-file (optional)
--- a file name for font metric adjustment file.
properties (optional)

Japanese comic font class

This font driver composes two Japanese Kanji fonts. According to code point (Kana or kanji character), one of two font is selected to obtain a bitmap or metric. This font class provides Japanese fonts that composes Kana and Kanji font.

Font class name: japanese-comic

Capabilities for font class default:

point-size (optional)
pixel-size (optional)
dpi (optional)
properties (optional)
variable-values (optional)

Capabilities for font definition:

font-class (essential)
--- A font class name.
kanji-font (optional)
--- A VFlib font name for Kanji characters. For code points for Kanji characters, this font is used to obtain bitmaps and metrics.
kana-font (optional)
--- A VFlib font name for Kana font (code point: 0x2121 ... 0x287f). For code points except Kanji characters, this font is used to obtain bitmaps and metrics.
symbol-font (optional)
--- A VFlib font name for symbol characters (code point: 0x2121 ... 0x227f). If this capability is not given, a font given by kana-font is used for symbol characters.
alpha-numeric-font (optional)
--- A VFlib font name for alphabet and numeric characters (code point: 0x2321 ... 0x237f). If this capability is not given, a font given by kana-font is used for alphabet and numeric characters.
hirakana-font (optional)
--- A VFlib font name for Hirakana characters (code point: 0x2421 ... 0x247f). If this capability is not given, a font given by kana-font is used for Hirakana characters.
katakana-font (optional)
--- A VFlib font name for Katakana characters (code point: 0x2521 ... 0x257f). If this capability is not given, a font given by kana-font is used for Katakana characters.
greek-font (optional)
--- A VFlib font name for Greek characters (code point: 0x2621 ... 0x267f). If this capability is not given, a font given by kana-font is used for Greek characters.
cyrillic-font (optional)
--- A VFlib font name for Cyrillic characters (code point: 0x2721 ... 0x277f). If this capability is not given, a font given by kana-font is used for Cyrillic characters.
keisen-font (optional)
--- A VFlib font name for Keisen characters (code point: 0x2821 ... 0x287f). If this capability is not given, a font given by kana-font is used for Keisen characters.
point-size (optional)
pixel-size (optional)
dpi (optional)
magnification (optional)
properties (optional)

Try font class

A font of this font class has a list of sub-fonts. When a font of this class is requested open, the try font driver tries to open the sub-fonts one after another until one of them is successfully opened. If all sub-fonts in the list are not opened, the font is failed to be opened. All font operation of the font is applied to an opened sub-font.

Font class name: try

Capabilities for font class default:

properties (optional)
variable-values (optional)

Capabilities for font definition:

font-class (essential)
--- A font class name. This must be try.
font-list (optional)
--- A list of sub-fonts. These fonts are VFlib fonts, not a font file names.
point-size (optional)
pixel-size (optional)
dpi (optional)
magnification (optional)
properties (optional)

Mojikyo font mapping class

This font driver is specific to the Mojikyo font files, which is a huge collection (more than 80 thousand) of Kanji characters. (Access http://www.mojikyo.gr.jp/ for detail.) The Mojikyo font is supplied by a set of font files, since the number of characters is too huge to contain in a single font file.

The Mojikyo font defines its own character encoding, staring from 1 and each character has its own character code. (Character codes are not the codes in a font file.) The Mojikyo font set is supplied by both TrueType and Type 1 formats. A single character space of the Mojikyo is divided into font file number and character code in a font file. This means that we must compute font file among many font files and code point in a font file to obtain a glyph of Mojikyo characters. To avoid such complex procedure, this font driver provides a virtual single font.

Note that this font driver only delegates requested characters to other font driver (TrueType or Type 1). Therefore, TrueType and/or Type 1 font driver must be configured in VFlib and they must be propopery set up in a vflibcap file.

Font class name: mojikyo-mapper

Capabilities for font class default:

properties (optional)
variable-values (optional)

Capabilities for font definition:

font-class (essential)
--- A font class name. This must be mojikyo-mapper.
division-scheme (optional)
Mapping scheme from the Mojikyo character space to real font files is different by real font file format (TrueType/Type1). This capability defines which mapping scheme is used. If truetype is given for this capability, underlaying font files are in TrueType format. If type1 is given for this capability, underlaying font files are in Type 1 format. Default value for this capability is truetype. Aliases of division scheme names are defined as follows: ttf is an alias of truetype, and pfb is an alias of type1.
subfont-name-format (optional)
This capability defines format of font file names. If truetype is selected for division-scheme capability, Mojik%d.ttf is assumed for this capability by default. %d in Mojik%d.ttf is substituted by font number, starting from 101. If type1 is selected for division-scheme capability, mo%dm%02d.pfb is assumed for this capability by default. The first %d in mo%dm%02d.pfb is a major font number, starting from 101. The second %d in mo%dm%02d.pfb is a minor font number, starting from 6. In case you want to use a font name format other than described above, this capability should be defined. Note that format sting should contain exactly one %d if you select truetype division scheme, and exactly two %ds if you select type1 division scheme.
truetype-subfont-encoding (optional)
This capability has effect only when truetype division scheme is selected. This capability selects character encoding scheme of underlaying TrueType font files. If unicode is given to this capability, underlaying TrueType fonts are encoded in Unicode. If iso-2022 (as aliases, iso2022 or jis can be used) is given to this capability, underlaying TrueType fonts are encoded in ISO 2022 (JIS). Default value is unicode, which is the same as the the Mojikyo font files in TrueType format.
properties (optional)

Example vflibcap 1

This example vflibcap is for general use.

;; -----------------------------------------------------------------
;;   VFlib Default
;; -----------------------------------------------------------------
(define-default  VFlib
  ;; hint to find font class from font name for fast font open
  (extension-hints  (".bdf" bdf) (".pcf" pcf) (".hbf" hbf)
                    (".ttf" truetype) (".ttc" truetype)
                    (".pfa" type1) (".pfb" type1)
                    ("pk" TeX) ("gf" gf) ("tfm" tfm))
  ;; implicit font classes
  (implicit-font-classes  pcf bdf hbf truetype type1 zeit jg gf tfm)

  ;; uncompression programs
  (uncompression-programs  (".Z" "zcat") (".gz" "gzip -cd"))

  ;; a list of default values of variables
  ;; *Note* "variable-values" must come before variable uses
  (variable-values  (TeX_DPI               "300")
                    (TeX_USE_KPATHSEA      "Yes")
                    (TeX_KPATHSEA_MODE     "cx") 
                    (TeX_KPATHSEA_PROGRAM  "/usr/local/bin/xldvi"))

  ;; kpathsea: enabled/disabled 
  (use-kpathsea           $TeX_USE_KPATHSEA)
  ;; kpathsea mode (e.g., "cx")
  (kpathsea-mode          $TeX_KPATHSEA_MODE)
  ;; kpathsea program name (e.g., "/usr/local/bin/xdvi")
  (kpathsea-program-name  $TeX_KPATHSEA_PROGRAM)

  ;; encoding/charset conversion files
  (code-conversion-files  
   "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv"
   "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv"
   "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv"
   "jisx0201_unicode.ccv" "jisx0208_unicode.ccv" "jisx0212_unicode.ccv"
   "ksc5601_unicode.ccv"
   "gb12345_unicode.ccv" "gb2312_unicode.ccv"
   "big5_unicode.ccv" "cns11643_unicode.ccv"
   "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv"))

;; -----------------------------------------------------------------
;;   BDF Font Class Default
;; -----------------------------------------------------------------
(define-default  bdf
  ;; font directories
  (font-directories  "/usr/local/share/fonts/X11//")
  ;; extensions of compressed font files that this font class supports
  (compression-extensions ".gz" ".Z")
  ;; default values for fonts of this font class
  (variable-values    (VAR1 ("PROP1" "VAL1"))  ; just for debugging...
                      (VAR2 ("PROP2" "VAL2"))
                      (VARX ("PROPX" "VFlib-VALX")) )
  ;; properties for all fonts of this font class
  (properties ("FONT_CLASS" "BDF")) )

;; -----------------------------------------------------------------
;;   PCF Font Class Default
;; -----------------------------------------------------------------
(define-default  pcf
  ;; font directories
  (font-directories  "/usr/X11R6/lib/X11/fonts//"
                     "/usr/local/X11R6/lib/X11/fonts//"
                     "/usr/openwin/lib/X11/fonts//"
                     "/usr/X386/lib/X11/fonts//"
                     "/usr/XFree86/lib/X11/fonts//"
                     "/usr/X11/lib/X11/fonts//"
                     "/usr/local/lib/X11/fonts//"
                     "/usr/X11R5/lib/X11/fonts//"
                     "/usr/local/X11R5/lib/X11/fonts//"
                     "/usr/local/share/fonts/X11//")
  ;; extensions of compressed font files that this font class supports
  (compression-extensions ".gz" ".Z")
  ;; properties for all fonts of this font class
  (properties ("FONT_CLASS" "PCF"))  )

;; -----------------------------------------------------------------
;;   HBF Font Class Default
;; -----------------------------------------------------------------
(define-default  hbf
  ;; font directories
  (font-directories  "/usr/local/share/fonts/HBF//")
  ;; extensions of compressed font files that this font class supports
  (compression-extensions ".gz" ".Z")
  ;; properties for all fonts of this font class
  (properties ("FONT_CLASS" "HBF"))  )

;; -----------------------------------------------------------------
;; TrueType Font Class Default
;; -----------------------------------------------------------------
(define-default  truetype
  ;; font directories
  (font-directories  "TEXMF"  ; - a special name to search by `kpathsea'
                     "/usr/local/share/fonts/bakoma/ttf/"
                     "/usr/local/share/fonts/FontCity2//"
                     "/usr/local/share/fonts/DynaFont-Premium30/win95//"
                     "/usr/local/share/fonts/DynaFont-SpecialPack1/win95//"
                     "/usr/local/share/fonts/TrueTypeWorld-ValueFont141//"
                     "/usr/local/share/fonts/FontAsia//"
                     "/usr/local/share/fonts/FontGarden/ttf//"  )
  ;; debugging flags   ('*' selects all)
  (debug "")
  ;; properties for all fonts of this font class
  (properties ("FONT_CLASS" "TrueType"))  )
  
;; -----------------------------------------------------------------
;; Type1 Font Class Default
;; -----------------------------------------------------------------
(define-default type1
  ;; font (pfa, pfb) directories
  (font-directories "TEXMF"  ; - a special name to search by `kpathsea'
                    "/usr/local/share/fonts/bakoma/pfb/")
  ;; AFM directories
  (afm-directories "TEXMF"   ; - a special name to search by `kpathsea'
                   "/usr/local/share/fonts/bakoma/afm/")
  ;; T1Lib logfile output level: "none", "error", "warning", "stat", "debug"
  (log-level "none"))

;; -----------------------------------------------------------------
;;   Syotrai Club Font Class Default
;; -----------------------------------------------------------------
(define-default  zeit
  ;; filename extensions ("vf" for "mincho.vf{1,2}")
  (filename-extensions  ".vf")
  ;; font directories
  (font-directories   "/usr/local/share/fonts/Watanabe//"
                      "/usr/local/share/fonts/WadaLab//")
  ;; properties for all fonts of this font class
  (properties  ("FONT_CLASS" "ZEIT")
               ("CHARSET_REGISTRY" "jisx0208.1983")
               ("CHARSET_ENCODING" "0") ))

;; -----------------------------------------------------------------
;;   JG Font Class Default
;; -----------------------------------------------------------------
(define-default  jg
  ;; filename extensions ("fn" for "zkyo0by.fn{0,1,2}")
  (filename-extensions ".fn")
  ;; font directories
  (font-directories  "/usr/local/share/fonts/JG-Fonts//")
  ;; properties for all fonts of this font class
  (properties  ("FONT_CLASS" "JG")
               ("CHARSET_REGISTRY" "jisx0208.1983")
               ("CHARSET_ENCODING" "0")))

;; -----------------------------------------------------------------
;;   TeX-related Font Class Default and TeX Font Mapper
;; -----------------------------------------------------------------
(define-default  TeX
  ;; TFM file directories
  (tfm-directories  "TEXMF"
                    "/usr/local/share/fonts/bakoma/tfm/")
  ;; possible extensions of TFM files
  (tfm-filename-extensions  ".tfm")
  ;; font name mapping rules
  (font-mapping
   ((ascii-jtex-kanji "%f.jtex")  "min*" "goth*" "tmin*" "tgoth*")
   ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) 
     *)
   ((pk "%f.%dpk") (gf "%f.%dgf")  *)
   ((tfm "%f.%dtfm")  *))
  ;; accuracy of device resolutions, used with 'resolution-corrections'
  (resolution-accuracy 0.02)
  ;; font resolution values for each device resolutions.
  (resolution-corrections
   (240  ;; sparcptr
    240  263  288  312  346  415  498  597)
   (300  ;; cx
    300  329  360  432  518  622  746  896 1075 1290  240 270)
   (400  ;; sparcptr
    400  438  480  576  691  829  995 1194 1433 1720  320 360)
   (600  ;; ljfour
    600  657  720  864 1037 1244 1493 1792 2150 2580  480 540))
  ;; default device resolution
  (dpi $TeX_DPI))

;; -----------------------------------------------------------------
;;   TeX GF Font Class Default
;; -----------------------------------------------------------------
(define-default  gf
  ;; font directories
  (font-directories  "TEXMF" 
                     "/usr/local/TeX/gf//")
  ;; properties for all fonts of this font class
  (properties  ("FONT_CLASS" "GF")) )

;; -----------------------------------------------------------------
;;   TeX PK Font Class Default
;; -----------------------------------------------------------------
(define-default  pk
  ;; font directories
  (font-directories  "TEXMF"
                     "/usr/local/TeX/pk//")
  ;; properties for all fonts of this font class
  (properties  ("FONT_CLASS" "PK")) )

;; -----------------------------------------------------------------
;;   TeX TFM Font Class Default
;; -----------------------------------------------------------------
(define-default  tfm
  ;; font directories
  (font-directories  "TEXMF"
                     "/usr/local/TeX/tfm//")
  ;; glyph style: "fill" (all pixels black) or "empty" (all pixels white)
  (glyph-style  "fill")
  ;; properties for all fonts of this font class
  (properties  ("FONT_CLASS" "TFM")) )

;; -----------------------------------------------------------------
;;   ASCII-jTeX Kanji Font Class Default
;; -----------------------------------------------------------------
(define-default  ascii-jtex-kanji
  ;; TFM file directories
  (tfm-directories  "TEXMF")
  ;; possible extensions of TFM files
  (tfm-filename-extensions ".tfm")
  ;; Suffix for name mapping
  ;; (e.g., implicit font "min10.300pk" is mapped to "min10.jtex")
  (implicit-font-mapping-suffix ".jtex"))

;; -----------------------------------------------------------------
;;   Japanese Comic Font Class Default
;; -----------------------------------------------------------------
(define-default  japanese-comic
  ;; debugging flags   ('*' selects all)
  (debug "f")
  ;; properties for all fonts of this font class
  (properties  ("FONT_CLASS" "JAPANESE-COMIC")
               ("CHARSET_REGISTRY" "jisx0208.1983")
               ("CHARSET_ENCODING" "0")))

;; -----------------------------------------------------------------
;;  sample font definitions for Japanese TeX

(define-font jtex-min    (font-class pcf) (font-file "jiskan24.pcf"))
(define-font jtex-goth   (font-class pcf) (font-file "jiskan24.pcf"))
(define-font jtex-tmin   (font-class pcf) (font-file "jiskan24.pcf"))
(define-font jtex-tgoth  (font-class pcf) (font-file "jiskan24.pcf"))

;; Definitions for "min10" fonts. These fonts are used by
;; 'name mapping' feature of ascii-jtex-kanji driver.
;; (e.g., "min10.400pk" is mapped to "min10.jtex")
(define-macro min-common
  (font-class ascii-jtex-kanji) (kanji-font jtex-min)
  (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj"))
(define-macro goth-common
  (font-class ascii-jtex-kanji) (kanji-font jtex-goth)
  (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj"))
(define-macro tmin-common
  (font-class ascii-jtex-kanji) (kanji-font jtex-tmin)  
  (kanji-font-magnification 0.85) 
  (metric-adjustment-file "jiskan24v.adj"))
(define-macro tgoth-common
  (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth)
  (kanji-font-magnification 0.85) 
  (metric-adjustment-file "jiskan24v.adj"))
(define-font min5.jtex     (kanji-font-point-size  5)  min-common)
(define-font min6.jtex     (kanji-font-point-size  6)  min-common)
(define-font min7.jtex     (kanji-font-point-size  7)  min-common)
(define-font min8.jtex     (kanji-font-point-size  8)  min-common)
(define-font min9.jtex     (kanji-font-point-size  9)  min-common)
(define-font min10.jtex    (kanji-font-point-size 10)  min-common)
(define-font goth5.jtex    (kanji-font-point-size  5)  goth-common)
(define-font goth6.jtex    (kanji-font-point-size  6)  goth-common)
(define-font goth7.jtex    (kanji-font-point-size  7)  goth-common)
(define-font goth8.jtex    (kanji-font-point-size  8)  goth-common)
(define-font goth9.jtex    (kanji-font-point-size  9)  goth-common)
(define-font goth10.jtex   (kanji-font-point-size 10)  goth-common)
(define-font tmin5.jtex    (kanji-font-point-size  5)  tmin-common)
(define-font tmin6.jtex    (kanji-font-point-size  6)  tmin-common)
(define-font tmin7.jtex    (kanji-font-point-size  7)  tmin-common)
(define-font tmin8.jtex    (kanji-font-point-size  8)  tmin-common)
(define-font tmin9.jtex    (kanji-font-point-size  9)  tmin-common)
(define-font tmin10.jtex   (kanji-font-point-size 10)  tmin-common)
(define-font tgoth5.jtex   (kanji-font-point-size  5)  tgoth-common)
(define-font tgoth6.jtex   (kanji-font-point-size  6)  tgoth-common)
(define-font tgoth7.jtex   (kanji-font-point-size  7)  tgoth-common)
(define-font tgoth8.jtex   (kanji-font-point-size  8)  tgoth-common)
(define-font tgoth9.jtex   (kanji-font-point-size  9)  tgoth-common)
(define-font tgoth10.jtex  (kanji-font-point-size 10)  tgoth-common)

;; -----------------------------------------------------------------
;; EOF

Example vflibcap 2

This vflibcap file is an example for TeX DVI drivers. This vflibcap file provides a set of fonts of the form NAME.DVIpk and NAME.pk. For example, cmr10.300pk and cmr10.pk.

For Japanese Kanji character fonts min5 ... min10, goth5 ... goth10, tmin5 .. tmin10, tgoth5 ... tgoth10, X Window PCF format font jiskan24.pcf is used via ascii-jtex-kanji font driver.

Other fonts are solved in PK and GF format fonts. If a font is not available in these formats, a TFM font is used to produce a "black" box. (TFM files are metrics files and do not conatin glyph. But TFM driver in VFlib produces a "box" glyph as it ware font files.)

Parameters of device resolution and magnification factor for the function VF_OpenFont1() determines the font size and font metrics to be opened.

To use VFlib with this vflibcap file, I recommend to open font by VF_OpenFont1(name.pk, dpi, dpi, -1, mag, mag), where name.pk is a font name (e.g., cmr10.pk), dpi is the device resolution in dpi (e.g., 300), and mag is the magnification factor (e.g., 1.2 for magstep 1 fonts).

;; -----------------------------------------------------------------
;;   VFlib Default
;; -----------------------------------------------------------------
(define-default VFlib
  (extension-hints  ("pk" TeX))
  (implicit-font-classes)
  (uncompression-programs  (".Z" "zcat") (".gz" "gzip -cd"))
  (variable-values  (TeX_USE_KPATHSEA      "Yes")
                    (TeX_DPI               "300")  ;; or "600"
                    (TeX_KPATHSEA_MODE     "cx")   ;; or "ljfour"
                    (TeX_KPATHSEA_PROGRAM  "/usr/local/bin/xldvi"))
  (use-kpathsea           $TeX_USE_KPATHSEA)
  (kpathsea-mode          $TeX_KPATHSEA_MODE)
  (kpathsea-program-name  $TeX_KPATHSEA_PROGRAM)
  (code-conversion-files  
   "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv"
   "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv"
   "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv"
   "jisx0201_unicode.ccv" "jisx0208_unicode.ccv" "jisx0212_unicode.ccv"
   "ksc5601_unicode.ccv"
   "gb12345_unicode.ccv" "gb2312_unicode.ccv"
   "big5_unicode.ccv" "cns11643_unicode.ccv"
   "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv"))

;; -----------------------------------------------------------------
;;   TeX-related Font Class Default and TeX Font Mapper
;; -----------------------------------------------------------------
(define-default  TeX
  (tfm-directories  "TEXMF")
  (tfm-filename-extensions  ".tfm")
  (font-mapping
   ((ascii-jtex-kanji "%f.jtex")  "min*" "goth*" "tmin*" "tgoth*")
   ((pk "%f.%dpk") (gf "%f.%dgf")  *)
   ((tfm "%f.%dtfm") *))
  (resolution-accuracy 0.02)
  (resolution-corrections
   (240  ;; sparcptr
    240  263  288  312  346  415  498  597)
   (300  ;; cx
    300  329  360  432  518  622  746  896 1075 1290  240 270)
   (400  ;; sparcptr
    400  438  480  576  691  829  995 1194 1433 1720  320 360)
   (600  ;; ljfour
    600  657  720  864 1037 1244 1493 1792 2150 2580  480 540))
  (dpi $TeX_DPI))

;; -----------------------------------------------------------------
;;   GF Font Class Default
;; -----------------------------------------------------------------
(define-default gf
  (font-directories  "TEXMF"))

;; -----------------------------------------------------------------
;;   PK Font Class Default
;; -----------------------------------------------------------------
(define-default pk
  (font-directories  "TEXMF"))

;; -----------------------------------------------------------------
;;   VF Font Class Default
;; -----------------------------------------------------------------
(define-default vf
  (font-directories  "TEXMF")
  (font-mapping
   ((type1 "%f.pfb" point-size-from-tfm)  *) )
  (open-style "try")     ;; "none", "try", or "require"
  (glyph-style "fill"))  ;; "fill", or "empty"

;; -----------------------------------------------------------------
;;   TFM Font Class Default
;; -----------------------------------------------------------------
(define-default tfm
  (glyph-style  "fill"))

;; -----------------------------------------------------------------
;;   ASCII-JTeX Kanji fonts
;; -----------------------------------------------------------------
(define-default  ascii-jtex-kanji
  (tfm-directories  "TEXMF")
  (implicit-font-mapping-suffix ".jtex"))

;; -----------------------------------------------------------------
;; Type1 Font Class Default
;; -----------------------------------------------------------------
(define-default type1
  (font-directories  "TEXMF")
  (afm-directories   "TEXMF")
  (log-level "none")
  (dpi $TeX_DPI))

;; -----------------------------------------------------------------
;; TrueType Font Class Default
;; -----------------------------------------------------------------
(define-default truetype
  (font-directories  "TEXMF")
  (platform-id "microsoft")
  (dpi $TeX_DPI))
  
;; -----------------------------------------------------------------
;;   PCF Font Class Default
;; -----------------------------------------------------------------
(define-default  pcf
  (font-directories  "/usr/X11R6/lib/X11/fonts//"
                     "/usr/local/X11R6/lib/X11/fonts//"
                     "/usr/openwin/lib/X11/fonts//"
                     "/usr/X386/lib/X11/fonts//"
                     "/usr/XFree86/lib/X11/fonts//"
                     "/usr/X11/lib/X11/fonts//"
                     "/usr/local/lib/X11/fonts//"
                     "/usr/X11R5/lib/X11/fonts//"
                     "/usr/local/X11R5/lib/X11/fonts//"
                     "/usr/local/share/fonts/X11//")
  (compression-extensions ".gz" ".Z")
  (dpi $TeX_DPI))

;; -----------------------------------------------------------------
;;  Japanese Kanji fonts using standard X11 PCF fonts
(define-font jtex-min    (font-class pcf) (font-file "jiskan24.pcf"))
(define-font jtex-goth   (font-class pcf) (font-file "jiskan24.pcf"))
(define-font jtex-tmin   (font-class pcf) (font-file "jiskan24.pcf"))
(define-font jtex-tgoth  (font-class pcf) (font-file "jiskan24.pcf"))

(define-macro min-common
  (font-class ascii-jtex-kanji) (kanji-font jtex-min)
  (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj"))
(define-macro goth-common
  (font-class ascii-jtex-kanji) (kanji-font jtex-goth)
  (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj"))
(define-macro tmin-common
  (font-class ascii-jtex-kanji) (kanji-font jtex-tmin)
  (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24v.adj"))
(define-macro tgoth-common
  (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth)
  (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24v.adj"))

(define-font min5.jtex     (kanji-font-point-size  5)  min-common)
(define-font min6.jtex     (kanji-font-point-size  6)  min-common)
(define-font min7.jtex     (kanji-font-point-size  7)  min-common)
(define-font min8.jtex     (kanji-font-point-size  8)  min-common)
(define-font min9.jtex     (kanji-font-point-size  9)  min-common)
(define-font min10.jtex    (kanji-font-point-size 10)  min-common)
(define-font goth5.jtex    (kanji-font-point-size  5)  goth-common)
(define-font goth6.jtex    (kanji-font-point-size  6)  goth-common)
(define-font goth7.jtex    (kanji-font-point-size  7)  goth-common)
(define-font goth8.jtex    (kanji-font-point-size  8)  goth-common)
(define-font goth9.jtex    (kanji-font-point-size  9)  goth-common)
(define-font goth10.jtex   (kanji-font-point-size 10)  goth-common)
(define-font tmin5.jtex    (kanji-font-point-size  5)  tmin-common)
(define-font tmin6.jtex    (kanji-font-point-size  6)  tmin-common)
(define-font tmin7.jtex    (kanji-font-point-size  7)  tmin-common)
(define-font tmin8.jtex    (kanji-font-point-size  8)  tmin-common)
(define-font tmin9.jtex    (kanji-font-point-size  9)  tmin-common)
(define-font tmin10.jtex   (kanji-font-point-size 10)  tmin-common)
(define-font tgoth5.jtex   (kanji-font-point-size  5)  tgoth-common)
(define-font tgoth6.jtex   (kanji-font-point-size  6)  tgoth-common)
(define-font tgoth7.jtex   (kanji-font-point-size  7)  tgoth-common)
(define-font tgoth8.jtex   (kanji-font-point-size  8)  tgoth-common)
(define-font tgoth9.jtex   (kanji-font-point-size  9)  tgoth-common)
(define-font tgoth10.jtex  (kanji-font-point-size 10)  tgoth-common)
;; -----------------------------------------------------------------
;; EOF

Example vflibcap 3

This is an example for TeX DVI drivers. This vflibcap desgnates VFlib to use PK files. For missing PK files, black "boxes" by TFM fonts are used as substitutes of glyphs of PK files

;; -----------------------------------------------------------------
;;   VFlib Default
;; -----------------------------------------------------------------
(define-default VFlib
  (extension-hints  ("pk" TeX) ("gf" TeX))
  (implicit-font-classes)
  (uncompression-programs  (".Z" "zcat") (".gz" "gzip -cd"))
  (variable-values  (TeX_USE_KPATHSEA      "Yes")
                    (TeX_DPI               "300")  ;; or "600"
                    (TeX_KPATHSEA_MODE     "cx")   ;; or "ljfour"
                    (TeX_KPATHSEA_PROGRAM  "/usr/local/bin/xldvi"))
  (use-kpathsea           $TeX_USE_KPATHSEA)
  (kpathsea-mode          $TeX_KPATHSEA_MODE)
  (kpathsea-program-name  $TeX_KPATHSEA_PROGRAM))

;; -----------------------------------------------------------------
;;   TeX-related Font Class Default and TeX Font Mapper
;; -----------------------------------------------------------------
(define-default  TeX
  (tfm-directories  "TEXMF"
                    "/usr/local/lib/jtex/fonts"
                    "/usr/local/lib/tex/fonts")
  (tfm-filename-extensions  ".tfm")
  (font-mapping
   ((pk "%f.%dpk") *)
   ((tfm "%f.%dtfm") *))
  (resolution-accuracy 0.02)
  (resolution-corrections
   (240  ;; sparcptr
    240  263  288  312  346  415  498  597)
   (300  ;; cx
    300  329  360  432  518  622  746  896 1075 1290  240 270)
   (400  ;; sparcptr
    400  438  480  576  691  829  995 1194 1433 1720  320 360)
   (600  ;; ljfour
    600  657  720  864 1037 1244 1493 1792 2150 2580  480 540))
  (dpi $TeX_DPI))

;; -----------------------------------------------------------------
;;   PK Font Class Default
;; -----------------------------------------------------------------
(define-default pk
  (font-directories "TEXMF"))

;; -----------------------------------------------------------------
;;   TFM Font Class Default
;; -----------------------------------------------------------------
(define-default tfm
  (glyph-style  "fill"))

;; -----------------------------------------------------------------
;EOF

Debugging a vflibcap

There is no utility programs that checks syntax of a vflibcap file. But VFlib checks syntax of vflibcap file when a font driver is initialized or a font is opened.

VFlib prints a message to inform a user if syntax is illegal, undefined capability is used (this may be a typographical error), essential capability is missing, an undefined macro is used, or forms of capability values are illegal.

The following Unix environment variables are used to print debugging messages.

VFLIB_DEBUG_FONT_OPEN
-- If this environment variable is defined, the processes of font opens are printed.
VFLIB_DEBUG_FONT_SEARCH
-- If this variable is defined, the processes of font opens are printed
VFLIB_DEBUG_VFLIBCAP
-- If this variable is defined, the process of reading of vflibcap file is printed.
VFLIB_DEBUG_PARAMETERS
-- If this variable is defined, VFlib prints how parameters (variables) in vflibcap file are substituted.
VFLIB_DEBUG_CCV
-- If this variable is defined, the process of reading CCV files is printed.
VFLIB_DEBUG_CCV_MAPPING
-- If this variable is defined, encoding conversions by CCV are printed.

Code conversion system

Code conversion system (CCV) is used to convert from a character set and an encoding to another. For example, a font of Unicode character set and Unicode encoding can be accessed as ISO 8859-2 character set of ISO encoding by encoding conversion. TrueType font class makes use of this feature to hide invisible internal font encoding scheme and provides desired external view to users.

Conversion rule is given by one of the following two methods

  • Internal functions in VFlib (written in C) These functions are hardcoded and new conversions rules cannot be added without modifying source code.
  • External files, called CCV files. A list of CCV files to be used is specified in code-conversion-files capability of VFlib default.

How CCV works

Each conversion rule has the following information.

  • EXTERNAL charset name
  • EXTERNAL encoding name
  • INTERNAL charset name
  • INTERNAL encoding name
  • other info such as format and size of conversion table...

On invocation of VFlib, these information is read from each CCV files. (CCV files are not fully loaded at initialization of VFlib; VFlib just checks relation of conversion. Conversion tables, which can be large, are loaded on demand.) In addition, when VFlib is initialized, internal CCV functions are installed and these information is given for each conversion function.

"EXTERNAL" means external view (i.e., user side encoding) and "INTERNAL" means internal view (i.e., font encoding). Users can define arbitrary charset and encoding names, except that some font driver may predefined names for internal use. (TrueType font driver uses some predefined names, such as "unicode".)

CCV system has a conversion table searching mechanism. Table is searched by source charset/encoding names and destination charset/encoding names. If there is a CCV file listed in code_conversion_files capability of VFlib defaults entry in vflibcap that matches charset and encoding name, the CCV file is dynamically loaded and used for code conversion.

For example, a CCV file iso8859-1_unicode.ccv has the following charset/encoding names:

  • EXTERNAL charset name: ISO8859-1
  • EXTERNAL charset encoding: ISO
  • INTERNAL charset name: UNICODE
  • INTERNAL charset encoding: UNICODE

By this CCV file, a unicode font can be viewed as a ISO encoding of ISO 8859-1 charset. (It is very important to note that names are just symbols and not have any meaning; in the above example, conversion to ISO encoding is implemented by conversion table body in CCV file.)

In the current implementation, BDF, PCF, HBF, and TrueType font drivers use CCV system. In the following, how TrueType font driver uses CCV is described.

Each TrueType font has information about charset name and encoding name of the font. When a font entry is defined in vflibcap file and encoding and character-set capability is defined, say, E and C respectively. According to internal charset and encoding information of TrueType font, the driver searches a CCV table, when the VFlib font is opened, that matches the following conversion relation.

  • EXTERNAL charset name: E
  • EXTERNAL charset encoding: C
  • INTERNAL charset name: possibly, UNICODE (from font file info)
  • INTERNAL charset encoding: possibly, UNICODE (from font file info)

If not found, conversion is impossible. If found, a CCV file found is used. After a font is opened, CCV table is used for converting code points for VFlib operation such as VF_GetBitmap1().

The internal (hardcoded) CCV functions

VFlib has several hardcoded CCV functions. Followings CCV functions are implemented.

  • from ISO-2022 (ISO2022) to Shift JIS (SJIS)
  • from Shift JIS (SJIS) to ISO 2022 (ISO2022)
  • from EUC (EUC) to ISO 2022 (ISO2022)
  • from Row-Cell (Row-Cell) to ISO 2022 (ISO2022)
  • from ISO-2022 (ISO2022) to Row-Cell (Row-Cell)
  • from ISO-2022 (ISO2022) to WanSung (WanSung)
  • from Row-Cell (Row-Cell) to WanSung (WanSung)
  • from ISO-2022 (ISO2022) to Sequential Numbering (Sequential2-0 and Sequential2-1) By these encoding schemes, characters are numbered sequentially starting from 0 (Sequential2-0) or 1 (Sequential2-1). That is, Sequential2-0 encoding is an encoding such that code of the first character is 0, code of the second is 1, ..., and code of the i-th character is (i-1). Sequential2-1 encoding is an encoding such that code of the first character is 1, code of the second is 2, ..., and code of the i-th is (i). External code point must be encoded two-byte, i.e., 0x2121...7e7e. These values are converted to 0...8835 or 1...8836.

Encoding name JIS is defined as an alias of ISO2022. Encoding name Ku-Ten is defined as an alias of Row-Cell. Note that these aliases are defined only for hardcorded CCV functions.

All of these are implemented simple arithmetic and large conversion tables are not necessary in memory.

The syntax of CCV files

The syntax of CCV files is lisp-like notation, similar to vflibcap files. The CCV file defines its own directive set, explained below. A code conversion table is divided in several sub-tables to reduce the file size (and memory size when the file is loaded into memory). The sub-tables are called `blocks'.

(charset-external-name from-cs-name)
(charset-external-encoding from-cs-enc)
(charset-internal-name to-cs-name)
(charset-internal-encoding to-cs-enc)
--- These four directives describes character set and encoding information of conversion.
(table-type type)
type must be one of the following:
  • array
  • random-arrays
(c1-min c1min)
(c1-max c1max)
(c2-min c2min)
(c2-max c2max)
(block-size size)
(nblocks nblocks)
(block block code0 code1 ...)

Let c be a code point of a character to be converted by this CCV file.

It is converted as follows. Let c1 be c/size and c2 be c modulo size. The block number b that should be referred to is c1-c1min. The position i in the block b is c2-c2min. Thus, the value of i-th entry of a block numbered b is converted code point.

c1max, c2max and nblocks are used internally to determine the necessary memory area to load the table.

Theoretically, array is enough for the value for table-type directive. But in case that there are many blocks that do not have conversion entries. This is happen in the case of CNS11643 character set (a Hanji character set in Taiwan). To reduce the table size, some of blocks can be omitted by giving random-array for table-type directive.

In case of array, lookup for code conversion is implemented by indexing an entire array, which is very fast. In case of random-array, lookup for code conversion takes time to find a corresponding sub-table (block), since the table is not linear.

Example of a CCV file 1

The following example is a CCV file that virtually provides a ISO 8859-1 character set font using a Unicode font. That is, a Unicode font can be used as if it were a ISO 8859-1 font by the CCV file. This file is distributed with VFlib and installed by the name iso8859-1_unicode.ccv.

This file is a table indexed by code points of ISO 8859-1; contents of table entries are Unicode code points.

; Conversion table: ISO8859-1 ==> UNICODE
(charset-external-name ISO8859-1)
(charset-external-encoding ISO)
(charset-internal-name UNICODE)
(charset-internal-encoding UNICODE)
(table-type array)
; Code point C is converted to C' by the following formula:
;   C' = Table[(c1 - c1min)*M + (c2 - c2min)],
;   where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1.
;   B is a block size given by the 'block-size:' parameter.
(c1-min 0x0)
(c1-max 0x0)
(c2-min 0x20)
(c2-max 0xff)
(block-size 256)
(nblocks 1)
; 0x0020 ... 0x00ff
(block 0
    0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 
    0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 
    0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 
    0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 
    0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 
    0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 
    0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 
    0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 
    0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 
    0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 
    0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 
    0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    0x00a0 0x00a1 0x00a2 0x00a3 0x00a4 0x00a5 0x00a6 0x00a7 
    0x00a8 0x00a9 0x00aa 0x00ab 0x00ac 0x00ad 0x00ae 0x00af 
    0x00b0 0x00b1 0x00b2 0x00b3 0x00b4 0x00b5 0x00b6 0x00b7 
    0x00b8 0x00b9 0x00ba 0x00bb 0x00bc 0x00bd 0x00be 0x00bf 
    0x00c0 0x00c1 0x00c2 0x00c3 0x00c4 0x00c5 0x00c6 0x00c7 
    0x00c8 0x00c9 0x00ca 0x00cb 0x00cc 0x00cd 0x00ce 0x00cf 
    0x00d0 0x00d1 0x00d2 0x00d3 0x00d4 0x00d5 0x00d6 0x00d7 
    0x00d8 0x00d9 0x00da 0x00db 0x00dc 0x00dd 0x00de 0x00df 
    0x00e0 0x00e1 0x00e2 0x00e3 0x00e4 0x00e5 0x00e6 0x00e7 
    0x00e8 0x00e9 0x00ea 0x00eb 0x00ec 0x00ed 0x00ee 0x00ef 
    0x00f0 0x00f1 0x00f2 0x00f3 0x00f4 0x00f5 0x00f6 0x00f7 
    0x00f8 0x00f9 0x00fa 0x00fb 0x00fc 0x00fd 0x00fe 0x00ff )

Example of a CCV file 2

The following example is a CCV file that virtually provides a CNS 11643 Plane 1 character set font using a Unicode font. This file is distributed with VFlib and installed by the name cns11643-1_unicode.ccv.

This file is an example of CCV files that have random-arrays for table-type directive.

; Conversion table: CNS11643-1 ==> UNICODE
(charset-external-name CNS11643-1)
(charset-external-encoding ISO2022)
(charset-internal-name UNICODE)
(charset-internal-encoding UNICODE)
(table-type random-arrays)
; Code point C is converted to C' by the following formula:
;   C' = Table[(c1 - c1min)*M + (c2 - c2min)],
;   where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1.
;   B is a block size given by the 'block-size:' parameter.
(c1-min 0x121)
(c1-max 0xe67)
(c2-min 0x21)
(c2-max 0x7e)
(block-size 256)
(nblocks 218)
; 0x12121 ... 0x1217e
(block 0
    0x3000 0xff0c 0x3001 0x3002 0xff0e 0x30fb 0xff1b 0xff1a 
    0xff1f 0xff01 0xfe30 0x2026 0x2025 0xfe50 0xfe51 0xfe52 
    0x00b7 0xfe54 0xfe55 0xfe56 0xfe57 0xfe31 0x2014 0xfe32 
    0x2013 -1     -1     -1     -1     0xff08 0xff09 0xfe35 
    0xfe36 0xff5b 0xff5d 0xfe37 0xfe38 0x3014 0x3015 0xfe39 
    0xfe3a 0x3010 0x3011 0xfe3b 0xfe3c 0x300a 0x300b 0xfe3d 
    0xfe3e 0x3008 0x3009 0xfe3f 0xfe40 0x300c 0x300d 0xfe41 
    0xfe42 0x300e 0x300f 0xfe43 0xfe44 0xfe59 0xfe5a 0xfe5b 
    0xfe5c 0xfe5d 0xfe5e 0x2018 0x2019 0x201c 0x201d 0x301d 
    0x301e 0x2032 0x2035 0xff03 0xff06 0xff0a 0x203b 0x00a7 
    0x3003 0x25cb 0x25cf 0x25b3 0x25b2 0x25ce 0x2606 0x2605 
    0x25c7 0x25c6 0x25a1 0x25a0 0x25bd 0x25bc )
; 0x12221 ... 0x1227e
(block 1
    0x32a3 0x2105 0x203e -1     0xff3f -1     0xfe49 0xfe4a 
    0xfe4d 0xfe4e 0xfe4b 0xfe4c 0xfe5f 0xfe60 0xfe61 0xff0b 
    0xff0d 0x00d7 0x00f7 0x00b1 0x221a 0xff1c 0xff1e 0xff1d 
    0x2266 0x2267 0x2260 0x221e 0x2252 0x2261 0xfe62 0xfe63 
    0xfe64 0xfe66 0xfe65 0x223c 0x2229 0x222a 0x22a5 0x2220 
    0x221f 0x22bf 0x33d2 0x33d1 0x222b 0x222e 0x2235 0x2234 
    0x2640 0x2642 0x2641 0x2609 0x2191 0x2193 0x2192 0x2190 
    0x2196 0x2197 0x2199 0x2198 0x2016 0xff5c 0xff0f 0xff3c 
    0x2215 0xfe68 0xff04 0xffe5 0x3012 0xffe0 0xffe1 0xff05 
    0xff20 0x2103 0x2109 0xfe69 0xfe6a 0xfe6b 0x33d5 0x339c 
    0x339d 0x339e 0x33ce 0x33a1 0x338e 0x338f 0x33c4 0x00b0 
    0x5159 0x515b 0x515e 0x515d 0x5161 0x5163 )
; 0x12321 ... 0x1237e
(block 2
    0x55e7 0x74e9 0x7cce 0x2581 0x2582 0x2583 0x2584 0x2585 
    0x2586 0x2587 0x2588 0x258f 0x258e 0x258d 0x258c 0x258b 
    0x258a 0x2589 0x253c 0x2534 0x252c 0x2524 0x251c 0x2594 
    0x2500 0x2502 0x2595 0x250c 0x2510 0x2514 0x2518 0x256d 
    0x256e 0x2570 0x256f 0x2550 0x255e 0x256a 0x2561 0x25e2 
    0x25e3 0x25e5 0x25e4 0x2571 0x2572 0x2573 -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     )

... it's very long, snip, snip, snip ...

; 0xe6621 ... 0xe667e
(block 3397
    0x7bd0 0x7c2f 0x7c32 0x7c42 0x7c4e 0x7c68 0x7ca9 0x7ced 
    0x7dd0 0x7e07 0x7dd3 0x7e64 0x7f40 -1     0x8041 0x8063 
    0x80bb 0x6711 0x6725 0x8248 0x8310 0x8362 0x8312 0x8421 
    0x841e 0x84e2 0x84de 0x84e1 0x8573 0x85d4 0x85f5 0x8637 
    0x8645 0x8672 0x874a 0x87a9 0x87a5 0x87f5 0x8834 0x8850 
    0x8887 0x8954 0x8984 0x8b03 0x8c52 0x8cd8 0x8d0c 0x8d18 
    0x8db0 0x8ebc 0x8ed5 0x8faa 0x909c -1     0x915c 0x922b 
    0x9221 0x9273 0x92f4 0x92f5 0x933f 0x9342 0x9386 0x93be 
    0x93bc 0x93bd 0x93f1 0x93f2 0x93ef 0x9422 0x9423 0x9424 
    0x9467 0x9466 0x9597 0x95ce 0x95e7 0x973b 0x974d 0x98e4 
    0x9942 0x9b1d 0x9b98 -1     0x9d49 0x6449 0x5e71 0x5e85 
    0x61d3 0x990e 0x8002 0x781e -1     -1     )
; 0xe6721 ... 0xe677e
(block 3398
    0x5528 0x5572 0x55ba 0x55f0 0x55ee 0x56b8 0x56b9 0x56c4 
    0x8053 0x92b0 -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     -1     -1     
    -1     -1     -1     -1     -1     -1     )

Utility programs

vflmkcaptex

@command{vflmkcaptex} is a utility program to generate vflibcap file for TeX DVI driver software automatically. With simple command line arugments, a vflibcap that uses PK, GF, Virtual Font, Type 1 fonts with complex TeX font mapping rules.

Usage: vflmkcaptex [ OPTIONS... ] [ CLASS... ]

Usage: vflmkcaptex [ SHORTCUT ] [ OPTIONS... ]

@option{CLASS...} is a list of font class names to support by vflibcap file to be generated. @option{OPTIONS...} is option list to customize default settings. @option{SHORTCUT} is a shortcut name to typical options and class name list.

Shortcut:

minimum
This is the same as command line option pk. Use PK fonts only.
simple
This is the same as command line option -g pk tfm. Use PK fonts. If PK font file is missing, it is generated on-the-fly. If font cannot be created, black square is displayed instead of character glyph (as long as corresponding TFM file exists).
standard
This is the same as command line option -t1 -g. Use default class list type1 vf pk tfm. Missing PK font is created on-the-fly.
simple-ja
This is the same as command line option -g pk tfm -jtex -jisx0212 -jpcf. (Japanese support for simple shortcut.)
standard-ja
This is the same as command line option -t1 -g -jtex -jisx0212 -jpcf. (Japanese support for standard shortcut.)

Font class list:

gf
Enables to use GF font files. For searching font files, kpathsea is used. That is, font files are searched under TeX `texmf' directory (typically, `/usr/local/share/texmf').
pk
Enables to use PK font files. For searching font files, kpathsea is used.
vf
Enables to use Virtual Font files. For searching font files, kpathsea is used.
tfm
Enables to use TFM files. This option enables to display black square instead of glyph. The size of square obeys font metric of each character. This is useful when glyph file (e.g., PK, Type1) is missing.
type1
Enables to use Type 1 fonts. (Currently, it supports Roman fonts. CJK fonts are not supported.) For searching font files, kpathsea is used. By this option, font definitions for PostScript fonts used in TeX DVI files are generated by reading `psfonts.map' of @command{dvips}. Each PostScript font listed in `psfonts.map' is checked if it exists. (For PostScript fonts, this program automatically searchs Adobe Acrobat 3 and 4 font directories.) If a PostScript font in question is not found, @command{Ghostscript} font definition file `Fontmap' is checked to substitute the font by a font in @command{Ghostscript} font directory. This feature is very useful for displaying and printing TeX DVI files with PostScript fonts. So, I recommned obtain Adobe Acrobat 3 and 4 for Type 1 PostScript fonts. (Linux version are freely available.)

When a font is requested to open, the font is tried to open by font classes by the order in the command line.

So, by a `vflibcap' generated by the following example, font in PK format is rearched first. If a font in PK format is not found, font in Type 1 format is searched next.

vflmkcaptex pk type1

Therefore, the order of font classes decides the priority of font file formats to search.

Options:

--help
Print a list of command line options and exit.
--version
Print version number of this program and exit.
-p PROG
Application program name. This is used by kpathsea for font file search. Default is xgdvi, which is a DVI previewer in the TeX-Guy package.
-n MODE
Device mode name for font file search, used by kpathsea. Default is cx
-r DPI
Device resolution in DPI. Default is 300. If this option is not given, @command{vflmkcaptex} reads `mode.mf', which is a device mode definition file for METAFONT, and obtains revice resolution automatically.
-g
Configure `vflibcap' to generate non-existing PK files on-the-fly.
-pk
When @option{CLASS...} is not given, default font class set is assumed by default. For such case, generate a `vflibcap' to search PK font file before searching Type 1 font by this option.
-t1
When @option{CLASS...} is not given, generate a `vflibcap' to search Type 1 font file before searching PK font file by this option.

Options for Japanese TeX support:

-jtex
Generate font definitions for JIS X0208 character set used by Japanese TeX. By default, a `vflibcap' to be generated uses Japanese Kanji character in PCF format (in X11 font directory). See also @option{-jpcf}, @option{-jekanji} and @option{-jttf} options.
-jisx0212
Generate font definitions for JIS X0208 character set used by Japanese TeX. Note that generated font names are not standard. It is used for private use of the author.
-jpcf
Switch to use PCF fonts for Japanese Kanji characters. (This is the default.)
-jekanji
Switch to use eKanji fonts for Japanese Kanji characters. See section eKanji font class for detail about eKanji fonts.
-jttf
Switch to use TrueType fonts for Japanese Kanji characters.
-jpfd DIR
Add a PCF font directory. @command{vflmkcaptex} checks typical X11 PCF font directories and existing directories are added to PCF font directory list. This option should be used when you want to add optional (and not automatically detected) PCF font directory. This option can be used multiple times.
-jefd DIR
Add a eKanji font directory. This option can be used multiple times.
-jtfd DIR
Add a TrueType font directory. This option can be used multiple times.
-jtdb FILE
By this option, an external definition database file FILE is read for generating definitions of non-standard TeX Japanese fonts using Japanese TrueType font files. Each line in FILE is a pair of (1) font name used in TeX and (2) TrueType font file name. Following is an example:
dfailpaa dcail5.ttc
dfainpaa dcai5.ttc
dfaispaa dcais5.ttc
dfbrrsaa dfbrr7.ttc
dfbrrzaa dfbrrc.ttc
dfbrspaa dfbrs5.ttc
dfbrsvaa dfbrs9.ttc
dfbrszaa dfbrsc.ttc
See files in a directory `ascii-jtex/' for detail.

@command{vflmkcaptex} is a Unix Shell script. It uses following programs to generate a `vflibcap' file. Descriptions the followng programs are ommited since most of users never use them directly. For details, invoke each program with @option{--help} option to see how to use it.

@command{vflmkvfl}
A generator for VFlib defaults. (See section VFlib defaults.)
@command{vflmktex}
A generator for TeX mapping class. (See section TeX default and TeX font mapping font class.)
@command{vflmkpk}
A generator for PK class. (See section PK font class.)
@command{vflmkgf}
A generator for GF class. (See section GF font class.)
@command{vflmkvf}
A generator for Virtual Font class. (See section VF font class.)
@command{vflmktfm}
A generator for TFM class. (See section TFM font class.)
@command{vflmkt1}
A generator for Type 1 class. (See section Type1 font class.)
@command{vflmkekan}
A generator for eKanji class. (See section eKanji font class.)
@command{vflmkajt}
A generator for ASCII Japanese TeX class. (See section ASCII Japanese TeX Kanji font class.)

vflpp

@command{vflpp} prettyprints (i.e., grinds) a vflibcap file. It eliminate all comment strings and unnecessary space and newline characters.

Usage: vflpp [ vflibcap-file ]

A program @command{vflpp} prettyprints a file vflibcap to standard output. If no argument is given, @command{vflpp} reads from standard input.

vflmkfdb

Usage: vflmkfdb font-directory [ ... ]

A program @command{vflmkfdb} makes a font file hint database (FDB for short) in a font directories given in the command line argument.

It is used in a font file search module in VFlib. In case there are many font files in many directories, search a font file consumes much time to traverse directory hierarchy. FDB file contains pairs of file name and path name to the file in a single file. By reading FDB file, a font file can be found without traversing directories.

For each font-directory, a FDB file named `VFlib.fdb' is created in the directory.

vfldrvs

Usage: vfldrvs

A program @command{vfldrvs} prints a list of pre-installed font drivers in VFlib.

Sample programs

vflserver

@command{vflserver} is a font server that provides the functionality of VFlib via network.

@command{vflserver} can be invokes from command line or via network.

Using vflserver from command line

Usage: vflserver [-v vflibcap] [-s shrink] [cmd-file ...]

@command{vflserver} receives a command, executes it, and return a result. This is repeated until connection is closed or quit command is executed. @command{vflserver} reads a sequence of command from standard input if cmd-file option is not given.

Options:

-v vflibcap
A file name of vflibcap to be used. If this option is not given, default vflibcap file is used. (Possibly, default vflibcap is `/usr/local/share/VFlib/3.6.14/vflibcap'.)
-s shrink
@command{vflserver} has a feature to print obtained bitmaps in ASCII-art style for debugging purpose. When this feature is enabled, bitmaps are shrinked by this factor. This is effective when obtained bitmaps are huge.
cmd-file ...
A sequence of commands can be read from files. Commands in files cmd-file ... are executed in given order. After executing all files, @command{vflserver} reads a sequence of commands from standard input. Thus, quit command may be explicitly given in cmd-file. This option is effective in the process of font driver development to do the same commands many times.

Using vflserver via network

Before using @command{vflserver} via network, it must be installed to be invoked by @command{inetd}. You must be a root to do the following procedures.

First, edit `/etc/services':

  • Network service name: vflserver
  • Well known port: 4681
  • Protocol: tcp

Add the following line to `/etc/inetd.conf'.

vflserver stream tcp nowait nobody /usr/local/bin/vflserver vflserver 

If you need to explicitly specify a vflibcap file to be used, you must give @option{-v} option as follows:

vflserver stream tcp nowait nobady /usr/local/bin/vflserver vflserver -v /foo/vflibcap

To force inetd to re-read `inetd.conf', send a HUP signal to inetd.

We finished installing vflserver to use via network. Now, use @command{telnet} to check if @command{vflserver} is correctly installed to network service. The following an example interaction.

% telnet localhost vflserver
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
; This is a font server VFLSERVER Version 2.0 Fri Mar 13 11:58:42 JST 1998
  ...

; Type `HELP' for description of the protocol.

(100 "vflserver ready.")

open1 timR14.pcf
(100 0 "timR14.pcf")
debug bitmap on
(100 "Ascii-art bitmap on.")
bitmap1 0 0x67
(100 8 13 0 9 9 0
 "3eccc4c4cc78407c7f83c1e27c"
"
 89012345678901
 +------------+
9|            |9
0| ..@@@@@.   |0
1| @@..@@..   |1
2| @@...@..   |2
3| @@...@..   |3
4| @@..@@..   |4
5| .@@@@...   |5
6| .@......   |6
7| .@@@@@..   |7
8| .@@@@@@@   |8
9| +.....@@ o |9
0| @@.....@   |0
1| @@@...@.   |1
2| .@@@@@..   |2
3|            |3
 +------------+
 89012345678901
")
quit
(100 "Happy Hacking")
Connection closed by foreign host.

The protocol of vflserver

Introduction

The VFLSERVER Protocol is a communication protocol between a server which offers font service and a client which uses fonts.

The character set assumed by this protocol is ASCII character set. A line is a sequence of character terminated by a newline character and communication between a server and a client is line-oriented.

Reply Format of a Server

Each request to a server by a client takes a form of a line. The following are examples of client's requests.

OPEN1 timR24.pcf
DEBUG BITMAP ON
BITMAP1 1 33

A reply by a server to a client is an S-expression, (lisp-like notation). The following are examples of server's response.

(100 0 "timR14.pcf")
(100 "Ascii-art bitmap on.")
(100 8 13 0 9 9 0 "3eccc4c4cc78407c7f83c1e27c")

The first number of the response of each reply by a server are formed by decimal digits and these three digits indicates the status of an execution of client's request. Thus, this three digits is a status code.

The first digit is one of `1', `2', ...., `5'. If this digit is `1', it there is no error at all. If it is `5', there are some errors to achieve a request. According to the degree of fatalness, the digit is decided; It is `1' if no error is detected and is `5' if some fatal errors are detected and it is impossible to continue to execute a server. If it is not `5', a client can receive some result.

The Protocol

The following defines commands and their arguments by a client, and corresponding responses by a server. Command name is case-insensitive, but arguments are case-sensitive. In the description of command format, arguments enclosed by [ ] can be omitted, while arguments that are not enclosed by [ ] are essential arguments and cannot be omitted.

OPEN1 font_name [ point_size [ mag_x mag_y [ dpi_x dpi_y ]]]
Open a font in mode 1 (high resolution device oriented mode). This corresponds to VF_OpenFont1() function. If it succeeds opening the font, a font identifier is returned. After a font is opened, any request for a font is specified by font identifier (not font name). Response:
When the command is successful: ( status fontid message )
fontid is a font id represented by non-negative integer in decimal.
When the command failed: ( status message )
status indicates that an error occurred.
OPEN2 font_name [ pixel_size [ mag_x mag_y ]]
Open a font in mode 2 (low resolution device oriented mode). This corresponds to VF_OpenFont2() function. If it succeeds opening the font, a font identifier is returned. After a font is opened, any request for a font is specified by font identifier (not font name). Response: Response is the same as one for @command{OPEN1} command.
CLOSE font_id
Closed a font. Response: ( status message )
BITMAP1 font_id code_point [ mag_x mag_y ]
Obtain a bitmap. font_id is a font id. This command corresponds to VF_GetBitmap1() function of VFlib. Response:
When the command is successful: ( status width height offx offy mvx mvy bitmap )
width and height is a size of bitmap in pixels. bitmap is encoded as a sequence of hexadecimal number. Eight pixels are encoded to two hexadecimal number and the weight of the i-th (0 <= i < 8) pixel from the leftmost pixel is 0x80 >> i. bitmap is a sequence of encoded of rasters; the first raster begins from the upper left corner to upper right corner. Then, it is followed by next raster (one pixel down from the first raster). One raster is (width+7)/8 bytes, and bitmap contains an encoded bitmap of ((width+7)/8)*height bytes. Thus, the length of bitmap is 2*((width+7)/8)*height.
When the command failed: ( status message )
status indicates that an error occurred.
BITMAP2 font_id code_point [ pixel_size [ mag_x mag_y ]]
Obtain a bitmap. This command corresponds to VF_GetBitmap2() function. Response is the same as @command{BITMAP1} command.
METRIC1 font_id code_point [ point_size [ mag_x mag_y ]]
Obtain a metric information of a font. This command corresponds to VF_GetMetric1() function. Response:
When the command is successful: ( status width height offx offy mvx mvy )
Each element of the response is the same as return values for @command{BITMAP1} command except for their units are points.
When the command failed: ( status message )
status indicates that an error occurred.
METRIC2 font_id code_point [ pixel_size [ mag_x mag_y ]]
Obtain a metric information of a font. This command corresponds to VF_GetMetric2() function. Response: Same as METRIC1 command except for units are points.
FONTBBX1 font_id [ mag_x mag_y ]
Obtain font bounding information of a given font font_id opened in mode 1. The argument mag_x mag_y are magnification factor to be scaled. This command corresponds to VF_GetFontBoundingBox1() function. Response:
When the command is successful: ( status width height xoff yoff )
width and height are width and height of bounding box, respectively. xoff and yoff are the largest horizontal and vertical displacement of lower left corner of bounding box from reference points. Note that these values does not guarantee the minimality; they only guarantee that all characters can be contained in a box described by them. Units of return values are point.
When the command failed: ( status message )
status indicates that an error occurred.
FONTBBX2 font_id [ mag_x mag_y ]
Arguments and return values are the same except font_id must be in mode 2 and units of return values are pixel.
PROPERTY font_id property_name
Obtain a property named property_name of a font font_id. Response:
When the command is successful: ( status value )
When the command failed: ( status message )
status indicates that an error occurred.
MINIMIZE-BBX [ flag ]
Select a mode whether a bitmap sent from a server should be minimized or not. If flag is ON, bounding boxes of bitmaps sent from a server is minimized not to contain white pixels as possible. If flag is OFF, bitmaps sent from a server is not guaranteed to be minimized bounding boxes. If flag is not given, current mode is returned. Initial mode is OFF. Response: The current mode is returned even if the operation fails or succeeds.
When the command is successful: ( status-code mode )
Mode is one of ON or OFF.
When the command failed: ( status-code mode )
Mode is one of ON or OFF.
QUIT
Finish interaction between a server and a client. This operation always succeeds. Response: ( status message )

vfltest

@command{vfltest} displays glyph of a given font and characters by ASCII-art form on a character terminal. It does not requires X Window System, but the font of the terminal must be a fixed-width font, since bitmaps are printed by ASCII-art form.

Usage: vfltest [ OPTIONS... ] FONT_NAME CHAR_LIST

Options:

-mode1
A font is opened in mode 1 (high resolution device oriented mode).
-mode2
A font is opened in mode 2 (low resolution device oriented mode).
-ol
Bitmaps are obtained by VF_GetOutline() and then VF_OutlineToBitmap(). This option is effective only when a font is opened in mode 1.
-v vflibcap
A file name of vflibcap to be used. If this option is not given, default vflibcap file is used. (Possibly, default vflibcap is `/usr/local/share/VFlib/3.6.14/vflibcap'.)
-p point or -p pixel
Specify point or pixel size of characters. If this option is not given, size of characters are original size of a font.
-d dpi
Give a device resolution in DPI. This option is effective only when a font is opened in mode 1.
-m mag
Specify vertical and horizontal magnification factor. If this option is not given, magnification factor is 1.0.
-mx mag_h
Specify horizontal magnification factor. If this option is not given, horizontal magnification factor is 1.0.
-my mag_v
Specify vertical magnification factor. If this option is not given, vertical magnification factor is 1.0.
--help
Print command line arguments and key operations on a window.

A list of character is a sequence of the following forms.

code
A character is given by character code. Decimal (e.g., `34') and Hexa-decimal (e.g., `0x67') numbers can be used.
from - to
This form specifies characters by a range of character code, from from to to (e.g., `0x20 - 0x7e'). Space characters are necessary before and after minus sign (-).
=charlist
This form specifies characters by a list of 1-byte characters, e.g., `=abcdefg'.

vflx11

@command{vflx11} displays glyph of a given font in a window. It requires X11R5 or X11R6.

Usage: vflx11 [ OPTIONS... ] FONT_NAME

Options:

-mode1
A font is opened in mode 1 (high resolution device oriented mode).
-ol
Bitmaps are obtained by VF_GetOutline() and then VF_OutlineToBitmap(). This is effective when a font is opened in mode 1.
-mode2
A font is opened in mode 2 (low resolution device oriented mode).
-v vflibcap
A file name of vflibcap to be used. If this option is not given, default vflibcap file is used. (Possibly, default vflibcap is `/usr/local/share/VFlib/3.6.14/vflibcap'.)
-p point or -p pixel
Specify point or pixel size of characters. If this option is not given, size of characters are original size of a font.
-m mag
Specify vertical and horizontal magnification factor. If this option is not given, magnification factor is 1.0.
-mx mag_h
Specify horizontal magnification factor. If this option is not given, horizontal magnification factor is 1.0.
-my mag_v
Specify vertical magnification factor. If this option is not given, vertical magnification factor is 1.0.
--help
Print command line arguments and key operations on a window.

Following operations are defined on a @command{vflx11} window.

q
Finish @command{vflx11}
b
Go to previous page.
SPC
Go to next page.
[
Go to previous 4 page.
]
Go to next 4 page.
{
Go to previous 16 page.
}
Go to next 16 page.
+
Enlarge the window.
-
Shrink the window.
<
Go to the first page.
>
Go to the last page.
m
Mark the current page.
g
Goto the marked page.

vfldisol

@command{vfldisol} displays `disassembled lists' of vector data of a given font and code points.

Usage: vfldisol [ OPTIONS... ] FONT_NAME CODE ...

Options:

-v VFLIBCAP
A file name of vflibcap to be used. If this option is not given, default vflibcap file is used. (Possibly, default vflibcap is `/usr/local/share/VFlib/3.6.14/vflibcap'.)
-d DPI
Resolution of device in dpi. If this option is not given, default resolution of a font is used.
-p POINT
Point size of characters. If this option is not given, default point size of a font is used.
-x
Print hexadecimal dump of outline data instead of disassembled list.

ctext2pgm

@command{ctext2pgm} creates an image file in PGM or PBM format from a multilingual text file encoded by compound text format. It also supports various text encodings such as Chinese, Japanese, Korean EUCs and Shift-JIS. PGM and PBM formats are portable formats, image files can be easily converted to another image format such as GIF, TIFF.

It supports various character sets and left-to-right and right-to-left directionalities.

ISO 8859-1,2,3,4,5,7,8,9
--- Latin character sets, including Hebrew which is written from right to left.
Mule Arabic
--- An Arabic script, written from right to left. This character set is used by the multilingual editor Mule.
JIS X 0201, JIS X 0208, JIS X 0212
--- Japanese character sets.
GB 2312
--- A Chinese character set.
CNS 11641-1, CNS 11641-2
--- Chinese character sets.
KSC 5601
--- A Hangle character set.

Running ctext2pgm

Usage: ctext2pgm [ OPTIONS... ] [ file ]

--- @command{ctext2pgm} reads file (if not given, reads standard input) and prints image file to standard output.

Example:

% ctext2pgm -pgm -ctext -16 -times DOC-10.txt  > IMAGE.pgm

(Never forget to redirect the output.)

Options for VFlib:

-v f
--- a vflibcap file to be used by @command{ctext2pgm}. Default value is `vflibcap-ctext2pgm'.

Options for input encoding and script:

-ctext
--- Assume that an encoding of input file. (This is the default input encoding.) Default writing directionality is set to left-to-right. By this encoding, multiple character set can be used in an input text by escape sequences. Mixture of scripts of left-to-right and right-to-left directionalities is also supported.
-iso-8859-1 or -latin-1
--- Assume that input file is encoded by iso-8859-1. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right.
-iso-8859-2 or -latin-2
--- Assume that input file is encoded by iso-8859-2. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right.
-iso-8859-3 or -latin-3
--- Assume that input file is encoded by iso-8859-3. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right.
-iso-8859-4 or -latin-4
--- Assume that input file is encoded by iso-8859-4. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right.
-iso-8859-5, -cyrillic or -russian
--- Assume that input file is encoded by iso-8859-5. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right.
-iso-8859-7 or -greek
--- Assume that input file is encoded by iso-8859-7. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right.
-iso-8859-8 or -hebrew
--- Assume that input file is encoded by iso-8859-7. Escape sequence is not allowed in input file. Default writing directionality is set to right-to-left.
-iso-8859-9 or -latin-5
--- Assume that input file is encoded by iso-8859-9. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right.
-euc-jp or -euc-jp1
--- Assume that input file is encoded by Japanese EUC. Default writing directionality is set to left-to-right. JIS X 0201 Roman character set is used for code set 0, JIS X 0208 is used for code set 1, JIS X 0201 Kana is used for code set 2, and JIS X 0212 is used for code set 3.
-euc-jp2
--- Same as -euc-jp1 except ASCII character set is used for code set 0.
-euc-kr
--- Assume that input file is encoded by Korean EUC. Default writing directionality is set to left-to-right. ASCII character set is used for code set 0 and KSC 5601 is used for code set 1.
-euc-cn or -euc-gb
--- Assume that input file is encoded by Chinese EUC by simplified Hanzi. Default writing directionality is set to left-to-right. ASCII character set is used for code set 0, and GB 2312 is used for code set 1.
-euc-cns
--- Assume that input file is encoded by Chinese EUC by traditional Hanzi. Default writing directionality is set to left-to-right. ASCII character set is used for code set 0, CNS 11643-1 is used for code set 1, and CNS 11643-2 is used for code set 3.
-sjis
--- Assume that input file is encoded by Shift-JIS. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. ASCII character set is used for code set 0, JIS X 0208 is used for code set 1, and

Options for directionality:

-l2r
--- Select left-to-right directionality for typesetting.
-r2l
--- Select right-to-left directionality for typesetting.

Options for font selection:

-fixed, -times, -helv or -cour
--- Select a font family: Fixed, Times, Helvetia, or Courier, respectively. Default font family is Times.
-bold or -italic
--- Select a font face: bold or italic (or oblique), respectively. Default face is normal.
-14, -16, -18 or -24
--- Select a font set of 14-, 16-, 18-, or 24-dot, respectively. Default font size if 16.
-scale n
--- Select a scalable font set and scales the font to n dot.
-m m
--- Specify vertical and horizontal magnification factors. Default value is 1.
-mx m
--- Specify horizontal magnification factor.
-my m
--- Specify vertical magnification factor.
-font-list
--- Print all installed character sets and font names. Then exit the program.

Options for typesetting:

-b s
--- Specify factor of baseline skip. Baseline of a text is moved this value times dot-size of a selected font set. Default value is 1.2.
-center-line
--- Each line is centered. Output image is vertically and horizontally centered.
-flush-left
--- Each line is flushed left. This is default mode if writing directionality is left-to-right. Output image is flushed left.
-left-line
--- Each line is flushed left, but image is not flushed left.
-flush-right
--- Each line is flushed to right. This is the default mode if writing directionality is right-to-left. (Note that options @option{-flush-right} and @option{-r2l} are different --- consider an English text including Arabic words in the same line.) Output image is flushed right.
-right-line
--- Each line is flushed right, but image is not flushed right.

It is important to notice that the difference of @option{-flush-left} and @option{-left-line} options (and @option{-flush-right} and @option{-right-line} options). By @option{-flush-left} option, input text is typeset to flush each line left and typeset result is placed in the left of an output image. By @option{-left-line} option, input text is typeset to flush each line left and does not specify how to put the typeset result in an output image. The difference appears when the horizontal size of output image is explicitly given by @option{-pw} option.

Options for output:

-pgm or -pgm-raw
--- Select binary PGM format for image output.
-pgm-ascii
--- Select ascii PGM format for image output. This is the default output mode.
-pbm or -pbm-ascii
--- Select ascii PBM format for output an image.
-ascii-art or -ascii-art-v
--- An image is printed as an ASCII art. (Vertical mode) Baseline is vertical; thus this mode is similar to the @command{banner} command on Unix.
-ascii-art-h
--- An image is printed as an ASCII art. (Horizontal mode) Baseline is horizontal.
-eps
--- Select EPS format for image output. By default, 16-dot font is printed by 12-point in EPS file. To change the point size, use the -eps-ptsize option described below.
-eps-ptsize pt
--- Select point size of characters for EPS output. If this option is given, point size of each character is scaled to pt point regardless dot size of fonts.
-none
--- An image is not shipped out.
-r
--- Reverse the black and white of output image. (This option does not have effect when EPS is selected for image output format.)
-s n
--- Shrink factor for anti-aliased output. n by n pixels are shrinked together and forms one pixel in an output image. This option has effect when output format is PGM and EPS. Default value is 1.
-pw w
--- Specify width of output image (in pixels). If this option is not given, the width of output image is the smallest width to contain the glyph of all characters.
-ph
--- Specify height of output image (in pixels). If this option is not given, the height of output image is the smallest height to contain the glyph of all characters.
-g
--- Specify horizontal and vertical margins of output image (in pixels). Default margin is zero pixel.
-gx
--- Specify horizontal margin of output image (in pixels). Default margin is zero pixel.
-gy
--- Specify vertical margin of output image (in pixels). Default margin is zero pixel.
-center-image
--- An image of typeset text is horizontaly and vertically centered.
-h-center-image
--- An image of typeset text is horizontaly centered.
-v-center-image
--- An image of typeset text is vertically centered.
-left-image
--- An image of typeset text is flushed left.
-right-image
--- An image of typeset text is flushed right.
-top-image
--- An image of typeset text is flushed top.
-bottom-image
--- An image of typeset text is flushed bottom.

Making input files for ctext2pgm

Any text editor can be used to prepare input files for @command{ctext2pgm}. Input files are plain texts. If you want to create an image containing multiple character sets, save the files by compound text encoding. If you want to make images of Arabic text, use the @command{Mule} editor. (@command{Mule} is an extension of @command{GNU Emacs} for multilingual text processing.) For making images of Arabic script, @command{ctext2pgm} only supports a text created by Mule, ISO-8859-6 is not supported.

Unlike TeX and HTML, newlines of input files are not ignored and a newline character in input text breaks line. Thus, input text is typeset like `verbatim' environment of LaTeX or `<PRE> ... </PRE>' tag of HTML.

Commands in input text

Several commands can be embedded in text files such as font switch. Command sequence starts by a backslash (\) followed by one character which represents command name. If you want to display a backslash character itself, use double backslashes \\.

Following commands are defined:

\f, \t, \h, \c
--- Change of font families. Current font family is changed to fixed, times, Helvetia, courier, respectively.
\d
--- Current font family is changed to the default font family. The default font family can be specified by a command line option.
\N, \B, \I
--- Change of font faces. Current font face is changed to normal, bold, italic, respectively.
\D
--- Current font face is changed to the default font face. The default font face can be specified by a command line option.
\.
--- Same as \d followed by \D.
\(
--- Black and white of glyph of following characters are reversed. This command is recommended only for fixed-width fonts. (For the reason of current implementation, resulting bitmap is ugly for proportional fonts and you cannot read the text in an image.) Nesting of \( has no effect.
\)
--- End of reversing black and white.
\\
--- Print backslash itself.

Trouble shooting

In case you failed to obtain a desired image output, the following command line options for debugging may be useful. (Debugging messages are printed to standard output. The @option{-none} option is useful to suppress printing binary image to your terminal. Otherwise, debugging message and image file are printed together on your terminal!)

-ds
--- Print the state transition of the parser for compound text.
-dr2l
--- Print the state transition of bi-directionality handling.
-df
--- Print font name to be opened.
-dbc
--- Print each character glyph in ascii-art form.
-dbl
--- Print each line image by in ascii-art form.
-dbp
--- Print entire page image in ascii-art form.
-dall
--- Selects all debugging options above.

Difference between VFlib version 3.6 and 2

VFlib version 3.6 and version 2 are quite different and you should forget about VFlib version 2.

VFlib 2 was designed only for Japanese Kanji fonts
VFlib 3.6 can handle fonts for multilingual text printing.
Font metric is introduced in VFlib 3.6
VFlib 2 does not concepts on font metrics since it assumes all characters are the same metrics. Font metrics is introduced in VFlib 3.6 and proportional fonts can be used.
Syntax of vflibcap file
Syntax of vflibcap file is quite different. VFlib 2 adopted termcap-like notation, but now VFlib 3.6 adopts lisp-like notation.
Arguments and return values of function are changed
In VFlib 2, bitmaps of characters are written in a frame buffer which is given by argument. But in VFlib 3.6, a bitmap object is returned.

Acknowledgments

Since I released VFlib version 1, so many people helped me to improve VFlib. I am grateful for all of them. Special gratitude is due to Satoru Tomura, Ken'ichi Handa, Werner Lemberg, and Ichiro Matsuda.

Concept index

Jump to: a - b - c - e - f - g - h - i - j - k - l - m - p - r - s - t - u - v - w - z

a

  • Arabic
  • ASCII Japanese TeX Kanji font class
  • b

  • BDF font class
  • c

  • CCV
  • Chinese EUC
  • CNS 11641
  • code conversion system
  • code-conversion-files
  • compound text
  • Copyright
  • Cyrillic
  • e

  • eKanji font class
  • Emacs
  • EUC
  • explicit fonts
  • f

  • font class
  • font driver
  • FreeType, FreeType
  • g

  • GB 2312
  • GF font class
  • GNU Emacs
  • GNU Library General Public License
  • h

  • HBF font class
  • Hebrew
  • High resolution oriented mode
  • i

  • implicit fonts
  • Installing VFlib
  • ISO 8859
  • j

  • Japanese comic font class
  • Japanese EUC
  • JG font class
  • JIS X 0201
  • JIS X 0208
  • JIS X 0212
  • k

  • KangXi
  • Korean EUC
  • kpathsea
  • KSC 5601
  • l

  • left-to-right directionality
  • LGPL
  • libVFlib.a, libVFlib.a
  • libVFlib.so, libVFlib.so
  • Low resolution oriented mode
  • m

  • Mojikyo font mapping class
  • Morohashi DaiKanwa
  • Mule, Mule
  • p

  • PBM
  • PCF font class
  • PGM
  • PK font class
  • r

  • right-to-left directionality
  • s

  • Shift JIS
  • t

  • T1Lib, T1Lib
  • TeX default and TeX font mapping font class
  • TFM font class
  • TrueType font class
  • Try font class
  • Type1 font class
  • u

  • Unicode
  • v

  • variables
  • VF font class
  • VFlib-3\_6.h
  • VFlib.fdb, VFlib.fdb
  • vflibcap, vflibcap
  • VFLIBCAP_PARAM_var
  • Virtual Font library
  • w

  • web2c
  • z

  • Zeit font class
  • Data type index

    Jump to: s - v

    s

  • struct vf_s_bitmap
  • struct vf_s_metric1
  • struct vf_s_metric2
  • v

  • VF_BITMAP
  • VF_METRIC1
  • VF_METRIC2
  • VF_OUTLINE
  • VF_OUTLINE_ELEM
  • Function index

    Jump to: v

    v

  • VF_ClearError
  • VF_CloseFont
  • VF_CopyBitmap
  • VF_DumpBitmap
  • vf_error
  • VF_FreeBitmap
  • VF_FreeMetric1
  • VF_FreeMetric2
  • VF_GetBitmap1
  • VF_GetBitmap2
  • VF_GetFontBoundingBox1
  • VF_GetFontBoundingBox2
  • VF_GetMetric1
  • VF_GetMetric2
  • VF_GetOutline
  • VF_GetProp
  • VF_ImageOut_ASCIIArt
  • VF_ImageOut_ASCIIArtV
  • VF_ImageOut_EPS
  • VF_ImageOut_PBMAscii
  • VF_ImageOut_PGMAscii
  • VF_ImageOut_PGMRaw
  • VF_Init
  • VF_InstallFontDriver
  • VF_MakeScaledBitmap
  • VF_OpenFont1
  • VF_OpenFont2
  • VF_OutlineToBitmap
  • VF_ReflectedBitmap
  • VF_RotatedBitmap
  • Program index

    Jump to: c - v

    c

  • ctext2pgm
  • v

  • vflbanner
  • vfldisol
  • vfldrvs
  • VFlib3-config
  • vflmkcaptex
  • vflmkfdb
  • vflpp
  • vflserver
  • vfltest
  • vflx11

  • This document was generated on 27 February 2006 using texi2html 1.56k. vflib3-3.6.14.dfsg/doc/VFlib-36.ps0000644000175000017500000276340310400435027015637 0ustar mohuramohura%!PS-Adobe-2.0 %%Creator: dvips(k) 5.94a p1.6 Copyright 2003 ASCII Corp.(www-ptex@ascii.co.jp) %%+ based on dvips(k) 5.94a Copyright 2003 Radical Eye Software (www.radicaleye.com) %%Title: VFlib-36.dvi %%CreationDate: Mon Feb 27 08:30:31 2006 %%Pages: 113 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: CMBX12 CMR10 CMSY10 CMTT10 CMSLTT10 CMTT9 CMB10 CMTI10 %%+ CMSL10 CMTT12 CMMI10 CMSY9 CMR8 CMR9 CMTI9 CMR12 CMBXTI10 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -f VFlib-36.dvi %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2006.02.27:0830 %%BeginProcSet: texc.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3 def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90 rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse} forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{ BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat {BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B /M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M} B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{ 0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: f7b6d320.enc 0 0 % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10 % cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8 % cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10 % cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10 % /TeXf7b6d320Encoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndProcSet %%BeginProcSet: bbad153f.enc 0 0 % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9 % /TeXbbad153fEncoding [ /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast /arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup /arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional /prime /infinity /element /owner /triangle /triangleinv /negationslash /mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur /latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection /unionmulti /logicaland /logicalor /turnstileleft /turnstileright /floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright /angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv /backslash /wreathproduct /radical /coproduct /nabla /integral /unionsq /intersectionsq /subsetsqequal /supersetsqequal /section /dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /.notdef /.notdef /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndProcSet %%BeginProcSet: 09fbbfac.enc 0 0 % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9 /TeX09fbbfacEncoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndProcSet %%BeginProcSet: 74afc74c.enc 0 0 % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10 % /TeX74afc74cEncoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /sterling /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndProcSet %%BeginProcSet: aae443f0.enc 0 0 % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10 % /TeXaae443f0Encoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi /omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf /arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft /arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle /twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle /sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash /greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow /slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector /tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndProcSet %%BeginProcSet: texps.pro 0 0 %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type /nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def end %%EndProcSet %%BeginFont: CMBXTI10 %!PS-AdobeFont-1.1: CMBXTI10 1.0 %%CreationDate: 1991 Aug 18 17:46:30 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBXTI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMBXTI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-29 -250 1274 754}readonly def /UniqueID 5000771 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207 BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3 3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2 F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707 C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632 2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1 879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D 141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF 63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46 4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD 395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003 82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1 763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019 165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E 57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5 178DAA7C97C35EAFA47778CE03E863303582D8A9900EF4F8DA879DED54BACD7A 4A50C18AA2ED906FC4DC073B1E6CA1E3855AD5B7698EF4A96B77DBE19A12382A CFA8717DE230CB6182F2250885B8E90AC42A66484A7B527061B223A6D1CC72D4 890359E7E04690BFFA99FAB5CC9999F0873A9DBE49E33F79E483FAD72313DF9A 7B7D926461988C23CCE9F71AB7BB63BDB2B10B3F78176380AFFC154825C9BDCE 82303FBFC3B59E070438984C28D12E8655BBBF049125BF56DD2B0DE8C0450E55 82832DA59EBEB001AAD86F2317460DD7ED264611B9043614221ECF 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR12 %!PS-AdobeFont-1.1: CMR12 1.0 %%CreationDate: 1991 Aug 20 16:38:05 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-34 -251 988 750}readonly def /UniqueID 5000794 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C 68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E 59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28 51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23 DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F 45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31 821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE 96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D 9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379 26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4 140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213 1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498 1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB 377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A 0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03 5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4 ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15 FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CB287E2532A6 FF476241D713B3BEE31AFA3DF8FF87A8236585F29EBF380F14B223E9DB60C992 4C59EBD928A8198F6ED5E47C411A0A5FD05CC8A1CBB004CEDF8CE93783DFC364 1AC7D43B69815EE0D9BEBCE3CA5A8F45D1E815EE96A34DC9851E2721793538D4 C6AFE4A7437F15E32CA23FBEDB1AA7854FD3DB54C37DF8346489360D5FC75E2A 2CB52849AEA2243FF1857C44BC532AE6800269B1954BA64BED9B8087059F6068 55CA7F758FC1588ECA9E304EF67D14255A7669849E51B6F4E9664DCAF0848CE2 C267D329D222BD4B101EDD2D48276073DC7E131B184E2F99E0338E3486C4329C 383C770E050D838D945EE21A482B995CCCBAC4492E2BEDBC0444FDCE787B5C9A BC46FBB3B316F95D915F928A193A862CBE2836777B9B9E278705E5DC2C67F9A1 5C22713801033C853901D18F148EF56BDF907A8BF9CECC495758CFAD6797DBFC 89B707333076C681FEC5EFB97648691E45156E1EE2F1BF9F08E84C601D1FFDF8 BF7FCF75024D9C2515FDF6872508BFE6E55E72021F36BEB38E2116AE58C5EF51 97F77663D55EFEE8F0EF0723CBE1C4A530B60F65B2F68BB9A34504DB20051043 DF0327D7345F1BF61BD4C9C06F649CDC4EB91D28978C612B4F9AE71E96E3E301 079D022B65FB87DE4AF17CD579A37C9FCA26D147E040773FF3E432A05A3EF34E 3AE94F9D3C75C179D2851F214A6351C66C48049C1DFA56722B686B5B92BEFA02 36EB0C6D082CE9C222C4072C29A85246AF6C9862FE98BFA9D0E3771B474C7666 B523F0621998150DEA3EC53D5B5AA9FB0B87631325524925974811FBFAE51FD7 CA35741AC3FEA03C6372F5FC3FB0CDAB277A3DF79EF060257320CE95136BEE27 4654D93A14C879395DAB46C7E4DC7777E2AB0CAEACD76C315DEA7371428744D2 316183023CC34A2303E90B57BB26004679E0949C26CF0FE7A049229CA1CB820E 51661F79CF127AA3692514742B61F82ED2FFD2A0860413EC2A31CCA6BF2B1FF9 F409AC79DCCA4FC1E67D2585BD902A25D63F30873778745D3184DE9820D961E6 0E86A036BCBC36B7AF20F1727784C0DBA58BD42E576608D52697D9EFC974FA84 B9854C8FDA8B47C6CFD1586A0834D7929ADC38F54ADF6C96E34AF85CB4AC8239 A690785918E2CC6F78A7EE2E5B64B1A248345EF82BC1375F43A5AE3A36FBC9F5 BC5F58AA7CC58EFB3268D3AC5EC408E56298FB3544F3F08C3CAE08239577331D A3FFA676F72DFAFC4B5097143AF4E3D328A142F8E52B0ADEE41F9ABC57451852 10FABFE4D83DD9B2DE5B45A35D2A56FA94E644456A7392979419A79D635D080A 8E2BF51DAACD0049AE558DF5E425DCC4234B37D0C84DF0AE17E748CBAF05709D 560EB52072F10C016EF52F142A16F0E7B72A16AFE2A71AD6274846D44A332E16 9FCA2825A7ECE17445C727366B5260BD247DB7D6385DE5836BAE1BD253A63D4B CD8CD7579E33185DAECCC3418E0176E21A8A9D12621D47C47ADF0D00FCD2CAB4 A4414A3A9C6EB95D90F54DF4B4050714EE7E96DEEA48F993508D12083B837E39 44600EB026B188F9827FB21D12158DC265D058908DD900D7DF3265F007E91E3C E32F5B0866B5AC030205CE43B43FDB75A29CB5E60F9F9A8DE98FD4FAC12D228D F55D241C8E18EF007A7B6468E1CFE1594D96D3C3D2AF8A17E3B5FF3F9F817459 5DE18DAEAB02CEF4A684435265F8CFC3077CDAF9C452024BAAAA79FA604C0C4A 31A601A0D864A811A4D089138A259F15F5BCBE8560EBA816EFED21C2BD43D430 9C34C61E3C69F5CF6D263B1185F2D4776AA1AC5E8090E625B4541D55F115D6A5 8009C649A7EAB26454FD68ACC9211DDF94F0168401B367BCFDF30D1AF89AA9C8 4E255C9ABAD670521738E60AD12EE53F2ED864859EDB1DFC62D434AA628C6E79 70F34C8FA96B8AA7F39929D17127B974FE5776514201B345D2C42C7B20CA6757 AB10D770CFDEA7A5EDA143CAB3A71C1D0CD2BDE5F6568AA04FC139FB7BE09D93 E71CAFB7D9365F5D473DE852DF21ACBD9642DD91EFDA99DB03D55BFC15870BC0 46863B1928FB116DB79DF4AF1DC1676FCE6029FA2F0D52687BF6AEC15A3EAC70 D6896376F321D4B532D164AB46879868AEC99265743AF5894F11D9EEDC9186E8 427F55A8D001277E9638BB058D4A80AEF7C42B2B3A8DC709E43D298666579E52 A2B83D0CA6C42706323ECFF4594248B73CBADE95908E492DA659473205D0B663 0CA2F0C20D315690D333054B6E4171908BCF68DBA1F59E45190FA4970C33B7E8 15FE35010A2129F0768CC9F73CD9334F014873FF437C5F209C3D5F594C9F7881 188A97F9C0244CD3E49C05C86A23FA39358E838B9ADAAF294D12D03F6F6B7432 6673EBC4801D6B4FD284140F5767E4E60E16EBED1F362B7160F5011BFFF835DD D9148C243DA6BB1DB8E5A5B7956E8EB8A0FAFC3CFF252A318C97A4740B33EB43 70BE53163AD83980DEDA89C1E9587CCBE8436F220D2AA5CB165BF42F94B8D920 8AA3458939BE18659499F5CB2256F721464728CE92349E6B101B11ADBF0AE93E F47D466552C1550D5EF74E7C4DE6B6045836FB5907E62074913BB112537AAC40 B64619752A640190B156D111476A9A767843B7AE126A620C9C7B8A84FCFDB0B7 1BB5C4B260F6FEF7A1EEF19A21D31AA3361F1CE30E8114080A37C0F7ECBF1DE8 268735CCE3500FB234D845FE84F1786AC6E617B51B21D6735122C39CB9CF8B77 9BB77E88C80A57F01D35B9C772FD2B61C691848EF21DA412E74DAA454EAA7B5E 7107F3DA3A755635B274F8B7D35B2A5299975619A759CE5F60DCF5F0EE730837 B7F5029DC15873F1662AB71AE380A22A04A42202AFC01D517D8FF5EF09835F4B FF84DBF167219E2F73FDAB6C6DE9582FED73643D868F1673CB79F94FC19EE490 96090BE4868C7DAAB2D68F3233F5F6A47597EAC2E70403694C11302A88C9B990 AE1E01249D379347364E95855A9E217055E84EC8CC3376DF3BCD0F1A8CC99E2E 0346E02B69E0B0A6C0F49F76C49517214B66526F9D445DD7E51BCC9EACA747C1 D19946224D00D619589A26065A4D64E52849F0AFCD3E3C156C184F7A767EDE85 3853AD39DE178FF1AF3580E70BEACA0BF8FD661299A7648550713A71603DC83F 6BB050EC0A098ECC60E8F43A4446E826955F226E05587EDF0EE180FAE7484F88 22094740E855DB1E96C9A16FE2307B7278622BCE0497F8E216061BFDE4B500F1 A43041B153CE1453CB8263899C866ADA0370AF7B3A35E2F9C8FD5DCFA9B52B9A B4A3275442DBDC7076115EE1963FEF8E11696B18E7B33319132ABD1B4FDB4141 2D0796D5E85EC51954E4BE8A0455AAFCB7FAC1C1A64AD548582460FD46594FAA 0BA913D8A2FC2A2F1732F76ADA6256FBF73AF33E706D0A2FB76AE5229A69FAF5 8ED6AF04216BF11D00C455C6B5A33FEA71A43B47B6EEA788F426E2FD5829E25A 395A9CAAEE7BA613584771C592570DE0C4E214424EA049882031D15DC8FA953D 4FD71F6960F65687462ADE0280ED2ED5EF24482614E197E9490313BFA8C900F2 5271EDC2ADE774E8C662C8EF5ED9B2FC54018B964E5C0F9B10271B7989038109 73259651185EA49B8EDA5683A77A3E84E9EDBE20C598BCB7B3527D6AFEFF33DD AAAD67D481A56A9516C0D948ABE82342C7AE35F1E89296CCED6632B225E5E376 35A240B8139536C1CFB128677121ADC6D6763CA1874E55FF42E1E35DEE5C7C3D 2F259F30FED619F8659D72F8EA04300516D9A0CC631C739F504A0CBD1FC28D74 2CA0D364747FB0A9D9C26AA42C52A36FA4D1A5D0170C69F3ED88158D8F574DB6 0F2E5960A332D4BFE48818DD8729901FA988B8CCAC9370E0E27F7E3CD14569B5 30D19934B17E0D2B94EFC26822C5DD0CE432FFD11C8BED8CA76A7B77AAAFE3A0 96048071F36CE4E148BED60E2BBDBA4BF2BF1C38E1C3EAB617083AA136945034 F5E61A0C8A5BF9473930678EFB441482E90DAA3E8A909C6142915BE5DC490C83 8D987B503E07E88CE1C207CEF5CC42FB8F39C2FC9A65512D029ADE7487D93BA9 842CCBA89767FD31371D4E2E270D6A54DEDFF3811ECAB8CED3CF51B3247EB063 AA875B9FA9975A4058F6C2D7501CC62B5B5B7381A73BA65F545C21CAE3C029D8 8018693129CE05D02010FE0AEB83E0542C4FE6B5525AD9410F7894B63B364889 E1A9805C6A9822EE8D865D77BD974CACEF8E645558BEDFF03536F304CE920B2A 482518955B65DEFB663734D0FA4C249D1AD229A576E9F98366DBFFB754DB6DA3 DCB2C881019BA263F88718B82A6853D1D82C3EE6130D1D47F2CDB6BE558A6835 44263BD43029F89CEB6F68B25F8D094C8A786B7ECC703B904E7F9A0F9199CE8F 201C35ADA63A5C27F318BB14D036FA761A13F13BB0790C5B0885DC633C2A2743 E3BF19DA0496905A92B4E92A808B24BB42FDCCD50049794779E950C1C809050A DAE342CFF9FAFC5DA32321C1F72B9D384664AC9CBCC1AF0863DFED1686EDC257 2394226BC8A28478466C910B7B23AB3BD1E1C3B8D492A4118B047BD87F2527FA 184FFA4628A4B1A748BB7D6C47FFDFFBBD2472F0B781AFA06C42DD6AA1D0DEC7 9C16880670C34BAA63F09331F5B95629513687ACB6C9838708D03307467C8101 FFFF41FEDC00F2C85DCC1EACC2601BDEA840393C6328D3492E15BDCA09DC97BF 0A133D6E144498AF0F446D52906928484D6F8FC66D91EB851BE3C0328B93B417 49DE6454CCDF5AE8EC251BF4EBE7E9E7EAF99CE1AEAB8C1F3109F77297E59457 A57A904E19F08D348B803F8F2F98EADAEF1AABB7DAD7184D2BD1250FC5B4F326 EDE68E5F24EF7CBF971559A8753A952BC00F268F782DA9FA75D0F7BF607190CF 24E726E579440499550A1ECA619CEE9935EC54F88645478597A2B826E7BABB12 9D789602E3DE59A7FAB5461F618D8159FF6D26B1AD71CCA180AEEDB9ECA4AFA9 9C49065264830691934D9C2A5C894D9D617C7A9E9ABE020D85325C828EB4992C 4D5FA70D2212D58D2A4480A1C869773410EF834E9627556E3066E238EE1945C5 F81478E45C3972C1B5B984DB644312B89860698974F1BE991A49EEC6D7BAF989 BE98D622F3DC609ABAAD730615E7086AB545B3E12221434E032ABBA508C0282F B8E6D844803D5C204652A32F45575CECB58838EAB2354765BE79ED7D4C40D871 FA8B6EFC76AFF833715EC306117D8303DC362F6580EEAA9EEA0044058D031B53 429A68C7083F5EBC41AD59D4D9FD929FB0CB6B2DE82E007F3B491871993F7FBA 5424834CFC167C2C53DED952BB71C7601097AFF024A053F70B854F11401075C2 2C9EB1ACE41DA3CC8B0C87C16301758078F2E0ACB4DD2B14E51E85E46C1D7DC7 40994CCCEE244DD4C0B247D6F092D506A7C9791120A209F8E262FEB5B5301603 88E3D2BB3D4A32A51A1CA4C5EC4ACB6389866E967FC972DB8F19807C33775B2A 242E8992B79EFAF7088A04676D458CB44AB606A9F77CEA99F482A63B67C4CC7C 7A910AC8EE42FD2304FE380588424E59871A44945E700B9791D44170D3DE8C30 2A6413F2716556771603A60ED8A3EEEAA1D08ABB35E738CCABDA664B0EBE8519 6DAB60FFF9328619102C6F700479712E478D55AC220A4F8753D41DCFBBE7CE7B CCB1E28D4283E87805C2F2CD2269CBA77BCE7D39CF0C90008B48845ECCD5EE75 A2BC3444F1B7E394C6CD1C228FFC9B255503AEA4DF59D032E5F383283C3D0F18 ABA4BF1CC0FAFF0250AADABCFB7DC00FAD6F412450CFD0E0E29F9C762DBAB0DB 3FA3735631DACE4B4D0DE2C208C9B590E4C8B15E058734DFED15DF5C1C6A01E8 D4D9A34C1E5EFD4C6DA822419DDAF23F8A5654FB74EAA612D104B0069FE02FE0 62D530164FB8E228335C5A9225D4A7576DBF688A2AE099A4051CC53386793BF4 BED4653E1C34C8725CD2DA164B366B71627F29A8162F2C6F79DA7AF6553B2E82 C4EF372FE9D095E4404581FEC9A04325485390E09DE16EFAFB89EADABF90F23C 942D889DC56A062B643323DD7A27D153B797B9C2709A02F998C69A0662688ACA 9D95CCCEF1F1AAACBA1C67596B2D2BEC15A86A03AA84F3E79E41103F545A0F35 F7B0A044E50A80C330A3233CF59D2C6E610082A060EEE992E7E6E896D98610F7 9CB80A431F7977985CCE29CD3482AE87FF18532F23703ACC1F04C776F73AC012 5E0DB8D1DBE291FEA8EA1436DE832579F03F86E326B89F7DD5F8C05DFFE5E6FF B929CAFB723A3E483B8110F6D2465C27AE1AC306176941E2563442D4256A9844 67F1A7279AD1BFF44D928D089CB2565FDAA1392863894B868C2865AB5265CA93 5EC8B35803349D89E783DD7C53866325D2C553DDEB0D020D54387D17DF3F15EF F613848500A69E699F36B21EBD6DA6F8D42699F147566E86DE37ED075EFC4553 5965575C29C614CE0B2C78229CB911F8BB8487EAEB648C22E13ABF4D016AFE3D C5E8071B15310761371C4E29F2EF5BB752DC133980941C0CBEB4757A90CE7D62 2F3DDD69A230584B90B5A2181376E3661E0E3BD14C23A033CD374E6AE79852DE 9C643BD7D9DD9C16694301B18C0BFA58F9923760ED238BB4DE3A0ED3C7A6C924 CD92BCF3B77A15CF6490F48CD519109783CB68B3F00EC1B8858E53D9309D5C7E AAECC7A429A1AB9A789EF9F09E50FBCF885363D9DCBD2C9DB9E386B4E77F1A28 34CC196610E4282E871D7DA7CB1BCA9D3BC7B21B59408A3A5C1760F63210ACAC 345E80BCC21AE62E99A9BFBE6F7E6F76FA1FA10CE660B6151B7C4B28E3CAE9DB F9E743E2080E54EC292AE713759288898DBB8BF92A80972A16B9E5F45A4FED1C 6DCAD90FCB513C1D0A5654595263D3382365609E9AA602539236E6CFA7995254 819618E267ACD99DAD3E3820A7F33E5E0585770C0587DC7C34986A1DD4C9BA7D 808EC25279614D94F43B5F4F854A0B74ABFB484B9E63340D04F5950563E15584 2A62510354A48A245802941CB5C118CFC5369E4C1745DD4C5B20693C2FD03663 40CF7338E2990F184DDBA6F5DE0055ECD5FB411179C6A8D48CE0C48058E32318 43974E91694AE18C19E913C0F09FDEEE521747986EED03F315BA7BB7BDEEB575 3E4F68326457324F840B69FEF2A3D3A7DA1266EAB88B46F5402CDCAABF976C71 47F4F5A10FD547DCFB8C147B57E5CB08F2A2FF9D9D0991BDB1B0676ABED0F109 D688B668EA0CCEC3959D167370DBF6175BA7905F9F0D632351AD7401A8F2CF6F D4FFB7ED77193894B4E400F6B71DE39267D14017E5E406940A6A581B18FD45A0 C63641FDA8643806DDCEA8F8F050FC60CB3A847C27D579B9D751DC37D66E0D0D E22C4326E061F0B59209C6726B7A27119238422C47AB3978B9A1DA89E578ECF2 29DE81B526E4C61F06A22F82EA413680FAD8CD13AF033137693B0AF183361D52 961A3760D5450E11F41C7F89207E9F64B882AB2E16F4C4054E26DA6CE005F11F 8A798B115ECDE7E7612DB2F8E9E14C7D5E71006983374FFDEE6AC1103DFBC47E 99AFACFEA4918D7EF74227D641655FA1C06483A79B32F00F9598DE0202EABB87 4AD02E3A8906A94D43702530457BEA781A901B4369FCEA5A98FB8C2E0CF7DDDB 5B6F622221D91A4453B76B19F362622D1FAD8B2E0C9E48E3D9A7177A4C18A68A C611BE209C78FE2FDA8724784525A47F7356907358A594E2EDC4ED5229125198 9EED517295F86BF5A062A9CBA7EFD1A32791D1773709421BEB744DDF348815DF 869EAC93BCB08CC7A24E7024D31A64A41DB723DDEF0094F8D08014F98891D0A0 9E9BBDC853F9F1A89CB94A56DF904C1A858D2A24B398867B5C52D19D4CA1FDAB 2B9C3793937027409B36A6216B33881D83E35440CE7FEF9C657215C5DE091D6C 0A20593245F67E0C37071274C7A19CDFD819CE07E17F36EC7390C7D8AC5F0885 948B019C80A0C0E521BD05B45C6E7B9878A1917454A5004470466175CF1B4D2A A0AC1C2C33BA0C93E10CFD644F271A084289117E8432C17C638D703730AE7DEC 4D335B27BEAB5C02F588526AE1125AE7355A4D3DC9DFE6CE3F83BA06984C95AF F29EA66801453A4000FD0C1EDC0A520D9D178DEFDF304CC4BB9DF99E731DCD6D C5C481CB388877AB00C3C1F7620519CD3CF9BF61999C2576D75ADAE383B72FDB BD2897715AB779A4241753C0E94800D8386E4CC3FCF5D5787C3F7244664A71B4 878BA10A1A4544CA233093AA94BE97065E5581E6E5944446019DD23BE648568C B8A9710B372B3D19E2B17D611AD3851C54A83A562F21507F5634F9545A4D74B3 34A38F63496F096DC792210262435F7D535F5650F244D40AE515DA67382CDE66 847805A692CB75F8BA49528CA91288B7C021A138AA8B48972E6E803E36FF09AB 4937C307EEF7448F1AC52D450F072C14E55449DFCD19880436EE27F0C28D3C5F 9C5B077B1F061799A1F4D36EB801A1B10EC970098774440C9AEFB93D336EF91B 28E1F4C41847E3C29AEDB95AE77692E6203D23C13EF0EAA7FCBF0DFEC7BCE0A2 FEDD4318AA9B2F2157E24D06BC24904D268F933DAF98D208DA2D960D59F602E6 91A459309340728DA79C67C45AE2528699051EF7BD5A92461062CEC3AEE9F760 AC49B416BDB1BECF96A2041380A462DA1B3F97CB46E4B0EBB1050F3576589CD1 AF7D0F932D4F20DC9D699669820D6825EC376DA37C3A8CA49052D1C2035D692F 4345C3B92F133AF301278084739F7A9470123086EE6D1B68631EB47F2F48273F 23F5558531C7BFC0CDDDFEDEBC4AC93F81DD6B9D0B7F246F418393E4574F3276 C16B2B8664E563BB0724CB3D4F7A32626CC40C4290FAF27720367E5FA9E37C53 89889891814CCDB4AC79B1D70FFC0A6AB275D728119CE86D98425DAF5AF62685 BD21FBAE1043D8F14D123A3D37D586F95AA6AC52C53AC1B9036480A411FABFF9 CB59639E40B989ACA4F864E547A4D9B8E85BF71B52F0BE423BA6FC220D4AB027 476E21C770E04C9A59A01903981E4CA18D598F7E57EBC8A014B6AD57A83B9A5B 490CAD28A9143286C6F31255210602294E9A7E6F628DD0938E64BDB5A9EFBF94 6A24BEF1CD0C642F6D0C8B22941F297BF9E6D9673015B0B38796458A45B0DF9B 07798A00D34E467984B4D85556B2191BA958EC772060CAA58882934FAB96F77A 39C4AED95E4597D81CAECE5725BE7533339CE9361B28F4DF064CAC65BBBDEA89 6C802571B398F430110AEEBE598B0DD81DFF734D0A18C4579E6F868CA331C947 B456CD11FA2955CDAB037DA30B6000BB0FC7A01BAFB32AAAA90F48ED3509E090 BD31E31B8EFA1897F0D92A7AC7F49DD74FC2B9834562C0E0558C5752923C3060 E71CE30E95F8A3BEE7C574E144FA5244A54F0BB56B08B70264BAC50DB2E6BB54 D421114B495EC74849A67BF68D4FD2BE7B31F9511D9CE96C73164B0789FC7A26 0EB4DCA512E7016D7469DF12153E6A1FBD3D7BC4418E37B3893289B5188E1E94 B3E8481E237D83A30929A44362A136CCEC6C104E8F35CE1853E01295F409DC16 3F47BAC5E178285FCCF10B10E1784FBCA07B106A2149D1ABE7DEEDF5DF61B19C CC96670069DB813EB85D828F6DDF0D8EB30C4A5D772CEABFE245FA5B280A16D5 B6E0DF10F8E3EEBC6F68F909ED3D042BEA91E906E02CA3E355B0A93B1F3CF877 BA85E46E4BFCE9987553F8279FBD65A9B8B0A46CED9A358F509809E233B3A7B4 E295CAFEF9C0A977A589DC16467185749361A3168EF8C8E2F2DB512588F04F76 0DD0DA7AB95B2E1D378F063A619543A8AE2D702DE3C04066FD92F7F91C9169E8 D4EFB7F1A27B14B9A73ABB354A71A9465453A876681BB038A0E9BDB231E29DCD B2B6CD16697BD76A763B585FC93290C502684CD0249F14BCE1ABEC1FA908231D 69E35901F52F3B525B0AA9AD65B2954BB8AAC6909C1038845A66804CBE7025D4 CB0A8B71FEC6F394BCE08C5E2FE24A729B8A1CD2421EACDBF13EF7F81788CBEC 20387C6C0C012C64720EB24B4172252FFE455D2DC9E4D19E01B932C745D708DF 66C49513AB19058EEE75EA2D3619F35BDD1C94265B149108E7CA109CFBB84C95 AA67561DBD282335ECB4856183014729B58AE91473BFEF4C365124B95A1C7A43 171734B77C1CF60C2979915520A95F6BC8C174B7F648F678DE8166B41A9845F9 9D6FD36F14A9B0B4BAB1B5A1B7AD232E41F691CC75FA925967C1590716466986 B6B022ABDBF7BC2495848311FD7E1E58EFE2E2DB6C65A298DDD75EECE6CA0F92 5E1011EF85B8609E64272C924F7C014F03AD5C5892A63943564EB46B364D8E99 430CF6683492D11BEADF69593079E14B7D98965E749702602CABD5BEEFCC89AC A536043BBBF66CF5A7C55866A9AE1DD8C7B823F6524D843C98E7E8387BC10380 4BCA82F2DA3BC416D2B678C153ED7A2B4DD27204E34BD4E0D41BABBAF2AE4389 765B9CD2A147FC2BB7051D1A695101A1C460C4951DA599DAC65C1DD29A66220D A2D168822024A81DBB17B98D2F360251D495C99EBD442CA8C3AA1AD16FE24A97 57C8919A99737962C0D8B88E1F5B8A0A5934FE3DEE391092C64EAA9A7A2C9E36 BEF60AEB0E32DF79EA126D717E6584216AEC5AB8E5B88AA8B8559F44AC47FE12 D613978BBCC8644099259DE834A700F15949B0B1776C72993BF2728EC595D911 E3D8A05BD75AE1EE52ABE81A7804B513E2FBBC5DF1450CF4655F361CE2B610D4 793E8703132E4CB48983FE7BD0E402ACA484E492CCC132239EB646D7D33B1FC6 77FB223E76B2F5A850A109273AA1061F86BF0F5E9AF4F6C152B643BF77CD305A 4E696EEB17E74C4C99867D930A302E 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI9 %!PS-AdobeFont-1.1: CMTI9 1.0 %%CreationDate: 1991 Aug 18 21:08:07 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-35 -250 1148 750}readonly def /UniqueID 5000827 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E3948FFB3DF7BFF10C9BDA4EFE5F68A8CB1526990D1357AE6D2F7C2D2EF8496 4E47B39E6712EB8908A3265E5FAB40567E866C244814449F1E993AAB422C3F1D DFA8C7118584F2E5197FD4BFA3A8AE9E953C6CD4672C0FF51E41C3A919749C1A F06650DF4C5E17492164BDBCDF22609A74BFA7F69960A64B9F949FFC2A807458 8579366C4F41BDE1FDFBCC4845FA19BBB6963D65EE8532549274BAEBDFF24FA6 03235D1BE37C06B1938AF369DA75BF38DDBC87A1FF445EAA16E1895ABE9506B9 211955753E447865D33CEF007391D2666A046277A30A49804FFCED3FEA5EB2C3 E52EE14A9F75241EA10C91974CDA6236EB840FD44D6DDE4D9B3266C3B99BD38B D835BCA8CB819C073480FB972CC028D218F6A1D344CE1B63F4FBF2C826F412E1 6E0B05A26125865A14FD7B7030B478BB8BC6BC395335C3BA940E1C348267F4F9 0AF97BBEE253511940F1048E175D3569F7D05A28851B6F50765FEB6C9654FEDC 1BF52F535DB5BB90C1BD5D2EBF75E0AEBE82B20507F3C28A03746781018D4EB2 298E4F2C27ACF73FA73EBE43F014BB575AAD516C0407B29E1653375135ECB74D C91372F06FA8EF37C31AF3FA48AE65318EAA6C34830A5377ABB2DFA5DA53A574 433484BA1466709A4B186761655C8E482833B697673E847C691079E7F1DCB8D6 1AD91101D757B83E2090337D525AEECB028FB3C9F6A6E6AD2F322CFDC5A833E6 1CE4EDBF41FD34FD61630581D222F854A76C2EA9FD72796A7C9CC1F6C2FCCD16 E95CA05826A4ECFADA6A5FB83C41A7131E52BA6585DD6DD78515D8F7327DFC6F 9404F89293D6ACB433CD0802C43F0E74C6C4766A23A6AE3788FE6CAE82E1A104 BAEC8BEFDEFE4F292F625E60362F3886F602CE4121BF0AAD93526314BCBB5971 40091A7BBF7EFB3BA355B88C897D9C70C841DE41309348751EDFFA8675215988 49CB1599834A01EC6CD4FD813AFF97A614F56975775D5F48E9C1A9CE532FAEB1 4EBE20C3FA87CFE03664C428BFC5C894668E507950005BD8C2BCA8998C1FB92C 4E6B791BA05B79F332EB8AF5B0F851B8B7EE372EC0861B09C007CDF43F82D0B7 35446F682A0DA7F4112CDABE4F922EACFCB7B8C88BF550B60957E7 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR9 %!PS-AdobeFont-1.1: CMR9 1.0 %%CreationDate: 1991 Aug 20 16:39:59 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-39 -250 1036 750}readonly def /UniqueID 5000792 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835 3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203 046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2 A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D 731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B 09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1 49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B 5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B 54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F 11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AC46268691C741B2D4 48A840F1128D9B2F9CF07D0709FE796B23A836417BF7B5B12D67F74453C82F5F 25F7B30701D6F6D4F4DC623C0C27D6A6FBECC7312A3CD10932FC7C10851C3C52 24B75DEA8A648B7F34F5711DB0E843C914E25663C510185BC37BDB7593C1C259 21D8DDAD33982C336BF272BAB2F48E68217403FE9F54877B243614A87E64784D 2796EE4179FBF96123D1BEE3EF89D682B427BA4F12A1318A57F18BE5DD903815 2617B8C7878254533A75DD808C0EF12014CFB416C983892CBEC94F1D27679D0A E1251CFE9089582EED762F1B792FD5B7B22CBC07193DC2EF34D905A4F2508256 E2B98EE924515C6F00C10EE2FE39132A44BA3BC9DA27C0FF8909FB608C61B671 331EADE04C952C183C8DF844579878A0D2C364F5915550CDE40DE2E87684B7A4 A478FB286F3EF973FCD6DD60160110332B884F52AF565E26F3E4E8BB79863B1D F53660B83E46FCF697B03AF83AA8B37BDF76B6F0B4F3B3BADB7D216E8EE03D6D 85AF012339B39028DDFE91A014BC8BD6B1F06E1E25AF5ACD092170161CD7E0A0 117C4AABD0ED57631E96915F5619F59616C27527813245F5FC0059F94D2AF14B 3BCC63787C4FCCAF383798C86C1EE1DA89B65C04FA53B9DEBA2F02A8C76B95C3 D66FCFC44DA3A12FE4D9B8EC37082443771DA4DA376837F3DECB2DCE3848F573 152200069B62287F0088E9F94AFA149F05BEC6E205815ABC4BB7A004DB204005 ACBEE9DA0A87BB5AF9F7496E7235065650AEAB2F7B5B34CE835A0046700DAECB 9DDA6E624CB0422B6264619F9BB1083100E0868F497BFA6E712F5805AC6B0B50 E224B2EE63A6A7E675C724E2C11D5CB9DDB942879A0D10CA9157AA00799D4EE8 6F5F602BC7EBB86FC9A8AD5428FF1BC5922DCE6EE98663BF42FACD427DCE151A 1FE5556877D81BAFA3171CEE9898B9B971740FB40B8ABFE22A3FB234D305C707 B586C37E18B6C11FCCD61C6F1FE8AC592CB2889CB301A23C134962603B293690 DC9C806144132AFEFA5F6F8082F911C9AFE2CC3E3DB193F2C4DA5852E9B89341 7CAAD9A2D12D6FC7A17DBB411CEFF6C446CBC5DD8953FDAB6553B84E8C310C5C 3ED19CB2417393D14216EC6408F37C6CDE2B79F82F451E98214C98DFFA015BFD 7A46814BF918221DDCE0ED9E71DC5783AAA2ACAA128E19F0AA261FA4EBA7B5DF 7F1F7B8827C360660F83D4DD9D20D52A3C0A307FF938257708C19B1766B1353A 531BE681A346C77B9546CE1B323E485096C803B6CA8F0B2C19182AD2937CF49D C8AC44B2AFC53359D3833AEA897DBAD77E7A52A113453AEE5DE57384C9288EE1 773D0D41DA2AC090A044B2245CEE6E4C95EBB99BBF32BE28579FFD30E081703F 9C28A2C166F7ABAA9271AD30529695B8C03C5CCDA55AAAFC233EE1687B029CE1 6CA5DE017B61E4D5E72E431F8EEA29BCC643D530218A0F1CA16DBB27F0A69B24 9364A17D66B1B59EB6B9AEDDC0F31CD77CF57DF5FDAF70E182328486D54D793A 6A70469EFE0D507D79398975055B3F7410BA6D00C44C1D8DFA5274F3041A0938 475B739898B4AD3159CF2157CB88310C8127652F5D5142A8AE45C043996C6A34 DB9D6B10D92B8C1E00AE522AD5A2873529FE8095C94D3EB8B49ECD7E81A6890D C5B479116BA092FA5BF65FA5EB19D5A07367D3788B65C17F336A739BBDEEC651 A3E4860A9A6112B825F4109635FF0D0B43E3AFAA7EC77E87F170FF4209397253 38355F1C38FDEDBC688FBA7129B7711B277F0413506478578C61D957A2F21381 4CAE99E827AA637841B17B9F524ADEF18B3D243D6944F28AFD95189C8850E15F C5A2F3CC2DB2E9254FBCFEBC77878EA226187A0835586E6C717D9282CAC5D386 AC70D30310F2408C31F5D9B225200F74D14FE799D0FDD6385A3ACCD37DBBB544 7A88964EC807FF93E57C88F6F665772ED43310058DCF215553506898563D3CF1 7291221FAB863AECDBDCD57D883967F48C75297A80FA7470C5EF48C79C1E1C1F 3A642D8D2398A8520EDC9753E785FBF4F4F4F598B0898BDF5CD52C0BFE311F37 37C59EF09702F389CF26B79AAAA5ABC62C61FD7A629D5CE860A571EED35066EA D6023B6A7266886EC2DA87B57157702DEC59F33C87354C4804D78CCFBEF6DA65 6B649B687078C807A4AEB21B6AC886DD517D886FFF9D959E7402BC566F0DB9CF AC911AA794200B4B088851A064465A6DE55043F9C5DB31607FE829A467D41EDF EF2738B025584002B143CB453787763E2F8CB94C74BC4CE7E09F48A1A4FEBDB3 532ED4A53C5A32E30C0017AC02D91586862D86DFE6EFDB60DAAAEA3A5E42A4B4 E4D2C76397C2C0BDACA0D3532566B5FA08B6E6137FC84A1861C13DDCD75FAABC 66D49019CE7FE76D27DBA189B2BAA5DC2782A0D8B9E59FE978F2CCAD2E732819 E54BE389E2D1BC90153C801E1EDCDF4985B1F9DA3B8BADF40387BC340731D4C4 FA8F1BAE06096660077D94F9C5BC6F42E6685D68CB9BC7A0E6CB989BBE1EB5DC 90F1372F2D7DD82956B2414419F58B02BC745A75C637C079A30B280091A21A20 72384DE29F4694323ABDF0C96EAF61EE6E734A55B2DD1CF189F5BE5109BF1F0B 1BA92A42FAC53E636C5DE642BC1D5F45F0619D7FE949D448200009886CFD5C11 1890108FFA30138A3EDDA623AC26F7B1E73643FDCF12CAB4D509575B59939886 7A967B51F5EC6C5088B05ACB8824C658323D870BDB898AED49C4CC3627069421 2B798B8C60F8D964851B52A2835E1E9A9ED16CFDDD2D073BF06A7D46960EB3B9 E3944A63D4935EFF3612251E69BA3EF55C19861D2F33ADFDEA0C8E0CD93EB429 FAAE2E2537E98D4B8E0254A5264E6445CCA671694F5763CBBB0664F6C23144E7 D6AA5F59BEB36209F2A69FA38D22746090F1AD82276E3938A3BEFF6BE82225C1 986A89EFA725A3BAA94DD1023614A3E32B9457EEB94AA7E2273566DBD262CA06 D8A59A4D41DC62ED2547B6FFECF584742BEE7C5437188B77950378F6E8651605 C859FBEB9F38B7380CDCBEE59CEE12001DD30983553B84993622FF3A79AAEE2F E221BE9CCB75D3E2D9A58B05DB4E30FC95479C5770EF630EA9501FF3B460365B F966FFB513155170D0A419780EFE5C27ECA5C1751877FCB032B663EB95F296EF 95D0FBEEF99541CAF8054226A1D00643F17BCE54ECE039CBC18ADA705737D6CA 08D88E955667A184D7C4088137E9DBFF9649AC44C4E4EA7B1327147992E0C49F A914612772069ABEC6F19CB7174653AC4A33C151F9B3983B1CA1AD2338000669 A42FBA19247E0C767044BFF2CD445EAB848435628BDB415C54B6792D7499BABC 3E7670C73E5C5CE798174CFC6B5519C9635380EFE855799C08CA4916B8A958D5 17DDEF94B6B4B4F2DB9235FEE4496CAAB2490334CCDB7FDF61D9A249A36432CB CF3E7B65977AF70A32164D357C51D12E457A54A8245721E17DF257F8800A5989 079783C13F5BC5D1D2F3FE5444865F4A15F5C1DC96341692B85D857B7F118BA9 C5F3620840F5C6901E6435657A2D0B300FD9A2157370579B3991F006AA770632 75C31C88869AB321373E98B1CD9625768801AE10BA3F597B973FD36AE3A704C9 B0CB85B33E15CD142DCB629085BA45583DD0C4EA115C709D11232245CE959DD0 550B85834A00A408F6C6DAA375B5048B155DD4A0712CD5E44A4A47F0A7D56B00 44EA034D36D453F91A3EE8BBDE58AA5C65B567BC8B6334068135D907328AF426 A8D4677A3F2F12E250EA9B0C401D9DCDD44C9DBB3E70235F56AE68E8450BA277 7E72DAAF089B7CA94AA6861F0A80DDDD1897702C30FBB66B070C3082899F464A BAE39B93833DA56E8B7A6B487BFCD1EC4ED4B00A17F63BAC1C5F178408F1C5AA 985AB978EEB75893596CEA9CD6EABA92660BB8C5B40B1A0EC004BD1B77268EDD 9065CD83B2A244090561654E188BC6812C0104B4BDE9E7A6221EF55C7E39CEA9 76D4E5D9541C48AC1949676F71F8067E11BC37644D4BE338151DDA92EB2C4F97 6F93E2FF0A2F9130D19FBDC53A86CFBD590C62E003D4D7A2F834FC1B711E6ADB DCE08E6D3CEAA2D805EBD60AEA7A2366D3F3C78931B5D17633A70805EAD22125 E156535BB659BEC344AEA0ED616FB66CC7C7554CEFD9DC324A98F17A9E763BBF 6677119EDDD6823D56FC570A63E1ACACD5C4A2797E76B43DEEC230566E25367C 87BAD24A2ACC672C5B0D767F23DFCE426BD00EF5BF8EDA9AFF26D9FBB4C82FDA BAF0BF449645B63C7A1D79B7FDC6F5C0AC50A7955E5A673BE4BB552718C07016 E484FBE4827F85386C31E678C1A315E2350984429A8634FB6D18BA8CBAA3540C 0A0390D06A868B8EAF267EFE4D437C1910FDFC42D22A40B45AD6A9133FB7DC5E 7629E030439002324A58C75DB9CACA57DC8EB0381B52976F0FB9265CCC678841 07F20EDCD8C43D0948FF4A6A3CADB6D07CB238643431D79556A416487AC0EE40 9D3802E99ACA1979FD86EC429357560B30AEA338926FDC5A4C4F847586EA04C8 CAA622AF69C59629A984A945431127E2424B14C423746DFC74DD95A923C400EB DE9E59D56D7F61A6BB50C17405E4D39938FF605A852FE8DB55E247D95BDF8B2F 0FD7511D8958C2AD74FFE78334A63306D535593E97005002F345DD6B5300A639 35C06A701F1192C30971AF0FA53ED7CCB6E3D26DDB035A2E5BF80776CFA037E5 F765160004B9B7860299781BBEFC680C395FEEF08AE6F5023A9EA567E020BD51 68F21B9009F478A858C4E54EF9AE86540E127AC375AC7EE2324FDEA8229AAB39 B1F7C8DC9E425318447487B3442888ACF789801C2D348B973F906BCF10C42E02 6A3DA7232131928FC904308A3B6362968CEF450FDFB9373290C1FEE3961D692E B59797C0989D912B688473D625A465E6CCD0D0EBAFBEE3DECB5D26D662DA3041 873F8D4FE55AF05FFA6B7C726AC3E618EC9CFD54B0E11CED10F3072ABCE0AB75 8BC0C756C3369B4A4442E6B278F292EE108C9774085E2921756009713FD36472 59AF9BA120DAFEF7BC1B21A7DDC2BBFCE874150A2D2FEB24E052C184027C80AE 074DAE9DFB3E769DC97331F9B02A833415F277EFEEE96B43D992C47FBF2C4490 379DD29D2E2BC207190DD852B92A4C6EAD51BF22E73EE91C8D4405E382C9BEC2 F03A498B6D7228E4C4CA7C59B09AFF020F448C206E0EAA435CAE802EC987BECE A4096A2B3FCF5D1F151C8E56EA18FAF4422033806BE2817A29F5D234572BC835 A212B596897D6E2A7075FE6A2DA08F0E36BB3EDC2744EC462551034F69242279 58086DC7AB4007389DC8DD4727623DCA9A811CB1968E6B31B87C1A52CF75A624 B0DA8EF3313193B7480AFE7B9D281DAE53B748A155ED4259279FF9B760925D46 C33DBE67775EBB1EB8B33F33B70E6A91855E893080FB96614C3DDC5B60D87E86 10ED35644D618202C4157ABAF149FF0F84512ECC62FABFFE0E7EC20D697AEACB C7CF232B79D2600B403FEEF4227895B9C0904DA4E7C34CC456CBEA7BEAFDD5A8 35E4F77FEA9D93478CF49685B7B9D0713AB2AFDA33EA9C5633DCA2F70B5BA62D 6BAB6B241FEAF9D24E55C11CAF5C040605CFC7C35308D0C16D6082D48C20BA8F DCA15EC1D2955FE87E84B6558BCE97D8CCB39F046092FEBEF7CCC69EF8B4F7E0 190EB408D576252F15701B0E36AB6B61B27DED13EC02A532D450FE73B6BF8DA1 1CDD15A1190EBB2B0F22F0FE11577985B90269D2E2EBB94B23E8249F7ECE5C9C 2B47EBE91C562314B72CEBD6659511DF71130B97357E5D5DD2DB930D05C284E3 F896A9607EB1CDD56E60C32E6E5B817A2AAE1FE10C4D72038E0C9C6B7B21157B D535712F744705D1F5F027C8ADDDC5847DEC97736C95C14D9EEACAFB901F42FE D6F98ABE1D6D09E6537A873D131F88039DC64A18CD7451221E0EE28C1834365A 2D58E2154C0F5871CF710CA0B1C798FCBD1B1D984DFFFC25F32DF7935EE858F7 98C90F5680C2A43BBC680455053E235B42FD03E4E7725BA4C7A262A03E1BA62C 6E38B51F3CF6B80F03695D0AA696A6BC81F812C58FE54467EA78DBD0EAD5D1F5 C996502D0066E825769587A68EDB97F23D80E5BAA7031299B0DB4E23DE919E6D A30FFA98883408320DA6DF7186157CC7434D2839D905A9CDC013C78E08FE5EC1 F36FE5E5C7E058C4712A4B6FD517A96E869DA739379D57D7E53C3E09938937AA 4F5A2E185E67F341128C3F8C9C623A1269A6269B9C4759D19B539FCD36111403 695CD7097A735DB6D2F98DA4EB9D40C259A90D82740265680D6ADD96DB6F6BCC 1B4DC72C277AA1693393DD7AAD5B31675195AF030E971FBDE897E5C46A60172A 69AEF115CB8ACB08FF6A322A6C63B4E4AAEA473D20AB961B0DC17285AB605CB5 DA82B9B57A995F5CE6A9FCC8A51C8E347E798DF65725869BB152037764F968EA 8DB20BCBA4750C9781588DA1CF28F51717A630D4D6607EAB76AE6D5AE26D8190 9328CE7340A556B3B96C7D3CB619D865D6FF1B9FB29FE85C076E9D2EECCFD4FF DDCF56AD4826191146EDCF1DF8783E4469ADB6C5F1FFCE9D6E9DB93057CA900B 0E4158F1EE4ED5BAE621A6F8830ED3D08049E5CCF3E97566AC6CB72FA2F37948 ECA6F02D70C47FCEA98B6521309D9BB3C69D1259BCCA5ED11724F41B1CEFFFAD 26D9F1B3DBA6DE630E08E1C53C07F4DE905F9EF242BAB026BF243D3CBA774D62 AF93D187720725D5863B0B9227948F90D349036A716B9E8DCAB41FA68DA3AE87 12C4607FFDB1DDCC10AD660A5CED682E88CE1A7FFB387B094484AAA1036AE850 447D09EFCBB4787A4B47CE9A28409BA7D0DE227C1FC6102A23072B4653C6C2E7 A140F4EE50ABEC4DD8D3CF49E3A0025C5EC2FD733667116629C948BDFE638EE0 F544A9757C032FBDC1D62F499F20FB10701399EFE48B0C9E5B65294B699E2089 CADC61887AE7386F18C6BCB9051FB450F2500AEA3909C25C319112A32716D62B 21CD7D4C6628E01E259E9B5D5D1C6EE7F3BC398DBBD3A645C34E8AFFA2D5939E 0E5B3211C008B962E9253218DD6977973B6C5D3289D436D3ADFE42E10DA5A07B 35CBC35D093412EBD3DE0ABE4245FE54A24EBFCD1CB98695553E922DDC2EC07C 757B33211E2CB9DB2A1F56E562C956EC06B7AE6ABD927AA2C27E00F12AD6249D 1FA0A71AF9516AF647C2FEFDB1238EAE8306DACF6108CB0EF4CDAC5F3F1E0124 4B2C5512EEEA2C8EF676E4C7049958743FDB735C306279EBB365D856C71FB2E7 4941400C4E4F4EAE9352F94164F1DC7726A3FE7813816473C2650A2F49FA2B5B C363CA3FCDC6840D09D31E3D39CB93DD64B478CF993D7B821019AAFD8EF35E7C 18252E0973E4B4245BD4A001E59CD995DE50D9119D231AB880E59A851DB77C61 CABFC73FE6DADC353E856754F21AA0662E4631C1941059961EB0370232AF0841 48310FCED1F5A6E82A2509FC89145C39C51F9540F6E9DCD5E2CD81F25A0673D8 07854309F4D0C6617EFC0B9D244700FF9C4470FF6637A9C093E39F0144FCB82E 2D8E0553917E2B727E5D4618A220D42CF261B17D90833AA10F3A10B17368DAFD 4AFB9AE3284769C224329C668D9D6227AAD41AA544E51D0EC660A5E5903E0A51 009539A53C37B93B2490E3D75A03B188E7FB796350977D6C53036A49E5A11AED 8CAB05767610D2EFEA142970D545A492973B7C02B8D2AA11BFDEEDCCDAEB6B94 AB8B8CF1F462E486181DF7AA6748F068B8EC736D7A54E24B46839EB61786D392 27F80510CEB9DCE775910AB8F6AC53EDB20AF0403DA8A572649F2D5464D1A3D3 0C8582C7DAC8D026D48C77B0638688EEF22183EA1C2BAD1123042F81466BBB6E 8B5877166F4F96E4A3CBC03DC85AE7A40B1988B87AB04700BADF0A2C2CCBAE6A 4EDBE504189EA05081F39196FDBEBBAF3970B2B26765CE701522C75806ABCFB2 3DA285ED4B8786B9F156D5342059C3DF56541BEC3598FF469CDC0A2EC7110519 518C369468F143F7ECDBD122411F819B20C86502704B2DEEACAC9ACCC618732A 280B0A7F88541FF07CC6C498CC8F3E9F9C9AF946878F0197344ED706EFBE34F8 EB658CE8D21F5FACD0FF84175ABD4748180166A79EF9D77624E9B731FFD240CA 441221B2FCB9CE594E38871E8DA94F9BC6E490EE6207DCFA23BD73E2D66A3680 F16CE2FA2930582958E9552D37B3BDC10C9A9465E2C5A190852F85ADDC6BA5D1 B153A51D8755953D116B818608AE6AFEE87F650EE9BAA46323C685625DA3E553 B7DB29077FAF354A04C46C89BFD4C308C3341556611C891EA5784C2B761AF114 2E1040BDE880E1C09A45BD11B9A4CB9AFFBAF5749D5F73A2843DDCEBE94CD748 1801F8D007B124A35D063FD00374CC5C22EBAAFC59163044B10F2F27AC585273 133576DE89BDCE8F7C0D65520E67227B0B9FBAA5DADDB0BC4D176E0358984851 4958DE93EB76B51719A762683A43640C7EE061D4052D147A2DD0B5E159C1CC37 CE44FB306715D73B17EAF7BF106040F4A79F7B206399DEFD01379F61E5A5A9AD 8BF1F805F381C69A5DB8CEE472703264201537871570C874BF331389E9AE220C 67BC8BE320852D990651B1D92D8C8A81C89E315182A699DA2CC4554BAC2AFD35 F767AB937196A80B0903259719C9D134FB91E46F934FFB9DE3C8C9031BEEB3F1 C06F5A17D0DA23DA2C501C6F1C68CE7928A1C2CEF40F3AB65B44BD7C7483107D 56E7128354B6F4FA646B47A21B57ED3A503995C3E508315952765EB1E12CCE11 8C4E0FA2165E7A24CEDA36BA23A915C21ABBB7ADA7257755579814009FBA3CFD 50BDED28CACB19530EF89F77DB4C5400B07C4B01E538D46DBA54CFB840A6E957 7ED91003424D3DCCFB76D6493BF6335B495EF4CBC8F14ED907348933A7E95812 8E4C7CAA1688F6F8AA05519DC87117104FAC37199BEEE06CCF0B2A013BE12C64 55C6CBF8FBE4815FC366FAB58B587AE7BCB6D72D081400BB87BBBD3C3274BF1B 68569181E8B513E0E4781010A7C28D9DB157F8336B097C4D3CCA0736A60ECCF6 2F110D32327104004127391A5C8AFEA0D5F3A5F0123EEAE217EBA179F1EBC8BF 890BB3336108D200DE63C88E1925322ABAEA10922B09E8AF6C7AC566E91A0972 C5E91ED7407CDF69EE8B440CAA0702BDE6AE1E30A0DF868C2D66A464DCED3014 5F4B09556127A32AFDDBB9F0D199955532EBDFB41E6A8D4352C9AA213A53F5B4 26972790BCC0623345CF3C5B262C57C8056DC2A8D9979F3366E2084A4CD8DFD4 08518849228917D69009858432807692EE423C9282F11DA791248ADB688C4412 5C557D0DD878337DCE15299B6CCC1D40D78B7B77DDEEFD3FA5ADD8BE15BA19F9 7BD21A24A0CB5935C7490BE790B3ED4915A8C624DE68BA4012C9146A990F017D 0071064B4568D320C08F86CA25D056BA3D6FAF43B45BE65F211054BBE5032BA9 7332267373C888F180775806FEC0C5E8F02D67697E96195DB9000039C5BD5C7B 12A778A274C626FCEC3DA3D960EECAB582F2B370647CE93E8265D83B4FA49959 BD1E6BD0BEFBE717550B73B276FC9DFA1FD5172B869318968DF83F58DD3D49B6 13A6145DF709ED38F30D9E4265B8A74C216C4786461FC69561470FD88071B25B 29B566A7D90E2C0231FE069AA778C4729414B3BA86BE81EE3D10A858CF8CB58E 55887AE11F571B70759EFE26E1632A075D64531973A353D8556746CEAAA0EBFE 704C89C002A3DDC2A2F91EADD17ED0189017D3AF56AD3C151C2C65EC78BC0041 19098067222A7F623E73015085E14BB7DD82FA9597DC88A9C103EB363ACED8CA FF701F8E48D52AEB709132056634A9412B950D1CD33D49ABEAB07F72E3046E7F 953FFE5AC83ED706FE02FE86E2CAEA5E10FAA750C0813CB6CDF955C4E53D442B 58D8E166E1CDCFD1D6085280EC3FD4ADC94DC34766AEE2B9E6CE9682F3922268 204D1570D43551CB8C86C6DB67AB230A4B2B223C346289E55E795C1C84A88504 1C9A392E928A2F6EA94D9467DFF44C3F0A364211978AF98E0AF5539CAE1C1AD3 AA0E7D1507E3F719EBA70520AA52DA78A37EA1444F82A79B9059AC55D822222C 4CC2B91C2D27A4B5CDDADF59FF2992450900928436A7E6533C727D857139CB0E E7958E0465B22B093A99DA435A53EA061D56147219F0CEC27902E614A4B415DA 421F277B2A3AA7D5D2B7BCE852E8D4D4FF336ED7B58EF78635A1B686C7A73DD9 5604CDA9F25962BE28BAC5DBFB242F67D20F642A5791C18018205303EA3C1464 2D4B0E1C41B0A5E0166CEE8FBEC1477938DE3230423B8F75B3C1DC3B2D1C4E43 157E8D1A549198BBE0DAA61BAC099E956EC04A3401FF26E0E5B27462F7235A82 3E73AD4DE1E3837DC493023A8A6FAD02276886C6DBF091DD5B3DFF3E2E76089D B828FFE0CABEF94CFA4AD2BF7F42CDFC98B3818A4CF9ED1F36C6CF254293E8FE 2679A273395A0E675CD656B24F02236167544ADC1A70E09F290B835732627032 9D7C8BD3D49E382A7732E6D65CFEE27FFF86F555D3CDD62834BEF4530B5D5EAE 4F745AB2968A80C5E6BD93DC9C176938E101EB2A416372992784837E91D669B7 6041CEE4E5C993C4EB85F1DF93BF8A50BC1644B00A548145ABA7FBB49C80ED46 E95A7F2FA76B3AFA26B99BC9292CE4E5A0D9AD7E58238CC1C8167B35A041EF8C DA6323DA9C0257E8D6AB05FB23F7D2A1203B590134EB63CB52414D4BCBE6D6FB F093F39607706A4A9828D0612EFFD1777E6295BDDD159281534BCA2773B9A17A 8CB34B04638F56D4B90524387E55DCC0698111036F67F350F6440C467572C290 39F1ED6F4CEB1781B4727F2D36B50087991F0433614E58B2A5E574FF5B04C3EA E6ACA37EAB9B7756CF182B4DB13F87E898C61703E9060AA1D2A92866070BD651 32DAE76C3F3B0415EBE65548D6427DEC71B6B6C4D12FD96D9E2E68C27CB0113F 7A96A144EE0301DF053FA151FA92E4BA861E4CDE6FF2B08FB636C0193362F1FB E4AFCA8E14BF85C33B39A92116DBD33D3B83603DC56AB4C9E9B3CD697EA13E5B F6700BCA0C9BF34EAEE17D5B2CB6C6BAF12A0756D45CDDE4E39B41C4BF752A0A 12E86B6BB4C6731B2532D0858AD568DA885A093F5D535AFEE1926FC093BB8090 A8A6B35BE604BA0373D5261D314F030A6FA39E28E4734D584C9FC568F72113EB D2A216EC463E47A55A8549321475A9C25A46A73A722A1D1B04DD07CDD3B38B6F DF81322EB7BB4D18FC189F4088D5EAEF1DD1ACABF00A744F62A900C17B029DEF D3CE1A5CB703B1BC88B7CE0ADF58E165EC0C5A38D34B7E3AB404C47A12B1BFF0 568C0DB3BC4023EAF2270339A9B4717CA01C5D592191521BC59F4DF5EB74D0FC 339C7BB0C0402807FD10E53186C853BD749C88206533242138D13C6551B8B5C4 21BB9FC9EB114DE555885AF9B38EEC239C5AEA2BE856C69481EBC741DCC40E43 18321B37D5B7A564F8684E2EB1086C303CCCACA70B9359CF5931A2E1EA8FE14C A4425B093E79E1252F542AC5B389953C6DBD6E1A55D3CA7A114FE2C7572CB167 1BDD7F7F01132B1E88BD68BB695071ABC1E249B1006CF94A5C6E94DA2E41FEA9 AA5957E0B526337D0C91ECA29269DB0AAAD54D2B75B164EFC2EE7BA56F79475A 300E42A8CBAC129BEE1147032F39303C67766B03B2C0D3AF8560A22C9E0C4C79 DBCC9593E180E8A0B56202A9AD29B376FDA49AE9B4BD5F441D29105074DEE148 D796D49BC23F0FC3E2B933AFA2F137113BC9BB77E1E045E4AB0096EC8DAB561F 3DD4BA65DB6417CE0B4A4F796434DD873DCD235BA53F405DB7757EA251DC1434 4DF9CEC8E64948D4352F6E1D8988BE87CD25AAA76EAF8803EB853F4060B510C4 1DE6112CD129EFAB30CA00DA10158562C03D9694E78BE4E463F2055200CAEAAB F594218E4C90DA84C9CF9547146901C6DFF5A53361FD89B3FE03C798304CC628 0F66C445E31CF4CB6624BC11741FFD44DD55F2F6F95DCED0A9E5C0414A9CAF96 BF1F161C9B15A19024C240CE9C2A406906AF06C8E9106A8DB416D2D2A8145B00 8435F2EB02B4F598988F45A2789D33DFDC62E82855D1A6A26A23514ED95E6560 CD624249B0013682ACFC0BB5F7BAFFC7C14F51F9586E603D180C5DD0F0CB50F3 7F44A6F2F41D7D21FEFD195FE2393D4FEA223AA20FFF10CB965C82A95CF645BB 4DA1E593F756500960B0991FD60CACB6FFC4DA42CE5F303591A92BBB87873726 3B4B0D47DCED1CE81BED49D2E8E92BE3790FD2B5A02DCE2AA446C4AD12AA9D5D 6F2E626DA39C453D08573C71AA4B575A6271E5B3995DA8F1F954315850A0C67D 8E97CECFC2CC0182A58BB71182A520762718015E4CFD16C0EDCCE9B50499F275 6DA59EDA4FB754495F6D4A4069780A1460599C6CF927ABA82D65400C87AB56DB 31F5E9262BD65E7464F6D13356CFC0D461EEE8EB46AF788CB3CF9AD617DB1F49 9C4C7CFDCC8C41B4F432C0F0C0B06C0010BB0B847CD0E53A7099CCEC0CBFD8BC 7F266BE67EC853CDCB21B267F59F3598F91F2729B72775A4A5DBF1D19493E41B F3649545676DFAABCE60FC38A92B8068D112E96873CC5C971F1F2ECF710BCAA2 D3F826F04D1B62EA3A8E3A28CA04A5F7E078F3B57C089FC7E39F3E1345145994 2434AE720288BEACA9704EDB43E81072967831CAC3F8DF4B5625A927582A775A 79EF90FD497E023FA2CE3B61614B292E7AC84738D3FE4BFBA151E05A91C2DE85 7CED6324D0F8F4B86865749AE83CD27A260408454DB59D74E234E971CB866E22 7E128A30D3BA72377DEDA8E177E4B9ED58B0EE0B4544743B7FC1433D5C3AC5E5 2AB9A7B6CF976C9C576C97F9B371AE11B0F2A48E497385433EB40261DB62FF95 7111B93083A4F1E994EB412FE54C73E8E5C40AB2474743A029CA7F0E0AD01799 67C2A3D6761C1CE5F48D6919E81CE3E7307372555AEE331D546C841CA9E9FBBC FBC3B628412B200C67474FE8D430A3B504DA27D32C6CE4D2CD65CB9F9241BE21 227822D62D6898D8C27F167C4EAAE9FFE96E1570351C2C27BBC834ADF600AA15 7D6736D8AEC691D5B920908F28D8AE5BC3A072400659754677DA7DB6AEFFB618 86A96DB9E75D06F3D1129C4D26809E9C949E6B77F4CA9133B9DCC97441F08EC6 DB3F3E19A89D2F276E839D19E1D63636802F3491DFB172A4641A6D8A6EF6D4AF 5CD5DA135CFDE7D4D5BC962B6DFD8D2319AB6BE74C3BBCE5D229334B3135642E 92D34823154206B10ED1755B866D77D0302944DB642E10F44620A299BD6C0876 9209D6BBC06D67D6E1DE3EFBD97E20D8483D2ADE4098E413CAE038C7FDCDECAB DAB85D2E81B5A6EA1E6B7DAC80C37073183714250E319EAE72404A1C8D05A2A3 89974B350493B723E0D7247652B010175DCE4F76F1ACCB3F4C2C1178FA1519D0 A0B058AC88394B2EF3EAA8EB75A5CAADFC4ECFAB43F932A5C07A59E5B1706C0E EF1176EB43D9F47A9FCDC348BA9889D03A495BF424531BEB29E657B59867A9EB 453188210C8F5A4BBCF995EFAADCB7103C435B80C43A11239D5EC1E6D4951A7E 28E7F7B0389823ACB7C80666E98ACB4A28A2BFA6833CF66C3D4391AB5B691E57 FDE31DD7CA10B98CCCD0C36422B4C048862DEACADA969EC4F18ABB6F2180CA20 3B736576F57042B41C91EDFF8717442BEECE1A855B7B92D59C6D06F91C50CC4F 6342EED92163A0D7202F895EE3ADBBD46CBA7A73E4A07370B8D0BB1480DCD7D1 CB68625C79B422B0FD20327DB959825871C45F5458E4A50CCC9DEC8512419899 A6EB2225B1EC632B37746701B98BBDB48310584CFBDEC1A71CFE0BE11C203CA6 1BAF8830604B62CA2D42FCD379DF7B0FFCF2880D6479712EF67987BA253B6A09 0D7D427B97BB1A0085864A11168989F876BC91AD9CC676779FCBC68E760571AA 968BF4B2B89DB261FA982AC9129E16696119211699981C0ED4D4E0728E406F2F 5694907FBB7A9908455AC1DAA41C4BB1C31287C06C1A01B070F81C697A274185 5F3E14FBFB7E08B440FD2B0F553CC7A9CEF52277AE18655353606D908FBF605C 4164AFA45A2C808963AF72C6AC975BEAB7DA0A0394F2FEE2CA89197AE4556085 81E00705D0B171A2F9A0270C010F70E2F5A248D99BD2CF9096324650F4F578FD EE721503B4AC7553031F1B621329B048B8733211295DDDA2679F115BCD01CBDB 5FF5CB29A8DD8719E90BD545B745511A81D98AC26B17A92913F3909C8164F18F 97D447C9CF978A146A222EFFDD223FC062811059F0C8549B223720AB1168F5DD 31BD154F3534698BE8F190C3C5E32AB884E0F7ADA897EFD1DDBB458F6BC51845 B5C090985B93488ACC6B75003DDC7FEE711B9192D7329D5BEBC84ED3953B3FCE 521E23530D2A092673EB6B1A75A2DA3DB32EF84A9B4681857CEB0B4C88FAE10A 9A673D0A3187B9D235142DBC722BE2FC10665AE6D34C5920BB17292E7038883A 99598DD025F7DEF15346E92F6C9B8BA2534C59B3451DAF67C3C95910B1F43F6E B135A61F7EE0CBE15C622B7C2B082CAECE3515963A4BB67E62020FDF14A2CB3A 0CEB679E8C849703FBA4A9F632A10C7E005FA1E0F5392908D0A85B9B2089B630 92187BC8D70B0C9FA762A9841169F70AE5E3977490F171 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR8 %!PS-AdobeFont-1.1: CMR8 1.0 %%CreationDate: 1991 Aug 20 16:39:40 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-36 -250 1070 750}readonly def /UniqueID 5000791 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C 68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65 48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3 9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB 0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB 8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466 FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3 9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62 D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8 9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5 ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6 10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582 83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493 2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA901C077A059F709F30 4384CB5FA748F2054FAD9A7A43D4EA427918BD414F766531136B60C3477C6632 BEFE3897B58C19276A301926C2AEF2756B367319772C9B201C49B4D935A8267B 041D6F1783B6AEA4DAC4F5B3507D7032AA640AAB12E343A4E9BDCF419C04A721 3888B25AF4E293AACED9A6BDC78E61DA1C424C6503CC1885F762BADD50DF87A0 8B6D1BA96CC415579DE9A26786E1EF8DC968117FFF80895C8936EC004F6D41F3 0509D7D6C09754A97BFE0D0F2BCC90B6F69D18C8C49F8878F7BE0C373843A6E6 E88A34BF5C7B89FA171362B339ACB76BCDE952D61527E46A69BB21F6BA2D8879 3B65407715598FA03847A9B7BE02E29248646696ADCEEEC7E55D02A736A42B3D 6C6B11DF34FA27F0EFC1DD7D90FB20C5340A70CB2EE6F467AE8E613E881BF852 05918DE48535416AA30F0A1C29098DE602B8FAC2033C4060E1BE479EE6494D95 B728B1F9E6E1665ADF4B41B28821E4C885B8D154F2E0B536A39B5CC68A34A7FF 8783F7A6A1076F3CC4CFBC09442077F7F287D4E8AB7E6A2B02EEA516F6306690 FCD05653D224855EFE950FD91B6C922695E310146C679C730CB737488DFAF856 FA653911EFB6BE094F52E6690EFE7F104AF29B666385F8393178BDB86E470881 BB1393A31AA3E54F0DEEF8FE315925BE8664F8C7389BD9580558306E747136E4 850D413534C8BF894251C44BA43847E745C16F861B2DABE695FB3DF56A125A18 DDD143C0818D68F3F1092CED468F8CA191DF8E8E5DC1CF7E950EEA56EACB98BF 111DDAA15B0B24B93D4F98C073B25704B85E1ACDA43C177A391381020A439D0D B7B9E71EDE1778524487AC569499B929334C8515316924333289981FFA67499A 97D780134CBD128AB03DB594D5ADE5A848C6FE6F00FA34791C0594308AFC5884 E470973A25ED1089041FEF074B95348D995D015F6EB7CF554A00BC4C4BB63194 89E0C34583C2347FE1F596462BFD05281CF9F3B1DD0C607FAB8BA738C7CCEF2C F9A22C9FD03F63839FCCB6077A7F7247BF9CCB1415B32D8154919DA4541A2447 BF57F11DB5EF77365DC345F773A349163B2ADE163BBC07DE101414306DA4838C 58B0063FECE871CF213F495ACEFB9D78918349E234B8584957687455A5880A2F A3985B2C4A122131162DA3D351371BEF2E2D1AFCE5F6A2D779C64BC6C6F20B13 4FF07F6BB5D7D0F5C10A4B5C151165E2CD79F105B3CEC0BA9D079C9C792021DF EF4F5C0CA8D91EC1C8C85350785D72EF03E62199B2006269E0FB73ADB31618CA B0CCA5309322A786ACF92512482A9B61357586BE585F9108739901EFAA70B630 5B6C8E41B33023AC1164535D0EBFA159C33882872AE52D3909327969E8EF7209 C4989FE89316295BD2732852105C46910CD98B2A4D84C9A799D2578F0AFF9164 6EAB86CA93B71214750B85C386AF574B5BBE6E20FBC94649415244F338B53B56 DCE7378CA7A789F7686F4A1B8A8D10B80B6918C6A53196499BAE874E6122E390 0E60573742B5633F6C553387094BE242BDFFBA8F3BCB200D3E967468350883E5 2559360CD392B4257903219E2C285612453D4E6A3A949B3D35D6EB0795B48221 F2CE69031B59EEB92B36204C720302FD5AB415C9604476108A50411CC1EF026D A99F6304A576D79C7B4B5A77581CF4CEBA9B8D072EFE099550D44143FBE59703 AA17627B553099CA15645FF3AE433E27FB4819C70BB6CA1129E176CD33D48502 5D9DB404C8FB1000FF10388A3C1EAD4B5B57ACA2AD59696D3D9D26B9AFA519B6 2DD64B13114F7D88C834D681EEF9A42CD6AA816966CA152AF392EBB6DCDABB6A 3B1432AEAD9550E5708939979B81C85995EEE58A2C22B096E6BA7D923AD275A1 6609D1D451AF92D2392E5617E392DE85572F62DB6AC6696C2CF74E02B99E505F 1B7832D976E26A5E8B82E47ACB72B56B7728144ECD6BAF6C7372A47D3EE6EB77 2E16EF9CA9D45415937318A9DC4495DB3ABCAFF04189CCF7D876A83A1D5C8B0A AD789113F8554CF474443EED5D7A7278CF6249B7A42E4FE74BFB51848797AC1E 43392BAE939E07DEC47B20EE9E31A227CB1B4A350E74898D1899975E51E25886 E6CC1EB734F73D00D5E575D36A6E943C044669E19B3245A9CE85B422576F8405 1CFA5030842F97F16DE75BD7B2D4D3CF7D1119D4FCE0C29399EF6BF098CE0CEA 8DF7C34591B825355EE3308FB76A72E9D016AB65E44B2F87AD405466D218B6DB 5C7BE0D72C0A1AFBE467F262AA3E740C092DF60063E861514D2C2FBBB9D5213B DECAFD791FA1FE0B7ED70D54532F7CBD7313111265BD89E3416E801A567DBB90 F6372F86B82A0B9EB689B2FB554F533B5164ADAF56D5B8C597C8D4FDF8DA3D21 42522BACB72A6C4A06544D69732F354F7452DA01FDD00E1291D1C4792FE42CB8 CD7B54DF77643DC2977FEF99D2CE2EB50AFB7C29DEA5F7AE63B2E47FCECE88C7 817ED27F5F6643E399E2F5826733DD2BD9800338127D9D6A51650FABE0CAE3C5 F59B1BEB9CC33AE800E01FEFD14C 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY9 %!PS-AdobeFont-1.1: CMSY9 1.0 %%CreationDate: 1991 Aug 15 07:22:27 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-30 -958 1146 777}readonly def /UniqueID 5000819 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A 27D1663E0B62F461F6E40A5D6676D0037D33F24E2FAC2B0009AD3C8350CDF8CC 65BCA87979C36D14CB552E9A985E48BE4E88ECA16DF418749AF04FDD2B0E1380 D281BB2476BB45FF30946B247DFD7F57305FA87E50CA338121C71CDFDF927A9C 77FF14CB4A1D6D80356FB1171ED38C37702350497B44E42CE31DB2F493807DAA 15B887C671199A54C4C1294BC520F5538C15556BC43C9F62342B121C6DCD6C5F 491DA47FF360201EE21C08A781ED0589A6DF91B99FE118B9B29E4F068672E52F 1A06C514D91C4C937D4E642503392B1CD1BF5AF0BCA28EBD840AD76CC39AD7AA CF2C05711374F7849708E1106F88737C9AA60612D384CA8C173FF1031EBF6EA4 176136DE1B9F29E40E82680A2CFFDC24DA05853307F1D1F6537D061EBCBCC5AE E6316380ECD8E63ACBEA9FD1FC28949366850AAABCBC9552CAB2CA3BB934C8A2 14C9DFADE24D9214858B1D42B2171DB18A475AF78868C2549F19555AAB07F586 58B28541C74E14F28B68DA42A9D46C031CBD74FC09BFEAA3AC1DDC68B7B71B81 6003C9C6AC8EDDDC046D247A2B8AFA63A3B1BA1F12AE0B4DD07327F0138BF470 4630E4B5DA55C194F454EE2E872E0ABE6B879DF2E87CF81F75D79F458F7D3F81 FDB76C15EEC4125D18685E1D8591C54C0B0D069E2ED73434617B9D30E64457E6 1542E4630E848948FF2747D5C31B9C314AE108931003DB9F76644DB43D245499 2D28E8452E50B1945E13A5DE2A8B93523D3671D1C7ED07EAB6FFB559E5A1F828 B22D2FAF349B40C3B31FE806595F67C5E75260514F456FA0013668D948619514 0EFFC35C1AA131AF8578A254AE62CA75A6631489C78CCE633A3B302BFACB 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI10 %!PS-AdobeFont-1.1: CMMI10 1.100 %%CreationDate: 1996 Jul 23 07:53:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-32 -250 1048 750}readonly def /UniqueID 5087385 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E 6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF 8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE 03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 95601766758820333028C2295F4A921FA3F2A6AC5D3E60C0AE92045EC00FB280 3D2048F4EF9208E7F0D7CF3323F27F29A3DC6D93955510C7D941CA662359FF53 62A1FC66C32728728BBC60CB3F9DFDB7E4FB0F8DE1ED41612DFE344851ACBA9E 3FB147945E1DF31D6F5502ABA8A039BA4A6C7E836CD994965CCAFFACED9C66F2 5124E1E524858A877EDDF0C7855F768430DCEB2C28590AD877F219A7551468DE 95A282861C6D4899F4B1CE721F0C099C183C5D21D84D6DB934E71D04A4BEE997 6B31C29524901E5E257A01208E01817647100C9EEB32A0B5D13D181A21D6ACC2 A5E1D898B9DC07D3D0B9522855A6819416400306AB19F1F07C4E0B7C9E4721FA D67B1B824D11441064BD5E8504DFE4026591FB602AF3DF1D122BDF5A275D13FA 4743750C44A854A464D94737B96FB7777F68B5891E79E13759A30C72C36A77DB FADCC8293638FF6765457116987F8F80B33C7E1C2BB25F50C3CD3F1E4A67FD59 F90373E4F1CFCAFDB25DFA8B23A1135D894193AFAF43C907058BBAD834965F9D 7BDF307C7C493972C5E1CDF8D64AD0A5A264D34B2C904F5CFE65BFAD445026A5 B532CE88BEA82BB68401CD9A5E433526912360AE983191E84B20165C4B521D41 FAC4110739710791B00957E469BE3E77C90CC6588672DF1EC908795B188F84E6 7E25466003078C7C9E7AE528A32A692E9B7ED715CA63A585549F0D110AF43FF0 2946B2921CA3DE1314C6BBC1DE9C464DA21FED87BA3327483BA2E81A99DF1322 2610C171907EE80DD9DB7D441B7A9828759090D81617C7E86C2BDB0C40288D64 D5B51055EF2364DA2F2E274D8D174E3FC151714C696ACC93FFD2083C5A4517D7 5D9AFCF8E558982A86DFAECC9A117859B8FF4F5A1E2FA0F810574A2ECD3375AB C28170779472E1F4C6CBCA61E57754D47650CAD3D1293C408E26FFC69A5BBCCC 65E79B5A9131BCB2B4AA66806235EF54D132FFB3F381CEF0AF065082BBC6CF32 BEA435AEE0169AC93AF03A67F0F17E05302C80D217665B0633B303AE5140EBE1 F5A0183C49DAF1C21FA6F50C4A4C81756A80F8F13912B741A4383FFE3154A418 499DAE1176B4B342F798C9CB6B75CD45344A082CDD09A10850AD06D5A280FB41 86D6D8BC890A0E8A7B60A9457452F165686043F3AF8FAFFDB820B03D50E147CB 8C74F35319A9B50254C40C39798BFA9D0C9245D282CA705572E854AFA2714C36 C8D4494B5916EB130E14D228A85CED40FD2B05ADF910810FD91C02CD9199D769 FA89F9B0A430C2A24F2AC1118218308D97FA41D60CB4A209633275F751F5BAB4 D2B8F8E81181624A39C98956AA9C8AB49E4FA67F14040359D6772DD0E22C60B3 72BE89A5B799FF10556B28BC8566DB50574E3BE3A88561C6CB46AB2A7A5073D7 DB724A22FB9D79EFC06E58D2F9F56572464C1D86C77D588065205C1FE095AD9E B13EF910A8C5C5039EA0245C089DD6535E11006EE7FD15550A8EABDB4159E9A0 EA637E16ED6F86787A6E5E884FEEA70A42FC5860257D2627821B100295C120E9 ED1156295F1A8518BDD557B371D235071D5636BE2CFA938A3933B234456D9258 46CFBDE76E1A97F9631A94B2307134B7A3313B09C52B9123511AFCBC0C5B47D9 4AAE8148F7492CAEEB4E100527E046F9B4C5E46F9C6F83B733CCE444E0105EEB E48E963BC5B348EB00A1625F75EB0BCB55777E702B9BE4EAD137E653C5153489 18DB1ADC16E2D6FF45264CFF7EB36469319C15558122A956E7F4B517FC1BA5D9 11C36693907EEF406A8FA23FC74EDE4A06955DD8FBC04BE1709FA9B8335FADE5 59830F732003738505090BB3D17CE2F07EE1B0655F80BF453AA07BD9A33A52E0 C3458619CDBFA0C99A3E309E95339F4EA02B8F7298D6493A21272645BFD7C74A 90ECFD938E3909FEFDAED9245C15B34A3C8A9C860B221FEE548B71DEE053F21E DCC63EAB9E4A2A7C5B9D5B87EC5E472651AF971C396FA7612DC3B0DF28424F73 B3B8C14AD68C8A00C0132FEC1C54133E7836ECAD334D06D8C8897AA633E2CBA4 814FE26397AA5FCB5C4989DA44ECAEB5893D9D78B13AC887B03DD18BFCDE4376 5A41FDBA0336BF3704333EBB661135F66BD5E4AC031580C30FC8C0E2C8090734 12213F85A14863F735373A399C410626E2D6C1C54B37074921E66D112364079A 0262198C22276CAEA422135414C7444094D60328961EBE0493615747AF5674E1 F9BEF9D0C466EE7FCDC2710736B0A01E0BE0DDB6E4EC75ADAD2EF58582140AD6 539F0381EC58A715533C510E492C44DFDFE68648D3DD6B9A92635AB07A5E50A9 65299167A281AF1F0D5EA82A2B2398BEE53B0F7804EA370E3516FFCB4B4DDD9D 0AAA13A3EE1C8248C0A9F186AB4BA240715A72729793601483BADE420DD1B4E4 C647A2583B7D057A20BC8A1EF57D9192403DCBD6A2B76EB067D17DF5ACFD7A82 1C381B93CE945DB3ABA43D5445C7CF8D4370D2608A61001CB46AB6BA68E3FC3F 9789F1A22282263B30D46FB0F8ED440807F33E427AAD0212B45235172D949A16 2F3077E5380C952281372034EEBC9057E2E586CC156EE818911F34D5F1524A52 36863BF1CEDDFCCC5FF580E2CBE2D875FC34EDF5FBEAEEE4F1D4CEB25F99772F A187FF519019403E028E0A017B2C43989A0BB60D0811A4153C9B154CE144A87E 9EB69DA821620693C7FB5CF97E0BF72B68B2FF3C9558A263DE28669293691C8A 89396379582450C425464B84E9438A15E97981FD825CE175D58D43C8DF0978EC 438CECE9AB53F591F4F6FCAB5ABB0F27AEE75B555AC0958D8465E29B590974C6 4175631E9B63C5B448E82D7AC3FC210CDDE1DAEF2E72EEE67A344C78D2933EF9 FBEA2C4D3B98DBE464DDA8F6F27AC5495CDAF9CC46B3CA7DBF5E4196C99ADFB5 2DBBC6E4A74FE1628844698490FAAE51E0638015E3C30B262545106D9189144F B93B37E595B1A709960DAA5CD551CD9714B5D4AA3F063DB4DB50FD34B3555492 150CC23CA25D585BEFA8AC926CD30D5380ABDC8B37AC8DF4CC80F8C90CF95AB9 6753536BEF698BB1E217C08B9EAF2E2DB30C931C8D72799671422ABC598DE770 EB8193A7B5DDEB8F0917F28B5D3119E8E82A18FAA3E2288E03199BA6772E9B57 1B60D178721633C7AB2FE8AFF5C1415A9B1111D768F40E45C2C0E89FC39902A1 3DA5070DA859C87A18173735565DF690C3A9B1CA85576D718ACF69246FC282C1 C2716CB69C75F56E69DE202C89D481F483F98E471251F0AC263E1B825AD4443C 69ABF9102A20E562766C1CC40ECEF3D983EF5A6B61A8A943A2128E4AA1CEA7DA DEBEAABF467CD955157F115DD9D8208FD6D216EF935519994F309F9CAEBCD1F0 A809FC78B24CDA00C7CED9924CA5CFD3B55266E30B1A0CDAAD5EF05F01AF6646 7C7682C5AB44BC6D0FB5036C931AC7642681775F907EC11628D8B905C90ACD6C EED5884FC4240DF59166C4AA0893C39C0EC851C58D0E6080E6CA3364CC7F5D3A 0C12EF9F53247EB4AB66FAC32FCD9E7F6AFF49D0107AEB6EF3B4887464C13AA6 E968BE7335070EEDFB2E9244B60544FF7F1947 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT12 %!PS-AdobeFont-1.1: CMTT12 1.0 %%CreationDate: 1991 Aug 20 16:45:46 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-1 -234 524 695}readonly def /UniqueID 5000833 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F0364CD5660FE13FF01BC20148F9C480BCD0E C81D5BFC66F04993DD73F0BE0AB13F53B1BA79FE5F618A4F672B16C06BE3251E 3BCB599BFA0E6041FBD558475370D693A959259A2699BA6E97CF40435B8E8A4B 426343E145DF14E59028D4E0941AB537E34024E6CDE0EA9AF8038A3260A0358D D5B1DB53582F0DAB7ADE29CF8DBA0992D5A94672DFF91573F38D9BFD1A57E161 E52DA1B41433C82261E47F79997DF603935D2A187A95F7A25D148FB3C2B6AA32 6B982C32C6B25867871ED7B38E150031A3DE568C8D3731A779EAAF09AC5CE6C5 A129C4147E56882B8068DF37C97C761694F1316AF93E33FF7E0B2F1F252735CE 0D9F7BCE136B06EE967ABE0C8DF24DCBBF99874702ED252B677F407CB39678CC 85DDFC2F45C552BA967E4158165ED16FECC4E32AC4D3B3EB8046DCDD37C92FDF F1F3710BB8EF5CA358ABACA33C7E5ACAD6BF5DC58BDFC3CF09BA2A38291D45A4 C15FF1916FE2EC47FDC80911EB9C61F5D355BEDFC9DB17588547763AC5F0B1CC 12D2FFB32E0803D37E3281DA9CE36C5433655526ACFB3A301C56FAB09DF07B5D 048B47687348DEB96F3F9C53CE56DDD312B93D3918CD92AF53FB9461864D11B8 0138918D0B1270C54873C4012CDE6F886DB11BCEA04B023EBB43E0D0A06BE725 741D08B9DB688731A6C8F9F0B1FDFA20C46ABF1BE836FCA0757242BE4780A41B C19304DEC802CBAFBD0D116B1F98C01BF41ACD72DA8C56F8A03756E1850CF32D F657FFF4377B43F208A3F33191F9F6F36FBB0CDA3514D68ACD8DCB2FE67AB377 C6BD16D11FFFD61E05B8B311EBE8D05013ECF1D03F574982E3581A188E337498 3B68080D69F7D88F2863362577B6566B9526D1E05DCAEE47F7E336489F4CF445 E5F4E1DD5EF2B795F184EC5B427C77D49CF637A000F8528A0F04BADE41FEBA13 3AAB933E147D9C29F0B066B9B758B617A2085A0D712E6119A027681C7A8EA615 3FD41B0C8F897899954B11906170165A4AA80CC1F98D38F4F32E8AD4E98372BA 0B5BEC4F7E45B8E9C4EFB63102615CBA98DEC913BBEA46DDEC81BC9EEAFCFC8F 24FB2C048DC453FFBB342E6E7CDF60D011AF0E73362D1941F4020423191D00E7 E7FAF2944508B073FDBF097604401FDDC52DCBC0078A7CF625C17839279286C8 D1DD0A710EA847119C63368368336456302D1AE8AB1D6956BBBF067BDB654DA6 C34F2DBA24BA5AE80943FE281307D3AB7204D2E20F817536C2D2C4B0E908F9BC 545A113A384740614711EDD80FE694B810B8519B6D567EE81E4D130E538BFC58 FD059B04F0975D43B1B6FCF078D4897B8230A69C6B7553334225D447CDA83FA9 F186D907ABD5B9FEE9D12637E0B87CA782B692931376A2985DEA9B7FA9EAEA22 4E34B98ED6436C6A1D5E75D910CA27D908C25B4C8DD3405BC379E2F13C106879 E6A6BE805A8D5726D18F00B408002CB00D08E67D135DB7FEAF690E0628723DC1 9945033433FC65735152BC23A45CB415D817EAB4FAD7D87C66237D7200EED9E3 33D750F6D82EDA5CC12159343A132A1BF4CAFF3EE2B61433E1B4CF9CA75E6EFB 2FFEF7824F0E7FD781BDF099CA94B7DF3144A2AF435B431068A81EBB6067DC1A 0E37E3D1DC5AE2739AF09258835B10FDB320702B9D6017A86D85F1384C0EA752 119391E0D88862D643B4C8695DB8A113BE7F00ADFF175C7DEF19A3464A502ED4 906B61C69FFDA27AED4FA48F38A54B14273AA9B3FD15BBEC72B98B576BAEECC7 08B2DE39CC5077A9C71E60750482CCD98A5ADD8E2E55FC7732EC1E051F93AEF6 AC04A303C96FCAA8323E578128E501B03BDAA8F0D96FAC82EF96646B508A3838 B5753051A2FAEEC6FF44B83E0A42B27CD5B792DDF611BB374BDB82F479D4E2C5 1181B56218ACE2DBCBAD6353DDFAF92566F369F5882C2CB54CAEBBFA9482166F 43131595AD69DEB6D2B4B6C7D5EC4FCA392EFB4A3DA70479CD3C0023EDD5E23D FFD19718F4B241C31148425A0B08CB555C183D24BA40DB641ACD8DEFCD5FA3B8 D7B9AA5C2C1BEFA7C1D7619B2955E13D026B7A559CF9BAD7C0774EF6E299BF11 CE5B63301BF60C8ACEECFBE9B1C16044D1CF775582F0459DC5C2C318EABAE8B9 3FFA15E861811FEDF410E8BE60BD298FAC78115684596629E5B94FC9434FF388 B78A2B5202CBDC3A51D495D7101367FFF84C3D5A885ED11128948D4C1289BF4E C8BCED103E0AD54689015D25C054C55FBA314E4BABD80F71136010AF52CE3707 A6D73C69410A3B216DEEDE6C0AF9FDE67EA2A7C72C0EE9C41577AED8606B01F0 CC0D15D25907ABCA349D92BE103D4DB7F07896A4B4C2EF79C3313C220B920EBE FE2F0D8096E1B142AC01D54E2089BC6DBB96A700FA7591B5D0FB474286A2281A 8AB7FAFA50523E18B46EC68E3ACB974E770AAA430B286484AA2B76EE81FA8AF0 E026502F863EFAF0B35215645BBF7B82C02A3C5E3A6BFB2656E8E79909634845 ECA09404093D4145439800EC2B5F12005C594F9B7E17A560C1F6F5AE8E7172A2 98883B9B20A10471A4EAEED1C25B84B350407BC8864BCBE87432567A4712DAD4 51D3ACE4A4751022A401461A63773A1AE7E8F6C6AED8015C0E3CE2CE8CECA054 2571AB34338356454743464027412D5AFFFDE8C8837E3062A8F035DC96A60EA1 04DC41130595D38DC687584D86C49B03C7B86DFDEB3A0FADACA2836B02AA4EE0 EF40F0A8E4AD1D29DDC7B1CDEDC1B31AE2CCC8DA12F4A4D5A8E7FA5A50E85C6A B1FD8CD87E20E0B245DDB1F0CE35DEF58FCF2039741DEC418771C8BF1593C427 20922F503B82A824FB935AFB00DB6F6BB652354D6E05ABCB370969C04F1BA338 554CC5CA02BDCCA9A49721D683D0F566D993807E66FE223EE6BFDC3A76D9E9E6 7D6F8ECD3D604CC66CA5966F0ADEDB718A86E7A331EA330EA3CF86B50DBAB70A ABF831460E566C3A06E1A813BBEEEAC974BB4D15A94585D5037EAB57FB8C026F 279ABB965AF06F6A7B770C613424731343343134A7152FA17A639D9778FC3044 53C2C4E6C0E9392FB21DD831FAD2BCD318654DD805E7DA8D3B752B0EFD30466B FCBB33A655F2C173521A508C5B24FB318B3A5184D206EC533A256B55A2D8DFDD 0F3ADDCA92C1E699885A529DBE12F06DDD4BE0A945005DAE7703C7332248D6FF 9EF67761AB4453565B7391F1EA57B9D4D91592420DD6DF41EF969895E0125EE9 096AE4D644D9351B14DDB5E459B5197632D750AB51ED29F72BD187BA293EBFD2 F641529CBE165429AC0226C0FC970EAB78FCEC8DBC4240531E2DC5485D8BA070 17723A9662921891539A2B0FA07BA3751C097E108706CB301CAA3DCC0B583C43 24F5F8E90B449ACDDE8DD5CFDD9977A89D96B81140743802ACA6C363D02D5FC4 A6A60DAB56F250139C525D45179DF0850F4F3DFC383217816980EF2B0F42F307 8C27CB7A7DD5250808883FE4F93ACD2F5C8B72F5CF2A27A1BBBC5ED5C5C03A22 BBEF509877DF505D2E3856ECC1C47FE40568A4685A67054DED281D9A26F0E6E7 F878065DAC9A813A46DBD8E41B7009706EC2BB6E8338E6D6951CABFBF7F4337D 42E794A4FE98C995260460863874CF3B0E0CA0386F38D8036FE5926793D65F2A 65D2DE2822A91D0BCAA594210FB54F8222D3003CBD8396C6DB5370EC48AEB1C6 CB6109BD8AB8292440E85A433572B522CAC1C5CF2578D8CE888F3946296ED500 5B4B97AB5126BE2B2DDB5707EC28396881239D57FCE455D28A7F6D5FCD16A616 44B3D2DA8465447C63270DD7EA2C34F7A62838778B325611C0BD7C432020EE87 9C811C8902D8708308DEF45259B70D546556247C95146F66B9E30A4AF55FD3B9 8D07CA23AB1F49F61984E800C1352677A344894548B526BE7D6D9859F290A6F9 92E4B0A380E3B27DC13BB6EA9BBCA8B78298DAA8DA5A483EC30743CBE6B34853 726016FF3EA24C3C780BC9BCC1639AE0AA2E9D4F8F707E4B2649C182E3654B97 E7426C18C67D9D81BC3ABA24A81259FB8007D3126DDEB3FF49A427A5E20EC292 1F3DBB4CC937B96773C66BF1BA2A47ABE6700E322C5CFB0E81363FF3C2F07C5C E09F7B9030C8E8FCD43B5D39B44A201DC6E289E9216508C91C376B9F4C9F439F E902EC005A5984BD26874EFD97BF0CF1B2ECA9539A29A3891B88257A0C83579C 32089836FD8DF128E20ECDE7D839EF53B27F64D6C62A68EC9D3EFC50A3958916 0184C60F237A6CCF8B2C31BF6772BC5F82D2A80CEE9B38C8C3C04C7DEB61726B 4A1AD761D5851A431A024269F81F71E102AC296077A40962405F6DDEAF1E55CC 56C29508556C60BBCFF56D201D86AC8A4349D04EBC7FDA8F3ACF9908528BFF6C 5494510DD2F09E099444B5486E73F837DA2DB627D63311C4F9043F6B9754E75C A339628517F5CA7DC4A9F78CA54895D692CAE8A5BBE4283CAE070FC6BDED4243 446BD6EB48B213DD2B6AC21802423503DD16C0A99CEA1F6C67E72A01B2B98C49 4FF091B94F9246822470F77AA8A9B6023C99D7DA4E0F1B5CFCCEC147088FD35B 5A70448F2F7AF7F176BFA7641A924A7C162DA71F564F2CD3DFE0C66897C2465E 60F74991875587364F2FA1CBA87C198C4C1B1897676C8BAC35B7904CD7E6EB91 3B04AA55650928598AD53827ACF3FA1B6C3E2B72DEE65D817FE6C57ECEEC74A8 3B4C8B7FA62A3A5F0BDE42E8A59FB0B27A294A93CEDB4C8A8E40CF4192ECF200 AC1A8FC73CE47F13F66AB2E41511454740B6264BA49B24301DBBD98D76CB8CC7 736355FDC3390212379F5582927D990D8A6444EE4B866D181D1474C5BE04A6D5 F9F6C5B49E7FAF5DCE2D336C6521D6DBDA6C4351ECEBCE3F07B8B40C5767B38B 57C4F1B0EEC70EEA5159557102740D674DED730FB99048B97886D53CB9F5BEC1 EFCDA31D82B5698286CA2CF50D471B3D065841A473496F78F98E286DD7C691CA 6E7B99336E932C8C349E0EC1702A84E68DADA1783184215C5811F455BBD56B93 A1C95AD283A7953EF60750AB42363565B67505896B8E2634B3B8403FFF5B17E7 C52E05AA6CE3CF8C1BA5C23F3E13B37A523826B648D5D188DFBBA4D7279DFCE0 8223F201A9E61A2EEDB6C547034AA164E01F64CA56840A5202B42F6725E71398 6B17EB40D8CC6DDFD7B920341DDA4A540E2B3370755C729E4616127A68E57423 A134D133354962B0F69651D840760CC859099F792EB1A573E4A815E4494BF027 C829A1AECDB979C7BB57D99334EE903EB952183874699F86A55E0D1019BCDB33 97F4DF1F7D5CEB03094250527447837697A3642ADBB54B6AF9897D09FC6DBDBF 3145BEEEE61CCBC6D4944B038F4CF60460D2E0A4F75A354D6A2FBCFA32403020 59EA4800B3A347A6DE67ABC45645595213DDEE6807D3D8858B93732FB0A6783C B277568F821EC948614F0BF8CE74D923892F003B6C7272623E1B2F86EF2B361D 7D1B4FB4708879E093247A31C59222CC3BD9BBB24EE0919496A16C9BA3285448 829DF3CD1256AECB8671A69255FE41E4F28515C0F9C7C54D017F26D1077B3E1B 58E563A262C704321A010747BE260881E22D2516CD35EDDCB750029003E6BA08 5DEFC0D6AFC3F2FD5945244E6AA86701B861DAD883B67D354C254DC8C834BE33 8E0131961292FC58D96A7D48E7956600F887A23F4FF6583F582FA2B8E8A811A0 5F7C8299BE5E8D197934228F14E3BEF0B76740CFE83B7470D6A30FD3037FA6A7 DEAB81DAD103174E88C2E24225FFC233A7C0EE5D145DD06E0D8F74A678A1E82E 536E93CEE8EC4B7C4FB110186280AF634A8176FFE93ABBBDE04EDBF80E45214E F9936D4A1205FD5983EC31C6EF677B7795CE2566095EA2F4EBF97549F8B0B64A 17E32EC6986E1A9CB1200992E49894A8902B5A4A6A60F12C223637E20CCBFAA5 D40021617FCC619EC08E61A21EEFDD431D524B258CEE356ABE42A77677BCB369 85678FE848218E2E02B99298FB9FD6DD9CEDAA438BAC442787F2F7A855D1B3A5 EF4E10965A87D8DD80821F622EEAEDD39C940BE34C85A2C485D35772A2FF602A B76BC992130F1622BC88DB9A06FB834F8511E23DA9F7E41DAF7B52E2DD2CF8CC C8EEC5DAE29C7E707F2DD9828BC81C0EB8075297C0D0900A6CD946D32193F4DA FCC0DDC522D67C05A373A2DB6C86144172F8676BDE3248B2614624AA03FB8AAF DC692208E137A3FF9FF6E3B907B82646E92898D0FA85BB3977AE6B1D87DB1182 F8CE05D05B799B1EB1185B350F6EC9CB7B302960006F027FFD6766E7E7F96329 9AEAD24FD32A75B630335239744388D9A7485825E79EF5B68D8E0146C92D1EF6 9DA4E35B9C2F17CFFE56D6F96EFD2CB3A66B5742E151539C5D7BD9CD73C0CF85 47F247E0743A8FBB144063962E4756913DD810471AE2132596915D7CCFB5DC26 14E963DD0D60FB5CB5CE40A481EB3F501505A8EA3FF4BDB0EFDDE0CFBD478672 3A5ED116DB3DC41890B479E2CAAAA3D459F74983C515DD2DFC1ED82EC626A662 67B1376E6D7EAA9074907E14A808D42DAAE64FF202C0EB75063AE41504BD8F6C 7A4ED1BAFA9C7A17C0420258532BA7C392CE5A66306E18B3A34447DBEDCE4279 EA176BE66741157BB40392EB25EE2620541A2D2509C8C4CD933618557810ADA4 549D4DCD9D754E0072A9FA92C15C28DE39047015AF5D97875ED651886EACB561 1E8049EA365C7DFB03B3BE89CCD6511098AEF04CEC7C0BB03FE8AB98A8707798 FD240A2F937D436FA97E8A0612A4133154A155FC4F58C602C39986E2B351328A 46C24FB3A8C8C1304C4A66C29527E8A2AABEA7DFFBEE4681249AA13E2BA6E828 D3123508286F49C0C43B507B8C577FBB5D73ABFD6E3850F6A2C2E5D9C5373500 A04D5FBC470336C645D58E96865937121477E9D801140F45F2D6A478F93C6DBD B622A1BB44F9EDCDECB3C13D06A22C58E0D1B3E1DE145357A94A050606D6DBAB 358E2F5304F4F802F2181A7C3310AFFB0DF20F33E4E5D41B30150F8B12E1C9BE AD2569B609D3C22E2FC20AB7B19A051B8726B8B8DF5F3FEEC338C1A49CAC2FD0 934CE7BF278CF3D5C3CD1CD7B50A306D9E8115D99270C69C1F8B19CB064D6CFC FB3363306C11F4E9C829216D9B08332D847CA5561D5BD1E3D9EED81741DAB4BC E6C28F789DE57D3F75A9C21465F01B0F7C4E6A77804D31C18BBA4F444B4574B9 86A4C00F553A7A90BF9A7E95584584FC1F6DB032EDC0B194247F96B8FF73B039 BC7EEB4A30CD769EDE0B0B72A5393A1F8A70198B2DC30911C25455620EA80D55 2EDBC9B2DDAF3A7FD57AEC4C36956A0DA8B44EA84CEB417F7D1D2E5AA1DCAC47 9FF892E874EA06D745787F541BD0B8605A00D6700430FF4217C29A087C7469BC 54D59903E751EB0F969B0FF0989933D1E9FDB005D0BF49E2500E8CAB28E7F6C0 68816298DB0A9B5B90BEA941650DC2F520294502B907BA9FDA54D133E992EEBC 1BB496308B8B771F438A811D4EDDB312F218F43FB3E860DB87894DBF3BD9E7D9 A94A740D625D6EC49A832AAB1936154D40A00B34200F191CA4622E7C60FB75A7 B40C8092DF417A532CEE2DE780DF50EEE68138F4E5D784DF83F362C0D35D5CD3 89D52D447C70ECCA7488B87746BE75DBE6CE640578DC065194E6700BD05270E3 B045FB025A12855FD7A0B52977049989A5BA8ED1DEE536ADB70E43E54FA6B405 67E952176DA4433F3DF609D9C98D7AF7011E0C7F0D4D0380AA05490878882D14 18CEEF78D0548E60143760DEE4704137E3D02AE891240FA5595EE98839C41154 26CABCC5EF185FA8A30F94B6F76277B632058C55D2020EECAA74393522C7F4E6 7357366693DB883FCA0153B1BF08709561DF9232428EC0CB0A219EEC8302DE0A 16D472192EAA097F715DED7E433D9B928C7F0440A103B05DAA636DC2B1ECA469 B513B6E7259C43A10D567C99DFB39D17DEE8F12DDBE78F1CA20E48C9CA63D1FD 1154D95DA39B1C6E6D0EB367DC544DB73F554CD40CF7555FDE0FAF8EC1BD88D9 A10DEBD93374590B2CE86DC7D6A767A358720233A227AFF26A754B63A0426F07 B89EA2927BE664F8CBF526C9C8977D4B408723711DD206F603D2BCD6B650B8E2 2A631366FCB57421B9B56E429E96E793207432062F1517488D2B7AB74DA55B34 5FDB0D195F039A9D156E10C3905548A3D141BD36392E5FBAD3E9458435FB6BF2 61F773324A339525693416D24E20AF1769B627D5128FA201A6615ABAABFE4841 75EB7279AA5A1AD45C069B9D49786DAAE3603CDF9B6364F8F49B51BBB2BB4C6F A3055F5FAF540FEEA72CC8910E86FF5B91910F03E560627ED1E54DFEAFE46CB2 49280BAA760D8B323F0F677AD2FE17D3DE284D535AEE9457A2281099634131B6 B62C4D05ABBBDA946A3588FC341F8484C46EEFEED4213654A70640FE292D2609 37DE9B124982744C91277C564A8FB29A806D190C76EDA7CD1F25BF3011D2DD9A 41CB22859BD1FE2DA89AA7D87F9E4B5F67718EB6EBB16B30F9D3B79BA6EE8A8C 23B0A750E6BABD5610D0988A537777FA2832B3842D335FC2D4736BA7D34F15B3 A9782105FEE7F06597DDE34762B02BCCE8307A918FCD7A18D1C82E2F572EAA58 71F52685A83467A6F2CA3FAC07B8008A8418DC4E7E6AE5AAFC56973D66D37703 1B35F5FE93C286718E63D9C097DFEE57CC09D129877ADA7A36D9DA7A09028E88 1EF3DFEEDD6A19330F48D00BA6F7A7ABDC2566D6EEE31712AB34421CB047AD56 EEA8F8527082CB1178A9AC742CF6745CA7BB7789CB824BE6E3C7DA1874487842 8014EC396F47EA6492450B36310A4E3830BB07ECAF7BACFA6CB7F04AD8C421D3 5A60C9279DE74A729BA35718A34140B1EFA484A8D61958675F8FD0C3A53BEA41 64B9E366493FE40F49243E4C814D6828A3D54CA72701CE345D628713A52ED603 02B75D48F427E091CB91667E7A05385234EF3838F4F24F6FA4FD221D1534F76A 86DA776E49F4ACB5FF31297B3DDCCE280A40CDE37DAE067A3CAE8129776ACD72 B259EA8F6EC3573D6D6FBF1D86B19F3BB13C30BBC55D71E708E500C16B58DC12 587396C659BFDBBB01DAC5060C18A5E00D3485734C2B1A35A611E04955916DE7 13B52E9544FEC70681E8971C27FA963ABB8D77E4A9870B52E91C8A36A089C306 BCBE86831F294F187DC37FF11300C4D9E05EC4631745D6C15E111E724F70E479 0365B11C5A7186C568830E8F0015BC7A036DBA80A6A609CFF39167E25ABF75A9 3B38E5160D62D8431850BD5F7B349490053A1150BCFF03E8E321ABD9B672853D 97176916DEB5F33520A504540BDFECE433D30622458C78E46ED997E2199CD263 401BEC773969991D16BB9F1AD7F956162A244D91F60566F618361685998075FC AD6087A7AB62BB8E124535E23C0CA5237F457B1462D170776A5138FBB069C787 84A770D32396F96610666091864165C7C67A19E83A21A457494577AC6B14E7DC E9FA6D65ADBE0B7A91E70B912B0F57695C3294D6B579E2216C23DEE53A313B1B 77ABFF2AEEEDDAD6C02BA1BFCC91AD0BEE2A20B244869784D16B57F42EE86A96 5B15CB2179EA2B92E767CE3F7D55F219B7F206F6EA005D339582E81C8E76259D B3D019361D6143A43A6AAE1EB6F2ADBBAF35EA165C08B7DA38A3BD754235D79D 9FB8B356D8F31B3A4FD394FFE48775DBBAA81324EEB1E0CD1CD9EA31D10A636A 3BCE8ACBF67E964B8A8E346B16D93379FD4712E7A006654F6EB9876CD5ADEBD0 A41AA1E298231D83287976216083ECE39777D40DB67CEDBA1D9816DF56D66429 12AC9ED848555B9FB8373366EF69C092100C1D8BEE95B9CF0910ABFBB534C011 056B1609CF626BD487C0287F57E595DB9CD9CE353B4D2879E6B9920CC4E89D36 D2CFAF3FB2CF3C0A17 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX12 %!PS-AdobeFont-1.1: CMBX12 1.0 %%CreationDate: 1991 Aug 20 16:34:54 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-53 -251 1139 750}readonly def /UniqueID 5000769 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712 B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99 AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26 7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF 20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390 B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D 68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809 D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E 26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26 77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299 BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8 30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5 148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23 337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598 0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6 472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26 30F6E6F6B27F4315EE454454BCCF57064357F2F70007003A30CE3EF01CB64F6B 3FDD0AEF547337A7A2D331382163107CD081B17B6B1E1850DACD62DB15A65AF7 5F82DB8F5269A853F289BE3B301E9966D6AE63E73B03084EEC208EE2E3B337A0 4192031E0165245D5D6751D0A7587A96A1B2D72D268DC48C75FAA5972835AD11 9411BEFDEF963BC073156538B6C83D1509DFDEE664A5FFEBBF4D376460ED70A9 0AC3CD722B033A0DEB1FC714AFBBEFE9A58E4289AEFA07AB4065AB8016FC007E DAEDBDC2D6FF0614E366B423A72BEDA8A4DC51A287C6E7EB0873152213E31E43 A2EFE0D7DBEBA175B31385ABD08F8D08C2CE62722360670C26E578A711A0ACA9 180673A6B0BADA3AC19AE6F9083D0AD94B9BB93583147E5A686B6A02BE065CDC 1671650AF540DD4F5372E0365A9448A44F8183815E7196D091298D737E5F6424 9017D461E01CF504695B85B74BA80CA2D1A2D266FB44E115D1A418A5AF6C3DC4 B308DBDE8E520938BBBDDE8F23D8F796D768279F8796704B9F82D39D513351E0 F307D0AE26C2CFE9D307AF755DACBFD93EEC971B0EF0DBDFD9E2F636B9722DAA 4627368B60AFE010F4A2205D8E4CDA63FA84503F3A1405EBB683D43720F5A3B8 0A8961AB40B8CD25FB89D7586D480DCA446684CB606E5FD108ED7E0E7B72D786 82B899FE620AE514E0A45A7DBE978E0E73C9F046080235047684C35F67E05DA2 2944DF94B9D582EBB0B7475A2777397DD1FE9DDEC8FD1A6CF830FCDA8DD7CE51 FE5E7631875F2B89FEB11537CCA2E3C8C077799B94967DBD1E2B10D71A1E7D8B 564B62C5DA1CCF05F4290D0D3774A96460604E8BF5264720C8A32E3E204E0F0C 48AF87EF807D2930C1B977ADAD229E87A267E41227D0673EFAEFD3B3E4B40148 F6E8552F48B7F0FFBD9C29FE38D71A76B1AA8EFC971D490E67EFD6F249A09F39 F4A813E60219405EA8A0321EF549995BC6F9718BBA1C3E55E24A3BFC8EAF5A4F 1E4E4C7C75BA8E6F13DEAB62D7D634082BC49CFC7120E0910FEF122303FC27E9 E76BD64BA2C11BC005E3DAEF25598DF9FD3DBF496AB9DFAC7655C0FF2B04B9E7 E3986E2E80B515A7B8976B4C912D76932228FCD1589A393CE03DFBFDA4371620 B98391CE6A4BE95FBC0A82714CF428F4DB2E217459070E5ADEF75FDF5CB7B2BE F62CCD0521669C0EE3608B8D6BBA97EDEDD019CC0B1D70B716483D9AA9D14932 C0CB2E5E5BF5AF7C0340FE6FE42DAD962B48E75D0203916332F2C5B1B6DBBC6C 61AEA380EFDFF3D7FD5B2D40DF29E7CFF3F754A9888725228AC535BAFBDA16C1 707AF95FD16BFAC5663CC960E850D81E52ACA01F7D9A621DD79FAE1437AC14D1 9A08633B3DBD5E1768C164456323BEE859300222BF794EFE9B4BBE3B62A08404 EBCF595D6EC4E4B163FD072B9F9E299F7C051EA7C8E726B9859E8957A1C792BA 6067C5E3AA9A078656D5A9578961CA12475590C1C8213F58A76D19BD5590FFF0 6C5C8F7C9E414014AB92B702D5C6833381A4BA5BBDBAA343CF7BB3D3D92C8B37 7F5FD1CE53513E01AEE45656458023E61ACED1DB7FD111A53EBC5FB139A49011 66E0169864830E73B903D6D50973EAA320333EE90400693496D329887C83B023 72A13C658B579B5BCFC49E53087BA86E7CF59DB1B9F020DDC67943CB68FF9C9A 47CFDDA4B7350EEE78B0CDAEA3BC26C49A7508FB292CC342B42E3B79FAE9FB80 337C846E319B5B021F866FF11F65D692069E415D0EF9197BC5C5A8CEB786AA35 4428ECE13B05BA194D0AB42E5AFE6131A4D3B9ECB96BE83045E22D3A3EE0A123 C45F0789DE8885E4368A184A659AD8E9BFD509F818C486A9DE4C84B1BE9C47E3 788159F6FE6044478D6AF29447FEF15022654C2DB318C64216C18C1199912B16 9E78F7CDC7CBC902FFC9EBE8247CA24BEA49A5D06C2CE73FDB30962512AC35D0 58C842F24C5BCEA59BC7AF3EEBAC4D4A0455D8893A130772CB2BC79C2B47615D F9DBE178E3C8151C18C520F861A6C54C584F00A75CE1A88268E9D82D800D291D FA49CEEC3B51A947B4542DE9077E256C7A34BED407F3BECA6901ED2714EFCB41 63028AF1DF23E8EADC86AD06AF4C9116B807A44A39A6431D9C4B3F3DC13762D1 E492DD2FF35BB805E5577A1CA704302AC6B6707808CE7BB8EB5A2D8C4648B1B2 BEE5FC4B40B31FB3C0A49BF0430402642A8C192A756E81E5918CE9A6DEECD1EF B66F27D5E0C629DA1D29A3FB9D939E0FCC45DC2496B9334F098AADEB8A1C5DC8 56C49010093480BAC4AAA25FC0D027679B1603C26B1055D7AE1F5882ACB1CC5F F8A9CDD25F2EB5E5DC77C225ADC3771A9336E35F6C431FEAE21B366EE58B72CF C3EF70538E4CDA63D6896380378C9EE4E87B9F1557C78F1378FC48E1E9403263 EDD58213990D9A053633C90CFDA863BF480320E0A285ED6499B0814E8A297569 42B95239FB6482911B4FA2D153A0AD4E172A3817447A1651ED982DC44CA83C25 6B3AFA78577B95645B1383F53E34156DC80FF8603F03AB81467888A5B0249FB4 20EA61CF86020F533E05399ACDB9A668B06C5E22387BF016810401042B543F4F 50C64E959535F7148A349F649B12149C50A4B6C94AB71EAAE2CC93F0B9F533C1 ADB8AC954F2787ED72CAC94EEE4A51A888819EB571CE98CB2CFF58936769D814 1B4D64673C91054E4162174075D580948066E3C755564572352B843190EEBAD4 B163F8D558C745DFDE0FFE6B16AFD6F5F02989ABC248608C7DBA59FC5C260276 E626CA9F8CDBA3FA1BC94D61AEAFF731259577935179006DB778A0EE5FCC7F2E B27C4A7AE1447E5C430F7602235649A8275CF2EEF29B2412E601403435E18F7C 7CA9F37835844E2E63EBA0B8F73A721F6F3470028C502DBEA482EFB95F4FA1B3 BE271F315B006661E39D0D24BDDB20B0E6BA486890CC25413632118F8E392364 0EE4361DFC9E11B9608DB73366620BB008054BF93D29216D6AA45C798012EF37 5F9DDC80BFD60D7B8CD723C1A8B1F9EE608782FD4A389A01A0C47458B65DA4FC 0C5E7AF5A693010296A978AEE0F4FA2EE780A97E30B922000B13E7B8F1480FEC 4D9BE9ED7274BEC0CEBC334F586C075931FA26A600CB4803D13A0A489197ABB1 17E72C4F441B9DE01964984F3FFD0B1E8C32D72738CE61CF40C4E0965C55BC6A A6A2A0E33C394C6B30E63AD2CB16E99AB797121E287C7BB6EE14A41F9CAEE1A9 78580F3312A386EF2BC3C1E6450CC639A1859D87F4F8B2FB7BA2FEDD85EDD62A FCF63707EE812A6EC2983263D1FFBC8BE0237DA4326CA0CD390AFC62C093A0EE 72B47C161B460FC1041F9A29E977EC71EE1F9CD22B2D92F39337945A0EDDD8A9 623477B27BBE0C0E8247A0A7D57E127BEF122FEAF05806CBEB51736CDF9BF696 AC9209B6D11106196D5407E6314FA48EBADE2FBB6C1E43D6853322EA60812937 6BDDF0EA1A8C89CAEE714769703BFF42891F9686AC768EDE4219EEED8204D90D E3B1885CA041B4E0FE737CF3F1675175CA7A5DA1B5F5C7499A86342E3B9FF972 B7CE47E1F251DF4E123E7256532B17655D151801A3B6CEDD0B617D9190B2BD2F 033D17FD9E4664AAF541C5553C4BD97EFF100D1C2DA82EC34F815028650A4B7D BFFE88A12BF6B8150D776DD8F21540EB8DAF59F798A48B67FF2305A577463491 952A07ED6AC40A35CE96872C2E1629D1913F389FCE774A6D1B4BEAA68F64D2AC 0C54B7DF3A85541352117B2EADA3EE5BE959D1EA56BFEABC1D699EE71A79E63C B2BEDAC5D4E8881E5795EB0FF816FB0C18BCD077A3CAB89CFCED34D5FDC1E546 CD94B67BA5BD500C5B27684CBA235D0A59D17687AA62FD48FCF21FFE0862A236 D63F145003D08CB8BC52F3D8DCE0D489E259B765ABC55C903F34097980AB4F08 81E7DEE6B08BADF4B60FDF1D97685C743547EFC55A15233BDB5FD4E30152DD3F 91BFBCD6E3D2805A9BF9BE51C65526CE3ACACA3EABE1E289F729F23D652980EF 0A74B78867B530BA2898206E4DC65CD4C56E0CDB24E293A3C8915C32CC1A4DD7 189F3B03A38AA1F966D7AC202BB3F078B96CD773D6CE2F53BF1747807513F358 70C24D726C2FEA33FD1A49EC4D5223625E16B22E9BB52B116CF0102C166E9D19 8748B3ADC8295D030FE4D41E963CFF8703AD2C76FB8436A7371E9E0E764C1A6C 737FCD712484C8DAD804F401915EA94CD612CC8416FDF156F90A5C4481D2F896 6BA8DAF18D0B2E33719528DD31F0BE372BCB1EB3076E374BE21A79815CC3AE3F A156EBDF8B658D7588FC479DB7463D67A7A25CFA25C1B178089ECC32704428A6 9964502DB8169BBBE8B6968FBBE057F04C9DEB0D156588D3F99965CB3FFCBB28 E17DDC3A54DDD4059D27F0BD3FCE1504A4F125C4EBC310D493289E0970107024 79B9F5DE49DF18ADF02DD121FFC5E776CBD105A2A696031A9C141C6E56013FA7 E82A049B65A22F628725E373CB24B7CEE56BBFB32E27F8DD07785DCC36992CAE 948404225DB3DF3C402B4F9FCB14E03C1EF5A3972B4EC3CDAE26D295FE9B3CD3 70B51BE6616A8929C959D1E3F28FF0E3B4B5FB1023245595FFC2F89ECB84A116 CEB8AA3E539657BA2D93F0302FA8BB9FC281EB305CB9177BDB2D233639A1D7ED 0CC8E9D4C888BC834149178DB567F31399CC9B4C66D779FCD1BBC838B4ADB353 5E8E2490866C899643FE520BF9AFC129BDDE52AA708202AD2258B2B1115EB6AC E1A009A31064FF159B3764DB3FF0439DAC549F79515DD9CB9F72F046DB159D6C 3223BC9576724553137478F9594FC80955CA6F64ED2CF6D3D0F030FFCE65642E B330ED49950F67F391DDCC4A1A77015BD9EA94001EA8116D509D08247C5EA871 AD39B300A38329A5A1FD8DEA13698654DBD8D4BCD92134F7C4F9264393EE8D91 ED805B06C38E414554915CB94FB696B8948BDB3F8EA2A787C1B7A06103963E6F C1A5F6D8B1203598E196297983EA5233BDCEB08D3585ADCF22241494BC47CAF9 BE7ED5E16DE0F460EDF31F2173125DFE85EB19BAB5AD45A67BB157AC149F922C A321243F0BA28670029449C4BA1DD22EF430AC971DC915CEE65B257AC58193AC 6B97CABDC533632414E92D9347690145846559AEC53280F046777A8921A17257 43C10312F987B7A34B542B445D49B213EB70A9EA1A2D338105F940CA18E6DB0A D07FFDA4DD9CC875A9920CE89B9726BD4D566225825E4C531863CBB224FB9CA0 A91E3511B64D23A9E7C0F54175716D558C582A7E13B60245BE6087A0EDC442B6 3ACD50643343C44589E10F6ADD21EA91F8CF8E71FA5BD70C813B041AE51760FF EA9A2E0D084753DB7BB8C4B6E6DC584DD2421F7900E6A6B722E9602CA14368B0 B28C442CF8DD7573179C2078193F4370D9C28F8F98B6D3151A7301AEED36FBD4 11047A42B5E8D8F45B968B0C2F093D401559AF779A6060089A286D9915EF1B88 97FF84D4FC534E2BC7AE827047C7D4E80ACCD584F4C1C3D28EC0D4F44FB5653C 2C8AC6337A89B6670BDE74870CDE22C105B202C3FC9B6010A588F04F7E625B88 65DB2A920A0F14DFE1F69C6989CE17CABA687E0F6D4EAAD724716B9DB69841F8 03672E84EE7A0153F324E789759F2063F3A2A8C854A55E3F9B8B99B9A8DFAB93 1542DAB6215D374312008A6DB4B19C327902268F5C07CEB5D6793A8CA95C9938 D0126805CDEAB2AD7C81590A16F518147EC04667AFFC3DF0EEFA1250C13FAAAE 6C03209EBCC619B549313E84BD360B070FD517A1D8195A23B338AF7593D6FC13 5CB32F9ECFD315B2F7153EA0BD5333CA48A8A3EB4A4011346F8525897FC456B2 AA9B117C0A79AE9CF351B80EBF2A947810253CA3A9ADB2B4ED82B5D316E3FED1 9C14D62D6BD92D195F8C5CBDFC4DD44C64601C5B55C642F3CC1FF3CF0191717D 2F5A5E146F9F1DCC6FD773E00FEA6790C16C66D0621B5A3D207875EBCDD0666D 8B827566308CAF80901BD41BEACD43A016FF8B8FCAE65AF92C129F3D95036319 CCCE2F4C4AE23C1DE2D0DB10BC2112CFE9E435FEA9B276B949B92FE15BAB5EE0 BE71DDBB540897B35C40CC8B4248F5DE5E0D6751F50599EF6FAEC273E5287078 C874B1A66B10E1B3DF745AE65FA61DE6C70FC2ACCD79D8CF8C6493BE6970ADAD F6BCE6FAFEF793383F3D7EF6007E4B30942B163486A19CB8548D49F6320D388A F936F2E9B60D021816DD3F1440D6C10E5CD9D5B885C52BADCA291EF42B24A3B6 9A2D91C676507343C6EB0494444E96795800E36BE8963673D387482B84C3DED1 1920A19DBD0DECC5F268DFA14A31C248C7DC03A54DA26F34163E72B59AB563C4 1812035D9536FF13A0C88BD82984155A5C7BC5C812AA0398E9C73CC411215030 AFC258769E65415C4B6B629EA99FE39F110EDFFE11D22590B751FAC144677301 2601F139A674DD85D658152FF94A6340B97BF1C9FF69CB96D7F899100923C32B 9DDA21441D54842FD1487FCAF2D4C2CBF6626B4C42666F04F3C84BF82EDF386C F4C4517C59D6A6D3B7D66B3B70E27D45E1BAF0FF9FA37625EF2BCCC297F6A6EE 29C9C43975DAFFF577CD580E23CC6FB7B160DC498B4DF12D1B76C69FDCEA042F 1F0062C157A1CAFFA24457A964162559A5DD71E84D3C8850B7716CEE3F88C4A4 42E69A3F1B096ABAA288452AFF210114BCCB99A2A31E3CC62F3D939E3491E92C 48361E18F43B38EA987E53272BBB4F767E5883692DF620801E76266B15A30A00 9AB55D96FF77716AEE6F5310642E15BBB5F467777590833863831358D74BA0D5 11396A6D0C14CAF27C4281A705AB5B4E5C9730B1D9DB90D66D0F521878E095B0 1442555C1856215FE3A5460DD6F24865DE2872A5F755A6FDB135DBB17A4FF415 06E05C45042257DE43A757E62017358EF9F355DED10E0248A00647EF281CB25A F726C6B254BED8A6B2685E0F1114B27BF3046F32FB0B1F774ABB71ECC1B15DB1 8007BE81D54136F92F53EDB40FB4E6FB7C08A7422E809274C8F0224C2019BB55 8FCF20A64D8399B2ED5F6D10B4A87EDA4157158717B2C83DB84CB8AB9A9D3403 ABCFFD6D97A63E6B1E620BA7CD6E5D2950BCE2EDDB9B3AF24843BB9B377C009D 37328036558D209FACD5FBFC562D60295D44199893CB47B0C825691A0EFD9BAF 35289F9D9324E90A21D83632E0E2879275557C4BFBEFE4F8CAD5F305DA52178A 72CDDCFE2AE2FAEFBFBF166014ACCCAEEF16E9F6E08E3EE78F0A82A2196ED076 FDB1C8B2A4E9141FECE14F7EF6CB6E84C8A0ACA11AC1BDA6FF923C577CC2FA8C 9D63279E3B5AFF7B13092746246DC240ED0A54B3CF7BF2FC5701B506CA8160A0 659D0BE80ABDACFAA99851005C3F401A2404211A37DE1AEDF235CB74C4C3BFA9 A2CD4A6D3C4A59EA39E899BAA746BFF2DFAC3C04A485A82DE0CB32189B8D3E0C 66EA75AF9EC488CBA57174745C5043352D64BD8C6782764CC3B6D4149C2FA0D6 D549F41331BF8B876EC54B40B28356A89ED5D2A543E3B5E8AD2DA037E4829DDD 0ACFCAD341CC09D06C41FA13E729A1B399769E095DA185944BF3ADACD0BFBFEF 5CA080F624D89CF24C0683F7BD2E83C8655FB5A675DBB16C2212E9B5D81ECEBB 7D9817D97A17C69D8D9980F4CD270B6C8C806E65BDD7089C9D08248DD4E6326B B2A9E71E3DCC170E5DCB2EBB05D7D3419D760983EF800CA68A7CF359239A84A5 413ABFA9076EE1DF864A0B8A6AFE9EAD40FB1334C0E3D302D53777DEB44FB5B7 9880BD83DF2C32DE6EE4A2214804C94F14020ACDB6CA6DA22D8158F148078A44 99A92AFF7BEE10568F4A13BBFC9E6DCD4831BD80DF161FBB5906F391A829B0FC 4B01638264B2A128DC60DD4AC6AE77C3474E74DCEBA0416A0B5C8427F7BE1E9D 5DB51746BC5AF44FBCF490B36F446872AC926AC93ADB10C79E418DD554896172 C93CF3E50FAC1FE1EECE6A326BE40A3E91A3042FBE8D1CD0EEA44140BE33701D 13BAA66C514027A3A1A081602735E310CD20D1248C1F97EF99EF0EC4742D0C7D 75575475CB857A7755DA1F9FADBF390BC4BC02238B38E5FE42D41A5E48D6AEEF 176631E3F45DF83DCC3D94903E1D4C7A2BB96992E5191726739FAB9FD9E12CD8 DD0B1FE195CE81B6A625BED9B818D41142E3CCF281A38ACC49B8B65BDE640A70 DAEEE71A9CBB75DB9366398BAC01371A978997A4CE5AF50B01EC95095D25FA1C 9296BAF25148C66E576B7839FC97180391E7EEB0D48F74B79686914DB09E823D B0640FF3945754574F70252D44748E6ECD749E33E5256127C17B3CFF9219B581 9411CB5A37948048255FFC43809FF5A805ACE51C1C99499836DEE8598561679B 05D63AA287C3C392E206971244F6FF36D7D52ABE5B871CA30F9CC97AED0B7A12 FF04670926C18EF312F622905C294513641B4FB1F2D815311DC7C9A1A63F71CB DE38076E0990C651C1211A3176A3A4EB29A9D29D304E76393132113223DAA03F D447F4E2B28B6F9AB360060BAFFA72BB9AA0E1CA3A685FD469CF3589DB16FF05 E7A32B961CE6B44D2087C82A55C938F8C0DFB0C104904445C551369686404953 FD3A1E1E5104755DDCBA804FF989C308B693DF7360D9B4B2725889C16AD5760B C84F3194B11F4EECA957BAF55467F01BCF0647F0672B7211DA7749F656E76CD5 D2B6072DDAB4D9B4D11B662C78B06C039CF2E4A176C7D495CD95ED1BD0E4AE28 7578504CD081CE8D27038AFD0DA1EFCFC7073C79C82E93FD96780575CDF540FE 5B89B89CE46F890A732E45631398ABE965B0D54D3D69E0910528C8CA04CCD303 3A6A9D130C3668BEFB4B9E3CA6946BB6D490395CA69C737CD7FF44BA0A7D6C4B CF21B5C7659AA3E0C19664BF04AFE498D3F242D652359F7207B7562F46A93D43 53AD9C15201DC55028D08E0E279AD37CF9EBDE78A0011320126D2180C3B72B8C 29E5FB4F6A23019C6C4B065D1FE217F936EBFF4148107FA5AFBCC234F60B4E15 CF4DD3091E5177D082049C33A92134495B9548AEBF516AE710839D34A519DA7D BDA90FE93E58B2C4176891061B6A3AF68A67744838B3A32B680D9764E97BA675 D8769E7EBFA5DE1B2B3C6392F1834E06B35D6E78121BB5467E3B1B54F05FB9CC 5C94FBBEB6D29CCE99DCDFBA038F29EBA874E42EEFE3587D5CBB16E5F90CE040 C4A1C2FC8CE29E0CE01DC908B40DC7A6FE354D0986AC902876F35279A984452C 67378AB8B1A925F8C072E2AC5E5F334F98D7FB0C4906D59867BA71EA1B46A609 4418222051E674648B3C34E167968E981DE2FAE08091AF2125B830FCAD9AC715 BABE518611CF955CFEF74B5BE27B05FAC872F50F6F0D810B263E3B76B0B1B2F1 A33F939079E57775F431F85D7DDC9D24D99020A9F64AA277C999BECA8FED8B4B B7501BA76765826358C58F1D807294175F484B66EC9BB5F692D4796226B74442 393BA7F75EF47FE30E7A76D8EB73F8667109F91A2C07E537E6C7D08248187273 E29D12E817BC7E53DBAD1F9348164ADC862D9B24F67CA6049A9AE099979CCA6D 68A640F492F2C0A9FC280CD8901F228E8F96B1ADC0E6632204BA9FAF1308E458 43FEB6412683E3770B20175EC2A2799DBA866145A178E327FF65520BEB5C64CB 6B550B9AF305876E66C01B7DBEDF6617966601058F0D279723F1CF38202051D8 74ED5D7BB58987D6E5821CA175E1353010CD7053475596950DAF17CBD6D2A3A1 91845329F5FF4002D6B87E14C20F22E251D0E0BA40D3AC4F7D940469D5FC0269 D166B9B6926CBE7C3E1415FF2679790F885967920C944B28EA045938C8BF5460 D4787790D80889FD78A58F198225FD1A8A1E7B539C4D368C2374FBEAF3580679 4CE74E40B9B49DE285A5A0C38B039C95337C46350FAB771A0027BA3103994757 DEFED4F59DFBF3B10BF193356040D229F23FFA6F03EED1D3732489A809FCB638 B0160BD9836FF0D5644C63F10821BF87C7641D529BFABB5F82F0B6C0B731F554 BA641579910B9A53FDB4DD6FBC804CB7074DDF2A9FB8FA3F47EEF65E73BD8592 19799A8B433D3C96A3C6961BCA2AA6A49BFA9DFAA0B907609495E5F877AB084C 2312ABF860BF341F31E158F75BECF799C27EF2180D4DBCD74EDBB7887D871F17 22F3015EE0E1ED137BC25E25EEC92F962FA75E3479A9D18E96447B5B1B967B50 5483EA62361CFEA416506FC1579457E19CCD97D011F989D2066AF219A6E1EF65 621DB8B674458EABE2909D251CB1C9DE5D5F27CE4BF1C95CE1D74C1C7A19D0DE 4512EF6C64B61AB7EA6E3FA71F6C17B194F511738DFFF1DA354B8297D73EAC6C EC429DCF3DD66D76B7E1DE739C0AE10B3C49504B106FD83625550DEFB66F36A6 23AC15847A5FC8802538D3FDF16FAF80A7B58B81F604117920508A4A7B407566 E490DC5BE7002F9872B77C932EAF2C5C7B5FBA0C1D2DF4752C38109D9FFA6AE3 95F811D2D9C29FB79440D96CC5A7EA1F4A5D73B2750743F32F0FD031CF238154 F0CEE86E898AAE11E0F53003A25F8922109EB30C84230DB84B6B2099C454988D D152C77B4672A1E31741293C128E0B6CA6213574083BA13D0C2763286FF2C4DE 61FF7C0BE8B4B00A40DB1F1488983C268B6E5AD99E1EC8FB965EC53482ECFFC9 E07299A605A92FED9604492C73FCAD2F5EC46DA11ECE1392578923E1BDA3C798 AF01F354A63C842784F434C1C3D7EEEFC76EB9C4D0A672F1B41E6BD3D46DAD34 522BDCCFE959102D160D4E9AEBFCBBDB2717FA4F740E39127D62EA9D86EFE3B8 86DD3E2CF6722279C459B94EA380E5E27272A81204BF8AD58336DBF32D6D8022 64ABF32FED339601AFC47BA337BEB14846D474595864EC24830D5C1389825829 F89ADCEAB2AAE4A85F2D2FFADD9ED6FCF759B6ABA2495CB48F26D7A39D54433D 5CCB835AF230F4B451BF1865C0A5669399DA5B1B78E3C4ADAA202814A30DFF0F E463ECB1DB956D5F2E83FC7E658BE8A191BAE7D5DDCD9E5997A8E61F161F48F7 C3021F66E515664B13B78E011E9ED4167DF2702C858490104032E2BF7F8A407E E9B0720D86E3F20603FD8BCB2A5289DB08FC2D7E3984EB85F904EF89BFB9B7A8 2D4A631BB0BFB04D8F46BE2AE37A554A0F3AEA69FE78EA570703C2622C91EAFE C755CAF24D569AC48481AAA253AAD63F92E78361525BF87FFB7909A3543F58A6 E7189167B06D00C44C018FFF46593C61B88AC9050F0FF9E66CE48B865548B486 A2B398D029C82EE713130282F148FA45391617DEBB9B0A8898451FAB2AF604BE F793556603238D5FB7381F00080BF240772D69971484B3E1A51A4D8B3191390D 49ED0EC94B35027DCAF221305E210E0B0AB948F3281152003CB9ED550431E4FE 258756F529E009AC873C1BB15999C0C9DEDB50809E809F173AF85B9AF6072752 552345E59808B86249C16309CE98C30E202B7084743D58A4FF5DFB14EFEDD6C9 61DF9F5FF445C7E6F07779AB2EF7068906B3E9102E884340EC53BF2619ECEB1B 5A1ED848971FE185ED65AF241B9296F5B04D9AFADB7C5048C27D6BCFA2560891 2B5889076310A4560B067BDA88697FC62D9564D12CE645C382CAEC8E2AFE238C 3F6BB226F05495E3CFF29797D1F04C2BEAA14AF7DFD2EFDC6DAB38D476DB4FA5 405FB871B11549EBEDFBF56EAFF464ABA0A19D3CB4A5A4E10774775B0366FF38 00A2DC890E8505BA5C46ABE6B24A4839F5E2FFEAED7027071324FD2F4809711C B7B4A4B0E128695D572850BD6256A2094C151B3547E0DE0861ED5DD2A58CC76B 95FD68CBFA6BF85C779F03FEA75748C3650D230EBC22EEB79632A8C237CD95C3 BE07D20DFA55BA7972533F54D3ECAF48CD3185A8AF7C2BD463DB6240AE9ABFA3 EF39F6230DF0A1CAFFA0460942341A460B79DBB05DAA8DC5B89B2BAE40B3BDA7 6E40DD10FE62285111B4D89D4983914F87E7775A091701DFAA2E11EBB52A08FB D240B22B225BDBE82BEA3D6F05621D61C1CE3AD8BB81BAFB4C536944ABC6CF81 7E93E999DDDF37BCDB533CDC84A09EF032B6D88169A66A16F4E0107DBA03BA4B D7AC40C5143AFBC17E2565B73136F981AF689DD60AFCFF8EF8E4F528BBF5A477 760EC67779323CE4DE6F5DBCDCFFDC103E3DC69AB31A42EF73AA22B90148AB89 F50EA0DC0C5BE6E674E036ADF495F17F9BBF22898A1C6655B64DA664EE5F5F0A D6AAA13ABB74203EB7483EE857C1F477DB9762D4A4EE76017F0058BD97C5E1C9 1C657DA74132AB942F109E5143DC63F1D4AEAED024A0A59116FA668B33017093 1C4E0F6E1C9070EA8B4896F5F4285D5A3604819F91CC786CE2C8E74DF65A4D9D 45FD325E3234E2DFF403101CB134DAB3F2EC2584CB034C66D5E62A2C81007770 B5C82084570755F3777E84A6A822BB9F4BF3B6D59D8C3DA7D9F418B4DA4CAA59 E3A9EB62F8D6F72D5795FBA4184DA34A3C1B4BC0D6C20C93409A7BBCF64CE6D1 CDE46B80B622FA449F685662BF3AC4E076E6A8FA47BA18B923A9A007068B47E1 52E6442C5A2F1C485332D02DBF42D89E53E7E1455CA510D23FC4CA32AF679E0C 21404F6463F2116731794B4C07FA7EC18AE80CAC51ECC6D74C6736BCAE2E36EB 155B6FD125ECC46F8CC84DFDB061B516BE1CC83CA0FE00F788773BF9DA2E531E 4ADE8CF253ABAD7372857181858EDFA277FADB0660E22BCF54D2D88245A782F1 35C9FAB43E213E8A0560275037615753E907869BA403395F5891AAC3972D7D63 FDEC6A5F3E0C44A4B8686F9550D196168C8881AFA5D77EDB357C9AA15F15C4BF AB79B2F281F41FFDB905CBA59E6B9C086882A4CDAA3CC8B8A334CD636C41407C 25FFB35F9246B39F700C3BD7A60017C99C7BFE685EF5D519E2A030E7876DEEC0 333FDE0BD24978D5BA649A3122483679AA3A381AA537FEB5DA27660D4D96294E B17A4B9F351A7C3A2D5D3C9B19D747E43A664D73DF81FBCB5E8C8AC09260A16D 4F74B2D5E208C4099B29BFE935E5EB7A7EEE91CD7D6BC7C738FEBB67DDC34A09 36B18804CEAF328A92AF877D7F024FF36F8C2C19A000451AB75E3571AABFDE8A 7E496BBD6AB21890EB6D9E9C46F4D1CD90897B268A7D1330AA69F4FCF992591D 89D60EF281C2953AF057E6173734EEE400F0C64B606BAD4944D2CD769615C435 4D6B391719C0EEAB94ADBAEE3CCAE9F1F5FE02A11015D0DB5F06E9DF2E81196A 7DF695E7C8BDC1CC1201C76035A54A96776FA6B5FDFDA6920E66C6F152E42D8B BF19CB046C52B44FC6B022DE4EE5ADC36A2B3F0B1A4542B2BDC18FAD7BF2DCF4 4534F1FE20C8CF41DBF8E44D7E5192C877F5C6F3A0AC7AB4ADD6D69D640FC7AA 49CEBF11F78F03A8A303D7AEBE984F85FC301C8D98FD3301502F29005B8586A6 BFE173E3A277CD64B038D603F3EAB4F7915143643DB0D654F66FB232705A2D76 E4154935C42F92719A5DACA567B53DF7DE75704E54FEF56B137A4FE0679E68CC 441FC78D4136BB1EAABC26D52684953873B3DFF8272A415793FA52EBFC7A0231 8C1D7C502BF24B80451C69A941830262707CC53E71AD2FE5705FA895E5FBD674 9AE6A020D127096ECBB14EBAC29644D6E9141041F50645623313F0C78ADEC9E2 BEF60B790B9B47EA03954AD7D0416924C7128CBCB27FF55EC33BECD4F9448E8E 93EA1BCEFDBF04C56E2D1C61699514BF0E58FC6DBCE3A5A2FF31F2C96BDCF2B6 38363F535350131E11EFC5201568A1E3B93EB417DAAF1F7A8D34B3AB767DBDF1 9ECCB402C566ACD0B9A7E1CAE011554082D23D671F52CC9C1D13D9CCEEA17D3F D44EB48DB3268AFC4D1F79499D96242D519211B2A9DFA1237D0CBB4062BC657D B095ED5659E765C968EDDD185216B8BEC139EA7B39169865D47E848E639DBCC4 CDB2C7F44E018609C440E76B181F1216040E4F805FD25359914CECF4A4B65FD1 619F35E596B89AF6B024569695D59B184908BC1C8413D77D89FC810957B1AFE2 435CF89EFBE576993DB5770A2DAE3731B1EA215F50E662287B549511FC31A1BD 6E95A0E89CD6797DF6AE499A0262F30E34A9F6FCDBDBCA00119816F433208ABD BCA427931FABE49E621E4389C154742D83F549DAF5EC7A507EC9A02809171BCF 8E0D396A3300076EA4AF375778B2039497F4AFE520DC3AA8301CFBA1A0880DE7 15AFC2F88387A8465692C46A297481959D51A011A342191EF8410451BF5A962E 142316F63B58BAFEA6B65FCF81D483FF1B209D1F5D9AAF9CF7C2EE3241492A46 2F954984D89ED8D00693E978C3B9AB32CA4F2E0DB36F265DA8F500D92E1C1B44 5E6918E5CE8ED09A3D27525593BFFBFE95F81387269C795DF68BDD75E8D3AEB3 DD261E993767FDB652AB76C8CBCD6DCDE966322BD4F6BC825717669E375B3500 3E75E748D729E885D0221EE25E19F6B7C188E8D9B0B8AC30268954CB3A5D41C8 56B42C2A9610ECC6424F2565C284D749AAD323DBEE7CDF7A095E42B34E061D0B 0D374CB7DA818F1F7414926745A42D0D80CC8FC83E466AE80C8E36828B2D682F 271F8224614F664CE4848E97790F935EB98B0A339611795ABD62BC4AFAFCE577 C060957F944202DE9E445C9EF0DF66274A3DF99A0F 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSL10 %!PS-AdobeFont-1.1: CMSL10 1.0 %%CreationDate: 1991 Aug 20 16:40:20 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSL10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -9.46 def /isFixedPitch false def end readonly def /FontName /CMSL10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-62 -250 1123 750}readonly def /UniqueID 5000798 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9429B9D40924DC059325D9D4CC0344F3F997A99E6CC0676735EBCD685AAC9142 08DAFEC78BB41AFC2F1C219910BDF41D6279284EF600B69776CA15BC8A34347C 30783C52AFA60FBE3E353E2AE354CF87B558776A22C776C7A0B5AB5CE1F941EF C2D9CAC37294BF407A671F10E4743BF842143F4F7DFEE643BA3BBD8BB9E3F24A BCCF7F0ADF8BA500620C81033EAE8C4EF2C1DEF13AC575F1B3BBB66F093D3B78 5412B82B67FFA087AF57182B2230F9F2137180CA58A7D9B2C822FF04BE6CD01D 43B2CA7058C7B953F6D9B5D6E91ECBAA5CDE1159B0E59C83DBAD96D6C8C8BAB1 374EF652D10C0F3EE7104472C98DD3572AAF2D45A70BF7061447E21EE3C3BF23 DF39C2D1B35B42CD5297BEBE6BC94F7C9DC6E61EC67E4F677256FED9064BD3E4 B51A71B1D27CA4E5AA9E1D8080E6DAB5310711EEF87C40859FA935B19524AE83 63B163FA8397BDFF443227FEDF7DB27DC35D89FB1C5E435DA0619A5C88AFC73B 89A2DF5E767C5B536BC7167A840A0C32BD57A14DE69A7D0D819AC36FF32F908A 5070F32983BB007437E3500799DF5E0AD3710A4C0000F0098D5BE99F2EB9C1C2 C444FD9552D0DCA098A94B3BF176F511CEE13DB7EFFAED7C47B5ADCF8D4700F5 7A5FD1B49560969BF5C44F3749370663A04776F749DDD7B50674D93254426C4B EFE264BEE7810EC93784B7C01A7F29EFD92547E13A2C7851A2E709FBD5B87850 4A44F08F56A542DBE072D2FBC58D9E6468E1AB858DC35240E30D31C7AC13D6C5 7D2BB634BEE96FA0E10F842B11A789F72A333DD6DDCB1BC23227EBC406E50B40 30AF0C48E6359AB0C46898CDAF1118E46BFF8B00F54EACBC2AC262AB898C42B9 2E080C10DE923C195ED0A46BD535972F0A59D3977A0C4E4C413050044C486CCE 9413D853E3FDF83C84B0A7E5FC5AA859BD382DC2D94780F2B9FACCDD437183AF E656EDA4147CB501BC39013529A953D6D78F640BD51EE6D1526D1D27F2538715 2BFA7F33FC8CE7A1B811D7E4251EE8C0640097D655F9EBB15102F85DAFFAB797 0E07D701E1BA93C6196EDE47DCF0491F102A3ADD983898E72900D1398033A2C1 CB464B9EE9A47E7DE97F7D4ED4E99530C9A770F43EA6FFCBA27C41B4668C6047 FD5DCECE8899E1603D3DEB282DFBEB30C8040E7EAAB83B8E78B2F7F61B7E8A77 4C544F5ED83E5056EED08C1A29221D05A4949A0AD635D9C930F7FE8601D74FA5 33B2F4FD4C29FAE4346FE914B123BA9CF5BA732FC430A128EDE270E3C60BD7AF CF54674799A0DC1C214E10BA5511B29813AF2E3768AE494D240EC647D9851CB2 EC38976C6D8763F8C413B8CBFCF8EDD0FAE02F72C6366F5CEC2715BB7C90440F 2D7BB30CD1F107CB2340075D2A0D9D4114D644A09003403685A7D466CF47362A B3187106FB1E2B32D7FE26F9231BE1AA87C8556A5421528BF5FC0478AC567DDF EC95E6151FB92C7986631F641E23CA968DBDDC42A5880B89CCC00F09B82ABF41 F72B2F9F28806308176EA7081DAC3DE89BC389FBC54E60D2C6B666F18562BA0E 32B5906EF1C2B6A31FE0946E648C73142ADB3136E7D2BE4BCC42E08DE3A5F02C 4B8575B1A296F04735C0F30C32D3DB7423FBFE682109815234C88BE292C8F313 F667207D842DE2052A8D3701AE71C44F6C4788A071191CB147FA8D8E6A24A197 9911C9AF7D4656358609AC4408411D7EBBF368103F282503ABFA80A84C9D8440 94329381D1A092016CD26FC9C12F2071CB6FFF1431851D87CF35E8FD10A77D9B CF94F43D7B2FD1D5D795036DAFCDAB2D2667AC333616BB1DB61151AEF6F39146 1934501EF09612CEB25F639D7A503C27A74E4A37EFFDAFAB45EFD067670221A3 F9ACFB7BCE408870F452D3FE18CFD0150D6635684E43A4B5E3AC93D758C97CE3 8BD41AC5735E27396C1F4C68D406A61009A6636F8D4D2A1D1A07A045F36C443A 727535365C9553898BC05458AA727833483CADEF13C5A87CF9B0ACDAD3EE84A4 7FDFC2557444AA38280CA52FF1C15CA6E8318F80575B58FC6D0533BFAF99F8BA 5DF49E3EDB082E2C0058645DB5B6AE33EE58D69C02582EE830ED06E771A24F29 420361D6DC8168F0C6F12D6A2BDD5F76A8762DE39B82FA03B95C12BAACC177C3 9DC7E6A8610F49E81A4022BC61FAC2DCD9A999CC650E05D5F0F7A2D370883948 6B0A2BB62D8377CDA0BB85B44435857F43F68116D9CD83B3F4CA840DC9A07E43 377ED697FB13134D3BE4233CA77845A843155D5B75B34B06DB5D913A2763DD6F 8F51FA66366D809677EC6F88FDAEA8A4468685610759DBA1C017FF95A711FA0D 82B26B7C0EA96CC4BC81E3C67DE4ACD577A6FA8BDBE063A1D0D7C6D4B04BB471 1B75C6AF83B8394F9F255F51E471058201599782B280908B0188F51EB8F336DE 4D6413DD64FBB2345A58892F8EBC12C11D7DB55967659C31F482E55A7D09C753 3B5070B8705374C217EC66FD31DF59641489DF8DEA7F682922179808FF25A22E C65DD61F69F04DF921D1276B051EEB30057CF7760C0B4307EA3D1B24D6338160 6CCB2DC1BA5E35CD9F3D74E113381BE02B6203FBD4BCE42C823D946AAA327726 4C65FF316EF05919241472CA3FBB9A79686471FCDFF99E89EF1F7E90CEC9C094 A4A21A7E71FCAFDC52D42FE115D1B4487F7025EEA36830821CEF73537B1FD5B5 190C2DAF9481449FF4B92907160C7530D024436CDDE61BCA4092832EF806EA41 60601DF2FEFAD69F43CA4E294D0907716E2A620C2C885C21EC095A079579F55F D5B6263B594DEE46013CA279439AE1D62B3A17D6C83D1B168C6D1082282B7C39 F77756989CA25BFB06AE44BF863723AD4731EED06ADBE38C64FBA834F334D8A7 D70B89A0230C62324C9D2D5A86C5E324DF4A147B277522647C918CD99AB6199B 00337568E2EA7A2BF5087A5BDBF53DA322C564F15A99B4C8002485A419B3D335 26F821F4550D81C8B280A16A4189883751A0FB70D4CB2445A884A047BA65C459 BFA3F56942A9DAC75B1D73FF57551C7CE154343B3A48B6CB8ED12DA6924AAE30 BABD18D5B0DEACFEF3D014258AA876E30FFBBDDD4AE04A810C7AED2826611EA0 0FE0EF2ADC22795EE08F73B8436E2154323B7DAB44621E732E6BF6FE71F15872 56F3F55942158525DF9370A133DC45426212C69E158D826335E5E6399709CDFF 6D03043887833C5D8FFA2C5063F3012D3BFFC098FE8782176A95B2C784FD3EA1 CD54D41C52D257C76828E4EFA7B2DD7566E2DF78EA900DB8CC930FB442C0368B 0E7327C544600260C1A3CDB1C52D4B74CEE5F0AB6A0A03F0AAB35719610B637C DC4A553EC20FD34C3D1846E5AC3E06B31A74230C7D3472DE3C21B55882DEEBEB 508B119C4FE7F13C26D9CEE8ED9A3C465F2FD5FEB9B3A8D379F60D91A2DADA05 51BDB4327358C41FE3AB1B6FE168F554928A5476B1D0A42C222360F9E64D0158 7ACE20F5CE84531BF134AE7ECD926D96D394FBD320D8EAE8714549C4F39853E7 33725F4C2E49646393E03DD2366B17327E9D3BB24A7F2A2C654C16C4A67EF89F B6563E64D6579510E749CEA2ABBBE8FBA98180D88EA85C9EB7FAEE8502517175 BBD2F7766B613536689800E7A3FAFF52819CA3661BCF2381B1AF6EEDA52281F3 CD832139C5627E7AC7CE00D51DB98CF3B0C4A40AECEBB7CC2C618BF52F42558F 92292A54373170844BC0EDF714A68571A5B5123FD01EEF139AC3835A0D79F981 219F9349AF3DE80C8767B17494B58D6E72EDFE77084B7BEB69E52DAA395F15E2 3CEF24871CF7F8B26640D5E221D850746C198F841914D7F4E18939A27400572B CA5BF1F392795F873A6FAEAB34EE6B8BEDAB120FA5AD045E7B1900DD89FD72AA D22F9BA5AC04771C371C724653FE34F2160AAD94054A5BC6917D4D4DA5E88504 638C0A1659A0777284147A6FF8B9CA4B206D61C4E216066B8C61D21722EF0895 2F49166A6ECCBAD7C75C2919B72C4CBC209EE3CDCB9F7162C18E9F2090795260 957558F15FE5771298B213553BEF36534EC11A3877877F1643B7B0C471C82550 01FA5587EF31C49901B21690D4D1476A9E66D05969C6FB5565383BA80BBA5AFA 37C4537C919D36392D616BD71B3472CE1BBBB9F0CF0604776D90A2DBA6B04174 7B1C5B8F17ACF179A7BDFCD1D7DEB1899E15FFF4265EB93ED9BF1FDB5F753FF3 393732A65991CFE7DE502FAD98116B17F988D463CF59C911D4AF07EFB7C50706 3E42198948EEEC9BD134316A5FD84BC33F2DF919EBF39FD00EE9DC31E2C15E2E E619BB702B4AF359981C0C561EF68BA8D6A67F8DD5DDE701716E5F334C1DDD19 015040537EE88F1A95DC23088AE41EC8C1D76C5288AB38AADF870A2A027C8CAE A70FAB62E5585A9F612AAF03EFFCCC76D45E971D83972D9E3CF7E8EA72AFE803 73D0751727AEB459D21FBBF9E090210FFA3111BDE692946226A2B4BFA54BC880 5DB4577787190CB55052415D23F99BCA1FE412B0CFDF9C25D9D2A006DBF1B6A7 34927E00E2CB62624358074D776C0C79B678A47301FEF4ACE8C3F0F6C31D2D1A 76D568F37583A0E9089D738DF75CD127F89C8A0093D7039247BCEA4A96754FD4 350E91EF3D90E20156A3B84CAA0F2BCC9A8B4591164BB4C3ED57F4E01E2B08C2 B73ECD603EFE4A540647FA07D28C8FF9AFDA45481C4A3FDC1FB7A2F33AC5727B C3DF7D29E09DB36F0588B8B96113A4872673C35DCE280666CE0304C01CE6DE3C B7CBAE9C8AD5880798C178C638CFF778E0FB1D2FEF741700524C25E3D9842305 70D1451CBEDB27F4E414FF97B02D180B9F102E37A3CECF2E517348124C8D0B05 D41EDD84DB03F3FC1758B6581CFEA057FCDA2BC6A3B782D475F61CF06951221F A4071771BF8E459F8178BC0043C0E51653A6040BE714B37F46A0C1530BC18A38 D428CAA07405A6125E91BE3B3DA3A522EAB427A626D0F8FB017DBE6858E85206 C5ACB6714650AFFE23F922E045D831DEB5752A4393B2EA8A384F8825E7935A6F 3D3BD6C7AE9F233DDF84305434C314FABBA33F18E16128331E58299CD225E9CC 1C3862E75CC90B26D3B539C8584DCC251E0CECBA112EC812FF4702D6012E2116 9639D33B43926138630FC1BB6A2191039177876016A293C6F28E39EF3A7C5DE6 B7DE7CB1E462A1E88D4CF51E5255FBB384E0CD53152CC4E87518E83B369C88F6 751A949FD2906374B23E8F71E65A7102CF26BF5211F343F06AAF3391429B3BEE 8265F86162621681DC18EABE8F81A7D7688E786C11313B074679DF7EEE39E2C4 822F80A132432080CBFD1887F65655EC9BB4EFF3194A314D6E215A8B10507805 3FE72EF0DBEE1C1A95C2E2A75DACCDA547FA9019B619EBF68A08DE2AF7E5CC36 2E05786C6D5BB5A2D66A021E366AEC21E4BCB4CFF70AB10AA27662A5C32DEEEA E30D5A1819164E5B27C44B8B686B62E559234764BB0B551CE27C163E08A74313 0D428A1FAB53FEA159949B1A206755E3329131102A12001FB01B05D4246822F2 E128B8119C61C75568506F16679FBAA598E2D288B3E432DE0B20189D22017973 B3F228F71E0BC4C21402ED6AA32F1FFD59301E72400EB5A8742560FDC7CF03E3 8847F88FED5B7851DB67EE723E65790FEA8780D7F8E389B279CF0F045D0737C9 35D51DA9A95BC6562ADD5C1D49A6C8922F1A18339DDB62EDBE10265FB745161C 6A1CE25EA5B10EF01ABD169A3988BF26FC366A75811CE04E635764E7C8F83FCA BF755F6651CCDC99AFC6875DC8F6887FB1D11C46B59F0BA895D7AEFE4B69BC3E 1D62CA67E5194FB0499C09C4E5AB2D6FF672C961B93D4B75D49661B8FD16D6D5 91A5F819688CDDCF1CDBFA17273DC8C4718A7CED792DE3DC88750B041660EC79 06F1E8C688AAC7D8A1D5EB452602D4E9E6320FED6D173940D49377615338EBB4 CF26B8B765C08FB900608FCD638BDA8AD2498ACB1164848310DFF77ABAF736B3 10228745F6269F97B9A2F71BD74C7C2830B78812CEB2739BEEC9757C3D26FA1C 5871E22D247E5607A73E7E1AD0A5BBDD68A35960661AD11BD0079FDD95C67996 5D24AA59260543C9F84FD83E5C4DE0AF78CA11CB0FDA0D3A4E2B8A7008674AC4 C65220688CC1309949556AE00BCED8AEBA8646E906BD0972AFFF6572167769B1 C047C0DB6896924D78DC6B710D41E9B2617A1CA4F8D2500EC47EBA37CC5027C4 500DEF79AF5BA517BAF45D46C0E0ED3FE2A4805294190C3BCA33CD1CAD3A0AEE 8430554CB25ECB5AF91CC111637FB28E4EE2EFFF5C3039B7173DDDC21B041BBB 44AD05366E4A621F35D3018F7BA10CF3E15BB810F01C2DAA09F59A61452639D8 0B9C5F0A5A009DA54961052B02D11A0C0E3290134F96CFBDEF9BBBDF8B8FC66C E024E55B56A2A77C2D13E88646CCBDF702C283C5DD72FD5C7870E86D77350697 FEB58E83797EAE7872EE98391573D3F16167F4C4E5A6F972991854FA3A3DAC6F 60493B1E938ED4CC71160309EED5B83EF9C642B7C9F151515B75EEA060A1791A 4CC7161DA75B32BB36771CDBFE927B49DA0F4C72CC389F3B5BA679406E2CE583 239D7826DE7F9A6D0BD0C402B97BD56040EFC619000B205996663DD78E7B2D25 E245B11D818BF15F29EBCBD0211B1812CF34BDA7E7E8E26819B381A30830F738 79ED3D6B32BEF7FD10A7CD3188FEDD9A110D036694B7BD451D876EDE5D3A8712 6ABEAA090E95A62ABF6BBD2D5D4296093F6E50CF519536190305378466286F91 BE0850B6B7C88102F5085731E5CAC32AFCDA8D5AAC0A67F77CFEE5C782944064 E949F6443F8811F48906A3F09DF83086173300301ED4F2DC5C9F93AA48E130E5 E8599064DD910F2443AD808E66C685EF65535848F8BB4AB7DE61D5F2945016AE 2E4E7A812AB0130FBBFD70C83349EE884D02F12B3F4A6AC8DF878A7276D45EA3 F6B67C9DCA8B1812CF13824D9F1FE5092E83D6F058B6811B1036A108DCB95FE4 0860B0F4FE023B4FBCADFA58420195126D4BA2EA96BC431A41ED46A0A522C977 B9F264B7F2B5D8A549236C1846D930B622A25100361663A60FC5B915B1EB6A6B 73A0EA9EE46C435368D570863E83C1A2BE6A0223A4F0AC8B3BEC57F8DEE2A3BD 1505A1361E53817B9E860CE4AE0A296A5790E3C98516D16A8184CE750F9E5C54 4C96B28FE041992543A0765C9FA200610F6394C39364DFFD6C202A0F398DA79C CA0E9F02A2C2F1E55095158CF727399D6162A5079D571AB7FB2BAA6512B98B71 B10965BBCC049A9E1796F5FAFCE30E2BC7AAB4ADF041DA1DEDC44344A03C6351 2BE9540CE676B71D66BB0978A2A6347955951CB18195986F7E6CB4EDF7ECA976 1A06E415A69B32649B8F7F67363FC0CF513CBB54406A5A756F84D0F5530D5C5A 7874ADA10A9D8127BE631AEBC1FF368ED5C41915042D07551DCAF1453DE38160 FEE811A89BD163F62D35AB15AAC14712D224E7256BBAC34524DB1744ED773819 58B3CC5CD943582794BA16275936A57828EE0E67825FB45D574975A677452109 3289FEE5B6B35C00F75CEB73A76DF77750EE7557308EFA3C2F80975A07E77B87 165E87A706BACF0D5008BEABD3AACE9689EFB1FF81C3F16295F7A715DD289B58 42288E4A5BA5D6B94F593A9937F2361DB0E4060F5927640E5471B86CCF12A152 6F017BEEEACB893CDCC965E8E437A50444F2E42CBEE86C7775CD5618CD0F3113 725A77ACBD307FDF52300413DFB474BC7E5AD12DC1D3EDEEDC342A0AFE1303F1 1E28D147EB8197A20F11BB1ECD0A227B7C7DB429EA875975F8AFF76C8A39435D 4A4C759F5DB2AC62F39323D08E7E78DECC6B4AFC703767E294E52D426C313305 2C0B951991A21B56A4F3C42448FEAB12116109D5515B43AF0C029561A985BD0C 500EE4FA15B467CBAF3B7F457369BE3CEBA8C1FFE2F36036EAAAB51A302B3A01 DE9D0128D4613304E0083C98EA9177D7C1688E61BDDB3EF98B4BDE74503C7289 6BD1C359A35FA7F9E3A0AFBB2764DBA1FE1C533D13E5EAADB2BE49B186AF05F4 183451D229E7ADA5777F1703A358765FB5EA73A2E11F73DDE4415209D6D9B264 8EA3A146D4214A6B57471838CEF1044C7BC93772B0CAF02C263DF8F68EBB2EC2 2D0F86E59FA5CAB434CFDDB059E72285DB17E05E03D518BC57BDCB09692159A0 B9BCAB7FD0F0605A9CAE89CE33CB7DD37ACF329C87669593835A87523DE1521A 8A8D3EBB819B94176604D50A645B4228A594EE817984E851A0227A970250384D 15C24933DF856AB50FFE29A8E9EE7714B1CBD3F6A73BC4DFA7A9AE28C0124A01 D2121BFBB5039425923F08C0DB244502E4294A3AF797E83C7B14755965070769 352CC66C1611F7BC068B7088899901B38E4BBF752ABD15730A8C5813D2366CF4 FC0AEACDBDBAB5243E421C38D244F449559CD5ABDE6C1953A7848E515B7905A0 B6A52A682EDB3D2AB82425FD2DFEF554B7869A0D47DDA7360A37E6DE4B0B1576 E09EADAA75EF7C851F519075F6F00DF641A045A04BE41F6A8B925B9824CD4E2D 9B1D727A967C78FCA3AE3DA6A94A20545F29AB5D9BC158C1233ED9E8380D4600 40131A0C0D0EC5A46987E84D3039E958CE5F3E21E5BE00D8DC05E2A6C31EC922 735261E2AB30E58BF3425E6EF7DB4327D57CA6F5AA96173EF1DA4378B993E6F8 F7EE233D932705E82359B351FF00177BD5AA5280246798680FAB2A04A56AD451 EB9A240A5B0A7D01D733BF783A6F9572ED5DBCCC879B981386A5C5A5823B1D36 CA2BE5F89FCF6D763F964EE637FE8800BD436ACDAB888EF72DE3A22DD325761C D42CFF68C72429DB1D6C16D725149D42E7B8BBADA71BB08CFDA4C669CEA8A1E5 4790FEA2D9145B5B3C9282BF86B0141868AC5629E1D334163BF72DEFB66E7451 99FF13DF22D54CD5F5B6D117A22574E091B1F93192FEC28FC43E88F353F969E4 92DC543FAF05F41A231C9A13FE4F14475739DDD2EB20654D02404A98F064B3DC 3C34D71BA477788AE17235C3CD33722C446C897AFD272AA8F0F667C9AA184A14 B5DA2C36B030BB39FBBF92A95AADA834B79BA1A4FD2CBCF598CAE6AA544C6CB1 6A961FC8AA2F750DEC9AA467DB6B66A769E90C1EC45F64FF5098FFAB7C00FFA6 B5F3ED5AD637E8D20C3E83813E3F69CD722D77BD07111833797A6A76D669D7BA 4353E84C88CFD10C832AAD4491BE205B0AB3E7D6C130982D18BEBAA04BCA7EA0 8F45AEA2047E583A3B8B182FA42F6672B248DB5CD775D3AE8C69BB99DCDE6FF9 242EE87402ADF085378B61D9671226A9411DDCAE4DAED7CEA9D5F2A6A143DC3D 0765A1D6E791B6A50440A0F4EABADAE3C4F3D2D9C8A7E8891F2FB6387167D625 C48DC018B648CDF96D946A2F185A900F30AC9E37CD459E17E9E3AB90C5A72F0A 4348EA986FE7242EF2EA700C5E19D441B841F5AA9A97FD063A56E72587D68C48 9AAAF4BD4AD5A789F5CECDBD57D43DB58058E2EE1DC83CDF655B275B614AFCA6 E4EC06A48915EC95303F399967E4E04E385EC2AD9215A4E8084C22980DD3B2EC 412E186087F7EC2FE7FF7973CBA48C1C258BCEE8B292301FAE4266EBF8273453 7E7AF3BB94E8DB4CD01CACEAD7B34F72783B5964CBC09DEFC3C49BE0BB51546E 2D1B656585734A949192D5C8826ACEEB14DF478D2F77DDF1AC9779B8A1FA6373 7BE920399E13CFFC387B480BEC38C42B30063A7203CD408B4A4406EF3D80396D 2191EE06749E6BA7EE22336B4489125B18A80FFD22E160E65D0E41F338AAEA51 C7ADB790D28EF9C1904C263D0848F9735A97BE28C2EECD9B25F727A80F41B06E 60A75AA90D9830A676D111B66DDC1121D467A8FF27E68BFBF10B77208911F0DA 95EB1B1EFD3A469E2A639B47387A3D8EEE7782E334C95241FB2E24E7E499AB10 07DD3C56F39D8D76A2F3A330870847E6CCE76FA0754510DB004DCDDCE2D96899 FA0CCED0531EBF2A9B188E47D2EC1018558132C06919C753AB68420F87EA71CE C8FCB24CC41A8F6D46439C11F596BA706CC478BBA39FC10FB009DE0F347A4FA9 7537A0616150F0C8579363FEE4B714646162448E63B76DC5FF7477B257FA15DF BB37710E313F979986FD0792FEEEC92A0B4DAF5F9670CD62F58D6675069913DD 171C9779CD6BA2111C0FE279C673292E314C3F6DA155EAE399DBD471578F2B1C 03436112A0AECFB1B1D838A8C97EB0EB08716AFB982E88762643ACDA884A21BA F0479F4603C082A5563E43BE458565F328860347832818598CD0EC28FF95AE68 F241C982138E88D59D63961690C769C99F360E5494057A9F2009AFC52F320DCA 38FB58188D59C913FF55FD5D9CCC35F4D6B5497FA774CA4AEF8722B5406FB4AD C9BE89A1E42A42293B02B47F41E739F7410BA9BFC908CAFDCD319B344939C1CB BA4A233BEDD676C8561583F06CF8BA90CA062D6951145B2D4EBD1D6B91FB5F37 8C521BE2E4F498EE468C518876C332D744AB46FEEE1A265970EECED770E88506 5C804E1403D6BE9D121BE6D1EC80C884B40FCF2D61DF41BFA19B67EC50440024 1AAB9B78B52D16DEE9E394105B08F91FB82B1E494DE781160D9B409CE669B47D 99A324E3AFF0E0DF54AD6311D705EDD158A63A7A558B24F0E9D17AF04F0AB4AA 7E7466C94393BAFB4867F05A7EA456F0C9EF8BFFED6562EF95053E1F57CC86ED F5D9F599532D76EFEF0F499A8CB03E56B06686E5BB767503909EE025E4C81359 7841BBBC27A5A281693E1A58DC70C9BB127E598E221F64DC4B006B6B71A1E9A4 2E12F42CA367A3A5A23DD2AB7E4305736C38D21CD750ED6D298BFAF0D06F6BF3 E53D33926FB4B90BD7FD7BBD8519A59E3C0AD0A36DC6F13CB9E1E9591170265E CFE6532087F696351754BCE8AEF763C4BB01948C68FB80550F50B4BDF1130D20 505FAB523AF7ADECBF3A35AEB32997C588A0FBD2FCDF9FC30141ADFE918984BA BE657741D085772F7CB24F6019A1CBEC48889906C911A1CAE36C22F02397355C F221947076992D39C5F60A9663F53FBFD4C94A6C9351F6FA75B8734BB6226269 6AAF7606CDA517AB21D7D54FCCC42AC67759763DC7CF53068FB13D3346E1E8A9 69E0746DB002357EF71377F0CE31492C32E90B835EB9823C7FA6BD40109995D8 DF3CE8B77FBF5F17DB551DC678C7A4DFFAE1F7BB95502692EA7A2FDDDBD4CED7 77DD8F4AC0AD4EF5B6E3ADA16BCD93388F445AD9BD85AAF3437CA556F0F81893 EA72BA81BDA83A5BF2073B7B9494FA69AF542A6AE856C772DF4D1FADF37D6D6B DE7367A8E7E00189ED67C86B8B675A4DE06576BBCC96CDA16A89C6808DAEEADD ED31EF1FF9F7D31327ECEDBD72CE1B3C18A5A2974B952BBDB7677390F44E58AA 81AD8AD82B972194E1E36C820E1AB3CEF5B6DEE3838ADA356DAE007949E1F667 1DD707DD012812CDC3115E8B25909D6C2F9215C931DDA3B3BD94907490C909E7 0F7991B8048A532BC1D73081FDED8047D3956ECC6F1E2C61DD2F15707B9A6285 9E31C1D31992F370D03A709C0F4DF1AA0586E74F3581D6A25DEFD622531AC5D2 4006234AFE828768F7DDA9F30BE06DD501B24A33EE52855D98BBCAE2CD35B23A FBC5EE1F59690F525040CE541DEED984F12961A0C27F7D1C11F89C1AAE0A0920 E49037C8E4381B378DD3593FA8C244F4F2FA97246170E552CCA2ACF8D9C3B6FA C052726BE15E200AADC5790D41915C62759BDAA06C75409C63232085E6656BF5 EDFF785A24C06EBE0EA1FC3FAF97211FE1E21B92EAD964A2F09B757EE9488F72 BE0986E2AB8130742923FCA17DDF041A59FF6D4DB223CFA6187E12FB707BF6F3 3F6803B208B3E3D3E4BE4D73ACC7B83C8A3DF721C753B089534ACA954C601AFA 272617CE70D3BCB684E83FCD4857E7861F5027DB02268577CB0427ADF2526565 965F768283E4A842CF40943F636A950290AB50C45AB9024B727183B726E86775 A33DFDCC3B21450B542D43FA6E12B8D4EF62BFE0E5BF3A976795081278FB36B3 DFFB102BB1037F6E8917524D35DD879F53D651446B4DF3701B281AFCECBBF504 5EAD89F71318A2F2FC258B06D5FE14B723B25F09FCB1F2EC08C29CC7C7F79983 340F45760B6BB8C115431E0F0BD357A97546F7E5D328303EB052DBD586D98E20 4DFBAD8EB45C61F52130B5607DFD46E314CE7CC1D286FDED619606C5FBBF8FB8 FE2E7D410717A63A495464EBDB1F77E18385616A7277F5E092F37D2FAA19BEA5 8F3377C58D005E9B329169C8F58A4FA5E7080E53E00B1C2AFC34EB5F4C0D3FC2 66AABDC97652A12B9B3B9EBFBC30D9BCB2A3BE648D584AAD72403D73C9B23642 7BF772D05BC123000D39BA485C3EE61397BEE729DFE90D7B136A07C4ED454D21 FA43F88EADD4692AA885C7EAB1AFF2B3A84049F161A70B2EF86874D47F3C2E81 38C0DFD41EC8BB0C3151D3139E4BE0F89DB1C8CBF886ECFA0D2A9933CE99DA02 314B91C60CD096E4FDF898A15F786C236262CC809474E0AABDD7C39035D3BF16 80ECC14C9F843FAC223EF5A71D820AA7EC8D2D51052362627F94B71D37A45D57 E4862E1EC7EEED8E51264A976CD6BCDD236E870F47E76D3FFF0CFF9F9E69391D 61F55CB62353A87D4CD2CF78F93161549D3C3C569CD9200DF39768CD51B05CAA 845F72994E23E5675C14C1AFDE09A6C14899FCB72F505351D0781CB8F1C6540A E5FFED1DE628152811A43BAC7CCAE02D6C76459AE12835897E6FFDD583E1C05A 3B073ED0C871FC676B9F91B836BF2E29E74A6A5809CD3880D2FCF26F01756ECC 1197218D15DB950BCCFEF4DE5E7597E9EEA6C5E56BBC3980BF29B906691C6674 371511B56AA6077113029559BB109D0EFC8C73C907829D4429BCF946CE8D2832 21B29D98174AF36A4F01DD6C848D3063BC8171D057B2DB1EB1522C7468D3DEE9 1EE1C1C79F64BA2D4FD77D76030845156510D2233D0DFD47C49DE5EF0BA53C1B B1075F5A69813C28234A63AC3D2CD9F4006153B87E97CBBB9E3036F007E97528 104CEE37767B3F55A37F6453673B2D02D4FAE0B07AB1F46F4DC0E5F29E37EC39 9728306EE0C9D3312CE928D9E46B4718761E111BB9B7EC0F8C875C423E28EB4A AEA162029B7F318268288897222AF41948A80135BF47F2CACD99A9BDCFBEC706 816D245E91E0BD366E0DAD6D71070723C46910299A7C77F678E72B61DFFE99D0 869F461D8681FF5FB15375F3C78697291D2A81F6A564FCD4CB99F70C90ECC4E4 BB3800E29D9ADC0696668BC9FF743DEEB240E23945C5906588ED8DB7F6C53F2B F234E896990B23649275A6FEA02972649F7449C15E673E2FECAAB2303EB6546D 9BC5BB5E46C8226CFBF9D92E73EAEC956A52EDB5B0CA00CFAB00E598B76D433C 250B362B55CB403660DB096D86A235FDFE2BD4C9F8AC8C9C1D14ABDB8434CC44 A58C075C45027AEFBB5751E79054443EB824DCD142BFCE66A2285B2CD4558F10 BDE663F3728C6E18D0F1C9584BBACF7DFBF329CC62D12D7F847CD8E0C7CA758A 187DAAC3876AE95CC4B69579E32E0B78B1C1D1E84C1F4E359F45E3CD1A3844E6 74C378C8B2A0309BE769A5D8A79D05CC10787A995B96BFC9641C81378C7A498E 1643CDB298A998EF3D4FBF8D0E3814A05F0C817A4E9E5BF0BA88D88589A2562D 1884838C341DA7B31D2556A37D68ED4CF431F774E678DC006BD8015BFC642184 EC6B8E374BE9C05B00D01BFF70E729910D18404CCD4DB641D869F618505B4C0C 598994D52FB89D3DA147CD8D67A187C929006389CF6CDB718189708D0FE85AAC 1BE1EF6CD091D4E3200430CCEC58D7F1FE08725F16622177BB0EE3C9CAC582F1 BBDF7D2660C6B187D05EE718791B080119B3170F1B86F1856E44CDD5E1CF6556 31E7ECE2D10C03D53F2EA3135B7E7C148EE70330D85B8988050C76A8C54D6CAA 5BE63986846671E410E3A00AC576B9346D4B327A5E1EB9FEAE28DB2B1223380E C2619D9001A43F68E8578D765BDE3B1D762033D5B53C43FE372DDA0255D85C2F BD32D2C9269375604E295EFEFA8AF09C16451300254B79E14D768C858B9B1B6C C33D9088E24999B07C0D8021A0603E02A6BC916C3906F36CDDF93597F09EB497 CF230CEF935593E4763C1DBAAED41F1DD462BBECCD6FAD81CF46C33D2AA6C895 DF0B9A4A678415B0CBEC15C3092CB499488CF5F6DFE706E931B1335C2011E453 26711483617CAF91893F444FE4DA2941854BCB5A9C626F7AFF3A9CA822D8B986 0A2B46127A31D3A80F42F504856BCFD28A27E320F0B072C47F2811754BD78897 480AC376B0C9372EA76D85BD5E3FA6B7C9BDDD3A5AC1A8C7ECB63EB09DC89CF2 78BE415C20006AE0334351369C5BAA2C5AD3B8389DC5863C262F4D39172C91D9 FAB294E76151328330FC65D8833A45327A89DC928CD5E95504660BBBE72805BF D6177FFA9F7797C052CDBB52B9580822662A29BC7376832B2D1199D84919491E 87D31C2966425CA261E40965930751440FAB14D9FA6193F47FD0781E68B0BA26 EBFB4BA19DBF2E4764EDEA6311EB00976BC4E33D67275DD23D476229C5EE9716 A0C22B7250B5983D75CF79F10273C1D291CFB32AD0B02F0BD2DB5639B275C912 38700193597D15A27DE4B002E88A664F317EB21E40597F48688DD8BE49D6D088 758D209AD3661FD736CF343B9F52BB0AD306961EC3BC14E8B0CEE318ECEF4B61 D231B495059F88BB8D0222D4E712F50BC184CE046950A9922630C618F536B86B 4795AEFF50A281F8C576ACE61B48EE039611EBC9CFD44EBD6D48569F541A23AF C1FFED671A1FFD3A6EA10838815CB0CB8D39F7218816F940D83516A84FE62F22 F9BB8DAAA4AEA9101CC50595E73568572B5C627D292D0820DDB2E0D92CB0B045 6ED7CA763E8BF1F4B3D8C920C67A57C64747E1FB03192078C5DAF462696AACCA 4286DF7EABD6B26BAA8C6BE5AA69917688E997AB1D0BC5D8877E1C149B911777 98068234C0BB7BF68E5B5F9C7C376CEF001A0AB843FEF55187CC6CA171B3987C C22CA7DBE8628FF69F436ABD14A3D430493AF8676FE9DEA3ADC54D7CB446017E C747DA3B71D5E35DC254508F0D00ECC5930E60903A22E46ABA5F803EE669484D CD79E5924BDCBA904ABD1BD4BDB8DAA0EDCFE3DB7C291CE3ABB1878A34BCE380 6376142322BBF29C01851E3EBFF8476032D004129C729738866C346A6DC9DDA5 3CC6FADBDCF742434BD6F75093FDAB9E87124CE524AB4D852C80828428D8 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSLTT10 %!PS-AdobeFont-1.1: CMSLTT10 1.0 %%CreationDate: 1991 Aug 20 16:41:43 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSLTT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -9.46 def /isFixedPitch true def end readonly def /FontName /CMSLTT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-20 -233 617 696}readonly def /UniqueID 5000800 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0528A405DF15F03DB1C3DA8B850431F8 0E5F73DAC973450D1ED0530313057E971FC7E7CA88E61DA6DB9A5CD61F0F76CB 4DE9105D0627B8DDF51A655098229920CF429CDAFC3F7788C95E7AB30E84F840 8CED52E98DB4CFF161D2E62B0D28CB8B0AC82E7A8D2C007953BAFB3056D66079 8064956E257D31C13509FB81A250D9E875C77A4E91CC49E9FB3C0718B2F691D4 B4A64F351F4DD68133DED7629B0D96E5124584A16FD2AC7A3EB244A934FF059F ED7297B0505F3C2994AD66A3CA5D2728B034DE94B64A8AFAF341601BD4DB5858 C9950A8BB9C598B8960609F48116ABA8C007190AF0ED335EB5BF61BA6871FA5F EAB5A26AEB5C7C352EB80799CEB983F19EEFA801093F62086AADD0B80BB6580F 2CF61B1390FA56DFA1A0B61C58DEF96BA767A8A37EA44730783C600706606C60 4EE74EA99B7C0F8E2525C8847F3D31907C3C483EFA98F6C416B6B2C343DE6370 52FAE423008D086A76A1FFB327CC7FD84B1C66B203A4F41582F4599A82F8362D 38108452EACCC937FFC4F3ABBFE3628DF51367DA6BA3F6826FC6522D6AC5E8EA 00BAD300FFB6DEDAB93237704202BACD030AA824B1E97C0AFE17FCE8C75F4FA0 B8A74329A6CF1788C7EB34DA7307411E9AD7ED8D6582884456E06E033B4FFE7D CD4DD8B06AD01340CCCFBC382C18CA451E4C886B01D082FF8CC5793F4727C3DF B52B4F1A242F31D1EB79D1E39A1D4FD13D6C5E2A42AD4B4D1CC4EE7BA0E5F80F 802E5AB57EA15F4DE44D82AC408AA86D4BF58EF967FBC6497BBC7F017C0598AE 32CF865DFFF0FC7FF9E6DCE9B5F2F4C7491AC674F46E8E7660452CE0A77C1EE8 00DE382ABED85350033EC00053134DBABB69DD3098576DACC5D1E325C4B372B3 943F8E90BE7B97B996D39337ED6D90F8041298B7A27B223358A5161FE98FA4E0 6879524934E026863F790FE3B5A8A41AD2E91866F81B195E0A02D9BDF971633F 0FE9A9BEA04CBEA9E46AA44C31D694A0AF3D7CBC1FC4988F6A81130613047150 12203A85849EF4D9238604ED8040DC85FB0CDE867F50EE685C8B2BB0574FE22E B02F2595A161E810E2C9FB46B3E15BF0B3E7591FE9CB28E360E13BCD7EAF484C 75BC7CE95B1FF7C121B7F648CFEA74F9B7469E04711BE194BE28AD6C4323CC66 0282DD418907C8B27E72556FA204F337A630C2ABB8EBA157163901806B09A2BF 7F8AFD44248268328791A146C7C3CE83193BF31AFA8659CC0A0BCF4B115AB199 80EEDE198CFFF4853525697E511B1F01E7804EDFEA413FE0F047D54DC962D193 954CD49ABE13FFA7DE611A90F1B228908D3C9168312471A5C59CDBACAEA8DE8F E4973CEE2FFE1554D2B2622AED9A61053B57B11F72A40AA5D58B3D0F76336F6F E1B2D6C3F6614EF9ED18B81697996A4B1F1E7DFCDFD05173477B88432407AE27 EA0E521360B2B8F3CAFA63A087C1A80530C2673A9021C523BDA7D465F1E19116 20F129C23DAAF6D97B8CA9B48B680109C66A79768D4F7147D9CAF1B259D86F2D 28CF0674F1F26309E067F873CC7D3F41C991983ED66A5B85CACF4CD186E53695 468FC084A6665FE73906AF078AC2CFFABE5C87826FCFAA19DEA07A207C3755EB A9EB5365CD4C8227FAAA8FBFFEA7132B0DFC14D4601DB0CACF19D8D72253CC69 17DE0281894C70B7C2D1AD06D06AE5B658AA4D56B33CD4680AD676DE61279A89 4E07BB726392ACF5CB2E548F7133EEA5007541004DCB37BB61DF1DEAC80ECDBD 2DA8DA739069EC565C1CBBD09590035B422B2A9274874399CECDABD2DBCD213E 53085B751FBD8714A9DD8A538C386E3DC715E898E7B319CB9BC9CA56C9E79602 01581433A4A5C3142B3544E03F10733FB1ECBFD8637B990CB6049493323BBA6A 0CD6B8EAC3BC741BAC402B08305F0B32E3CCB021B5F8A1E8CDBF1D5BEC5639AC 4D2AF930366FA43B938CA8DB1CF659DBABC0519218C2574B3AAD5F750AAB4C9C 4272E1DBABD80DD624F16248C542B5C37C36AD416B4EF354A58ED3BBE35983B4 636193FFF58EFD5BEC2806D988E8B6DF2EAF7754C779B9CE9EF5BA722515EF31 826BCE123A2D823A19AF81A27219E682B3156DA712358A46D783078F249C3CAB 6E4019D3FD281E3337C594CB5C01A6253AF1F550F175E6DA55ED8E2AC3E3EDB9 55E3EB6CEA0368DF5E75A73669C1ED2B383065D5D36E04E4D817206301ACD66F 8A2EC7115871F37ABA66C8ABB089D929B3124F59096938BAE40882D5E42B1B18 5F51B9D5F7AFD65203386D3E209BB58EA4C5E43584CB07C275C21A377607D008 D1DAFDEB9D768063B58650F0CDB97794CD3C11129CAA77FFA309A87C8611CD60 763AB49FE7DE67B6915E2CB5438BAD0B8F6CA7BBC77681F5A992C6DB258C460E E2FA9E2B436C3B733F15E280AD21C1D7C380522E5EBE8250D160128CB4B80050 8729F4408475ABE312EEEF5B290B7D0072E3F56499F6739614D1740C08CE726D 6D2AD2206AC96387A99AC9E89FF22C9F012AA676E6DE220FC4929ABDA306F5B9 69EBE3009B0D71F245CFA36FD31D16D034C278B3A004525C29958AEFE50F4C8B 97E9595796FA7E3ED9134BF7A5E27E118E50C23B6361C34A6D0D58AD6E4AE17F C73E06F21C37E66A228742C58124F73249893EE91C793D4E8A085FC5C9F82415 A625DE5BA882E7F3E8F8B4F609287FDE2A32A6A463795F7BB7E657CC381231B6 EE8E1EB29DA11E1BE4B80C55CF7290FB8634DADB417E2831E06FCCDAE9C8FA87 F58ED548FC2832F8AE439DEE7C2F045640FD771B8CAAB125C30CE0220DB1214B 0A216308D7AB39F386BC3A0D3D4B85037BE30A2C339A7396891FD5D3B4E4EC87 8D1EE7112BE3F9CDAE2F04299A524C5B96E0CECE14981489D3FA67C4B8B0C941 81B1715FF05108283A44BD8B277FC56B5854E6B11B6C1DA97ED2A7E75AEAD098 7CCE89AA64A56CC710BA1505E440BE4AD2028790CBBB5E44151BD041625BDE7C 71BAB484176B8CCE9CA6D70C48FFCD8F3BC4F9B4EF9CC84C5F8AC7C193C88094 3C2247C7151984E07D8756F7CD9100EF635585A6B458F2B083E5988C4D10ECAD EC21DD0DAABD99724C90FE6504DEC30821DB5B69BB069216AC84CC058C50D72D 0EEF44BB03F963288417505C488858DFF02CB1CDD4459302DBBD1BE7B37CBED5 6123A9EC0359D2D23EF61D2A8170E6C5D6FFBDCDF20BE219C32949A01E043DDB 09A07DA8A9E554BBEB8BD1ACCAFCEA50B399C9BE813D4523E6511A6DFA789C0E FAED3EC216F4447759E93C5E918962F92CFB4A1FC3CB4162DFDB4D86F5600338 17BACA648599CA97C355A5DEC90288F9A3BE2CE7526FFEC18D6ABA7C96CF1628 E2EC65EFEB805A4E1540AC3981CE274548309E9B9BB484B196D29E1BCA335440 7C49EDD9674F761015492989B3782696A7EE127E0693BF20C5AE253DEE7F7D4C A723ACC9FA65196421C26A0480ED156805E6C13EB4B036DFD16854CE1133D037 6624226C3FFFBDCF81500729C7AA45994F695C11F4F66C9604974E2041CEE1A6 2BED7244B288DBE69EB375EDF8507A016666AD30D304DA978672408AA5A027E7 44D9CE68404ABC88EEA9A9EEEAAF4A45E63FA5B618F79DF88A3DDB7B7E8FC73D 5147FFAFE17619ABABA7E52D107A7201C79D0B32A8D51395077B99E63A520636 2834040A1BC991787080E0A9EBA50FBCC39CF5C7B8FBBA4DEF335FC120B605CE B9965237A098D7816C1C9B191ACB8ED9108E2D3F15E22A4F100F904B2E144C3B E97ADA0DBD241F40C6AB4AA8ADCFA35CB830C37BD1C695ADB3795BF3D9AF789B 4FA3E1F34CC5E23E98AA1B43A03BAF907C0EAFB2A9B3A1E9761A55A012F8DDE4 EBD070663D3817E3D8ABF9281CCFCEA85612C2E93A9DF6B072C1A0BC3D30AEC5 EB292CD588EC6302B96E12E0507C88BE4F0249DA688ABE638A91159131267BEE ABD99F74C75E4659E810968DDBB06FF1517E45B48FAC1ACBBC2EBF739731FBB3 4CF58F988C63D2BF5C3436D2213D6C7C9A0C3C29E701DB4CD6B7B2BA5A8DC5FF B73C5AF9466D4E09C15A3EB567EA5F671F144A3E23B1B92D723C65AD6B798CF5 3AB40E23983FBA7FDCD1337B8AB3416D3AAC177C349EDB19E3F2DFFF6D250C81 26CF3CDA336F1C6740C67FC89D4DF405C5E5FD8501C27B948791F519827C1B7D 9C3A9DD33F48C83CC86D0711D8B495A904B90CAEBA7CC0BBF9C6CCE25AA9386E 1ACFF8F9366BED228E37634865EFE1E9B881FB216EF3C7164E8B0837F02F55A3 5109E70E3E62BD5DE783B596D54F2635EA69A326ABD57ADB2C084F3346595304 89FB64B9C52A7A0548024073405CF7C08CDAD5E55C9117FB55699022B9787A0A FBFF29D892C69148D440FBC702E87CEF988A9BB23D2613166D203E8214E0F718 47F90D9F52F0C6D715860D93BE6222D7561E34F93A33B40024486399304FE728 F0F91AEB2961957D761F3BE9853B190E7C72C99E81721763CD9CA6AF7777254B FD2D54FDC71C8B1B5D52F9403DD682062408E4DDCA06FE0675757B27036429F4 C806A53793E1EDFB385DC333D01BF508F4A2B67291DB7888E5CE9C658EA20427 AABC3811352D16369D10BEA808F6B4D3EBA8FAC4A9F520CB28867ED4384CEF22 222C22CFA0160D2F9EE84830434873071518DC31721693BD9AE9D9844242DE35 DA6B17459749E4E8132B251D92B1D58233685E9E6359037ABC41746FFB39DD98 B86D3A8FFB9BBA6275729373C1FF6C8BB813CD94D719C380D854C1C046F623A0 8E33303288DF4739A8D96E26E8A1181F16D4D9B5E04B5641FC98159EAB2B3D65 42B5B43FE10A85E1278FBF572249FBD30D88E98318FD6B90A15DFB6A04B6BA71 42429E6EDB8D13169A26476096AB912DC4ED4BDEE7E3BB4ABA03DA4AC15D15C2 E41E3E9DA1B6338F80C6424663833ED85DED9739236BAB9836458684E63629A7 1E9F418B1D6FE59F8A0ED133D6F2CC494AD59AC6774C5F0BF0EEFD8C2A0F305B C8AAF75489F30D226969B5C3D77A6A588FCF3C073A840625C7D6921C1AA3153E 01DDBCBF6F57EAD1D99D2C43753553A4D6EAA0D442D8CACA5F2B99597907FEF9 5F2436B9568F1087720526C221A579FCF25C4ED2F553B93DAA44E1AB43E782CB A24592E8F1666205CE6543EC361D298FC458F992C6851A680987ECEB1617A84A 8133296BCB745C10562C9AD3D9BAFDE77C69392272C0D18F77D713289D26FED8 00D01DF0C8A193D6B7B0634911ADC208292FF6FBF55DEF31E04AD6DF75F2F6E8 76837DCECB8CA1D86FF0C4E3ABA4221A87FBC3ED813DC7A65DE40BB74A56B926 50270820C7DB25D0AF02662F183659CD622DFD69D397954D0B87AAFAD06CADEB 24419524D6DBC79A2D1297CA4202C64C739FC4C95043DFEA744DE15DED7E9D95 B239A831B6C7167CCA5BBC9372C41556E2CE40153EF79F8209CD97143411FA58 FAEA5BAE540C7CAAA9792FC1A37224F87E2E18F251C11296C76E6A32E58CB713 3E0F4A104B0625EBDA2EFBA219188AAE9AFED787FAC48413E86E07D2CE2ECB95 9DD4208D4C8E647F9D016761C6EB6939C4D75D70E4DDDD50BEB534332F8BC76B FB883C54B73DA637C6EEF453EDE73F254CF9DEA3BF07E34BDD5D86013BF732B7 03A1A7C63725946EF305C05D6DD14F221318A126D34C3F2018DCBC82772F91E6 7292241085F66207ED24A9AED7CA98316ADEB6CD48B11578300B1F88BBC48B14 5261B38453E1014321CC2F5319618B634C86B80610B8ED3D3AB917DD8D51D89C F583AC6F5F24EBC839E3D37DCFFA8A50252607E44A80EA3E2FA59FE620067037 E30039044AAB45D38817E631BA54614F58E1A10F831308423EB6CDD2CAFCC1A5 9E22F57BD4249279B6D78411D1B40CB1CBB8B52D44911B612199D500397B223C 1EBA8E0FC39B93D8AFCEF4CC7EE7EC3FBE7CDF03FBAC417CA811CEA4234237E9 3DE3D88CF5626F1709ED17B3F8D7082E4A2BE7AA08C3137BA3A5B8865D171D53 AE6B4DAF96B759A0459E141C314CF2312EF0C492170F1906E195291CE7EC5EE3 109383D80FD5242DA407254F1824541F66C84FAF8F828F705D1092EC82A83DD9 5EC83DCD54F24AF597847D77F289BD6B408681DBAB2FA43C94EE3F8F4705AF95 3FA3A5B8A4B92005A406DA31A96324A284E5B520E55A67E747555EC544CE3DDD 1E89D606E0829E100561110125581F7829383C979562DF72768C15239CED727C A1BE72144C0CA8990E583AC3A0003AD3EF20E5458ED484DBDBC1EF1AB24DDF9B 6825D9C38C77272342344625B5B9A874B945C6A53EDABC7F1AC192BF64EF06CD D07B22DA6EDF2A7BDF7A36F47C8CA494720D474CC6DF04502A598FDD4392F9F7 7470281CF5683AD7823AEFE2D187877F573AC5F7DBF7923DFC2C3F6DBD9938BE A9B799FDD7EBCECCF933B52E9946D39FBA7CAF39168A9FACE8234C214E0539A5 BA69E6916636CE8A487056893BEA00037A74218FFD88D782A067E192C15D7BA9 758AFE4C0861AC5B96AB99A405613AD669D9EF27E309507909A5BE56D6CD2021 DEB050197E888860B0B5BC70A2334E2254ECED6A1F0E847ECE3656A16A15EE08 78D12723B10845F2B5D5A5D918EB2460F2E808BF65E8CC2AE9D44071343BEECC 1D37C44264E67EF481B9C7925F1496C069DA844EAAA880D99341F466E761275B 9E8C1A38D68324EB560742BC149C5C09AE35E58A9B40759A9918DD276D38A81E 4072E629D177DB69762C5D837A076E9EFE294C2E22BC618F5E9993F31BC65999 8E9118DA0997E5708DF6133D9B62FA5CCF1B73483EE8160F339953D19B2247D3 1CE02F60F5AA202A2DB932042EB96224F7347E31DFFC2AC1C3F5D98E85D6A046 15C2B66FF5CB6DA41E1CA0CDEB1CAAD612F31B6047140790E7F2159388BD7C6F 59C401F50885088690998965699B9F7BAC0AF657BB4FC6C4FC1FA24EBE621B6E E88E15B1CFAFC82C47B97E088C7B619C0C716E987886D7B2E833E7CF8D612125 F07E7474F00FA179F63DD876B5460A33F35C70348F42FE200896544539FB217D EC7A83DB72EC2DE3FAFAF5869506CD5961852803F4C9FF74B7422E2107695054 10CE19557278CA9C7FCCCF550DD7B279BBB49D388A5F016090ED3E706731B0E6 FC14E381846AB912A08228BCE00355893DEEFD30C58E2C0B33FEE0CB7A7F3C0E 6A518CAEA7FA7B0CEDECBDC7E197517D2C31E62AC91313BB2F64EDD0DB167A74 12FAE65435620EABA5BD87A67EA02724027FEC7812EDE261469B7E706B6AF192 0135DD321860944ADAFDC45CFA35B70E0583D57C4AE8697C7716388AC43464DD 1650BF85A76CB639CC234551B8E5AD2AAA6EFE84DA68B55F3E795D416FCF5EE4 E44A3FC7C01A67FD2D3B77F912E67045F9815920AC2B6E17F969B442943D1F63 55BE63B3E2B54371C49A7783AFEDCBACA45F2867DC8905882AA5318E41CF589B CD326FC9A61E978ECED4458F5E7EB9B0BCD142F4C68A71FE67CB982B4B3EC4B1 88414A0697E6B69BB43557EC9261C4268EA881FF2F2D20F1B55432C41007F513 405D51B3A8F04779AE8E7087643CDA4D8E6446B2F38A52EAC123A3595FFD9182 2C9B349F695CC75B7646BACECD4AD586DE6798D8FA8F0970719773D73F8D9518 84A623B2182AAFDA0929883479E4296FF1D0ED52610013F9BCB9666546EE7487 FA1DF4DF9319EF601D04885CED862C9C7CA7B714C1D8C283D94E2F8F642D554F 46498B41B93BCBDC4C7784E5F0973657AA0A83BC17DAA3F3A6100109689A9D59 4137482A53C8CCD815D76C02343B88EC693BD55E519BBB63C58F99C2C74961DD E8A20D53B48B46476831C78DBAFDDE5862F810E79C786ECFA8CBE1C135F48050 51B49C730C801046BBE576AF10AAF5C49B0F3183EBFBE75FB499B0DFA1B1C9B4 F250673098A18847469353AEAA983436E3FFA3F9AD060C1967896A12CD2A46D5 3FD11C344A5FE38BDEAFF42247A35158CFAE79A60B41F2108A6DE9103BB57092 F548162799E18A23F0699C229A3C0D6FCF2045D48AFCA6BDE0A6EA282DCB772A A8C9622EE3E98E532BCECBADAADAE53558812329BE691DB063EE47497BA8039A 002125F3C55F65429613C0881C30F58652470B07AE8636DC47C99413D853A44F CE1BD4FF1F8A4F4FFF9A1E3E245C9175157CB6575B2C2D98C79B3B9D0D1ECF1D 799D10AD097958EFF15E52F2AC541FC15C85FE983DBA63BC2776C108BE7ACFF8 BFA29C5953F53E77FB24CE3A05BFB34D80AAC209543349D291794C3830846681 B8A0960D588E98EFD84EA728BAAC0AA5813738A5B6A669882ECC911FF472C7B9 FA342042F60251D64A39C06692D3067DACCC5A9E8F26BC4052083FE3E022FE56 5E7C0876B220F5757567FFAE026B26CC6D1F5DD7172079A15F58DF771B458571 EFBE6D7FB342A6EB7DC2E43C6574CC4A3A47C6D58D640804A56F0BA9EB174C44 B1DF869F5CB6BF01971853D2D90E5A0AD929806CE89B0ABEAFA6D5DC10092740 CFBF30E65FE438A4104AF59C9D015B56B5986B5B4F4F4FE7EC749E3107D658CC 50CA5DAA264FD7C03F3AA5F659E1D8520FFC4D926D5E5E8182126F846DE9080C 320068934A8F266ABA21256F57CBF0B38553736C7DB44EB09CDBC0F63E7FC607 17704AFD1B50BFD0FC3DE19A94608A8E0B948918370D06451F3865FC630F03DE 2BC1B8CFDFBF7D84D8B8D21EA868850E6ED51992A0A2F496E5816875DD6813A7 6D2016DA42FE45213BC2B301478D780804AC0B575FE900805B41FB969F15326E E5AA9758AD0C019EBE3785038B0446C1D21C27AFF271D2A503997F4673122828 9F9B704DEB56F6253D8790FDBB366F616D7D36507E98212995895829EBA19BF8 A42FCD484514CBB9BD5C826E6E87EAFFBC4E52F1BD406C4BFF1F5CD484F8841F A491E0BCFEAB5061873D4D0978F7137A47F323732952B88BFA983ECA9C74A16E 13F5B40D511C3AC9BEB534A29DD53D60512AF72C1AABE4F1BEC655589B2DB9FB 1FAC82360F207BC5942E1B00215E29A25A41D3DBFDF0439FB4C65C2B138C3245 74B09487174C442EB36EDC22788D85FB3D19AC85FC06376C7FAB091940F90B06 8E602D5D313E80454FCB0AB5F65A975E6F3CAFD62F817521E348006169DAC568 F4356AC279D50546E078CFE8C2DB8F31E56F3A5019246E8941FA0602FD7249FC 52801552AD549F36BB7467BFA58AED8BAEEA6049A32F55CA9B266FD388B0DE50 970E0DAC56D87F07A7590B3745D6FB3DA86D5753AEF4C08F6E12D0E70E4F12B5 01900944980DAC9F000C6B4568BF3D8EBF168499711CD92144A7319F8FF938BE 37618F747BC08014D7DD99208A3C15A3BEA4BB8C9EB66B3769607895945F0332 1912345BD6F71669FD2A9F732C8DB07066B3E0537FCFC6EA4205B544AF0E0669 4FDFA3E991605697B646FAB1E2EAE9209E77F77AD057F05FB64F6AD9260CC86A 320D50A339B499202D0A58F35CCD879341A68D3E831F5A89D21E03FAD4005AC4 6A9BBCA0802CD29814F97FBB8027F64F6FA4FD31DD4E18A3DDC0BBEBFDED35D2 F863165F14A9BC31279BE49F20E2FF1F1102F1CBFB44C46EB70AB3CBDA0D4D9A E70AEB35DC1FC37E8AEDA84C6408FC6B96A0B725E498459407845C4256A4C1DC EB8011CE91E793D4FE47704968E648B1F35F145C2766D7E76D68B7D2DB8A8EE4 5AA6C4C6D7C539036A559F6C44F34A4FD3096496EB602ED2FEB7B0DE910553B7 F3A92C7071E92B869072401082CB1D29929CFAECC24DA6C0FA8CF39E5533F1D1 B46E3D99CA6B07C8E63C53CBF7AADD94FEBF81A7B4BF82A707C60EB35266EB4D 142F9E5943CCE9C905A0F0A16D31D0D64873F8010D2AD96F339A01740270C1BC 7CDCC34A5CE67E80F13B670114501150F025A4475A6C6F0B6CA852E821C4229D 7D791A2DE2B9B7A4DA89BBD93EF94F6983912EA423B46863C78B16703C1663E8 2D7D80D0C67E04A91FC7BEFB21A72D804E39EB86FD4D1AEBF7E75ED898A3FBA8 BA7A25BC6C317749626BC784956F75C07346D36070D5D278F011CE55F9AF6C7D A915FBAF8456246F767E26449105EA39F0F3442F1E87CB3477D6BCFACAB91037 DE936745358548D6A4EBE433DC5302FD4F617CFE78D9C925EAD972F3E2072BB6 1ED9FFC654D7997E012579F852ECB4E6647574B5C29E8327C45673071B82A76C 3061D8445E3781A9EE1935CFE70CC646B14512B103BABC97B7355C89DD0CA048 A8E2D1C9FC31E9C937F6A4F68AC979B99B27CB2DD3427507A4E4E12FF8F1DFE7 EFBCDFB307C936A7B4E5DDC2C8DE3A762B0FFFB55E4EDF6ACFE067AF24E57C93 310F5A89EABB0CCAC1E313A83314396A96DDBA512A0104278D7246E9D6BAB447 D347F995629E68A2D3354059FC9A721C01785C8AADFDECA79D35719F93B18C76 F8BC7ACA2CC3C1737F47D11574F809E5A71FE91C4D2B39A2F62B017D9C5B62DE 7D6B0F416FC7E39D08E5877A7FEC0715F2DCF8BFC19C4054CAFDF694E12D045B D48DE05BE2B02A24B1CD5339D27FE416958A7BFFBB5B6636EAB90EED8E1BCEB1 4A25D775FB3ED64CB66055C9E7FC91CD072D6E116106B54D134BA373670883C0 4630FFC114009923C9D0893F30748E420612116FCF219AFD6BF371D53AEE1D5A CE240A13FF32079FB59B561FCB5521C41C4D2A41CB41B3D89AB4C27D89642854 C0EC3883686359435C7F8A61560EE3B208E8A26BE62A58CA42FC8577B4BC1F3E 6B76008FDBA6FA7367B54E0A5D6F49C06EEE851B6803D58366B8249D40210342 292BA83C583E9F15E560C58181A9290880FB40244EB0F06D3DC6A761A4D0BDD5 C05546CA2422349FDB11F8DC48D11A256760C20DF55F477E17F3F4C8AFDD940D 84EA3F6FC7953DEEB70611CDBDF551C999C574200B818F75231F1B965E941D88 F1D8B6528FF887AC2CBD7C55A8AADFA1E23E47D9C71C3EBEDE3C0E86FE5A2AB2 AF5C3C39B2E2B6A1C72C3135AA95DB5CF807393EF4842356FCB178866F8A676E 0557D44CFCBE328297616AC95F67DB8D25AB7C251C353F06E9A775486BEFD05B 491121F6DC457E17737947151631F5B142387B26DC13DB45D89980C4CF7F0357 1FBC6E9F13074AC4B5E8C900FEBFB8F20B292CB6542B2F98CB124063A9DCBC66 4BE04A89B63238BC77DD9B2BF8811911F83D29AF373631F041369D5C16E1EE3D 78CFE7B7BADF997F717E0900882885AD7F18923562E4C5AC2E84870EB389E9CA 342BA2DE537BF29ED7B8D5C0D346551B8ACFF539956BBE0DD0377A140A9B6FBE 815F8CA5FAB76C376FF0E914B7A37FFD036FABD84FF51E6789BD382763E522CC 5C438F0C95A366BB9A4320296D0489A0F9FC8D6522628B03A920BD44EA3BED50 CD5B99381E0D272CD29814F964F6CD6C5D3B1530C3376BC922E8E22A258236C8 0C32B8E5388304A58CCC97934E4627CF73CD9426929EEE994E528BE48833B3F8 03025E3B376816F05F52FC186B978E76D7A74C4DD022843EEA05C24A6DEF9EFA 27A3DFF73F474F8F41D64AA30365AABC088E9B121CAE5127EA9CAF4A0BD80906 488D877148389A8E828AE06B1FB348249065BE732726C77763D3E7E3A345504C 4DAF4513664AE38F84694BC2E37F3DC393C71F3E6D34783504F6B977D115D4F1 3F287AE339089A1318D4E5FA4F1C2645212674DD08C9C4D86A276173B7F223F9 BDFF4FA536E03072D2359D541C6A601861EFE3B876009BA255838A64BA2803B9 731826E59D9126F9AA332E462F437560BDCDBB0238C9D8542CFB080F4F96908F 0188F7DCCC49249D5D58BFB7F3855FEB6D9BFF557A3E664C2C56D8F2C5A813D2 EA72F27CE8BBF6E0057C4AA8443ADA65B6164FE09EA25E9B1CD2AE775D3B67EE 2195BAB5F5D0DC02F49B9967A6D31F19E523AEC68C2557A1724FF3CE2E83D77E FEE9108E908BE85C61A57DBE70E42528F0972698EA15F4A04E17237FD6967EC5 32DDAC9AD099B1909698D2B469355788C9BE29AD4F155B230124DDD5FDA04C5C 16399B7B433CA24FD8E7AB751614364316B2E68CFBF215E622237C2263DBB599 52D24A84ABEC1C195A78DBB6D1CD562EF30455B7DC699BE71E977AD07F2EABD1 7569D0977DC7E3C0341F7F3B1B202A850FD97867924CA0C98E5B20998E461DBF 944C21974F45A235B9140D0015FAD4C1967CE64FB10B407D317E93900C8CBD31 0D6E6B6E1698A6764AFE7321418DEF081CB04A681EDD54BC35278010946B250E 67D0298630282E64166EDE08284AE6DE90F75F1D4CA77D017F41AAA99DE0C4D3 CB127EE741E0BB7279D734BAEF687A2C240A5B0FD575C7AE5E0C81468C88C172 11E9ED59575DD3793564FAB7C7743A63991B5F2D4551DE28C2C02A247D97A63A 0DBEE8621FECAEA848D834FB99764DBDAFDBC9EA2E3DAF0900ED85AE1E0F8451 4BDCABF35F5D1B705F7692EB7EA6208EDFA3C625BFD8770EF60BA3F618B34D38 661F60722AFB83BDE9A83525B6D0B6DC9E977F30FC1E7B76186422D0017B0CFF C04DB21EF12E599C116D2DAC7C68D1A57A96B6A12EF30A28A58A7075ACF7451C CB9E4B9DFDE26AD098DE3ADB25655B7AA6A51C063741BA0B7B7F5C1469A128CB ED7CACEA9C4BD5EBD662B5571EAF81CF898B3A9C7C5F74AE793628836E03FC7B 8D5E90AB27C9D5EDC215F89F1F1E6814EFD82221BD218F 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI10 %!PS-AdobeFont-1.1: CMTI10 1.00B %%CreationDate: 1992 Feb 19 19:56:16 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-163 -250 1146 969}readonly def /UniqueID 5000828 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F 21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6 06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF 55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5 B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86 0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9 1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961 7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A 7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402 356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B 19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2 C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F 244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95 5C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D 993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363 2DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3 309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513 F42EDDCF39AE522A1DC2DC523F046EEC4CCAE25792B702C288732F5B13B5CCE7 E8B6A1A1DB86B1EA38883E481BEAB54023EDD9BB94E7780DEEA577ADAA169E66 AB7D8607B409619E79F242CF52E618AC0DAE43317C507CDB27EA8A1472D4E8D9 17E62C98DFB049C78AD15560CE44A39581BD6B555165091C5D41071212A9D2E3 05965AA02B8A67AEB04D915DADC1B84A531A1D60569ECC2EEFB7B6B0263B8B5C E6EE63CED9FA74FC7C03610F6394D64BAE1BF3B50FB613A39C300CA5F4F16CAE F9B9F4DACFC69B69AF30E4FE9E41A6DB0FC987A13A3AF3F99127E5A44E7FE781 399BF303B773BC0096427B18DFD0DEACAE196EB3927A7EEAE7434F70FEA9BF58 81A9D616F87D300EE8D00E5133F8C8F4CC003E313EBBEB7900321482D9DDFDE7 1208ACB39BE071CE8782DBCE969790F60A3D8D8DB321F9655DA2577C284AF543 847780B6C8180221C63954214012810FF5587FC771E18013003CEA5BC5617BC0 82B7738768F5F14D1E99819F8EA246AAC4E53BBFD3ACD6826D86A346C4D81881 4592D9EE0FC3D299933F1CB699DB86D23E75261AF2D27398E0BBEFCE4D81F474 8B8E44E19541EE87DA767E9FC28581B43FB2CC35BA37632F082E08AC1CA32F35 186A4516AE67D0872CE65F87C20BEE4421443858E0BCCD2513D7438042554D8D FCE01794CD134A2E43CEA410C226B20AC2D39A53F6E87E8726D235DDC282AF53 2B49414B2E5BF344C697ED004BA57512639AC554CBF15A0F51EFABF2C8CCEC02 A391DF311D38A3A149A78FF589D1FD8319482B4A7DFA6FD7D883A50E8C3D4F49 945DD70CA4480CB7AC554ECD84B43AE6433C8DE0AA75E31105C2A9A24BC1872B EE7A5D0CF04FFCBE50C1031E51FCC194B5A99CC2DD51EFC73E94DF0E72C1641E 01AEF62302C52351EDAB97131182277BE86990F48EE5A4AA9EEEA0FC60DE20DD E45190954984F18409E983892D66C7867FA8123521608E451450734F7D0C32E9 B5AB52B57A5E24BB16F2AD06E4F025C0AF8273B35CF2750C0EAED7C3A5B15CCE 61195E23BAA038CAD47F9C42C8EDB765526487F3BC909B5134664784D7538533 D14B9D04C8971EEE2C9CBCB189A4CA888E451DE1958648D693611B23067D8A91 25C6F37C66A7A648D5E374FE8C552BBF95A4A79D53D1EF8B473057B82B1A722C 88DD4F1FF4792164250B6F8B3928F7B7E0743A8D4FD6061C30C794F9704C149F 31B00E39002AAE915E93DE13AD256557095FCBA829B6C2A5D3D6B6A510EE53E8 A46C0E47A8BC83071BCB3FCD7E7D9A0B2892D27B9E25C1BEA61545BA253D3DAC 189DA42CA981720D09570FB027A6E60691F39CB00002CC39493E7FB9C3A46DD6 79099DE3670A8548E1E349BC4C20BF54E65D3355603213BE0E7DC9F40ECF68A5 4D4D98CC89376183BF2CFA90A5774FFFAB4CA80D615BE3A84F892C7CD5C6DC34 98577D6AB00B5590D1217041B1F63807D2E778D8767A43F370A52E94AEACCAF3 BE4370B989DBD8204D7B74BA9C175C5CEA1B2A99789DD05D8B6C4FC42C038031 83B0CB36E8731E0CB6E6EE040FA530A0D2AB486C8744120A1EF591FA911FA0DC 6550AE67F51B5D3F634EA084E359038919C1B263CB1B81992EDB2BAD64C5C30D 961503DB87DBD16DB4378960E5323DD406568B3B290D88CD7346B5AEDF306CBF 9574AFA9D24924CF5827F51A6CE1CEC533E37417D73D41588B3E8ABE96B5467A E9048522C6C72F39874CEACCC07B46A3650CEF89EA5286D3A67E79E98CDC2A6E F9464CCD448134897BBAF2CA2FA22353DA131651D191E5BC73908F4140198B86 8A08B2AEC162FAA17A9CC4F71DC387CF46D13CA2E948B3CF628C0874E2288AAD 5D48F7484F210108476FE23DE582345D090139B8569A59967571425EF6E56BA1 8C54AE0FFFAD78E3724A33F4CFA0518BBF7F168B8FDB9845FDF739F0FF3BDD5E BD0801B894CC9FA9021C74CD931FFD7147BC20ED3E15AF974417EACF88B51BC1 763AEBF0528DA9EB24005E1D2719DF3B1EA699D6B60941873FF177612C9C9928 A7ECC7127C4E9058A362B67F10161F4F7DED97AA35A3CB3EA3BFD9B11866E8ED DCD90CC6689AEA1348B786B5A7C2E2F731D2DD52D72EEB079686DCD508732BFF 8246FCA389799A44FE75F3D8544A43C07FDF2C67EFAF5B23308657C2521E8A58 2BC7BCE1EAD02A6F26B4055E19B824E47CC3A86CDB8CAB0BF3A4534E96B3A255 77A3C3F719DC709C1106888A73A8219B47C30C75728E93C24205CF87CBEBDEE1 706E3805879A761F181F8FCA9589D8F46A2DD1C3B70733D93619C02794C545EB 10643D9B1B769FFE3DCFAAFF94C91FF63B533D84EA004EAEEBB063CC2B67A2B5 9C543D50F1450AC5EFAFC70997674875E4D10CBF5E2F944F67415F518ACBC6E1 956DD82FDC989F383727EB6575E3DB20C9E7FE22E4900E714561C5D9B1C5E0DC D6BA68B4C0656823CE1CAADA95DD2D08924F13306BF88758247E8DD3B1E8752B 2D416DC4C2EDB604BB496A6E9FD4F5C0C5F87873FBBA31B6888D99DEC377861B 3DDC56E12A72B804A2DEFECB6CAC0F5DE64CFE05A9ADF28622DEB7C7E98AA717 350042866B0BF30636A9B0F80E1CCF2AB0E682F6B60978034D1D31C471A8D12D 67E2BEBDC67C94425336D198D9699889063B257ED66FBCAC3B7B618760552A1F F8F8FFDA8699A405D3DF32F3F54DC3262A116A8C89230AD7A11440ED477C9798 FED628FBC10A992025C61CF50460331A0AB582B8260962477AE6B409AFD4F576 ECFEE099B9DBD72D7E165379ADD44A830696CDD0313654C97A0987369C731801 20BD59113390521C8C1F163A908F6DEE219C0B4D9FA510D3BC20FA4C53D9B74D AC5B835CE278EA84C87644D633FEEE0F690F22BE453EE62BBA48234926FA9FEE 06824992187A4AD244429A464C8684A72DF899183FF850D795949E918151760F 80D2D2971CCB4A65860FEC70C68B0F05FDF6E760A820739CED5E86899F3C234A 23A1DF22750674302E739AA7047575CE872B81912887443F1CC39768B16F7D6B 098200C847EB01D0DD8208857EEE115FA9533A3D6E2CED14ECB95D2D5D07AC61 17D42663F6A9CBFF76E37FFDA075BEC3998AF76F1D8E625427E45B5F6B06E1D9 A3931ADA59FFF6C292EDFE1F74C8B46EA54B27458F7890D1AFD71FBDEB919C00 8DAE6971CF957A5813AEE011D484C28E0724BF2A8C962AF5831438B8488422C2 C477FD10298B2E3E3DBD9F584A7AE17C4AA805B6418BAFE8BD1E8213261E722C 70D6056EC4F5DE5AC83859E2E85F24E75CF1AB4FE8E72C3C0FA840566DE410D1 DD8B691FF35B9E49AD4B538E394A2A94998683DCE4D34CAD1E3684E6BEEC62E7 BC7C8FA883F297D5F42FDB9040FDAD5FF1C1D665E093C5B668A39200EF96A69D D1916E79AC266DCE748E7E9537851152A00A8534B85495F4E59B5B3BE55F50B8 145073E7BECAA38699DB2467714C3E1AB8E0E7C52039352CA74B5D8FA85E90E2 B822A516BF448B42A7E979718453FBF7265A455C9C4E60877D091ABCAB2EDB35 E49E80CE0E275954E165606DDD329BF66C6CE26901D696C04AF53C507F58B1FA 2E8A7B3596551CE799B4520A782F60842F4B04F519A9F25736E499A6082B4978 FE2FE9139B9908F760F76E0CAEACFB2D5285DBFBECB4765F3577F4ED04190FFD AA1B248F68543807FEF15D8229CAA7D71D67CB8B18C3F7B3223BE78F16FFB5A2 EC493CAC8BD873AB323CE2F256EB01C6213BB6C07F6CFA6BB15530ABBF6BD07E 0BE9F79CD29DDCCB5FA47EEC8A97EA55C2C5AAC74FF4A410A03A9A7C972FE734 6C9DBD636DBA682260105E50D9FC223353E6F943FBBCC84292E6488E46CB2887 E7AFE762F41C668645A5417919EC981CBEE601FD01187945BA49293E4E46EEAF 55559C0D3E4F7CD89FFCB3D28CCC86F06E8F870C35D566698DED90631CB3463C D47EE0D78165ADEC39C19DAB8BF64B9177FE1D3A320F9ED9DA11640B7124BF2A FE267C97D9908FCE8B53E6CEA3B787E796D1ED1F34C061DB50FD4890444D9930 9B943C78E2B45B077FDF87F67A4310C459F540B5A68F3713F224EF42357B4587 22E64F2FBFB4A5DB0119BBC8694D4311A7F48971CA29F3BD1F211AC62B59D2D2 A5CE23189988CA992BCAB6DF143E3EF7BDFE08456931BBA56E88A4CC03A1B25B 10173771CF3D248F901A0B7E1FDE3E369FD42C70586EC128482981F8934A3CC9 235431D83E9937C33018C1C6CF5B87A34B14C0061C7128D07947E4312D26CF1B A4887D427102F543EAFE0863EB78A5428FCA9068768ECAF855E247A0D99909B5 A280207169CF3F1B59B862BE6E75B9FC698736D25AC34C32EB149376FB0D7F07 4C837FE3441F88982B99E3EBF52D6455B7F5FB6E5B6CC16BAEE6E28123F3747D 3DCD3FF51ADCD569367AAF4F1717B9CA2579B1835B9D505CB11AB2F31AF65056 54B96CC90893FC0059BAC3CF27339FAEB074F7BDFDADCD9788CD05EDD73A2A39 F3F2C9CF57B2EBE691B61002C4C8859B11B5CD891275EC12855C1861D8A05878 24A88DE5B0AAFF4B9B891D51ABBBC366ACC90CA6F030B079A25234DEED1297F6 E3AA999AC202384F15557B1DD928CD8BA8A6888B3E039E52C1C34B8B79952936 3D512109D43FDF2C91910321E1124A5A2A58ADDE840528E0C0C49BB73D829DE9 C91115837344BE0AE2C5EE1EB47290865628EB62E3AC5D6354472EF4A7BA4FA2 7D17CB4877D59097D9F505F80FDB2CD59F7CABD54DB68743299D646E36F465DD 2F44845D7E5E7356DCAE9E20517F437A41077157C28C4C7CD15ED8D5E3274972 E6566FB785EB8D28D670C71B74F710AAC780B4AC62434073D45A0C43FF75E531 EE435BE15AE6F6D9847AA1639BABAACDA6290945F799C4BFAAE0CF9CC31AED8D DF6EC09C0A0BBE73B6FBA50E270C67CCCC25DDF8718B06F82182408B6A41DD09 474B4B7099AEF85FD6C287E91F5AA378C46A7F77F35C8F84C0223D6BCAE7A9F1 DC3BA698B57EBFA4E29964E28D79F909CA535173273386CB48B2DEFF10FFBB39 16B669DB24F05F86A66C2F2E62559827F0EA9F6856AA7DBD538604CDB77F7A0C 19EFBC529D1DAA287E9B7F339B52FA9DD1EFD57A82C7C010F913B1DB69064856 220A0399D6B69E77936C8CFB01DCF08D0FDE0399109DD2687A1AC946665D0692 60615252A210B9AAD831866D78EAADD742D19A574546438271C9B4C568545755 639D79DBE4359C611DC3556B48B5519BC878E9072FBB86B1E6B4929918091697 4ADE3F75E308EA787CC8CC1F537C30FD0BFBAD72E09EC62CE77B330843E0E546 78A2CA7DE8C635E6DBFFFCA963485862E25F25E153C7A39B37BA8EB46069CDA0 CABCCB7DF60F178052C90646C6743858713F50505311F13C34369D6610608C28 A1E5462F8239E315054CC8CAEC8FDAC128F5E67CE93AD798752AF54437499DCA 949F98E8580F34CADD6EC44E2B300B5BF943B5FA59F8DAF71318BD0F87C7E5DB 9526B4ED4F3EDA8A8F04FAFB3445CE6FF24E53A4C757DAC77B41D9FFA32167A8 BA16B08641BEA3B6A6779A3CE7F51B1DD1A3B4C41AD53A1B3A016B166799363A 949F2455264498CAEF44748C00F6AF3C152A1443845B4BD4309C0CB33BB5AFEC ECE21DE25287C169D92A25AF350006039256F539133B071E49468B84A53A50F7 48652CF0DCDE21E693382B4C333F3A57A91E9CD2F5EC42D7F4816DA997CD5ABF 260D2A82DD8203B53A49875F63B4BE3A07D4044B7E57E0B9883229FAA9885421 538E6B397F615843F5A1138CD71E4D5793D3F13CCF74970ACC3DA1D4803BD3AF BCE150B59AEDBBFAB34E0A60BD30FDB3A65862215A4358925E20B52D34A62C4B 22AE57AAFBAD58E4D85C96C235EF95337BB0127A2FDE6EA044DCCF2D06EDDDED AB19181B7C2065E7899A5B152B0EF50EF3803D27D414D52BF9C63F7A50C82157 C8F3833A317D4C1D6B3B90BD8A8ACE7B9EFC25E6C3C1E1844388B9CA646F3937 1637FC67BA968B46A7147B2DD7288EE6390DD89DEAB36790918B790F23CAA397 D15847D21CD7423C45FC30EC7D2A2229F52F7993B268D0DAF9E29C29A3ED1074 855A744CF664EA847EC4AFF71912E77AE0C5ADDDB3719E6B03051C660E9B48A2 0E672E6A0BA4DA9C04BA84FB316BBEDCE87E1B3FE5AD442E5E66A65FB3CE6A1A CDAFAAA297374483C04E267D69B8F845EA6FDBC999CCAA87B6E633498AC7F706 A15D614DC3E84BB4EF3C76FA865D1E36BBCB38F203401191B8D9CEB3A87E2A00 19884F4989AD8AE7A2F7C2268F2905F77F5E2E24CA0D536AE4840350746E7687 BC0A6248A2C4A0963F78834AD16154B3A6D9FC9FCF463A1C7807A406C7A5D2C4 2370011837D84F2F2CB261D2876F13842D3284E72CA9B936CEA976EB9ED2F14C 1AFDF1CC67A7CE4130E710F3B21610D3C39DF3007CE27C7C730B1CA567EC236A 29E71DE6CEFE3CD410F8B38EE414AF9DB3AC9C16ACF842678A39D0FD611CFA7A F85ADD2BB20C3EA1CCA26EFE87A0FDB23B61210C22AF7CE0B1068EE170D756A3 775E5001EC7640CF85726B109A80EF68D1C1BB9DA49772ED70993D85C5D1BAAA 111F6CD1107C47E269EABAD577EB695DDEAC46423C5B6925F1A04ABD5F490338 B6DE2C12287539D5D7BAE55F24D5B5ED3C6D945386D3F614CEB92C70067CEB38 1242C71F53EF862F0294BE027F872B63D3C7AE2537A8D606C9A9F38E64AD7EDC D037B8E640D687C4998F64EE5ED69F355B09A319E2BBE044DDCB201B68CD58AD D4DBCC8C6DA973565B2AF4CEE747286F47F3FA03E0D31B9C499530BB03F2E22E 9615A88A389D35EC369021448B86A24280571B8DA6C1A371286322F83283ADEB B046CD98991A4D7A98F8AAC833DA2181427CCF5DDA0F0612B1348B540C4183F0 6D915DD25065C59DA48FD06238984D52490D9DDB055838DC8E48A682A2ACE758 1B52FCA539E3E07FBAC08F16E5E0B396D32C242D1F48888A8D58352E5A36D949 D969EAEE137CB86CC33B290C8EFE381D5460F551ACE4245A09CBA959A0C2331C 27B0B6232B8A302EADF7E6A0F267ADC5F0899C52E3A4C5A0724AD605669C3083 438E439F23EC1ABD31E7602667820E650011F7C2F7982EC6B3B59DDAF48E6E75 0033D7D90913C0FC67375275A136DC6D7FD3AB54D8F792287A7D004C659660CF AE98C89993C4F67FB91317BA36BA207192105D3797E97C284DD6FB81F7422357 A6C229D036685F0FA869F77A1839E0F324A610399F7C5CFF840BC4E8A6FDFF9F 93A67638F879CAEC5A316777A70960EAAC2B0EA71BA9FFCA1249CCB6B4BBD255 72F41F14CB43265DC1BFE34BC767B4EEBC10883A03AFC499A95839BA4CCB860F 81194988FF4F2DB0DF6F85CA9495E1C7B97112F1173038515EB11B3780CF19D6 693E17C050E205D575968D69ECC5E25CA4A1E7BDBE4A705576D5868FB9355F9C 10E8BF27326B30570593CE15953DC6482098D8B30054C01F5E2A9EA512FA5CE2 9B879FA55ED89021EB7B6963116DAF1D39890A9B3B0FA21C9AC1B366714B255C 7A4A00F3DDD6DB3DD4742CB7F7CC7CE94820665E7F414307860E93758F0159AD E3662D2613FE13685D351A854F5F3183EB7D1F3DC0774FF010F919B777A013C0 553DC529824D2E538FCBB6C66A008E78EFF0FB2248F3340B2361A86A11BD1CC2 F19405EC5516AC5D76F32A464A826D0050A92217856B0FE6882C72B282105614 0A30D5597C0DE44025909A1514352759C32B647F9C58EB5A3089CC886363E817 3130FBB1592792615B6055F82FF6D8EAEEAA5C568079FC4EE76CF0BF2A28FCBE 5831ACFB16FA5A4614282735416FC535B29C2679737D2B8CDC0071BAE53ED201 F6A01B7DBA0F7720EFF73F18D482F54C1BE83096B873E3FFD5FB1B6A240641E0 23B3199D947BDA30C33DE19E4C02F3898B85101F348936B5C0998CD28327AAD8 4394E40667C13AF9FFDF0327706BB1F90C09E8FE3D04BE6F5E798F284BE1A326 C5622100ACEDC17009F8D0B3A52B98FD8F8F43AD88B5E0A8CECB03198AE42E5C 409E44BD199A2BB3DB0A13E15C37607F20D6C5C37D12307433573E2592FC096D F673C447F807B96D6A421D8D6071FD70E6599896E838C0C3108622CE82B69E37 1516A3D2F7E5EB5CB285AF6CC2E67204CBF67AA2033323F284FEC17C14A4218B FE0899A650BDB9C21CE2BB6570A3399D7DAA076F554277AF794C30CE14DA9B57 67059817CB67071AD723DD25B9F70F54E01F8182932EEB703211EB09E650BE56 A165D96BDD8F27F4D5E75BD661A0C884C9DB2B861182B64FCA8838A55237BDEC 4E1D78F92DE73CD4E17F56AAEC667E89B9DAC8C490A43B2BEDD832D263384E2A 0BC5736185FF1267662B829C6AFC53F33CBC74536E99973E75E03036F53D8EFD 40B1F6EDF2AEE3062FDE0F844A029274F561A31F0866114EEBF5D7BC877B5072 BF71DCC29D0F16BAC9B0FA61E69BB939F8C0AE37E7E87CBB1178E8BAEAC817B1 C7431D0D2C69EFE131E159C7113FF143DACBAA6B73BC7C34D0938513AE61F80E 013800BD2576A0CE9B6713D011F843BF890D976EA9DA1FDFBDC73253C775284E 1CFD88FDE35896CB996C7F19C2F1536599B73BD5B35D75DCF6C7C11A094E07F7 823EE033BC56212A439C2EBAC0397E6E3724E3615502100AC6F1D536348CB70E 0D19A8CD46BC558841702F9F8D91F8CC8DBE7A44D6AC199EBFF057BABD46A6B4 C75AEBC3EBE74C2B7C66256B0B3EE880FD2ACC7A612B45C893C18E7D4ED5DE09 6284199BF9B2CC32B438ECA94D3D315B5F99A9BDF5BD84131F252A7610CF85B5 094ABE93965FC680768994C392FA273AFE4A7FEE822D69164832956B22044819 A58FDAD8322DD5527AFDFBF5FC7E40EB3E0362D99BEEB22AEEFC1BBD51115C1E E4F6597C03957FC38095BEEEEF7DD9978EC353E9844A5C0240E62DD987697EFC AE0C17BB5E4C8E603B2DB295247F08F577C600D33EB19CE55AC10157DA63CB4C 5E103BF8048931483ED972685E0B4B6FE7328297EC0C342B776EA65DAD38C691 15015D66DF630E6CB904FF2190FCE33654045EC75E9CE9A40C16388F17FBBCED 89576825024AE5E66A1FF3C3217B9993765B99AF8D754CF74B6FAF31FE7F4AB1 A9C9350779D0DB817A313787A892D761AB1ECB3F1FD41D631861848010E76333 36AE50C8E61DA32E8895148D451DA353C37EF03CCDAF30585E29A138648BFE87 C93E92267899081121975E3E0F6E2040C49B39CBD7CC580CE398A8442FE12DE8 4B1D71BF0FD644CFF88B95E03080AF1BC36E6019245E06C274C77BEB612AF274 11A3C93FA54336E1966646146E7BFAE36D5817B3584C89C47DEEB3C841D45B60 0084CE7ED86E534D6603A2A30FB5F0C678B07C943C2158D41F46AC9FE3D7DA08 DD4C5A2FFA7278F97578F757151FD4A8014CF3BC799DC3BD6DDECB0E727C4008 EDB129ABB45DA93FFBDFA233CD2444F3EBDDFDB521512BED4586D69F2F4052F2 3FF7670675A90DE5FCCAAC4D6BC11B716C701B3BC501C6E8016117E19C0DB768 E06219D1E60FB46BEA5B03A2A22306AF3963166C99CE37B7DA77069D6CFC5101 5C9B31364D11DC50E5F12E2BE29E8556C22564115FCC0C2E8EAA06B5C666B74F 30AD2F81E248237BDDF88F7BDBE21B39BB1BF0605CD7FF08C67941A7F525125D 6B140010D97AE02E82DB64A43027E4AB7590A791AE16FD0CCC3AE62311B7411A 6B7357C845D5DF5159BD4332A3BF472CB7D5972ABDE91FEFC583A0983250B911 9385F4BB0D40C91AF38AF60C24A4BABA9E028096CA06A106C94E727C886E50A8 58C6C8EB90A73741FD7CFA43A48E087564A3A071B9C7CE4AB0CCEC9FD6B7EC6D 3E09191B266ABD2E1368D2C5EACD3B92679B2B19E0ED9446464BD0EDA2F72D00 DED025F5196EB23E2BB9984F96722DFF90DFAC19738B8050559F57E775778D25 A8A2AAA80E6F55FD0302278ECCD0760779FE2B5EC753B762666996716E2FE11D 22830A5089738E38DD58AB70010A2CF55208159EFFF8E64E6942694977200879 57164C724FE8A16E510565A440C0617466DB12A8099B0EF4D7DD61A5FF1CD7AA B1B3463C7212F6CC0EF6686E4DF0CA757EEC553410FE3E76C22A41D0CA96A34F DB9B79D3982EA52D34C516038E3DAC93B360EFDF906A1BC2B84E4DADC6150740 E7DABD2B90214830A3A9568B0B11A4190AA0E5BDAEA75294078DB6067AF912A1 8E4DC896F933B6C237E9E9C58727CF0D7A3930D2F4B2A8B1C9E7CAAFD49A2B8D 2FBA2BE3E5AF944FAE240F2F3BF59DFB1118129A499944E2664587355824ED93 DC906AD6FF45A5D1093CCDC13B1EE48F0B525582D596420393802597925F93BD A6211CF9648B0B69BC2310FBA7F3822EDB4331E97744834F892DDCB8D6FCD993 E029C8EFD0199DAF35209768CA8D59749EE6636B0CDC8EF43CE6BD8FC8A38FB2 7361 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMB10 %!PS-AdobeFont-1.1: CMB10 1.0 %%CreationDate: 1991 Aug 20 16:34:36 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMB10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMB10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-62 -250 1011 750}readonly def /UniqueID 5000761 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82 7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378 77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18 2DB0E39996C010F3024A5A3C69C8485664A4E3AA81348AE21A30280D0E3B6542 A770F048F31907891EAB8B57DC70FF775574D6CD26B8AC9C3E64C3631325BF0A 99AB413BDADAA3B51A3E168B03A856EC7D346A38BBB0A2700A23B2CA91120B9D 2AA5BE5A359C60CD78F055253785CC9701F5D670ABE4967D74838C3B267C6563 C9651AC41D8684AD5E913A5C9C547CA225A74782D1AC62020FC38E29C356950A 00E8F2B0752CDBF81EE4ACD59BDEBBB9523AE4764B995855F3A401EB4B04EE56 B10758196CB661448A3617B83CA88C41756EF131CFCE0C968B94B6C69AEC1E9F BF8B21837BC422D766B5089D81CF35A807394A026FE3160580695B1213968D90 8ECD1611E719A871E15C6085A17906F77B5B2DFA6AE670976758E67F8A4FC362 FC7299D85ECC3C0BBAD4649B9DAB4A2FB248D6481CF0CCF274634D37A5AA4DDC 31F3138AAF10998FD66F3817B77060E71C6D8F17205F9C098D81D952E0FE3831 2264C55D73215176470D8D75E7BE6E44514984B9D20208DB3ADD4767CAC09D41 9C8DAB6EDF4FA1AA2CB285CA28E30972B3BFA4F8600DB9216487655F91CD091A DEAA34823397C3D1CAF14A0F016A4EB2A2238881A285C0A4D2850F1D942637B2 A6BD6CF81D1A3A8B0E9ECE37710AE059A3DD5D5236726BF6EFF89C97B4E1C735 DBCA03EAE44BFB56C90EC7472FA83DD86D63E9FF50ABBFE1FC07FAE9ED061B73 6B15923CAB0A8F3DCB7C607594FAA48BC5D060259663B000B14B012FBB1407D2 626F8CAF1E097ED3B0D6C7D927ACF3383909B4E85803546AD4388E63D83DF79C 0BDB83BDD22216BB1D06B86CC12FBEA1FCBB805F8A4B062C5E38F4D4F3B32AB9 CCFFBC5D2D9643C7AB628F4C6C7CB29441573D01B52E83B5D0BBDC6C8C6B1EA6 ECA4225AACDB4F41674B3916E0DC7AA2054F374BFA37EEB6C70667C3458444A8 088B7FD1B81E02D561041C72F6681EAADBB8F6E69CD68A5FDBDB2CD9BBAA70B2 448A9607C59A7E440443522EADC940403697CDE0CAA83B377CAC5C9DBB970339 C2050014C16E9646833F28DEA80E2255913C36EE3B3AC89A5FB39BD0396263E0 CB61DA7F710BBDE211B8807300ECE6D425468A203A42F41AB4C0C0F5DA37EDCF 85E918BF4460CA06F7C0CA124913229F8F695712B9CA497D3517ECADECC6F9FD 895A34C350A5E69D1DDE43669DF77D5F9B0D1C7858E0B0BE9338F15167404F2A F3DB6CC7F1A08A0BF74A00B10B40309CEF6C77C4CFD44A540AED89963F24A546 63CF751B61D3E5E4F874072F110C5B89D1C7F5394D84D1661CD3EB055A380BA4 98309BF9F31CDDC766EE1DC170AF83495B1FEB926CE098859829F81145574804 A62354140117765E30006386AFCB6A5C8C08F0172E3034515AB91D12782868C0 025CF73FE4C8C53AFD847A71AC3FE471870A445F5FE520B6D12C0B30DCCB2085 389F26C6B85F56A54469CDB60DC4A75FB36F4EAB8B8DB86CBF5E865DCCCBA671 3E92ED86A982A449569A12AD165D3B6061551EAC4E2D44DB48A994445394B812 648C6AE93B3CD17CF379AA6712FB92DC8143F8279A36C654433DADC8277E0FB9 33A2324D869AEF84F1C32AA865422BBC8BD48BE5550BD6528147C315F5CA3F72 560D47BF7288659DC2394068DD1AC9B506CF7C598FC9D698D4965357818A92B8 9F205460504F929061A2BD6B397F009E6272015A278486F1209650E207B87746 2A770F0DAF52BBAED6D4C91D50AA39F7A5C529E39E3A6BB3ECCF79568736C135 52608FB506FF96560A38FFFA3B73164199951137136C248C7C064C789CF4814F 6178628B2FD5DF44057EEC8575B3C4C99925423ABB86F50576C8D1BB5452BB8F C8E95AB9DC767F3954FC648454D46BB7F07E3B8F00B950B2641D66A6C40ECBAA 2BE1793085D9880C9D6DB74BE740CE76257F5C21536D5E4156FE5F80E9C2E0DF 7BFD9C2563313EEE6411DA9FE12B303121AD0BB126CDB026586D30D985989E93 0F7BD6C10D1C2B39B4B910D509A80A803B73EF02033A4B883287B08FA2531351 DEB1DFFB6F7FB05ED748ECB9DE97065F64DE8D9FC68C1E73FC8A4C6EB7EE140F 78E0B7178FE082BB89F8EEF65546FCFE995B7B707CE44725075555062DFF1B8A 8DEDCF0075E8A28931C0B8D7AAD3F741AD7B03DCF9D213FE9892E41E8716E5CE 13D1316C42D6E55C5953D7651034FF34E087CE3B5A5F03C2ADC0E8F830EF570D DBF93C0146AB01AE6D76180035872E09F4E5FA427528F9FD492AD26C94B487F2 55F75E16EE9D05D27827B0D9EAAD4E8AC89F1E6B4CB22EC99BB8B11A27768E47 FD777D7D790B3A4723774B4807017725F58B0CAD2FBCDC1A889F370231E1D72A 3B83F21628921DD2E8EFB299211D089D0191E54FB9378CD8FF53ED0ED259ECF8 FA02BBDE74C62D7B31A8FFCF46614FF9D943F55C296E8780C1D21BB64C54178E 7630385E60B6C33A665CEE9293AA1E24687B6CBE911BE898F05720C930BFEA98 E532ED94524FAD6A48ED80AC0CB03BA9FAF92694DE7FB904591A0E2BC03229FC B5623DAB17766BB238DAEF4701CFB052928B0A36FCD8F568AA4A7BFB022B83EB 2365AEE45564A5ED6981F0BB28D6AD8E90162139D1075E9CFA04B80024590597 7F56EFE181FE41CF9B4412E8E0F9ADFD3B19FC9E1917AE0AC7142EF5B99C9421 7149E5B350F5C29108918D1C3F4DAD7E53695532AF1CF910DBFC77CD53341325 CEB017C6F8C0B11D8E05AE27E7D7FA7EC06DA3C79957DA72166C9224DDC52962 4CE7A584C554634D15C03415D95483EA661698AEBF7B78F90C9E558F0935DD16 D23548238DF950F9C226D311E6F05EE9F32164270B128670C05CEAF7D9CDAD68 79CE91E7E857CB0EE1264FD7259E09EDEBE41183677D9E3447CD76D4506737D0 00001B31648011EE5D8905D621BBF6A7844201ADB75E97BFFEE2F3A37E42C79D 0DCDE3682A23F3D5DF81AAE925C0CA5802EC95D5F8A517ABB44AFE79C7A8CAD2 119B94BB6809B2D9A27A54CF2C124A8DB773AC7FC85481D1FE89CA1E11AE9F02 D34568FF75F8375A33568005F11BFDC7CF53A491F6C47FF1CD3ABAD85F8140D8 F9DA5C67B528D1D859948E53E95477500388880DADF50A3655E442070580DFD4 20B97A2AFAA2B70E79C1429AD966F6B8C33F11CB13418AC1030A05AF59EEB276 1948AFBDD21E173C9885B87844161649F910C52882B4CB63D85D1399CD16085B 1FDF761F16CC3241DCF8A1077BA05B439B8FF5A21A1A8F46216521BC197C922C 810C6B2330423A3BBCDBB1C4DD6F4B68FF6CEBE301440DDA82B4202A2CB07E9A 47678F4BDE5419EF6A1DFA163E533B68879C5C1667DF089F528463E8C585E408 C0D2D45E01F90336A168A62CE6FC25BF4AE4EF26833581F8072C830608191204 E734A92EAB32E44CA75E931A7DDD25FBE3AAB7DE98CE503F9FF043099CF7C5E7 5EE2E26E7E1AF6FF40268E1E80DCA3CB952B5AA59F666FE861840943817500D3 7E7162DFEB62890DF5537E1D81F58BEE378840E35CE0A024951B58E4D07350B2 CDEDA462E4222272CFC412B72E3895BDCBCDFB4C99D6D76260C39ED6D930C57C C90317DE5D210AE45C72784D9565E47AC26111289B92480D833CC52C18DE0C12 47C4738DC9BBFFE34CF638119E1C8AD69CF1EE3655621FFD68A4B307AFC4DBAE 6B4A9B2D39343FCD66676E61E0FFCCF1B45D5495C7513529022FE3D8F7E94E4F B879704497CF71DDA31BE4A9B48786EE2A742AFBDD9DE75CC4D5BBDBE2D51070 20C3148A344C175A76CBF3458F1EDB355DF1D67309E63CC4A6A3C5A56A7C1C0E 5E0F734CDBDABB3E7B8B2B27C3DB6391636E2D01427376F29A047B7FB1455B51 6A32A84C266FDF26AB42754AE4AC0ED16F76563BB22360C46160DE70D91A82EB 488AE7B3B283D3D6CFAC2E5F7A1404690239EFE593D06F8C97CDEFF3584E355F DE187A6C500D807C2F83BF783B2AE270208F9773084D8B3DDD5E51BFFFB82B27 EA706DD9D81FE00F1DD265E8EE27813DBD58D45D6B6F6DAF291011D328D21FD3 0DC2319BDBBD5FB2F9533227E96A5E64B6606990458B5091B959DDCF5036A97F 923F2CF36E4AF4C18CA87C06CFA74A1F107BF3CF83F7B67DA8804C10C5F26971 3709F95EAF4767A9446F524ECDDFB6037DAFEF7E865893B201A3B836FB85B237 63D0D600512A1ED9950F83D67E298CDAFC90E85E016D11483394FEFDF793B093 49D4713101CC435728740662BEFCBF00D433E6133A4A291D3B6C4E0A4355E98E CE819E8811AD59EDF6A5591BCBDA29ABEDB985C462F5D840FC90F1B1BD5DE948 2B3358864CFB18BB4CC94D7BE2D17AB6FA6DC936BCE0E041B215F66283A1257D 7F548992C86F1CE763D130E6C6B236AB9B3DBBDAE9A6474783CBE1F42E03F004 B14FA87F32D8EDEAF3C03EADA36768A9A0C06731DF715425FF479DABB3FFA716 95356DB008067ABE3486BAFB095CEA65E6B9994799596705CD4BB31279B66FAA D6F92FA147B32871F7778DEC3B528C6745F23042F3E524CEC9B8474B13097BE9 1249B84816E1822EF8E829D3783E6A8FB5F5381AF798BD3EE1AC876378143E1D 179AB36E5CC41284085507937C1A8A5ABE6933EFC6FD95F5454FCEEEF458744E 732843FAC9A98A70652D5A5A2524AB2CDDA38CBBBA5FA12BEF4A1B375508E6DC 56B2A41AA53B12AF6F573D35122EFB0FF2BAF57033488B392DAAB6173EFD2788 BDB7F72780D96B07377DF5FFAFB7530B71D8AC66722B670C854EC4FB29BB5ED8 053DE750AAF725BC56EE2ED9B4D6DD3C550F054E66F7FF8943889BB7E41845CA 3F5A310FDDA54367044E107A7C4ED60C470A5EBA47AD67E46274533C88A986FB C63E7C7B4E0B14225A9DF8E3DA50B5835CDDF52F78858D2837DA92381E664363 D36AE6895E7D1FA36755FBBCCF8D5DA53409316E2A82F7F9873F293CA4D1CA25 924D88503D9C5E7FBBE2AAF85BC3508F4B755294777A2CA81A03CC31F65A96B9 97C7B459FBB6FB7386CCC4614DD7918CB40E531E5B7BB3175AB0E069D463C7B9 607DB968A611E935C38875A19E8F6BA584B0E0C2CE864142AA95AAEA7EC80D0E D37E2780B962EEAAED5765E1921EDF9635384549FB559C082C2CF97AE8BF3EFB 3FCE73CF1B0C0669064264B21212233C60483E5FCE6520FC3E9878A5D4CDCC74 7597097DD88CF46ADD6D218D0C52B901871082A02F2F1671D92CA411767F2E92 B117A4F23B2E8A5FB80E394E6CDA75DAD291A30DF161F0F2EB263661BD7C4E9F D992688C5D14BE2534565F0172BCC2B2A1BECD74970CA6B2CBAAA0AD98444D2B 8A742B3F78264EE037F644A297981C2C3789643D0DEEE64EA0D2CBC86824527F 276B561C185B26B06FA072EBA3470160B5DF15207FDD1CFF90F8D0DB0A07EDBC 87A141CC25AC0ACB249B1171981D39779B0B3C635B9907C693B61EE6717BA786 EBFF8A4BC44F1D60ED3022A60627D396E67120284E905DF9AEDAA91FECE261F0 70668A182E6919779FD77B3B314B3A6100B67B6B24038DE753696C94B49C487F 5B917326E5EF4D5D68E2C792B97FC1EAC9FC42AD238DB41E1C34C4F3A71A7277 41D0EBF6C385ACD1F28936A9860F67A4812A983FB5F461131DF6EEB1EF3CB97F 4592BF4C3FD609D21354C7CAE88F1D097E96B738FF26BF2FBF7BA1E73C90D872 5C42CCFAB3BF2E36520588230E5262EC1356C58AB1F2CA76263DF1D416965345 615DABB812FC90DCABD31456C843E3DE39F9F3F9BA8ED7D6AD15216AFE401165 274495808D8408A0D97EC0FDE8E46C9669CDD6179F18EB0DE75E6D078B9FAFEE F0FB753A29FF5B644318DB443072FB3F3815BFCB78CB32F95972333C1A0AD6A0 7EBD26A924B018CFEEBBBA88983EF2FB8D4C75FED716155CE8C4A72C775DBE33 45308F441553187ACAB8954AE128753C6E51501516D028EF2352FE0623688443 1EE83B3CCD09E26F61336BD2777F2952765DB0D78C572EA359CAAB43134E994F 76C5B15209FDAAFE140A4167552F52F173278D1280A10AABB2024550C0796AA3 96275B16536898A415A38A1F480756D032E66389056FA69E935A7E0E96BEDFEE 5884CA70C5E38EBAD5D4E475BAF779E3AAD0CC7EB2B03B43AE1C5DC2AB5631A0 5D4E5CB9CEA8184808B12E2041D27EC9873274961AE6C0E39F610FFC19219449 2FBF1D66C3C0FEA4747B6792A5EEB8BF6EF91F595A46DACDFAC73DBFDE32B946 5EA563378B853997BD93D8CE03A28470C722E39351824BF2E1510A640EAB0383 DD6F52FF97FBD5D58268A046E2A66CDCED5BE84F24297D9719974CD300EDA587 08074CD2FA4C45896A1ED808D22D4650163387E903EC61E4845A5F784FE72378 6A4A8A21DE17FBBA1B22DEF7CB96857E9707518580CB3DAA7C697D221F7F96CD FDD12D675BDE80DC3B191C84DE66F69F53A21234D34A30A22E158D7F223A6FDA 5676CA27AE72B3A713F78952E7ACD8B3096A2693E34A453E81DC681454E1CB92 13107575B2402EEB4D74A8603486F504AFA899CF7A14FB43FE217C3C324D3D82 1F367625380E90F0A019D8D91759D67E6C8D5C964F15E0302A025FF20501CF1F 202D2765315251219CC92BAE8DD464A447A5A38F6C64D5A97E469C02C8E8F112 B1EDED7D82E3AEE8DC45C4B23E24168213CFD2E08AC2574E684381FD9CF2F19F 6448C59C2A1D4461B1B2C8CFC35E2D681ABBCC9B4E7267E21F79B2F237664285 5BFFE19251399F54E6802740C5889847CBF33F95AB8BE46208160711F9FC81C5 0E0BE58D0D2DE037D538322169AD327628968A7BD2B8632877D85887087ED45F 921D2A5C9DF197B447D69BBAE8CCB3E530DB0287FB89504D4F328B47041D7764 4C4E137CD0F5FADF2E9F4012E464E78DB37A659251B5B13AC3A30490259E48C8 A8119A568A4D5A13BB0EB71924A6C520579FBC4717C7F0A81924C3EA0F312B0E 8D989A452F281AF507F1AA42DE6BD27048BB5986E646821BF2B7FE4AF17C6E85 8E4D9C1909E916A978ACABBB93177E4AD0F6427669FD78AE0F0562B69698F993 8C45722072EDD02350827E0D32DB304C9B47BA46F677DEC728017420ED44EDEF 887A325F0C3F2680092E7CCB6712BA8F899A477446F3F646D5D6783D4D209AA8 310B77BAE28D1654F6AB1210CCB1440CF52CC23095F091E93B179FE0BAE3F3A0 16B4AE684969053A2EBE2B22F05DE146F0EF5E08AB5C2A0BD2182610A6440643 F594342B8DCEB04C2AF9868B110DD2733230D58B3745DF306D42E10D496395F4 BD7AECB87A80A570EE672655F96F88F9C86C7B3BA65EA249A13528CFB770CE75 14959C38C93B9397AAAB28EFE92392C61662D152BE9A5588DF16ABB036CE21CA 5CC94B3AE3748B8560F4107CE4E043472D5F10422C003670271364B76FD43A8A 979230609055C4A0F155068F52CE3EF0F4BC6B8F6578B522D53F48FA253E124C 80B47990D76149B99A3FA0623EB6BE749419248CDA81068D42CF16BAFE5265EF C8975D9EDD2C3848B3A1A20D331A2E7FFFE69CF5C717AE515FCDAAF2A36AE977 69FA965C2B9CFB7E66EA48A91B32188D9AF0C4E48B5B84FC2EF1F443751514AB E085766CEA06CAEEE3A8F5D4B3663E993B29447AB826E6097A200AB98CF72FAD E90D2DFA7CE0BEF954D8B9ECCE3B26AAF71AEB35873D918DFC49A3EAD6E37F29 9E952B6B46E451ED0AAFDC033FDF993E83B5157034AC8C95447B57D5E9E9DDBD 444F1802A4812DF05EED7A9748034CCECA0A9FE80ADE0C695CAD2C744F3833C3 08E3A15BECD77D23759BDDF988DD18C7B36052CB0A3F06F4F5DE3B6CA80E52C2 4054E503C589F1C77EAD0F3CF0982CB2A239C710F65C5AB3C9F87B06C7C31290 256E1046AB0126FF8E65ECE8BDD1A1D4D4599633E8F246E9D7FBFBC6D6ADBD5C 661A697D26AC6F4E86CB123D8E4283A481E0E8BAA169DE04A3CEDED7E0E9A299 AFFCC815CACA68F8123981C83E1C90983464B4146BAC557F51A925ED162CAA9E 79375B98E981D401D0B6D1B79BB1F3BA66D52CA790F7768E86293EB8A92644A2 BC3E66D028C989D90E41ACCD371184573B9B430E78F156CAB7A6E37DBAE07806 1A290481B7ED11090644CF5654A34363BC5B063BF426FF4E678877FEEC2D3788 B94E0B38809615592F28A3940F4D3E770D4F8A57FDE433E51AB052EBEDB69626 B017354AAA29FBAFB97A0A51E05928AE684E8BA5C7A6EED603C14ADB88E51F9B 5910E06E0ED3F4B5D2AF7BAE61678C5C428F541EB7B4C4358E66787268DA5893 22A3AD91EBEF430065D3B77973FAA0C0997C48C887C64ED6E9C8BFC5D559FC1D 07B396E59E464A7488E24AAE210A80E8FE953B0DCBCD1A7F5CA47271A440ED22 A3366991724C3BE3EFA548A94AEF5CEE84400CC11FB5FF12D8F3BBFC5B944379 5B9DBA8FEED4FB62309220CACE8312554047C93FACB1D8B3CE68F5C660FB59A3 A3E074E6242887210D6E19D0ACB8570AEEC3D1A135C90EB50A72E78ABE7B74D9 9020A1AB6424883CDC9EEC1D9BB1B2D7D59175C0FE62564EA5B0936D4B13C842 ECCB659F8A1E795F5728BC10537053A317F945FF1EF19B0BC07DB0FBC85EAC3E 0D5C14A0A07ED12A50093BDB4584256A191F979D87E2BCC26716F3FF2381C685 DB2EB753A38E94F6098527CE8CF85CD0B7D797329CBC2EA8A054975549DAA439 44B3180FCB595807761578E80ED53B8FB03311C7969FFAB7F6368F1093390D19 C9A825C7936A89AD4BC2C23D6703C5BAEF2DBE5C06E4E91AC723EB9DA012B5F5 C2C0C797F2025A50ABBCA33339D7B2CDFD2F7353834ED8010B3D90F289DEAD55 2225B1371BDFAA05CE3483C9D0A0B7ED34745BE97BDC1AB043D2AC92CA5A4328 C6B48F6C71E9910BD6723856E490D10DD2BD11CD0E230803971B159586585AD6 146F565E332521CA3D58238DF879A8CD3328298D19DB98B7EDD794F1AC00ED38 84C81D153273E393C0C506A4C8404DF61FFC6E8B61AF45078DCC3F564433EF8E 34E7096A129B42ECFD66D8826F41C4A321429E2CB3CE01DA0241D657CF8ECDC2 E8CACE81CE3C7799A94F0CBF23273BFB5C152B876D4448D4BF8175FC4829AAC2 EF456DF25CE27A3411414E214BF3CEC8F6A2A39DC0112CBA1C45ACDF504C242F 5FC8CAA9E5F256B6A215FF9A9093DEC04AFE322D3D614AF5C753F9C3D4C55ED3 CC34FE63C06D4D1D76FE9865E8C6EFC31436170C1449E64BDA032CD050DE8132 AD9EE33B6896E5A0533F91873ACB5AF9CACDFBD64AA070B18097E001712C6B81 25D6094BAC458F73A90DDADACA8079DA45C919FABD75BF0A91BFF3FC8644281E 44EDF3F1BB33BB8366164EFA60A2704A3CF7709AED95C3F10A392BAB8E3CD3F6 E2153ECDCD85CDAE4F80E6B460460C2C3C209ECE67E54DC3991CB99775B028F2 842DBEF76E98710ED2428114CB81C86B8670574914AA23D04332D35B77530FC4 7DCDDE44B1D1CF0921A00AF5A1B0BD5BCAB9D6675B28B61B5F7271CE2A8F87B4 C2B23108056EE2BAC3969A12D0AC6DBF324318ABC69222A1DBB0B32C02642763 58BCBB4679FB35B5FD82E555CB578A76AFB688751A8E7BD04E3490738DD1641C 8D66E9DE9399CC77CE77BCB608594181EB1C1788087A0221D44C92F89335D901 F18FD2BD9C4BFAEC1479820D8BD3C747424E235569E852225250E8018C8757C9 08F12EBA6C556A67ED1A6C9B1E8E4DAA4A4D3D5380FFD98EF2A7145932559F57 4829D53AF936B3EED2F0052025F6A4477A5A51F267993E31A5B04B6B3B08CB32 67B2BE6BA389D44CCFCBCB6B470839A28E56190080B98B7532CCA9022A4B5E22 9B502199389BEA7744C4B59072EA0CC61D9FED82EF802EAA5EF1E2FAEC83E946 747FA4629277D406C6F766ED83BDB4D698890F2C0A24C19B92DA1C9AE2722FD9 32FD2DC0807EAB9015ED64CF65C6E006497649804DC488F8D61FEB1AF45FE157 5908F291EAF776C0EC0DCF70B01625F758BC9A6DD0F7AD251820D2F573D13608 B884CF0ECA48643A562490AE1AFBD6F6907DF82323187A3964206478EFA0D887 8E429E46EE4097D86BD0BAB929ABE83660E262518465939AC0E70E58BDD9F7AF E08DA14927F5F984D003A4DED64C011111A0D4C28485818D5750F76F044B801E 6D792E27ED073C2987338C47D987FBFA69EF0C469D34A2936B402FD61824452F AFF48272769CACAEFF05D1DE21575A6D379C2D77684921A9EF527A50FCB8C0C2 669BA276B1F256CD6C3AE30EDECB0EABDDE414E79015A613C81B25F86AA1A2DD E783D1F6BBACFCA68E343C2506C6B8B60D850700B4F6A775E3B77ABBB01A48EA 119973D08C2EB8A5CBAD37AEF6FF43451A25BBDB19B31FCDD95853BA4310CF65 0E6846FF25F07B3465A1708BED43596DC77DE7680A622780D65AEEB9EDEAD213 60A299367B752D516C741D44BAC4732D9AF6D77BBE7055C770 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT9 %!PS-AdobeFont-1.1: CMTT9 1.0 %%CreationDate: 1991 Aug 20 16:46:24 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-6 -233 542 698}readonly def /UniqueID 5000831 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D1E 2931CE5F5D18C658602059F07BE66E6EFC9239D7AB2FB8A4CBD41675B8ECF279 650C29E53B14AC0E392A664848C1844B1CECBB2D5CFB72D0916B675C9A9A1E35 F12696A6F628473C604A95376468E06E295AD6F76CEB939D94113532050B9D5A D2F41A9EFB9424D986612313B89EFE9C8A71313340B248F6853B1EDBF02B7F9E F447220FE131D7D54CFB8AA1281DBAEA73E665BACB1F164552CC0CEDB63BD4B1 4A9AE8AC6FA02242DBE8DA46B64B6BFC11762F0784F216FC8B9120D688D1705A 438B14F5E5DEAF2A98408B3B64620DE3732A4DAE6D08D5D97E34C75DAE19EABD BA0796165C1151BCBFB1DF8D29A63A8300DBDB9E3323CB82D0337598B83F4F2B A97CF5196D4D1CEC1EDB8966E548C0D9C194C932319610FB43EA1B86322FE641 AB48770FF13BD475A7267E142388563D1A400419C585B22A9886074687BEDF74 D905BE8EE440BA2ABF28EAB673399B7F129B9729DD5564C681954621903B84BB CAF89AC5ADB2932472DF29ADA2BDBDB4D05F65F28F5F4C529613D61858E0074A 082A852710A62A147C966F2B85B51B0BE85F11D2057C66FDD61F6C5755367980 9F4DE680601D4DA41B46F8D2148450000413C27AA39B586B74B977B25F0FD3C0 4BA1EBFAFDBEC531EA1210365091671CE3C86A6D4BC591C37DCC02570042575A 9D24252D6E01A8603753934D7EA5CAC1BE4E5AD2BA047DE8F3983B23A8A1511F B08D373B69E5076CE4300137B8805EBCC0AAB89BBB312A77835795E3C069322D 42C893A30AD739E2BDD299679B158F7493764F2321E3965141B5ED1C6F4765ED F46D391A646B30C90002B1C461AEE79E5F094CACCA656CEA3DB921CC5205F328 A2C69F817061D6C60B121EEE844CA5008F23DF0989F1C958EB5901E45C2D6F4A 19C2AD9265965BEEB593D82E6B2FD8D8DAE343C5F7D9DCC008C5F390B6797E6D 4D37FF85729672B476E9A562D1FE09EE85E286319D09DE6C6C949214893C459B AB03CD0981F5779444B0408E1DAB8794B41236D7CB3E5B0BDCEA544B587E9662 D17A4313207C46B7A89976930CC9FF28D4EFADEDB2CD9CABEA37998D07A7519D AD41BEB1F333936A3DDF625FA5A7854DE7DFCD0D38787167A423571BB87ABE15 EC3F2FBE467D5C1ECC5DC31300982D86066A9325770C96A66561F2AEA1F9E0A0 184B8BD44CCBD1CF95A97D3BD9AB4A33F50E033D3F6B433C88E9FC260B6B6610 3C104E6390481261913071F588EC07B733D422CC9C92087F31F7B93987AD5301 36C7CE1FA790076FCECD18480FCAB4AF3E0D8C6C988203927E931E958A5AE7C3 DF25BC34ACA677EB9584062728A467E3C7DAB8A4236EAAEB60696AE8F848F45A 776E591B29174AF8A54BDED3A4542C53B443578AE5712B1085E0ED3EE395E609 3F6FCDE4D2642112F727A441DC5F6DC2B2EE598C7C8C4F63A15DD87CA6654366 07E167BE266B4BCC0260D24E68403B931DCE8E2BB5C145C3AC68CA0E5D1288B6 281990FDB95084C76C2D128882F5E6F14037F630F570F925C80D57807A7683C6 D76432AFF379A4638735CD2A3C241D17FCA06982A00458C5D36FAEF20B620950 57B0AC4E331BC640E634F433090087AF56C255C3A2F624D10C239DDD17C83CA7 F1648590DCEF4CFE1DB674AF5226E3D02D7EFD23E7E7629ABD667137B3073501 940D7D9911205AB500849554EDAA973194B21F7EDECEC5396CF890DCC7DF324D D46CCF070340A268C57D0A1334017C9F9A65669B19075EFB3389F15DC1086A11 041FF9EC261C3EB4A9B412EFEB96E4DBEC271843065807C0872A151EBBDF347A 80991A78B4637CA77D5D9B4A1C546EA183A9AA770B73489AA3BFC73C09B868D3 6A8678829A6341CF31D21D3F43B39A44833301FDC41A90FF499AE5D3EAA67F2B CDE798D05C3847B6F7EC35F2B15CF1E1705D3433EBFF182C7ABBC9AC494FFE28 80A88D9DB2944AC8DB7CDE2EB88397A3DB8DA4A54AF129B91344CD3774CA4E20 1CB345DE847306A92F4E7A68AACA7DD894A4C9D928BBEB6EE0316778A9190D65 7892FA334C386EE0588950C90C3FBE22622D65341EBC16165E631D208D5E24CC 6813563F1E10832801AD74B349A5B1263B6FBEA5B2B3FC8047A7C08A60C49F1D 41E010B7B1C9EBEBA74E3C5294AC39CEDD5CC71AEF3EF453AA892BABBDF8266F 1AFA7EE28C4108F320D8D0F659C73742E948E1C268C7F3AB5B5A09E1F6289E79 CC95B7FCADA88757E7931364FCCE44C7C88154FA0C6CC7216836ABAD2E97B251 E463F62C36BCC30AA560FF22A24135C999483588F550B2919704F3DC98F73CF3 0913F1FC3F6FC3238ABD9DB69A984E1FDD906893C2F0F26E3DA04A0C22A206BC CD69DDDB902F41F4B45490C436B4170309E9047DCB6BB41EC693B9D8602611A5 7C7DF3B0D21C638073783076B82730FD5A5BB8373433C289D45BEACF5840FDB7 435331637FB06C1D374005B966BC6948A011F9E311D16152D1BBDF1FF7702B97 684061681432E575C61DBA19E2E1C222F7DD43710499FF45E8AD88E22235DC92 B2C06D40E43457ADFC4B6892F8F6C3A82214B5623935F51A5CE4EA393D1147D3 AA880EC4C7832F0E1F3A0C7DFF85C584AD3E9865DD40B16C8705349624368DBE CA0F034287C4E7ED6B6DE965AA4D1DBC6362CA225881B77BB4C8029BA09D1D11 6F3812CEA6255B2494FE5491102C04E105D79306D5FE3E9FF803ED707CF5A18D 3A1C5EB0B4863AB2141C181AF5484DBC92EF8DC79AAC2826C6F94EA5E0AEE039 65629ACBA8CBFCA6D64FADC8E4239A11F382167A60287FD985AD3E3177E2BC27 A975444210289EBD4C5F21A3E2B2B2D0F07FAE6D37E940CDCF7A143BB93CF868 CC75C6172911550DFB87292AF8DEA280B7733E1A70F0400E4E0BECB921D3FDA5 0B2D2838D1BDCAE9E9900A5CCDA1D480A8BE416BD65AE389C17FCBB301233C16 EFE3021CD4BB5528F7D5EEA7C0F2BD056A159E5988A59F6C897000EF4F07B524 75E0EF306EED2A562AF7A6BEB80245AB6FE959DF9261AD22BB24E891BDF3185D 6D47B2F44BBF8D26D7FF64268BE9670E1E4A1A75730DB4D7AB71F8F404AA1CCE EC9CBF641D5D944E99B3D7B90838F3EC8488382C09C290D74EFF0390D7C2D0E7 A38BC2426DEDB9EB185B459B948E72F71A376D7A89E577E2FDA5C3FEF1090AFB 349B7BFD2059E4409BFB67B4AED105580670E769A18C6764B2E553B1D604B98E 3EC8D4DA7E9BE1CBE5D3DEE18FBC882A3D2A0EF9676203B61C327461F904732D 18A9D7F1EBC0619C65A229AC3685275BF3E678D2363E084C44443FC64F07ECC8 715D4CE91243831DCEACD3F25FE11B6677AAEF8941C43A2D9DCA9A402E1B417A 18385410CA410A117E4D5AF9C278AC7F4548451A1094C7C4F7E313DFAF511498 6267E5627DB6CBAC7F31C6C51749C37A4B2A68EA51E4FD7133C705A134F856AB 3BD23B88AF7C2E5FFCDD5956FE432F7DD38BD9D1F7F1551BB3C36302105AF69F 5F8110DD5D54E008C9852CD48BF7D754701A2D6805A2303B16CE96551228D376 B4131BE3BB644DD8DF7879FB2D1CD338BF895DE8EB66545839869BBFA5A3CE4C 04296797BB0C2252CB539723076BE06585A8A5A72DA38B70E2FF020545C75C8F 32B7D21BAEE40E4E65EC765A24819A3AD54849DA9E90BF79737EA67D93C9DC74 E87B02089D6F0978DD5D5C1F6F183FEBB72727426B190E8946FF65A01FCE5482 2544BD1DE34C4FB38F89660379ACCE2E344F0FC73B05523C2936E2D814F08AB9 040F5347D2642700E9AFD4EB9744A5224A00BA15EE5E9DE7D2E8AB734E00F8BE 0B83F0F6BDC3C736A57D12FB0723B1926B59D5303683D5B25A0E31B335E628F0 F979523F4E3B4D59AAE221247C17AA18EF887499F59A26D9BEA3CF399982378D E0FD3716B88BF4C1B575A733CEA3AA6A450FED8434230A4BFA187E14FED1D1A2 9F3803E8A7903885EEB77ABEBD1A9E5D1EAD1EFEF52842001C451D49DF95C660 9B609CBC68B79236279AEA12E0F8F3E00EA6BE498818CE47CB24DDD81FB92B48 6EE0A7DEE85C9985208D1F16FFA46E7B01889432EF2710600F2716EADCD03A5F 4EC259B14D09DB2A33B5ED9C60AD22E32F90AFEC1310E3978DD52B8749CCE12E EFE179C3E6CA93062E15E2E41840E905D27F389498CD6F79D9CDBE32422889CE DD1436D2C9A6145235435267B834FA36D49722E7864411899DA2610C7ED60BD5 6B81A2DD6C5D2EB56C463573701E0E59080150E3856B953033CF67228C635FA2 6451F819A5833E4C9F9CF9792ED6E36F8AE1001106E566E344E87755BEAF52D6 D39C3B1D2A8ABA24034057A7C91CEDC3E540860C9AD6D0DEBF0C0F59095CDAA8 D7B0AAD3B83581361D64DDEA61887EDFEE3EAAB34053DB31BFD0D629C89E0B86 3CE5A3623DEEFF7B7417C61C19A76878D748CD2DC8C9C9128F8C6039B17B19C2 AF35B0DC109B0861E74BE36E36B1A2368E17BEC29FAF7992E8E51ECEC8D7BCE5 1AA7C8BB8F39183113A7BEE2A5D2524606EC73BD078571EAA59B7E6F8E41649A C9F367C9AE7DFCC8F43B7DD59B82DF94CE6A610E4C424A60BF3A293712AADCA4 98501A3E6AB930AD149A56DB36EC6104085700298DB7709BC57A2B3FDBC602F6 AEF8B63DCEB25FF239EF9652257F68DA23941C52FF4C7CC1EDED5DEFDD75E77D 65293B2C06A529CB8EA47A0F9652C0E84828D2FFED1E9D8962031BBD728C16EC AC60DED37726EE6D8554C03D872D6409BAA81BF3D92C6EFFEB1C96E17CA6C286 EDFF9730D3A02848E4FC1186F3B9C4852BE470C37C797B1D54A16BAACE639BD6 099396E0EE7D1FB1784E22863ABC4B209CDAC2852BBE909657824A775D4F0AE0 B00CBA0727F00F4A475DC8FC5B55ACE60CCA97248C944917B6DE8AAC71E9A8F2 A6ECF1E17572F0195F3A1B8EC360019E8ACDFAFB6CA32E3BA5E48F9DE086509F CB8D3C82AA65D2AC214B8EB6C6910C0648A3023F8FC7409162F7AF294D05AFC9 6A832902BA4423818DDBF4A17B8C597509D9C6033F385A46742C475F02B0157F 01C5B453A68534EB8FD7B51745CA5D2C656137D2A9BD87D46A2769471ECF7730 5317717911E1EB9E80D1A8397ED91AE75E5FAEE2F5EF6D6AA03A8D106BF35FF5 168B26BD9146AF6CC202A2F5D392BF6D1066A40C09FB14DCB2106D23805AB886 8715A8C436287922B388EC3ECA10BE544DDBE75F47049999EA569FAEBDFFEE8C DFFD4EF602E75ED625C2F841D0E1E79F568185427995B81BC19AA28AA4729F05 20D21711F70F32889603D04AAEA536BDB83E11D48DE137D76188240BE05D3D24 F2157CC72677FA8BAA7E5F18B5396AFBBDC77C875BFF66CA58F3BC753AE026E4 842E7C44D3B183ACFC6DB58B840C4D3A0B397751414078F5558B28D5015464C4 A6317D4A2F29B6E61B897F0099D945CE848C36973E3D606396D08CD253E49817 4F6527314446F4059776A3FEB6366E1693A9AE2103DEBFDA659B6516220F0C44 66A3A9BC7CECF82832CD6F6F504B311A598D8C418FFB5F1A1C85D30119D601F0 D37DE5465F14717A89DC7D3D51F064E93E45D8A49533C194CC6F5CF071A2C628 A62A4A3F6E29AD40819AD30E30030035D5DFD95DFD76177E91A57EFE25674E15 EA04600B6517CE5BD6ECAC6DCAEEF7FC11C9801670DD975B462D1D5DF36FAA5E 98506E2635CD08725E3E4332CFDF5D15B34138C16D27ABC4832499CBE8B6E8E9 56456E569A2D7BA92A36D57DFDCBAB1A5086F9F36BC416C98E7A12D34B834E01 28BDE3BA9485259F76014F4DA3BE28900EC84D3B74F34FC3CC3FA63AB66BFB9B 8085E0B33B103CDBB7AED1A24C782DB8AF7A29EDA45B6DA050FD46E7322FEDC6 F40DE109F59D48E1A532CEAF8A50B073C00FB910A14FA6B956604CDB200F2162 DE60D3311CD22BEB8780E9881EDC07FFFCDBA6A6A54A8FF821B8E3F413226046 E85F12132A369FF3891F6FD9C4166CF4FC3C5E92A603AA818121766FBAAAA8F9 7941CD691D73F141392836470A6C06A48646DD9B90880E10F45566C5149D20D7 101F7B115F866586738EB1FF0B0A0C2E23AFD62393A8066C974E5D42489BB879 F94C4264B360B914F8538CA4C813D2C3279292B21D35944715AB9CD00C354DF4 A9C8E12EA1E1510FE35EBEAF07BBF3FB3A083C366E9AA07B934273D61BAE77C1 4604D1E7D11563BC62B2B2C24CEF773887AE6B83A5DE59695C2A25A7F64927E2 18A5BA4A4D97DCDB8A58AC27091569ED1631BCAB05A09334C7ABB2D025332A8A 1C017A7600A1B8308C5BA8D6D8D8475367DE051DE83FC570CB7C3C8144A3671A D846EC3DCE62943BB99D1570D5526E3960C5DDD5233A34AD0085EA415A5B2007 1B28C9D697CE5B7AF7465D923F321CEE6F63ACA2C886B8B8F79A95F08E93E385 00B4A38DF2E3DB113F206A5AA600A504B21BB7B0D0B2B243CDBC1A31E730BF2A F278DD61843899221BC9A9ED03C835CF82F480733EF3D1B901498B0049539CCF 4BEB6CD7C820EF009092A07FE2BC4DB8D46E4F9C1AE5CB85FF24E21D6D229FD9 6C0DD2B4188FF0A81E2AD8C4C6F420C05937958176255C5C7D2C46BF9DAF7470 2299412F1EF541FD8B79D51E5EDD45322241EE94FBD010FB794F7FCC6712619E 69E34609A79818FD223DDCF57E6ED540B51EA12405200F82D2AE655A6A5A8012 03BA69C873CEA710287E02303A79045013D707B6C90D36DB37464D07FC3370D2 504B1FFE5CBF4C0B7E82299102F0D7E6C4D5E72A3D4540A1326390C7B8721C58 574483198E2D294489493A6819F0AB3E709EF8B871DE7D76BD7A359F34290746 9E255839603314FF214404CB021F197E8D936EE3E31D90819D7B8F1E26F27783 8DFFC62827CEF52039FD09605C9D932BB1C0B822207E6501E5F4775D6034FFD2 FD470770D2ADC39FA1619C2658D4BDC55D0FE845718651E960467C2913CA63E7 9086B61A034F5FED39B92CCCB1F48561E06A52D91ED7C38A2AD650597F14BFAB 41B1507152F8F87C2BDAA83B55C7524894C643E957D9A12E62BBA8DAD8224F78 5CF9A46404ADF017B19E87669A47489CF9033EAC6C32D3D82EB6EB1EDDAC49CD 0384487D4469FBE85DF8241B89D1D58754F085688A0FC13277267A16EE9EAC50 89E16E41A99F88BD43FA98345254EDBEA2C64EFA5FA3AE581942CAA5EFE4DAEF D160AFD0D07CBBD42EA819A28CA68A4128CD0C9D861E70C3833312A4C86AF300 ED3CE85CCAABE09CAF317AF6966E5F4B0FD29373DB200D2782A6A77A3FA1A8B0 9E42B8A1C8C7FC2209ADE47BA1B72331130FB9320E2C9B1D43EEDEA479C2C1AB 0E125129ED2A6E8A6F2998D50C4B7DA04A9B282845A7FC81FF75D503BA2170CA AD608876814BD0AED6832284D780A81CECF1F7E6F90F4095350B26002C6436C0 E87D39A9DC0CEA192A79B3EB84C7E7A55E795F0D14BC6B74B96EB69DDF03031D 8D347A3003F45245BC228C7654127751D0F82627A82888BD209DB0A37669F5D5 A660C65CE625DCDD3EA6E133F21B08D8010F4DD5F434F7D9F0885428ACF39C38 7A6AE8A9BEA37FC4F2A630FA7CFB2A18275D5FCEB044CA64973ADADA622C22D2 D5A5E984C7B45646D3231FB1E317C3C1C4F1F6A3BE8A266C3BE3D06EFF40B7FF CE7DBBEC967A1F0FE429C965E24C735F34FB9DB04E5771BE315B1856840CFA16 B482F1C4A6718947B85216936AC1E00B9EB1AA63429EB729F9A79BD9630790CA 0086CBAB5BE30A055D292AD34CD8BA21B46F22BB097A761AD295587327E75A74 5254FE442DFEB4E995D324BED64F2C00B4A055B039B9AB78677C88BE6EFEBE7A 0F2FD863374666BD6398495962F46B9765E2AA052BC817F40307184F695A00F1 93D52D30F269E37B96F6E4B93FC57C12008B68341DACA540C4D713DAC78E2ED7 1D24A018A7BBD3B96F9BA6D0AFB8C3D10177D709E804E982F86315BD6840A1B6 1B5DE533075C26D596C8C0770E6202B140256EBDD08D499AF373F4A6EEF22709 75F2783AC5685BE29B8A28E5D7793AD91A56DFD8F75BC035B9466A1BCADB3AD5 3859F9B297C7E2A75DB04767F303975A2CE6312EAEB32F78B707BE523303BA10 4F851DE0A236A0454151D0FFCC956AE0E07A1A6784330E3E2A8369DAA2A4E1DC 655E511B873089D5E235EF11A2C868CA6BD3F456DB05C70B42D569E53BFE20C3 B60977131C9450A85D699695E7228D76FE2D3FE1F950379FC1B26E0BE5481B85 10A34F139B91A038C2D10D12FF9BC7B30EA342CB7DE23BB71211FFCE28ECE6E6 FFB3068B3F0AE24F7760731F8928871816AC33F05962CB9685CF36B8F9C7B9B4 D6CF0DA68D32C7180B86AAC5F504E24C5807A88E08BDAFB47E765205C3FD9614 F649DA36D24C3EC81AEC41664A631E04C2336468FDDC7CAF00A2FD70C171A7E2 6E33DE6830EC1C326A6F15638303FF68252D1B999C5E44CB6F7214D95D96520B 48187754E4ED11F607A413C653D110E3E570066392640CD598E1FA03E1DC8348 F55DC2640C92A1CEDAF7070F3B1F5538C0C5682B81CC6B96885FCEEA411E6A2C 987E1A36F679B2061742B7791D0F72D93FDFAD2B502C8A88A92A57B1EBB196F7 1F8803D40E8F0D0583B6E44392EE42EB990068B1D63F799C45DFD856622E3AD7 8D7B51C148A2A4CE0F97186AE1F9379EAE90883C839B69C6CE89E69BA3D4AD29 A835EBE9D211C66805D19F898906CB8CB68906B007C0476BF57D83727F8831C0 42064A86D657D6864A4CF8ACD9F02D6CB291E60DF47459591B2272AE7E7F09E8 3F24AC38D7D39D6948DEDBDEF4918A60110AD6C64CA82AD2591C55E9CEF94098 5850DC2ABEB9EDEDFED8FD2F4056885983D2DE6CE84FF2E100C1151A7C8D95A5 7690047B8FD7EC256793AF526716BE1930D2A50D784294E0504116E854D2160D 42D1F22D38AF9CC951CEFE415899907BB6C28E10BBB34F6D53A5A505A3CEB9E6 7A67F9AA66D002D1F8FB15BB09AD231C2CDAFA2DD2FF1AB66A7B7A82403798DF 78F68D247DFEBA9E1E668AB5E7FF90D101A91979D4642F8F62AE6F2FEACD0A72 4C23099635A02EDB5571BC181DF9854C3D024DFFBC701193E0AEB6EB9C3C1C00 E09F1B54613A6C541A27D6678E8DDE54140DA0F90D929B7036452EE67095E099 DCDE8DB1C99B644D0DAC4E04D2159318469BB3C6B801B2D14549034043F5762B 09E80540E8564EC7C9EE0CFEA5E5D1F35186A87B8220B7DB751E8FACB7FBEFDC C51B3BE6EB52968E99F0A8BE7348B3E54DE7A091944E45266EB3F7EC6A21C36C 22C2BC9F3ABB1719AD7E1653EEEE030CEFD47E1EF05E99DE5FBA3B12FCCB49EC 1EB362C327AF3A776A8C9FDCDE869E9205EF9AD825FE66F71C7CC0CB2D6F4AC0 72AE2BF41E7C2F2FD375C9DCB74F2EAA94FB1E1713E3C5257BABF2DC9F2D3A56 E7288422AC417374F987FF81A97AC7FDC218852A21F2B7A4E1AC9B7020DAD397 D5ED0CAD5136A7DCF56B45188063F8E6C210A4E1CEC99C30EB5278CD88B7AC10 FC5AB11F9CBD99A6ED46CEFF7A4F972889E36CDCF78E0505D389BBE0E9834EC2 0A6C20A955B067E0E9747AFD6075FD2702933B2B6C55C7DB820912CDCCA11CDD 8B0F496EFF8BD7E25148C2C800C2545F6E1D127EE5774ACD207AEDCF09245D27 6BB010DD94B862EF9A35242C74C1AB21B262D225492DE6A1922D8CCCAF9BC6A8 F045C13989C686318D5F3C85558FC56DA26EFDF2F146C51F7607659E22879A71 0B492F39050D2D2B83B1070F85F9CA3060F44AC7D2FB3BD6E934544B267F58DA 2A40A1D3A3C033BD868DE6F082E4AB6C67CFE911B3139497FCFA21A904E70351 2C547BDA0467EA4394F68E7AD9E96D265296A01328C62864C88B4C8C38103CC4 B57EB44202354164474791F6D452CF47C68983056AC03F9D9472BA99638D73B4 2D56056E428810E3A2654861C6062B4406D4FFBEE7DB8EBB3CA936F90661974E 71D13796B17086CDAF5D929C794927A426C6F1BBC072F6E80FEE36D4C3C6D040 92E75706F31EED4835E143BF3F5D03F438DC70689FAACBFE3E3EFCCF511A5098 4600494E1D6F8A8DC1AAD29A1BC1C82F75276B8ED0E795C850140304D2CB3C2C C1073554D02DB19F7E5DFC334E915571549C9DF94342CE319F054D4CAAE6DA83 6F669B93381A96F90394253FAA853565EF0E8476CA47EDA84E65E9DE620A792E 478539BC0B5DA7A5F44B94E2DE58DBA5D808818144C995C5C4EBA0C412DACBF0 473038B70E28D172708C807E834F7D75A5DAC011E8F1280DF845AC2CF62291B1 DCBB6B3C098BB11185BCE01F5056DF49CF6BA1C17AE3FD7BD4E30F6E9348A304 2BEC92C4655DDCAF38E4C6FDC56EB4078A8FE155F00BDF72990FE06B88A79CC0 5087F95E827EBE7FF3887D0F13B56351562D7595A708C7253ACC932CED159167 1B54D66338F3296C4D3626469E8B68B402B1D4302F6DEB15123689AD2CBC53DA 7DA62100D0A26F7DC82BC65F482B73F7BF8B81EACB2E9686B513F244359BC151 A9CF951E948600CC8D97069602DB02C6784ADE4DF5CC638F32F23DCBD9DE2F10 2371747537BB999D73C4B22D5725C8FD53DCD03A5F4EEA9A3B3F3821DA232094 C93327564646CAD8CB791872E9E9E42313EF1FDB7422079BBDF189BD17CBAAFA C0FD9362280BF1648F8ECB43444BB5A7CB3695C012ED8CEF1B9FF0023BE391DC AA8E955D1EC925812D55F6885A6B335FC825D65F6C6D1563DC7FD10E4415E38B 3AA92F0B584535D1BF3105AE14C952BC09246B9979EA9A1D7544F9E5ECD69E0F 89C9564D3F649C4792C69D52D925D3A4721D254E426A666BD68ACE92B6FBBF74 2C91FB0F7486E2D7A2487EA9C1DE2CED0812B571F1753EE63EC3BC91FCEB5613 AEA619300839295C81B17224C8AFFCB02BD34D5F4D5B9B736EE6BBBC92AF548C C658F012DA6E4EDF2AC21AC0D4A2177E5F857A4949A036A0E5829175BCB1FCE4 E2CA4A772C0C6E6E20876DD949A6C83E56838DF694FD17FA0935C6858DC523C2 2F63ACD29DA3847E6F5695F06D98ED3CFD277EC6DA9D252132F785D30A900F50 9E39377156DDFE7898B306FE1EE5C4C72FA80D16705BEB5FDF11FEDBF0E0FEF2 F8DCFCCAA105EEC515F870A14D989D0A1CF1DD7A7B1314FC2A2A9DFF782A9D7D 03DDD99536D4E72BAE61AF5380E87039E0E27F168685A569FD2529DFBC09AEE9 4180BDB8009659E9913CCEA3E1257FBDCB1F5B98B95C5916742D2296BCDF38DB 3509DA89440BB05BC1DACC0F38E927BA6693EE787109DC2B7B8632CA73893859 F29C975716DF3699548897FDAD05D2561062B34F340415CB79BB828BA5460B8C 4548EC8C72343666D86247D4A101F5A8F19FB1D0F9EDFFD66DA64FA70F6F52EB A5EF6636EA50C67A3D55E55BF1C12F510A084623C072D429433A79EFD40AFC53 FD93F0D02E16D03A13C736812780F06C3B709E67CA18E3290E39E63636304C77 A68D527E810B5664C9253039952D156DF824EC8C32931CC735DA8CAC7939138C AF9352E296C7844E334D1F5569C05AAD7AF8D57F93FC867D91FD489DE8839092 BC84D8D24C0B07F670542FBA00D928F39499222C6861D490B8ABE91BDBBF3477 92BC039A4590322327B2FD31B38E4EEB0CF1C92DB7957452FBED094A4AB79C1D 7BD55633300806149715A2E058816EF8DCD0EA52A46653BB1C25A553DC122BBF AB789E972B3191864B62223019C3BD24A630298CEA1231EFE95692550B1C5BCB 3B3A2F57179412D087B36AE4679821A693916299B04F2AD7BC8453BA72E8E7B7 4A1B97F47CEB885892780B56072B515DE60AD2C6FBFDE618B7BC034499959B98 B17707F44B0B7F7092CCE3F219A923566D49A242677D4B1BA232C5898C83E1C0 89E0B364387692047E75E809CEC36FFA7FEF7D1369FAEB34FA1389D39E5FD837 04D1B85CB8CAB8D49B662FC33805A73798C6F7077F002CC5B17AFB4AADDEB501 506B8EE6C6850B21EEC447DA33923C591E2E3D656695092EED674719B09F5AD6 D1C107FF08F736245EEB164CE0ED4B209F300A222C1B8862C1B1414C6B60990D 2F9D1E3A0D98138B93ED3FCF1347DC6F4C614BF6F480D6BBC5F5A197D6DB4D9F D78A2E8EAFDE8401709812FF5A0E37922E73E8C65DAD950A899B6411F361679C 6090C6976D16808BD425F5D2D742F7C118330F204272D40600B8509E2B192F4F A0CD16BFF3CC91DADB80EE1EE077DA54D5D308682555188729C6C96332F9FCF7 85AEAB3F16C872F25BE9FAD534B2331FF907B6837E4F43AF41B98DB732D437A5 75605E2A3375EFBB9429B6063AA14D0FF7AF9A28EBE344567B44D4D106448E83 0A0EAA662406DB1F1D6D4850217F1CB8672E5DEF5083EDC6CC5F0127916B9E7A 2E1BB45A38090D545366C70CDEF51C229E1EDB8508A7209734C8D79034B15409 ABDD8C804BBCA026DCD88150EAE7A5CC21FC6E986663BA94B49BAB49B194CD7D C1FADD0FF08F0DD88A46493E1FEED008B4E2F350170FB582C9DA71E479A439EE E356677E3FE670819640CD96DE407A9969A73C88F8CD3F1B12D2F8401715E606 DC0B0595C5392FB88C88D6363B033760E43D665B10A57AFE76D14A97BA881481 1C3E854A7CE86A6382CCA7E749F39A3D9DD481EFDA4D1A915EFB80C5FBD0CF3D 2159AB8BE938F8BDEB3E79E6C3C19E0615D31AAF45FDA76DC9DFDAABE6E02CB0 68FDCAEB3B04A03594B7A012216B071DA66A2143DF4EB925CCC84348012FF7A7 892592AC1F201F4A66A915D15B034030A4ACB87C1937C50FF1E24DC50026FD7A 4CDA7A8055102E9BD11D0F8139BE31654C27210ABF80284B57A711448E05A54F E78DE8012FD2A891D2498C1EA1FAC991BE375BA6C3E40E5C4A9F390B4AC7B53C 06C335954FA7F9D2113CD40F0A50069A97ABC5D446E4654C0EE107D8E9540BFA D9A31968A88DE67C4EF340DDAD528197CD746073594EF8486AF779D84996369D 09491254C1DD578BCEF8920743CD3612222307210155FDB1AD63082441CC0D39 E6163431F778E6C6A992999F8DF97751EFBD4D9DF279193C9A1506CBFE38C03A 6333188E948C852490E0F24DA5F93B32C2AF86D466E23A6A5E558A894AD4E266 4B05497F47B3CA2DF8BD565AC2DD82A49DC605E44D04FFD3A9CEC97D6D8FECBD D3A7BB7924C2CA41DD377C6B0490D38D1FD69C4C6D0B14357F780AAB4B9769F2 C2FF60F4EF8AF091D8A5CF46CC1B66E589A826308E6001B1D590AD42AECEA9A2 7C4EB6242BF141139407E10BD6B2130665B799B96A654D4314937DA48F606E48 B8CD375D18FFD614415C6EB0580B2A59C3E79C00581FED7BBE9A9BCCECBCB3BD 3893584BE0BA63A284CE09A619147492AB236435A3E30F34E6FD27540BBE12AE D710E3E2C064CA3D44A7B6CE8F5813FAE18ADC2BA1B63C16FDED2953DBFF14B7 12FFF78E2629D2A4A3D5A63ADF469A0B9150A9DF91B923EDD68464095BCB57F7 5D16B40AA5E7CAFBB4A1C82664424F0AB9666D3FF17D79A9E412AF63EB68519E A46904854E0F2BFB7165C9BDDF60A4C31A472E63CB0205F9131B216398AAD4C6 43470DFBDAF0D4EA589891CF79663379E8F56437C745455D89CBB5482F91AA74 19EEDDB9A49D06307084D891694D82BE1EEBD4658D9D924A09BD5A28161B78D9 499E1FAE1F04D6D501891B15231D72FFD8BB9F65CC56F2980A11A791840018BE 170B7F25DCFC210B68879272CA3B392B93C71D3F9A90 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT10 %!PS-AdobeFont-1.1: CMTT10 1.00B %%CreationDate: 1992 Apr 26 10:42:42 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-4 -235 731 800}readonly def /UniqueID 5000832 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19 38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204 EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727 A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593 F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714 4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA 6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F 1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438 452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF 8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369 5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9 BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19 741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79 E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712 E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7 D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DA 726405EFE420635B5B7F0B48752C06083E92BDE06401C42A2C528C8A60381227 CEBEF0C9440DC034DAD9C19FB27DB399BDAEE22053591D6538587C768C1B7B0B 7D1E222D2D8AF3A6473CC4C0D6C3E0DB49068CEB8C9BD1C5CD486A50DAA10BC7 7D6286142355E3F21DD254E27C00C442728A0BAEC9D3F17AE9CE320D365152E9 EB0D5E3874F2BCEDA98521D23FCFC30B4B69DAD2ADBE80E5964ED0ABEF6C73B6 DAD30E2C5061E3747FE536E1A5D190D028F2130AF608F5DDF9DDDF1E77DC8437 ECB3EC93B33505DF47884DDBD1DC6BBE4098DF04A29AF6FA3AE344600D0AAB53 B3820DD7ECB600A3B8001C51AF2CA7A39AE1485A087FD1752DF68F55B52B4DA7 48030F2AA7E570B3D56C4EAD367B9B73FBC0A7356253233006178B9A6BC19081 B815B5988AE76FE6FAFD7AC239072B1106A3F509381AAEE79B2F2154CAC4727B D199CDC8B4D05DF4BA006982512ABD7539E28D937B0F87FF79A3F84C29ECF943 A8DCB8BDF8EA9E7A0E7CD60BC2308C96B3E889C797D0FF28FF4847016B3DA141 E76FC6BE78A6EE9CE07E651FF86E720A1A1F075972D36E5C55162E3FE26BCE3A 814BFEB12D4C5FD24340CFFED499C7CA183E57EC4F12CFFBE3291D43F7270575 C6C3306F832EF182ADD0AA14C4D8669A17C09F632406AFA195F90C4DDC39779E EC0A77E590211592D6EE19563963225C06C2F13265EBB5A6CFB7C17D9E77650D 11958305727AF662AE73AD0E3ED5F7E7086C5A0C3548A8129575980B06C715AF DD55C8DF869BED0A7883491030B1A7E82C5EB04E5A7D952E716DD8F2EF6275EE 087614CFAB55FCE2BBECD7E8D9C90FD8359E929D5E0A416A23BD58158318B4FF 87B095EB63F7F052B3A77F136FD66EB2C52BD46CD7DB3091A4B78A607112B12C 4D171B2A00B78B0E1C44B0D90C20D9244281F5123DC1F6063F91E9E3E48DE78B C862D848BAD073A4FCB5EEC9FF54B5AB8E234CCC3C7439C62ABC4A13EF1B8897 ABBF21F900C564C9A305FC36FC7224932F766E6E72C2EBB55953DFE2AFC2E3FD 33A0C6F0FDFF086E9FD796E7242596AE85B877223532667625E371D2156E4C04 0D7FFCD3337B93DF066CB6FE1E13960719EB7CB409EE805C08ACD2C06303ED9C E34C898787A43C1B428B896551C6FEB50A831C6F8CE2073EFC662EC286CB7555 A3B42E58772E82FEE206948B8C439FEC5E4ECB9E11DC3A4CBC7611E30890E408 637A01A2118441B4F9467A98BB2A1B03BB2F5D8E3DB7D1D15C188D9E856088EC B762F07B1C06024F7EF53A2FBD60C0A1F4C0275D07164545250ECEEF8CB15B04 A2D8AC44DDE818C4E23DFF5B846F412C1D28C52DA1EC7F6B68D2E63E6586EA41 0B01DFF80C744F65C069047200AFBD969234842863A2CF78DD48BC0BA686C91F 3B1382C42DC044F539B7089E055DDDE9E76F7EC4A120B4D8D3E14FEAD686B0F5 3EB80AD386901D788C51B61A9C04955BE06E75B24FB77F501D9937DC244B7446 60E9453930286D8112EDA6EB6291C0BDB909AA3B3EA0578815A4CE3AFC9C699C 54C86466BA0F2FC9BF260DB773E29B2D4AF20562C31E83E45950A3A777E06C18 0F29343F91938126514FB2B4A81C98E9CC420F54C8CCD614FC7AA290B7D42FF0 429259B32D92836F4B71D517C130240B63949875D2423339FDEB14B1F1FEC58D 49BC8B826DFD0C2DF5E94A4B4088A7E4029EF2B97B970A53A43F0D280CCDB41F 8F9F3573F522404F634212E534EF3B2FA648D9BF218BAFA1135F6800478D711B 9E3FC435C0D12C845F0B3E77DDA804A75EA9BE82DCB9435BF16A2B94CF7684E6 748B2BB7C5EB08C5728DE734125E6E48B895FF3483E07558714F68F2FDC0F4F3 D195335C8216499611CF9355764266CFB43B77B30E90BA64BC8EB301B5E2D060 B1C053E8071EE600A76C8309801C7927F77D1FF4CBBDB83573EAF13DB5588412 23B6F8EF8C388136CA0BD33DA6043043163E34E1B647A549136C33DCF3A816B4 BFF8424CBC2C9EA6FBFFD26B7789815EE0D3576FB50A3D0D2101D4C43C0F67BF 16984BAF98F16F7652BD26329516CF3979539C902F5BB43BFA0B1DE623E26CA0 521BE8F6908E249743D1F7E62350986EF4385E7E617B1EC50F7408CB18A0352A 9CF70E0FC30958BD6335211756B872801AA86C2F43801FDD42BE49F16DD74849 40E5F5FE77FF2948CBCC494E3D9259938F26C916EF34919924CEBEA9315B603C 5D618FEA13211BD46B019852FE26E305A4EF2362536C9FEA7475769262D3C2EB E4E5C2334FC9E57F57BA7CFB29AD573D3FC5CB5781419899DED8B473385280A0 B375271DC9550455D9AFE5171CA247F90902D62F65F84D05B5F65B8BC80376EF A0DA23DEE61AEE96577629DA3835F2D50C36D181D714E5CEA92198F4EDBC4A3F 17995EBCA8A6B3C86EFF6EBEA1991D3A3BC2EF33833103F462CDA92BCA15974C 49B3F1E7D585E056666A2CB937B7B49572A12E9953438F334B727200C9D7A86F F995C454EFA2D0A5B6043E85A5D282F6C6CEBF5781A59AC4DEA90A6E4F2BCC54 B77584E08B6FB01CD73D5BAE1AFB220EF723C9F99F0F8ED7EA821FF9BFC9D57B 1F84B91A3CDE5B158D3DB7D1369D51CD9A2822D4CCF0DB935B56CF3A52866394 0899E7A965B08BB808186D885D12335BDF0095C476462297D3AC3BE208B1CA01 54CF223348B87BF3472AA2966C208D7BCC2AA07BE712AB448824D7DE9968C6F5 7B6C957577BEBF7EDCFC01EE0D276501830548E6604D50E4C534CE727BADF7D3 BBEC9CE7E326DCEFF2B5908BCF60495C7CD9E47448434353363A82096FA9E1F2 1F8C780C4917DE4EC79CF95A42CD2D15E3D51BBDB9CD624F9C358390748A9A95 5AB4DFEB92EFEF7FB8907751FA44DA024FA91C6C064B5E61069B2796590202F1 2DFF657471BADB7A62F2ABCB770815750378DDF973CD4E11EFC3D19C27C02171 4AD74C3CC0B96793A7E0EB9A0AA40C7A6D426100FF3FECF3E3CB60ADA80DCDCE 870F74D04ED5B167D965F8AD2677298548FBD803C716488925CCBC9A3C515D3D 86C03CDC708D2F95F403008963361C8E7EE7C5C62C15DBE6B22C2CDB249C4445 21C8AD0C014BBE4B28827A5C84D714327904518E36EFBF4356DE0750B52035E9 2E06426EA0395C4852AD2ED3129F4D43E3BB75B546F092C1E7CDFCFEC2F00331 D9D0BBA5D76287C4CA7088332D5BCCBDBFD20B7A07DC6619A4AD3894C699B01B 045D803FC5E36061648DD13B6BCD95844E171F4380CA89F7A7F948715630A623 DD5E011B419FAAB28B814DAFBD3DA2EBC7B6CA635D62145E87679FC56843AC49 FF421EFC70F30062D749120D1C492EF1070EAA096E283CECD8411964DEA10390 147718F191A0A786C3A9862EDEE74767762BCB27D5621A5562EE1D22BE784FB4 0BEACE3F8A806ED5257A038C8DD59D3D52CDB4EBC501C13CC9DC9BD89A51CF86 B6C3F769C470912FFDA75C99C2EF55D78874558397C923C330CCAC3C149BA314 C6CBCA464B176721E9C04D0C08ADA8BDEFEA62E3231FCA6A646F837115D0F479 E51C7E509BB81045FE2F3DCD4A761E956BAF0561BCE5A0D20C0F1C45F40306B5 B6A834974281675F2A33F258B6BF7F7AB717FB72A96C0D50DA6B6E4D3EDF9416 6640E77C36BC882A09024789FA969E730CAC7948640EC203B610D8B02B0E8897 6E0395D5C45E7D414331145412115E3DDD7D137716192A10F8D1F6E134210034 0AC5572B33F6FD9D2B95D7D62D12919B23F7CBF114A5E1FF5C3C310CB947B914 E7729E00E22E2F5E4614CE226310306FEFA46DC9ACD671478C026A15FD6668D3 3562902F13842676E2A15F813364FBF3751A6BCA132596BB02DC0BCB18463F0F 28C1A0E1DD23BBAB471ED0A91788353A27BDB2D3DF7F547A2E401DD536417F74 5CF1285AACD4D96642200201BAB9EB201272A1D102FA7B4C293787CA1DB59847 482B209F980BA3107F7538C5FA1CDC5DB36C5F0A7917FB0BF90F185CFDEDCDA7 3B1D584F43CE6CFC46EEA3907B6E81BABC903DA628077D83A1F18C291729A92F 77607547D61D0CE06750F927EA4F37AA39C1FFA07EDABD3147228D161F0D0FDA 771EF1F476174134A27076EF9AE92D3F6DA91C9568C0E27BB954E27CA09345FD 2AFB9150ADB7AEE906AEE84C5375F25C2210D3F5A3C57298BE1B6AE3CD38DEB2 97904795D70A9F2082DAA0C6071AB9E8FF71508AC77052A242DF4D01C9139805 C2F5BDEFD7BFA42D3B3335332B37983D213B6F7DDEA6217186A93B911DCC0FE6 42957686973CA3E07AD6EA4895AAAD5D5CD878AD776FB9975EDC7EE3934EB131 37EE8F063BC1EBC11D807BEE136A31A70EF2A46B36D99B98B8B1B933F032FB54 B9EAFB5CFED5D813488D6A28250605034BBF2BEF55108CA0D6FF94BCB1650F91 99071E1A1B3B2F1E8E7C89A5E4DA1F77DBF6AA289D331C35C2C2BFDE4A391C6E FB679CA42BCB2AF018303A3F55EBD657AAD46815B45DD067823B4BC3FE3B4245 C9940627467C5F9AE0EAE53CB7CC118984272BCC5E1B8548494E812676FBCA78 A70C417C270EB6E435A6A75CAB4AE742B1194E3F9811A7B581D9C552A3EE5B1B 98E997DE7F74B3D85B46825B620B19357E4A7D82AE97C3B85609335B1B41A532 FB2F53C79A4064C88C84FCE693FA6EDB086732B6F76D31F8A6FF27DD850DD1CE B9C29258680CE73A371B3613F17A3533C5EF5D4E3F833E563E976FD58B381643 F097AD8D3BBD1E4F0C22A79F464FB1168E6B12E503DEE9D1D563B6F9B5A8D6DB D1FD6BF4A90DA086275F7F7AB784F8F945569601AE0499EFCBC5F5585A759D09 6829A9649317B8C53F66C083170EAD52494006623FFED560D382CE663A1B4BC0 D68B544A2D3F4AF0C1A6E50A4603CD433329F379B960A2E6822A381D91DADA65 E5D973E67820C6AFDFB917126A4C4C7CCE0C00EA9762059E3BA7C3BA56F739CA 2F89F58A2F058A78FA9F0F040A8B04B77F300343CEFEBF9357243118D9B62B83 2EC312A4AEBD8BEEDE4DBF3CBA2F574BF9AD66B43C19615961A00D70ECE67C17 6C93C248AAB0D3F9580ABDC833D52A5BE4A5C7F06C12E934BCB99C8D484A0CB3 BC75FE276F26C6AC861A17CCE8EAE60AD5E4573D4DC2FCE59477702AEA956B2A 0DB471C240961BF1402F6ADC61C3D7B72C78145B5FEB9853485C862FC428BE26 F2FCA109EC1D6F77284C5ABA95359FDB4507D921934DAF4EDE1A1071F7157982 3A9799E17F5377F27700EE7CB253ADB2371B228647FD11DC38F4FCD9D75ACC96 D6B5508773BF71AD6B9D49829D6872CE8271A17C6FC89994159850529D5A8A32 206A8BD5E688D5AEEDBE8E0195DFDD5ED07D11DC54131B7E22958959CD35E529 F9DB957C31AEA4F25811C7E0B9ADCBFCD7AE1BB84D65C7EB2BE322E245F50CE9 D611E6D52493244E89003784149E23DCE1624930D53B937405064775D2CF8103 66D2FE6F360D5AFF017C7CD773F0303CA4F8C9FD08B91E414546CECECC770884 87FA3D4EDA2E7D8474D5C30EBF966C9F40F4707E939C22779BC757DB50E9BACA 80E0AD329BABE0AABBCD5C1C59E80CF55E63F84F49FB24D5F8F953D028568083 015973AD8921C03794814AF609FEE8A5466BB982A15644C00BEDD08D351F661A AB6DE4FD2715935A73399ED21B074120B214C8E6BBDD346CE84E704A8DF4EB4A 73C5ACF8E106D56287BF82A4C04C8AD092B9643CC1512154D04AA5213EC06B2E 6B8A5452428EF353C92B18855E9C7BE2BFE82B568AA0A4B620EAE77EA0D60755 E78C6FF41E2503A3868195127619E97805A628A0348CC7C92C3EBE700EF008A5 86B6B5736A275BEB0431FD754D9866829C9B8218552737AE357B6DEB6DE5B17D 5D86DFE33C9A4C93CAE5DC1777EA1DD2D810FC772C8855B4055A1B520BB0EF02 9B1C32FFFEA106BDE7EEFD7C05FEBEA882C2FE39993EA2BB7CB9DDF009C08642 B3B12A2752F8F6BDFDFDF83B0F8648C309248AC9274C823CEC96A0766C58488B EF98089D39CFFC48DB5076BC1DF598C450E76E32EAC21E2A63ED2F4CD9BFD34A 23731B4BCE26D3500339CE43CCA5FB9FD2CE1BF78DE258A270490158921A8430 BA9F37EA3BAE30895A57D8BE8A3DEA3DA9E35E3AFB9E650815E81F9252427FBD 4B27B5C81F4F6D98CC7B7E289231FDEA58E629C4A414C5635B69B7ED30BD3583 2C0CE0A350FA686F91C11AC4EF37F651FF61BB9D087E42A7ECABB2073D930C03 E206ADC510961C03634984D380EE3604635695DB7B240CC9D60E31E684867FB0 C7AF5D477F96C24D377970A9B0431780F0EADC1FCF162245EEBB2C99946C28D8 E85A85CE650089EDDE2C11C224B3BBC65835D33D25DCDE8C9ECF38FC58D24972 EB715C666E5598E6F6ED4268BBAC9F99D725B95F81B3A93EDEAEA3B33EC2025B C944E72BDEBEB532A01D263064123E1514EA9778E34DAD260C3EFB820E9B7B2C 005FB6B60E44782CBB9AAAD0D84E2A7FB9B9A003B2E9C4BE6528537B909FA590 F2AE7CA038C6912DD59455C76BFA330BD5801BB94B2869F9F4011DC70BD31FEC A18F3944CEE997E9D984425D95C28DD02D8E0E0DED0D1FAF045C6BA250868E80 730180003EEE66D87118E677DB28B9F54AEF115FC1F1BDE48DC42BADB2F70A05 0112E3E69AE8F24E90D2C020131BCB703D4BE761B59237786AA2565B1FBE6F13 66F74844A3B2BD29F9BC483BF9931838BD701F8FE96B0751A3C2E93E326FF14A 037BED6C2D42D93E06082DEF985E39557D9A0A607D5DA570E084CE011B3F96B6 2F3633344FB5DEF35A48F468C019A9A881C036F095A4516AF9289085217C2556 62808AEB100B2D3D049629C688392CC8A62BBC7494881B5F64F71F6A280F86DC 288C82510A59277BBC18751679448EFDDB168F3BD63947E6C96897DDFF56A60E 747AF59AE10C996931ED47E0567A0FB1EB9C2A7F062E04CB75174E05D9571D1C FA2EFBA213E13CA73D9FF1CC4661E04E4D1267CF8E792F6AC270F03C38B7DDFB 9155F17C13DC7EFBEDD541AA9FD866F3214FB78FC78DFD68A4B8819144D9A28C DA70DF8489B06196672EAAA63953DC4987FE1BC025CFC38CAA8DD29A19E0B007 F99DF8D4D56FF048A53A5A4919256A3918ED9C87A681B168120E65E24EBA3060 EBB79FE24DBFCA590B47A732B5A84F68392E5CCD7F0AAF8AE46E8B2F7B9B629D 984BE10229CE058AEBF5A5625F3EDAFC37D75C087BBA244FCDA5C6CA4D02EA1F 3F64D397F84FE2AC9ED7D8F03BB56BB25DAFE7E691DC2F7F42B82B79EDA8111F B98941BF10B58EAF2D86FECA8239774A6AE2AF22F8A4103D0CAA22ED11E639EA 899DC81867C0E3C42F6FEB53370D06AF2975843410C8114F5C1057D53F078FB5 96E572702A18C71E09DD607BD6CCCB2CE9D3C84E9D626CE715805C0697204A81 DBB43CD0B952BCD9EADA1FE80EE1E24B1C328FE08783FE66C8A1F615EAF8CFAA DD5A57695ED5BF8866603CFCB4EDF22FB010CE429278CCCD13B39C7AF2135FE1 DEFED11CD2275ED4C51DAE380DF3CBD87A5502AB213D816FF6ADF4BDFC53F18B 1BA97CCC685B11BB417FEFB94140FCE2733949AC3E2E1D25BEB6E6D2E5D83144 463283C90090E110280FC2C220DA957E4F74568CADA115E02BA45417C09CC34B EE51F2452A50D20A5B8D532C283E46E6AFBBA38DECEB61836673F76E8B20FC0E 238CE894EA5EA7C7D0AD342F87831DBDB01586AF952CA32796A6276B2AFE3269 0A26B0D6473A5FBB2A7FDD47EB4CB0AECFE2EB581146A37B403EDF0E53C2F969 450DD44BB534B0D1F8161CB2B04FBD5FB691FFBFF6AEA8664FD8F776A2C328A7 30E745E7F8D46289C8CB4FCDAF7A42371604E47AA073B7200173E1D0075A7895 747C48506669C5FB8EA2EDAC1BA526BF2A3629C7457CECEC6D8F0296C2107BB4 AB5E3895B2DA8C0B2DD14E756EAE39CC14480AC37EF83226903389C6AE3A4109 C93577F97BC888773C24DD888767B11C9628204AA55DFF463AE17936E6BCDD15 F93C818EB1DF9F2664B1BC06BEEFD54A913448E69BDCBC969B7653B868D54B81 8934B0E26F35BA405917D207E2C02266F89261C2566261D204DF7BE4E4FD30F8 E5914FC6956A02F641A478DCF80C02A2B42BA2A326D2202673C65647475460EC 99999A568C1B4C259E3B7A16B741004FF2901AF4F186D02F44B0C6D3F53A6F5F B4066C137C8687ACDD32F7062884391D6861FF0543A377F06B4F85490F096A1C 6213247A6F0C7DFD5EF4940ACB1562927FC7EC5FFCB07A393CBF6FC21C94BF73 453B75ABAD9FBEDC164EBAA111108CCA28F219C0003C488A54BB9B2BF0858419 538058DEBA6C22CB17B7786C34D3F569B42D7065ED309A5AE6F8D457B9655ABC BF4AB6BA6BA1EB95AFE3CD45B37BCAAD8A715629142D9D1138CD3314CF2E777D BC790A63DD1B724741F23B4D3B39C2D3BED0023BD240C19E129B6CF5741A6ACC D6C0310DF5A560D7CA26AB6AF212131073CDA02C770A275F7DDED8C52D673019 AC4A4D4F036F94FBAA1448A0BE735C2CA1193B0B3795B3B4AB693C5B97EE0DE0 CA05AD896B47D71CE613090AB4B0F5FAFFAC48A7F52EC247ACC0CCB10A9DF052 6D19E742A514CCFD71ED7EC2C7D86118990C93748459293FD21BFBBA03C57C59 18572EAED78F8E0A39A03A7C8C1ACE30AB791FB6C477A4B74F21DBEC1DE8F611 B1C849F0A01F93C4E1D76F5E0AF2537624C2A263EE163734F71701E05D77C1B6 AD220682785BDE886373582908664529C9D081667C7354AB745600E3A610F672 53AF7D1DFBF502594B2B50194406F831251EFE156C063B458BD4F42E7DA02833 23CF0005BE43376DECD1A306F75261D6248A6DEDF5F56AFDC8CD410BE0213C4C BB9304DD363D0D60AB2B2D645A8ADAFAC099847344A7C010CD16E61236DBC4F6 D9EA4FB7563A01E3F799123FAB7977699D1134E49A5E079A69D8E9296A062F30 2F163064A215845D0D65B815FE0082852CABE0481120CFAA3B687B32EECA8F62 CC327D1D7BD071F9945AB8B9539AE8E8C5A717FDA594DEFE8511BBBAAD08D7A2 4072A4E4ECA0F3EA8FAB76883439ACB4727A36DF72DE574418B13CAEB099E9FB 466DED499B8E01942E2D6F72035222BC90E6BBE16ED4FB2DBEFC64CD371A6FE5 97D70A6E6319DAF2AF90064B7A240A6B11493984E63B84DD3D59B4243DE9160F D2657C215AADB68343D6ADA3268E20CD294301ED7C46F137DC50B152A2718BBF 8EBF5880626E9DCA1DFABF1AF6828E8D5AA9150BDAF9701F288F864D8C91E976 9E9BE865B6DEB2796C6C3FFA603A947B9F43790A98058936B3109610B502B2C2 320E75318B535D194D764C0AC7A322B5DD0D4520F96036908CBB808212A7B27E CE14671E77725B8EC619C68EB5657863D3663208D21318F7F9415B93B1E72BB7 83612E137E85645CC4A1327859818781CB1DF455AD4BFC77E49A90F893179F5D ECF976993082E64B63ED0533008AE77515453DA9B07AB2F1F0B1CE816E6E1D4E D0D7A445F75F126538FE849BE9A9CA6BF221DDF53BD7E9A45017D919A46B9287 1D1D98703C6622F41A997BCE4F77456A23418E6BB7C0F9FA957FE88A449DBD23 D713F39CFB2D4A639AB99409DC6DDA631A53CF8F5F617159E03BCBC89C688A22 971129FD158E8AD10D39AD3D2E6A8A469BB27AB8F929B28A3459928FBBD0C33C 4DE82E1E1DBC8DDB977706FC4B5C14087456D9634A65BF0C97D5C49593350CFD 826633734D9B96E850FBD5F3F319ABBA61397724E8D21B14FE56B6367ECEBBE8 2D7D0CCE1C2FBBE5817C3D60CF93CAEDF9886632B27DA37F7C1A0342911D160B E520A5D20B4013983021365E2BA6792766B0541F3262A83C4E863A94FAE921E0 57EB7E291DBE76944B7CF7F0D7363681586B405EEDD879BB508FA7E4203C8854 44027B509D69E1CAF1BAA5C1A239999E190C7B91D315AA81B289FE88E5C43D0B 251FAB17BBF7D49A71F75364C6DCECAC2C22ABD8D215AFD535C9EFD9629F178A A75E11332FF6B05A4B1569306E3F3616EE35D8338F65B6601D3535B2C6EF7EAC C71EF79C4EE2A862A75531E4131866D6836F7569B1659A734F35C78FDA7F3DEF 39397290CF54AA9C263E7AEF736798672CFD722612716938391A1053B727C7B1 BEA9DA04AD5B47C42E7B8A53F98AF379F3353F0FD438D215B517A69DB1CA5F27 B567D55144197A840F0BCF876AF832CF3F620A1E2EB286E45794ACF216062F88 D70270FA4453AE510543FB2E62CAB84A3BD7E2F5881B20B5BFE7FAC1125F075A 84070D639DDF28A73E73478FD27FFDDFC0246B3AAE90143AAA71DEC5E440C660 857432CAB7E1E0DE1F6ECBA47F0E0448E21EA69126434DE576DD22996B9C4671 1B5B07B923B59A56A39F22396B2BE68B14283BC384F7EC76C90DC17BF57AE82E AB5BC5D2F39C916F68167A22824BBDAEF18501224005E4E63D8A357F85CDAC2E 1F7FA28FC65DC65FF10059A658F64A06E98152D580385B2DAA906ADC3840245C 7AAA12C0945F8E14BDD097A4BA5F2BE5F6C1704C256FDE77DE6671FC25B05400 61EB206F67B7C752E406CE88205485A27E626161E3FFEE0153BCA76E4F474E22 57DECDFB9294B874FC26D354787AE7D53389C77AFDF711FA5D7552FE3FCFA9B7 DAC7564C749913F4020389E4C7F4DC4FE13ED85AC8F57D0477D752BE1722B02E E2B54C21DA7A976EAF928B142D2E0A5591DCF14420BABDC027E06CE3CE027336 C20703A85CD2D290AD1DC4D347A05FE5E3BB87889B74B7E0CC251A58B2F999B2 F04EA13EF3C6CE11D6FFDE47712BE6C84428E7D95E26DE1BC6142876868B6929 A8F88012693A34E2740818DE3FA7458EE6160364795A3DF3CE46A3BAEDB5E361 B1BF48DCC0B9B9045F65A4E9D61BDB537FD76AB51C39CC123DDB09534FB63C1E A5F85BA1DF0EC2736D029EBBFA7D935A20B087832EE66475FC2AF6E938363F3F 708949FCCCD04CB56E8A00628106F12D7D6B31D08D8A047C5B9E39F4C8F1A7E9 8A06D46ACF7ABE91EF88322FC5C8346310953F9C61CAAB6B8AF4C489447D6A08 125F9E06EA30D6B07DB76E305626581D69929EA0B06E104674747A436637D015 34A880E798BB653C9AE9E8BD619FFA875FDE8F488CD798DCDB0C63532D0D1A7C C866EB30FAE071B43C02EE5C01198E81CADFF0686839C2D44FED8257A2BE9E88 32A38671E067BE2A49D3BC5C0E7893E12A04355315FB0B46EB033DFB8C101EDD 84749263790C308966FE76F6789F21CBDF83A280C6D6FE8BDB669E2F30795E46 C6EDD896F762C9F3E647BB51E43A7BB4A949F51D5599C25DB872F75D72E9BBA1 616BEA9E026069F0262868FAAA16B44DFD016F80A6DE44A4A69B5AA6AB8C0424 C2932BB816DF4F7F74145AE2A0CCEBB71DDF61B2208823E42D3AEB663E3206F2 340F7369C6645397100FE513FDBA478C5DE5C9A0839B5DD2430725529939B414 89BA91759A62625E40B92E834A9EFB3C68005876010F9CAA8BABEEDB06B6A554 21609C50731E2435361AB8F53BF71B878591F8E0BDECC464736D96271F8872AE ADBE8BE4A26B8145480F7EA4AFBA97EA46F6EFE3A52A20711ACF947EF3F8B580 500DC99468972BB657E57245D4FC01F8665C939D385BEC9126193E1DB54E1078 042F0B0984E812A44726C4B369EE9CE54083A417BC8ABB50A6F2B185E3B8BCBD 53A75936812779305A859E533617E5192DA6C3531189CD57DB856B29807F383B 530DE0218926F7A6FFAA401D3864931FDA344BDA891E32359EC567739B25CEC1 A4C8169F251ADF4594215549F7F225DD1F20F1269CEBFC88CBA7CFF4B7214B3A C111FE9B511A8703810E222406D86F41996815618661ABB2C69F663AB97797B3 81D7BA0172D90246E5B076662ADAA4D2BC8FA1BDA20F13F9CB5A70465667B32F EE2A1FE5DBB8BF41ADA4B7D3970DCE1972508929AB078E35391BD8D8C0FA2FC9 A0C63973A0236E7582D4EF32D3213BEC05DF0ABF760767CC5020B609E8225CAD E64A95D1E7D032833DD90ACCE8B5E40A3D57D6D5F0B36617644E83AD6BB70DF0 DCD7D9410B7F47763F7FE5533806A1DE39BE6241C07B2BEBCE630CF7550B1595 81EE53E4C92D15FE69B8591DDA933337F7F789B3BBDCC5526B10BB959E76225B 2569292E55B90B4465A44624AA45A4327E23650D4C9A941E8D86A2D619CDA196 EEA705015C6EA8330D3C04F293512955F38C4170C12D709C55A2832C58930C13 D9B37FB7D4C8B0FDCAB5BA07FFBFCD805FA6089DC09D2CEBF1DC3C894CFD93C9 9BC945C25591C38596062BCF218F28DE9B4EE244182FDA170A07A7A6CFFFDD8F B08F7AD8857066E582F48C596F3C3B3AF67294D1C45C5E5E6C2B7BF67C8AE472 79835988AAB90BFF38E234EB1F49E67200F77BA40CFE10463DF43FEF5FB13F1A 7CBEDA0B168FB8DF78C793CE54D309AD9212A1EB5883C5FF17CB637390D2DBD6 07F05E04CE60D3211C1A32304D1DF076EFEAEE3ABA07DB78D9C13F58FB5B3DF8 1A92DBEDB9EA5C55E3752855AC1225A2345D3B9E37F4068272AA3E465C74D122 782864FEC675506304AFE1EBF79D0972A652D452FA8F70F9C6BB5F7B521E534B 1EC7CC493DE8D55C2F0007B2204D1E59383FD1380519DC4E699BF7AF8D81DA1F 8B0E9626F17C2F620117230E9BF7C4A58F42F8CC037182D73D7DD884A04E0C38 C9B7B80589278B76C2C858C9735A5816A0CEA72F099E038895151004E1DC8CBC B8D53BDA668D8F985BF4FECA6E8646042DBEAEF1AD6579B60FACA93175F3DA04 40F034036E621E1C7F31A376B3765B285B7E4CA83CB8CC1014658C2004D777E2 2D08F4B307A0E63DBB23B21D2A49101BB7CEACD2B40A686DD7C66F4FBC5B6163 24F3A4F48706C45D54FE0056B5C4E748FF43EE41D34563867E41D8160500122A 2115AB57213917F5B1BEFFDA531DEE363AE61D480B05F7F2F440B851B6CE6265 2FFA0A0FCDACA7C1FB9948A63967B3E4E106A7D2194844E368623FA61D327321 C0949D6495FD37433D8157365435FC316539671407676D347F7841CAF39E315D 00B2F5878D64D0BD920D3E418CBEBE3EF5717D509F0AD20C2B9BF8B481F8D7ED B1ABF3595255DBF1DA8AE4FEB4EF00FCA5E681AC5C80F71ED707CE5B6D0DD8B3 800B87042E1CA1C3FE1AC461FB47E7A8AF5977DEDEBD2B1FAE57780342CAD7B6 205770B6D14E8C4387DF27056D3E3AD60FE0811A1F9D2D7DFB6D1D52CA8F8E6C 3EDF8F78AE862AF1D75546E4C0C624CC57A18FD61968CF742FEA4B45C758CD53 78DA3A32960328BD4079C7280F19AC3FB66D24DA8C9235AE7ECEBA537F09A958 F5FD63C4E3A0C49F44F8CB0A828D2A7DE24949138C7206354D6BE8CDB99BA5D7 C60CB286AE290268214AC0A0C3F775BC92DD5326A100CF4842EDC00AEC236CDC E4F8F8448596B7E59BCB5EFFCB7D8C90837FA5BA690B9FB4D4F24BE0EF5EE864 717394793E045BA233A7B146AFECA0664577795ECACF06E811E1A0147A38A3B9 2941416AFB19B4C82A73921AA970B08D68818AB2F159E527EB7C48B64C43AA2D D5DD0DAD15AD0161667D273BFD59BA13D7AFD709F43DA9E1E5B3B5CCFE7EB38F 08DDDD02CC0CA2A60CEDB070D54AFD8F8EEF0B460E839A2904A8DE16CE73F632 3CBA9A65DDC7DFF06E5FD2B074A6312D01F8D75491B87EDBDAF045FD2093AE79 0C2CDF2CD7677D4639E412812A7E95224C3995631589DCFB5363C82E7D1F66D8 3224A7172E5F0DBB88275EA86428DF0D223AD4079C9D233CCF7C83D3D488EA8E 0D1A5710DB03D00B4729E51803322DB1C649D2C0FD6D3ECDD66DF8EF0FA80B1C C447EBBAFFFE5BCA6262F252CAA42FDB90837425645E57637A4FE5DE5CDF423F 85E41136A2DB6EEF9FF48965C73E07A1FA4C9C0DB88E5FDD963E55528C8986E1 030CD62EF13B3DCD4936080F90EDD2CFBBC294E666E0D78D448CA04113EFF2D9 C467D9E7616C426F93C1AA8C3D31D26B2F14C4B1ED42390E613B4881D137F79C 07A1E8874FB91F8C3F561945FD8903D4BE99F18212E8DB95BE4220E57876DA3F 5D502316602D0CD1B1121FC930F08BCAC9D6E5B9ADF80B3C1CA1215756F11ECC 7D2DA3D97ED094920C38CC4A68D7BFB6F75E8431A3840D5845CA8752F14AAF8D F5A80ACF8E703D88EDCBE251C10238BBAAA923DC490049E76DACCD2FD320C349 7FF97E3E2A9EC49C5EBA951F0EEA06D48727CCEC45DFE86D667725454B700F97 06B1A6521B25A0B5034BB64EFD4C7AD11E83F24BF7ED607789A1AE805881E4FA A5A8610DB42BC7341F81D63CE70A7E37715449BD850A4CA83A0C0EB1A33A29D3 82630F9F62CAA98AF0AEAE3E0F450B925E24A82907A642366EF798CC064FF67A D3BC3D3CF3BD23641A91F2DB09680BBED2586A8869FC8015134901F7F4684B70 73E4D6A466F013F76619BE61A4B9F66BF167EA7FF7DCCFDBDDE96DE78EBBC0C4 A4DAC9DE8D709078F4C134FC1BBF53315977ED4C9C41CC4A02026E4C3443653F 39B23880391A2320170337F211CD83794118E5A014922CFBD8482D88F5622059 3DE77CCE12C636241FAE4F5B91EFEBEFF1EA36C91465BB15A49EE3202451B862 BECD7D819A56F7D7E46F981BD96FF1FC2587943D90F4B0F7B4C6ED4B76D6050B 01C551C265BCFADE1E2D72A0FD4C8AE9559C7F2723769B1E3254E33B7725321A 1E57D149D9A3091EC5714180DD68B89D7BE2AEFEADCA9585069CEF9D5FBC51F6 B526E00E168E72F5CC9A70349DE30D46C50D30536821A4D988488C72AA9A8E87 52DF5FD0ACDBC377A37AB3140D89EE5803A70886696176D2CB7D226443866046 174AF7D525A28D851AE35BC42A2FC7EE4777EFD0E1650F7BCBEF9DF1AB64870B CA1E15C7D67B3FC527B86723054D6C1EF1A869A9FCD5244D0BCE4182BAFF60BA C7DC0ABB04C31C92741C14627D5ABE692403C6624B6CA64544E905B11C6D8FD7 1F28055E4BAA5CB25996FE88F502742F42E11D087F61117F9730652F493329A2 453D9508DE874DD92BE4185F6A7BF99E562EB614DF01385B86F6F271F355FF1E ED5A84D534446E834B5435D483DC20A729E81CEB96EDAEE53D2E431BD905046D 712133BB30F33DAF2FC62BDB3A171BAC8E33297C08360CF255050DDAD58DC96D 280AEE9F9B66D2D8806E2CD32F8A08434FE91B7451AC5948A1DAAFD2D28CCA24 8184E20D0F00EA9F2C663E7C4ECA2F9AF6EEA56F282AF32DBD960D40D4CF055F F33D5C25602C2D6040BDAFBED1926120464F183124F48D34BB54A06A6724DCBD DB2CD715999302DA068272B4E5742DD8D017E604C4114B1DB529A841F633160F CFE80EA9B3B52B940AC0F685DA509ECA4B420A996E8488933EAA721B562450B6 554302451C9AD6A56A84B85EAC18F03535099C8363599D4397454E19C0AB2A34 9EE7A3C94165E396B9EFB97067315FC4762F2BB4EFD7FC635FFF0593528D9079 69A5556D34927059A46525E6445A881CFF4B5B790ECF680068973A47EB6849A0 52B9F18FB039050940EA4F9B51A3B9A099F33147569AE9254322ED47A6C7612C 46EA207F0A0FCB785E1DAEB571BB99C97D296CA1DE3838CAAD06A98FF8146056 ED014E14180D505B17AFAE35F58696C16D8C46F13290F1600075A363489C9D63 6CB4DB7FDCCF49E15B6825CBC4E04A2D6BA136289D198E2C851D794A9A3E8E45 7790862DDC9EC0D12DF50176A194F39C7C13C88150D2DD1208F386BBA3B0FC1A 77F94819F12D78D5C59139A1DE0F2DFB3A7FFEC4FC38067455003968A57F73B3 6C15268401F75B5C843D46EC956AA677A8DB075B61E547DEC35A63124769324D BD64C1B1D38777BE93F60BF4D92C85CB8C9ED2C8A77EEE0A4EBFF3A44F237305 EC57E50E3120CFB0DF8D573A96A740E1260A26C3174AD869CF2EEB226ECD812C 480D45502C3A4BE2B4EF9A8EAC7DB836F0C843971067F690B653D9C722655066 D113AAFB04FBDC5BCEE0FF67A38C1808943882E4CE60A6969939BEFE16C09B59 CE50B529C3BE6377368C3E827E9441D96BB174BAAC8B518671E3A9B95D4F1722 A26F4FFF48348CEDACCC4FD98F71147D0B760B320705C1C13C9815E2CE82C5F9 D6CF04C81F1BCB9F12A188F9828498C220C6DF1738CA9F236B6D6A01D747BB6D F322F38D0D60A2E07E0BF1E259214C3F3EF0A72074C261ED09B05DB3915D0835 B2BB52B6ECCB04E712B6BFE1A0DA7437DDD8C4C05CA45B1D5CA17EA99BCE6428 7E635AAB8F2BA639F28C52CD0800BC348990D0E3832B0303A272D6C99D8A6044 C5093A422D646898EF85ADB647544B2CE33DB5DC66717506CC90ACB01CF58830 D50F4CF7BACAFA2311819C3F50A9F91249C624EEE17EF5752C6AF77D6B852703 81F95A42593045A69334D6DC1280384CDFA0D8088D97332FDB06A02E5DE9F962 1B41C68A0139BC5F03FF841D8E93FAD2DC08E645F476034919C218693989244F DBAFFDB4FC0436DA9D43C8A2D55CF8DDB0E7ACDF9D564BCBE38073E74D65C8AB 0E89D87275D680F0FBC2389D1AABA196474E26BB4BA01527A72E554C29EDD3FE 7B17BEF3AB22F2C7C0EFA69C708C36CDDA24C38A845EBA9E9A3E6052B54C188D 2743EF1487B6DF0E6E622A697BBE91D5627DB3F32A57C0AC98368FE53BD09844 A326B096D01FA3547FAF440D44E079EC0EFC2A482B05052B2D57DA79B8B811E6 DD9D0E46E838F1402F32EC5FB127DF771049F7B79BCF62C14E3FB4D6D7BBDB80 975272E6DEE0109857F51D57E304B74DE4AE99ECFCD0A40E57C5E51283D8F270 291665EE714A6596DBBB5285FDDC4B6328BA6745998EAEF40EE717C63AEF8A59 E87D8E3AC8161B6638FB5D0963F8795587949FFD6F58C5FD18741BA3483B7FD3 FC31F188B096FEC566BA23ABC2B34B79DC293909C9E8393AC9A26E6538672756 3FE2EEF3E04ABA6D344F2DF359AE718C7D0EB5CDA5AB3D09C62C990BD5BD7E73 3F1F8AF93ED0FF3222D7411CB9AD3C3AE9EDA04DD1AFD21A4653AE6A890E6C07 1607F1668E4B62730DA65DF88C3C63FD7816C32F26D21A87522C2097BB925D92 CBB694A7F77E91F3FAB14D0A493384DF902DE5D5F4FEAB5F5BDF567878AC8B4F 98FBFE8FD16D07A58E2211B87983D40D5CE6349A207FF195B7F09B914CB6D688 B103A5206380A90713D3C872EF8C026D2E302BEA473BAB705DE58D802A47C249 9C40EE6F20398E591A3878D4A9DE9F6EC097521DDB694503AA8FE3BBCF24A5FB 3DD6CCF1247B5D9724508C63A3E107DE56F0802CB083399BFC3A9DA62E7575E2 58AA589E85ABFF222717335997260A7F56965DE4DE551885BA8A1DAA5C97AC34 ECDB36FEBE3D8428A4681871FEF7CBF2B5DCFE747550D296B419140C39EB3AD9 D65B6146705DC3FEF0131533283A100D9DBCAEDB8A10CAE4C431136FD94089D7 64402322603B7049D4D10F97FD54D03D81B7B134293004BFB852D50DE5C6C5A8 29F3FC4855C34AE134EF939755B88270B114106573415FB185E395F6FB0A4698 B105964A9F374AF011972D67BBE0B3CDBBD0D9918A0E0D2653726C630FC8A63D 7C5BE82A965EDC1E0A57652688375FA60463EDEF222D4A6D726B768D8EA06584 BE7D23F6FE42CF8541F4BCAE1B01C73D6500207B211720DF98B72D016CC513FF 9109B59C4DBE5108CAE19687C1682A36F39AA8AD09C5AB7D69A13EB0BF2F50A4 0766AC191B105EE28BF0A87862C377E47EDAA69F99B7793F5F76114940848E50 CE05005B4E2C91103DB7BA7BCE79755E4324C0D0305EE203294CC82451EF3780 106156CC6C6BD07296CA7B927B869F8A9755CF9173F22D30EBD3217A98616E3C 8525AC8ACDB07F9311558AB53805673411836886A919BBB916416DC1C2061CF7 448ADED96B2933FD25C207BD374AB495DF564F25554274A3D2129CF7E6562F56 E3D7234B8660A536DF464418BD08E3DB7CC2A2A8B80A0CEA897505ED6367A460 3B6C0CE70E7C5F482C6B3FCFDD8C8266E023C421481CDBD041469219AFAFF611 97F1A2D6B13A90A76AF1FB2520D973DB1CA53BBB11A81115605A9ECEB0AA60CB 972E5FC2C431F1A5EB305D09C8B4C6D5CE1E397CE7FE9DA819F132192B2B91D1 2832F636D75DFC3A82143BDEE17461D536B13D21CDDC295EB617AFD850D59356 7172AD007B843AA74DB797099AB440C40BE561612B4506A8E26D1C4C5A8DD4D6 2B8DA07722FA903A6ADD179E0214071F1AA8A21022283E7380AF0B2656DAF629 50E8EB7C686EDCBAB6E56C5198041DEB47AE8BCDB4C30D318D2CF076491894E9 C9BBA0C6D9DC4B5962350AEF5B9DC1EFFB0C9B8F562660D677F376B2279089D0 294FD57B5ED589C1D28C6E9F02C821134A221334E1B4AFCD618FD86BAEBB31CC 28FF741E785DA99568AC909B091BDDEA56D6E3B75F4307E3A989C1BE6C92546C F518EE6BFA37355BF3A752C26A014FFD48B98F7C1B11B625A43E677DD04B16B5 B1B5F666AA67EBD602583D810578ADF8FBCE669C3913DDFECB2F64745EFDF7DA 13E21B44417230EA477D2E13452EE0E048FFBC3B3F3E32687948361AE63B2F3A C2393837699C356E580C995217D2BCADFDCCE3A6276B86DDA6DF06884B153369 327D3461E0493B6CDAC5102E62040437522DBA5DB6B6A4B30BE8AF1E9AD4DA47 AA79B1AC528F44184C40B9FC2E402F602FA679EFBF9F374BEE06E6332B112399 D18B8822C21B3B1DA3A84B31023D39508C1F0C97CFB05298E67DDF6EE891E261 67C5A17051C6DAEC3924E7E9FC00C98225CCDF01D885724122CBFD1354A59CC2 35EF7E987F633164341E2074B26689C6797F81618EC137BA7AE502904A211920 D7FA213A6F0BE82D49F7237690413AD381F5D2A3BB67D027C48455F48E717DCB E1D0ED373D62E180BF0AE16B91605EBB768E97242CA8DB982AC0C2DCFD4B5EE8 95BDC8910A12F20439946D3CA70A5F67A62B82BEC253FF1C68B1DB9BE887923C 1B4F803DEDBC42CB12082ED81E92F657D30E8652E76C6D93B1C7196BB77C0DBD C2DCB9E8734272157E4BD32B57FAD22278DF0B98DA7ACCE25626F453E8A7387E F75FB71ABECBCE09E6D35C7CDCD550EC6907A8832D6831B8F16C6FF757E3733A 3D028A0456B64C686A35EFFED2BEC9A9A1D93E98745DD6036FD954AAC48ECCC5 470FE468CC4AEEEC6D6E650378E5561990EF37879B517DA5D550B5DABF216D27 26941BDBE7286F95F3DB4673BEA513C8AE8FAABD78ACF6AB6918308627EE223A BFCD0B05C18134AB378AA07512D71E7AF987C925AD05686B6891EA8573FD13E2 790918687BD4DA3C12A9E0F33FCB6AA2BE3E3397B970E80338E5338F0F603B86 A42FA5A6285CDEF0739EBEB1B9133E86BAEE66E1AC48F83BECD4FA2CA3F1D5EE 8EA02DA4925191191A953FE68C13398E2D80796714C07FE16CAE171AC6BB0870 0AA402B06C310DC99F0A07669C57B5292530FB8DF265DB909A86B8D076468B4A B24AA398EE42F29BB41E7A640883F9D6021F4CC7E949670DACA3233FFCBD64F6 AAE2DFBB7B1E69F24A6C0A8D86081B2B09270D561B20EAD4D6B1D40B7F333A0A F1B2E915DA6709BA159E81455907510390AE7C870A4F38BC8DD19149558B9687 37B0777DC5D7964E3B50F4CEF6EF43F38BE9F01A68B60FBAC4BEE09E197C2554 C413B003ED8D8A095BEDCB291ACC0FB3AEC024D779BA9D69FD3D0F5D105F95E0 EA00C1483DC52F2A37BDD09F1F416BF99C1299784AA46D36515387FBD61C1C27 A2B6E55C6B086E87B32921BD7441F10E49DD10D7D82E81AED5FE4C5AC09F617B 9BEED75211D3FED854D9414ADC9B6AA0529863DD90FD48A3F82DF1F7C634D83A 261AB18F257A389AE958DC7315251E670296B0F415AB99D1FFB56AC1E7E61BBE 0DD2A5C6DCB7E270957BAC7584BFA9A6E21CFB293F0F51C58199D2EB431037D2 C44DB61F55B46B3F034CE7127628B7A3549AA2CA1FF18DD7AECFC4EE7B3AEC3D D0A1EBF2F7E045BCF177FFEC6A32B8BD47EDF924EDE5FAE04FFAE9904F4229AA DF5B82485C624F0B7319B147CAB299A6FC7EE302DB985DACE5B13F8FA8E73504 96E522B8D32869418AFE99B2EE70F52CCFE638419454432B9688E631272806CA FDC72B2F2971931F3D32AEE7B8979EF969E122CFB6D7AE0C314C3CF64859DADA 99AF547DF83E7B74AC852752D25B6EE4A29B6CBA28CB35FDCE44C0CF816E1420 9456518D9DC7A31DDA813F7ECE178F6C80A53010BF2272F50E93F5EC18E91D6A BA5DD888E1E9FBAB51276F78875DC0E6EBF759FD1C92A7D9E86D57B9632E5D3B 823FCB477610DEBF376FF0DAAF01A47E0CCBC52F0052C93C35EDAC9BD26C0CC6 5D62756F5476CD1BD7581567F55A6F04352AFB226DC7087F9D5B254E454126DA 1C12C7ECD608698A0B2E3595CAF63B8BB3C1DC9AC379FDB7F99F255C8AC29A46 AA322BD508021592969A16DCBA6959C5B92D0510AC400844405C810D6E34D41F DC8867E6A9 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.1: CMSY10 1.0 %%CreationDate: 1991 Aug 15 07:20:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-29 -960 1116 775}readonly def /UniqueID 5000820 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A 27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF 5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A 71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C 515DB70A8D4F6146FE068DC1E5DE8BC57030ACE57A0A31C99BEDB251A0ECAD78 253AB32E9AD71F7E106560BA511DA17DA9B50B0585742DD7C5FC3BA0B94348CC 1C27F194D9FD5DD303309D4E1262DC924ECA34D9AD0A1C03CA53FFC8036F7E2E 2CD4BCCAB4E0DA5190B82FBA20E8B270A70EF52A45594AC7694410620D3C1D22 551745BE1260BD92FB2E2E4F0EE01B20474AEBF637443CA05A7E0B10B74B26A2 07564055ECBCD0D0FE74432C4546088809C3A727FFE5B1FD4D381384C8252E6F 857F3C258F914EC00E2F7CFC2358216B59727FF5FBA1E338775300DB9B419413 84D5E681B4CD663AC89F811CF0779DEDFE5C19D6B042A79F515421AFEB448EDB 07360EFFFE6FEEA90CC2F93CBEE3D2D93F9AF8F8669A669CA69B24523F967AFC 106C531307EDAF69C87DA583DBD6B8854984844D9108A2A80A8F5E7F7055FE31 A245BDDC780C7557EA0ADB89681C4145BDECE9762A974B866A64AC43A0985572 674A8B6143E9FE00CDA6D5BC4426AC59E7A0123FE2CE14DE1CEE1D36726FAFFC 690ADA80BF135CE37E7157CEBD9AD2B0E9558B312273E48D5E2A64D5B5061351 2BDC6B09DEB910C5B564B9EE6F5682B1E4CB138FEE1A84C4956414FAD8E0C05C B3CC1E42393FC406A5AADD0F6BD85F5E889FDB16CBEFF72FB0E5CA49A6074620 949BCD6C9EBA885EE3CE0E86B82F0BFD3C962348B0715A50AE235D12A43463CC 1A185A53169F2A1A2AD054D90D0C5E0913B73D81DDC0DAB58C6FB71DADB13814 78EA1CFE83B89E0F8F74C4F7611884E07C520B0A5CBBCDF9A9A9955EB41A92D3 74DEFE8BB8CC92ECD903C8A9546088A8063806495E9F43F6D270883425DC19DA C841786F505A6723A6D3917C2FD41B92508E9F6934803AFC 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR10 %!PS-AdobeFont-1.1: CMR10 1.00B %%CreationDate: 1992 Feb 19 19:54:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-251 -250 1009 969}readonly def /UniqueID 5000793 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C 295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C 4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF 2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E 0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B 43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC 96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5 20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4 0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20 3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122 A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379 5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA1566B96E221864A 45A24ADAEC63F61C9FD18376D3984449A1F998C318A8FE36D0D5020E18A49625 0F3BB603BA1F3E66FF412F6A32433FF8BD2968D79CE4273AD0E0CDDA5153C2BF F8A46A2244F9394A49D339F763F5A7411A3C29336B21CCB01723705AF589B078 3763035411FE36AB5D744E81379106890688CB5BC41184548B7FEBA08DE7288E E6570FEA20C51FACE8E8F824BB61A4A038AB817C47B87391611B77928B2565A9 3B27A573C05D36ED01D8F27CB2C793370FA9B90021B5696280A55F2CB6117B64 293EAE0EA5A243F56FD007773CA35DF71B3D28643C25210CCE25F37A5095D6E5 9CAFD99DD1DB0D7EAD454C13464DF6FF5DD42339797AE5AE467084550FC00139 6EE818C6365007B2FD6E26285B832CFE6EA7E99665A224C9813C036CED262639 3FB39C1F05FF8F31D2DEF37BB9B883334F51EA1243332FE1E3FC91864C8AEA79 16A726F924AFD84F2F4215FB795FC41DCFFC835C90B9E31D291E47AA4BB8C05C 620F69DF31E91A0FBA8E217CDBFAD7C4D480EBC1EB396029CDE615C227A367AD 72834BA95539D39A38EA0CA3CF7F1123F70792CF315BAAA38BBCB6DFA80B4493 5025F33C3696DAD6A0ADF584C71BCB1D29E523EA4B81FFCE15F3204022BBBEA0 A9483EE8EAC07D581162672A0D66199174821ABD097561A263C0C0F24066FBE6 0951F31FBBF2675141F3FB4457CC2A94A40191EA0AB2A606CF540BBB8887B6DE 715EDB1041EBB9D05D0F4A4672F534397B9529EF8743BE88BBA10C81E0A46259 2F2AA7B638E20C9C8A3A827977AB58ABF7525BE15DB66CE8E9B81457552073B5 85DF3FA70B5231C447C5724E14730B90FA35ED1B5723036F1658CA8E19EF5A6D D333B78E91E4D7032EFBFD40A5A2269B0DFD9F7C3438DB58F94B507EB93032F9 99E5F15D9F5D8CB031BBBFBCA8A15A617ACEDDE70DD9C2D9EE21179FB17AD913 B4BF577A9046994689D1BC6A6985FF5F5A67D699C2FD288FD9E5BCAD5453EEC5 68287BD7B8872726C28CD288B4DED2246B843577173450B6E5760852CF2E1727 01FDB0FFFBE12CA13ACF6434AEF4B59EFF3E0DB1E87D35075B1D55AC12633167 5A83A39056C077EAE6F2F7D1DDED300BA43830B8034F0A6AEC562D3023270601 6C594D0359DF6F230F7B80B54EBAE4880AF338956B813E3B8DB8BC778BE0F612 7D84939C2878B43EAA45BF10E257F22C28C2C148FF48843D2B52626148E3CAA7 4527B9F246C17BDE21C6E7EAB4906BB6D9E84906CD1832C4BD9E405AFFE33AA2 AE086C25EA26BC23D68986639366B99C87359915EBB76D7162AA667ADE4954D0 B1E18027FAC2468CB2FEA2568E23DBC201E9B6A1151FBF21129A088D89E3E728 28B2785C1A8B2637F368A93EAB459F80506435BE23A85396969E2AC4E0D6E4B0 8B12EACD150049EF8942C108B96843159D4408424394B33603F565D1622FCB78 06CAA5D4130D0B9DF0314D82B7FB44E58480B446366867E27F166EE0568EA573 B24D28B6E4A58A31B9C06D30234EF33C5A604BE4D81F3128FCC4245851F7A763 644B4A5871E51ED655070C13A354E60822BB950BD9F654FB01A0993A1E1556A1 91C609E739FE39C81A635891E510198871240E3CC5CC18BED26C29F568987B49 A4CD404E93E618514DD0147209BCCDB049FC01118187FC1253237BEE477CD456 BB4242B9BCDDF960E3E97EA8688DE7C4CEBA98F4EE1D271BFEBB010F0ABEEA0D 588C36B289A58242434C700B632939C6EEBAF09EF5FFF38A6E120EDFE5F3FD01 CE9AA029B52B5E8197C8BFD8C5B1A3CA630E97BFC20E7E87D02EA88538465237 D9E1F1FCB527882FD49B26664DDD20E6199337237E17F9C1C2F2D856F0E0E7C6 057C04C63149F942B038CEE72A1AC949F7926F70783A63A97151A5DAFBD12BA8 01C341DB012C6833EE90794110E74FE3C78C71FF098EB9305C19E62C5F137E73 742AA050D99863D0B3C03EBF3773E92DD2463043848EDCE31471E4DB66413050 BDBBF321EF218200799F4B0233C98D13AC67A1FDC37C2CD70BC2EF662A45E437 C3BFD3FB721357F751A5E51BA4705C4FE0A1070D0AFBE15F136B9C6F885BDA81 206D3298613F569BABBCC575E51E99D88357FD094771AC163FC00ADCFBC61F2B 0E082341904B7E45AAE375DE4A07A769243ED14D6E29B45EBE2541873127B8E1 EF2FDE7722E24FBC78390A7513540AA2DD64B9427EE2A8C8FB4A8C434142C54C 48680A8AB7E6154A04DE6740EE1FE69DAA42A8FBF3930D68A7DF94EA305D8989 BFD15E2D391450273BF05913783DE14E2445E007775606C8D077C128A2DA90F2 CA498FFCE940E11FB316AFB704679B256D4795BC96CE4A5063C7DF7E82AA8939 76F9D8E12436404328F4D580250050B8D20E557C4BA2BACAFB41DE8AFF25FBEB 29C30EDDBB5DC2B045578C4931E62BB4D7D84B82A1D6EA1E97D430F981DB7F3F 8F5F5227538D5955940E67E12CD9A76A25A6F1BBB5D4EA46B86642CA11B63B6C 7AC1DA05969C5F365821A3BDA8B0B02B038ED2668711FA88C578627C6713AD5B A68A04195DAE450DEB30CAF9BE1FE62F755A6A6C36DAE2554881A6159D56FCCE E2E9D81C790FCEAB6375748EC4316BF0FB6E376D57050C2FBD5EA3115054B519 1F947BE3619484D5D782D399AFB1334BE3BDC23696A9BC5717709FEB4D782053 621014F315A3E03339D706035E0242A6987003388D9A57F9DF94904B33A12910 D425375961078C1F13F3BCE805F7D88C03735CD3CCCC54A5F0E9E5A77F5B27F5 8F5F961719CB17F2D1DA8DA939B6FEEBBEA177111B34829503CBC90C25F417EF 4B6F6480ABD223E59E8C41EF8EF3615342C6749825EBE8947A23CF9FB88AF78F CDE741F967C393E0A2C626866A0B3C9FCD8EA15B349736BB7A316D9BE712C432 30FA78DE503600F60C1B12011BE36C5FD12F627E1E9A163AA68CBBA9BCD8F966 D0C4874EC699EA0185C6C1D43EE3D7BABA42E77262A7F5443F7BB00B7026B655 103BDA1E20EC7702B4E7C2B3DA5B52865D01F13212DD34E6D80CE1C36B766820 9DB05000A9456AA6AB9BC81C02D621A9363EA418DD825B6A238A21D351E5B198 B27872A815C2E18C0223575DE1FF0940D0B5FD6B994D194BBC1C5EC043DA9AFF 78569762DC1ED81BC9F1269537AC98C1EFB584C371256C38C353EF8967D5620B 7FA2852156F61463DF681A6C36E794F62B873C00DDE957067CEC66E70F7207B3 E297907009F3098B19EAF7B03B41FEA6C3FA14731D6CFF24F02FA11E98E937A4 D0351F90095281CDB877B3AE0715B00FC36A06889E723B93DCD0A677427E5D3B 3ED3F187FDCDC6AF7EA7955295860F1C4C3EA8208A722207C9E505B5C123A7FB D36F9B647F9E3F7A3D0BF33D0B9E03F364B1E6E63A0CBE8FF805CA9E05141B22 56A74CEAD2D46B2A69CB6EFB028FEA31CA0905896332564F73994F6355A7B9CD 512B17C795A68D1B19D5B79FC102DB90A18E448619AD8637FCAA07590AF83E62 1814A01F79C7FDD717A2B7874C3DF6813C533213DB2D02F7199A45F0CC8BD78A 761DF062CA825059B79D4338FD88A6837E41DA6202BC5D2CF2DFD4F21D13A07A 76D982C52780134661351B13D89D874BE0B72FA99128B3844FD9D1420598B01E D6FBED4B25911BA6C61B31898AFA164F013D2D2FEA6A13D1E3A54DA21216DC23 F1BB087BFA2F1360F655FE78000C3F1C14ECD9AA391888A74ABAC90B30806E2C 8A16FD3D300500DE7C191BB6840F1BB91C1F555CDB6DB9888B9067F6DC4A8DB6 608155F6EE250F59BFAF87C186A26594E93551F27F93988230B7313C978475B6 C1F4829EA751D3E119941B88D27EC6D788AD22D976F35875D68571365C11D444 2AFAB985F6A2F03221E6482D2F2C2185ECD4F60ACA193ABCC4389E52553CAD97 1203BB8F7F36386F792AE6354428A55F9E6CB73ECE637F64D6889D13A149A650 8184654755DCB98342EECB7D226443903D271851105368F07609B061C87ECC2A 4B32CBD046664E95AC1D2F1F02641FF94D768423444249855D018C4360EA6C8E 4C5A8DB9BB4BE218F13A3A697F83A4790819D151557519C9FFBC0248C95080D0 E0C19A656A29F5F798FD14D071C52215284C762E2A36A50D7624234A663F6F7A 5D9A154B733BDA5682F2756F5AE334EF89AAD03F342911C2AA6EA33F021F342E 25311F88EA750106E6FED7345A31AC7B903B2F05E82974C2D4A9D0719B031711 0C67B9C9D6CC95B52247DD308B55F3D2B60AD3A2D1F391FAEE8F2B35C39E5FE2 B26276083156F2F0B344150584DC0CCFD3306D6DD3BE862929972AA73F82E860 90A497D6F890DD660DFD24E92D7F4D43A9A07C0CAAC09BE32957AFCD5D0896F2 235DC5AEDB304CA3169948F0C89F9AB697BCD2366CB6B44D594F03FD40AB78C1 009EBD967474D3D11E280BE9D6BE116146C2068CD2911B37B184C1E93CBF749A 2C2B47E992E0F1DB464575BE38F0E277CB8E3E4C5C69D5A29C74A5E73AE3B487 0F17F520C91E10B711D2DE3CA947E23AB7BB95B02D10C19B6E875A5BDC27B3B6 DBB172D43648750817B79F2A11FD4D8DF01DAF7BC3F05D1ED58F76C7AB29CBDF 864583ECC657A49671560ABE1A1DB5E5DE996EE6B19E78F4576BA609D8899EE7 BDF02939E72FC1B43D4E80FE86CED371477C74ADCBF5D119B6E453DE8059977E 456C9077D6802B8F1C1CD02D5877A734F2E4523DCE30A099E67BA7A9550BC95C FE5BCC4AAED81B9663EA67C2046344A4CB978FCC68E1E2EB2165786E542C0E01 63BFB5522820307A360321A5AA9ACE0F55DFD2C42239F98A9C932B592C828738 CD45FA261BFF50A1B5D5146F7EDA2443EC83EDF22C13B5C6E82C7E49B99FEE26 579F211D24B6B6B47B42581B0E768521EEE9E8EE2F51659FC23DD7149B31574F 6E76F78A962E2CE75CAD2A8E888802BADE8E4F1C77738AE90340978BA5FE4888 96085B87A0A41ED7C0F251C66389CF4EC1CAC0F0FACA49FBB46F543F0CD83329 3C94413FDC2FD5C3D0B54DB3FF1ACF1F782134C190851E534B2EB0E09C111CAC F52F4F47F34480E996EEDBAFDC35B6CEF8039A4375EE1A0D4DB314B2BE454B9D A744D855B784B2474DEC0576D9148CFCCA7440BA269FE9C33216EA5FE23F6989 5722B07E2DC66D41EAE52B0CCA560A545A1C6CC19D134BFE2490E987B22FD407 5A6EF98A3599B1E7F7CC74DB348CDCB1EA8EC2282D5EF2DCF75CDD9DB54DD878 EE33990B856FB672ED0DA997E7806B0E9D50CD282A56A9B11224E7443C648DC9 B734C486BC644AE731B25742E78EB843056CEC8A4B8C3D3C4DB565730548B1D2 C95C4BFA8367A0BAE31D6F8FDAFAA5C6E18C6D24FA67179528F9A6969A4BF4FF 3D49EF4E0C1262BB6B6DCBFA695D5B120FE824002CDA22449E345603F0C5FD8E 7E605FBB7DF16D0E5A5EC1BA3A579A8F0A19502B3905E3D64899AD395C6B74F7 E4B2950EAF3DB235C5C6083ECF063F88A16494AD79B7AAE0994B36D933E6AAEF EC2C7B3B449E05D9703657ADD0C27895381E239B98F386B3CA50724B0DA0F1EA C4F60082E5F32A2DD21C0371D16CADB5EA490918A6D7C9F0AB5B48C1BF3779C8 95F8B53AAF084DFE0D25EC8A340A3BE33E61BC4009C1DD292D6F0D9BA4B6FFC8 33B3C0D8C05ED01AB4EF9711F5016910955A5B2615AB832300C9189C1A788A3F E047C2ECA711C3645ABE89F019806449B64900AE39E188FE39F5B7BFE41C4871 93C893DC850B2534FF4A5C28F52980DD9696D295FFE84EEE24AFA4FD9246FB21 04C48A6FE51AE604FF037762535A39D38196165C107DEA62E615E68F75458B71 EE8781A2BB9CD66C0E5FCDC1C20314FF46208074CF90B874C7B1B7AB4D99D919 077C412122D4DBB6406BE7FE4C6EFC5A14877E064E9E1966ED944863971257BE 839EE891C57212B6B83392BE03E84AB9B79A88079FD669EC2D55E326AFE9ED44 AF75390F8D0C26AA3F41ABAD9DDFC6AEBF677D641A62E0C081BE98CA3EBA3DBA 0214BE42B79083288F7CBBE23523089A55977F816B4D59135F1150E24B6A38EA 9C9036E01C4B13AEA25509C3E5DB73A6174A5BDF722D364E627ED1BAF59F9F20 D63792D948F5AD10F8A84267D70D5D46F3EB9BEEEDD220537E592093A255DFA1 23AF8A38372D561A629508F55ACC92C4377932D9B3DD90DE20A2A9CF7C31433C 381E9096B6D2A6C1AE6BC30DDC898F42ABCF9C50FC5A9FB894A7E8C27D044599 EC6E0DF5609F6DD791A91801DA9234D6C4E89500193423CE61FD356865FD5C11 AD2DC25AD20EF97826EBF0404E099C50B52D1581329A69E7F6D7EDCB46731DCA 4182F661FBE9CB16ABE6E06F99BE3C8B6A674E8E209DFEFEF76311699B6AACBD 2472A71A34922844C86DE4B21ED3D27CD9B76EA0A8E4E710CDBCF4DE92600E13 3675D74507A26E1108AF7433140F38938380BC92EDCDA858B1B26B0613E3532B 73265A62261BC3BD2E3703B591F26D8D917CE164731B07D5FF3F80A2AEA46B6F D8EAAF95A5CFFC4CE166AE5C1851E6C83FBC96A69ED12B53705F4136007F1BF2 7FB7C569AADC61ED66768E8FA102010D5170A579DE6CC1F8856A130B83E955B7 5B24873A275D7132F5A027BFF203987FEAE95159EDECA67E74A11AD08456F80B C75012433367D8EC0BCD2D6E6A55A2C2FC8433F7F016E6A30B12E7D7A144D3F9 B84ED53497AB1E72584318EDEEBAE859B8B6F56956E81A67E21B65A8E0BDE87A 02870DF1FE5DA91801D2721F08D8616D8EDAA2CCC37200303CFF399106B98E53 2442CBA2B47AD9733AC92BDBFD26E563B79322056BE51F0193C077A834312E04 F8E3056EFBDCC3B534853D47F7E9CE081CB201A7B6E85108DD61B6ED5C89EC31 5C39CC6A6E32473CD51139805024E666A284D08CFFBE1EA4C92200292A7782D4 6E2CD44F7A2F4779A7BA886EA5592CED2411A5607A5D4B0F4C59FA3CF7904932 16D0C526122A2B656DA65686ADB4D543B1503231A5F2F1ADB8DC7FD07F68D691 4F2FFE2E0FE7755BC48FAE184C7A771CF6352760EDF432B61A4127220494DFCD B9A11A70707C05D09B702E95DB214A407D9C7ABCEAC674680E7B70BA53F9F604 F3CF1915B337944C3C84EFF575A90DE3EFF94D48AF9B7921777DCAE1E835525E 2841F49F3B0E8EB907F6A79F2B6EC932CF49D24D5963DC53ED2A4BDD6D36C78D C1CBD4C707A0A4E9F0C6E3B1DBEF0EF49112FFFDDC27FCDD17BAA144BB2F6501 514AB133F4B1D9CA7CCC191BD2EEC694A377EBE2FFB3297980EEAA39196BC74E BF80D61D08832333C69FD05433E85585C9317FDE4D23C4D1294BEC7953C67595 5A54E009A92CA639170D9CCB983B9F214B327CE36389BC82CC65594865E90718 2D6F892942F3B533E24902D7A06CB1A036807C70D25DC1991ED08A690F0D8DCD 2BA05E702DA8F5A3476B9242D0F9802A09473A13BB596A4C6B129BC3EDC712FB 67A59F91B602E449EAB92804A940CAF6C823C772746673DF3ED20CF07436C8D4 4A6A07625BEE8402F9DB5F56A50222EC7AD8B09AEDE3277895BF51E13F48F716 01613A6866F0DEAC1FD9609BF83874BF14B6711E28698C175E3F9FCE53169407 1176942EB50C628F16C2F14ED372B87F6EA6EA8577F4013984ECBE5EAC7DD991 F1D1EF5B9B52C4B147F2A3AE7FEFB1E44F042FA93603294435D25218EE8E8A6A AAE373E05DF622C2D5A335B1C32AB661C610C47F0252D2C744E8B286B62DD9DA 777870CFADDA4DDC81478C85A70AF9AD3809B1ED8F353740E5897E4B2FA7CC3A 03994EA2FAB227777C8A82EAF9797C2C19F84A9CB2CF159380AA50E10AA4A926 31FF4E0FDA409D420F8663868502187B90E1F4F86A324B262183A01788CB2533 E3B062FB12228B7EDBD9AFDE7CCA4B5BB7089AD585561B859E6BCFF2566DB02B C78B50652385D80CCBFF1938538EDABB9DDC3EAE8DF804197E8D57D7D0C63630 47AB2D443592E64899413802F0E9FA56DBD37C8B965A1F454C311188FADDF812 6122EB1AD9E5094E200B64F30D1991CCE489BB0F640E35655195BC7A2213268E E2BDD00BBEC1C54E29F15627E5B7FB00349E20385848AD80D75DEBDA69D2FD19 CC3B57782E0064B6C3B90B5CCDD22D7D6801E10DDBDC1B67CE1DD9A834B79C57 0C564CB93246181F3F9C07DAAA51DF39E447A86F462D16AAC331CF2E6640A9A3 B05FDAD77C67CA5804B826DE9F4E1A7E9AD1D7AB3B34B86678A1014295F2337B DE6417CFEB854016527705C8ED515BF6C42B37C5A3860356B5B89883F432C53F 00ED08CCEFC2A0778FEED4DF81437CE53C2A47703E02E4097B501B5D4CD87F66 329465F3557C37F4460EA941929CEFCCD37E78EC1569AFB68BC5D5385DBBCE71 65A4FF353154FE5A1932EF222763D3A808679A11514A2A4EB0E994C99DEE54A7 1A8BCD8E992CA284297B945AF29DE09706FBE7296B2D6088B6BDA86525E51E59 5D93E9572C5DE717D6775EBA4E9C6AE8251F4E4DAD2C18DEA7C29E721DE1114E 4332A993ED9C71B671019D4E39121B022784D71F715B89840D82AF4C6930E2AB DB4C321C3D6FA926378D78B592A29F44B25071AE3FB08C14EF40E98A3DE54DB0 367A4B8AD8496FF5E4C0012EAE8971CFD3C35A1DC09643F4C102FBA20EC51919 917182504B718900A7CD26F40805E50AD539CAFBE310DA1DEF42959554D1453F 1DF17F536A0C08916D48431BC0C0AFCA8FAA63B1F28D4B01C4CEC43F5453C2FD 0A846B2DC7353B00961E6E67FFBA2F3D1C7A8192C6E148F06E0650983C6DA0E2 1A5683325DD860F30DD9E09CC2805A4E7E43F71DC75D24E93C5D6AA22EBEDD5B 5ACD98A0540B53E13B2B6E0836B2B67D54151426AD497954A7F58B5C36CE9996 55A323E1F57082D05CE56E9342FA83B8C364B026F2912A2A4E8AF761922D7550 91C2515FF70DB909793C52075D3B65C195263B9558F3AEB0631B844FFFEF329A 2EA1EAF348345B39E9DC727E93B1B552EC0A8C85D5D814F909BB07EF00CE5863 B0597D5A77E5025BBC740758FCCE221BEDA4383F692F3DA17C3555B480E79B88 CD66C0825E1EAFF645904B83102989E8BE650CBDE2B5E74B2D46FD2AB458983A 79A934B2901C8C48CBAB1FC89DEE3690502294D5E6858E1041B38581BD85E49C 13A734166366328C8E8C465111FD5FF5EFC58DA2FE21722739F0A65BA50CDA62 1BCAD5546E5C72DF06999B33CD6ACD98971ACF018AF3210D61F8EEF637D103F7 0038E62A833C631B196C747C233883BBF7B0E5534996DC1110C17C20C628B3BB 6D8C4A08B721FF0B27B541CE963BAB7964B0E434EE5774DC6D149330ECC0940B 17A02F8362665DDD47A4C7E4383EE90B2A5EF9650EEC98026F2C7E673232727E 2C884569E92E01A16E717406EB693BBC17CF387C883249FD5FA2F0E744CA3111 277BB8703EBA79753CDD53833CD9205FD0833ADC7F90C22CFA3F0CC9B6CB7001 4A8B52ACFDCFC8C76321BA813F83EC78D9DC74F9B75B3AA9E99F2550A1B23C7B 3DD9830223E3A2A66FBDE6FC842E9467C11A0B8D689A858A9A66549747F5057A 48D10CD808FAC8CEC26F5C5C2AC3C8B99AE7D68110DE3059A6C72C0067EA39D6 1B8DA6EB3F0D607783AFA012AF2D407CB167A6E3A9181AEAB0DEBACE0E9F8DD8 30860A93C06A1031555C07A5DD5F4A3BDDD6523EAAA362DCF40FABDEEFF7B955 E3D3D330121526FA9778AB9BAD6B0B14A82E0FCF27FB5B46B8209AB6C6A4169C 4ADE5C2D74350FA642C36B45382DB8E9506AF1EE490B105659E67E75B892EDCE 0812124C5735921FF921B3FD735228728BF8E6F37F253EFC4A35D4C94DD6ADFF FFEAABCC7CEF59F660240B5A2C47F2DDA76783DAACAEEE87BDB2379A184A0CDB 8179CF94FBC902817A203C219E4A72FCD3FA859A889ECEB5384260232F347A15 6C5692DD1D654E40D7C1361220E0027CB527269C9A2B482E543E84CDA879CD9E 7A6D35BCF5A5C7C0B4B13525E128CC0FD9FAEF56BD1CDAEE5BCD63CC86BE3FE1 71BAAB4A869E1523AF5499FE68F44B9A41125E1C734CF4B5F6E16794278EC4B6 FABCC43B033D81DDC0907F9B6EB6DC9D281042163B7FC3550B6B1A4F555AF427 612D91CF1360860B1847D8CAB636639957227AF1D04D767892847A020CF0AB3A 2915BBDB3E2A74AA71859BD289DEA8FE4F26B8778187C2FE8DF2C270FDB35BC3 2B5EE80FEFC0FE7E3E72D62DD3447CF03D39184D8D60AD47A02C99789D65B129 B3B6CE543B9A04A95ADF6B728A0EE13C04D31A1286C82031D208701C7963CC3B 871643A95CE7CB8FE126A11709309074210902A8470213E2B3500A7D758E0987 C9E1E8758832716DB4BF747B28B1F90DB1CFB4621CFAD56E3634F1712F336EBF 75343EE97FAF7189B2D54673D3B710BB13F567ACBBBB59F8C02FF3B1E83B42B6 D2480892342C1F496814FCE9AA4F8372EBC85C1A19A711121F5459B68712D0AB 9CCF1CF561128AF9546363AF512D35B087E534E9DC26078ACD9614F05103BF27 9F711B3EABA3ABB0356F2F7C919BFFB2F4D8E2E7553A6C91C0C285EB7D54DF07 39C4E75CCBC2C9B786B28A19C55783FF63CB52A4FFC55567BCE26827C0659301 06D16A98BCF819A6E94E1BB19A1049EB2088E7DE31E441FBFB0C04979D8973B2 FF2AFD8AB2E1440B5356134E03D423AFF477EDF0D0B404DFE26F1B55793F9080 A6DB828B0926C4EC75E082589D55BB98E0A1FECE750F2237BB027B19BF0D8B43 B49F355DAB221A994F8C1159A4AECE1DBD07FCDC746CFAE369729BC5215A8071 84533D41D505A7C811CED763F0B86E9CF4791FDB3167693FD93988F0C69B8589 BE8BB4DB60A087F8360FD876B375777B3CE81D723A7186AA65612E429890ACAC 816E8DB62EDB33C640CE2FB782BED3F9E6003F1FB7BE2582A58DF7EF9CCE2F91 5C2CFF3143B581DEBA999F8612BD8DDF137D0F748152446F0BC9CD3BA38C1DE8 C5ED53C19A8BA42FD7E210E65F8D62E5AF9BD85F51C08761C6EA23E8E7433764 7C1E2DAA65010F0A2255BA5FEDE810BA0B8DB46751F404B54DB2DEB802B0F8B1 E5EDA30E75A8E8B70E46DBF2DC1D6E8A38716A821B7FC184E2C12CBC9EA91B2C 83243D1D543FF7C8929504302CEC39A130B92DEF3A71F04F3D7285EA9A5E52D1 1DA99AD8B57545C85CED745CAA15ADB0B53619A9407139544EAFCC7DB53306E6 D7F757ABCB60B64D1CF155B7D6853DD6680688B87AFC89CCAA2493734649158F DE9E205FC8CA978E82C57FC200281ABF6CD02C4EA374FCCA412A5D368408C52D 708CD8984D2D798D3F1B5FECFE23905D3669F7A40AC33AEF1200C35FE83AC7E9 F8FA0B7C17BD8E9E3A8624E98BB74542BC9E902289E4E997EF84AB3E822CC605 B9BF0746E40D31ADA3FA908BFF922671FF5D3F4C4251B6A3A1DBCF2730CB31C1 C9F0C3F2458FE145CFBF0E7E923DE70797044703F6E684D847C3364A42F1CB20 07C4DF9131334B3B167B49F1C1EE2A8BA0C49DA38585DF238D237B6B115DFC0D 025BEA3707BC686D7AB2BDF1F494BD387DE54EB253B3B43E96EAC4854AC2CB22 42623DA153B8FEB050852DE1E38672D5E4EAF0C3028B64FC8F25DA2DC7A3896E 1A8054D64D0903FDE3C3715E80D91371034559544302A087BD2C5B207545E34F EC80A485F280C0FF8B956659276CB19579B7613EC685A887D68B80987E8735D9 226A6D60353F01E476C28739D840689325CADC2242D7F405EDC463FC7216CB8C FD859E13B50BF898CD47773D4BFB9D6AAA6948F6F5AF575374D582BAB8B8ECEA 93752079E22353C9BF1F8AC9D74D1AD7D6AD3FE8FA68AA4A48CED2D4CE9B3B9C 78A4D84BF170EECAA924C1F2D3145224EBD2C507FA12D066481C96F2D2C79EF4 5B5D240433539F33E8065DE90A354541D56B3649EB5A627B2C5EA63F2660AC01 09DC728A814F0DC9D481C8EDE23DE97A0F0DF9BDADA58AB25850BB5CA6D59154 91175856D48E440651B567E5286F795AE9D61BE1DBFF6F67DEFAA18A9C08EB04 DB3A12C9BFD20395DD2B00F8A58E40E8B97D39DF5949E2F244205E11F8C12DD4 1940D3226F6155382D1D596314D880C133E2943795685231E2AFEC6EA426BBDB 9ABF5E1B6F7E443F1666A3F9A929C2B42F9F7F88903FFFE5BFBD6662D5537CD2 6744F276140294C6F9AB8E55C67A079569424C9FC6B400092CAD94BC1033C49A B2F1542F686C80DA2B94ADE06B240AF066CBB4112A9BB69E8CF97E1983F7FD4D 7A0A98EF9AE8FBE5AC8D26BCD96B79B15F7700C024236B821733C2388A0F9D73 85E611077F54E5EC41C93D59AD3FC2D97F8E3B60AE60E23037D44E427CC6713D A5CF930CA31E03A517682558CC7D04F689A87AB66B4AD18E5790F0F2130C0707 0BEF46516FAB3079026734A1426AC89013B819862A0785878362D3DC94AFAA65 FC13C39B6F6CDAEDA17329CFB3EBE9F40D0FC210FF5E59758020456E13485247 D8F5EF359682163FA53DD941E050BA0BE9C96753F0757DCBB3F1C639CAB325FF 56C226961E401B185CBFDAB89C20C9AF361CA572F8424DD4B209ED3DFC8A904B A38C7C96C14B4FAF8B88062DA5DC7FDBD55E37A1B18F827D178771F942B94DCD 3FACF8DBDF91206D4E4FCEB38F894DE58ECD78FEE6E6B9387D11767E5A0EBFEB 6F6A3F145F859F474CAF1481226AA1366C9850D53C7199660B126DB132477A91 F5F6E77DA30AFEB7158502D2DD409B56244975E5533AF729C2BBA29341EB9329 161B82B559B47FAAD95B1080815ADD90D563811CAC7CF370C8B60F2C7AB274B1 F98A513043B2A18D180A4DA9D34BF7232AEA4E7EF2FE56DFA784EC5A4905D94C AB523D3A985A537F3462C05F8FAA6E6D87F24BE110266EED557EAC77A3F9A1D2 0AFB15420AA7124A33DC4E4884E6CD00181E0085B60A43674BE297C075FEC73A B3C968E1574297C8E477F340414275A39BA2F2A1788BA357D3B8A8687F4692C0 D3EB095ABC18A130204D35E8F90995BBDB121455B5E45A437B816CD790E2537B 8B8E97A5A403E2E063758EF108B99AB976C91CFC2AC3CC2F34E6BA26DB1F9039 944F91712F4DE2A9707AA401E0ED87FB89E3F03DECDE7348BF759B971A068329 1D17A9612CFCF532946FE7B8064E1DDC1FE691D2095A2C1EDB250E33EE0BA399 3566767F5108AF93B8E8D468A6D35CC889F88D217480211FE9B8661AC087F5B3 CF4BF09E1A6FC68634827D49053B406D4FB9F2175D9E5C9C7456571D832A06B6 3F2086A7C49791D8CCDDCF4B77ADC7397648757DCF1BCA5C431FA16A3359C963 15725FE9A1D9E3912FE4A278873471B8342D103BCF8B954DE9670C906D0D2123 02D6E5A23A3681043220E1FA6969D2B027F5C1DACEE3C33C92E4E7D1B2846D0C 230C5C416D924771EDF9D8F8ACB832B31F202CC70A2282CBFFCF6E7A4E6D424B 8270075F60069157E07C75BF29BB832EA550D7F5B7B61716D7873B07804A992F 94641EC8950E7DBC01EF98CB03CFEA512181AFEE20ECFC8572E26393CCC589F1 9F0F11B50CA6EB4E377A1BB2B5C6DC12ACE4D73A2FF59967C3D1CDD16D851E34 21A160C35941086968D8BCF0E692B3177BA9913D09FA90920B70C71E797E6AEA 13B2AA22995E063C27B0118FBD85CF610D59969C5A8119543B1E63A05CFFCED4 EE17C74E62F78B22547B2AFC25E620E9A9DE4C83801285109B8072D143F5FF03 F53B43C85977E0471FE8B7A5635DEE5F44FCDCE4A145DC68DF9FC169AF59A669 27699E31F578E1A8ACE0407F876F7678B8CC79118460AB3F8C8AB6981E4A9C3D 7AA5FD1B68C2E8F3F481D84DD48BFB9E44771DD632FDF34679569F56661EC10D 57501C00ED522F90B4FA9AC25F298326F5DAD127081F8D090251F8D5A214E33C 7CBA330B9EEF167302A4D0EA14D219323787DB382AF57BBF70383321E2AA9597 F10C6329319140ED326CE0CDCA97574ECB9B93CCF70F92511CB045F4644DCBB6 B7E57C174EAD0DBF9831B1A196D22040D257116EEAC6BD31062A4FB14B886D3E 33D1D3BAA619CC93742B7558A8CCDD0167D325FE45EE0BCB37063AADCA0C45E3 356C16372D48944B340D7A1CF397328B11CC89353096C0118A38CECCA5D08F9F 7FB1C1EEE844DEA36053B6D269508056260A105F29D3A38ADADED04681B7F459 81D18E35E1F610D2208745D66E8F976FE86EA60FFB263212E12799C1C124A1FE 95A65AC6DD8C36BEFC850FCE3BB5470A07AD0AF670D10C71B5E844DB6F1F7046 C24A447D4C2427F9509A2FDC77AEC152D3AECBC5C567F16344F2F4A81EE420A5 A90451F7F8B2847D1BFE71278CF035CF7EACDFC6EB02EB282A0B27CBE701610D 95E90656A130512FAE99F9EB3CF4BF93D3E4E7F3B2C995FA704AE4A0B1930CC8 AA7D60B17C720CC87A9677128DA0E675004A9EADC3D0B073BFB8AD399D9E60D7 2219CB72A25366C033BBA03D5DD5B3E2C6881814C2FABAADD6945C36ECCD3888 6B9664C5398E9E66B82EA1211F5125687354F9BBFE49D9C12584567D48DF13EE D5D5DB6F2B214FD27B9B74CE844BA5D1AE358E438DCC19BEDB7EC7A33714F75A 17F9E9345ED6EF263B412189473A64CA77F40CB7DE02F532F8F3346FFE975B20 A59B505F2213B728AD0F3922903C145D2A12FFE7233B8BB30CE438901D1CBAE1 153176E802B24E9FEDB358C1D66E8784A05453F32CB26B053785F35DAC535D87 C049B878BCEC65295E180AE307C90FD2D221967AA424870F79F2CD348475A704 0209F8A0036F2C2FA3BDF21F4C4D6B90043445227FA0ED2BF949ABCBAB9D5937 B0FBA1956F7DD213A1A09D9AF1FDF2D66E6E76D462FB55378AF4421447DFB406 D16743DA4F97050419281E60A98C343552C072245332371EAB0EDBC3675EF909 23485602F92CFFD336AC677B2B1B3904FE2110FBF494954BB76299F2BB56A6BE 4D07F47D4865FFA23F2F3E782CC7724012AC7259AF5B2E2299F3712226297E57 158C32BD60A3A6125191CD1E7C36FA3BD75637FC027B6C3995B22752D39696D9 8E3042497F81E61231B1E067D8DE9B5CA6973C2E244E4F6FD6370CE5281CF400 68D02B3F296D0498CAD6BF9E4E7D2B99B2B61DA49F48950C0FCF210E23018237 48F9C349E0BAB0D4B02FCCE9D71A6BAD42CEE4A3CE48C2F2937431D63EB8DEDE 4153ED14C48A3AFA48D89F23AA80C7ECBF3BDF5AC9CE2DEEA53D656DC071EBD2 40639DB1108B6600C507BA3F9ABBD4573242CA874FC48A81C618B45FFCAA66D6 881E3BE2987A0BF45E13770EAC2D0255536923F9DE0EEC4316904C1258A9188E 29A1F71C7984B46022D3405C4B3EE490DCCCF415F10B3C32B76316B0CA6DC760 FC382C5484806DE93828CCBADAE33E4A02620A434B09A9AA38390AE5E722EDCC 661ACC7CAE021B87DDB943CBD7E0C6907B51F376DB12FFCA67F3E480626712E0 890ACCD963E853F8343FD90A33ED92286EE6BA0FE419B6017E0B371F1D791FC2 3AD91C88DD0C4A2302ACEE83EBF519D6106856D950E57BBFFC08BF921D903962 679358134679ED6FAB87EA330FC71563CF177788E2750085B2CB11B36C659ACD EBD91A3F208D0A042F42D10079289004B95FC1EB939B6D23F649513675C91D1B D223F26BD1C8A92BAE478DEE128C71F223BCEB43B41CADA6D3FA9D44EE15E681 51BDA6A51918A8CFCBF02DCEF345B256673D7B09370728E70B8CF828EB29DEDF 937190963F062694BB5F54DF8FC5D8CF6A82A7BBAEC1FB0B256C14C9BDBC4C77 C8B357BD9125F71D601AA00F972E9BF1F0EBC2AA10DD7F00E010344CA791E49B 79C76F9D0404269C2DBA86ED055D7D52393C433931DEDF8642BAECA1BE2DA7E0 A25B9C50461B6C6C2FAADCF9DA90AC8F9F5B7741F6413A2C1CD80AF6365EA8CB 5809953B8A7912A648D86861BCAB89B4B0A2932F4AFB78184525F598EE29CC7B DA50D2FBF17FAFE98FE0F6DED14D5F92EC199AE95BF3EC66574C10C3ED81BB84 E78D6074D12FE6FF3B72287B74800E4CBAA65D8EB63521F4638B7339FAFEAF40 AB48F9DA18296B7374DB002D949DD389C45373ADCFA6DE8E3B3023D7CC3BA5B0 FB5E2D3B89625B61FDCF6D93DB0A4FADA45DFB9F1C6D9D13F29574063F141050 D33711531A9FAC6737F95E42EA24E6D0E6C76492B11EF5315D986CCB4C8A92CB 9DBDCFBD06B70E91F856F075DC1DD3D8CC01E582BDC6DB27D99DBE6F29E5F1F6 39CFD19E331F90613A862936F9AEB43BEE59D40309DFED84CB75B2AC2E02E435 F44A5A0D111FEDE53F09B9299392034E4AD992B49FB77FDAF9201D7F46D35D52 ACF11590552C6548E119F926E75C2CF69F33F822500046A0562870122C6CA876 51A5BA46DEA0C611182E8DEA0B9646411ABBDF50033AA689A2C275BBFB0302DD 0749D8FE8062ABA7758D7C35D35B57A05263E61AEC86E7645C8DA304766FAFF5 5531C08A7F4AD7783D6770612EBAC54C250E2A67271090D9E35B86F185876F8C F67C27213F383AF06BC915CDD82E6B73A96AAF668640F3EF3E92E88839A51597 860E462F5A42B58AB8B59CCF253D6A76B86EA3AE1CC6F158D758D6931E8BDE95 67092FE7DD12980A65C92805E1C28AF14300B7FF4D0C0A701FDE543CF8933F4F A5004A9250CDB716325E907DD79E39A0D09E195BDA6A8108DCD14F9E706C713E 95008D39D789211797B974F4E5ED949ED2FE1CCC50C29706BEFB8C53CDE08E9F 7A802C06EF9FE81B27729F6035BCE2F77135C2792875D733D7E7C591946308A4 A948AFBF626B769FAD78FED290DC49B26ABA964E72251BDB519EE8EA602F36FA 46AA33DC485A90771AE9CEF3F5FC803439C11EB8473E33510F59583FC04E7F6D AF0FB32C338BE446A350105574E19C28A7C20B1D9ACC3C2670242858D72DF1C1 B27A5A74D31333DA4BDCBE281C5389CE5ED1452D8B0CA7BC63CF6BE701D89F14 5EBEDA3308E7FD3B961C27FDD8F1ECAF6F118E0CAA6EE2714C0B991DBA10E0F2 66794DF430A314B3A43D7942AEED36267BE8BAD1D3011841DA5DF6D774E7CCD5 E7BFE2046D99A441DBEBA0E8325BEABC5495782B88D1DF1F0F7FA638E7F6DE28 CB252B0558A4942F675E8432D6E88EB34263EFD5C1988C5AF9E1F4C46EFD5F57 242361ADE5AA09B2BBCE5F52FB200ED4CA3E7CAA70C9EC2CC5F38A58A429CE19 294B075072ABE8B55EEDA0ABFDA76CD309ECAE5A498BBC71987CC30879ECFD13 178E20BA2BD1E7249CCCC2E88AF09CE7973AB11406638C608C1E70B7642842C7 D8F01A3A20DBCB13B397B89520EF72565505DF18D8708AA5D435463FCAE80E5A 34ACEBE8BB7C2B45DA0246810DEB377825162E9272898CCA69871DB6A11682BB 535220FF97CCB210F328C7DE67C0029EBC0FC6A833B986F82B1BCDA0F7C24A60 3506EDD054AF9B43627C22F57EC924271ED0F8229096CDB2A77FB72A08B47A33 061AB7B3016C5C67753088951A89D3EAA7B0262511380AD0411C5F7C4D8A2121 CCAB06D17C1BD7F8EC4843CB401749B59202D4A6B370DDE7543399424E754837 F07D65855CDD46B194AB8B3BB4E128FE555D3506B3C5075EDE4BE6E1A652FE2B 06ADBBD971722975066F01EA62B014D84A2B1F82D66373290670625B46D477B1 469E30C82CE78C1CEBDF829C742E874EF856B0A472BB4057079B6A3E6CBF0975 C136A360C6D96F09F9766E3306273948645A13A66C92BB7549382543048859FD C65E854515CAF26E79CCFE02DF1834CC9910CE081BEDE3FE6D657EE4475AA54E 7C5152CB0C260A15B8103C30AF394AB1D3233FE1CBA83C4CFC3968F88DED55A4 6664BB24FD3F45E6EC3A24D3C5815E1E932707A1B0E2B303C0EEB8CC89208483 05E5CA16EF559008F48A9A69E2A314FBDC42AD679C7C87163204DB3A5E5721DD DC42958BB33337BD72542938A32A4F7CB1403260CF222AFA4E73F8A17A7189B4 A058D1F0084FE2BFEB7C18F20B35161A713FF5230AF90EABAF94766A35EAD683 89493B61B9DC0F8C0E1444F6398C88397947A335A9EB75A4267572647A14201B 5CEDB58C86BCB8D119522301D99279A95191CC6B12B1804720BD5367315647FD 7852031C70CEA1E1950F19B960D6E6BB4C9C7DFF876D998AF45AC47FA862DC3D 511FEA62809A7F4C3FF91E4623A255216062D046ECA006F89FDD1544C49E5FA2 BAC23919C7CE72B2E39ED24374E25ECD045FFE0040FCD3AB0565BA1C7745C109 9F169CEEC1C06563DD650CBBB46F644A83C4B5836A15774A948F8B14E3A769FF A7F1303940B8B12AA240DB8A3F717DFA7E0F09244FCECAA5993C891651C7DF1C 504201D99A85E1721ACABE67C7BEB6F2DD8A8E289BF14CFACFDD05B16BE0C1A3 C5484126EFCB907C592A7DB24689488A36961A3584C885A28047EB71C9FBC40B 898B39FBA1B48509122656921FE72E8070D80D586586BD1974054D26E7E58066 E33919C426EC54F9E3A040243EEB5D8330FE7448B5720ADB046F896B3973CE35 F777426C768D5799FE6B79EC0DB26E92FA2DCBA97735BF9F7A7EB63782D0D11A 3EAF076BB4859EC78EF5F2ED95B7B587623178CF81C7BAF0325EF549EEDF7316 419AC60921E496AA01D601191D41B137CE56CB76A08270E603FB79C78F4EFE1E 06D9B7CF26F6D17930DEFECD3AFF1615D4DAF5E8A1DD2DA8C69FC005D90AD03C C410618E6BD969C985221BBCB2C6F3BAF3B2F09449EAD62F4085DD8B5E8E5F43 AA7D28F209293674CBC78E9596DE8C8B5918A1D22DFDDF4549F0608C274D0520 B8A25C205F34ADB06AD2FE695112D0B47332AA29108F52A0664714C02FD60111 1BDC1B8860BA39B57C2786DE255E9140D688524E4134BE7F6A46C13198FB6FDD 281E260251970458D8A05E1D377E7DF20B79671DF96BCC9F6A54CEE7E9EA43BF 25FA23098C87383390D01E85D9A4B653A8CCEC9A81A40C94BAF061FAD44F3624 94790CC2C71DA1268997E44E02857CBE1109911125DF1B35DE3E7CCD5AAF9940 769075C2F62D49023CFDFBA958D1FD5A36F7E796A438A95B4DE9F204FFC8012D 616AE0D3A76DAEDA7A868B00981D886E47937529BE21A6BECE0EE6CFF2AEF39C B75364937F4B276BA2E59C324EA4E327D3B95D23691DAA6BFE939A6CE26569CB CDA2296CD0A350F6D74C4B4F9A010DD02E446584443EA6775CA341218128BF8D 02DE8A2FBAB1AC30ED6589F8004A613C2EF7E14A04F5FDBCB206DB927342AF53 BCFF651BC9708FAE44F122E7916B17407CDE09CAC89FAAAC3D0F0FF111A5C21F 1D759AACD4BE1DEC3C39B71D5858879730D36D308D4CE6F74D4D0CBC2A27C9B7 C1C586226890A788F17CDBCDDF99FA608043288D2FCF96B4D19C4C510CE46733 7FCD593F2CB13F2C377393532847B5EF02D9BFB00026C15E9D6CD01525560F05 5657B1426226D811E4772E4F888006190F7BF78F149E0F47BB565B7917187C9B 06B5B54AD29D3E800050864CF101267B188ADBC0326FA3A73775A61B753EADFE 9585BEBED07E0090624119F24CA9D6CFCF2D230B62AF11B7E975F90775160111 24CD85E0CD5EBC4040C30D2881EEC8FC912E066A0D3236AFBDD6743597D02192 3086DD8322A76B05794A69365517E4BCF3E443BEFBB9A78F31298B38C803F8DF 03271DC897E6C6794F26FF2D817A24C85A69EA7AB928DA3E2647D9DB0CA2E783 7649F75ABBD9D924FAB0AA70F608079096FC3E9853EA585EFF4C968AC6C6BB7B 44ADCB550C94C8478B05423B9958A33B25BED5641BDDF300824B1431D5D2D0E7 73F95A0FCE8D4D7D586AF6C323D1915976C6AC0FA75C61E247776C5D6A495D05 7EE574AEA3FA6F87B5DB8668B8053E5C8A96E5116522C689DB1E617752D63BBD BDBFD20D7CB9335567CCF07036A32A6EC856931DF64402F82E2E43FF9E54B4AD 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 39158280 55380996 1000 600 600 (VFlib-36.dvi) @start /Fa 209[ 43 46[{ TeX74afc74cEncoding ReEncodeFont } 1 119.552 /CMBXTI10 rf /Fb 134[ 51 51 70 51 54 38 38 38 1[ 54 49 54 81 27 51 1[ 27 54 49 1[ 43 54 43 54 49 9[ 100 73 73 1[ 54 2[ 66 6[ 35 2[ 64 1[ 75 70 1[ 73 7[ 49 49 49 49 49 49 49 49 49 49 1[ 27 32[ 54 1[ 57 11[{ TeXf7b6d320Encoding ReEncodeFont } 45 99.6264 /CMR12 rf /Fc 209[ 24 46[{ TeX74afc74cEncoding ReEncodeFont } 1 74.7198 /CMTI9 rf /Fd 134[ 41 41 55 41 43 30 30 30 1[ 43 38 43 64 21 41 23 21 43 38 23 34 43 34 43 38 6[ 47 1[ 58 1[ 58 58 55 43 57 1[ 52 60 58 70 48 60 39 28 58 60 50 52 59 55 54 58 7[ 38 38 38 38 38 38 38 38 38 38 1[ 21 26 21 30[ 43 43 12[{ TeXf7b6d320Encoding ReEncodeFont } 62 74.7198 /CMR9 rf /Fe 142[ 37 3[ 59 5[ 35 4[ 39 4[ 20 1[ 20 7[ 39 2[ 48 12[ 51 21[ 24 45[{ TeXf7b6d320Encoding ReEncodeFont } 10 66.4176 /CMR8 rf /Ff 150[ 30 30 104[{ TeXbbad153fEncoding ReEncodeFont } 2 74.7198 /CMSY9 rf /Fg 135[ 52 65 2[ 33 10[ 31 52 43 45 42 47 33[ 69 3[ 71 45 71 60[{ TeXaae443f0Encoding ReEncodeFont } 13 90.9091 /CMMI10 rf /Fh 134[ 56 56 56 56 56 56 56 56 1[ 56 56 56 56 56 56 1[ 56 1[ 56 56 56 56 56 1[ 56 1[ 56 8[ 56 1[ 56 56 56 1[ 56 56 1[ 56 3[ 56 1[ 56 56 56 56 56 56 56 14[ 56 56 7[ 56 56 40[{ TeX09fbbfacEncoding ReEncodeFont } 41 109.091 /CMTT12 rf /Fi 134[ 65 65 89 65 68 48 48 50 1[ 68 61 68 102 34 65 1[ 34 68 61 37 56 68 55 68 60 11[ 94 85 68 92 1[ 84 2[ 116 3[ 46 2[ 77 2[ 89 9[ 61 61 61 61 61 61 61 61 61 61 1[ 34 32[ 68 68 12[{ TeXf7b6d320Encoding ReEncodeFont } 45 109.091 /CMBX12 rf /Fj 133[ 40 48 48 66 48 51 35 36 36 1[ 51 45 51 76 25 48 1[ 25 51 45 28 40 51 40 51 45 7[ 68 2[ 68 68 66 51 67 1[ 62 71 68 83 57 2[ 33 68 71 59 62 69 66 64 68 3[ 71 10[ 45 45 2[ 25 30 3[ 35 35 26[ 51 51 53 11[{ TeXf7b6d320Encoding ReEncodeFont } 54 90.9091 /CMSL10 rf /Fk 133[ 48 48 48 48 48 48 48 48 48 1[ 48 48 48 48 48 48 1[ 48 48 48 48 48 48 48 48 48 1[ 48 1[ 48 1[ 48 1[ 48 2[ 48 48 48 48 48 1[ 48 48 48 48 48 2[ 48 48 48 48 48 48 48 48 48 3[ 48 10[ 48 48 48 1[ 48 48 48 4[ 48 39[{ TeX09fbbfacEncoding ReEncodeFont } 55 90.9091 /CMSLTT10 rf /Fl 134[ 44 42 1[ 42 49 30 37 38 1[ 46 46 51 74 23 42 28 28 1[ 42 28 42 46 42 42 46 8[ 68 1[ 68 1[ 65 51 4[ 68 2[ 70 4[ 59 62 10[ 28 11[ 28 33 32[ 51 12[{ TeX74afc74cEncoding ReEncodeFont } 34 90.9091 /CMTI10 rf /Fm 134[ 48 48 66 48 51 35 36 39 1[ 51 45 51 76 25 2[ 25 51 45 28 42 51 40 51 44 8[ 69 1[ 69 70 63 51 69 2[ 68 71 86 2[ 47 2[ 71 57 60 70 66 65 69 6[ 25 12[ 30 3[ 35 35 27[ 51 12[{ TeXf7b6d320Encoding ReEncodeFont } 44 90.9091 /CMB10 rf /Fn 134[ 39 39 39 39 39 39 39 39 1[ 39 39 39 39 39 39 1[ 39 39 39 39 39 39 39 39 39 39 39 2[ 39 2[ 39 1[ 39 39 39 39 39 39 1[ 39 39 39 39 39 1[ 39 39 39 39 39 39 39 39 39 39 5[ 39 1[ 39 1[ 39 39 39 1[ 39 39 39 39 39 39 39 39 2[ 39 39 39 39[{ TeX09fbbfacEncoding ReEncodeFont } 64 74.7198 /CMTT9 rf /Fo 134[ 39 1[ 39 39 39 39 39 39 2[ 39 39 39 39 2[ 39 39 39 39 39 39 1[ 39 39 12[ 39 16[ 39 20[ 39 6[ 39 39[{ TeX09fbbfacEncoding ReEncodeFont } 23 74.7198 /CMSLTT10 rf /Fp 129[ 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 33[{ TeX09fbbfacEncoding ReEncodeFont } 94 90.9091 /CMTT10 rf /Fq 240[ 45 1[ 91 9[ 45 2[ 71{ TeXbbad153fEncoding ReEncodeFont } 4 90.9091 /CMSY10 rf /Fr 134[ 85 85 117 85 90 63 64 66 1[ 90 81 90 134 45 85 1[ 45 90 81 49 74 90 72 90 78 9[ 167 122 124 112 90 2[ 110 6[ 60 2[ 101 1[ 124 117 1[ 122 7[ 81 81 81 81 81 81 81 81 81 81 1[ 45 32[ 90 1[ 94 11[{ TeXf7b6d320Encoding ReEncodeFont } 47 143.462 /CMBX12 rf /Fs 134[ 71 71 97 71 75 52 53 55 1[ 75 67 75 112 37 71 41 37 75 67 41 61 75 60 75 65 6[ 82 102 102 139 102 103 94 75 100 1[ 92 101 105 128 81 105 69 50 105 106 85 88 103 97 96 102 6[ 37 67 67 67 67 67 67 67 67 67 67 1[ 37 4[ 52 52 26[ 75 75 78 11[{ TeXf7b6d320Encoding ReEncodeFont } 66 119.552 /CMBX12 rf /Ft 131[ 91 45 40 48 48 66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51 45 28 40 51 40 51 45 25 2[ 25 1[ 25 56 68 68 93 68 68 66 51 67 71 62 71 68 83 57 71 47 33 68 71 59 62 69 66 64 68 3[ 71 1[ 25 25 45 45 45 45 45 45 45 45 45 45 45 25 30 25 71 1[ 35 35 25 5[ 25 18[ 76 51 51 53 11[{ TeXf7b6d320Encoding ReEncodeFont } 83 90.9091 /CMR10 rf /Fu 134[ 102 4[ 75 1[ 79 2[ 97 108 1[ 54 2[ 54 6[ 108 94 10[ 146 9[ 116 5[ 122 4[ 146 65[{ TeXf7b6d320Encoding ReEncodeFont } 13 172.154 /CMBX12 rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop Fu 0 1385 a(A) 65 b(F) -16 b(on) -5 b(t) 63 b(Library) i(VFlib) p 0 1485 3780 34 v Ft 2387 1581 a(VFlib) 31 b(v) m(ersion) g(3.6.14) i(User's) d(man) m(ual) 2664 1689 y(Final) h(Revision:) 42 b(26) 31 b(F) -8 b(eb) 31 b(2006) p Fs 0 5682 a(Hirotsugu) 46 b(Kakuga) l(w) l(a) p 0 5755 3780 17 v dyy eop end %%Page: 1 2 TeXDict begin 1 1 bop Ft 0 -116 a(Chapter) 30 b(1:) 41 b(Cop) m(yrigh) m(t) 2873 b(1) p Fr 0 365 a(1) 80 b(Cop) l(yrigh) l(t) p Ft 125 599 a(Cop) m(yrigh) m(t) 31 b(\(C\)) f(1996-2006) k(Hirotsugu) d (Kakuga) m(w) m(a.) 42 b(All) 31 b(righ) m(ts) g(reserv) m(ed.) 125 734 y(This) j(\014le) i(is) g(part) f(of) h(the) g(VFlib) g(Library) -8 b(.) 56 b(This) 35 b(library) g(is) g(free) h(soft) m(w) m(are;) k(y) m (ou) c(can) g(redistribute) f(it) 0 844 y(and/or) d(mo) s(dify) f(it) i (under) e(the) h(terms) g(of) g(the) g(GNU) h(Library) e(General) i (Public) f(License) h(as) f(published) f(b) m(y) 0 953 y(the) 41 b(F) -8 b(ree) 42 b(Soft) m(w) m(are) f(F) -8 b(oundation;) 47 b(either) 41 b(v) m(ersion) g(2) g(of) g(the) g (License,) j(or) d(\(at) g(y) m(our) g(option\)) g(an) m(y) g(later) 0 1063 y(v) m(ersion.) 69 b(This) 38 b(library) h(is) h(distributed) e (in) i(the) f(hop) s(e) g(that) h(it) g(will) g(b) s(e) f(useful,) i (but) e(WITHOUT) g(ANY) 0 1172 y(W) -10 b(ARRANTY;) 28 b(without) g(ev) m(en) h(the) e(implied) h(w) m(arran) m(t) m(y) h(of) e (MER) m(CHANT) -8 b(ABILITY) 29 b(or) f(FITNESS) e(F) m(OR) 0 1282 y(A) 36 b(P) -8 b(AR) g(TICULAR) 37 b(PURPOSE.) e(See) h(the) h (GNU) g(Library) e(General) i(Public) f(License) h(for) f(more) g (details.) 0 1391 y(Y) -8 b(ou) 37 b(should) f(ha) m(v) m(e) h(receiv) m (ed) h(a) f(cop) m(y) h(of) e(the) h(GNU) g(Library) f(General) h (Public) g(License) g(along) g(with) g(this) 0 1501 y(library;) 28 b(if) g(not,) g(write) g(to) g(the) g(F) -8 b(ree) 28 b(Soft) m(w) m(are) h(F) -8 b(oundation,) 29 b(59) f(T) -8 b(emple) 28 b(Place) h(-) f(Suite) f(330,) j(Boston,) f(MA) 0 1611 y(02111-1307,) 35 b(USA.) p dyy eop end %%Page: 2 3 TeXDict begin 2 2 bop Ft 0 -116 a(2) 3243 b(VFlib) 31 b(3.6.14) p dyy eop end %%Page: 3 4 TeXDict begin 3 3 bop Ft 0 -116 a(Chapter) 30 b(2:) 41 b(Cop) m(ying) 2941 b(3) p Fr 0 365 a(2) 80 b(Cop) l(ying) p Ft 916 582 a(GNU) 31 b(LIBRAR) -8 b(Y) 31 b(GENERAL) f(PUBLIC) g (LICENSE) 1477 691 y(V) -8 b(ersion) 31 b(2,) g(June) f(1991) 240 829 y(Cop) m(yrigh) m(t) 692 826 y(c) p Fq 667 829 a(\015) p Ft 30 w(1991) i(F) -8 b(ree) 32 b(Soft) m(w) m(are) f(F) -8 b(oundation,) 32 b(Inc.) 240 939 y(675) g(Mass) e(Av) m(e,) i(Cam) m (bridge,) f(MA) g(02139,) h(USA) 240 1158 y(Ev) m(ery) m(one) f(is) g (p) s(ermitted) f(to) h(cop) m(y) g(and) f(distribute) g(v) m(erbatim) h (copies) 240 1268 y(of) g(this) f(license) h(do) s(cumen) m(t,) g(but) e (c) m(hanging) j(it) f(is) f(not) h(allo) m(w) m(ed.) 240 1487 y([This) f(is) g(the) h(\014rst) e(released) j(v) m(ersion) e(of) h (the) g(library) f(GPL.) 60 b(It) 31 b(is) 270 1596 y(n) m(um) m(b) s (ered) e(2) i(b) s(ecause) f(it) h(go) s(es) g(with) f(v) m(ersion) h (2) g(of) g(the) f(ordinary) g(GPL.]) p Fs 0 1863 a(Pream) l(ble) p Ft 125 2110 a(The) h(licenses) h(for) g(most) g(soft) m(w) m(are) h (are) f(designed) f(to) i(tak) m(e) g(a) m(w) m(a) m(y) g(y) m(our) f (freedom) f(to) i(share) e(and) g(c) m(hange) 0 2220 y(it.) 55 b(By) 35 b(con) m(trast,) j(the) d(GNU) h(General) g(Public) e (Licenses) i(are) f(in) m(tended) g(to) h(guaran) m(tee) g(y) m(our) f (freedom) g(to) 0 2329 y(share) 30 b(and) g(c) m(hange) h(free) g(soft) m(w) m(are{to) i(mak) m(e) e(sure) f(the) h(soft) m(w) m(are) g(is) g (free) f(for) g(all) i(its) e(users.) 125 2467 y(This) j(license,) k (the) e(Library) e(General) j(Public) e(License,) i(applies) f(to) g (some) g(sp) s(ecially) g(designated) g(F) -8 b(ree) 0 2577 y(Soft) m(w) m(are) 36 b(F) -8 b(oundation) 35 b(soft) m(w) m (are,) j(and) c(to) i(an) m(y) f(other) g(libraries) g(whose) g (authors) f(decide) h(to) h(use) e(it.) 55 b(Y) -8 b(ou) 0 2687 y(can) 31 b(use) f(it) h(for) f(y) m(our) g(libraries,) h(to) s (o.) 125 2825 y(When) f(w) m(e) h(sp) s(eak) g(of) g(free) g(soft) m(w) m(are,) i(w) m(e) e(are) g(referring) f(to) i(freedom,) f(not) g (price.) 42 b(Our) 30 b(General) i(Public) 0 2934 y(Licenses) 23 b(are) h(designed) f(to) g(mak) m(e) h(sure) f(that) g(y) m(ou) h(ha) m (v) m(e) g(the) f(freedom) g(to) g(distribute) g(copies) h(of) f(free) g (soft) m(w) m(are) 0 3044 y(\(and) 31 b(c) m(harge) i(for) f(this) f (service) h(if) g(y) m(ou) g(wish\),) g(that) g(y) m(ou) g(receiv) m(e) h(source) f(co) s(de) g(or) f(can) h(get) h(it) f(if) g(y) m(ou) g(w) m (an) m(t) 0 3153 y(it,) d(that) f(y) m(ou) f(can) h(c) m(hange) g(the) g (soft) m(w) m(are) g(or) g(use) f(pieces) h(of) f(it) h(in) f(new) g (free) g(programs;) h(and) f(that) h(y) m(ou) f(kno) m(w) 0 3263 y(y) m(ou) k(can) f(do) h(these) f(things.) 125 3401 y(T) -8 b(o) 36 b(protect) h(y) m(our) e(righ) m(ts,) j(w) m(e) f (need) e(to) i(mak) m(e) g(restrictions) f(that) h(forbid) e(an) m(y) m (one) i(to) f(den) m(y) g(y) m(ou) g(these) 0 3511 y(righ) m(ts) 23 b(or) f(to) h(ask) g(y) m(ou) f(to) h(surrender) e(the) h(righ) m(ts.) 38 b(These) 23 b(restrictions) g(translate) g(to) g(certain) g(resp) s (onsibilities) 0 3620 y(for) 30 b(y) m(ou) h(if) f(y) m(ou) h (distribute) f(copies) h(of) g(the) f(library) -8 b(,) 31 b(or) f(if) g(y) m(ou) h(mo) s(dify) f(it.) 125 3758 y(F) -8 b(or) 28 b(example,) h(if) e(y) m(ou) h(distribute) f(copies) h (of) g(the) g(library) -8 b(,) 28 b(whether) f(gratis) h(or) g(for) f (a) h(fee,) h(y) m(ou) f(m) m(ust) f(giv) m(e) 0 3868 y(the) g(recipien) m(ts) h(all) g(the) f(righ) m(ts) h(that) f(w) m(e) h (ga) m(v) m(e) h(y) m(ou.) 40 b(Y) -8 b(ou) 27 b(m) m(ust) g(mak) m(e) h (sure) f(that) g(they) -8 b(,) 29 b(to) s(o,) f(receiv) m(e) h(or) e (can) 0 3977 y(get) 34 b(the) e(source) h(co) s(de.) 48 b(If) 32 b(y) m(ou) h(link) f(a) h(program) f(with) h(the) f(library) -8 b(,) 34 b(y) m(ou) e(m) m(ust) h(pro) m(vide) g(complete) h(ob) 5 b(ject) 0 4087 y(\014les) 28 b(to) i(the) e(recipien) m(ts) i(so) e (that) i(they) e(can) h(relink) f(them) h(with) f(the) h(library) -8 b(,) 29 b(after) g(making) g(c) m(hanges) g(to) g(the) 0 4197 y(library) h(and) g(recompiling) h(it.) 41 b(And) 30 b(y) m(ou) g(m) m(ust) h(sho) m(w) f(them) g(these) h(terms) f(so) h (they) f(kno) m(w) h(their) f(righ) m(ts.) 125 4335 y(Our) g(metho) s (d) h(of) h(protecting) h(y) m(our) f(righ) m(ts) g(has) f(t) m(w) m(o) i(steps:) 44 b(\(1\)) 33 b(cop) m(yrigh) m(t) g(the) f(library) -8 b(,) 32 b(and) f(\(2\)) i(o\013er) 0 4444 y(y) m(ou) e(this) f(license) h(whic) m(h) f(giv) m(es) i(y) m(ou) f(legal) h(p) s(ermission) d(to) i (cop) m(y) -8 b(,) 32 b(distribute) e(and/or) g(mo) s(dify) g(the) h (library) -8 b(.) 125 4582 y(Also,) 35 b(for) f(eac) m(h) h (distributor's) e(protection,) k(w) m(e) d(w) m(an) m(t) h(to) g(mak) m (e) g(certain) f(that) h(ev) m(ery) m(one) g(understands) 0 4692 y(that) i(there) g(is) g(no) f(w) m(arran) m(t) m(y) i(for) e (this) h(free) f(library) -8 b(.) 60 b(If) 36 b(the) h(library) f(is) g (mo) s(di\014ed) g(b) m(y) g(someone) i(else) f(and) 0 4802 y(passed) f(on,) i(w) m(e) f(w) m(an) m(t) h(its) f(recipien) m (ts) g(to) h(kno) m(w) e(that) h(what) g(they) g(ha) m(v) m(e) g(is) g (not) g(the) g(original) g(v) m(ersion,) i(so) 0 4911 y(that) 31 b(an) m(y) g(problems) e(in) m(tro) s(duced) h(b) m(y) g (others) h(will) g(not) f(re\015ect) h(on) f(the) h(original) h (authors') e(reputations.) 125 5049 y(Finally) -8 b(,) 29 b(an) m(y) d(free) h(program) g(is) f(threatened) h(constan) m(tly) h (b) m(y) f(soft) m(w) m(are) h(paten) m(ts.) 40 b(W) -8 b(e) 28 b(wish) e(to) h(a) m(v) m(oid) h(the) 0 5159 y(danger) 35 b(that) i(companies) f(distributing) f(free) g(soft) m(w) m (are) i(will) f(individually) f(obtain) h(paten) m(t) h(licenses,) h (th) m(us) 0 5268 y(in) 31 b(e\013ect) h(transforming) f(the) g (program) g(in) m(to) h(proprietary) e(soft) m(w) m(are.) 45 b(T) -8 b(o) 31 b(prev) m(en) m(t) h(this,) f(w) m(e) h(ha) m(v) m(e) g (made) f(it) 0 5378 y(clear) g(that) g(an) m(y) g(paten) m(t) g(m) m (ust) g(b) s(e) e(licensed) i(for) f(ev) m(ery) m(one's) j(free) d(use) g(or) h(not) f(licensed) h(at) g(all.) 125 5516 y(Most) 24 b(GNU) g(soft) m(w) m(are,) i(including) d(some) g(libraries,) i(is) f (co) m(v) m(ered) h(b) m(y) e(the) g(ordinary) g(GNU) h(General) g (Public) 0 5626 y(License,) k(whic) m(h) d(w) m(as) i(designed) e(for) h (utilit) m(y) h(programs.) 39 b(This) 25 b(license,) j(the) e(GNU) h (Library) e(General) i(Public) 0 5735 y(License,) k(applies) f(to) h (certain) g(designated) g(libraries.) 41 b(This) 29 b(license) j(is) e (quite) g(di\013eren) m(t) h(from) f(the) g(ordinary) 0 5845 y(one;) d(b) s(e) e(sure) f(to) i(read) e(it) i(in) f(full,) h (and) e(don't) h(assume) g(that) g(an) m(ything) h(in) e(it) i(is) f (the) g(same) g(as) g(in) g(the) g(ordinary) 0 5954 y(license.) p dyy eop end %%Page: 4 5 TeXDict begin 4 4 bop Ft 0 -116 a(4) 3243 b(VFlib) 31 b(3.6.14) 125 365 y(The) 21 b(reason) h(w) m(e) h(ha) m(v) m(e) g(a) g (separate) g(public) e(license) i(for) f(some) g(libraries) h(is) f (that) g(they) h(blur) e(the) h(distinction) 0 475 y(w) m(e) 40 b(usually) f(mak) m(e) h(b) s(et) m(w) m(een) g(mo) s(difying) e(or) h (adding) g(to) h(a) g(program) f(and) f(simply) h(using) g(it.) 67 b(Linking) 39 b(a) 0 584 y(program) 30 b(with) g(a) h(library) -8 b(,) 31 b(without) g(c) m(hanging) g(the) g(library) -8 b(,) 30 b(is) h(in) f(some) h(sense) g(simply) f(using) g(the) g (library) -8 b(,) 0 694 y(and) 36 b(is) g(analogous) h(to) g(running) e (a) h(utilit) m(y) i(program) e(or) g(application) i(program.) 58 b(Ho) m(w) m(ev) m(er,) 40 b(in) c(a) g(textual) 0 804 y(and) f(legal) i(sense,) f(the) g(link) m(ed) f(executable) i(is) e(a) h(com) m(bined) f(w) m(ork,) i(a) e(deriv) -5 b(ativ) m(e) 37 b(of) e(the) h(original) g(library) -8 b(,) 0 913 y(and) 30 b(the) g(ordinary) g(General) h(Public) f(License) h(treats) h(it) f (as) f(suc) m(h.) 125 1043 y(Because) 37 b(of) f(this) g(blurred) f (distinction,) j(using) d(the) i(ordinary) e(General) i(Public) f (License) g(for) g(libraries) 0 1152 y(did) 30 b(not) g(e\013ectiv) m (ely) j(promote) e(soft) m(w) m(are) h(sharing,) e(b) s(ecause) g(most) h(dev) m(elop) s(ers) g(did) e(not) i(use) f(the) g(libraries.) 0 1262 y(W) -8 b(e) 32 b(concluded) e(that) h(w) m(eak) m(er) h (conditions) e(migh) m(t) h(promote) g(sharing) f(b) s(etter.) 125 1391 y(Ho) m(w) m(ev) m(er,) d(unrestricted) c(linking) h(of) g (non-free) g(programs) f(w) m(ould) h(depriv) m(e) g(the) g(users) f (of) h(those) g(programs) 0 1501 y(of) f(all) g(b) s(ene\014t) e(from) h (the) h(free) g(status) f(of) h(the) f(libraries) h(themselv) m(es.) 39 b(This) 22 b(Library) f(General) j(Public) e(License) 0 1610 y(is) k(in) m(tended) g(to) h(p) s(ermit) f(dev) m(elop) s(ers) g (of) h(non-free) f(programs) g(to) h(use) f(free) g(libraries,) i (while) e(preserving) g(y) m(our) 0 1720 y(freedom) 33 b(as) f(a) i(user) e(of) g(suc) m(h) h(programs) f(to) i(c) m(hange) f (the) g(free) g(libraries) g(that) g(are) g(incorp) s(orated) g(in) f (them.) 0 1829 y(\(W) -8 b(e) 32 b(ha) m(v) m(e) g(not) f(seen) g(ho) m (w) g(to) g(ac) m(hiev) m(e) i(this) e(as) g(regards) f(c) m(hanges) i (in) e(header) h(\014les,) g(but) f(w) m(e) h(ha) m(v) m(e) h(ac) m (hiev) m(ed) 0 1939 y(it) g(as) g(regards) g(c) m(hanges) g(in) g(the) g (actual) h(functions) e(of) h(the) g(Library) -8 b(.\)) 44 b(The) 32 b(hop) s(e) f(is) g(that) i(this) e(will) h(lead) h(to) 0 2048 y(faster) e(dev) m(elopmen) m(t) h(of) e(free) h(libraries.) 125 2178 y(The) 25 b(precise) g(terms) h(and) f(conditions) h(for) f(cop) m (ying,) j(distribution) c(and) h(mo) s(di\014cation) h(follo) m(w.) 40 b(P) m(a) m(y) 27 b(close) 0 2287 y(atten) m(tion) 39 b(to) e(the) g(di\013erence) f(b) s(et) m(w) m(een) i(a) p Fp 37 w(") p Ft(w) m(ork) e(based) g(on) g(the) h(library) p Fp(") p Ft 36 w(and) f(a) p Fp 37 w(") p Ft(w) m(ork) g(that) h(uses) f (the) 0 2397 y(library) p Fp(") p Ft(.) i(The) 24 b(former) g(con) m (tains) i(co) s(de) f(deriv) m(ed) g(from) f(the) h(library) -8 b(,) 26 b(while) f(the) g(latter) h(only) e(w) m(orks) h(together) 0 2506 y(with) 30 b(the) h(library) -8 b(.) 125 2636 y(Note) 36 b(that) g(it) g(is) f(p) s(ossible) g(for) h(a) f(library) g(to) h(b) s (e) f(co) m(v) m(ered) i(b) m(y) e(the) h(ordinary) f(General) h (Public) f(License) 0 2745 y(rather) 30 b(than) g(b) m(y) h(this) f(sp) s(ecial) h(one.) p Fs 0 2987 a(GNU) 45 b(LIBRAR) -11 b(Y) 44 b(GENERAL) h(PUBLIC) g(LICENSE) p Ft 87 3206 a(TERMS) 30 b(AND) h(CONDITIONS) e(F) m(OR) h(COPYING,) h(DISTRIBUTION) e(AND) i(MODIFICA) -8 b(TION) 49 3335 y(1.) 61 b(This) 21 b(License) h(Agreemen) m(t) h(applies) f(to) g(an) m(y) g(soft) m(w) m (are) h(library) f(whic) m(h) f(con) m(tains) i(a) f(notice) h(placed) f (b) m(y) f(the) 180 3445 y(cop) m(yrigh) m(t) 30 b(holder) f(or) g (other) h(authorized) f(part) m(y) h(sa) m(ying) g(it) f(ma) m(y) h(b) s (e) e(distributed) g(under) g(the) h(terms) g(of) 180 3555 y(this) g(Library) f(General) h(Public) g(License) g(\(also) h (called) p Fp 30 w(") p Ft(this) e(License) p Fp(") p Ft(\).) 41 b(Eac) m(h) 29 b(licensee) i(is) d(addressed) 180 3664 y(as) p Fp 31 w(") p Ft(y) m(ou) p Fp(") p Ft(.) 180 3793 y(A) p Fp 43 w(") p Ft(library) p Fp(") p Ft 43 w(means) 43 b(a) h(collection) i(of) d(soft) m(w) m(are) i(functions) e (and/or) g(data) h(prepared) f(so) g(as) h(to) g(b) s(e) 180 3903 y(con) m(v) m(enien) m(tly) 27 b(link) m(ed) e(with) f (application) i(programs) e(\(whic) m(h) h(use) f(some) h(of) f(those) h (functions) f(and) g(data\)) 180 4013 y(to) 31 b(form) f(executables.) 180 4142 y(The) p Fp 42 w(") p Ft(Library) p Fp(") p Ft(,) 45 b(b) s(elo) m(w,) i(refers) 42 b(to) i(an) m(y) f(suc) m(h) g (soft) m(w) m(are) h(library) f(or) g(w) m(ork) g(whic) m(h) g(has) f (b) s(een) h(dis-) 180 4251 y(tributed) 35 b(under) f(these) i(terms.) 57 b(A) p Fp 36 w(") p Ft(w) m(ork) 35 b(based) h(on) f(the) h(Library) p Fp(") p Ft 35 w(means) g(either) g(the) g(Library) e(or) 180 4361 y(an) m(y) g(deriv) -5 b(ativ) m(e) 35 b(w) m(ork) e(under) f(cop) m(yrigh) m(t) j(la) m(w:) 48 b(that) 34 b(is) f(to) h(sa) m(y) -8 b(,) 36 b(a) e(w) m(ork) f(con) m(taining) i(the) f(Library) e(or) 180 4471 y(a) j(p) s(ortion) f(of) h(it,) h(either) g(v) m(erbatim) f(or) f (with) h(mo) s(di\014cations) g(and/or) f(translated) h(straigh) m (tforw) m(ardly) 180 4580 y(in) m(to) d(another) f(language.) 44 b(\(Hereinafter,) 33 b(translation) f(is) f(included) g(without) g (limitation) h(in) f(the) g(term) p Fp 180 4690 a(") p Ft(mo) s(di\014cation) p Fp(") p Ft(.\)) p Fp 180 4819 a(") p Ft(Source) 26 b(co) s(de) p Fp(") p Ft 27 w(for) g(a) i(w) m (ork) e(means) h(the) g(preferred) e(form) i(of) f(the) h(w) m(ork) g (for) g(making) g(mo) s(di\014cations) g(to) 180 4929 y(it.) 40 b(F) -8 b(or) 27 b(a) f(library) -8 b(,) 27 b(complete) h(source) e(co) s(de) g(means) g(all) h(the) g(source) f (co) s(de) g(for) g(all) h(mo) s(dules) e(it) i(con) m(tains,) 180 5038 y(plus) 37 b(an) m(y) i(asso) s(ciated) g(in) m(terface) h (de\014nition) e(\014les,) i(plus) d(the) h(scripts) g(used) f(to) i (con) m(trol) h(compilation) 180 5148 y(and) 30 b(installation) i(of) f (the) f(library) -8 b(.) 180 5277 y(Activities) 27 b(other) d(than) g (cop) m(ying,) j(distribution) d(and) f(mo) s(di\014cation) i(are) g (not) f(co) m(v) m(ered) i(b) m(y) e(this) h(License;) 180 5387 y(they) h(are) g(outside) g(its) g(scop) s(e.) 39 b(The) 25 b(act) i(of) e(running) f(a) i(program) f(using) h(the) f (Library) g(is) h(not) g(restricted,) 180 5496 y(and) k(output) h(from) f(suc) m(h) g(a) i(program) e(is) h(co) m(v) m(ered) h(only) f(if) g (its) g(con) m(ten) m(ts) i(constitute) f(a) f(w) m(ork) g(based) g(on) 180 5606 y(the) c(Library) f(\(indep) s(enden) m(t) h(of) g(the) g(use) g(of) g(the) g(Library) f(in) h(a) g(to) s(ol) h(for) f(writing) g (it\).) 41 b(Whether) 27 b(that) g(is) 180 5715 y(true) j(dep) s(ends) f (on) h(what) g(the) h(Library) e(do) s(es) h(and) g(what) g(the) h (program) f(that) h(uses) f(the) h(Library) e(do) s(es.) 49 5845 y(2.) 61 b(Y) -8 b(ou) 30 b(ma) m(y) g(cop) m(y) g(and) f (distribute) g(v) m(erbatim) h(copies) g(of) f(the) h(Library's) f (complete) h(source) g(co) s(de) g(as) f(y) m(ou) 180 5954 y(receiv) m(e) 37 b(it,) g(in) e(an) m(y) h(medium,) g(pro) m (vided) f(that) h(y) m(ou) g(conspicuously) f(and) f(appropriately) i (publish) e(on) p dyy eop end %%Page: 5 6 TeXDict begin 5 5 bop Ft 0 -116 a(Chapter) 30 b(2:) 41 b(Cop) m(ying) 2941 b(5) 180 365 y(eac) m(h) 36 b(cop) m(y) f(an) g (appropriate) f(cop) m(yrigh) m(t) i(notice) g(and) e(disclaimer) h(of) g(w) m(arran) m(t) m(y;) j(k) m(eep) d(in) m(tact) i(all) e(the) 180 475 y(notices) 30 b(that) e(refer) h(to) g(this) f(License) h(and) f (to) h(the) f(absence) h(of) f(an) m(y) h(w) m(arran) m(t) m(y;) h(and) e(distribute) g(a) h(cop) m(y) 180 584 y(of) i(this) f(License) h (along) g(with) f(the) h(Library) -8 b(.) 180 716 y(Y) g(ou) 25 b(ma) m(y) h(c) m(harge) g(a) f(fee) g(for) g(the) f(ph) m(ysical) i (act) g(of) f(transferring) f(a) h(cop) m(y) -8 b(,) 27 b(and) d(y) m(ou) h(ma) m(y) h(at) f(y) m(our) g(option) 180 826 y(o\013er) 31 b(w) m(arran) m(t) m(y) g(protection) h(in) e(exc) m (hange) i(for) e(a) h(fee.) 49 957 y(3.) 61 b(Y) -8 b(ou) 38 b(ma) m(y) g(mo) s(dify) e(y) m(our) h(cop) m(y) h(or) f(copies) h(of) g (the) f(Library) g(or) g(an) m(y) g(p) s(ortion) g(of) h(it,) h(th) m (us) e(forming) g(a) 180 1067 y(w) m(ork) c(based) f(on) h(the) g (Library) -8 b(,) 33 b(and) f(cop) m(y) i(and) e(distribute) g(suc) m (h) h(mo) s(di\014cations) f(or) h(w) m(ork) g(under) e(the) 180 1176 y(terms) f(of) h(Section) g(1) g(ab) s(o) m(v) m(e,) h(pro) m (vided) e(that) h(y) m(ou) f(also) i(meet) f(all) g(of) g(these) f (conditions:) 229 1308 y(a.) 61 b(The) 30 b(mo) s(di\014ed) f(w) m(ork) i(m) m(ust) f(itself) h(b) s(e) f(a) h(soft) m(w) m(are) g(library) -8 b(.) 224 1439 y(b.) 60 b(Y) -8 b(ou) 29 b(m) m(ust) f(cause) h(the) g (\014les) f(mo) s(di\014ed) f(to) i(carry) g(prominen) m(t) f(notices) i (stating) f(that) g(y) m(ou) g(c) m(hanged) 360 1549 y(the) i(\014les) f(and) g(the) g(date) h(of) g(an) m(y) f(c) m(hange.) 234 1680 y(c.) 61 b(Y) -8 b(ou) 33 b(m) m(ust) g(cause) g(the) f(whole) h(of) g(the) g(w) m(ork) g(to) g(b) s(e) f(licensed) h(at) g(no) g(c) m (harge) h(to) f(all) g(third) f(parties) 360 1790 y(under) d(the) h (terms) h(of) f(this) g(License.) 224 1921 y(d.) 60 b(If) 25 b(a) h(facilit) m(y) i(in) d(the) h(mo) s(di\014ed) e(Library) h (refers) g(to) h(a) g(function) g(or) f(a) h(table) h(of) e(data) i(to) f(b) s(e) f(supplied) 360 2031 y(b) m(y) 39 b(an) g(application) h (program) f(that) h(uses) f(the) g(facilit) m(y) -8 b(,) 44 b(other) 39 b(than) g(as) g(an) g(argumen) m(t) h(passed) 360 2141 y(when) c(the) h(facilit) m(y) h(is) f(in) m(v) m(ok) m(ed,) j (then) d(y) m(ou) g(m) m(ust) f(mak) m(e) i(a) f(go) s(o) s(d) g(faith) g(e\013ort) g(to) h(ensure) e(that,) 360 2250 y(in) j(the) h(ev) m(en) m (t) i(an) e(application) h(do) s(es) e(not) h(supply) f(suc) m(h) g (function) h(or) f(table,) 44 b(the) c(facilit) m(y) i(still) 360 2360 y(op) s(erates,) 31 b(and) f(p) s(erforms) f(whatev) m(er) i(part) f(of) h(its) f(purp) s(ose) f(remains) h(meaningful.) 360 2491 y(\(F) -8 b(or) 38 b(example,) h(a) e(function) f(in) h(a) g (library) f(to) h(compute) g(square) g(ro) s(ots) g(has) f(a) h(purp) s (ose) e(that) i(is) 360 2601 y(en) m(tirely) 29 b(w) m(ell-de\014ned) g (indep) s(enden) m(t) e(of) h(the) h(application.) 41 b(Therefore,) 29 b(Subsection) f(2d) g(requires) 360 2711 y(that) g(an) m(y) f(application-supplied) h(function) f(or) g (table) i(used) d(b) m(y) h(this) g(function) g(m) m(ust) g(b) s(e) g (optional:) 360 2820 y(if) d(the) h(application) g(do) s(es) f(not) h (supply) e(it,) j(the) e(square) g(ro) s(ot) h(function) f(m) m(ust) g (still) h(compute) g(square) 360 2930 y(ro) s(ots.\)) 180 3083 y(These) 32 b(requiremen) m(ts) h(apply) f(to) i(the) e(mo) s (di\014ed) g(w) m(ork) h(as) f(a) h(whole.) 48 b(If) 32 b(iden) m(ti\014able) h(sections) h(of) f(that) 180 3193 y(w) m(ork) e(are) g(not) f(deriv) m(ed) h(from) f(the) h(Library) -8 b(,) 30 b(and) g(can) h(b) s(e) f(reasonably) g(considered) h(indep) s (enden) m(t) e(and) 180 3302 y(separate) 24 b(w) m(orks) e(in) g (themselv) m(es,) k(then) c(this) h(License,) h(and) e(its) h(terms,) i (do) d(not) h(apply) f(to) h(those) g(sections) 180 3412 y(when) k(y) m(ou) h(distribute) g(them) g(as) g(separate) h(w) m (orks.) 40 b(But) 28 b(when) f(y) m(ou) i(distribute) e(the) i(same) f (sections) h(as) 180 3521 y(part) 34 b(of) h(a) g(whole) f(whic) m(h) g (is) h(a) g(w) m(ork) f(based) g(on) h(the) f(Library) -8 b(,) 35 b(the) g(distribution) f(of) g(the) h(whole) g(m) m(ust) 180 3631 y(b) s(e) c(on) i(the) f(terms) g(of) g(this) g(License,) i(whose) e(p) s(ermissions) e(for) i(other) h(licensees) g(extend) f(to) h(the) g (en) m(tire) 180 3741 y(whole,) e(and) f(th) m(us) g(to) h(eac) m(h) g (and) f(ev) m(ery) h(part) f(regardless) h(of) g(who) f(wrote) g(it.) 180 3872 y(Th) m(us,) 44 b(it) e(is) g(not) g(the) g(in) m(ten) m(t) i (of) e(this) f(section) i(to) g(claim) g(righ) m(ts) f(or) g(con) m (test) i(y) m(our) d(righ) m(ts) i(to) f(w) m(ork) 180 3982 y(written) 27 b(en) m(tirely) i(b) m(y) e(y) m(ou;) i(rather,) f (the) g(in) m(ten) m(t) h(is) e(to) h(exercise) h(the) f(righ) m(t) g (to) g(con) m(trol) h(the) e(distribution) 180 4091 y(of) k(deriv) -5 b(ativ) m(e) 31 b(or) g(collectiv) m(e) j(w) m(orks) c(based) g(on) g (the) h(Library) -8 b(.) 180 4223 y(In) 33 b(addition,) h(mere) g (aggregation) i(of) e(another) g(w) m(ork) f(not) h(based) f(on) g(the) h(Library) e(with) i(the) f(Library) 180 4332 y(\(or) 38 b(with) f(a) h(w) m(ork) g(based) f(on) h(the) f(Library\)) g(on) h(a) g (v) m(olume) g(of) g(a) g(storage) h(or) e(distribution) g(medium) 180 4442 y(do) s(es) 30 b(not) h(bring) e(the) i(other) f(w) m(ork) h (under) e(the) h(scop) s(e) h(of) f(this) h(License.) 49 4574 y(4.) 61 b(Y) -8 b(ou) 25 b(ma) m(y) h(opt) f(to) g(apply) g(the) g (terms) f(of) h(the) g(ordinary) f(GNU) i(General) g(Public) e(License) i(instead) f(of) g(this) 180 4683 y(License) 31 b(to) f(a) h(giv) m(en) f(cop) m(y) h(of) f(the) g(Library) -8 b(.) 41 b(T) -8 b(o) 30 b(do) g(this,) g(y) m(ou) g(m) m(ust) g(alter) h(all) g(the) f (notices) h(that) g(refer) 180 4793 y(to) i(this) e(License,) i(so) f (that) h(they) f(refer) f(to) i(the) f(ordinary) f(GNU) h(General) h (Public) f(License,) h(v) m(ersion) f(2,) 180 4902 y(instead) e(of) h (to) g(this) f(License.) 41 b(\(If) 30 b(a) h(new) m(er) f(v) m(ersion) g(than) g(v) m(ersion) h(2) g(of) f(the) g(ordinary) g(GNU) h(General) 180 5012 y(Public) 26 b(License) h(has) f(app) s(eared,) g(then) g(y) m (ou) h(can) f(sp) s(ecify) g(that) h(v) m(ersion) f(instead) h(if) f(y) m(ou) g(wish.\)) 39 b(Do) 27 b(not) 180 5121 y(mak) m(e) k(an) m(y) g (other) g(c) m(hange) g(in) f(these) h(notices.) 180 5253 y(Once) k(this) h(c) m(hange) g(is) g(made) f(in) g(a) h(giv) m (en) g(cop) m(y) -8 b(,) 38 b(it) e(is) g(irrev) m(ersible) g(for) f (that) h(cop) m(y) -8 b(,) 38 b(so) e(the) f(ordinary) 180 5363 y(GNU) j(General) f(Public) g(License) h(applies) f(to) h(all) f (subsequen) m(t) g(copies) h(and) e(deriv) -5 b(ativ) m(e) 38 b(w) m(orks) f(made) 180 5472 y(from) 30 b(that) h(cop) m(y) -8 b(.) 180 5604 y(This) 28 b(option) h(is) g(useful) e(when) h(y) m(ou) h (wish) f(to) h(cop) m(y) h(part) e(of) h(the) g(co) s(de) g(of) f(the) h (Library) f(in) m(to) i(a) f(program) 180 5713 y(that) i(is) f(not) h (a) g(library) -8 b(.) 49 5845 y(5.) 61 b(Y) -8 b(ou) 30 b(ma) m(y) f(cop) m(y) h(and) f(distribute) f(the) h(Library) g(\(or) g (a) h(p) s(ortion) e(or) h(deriv) -5 b(ativ) m(e) 31 b(of) e(it,) h(under) e(Section) i(2\)) 180 5954 y(in) f(ob) 5 b(ject) 30 b(co) s(de) g(or) f(executable) i(form) e(under) f(the) h (terms) h(of) f(Sections) h(1) g(and) f(2) g(ab) s(o) m(v) m(e) i(pro) m (vided) e(that) p dyy eop end %%Page: 6 7 TeXDict begin 6 6 bop Ft 0 -116 a(6) 3243 b(VFlib) 31 b(3.6.14) 180 365 y(y) m(ou) 38 b(accompan) m(y) h(it) e(with) h(the) f (complete) i(corresp) s(onding) d(mac) m(hine-readable) j(source) f(co) s(de,) i(whic) m(h) 180 475 y(m) m(ust) 34 b(b) s(e) g(distributed) g (under) e(the) j(terms) f(of) h(Sections) g(1) g(and) f(2) g(ab) s(o) m (v) m(e) i(on) e(a) h(medium) f(customarily) 180 584 y(used) c(for) g(soft) m(w) m(are) i(in) m(terc) m(hange.) 180 714 y(If) j(distribution) g(of) h(ob) 5 b(ject) 36 b(co) s(de) g(is) g (made) g(b) m(y) f(o\013ering) h(access) h(to) g(cop) m(y) f(from) f(a) h(designated) g(place,) 180 824 y(then) i(o\013ering) g(equiv) -5 b(alen) m(t) 39 b(access) h(to) e(cop) m(y) h(the) f(source) g(co) s (de) g(from) g(the) g(same) g(place) h(satis\014es) f(the) 180 933 y(requiremen) m(t) 33 b(to) h(distribute) f(the) g(source) g(co) s (de,) h(ev) m(en) g(though) f(third) f(parties) h(are) h(not) f(comp) s (elled) h(to) 180 1043 y(cop) m(y) d(the) g(source) f(along) i(with) e (the) g(ob) 5 b(ject) 32 b(co) s(de.) 49 1172 y(6.) 61 b(A) 39 b(program) g(that) g(con) m(tains) h(no) f(deriv) -5 b(ativ) m(e) 41 b(of) e(an) m(y) g(p) s(ortion) g(of) g(the) g(Library) -8 b(,) 41 b(but) d(is) h(designed) g(to) 180 1282 y(w) m(ork) 31 b(with) h(the) f(Library) g(b) m(y) g(b) s(eing) g(compiled) h(or) f (link) m(ed) h(with) f(it,) h(is) g(called) g(a) p Fp 32 w(") p Ft(w) m(ork) f(that) h(uses) f(the) 180 1391 y(Library) p Fp(") p Ft(.) 48 b(Suc) m(h) 32 b(a) i(w) m(ork,) g(in) f (isolation,) i(is) f(not) f(a) g(deriv) -5 b(ativ) m(e) 35 b(w) m(ork) e(of) h(the) f(Library) -8 b(,) 34 b(and) e(therefore) 180 1501 y(falls) f(outside) g(the) f(scop) s(e) h(of) f(this) g(License.) 180 1631 y(Ho) m(w) m(ev) m(er,) 42 b(linking) c(a) p Fp 39 w(") p Ft(w) m(ork) g(that) g(uses) g(the) g(Library) p Fp(") p Ft 37 w(with) g(the) g(Library) f(creates) j(an) e(executable) 180 1740 y(that) 28 b(is) f(a) g(deriv) -5 b(ativ) m(e) 29 b(of) e(the) h(Library) e(\(b) s(ecause) h(it) h(con) m(tains) g(p) s (ortions) f(of) g(the) g(Library\),) h(rather) f(than) 180 1850 y(a) p Fp 27 w(") p Ft(w) m(ork) f(that) h(uses) f(the) g(library) p Fp(") p Ft(.) 39 b(The) 25 b(executable) j(is) f(therefore) f(co) m (v) m(ered) i(b) m(y) f(this) f(License.) 40 b(Section) 180 1959 y(6) 31 b(states) g(terms) g(for) f(distribution) f(of) i(suc) m (h) f(executables.) 180 2089 y(When) k(a) p Fp 35 w(") p Ft(w) m(ork) g(that) h(uses) f(the) h(Library) p Fp(") p Ft 33 w(uses) f(material) i(from) e(a) h(header) f(\014le) h(that) g (is) f(part) h(of) f(the) 180 2198 y(Library) -8 b(,) 30 b(the) f(ob) 5 b(ject) 31 b(co) s(de) e(for) h(the) f(w) m(ork) h(ma) m (y) g(b) s(e) f(a) h(deriv) -5 b(ativ) m(e) 31 b(w) m(ork) e(of) h(the) g(Library) f(ev) m(en) h(though) 180 2308 y(the) 25 b(source) g(co) s (de) f(is) h(not.) 39 b(Whether) 25 b(this) f(is) h(true) f(is) h(esp) s (ecially) h(signi\014can) m(t) f(if) g(the) g(w) m(ork) f(can) h(b) s (e) f(link) m(ed) 180 2418 y(without) 35 b(the) f(Library) -8 b(,) 36 b(or) e(if) g(the) h(w) m(ork) g(is) f(itself) i(a) e(library) -8 b(.) 54 b(The) 34 b(threshold) f(for) i(this) f(to) h(b) s(e) f (true) g(is) 180 2527 y(not) d(precisely) g(de\014ned) e(b) m(y) h(la) m (w.) 180 2657 y(If) f(suc) m(h) g(an) g(ob) 5 b(ject) 30 b(\014le) f(uses) g(only) g(n) m(umerical) h(parameters,) g(data) g (structure) e(la) m(y) m(outs) j(and) e(accessors,) 180 2766 y(and) e(small) h(macros) f(and) g(small) h(inline) f(functions) g (\(ten) h(lines) f(or) h(less) f(in) g(length\),) i(then) e(the) h(use) f(of) g(the) 180 2876 y(ob) 5 b(ject) 28 b(\014le) e(is) h (unrestricted,) g(regardless) g(of) g(whether) f(it) h(is) g(legally) h (a) f(deriv) -5 b(ativ) m(e) 29 b(w) m(ork.) 39 b(\(Executables) 180 2985 y(con) m(taining) 32 b(this) e(ob) 5 b(ject) 31 b(co) s(de) g(plus) e(p) s(ortions) h(of) h(the) f(Library) g(will) h (still) g(fall) g(under) e(Section) i(6.\)) 180 3115 y(Otherwise,) 38 b(if) f(the) g(w) m(ork) f(is) h(a) g(deriv) -5 b(ativ) m(e) 38 b(of) f(the) g(Library) -8 b(,) 38 b(y) m(ou) f(ma) m (y) h(distribute) e(the) h(ob) 5 b(ject) 37 b(co) s(de) 180 3225 y(for) 32 b(the) h(w) m(ork) g(under) e(the) h(terms) h(of) f (Section) i(6.) 47 b(An) m(y) 33 b(executables) h(con) m(taining) g (that) f(w) m(ork) f(also) i(fall) 180 3334 y(under) 29 b(Section) i(6,) g(whether) f(or) g(not) h(they) f(are) h(link) m(ed) g (directly) g(with) f(the) g(Library) g(itself.) 49 3464 y(7.) 61 b(As) 39 b(an) h(exception) g(to) h(the) e(Sections) h(ab) s (o) m(v) m(e,) j(y) m(ou) d(ma) m(y) g(also) h(compile) f(or) f(link) h (a) p Fp 40 w(") p Ft(w) m(ork) f(that) h(uses) 180 3573 y(the) c(Library) p Fp(") p Ft 34 w(with) f(the) g(Library) g(to) h (pro) s(duce) e(a) i(w) m(ork) f(con) m(taining) i(p) s(ortions) e(of) g (the) h(Library) -8 b(,) 36 b(and) 180 3683 y(distribute) h(that) h(w) m (ork) f(under) f(terms) h(of) g(y) m(our) g(c) m(hoice,) k(pro) m (vided) c(that) h(the) g(terms) f(p) s(ermit) f(mo) s(di\014-) 180 3792 y(cation) f(of) e(the) h(w) m(ork) f(for) h(the) f(customer's) h (o) m(wn) f(use) g(and) g(rev) m(erse) h(engineering) g(for) f (debugging) h(suc) m(h) 180 3902 y(mo) s(di\014cations.) 180 4032 y(Y) -8 b(ou) 33 b(m) m(ust) g(giv) m(e) i(prominen) m(t) d (notice) i(with) f(eac) m(h) h(cop) m(y) g(of) f(the) g(w) m(ork) g (that) g(the) g(Library) f(is) h(used) f(in) h(it) 180 4141 y(and) h(that) h(the) g(Library) f(and) g(its) h(use) f(are) h(co) m(v) m(ered) h(b) m(y) f(this) f(License.) 54 b(Y) -8 b(ou) 35 b(m) m(ust) g(supply) e(a) i(cop) m(y) g(of) 180 4251 y(this) 30 b(License.) 41 b(If) 29 b(the) h(w) m(ork) f(during) g (execution) h(displa) m(ys) g(cop) m(yrigh) m(t) h(notices,) g(y) m(ou) f(m) m(ust) g(include) f(the) 180 4360 y(cop) m(yrigh) m(t) 37 b(notice) g(for) f(the) g(Library) f(among) h(them,) h(as) f(w) m(ell) h (as) f(a) g(reference) g(directing) h(the) f(user) f(to) 180 4470 y(the) c(cop) m(y) g(of) f(this) g(License.) 42 b(Also,) 31 b(y) m(ou) g(m) m(ust) f(do) g(one) h(of) g(these) f (things:) 229 4599 y(a.) 61 b(Accompan) m(y) 36 b(the) f(w) m(ork) f (with) h(the) f(complete) j(corresp) s(onding) c(mac) m(hine-readable) j (source) f(co) s(de) 360 4709 y(for) 42 b(the) h(Library) f(including) g (whatev) m(er) i(c) m(hanges) g(w) m(ere) f(used) f(in) g(the) h(w) m (ork) g(\(whic) m(h) g(m) m(ust) f(b) s(e) 360 4819 y(distributed) c (under) g(Sections) i(1) f(and) g(2) g(ab) s(o) m(v) m(e\);) 46 b(and,) 41 b(if) e(the) g(w) m(ork) g(is) g(an) g(executable) i(link) m (ed) 360 4928 y(with) 25 b(the) h(Library) -8 b(,) 27 b(with) e(the) h(complete) h(mac) m(hine-readable) p Fp 27 w(") p Ft(w) m(ork) e(that) i(uses) e(the) h(Library) p Fp(") p Ft(,) f(as) 360 5038 y(ob) 5 b(ject) 24 b(co) s(de) g(and/or) f (source) g(co) s(de,) i(so) f(that) g(the) f(user) g(can) h(mo) s(dify) e(the) h(Library) g(and) g(then) g(relink) 360 5147 y(to) 37 b(pro) s(duce) e(a) h(mo) s(di\014ed) f(executable) i(con) m(taining) h (the) e(mo) s(di\014ed) f(Library) -8 b(.) 57 b(\(It) 36 b(is) g(understo) s(o) s(d) 360 5257 y(that) 46 b(the) g(user) e(who) h (c) m(hanges) i(the) e(con) m(ten) m(ts) i(of) f(de\014nitions) f (\014les) g(in) g(the) h(Library) e(will) i(not) 360 5367 y(necessarily) 31 b(b) s(e) f(able) h(to) g(recompile) g(the) g (application) h(to) f(use) f(the) g(mo) s(di\014ed) g(de\014nitions.\)) 224 5496 y(b.) 60 b(Accompan) m(y) 39 b(the) f(w) m(ork) h(with) e(a) i (written) f(o\013er,) i(v) -5 b(alid) 39 b(for) f(at) g(least) i(three) e(y) m(ears,) j(to) e(giv) m(e) g(the) 360 5606 y(same) c(user) e(the) h (materials) i(sp) s(eci\014ed) d(in) h(Subsection) g(6a,) i(ab) s(o) m (v) m(e,) h(for) c(a) i(c) m(harge) g(no) f(more) h(than) 360 5715 y(the) c(cost) g(of) f(p) s(erforming) g(this) g(distribution.) 234 5845 y(c.) 61 b(If) 30 b(distribution) g(of) h(the) g(w) m(ork) g(is) f (made) h(b) m(y) g(o\013ering) g(access) h(to) f(cop) m(y) h(from) e(a) h(designated) g(place,) 360 5954 y(o\013er) g(equiv) -5 b(alen) m(t) 32 b(access) f(to) g(cop) m(y) h(the) e(ab) s(o) m(v) m(e) i(sp) s(eci\014ed) d(materials) j(from) e(the) h(same) f(place.) p dyy eop end %%Page: 7 8 TeXDict begin 7 7 bop Ft 0 -116 a(Chapter) 30 b(2:) 41 b(Cop) m(ying) 2941 b(7) 224 365 y(d.) 60 b(V) -8 b(erify) 37 b(that) h(the) f(user) f(has) g(already) h(receiv) m(ed) h(a) g(cop) m (y) f(of) g(these) g(materials) h(or) f(that) g(y) m(ou) g(ha) m(v) m (e) 360 475 y(already) 31 b(sen) m(t) g(this) f(user) g(a) h(cop) m(y) -8 b(.) 180 624 y(F) g(or) 30 b(an) e(executable,) j(the) f(required) e (form) g(of) h(the) p Fp 29 w(") p Ft(w) m(ork) g(that) g(uses) g(the) g (Library) p Fp(") p Ft 28 w(m) m(ust) f(include) h(an) m(y) 180 734 y(data) 38 b(and) f(utilit) m(y) h(programs) f(needed) g(for) g (repro) s(ducing) f(the) h(executable) i(from) e(it.) 61 b(Ho) m(w) m(ev) m(er,) 42 b(as) 37 b(a) 180 844 y(sp) s(ecial) f (exception,) h(the) e(source) g(co) s(de) h(distributed) e(need) g(not) i(include) e(an) m(ything) i(that) f(is) g(normally) 180 953 y(distributed) 28 b(\(in) i(either) f(source) h(or) f(binary) g (form\)) g(with) g(the) g(ma) 5 b(jor) 30 b(comp) s(onen) m(ts) f (\(compiler,) i(k) m(ernel,) 180 1063 y(and) j(so) h(on\)) g(of) g(the) g(op) s(erating) h(system) e(on) h(whic) m(h) g(the) g(executable) h (runs,) f(unless) f(that) h(comp) s(onen) m(t) 180 1172 y(itself) c(accompanies) h(the) f(executable.) 180 1302 y(It) 25 b(ma) m(y) g(happ) s(en) e(that) i(this) f(requiremen) m(t) h (con) m(tradicts) h(the) f(license) h(restrictions) f(of) g(other) g (proprietary) 180 1411 y(libraries) e(that) h(do) f(not) g(normally) g (accompan) m(y) i(the) e(op) s(erating) g(system.) 39 b(Suc) m(h) 22 b(a) i(con) m(tradiction) h(means) 180 1521 y(y) m(ou) 31 b(cannot) g(use) f(b) s(oth) f(them) i(and) f(the) g (Library) g(together) h(in) f(an) h(executable) h(that) f(y) m(ou) f (distribute.) 49 1650 y(8.) 61 b(Y) -8 b(ou) 26 b(ma) m(y) g(place) h (library) e(facilities) j(that) f(are) f(a) g(w) m(ork) f(based) h(on) f (the) h(Library) f(side-b) m(y-side) h(in) g(a) g(single) 180 1760 y(library) g(together) h(with) f(other) g(library) g(facilities) i (not) e(co) m(v) m(ered) i(b) m(y) e(this) g(License,) i(and) d (distribute) h(suc) m(h) 180 1870 y(a) e(com) m(bined) g(library) -8 b(,) 25 b(pro) m(vided) e(that) h(the) g(separate) g(distribution) f (of) h(the) f(w) m(ork) h(based) f(on) h(the) f(Library) 180 1979 y(and) 35 b(of) i(the) f(other) g(library) g(facilities) i(is) e (otherwise) h(p) s(ermitted,) g(and) e(pro) m(vided) h(that) h(y) m(ou) f(do) g(these) 180 2089 y(t) m(w) m(o) c(things:) 229 2218 y(1.) 61 b(Accompan) m(y) 32 b(the) g(com) m(bined) f(library) g (with) g(a) g(cop) m(y) h(of) g(the) f(same) h(w) m(ork) f(based) g(on) g(the) h(Library) -8 b(,) 360 2328 y(uncom) m(bined) 25 b(with) h(an) m(y) g(other) g(library) f(facilities.) 42 b(This) 25 b(m) m(ust) g(b) s(e) g(distributed) g(under) g(the) h (terms) 360 2438 y(of) 31 b(the) f(Sections) h(ab) s(o) m(v) m(e.) 229 2567 y(2.) 61 b(Giv) m(e) 35 b(prominen) m(t) e(notice) i(with) e(the) g (com) m(bined) h(library) f(of) g(the) h(fact) g(that) g(part) g(of) f (it) h(is) g(a) f(w) m(ork) 360 2677 y(based) 24 b(on) g(the) h (Library) -8 b(,) 25 b(and) f(explaining) h(where) f(to) h(\014nd) e (the) h(accompan) m(ying) i(uncom) m(bined) e(form) 360 2786 y(of) 31 b(the) f(same) h(w) m(ork.) 49 2916 y(9.) 61 b(Y) -8 b(ou) 21 b(ma) m(y) g(not) g(cop) m(y) -8 b(,) 24 b(mo) s(dify) -8 b(,) 23 b(sublicense,) g(link) d(with,) j(or) d (distribute) g(the) h(Library) f(except) i(as) f(expressly) 180 3025 y(pro) m(vided) 29 b(under) f(this) i(License.) 41 b(An) m(y) 29 b(attempt) i(otherwise) f(to) g(cop) m(y) -8 b(,) 32 b(mo) s(dify) -8 b(,) 29 b(sublicense,) h(link) g(with,) 180 3135 y(or) 36 b(distribute) f(the) h(Library) f(is) h(v) m(oid,) i(and) d(will) h(automatically) j(terminate) d(y) m(our) g(righ) m(ts) g (under) f(this) 180 3244 y(License.) 43 b(Ho) m(w) m(ev) m(er,) 33 b(parties) e(who) f(ha) m(v) m(e) i(receiv) m(ed) g(copies,) g(or) f (righ) m(ts,) h(from) e(y) m(ou) h(under) e(this) i(License) 180 3354 y(will) g(not) f(ha) m(v) m(e) i(their) e(licenses) i(terminated) e (so) h(long) g(as) g(suc) m(h) f(parties) g(remain) h(in) f(full) g (compliance.) 4 3484 y(10.) 61 b(Y) -8 b(ou) 28 b(are) g(not) g (required) f(to) h(accept) h(this) f(License,) h(since) f(y) m(ou) g (ha) m(v) m(e) g(not) g(signed) g(it.) 40 b(Ho) m(w) m(ev) m(er,) 30 b(nothing) 180 3593 y(else) 25 b(gran) m(ts) g(y) m(ou) f(p) s (ermission) g(to) g(mo) s(dify) g(or) g(distribute) g(the) g(Library) g (or) g(its) g(deriv) -5 b(ativ) m(e) 26 b(w) m(orks.) 39 b(These) 180 3703 y(actions) 30 b(are) f(prohibited) g(b) m(y) f(la) m (w) i(if) f(y) m(ou) g(do) g(not) g(accept) i(this) d(License.) 41 b(Therefore,) 29 b(b) m(y) g(mo) s(difying) f(or) 180 3812 y(distributing) 22 b(the) i(Library) e(\(or) h(an) m(y) h(w) m (ork) f(based) g(on) g(the) g(Library\),) h(y) m(ou) g(indicate) g(y) m (our) f(acceptance) i(of) 180 3922 y(this) h(License) g(to) g(do) g (so,) h(and) e(all) i(its) f(terms) g(and) f(conditions) h(for) f(cop) m (ying,) j(distributing) d(or) h(mo) s(difying) 180 4032 y(the) 31 b(Library) e(or) h(w) m(orks) h(based) f(on) g(it.) 4 4161 y(11.) 61 b(Eac) m(h) 35 b(time) g(y) m(ou) g(redistribute) f(the) g(Library) g(\(or) h(an) m(y) f(w) m(ork) h(based) f(on) g(the) h (Library\),) g(the) f(recipien) m(t) 180 4271 y(automatically) j (receiv) m(es) f(a) e(license) h(from) f(the) g(original) i(licensor) e (to) h(cop) m(y) -8 b(,) 37 b(distribute,) e(link) f(with) f(or) 180 4380 y(mo) s(dify) 26 b(the) h(Library) f(sub) 5 b(ject) 26 b(to) h(these) g(terms) g(and) f(conditions.) 40 b(Y) -8 b(ou) 27 b(ma) m(y) h(not) e(imp) s(ose) h(an) m(y) g(further) 180 4490 y(restrictions) j(on) f(the) g(recipien) m(ts') h(exercise) g(of) f (the) g(righ) m(ts) h(gran) m(ted) g(herein.) 39 b(Y) -8 b(ou) 30 b(are) f(not) g(resp) s(onsible) 180 4599 y(for) h(enforcing) h (compliance) h(b) m(y) e(third) f(parties) i(to) g(this) f(License.) 4 4729 y(12.) 61 b(If,) 40 b(as) f(a) g(consequence) h(of) e(a) h(court) g (judgmen) m(t) f(or) h(allegation) i(of) e(paten) m(t) g(infringemen) m (t) g(or) g(for) f(an) m(y) 180 4839 y(other) j(reason) g(\(not) h (limited) g(to) g(paten) m(t) g(issues\),) h(conditions) f(are) f(imp) s (osed) g(on) f(y) m(ou) i(\(whether) f(b) m(y) 180 4948 y(court) 28 b(order,) f(agreemen) m(t) j(or) d(otherwise\)) h(that) g (con) m(tradict) i(the) d(conditions) h(of) g(this) f(License,) i(they) f(do) 180 5058 y(not) h(excuse) g(y) m(ou) g(from) f(the) h(conditions) h(of) e(this) h(License.) 41 b(If) 28 b(y) m(ou) h(cannot) g (distribute) g(so) g(as) g(to) g(satisfy) 180 5167 y(sim) m (ultaneously) 24 b(y) m(our) e(obligations) j(under) c(this) h(License) i(and) e(an) m(y) h(other) g(p) s(ertinen) m(t) g(obligations,) j(then) 180 5277 y(as) h(a) h(consequence) g(y) m(ou) f(ma) m(y) h(not) f (distribute) g(the) g(Library) f(at) i(all.) 40 b(F) -8 b(or) 28 b(example,) h(if) e(a) g(paten) m(t) h(license) 180 5386 y(w) m(ould) k(not) g(p) s(ermit) f(ro) m(y) m(alt) m(y-free) k (redistribution) c(of) h(the) g(Library) f(b) m(y) h(all) g(those) h (who) e(receiv) m(e) j(copies) 180 5496 y(directly) 40 b(or) f(indirectly) h(through) e(y) m(ou,) k(then) d(the) h(only) f(w) m (a) m(y) h(y) m(ou) g(could) f(satisfy) h(b) s(oth) e(it) i(and) f (this) 180 5606 y(License) 31 b(w) m(ould) f(b) s(e) g(to) h(refrain) f (en) m(tirely) h(from) f(distribution) g(of) h(the) f(Library) -8 b(.) 180 5735 y(If) 31 b(an) m(y) h(p) s(ortion) f(of) h(this) g (section) h(is) e(held) h(in) m(v) -5 b(alid) 32 b(or) f(unenforceable) h(under) e(an) m(y) i(particular) g(circum-) 180 5845 y(stance,) 26 b(the) e(balance) h(of) f(the) g(section) h(is) f(in) m (tended) g(to) g(apply) -8 b(,) 26 b(and) d(the) h(section) h(as) f(a) h (whole) f(is) g(in) m(tended) 180 5954 y(to) 31 b(apply) f(in) g(other) h(circumstances.) p dyy eop end %%Page: 8 9 TeXDict begin 8 8 bop Ft 0 -116 a(8) 3243 b(VFlib) 31 b(3.6.14) 180 365 y(It) e(is) f(not) h(the) g(purp) s(ose) e(of) h (this) h(section) h(to) f(induce) f(y) m(ou) h(to) g(infringe) f(an) m (y) h(paten) m(ts) h(or) e(other) h(prop) s(ert) m(y) 180 475 y(righ) m(t) 35 b(claims) g(or) g(to) g(con) m(test) h(v) -5 b(alidit) m(y) 36 b(of) e(an) m(y) h(suc) m(h) f(claims;) k(this) c (section) i(has) e(the) g(sole) i(purp) s(ose) c(of) 180 584 y(protecting) 37 b(the) f(in) m(tegrit) m(y) j(of) d(the) g(free) g (soft) m(w) m(are) i(distribution) d(system) h(whic) m(h) g(is) g (implemen) m(ted) h(b) m(y) 180 694 y(public) 30 b(license) i (practices.) 43 b(Man) m(y) 31 b(p) s(eople) g(ha) m(v) m(e) h(made) f (generous) g(con) m(tributions) g(to) h(the) f(wide) f(range) 180 804 y(of) 39 b(soft) m(w) m(are) i(distributed) d(through) g(that) h (system) g(in) g(reliance) h(on) f(consisten) m(t) h(application) h(of) e(that) 180 913 y(system;) 33 b(it) f(is) g(up) f(to) i(the) f (author/donor) g(to) g(decide) h(if) e(he) h(or) g(she) g(is) g (willing) g(to) h(distribute) e(soft) m(w) m(are) 180 1023 y(through) f(an) m(y) g(other) h(system) g(and) e(a) i(licensee) h (cannot) f(imp) s(ose) f(that) h(c) m(hoice.) 180 1171 y(This) h(section) h(is) g(in) m(tended) f(to) h(mak) m(e) h (thoroughly) e(clear) h(what) g(is) f(b) s(eliev) m(ed) h(to) h(b) s(e) d(a) i(consequence) g(of) 180 1281 y(the) e(rest) f(of) h(this) f (License.) 4 1430 y(13.) 61 b(If) 41 b(the) i(distribution) e(and/or) h (use) f(of) h(the) g(Library) g(is) f(restricted) i(in) f(certain) h (coun) m(tries) f(either) h(b) m(y) 180 1539 y(paten) m(ts) 34 b(or) g(b) m(y) f(cop) m(yrigh) m(ted) i(in) m(terfaces,) h(the) e (original) h(cop) m(yrigh) m(t) g(holder) e(who) g(places) i(the) e (Library) 180 1649 y(under) 26 b(this) i(License) g(ma) m(y) g(add) f (an) g(explicit) i(geographical) h(distribution) d(limitation) i (excluding) f(those) 180 1758 y(coun) m(tries,) e(so) e(that) h (distribution) e(is) h(p) s(ermitted) g(only) g(in) g(or) g(among) g (coun) m(tries) h(not) f(th) m(us) g(excluded.) 38 b(In) 180 1868 y(suc) m(h) 29 b(case,) i(this) e(License) h(incorp) s(orates) f (the) h(limitation) h(as) e(if) h(written) f(in) g(the) g(b) s(o) s(dy) f(of) h(this) h(License.) 4 2017 y(14.) 61 b(The) 42 b(F) -8 b(ree) 44 b(Soft) m(w) m(are) g(F) -8 b(oundation) 43 b(ma) m(y) g(publish) e(revised) i(and/or) f(new) h(v) m(ersions) g(of) f(the) h(Library) 180 2126 y(General) 28 b(Public) f(License) h(from) f (time) h(to) g(time.) 41 b(Suc) m(h) 26 b(new) h(v) m(ersions) h(will) g (b) s(e) e(similar) i(in) f(spirit) g(to) h(the) 180 2236 y(presen) m(t) i(v) m(ersion,) i(but) d(ma) m(y) i(di\013er) f(in) g(detail) i(to) f(address) e(new) h(problems) g(or) g(concerns.) 180 2384 y(Eac) m(h) 39 b(v) m(ersion) g(is) g(giv) m(en) g(a) g (distinguishing) f(v) m(ersion) h(n) m(um) m(b) s(er.) 64 b(If) 38 b(the) g(Library) g(sp) s(eci\014es) g(a) h(v) m(ersion) 180 2494 y(n) m(um) m(b) s(er) 30 b(of) i(this) f(License) h(whic) m(h) f (applies) h(to) g(it) g(and) p Fp 31 w(") p Ft(an) m(y) g(later) g(v) m (ersion) p Fp(") p Ft(,) g(y) m(ou) g(ha) m(v) m(e) h(the) e(option) h (of) 180 2604 y(follo) m(wing) j(the) e(terms) g(and) g(conditions) h (either) f(of) h(that) f(v) m(ersion) h(or) f(of) h(an) m(y) f(later) i (v) m(ersion) e(published) 180 2713 y(b) m(y) c(the) h(F) -8 b(ree) 31 b(Soft) m(w) m(are) f(F) -8 b(oundation.) 42 b(If) 29 b(the) g(Library) g(do) s(es) g(not) h(sp) s(ecify) f(a) h (license) h(v) m(ersion) f(n) m(um) m(b) s(er,) 180 2823 y(y) m(ou) h(ma) m(y) g(c) m(ho) s(ose) g(an) m(y) g(v) m(ersion) g(ev) m(er) g(published) d(b) m(y) j(the) f(F) -8 b(ree) 32 b(Soft) m(w) m(are) f(F) -8 b(oundation.) 4 2971 y(15.) 61 b(If) 29 b(y) m(ou) g(wish) g(to) h(incorp) s(orate) g(parts) f(of) g (the) h(Library) e(in) m(to) i(other) g(free) f(programs) g(whose) g (distribution) 180 3081 y(conditions) 43 b(are) g(incompatible) g(with) f(these,) k(write) d(to) g(the) f(author) g(to) h(ask) g(for) f(p) s (ermission.) 76 b(F) -8 b(or) 180 3191 y(soft) m(w) m(are) 32 b(whic) m(h) e(is) g(cop) m(yrigh) m(ted) i(b) m(y) e(the) h(F) -8 b(ree) 31 b(Soft) m(w) m(are) g(F) -8 b(oundation,) 32 b(write) e(to) h(the) g(F) -8 b(ree) 31 b(Soft) m(w) m(are) 180 3300 y(F) -8 b(oundation;) 28 b(w) m(e) f(sometimes) g(mak) m(e) g (exceptions) g(for) f(this.) 39 b(Our) 25 b(decision) i(will) f(b) s(e) f(guided) h(b) m(y) g(the) g(t) m(w) m(o) 180 3410 y(goals) 36 b(of) f(preserving) f(the) g(free) h(status) g(of) f(all) i(deriv) -5 b(ativ) m(es) 36 b(of) e(our) g(free) h(soft) m(w) m(are) h(and) e(of) g (promoting) 180 3519 y(the) d(sharing) f(and) f(reuse) h(of) h(soft) m (w) m(are) h(generally) -8 b(.) p Fs 180 3833 a(NO) 45 b(W) -15 b(ARRANTY) p Ft 4 4052 a(16.) 61 b(BECA) m(USE) 36 b(THE) g(LIBRAR) -8 b(Y) 37 b(IS) f(LICENSED) f(FREE) h(OF) g(CHAR) m (GE,) h(THERE) f(IS) g(NO) g(W) -10 b(AR-) 180 4162 y(RANTY) 45 b(F) m(OR) h(THE) f(LIBRAR) -8 b(Y,) 46 b(TO) e(THE) h(EXTENT) g (PERMITTED) f(BY) i(APPLICABLE) 180 4271 y(LA) -10 b(W.) 59 b(EX) m(CEPT) e(WHEN) i(OTHER) -10 b(WISE) 57 b(ST) -8 b(A) g(TED) 58 b(IN) g(WRITING) g(THE) g(COPYRIGHT) 180 4381 y(HOLDERS) 45 b(AND/OR) i(OTHER) e(P) -8 b(AR) g(TIES) 46 b(PR) m(O) m(VIDE) h(THE) e(LIBRAR) -8 b(Y) p Fp 47 w(") p Ft(AS) 45 b(IS) p Fp(") p Ft 45 w(WITH-) 180 4491 y(OUT) 23 b(W) -10 b(ARRANTY) 23 b(OF) g(ANY) h(KIND,) f(EITHER) g(EXPRESSED) f (OR) h(IMPLIED,) g(INCLUDING,) 180 4600 y(BUT) 44 b(NOT) f(LIMITED) g (TO,) g(THE) h(IMPLIED) f(W) -10 b(ARRANTIES) 43 b(OF) h(MER) m(CHANT) -8 b(ABILITY) 180 4710 y(AND) 41 b(FITNESS) e(F) m(OR) i(A) g(P) -8 b(AR) g(TICULAR) 40 b(PURPOSE.) g(THE) g(ENTIRE) g(RISK) f(AS) h(TO) g (THE) 180 4819 y(QUALITY) 33 b(AND) h(PERF) m(ORMANCE) g(OF) f(THE) g (LIBRAR) -8 b(Y) 34 b(IS) f(WITH) g(YOU.) h(SHOULD) f(THE) 180 4929 y(LIBRAR) -8 b(Y) 43 b(PR) m(O) m(VE) g(DEFECTIVE,) g(YOU) f (ASSUME) g(THE) g(COST) f(OF) i(ALL) f(NECESSAR) -8 b(Y) 180 5039 y(SER) e(VICING,) 30 b(REP) -8 b(AIR) 30 b(OR) g(CORRECTION.) 4 5187 y(17.) 61 b(IN) 43 b(NO) f(EVENT) g(UNLESS) g(REQUIRED) g(BY) h (APPLICABLE) f(LA) -10 b(W) 43 b(OR) f(A) m(GREED) i(TO) e(IN) 180 5297 y(WRITING) 30 b(WILL) g(ANY) g(COPYRIGHT) f(HOLDER,) h(OR) f(ANY) i (OTHER) e(P) -8 b(AR) g(TY) 30 b(WHO) g(MA) -8 b(Y) 180 5406 y(MODIFY) 43 b(AND/OR) g(REDISTRIBUTE) e(THE) h(LIBRAR) -8 b(Y) 43 b(AS) f(PERMITTED) f(ABO) m(VE,) i(BE) 180 5516 y(LIABLE) d(TO) e(YOU) i(F) m(OR) g(D) m(AMA) m(GES,) i(INCLUDING) e (ANY) g(GENERAL,) g(SPECIAL,) f(INCI-) 180 5626 y(DENT) -8 b(AL) 44 b(OR) f(CONSEQUENTIAL) e(D) m(AMA) m(GES) k(ARISING) e(OUT) g (OF) g(THE) g(USE) f(OR) h(IN-) 180 5735 y(ABILITY) 37 b(TO) g(USE) g(THE) g(LIBRAR) -8 b(Y) 38 b(\(INCLUDING) h(BUT) e(NOT) g (LIMITED) h(TO) e(LOSS) g(OF) 180 5845 y(D) m(A) -8 b(T) g(A) 43 b(OR) d(D) m(A) -8 b(T) g(A) 43 b(BEING) f(RENDERED) f(INA) m(CCURA) -8 b(TE) 42 b(OR) e(LOSSES) f(SUST) -8 b(AINED) 41 b(BY) 180 5954 y(YOU) 30 b(OR) g(THIRD) g(P) -8 b(AR) g(TIES) 30 b(OR) f(A) i(F) -10 b(AILURE) 30 b(OF) g(THE) g(LIBRAR) -8 b(Y) 30 b(TO) g(OPERA) -8 b(TE) 29 b(WITH) p dyy eop end %%Page: 9 10 TeXDict begin 9 9 bop Ft 0 -116 a(Chapter) 30 b(2:) 41 b(Cop) m(ying) 2941 b(9) 180 365 y(ANY) 23 b(OTHER) f(SOFTW) -10 b(ARE\),) 22 b(EVEN) h(IF) f(SUCH) g(HOLDER) g(OR) g(OTHER) g(P) -8 b(AR) g(TY) 23 b(HAS) f(BEEN) 180 475 y(AD) m(VISED) 31 b(OF) g(THE) f(POSSIBILITY) e(OF) i(SUCH) g(D) m(AMA) m(GES.) p Fs 0 732 a(END) 45 b(OF) g(TERMS) f(AND) h(CONDITIONS) p dyy eop end %%Page: 10 11 TeXDict begin 10 10 bop Ft 0 -116 a(10) 3198 b(VFlib) 31 b(3.6.14) p Fs 0 365 a(App) t(endix:) 66 b(Ho) l(w) 46 b(to) g(Apply) e(These) h(T) -11 b(erms) 44 b(to) i(Y) -11 b(our) 44 b(New) h(Libraries) p Ft 125 609 a(If) 27 b(y) m(ou) h(dev) m (elop) h(a) f(new) f(library) -8 b(,) 29 b(and) e(y) m(ou) i(w) m(an) m (t) f(it) h(to) f(b) s(e) f(of) i(the) f(greatest) h(p) s(ossible) f (use) f(to) i(the) f(public,) 0 719 y(w) m(e) 41 b(recommend) f(making) h(it) g(free) g(soft) m(w) m(are) h(that) f(ev) m(ery) m(one) i(can) d (redistribute) h(and) f(c) m(hange.) 72 b(Y) -8 b(ou) 41 b(can) 0 829 y(do) 32 b(so) h(b) m(y) g(p) s(ermitting) f (redistribution) g(under) f(these) i(terms) g(\(or,) h(alternativ) m (ely) -8 b(,) 36 b(under) 31 b(the) i(terms) g(of) f(the) 0 938 y(ordinary) e(General) h(Public) f(License\).) 125 1073 y(T) -8 b(o) 31 b(apply) f(these) i(terms,) f(attac) m(h) i(the) e (follo) m(wing) h(notices) g(to) g(the) f(library) -8 b(.) 43 b(It) 31 b(is) f(safest) i(to) g(attac) m(h) h(them) 0 1182 y(to) 28 b(the) f(start) h(of) f(eac) m(h) h(source) g(\014le) f (to) h(most) f(e\013ectiv) m(ely) j(con) m(v) m(ey) f(the) e(exclusion) h(of) f(w) m(arran) m(t) m(y;) j(and) c(eac) m(h) i(\014le) 0 1292 y(should) h(ha) m(v) m(e) j(at) f(least) h(the) p Fp 30 w(") p Ft(cop) m(yrigh) m(t) p Fp(") p Ft 32 w(line) e(and) g(a) h (p) s(oin) m(ter) f(to) h(where) f(the) h(full) f(notice) h(is) g (found.) p Fo 240 1404 a(one) 40 b(line) g(to) g(give) g(the) g (library's) h(name) f(and) g(a) g(brief) g(idea) g(of) g(what) g(it) g (does.) p Fn 240 1491 a(Copyright) h(\(C\)) p Fo 40 w(year) 88 b(name) 40 b(of) g(author) p Fn 240 1665 a(This) g(library) h(is) f (free) g(software;) h(you) f(can) g(redistribute) i(it) e(and/or) 240 1753 y(modify) h(it) e(under) i(the) f(terms) g(of) g(the) g(GNU) f (Library) i(General) g(Public) 240 1840 y(License) g(as) e(published) j (by) d(the) h(Free) h(Software) g(Foundation;) g(either) 240 1927 y(version) g(2) e(of) h(the) g(License,) h(or) f(\(at) g(your) g (option\)) g(any) g(later) h(version.) 240 2101 y(This) f(library) h (is) f(distributed) h(in) f(the) g(hope) g(that) g(it) g(will) g(be) g (useful,) 240 2188 y(but) g(WITHOUT) h(ANY) f(WARRANTY;) h(without) g (even) f(the) g(implied) h(warranty) g(of) 240 2276 y(MERCHANTABILITY) i (or) c(FITNESS) i(FOR) f(A) g(PARTICULAR) h(PURPOSE.) 80 b(See) 40 b(the) g(GNU) 240 2363 y(Library) h(General) g(Public) f (License) h(for) f(more) g(details.) 240 2537 y(You) g(should) g(have) h (received) g(a) e(copy) h(of) g(the) g(GNU) g(Library) h(General) f (Public) 240 2624 y(License) h(along) f(with) g(this) g(library;) i(if) d(not,) h(write) h(to) e(the) h(Free) 240 2711 y(Software) h (Foundation,) h(Inc.,) e(675) g(Mass) g(Ave,) g(Cambridge,) i(MA) e (02139,) g(USA.) p Ft 125 2846 a(Also) 31 b(add) e(information) i(on) f (ho) m(w) h(to) g(con) m(tact) i(y) m(ou) d(b) m(y) g(electronic) j (and) d(pap) s(er) f(mail.) 125 2980 y(Y) -8 b(ou) 32 b(should) f(also) i(get) g(y) m(our) f(emplo) m(y) m(er) i(\(if) e(y) m (ou) h(w) m(ork) f(as) g(a) h(programmer\)) e(or) i(y) m(our) f(sc) m (ho) s(ol,) h(if) f(an) m(y) -8 b(,) 34 b(to) 0 3090 y(sign) c(a) p Fp 31 w(") p Ft(cop) m(yrigh) m(t) i(disclaimer) p Fp(") p Ft 30 w(for) f(the) f(library) -8 b(,) 31 b(if) f(necessary) -8 b(.) 42 b(Here) 31 b(is) f(a) h(sample;) f(alter) i(the) e(names:) p Fn 318 3202 a(Yoyodyne,) 42 b(Inc.,) e(hereby) h(disclaims) g(all) f (copyright) h(interest) g(in) f(the) 318 3289 y(library) h(`Frob') g (\(a) f(library) g(for) g(tweaking) h(knobs\)) g(written) g(by) e (James) i(Random) f(Hacker.) p Fo 318 3464 a(signature) i(of) d(Ty) h (Coon) p Fn(,) g(1) g(April) g(1990) 318 3551 y(Ty) g(Coon,) g (President) i(of) d(Vice) p Ft 125 3685 a(That's) 30 b(all) h(there) g(is) f(to) h(it!) p dyy eop end %%Page: 11 12 TeXDict begin 11 11 bop Ft 0 -116 a(Chapter) 30 b(3:) 41 b(In) m(tro) s(duction) 2726 b(11) p Fr 0 365 a(3) 80 b(In) l(tro) t(duction) p Ft 125 627 a(T) -8 b(o) s(da) m(y) 30 b(man) m(y) g(fon) m(t) g(\014les) g(are) g(a) m(v) -5 b(ailable) 33 b(in) c(v) -5 b(arious) 30 b(fon) m(t) h(\014le) f (formats.) 40 b(When) 30 b(w) m(e) g(need) g(a) g(soft) m(w) m(are) i (to) 0 737 y(displa) m(y) e(or) h(prin) m(t) e(c) m(haracters) j(whic) m (h) e(do) s(es) g(not) g(dep) s(end) f(on) h(a) h(windo) m(wing) e (system) i(and/or) f(an) g(op) s(erating) 0 846 y(system,) 44 b(w) m(e) d(m) m(ust) g(write) g(in) m(terface) h(routines) f(for) f (accessing) i(fon) m(t) g(\014les) e(in) h(eac) m(h) h(application) g (soft) m(w) m(are) 0 956 y(again) 28 b(and) e(again.) 41 b(T) -8 b(o) 27 b(do) g(this,) h(programmers) e(m) m(ust) h(ha) m(v) m (e) h(kno) m(wledge) g(on) f(fon) m(t) g(\014le) g(formats;) i(it) e (will) h(b) s(e) e(a) 0 1066 y(hard) j(task) i(for) f(programmers) f (if) h(the) h(n) m(um) m(b) s(er) d(of) j(fon) m(t) f(formats) h(that) f (an) g(application) i(soft) m(w) m(are) f(supp) s(orts) 0 1175 y(b) s(ecomes) g(large.) 125 1319 y(VFlib) 21 b(is) g(a) g(fon) m (t) g(library) g(written) f(in) h(C) f(pro) m(viding) h(sev) m(eral) h (functions) f(to) g(obtain) g(bitmaps) g(of) g(c) m(haracters.) 0 1429 y(VFlib) 45 b(hides) f(the) g(fon) m(t) h(format) g(of) f(fon) m (t) h(\014les) f(and) g(pro) m(vides) g(a) h(uni\014ed) e(API) h(for) g (all) h(supp) s(orted) e(fon) m(t) 0 1538 y(formats.) 80 b(Th) m(us,) 46 b(programmers) d(for) h(application) h(soft) m(w) m (are) g(need) e(not) h(ha) m(v) m(e) g(kno) m(wledge) h(on) e(fon) m(t) h(\014le) 0 1648 y(formats.) d(Instead,) 30 b(an) m(y) h(soft) m(w) m (are) h(using) e(VFlib) h(can) f(supp) s(ort) f(v) -5 b(arious) 30 b(fon) m(t) h(\014le) g(formats) f(immediately) -8 b(.) 125 1791 y(This) 33 b(do) s(cumen) m(t) i(describ) s(es) f(the) h (fundamen) m(tal) f(concepts) i(of) f(VFlib) g(and) f(giv) m(es) i(a) f (brief) f(in) m(tro) s(duction) 0 1901 y(in) c(writing) g(programs) g (using) g(VFlib.) 125 2045 y(As) 48 b(describ) s(ed) f(ab) s(o) m(v) m (e,) 54 b(VFlib) 49 b(supp) s(orts) d(man) m(y) j(fon) m(t) f(\014le) h (formats) f(and) g(absorbs) f(di\013erences) i(b) s(e-) 0 2154 y(t) m(w) m(een) 35 b(fon) m(t) f(\014le) g(formats.) 52 b(Curren) m(tly) -8 b(,) 34 b(VFlib) h(supp) s(orts) d(the) i(follo) m (wing) h(fon) m(t) f(\014le) g(formats:) 48 b(PCF,) 34 b(BDF,) 0 2264 y(HBF,) d(T) -8 b(rueT) m(yp) s(e,) 30 b(T) m(yp) s(e1,) h(GF,) g(PK,) f(Virtual) h(F) -8 b(on) m(ts,) 32 b(TFM,) e(Sy) m(otaiKurabu) g(\(a) h(v) m(ector) h(fon) m(t) f(format) g (for) 0 2374 y(Japanese) c(Kanji) g(c) m(haracters\),) j(JG) d (\(another) h(v) m(ector) h(fon) m(t) e(format) h(for) f(Japanese) g (Kanji) g(c) m(haracters\),) j(and) 0 2483 y(eKanji) g(\(a) i(bitmap) e (fon) m(t) h(format) f(for) g(Kanji) g(c) m(haracters\).) 125 2627 y(The) f(VFlib) i(system) g(consists) g(of) f(t) m(w) m(o) i (parts:) 0 2800 y(A) e(library) g(\(`) p Fp(libVFlib.a) p Ft(') f(and/or) h(`) p Fp(libVFlib.so) p Ft('\)) 480 2910 y(It) c(pro) m(vides) g(sev) m(eral) h(C) f(functions.) 39 b(An) m(y) 26 b(application) h(soft) m(w) m(are) h(using) d(VFlib) i(m) m(ust) f(link) g(this) 480 3019 y(library) -8 b(.) 480 3159 y(VFlib) 32 b(\(optionally\)) h(uses) e(kpathsea,) i(F) -8 b(reeT) m(yp) s(e,) 32 b(and) f(T1Lib) g(libraries.) 44 b(Application) 33 b(soft-) 480 3268 y(w) m(are) 40 b(link) m(ed) g (with) f(VFlib) h(m) m(ust) g(b) s(e) e(link) m(ed) i(with) g(these) g (external) g(libraries,) i(if) e(y) m(ou) g(w) m(an) m(t) 480 3378 y(to) 33 b(use) f(them.) 47 b(Application) 34 b(soft) m(w) m(are) g (m) m(ust) e(b) s(e) g(link) m(ed) h(against) g(kpathsea,) h(F) -8 b(reeT) m(yp) s(e) 33 b(and) 480 3487 y(T1Lib) d(in) g(addition) h(to) g (VFlib) g(if) f(y) m(ou) h(con\014gured) e(VFlib) i(to) g(use) f(them.) 0 3656 y(A) g(fon) m(t) h(database) h(\014le) e(\(`) p Fp(vflibcap) p Ft('\)) 480 3766 y(When) 23 b(w) m(e) i(op) s(en) e(a) h (fon) m(t,) h(information) f(ab) s(out) g(the) g(fon) m(t) g(\014le) f (\(fon) m(t) i(format,) g(lo) s(cation,) i(p) s(ossibly) 480 3875 y(necessary) 21 b(glyph) f(mo) s(di\014cations) h(etc.\)) 39 b(is) 20 b(necessary) -8 b(.) 39 b(This) 19 b(\014le) i(describ) s(es) f (suc) m(h) g(information;) 480 3985 y(it) 31 b(is) f(read) h(when) e (the) i(initialization) i(function) d(of) g(VFlib) h(is) g(called.) 0 4158 y(Basic) h(concept) f(of) g(VFlib) p Fm 0 4331 a(F) -8 b(on) m(t) 32 b(Classes) e(and) g(F) -8 b(on) m(t) 31 b(Driv) m(ers) p Ft 480 4441 a(VFlib) 40 b(can) h(handle) e(m) m (ultiple) i(fon) m(t) f(\014le) g(formats.) 70 b(Reading) 41 b(a) f(fon) m(t) g(\014le) g(according) h(to) g(its) 480 4551 y(fon) m(t) e(\014le) f(format) g(is) h(done) f(b) m(y) g(an) g (in) m(ternal) g(mo) s(dule) g(in) g(VFlib) g(corresp) s(onding) g(to) g (its) h(fon) m(t) 480 4660 y(\014le) 33 b(format.) 47 b(This) 32 b(in) m(ternal) h(mo) s(dule) f(is) g(called) i(a) p Fl 33 w(font) h(driver) p Ft(.) 48 b(Service) 33 b(units) e(pro) m (vided) i(b) m(y) 480 4770 y(a) 40 b(fon) m(t) g(driv) m(er) g(is) f (called) p Fl 41 w(font) j(class) p Ft(.) 70 b(F) -8 b(rom) 40 b(an) f(end-user's) g(p) s(oin) m(t) h(of) g(view,) i(v) -5 b(arious) 40 b(fon) m(t) 480 4879 y(formats) 30 b(are) h(distinguished) e(b) m(y) i(v) -5 b(arious) 30 b(names) g(of) g(fon) m(t) h(classes.) 42 b(F) -8 b(on) m(t) 31 b(driv) m(ers) f(themselv) m(es) 480 4989 y(are) h(in) m(ternal) g(of) f(VFlib) h(and) f(in) m(visible) h (for) f(end-users.) 480 5128 y(Some) 40 b(fon) m(t) g(driv) m(ers) g (ma) m(y) g(not) g(read) g(fon) m(t) h(\014les) e(on) h(disk;) 45 b(they) 40 b(ma) m(y) g(generate) i(glyph) d(and) 480 5238 y(outlines) e(b) m(y) g(in) m(ternal) g(computation) h(only) -8 b(.) 61 b(In) 36 b(addition,) i(some) g(fon) m(t) f(driv) m(ers) f(ma) m (y) i(return) 480 5347 y(glyph) 33 b(whic) m(h) h(are) g(obtained) g (as) g(glyph) g(b) m(y) g(another) g(fon) m(t) g(class) g(\(hence) h (the) f(name) g(`Virtual) 480 5457 y(F) -8 b(on) m(t) 32 b(library'\).) p Fm 0 5626 a(A) e(View) g(of) h(VFlib) f(F) -8 b(on) m(t) 32 b(F) -8 b(rom) 31 b(The) f(End-User) p Ft 480 5735 a(Eac) m(h) 36 b(\(virtual\)) h(fon) m(t) g(b) m(y) e (VFlib) i(has) e(its) h(inheren) m(t) g(information) g(of) g(p) s(oin) m (t) g(size,) i(pixel) e(size,) 480 5845 y(and) 27 b(resolution) i(of) f (the) g(target) i(device.) 41 b(In) 27 b(addition) h(to) h(these) f (fon) m(t) h(metrics) g(are) f(de\014ned) f(for) 480 5954 y(eac) m(h) 32 b(glyph.) p dyy eop end %%Page: 12 13 TeXDict begin 12 12 bop Ft 0 -116 a(12) 3198 b(VFlib) 31 b(3.6.14) 480 365 y(Some) h(fon) m(t) g(\014le) f(formats) h(do) s(es) g (not) f(ha) m(v) m(e) i(suc) m(h) f(concepts;) h(in) e(suc) m(h) g (case,) j(\(1\)) e(lac) m(king) i(infor-) 480 475 y(mation) 27 b(is) f(giv) m(en) g(in) g(a) g(fon) m(t) h(database) f(\014le) g(`) p Fp(vflibcap) p Ft(') f(or) g(\(2\)) i(the) f(sp) s(eci\014c) g(fon) m (t) g(driv) m(er) g(giv) m(es) 480 584 y(suc) m(h) 36 b(information) i(as) f(default) g(v) -5 b(alues.) 60 b(F) -8 b(or) 37 b(instance,) j(a) d(T) -8 b(rueT) m(yp) s(e) 36 b(fon) m(t) h(\014le) g(is) g(a) g(v) m(ector) 480 694 y(fon) m(t) 30 b(\014le) f(and) g(do) s(es) g(not) h(has) f (information) h(on) f(p) s(oin) m(t) h(size) g(and) f(resolution) h(of) g(the) f(target) i(de-) 480 804 y(vice) i(\(suc) m(h) g(information) f (is) g(unnecessary) g(since) h(v) m(ector) h(fon) m(ts) e(can) h(b) s (e) e(scaled) i(at) g(an) m(y) g(size\).) 480 913 y(Sy) m(otaiKurabu) 40 b(fon) m(t) h(format) g(\(a) g(v) m(ector) i(fon) m(t) e(for) f (Japanese) h(Kanji\)) f(do) s(es) g(not) h(ha) m(v) m(e) h(fon) m(t) 480 1023 y(metric) 29 b(information) g(at) h(all.) 41 b(A) 28 b(fon) m(t) h(driv) m(er) g(for) f(this) h(fon) m(t) g(format) g (virtually) g(generates) h(fon) m(t) 480 1132 y(metrics) h(b) m(y) f (information) h(giv) m(en) g(in) f(a) h(v\015ib) s(cap) f(\014le.) p Fm 0 1292 a(F) -8 b(on) m(t) 32 b(Names) e(and) g(F) -8 b(on) m(t) 32 b(Searc) m(hing) f(Mec) m(hanism) p Ft 480 1401 a(In) d(VFlib,) h(a) g(fon) m(t) g(is) f(sp) s(eci\014ed) g(b) m(y) g(a) h(fon) m(t) g(name) f(when) g(a) h(fon) m(t) g(is) f (requested) g(to) h(op) s(en.) 40 b(First,) 480 1511 y(VFlib) 31 b(c) m(hec) m(ks) h(whether) e(the) g(fon) m(t) h(name) g (is) f(giv) m(en) h(in) f(v\015ib) s(cap) g(or) g(not.) 41 b(If) 30 b(the) h(fon) m(t) g(name) f(is) 480 1621 y(found,) c(VFlib) h (reads) f(the) g(description) h(for) f(the) g(fon) m(t) h(in) f (v\015ib) s(cap.) 38 b(The) 26 b(description) g(con) m(tains) 480 1730 y(a) 33 b(fon) m(t) f(class) h(name;) h(VFlib) e(then) g(in) m(v) m (ok) m(es) i(a) f(fon) m(t) g(driv) m(er) e(corresp) s(onding) h(to) h (the) f(fon) m(t) h(class) 480 1840 y(name.) 41 b(Finally) 31 b(the) g(fon) m(t) g(driv) m(er) f(op) s(ens) f(the) i(fon) m(t) g (\014le) f(\(if) h(necessary\).) 480 1974 y(If) 23 b(the) h(fon) m(t) g (name) f(is) h(not) f(giv) m(en) i(in) e(a) h(v\015ib) s(cap) e (\014le,) j(a) f(fon) m(t) g(searc) m(hing) h(mec) m(hanism) e(is) h (in) m(v) m(ok) m(ed.) 480 2084 y(Since) 35 b(there) g(are) h(man) m(y) f(fon) m(t) g(\014les) g(for) g(X) g(Windo) m(w) g(and) f(T) 2588 2103 y(E) 2638 2084 y(X,) i(this) f(feature) g(is) g(in) m(tro) s (duced) 480 2193 y(to) j(a) m(v) m(oid) g(writing) f(an) g(en) m(try) g (for) f(eac) m(h) i(fon) m(t) g(\014le.) 60 b(V) -8 b(arious) 37 b(fon) m(t) h(driv) m(ers) e(will) h(b) s(e) g(called) h(to) 480 2303 y(see) c(whether) f(the) h(fon) m(t) h(can) f(b) s(e) f(op) s (ened.) 50 b(If) 33 b(a) h(fon) m(t) h(driv) m(er) e(succeeds) h(in) f (op) s(ening) h(the) g(fon) m(t,) 480 2413 y(fon) m(t) 44 b(searc) m(hing) h(\014nishes) d(and) h(the) h(VFlib) g(fon) m(t) g(op) s(ening) f(function) g(returns) g(successfully) -8 b(.) 480 2522 y(Otherwise,) 30 b(fon) m(t) h(op) s(en) f(fails.) 480 2657 y(F) -8 b(on) m(ts) 27 b(describ) s(ed) e(in) h(a) h(v\015ib) s (cap) e(\014le) h(are) g(called) p Fl 28 w(explicit) j(fonts) p Ft 34 w(and) c(fon) m(ts) i(that) f(are) h(searc) m(hed) 480 2766 y(for) 40 b(b) m(y) h(the) f(fon) m(t) h(searc) m(h) h(feature) e (are) h(called) p Fl 42 w(implicit) i(fonts) p Ft(.) 72 b(Supp) s(ort) 38 b(for) i(explicit) i(and) 480 2876 y(implicit) 31 b(fon) m(ts) g(dep) s(ends) e(on) h(fon) m(t) h(driv) m (er.) p Fm 0 3035 a(Obtaining) g(Bitmaps) f(\(Glyph\)) p Ft 480 3145 a(Tw) m(o) h(in) m(terfaces) g(are) g(pro) m(vided) f(to) h (obtain) g(glyph) f(\(bitmaps\)) h(of) f(a) h(fon) m(t.) 480 3304 y(High) g(resolution) g(device) g(orien) m(ted) g(glyph) 960 3414 y(This) 23 b(metho) s(d) g(is) h(suitable) g(for) g(devices) g(of) g(high) g(resolution) g(suc) m(h) f(as) h(laser) h(prin) m(t-) 960 3523 y(ers.) 38 b(The) 22 b(size) h(of) f(glyph) g(is) g(sp) s (eci\014ed) g(b) m(y) g(the) h(ph) m(ysical) f(size) i(of) e(glyph) g (and) g(device) 960 3633 y(resolution.) 41 b(When) 28 b(the) h(size) g(of) g(a) g(glyph) f(in) h(the) f(source) h(fon) m(t) g (is) g(di\013eren) m(t) g(from) 960 3743 y(the) i(target) g(size,) h (VFlib) f(scales) g(the) g(source) f(glyph) g(in) m(ternally) -8 b(.) 480 3902 y(Lo) m(w) 31 b(resolution) g(device) g(orien) m(ted) g (glyph) 960 4012 y(This) 24 b(metho) s(d) g(is) h(suitable) h(for) e (lo) m(w) i(resolution) f(devices) h(suc) m(h) f(as) g(CR) -8 b(T) 24 b(displa) m(ys.) 960 4121 y(Glyph) 30 b(sizes) g(are) h(sp) s (eci\014ed) e(b) m(y) h(pixel) h(size) g(rather) f(than) g(b) m(y) g (device) h(resolution.) 960 4231 y(When) g(the) g(size) h(of) f(a) g (glyph) g(in) g(the) g(source) g(fon) m(t) h(is) f(di\013eren) m(t) g (from) g(the) g(target) 960 4340 y(size,) g(VFlib) g(scales) h(the) e (source) h(glyph) f(in) m(ternally) -8 b(.) p dyy eop end %%Page: 13 14 TeXDict begin 13 13 bop Ft 0 -116 a(Chapter) 30 b(4:) 41 b(Installing) 31 b(VFlib) 2594 b(13) p Fr 0 365 a(4) 80 b(Installing) 53 b(VFlib) p Ft 125 613 a(VFlib) 23 b(uses) g(GNU) h (auto) s(conf) f(and) g(GNU) g(libto) s(ol) i(to) e(compile.) 40 b(According) 24 b(to) f(the) h(follo) m(wing) g(pro) s(cedure,) 0 723 y(compile) 31 b(and) f(install) h(VFlib.) 125 862 y(VFlib) 24 b(\(optionally\)) j(uses) d(F) -8 b(reeT) m(yp) s(e) 25 b(1.3.0) h(or) e(later,) j(T1Lib) d(5.1) h(or) f(later,) j(and) d (kpathsea) h(3.2) g(libraries.) 0 971 y(They) 32 b(m) m(ust) h(b) s(e) f (installed) h(b) s(efore) f(compiling) i(VFlib) f(if) f(y) m(ou) h(w) m (an) m(t) h(use) e(them.) 48 b(They) 32 b(are) h(a) m(v) -5 b(ailable) 35 b(from) 0 1081 y(the) c(follo) m(wing) g(sites:) p Fq 75 1220 a(\017) p Ft 60 w(F) -8 b(reeT) m(yp) s(e) 39 b(VFlib) g(is) f(tested) h(with) f(F) -8 b(reeT) m(yp) s(e) 39 b(1.3.) 66 b(\(F) -8 b(reeT) m(yp) s(e) 39 b(1.0) h(do) s(es) e(not) g (w) m(ork) h(with) f(curren) m(t) 180 1329 y(VFlib3.\)) p Fq 229 1466 a(\000) p Fp 60 w(http://www.freetype.org/) p Fq 229 1603 a(\000) p Fp 60 w(ftp://ftp.freetype.org/p) o(ub/f) o(reet) o(ype) o(/fre) o(etyp) o(e-1) o(.3.t) o(ar.g) o(z) p Fq 75 1739 a(\017) p Ft 60 w(T1Lib) 30 b(VFlib) h(is) f(tested) h(with) f(T1Lib) g(5.1.) p Fq 229 1876 a(\000) p Fp 60 w (ftp://sunsite.unc.edu/pu) o(b/Li) o(nux/) o(lib) o(s/gr) o(aphi) o (cs/) p Fq 229 2013 a(\000) p Fp 60 w(http://www.neuroinformat) o(ik.r) o(uhr-) o(uni) o(-boc) o(hum.) o(de/) o(ini/) o(PEOP) o(LE/) o(rmz/) o (t1li) o(b/t) o(1lib) o(.htm) o(l) p Fq 229 2150 a(\000) p Fp 60 w(ftp://ftp.neuroinformati) o(k.ru) o(hr-u) o(ni-) o(boch) o (um.d) o(e/p) o(ub/s) o(oftw) o(are) o(/t1l) o(ib/) p Fq 75 2286 a(\017) p Ft 60 w(kpathsea) h(VFlib) g(is) f(tested) h(with) f(kpathsea) h(3.2) h(in) e(w) m(eb2c-7.2b.) p Fq 229 2423 a(\000) p Fp 60 w(ftp://ftp.ctan.org/tex-a) o(rchi) o(ve/s) o(yst) o(em/w) o(eb2c) o(/) p Ft 49 2560 a(1.) 61 b(VFlib) 31 b(is) f(tested) h(on) g(the) f(follo) m(wing) i(platforms:) p Fq 255 2697 a(\017) p Ft 60 w(F) -8 b(reeBSD) 32 b(2.2.2) g(and) e(3.2) h(on) f(IBM) h(PC-clones) p Fq 255 2833 a(\017) p Ft 60 w(Solaris) g(2.5.1) h(on) e(Sun) f(SP) -8 b(AR) m(C) 30 b(Stations) 180 2997 y(P) m(orting) i(to) f(Unix-lik) m(e) i(system) e (is) g(easy) g(since) g(the) g(source) g(co) s(de) h(is) e(not) i(sp) s (eci\014c) e(system) h(dep) s(enden) m(t.) 180 3107 y(P) m(orting) g (to) g(non-Unix-lik) m(e) h(system) f(is) f(not) h(di\016cult;) f (please) h(try) -8 b(.) 49 3244 y(2.) 61 b(Go) 31 b(in) m(to) g(the) g (directory) g(`) p Fp(VFlib3-3.6.14) p Ft('.) 49 3380 y(3.) 61 b(Run) 29 b(the) p Fp 31 w(configure) p Ft 28 w(script.) p Fp 420 3517 a(\045) 47 b(./configure) 93 b([RET]) p Ft 180 3654 a(By) 30 b(default,) g(VFlib) g(do) s(es) p Fl 30 w(not) p Ft 39 w(supp) s(ort) e(for) h(T) -8 b(rueT) m(yp) s(e) 29 b(and) g(T) m(yp) s(e1) h(fon) m(ts) g(and) f(T) 3079 3674 y(E) 3129 3654 y(X) g(fon) m(t) i(searc) m(hing) 180 3764 y(b) m(y) 39 b(kpathsea) g(library) f(for) g(searc) m(hing) i(T) 1613 3783 y(E) 1663 3764 y(X-related) g(fon) m(t) f(\014les) g(suc) m (h) f(as) h(GF,) h(PK,) e(TFM,) h(VF.) h(F) -8 b(or) 180 3873 y(suc) m(h) 37 b(features,) j(VFlib) e(\(optionally\)) h(uses) e (F) -8 b(reeT) m(yp) s(e) 39 b(library) e(v) m(ersion) h(1.2) g(or) g (later) g(for) f(rendering) 180 3983 y(T) -8 b(rueT) m(yp) s(e) 32 b(fon) m(t) i(\014les,) g(T1Lib) e(library) h(v) m(ersion) g(5.1) i(or) e(later) h(for) e(rendering) h(T) m(yp) s(e) f(1) i(fon) m(t) f (\014les,) h(and) 180 4092 y(kpathsea) d(library) f(v) m(ersion) h (3.2.) 180 4229 y(VFlib) f(can) f(b) s(e) g(built) g(to) h(use) f (these) h(libraries) f(b) m(y) g(giving) h(options) g(when) e(y) m(ou) i (run) p Fp 28 w(configure) p Ft 26 w(script.) 180 4339 y(Probably) -8 b(,) 28 b(the) g(follo) m(wing) h(is) f(the) g(t) m (ypical) h(options) f(to) g(con\014gure) f(script) h(to) g(use) f(T) -8 b(rueT) m(yp) s(e) 27 b(and) g(T) m(yp) s(e) 180 4448 y(1) k(fon) m(ts) f(and) g(fon) m(t) h(searc) m(h) g(feature) g(b) m(y) f(kpathsea) h(library) -8 b(.) p Fp 420 4585 a(\045) 47 b(./configure) e(\\) 754 4695 y(--with-kpathsea) f(\\) 754 4804 y(--with-kpathsea-includedi) o(r=/) o(usr/) o(loca) o(l/i) o(nclu) o(de) e(\\) 754 4914 y(--with-kpathsea-libdir=/u) o(sr/) o(loca) o (l/li) o(b) 754 5023 y(--with-freetype) i(\\) 754 5133 y(--with-freetype-includedi) o(r=/) o(usr/) o(loca) o(l/i) o(nclu) o (de/f) o(ree) o(type) d(\\) 754 5242 y(--with-freetype-libdir=/u) o (sr/) o(loca) o(l/li) o(b") 754 5352 y(--with-t1lib) k(\\) 754 5462 y(--with-t1lib-includedir=/) o(usr) o(/loc) o(al/i) o(ncl) o(ude) c (\\) 754 5571 y(--with-t1lib-libdir=/usr/) o(loc) o(al/l) o(ib) 567 b([RET]) p Fl 180 5708 a(Note:) p Ft 44 w(See) 27 b(the) p Fp 27 w(configure-site) p Ft 22 w(script;) h(it) g(in) m(v) m(ok) m(es) g(the) p Fp 27 w(configure) p Ft 24 w(script) f(with) f(t) m(ypical) i (settings) 180 5818 y(sho) m(wn) i(ab) s(o) m(v) m(e.) 180 5954 y(Options) g(for) g(con\014gure) g(script) h(is) f(as) h(follo) m (ws:) p dyy eop end %%Page: 14 15 TeXDict begin 14 14 bop Ft 0 -116 a(14) 3198 b(VFlib) 31 b(3.6.14) p Fp 180 365 a(--enable-shared) p Ft 660 475 a(Enable) 36 b(to) g(build) f(a) h(shared) f(library) h(v) m(ersion) g (of) g(VFlib.) 57 b(By) 36 b(default,) i(shared) d(library) 660 584 y(v) m(ersion) c(is) f(created,) i(if) e(the) h(target) h(system) e (supp) s(orts) f(shared) g(library) -8 b(.) p Fp 180 740 a(--disable-shared) p Ft 660 850 a(Disable) 31 b(to) h(build) d(a) i (shared) e(library) h(v) m(ersion) h(of) g(VFlib.) p Fp 180 1006 a(--disable-static) p Ft 660 1115 a(Disable) 41 b(to) g(build) e(a) i(static) h(library) e(v) m(ersion) g(of) h(VFlib.) 70 b(By) 41 b(default,) i(static) f(library) 660 1225 y(v) m(ersion) 31 b(is) f(not) h(created,) h(if) e(the) g(target) i (system) f(supp) s(orts) d(shared) i(library) -8 b(.) p Fp 180 1380 a(--enable-static) p Ft 660 1490 a(Enable) 30 b(to) h(build) f(a) g(shared) g(library) g(v) m(ersion) h(of) f(VFlib.) p Fp 180 1646 a(--disable-bdf) p Ft 660 1755 a(VFlib) h(is) f(built) g (without) h(the) f(BDF) i(fon) m(t) f(driv) m(er.) p Fp 180 1911 a(--disable-pcf) p Ft 660 2021 a(VFlib) g(is) f(built) g (without) h(the) f(PCF) h(fon) m(t) f(driv) m(er.) p Fp 180 2176 a(--disable-hbf) p Ft 660 2286 a(VFlib) h(is) f(built) g (without) h(the) f(HBF) i(fon) m(t) e(driv) m(er.) p Fp 180 2442 a(--disable-gf) p Ft 660 2551 a(VFlib) h(is) f(built) g (without) h(the) f(T) 1773 2571 y(E) 1823 2551 y(X) h(GF) g(fon) m(t) g (driv) m(er.) p Fp 180 2707 a(--disable-pk) p Ft 660 2817 a(VFlib) g(is) f(built) g(without) h(the) f(T) 1773 2836 y(E) 1823 2817 y(X) h(PK) f(fon) m(t) h(driv) m(er.) p Fp 180 2972 a(--disable-tfm) p Ft 660 3082 a(VFlib) g(is) f(built) g (without) h(the) f(T) 1773 3102 y(E) 1823 3082 y(X) h(TFM) g(fon) m(t) f (driv) m(er.) p Fp 180 3238 a(--disable-jtex) p Ft 660 3347 a(VFlib) h(is) f(built) g(without) h(the) f(Japanese) h(T) 2159 3367 y(E) 2209 3347 y(X) f(Kanji) g(fon) m(t) h(driv) m(er.) p Fp 180 3503 a(--disable-tex-fonts) p Ft 660 3613 a(VFlib) 26 b(is) f(built) g(without) g(all) h(T) 1717 3632 y(E) 1767 3613 y(X-related) g(fon) m(t) g(driv) m(ers,) g(i.e.,) i(GF,) e(PK,) f (VF,) g(TFM,) h(and) 660 3722 y(ASCI) s(I) j(Japanese) h(T) 1379 3742 y(E) 1429 3722 y(X) h(Kanji.) p Fp 180 3878 a(--disable-zeit) p Ft 660 3988 a(VFlib) g(is) f(built) g(without) h(the) f(Zeit) h(\(Sy) m (otai) h(Kurabu\)) d(fon) m(t) i(driv) m(er.) p Fp 180 4143 a(--disable-jg) p Ft 660 4253 a(VFlib) g(is) f(built) g(without) h (the) f(JG) h(fon) m(t) g(driv) m(er.) p Fp 180 4409 a(--disable-ekanji) p Ft 660 4518 a(VFlib) g(is) f(built) g(without) h (the) f(eKanji) h(fon) m(t) g(driv) m(er.) p Fp 180 4674 a(--disable-comic) p Ft 660 4783 a(VFlib) g(is) f(built) g(without) h (the) f(Japanese) h(comic) h(fon) m(t) e(driv) m(er.) p Fp 180 4939 a(--disable-try) p Ft 660 5049 a(VFlib) h(is) f(built) g (without) h(the) f(T) -8 b(ry) 30 b(fon) m(t) h(driv) m(er.) p Fp 180 5205 a(--disable-mojikmap) p Ft 660 5314 a(VFlib) g(is) f(built) g(without) h(the) f(Mo) 5 b(jiky) m(o) 32 b(fon) m(t) f(mapping) f (driv) m(er.) p Fp 180 5470 a(--with-freetype) p Fk([=LIB]) p Ft 660 5579 a(F) -8 b(reeT) m(yp) s(e) 30 b(library) f(\014le) h(is) p Fj 29 w(LIB) p Ft(.) g(Default) h(v) -5 b(alue) 30 b(is) p Fp 29 w(ttf) p Ft(.) 40 b(\(Application) 30 b(programs) g(m) m(ust) 660 5689 y(b) s(e) g(link) m(ed) g(against) i(`) p Fp(lib) p Fk(LIB) p Fp(.a) p Ft(') d(or) h(`) p Fp(lib) p Fk(LIB) p Fp(.so) p Ft('.\)) p Fp 180 5845 a(--with-freetype-included) o(ir=) p Fk(D) o(IR) p Ft 660 5954 a(F) -8 b(reeT) m(yp) s(e) 31 b(include) f(\014les) g(are) h(in) p Fj 30 w(DIR) p Ft(.) p dyy eop end %%Page: 15 16 TeXDict begin 15 15 bop Ft 0 -116 a(Chapter) 30 b(4:) 41 b(Installing) 31 b(VFlib) 2594 b(15) p Fp 180 365 a (--with-freetype-libdir=) p Fk(D) o(IR) p Ft 660 475 a(F) -8 b(reeT) m(yp) s(e) 31 b(library) f(\014les) g(are) h(in) p Fj 30 w(DIR) p Ft(.) p Fp 180 647 a(--with-t1lib) p Fk([=LIB]) p Ft 660 757 a(T1Lib) i(library) g(\014le) h(is) p Fj 33 w(LIB) p Ft(.) g(Default) h(v) -5 b(alue) 34 b(is) p Fp 33 w(t1) p Ft(.) 50 b(\(Application) 35 b(programs) e(m) m(ust) g(b) s(e) 660 866 y(link) m(ed) e(against) g(`) p Fp(lib) p Fk(LIB) p Fp(.a) p Ft(') e(or) h(`) p Fp(lib) p Fk(LIB) p Fp(.so) p Ft('.\)) p Fp 180 1039 a(--with-t1lib-includedir=) p Fk -1 w(DIR) p Ft 660 1148 a(T1Lib) g(include) g(\014les) g(are) h(in) p Fj 30 w(DIR) p Ft(.) p Fp 180 1321 a(--with-t1lib-libdir=) p Fk(DIR) p Ft 660 1430 a(T1lib) f(library) g(\014les) h(are) f(in) p Fj 31 w(DIR) p Ft(.) p Fp 180 1603 a(--with-kpathsea) p Fk(=LIB) p Ft 660 1712 a(Kpathsea) e(library) f(\014le) h(is) p Fj 28 w(LIB) p Ft(.) g(Default) h(v) -5 b(alue) 28 b(is) p Fp 28 w(kpathsea) p Ft(.) 38 b(\(Application) 29 b(programs) 660 1822 y(m) m(ust) h(b) s(e) g(link) m(ed) h(against) g(`) p Fp(lib) p Fk(LIB) p Fp(.a) p Ft(') e(or) h(`) p Fp(lib) p Fk(LIB) p Fp(.so) p Ft('.\)) p Fp 180 1994 a(--with-kpathsea-included) o (ir=) p Fk(D) o(IR) p Ft 660 2104 a(Kpathsea) h(include) f(\014les) g (are) h(in) p Fj 30 w(DIR) p Ft(.) p Fp 180 2276 a (--with-kpathsea-libdir=) p Fk(D) o(IR) p Ft 660 2386 a(Kpathsea) g(library) f(\014les) g(are) h(in) p Fj 30 w(DIR) p Ft(.) 49 2527 y(4.) 61 b(Run) p Fp 29 w(make) p Ft 29 w(to) 32 b(compile) f(VFlib.) p Fp 420 2668 a(\045) 47 b(make) 95 b([RET]) p Ft 49 2809 a(5.) 61 b(Become) 29 b(a) g(sup) s(er) d(user) h(\(ro) s(ot\)) h(and) f(run) p Fp 27 w(make) p Ft 26 w(with) h(`) p Fp(install) p Ft(') e(option) i (to) h(install.) 40 b(\(Run) p Fp 27 w(make) p Ft 27 w(with) 180 2918 y(`) p Fp(uninstall) p Ft(') 28 b(option) j(to) g (uninstall.\)) p Fp 420 3059 a(#) 47 b(make) 95 b(install) 46 b([RET]) p Ft 49 3200 a(6.) 61 b(If) 30 b(installation) i(is) f (successful,) f(the) h(follo) m(wing) g(has) f(b) s(een) g(created:) 180 3373 y(`) p Fp(libVFlib.a) p Ft(') e(and/or) i(`) p Fp(libVFlib.so) p Ft(') 660 3482 y(These) g(are) h(the) f(library) g(\014les) h(and) f (link) m(ed) g(with) g(application) i(programs.) p Fp 180 3655 a(vflserver) p Ft(,) p Fp 28 w(vflmkcaptex) p Ft(,) p Fp 28 w(vflx11) p Ft(,) p Fp 29 w(vfltest) p Ft(,) c(etc.) 660 3764 y(|) i(A) h(VFlib) g(serv) m(er) f(and) g(test) h (programs) f(on) g(X11) 660 3905 y(By) p Fp 28 w(vflserver) p Ft(,) 25 b(the) j(functionalit) m(y) g(of) g(VFlib) g(is) f(a) m(v) -5 b(ailable) 30 b(via) e(net) m(w) m(ork) g(if) p Fp 27 w(vflserver) p Ft 660 4015 a(is) k(registered) h(in) f(`) p Fp(/etc/inetd.conf) p Ft('.) 43 b(It) 32 b(can) h(b) s(e) f(used) f(in) m(teractiv) m(ely) k(b) m(y) d(in) m(v) m(o) s(cation) 660 4125 y(from) c(shell.) 40 b(In) m(teractiv) m(e) 31 b(use) e(of) f (VFlib) h(is) g(useful) f(for) g(testing) i(or) f(debugging) f(purp) s (oses.) p Fp 660 4266 a(vflx11) p Ft 31 w(is) k(a) h(test) g(program) f (that) h(displa) m(ys) g(c) m(haracters) h(on) e(X) h(Windo) m(w) f (System.) 47 b(Y) -8 b(ou) 660 4375 y(can) 31 b(use) f(it) h(to) g (test) g(if) f(a) h(fon) m(t) g(is) f(correctly) i(con\014gured) e(in) g (v\015ib) s(cap) f(\014le.) p Fp 660 4516 a(vflmkcaptex) p Ft 20 w(is) 23 b(an) g(automatic) i(v\015ib) s(cap) d(generator) j(for) e(T) 2750 4536 y(E) 2800 4516 y(X) g(D) m(VI) h(driv) m(ers,) g(esp) s (ecially) 660 4626 y(soft) m(w) m(are) j(in) e(the) h(T) 1316 4645 y(E) 1366 4626 y(X-Guy) g(pac) m(k) -5 b(age.) 41 b(It) 26 b(is) f(a) h(Unix) g(Shell) f(script,) i(and) e(it) h(in) m(v) m(ok) m(es) h(man) m(y) 660 4735 y(subprograms) i(\(written) i(in) f (C\)) g(to) h(generate) h(fon) m(t) f(de\014nitions) f(for) g(eac) m(h) h(fon) m(t) g(format.) p Fp 660 4876 a(vfltest) p Ft 41 w(is) 43 b(a) g(test) h(program) e(that) i(displa) m(ys) f(c) m (haracters) h(on) f(terminal) g(b) m(y) g(ascii-art) 660 4986 y(form.) 125 5165 y(Installation) 31 b(directories) h(are) f(as) f (follo) m(ws:) 0 5344 y(`) p Fp(/usr/local/share/VFlib/3.) o(6.14) o(/) p Ft(') 25 b(\(=) 30 b(`) p Fp($prefix/share/VFlib/3.6.1) o(4/) p Ft('\)) 480 5453 y(Run) m(time) g(\014les) h(suc) m(h) f(as) g(v\015ib) s(cap) g(are) h(installed) g(here.) 480 5594 y(This) c(run) m(time) h (ro) s(ot) h(directory) g(can) f(b) s(e) g(c) m(hanged) h(on) f(run) m (time) g(b) m(y) g(an) g(en) m(vironmen) m(t) h(v) -5 b(ariable) p Fp 480 5704 a(VFLIB_RUNTIME_DIRECTORY) p Ft(.) 75 b(If) 43 b(this) h(en) m(vironmen) m(t) h(v) -5 b(ariable) 44 b(is) g(not) g(set,) k(the) c(default) 480 5813 y(directory) 31 b(\(`) p Fp(/usr/local/share/VFlib/3.6) o(.14/) p Ft -1 w('\)) 25 b(is) 31 b(used.) 480 5954 y(Under) f(this) g (directory) -8 b(,) 31 b(there) g(are) g(follo) m(wing) h(sub) s (directories:) p dyy eop end %%Page: 16 17 TeXDict begin 16 16 bop Ft 0 -116 a(16) 3198 b(VFlib) 31 b(3.6.14) 480 365 y(`) p Fp(ccv) p Ft(') 286 b(In) 30 b(this) h(directory) -8 b(,) 32 b(co) s(de) g(con) m(v) m(ersion) g (\014les) f(are) g(installed.) 44 b(This) 30 b(directory) h(can) 960 475 y(b) s(e) d(c) m(hanged) h(on) g(run) m(time) f(b) m(y) h(setting) h (an) e(en) m(vironmen) m(t) i(v) -5 b(ariable) p Fp 29 w(VFLIB_CCV_) 960 584 y(DIRECTORY) p Ft(.) 68 b(If) 39 b(this) h(v) -5 b(ariable) 41 b(is) f(set,) k(default) c(run) m(time) g (directory) h(and) e(the) 960 694 y(v) -5 b(alue) 31 b(b) m(y) p Fp 30 w(VFLIB_RUNTIME_DIRECTORY) p Ft 24 w(v) -5 b(ariable) 31 b(are) g(ignored.) 480 853 y(`) p Fp(t1lib) p Ft(') 190 b(Enco) s(ding) 40 b(v) m(ector) j(\014les) e (for) g(T1Lib) f(\(for) h(T) m(yp) s(e) g(1) g(fon) m(ts\)) h(are) f (stored) g(in) g(this) 960 963 y(directory) -8 b(.) 67 b(Note) 40 b(that) g(the) f(\014le) g(format) g(for) f(enco) s(ding) h (v) m(ector) i(\014les) e(used) f(b) m(y) 960 1073 y(T1Lib) k(is) h (di\013eren) m(t) h(from) e(those) h(used) f(b) m(y) h(standard) f(P) m (ostScript.) 79 b(T) -8 b(o) 43 b(con-) 960 1182 y(v) m(ert) 38 b(standard) f(P) m(ostScript) h(enco) s(ding) g(v) m(ector) h(\014les) e (in) m(to) i(T1Lib) e(format,) j(use) 960 1292 y(`) p Fp(mkt1enc.sh) p Ft(') 27 b(program) j(in) f(this) h(directory) -8 b(.) 42 b(By) 30 b(default,) g(this) g(directory) g(con-) 960 1401 y(tains) 24 b(\014les) f(con) m(v) m(erted) i(from) d(enco) s (ding) i(v) m(ector) g(\014les) g(in) f(the) p Fp 23 w(dvips) p Ft 22 w(distribution.) 480 1561 y(`) p Fp(ascii-jtex) p Ft(') 960 1670 y(In) 35 b(this) h(directory) -8 b(,) 38 b(run) m(time) d(\014les) h(for) f(Japanese) h(T) 2793 1690 y(E) 2843 1670 y(X) g(b) m(y) g(ASCI) s(I) e(Co) s(op.) 56 b(are) 960 1780 y(installed.) 41 b(This) 27 b(directory) h(can) g(b) s (e) f(c) m(hanged) i(on) f(run) m(time) f(b) m(y) h(setting) h(an) f (en) m(vi-) 960 1890 y(ronmen) m(t) e(v) -5 b(ariable) p Fp 27 w(VFLIB_ASCII_JTEX_DIRECTO) o(RY) p Ft(.) 33 b(If) 26 b(this) g(v) -5 b(ariable) 27 b(is) f(set,) 960 1999 y(default) k(run) m(time) f(directory) h(and) f(the) g(v) -5 b(alue) 30 b(b) m(y) p Fp 30 w(VFLIB_RUNTIME_DIRECTORY) p Ft 960 2109 a(v) -5 b(ariable) 31 b(are) g(ignored.) 480 2268 y(`) p Fp(doc) p Ft(') 286 b(This) 33 b(directory) h(con) m(tains) h(sev) m(eral) g(pap) s(ers) e(on) h(VFlib,) h(written) f(b) m(y) f (Hirotsugu) 960 2378 y(Kakuga) m(w) m(a.) 0 2537 y(`) p Fp(/usr/local/share/VFlib/si) o(te/) p Ft(') 480 2647 y(Run) m(time) 53 b(\014les) h(\(v\015ib) s(cap,) 59 b(ccv) 54 b(\014les,) 59 b(etc.\)) 111 b(that) 54 b(are) g(created) g (b) m(y) g(eac) m(h) g(site) g(should) 480 2756 y(b) s(e) 60 b(placed) h(here.) 131 b(F) -8 b(or) 62 b(eac) m(h) f(v) m(ersiion) h (of) f(VFlib,) 68 b(it) 62 b(has) e(o) m(wn) h(run) m(time) f (directory) 480 2866 y(\(`) p Fp(/usr/local/share/VFlib/) p Fk(x.y.) o(z) p Fp 10 w(/) p Ft('\)) h(for) k(default) h(settings;) 85 b(and) 65 b(therefore,) 75 b(the) 480 2976 y(directory) 26 b(where) f(run) m(time) g(\014les) g(suc) m(h) g(as) g(v\015ib) s(cap) g (in) g(di\013ers) g(b) m(y) g(v) m(ersions) h(of) f(VFlib.) 39 b(In) 25 b(o) s(der) 480 3085 y(to) 36 b(use) f(y) m(our) g(o) m(wn) g (run) m(time) g(\014les) g(regardless) g(VFlib) h(v) m(ersions,) h(run) m(time) e(\014les) g(mo) s(di\014ed) f(for) 480 3195 y(y) m(our) 27 b(system) f(en) m(vironmen) m(t) h(should) f(b) s(e) g (installed) h(in) f(`) p Fp(/usr/local/share/VFlib/site) o(/) p Ft(',) 480 3304 y(whic) m(h) k(is) h(called) p Fp 31 w(") p Ft(site) g(directory) p Fp(") p Ft(.) 480 3439 y(Before) i(searc) m(hing) g(in) f(`) p Fp(/usr/local/share/VFlib/) p Fk(x.y) o(.z) p Fp 10 w(/) p Ft(',) 27 b(VFlib) 33 b(searc) m(hes) g(a) g(run) m(time) 480 3548 y(\014le) f(in) h(site) g(directory) -8 b(.) 47 b(Note) 34 b(that) f(there) g(is) f(no) g(directory) h(hierarc) m(h) m(y) g(in) f(site) h(directory;) i(all) 480 3658 y(run) m(time) i(\014les) h(are) g(in) f(the) h(same) g(directory) -8 b(.) 63 b(The) 37 b(site) h(directory) g(can) g(b) s(e) f(c) m(hanged) h (b) m(y) g(an) 480 3768 y(en) m(vironmen) m(t) 31 b(v) -5 b(ariable) p Fp 31 w(VFLIB_RUNTIME_SITE_DIRECT) o(ORY) p Ft -1 w(.) 0 3927 y(`) p Fp(/usr/local/bin/) p Ft(') 480 4037 y(Binary) 30 b(programs) g(suc) m(h) h(as) p Fp 30 w(vflserver) p Ft(,) p Fp 28 w(vflx11) p Ft(,) e(etc) j(are) e (installed) i(here.) 0 4196 y(`) p Fp(/usr/local/include/) p Ft(') 480 4306 y(Include) e(\014le) g(for) g(C) g(programs) g(`) p Fp(VFlib-3_6.h) p Ft(') e(is) i(installed) i(here.) 0 4465 y(`) p Fp(/usr/local/lib/) p Ft(') 480 4575 y(VFlib) f(library) f (\014les) g(suc) m(h) g(as) h(`) p Fp(libVFlib.a) p Ft(',) d(`) p Fp(libVFlib.so) p Ft(') g(are) j(installed) g(here.) 125 4734 y(Install) 25 b(directories) h(can) g(b) s(e) e(c) m(hanged) i (when) e(y) m(ou) i(run) p Fp 23 w(configure) p Ft 23 w(script) f(b) m(y) g(the) h(`) p Fp(--prefix=) p Ft(') d(option,) 0 4844 y(for) 30 b(example.) 42 b(In) m(v) m(ok) m(e) p Fp 31 w(configure) p Ft 28 w(with) 30 b(`) p Fp(--help) p Ft(') g(option) g(for) g(details.) p dyy eop end %%Page: 17 18 TeXDict begin 17 17 bop Ft 0 -116 a(Chapter) 30 b(5:) 41 b(Programming) 30 b(with) g(VFlib) 2217 b(17) p Fr 0 365 a(5) 80 b(Programming) 54 b(with) f(VFlib) p Fs 0 824 a(5.1) 68 b(Data) 46 b(t) l(yp) t(es) p Fi 0 1203 a(5.1.1) 63 b(bitmap) 41 b(t) m(yp) s(e) p Ft 125 1469 a(A) 30 b(bitmap) g(ob) 5 b(ject) 31 b(is) g(a) g(structure) e(of) i (the) g(follo) m(wing:) p Fp 240 1627 a(struct) 46 b(vf_s_bitmap) f({) 335 1736 y(int) 668 b(bbx_width,) 45 b(bbx_height;) g(/*) i(in) g (pixels) f(*/) 335 1846 y(int) 668 b(off_x,) 46 b(off_y;) 476 b(/*) 47 b(in) g(pixels) f(*/) 335 1955 y(int) 668 b(mv_x,) 94 b(mv_y;) 524 b(/*) 47 b(in) g(pixels) f(*/) 335 2065 y(unsigned) g(char*) 142 b(bitmap;) 335 2175 y(int) 668 b(raster;) 240 2284 y(};) 240 2394 y(typedef) 46 b(struct) g (vf_s_bitmap*) 92 b(VF_BITMAP;) 125 2551 y(bbx_width) p Ft 30 w(and) p Fp 32 w(bbx_height) p Ft 29 w(are) 33 b(the) g(bitmap) g(width) e(and) h(heigh) m(t.) 49 b(A) 32 b(pair) h(of) p Fp 32 w(off_x) p Ft 32 w(and) p Fp 32 w(off_y) p Ft(\)) 0 2660 y(forms) f(a) g(v) m(ector) i(to) f(the) f (left-upp) s(er) g(corner) g(of) g(the) h(bitmap) f(from) f(the) i (reference) g(p) s(oin) m(t.) 46 b(A) 32 b(pair) g(of) p Fp 33 w(mv_x) p Ft 0 2770 a(and) p Fp 39 w(mv_y) p Ft 39 w(is) 40 b(a) g(v) m(ector) h(to) g(the) f(next) g(reference) g(p) s (oin) m(t) g(from) f(the) h(curren) m(t) g(reference) g(p) s(oin) m(t.) 69 b(\(P) m(ositiv) m(e) 0 2880 y(v) -5 b(alues) 31 b(indicate) g(a) g (mo) m(v) m(e) h(in) m(to) f(the) g(righ) m(t) g(and) e(upp) s(er) g (direction) i(resp) s(ectiv) m(ely) -8 b(.\)) 125 3037 y(The) 34 b(unit) h(of) p Fp 36 w(bbx_width) p Ft(,) p Fp 34 w(bbx_height) p Ft(,) p Fp 34 w(off_x) p Ft(,) p Fp 36 w(off_y) p Ft(,) p Fp 35 w(mv_x) p Ft(,) h(and) p Fp 35 w(mv_y) p Ft 34 w(is) f(pixels.) p Fp 56 w(bitmap) p Ft 34 w(is) g(a) 0 3146 y(p) s(oin) m(ter) 30 b(to) h(the) g(bitmap) f (data;) i(one) e(pixel) h(corresp) s(onds) e(to) i(one) g(bit.) 125 3303 y(The) h(left) j(upp) s(er) c(corner) i(is) h(the) f(b) s (eginning) g(of) h(the) f(bitmap) h(data,) h(and) e(a) g(raster) h (line) g(is) f(de\014ned) f(as) i(a) 0 3413 y(horizon) m(tal) j(line) e (from) g(the) h(left) f(to) h(the) g(righ) m(t) g(corner) f(of) g(the) h (glyph) e(bitmap.) p Fp 55 w(bitmap) p Ft 34 w(is) h(a) h(sequence) f (of) 0 3522 y(raster) k(lines) f(starting) h(from) f(the) h(top) g(to) g (the) f(b) s(ottom.) 66 b(The) 37 b(distance) i(\(in) g(b) m(ytes\)) g (of) g(t) m(w) m(o) h(consecutiv) m(e) 0 3632 y(raster) 29 b(lines) g(in) f(memory) h(is) g(giv) m(en) g(b) m(y) p Fp 29 w(raster) p Ft(.) 38 b(Although) 29 b(the) g(raster) g(line) g (length) g(of) g(a) g(bitmap) g(is) f(\() p Fp(bbx_) 0 3742 y(width+) p Ft(7\)/8,) 39 b(it) f(is) f(not) h(guaran) m(teed) g (that) g(this) f(v) -5 b(alue) 37 b(is) h(the) f(same) h(as) p Fp 37 w(raster) p Ft(.) 60 b(The) 36 b(t) m(yp) s(e) i(of) p Fp 37 w(bitmap) p Ft 0 3851 a(is) 30 b(a) h(p) s(oin) m(ter) f(to) p Fp 31 w(unsigned) e(char) p Ft 30 w(data) j(ob) 5 b(ject,) 31 b(and) f(eac) m(h) p Fp 31 w(unsigned) e(char) p Ft 29 w(data) j(ob) 5 b(ject) 32 b(con) m(tains) f(eigh) m(t) 0 3961 y(pixels.) 41 b(Let) p Fp 31 w(P[0]) p Ft 30 w(b) s(e) 29 b(the) i(start) g(address) f(of) g(a) h(raster) g(line.) 41 b(The) p Fp 30 w(x) p Ft(-th) 31 b(pixel) g(coun) m(ted) g(from) f(the) g(leftmost) 0 4070 y(pixel) h(\(whic) m(h) f(is) h(pixel) f(0\)) h(is) g (1) g(if) f(and) g(only) g(if) p Fp 30 w(P[x/8]) f(&) h (\(0x80>>\(x\0458\)\)) p Ft 27 w(is) g(non-zero.) 125 4227 y(If) p Fp 28 w(bbx_width) p Ft 26 w(is) e(not) h(a) g(m) m (ultiple) g(of) g(8,) g(there) g(exist) g(bits) g(that) g(do) f(not) h (corresp) s(ond) e(to) j(an) m(y) e(pixels) h(but) 0 4337 y(their) i(v) -5 b(alues) 31 b(are) g(alw) m(a) m(ys) i(zero.) 42 b(Ev) m(en) 31 b(if) p Fp 31 w(bbx_width) p Ft 28 w(and/or) p Fp 31 w(bbx_height) p Ft 28 w(are) g(zero,) h(at) g(least) g(one) f(b) m (yte) 0 4447 y(is) f(allo) s(cated) j(for) d(the) g(bitmap) h(data.) 41 b(Th) m(us,) p Fp 30 w(bitmap) p Ft 28 w(is) 31 b(alw) m(a) m(ys) h (non-NULL.) p Fi 0 4716 a(5.1.2) 63 b(metric1) 41 b(t) m(yp) s(e) p Ft 125 4983 a(A) 30 b(metric1) i(ob) 5 b(ject) 31 b(is) f(a) h (structure) f(of) g(the) h(follo) m(wing:) p Fp 240 5140 a(struct) 46 b(vf_s_metric1) f({) 335 5249 y(double) 190 b(bbx_width,) 45 b(bbx_height;) 92 b(/*) 47 b(in) h(points) e(*/) 335 5359 y(double) 190 b(off_x,) 46 b(off_y;) 523 b(/*) 47 b(in) h(points) e(*/) 335 5468 y(double) 190 b(mv_x,) 46 b(mv_y;) 619 b(/*) 47 b(in) h(points) e(*/) 240 5578 y(};) 240 5688 y(typedef) g(struct) g(vf_s_metric1*) 92 b(VF_METRIC1;) p Ft 125 5845 a(The) 40 b(mem) m(b) s(ers) f(of) i(this) g(structure) f(are) h(the) f(same) h(as) g(the) g(mem) m(b) s(ers) f (of) h(a) g(bitmap) f(ob) 5 b(ject) 41 b(but) f(the) 0 5954 y(mem) m(b) s(ers') 30 b(unit) g(is) g(p) s(oin) m(t.) p dyy eop end %%Page: 18 19 TeXDict begin 18 18 bop Ft 0 -116 a(18) 3198 b(VFlib) 31 b(3.6.14) p Fi 0 365 a(5.1.3) 63 b(metric2) 41 b(t) m(yp) s(e) p Ft 125 622 a(A) 30 b(metric2) i(ob) 5 b(ject) 31 b(is) f(a) h (structure) f(of) g(the) h(follo) m(wing:) p Fp 240 770 a(struct) 46 b(vf_s_metric2) f({) 335 880 y(int) 191 b(bbx_width,) 45 b(bbx_height;) 235 b(/*) 47 b(in) h(pixels) e(*/) 335 989 y(int) 191 b(off_x,) 46 b(off_y;) 666 b(/*) 47 b(in) h(pixels) e (*/) 335 1099 y(int) 191 b(mv_x,) 46 b(mv_y;) 762 b(/*) 47 b(in) h(pixels) e(*/) 240 1208 y(};) 240 1318 y(typedef) g(struct) g (vf_s_metric2*) 92 b(VF_METRIC2;) p Ft 125 1465 a(The) 37 b(mem) m(b) s(ers) h(of) g(this) g(structure) g(are) h(the) f(same) h (as) f(the) h(mem) m(b) s(ers) e(of) i(a) f(bitmap) g(ob) 5 b(ject,) 42 b(and) 37 b(the) 0 1575 y(mem) m(b) s(ers') 30 b(unit) g(is) g(pixel) h(also.) p Fi 0 1825 a(5.1.4) 63 b(outline) 41 b(t) m(yp) s(e) p Ft 125 2082 a(VFlib) 32 b(de\014nes) e(its) i(priv) -5 b(ate) 32 b(outline) g(data) h(formats) e (for) h(presen) m(ting) f(v) m(ector) j(data) e(of) g(c) m(haracters.) 45 b(This) 0 2192 y(data) 31 b(format) g(is) f(used) g(b) m(y) g(VFlib) h(API) f(functions) p Fp 30 w(VF_GetOutline\(\)) p Ft 26 w(and) p Fp 30 w(VF_OutlineToBitmap\(\)) p Ft(.) 125 2339 y(Eac) m(h) k(fon) m(t) h(driv) m(er) f(returns) f(a) h(outline) h (data) f(of) h(a) f(c) m(haracter) i(of) e(a) h(fon) m(t) f(if) g(a) h (fon) m(t) f(driv) m(er) g(of) g(that) h(fon) m(t) 0 2449 y(supp) s(orts) p Fp 39 w(VF_GetOutline\(\)) p Ft 38 w(function.) 73 b(Ev) m(en) 41 b(if) h(data) g(format) g(of) f(a) h (fon) m(t) g(is) f(di\013eren) m(t) h(from) f(VFlib-) 0 2559 y(format,) c(a) f(fon) m(t) g(driv) m(er) g(con) m(v) m(erts) h (outline) f(data) g(to) g(VFlib-format) h(data.) 57 b(F) -8 b(or) 36 b(instance,) i(the) e(PCF) f(fon) m(t) 0 2668 y(driv) m(er) 42 b(\(note) h(that) g(PCF) f(is) g(a) h(bitmap) f(fon) m (t) h(format\)) g(supp) s(orts) p Fp 40 w(VF_GetOutline\(\)) p Ft 38 w(function) f(and) g(it) 0 2778 y(constructs) c(and) f(return) g (an) h(outline) g(data) g(whic) m(h) g(is) g(a) g(set) g(of) g(square;) k(eac) m(h) d(square) e(corresp) s(onds) g(to) h(a) 0 2887 y(pixel) 31 b(of) f(a) h(bitmap.) 125 3035 y(Note) d(that) g(not) f (all) h(fon) m(t) g(driv) m(ers) e(supp) s(ort) p Fp 26 w(VF_GetOutline\(\)) p Ft 23 w(function,) h(but) g(most) g(of) g (them) g(do.) 40 b(The) 0 3145 y(dev) m(elop) s(er) c(of) g(fon) m(t) h (driv) m(ers) e(are) h(strongly) h(recommen) m(ted) f(to) h(implemen) m (t) g(this) e(feature) i(ev) m(en) f(if) g(the) g(fon) m(t) 0 3254 y(fon) m(t) d(format) g(is) f(bitmap-based.) 47 b(\(The) 33 b(function) f(is) g(supp) s(orted) f(b) m(y) h(BDF,) i (PCF,) f(HBF,) g(PK,) g(GF,) g(TFM,) 0 3364 y(Zeit,) e(JG,) g(T) -8 b(rueT) m(yp) s(e,) 29 b(and) h(T) m(yp) s(e) g(1) h(fon) m(t) g(driv) m (ers.\)) 125 3511 y(Outline) f(data) h(is) f(de\014ned) f(as) i(follo) m (ws:) p Fp 240 3659 a(/*) 47 b(Outline) f(data) h(*/) 240 3768 y(typedef) f(long) 667 b(VF_OUTLINE_ELEM;) 240 3878 y(typedef) 46 b(VF_OUTLINE_ELEM) 139 b(*VF_OUTLINE;) p Ft 125 4025 a(According) 31 b(to) g(CPU) f(arc) m(hitecture,) p Fp 32 w(VF_OUTLINE_ELEM) p Ft 26 w(is) h(de\014ned) e(as) p Fp 30 w(int) p Ft 30 w(if) h(size) h(of) p Fp 31 w(long) p Ft 29 w(is) g(8.) p Fp 240 4173 a(typedef) 46 b(long) 667 b(VF_OUTLINE_ELEM;) p Ft 125 4321 a(Outline) 37 b(data) h(is) g(an) f (arra) m(y) i(of) e(VF) p 1395 4321 28 4 v 41 w(OUTLINE) p 1861 4321 V 39 w(ELEM) g(t) m(yp) s(e) h(\() p Fp(long) p Ft 37 w(or) p Fp 38 w(int) p Ft 36 w(t) m(yp) s(e\).) 63 b(Outline) 38 b(data) 0 4430 y(consists) 31 b(from) g(t) m(w) m(o) h (parts:) 41 b(header) 31 b(and) f(outline.) 43 b(The) 30 b(header) h(part) f(con) m(tains) j(metric) e(data) h(and) e(outline) 0 4540 y(part) g(con) m(tains) i(outline) f(represen) m(tation) g(of) g (a) g(c) m(haracter.) 125 4687 y(Do) s(cumen) m(tation) 45 b(for) e(this) g(feature) h(is) g(not) f(\014nished.) 79 b(See) 44 b(the) f(source) h(co) s(de) g(\(e.g.,) p Fp 48 w(VFlib-3_6.h) p Ft(,) p Fp 0 4797 a(raster.c) p Ft(,) p Fp 28 w(bm2ol) p Ft(,) 30 b(for) g(example\)) h(for) f(further) f (information.) p Fs 0 5087 a(5.2) 68 b(F) -11 b(unctions) 44 b(and) h(v) -7 b(ariables) p Fi 0 5447 a(5.2.1) p Fh 63 w(VF_Init\(\)) p Fp 240 5666 a(int) 95 b(VF_Init\(char*) p Fk 44 w(vflibcap) p Fp(,) 45 b(char*) p Fk 46 w(variable_list) p Fp 11 w(\)) p Ft 0 5845 a(F) -8 b(unctionalit) m(y) 480 5954 y(Initialization) 33 b(of) d(VFlib.) p dyy eop end %%Page: 19 20 TeXDict begin 19 19 bop Ft 0 -116 a(Chapter) 30 b(5:) 41 b(Programming) 30 b(with) g(VFlib) 2217 b(19) 0 365 y(Argumen) m(ts) p Fj 480 475 a(v\015ib) s(cap) p Ft 36 w(is) 35 b(a) g(\014le) g(name) g (of) g(v\015ib) s(cap) e(\(this) i(\014le) g(is) g(a) g(fon) m(t) g (database\).) 55 b(If) 34 b(the) h(n) m(ull) f(p) s(oin) m(ter) 480 584 y(is) 40 b(giv) m(en,) k(the) d(default) f(path) g(name) h(giv) m (en) g(on) f(compile) h(time) g(is) g(used) e(\(a) i(t) m(ypical) h (default) 480 694 y(v) -5 b(alue) 42 b(is) p Fp 42 w (/usr/local/lib/VFlib/3.6.) o(14/v) o(fli) o(bcap) p Ft -1 w(\).) 70 b(Searc) m(hing) 42 b(of) g(a) g(v\015ib) s(cap) f (\014le) 480 804 y(is) d(done) g(in) g(the) g(follo) m(wing) i(w) m(a) m (y) -8 b(.) 66 b(First,) 40 b(VFlib) f(try) f(to) h(op) s(en) e(a) i (\014le) f(as) h(giv) m(en) g(to) g(the) f(\014rst) 480 913 y(argumen) m(t.) 75 b(\(That) 42 b(is,) i(VFlib) e(searc) m(hes) h (it) f(relativ) m(e) i(to) e(curren) m(t) f(w) m(orking) h(directory) -8 b(.\)) 76 b(If) 480 1023 y(not) 40 b(found,) g(then) f(VFlib) h(try) g (to) g(op) s(en) f(the) g(\014le) h(under) e(default) h(run) m(time) h (directory) g(\(e.g.,) p Fp 480 1132 a(/usr/local/lib/VFlib/3.6) o (.14/) p Ft -1 w(\).) 32 b(F) -8 b(or) 22 b(example,) p Fp 24 w(vflibcap-tex) p Ft 18 w(is) f(giv) m(en,) j(VFlib) d(\014rst) 480 1242 y(lo) s(ok) 41 b(for) p Fp 40 w(vflibcap-tex) p Ft 36 w(in) f(curren) m(t) g(directory) -8 b(,) 44 b(and) 39 b(then,) k(it) d(lo) s(oks) h(for) f(the) g(\014le) g(under) 480 1352 y(run) m(time) 30 b(directory) -8 b(.) 480 1487 y(Default) 52 b(run) m(time) e(directory) h(can) g(b) s(e) f(c) m (hanged) h(b) m(y) g(an) g(en) m(vironmen) m(t) g(v) -5 b(ariable) p Fp 51 w(VFLIB_) 480 1596 y(RUNTIME_DIRECTORY) p Ft 20 w(on) 25 b(run) m(time.) 39 b(If) 25 b(an) g(en) m(vironmen) m(t) h(v) -5 b(ariable) p Fp 26 w(VFLIB_VFLIBCAP_PATH) p Ft 480 1706 a(is) 32 b(set,) h(the) f(\014rst) f(argumen) m(t) h(of) g (this) g(function) f(is) h(ignored) g(and) f(its) h(v) -5 b(alue) 32 b(is) g(used.) 44 b(If) 32 b(an) f(en-) 480 1815 y(vironmen) m(t) 41 b(v) -5 b(ariable) p Fp 41 w (VFLIB_VFLIBCAP_DIRECTORY) p Ft 35 w(is) 40 b(set,) k(a) e(v\015ib) s (cap) d(\014le) i(is) g(searc) m(hed) 480 1925 y(under) 29 b(a) i(directory) f(sep) s(eci\014ed) h(b) m(y) f(this) g(en) m (vironmen) m(t) h(v) -5 b(ariable.) p Fj 480 2060 a(v) g(ariable) p 796 2060 28 4 v 41 w(list) p Ft 36 w(is) 33 b(a) h(list) g(of) g (parameters) f(passed) g(to) h(VFlib.) 50 b(This) 33 b(is) g(used) g(to) h(sp) s(ecify) f(v) -5 b(alues) 480 2170 y(of) 32 b(parameterized) i(v\015ib) s(cap) d(\014les.) 47 b(\(See) 33 b(basic.txt) g(for) f(parameterized) i(v\015ib) s(cap) d (\014le.\)) 47 b(The) 480 2279 y(t) m(yp) s(e) 37 b(of) g(this) g (argumen) m(t) h(is) f(a) g(string) g(and) g(its) g(syn) m(tax) h(is) f (a) g(sequence) h(of) p Fj 37 w(V) -8 b(ariable=V) g(alue) p Ft(,) 480 2389 y(separated) 31 b(b) m(y) f(a) h(comma) p Fp 31 w(,) p Ft(.) 40 b(F) -8 b(or) 32 b(example,) p Fp 31 w(DPI=400,) c(LEVEL=1,) g(FOO=bar) p Ft(.) 0 2549 y(Return) i(v) -5 b(alue) 480 2659 y(If) 30 b(initialization) j (succeeds,) e(a) f(non-negativ) m(e) j(in) m(teger) e(is) g(returned.) 39 b(If) 30 b(initialization) j(fails,) e(a) 480 2769 y(negativ) m(e) i(in) m(teger) e(is) g(returned.) p Fi 0 2995 a(5.2.2) p Fh 63 w(vf_error) p Fp 240 3214 a(int) 95 b(vf_error) p Ft 0 3375 a(F) -8 b(unctionalit) m(y) 480 3485 y(This) 28 b(is) i(a) f(global) i(v) -5 b(ariable.) 41 b(Holding) 29 b(the) h(error) e(co) s(de) i(of) f(VFlib.) 41 b(If) 29 b(no) g(error,) g(it) h(k) m(eeps) f(0.) 41 b(If) 480 3594 y(an) 30 b(error) g(o) s(ccurs,) h(the) f(corresp) s (onding) f(error) h(co) s(de) h(is) f(set.) p Fi 0 3821 a(5.2.3) p Fh 63 w(VF_ClearError\(\)) p Fp 240 4040 a(void) 94 b(VF_ClearError\(void\)) p Ft 0 4201 a(F) -8 b(unctionalit) m(y) 480 4311 y(Clear) 31 b(the) f(error) g(co) s(de) h(v) -5 b(ariable) 31 b(of) g(VFlib.) p Fi 0 4537 a(5.2.4) p Fh 63 w(VF_OpenFont1\(\)) p Fp 240 4756 a(int) 95 b (VF_OpenFont1\(char*) p Fk 42 w(font_name) p Fp(,) 1099 4866 y(double) p Fk 46 w(dpi_x) p Fp(,) 46 b(double) p Fk 46 w(dpi_y) p Fp(,) g(double) p Fk 47 w(point_size) p Fp(,) 1099 4975 y(double) p Fk 46 w(mag_x) p Fp(,) g(double) p Fk 46 w(mag_y) p Fp 11 w(\)) p Ft 0 5136 a(F) -8 b(unctionalit) m(y) 480 5246 y(Op) s(en) 33 b(a) i(fon) m(t.) 53 b(\(If) 34 b(the) h(same) f (fon) m(t) h(is) g(op) s(ened) e(m) m(ultiple) i(times,) h(VFlib) f(k) m (eeps) g(trac) m(k) h(of) e(the) 480 5355 y(n) m(um) m(b) s(er) d(of) h (op) s(ened) f(fon) m(t) h(instances) h(of) f(the) g(fon) m(t.\)) 46 b(Since) 32 b(the) g(fon) m(t) h(is) f(op) s(ened) f(with) h(device) 480 5465 y(resolution,) 47 b(p) s(oin) m(t) 42 b(size) i(and) e (magni\014cation,) 47 b(a) c(fon) m(t) g(op) s(ened) f(b) m(y) h(this) f (function) h(ma) m(y) g(b) s(e) 480 5575 y(useful) 30 b(for) g(high) g(resolution) h(devices) g(suc) m(h) f(as) g(laser) h (prin) m(ters.) 0 5735 y(Argumen) m(ts) 480 5845 y(The) d(argumen) m(t) p Fj 29 w(fon) m(t) p 1232 5845 V 40 w(name) p Ft 34 w(is) g(a) h(name) f(of) h(the) f(fon) m(t) h(to) g(b) s(e) f(op) s (ened.) 39 b(The) 28 b(device) h(resolution) 480 5954 y(of) g(the) f(target) i(device) f(is) g(sp) s(eci\014ed) f(b) m(y) p Fj 28 w(dpi) p 1987 5954 V 39 w(x) p Ft 35 w(\(horizon) m(tal\)) p Fj 31 w(dpi) p 2732 5954 V 39 w(y) p Ft 36 w(\(v) m(ertical\).) 43 b(These) 28 b(v) -5 b(alues) p dyy eop end %%Page: 20 21 TeXDict begin 20 20 bop Ft 0 -116 a(20) 3198 b(VFlib) 31 b(3.6.14) 480 365 y(are) h(giv) m(en) h(in) f(DPI) g(\(dots) g(p) s(er) f(inc) m(h\).) 45 b(The) 32 b(argumen) m(t) p Fj 32 w(p) s(oin) m(t) p 2650 365 28 4 v 40 w(size) p Ft 38 w(sp) s(eci\014es) f(the) i(size) f (of) g(the) 480 475 y(bitmap.) 40 b(If) 28 b(this) g(argumen) m(t) h (is) g(negativ) m(e) i(the) d(bitmap) h(size) g(will) g(b) s(e) f(the) h (inheren) m(t) f(size) i(of) e(the) 480 584 y(fon) m(t.) 480 724 y(T) -8 b(o) 34 b(obtain) g(a) f(magni\014ed) h(bitmap,) g(giv) m (e) h(a) e(magni\014cation) i(factor) f(to) g(the) g(argumen) m(t) p Fj 34 w(mag) p 3697 724 V 41 w(x) p Ft 480 834 a(\(horizon) m(tal\)) g (and) p Fj 31 w(mag) p 1329 834 V 41 w(y) p Ft 39 w(\(v) m(ertical\).) 47 b(If) 32 b(the) f(argumen) m(t) p Fj 32 w(p) s(oin) m(t) p 2755 834 V 41 w(size) p Ft 37 w(is) h(non-negativ) m(e,) i(fon) m(t) 480 944 y(size) 27 b(will) f(b) s(e) p Fj 26 w(p) s(oin) m(t) p 1148 944 V 40 w(size) p Ft 32 w(times) p Fj 27 w(mag) p 1766 944 V 40 w(x) p Ft 33 w(\() p Fj(mag) p 2088 944 V 41 w(y) p Ft 8 w(\)) g(large) h(for) f(horizon) m(tal) i(\(v) m (ertical\)) h(direction.) 0 1114 y(Return) h(V) -8 b(alue) 480 1224 y(A) 35 b(non-negativ) m(e) h(in) m(teger) g(is) f(returned) e(on) i(success.) 53 b(This) 34 b(v) -5 b(alue) 35 b(is) g(a) g(fon) m(t) g (iden) m(ti\014er) g(\(fon) m(t) 480 1333 y(id\);) 30 b(it) g(is) f(used) f(to) i(sp) s(ecify) f(a) g(fon) m(t) h(for) f (further) f(fon) m(t) h(op) s(erations.) 41 b(If) p Fp 28 w(VF_OpenFont1\(\)) p Ft 26 w(fails,) 480 1443 y(a) 31 b(negativ) m(e) h(in) m(teger) g(is) f(returned.) p Fi 0 1689 a(5.2.5) p Fh 63 w(VF_OpenFont2\(\)) p Fp 240 1908 a(int) 95 b(VF_OpenFont2\(char*) p Fk 42 w(font_name) p Fp(,) 1099 2018 y(int) p Fk 47 w(pixel_size) p Fp(,) 45 b(double) p Fk 46 w(mag_x) p Fp(,) h(double) p Fk 46 w(mag_y) p Fp 11 w(\)) p Ft 0 2194 a(F) -8 b(unctionalit) m(y) 480 2303 y(Op) s(en) 33 b(a) i(fon) m(t.) 53 b(\(If) 34 b(the) h(same) f (fon) m(t) h(is) g(op) s(ened) e(m) m(ultiple) i(times,) h(VFlib) f(k) m (eeps) g(trac) m(k) h(of) e(the) 480 2413 y(n) m(um) m(b) s(er) 23 b(of) h(op) s(ened) f(fon) m(t) h(instances) h(of) f(the) g(fon) m (t.\)) 40 b(Since) 24 b(the) g(fon) m(t) g(is) g(op) s(ened) g(with) f (pixel) i(size) 480 2522 y(and) 32 b(magni\014cation,) i(a) f(fon) m(t) f(op) s(ened) g(b) m(y) g(this) g(function) g(ma) m(y) h(b) s(e) e (useful) h(for) g(lo) m(w) h(resolution) 480 2632 y(devices) e(suc) m (h) f(as) h(CR) -8 b(T) 30 b(displa) m(y) -8 b(.) 0 2802 y(Argumen) m(ts) 480 2912 y(The) 37 b(argumen) m(t) p Fj 38 w(fon) m(t) p Ft 40 w(is) h(a) g(name) f(of) h(the) g(fon) m(t) g (to) g(b) s(e) f(op) s(ened.) 61 b(The) 37 b(argumen) m(t) p Fj 38 w(pixel) p 3603 2912 V 41 w(size) p Ft 480 3022 a(sp) s(eci\014es) 28 b(the) i(size) f(of) g(the) g(bitmap.) 40 b(If) 29 b(this) f(argumen) m(t) i(is) f(negativ) m(e) i(the) e(bitmap) f(size) i(will) f(b) s(e) 480 3131 y(the) 36 b(inheren) m(t) h(size) g (of) f(the) g(fon) m(t.) 59 b(T) -8 b(o) 37 b(obtain) g(a) f (magni\014ed) g(bitmap,) i(giv) m(e) g(a) e(magni\014cation) 480 3241 y(factor) f(to) h(the) e(argumen) m(t) p Fj 35 w(mag) p 1603 3241 V 41 w(x) p Ft 40 w(\(horizon) m(tal\)) j(and) p Fj 34 w(mag) p 2581 3241 V 41 w(y) p Ft 42 w(\(v) m(ertical\).) 55 b(If) 34 b(the) h(argumen) m(t) p Fj 480 3350 a(p) s(oin) m(t) p 693 3350 V 40 w(size) p Ft 43 w(is) i(non-negativ) m(e,) j(fon) m(t) e (size) f(will) g(b) s(e) p Fj 36 w(pixel) p 2452 3350 V 41 w(size) p Ft 43 w(times) p Fj 37 w(mag) p 3092 3350 V 41 w(x) p Ft 43 w(\() p Fj(mag) p 3425 3350 V 41 w(y) p Ft 8 w(\)) f(large) 480 3460 y(for) 30 b(horizon) m(tal) i(\(v) m (ertical\)) h(direction.) 0 3630 y(Return) d(V) -8 b(alue) 480 3740 y(A) 35 b(non-negativ) m(e) h(in) m(teger) g(is) f(returned) e(on) i(success.) 53 b(This) 34 b(v) -5 b(alue) 35 b(is) g(a) g(fon) m(t) g (iden) m(ti\014er) g(\(fon) m(t) 480 3849 y(id\);) 30 b(it) g(is) f(used) f(to) i(sp) s(ecify) f(a) g(fon) m(t) h(for) f (further) f(fon) m(t) h(op) s(erations.) 41 b(If) p Fp 28 w(VF_OpenFont2\(\)) p Ft 26 w(fails,) 480 3959 y(a) 31 b(negativ) m(e) h(in) m(teger) g(is) f(returned.) p Fi 0 4205 a(5.2.6) p Fh 63 w(VF_CloseFont\(\)) p Fp 240 4424 a(int) 95 b(VF_CloseFont\(int) p Fk 43 w(font_id) p Fp 11 w(\)) p Ft 0 4600 a(F) -8 b(unctionalit) m(y) 480 4710 y(Close) 31 b(a) g(fon) m(t.) 0 4880 y(Argumen) m(ts) 480 4990 y(The) f(argumen) m(t) p Fj 31 w(fon) m(t) p 1236 4990 V 40 w(id) p Ft 34 w(is) g(a) h(fon) m(t) g(id) f(to) h(b) s(e) f (closed.) 0 5160 y(Return) g(V) -8 b(alue) 480 5270 y(A) 39 b(non-negativ) m(e) i(in) m(teger) f(is) f(returned) f(on) g(success.) 67 b(A) 39 b(negativ) m(e) i(in) m(teger) f(is) f(returned) f(on) 480 5379 y(failure.) p Fi 0 5626 a(5.2.7) p Fh 63 w(VF_GetBitmap1\(\)) p Fp 240 5845 a(VF_BITMAP) 93 b(VF_GetBitmap1\(int) p Fk 43 w(font_id) p Fp(,) 46 b(long) p Fk 46 w(code_point) p Fp(,) 1433 5954 y(double) p Fk 46 w(mag_x) p Fp(,) g(double) p Fk 46 w(mag_y) p Fp 11 w(\)) p dyy eop end %%Page: 21 22 TeXDict begin 21 21 bop Ft 0 -116 a(Chapter) 30 b(5:) 41 b(Programming) 30 b(with) g(VFlib) 2217 b(21) 0 365 y(F) -8 b(unctionalit) m(y) 480 475 y(Obtain) 27 b(a) h(glyph) f(bitmap) g(of) h (giv) m(en) g(fon) m(t) g(id) f(and) g(co) s(de) h(p) s(oin) m(t.) 40 b(The) 26 b(fon) m(t) i(id) p Fj 28 w(fon) m(t) p 3323 475 28 4 v 40 w(id) p Ft 31 w(m) m(ust) f(b) s(e) 480 584 y(an) g(id) g(b) m(y) p Fp 27 w(VF_OpenFont1\(\)) p Ft(.) 36 b(Size) 27 b(of) h(bitmap) f(to) g(b) s(e) g(obtained) g(can) h (b) s(e) e(sp) s(eci\014ed) h(b) m(y) p Fj 27 w(mag) p 3697 584 V 41 w(x) p Ft 480 694 a(and) p Fj 30 w(mag) p 829 694 V 40 w(y) p Ft 39 w(argumen) m(ts.) 0 869 y(Argumen) m(ts) p Fj 480 979 a(fon) m(t) p 642 979 V 41 w(id) p Ft 43 w(sp) s(eci\014es) 40 b(the) g(fon) m(t;) p Fj 46 w(co) s(de) p 1736 979 V 41 w(p) s(oin) m(t) p Ft 42 w(sp) s(eci\014es) g(the) g(co) s(de) h (p) s(oin) m(t) f(of) g(a) h(c) m(haracter.) 72 b(T) -8 b(o) 480 1088 y(obtain) 46 b(a) g(magni\014ed) f(bitmap,) 50 b(giv) m(e) d(a) f(magni\014cation) g(factor) h(to) f(the) g(argumen) m (t) p Fj 46 w(mag) p 3697 1088 V 41 w(x) p Ft 480 1198 a(\(horizon) m(tal\)) e(and) p Fj 41 w(mag) p 1349 1198 V 40 w(y) p Ft 50 w(\(v) m(ertical\).) 76 b(If) 41 b(a) h(fon) m(t) g (is) g(op) s(ened) f(with) g(magni\014cation) h(factor) 480 1308 y(2) 32 b(and) f(an) g(bitmap) g(is) h(obtained) g(b) m(y) f(this) g(function) g(with) h(magni\014cation) g(factor) h(2,) f(then) f(the) 480 1417 y(size) g(of) g(yielding) g(bitmap) f(will) h(b) s(e) e(4) i (times) g(larger) g(than) f(the) h(original) g(size.) 0 1592 y(Return) f(V) -8 b(alue) 480 1702 y(The) 25 b(return) g(v) -5 b(alue) 26 b(is) f(a) h(p) s(oin) m(ter) g(to) g(a) g(newly) f(allo) s (cated) j(bitmap) d(ob) 5 b(ject.) 40 b(If) 25 b(it) i(fails) f(to) g (obtain) 480 1812 y(a) 38 b(bitmap,) h(the) f(n) m(ull) f(p) s(oin) m (ter) h(is) f(returned.) 61 b(If) 37 b(the) h(bitmap) f(ob) 5 b(ject) 39 b(is) e(no) g(longer) i(needed,) 480 1921 y(it) 33 b(m) m(ust) f(b) s(e) f(released) i(b) m(y) f(the) h(function) p Fp 31 w(VF_FreeBitmap\(\)) p Ft(.) 42 b(The) 32 b(fon) m(t) h(ma) m (y) f(not) h(ha) m(v) m(e) g(the) 480 2031 y(sp) s(eci\014ed) c(size;) j (in) d(suc) m(h) h(case,) h(VFlib) g(in) m(ternally) g(enlarges) g(or) f (shrinks) e(the) j(glyph) e(to) i(obtain) 480 2140 y(a) g(bitmap) f(of) g(the) h(requested) f(size.) p Fi 0 2396 a(5.2.8) p Fh 63 w(VF_GetBitmap2\(\)) p Fp 240 2615 a(VF_BITMAP) 93 b(VF_GetBitmap2\(int) p Fk 43 w(font_id) p Fp(,) 46 b(long) p Fk 46 w(code_point) p Fp(,) 1433 2725 y(double) p Fk 46 w(mag_x) p Fp(,) g(double) p Fk 46 w(mag_y) p Fp 11 w(\)) p Ft 0 2908 a(F) -8 b(unctionalit) m(y) 480 3017 y(Obtain) 32 b(a) h(glyph) e(bitmap) h(of) h(giv) m(en) g(fon) m(t) g (id) f(and) f(co) s(de) i(p) s(oin) m(t.) 46 b(The) 32 b(fon) m(t) h(id) f('fon) m(t) p 3417 3017 V 40 w(id') h(m) m(ust) 480 3127 y(b) s(e) k(an) h(id) f(b) m(y) p Fp 38 w(VF_OpenFont2\(\)) p Ft(.) 59 b(Size) 38 b(of) g(bitmap) g(to) g(b) s(e) f(obtained) h(can) g (b) s(e) g(sp) s(eci\014ed) f(b) m(y) p Fj 480 3237 a(pixel) p 675 3237 V 40 w(size) p Ft(,) p Fj 32 w(mag) p 1079 3237 V 41 w(x) p Ft 36 w(and) p Fj 30 w(mag) p 1547 3237 V 41 w(y) p Ft 38 w(argumen) m(ts.) 0 3412 y(Argumen) m(ts) p Fj 480 3521 a(fon) m(t) p 642 3521 V 41 w(id) p Ft 43 w(sp) s(eci\014es) j(the) g(fon) m(t;) p Fj 46 w(co) s(de) p 1736 3521 V 41 w(p) s(oin) m(t) p Ft 42 w(sp) s(eci\014es) g(the) g(co) s(de) h(p) s(oin) m(t) f(of) g(a) h(c) m(haracter.) 72 b(T) -8 b(o) 480 3631 y(obtain) 46 b(a) g(magni\014ed) f(bitmap,) 50 b(giv) m(e) d(a) f(magni\014cation) g(factor) h(to) f(the) g(argumen) m (t) p Fj 46 w(mag) p 3697 3631 V 41 w(x) p Ft 480 3741 a(\(horizon) m(tal\)) e(and) p Fj 41 w(mag) p 1349 3741 V 40 w(y) p Ft 50 w(\(v) m(ertical\).) 76 b(If) 41 b(a) h(fon) m(t) g (is) g(op) s(ened) f(with) g(magni\014cation) h(factor) 480 3850 y(2) 32 b(and) f(an) g(bitmap) g(is) h(obtained) g(b) m(y) f(this) g(function) g(with) h(magni\014cation) g(factor) h(2,) f(then) f(the) 480 3960 y(size) g(of) g(yielding) g(bitmap) f(will) h(b) s(e) e(4) i (times) g(larger) g(than) f(the) h(original) g(size.) 0 4135 y(Return) f(V) -8 b(alue) 480 4244 y(The) 25 b(return) g(v) -5 b(alue) 26 b(is) f(a) h(p) s(oin) m(ter) g(to) g(a) g(newly) f(allo) s (cated) j(bitmap) d(ob) 5 b(ject.) 40 b(If) 25 b(it) i(fails) f(to) g (obtain) 480 4354 y(a) 38 b(bitmap,) h(the) f(n) m(ull) f(p) s(oin) m (ter) h(is) f(returned.) 61 b(If) 37 b(the) h(bitmap) f(ob) 5 b(ject) 39 b(is) e(no) g(longer) i(needed,) 480 4464 y(it) 33 b(m) m(ust) f(b) s(e) f(released) i(b) m(y) f(the) h(function) p Fp 31 w(VF_FreeBitmap\(\)) p Ft(.) 42 b(The) 32 b(fon) m(t) h(ma) m (y) f(not) h(ha) m(v) m(e) g(the) 480 4573 y(sp) s(eci\014ed) c(size;) j (in) d(suc) m(h) h(case,) h(VFlib) g(in) m(ternally) g(enlarges) g(or) f (shrinks) e(the) j(glyph) e(to) i(obtain) 480 4683 y(a) g(bitmap) f(of) g(the) h(requested) f(size.) p Fi 0 4939 a(5.2.9) p Fh 63 w(VF_GetMetric1\(\)) p Fp 240 5158 a(VF_METRIC1) 93 b(VF_GetMetric1\(int) p Fk 43 w(font_id) p Fp(,) 45 b(long) p Fk 47 w(code_point) p Fp(,) 1481 5267 y(VF_METRIC1) p Fk 45 w(metric1) p Fp(,) 1481 5377 y(double) p Fk 46 w(mag_x) p Fp(,) h(double) p Fk 46 w(mag_y) p Fp 11 w(\)) p Ft 0 5560 a(F) -8 b(unctionalit) m(y) 480 5670 y(Obtain) 30 b(fon) m(t) h(metrics) g(of) f(a) h(giv) m(en) h(fon) m(t) e(and) g(co) s(de) h(p) s(oin) m(t.) 0 5845 y(Argumen) m(ts) 480 5954 y(Same) f(argumen) m(ts) h(as) g(of) p Fp 30 w(VF_GetBitmap1\(\)) p Ft(.) p dyy eop end %%Page: 22 23 TeXDict begin 22 22 bop Ft 0 -116 a(22) 3198 b(VFlib) 31 b(3.6.14) 0 365 y(Return) f(V) -8 b(alue) 480 475 y(A) 24 b(p) s(oin) m(ter) h(to) f(a) h(metric1) g(ob) 5 b(ject) 25 b(is) g(returned.) 37 b(If) 24 b(an) g(error) g(o) s(ccurs,) h(the) g (NULL) f(p) s(oin) m(ter) g(is) g(re-) 480 584 y(turned.) 38 b(The) 24 b(obtained) g(metric) i(is) e(a) h(metric) g(for) f(a) h (bitmap) f(obtained) h(b) m(y) p Fp 25 w(VF_GetBitmap1\(\)) p Ft 480 694 a(with) e(the) g(same) h(argumen) m(ts,) h(but) d(the) i (unit) f(of) g(the) g(obtained) h(metric) g(is) f(p) s(oin) m(t.) 38 b(If) 23 b(the) g(metric1) 480 804 y(ob) 5 b(ject) 31 b(is) g(no) f(longer) h(needed) f(it) h(m) m(ust) f(b) s(e) g(released) h(b) m(y) f(the) h(function) p Fp 30 w(VF_FreeMetric1\(\)) p Ft(.) p Fi 0 1018 a(5.2.10) p Fh 63 w(VF_GetMetric2\(\)) p Fp 240 1237 a(VF_METRIC2) 93 b(VF_GetMetric2\(int) p Fk 43 w(font_id) p Fp(,) 45 b(long) p Fk 47 w(code_point) p Fp(,) 1481 1346 y(VF_METRIC2) p Fk 45 w(metric2) p Fp(,) 1481 1456 y(double) p Fk 46 w(mag_x) p Fp(,) h(double) p Fk 46 w(mag_y) p Fp 11 w(\)) p Ft 0 1609 a(F) -8 b(unctionalit) m(y) 480 1718 y(Obtain) 30 b(fon) m(t) h(metrics) g(of) f(a) h(giv) m(en) h(fon) m(t) e(and) g(co) s(de) h(p) s(oin) m(t.) 0 1871 y(Argumen) m(ts) 480 1980 y(Same) f(argumen) m(ts) h(as) g(of) p Fp 30 w(VF_GetBitmap2\(\)) p Ft(.) 0 2133 y(Return) f(V) -8 b(alue) 480 2243 y(A) 24 b(p) s(oin) m(ter) h(to) f(a) h(metric2) g(ob) 5 b(ject) 25 b(is) g(returned.) 37 b(If) 24 b(an) g(error) g(o) s(ccurs,) h(the) g (NULL) f(p) s(oin) m(ter) g(is) g(re-) 480 2352 y(turned.) 38 b(The) 24 b(obtained) g(metric) i(is) e(a) h(metric) g(for) f(a) h (bitmap) f(obtained) h(b) m(y) p Fp 25 w(VF_GetBitmap2\(\)) p Ft 480 2462 a(with) f(the) h(same) g(argumen) m(ts,) h(but) d(the) i (unit) f(of) h(the) f(obtained) h(metric) g(is) g(pixel.) 39 b(If) 24 b(the) g(metric2) 480 2571 y(ob) 5 b(ject) 31 b(is) f(no) f(longer) i(needed,) f(it) g(m) m(ust) g(b) s(e) f (released) h(b) m(y) g(the) g(function) p Fp 30 w(VF_FreeMetric2\(\)) p Ft(.) p Fi 0 2785 a(5.2.11) p Fh 63 w(VF_GetOutline\(\)) p Fp 240 3005 a(VF_OUTLINE) 93 b(VF_GetOutline\(int) p Fk 43 w(font_id) p Fp(,) 45 b(long) p Fk 47 w(code_point) p Fp(,) 1481 3114 y(double) p Fk 46 w(mag_x) p Fp(,) h(double) p Fk 46 w(mag_y) p Fp 11 w(\)) p Ft 0 3267 a(F) -8 b(unctionalit) m(y) 480 3376 y(Obtain) 30 b(outline) h(data) g(from) f(a) h(giv) m(en) g(fon) m (t) g(and) f(co) s(de) g(p) s(oin) m(t.) 0 3529 y(Argumen) m(ts) 480 3639 y(Same) g(as) p Fp 31 w(VF_GetBitmap1\(\)) p Ft(.) 0 3791 y(Return) g(V) -8 b(alue) 480 3901 y(Return) 39 b(v) -5 b(alue) 41 b(is) g(a) f(p) s(oin) m(ter) g(to) h(a) g(newly) f (allo) s(cated) i(outline) f(data) g(ob) 5 b(ject.) 71 b(If) 40 b(it) h(fails) g(to) 480 4010 y(obtain) 33 b(a) g(outline) g (data,) h(the) f(NULL) g(p) s(oin) m(ter) f(is) h(returned.) 46 b(Ev) m(en) 33 b(if) g(the) g(original) g(fon) m(t) g(is) g(a) 480 4120 y(bitmap,) c(VFlib) h(in) m(ternally) g(creates) h(outline) f (data) f(from) g(the) g(bitmap.) 40 b(If) 29 b(the) g(source) h(fon) m (t) f(is) 480 4230 y(a) f(v) m(ector) i(fon) m(t,) f(VFlib) f(in) m (ternally) h(con) m(v) m(erts) g(the) f(data) g(format) g(to) h(VFlib) f (outline) g(data) h(st) m(yle.) 480 4339 y(A) 36 b(bitmap) f(of) h(an) m (y) h(sp) s(eci\014ed) e(size) h(can) g(b) s(e) g(obtained) g(from) f (outline) i(data) f(b) m(y) g(the) g(function) p Fp 480 4449 a(VF_Outline2Bitmap\(\)) p Ft(.) f(\(Default) 29 b(p) s(oin) m(t) g(size) g(and) e(device) i(resolution) g(is) f(also) i (k) m(ept) e(in) g(the) 480 4558 y(outline) j(data.\)) p Fi 0 4772 a(5.2.12) p Fh 63 w(VF_OutlineToBitmap\(\)) p Fp 240 4992 a(VF_OUTLINE) 93 b(VF_OutlineToBitmap\(VF_O) o(UTLI) o(NE) p Fk 42 w(outline) p Fp(,) 1720 5101 y(double) p Fk 46 w(dpi_x) p Fp(,) 46 b(double) p Fk 46 w(dpi_y) p Fp(,) 1720 5211 y(double) p Fk 46 w(point_size) p Fp(,) 1720 5320 y(double) p Fk 46 w(mag_x) p Fp(,) g(double) p Fk 46 w(mag_y) p Fp 11 w(\)) p Ft 0 5473 a(F) -8 b(unctionalit) m(y) 480 5583 y(Obtain) 30 b(a) h(bitmap) f(from) g(outline) h(data.) 0 5735 y(Argumen) m(ts) 480 5845 y(The) h(argumen) m(t) p Fj 32 w(outline) p Ft 38 w(is) g(a) g(p) s(oin) m(ter) g(to) h(an) f (outline) h(ob) 5 b(ject) 33 b(to) f(b) s(e) g(rasterised.) 46 b(The) 31 b(argu-) 480 5954 y(men) m(ts) p Fj 25 w(dpi) p 873 5954 28 4 v 39 w(x) p Ft(,) p Fj 26 w(dpi) p 1138 5954 V 39 w(y) p Ft(,) p Fj 25 w(p) s(oin) m(t) p 1482 5954 V 41 w(size) p Ft(,) p Fj 26 w(mag) p 1881 5954 V 41 w(x) p Ft 30 w(and) p Fj 24 w(mag) p 2337 5954 V 41 w(y) p Ft 32 w(are) 24 b(the) h(same) f(as) h(the) f(corresp) s (onding) p dyy eop end %%Page: 23 24 TeXDict begin 23 23 bop Ft 0 -116 a(Chapter) 30 b(5:) 41 b(Programming) 30 b(with) g(VFlib) 2217 b(23) 480 365 y(argumen) m(ts) 36 b(of) p Fp 35 w(VF_GetBitmap1\(\)) p Ft(.) 51 b(The) 35 b(outline) h(data) g(con) m(tains) h(information) e (on) h(device) 480 475 y(resolution) g(and) f(p) s(oin) m(t) h(size) g (sp) s(eci\014ed) f(b) m(y) p Fp 35 w(VF_GetOutline\(\)) p Ft(.) 53 b(\(If) 35 b(not) h(sp) s(eci\014ed,) g(default) 480 584 y(v) -5 b(alues) 30 b(are) h(used.) 39 b(Th) m(us,) 30 b(bitmaps) f(with) h(a) g(default) g(size) h(can) f(b) s(e) f(obtained) i(b) m(y) e(giving) i(-1) g(for) 480 694 y(the) g(argumen) m(ts\).) 0 839 y(Return) f(V) -8 b(alue) 480 949 y(A) 28 b(p) s(oin) m(ter) h(to) g (a) g(bitmap) f(ob) 5 b(ject) 29 b(is) g(returned.) 39 b(The) 27 b(NULL) i(p) s(oin) m(ter) f(is) h(returned) e(on) h (failure.) 480 1059 y(If) 37 b(the) g(bitmap) g(ob) 5 b(ject) 39 b(is) e(no) g(longer) h(needed) f(it) h(m) m(ust) f(b) s(e) g (released) h(b) m(y) f(the) g(function) p Fp 37 w(VF_) 480 1168 y(FreeBitmap\(\)) p Ft(.) p Fi 0 1371 a(5.2.13) p Fh 63 w(VF_GetFontBoundingBox1\(\)) p Fp 240 1590 a(int) 95 b(VF_GetFontBoundingBox1\() o(int) p Fk 41 w(font_id) p Fp(,) 1576 1700 y(double) p Fk 46 w(mag_x) p Fp(,) 47 b(double) p Fk 46 w(mag_y) p Fp(,) 1576 1809 y(double*) p Fk 46 w(w) p Fp(,) g(double*) p Fk 46 w(h) p Fp(,) 1576 1919 y(double*) p Fk 46 w(xoff) p Fp(,) g(double*) p Fk 45 w(yoff) p Fp 11 w(\)) p Ft 0 2064 a(F) -8 b(unctionalit) m(y) 480 2174 y(Obtain) 30 b(fon) m(t) h(b) s(ounding) d(b) s(o) m(x) j (information) f(of) h(a) g(giv) m(en) g(fon) m(t.) 0 2319 y(Argumen) m(ts) 480 2429 y(The) h(argumen) m(t) p Fj 33 w(fon) m(t) p 1240 2429 28 4 v 40 w(id) p Ft 36 w(sp) s(ecify) g(a) h(fon) m(t) g(in) f(in) m(terest.) 48 b(The) 32 b(function) g(writes) h(the) f(b) s(ounding) 480 2538 y(b) s(o) m(x) g(information) g(to) h(the) g(lo) s(cations) g(p) s (oin) m(ted) f(b) m(y) p Fj 32 w(w) p Ft(,) p Fj 33 w(h) p Ft(,) p Fj 32 w(xo\013) p Ft(,) h(and) p Fj 32 w(y) m(o\013) p Ft(.) p Fj 47 w(w) p Ft 39 w(and) p Fj 32 w(h) p Ft 32 w(p) s(oin) m(t) f(to) 480 2648 y(data) 26 b(ob) 5 b(jects) 25 b(for) g(width) f(and) h(heigh) m(t) h(of) f(b) s(ounding) e(b) s(o) m (x,) j(resp) s(ectiv) m(ely) -8 b(.) p Fj 41 w(xo\013) p Ft 43 w(and) p Fj 24 w(y) m(o\013) p Ft 43 w(p) s(oin) m(t) 480 2758 y(to) 33 b(data) f(ob) 5 b(jects) 33 b(for) f(largest) h(horizon) m (tal) g(and) f(v) m(ertical) i(displacemen) m(t) f(of) f(lo) m(w) m(er) h(left) g(corner) 480 2867 y(of) g(b) s(ounding) f(b) s(o) m(x) h(from) g(reference) h(p) s(oin) m(ts.) 49 b(Note) 35 b(that) f(these) g(v) -5 b(alues) 33 b(do) s(es) g(not) h(guaran) m(tee) 480 2977 y(the) h(minimalit) m(y;) i(they) e(only) f(guaran) m(tee) i(that) f (all) g(c) m(haracters) h(can) f(b) s(e) e(con) m(tained) j(in) e(a) h (b) s(o) m(x) 480 3086 y(descriv) m(ed) f(b) m(y) g(them.) 51 b(If) 33 b(some) h(v) -5 b(alues) 34 b(of) p Fj 34 w(w) p Ft(,) p Fj 34 w(h) p Ft(,) p Fj 35 w(xo\013) p Ft(,) h(or) p Fj 34 w(y) m(o\013) p Ft 52 w(are) f(not) g(in) g(in) m(terest,) i (NULL) 480 3196 y(p) s(oin) m(ter) 30 b(can) h(b) s(e) f(giv) m(en.) 480 3323 y(The) h(argumen) m(t) p Fj 32 w(mag) p 1248 3323 V 41 w(x) p Ft 38 w(and) p Fj 31 w(mag) p 1719 3323 V 41 w(y) p Ft 39 w(are) h(magini\014cation) h(factor) g(to) f(b) s(e) f (scaled) i(for) e(a) h(giv) m(en) 480 3433 y(fon) m(t) p Fj 31 w(fon) m(t) p 829 3433 V 40 w(id) p Ft(.) 0 3578 y(Return) e(V) -8 b(alue) 480 3688 y(If) 34 b(fon) m(t) g(b) s(ounding) e(information) j(is) f(successfully) g(obtained,) h(a) g(non-negativ) m (e) h(in) m(teger) f(is) f(re-) 480 3797 y(turned;) 29 b(otherwize,) j(negativ) m(e) h(in) m(teger) e(is) g(returned.) 480 3925 y(Units) f(of) h(b) s(ounding) e(b) s(o) m(x) h(information) g(is) h(in) f(p) s(oin) m(t.) p Fi 0 4128 a(5.2.14) p Fh 63 w(VF_GetFontBoundingBox2\(\)) p Fp 240 4347 a(int) 95 b(VF_GetFontBoundingBox2\() o(int) p Fk 41 w(font_id) p Fp(,) 1576 4457 y(double) p Fk 46 w(mag_x) p Fp(,) 47 b(double) p Fk 46 w(mag_y) p Fp(,) 1576 4566 y(int*) p Fk 47 w(w) p Fp(,) g(int*) p Fk 47 w(h) p Fp(,) 1576 4676 y(int*) p Fk 47 w(xoff) p Fp(,) f(int*) p Fk 47 w(yoff) p Fp 11 w(\)) p Ft 125 4803 a(Same) 22 b(as) p Fp 22 w(VF_GetFontBoundingBox1\(\)) p Ft 15 w(except) i(units) d(of) h (fon) m(t) h(b) s(ounding) d(b) s(o) m(x) i(parameters) g(are) h (pixel.) p Fi 0 5006 a(5.2.15) p Fh 63 w(VF_GetProp\(\)) p Fp 240 5225 a(char*) 94 b(VF_GetProp\(int) p Fk 44 w(font_id) p Fp(,) 46 b(char*) p Fk 46 w(prop_name) p Fp 11 w(\)) p Ft 0 5371 a(F) -8 b(unctionalit) m(y) 480 5480 y(Obtain) 32 b(a) h(prop) s(ert) m(y) f(of) g(giv) m(en) h(fon) m(t.) 48 b(\(This) 32 b(function) g(is) g(fon) m(t) h(class) g(dep) s(enden) m (t.) 46 b(Y) -8 b(ou) 33 b(m) m(ust) 480 5590 y(b) s(e) d(v) m(ery) g (careful) h(to) g(use) f(it!\)) 0 5735 y(Argumen) m(ts) 480 5845 y(The) 46 b(argumen) m(t) p Fj 47 w(fon) m(t) p 1268 5845 V 41 w(id) p Ft 50 w(sp) s(eci\014es) g(a) h(fon) m(t) g (from) g(whic) m(h) f(to) h(obtain) h(a) f(prop) s(ert) m(y) -8 b(.) p Fj 89 w(prop-) 480 5954 y(ert) m(y) p 642 5954 V 41 w(name) p Ft 35 w(sp) s(eci\014es) 30 b(the) h(prop) s(ert) m(y) f (name.) p dyy eop end %%Page: 24 25 TeXDict begin 24 24 bop Ft 0 -116 a(24) 3198 b(VFlib) 31 b(3.6.14) 0 365 y(Return) f(V) -8 b(alue) 480 475 y(If) 39 b(the) g(giv) m(en) h(prop) s(ert) m(y) f(exists,) j(its) e(v) -5 b(alue) 40 b(is) f(returned) f(as) h(a) h(string.) 67 b(The) 39 b(string) g(for) g(the) 480 584 y(prop) s(ert) m(y) c(v) -5 b(alue) 36 b(is) g(newly) f(allo) s(cated) i(and) e(m) m(ust) h(b) s(e) f(released) h(b) m(y) p Fj 36 w(free\(\)) p Ft 37 w(if) g(it) g(is) f (no) h(longer) 480 694 y(needed.) k(If) 30 b(the) h(giv) m(en) g(prop) s (ert) m(y) f(is) g(unde\014ned,) f(the) h(NULL) h(p) s(oin) m(ter) f (is) g(returned.) p Fi 0 936 a(5.2.16) p Fh 63 w(VF_CopyBitmap\(\)) p Fp 240 1155 a(VF_BITMAP) 93 b(VF_CopyBitmap\(VF_BITMAP) p Fk 41 w(bm) p Fp 11 w(\)) p Ft 0 1327 a(F) -8 b(unctionalit) m(y) 480 1437 y(Mak) m(e) 32 b(a) f(cop) m(y) g(of) f(a) h(bitmap) f(ob) 5 b(ject.) 0 1605 y(Argumen) m(ts) 480 1714 y(The) 30 b(argumen) m(t) p Fj 31 w(bm) p Ft 29 w(is) h(a) f(p) s(oin) m(ter) h(to) g(a) g(bitmap) f (ob) 5 b(ject) 31 b(to) g(b) s(e) f(copied.) 0 1883 y(Return) g(V) -8 b(alue) 480 1992 y(A) 34 b(new) g(bitmap) g(ob) 5 b(ject) 35 b(is) f(allo) s(cated;) k(all) d(v) -5 b(alues) 34 b(are) h(copied.) 52 b(Return) 33 b(v) -5 b(alue) 35 b(is) f(a) g(p) s(oin) m(ter) 480 2102 y(to) k(a) f(new) g(bitmap.) 61 b(The) 36 b(source) i(bitmap) p Fj 36 w(bm) p Ft 37 w(remains) f(una\013ected.) 61 b(If) 37 b(an) g(error) g(o) s(ccurs,) 480 2211 y(the) i(NULL) f(p) s(oin) m (ter) h(is) g(returned.) 64 b(The) 38 b(obtained) h(bitmap) f(ob) 5 b(ject) 40 b(m) m(ust) e(b) s(e) g(released) i(b) m(y) p Fp 480 2321 a(VF_FreeBitmap\(\)) p Ft 26 w(if) 31 b(it) f(is) h(no) f (longer) h(needed.) p Fi 0 2562 a(5.2.17) p Fh 63 w (VF_MakeScaledBitmap\(\)) p Fp 240 2782 a(VF_BITMAP) 93 b(VF_MakeScaledBitmap\(VF_B) o(ITMA) o(P) p Fk 42 w(bm) p Fp(,) 1720 2891 y(double) p Fk 46 w(mag_x) p Fp(,) 46 b(double) p Fk 46 w(mag_y) p Fp 11 w(\)) p Ft 0 3064 a(F) -8 b(unctionalit) m(y) 480 3173 y(Mak) m(e) 32 b(an) e(enlarged) h (or) f(shrink) m(ed) g(bitmap.) 0 3341 y(Argumen) m(ts) 480 3451 y(The) 36 b(argumen) m(t) p Fj 37 w(bm) p Ft 36 w(sp) s(eci\014es) g(the) g(source) h(bitmap) f(ob) 5 b(ject,) p Fj 39 w(mag) p 2853 3451 28 4 v 41 w(x) p Ft 43 w(and) p Fj 35 w(mag) p 3333 3451 V 41 w(y) p Ft 44 w(giv) m(e) 38 b(the) 480 3560 y(magni\014cation) 45 b(factor) g(in) f(the) g(horizon) m(tal) i(and) d(v) m(ertical) k (direction) d(resp) s(ectiv) m(ely) -8 b(.) 84 b(If) 43 b(the) 480 3670 y(magni\014cation) 29 b(factor) f(is) g(less) g(than) f (1,) i(a) f(shrink) m(ed) e(bitmap) h(is) h(obtained.) 40 b(V) -8 b(alues) 29 b(for) p Fj 27 w(mag) p 3697 3670 V 41 w(x) p Ft 480 3780 a(and) p Fj 33 w(mag) p 832 3780 V 41 w(y) p Ft 41 w(can) 35 b(b) s(e) e(arbitrary) h(suc) m(h) f(as) h (\() p Fj(mag) p 2183 3780 V 49 w(x) p Fg 37 w(>) p Ft 31 w(1) g(and) p Fj 34 w(mag) p 2845 3780 V 48 w(y) p Fg 39 w(<) p Ft 31 w(1\)) g(or) g(\() p Fj(mag) p 3512 3780 V 49 w(x) p Fg 37 w(<) p Ft 31 w(1) 480 3889 y(and) p Fj 30 w(mag) p 837 3889 V 48 w(y) p Fg 33 w(>) p Ft 25 w(1\).) 0 4057 y(Return) c(V) -8 b(alue) 480 4167 y(A) 34 b(bitmap) f(ob) 5 b(ject) 34 b(whose) g(bitmap) f(is) g(enlarged) h(or) g(shrink) m(ed) e(is) i(created) g(and) f(a) h(p) s(oin) m(ter) g(to) 480 4276 y(the) c(new) g(bitmap) g(is) g(returned.) 40 b(If) 29 b(an) i(error) e(o) s(ccurs,) i(the) f(NULL) g(p) s(oin) m (ter) g(is) g(returned.) 40 b(The) 480 4386 y(source) 23 b(bitmap) p Fj 22 w(bm) p Ft 22 w(remains) f(una\013ected.) 39 b(Use) p Fp 23 w(VF_FreeBitmap\(\)) p Ft 18 w(if) 23 b(the) f(returned) g(bitmap) 480 4496 y(ob) 5 b(ject) 31 b(is) g(no) f(longer) h(necessary) -8 b(.) p Fi 0 4737 a(5.2.18) p Fh 63 w(VF_ReflectedBitmap\(\)) p Fp 240 4956 a(VF_BITMAP) 93 b(VF_ReflectedBitmap\(VF_BI) o(TMAP) p Fk 41 w(bm) p Fp(,) 1672 5066 y(int) p Fk 47 w(refl_x) p Fp(,) 46 b(double) p Fk 46 w(refl_y) p Fp 11 w(\)) p Ft 0 5238 a(F) -8 b(unctionalit) m(y) 480 5348 y(Mak) m(e) 32 b(a) f(bitmap) f(with) g(horizon) m(tally) i(and/or) e(v) m(ertically) j (re\015ected) e(image.) 0 5516 y(Argumen) m(ts) 480 5626 y(The) i(argumen) m(t) p Fj 34 w(bm) p Ft 33 w(sp) s(eci\014es) h(the) g (source) f(bitmap) h(ob) 5 b(ject,) p Fj 36 w(re\015) p 2792 5626 V 39 w(x) p Ft 40 w(and) p Fj 33 w(re\015) p 3226 5626 V 40 w(y) p Ft 41 w(sp) s(ecify) 33 b(the) 480 5735 y(re\015ection,) 39 b(resp) s(ectiv) m(ely) -8 b(.) 61 b(If) p Fj 36 w(re\015) p 1679 5735 V 40 w(x) p Ft 42 w(is) 37 b(non-zero,) i(the) e(image) g(is) g(holizon) m(tally) i (re\015ected;) h(if) p Fj 480 5845 a(re\015) p 613 5845 V 40 w(y) p Ft 32 w(is) 25 b(non-zero,) i(the) e(image) i(is) e(v) m (ertically) i(re\015ected.) 40 b(In) 24 b(case) p Fj 26 w(relf) p 2917 5845 V 40 w(x) p Ft 31 w(and) p Fj 25 w(re\015) p 3335 5845 V 39 w(y) p Ft 33 w(are) h(b) s(oth) 480 5954 y(zero,) 31 b(the) g(e\013ect) h(is) e(the) h(same) g(as) p Fp 30 w(VF_CopyBitmap\(\)) p Ft(.) p dyy eop end %%Page: 25 26 TeXDict begin 25 25 bop Ft 0 -116 a(Chapter) 30 b(5:) 41 b(Programming) 30 b(with) g(VFlib) 2217 b(25) 0 365 y(Return) 30 b(V) -8 b(alue) 480 475 y(A) 38 b(new) f(bitmap) h(ob) 5 b(ject) 38 b(is) g(created) h(and) e(a) h(p) s(oin) m(ter) g(to) h(the) f(new) f(bitmap) g(is) h(returned.) 62 b(If) 480 584 y(an) 38 b(error) g(o) s(ccurs,) i(the) e(NULL) g(p) s(oin) m(ter) g (is) h(returned.) 62 b(Metrics) 40 b(of) e(created) h(bitmap) f(is) g (the) 480 694 y(same) h(as) h(that) f(of) g(the) g(original) h(bitmap.) 67 b(The) 38 b(source) h(bitmap) p Fj 39 w(bm) p Ft 38 w(remains) g(una\013ected.) 480 804 y(Use) p Fp 31 w(VF_FreeBitmap\(\)) p Ft 26 w(if) 30 b(the) h(returned) e(bitmap) h(ob) 5 b(ject) 31 b(is) g(no) f(longer) h(necessary) -8 b(.) p Fi 0 1022 a(5.2.19) p Fh 63 w(VF_RotatedBitmap\(\)) p Fp 240 1242 a(VF_BITMAP) 93 b(VF_RotatedBitmap\(VF_BITM) o(AP) p Fk 42 w(bm) p Fp(,) 47 b(int) p Fk 46 w(angle) p Fp 11 w(\)) p Ft 0 1397 a(F) -8 b(unctionalit) m(y) 480 1507 y(Mak) m(e) 32 b(a) f(bitmap) f(image) h(with) g(rotated) g(image.) 0 1663 y(Argumen) m(ts) 480 1773 y(The) h(argumen) m(t) p Fj 32 w(bm) p Ft 32 w(sp) s(eci\014es) f(the) i(source) f(bitmap) g(ob) 5 b(ject,) p Fj 33 w(angle) p Ft 39 w(giv) m(es) 33 b(rotation) h (angle) f(in) 480 1882 y(degree.) 46 b(By) 32 b(the) g(limitation) h (of) f(implemen) m(tation,) i(rotatin) f(angle) f(m) m(ust) g(b) s(e) f (m) m(ultiple) h(of) g(90.) 480 1992 y(The) e(rotation) i(angle) p Fj 31 w(angle) p Ft 36 w(m) m(ust) f(b) s(e) e(one) i(of) g(the) f (follo) m(wing:) p Fp 480 2148 a(VF_BM_ROTATE_0) p Ft 960 2257 a(Rotation) 22 b(angle) g(is) f(zero.) 38 b(Th) m(us,) 22 b(the) f(e\013ect) h(is) f(the) g(same) g(as) p Fp 21 w(VF_CopyBitmap\(\)) p Ft(.) p Fp 480 2413 a(VF_BM_ROTATE_90) p Ft 960 2523 a(Rotation) 32 b(angle) f(is) g(90) g(degree.) p Fp 480 2678 a(VF_BM_ROTATE_180) p Ft 960 2788 a(Rotation) h(angle) f (is) g(180) h(degree.) p Fp 480 2944 a(VF_BM_ROTATE_270) p Ft 960 3053 a(Rotation) g(angle) f(is) g(270) h(degree.) 0 3209 y(Return) e(V) -8 b(alue) 480 3319 y(A) 24 b(bitmap) g(ob) 5 b(ject) 26 b(whose) e(bitmap) g(is) g(rotated) h(is) g(created) g(and) f (a) g(p) s(oin) m(ter) g(to) h(the) g(new) f(bitmap) 480 3428 y(is) 34 b(returned.) 50 b(If) 34 b(an) g(error) g(o) s(ccurs,) g (the) h(NULL) f(p) s(oin) m(ter) g(is) g(returned.) 50 b(The) 34 b(source) g(bitmap) p Fj 480 3538 a(bm) p Ft 39 w(remains) 39 b(una\013ected.) 70 b(Use) p Fp 40 w (VF_FreeBitmap\(\)) p Ft 36 w(if) 39 b(the) h(bitmap) g(ob) 5 b(ject) 40 b(is) g(no) g(longer) 480 3648 y(necessary) -8 b(.) 480 3780 y(This) 26 b(function) h(rotates) i(a) f(bitmap) f(with) g (the) g(reference) h(p) s(oin) m(t) f(as) h(origin.) 40 b(The) 26 b(v) m(ector) j(to) f(the) 480 3890 y(next) f(reference) h(p) s(oin) m(t) g(is) f(also) h(rotated.) 41 b(Therefore,) 28 b(p) s(osition) f(of) h(the) f(reference) h(p) s(oin) m(t) f(and) g(a) 480 4000 y(v) m(ector) 37 b(to) f(the) g(next) f(reference) h(p) s(oin) m(t) g(of) p Fp 35 w(VF_RotatedBitmap\() p Fk(bm) p Fp(,) 25 b(VF_BM_ROTATE_180\)) p Ft 480 4109 a(and) 30 b(that) h(of) p Fp 30 w(VF_ReflectedBitmap\() p Fk(bm) p Fp(,) 25 b(1,) k(1\)) p Ft 30 w(are) i(di\013eren) m(t.) p Fi 0 4328 a(5.2.20) p Fh 63 w(VF_DumpBitmap\(\)) p Fp 240 4547 a(void) 94 b (VF_DumpBitmap\(VF_BITMAP) p Fk 42 w(bm) p Fp 11 w(\)) p Ft 0 4703 a(F) -8 b(unctionalit) m(y) 480 4813 y(Prin) m(t) 30 b(a) h(bitmap) f(in) g(ASCI) s(I-art-st) m(yle) h(to) h(stdout.) 0 4968 y(Argumen) m(ts) 480 5078 y(The) e(argumen) m(t) p Fj 31 w(bm) p Ft 29 w(sp) s(eci\014es) g(a) h(bitmap) f(to) h(b) s(e) f (displa) m(y) m(ed.) p Fi 0 5297 a(5.2.21) p Fh 63 w (VF_ImageOut_PBMAscii\(\)) p Fp 240 5516 a(int) 95 b (VF_ImageOut_PBMAscii\(VF) o(_BIT) o(MAP) p Fk 41 w(bm) p Fp(,) 47 b(FILE) g(*) p Fk(fp) p Fp(,) 1481 5626 y(int) p Fk 47 w(image_width) p Fp(,) d(int) p Fk 47 w(image_height) p Fp(,) 1481 5735 y(int) p Fk 47 w(position_x) p Fp(,) h(int) p Fk 46 w(position_y) p Fp(,) 1481 5845 y(int) p Fk 47 w(margin_l) p Fp(,) g(int) p Fk 47 w(margin_r) p Fp(,) 1481 5954 y(int) p Fk 47 w(margin_t) p Fp(,) g(int) p Fk 47 w(margin_b) p Fp(,) p dyy eop end %%Page: 26 27 TeXDict begin 26 26 bop Ft 0 -116 a(26) 3198 b(VFlib) 31 b(3.6.14) p Fp 1481 365 a(int) p Fk 47 w(reverse) p Fp(,) 45 b(int) p Fk 47 w(shrink) p Fp(,) 1481 475 y(char) i(*) p Fk(prog) p Fp(,) f(char) g(*) p Fk(title) p Fp 11 w(\)) p Ft 0 626 a(F) -8 b(unctionalit) m(y) 480 735 y(Prin) m(t) 30 b(a) h(bitmap) p Fj 30 w(bm) p Ft 30 w(in) f(PBM) h(ASCI) s(I) e (format) h(to) h(a) g(\014le) g(stream) p Fj 30 w(fp) p Ft(.) 0 886 y(Argumen) m(ts) p Fj 480 996 a(bm) p Ft 31 w(is) g(a) h(bitmap) g(to) g(b) s(e) f(written) h(to) g(a) g(\014le) g(stream) p Fj 32 w(fp) p Ft(.) 44 b(Size) 32 b(of) f(output) h(image) g (\(in) g(pixel\)) g(is) 480 1105 y(sp) s(eci\014ed) f(b) m(y) p Fj 32 w(image) p 1213 1105 28 4 v 42 w(width) p Ft 31 w(and) p Fj 32 w(image) p 1924 1105 V 41 w(heigh) m(t) p Ft(.) 47 b(If) 32 b(-1) g(is) h(giv) m(en) g(for) f(these) g(argumen) m (ts,) h(the) 480 1215 y(image) f(size) f(should) e(b) s(e) h(minim) m (um) g(to) h(con) m(tain) g(the) g(bitmap) p Fj 30 w(bm) p Ft(.) 480 1345 y(Argumen) m(ts) p Fj 33 w(p) s(osition) p 1270 1345 V 40 w(x) p Ft 39 w(and) p Fj 32 w(p) s(osition) p 1892 1345 V 41 w(y) p Ft 40 w(sp) s(eci\014es) i(the) g(horizon) m(tal) h(and) e(v) m(ertical) j(p) s(osition) 480 1455 y(of) 43 b(a) h(source) f(bitmap) p Fj 43 w(bm) p Ft 42 w(in) g(an) f(output) h (image) h(\014le,) j(resp) s(ectiv) m(ely) -8 b(.) 80 b(These) 43 b(parameters) 480 1564 y(ha) m(v) m(e) 38 b(e\013ect) g(when) p Fj 36 w(image) p 1423 1564 V 41 w(width) p Ft 36 w(and) p Fj 36 w(image) p 2142 1564 V 41 w(heigh) m(t) p Ft 40 w(are) f(sp) s(eci\014ed.) 58 b(P) m(ossible) 38 b(v) -5 b(alues) 37 b(for) p Fj 480 1674 a(p) s(osition) p 802 1674 V 40 w(x) p Ft 37 w(is) p Fp 480 1824 a(VF_IMAGEOUT_POSITION_NON) o(E) p Ft 960 1934 a(Same) 30 b(as) p Fp 31 w(VF_IMAGEOUT_POSITION_LEF) o(T) p Ft(.) p Fp 480 2085 a(VF_IMAGEOUT_POSITION_CEN) o(TER) p Fj 960 2194 a(bm) p Ft 30 w(is) g(cen) m(tered) h(in) f(output) g (image.) p Fp 480 2345 a(VF_IMAGEOUT_POSITION_LEF) o(T) p Fj 960 2455 a(bm) p Ft 30 w(is) g(\015ushed) f(left) i(in) f(output) g (image.) p Fp 480 2606 a(VF_IMAGEOUT_POSITION_RIG) o(HT) p Fj 960 2715 a(bm) p Ft 30 w(is) g(\015ushed) f(righ) m(ted) h(in) g (output) g(image.) 480 2866 y(P) m(ossible) h(v) -5 b(alues) 31 b(for) p Fj 30 w(p) s(osition) p 1560 2866 V 40 w(y) p Ft 38 w(is) p Fp 480 3017 a(VF_IMAGEOUT_POSITION_NON) o(E) p Ft 960 3126 a(Same) f(as) p Fp 31 w(VF_IMAGEOUT_POSITION_TOP) p Ft -1 w(.) p Fp 480 3277 a(VF_IMAGEOUT_POSITION_CEN) o(TER) p Fj 960 3387 a(bm) p Ft 30 w(is) g(cen) m(tered) h(in) f(output) g (image.) p Fp 480 3537 a(VF_IMAGEOUT_POSITION_TOP) p Fj 960 3647 a(bm) p Ft 30 w(is) g(placed) h(at) g(the) f(top) h(in) f (output) g(image.) p Fp 480 3798 a(VF_IMAGEOUT_POSITION_BOT) o(TOM) p Fj 960 3907 a(bm) p Ft 30 w(is) g(placed) h(at) g(the) f(b) s(ottom) h (in) f(output) g(image.) 480 4058 y(Argumen) m(ts) p Fj 39 w(margin) p 1238 4058 V 40 w(l) p Ft(,) 41 b(in) m(t) p Fj 40 w(margin) p 1795 4058 V 40 w(r) p Ft 44 w(are) f(used) e(to) h (sp) s(e\014cy) f(left) i(and) e(righ) m(t) h(margins,) i(re-) 480 4168 y(sp) s(ectiv) m(ely) -8 b(.) 52 b(Argumen) m(ts) p Fj 33 w(margin) p 1689 4168 V 40 w(t) p Ft(,) 35 b(in) m(t) p Fj 34 w(margin) p 2244 4168 V 40 w(b) p Ft 35 w(are) e(used) g(to) h (sp) s(e\014cy) f(top) g(and) g(b) s(ottom) 480 4277 y(margins,) d(resp) s(ectiv) m(ely) -8 b(.) 480 4407 y(If) 36 b(the) g(argumen) m(t) p Fj 36 w(rev) m(erse) p Ft 42 w(is) g(not) h(0,) h(blac) m(k) f(and) e(white) h(in) g(an) g (output) g(image) h(is) f(rev) m(ersed.) 480 4517 y(Argumen) m(t) p Fj 33 w(shrink) p Ft 38 w(sp) s(ecifys) c(shrink) g(factor) i(of) f (image) p Fj 35 w(bm) p Ft(.) 48 b(\(If) 33 b(this) g(v) -5 b(alue) 33 b(is) g(1,) p Fj 35 w(bm) p Ft 32 w(is) g(not) 480 4627 y(shrink) m(ed.) k(Note:) h(Curren) m(tly) -8 b(,) 23 b(shrinking) e(image) i(is) f(not) g(supp) s(orted) e(in) h(PBM) h (ASCI) s(I) f(format.\)) 480 4757 y(Argumen) m(ts) p Fj 28 w(prog) p Ft 36 w(and) p Fj 28 w(title) p Ft 35 w(are) 29 b(used) e(to) i(emm) m(b) s(ed) f(program) g(name) g(and) g (title) i(in) e(an) g(image) 480 4866 y(\014le.) p Fi 0 5078 a(5.2.22) p Fh 63 w(VF_ImageOut_PGMAscii\(\)) p Fp 240 5297 a(int) 95 b(VF_ImageOut_PGMAscii\(VF) o(_BIT) o(MAP) p Fk 41 w(bm) p Fp(,) 47 b(FILE) g(*) p Fk(fp) p Fp(,) 1481 5406 y(int) p Fk 47 w(image_width) p Fp(,) d(int) p Fk 47 w(image_height) p Fp(,) 1481 5516 y(int) p Fk 47 w(position_x) p Fp(,) h(int) p Fk 46 w(position_y) p Fp(,) 1481 5626 y(int) p Fk 47 w(margin_l) p Fp(,) g(int) p Fk 47 w(margin_r) p Fp(,) 1481 5735 y(int) p Fk 47 w(margin_t) p Fp(,) g(int) p Fk 47 w(margin_b) p Fp(,) 1481 5845 y(int) p Fk 47 w(reverse) p Fp(,) g(int) p Fk 47 w(shrink) p Fp(,) 1481 5954 y(char) i(*) p Fk(prog) p Fp(,) f(char) g(*) p Fk(title) p Fp 11 w(\)) p dyy eop end %%Page: 27 28 TeXDict begin 27 27 bop Ft 0 -116 a(Chapter) 30 b(5:) 41 b(Programming) 30 b(with) g(VFlib) 2217 b(27) 0 365 y(F) -8 b(unctionalit) m(y) 480 475 y(Prin) m(t) 30 b(a) h(bitmap) p Fj 30 w(bm) p Ft 30 w(in) f(PGM) h(ASCI) s(I) e(format) h(to) h(a) g (\014le) g(stream) p Fj 30 w(fp) p Ft(.) 0 635 y(Argumen) m(ts) 480 745 y(Argumen) m(ts) i(are) f(the) h(same) g(as) g(that) g(of) p Fp 33 w(VF_ImageOut_PGMAscii\(\)) p Ft(.) 41 b(If) p Fj 32 w(shrink) p Ft 37 w(is) 32 b(greater) 480 855 y(than) e(1,) h (output) f(image) i(is) e(an) m(ti-aliased) j(\(gra) m(y-scaled\).) p Fi 0 1081 a(5.2.23) p Fh 63 w(VF_ImageOut_PGMRaw\(\)) p Fp 240 1300 a(int) 95 b(VF_ImageOut_PGMRaw\(VF_B) o(ITMA) o(P) p Fk 42 w(bm) p Fp(,) 47 b(FILE) f(*) p Fk(fp) p Fp(,) 1385 1410 y(int) p Fk 47 w(image_width) p Fp(,) f(int) p Fk 47 w(image_height) p Fp(,) 1385 1519 y(int) p Fk 47 w(position_x) p Fp(,) g(int) p Fk 47 w(position_y) p Fp(,) 1385 1629 y(int) p Fk 47 w(margin_l) p Fp(,) h(int) p Fk 47 w(margin_r) p Fp(,) 1385 1738 y(int) p Fk 47 w(margin_t) p Fp(,) g(int) p Fk 47 w(margin_b) p Fp(,) 1385 1848 y(int) p Fk 47 w(reverse) p Fp(,) g(int) p Fk 47 w(shrink) p Fp(,) 1385 1958 y(char) h(*) p Fk(prog) p Fp(,) f(char) h(*) p Fk(title) p Fp 11 w(\)) p Ft 0 2119 a(F) -8 b(unctionalit) m(y) 480 2228 y(Prin) m(t) 30 b(a) h(bitmap) p Fj 30 w(bm) p Ft 30 w(in) f(PGM) h(Ra) m(w) g(format) f (to) h(a) g(\014le) g(stream) p Fj 30 w(fp) p Ft(.) 0 2389 y(Argumen) m(ts) 480 2498 y(Argumen) m(ts) i(are) f(the) h(same) g (as) g(that) g(of) p Fp 33 w(VF_ImageOut_PGMAscii\(\)) p Ft(.) 41 b(If) p Fj 32 w(shrink) p Ft 37 w(is) 32 b(greater) 480 2608 y(than) e(1,) h(output) f(image) i(is) e(an) m(ti-aliased) j (\(gra) m(y-scaled\).) p Fi 0 2834 a(5.2.24) p Fh 63 w(VF_ImageOut_EPS\(\)) p Fp 240 3054 a(int) 95 b (VF_ImageOut_EPS\(VF_BITM) o(AP) p Fk 42 w(bm) p Fp(,) 46 b(FILE) h(*) p Fk(fp) p Fp(,) 1242 3163 y(int) p Fk 47 w(image_width) p Fp(,) e(int) p Fk 47 w(image_height) p Fp(,) 1242 3273 y(int) p Fk 47 w(position_x) p Fp(,) g(int) p Fk 47 w(position_y) p Fp(,) 1242 3382 y(int) p Fk 47 w(margin_l) p Fp(,) g(int) p Fk 47 w(margin_r) p Fp(,) 1242 3492 y(int) p Fk 47 w(margin_t) p Fp(,) g(int) p Fk 47 w(margin_b) p Fp(,) 1242 3601 y(int) p Fk 47 w(reverse) p Fp(,) h(int) p Fk 47 w(shrink) p Fp(,) 1242 3711 y(char) h(*) p Fk(prog) p Fp(,) f(char) h(*) p Fk(title) p Fp(,) 1242 3821 y(double) p Fk 46 w(ptsize) p Fp(,) f(int) p Fk 47 w(pixsize) p Fp 11 w(\)) p Ft 0 3982 a(F) -8 b(unctionalit) m(y) 480 4091 y(Prin) m(t) 30 b(a) h(bitmap) p Fj 30 w(bm) p Ft 30 w(in) f(EPS) f(\(Encapsulated) i(P) m(ostScript\)) g(format) g(to) g (a) g(\014le) f(stream) p Fj 31 w(fp) p Ft(.) 0 4252 y(Argumen) m(ts) 480 4361 y(Argumen) m(ts) j(are) f(the) h(same) g(as) g (that) g(of) p Fp 33 w(VF_ImageOut_PGMAscii\(\)) p Ft(.) 41 b(If) p Fj 32 w(shrink) p Ft 37 w(is) 32 b(greater) 480 4471 y(than) 39 b(1,) i(output) e(image) h(is) f(an) m(ti-aliased) i (\(gra) m(y-scaled\).) 69 b(Argumen) m(ts) p Fj 39 w(ptsize) p Ft 45 w(and) p Fj 38 w(pixsize) p Ft 480 4581 a(sp) s(ecify) 38 b(size) g(of) g(EPS) f(b) s(ounding) f(b) s(o) m(x;) p Fj 42 w(pixsize) p Ft 44 w(pixels) i(o) s(ccup) m(y) p Fj 38 w(ptsize) p Ft 44 w(p) s(oin) m(ts) f(in) h(ph) m(ysical) 480 4690 y(pap) s(er.) p Fi 0 4917 a(5.2.25) p Fh 63 w (VF_ImageOut_ASCIIArt\(\)) p Fp 240 5136 a(int) 95 b (VF_ImageOut_ASCIIArt\(VF) o(_BIT) o(MAP) p Fk 41 w(bm) p Fp(,) 47 b(FILE) g(*) p Fk(fp) p Fp(,) 1481 5245 y(int) p Fk 47 w(image_width) p Fp(,) d(int) p Fk 47 w(image_height) p Fp(,) 1481 5355 y(int) p Fk 47 w(position_x) p Fp(,) h(int) p Fk 46 w(position_y) p Fp(,) 1481 5465 y(int) p Fk 47 w(margin_l) p Fp(,) g(int) p Fk 47 w(margin_r) p Fp(,) 1481 5574 y(int) p Fk 47 w(margin_t) p Fp(,) g(int) p Fk 47 w(margin_b) p Fp(,) 1481 5684 y(int) p Fk 47 w(reverse) p Fp(,) g(int) p Fk 47 w(shrink) p Fp 11 w(\)) p Ft 0 5845 a(F) -8 b(unctionalit) m(y) 480 5954 y(Prin) m(t) 30 b(a) h(bitmap) p Fj 30 w(bm) p Ft 30 w(in) f(ASCI) s(I) f(art) h (format) h(to) g(a) g(\014le) f(stream) p Fj 31 w(fp) p Ft(.) p dyy eop end %%Page: 28 29 TeXDict begin 28 28 bop Ft 0 -116 a(28) 3198 b(VFlib) 31 b(3.6.14) 0 365 y(Argumen) m(ts) 480 475 y(Argumen) m(ts) f(are) h(the) g(same) g(as) f(that) h(of) p Fp 31 w(VF_ImageOut_PGMAscii\(\)) p Ft(.) p Fi 0 701 a(5.2.26) p Fh 63 w(VF_ImageOut_ASCIIArtV\(\)) p Fp 240 920 a(int) 95 b(VF_ImageOut_ASCIIArtV\(V) o(F_BI) o(TMA) o(P) p Fk 42 w(bm) p Fp(,) 47 b(FILE) f(*) p Fk(fp) p Fp(,) 1529 1029 y(int) p Fk 47 w(image_width) p Fp(,) e(int) p Fk 47 w(image_height) p Fp(,) 1529 1139 y(int) p Fk 47 w(position_x) p Fp(,) g(int) p Fk 47 w(position_y) p Fp(,) 1529 1248 y(int) p Fk 47 w(margin_l) p Fp(,) h(int) p Fk 47 w(margin_r) p Fp(,) 1529 1358 y(int) p Fk 47 w(margin_t) p Fp(,) g(int) p Fk 47 w(margin_b) p Fp(,) 1529 1468 y(int) p Fk 47 w(reverse) p Fp(,) g(int) p Fk 47 w(shrink) p Fp 11 w(\)) p Ft 0 1628 a(F) -8 b(unctionalit) m(y) 480 1738 y(Prin) m(t) 39 b(a) g(bitmap) p Fj 39 w(bm) p Ft 38 w(in) g(ASCI) s(I) e(art) j (format) f(to) h(a) f(\014le) g(stream) p Fj 39 w(fp) p Ft(.) 66 b(Image) 40 b(is) f(rotated) h(in) 480 1847 y(clo) s(c) m(kwise,) 32 b(90) f(degree.) 0 2008 y(Argumen) m(ts) 480 2117 y(Argumen) m(ts) f(are) h(the) g(same) g(as) f(that) h(of) p Fp 31 w(VF_ImageOut_PGMAscii\(\)) p Ft(.) p Fi 0 2343 a(5.2.27) p Fh 63 w(VF_FreeBitmap\(\)) p Fp 240 2562 a(void) 94 b(VF_FreeBitmap\(VF_BITMAP) p Fk 42 w(bm) p Fp 11 w(\)) p Ft 0 2722 a(F) -8 b(unctionalit) m(y) 480 2832 y(Release) 32 b(a) f(bitmap) f(ob) 5 b(ject.) 0 2992 y(Argumen) m(ts) 480 3102 y(The) 30 b(argumen) m(t) p Fj 31 w(bm) p Ft 29 w(is) h(a) f(p) s(oin) m(ter) h(to) g(a) g(bitmap) f (ob) 5 b(ject) 31 b(to) g(b) s(e) f(released.) p Fi 0 3327 a(5.2.28) p Fh 63 w(VF_FreeMetric1\(\)) p Fp 240 3547 a(void) 94 b(VF_FreeMetric1\(VF_METRIC1) p Fk 41 w(metric) p Fp 11 w(\)) p Ft 0 3707 a(F) -8 b(unctionalit) m(y) 480 3817 y(Release) 32 b(a) f(metric1) g(ob) 5 b(ject.) 0 3977 y(Argumen) m(ts) 480 4086 y(The) 30 b(argumen) m(t) p Fj 31 w(metric) p Ft 36 w(is) h(a) f(p) s(oin) m(ter) h(to) g(a) g (metric1) g(ob) 5 b(ject.) p Fi 0 4312 a(5.2.29) p Fh 63 w(VF_FreeMetric2\(\)) p Fp 240 4531 a(void) 94 b (VF_FreeMetric2\(VF_METRIC2) p Fk 41 w(metric) p Fp 11 w(\)) p Ft 0 4692 a(F) -8 b(unctionalit) m(y) 480 4801 y(Release) 32 b(a) f(metric2) g(ob) 5 b(ject.) 0 4962 y(Argumen) m(ts) 480 5071 y(The) 30 b(argumen) m(t) p Fj 31 w(metric) p Ft 36 w(is) h(a) f(p) s(oin) m(ter) h(to) g(a) g (metric2) g(ob) 5 b(ject.) p Fi 0 5297 a(5.2.30) p Fh 63 w(VF_InstallFontDriver\(\)) p Fp 240 5516 a(int) 95 b(VF_InstallFontDriver\(ch) o(ar*) p Fk 41 w(class_name) p Fp(,) 1481 5626 y(int\(*driver\)\(VF_FONT) p Fk 42 w(font) p Fp(,) 2101 5735 y(char*) p Fk 47 w(class_name) p Fp(,) 2101 5845 y(char*) p Fk 47 w(font_name) p Fp(,) 2101 5954 y(int) p Fk 47 w(implicit_flag) p Fp 11 w(\)\);) p dyy eop end %%Page: 29 30 TeXDict begin 29 29 bop Ft 0 -116 a(Chapter) 30 b(5:) 41 b(Programming) 30 b(with) g(VFlib) 2217 b(29) 0 365 y(F) -8 b(unctionalit) m(y) 480 475 y(Install) 31 b(a) g(fon) m(t) f(driv) m (er.) 0 642 y(Argumen) m(ts) p Fj 480 752 a(class) p 668 752 28 4 v 41 w(name) p Ft 35 w(is) h(a) f(fon) m(t) h(class) g (name,) p Fj 31 w(driv) m(er) p Ft 36 w(is) g(a) f(p) s(oin) m(ter) h (to) g(a) f(function) g(of) h(a) f(fon) m(t) h(driv) m(er) f(of) 480 862 y(the) i(fon) m(t) h(class.) 47 b(The) 31 b(function) h(giv) m(en) h (b) m(y) p Fj 32 w(driv) m(er) p Ft 39 w(is) f(called) h(when) f(a) g (fon) m(t) h(of) f(this) g(fon) m(t) h(class) 480 971 y(is) g(op) s(ened) f(b) m(y) p Fp 33 w(VF_OpenFont1\(\)) p Ft 29 w(and) p Fp 32 w(VF_OpenFont2\(\)) p Ft(.) 45 b(The) 32 b(function) p Fj 33 w(driv) m(er) p Ft 39 w(is) h(called) 480 1081 y(with) 25 b(parameters) h(of) f(the) h(fon) m(t) g(to) g(b) s(e) e (op) s(ened:) p Fj 38 w(fon) m(t) p Ft 28 w(is) h(a) h(data) g(ob) 5 b(ject) 26 b(for) f(fon) m(t) h(managemen) m(t) 480 1190 y(de\014ned) 36 b(b) m(y) h(VFlib) g(in) m(ternally) -8 b(.) p Fj 62 w(class) p 1843 1190 V 41 w(name) p Ft 42 w(is) 37 b(the) g(fon) m(t) h(class) g(name.) p Fj 60 w(fon) m(t) p 3266 1190 V 41 w(name) p Ft 42 w(is) f(the) 480 1300 y(name) 42 b(of) f(the) h(fon) m(t) g(to) h(b) s(e) e(op) s(ened.) 73 b(This) 41 b(argumen) m(t) h(is) g(the) g(same) g(as) f(the) h (argumen) m(t) g(of) p Fp 480 1410 a(VF_OpenFont1\(\)) p Ft 28 w(and) p Fp 31 w(VF_OpenFont2\(\)) p Ft(.) p Fj 41 w(implicit) p 2404 1410 V 41 w(fon) m(t) p Ft 35 w(is) 32 b(a) g(\015ag) g(whose) g(v) -5 b(alue) 32 b(is) g(1) g(if) g(a) 480 1519 y(fon) m(t) g(is) g(to) h(b) s(e) e(op) s(ened) g(as) h(an) f (implicit) i(fon) m(t) f(\(a) h(fon) m(t) f(whic) m(h) g(do) s(es) f (not) h(explicitly) i(app) s(ear) d(in) 480 1629 y(v\015ib) s(cap\)) h (and) f(0) i(if) f(it) h(is) g(to) g(b) s(e) e(op) s(ened) h(as) h(an) f (explicit) h(fon) m(t) g(\(a) g(fon) m(t) g(that) g(do) s(es) f(app) s (ear) g(in) 480 1738 y(v\015ib) s(cap\).) 0 1906 y(Return) e(V) -8 b(alue) 480 2015 y(If) 36 b(successful,) j(a) e(non-negativ) m(e) i(in) m(teger) f(is) e(returned.) 59 b(A) 37 b(negativ) m(e) i(in) m(teger) f (is) f(returned) e(if) 480 2125 y(the) c(installation) h(of) e(the) h (fon) m(t) g(driv) m(er) f(fails.) p Fs 0 2403 a(5.3) 68 b(Building) 45 b(an) g(application) h(soft) l(w) l(are) h(with) e (VFlib) p Ft 125 2655 a(An) 28 b(application) i(soft) m(w) m(are) g (that) g(use) e(VFlib) i(m) m(ust) f(include) f(a) h(header) g(\014le) g (`) p Fp(VFlib-3_6.h) p Ft('.) 38 b(T) m(ypically) -8 b(,) 0 2764 y(this) 30 b(\014le) h(is) f(installed) h(`) p Fp(/usr/local/include/) p Ft(') 26 b(directory) -8 b(.) 125 2907 y(Nev) m(er) 30 b(forget,) h(that) f(application) g(soft) m(w) m (are) h(that) f(uses) f(VFlib) h(m) m(ust) f(b) s(e) g(link) m(ed) h (against) g(F) -8 b(reeT) m(yp) s(e) 30 b(1.2) 0 3017 y(or) 24 b(later) h(\(`) p Fp(libttf.a) p Ft(') d(or) i(`) p Fp(libttf.so) p Ft('\),) g(T1Lib) f(5.1) i(or) f(later) h(\(`) p Fp(libt1.a) p Ft(') e(or) h(`) p Fp(libt1.so) p Ft('\),) g(and) f (kpathsea) 0 3126 y(3.2) 37 b(\(`) p Fp(libkpathsea.a) p Ft(') d(or) i(`) p Fp(libkpathsea.so) p Ft('\),) f(if) h(y) m(ou) h (con\014gure) f(VFlib) h(to) g(use) f(them.) 58 b(\(If) 37 b(VFlib) f(is) 0 3236 y(con\014gured) 30 b(not) g(to) h(use) f(them,) h (they) g(are) f(not) h(necessary) -8 b(.\)) 125 3378 y(I) 30 b(recommend) g(shared) f(library) h(v) m(ersions) h(for) f (these) h(optional) h(libraries) e(if) h(y) m(ou) f(built) g(a) h (shared) f(library) 0 3488 y(v) m(ersion) h(of) f(VFlib.) p Fp 240 3631 a(#include) 46 b() p Ft 125 3773 a(VFlib) 30 b(m) m(ust) h(b) s(e) e(initialized) k(b) s(efore) d (it) g(is) h(used.) p Fp 240 3916 a(char*) 46 b(vflibcap) g(=) h ("vflibcap";) 240 4025 y(char*) f(params) g(=) 96 b("TeX_DPI=300,) 44 b(KPATHSEA_MODE=cx";) 240 4244 y(if) j(\(VF_Init\(vflibcap,) c (params\)) j(<) h(0\){) 335 4354 y(fprintf\(stderr,) d("Initializing) g (VFlib:) i(failed\\n"\);) 335 4464 y(exit\(1\);) 240 4573 y(}) p Ft 125 4716 a(F) -8 b(ollo) m(wing) 32 b(program) f (fragmen) m(t) g(op) s(ens) e(a) i(fon) m(t,) g(obtains) g(a) f (bitmap,) h(and) f(prin) m(t) g(obtained) g(bitmap.) p Fp 240 4858 a(int) 429 b(fid;) 240 4968 y(VF_BITMAP) 141 b(bm;) 240 5187 y(if) 47 b(\(\(fid) g(=) g(VF_OpenFont2\("timR24.pcf) o (",) 42 b(-1,) 47 b(1.0,) f(1.0\)\)) h(<) g(0\){) 335 5297 y(fprintf\(stderr,) d("Opening) i(font:) g(failed\\n"\);) 335 5406 y(exit\(1\);) 240 5516 y(}) 240 5735 y(bm) h(=) h (VF_GetBitmap2\(fid,) 42 b(0x67,) 47 b(1.0,) f(1.0\);) 240 5954 y(VF_DumpBitmap\(bm\);) p dyy eop end %%Page: 30 31 TeXDict begin 30 30 bop Ft 0 -116 a(30) 3198 b(VFlib) 31 b(3.6.14) p Fs 0 365 a(5.4) 68 b(A) 44 b(simple) i(example) p Ft 125 639 a(The) 39 b(follo) m(wing) i(program) e(co) s(de) h(is) f(a) p Fp 40 w(") p Ft(banner) p Fp(") p Ft 38 w(lik) m(e) i(using) e (VFlib.) 68 b(F) -8 b(or) 41 b(simplicit) m(y) -8 b(,) 43 b(this) d(program) 0 749 y(accepts) 46 b(only) f(1-b) m(yte) h(enco) s (ded) e(c) m(haracters.) 85 b(It) 45 b(reads) g(an) f(input) g(from) g (standard) g(input) g(and) g(prin) m(ts) 0 858 y(c) m(haracters) 32 b(in) e(ascii-art) i(form) e(to) h(standard) f(output.) p Fp 240 1023 a(/*) 288 1132 y(*) 47 b(vflbanner.c) e(-) i(a) h(banner) e (by) h(VFlib) 288 1242 y(*) g(by) g(Hirotsugu) f(Kakugawa) 288 1352 y(*) 288 1461 y(*) 288 1571 y(*/) 240 1680 y(/*) 288 1790 y(*) h(Copyright) e(\(C\)) i(1998) g(Hirotsugu) e(Kakugawa.) 288 1900 y(*) i(All) g(rights) f(reserved.) 288 2009 y(*) 288 2119 y(*) h(This) g(program) f(is) h(free) f(software;) g(you) h(can) g (redistribute) d(it) j(and/or) f(modify) 288 2228 y(*) h(it) g(under) g (the) g(terms) f(of) h(the) g(GNU) g(General) f(Public) g(License) g (as) h(published) e(by) 288 2338 y(*) i(the) g(Free) g(Software) e (Foundation;) g(either) h(version) g(2,) h(or) g(\(at) g(your) g (option\)) 288 2447 y(*) g(any) g(later) f(version.) 288 2557 y(*) 288 2667 y(*) h(This) g(program) f(is) h(distributed) e(in) i (the) g(hope) f(that) h(it) g(will) g(be) g(useful,) 288 2776 y(*) g(but) g(WITHOUT) f(ANY) h(WARRANTY;) e(without) h(even) h (the) f(implied) g(warranty) g(of) 288 2886 y(*) h(MERCHANTABILITY) d (or) j(FITNESS) f(FOR) h(A) g(PARTICULAR) e(PURPOSE.) 93 b(See) 47 b(the) 288 2995 y(*) g(GNU) g(General) f(Public) g(License) g (for) h(more) f(details.) 288 3105 y(*) 288 3215 y(*) h(You) g(should) f (have) h(received) e(a) j(copy) e(of) i(the) f(GNU) f(General) g (Public) g(License) 288 3324 y(*) h(along) g(with) f(this) h(program;) e (if) j(not,) e(write) h(to) g(the) g(Free) f(Software) 288 3434 y(*) h(Foundation,) e(Inc.,) h(675) h(Mass) g(Ave,) f(Cambridge,) f (MA) j(02139,) e(USA.) 288 3543 y(*/) 240 3763 y(#include) g ("config.h") 240 3872 y(#include) g() 240 3982 y(#include) g() 240 4091 y(#include) g() 240 4201 y(#include) g("VFlib-3_6.h") 240 4420 y(#define) 94 b(DEFAULT_FONT) e("timR18.pcf") 240 4749 y(char) 190 b(*vflibcap;) 240 4858 y(char) g(*fontname;) 240 5078 y(void) 94 b(usage\(void\);) 240 5187 y(void) g(vflbanner\(FILE) 44 b(*fp\);) 240 5516 y(int) 240 5626 y(main\(int) i(argc,) g(char) h (**argv\)) 240 5735 y({) 335 5845 y(vflibcap) f(=) h(NULL;) 335 5954 y(fontname) f(=) h(DEFAULT_FONT;) p dyy eop end %%Page: 31 32 TeXDict begin 31 31 bop Ft 0 -116 a(Chapter) 30 b(5:) 41 b(Programming) 30 b(with) g(VFlib) 2217 b(31) p Fp 335 475 a(--argc;) 46 b(argv++;) 335 584 y(while) h(\(argc) f(>) i(0\){) 431 694 y(if) f(\(\(argc) f(>=) h(1\)) 622 804 y(&&) g (\(\(strcmp\(argv[0],) c("-h"\)) j(==) i(0\)) f(||) g (\(strcmp\(argv[0],) c("--help"\)) j(==) h(0\)\)\){) 526 913 y(usage\(\);) 526 1023 y(exit\(0\);) 431 1132 y(}) g(else) g(if) g (\(\(argc) f(>=) h(2\)) h(&&) f(\(strcmp\(argv[0],) c("-v"\)) k(==) g (0\)\){) 526 1242 y(--argc;) f(argv++;) 526 1352 y(vflibcap) g(=) h (argv[0];) 526 1461 y(--argc;) f(argv++;) 431 1571 y(}) h(else) g(if) g (\(\(argc) f(>=) h(2\)) h(&&) f(\(strcmp\(argv[0],) c("-f"\)) k(==) g (0\)\){) 526 1680 y(--argc;) f(argv++;) 526 1790 y(fontname) g(=) h (argv[0];) 526 1900 y(--argc;) f(argv++;) 431 2009 y(}) h(else) g({) 526 2119 y(break;) 431 2228 y(}) 335 2338 y(}) 335 2557 y (vflbanner\(stdin\);) 335 2776 y(return) g(0;) 240 2886 y(}) 240 3105 y(void) g(usage\(void\)) 240 3215 y({) 335 3324 y(printf\("vflbanner) d(-) j(a) g(banner) g(program) e(using) i (VFlib\\n"\);) 335 3434 y(printf\("Usage:) d(vflbanner) i([-v) h (vflibcap]) e([-f) i(fontname]\\n"\);) 335 3543 y(printf\("This) e (program) h(reads) g(a) i(text) e(from) h(standard) e(input.) 94 b(It) 47 b(supports\\n"\);) 335 3653 y(printf\("1-bit) e(encoded) g (font) i(only.) f(Thus,) h(`ctextpgm') e(is) i(better) f(than) h (this.\\n"\);) 240 3763 y(}) 240 4091 y(void) 240 4201 y(vflbanner\(FILE) 92 b(*fp\)) 240 4311 y({) 335 4420 y(int) j(fid;) 335 4530 y(int) g(ch;) 335 4639 y(int) g(pos_x,) 46 b(pos_y;) 335 4749 y(VF_BITMAP) 93 b(bm,) 47 b(page_bm;) 335 4858 y(struct) g(vf_s_bitmaplist) 91 b(PageBuff;) 335 5078 y(if) 48 b(\(VF_Init\(vflibcap,) 42 b(NULL\)) 47 b(<) g(0\){) 431 5187 y(printf\("VFlib) d(initialization) g(error"\);) 431 5297 y(switch) i(\(vf_error\){) 431 5406 y(case) h (VF_ERR_INTERNAL:) 526 5516 y(printf\(") f(-) h(Internal) f (error.\\n"\);) f(break;) 431 5626 y(case) i(VF_ERR_NO_MEMORY:) 526 5735 y(printf\(") f(-) h(Server) f(runs) h(out) g(of) g(memory.\\n"\);) e(break;) 431 5845 y(case) i(VF_ERR_NO_VFLIBCAP:) 526 5954 y(printf\(") f(-) 95 b(No) 47 b(vflibcap.\\n"\);) d(break;) p dyy eop end %%Page: 32 33 TeXDict begin 32 32 bop Ft 0 -116 a(32) 3198 b(VFlib) 31 b(3.6.14) p Fp 431 365 a(default:) 526 475 y(printf\(") 46 b(-) 95 b(Error) 46 b(code) h(\045d\\n",) f(vf_error\);) f(break;) 431 584 y(}) 431 694 y(fflush\(stdout\);) 431 804 y(exit\(1\);) 335 913 y(}) 335 1132 y(if) j(\(\(fid) e(=) h(VF_OpenFont1\(fontname,) 42 b(-1,) 47 b(-1,) g(-1,) g(1,) g(1\)\)) g(<) g(0\)) 431 1242 y(return;) 335 1461 y(VF_BitmapListInit\(&PageBuf) o(f\);) 335 1680 y(pos_x) g(=) g(pos_y) g(=) g(0;) 335 1790 y(while) g(\(\(ch) f(=) i(getc\(fp\)\)) d(!=) i(EOF\){) 431 1900 y(if) g(\(!isprint\(ch\)\)) 526 2009 y(ch) h(=) f(') g(';) 431 2119 y(if) g(\(\(bm) g(=) g (VF_GetBitmap1\(fid,) c(\(long\)ch,) i(1,) i(1\)\)) g(==) h(NULL\)) 526 2228 y(continue;) 431 2338 y(VF_BitmapListPut\(&PageBu) o(ff,) 41 b(bm,) 47 b(pos_x,) f(pos_y\);) 431 2447 y(pos_x) g(=) i(pos_x) e(+) i (bm->mv_x;) 335 2557 y(}) 335 2776 y(page_bm) e(=) i (VF_BitmapListCompose\(&P) o(ageB) o(uff\)) o(;) 335 2886 y(VF_DumpBitmap\(page_bm\);) 335 2995 y (VF_BitmapListFinish\(&PageB) o(uff\)) o(;) 335 3105 y(VF_FreeBitmap\(page_bm\);) 335 3324 y(VF_CloseFont\(fid\);) 240 3434 y(}) 240 3653 y(/*EOF*/) p Ft 125 3787 a(By) 30 b(the) h(follo) m(wing) h(commands) e(is) g(used) g(to) h(comple) g (the) f(program.) p Fp 240 3922 a(\045) 47 b(gcc) g(-c) h (`VFlib3-config) 43 b(--cflags`) j(vflbanner.c) 240 4032 y(\045) h(gcc) g(-o) h(vflbanner) d(vflbanner.o) g(`VFlib3-config) e (--libs`) 125 4166 y(VFlib3-config) p Ft 28 w(is) 33 b(a) g(program) f(to) i(prin) m(t) e(misc) h(information) f(on) h (con\014guration) g(of) g(VFlib.) 47 b(It) 33 b(prin) m(ts) 0 4276 y(C) d(compiler) h(option) g(to) g(sp) s(ecify) f(include) g (directory) h(\(`) p Fp(--cflags) p Ft('\),) f(dep) s(enden) m(t) f (libraries) i(\(`) p Fp(--libs) p Ft('\),) f(for) 0 4385 y(example.) 41 b(Run) p Fp 30 w(VFlib3-config) p Ft 26 w(with) 30 b(`) p Fp(--help) p Ft(') g(option) g(for) h(detail.) p dyy eop end %%Page: 33 34 TeXDict begin 33 33 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(33) p Fr 0 365 a(6) 80 b(W) -13 b(riting) 52 b(a) i(v\015ib) t(cap) p Fs 0 742 a(6.1) 68 b(In) l(tro) t(duction) 45 b(to) g(v\015ib) t(cap) p Ft 125 990 a(A) 24 b(v\015ib) s(cap) g(\014le) g(is) h(a) f(database) i (of) e(fon) m(t) h(de\014nitions) f(for) h(the) f(VFlib) h(library) -8 b(.) 39 b(A) 24 b(v\015ib) s(cap) g(fon) m(t) h(de\014nition) 0 1100 y(is) 32 b(describ) s(ed) g(in) f(a) i(format) g(similar) f(to) h (termcap) g(and) f(prin) m(tcap.) 46 b(V\015ib) s(cap) 32 b(pro) m(vides) g(logical) j(fon) m(t) e(names) 0 1209 y(and) f(logical) k(fon) m(t) d(names) g(ma) m(y) h(not) f(corresp) s (onds) f(to) i(fon) m(t) f(\014les) g(to) h(b) s(e) e(accessed.) 50 b(In) 32 b(this) h(do) s(cumen) m(t,) h(w) m(e) 0 1319 y(simply) c(sa) m(y) p Fp 31 w(") p Ft(fon) m(t) p Fp(") p Ft 30 w(to) h(denote) g(logical) i(fon) m(ts.) 125 1458 y(Eac) m(h) e(VFlib) f(fon) m(ts) h(ha) m(v) m(e) h(its) e(o) m(wn) h (parameters) g(listed) g(b) s(elo) m(w:) p Fq 75 1597 a(\017) p Ft 60 w(Pixel) g(size,) p Fq 75 1733 a(\017) p Ft 60 w(P) m(oin) m(t) h(size,) f(and) p Fq 75 1870 a(\017) p Ft 60 w(Resolution) g(of) g(target) h(device.) 125 2036 y(These) 23 b(parameters) h(ma) m(y) h(not) f(b) s(e) f(a) m(v) -5 b(ailable) 27 b(in) c(fon) m(t) h(\014le.) 39 b(F) -8 b(or) 25 b(instance,) h(these) e(parameters) g(are) h(lac) m(king) 0 2145 y(in) 33 b(T) -8 b(rueT) m(yp) s(e) 33 b(fon) m(ts.) 50 b(Lac) m(king) 35 b(information) f(is) g(giv) m(en) g(in) f(v\015ib) s (cap) g(\014le,) i(or) e(it) h(is) g(giv) m(en) g(b) m(y) g(a) g(fon) m (t) g(driv) m(er) 0 2255 y(as) d(default) f(v) -5 b(alues.) p Fm 125 2394 a(Note:) p Ft 42 w(If) 30 b(y) m(ou) h(w) m(an) m(t) h(to) f (use) f(VFlib) h(for) g(T) 1589 2413 y(E) 1639 2394 y(X) f(D) m(VI) i (driv) m(ers,) e(suc) m(h) h(as) f(preview) m(ers) h(and) f(pron) m (ter) g(driv) m(er,) 0 2503 y(use) p Fp 30 w(vflmkcaptex) p Ft 27 w(program) h(to) g(generate) h(v\015ib) s(cap) d(\014le) h (automatically) -8 b(.) p Fs 0 2772 a(6.2) 68 b(Syn) l(tax) 45 b(of) g(v\015ib) t(cap) p Ft 125 3020 a(The) 33 b(syn) m(tax) i(of) f (v\015ib) s(cap) g(\014le) g(is) g(lisp-lik) m(e) i(form.) 52 b(A) 34 b(semicolon) p Fp 36 w(;) p Ft 34 w(starts) g(a) h(commen) m(t) g(and) f(follo) m(wing) 0 3130 y(text) h(is) g(ignored) f(un) m(til) g (the) h(end) f(of) g(line.) 53 b(A) 34 b(colon) h(in) f(a) h(string) f (whic) m(h) g(is) g(enclosed) h(b) m(y) f(double) g(colons) h(is) 0 3239 y(not) 28 b(considered) f(as) h(a) f(commen) m(t) i(c) m(haracter) g(and) e(forms) g(a) g(part) h(of) f(string.) 40 b(In) 27 b(the) g(follo) m(wing) i(explanation,) 0 3349 y(w) m(e) i(ignore) g (commen) m(ts.) 125 3488 y(A) 21 b(v\015ib) s(cap) f(\014le) i(is) f(a) h(sequence) f(of) h(expressions) f(called) h(s-expressions.) 38 b(Basic) 22 b(data) g(item) g(of) g(s-expression) 0 3597 y(is) 31 b(string.) 42 b(Unlik) m(e) 31 b(lisp,) g(there) g(is) g(no) p Fp 30 w(") p Ft(n) m(um) m(b) s(er) p Fp(") p Ft 29 w(t) m(yp) s(e.) 42 b(A) 31 b(sequence) g(of) g(digits) g(is) g(parsed) f(as) h(a) g (string.) 42 b(T) -8 b(o) 0 3707 y(include) 29 b(a) h(sp) s(ecial) h(c) m(haracters) g(in) e(a) h(string) f(suc) m(h) h(as) f(double) h (quotation,) h(con) m(trol) g(co) s(de,) f(and) f(paren) m(thesis,) 0 3816 y(escap) s(e) i(sequence) g(can) f(b) s(e) g(used.) 40 b(String) 30 b(is) g(a) h(sequence) g(of) f(c) m(haracters) i(of) f (the) f(follo) m(wing) i(form:) 0 3982 y(String) e(F) -8 b(orm) 31 b(1:) 480 4092 y(Sequence) f(of) h(c) m(haracters) h (enclosed) f(b) m(y) f(double) g(quotations.) 480 4228 y(Examples:) p Fp 863 4365 a("hello) 46 b(world") 863 4475 y("a,) h(b,) g(c,) g(d") 863 4584 y("He) g(said) g (\\"Thanks!\\".") 863 4694 y("a*\(b+c\)") p Ft 0 4858 a(String) 30 b(F) -8 b(orm) 31 b(2:) 480 4967 y(Sequence) g(of) g(c) m (haracters) h(except) g(space,) g(tab,) g(newline,) f(and) f(closing) i (paren) m(thesis.) 43 b(A) 31 b(start) 480 5077 y(c) m(haracter) h(m) m (ust) e(not) h(b) s(e) f(a) g(double) g(quotation.) 480 5213 y(Examples:) p Fp 863 5350 a(font-file) 863 5460 y(hello\\) 46 b(world) 863 5569 y(He\\) h(said\\) f(\\"Thanks!\\".) 863 5679 y(a*\\\(b+c\\\)) p Ft 125 5845 a(Unlink) 28 b(lisp,) i(there) f (is) g(no) g(distinction) h(b) s(et) m(w) m(een) g(string) f(and) f (sym) m(b) s(ol) h(in) g(v\015ib) s(cap;) g(they) g(are) h(the) f(same) 0 5954 y(data) i(t) m(yp) s(e.) 41 b(That) 30 b(is,) p Fp 31 w(HELLO) p Ft 29 w(and) p Fp 30 w("HELLO") p Ft 28 w(are) h(the) f(same.) p dyy eop end %%Page: 34 35 TeXDict begin 34 34 bop Ft 0 -116 a(34) 3198 b(VFlib) 31 b(3.6.14) 125 365 y(P) m(aren) m(theses) 26 b(is) g(used) e(to) i(form) f(a) p Fp 26 w(") p Ft(list) p Fp(") p Ft 26 w(lik) m(e) h(in) g(lisp.) 39 b(F) -8 b(or) 26 b(example,) p Fp 27 w(\(A) k(B) g(C\)) p Ft 25 w(is) 25 b(a) h(list) g(of) g(three) f(strings.) 0 475 y(List) 31 b(can) f(b) s(e) g(nested) g(an) m(y) h(depth,) f(e.g.,) p Fp 32 w(\(A) g(\(B1) f(B2) h(B3\)) f(\(C1) h(\(C21) f(C22\)) g (C3\)\)) p Ft(.) 125 604 y(A) h(v\015ib) s(cap) f(m) m(ust) i(b) s(e) e (a) i(sequence) g(of) g(s-expression) f(of) g(the) h(follo) m(wing) h (forms:) p Fp 0 752 a(\(define-default) p Fk 26 w(FONT-CLASS) 38 b(CAPABILITY-DEF) p Fp 37 w(...) 30 b(\)) p Ft 480 861 a(This) g(expression) g(de\014nes) f(a) i(default) g(v) -5 b(alues) 30 b(for) g(a) h(fon) m(t) g(class.) p Fp 0 1009 a(\(define-font) p Fk 27 w(NAME) 40 b(CAPABILITY-DEF) p Fp 37 w(...) 29 b(\)) p Ft 480 1119 a(This) h(expression) g(de\014nes) f (a) i(fon) m(t.) p Fp 0 1267 a(\(define-macro) p Fk 27 w(NAME) 39 b(CAPABILITY-DEF) p Fp 37 w(...) 30 b(\)) p Ft 480 1377 a(This) g(expression) g(de\014nes) f(a) i(macro) p Fj 31 w(NAME) p Ft(.) p Fj 125 1525 a(CAP) -8 b(ABILITY-DEF) p Ft 48 w(m) m(ust) 40 b(b) s(e) h(a) g(list) g(of) g(form) p Fp 40 w(\() p Fk(CAPABILITY-NAME) c(VALUE) p Fp 11 w(\)) p Ft(,) k(e.g.,) p Fp 45 w(\(font-file) 0 1634 y ("/usr/local/share/fonts/) o(") p Ft(.) 35 b(Eac) m(h) 30 b(fon) m(t) g(class) h(de\014nes) e(its) h(o) m(wn) g(set) g(of) g (capabilities) h(and) f(capabilit) m(y) 0 1744 y(sets) h(can) f(b) s(e) g(di\013eren) m(t) h(b) m(y) f(fon) m(t) h(classes.) 125 1873 y(This) e(is) i(an) f(example) h(of) f(v\015ib) s(cap) g(\014le.) p Fp 240 2001 a(;;) 47 b(vflibcap) 240 2111 y(\(define-default) d(VFlib) 335 2221 y(\(extension-hints) 426 b(\(".bdf") 45 b(bdf\)) i(\(".pcf") f (pcf\)\)) 335 2330 y(\(uncompression-programs) 90 b(\(".Z") 46 b("zcat"\)) g(\(".gz") g("gzip) g(-cd"\)) 1529 2440 y(\("pk") g (ascii-jtex-kanji\)\)) 335 2549 y(\(implicit-font-classes) 138 b(bdf) 47 b(pcf) f(hbf) h(ascii-jtex-kanji\)) 335 2659 y(\(variable-values) 235 b(\("TeX_DPI") 45 b("300"\)\)) 240 2878 y(\(define-default) f(bdf) 335 2988 y(\(filename-extensions) f (".bdf"\)) 335 3097 y(\(font-directories) 479 3207 y ("/usr/X11R6/lib/X11/fon) o(ts//) o(") f("/usr/local/share/fonts) o (/X11) o(//"\)) 335 3317 y(\(compression-extensions) g(".gz") k (".Z"\)\)) 240 3536 y(\(define-font) e(timR24) 94 b(;) 48 b(times) e(roman) g(24) 335 3645 y(\(font-class) f(bdf\)) 335 3755 y(\(font-file) g("timR24.bdf"\)\)) 240 3974 y(\(define-font) f (timR18) 94 b(;) 48 b(times) e(roman) g(18) 335 4084 y(\(font-class) f(bdf\)) 335 4193 y(\(font-file) g("timR18.bdf"\)\)) p Fs 0 4434 a(6.3) 68 b(Macros) 45 b(in) g(v\015ib) t(cap) p Ft 125 4672 a(T) -8 b(o) 50 b(a) m(v) m(oid) h(writing) f(the) f(same) h (capabilities,) 57 b(macro) 50 b(feature) g(is) g(pro) m(vided) f(in) h (v\015ib.) 98 b(In) 49 b(case) h(of) p Fj 0 4782 a(CAP) -8 b(ABILITY-DEF) p Ft 48 w(is) 40 b(a) g(string,) j(it) e(is) f(treated) h (as) f(a) h(macro) g(and) e(a) i(macro) f(de\014nition) g(for) g(it) h (is) f(ex-) 0 4891 y(panded.) g(F) -8 b(or) 31 b(instance,) p Fp 240 5020 a(\(define-font) 44 b(timR18) 335 5130 y(MACRO-NAME) 335 5239 y(\(font-file) h("timR18.bdf"\)\)) p Ft 125 5368 a(is) 34 b(a) h(fon) m(t) g(de\014nition) g(using) f(a) h(macro) p Fp 35 w(MACRO-NAME) p Ft(.) 51 b(Supp) s(ose) 33 b(a) i(macro) p Fp 35 w(MACRO-NAME) p Ft 32 w(is) g(de\014ned) e(as) 0 5478 y(follo) m(ws.) p Fp 240 5606 a(\(define-macro) 44 b(MACRO-NAME) 335 5716 y(\(font-class) h(bdf\)) 335 5826 y(\(dpi) i(300\)\)) p Ft 125 5954 a(Then,) 29 b(the) i(fon) m(t) g (de\014nition) f(for) p Fp 30 w(timR24) p Ft 28 w(is) h(the) f(same) h (as) g(follo) m(w.) p dyy eop end %%Page: 35 36 TeXDict begin 35 35 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(35) p Fp 240 365 a(\(define-font) 44 b(timR18) 335 475 y(\(font-class) h (bdf\)) 335 584 y(\(dpi) i(300\)\)) 335 694 y(\(font-file) e ("timR18.bdf"\)\)) p Ft 125 831 a(The) 29 b(rule) h(of) h(macr) g (expand) e(is) i(as) f(follo) m(wing) i(pro) s(cedure.) 49 967 y(1.) 61 b(Lo) s(oks) 29 b(for) f(use) g(of) h(macros.) 41 b(F) -8 b(rom) 29 b(the) f(\014rst) p Fj 28 w(CAP) -8 b(ABILITY-DEF) p Ft 36 w(to) 30 b(the) e(last) i(one,) f(it) g(is) g(c) m(hec) m(k) m(ed) h(if) 180 1077 y(it) d(is) g(a) f(string) h(\(th) m (us) f(a) h(macro\)) h(or) e(not) h(in) f(order.) 39 b(If) 26 b(it) h(is) f(a) h(macro,) h(corresp) s(onding) e(macro) h (de\014nition) 180 1187 y(is) j(substituted.) 41 b(Then,) 29 b(next) p Fj 31 w(CAP) -8 b(ABILITY-DEF) p Ft 38 w(is) 30 b(c) m(hec) m(k) m(ed.) 49 1322 y(2.) 61 b(Macro) 32 b(expand) d(is) i(done) f(recursiv) m(ely) -8 b(.) 42 b(Th) m(us,) 29 b(a) i(macro) g(can) g(b) s(e) e(used) h(in) g(another) h(macro.) p Fs 0 1585 a(6.4) 68 b(Searc) l(hing) 45 b(fon) l(t) h (\014les) p Ft 125 1831 a(Some) i(fon) m(t) h(classes) g(\(e.g.,) 55 b(BDF,) 49 b(PCF\)) g(de\014nes) e(a) p Fp 49 w(font-directories) p Ft 43 w(capabilit) m(y) j(in) e(v\015ib) s(cap) 0 1941 y(\014le.) 109 b(This) 52 b(capabilit) m(y) j(sp) s(eci\014es) d(a) i (list) f(of) g(fon) m(t) h(directories,) 60 b(for) 53 b(instance,) p Fp 59 w(\(font-directories) 0 2050 y ("/usr/local/fonts/") 25 b("/opt/fonts") i("/usr/local/share/fonts//) o ("\)) p Ft(.) 117 b(A) 58 b(fon) m(t) h(\014le) f(can) g(b) s(e) 0 2160 y(searc) m(hed) 31 b(recursiv) m(ely) g(in) f(a) h(directory) g (tree) g(if) f(a) h(fon) m(t) g(directory) g(name) f(ends) g(b) m(y) g (double) g(slashes) p Fp 30 w(//) p Ft(.) 125 2297 y(Some) 46 b(fon) m(t) g(driv) m(ers) f(supp) s(ort) g(\014le) h(searc) m(h) g(b) m (y) g(kpathsea.) 88 b(T) m(ypically) -8 b(,) 51 b(fon) m(t) c(\014les) f (are) g(lo) s(cated) h(un-) 0 2406 y(der) c(`) p Fp (/usr/local/share/texmf) p Ft('.) 74 b(This) 42 b(directory) i(is) f (used) g(to) h(hold) e(T) 2709 2426 y(E) 2759 2406 y(X-related) j (\014les.) 80 b(If) 42 b(a) i(fon) m(t) 0 2516 y(driv) m(er) 38 b(supp) s(orts) e(searc) m(hing) j(b) m(y) f(kpathsea,) j(a) e(sp) s (ecial) f(name) p Fp 39 w(TEXMF) p Ft 36 w(can) h(b) s(e) e(giv) m(en) i (in) f(a) h(list) g(of) p Fp 38 w(font-) 0 2625 y(directories) p Ft 44 w(capabilit) m(y) -8 b(.) 93 b(F) -8 b(or) 48 b(instance,) 53 b(supp) s(ose) 45 b(that) p Fp 48 w(\(font-directories) 26 b("/opt1/fonts//") 0 2735 y("TEXMF") i("/opt2/fonts//"\)) p Ft 22 w(is) f(sp) s(eci\014ed.) 39 b(Then) 25 b(\014les) i(are) g (searc) m(hed) g(under) p Fp 25 w(/opt1/fonts) p Ft(,) d(b) m(y) i (kpath-) 0 2845 y(sea,) 31 b(and) f(then) p Fp 30 w(/opt2/fonts) p Ft(,) e(in) i(this) g(order.) 125 2981 y(Curren) m(tly) -8 b(,) 30 b(pk,) g(gf,) g(tfm,) h(vf,) f(truet) m(yp) s(e,) h(and) e(t) m (yp) s(e1) i(fon) m(t) g(classes) g(sup) s(ort) e(searcing) i(\014les) g (b) m(y) f(kpathsea.) p Fs 0 3244 a(6.5) 68 b(F) -11 b(ast) 45 b(fon) l(t) g(\014le) h(searc) l(h) p Ft 125 3490 a(In) c(case) i(there) g(are) f(man) m(y) g(fon) m(t) h (directories) g(and) f(sub-directory) g(whic) m(h) g(con) m(tains) h (man) m(y) f(fon) m(t) h(\014le,) 0 3600 y(searc) m(hing) 32 b(a) g(fon) m(t) h(\014le) e(tak) m(e) i(long) g(time,) g(since) f(fon) m(t) g(directories) g(are) g(tra) m(v) m(ersed) h(to) f(\014nd) e(a) i (requested) g(fon) m(t) 0 3710 y(\014le.) 40 b(F) -8 b(or) 30 b(fast) f(fon) m(t) h(\014le) f(searc) m(h,) h(fon) m(t) f (\014le) g(hin) m(t) g(database) h(\(FDB) h(for) d(short\)) h(can) h(b) s(e) e(used.) 39 b(It) 29 b(is) g(placed) h(in) 0 3819 y(a) k(ro) s(ot) g(of) f(a) h(fon) m(t) g(directory) -8 b(,) 36 b(and) d(it) h(con) m(tains) h(pairs) e(of) g(fon) m(t) h (\014le) g(name) g(and) f(relativ) m(e) i(pathname) f(of) f(the) 0 3929 y(fon) m(t) e(\014le) f(from) g(the) h(fon) m(t) g(directory) -8 b(.) 41 b(The) 30 b(\014le) h(name) f(of) h(FDB) g(is) p Fp 31 w(VFlib.fdb) p Ft(.) 125 4065 y(The) e(follo) m(wing) j(is) f(an) f(example) h(of) g(FDB) g(\014le.) p Fp 240 4202 a(times__m.pfb) 44 b(type1/t/times__m.pfb) 240 4312 y(times__m.afm) g (type1/t/times__m.afm) 240 4421 y(zac_____.ttf) g(ttf/z/zac_____.ttf) 240 4531 y(zalescap.ttf) g(ttf/z/zalescap.ttf) p Ft 125 4668 a(Supp) s(ose) 18 b(that) k(this) e(FDB) i(\014le) f(is) g(lo) s (cated) h(in) e(`) p Fp(/foo/bar/) p Ft(',) h(for) f(instance.) 39 b(The) 20 b(\014le) g(tells) i(us) e(that) i(there) e(is) 0 4777 y(a) 27 b(\014le) f(`) p Fp(times__m.pfb) p Ft(') e(and) h (absolute) i(path) f(name) h(of) f(the) h(\014le) f(is) h(`) p Fp(/foo/bar/type1/t/times__) o(m.pf) o(b) p Ft('.) 125 4914 y(If) 36 b(FDB) i(\014le) e(is) h(found) f(in) g(a) h(ro) s(ot) g (directory) g(of) g(fon) m(t) h(directory) -8 b(,) 39 b(the) e(FDB) h(\014le) f(is) f(op) s(ened) g(to) i(\014nd) d(a) 0 5023 y(requested) 28 b(fon) m(t) h(\014le.) 41 b(If) 28 b(a) g(requested) h(fon) m(t) g(\014le) f(is) h(not) g(found,) e(other) i(fon) m(t) g(directory) g(is) f(searc) m(hed,) i(i.e.,) g(the) 0 5133 y(directory) j(is) g(not) g(tra) m(v) m(ersed) h(at) g(all.) 49 b(In) 32 b(case) i(FDB) g(\014le) f(is) g(not) g(found,) g(a) g(fon) m (t) g(directory) h(is) f(tra) m(v) m(ersed) h(to) 0 5243 y(\014nd) 29 b(a) i(requested) f(fon) m(t) h(\014le.) 125 5379 y(It) k(is) g(imp) s(ortan) m(t) g(to) g(remem) m(b) s(er) g(that) g(y) m(ou) h(m) m(ust) e(not) i(forget) f(to) h(up) s(date) e(FDB) i (\014le) f(after) h(y) m(ou) f(added) 0 5489 y(new) 30 b(fon) m(t) h(\014les) g(in) f(a) h(fon) m(t) g(directory) -8 b(.) 42 b(If) 30 b(y) m(ou) h(forget,) h(installed) f(fon) m(t) g (\014les) g(are) g(not) g(found) e(ev) m(enif) i(they) g(are) 0 5598 y(in) j(a) h(fon) m(t) g(directory) -8 b(.) 54 b(T) -8 b(o) 35 b(up) s(date) e(a) i(FDB) g(\014le,) h(run) d(the) i(utilit) m (y) h(program) p Fp 34 w(vflmkfdb) p Ft(.) 50 b(See) 35 b(Section) g(9.3) 0 5708 y([v\015mkfdb],) 29 b(page) i(81,) h(for) e (details) h(of) g(the) f(program.) 125 5845 y(A) g(FDB) h(\014le) f(m) m (ust) f(b) s(e) h(lo) s(cated) h(in) f(a) g(ro) s(ot) g(of) g(a) h(fon) m(t) f(directory) g(and) g(its) g(name) g(m) m(ust) g(b) s(e) f(`) p Fp(VFlib.fdb) p Ft('.) 0 5954 y(Ev) m(en) i(if) f(there) g(is) h(a) g (FDB) g(\014le) g(in) f(a) g(sub-directory) g(of) h(a) g(fon) m(t) g (directory) -8 b(,) 31 b(VFlib) g(do) s(es) f(not) h(lo) s(ok) g(for) f (it.) p dyy eop end %%Page: 36 37 TeXDict begin 36 36 bop Ft 0 -116 a(36) 3198 b(VFlib) 31 b(3.6.14) p Fs 0 365 a(6.6) 68 b(Compressed) 46 b(fon) l(t) f(\014les) p Ft 125 609 a(T) -8 b(o) 33 b(reduce) g(disk) f(storage,) k(compressed) d (fon) m(t) g(\014les) g(and) g(uncompression) f(on) h(the) g(\015y) f (is) h(supp) s(orted) f(b) m(y) 0 718 y(some) 37 b(fon) m(t) g(class.) 61 b(Note) 38 b(that) f(this) g(feature) g(is) g(fon) m(t) g(class) h (dep) s(enden) m(t) e(and) g(not) h(all) g(fon) m(t) h(class) f(supp) s (ort) 0 828 y(this.) 125 962 y(In) 32 b(a) h(v\015ib) s(cap) f(\014le,) h(a) g(fon) m(t) h(\014le) f(name) f(need) h(not) g(ha) m(v) m(e) h(a) f (compressed) f(t) m(yp) s(e) h(extension,) i(suc) m(h) d(as) p Fp 33 w(.gz) p Ft(.) 0 1072 y(When) e(VFlib) h(searc) m(hes) g(a) g (fon) m(t) g(\014le,) g(it) g(in) m(ternally) g(adds) e(compressed) i (t) m(yp) s(e) f(extension) h(and) f(\014nds) f(a) h(\014le.) p Fs 0 1327 a(6.7) 68 b(Explicit) 46 b(and) f(implicit) h(fon) l(ts) p Ft 125 1571 a(F) -8 b(on) m(ts) 42 b(explicitly) g(de\014ned) d(in) i (a) g(v\015ib) s(cap) e(\014le) i(are) g(called) p Fl 42 w(explicit) h(fonts) p Ft(.) 73 b(F) -8 b(on) m(ts) 42 b(do) s(es) e(not) h(app) s(ear) 0 1680 y(v\015ib) s(cap) 29 b(\014le) i(and) f(searc) m(hed) h(b) m(y) f(fon) m(t) h(driv) m(ers) f (on) g(demand) f(are) i(called) p Fl 32 w(implicit) i(fonts) p Ft(.) p Fs 0 1936 a(6.8) 68 b(V) -11 b(ariables) 46 b(in) f(v\015ib) t (cap) p Ft 125 2180 a(In) 24 b(a) h(v\015ib) s(cap) g(\014le,) h(v) -5 b(ariables) 26 b(can) f(b) s(e) g(used) f(as) i(capabilit) m(y) g(v) -5 b(alues.) 40 b(A) 25 b(capabilit) m(y) i(v) -5 b(alue) 26 b(can) f(b) s(e) f(a) i(v) -5 b(alue) 0 2289 y(of) 31 b(a) f(v) -5 b(ariable) 31 b(if) g(a) g(dollar) f(sign) h(\() p Fp($) p Ft(\)) f(follo) m(w) m(ed) i(b) m(y) f(a) g(v) -5 b(ariable) 31 b(name) f(is) h(giv) m(en.) 125 2423 y(F) -8 b(or) 37 b(instance,) p Fp 38 w(\(dpi) 30 b($TeX_DPI\)) p Ft 33 w(can) 37 b(b) s(e) f(used) f(instead) i(of) p Fp 36 w(\(dpi) 30 b(300\)) p Ft(.) 57 b(The) 36 b(v) -5 b(alue) 37 b(for) f(a) h(v) -5 b(ariable) 0 2533 y(m) m(ust) 24 b(b) s(e) g(de\014ned) f(somewhere.) 38 b(Default) 25 b(v) -5 b(alue) 25 b(can) g(b) s(e) e(giv) m(en) i(in) p Fp 24 w(\(define-default) h(VFlib) j(...\)) p Ft(,) c(whic) m(h) 0 2642 y(will) 31 b(b) s(e) e(explained) i(later.) 125 2776 y(Default) h(v) -5 b(alues) 31 b(can) g(b) s(e) f(o) m(v) m (erridden) h(on) g(initialization) j(function) c(of) i(VFlib) p Fp 31 w(VF_Init\(\)) p Ft(,) d(or) i(Unix) f(en-) 0 2886 y(vironmen) m(t) i(v) -5 b(ariables) p Fp 31 w(VFLIBCAP_PARAM_) p Fk(var) p Ft 11 w(.) 38 b(F) -8 b(or) 32 b(example,) p Fp 33 w(VFLIBCAP_PARAM_TeX_DPI) p Ft 25 w(is) f(de\014ned,) 0 2995 y(its) g(v) -5 b(alue) 31 b(b) s(ecomes) f(the) h(v) -5 b(alue) 31 b(of) f(the) h(v\015ib) s(cap) e(v) -5 b(ariable) p Fp 31 w(TeX_DPI) p Ft(.) 125 3129 y(The) 25 b(v) -5 b(alue) 26 b(of) g(an) g(en) m(vironmen) m(t) g(v) -5 b(ariable) p Fp 27 w(VFLIBCAP_PARAM_) p Fk(var) p Ft 31 w(is) 26 b(parsed) f(as) h (an) g(S-expression,) g(not) 0 3239 y(as) e(an) f(string.) 39 b(Th) m(us,) 24 b(if) f(y) m(ou) h(w) m(an) m(t) g(to) h(sp) s(ecify) e (a) h(string) p Fp 23 w(ABC) 30 b(123) p Ft(,) 24 b(the) g(v) -5 b(alue) 24 b(of) g(an) f(en) m(vironmen) m(t) h(v) -5 b(ariablue) 0 3349 y(m) m(ust) 35 b(b) s(e) p Fp 35 w(\\"abc) 29 b(123\\") p Ft(.) 53 b(\(Without) 37 b(double) d(quotation,) k(it) e (will) g(b) s(e) e(a) i(sequence) f(of) h(t) m(w) m(o) g(strings.) 55 b(Only) 0 3458 y(the) 31 b(\014rst) e(one) i(is) f(e\013ectiv) m(e) j (and) d(the) h(second) f(one) h(is) f(ignored.\)) p Fs 0 3714 a(6.9) 68 b(VFlib) 44 b(defaults) p Ft 125 3957 a(T) -8 b(o) 30 b(sp) s(ecify) g(global) i(b) s(eha) m(vior) f(of) f (VFlib,) h(\(virtual\)) h(fon) m(t) e(class) p Fp 32 w(VFlib) p Ft 29 w(is) g(de\014ned.) 125 4091 y(The) f(follo) m(wing) j (capabilit) m(y) g(are) f(de\014ned.) p Fp 0 4250 a (implicit-font-classes) p Ft 25 w(\(optional\)) 480 4359 y(|) f(A) h(list) g(of) g(implicit) g(fon) m(t) g(classes.) 42 b(F) -8 b(on) m(t) 33 b(classes) e(listed) g(b) m(y) g(this) f (capabilit) m(y) i(is) f(candidates) 480 4469 y(for) f(implicit) h(fon) m(t) g(searc) m(hing.) 480 4603 y(example:) p Fp 41 w (\(implicit-font-classes) 25 b("bdf") k("pcf") g("gf"\)) 0 4761 y(extension-hints) p Ft 26 w(\(optional\)) 480 4871 y(|) 22 b(A) g(list) h(of) f(paris) g(of) g(fon) m(t) h(name) f(p) s (ost\014x) f(and) g(corresp) s(onding) h(fon) m(t) g(class) h(name.) 38 b(This) 21 b(is) h(hin) m(t) 480 4980 y(information) 28 b(to) g(\014nd) d(fon) m(t) j(class) g(from) f(a) g(fon) m(t) h(name) g (in) e(case) j(of) e(searc) m(hing) h(an) f(implicit) i(fon) m(t.) 480 5090 y(If) 35 b(an) h(implicit) h(fon) m(t) f(name) g(matc) m(hes) h (with) f(a) g(p) s(ost\014x) f(giv) m(en) i(b) m(y) f(this) f (capabilit) m(y) -8 b(,) 40 b(sp) s(eci\014ed) 480 5199 y(fon) m(t) 35 b(class) g(is) g(in) m(v) m(ok) m(ed) h(to) f(searc) m (h) g(an) g(implicit) g(fon) m(t.) 54 b(This) 34 b(is) h(e\013ectiv) m (e) i(to) e(reduce) f(time) i(to) 480 5309 y(searc) m(h) 31 b(an) f(implicit) i(fon) m(t.) 480 5443 y(example:) p Fp 41 w(\(extension-hints) 26 b(\(".pcf") j(pcf\)) g(\(".bdf") f(bdf\)) i(\("gf") e(gf\)\)) 0 5601 y(variable-values) p Ft 26 w(\(optional\)) 480 5711 y(|) i(A) h(list) g(of) f(pairs) g(of) h(a) g (name) f(of) g(v\015ib) s(cap) g(v) -5 b(ariable) 31 b(and) f(its) h(default) f(v) -5 b(alue.) 480 5845 y(example:) p Fp 108 w(\(variable-values) 26 b(\("TeX_DPI") h("300"\)) i (\("TeX_KPATHSEA_MODE") c("cx"\)) 480 5954 y(\(v) 30 b(\("p1") f("v1"\)) p dyy eop end %%Page: 37 38 TeXDict begin 37 37 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(37) p Fp 0 365 a(uncompression-programs) p Ft 24 w(\(optional\)) 480 475 y(|) 28 b(A) g(list) h(of) g(pairs) f(of) g(\014le) g(name) h (extension) f(and) g(corresp) s(onding) f(uncompression) g(program.) 480 584 y(This) 39 b(is) h(used) f(for) h(reading) g(compressed) g(fon) m (t) g(\014les.) 69 b(An) 40 b(uncompression) f(program) h(m) m(ust) 480 694 y(output) 30 b(uncompressed) f(data) i(to) g(standard) f(output.) 480 828 y(This) i(capabilit) m(y) i(is) e(just) g(de\014nes) g (relations) h(of) g(an) f(extension) h(and) f(an) g(uncompression) g (pro-) 480 937 y(gram.) 52 b(A) 35 b(list) g(of) f(supp) s(orted) e (compressed) i(t) m(yp) s(es) g(of) h(a) f(fon) m(t) h(class) g(is) f (giv) m(en) i(in) d(a) i(fon) m(t) g(class) 480 1047 y(default) c(description) f(of) g(eac) m(h) i(fon) m(t) f(class.) 480 1180 y(example:) p Fp 41 w(\(uncompression-programs) 24 b(\(".Z") 29 b("zcat"\)) g(\(".gz") f("gzip) h(-cd"\)) 0 1338 y(code-conversion-files) p Ft 25 w(\(optional\)) 480 1447 y(|) g(A) g(list) h(of) g(\014le) f(names) g(for) g(enco) s(ding) h (con) m(v) m(ersion.) 41 b(Curren) m(tly) -8 b(,) 30 b(T) -8 b(rueT) m(yp) s(e) 28 b(fon) m(t) i(class) g(uses) 480 1557 y(this.) 41 b(See) 30 b(Chapter) g(8) h([Co) s(de) f(con) m(v) m (ersion) i(system],) f(page) g(73.) 480 1690 y(example:) p Fp 41 w(\(code-conversion-files) 25 b("iso8859-1_unicode.ccv") o(.ccv) o ("\)) 0 1848 y(use-kpathsea) p Ft 27 w(\(optional\)) 480 1957 y(|) 36 b(A) h(\015ag) g(whether) f(kpathsea) h(is) g(used) e(or) i (not) g(to) g(searc) m(h) g(T) 2680 1977 y(E) 2730 1957 y(X) g(fon) m(t) g(\014les.) 59 b(V) -8 b(alue) 38 b(of) f(this) 480 2067 y(capabilit) m(y) 32 b(m) m(ust) e(b) s(e) g(one) h(of) p Fp 30 w("Yes") p Ft 29 w(or) p Fp 31 w("No") p Ft(.) 480 2201 y(example:) p Fp 41 w(\(use-kpathsea) c("Yes"\)) 0 2358 y(kpathsea-mode) p Ft 27 w(\(optional\)) 480 2468 y(|) j(A) h(device) g(mo) s(de) f(name) g(for) g(kpathsea) h(library) -8 b(.) 480 2601 y(example:) p Fp 41 w(\(kpathsea-mode) 27 b("cx"\)) 0 2759 y(kpathsea-dpi) p Ft 27 w(\(optional\)) 480 2868 y(|) j(Device) i(resolution) f(\(in) g(dpi\)) f(of) g(a) h(device) g(mo) s(de) f(for) g(kpathsea) h(library) -8 b(.) 480 3002 y(example:) p Fp 41 w(\(kpathsea-mode) 27 b(300\)) 0 3159 y(kpathsea-program-name) p Ft 25 w(\(optional\)) 480 3269 y(|) j(An) g(application) i(program) e(name) g(for) h(kpathsea) f (library) -8 b(.) 480 3402 y(example:) p Fp 41 w(\(kpathsea-mode) 27 b("xgdvi"\)) p Fs 0 3657 a(6.10) 68 b(BDF) 44 b(fon) l(t) i(class) p Ft 125 3900 a(The) 28 b(BDF) i(format) f(is) g(a) h(bitmap) e(fon) m(t) i(format) f(enco) s(ded) g(in) f(h) m(uman-readable,) i(platform) f (indep) s(enden) m(t) 0 4009 y(format) i(for) f(distributing) g(X) g (Windo) m(w) h(fon) m(ts.) 125 4143 y(This) e(fon) m(t) i(class) g (supp) s(orts) e(compressed) h(fon) m(t) h(\014les) f(and) g(implicit) h (fon) m(ts.) p Fm 0 4386 a(F) -8 b(on) m(t) 32 b(class) f(name) p Ft(:) p Fp 40 w(bdf) p Fm 0 4629 a(Capabilities) g(for) g(fon) m(t) g (class) f(default:) p Fp 0 4896 a(font-directories) p Ft 26 w(\(optional\)) 480 5006 y(|) h(A) f(list) i(of) f(fon) m(t) g (directories) h(for) e(searc) m(hing) i(fon) m(t) f(\014les.) 41 b(Recursiv) m(e) 32 b(searc) m(hing) f(of) g(fon) m(t) h(\014les) 480 5115 y(is) e(supp) s(ort.) p Fp 0 5273 a(compression-extensions) p Ft 24 w(\(optional\)) 480 5382 y(|) f(A) g(list) g(of) g(supp) s(orted) e(compression) i(t) m(yp) s(e) g(for) f(this) h(fon) m(t) g(class.) 41 b(This) 28 b(fon) m(t) i(class) f(supp) s(orts) 480 5492 y(only) 43 b(compression) g(t) m(yp) s(e) g(giv) m(en) h(b) m(y) f (this) g(capabilit) m(y) -8 b(.) 81 b(When) 43 b(a) g(fon) m(t) h(is) f (searc) m(hed,) k(a) c(\014le) 480 5602 y(follo) m(w) m(ed) 28 b(b) m(y) f(a) g(compression) g(extension) h(is) e(searc) m(hed) i(if) f (giv) m(en) g(fon) m(t) h(\014le) f(is) g(not) g(found.) 38 b(\(Note) 480 5711 y(that) p Fp 30 w(uncompression-programs) p Ft 23 w(capabilit) m(y) 31 b(of) e(VFlib) g(class) h(default) g (description) f(giv) m(es) h(a) 480 5821 y(uncompression) f (programs.\)) 480 5954 y(example:) p Fp 41 w(\(compression-extensions) 24 b(".gz") 29 b(".Z"\)) p dyy eop end %%Page: 38 39 TeXDict begin 38 38 bop Ft 0 -116 a(38) 3198 b(VFlib) 31 b(3.6.14) p Fp 0 365 a(dpi) p Ft 29 w(\(optional\)) 480 475 y(|) f(Defualt) h(device) f(resolution.) 41 b(Default) 31 b(horizon) m(tal) h(and) d(v) m(ertical) j(resolutions) e(will) g(b) s (e) f(the) 480 584 y(same) i(v) -5 b(alue.) 480 716 y(example:) p Fp 41 w(\(dpi) 30 b(300\)) 0 869 y(dpi-x) p Ft 29 w(\(optional\)) 480 979 y(|) g(Default) i(horizon) m(tal) g(device) f(resolution.) 480 1111 y(example:) p Fp 41 w(\(dpi-x) e(300\)) 0 1264 y(dpi-y) p Ft 29 w(\(optional\)) 480 1374 y(|) h(Default) i(v) m(ertical) g (device) f(resolution.) 480 1505 y(example:) p Fp 41 w(\(dpi-y) e(300\)) 0 1658 y(aspect-ratio) p Ft 27 w(\(optional\)) 480 1768 y(|) 34 b(Asp) s(ect) g(ratio) h(of) g(c) m(haracters.) 53 b(If) 34 b(this) f(v) -5 b(alue) 35 b(is) f(0.5) h(then) f(width) f(is) i(half,) g(and) e(if) h(2) h(then) 480 1878 y(width) 30 b(is) g(doubled.) 480 2009 y(example:) p Fp 41 w(\(aspect-ratio) d (0.8\)) 0 2163 y(properties) p Ft 28 w(\(optional\)) 480 2272 y(|) 34 b(A) g(list) h(of) g(pairs) f(of) g(a) h(prop) s(ert) m(y) e(name) i(and) e(its) i(v) -5 b(alue.) 53 b(Prop) s(ert) m(y) 34 b(v) -5 b(alues) 34 b(giv) m(en) h(b) m(y) g(this) 480 2382 y(parameter) c(is) f(used) g(b) m(y) p Fp 30 w(VF_GetProp\(\)) p Ft 480 2513 a(example:) p Fp 41 w(\(properties) e(\("PROP-1") g ("value-1"\)) f(\("PROP-2") h("value-2"\)\)) 0 2667 y(variable-values) p Ft 26 w(\(optional\)) 480 2776 y(|) i(A) h(list) g(of) f(pairs) g(of) h (a) g(v\015ib) s(cap) e(v) -5 b(ariable) 31 b(name) g(and) e(its) i (default) g(v) -5 b(alue.) 480 2908 y(example:) p Fp 108 w(\(variable-values) 26 b(\("TeX_DPI") h("300"\)) i (\("TeX_KPATHSEA_MODE") c("cx"\)) 480 3017 y(\("TeX_KPATHSEA_PROGRAM") f ("/usr/X11R6/xldvi"\)\)) p Fm 0 3412 a(Capabilities) 31 b(for) g(fon) m(t) g(de\014nition:) p Fp 0 3675 a(font-class) p Ft 28 w(\(essen) m(tial\)) 480 3784 y(|) f(A) h(fon) m(t) g(class) g (name.) 40 b(This) 30 b(v) -5 b(alue) 31 b(m) m(ust) f(b) s(e) p Fp 30 w(bdf) p Ft(.) p Fp 0 3938 a(font-directories) p Ft 26 w(\(optional\)) 480 4047 y(|) h(A) f(list) i(of) f(fon) m(t) g (directories) h(for) e(searc) m(hing) i(fon) m(t) f(\014les.) 41 b(Recursiv) m(e) 32 b(searc) m(hing) f(of) g(fon) m(t) h(\014les) 480 4157 y(is) e(supp) s(ort.) 39 b(A) 31 b(fon) m(t) g(\014le) f(is) h (searc) m(hed) g(in) f(the) g(directories) i(giv) m(en) f(b) m(y) f (this) g(capabilit) m(y) -8 b(.) 480 4289 y(If) 25 b(this) h(capabilit) m(y) h(is) f(not) g(giv) m(en,) h(the) f(fon) m(t) g(directory) g(sp) s (eci\014ed) f(b) m(y) h(the) f(class) i(default) f(is) f(used) 480 4398 y(to) 34 b(searc) m(h) g(fon) m(ts.) 51 b(If) 33 b(this) g(capabilit) m(y) i(is) f(giv) m(en,) h(the) f(fon) m(t) g (directory) g(sp) s(eci\014ed) f(b) m(y) g(the) h(class) 480 4508 y(default) d(is) f(not) h(used) e(to) i(searc) m(h) g(fon) m(ts.) p Fp 0 4661 a(font-file) p Ft 28 w(\(optional\)) 480 4771 y(|) h(A) f(fon) m(t) h(\014le) g(name) g(string.) 44 b(If) 32 b(this) f(capabilit) m(y) j(is) d(not) h(sp) s(eci\014ed,) g (the) g(fon) m(t) g(name) g(is) f(used) 480 4880 y(as) h(the) g(fon) m (t) g(\014le) f(name.) 44 b(Multiple) 33 b(fon) m(t) f(\014le) g(names) f(can) h(b) s(e) f(listed) h(in) f(this) g(capabilit) m(y) -8 b(.) 47 b(The) 480 4990 y(driv) m(er) 36 b(tries) h(to) h(op) s(en) e (a) h(fon) m(t) g(listed) g(\014rst.) 59 b(If) 36 b(it) h(is) g(imp) s (ossible) f(to) h(op) s(en,) h(then) f(it) g(tries) g(to) 480 5100 y(op) s(en) 24 b(the) i(second) f(fon) m(t.) 39 b(This) 24 b(is) h(rep) s(eated) g(un) m(til) h(a) f(fon) m(t) g(is) h (successfully) f(op) s(ened.) 38 b(If) 24 b(all) i(fon) m(ts) 480 5209 y(are) 31 b(imp) s(ossible) f(to) h(op) s(en,) f(fon) m(t) h(op) s (en) e(fails.) 480 5341 y(example:) p Fp 41 w(\(font-file) f ("timI24.bdf") f("timR24.bdf"\)) 0 5494 y(point-size) p Ft 28 w(\(optional\)) 480 5604 y(|) 32 b(fon) m(t) h(size) g(in) f(p) s (oin) m(ts.) 46 b(If) 32 b(the) g(size) h(is) f(di\013eren) m(t) h (from) f(the) g(size) h(de\014ned) e(in) h(the) h(BDF) g(fon) m(t) 480 5713 y(\014le,) j(the) f(bitmap) g(is) g(enlarged) g(or) g(shrink) m (ed) f(to) i(yield) f(the) g(sp) s(eci\014ed) f(size.) 56 b(This) 34 b(capabilit) m(y) 480 5823 y(has) c(e\013ect) i(for) e(the) h (VFlib) g(functions) p Fp 29 w(VF_GetBitmap1\(\)) p Ft 27 w(and) p Fp 29 w(VF_GetMetric1\(\)) p Ft(.) 480 5954 y(example:) p Fp 41 w(\(point-size) d(24.0\)) p dyy eop end %%Page: 39 40 TeXDict begin 39 39 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(39) p Fp 0 365 a(pixel-size) p Ft 28 w(\(optional\)) 480 475 y(|) 33 b(fon) m(t) h(size) g(in) e(pixels.) 50 b(If) 32 b(the) i(size) g(is) f(di\013eren) m(t) h(from) e(the) i(size) g (de\014ned) e(in) g(the) i(BDF) g(fon) m(t) 480 584 y(\014le,) i(the) f (bitmap) g(is) g(enlarged) g(or) g(shrink) m(ed) f(to) i(yield) f(the) g (sp) s(eci\014ed) f(size.) 56 b(This) 34 b(capabilit) m(y) 480 694 y(has) c(e\013ect) i(for) e(the) h(VFlib) g(functions) p Fp 29 w(VF_GetBitmap2\(\)) p Ft 27 w(and) p Fp 29 w(VF_GetMetric2\(\)) p Ft(.) 480 838 y(example:) p Fp 41 w(\(pixel-size) d(24\)) 0 1018 y(magnification) p Ft 27 w(\(optional\)) 480 1127 y(|) i(magni\014cation) i(factor.) 42 b(The) 29 b(fon) m(t) i(is) g (magni\014ed) f(b) m(y) g(this) g(factor.) 480 1272 y(example:) p Fp 41 w(\(magnification) d(1.20\)) 0 1451 y(character-set) p Ft 27 w(\(optional\)) 480 1561 y(|) i(This) g(is) g(used) f(for) h(co) s (de) h(p) s(oin) m(t) f(con) m(v) m(ersion.) 42 b(V) -8 b(alue) 30 b(of) g(this) f(capabilit) m(y) i(giv) m(es) f(an) g (external) 480 1670 y(view) g(of) g(a) f(c) m(haracter) j(set) e(of) f (a) h(fon) m(t.) 41 b(Co) s(de) 29 b(con) m(v) m(ersion) i(\(ccv\)) g (is) f(determined) f(b) m(y) h(this) f(v) -5 b(alue) 480 1780 y(and) 30 b(the) g(follo) m(wing) i(three) f(capabilities.) p Fp 0 1959 a(encoding) p Ft 28 w(\(optional\)) 480 2069 y(|) e(This) g(is) g(used) f(for) h(co) s(de) h(p) s(oin) m(t) f(con) m (v) m(ersion.) 42 b(V) -8 b(alue) 30 b(of) g(this) f(capabilit) m(y) i (giv) m(es) f(an) g(external) 480 2178 y(view) h(of) f(an) g(enco) s (ding) h(of) f(a) h(fon) m(t.) p Fp 0 2357 a(font-character-set) p Ft 25 w(\(optional\)) 480 2467 y(|) f(This) g(is) g(used) g(for) g(co) s (de) h(p) s(oin) m(t) f(con) m(v) m(ersion.) 42 b(V) -8 b(alue) 32 b(of) e(this) g(capabilit) m(y) j(giv) m(es) e(an) g(in) m (ternal) 480 2576 y(view) c(of) h(a) f(c) m(haracter) i(set) f(of) f(a) h(fon) m(t.) 40 b(Therefore,) 28 b(this) f(v) -5 b(alue) 28 b(m) m(ust) f(matc) m(h) h(the) f(c) m(haracter) i(set) 480 2686 y(of) i(the) f(fon) m(t) h(\014le) f(giv) m(en) i(b) m(y) p Fp 30 w(font-file) p Ft 28 w(capabilit) m(y) -8 b(.) p Fp 0 2865 a(font-encoding) p Ft 27 w(\(optional\)) 480 2975 y(|) 30 b(This) g(is) g(used) g(for) g(co) s(de) h(p) s(oin) m(t) f (con) m(v) m(ersion.) 42 b(V) -8 b(alue) 32 b(of) e(this) g(capabilit) m (y) j(giv) m(es) e(an) g(in) m(ternal) 480 3084 y(view) d(of) f(an) h (enco) s(ding) f(of) h(a) g(fon) m(t.) 40 b(Therefore,) 28 b(this) g(v) -5 b(alue) 28 b(m) m(ust) f(matc) m(h) h(the) g(enco) s (ding) g(of) f(the) 480 3194 y(fon) m(t) k(\014le) f(giv) m(en) i(b) m (y) p Fp 30 w(font-file) p Ft 28 w(capabilit) m(y) -8 b(.) 480 3338 y(The) 32 b(follo) m(wing) i(example) f(de\014nes) e(a) i (fon) m(t) g(named) p Fp 32 w(iso8859_5-font) p Ft 28 w(with) f(ISO-8859-5) i(en-) 480 3448 y(co) s(ding) c(b) m(y) h(using) f (a) g(K) m(OI8-R) h(enco) s(ded) f(fon) m(t) h(\014le.) p Fp 720 3592 a(\(define-font) 44 b(iso8859_5-font) 815 3702 y(\(font-class) h(pcf\)) 815 3812 y(\(character-set) f ("ISO8859-5"\)) 140 b(\(encoding) 46 b("ISO"\)) 815 3921 y(\(font-character-set) d("KOI8-R"\)) i(\(font-encoding) f("KOI8-R"\)) 815 4031 y(\(font-file) h("koi8x13.pcf"\)\)) p Ft 480 4175 a(Co) s(de) 29 b(con) m(v) m(ersion) i(is) e(done) g(b) m(y) h(a) g (subsystem) e(named) h(CCV.) g(See) h(Chapter) f(8) h([Co) s(de) f(con) m(v) m(er-) 480 4285 y(sion) h(system],) h(page) h(73) f(for) f (detail.) p Fs 0 4592 a(6.11) 68 b(PCF) 45 b(fon) l(t) g(class) p Fm 0 4856 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(pcf) p Ft 125 5120 a(Other) e(sp) s(eci\014cation) j(is) e(the) h (same) f(as) h(BDF) g(fon) m(t) g(class) g(except) h(fon) m(t) f(class) g(name) f(is) p Fp 31 w(pcf) p Ft(.) p Fs 0 5427 a(6.12) 68 b(HBF) 44 b(fon) l(t) i(class) p Fm 0 5690 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(hbf) p Ft 125 5954 a(Other) e(sp) s (eci\014cation) j(is) e(the) h(same) f(as) h(BDF) g(fon) m(t) g(class) g (except) h(fon) m(t) f(class) g(name) f(is) p Fp 31 w(hbf) p Ft(.) p dyy eop end %%Page: 40 41 TeXDict begin 40 40 bop Ft 0 -116 a(40) 3198 b(VFlib) 31 b(3.6.14) p Fs 0 365 a(6.13) 68 b(T) -11 b(rueT) l(yp) t(e) 44 b(fon) l(t) i(class) p Ft 125 617 a(T) -8 b(rueT) m(yp) s(e) 32 b(is) h(a) h(v) m(ector) h(fon) m(t) f(fon) m(t) g(format.) 50 b(This) 33 b(fon) m(t) h(class) g(supp) s(orts) d(implicit) k(fon) m (ts) e(but) g(do) s(es) g(not) 0 727 y(supp) s(ort) 24 b(compressed) i(fon) m(t) g(\014les.) 39 b(T) -8 b(rueT) m(yp) s(e) 25 b(fon) m(t) i(driv) m(er) e(uses) h(F) -8 b(reeT) m(yp) s(e) 26 b(library) g(v) m(ersion) g(1.2) h(dev) m(elop) s(ed) 0 837 y(b) m(y) k(Da) m(vid) h(T) -8 b(urner,) 30 b(Rob) s(ert) h (Wilhelm,) i(and) d(W) -8 b(erner) 32 b(Lem) m(b) s(erg.) 43 b(See) p Fp 31 w(http://www.freetype.org/) p Ft 25 w(for) 0 946 y(detail.) p Fm 0 1198 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(truetype) p Fm 0 1450 a(Capabilities) g(for) g(fon) m(t) g (class) f(default:) p Fp 0 1731 a(font-directories) p Ft 26 w(\(optional\)) 480 1841 y(|) k(A) g(list) g(of) g(fon) m(t) g (directories.) 53 b(This) 33 b(driv) m(er) g(supp) s(orts) f(fon) m(t) i (\014le) g(searc) m(h) h(b) m(y) e(kpathsea.) 52 b(T) -8 b(o) 480 1950 y(searc) m(h) 31 b(a) g(fon) m(t) g(\014le) f(b) m(y) g (kpathsea,) h(use) p Fp 31 w(TEXMF) p Ft 28 w(for) g(a) f(directory) h (name.) p Fp 0 2118 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 2227 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 2337 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 2446 a(dpi-x) p Ft 29 w(\(optional\)) p Fp 0 2556 a(dpi-y) p Ft 29 w(\(optional\)) p Fp 0 2666 a(aspect-ratio) p Ft 27 w(\(optional\)) p Fp 0 2775 a(hinting) p Ft 28 w(\(optional\)) 480 2885 y(|) f(If) g(the) h (v) -5 b(alue) 31 b(of) g(capabilit) m(y) p Fp 32 w(on) p Ft(,) p Fp 31 w(") p Ft(hin) m(ting) p Fp(") p Ft 30 w(information) g(is) f(used) g(to) h(render) f(c) m(haracters.) 480 2994 y(This) i(is) g(e\013ectiv) m(e) k(when) 31 b(small) i(c) m (haracters) h(are) f(rendered.) 47 b(If) 32 b(the) g(v) -5 b(alue) 33 b(is) p Fp 33 w(off) p Ft(,) g(hin) m(ting) f(is) 480 3104 y(disabled.) 40 b(Hin) m(ting) 32 b(information) e(is) h(used) e (b) m(y) i(default.) 480 3243 y(Note) c(that) g(enabling) f(hin) m (ting) h(has) f(e\013ect) h(when) e(obtaining) i(bitmaps.) 39 b(It) 26 b(has) g(no) g(e\013ect) h(when) 480 3352 y(y) m(ou) 35 b(obtain) h(and) e(rasterize) j(outline) f(data) f(in) g(VFlib) h (format,) g(since) g(VFlib) f(outline) h(format) 480 3462 y(do) s(es) 30 b(not) h(supp) s(orts) d(hin) m(ting) j (information.) p Fp 0 3629 a(platform-id) p Ft 27 w(\(optional\)) 480 3739 y(|) 46 b(A) h(T) -8 b(rueT) m(yp) s(e) 45 b(fon) m(t) i(can) g (ha) m(v) m(e) g(m) m(ultiple) g(c) m(haracter) h(co) s(de) f(-) g (glyph) f(mapping) f(tables.) 480 3848 y(A) 52 b(mapping) g(table) h (is) f(selected) h(b) m(y) f(sp) s(ecifying) g(a) h(pair) f(of) g (platform) g(ID) g(\() p Fp(Microsoft) p Ft(,) p Fp 480 3958 a(Macintosh) p Ft(,) 41 b(etc\)) g(and) f(enco) s(ding) g(ID) h (\() p Fp(Unicode) p Ft(,) p Fp 41 w(Shift-JIS) p Ft(,) g(etc\).) 72 b(This) 39 b(capabilit) m(y) j(is) 480 4067 y(used) 30 b(to) h(sp) s(ecify) f(platform) g(ID) h(of) f(a) h(mapping) f(table) h (to) g(b) s(e) f(selected.) 480 4206 y(V) -8 b(alue) 32 b(of) e(this) g(capabilit) m(y) j(is) d(one) h(of) f(strings) g(b) s (elo) m(w:) p Fp 480 4373 a(apple) p Ft 240 w(Apple) g(platform) p Fp 480 4541 a(macintosh) p Ft(,) p Fp 28 w(mac) p Ft 960 4650 a(Macin) m(tosh) i(platform) p Fp 480 4818 a(ascii) p Ft(,) p Fp 29 w(iso) p Ft 960 4927 a(ISO) d(platform) p Fp 480 5095 a(microsoft) p Ft(,) p Fp 28 w(windows) p Ft(,) p Fp 29 w(ms) p Ft 960 5204 a(Microsoft) j(platform) p Fp 480 5372 a(any) p Ft(,) p Fp 30 w(?) p Ft(,) p Fp 30 w(*) p Ft 130 w(An) m(y) e(platform) 480 5539 y(Default) h(v) -5 b(alue) 31 b(for) f(this) h(capabilit) m(y) h(is) e(Microsoft) i (platform.) 480 5677 y(example:) p Fp 41 w(\(platform-id) 27 b("microsoft"\)) 0 5845 y(encoding-id) p Ft 27 w(\(optional\)) 480 5954 y(|) j(T) -8 b(ogether) 32 b(with) e(platform) g(id,) h(this) f (capabilit) m(y) i(is) f(used) e(to) i(sp) s(ecify) f(a) h(mapping) f (table.) p dyy eop end %%Page: 41 42 TeXDict begin 41 41 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(41) 480 365 y(When) 56 b(ISO) f(platform) h(is) g(selected) h(b) m(y) f(the) p Fp 56 w(encoding-id) p Ft 53 w(capabilit) m(y) -8 b(,) 65 b(v) -5 b(alue) 56 b(of) h(this) p Fp 480 475 a(encoding-id) p Ft 27 w(capabilit) m(y) 32 b(is) f(one) g(of) f(strings) g(b) s(elo) m (w:) p Fp 480 745 a(ascii) p Ft 240 w(ASCI) s(I) f(enco) s(ding.) p Fp 480 906 a(iso10464) p Ft 96 w(ISO) g(10464) k(enco) s(ding.) p Fp 480 1067 a(iso8859-1) p Ft 960 1177 a(ISO8859-1) f(enco) s(ding.) p Fp 480 1338 a(any) p Ft(,) p Fp 30 w(?) p Ft(,) p Fp 30 w(*) p Ft 130 w(An) m(y) e(enco) s(ding.) 480 1743 y(When) 49 b(Apple) f(platform) h(is) g(selected) h(b) m(y) f(the) p Fp 49 w(encoding-id) p Ft 45 w(capabilit) m(y) -8 b(,) 56 b(v) -5 b(alue) 50 b(of) f(this) p Fp 480 1853 a(encoding-id) p Ft 27 w(capabilit) m(y) 32 b(is) f(one) g(of) f(strings) g(b) s(elo) m (w:) p Fp 480 2123 a(unicode1.1) p Ft 960 2233 a(Unico) s(de) h(1.1) g (enco) s(ding.) p Fp 480 2394 a(unicode2.0) p Ft 960 2503 a(Unico) s(de) g(2.0) g(enco) s(ding.) p Fp 480 2664 a(iso10464) p Ft 96 w(ISO) e(10464) k(enco) s(ding.) p Fp 480 2825 a(any) p Ft(,) p Fp 30 w(?) p Ft(,) p Fp 30 w(*) p Ft 130 w(An) m(y) d(enco) s(ding) 480 3231 y(When) 36 b(Microsoft) i(platform) e(is) h(selected) h(b) m(y) e(the) p Fp 37 w(encoding-id) p Ft 33 w(capabilit) m(y) -8 b(,) 40 b(v) -5 b(alue) 37 b(of) g(this) p Fp 480 3341 a(encoding-id) p Ft 27 w(capabilit) m(y) 32 b(is) f(one) g(of) f(strings) g(b) s(elo) m (w:) p Fp 480 3611 a(symbol) 480 3772 y(unicode) p Ft 144 w(Unico) s(de) h(enco) s(ding.) p Fp 480 3933 a(shift-jis) p Ft(,) p Fp 28 w(sjis) p Ft(,) p Fp 30 w(ms-kanji) p Ft 960 4042 a(Shift) f(JIS) f(enco) s(ding.) p Fp 480 4203 a(big5) p Ft 288 w(Big5) j(enco) s(ding.) p Fp 480 4364 a(rpc) 480 4525 y(wansung) 480 4686 y(johab) 480 4847 y(any) p Ft(,) p Fp 30 w(?) p Ft(,) p Fp 30 w(*) p Ft 130 w(An) m(y) e(enco) s(ding) 480 5252 y(When) j(Macin) m(tosh) i (platform) e(is) g(selected) i(b) m(y) e(the) p Fp 34 w(encoding-id) p Ft 30 w(capabilit) m(y) -8 b(,) 36 b(v) -5 b(alue) 34 b(of) g(this) p Fp 480 5362 a(encoding-id) p Ft 27 w(capabilit) m(y) e(is) f(one) g(of) f(strings) g(b) s(elo) m(w:) p Fp 480 5523 a(roman) 480 5684 y(japanese) 480 5845 y(traditional-chinese) 480 5954 y(korean) p dyy eop end %%Page: 42 43 TeXDict begin 42 42 bop Ft 0 -116 a(42) 3198 b(VFlib) 31 b(3.6.14) p Fp 480 365 a(arabic) 480 524 y(hebrew) 480 682 y(greek) 480 840 y(russian) 480 998 y(any) p Ft(,) p Fp 30 w(?) p Ft(,) p Fp 30 w(*) p Ft 130 w(An) m(y) f(enco) s(ding) 480 1157 y(example:) p Fp 41 w(\(encoding-id) d("any"\)) 0 1315 y(properties) p Ft 28 w(\(optional\)) p Fp 0 1425 a(variable-values) p Ft 26 w(\(optional\)) p Fm 0 1802 a(Capabilities) k(for) g(fon) m(t) g(de\014nition:) p Fp 0 2070 a(font-class) p Ft 28 w(\(essen) m(tial\)) 480 2180 y(This) f(v) -5 b(alue) 30 b(m) m(ust) h(b) s(e) p Fp 29 w(") p Ft(truet) m(yp) s(e) p Fp(") p Ft(.) p Fp 0 2338 a(font-directories) p Ft 26 w(\(optional\)) 480 2447 y(|) g(A) f(list) i(of) f(fon) m(t) g(directories) h(for) e(searc) m(hing) i(fon) m(t) f(\014les.) 41 b(Recursiv) m(e) 32 b(searc) m(hing) f(of) g(fon) m(t) h(\014les) 480 2557 y(is) e(supp) s(ort.) 38 b(A) 30 b(fon) m(t) g(\014le) g(is) g(searc) m (hed) g(in) f(the) h(directories) h(b) m(y) e(this) h(capabilit) m(y) -8 b(.) 42 b(If) 30 b(not) g(found,) 480 2667 y(then) g(a) h(fon) m(t) g (is) f(searc) m(hed) h(in) f(a) h(directories) g(giv) m(en) h(b) m(y) e (the) g(class) i(default.) 480 2801 y(T) -8 b(o) 31 b(searc) m(h) g(a) g (fon) m(t) f(\014le) h(b) m(y) f(kpathsea,) h(use) p Fp 30 w(TEXMF) p Ft 29 w(for) f(a) h(directory) g(name.) p Fp 0 2959 a(font-file) p Ft 28 w(\(optional\)) p Fp 0 3068 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 3178 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 3288 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 3397 a(dpi-x) p Ft 29 w(\(optional\)) p Fp 0 3507 a(dpi-y) p Ft 29 w(\(optional\)) p Fp 0 3616 a(magnification) p Ft 27 w(\(optional\)) p Fp 0 3726 a(aspect-ratio) p Ft 27 w(\(optional\)) p Fp 0 3836 a(hinting) p Ft 28 w(\(optional\)) p Fp 0 3945 a(font-number) p Ft 27 w(\(optional\)) p Fp 0 4055 a(encoding-force) p Ft 26 w(\(optional\)) 480 4164 y(|) 24 b(In) g(case) h(enco) s(ding) g(id) f(data) h(is) f(brok) m(en) h(in) f(a) g(T) -8 b(rueT) m(yp) s(e) 24 b(fon) m(t,) i(its) f(v) -5 b(alue) 25 b(can) g(b) s(e) e(o) m(v) m (erridden) 480 4274 y(b) m(y) 30 b(this) h(capabilit) m(y) -8 b(.) 480 4408 y(example) p Fp 31 w(\(encoding-force) 26 b("unicode"\)) 0 4566 y(character-set) p Ft 27 w(\(optional\)) 480 4676 y(|) 36 b(T) -8 b(ogether) 37 b(with) p Fp 36 w(encoding) p Ft 34 w(capabilit) m(y) -8 b(,) 40 b(this) c(capabilit) m(y) i(is) e (used) g(to) h(c) m(hange) p Fp 37 w(") p Ft(external) 480 4785 y(view) p Fp(") p Ft 33 w(of) d(a) f(fon) m(t.) 50 b(A) 34 b(fon) m(t) g(w) m(ould) f(b) s(e) f(a) i(fon) m(t) g(of) f(a) h (c) m(haracter) h(set) f(giv) m(en) g(b) m(y) f(this) h(capabilit) m(y) 480 4895 y(and) h(enco) s(ding) g(giv) m(en) h(b) m(y) p Fp 35 w(encoding) p Ft 33 w(capabilit) m(y) -8 b(.) 57 b(Con) m(v) m(ersion) 36 b(of) f(fon) m(t) h(in) m(ternal) g(c) m (haracter) 480 5005 y(set) 30 b(and) f(enco) s(ding) h(to) g(an) f (external) i(view) f(is) f(determined) h(b) m(y) f(these) h(capabilit) m (y) -8 b(.) 43 b(Con) m(v) m(ersion) 480 5114 y(is) f(done) g(b) m(y) g (b) m(y) g(co) s(de) h(con) m(v) m(ersion) g(system,) j(called) d(CCV.) f(Chapter) g(8) g([Co) s(de) g(con) m(v) m(ersion) 480 5224 y(system],) 34 b(page) f(73) g(Co) s(de) f(con) m(v) m(ersion) i (\014les) e(are) h(sp) s(eci\014ed) f(in) p Fp 32 w (code-conversion-files) p Ft 27 w(in) p Fp 480 5333 a(VFlib) p Ft 29 w(fon) m(t) f(class) g(default.) 41 b(See) 30 b(Section) i(6.9) f ([VFlib) g(defaults],) g(page) g(36.) 480 5467 y(F) -8 b(or) 30 b(example,) g(a) g(fon) m(t) g(of) f(JIS) f(X) h(0208) i(c) m (haracter) g(set) f(\(a) g(Japanese) f(c) m(haracter) i(set\)) f(in) f (Shift-) 480 5577 y(JIS) g(enco) s(ding) i(fon) m(ts) f(can) h(b) s(e) f (accessed) h(as) g(a) g(JIS) e(enco) s(ding) h(fon) m(t.) p Fp 0 5735 a(encoding) p Ft 28 w(\(optional\)) 480 5845 y(|) g(T) -8 b(ogether) 32 b(with) p Fp 30 w(character-set) p Ft 27 w(capabilit) m(y) -8 b(,) 33 b(this) d(capabilit) m(y) i (de\014nes) e(a) h(external) g(view) 480 5954 y(of) g(a) f(fon) m(t.) 42 b(Chapter) 29 b(8) i([Co) s(de) f(con) m(v) m(ersion) i(system],) f (page) g(73) p dyy eop end %%Page: 43 44 TeXDict begin 43 43 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(43) p Fp 0 365 a(properties) p Ft 28 w(\(optional\)) p Fp 0 475 a(jisx0212-row47-empty-sji) o(s) p Ft 24 w(\(optional\)) 480 584 y(|) 35 b(This) g(capabilit) m(y) i(is) e(used) f(for) h(an) h (ad-ho) s(c) f(solution) h(to) g(handle) f(JIS) f(X) h(0212) i(fon) m (ts) f(with) 480 694 y(non-standard) 30 b(enco) s(ding) i(suc) m(h) f (that) h(ro) m(w) f(47) h(is) g(empt) m(y) g(and) e(follo) m(w) m(ed) j (ro) m(ws) f(are) g(shifted) f(b) m(y) 480 804 y(one.) 40 b(\(That) 29 b(is,) g(Kanjis) f(in) g(ro) m(w) h(48) g(of) g(JIS) e(X) i (0212) h(app) s(eard) d(in) i(ro) m(w) f(49) h(in) g(suc) m(h) f(fon) m (ts.\)) 40 b(JIS) 480 913 y(X) 28 b(0212) h(fon) m(ts) g(of) f(Ricoh) g (T) -8 b(rueT) m(yp) s(eW) g(orld) 27 b(V) -8 b(alueF) g(on) m(t) 31 b(D) m(X) e(are) f(suc) m(h) f(fon) m(ts.) 40 b(If) p Fp 28 w(yes) p Ft 27 w(is) 27 b(giv) m(en) 480 1023 y(to) k(this) f (capabilit) m(y) -8 b(,) 33 b(buggy) d(enco) s(ding) h(is) f(virtually) h(\014xed.) 480 1153 y(This) 41 b(capabilit) m(y) i(can) e(apply) g(to) h(other) g(pro) s(ducts) e(of) h(buggy) g(enco) s(ded) g(JIS) g(X) g (0212) i(fon) m(ts) 480 1262 y(whose) 38 b(in) m(ternal) h(enco) s (ding) f(is) g(Shift) f(JIS.) g(\(Use) p Fp 39 w(ftdump) p Ft 36 w(utilit) m(y) j(of) e(F) -8 b(reeT) m(yp) s(e) 39 b(pac) m(k) -5 b(age) 40 b(to) 480 1372 y(c) m(hec) m(k) 32 b(in) m(ternal) f(enco) s(ding) f(sc) m(heme) h(of) g(fon) m(ts.\)) p Fs 0 1615 a(6.14) 68 b(T) l(yp) t(e1) 45 b(fon) l(t) g(class) p Ft 125 1855 a(T) m(yp) s(e1) 40 b(is) h(a) h(v) m(ector) g(fon) m(t) g (fon) m(t) f(format) g(used) f(b) m(y) h(P) m(ostScript.) 73 b(This) 40 b(fon) m(t) i(class) f(supp) s(orts) e(implicit) 0 1964 y(fon) m(ts) g(but) f(do) s(es) g(not) h(supp) s(ort) e (compressed) h(fon) m(t) h(\014les.) 65 b(This) 38 b(T) m(yp) s(e1) g (fon) m(t) h(driv) m(er) g(uses) f(T1Lib) g(library) 0 2074 y(v) m(ersion) f(5.1) g(or) f(later) h(dev) m(elop) s(ed) f(b) m (y) g(Rainer) g(Menzner.) 58 b(See) p Fp 36 w (http://www.neuroinformati) o(k.ru) o(hr-) 0 2184 y (uni-bochum.de/ini/PEOPLE) o(/rmz) o(/t1l) o(ib/) o(t1li) o(b.ht) o(ml) p Ft 24 w(for) 30 b(detail.) 125 2314 y(Be) h(careful,) g(VFlib) f(do) s (es) g(not) h(w) m(ork) g(with) f(old) g(T1Lib.) 41 b(Obtain) 30 b(and) f(install) j(T1Lib) e(5.1) h(or) f(later.) 125 2443 y(Curren) m(tly) -8 b(,) 41 b(this) e(fon) m(t) h(driv) m(er) f (supp) s(orts) f(only) h(8-bit) h(enco) s(ded) f(fon) m(ts,) k(i.e.,) g (it) c(do) s(es) g(not) h(supp) s(ort) e(for) 0 2553 y(fon) m(ts) 31 b(of) f(Japanese) h(Kanji) f(c) m(haracters.) 125 2683 y(The) c(function) p Fp 27 w(VF_GetOutline\(\)) p Ft 23 w(for) h(T) m(yp) s(e1) g(fon) m(t) g(\014les) g(is) g(supp) s (orted) f(but) g(the) h(result) g(is) g(ugly) -8 b(.) 40 b(Since) 0 2792 y(T1Lib) 35 b(do) s(es) g(not) g(ha) m(v) m(e) i(a) f (function) f(to) h(obtain) f(outline) h(data) g(of) g(a) f(c) m (haracter) i(in) e(T) m(yp) s(e1) h(fon) m(t,) h(this) e(fon) m(t) 0 2902 y(driv) m(er) d(creates) i(an) e(outline) h(data) g(from) f(a) g (bitmap) g(\(for) h(compatibilit) m(y\).) 49 b(Th) m(us,) 32 b(it) h(is) f(v) m(ery) h(ugly) -8 b(.) 47 b(If) 32 b(y) m(our) 0 3012 y(application) h(soft) m(w) m(are) h(requires) d(outline) i(data,) g(y) m(ou) g(are) f(recommended) g(to) h(use) e(the) i(same) f(fon) m (t) g(in) g(other) 0 3121 y(fon) m(t) 24 b(format,) h(suc) m(h) d(as) i (T) -8 b(rueT) m(yp) s(e.) 37 b(Th) m(us,) 24 b(the) f(outline) h (obtained) p Fp 23 w(VF_GetOutline\(\)) p Ft 19 w(function) f(for) g(T) m(yp) s(e1) 0 3231 y(fon) m(t) 31 b(should) e(b) s(e) h(used) g(only) g (when) f(the) i(same) g(fon) m(t) g(in) f(other) g(fon) m(t) h(format) g (is) f(not) h(a) m(v) -5 b(ailable.) p Fm 0 3470 a(F) d(on) m(t) 32 b(class) f(name:) p Fp 40 w(type1) p Fm 0 3710 a(Capabilities) g(for) g (fon) m(t) g(class) f(default:) p Fp 0 3970 a(font-directories) p Ft 26 w(\(optional\)) 480 4079 y(|) j(A) g(list) h(of) f(directories) h (of) g(T) m(yp) s(e1) f(fon) m(t) g(\014les.) 49 b(This) 33 b(driv) m(er) g(supp) s(orts) e(fon) m(t) j(\014le) f(searc) m(h) h(b) m (y) 480 4189 y(kpathsea.) 41 b(T) -8 b(o) 31 b(searc) m(h) g(a) g(fon) m (t) g(\014le) f(b) m(y) g(kpathsea,) h(use) p Fp 31 w(TEXMF) p Ft 28 w(for) g(a) f(directory) h(name.) p Fp 0 4339 a(afm-directories) p Ft 26 w(\(optional\)) 480 4449 y(|) g(A) h(list) g(of) f(directories) h (of) g(AFM) g(\014les.) 44 b(Eac) m(h) 32 b(elemen) m(t) g(of) g(this) f (capabilit) m(y) i(should) e(not) g(b) s(e) 480 4558 y(a) f(directory) g(for) f(recursiv) m(e) h(searc) m(h) g(\(ending) g (b) m(y) p Fp 29 w(//) p Ft(\).) 40 b(This) 29 b(is) g(wh) m(y) g(AFM) i (\014les) e(are) h(searc) m(hed) 480 4668 y(b) m(y) 25 b(inside) h(of) f(T1Lib,) i(although) f(T) m(yp) s(e1) f(fon) m(t) h (\014les) f(are) h(searc) m(hed) g(b) m(y) g(a) g(\014le) f(searc) m(h) h(subsystem) 480 4777 y(of) 31 b(VFlib.) p Fp 0 4927 a(encoding-vector-director) o(ies) p Ft 24 w(\(optional\)) 480 5037 y(|) f(A) h(list) g(of) f(directories) i(of) e(enco) s(ding) g (\014les.) 41 b(Eac) m(h) 31 b(elemen) m(t) h(of) e(this) h(capabilit) m (y) h(should) d(not) 480 5147 y(b) s(e) e(a) i(directory) g(for) f (recursiv) m(e) g(searc) m(h) h(\(ending) f(b) m(y) p Fp 28 w(//) p Ft(\).) 40 b(This) 27 b(is) h(wh) m(y) g(enco) s(ding) g (v) m(ector) i(\014les) 480 5256 y(are) h(searc) m(hed) g(b) m(y) f (inside) g(of) h(T1Lib.) 480 5386 y(By) 155 b(default,) 186 b(directories) p Fp 156 w(/usr/local/share/VFlib/) p Fk -1 w(x.y) o(.z) p Fp 10 w(/t1l) o(ib/) p Ft 148 w(and) p Fp 480 5496 a(/usr/local/share/VFlib/s) o(ite/) o(t1li) o(b/) p Ft 37 w(are) 43 b(registered.) 80 b(Optional) 43 b(directories) h(can) 480 5605 y(b) s(e) 30 b(installed) h(b) m(y) f(this) g(capabilit) m(y) -8 b(.) 480 5735 y(T1Lib) 50 b(adopts) h(\014le) g(format) g(for) f (enco) s(ding) h(v) m(ector) h(\014le.) 102 b(When) 50 b(w) m(e) h(w) m(an) m(t) h(to) f(use) f(en-) 480 5845 y(co) s(ding) i(v) m(ector) i(\014les) d(supplied) g(b) m(y) p Fp 52 w(dvips) p Ft(,) 56 b(w) m(e) d(m) m(ust) e(con) m(v) m(ert) j (them) e(in) m(to) h(T1Lib) e(for-) 480 5954 y(mat.) 88 b(T) -8 b(o) 47 b(automate) h(this,) i(y) m(ou) c(can) g(use) g(a) h (Unix) f(Shell) f(script) p Fp 46 w(mkt1enc.sh) p Ft 44 w(whic) m(h) g(is) p dyy eop end %%Page: 44 45 TeXDict begin 44 44 bop Ft 0 -116 a(44) 3198 b(VFlib) 31 b(3.6.14) 480 365 y(in) p Fp 43 w(/usr/local/share/VFlib/) p Fk -1 w(x.y.) o(z) p Fp 11 w(/) o(t1l) o(ib/) p Ft 36 w(directory) -8 b(.) 80 b(Enco) s(ding) 42 b(v) m(ector) j(\014les) e (for) p Fp 480 475 a(dvips) p Ft 27 w(are) 29 b(con) m(v) m(erted) h (in) m(to) f(T1Lib) g(format) f(and) g(they) h(are) g(also) g (installed) h(in) e(this) g(directory) -8 b(.) p Fp 0 622 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 732 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 841 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 951 a(dpi-x) p Ft 29 w(\(optional\)) p Fp 0 1061 a(dpi-y) p Ft 29 w(\(optional\)) p Fp 0 1170 a(aspect-ratio) p Ft 27 w(\(optional\)) p Fp 0 1280 a(log-level) p Ft 28 w(\(optional\)) 480 1389 y(|) 33 b(Select) i(log\014le) f(output) f(t) m(yp) s(e) h(of) f(T1Lib.) 49 b(The) 33 b(\014lename) g(of) h(a) g (log\014le) g(is) f(`) p Fp(t1lib.log) p Ft('.) 48 b(If) 480 1499 y(this) 30 b(capabilit) m(y) i(is) f(not) f(giv) m(en,) i(the) f (log\014le) g(is) g(not) f(created.) p Fp 480 1646 a(error) p Ft 240 w(Only) g(error) g(messages) h(are) g(written) f(to) h(the) g (log\014le.) p Fp 480 1794 a(warning) p Ft 144 w(W) -8 b(arning) 31 b(messages) g(and) f(error) g(messages) h(are) g(written) g (to) g(the) f(log\014le.) p Fp 480 1941 a(statistics) p Ft 960 2051 a(Statistics) i(messages) f(and) f(ab) s(o) m(v) m(e) i (written) e(to) h(the) g(log\014le.) p Fp 480 2198 a(debug) p Ft 240 w(An) m(y) d(messages) h(useful) f(for) g(debugging) g(and) f (ab) s(o) m(v) m(e) j(are) e(written) h(to) g(the) f(log\014le.) p Fp 480 2345 a(none) p Ft 288 w(Nev) m(er) j(use) f(a) h(log\014le.) 480 2493 y(See) g(users) e(man) m(ual) i(of) f(T1Lib) g(for) h(detail.) p Fp 0 2640 a(properties) p Ft 28 w(\(optional\)) p Fp 0 2750 a(variable-values) p Ft 26 w(\(optional\)) p Fm 0 3116 a(Capabilities) g(for) g(fon) m(t) g(de\014nition:) p Fp 0 3373 a(font-class) p Ft 28 w(\(essen) m(tial\)) 480 3483 y(This) f(v) -5 b(alue) 30 b(m) m(ust) h(b) s(e) p Fp 29 w(") p Ft(t) m(yp) s(e1) p Fp(") p Ft(.) p Fp 0 3630 a(font-file) p Ft 28 w(\(optional\)) 480 3740 y(A) h(list) h(of) f (fon) m(t) h(\014le) f(names.) 46 b(F) -8 b(on) m(t) 34 b(\014le) e(is) g(searc) m(hed) h(in) f(the) g(listed) h(order) e(un) m (til) i(existing) g(fon) m(t) 480 3849 y(\014les) d(is) h(found.) 480 3978 y(example:) p Fp 41 w(\(font-file) d("AvantGarde-Book") e ("a0100131.pfb"\)) p Ft 480 4106 a(By) 45 b(this) g(example,) k(`) p Fp(AvantGarde-Book) p Ft(') 41 b(is) k(seac) m(hed) h(\014rst.) 84 b(If) 44 b(it) h(exists,) 50 b(it) 45 b(is) g(op) s(ened.) 480 4216 y(Otherwise,) 32 b(`) p Fp(a0100131.pfb) p Ft(') d(is) i(seac) m (hed) i(next.) 45 b(If) 31 b(it) h(exists,) h(it) f(is) g(op) s(ened.) 44 b(If) 31 b(it) h(do) s(es) f(not) 480 4326 y(exist) g(either,) g (fon) m(t) g(op) s(en) f(fails.) p Fp 0 4473 a(encoding-vector) p Ft 26 w(\(optional\)) 480 4583 y(A) 39 b(\014le) h(name) f(for) g(enco) s(ding) h(v) m(ector.) 69 b(This) 38 b(\014le) i(m) m(ust) f(b) s(e) g (reside) g(in) g(a) h(directo) m(y) h(listed) f(b) m(y) p Fp 480 4692 a(encoding-vector-director) o(ies) p Ft 24 w(capabilit) m(y) 32 b(for) e(t) m(yp) s(e1) h(fon) m(t) g(class) g (default.) p Fp 0 4840 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 4949 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 5059 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 5168 a(dpi-x) p Ft 29 w(\(optional\)) p Fp 0 5278 a(dpi-y) p Ft 29 w(\(optional\)) p Fp 0 5387 a(magnification) p Ft 27 w(\(optional\)) p Fp 0 5497 a(aspect-ratio) p Ft 27 w(\(optional\)) p Fp 0 5607 a(slant-factor) p Ft 27 w(\(optional\)) 480 5716 y(|) 36 b(Slan) m(t) h(factor) g(of) g(a) g(fon) m(t.) 59 b(This) 35 b(v) -5 b(alue) 37 b(is) g(tan\() p Fj(th) p Ft(\),) i(where) p Fj 35 w(th) p Ft 37 w(is) d(slan) m(t) h(angle) g (of) g(a) g(fon) m(t.) 480 5826 y(Default) 31 b(v) -5 b(alue) 31 b(is) g(0,) g(in) f(case) h(of) p Fj 31 w(th) p Ft 30 w(is) f(90) i(degree.) 480 5954 y(example:) p Fp 41 w(\(slant-factor) 27 b(0.2\)) p dyy eop end %%Page: 45 46 TeXDict begin 45 45 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(45) p Fp 0 365 a(properties) p Ft 28 w(\(optional\)) p Fs 0 652 a(6.15) 68 b(Zeit) 46 b(fon) l(t) g(class) p Ft 125 924 a(This) 39 b(fon) m(t) i(class) g(supp) s(orts) p Fp 39 w(") p Fl(Syotai) i(Kurubu) p Fp(") p Ft 39 w(format;) j(it) 41 b(is) g(a) f(v) m(ector) i(fon) m(t) f(format) g(for) f(Japanese) 0 1033 y(Kanji) 30 b(c) m(haracters.) 125 1195 y(Sev) m(eral) h(free) f (Japanese) h(fon) m(ts) g(in) f(this) g(\014le) h(format) f(are) h(a) m (v) -5 b(ailable.) p Fq 75 1357 a(\017) p Ft 60 w(Umeda) 31 b(v) m(ector) h(fon) m(ts) p Fq 229 1505 a(\000) p Fp 60 w(ftp://ftp.web.ad.jp/pub/) o(TeX/) o(akiu) o(/fo) o(nts/) o(umed) o (a-v) o(ecto) o(r/mi) o(nch) o(o.vf) o(1.gz) p Fq 229 1654 a(\000) p Fp 60 w(ftp://ftp.web.ad.jp/pub/) o(TeX/) o(akiu) o(/fo) o(nts/) o(umed) o(a-v) o(ecto) o(r/mi) o(nch) o(o.vf) o(2.gz) p Fq 229 1802 a(\000) p Fp 60 w(ftp://ftp.eos.hokudai.ac) o(.jp/) o(pub/) o(TeX) o(/fon) o(ts/u) o(med) o(a-ve) o(ctor) o(-) 360 1911 y(font/mincho.vf1.gz) p Fq 229 2059 a(\000) p Fp 60 w(ftp://ftp.eos.hokudai.ac) o(.jp/) o(pub/) o(TeX) o(/fon) o(ts/u) o (med) o(a-ve) o(ctor) o(-) 360 2169 y(font/mincho.vf2.gz) p Fq 75 2614 a(\017) p Ft 60 w(W) -8 b(atanab) s(e) 32 b(v) m(ector) g(fon) m(ts) p Fq 229 2762 a(\000) p Fp 60 w(ftp://ftp.web.ad.jp/pub/) o(TeX/) o(akiu) o(/fo) o(nts/) o(wata) o (nab) o(e-ve) o(ctor) o(/mi) o(ncho) o(.vf1) o(.gz) p Fq 229 2910 a(\000) p Fp 60 w(ftp://ftp.web.ad.jp/pub/) o(TeX/) o(akiu) o(/fo) o(nts/) o(wata) o(nab) o(e-ve) o(ctor) o(/mi) o(ncho) o(.vf2) o (.gz) p Fq 229 3058 a(\000) p Fp 60 w(ftp://ftp.eos.hokudai.ac) o(.jp/) o(pub/) o(TeX) o(/fon) o(ts/w) o(ata) o(nabe) o(-vec) o(tor) o(-) 360 3168 y(font/mincho.vf1.gz) p Fq 229 3316 a(\000) p Fp 60 w(ftp://ftp.eos.hokudai.ac) o(.jp/) o(pub/) o(TeX) o(/fon) o(ts/w) o (ata) o(nabe) o(-vec) o(tor) o(-) 360 3425 y(font/mincho.vf2.gz) p Fq 75 3870 a(\017) p Ft 60 w(W) -8 b(adalab) 32 b(fon) m(ts) p Fq 229 4018 a(\000) p Fp 60 w(ftp://ftp.web.ad.jp/pub/) o(TeX/) o(akiu) o(/fo) o(nts/) o(wada) o(lab) o(-vec) o(tor/) p Fq 229 4166 a(\000) p Fp 60 w(ftp://ftp.eos.hokudai.ac) o(.jp/) o(pub/) o(TeX) o(/fon) o(ts/w) o(ada) o(lab-) o(vect) o(or-) o(font) o(/) p Fq 229 4314 a(\000) p Ft 60 w(See) 44 b(also) p Fp 44 w(ftp://ftp.ipl.t.u-tokyo) o(.ac.) o(jp/F) o(ont) o(/) p Ft 37 w(for) f(F) -8 b(ree) 45 b(Japanese) e(Kanji) g(fon) m(ts) h(in) 360 4424 y(T) m(yp) s(e) 30 b(1) h(formats.) 125 4624 y(This) e(fon) m(t) i(class) g(do) s(es) f(not) h(supp) s(ort) d (compressed) i(fon) m(t) h(\014les) g(nor) f(implicit) h(fon) m(ts.) p Fm 0 4896 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(zeit) p Fm 0 5167 a(Capabilities) g(for) g(fon) m(t) g(class) f (default:) p Fp 0 5477 a(font-directories) p Ft 26 w(\(optional\)) p Fp 0 5587 a(filename-extensions) p Ft 25 w(\(optional\)) 480 5697 y(|) j(Tw) m(o) h(\014le) g(\014les) g(form) f(a) h(fon) m(t) g (for) f(this) h(fon) m(t) g(class,) h(e.g.,) p Fp 36 w(mincho.vf1) p Ft 31 w(and) p Fp 33 w(mincho.vf2) p Ft(.) 480 5806 y(Extension) 30 b(candidates) h(without) g(digit) g(m) m (ust) f(b) s(e) g(the) h(v) -5 b(alue) 30 b(for) h(this) f(capabilit) m (y) -8 b(.) 480 5954 y(example:) p Fp 41 w(\(filename-extensions) 25 b(".vf") k(".VF"\)) p dyy eop end %%Page: 46 47 TeXDict begin 46 46 bop Ft 0 -116 a(46) 3198 b(VFlib) 31 b(3.6.14) p Fp 0 365 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 475 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 584 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 694 a(dpi-x) p Ft 29 w(\(optional\)) p Fp 0 804 a(dpi-y) p Ft 29 w(\(optional\)) p Fp 0 913 a(aspect-ratio) p Ft 27 w(\(optional\)) p Fp 0 1023 a(writing-direction) p Ft 26 w(\(optional\)) 480 1132 y(|) 25 b(Default) g(writing) g(direction.) p Fp 40 w(Horizontal) p Ft 21 w(or) p Fp 25 w(vertical) p Ft(;) g(default) g(is) p Fp 24 w(Horizontal) p Ft(.) 36 b(This) 480 1242 y(is) 48 b(the) g(same) h(as) p Fp 48 w(\(vector-to-bbx-upper-lef) o(t) 24 b(0.0) 30 b(0.86\)) p Ft 46 w(and) p Fp 48 w(\(vector-to-next-) 480 1352 y(ref-point) e(1.0) h (0.0\)) p Ft 43 w(if) 45 b(v) -5 b(alue) 44 b(of) h(this) f(capabilit) m (y) i(is) p Fp 44 w(") p Ft(horizon) m(tal) p Fp(") p Ft(.) 84 b(Otherwise,) 48 b(it) c(is) 480 1461 y(the) 32 b(same) g(as) p Fp 32 w(\(vector-to-bbx-upper-le) o(ft) 24 b(-0.5) 29 b(0.0\)) p Ft 31 w(and) p Fp 31 w(\(vector-to-next-ref-) 480 1571 y(point) g(0.0) g(-1.0\)) p Ft(.) p Fp 0 1752 a (vector-to-bbx-upper-left) p Ft 24 w(\(optional\)) 480 1861 y(|) 37 b(Default) i(v) -5 b(alue) 38 b(of) g(a) f(v) m(ector) i (from) e(the) h(reference) g(p) s(oin) m(t) g(of) f(a) h(c) m(haracter) h(to) f(upp) s(er-left) 480 1971 y(b) s(ounding) 29 b(b) s(o) m(x.) 40 b(Righ) m(t) 31 b(and) f(up) f(are) i(p) s(ositiv) m(e) h(directions.) 480 2116 y(example:) p Fp 41 w(\(vector-to-bbx-upper-left) 24 b(0) 30 b(0.86\)) 0 2297 y(vector-to-next-ref-point) p Ft 24 w(\(optional\)) 480 2406 y(|) g(Default) i(v) -5 b(alue) 31 b(of) f(a) h(v) m(ector) h(from) e(the) g(reference) h(p) s (oin) m(t) f(to) i(next) e(reference) h(p) s(oin) m(t.) 480 2552 y(example:) p Fp 41 w(\(vector-to-next-ref-point) 24 b(1.0) 29 b(0.0\)) 0 2732 y(properties) p Ft 28 w(\(optional\)) p Fp 0 2842 a(variable-values) p Ft 26 w(\(optional\)) p Fm 0 3263 a(Capabilities) i(for) g(fon) m(t) g(de\014nition:) p Fp 0 3455 a(font-class) p Ft 28 w(\(essen) m(tial\)) 480 3565 y(|) f(A) h(fon) m(t) g(class) g(name.) p Fp 0 3745 a(font-name) p Ft 28 w(\(optional\)) 480 3855 y(|) 36 b(F) -8 b(on) m(t) 38 b(\014le) e(name) g(without) h(extensions.) 58 b(T) -8 b(ogether) 38 b(with) e(v) -5 b(ale) 37 b(and) e(extension) i (giv) m(en) h(b) m(y) 480 3965 y(default) j(description,) j(fon) m(t) e (\014le) f(names) g(are) h(formed.) 72 b(F) -8 b(or) 42 b(example,) j(if) p Fp 41 w(mincho) p Ft 39 w(is) c(giv) m(en) 480 4074 y(for) 35 b(the) p Fp 36 w(font-name) p Ft 33 w(capabilit) m(y) j (and) p Fp 35 w(\(".vf"\)) p Ft 33 w(is) e(giv) m(en) h(for) e(the) p Fp 36 w(filename-extensions) p Ft 480 4184 a(capabilit) m(y) -8 b(,) 33 b(then) d(fon) m(t) h(\014les) p Fp 30 w(mincho.vf1) p Ft 28 w(and) p Fp 29 w(mincho.vf2) p Ft 28 w(are) g(used.) 480 4329 y(example:) p Fp 41 w(\(font-name) d("mincho"\)) 0 4510 y(point-size) p Ft 28 w(\(optional\)) p Fp 0 4619 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 4729 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 4838 a(dpi-x) p Ft 29 w(\(optional\)) p Fp 0 4948 a(dpi-y) p Ft 29 w(\(optional\)) p Fp 0 5058 a(magnification) p Ft 27 w(\(optional\)) p Fp 0 5167 a(aspect-ratio) p Ft 27 w(\(optional\)) p Fp 0 5277 a (writing-direction) p Ft 26 w(\(optional\)) p Fp 0 5386 a(vector-to-bbx-upper-left) p Ft 24 w(\(optional\)) 480 5496 y(example:) p Fp 41 w(\(vector-to-bbx-upper-left) c(0) 30 b(0.86\)) 0 5677 y(vector-to-next-ref-point) p Ft 24 w(\(optional\)) 480 5786 y(example:) p Fp 41 w (\(vector-to-next-ref-point) 24 b(1.0) 29 b(0.0\)) 0 5967 y(properties) p Ft 28 w(\(optional\)) p dyy eop end %%Page: 47 48 TeXDict begin 47 47 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(47) p Fs 0 365 a(6.16) 68 b(JG) 45 b(fon) l(t) h(class) p Ft 125 610 a(JG) 25 b(fon) m(t) i(format) f(is) g(a) g(v) m(ector) i(fon) m (t) e(format) h(for) e(Japanese) i(c) m(haracter) g(sets) f(JIS) f(X) h (0208.) 41 b(JG) 26 b(fon) m(t) h(driv) m(er) 0 720 y(is) j(based) g (on) h(the) f(w) m(ork) h(b) m(y) f(Hideo) h(Morishita.) p Fm 0 965 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(jg) p Fm 0 1210 a(Capabilities) g(for) g(fon) m(t) g(class) f (default:) p Fp 0 1481 a(filename-extensions) p Ft 25 w(\(optional\)) 480 1590 y(|) 38 b(Three) g(\014les) g(form) g(a) g (fon) m(t) h(for) f(this) g(fon) m(t) h(class,) i(e.g.,) p Fp 42 w(mincho.fn0) p Ft(,) p Fp 37 w(mincho.fn1) p Ft(,) d(and) p Fp 480 1700 a(mincho.fn2) p Ft(.) 53 b(Extension) 35 b(candidates) h(without) f(digit) h(m) m(ust) f(b) s(e) g(the) g(v) -5 b(alue) 36 b(for) f(this) g(capa-) 480 1810 y(bilit) m(y) -8 b(.) 480 1945 y(example:) p Fp 41 w(\(filename-extensions) 25 b(".fn") k(".FN"\)) p Ft 125 2105 a(\(Other) h(capabilities) i(are) f (the) f(same) h(as) p Fp 31 w(zeit) p Ft 29 w(fon) m(t) g(class.\)) p Fm 125 2241 a(Capabilit) m(y) g(for) f(fon) m(t) h(de\014nition:) p Ft 125 2377 a(Capabilities) g(are) g(the) f(same) h(as) p Fp 31 w(zeit) p Ft 29 w(fon) m(t) g(class.) p Fs 0 2636 a(6.17) 68 b(eKanji) 46 b(fon) l(t) g(class) p Ft 125 2882 a(The) 38 b(eKanji) h(fon) m(t) g(format) g(is) g(a) g(bitmap) f (fon) m(t) h(format) h(for) e(Kanji) g(c) m(haracters.) 68 b(The) 38 b(\014rst) g(c) m(haracter) 0 2991 y(in) g(an) g(eKanji) g (fon) m(t) g(\014le) h(has) e(co) s(de) i(p) s(oin) m(t) f(1,) i(and) e (the) g(second) g(c) m(haracter) i(has) e(co) s(de) g(p) s(oin) m(t) g (2.) 64 b(That) 38 b(is,) 0 3101 y(c) m(haracters) 31 b(in) f(an) g(eKanji) g(fon) m(t) g(are) h(n) m(um) m(b) s(ered) d (sequen) m(tially) k(starting) f(from) e(1.) 41 b(\(This) 30 b(enco) s(ding) g(sc) m(heme) 0 3210 y(can) h(b) s(e) e(c) m(hanged) i (b) m(y) g(setting) g(some) g(capabilities.\)) 125 3346 y(eKanji) 67 b(fon) m(t) h(\014les) f(are) h(distributed) f(at) h(the) g (follo) m(wing) h(URL:) p Fp 67 w(http://www.zinbun.kyoto-) 0 3455 y(u.ac.jp/~ekanji/) p Ft 26 w(The) 30 b(distribution) g(pac) m(k) -5 b(age) 32 b(con) m(tains) f(the) g(follo) m(wing) h(fon) m(t) f (\014les.) p Fq 75 3591 a(\017) p Ft 60 w(Unico) s(de) g(\(`) p Fp(ekan0010.d24) p Ft('\)) p Fq 75 3726 a(\017) p Ft 60 w(Ky) m(oto) h(Univ) m(ersit) m(y) f(KangXi) g(\(`) p Fp(ekan0020.d24) p Ft('\)) p Fq 75 3861 a(\017) p Ft 60 w(Morohashi) g(DaiKan) m(w) m(a) h(\(`) p Fp(ekan0030.d24) p Ft('\)) p Fq 75 3996 a(\017) p Ft 60 w(JIS) d(X) i(0208) h(\(`) p Fp(jisx9052.d24) p Ft('\)) p Fm 0 4157 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(ekanji) p Fm 0 4292 a(Capabilities) g(for) g (fon) m(t) g(class) f(default:) p Fp 0 4453 a(font-directories) p Ft 26 w(\(optional\)) p Fp 0 4563 a(font-dot-size) p Ft 27 w(\(optional\)) 480 4673 y(|) g(Dot) i(size) f(of) g(c) m (haracters) g(in) f(the) h(fon) m(t) g(\014le.) 41 b(Default) 31 b(v) -5 b(alue) 31 b(is) f(24.) 480 4808 y(example:) p Fp 41 w(\(font-dot-size) d(24\)) 0 4968 y(point-size) p Ft 28 w(\(optional\)) p Fp 0 5078 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 5187 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 5297 a(dpi-x) p Ft 29 w(\(optional\)) p Fp 0 5406 a(dpi-y) p Ft 29 w(\(optional\)) p Fp 0 5516 a(aspect-ratio) p Ft 27 w(\(optional\)) p Fp 0 5626 a(writing-direction) p Ft 26 w(\(optional\)) 480 5735 y(|) e(Default) g(writing) g(direction.) p Fp 40 w(Horizontal) p Ft 21 w(or) p Fp 25 w(vertical) p Ft(;) g(default) g(is) p Fp 24 w(Horizontal) p Ft(.) 36 b(This) 480 5845 y(is) 48 b(the) g(same) h(as) p Fp 48 w(\(vector-to-bbx-upper-lef) o(t) 24 b(0.0) 30 b(0.92\)) p Ft 46 w(and) p Fp 48 w(\(vector-to-next-) 480 5954 y(ref-point) e(1.0) h (0.0\)) p Ft 42 w(if) 43 b(v) -5 b(alue) 43 b(of) g(this) g(capabilit) m (y) h(is) p Fp 43 w(") p Ft(Horizon) m(tal) p Fp(") p Ft(.) 80 b(Otherwise,) 46 b(it) d(is) p dyy eop end %%Page: 48 49 TeXDict begin 48 48 bop Ft 0 -116 a(48) 3198 b(VFlib) 31 b(3.6.14) 480 365 y(the) h(same) g(as) p Fp 32 w (\(vector-to-bbx-upper-le) o(ft) 24 b(-0.5) 29 b(0.0\)) p Ft 31 w(and) p Fp 31 w(\(vector-to-next-ref-) 480 475 y(point) g(0.0) g(-1.0\)) p Ft(.) p Fp 0 623 a (vector-to-bbx-upper-left) p Ft 24 w(\(optional\)) 480 732 y(|) 37 b(Default) i(v) -5 b(alue) 38 b(of) g(a) f(v) m(ector) i (from) e(the) h(reference) g(p) s(oin) m(t) g(of) f(a) h(c) m(haracter) h(to) f(upp) s(er-left) 480 842 y(b) s(ounding) 29 b(b) s(o) m(x.) 40 b(Righ) m(t) 31 b(and) f(up) f(are) i(p) s(ositiv) m(e) h(directions.) 480 970 y(example:) p Fp 41 w(\(vector-to-bbx-upper-left) 24 b(0) 30 b(0.90\)) 0 1118 y(vector-to-next-ref-point) p Ft 24 w(\(optional\)) 480 1228 y(|) g(Default) i(v) -5 b(alue) 31 b(of) f(a) h(v) m(ector) h(from) e(the) g(reference) h(p) s (oin) m(t) f(to) i(next) e(reference) h(p) s(oin) m(t.) 480 1356 y(example:) p Fp 41 w(\(vector-to-next-ref-point) 24 b(1.0) 29 b(0.0\)) 0 1504 y(properties) p Ft 28 w(\(optional\)) p Fp 0 1614 a(variable-values) p Ft 26 w(\(optional\)) p Fm 125 1981 a(Capabilit) m(y) i(for) f(fon) m(t) h(de\014nition:) p Fp 0 2128 a(font-class) p Ft 28 w(\(essen) m(tial\)) 480 2238 y(|) f(A) h(fon) m(t) g(class) g(name.) p Fp 0 2386 a(font-name) p Ft 28 w(\(optional\)) 480 2495 y(|) f(F) -8 b(on) m(t) 32 b(\014le) f(name) f(with) g(extension.) p Fp 0 2643 a(font-dot-size) p Ft 27 w(\(optional\)) 480 2752 y(|) g(Dot) i(size) f(of) g(c) m(haracters) g(in) f(the) h(fon) m (t) g(\014le.) p Fp 0 2900 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 3010 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 3119 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 3229 a(dpi-x) p Ft 29 w(\(optional\)) p Fp 0 3338 a(dpi-y) p Ft 29 w(\(optional\)) p Fp 0 3448 a(magnification) p Ft 27 w(\(optional\)) p Fp 0 3558 a(aspect-ratio) p Ft 27 w(\(optional\)) p Fp 0 3667 a(character-set) p Ft 27 w(\(optional\)) p Fp 0 3777 a(encoding) p Ft 28 w(\(optional\)) p Fp 0 3886 a(font-character-set) p Ft 25 w(\(optional\)) p Fp 0 3996 a(font-encoding) p Ft 27 w(\(optional\)) 480 4106 y(|) 36 b(Select) h(co) s(de) f(con) m(v) m(ersion.) 58 b(If) 35 b(y) m(ou) i(w) m(an) m(t) f(to) h(access) g(a) f(eKanji) g (fon) m(t) g(b) m(y) g(ISO-2022) h(\(JIS\)) 480 4215 y(enco) s(ding) 26 b(sc) m(heme,) h(de\014ne) p Fp 25 w(eKanji) p Ft 24 w(for) p Fp 25 w(character-set) p Ft(,) p Fp 24 w(ISO2022) p Ft 23 w(for) p Fp 26 w(encoding) p Ft(,) p Fp 24 w(eKanji) p Ft 480 4325 a(for) p Fp 35 w(font-character-set) p Ft(,) k(and) p Fp 34 w(SEQUENTIAL2-1) p Ft 31 w(for) p Fp 35 w(encoding) p Ft(.) 52 b(Then) 34 b(the) h(\014rst) f(c) m(har-) 480 4434 y(acter) e(in) e(the) g(eKanji) h(fon) m(t) f(is) h(accessed) g(b) m(y) g(co) s(de) f(p) s(oin) m(t) h (0x2121.) p Fp 0 4582 a(mock-font-encoding) p Ft 25 w(\(optional\)) 480 4692 y(|) 41 b(By) g(this) g(capabilit) m(y) -8 b(,) 46 b(enco) s(ding) 41 b(of) h(an) e(eKanji) i(fon) m(t) f(\014le) g(is) g (virtually) h(c) m(hanged.) 73 b(This) 480 4801 y(capabilit) m(y) 38 b(requires) f(an) f(argumen) m(t) h(and) f(parameter.) 60 b(There) 36 b(are) h(three) g(k) m(eyw) m(ords) g(for) g(an) 480 4911 y(argumen) m(t:) p Fq 555 5040 a(\017) p Fp 60 w(raw) p Ft 29 w(No) 31 b(e\013ect,) i(i.e.,) e(fon) m(t) g(enco) s(ding) f(is) h (not) g(c) m(hanged.) p Fq 555 5168 a(\017) p Fp 60 w(subblocks-94x94) p Fj 20 w(B) p Ft 29 w(An) 23 b(eKanji) h(fon) m(t) g(\014le) g(is) g (virtually) g(divided) f(b) m(y) h(94x94) i(sub) c(blo) s(c) m(ks) 660 5278 y(\(blo) s(c) m(ks) 31 b(of) g(94x94) h(=) e(8836) i(c) m (haracters\)) h(and) d(selects) p Fj 31 w(B) p Ft(-th) h(blo) s(c) m(k) g(for) g(this) f(fon) m(t) h(de\014ni-) 660 5387 y(tion.) 43 b(This) 30 b(implies) h(that) h(an) f(eKanji) g(fon) m(t) g(\014le) g (with) g(this) g(capabilit) m(y) h(o\013ers) g(only) f(8836) 660 5497 y(\(=) g(94x94\)) j(c) m(haracters) e(among) g(all) g(the) g(c) m (haracters) g(of) g(an) f(eKanji) g(fon) m(t) h(\014le.) 43 b(The) 31 b(\014rst) 660 5607 y(sub) f(blo) s(c) m(k) j(is) e(n) m(um) m (b) s(ered) f(zero.) 46 b(\(A) 32 b(fon) m(t) g(with) p Fj 31 w(B) p Ft 38 w(=) f(0) h(for) f(this) h(capabilit) m(y) h (selects) g(the) 660 5716 y(\014rst) d(sub) f(blo) s(c) m(k.\)) 660 5845 y(Characters) 39 b(with) g(c) m(haracter) i(co) s(de) e(from) g (8836) p Fq 27 w(\003) p Fg 27 w(B) p Ft 30 w(+) 26 b(1) 40 b(to) f(8836) p Fq 28 w(\003) p Fg 27 w(B) p Ft 30 w(+) 26 b(8836) 41 b(in) e(an) 660 5954 y(eKanji) 30 b(fon) m(t) h(\014le) g (is) f(accessed) i(b) m(y) e(c) m(haracter) i(co) s(de) f(from) e (0x2121) k(to) e(0x7e7e.) p dyy eop end %%Page: 49 50 TeXDict begin 49 49 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(49) p Fq 555 365 a(\017) p Fp 60 w(subblocks-94x60) p Fj 41 w(B) p Ft 50 w(This) 45 b(is) g(similar) g(to) h(the) f(case) h(for) p Fp 45 w(subblocks-94x60) p Ft(.) 81 b(An) 660 475 y(eKanji) 41 b(fon) m(t) h(\014le) f(is) g(virtually) h(divided) e(b) m(y) h(94x60) i (sub) d(blo) s(c) m(ks) i(\(blo) s(c) m(ks) g(of) f(94x60) i(=) 660 584 y(5640) 37 b(c) m(haracters\)) h(and) d(selects) p Fj 37 w(B) p Ft(-th) h(blo) s(c) m(k) g(for) g(this) f(fon) m(t) h (de\014nition.) 57 b(The) 35 b(\014rst) g(sub) 660 694 y(blo) s(c) m(k) c(is) f(n) m(um) m(b) s(ered) f(zero.) 660 824 y(Characters) 39 b(with) g(c) m(haracter) i(co) s(de) e(from) g (5640) p Fq 27 w(\003) p Fg 27 w(B) p Ft 30 w(+) 26 b(1) 40 b(to) f(5640) p Fq 28 w(\003) p Fg 27 w(B) p Ft 30 w(+) 26 b(5640) 41 b(in) e(an) 660 934 y(eKanji) d(fon) m(t) g(\014le) g(is) g (accessed) h(b) m(y) f(c) m(haracter) h(co) s(de) f(from) g(0x3021) i (to) e(0x4e7e) i(\(\014rst) e(30) 660 1043 y(ro) m(ws\)) e(and) f(from) h(0x5021) h(to) g(0x6e7e) h(\(another) e(30) h(ro) m(ws\).) 51 b(\(This) 33 b(division) h(sc) m(heme) g(is) 660 1153 y(the) d(same) f(as) h(Mo) 5 b(jiky) m(o) 32 b(sc) m(heme.\)) p Fq 555 1283 a(\017) p Fp 60 w(with-offset) p Fj 33 w(OFFS) p Ft 41 w(An) j(o\013set) i(v) -5 b(alue) p Fj 36 w(OFFS) p Ft 41 w(is) 36 b(added) f(to) i(obtain) f(c) m(haracter) h(co) s(de) 660 1393 y(of) 51 b(a) h(c) m(haracter) g(in) f(an) g(eKanji) g(fon) m(t) h (\014le.) 103 b(When) p Fj 51 w(OFFS) p Ft 56 w(is) p Fp 51 w(-0x4dff) p Ft(,) 55 b(the) c(\014rst) 660 1502 y(c) m(haracter) g(in) e(an) g(eKanji) g(fon) m(t) h(\014le) f(is) g (accessed) h(b) m(y) g(co) s(de) f(n) m(um) m(b) s(er) f(0x4e00,) 56 b(since) 660 1612 y(0) p Fg(x) p Ft(4) p Fg(e) p Ft(00) 22 b(+) e(\() p Fq(\000) p Ft(0) p Fg(x) p Ft(4) p Fg(d) -15 b(f) 10 b(f) p Ft 10 w(\)) 26 b(=) e(1.) 480 1763 y(Theoretically) -8 b(,) 38 b(the) c(same) h(functionalit) m(y) h(sho) m(wn) e(ab) s(o) m (v) m(e) h(can) g(b) s(e) f(implemen) m(ted) g(within) g(the) 480 1873 y(CCV) 23 b(subsystem) f(framew) m(ork) h(Chapter) g(8) g([Co) s (de) g(con) m(v) m(ersion) i(system],) g(page) f(73,) i(the) d(eKanji) 480 1982 y(fon) m(t) 36 b(driv) m(er) f(de\014nes) f(this) i(capabilit) m(y) -8 b(,) 39 b(since) d(the) f(eKanji) h(fon) m(t) f(\014le) h (format) g(adopts) f(curious) 480 2092 y(c) m(haracter) 42 b(enco) s(ding) d(sc) m(heme) i(and) e(it) i(seems) f(to) h(b) s(e) e (simpler) g(and) h(cleaner) h(to) f(de\014ne) g(this) 480 2201 y(capabilit) m(y) -8 b(.) p Fp 0 2352 a(writing-direction) p Ft 26 w(\(optional\)) p Fp 0 2462 a(vector-to-bbx-upper-left) p Ft 24 w(\(optional\)) 480 2571 y(example:) p Fp 41 w (\(vector-to-bbx-upper-left) 24 b(0) 30 b(0.86\)) 0 2722 y(vector-to-next-ref-point) p Ft 24 w(\(optional\)) 480 2832 y(example:) p Fp 41 w(\(vector-to-next-ref-point) 24 b(1.0) 29 b(0.0\)) 0 2983 y(properties) p Ft 28 w(\(optional\)) p Fs 0 3207 a(6.18) 68 b(T) 378 3233 y(E) 449 3207 y(X) 44 b(default) i(and) f(T) 1379 3233 y(E) 1449 3207 y(X) g(fon) l(t) g (mapping) g(fon) l(t) h(class) p Ft 125 3446 a(This) 29 b(is) i(a) f(sp) s(ecial) h(fon) m(t) g(class) g(to) g(de\014ne) f (common) h(default) f(v) -5 b(alues) 31 b(of) f(T) 2663 3466 y(E) 2713 3446 y(X-related) i(fon) m(t) f(classes.) 125 3577 y(This) c(fon) m(t) i(class) g(has) f(a) h(feature) f(to) h(map) f (a) h(requested) f(fon) m(t) h(to) g(another) g(fon) m(t.) 40 b(Th) m(us,) 28 b(this) g(class) h(is) g(also) 0 3686 y(called) p Fp 38 w(") p Fl(T) 362 3706 y(E) 411 3686 y(X) 37 b(font) i(mapping) h(class) p Fp(") p Ft 37 w(or) p Fp 36 w(") p Fl(T) 1568 3706 y(E) 1617 3686 y(X) e(font) h(mapp) -5 b(er) p Fp(") p Ft(.) 60 b(T) 2388 3706 y(E) 2438 3686 y(X-related) 38 b(fon) m(t) f(classes) g(include) f(the) 0 3796 y(follo) m(wings:) 42 b(GF,) 31 b(PK,) f(TFM,) h(VF,) g(ASCI) s(I) e(Japanese) i(T) -8 b(eX.) 125 3926 y(This) 34 b(fon) m(t) i(class) g (supp) s(orts) e(only) h(implicit) i(fon) m(ts) f(and) f(explicit) h (fon) m(ts) g(is) g(not) f(supp) s(orted.) 54 b(Therefore,) 0 4036 y(the) 33 b(driv) m(er) f(name) g(of) h(this) f(fon) m(t) h(class) g(m) m(ust) f(b) s(e) g(giv) m(en) i(in) p Fp 32 w(extension-hints) p Ft 28 w(and/or) p Fp 32 w(implicit-font-) 0 4145 y(classes) p Ft 22 w(capabilities) 25 b(in) f(the) p Fp 23 w(VFlib) p Ft 23 w(default) f(description) h(if) g(y) m(ou) g(w) m(an) m(t) g(to) h (use) e(the) h(fon) m(t) g(mapping) f(feature) 0 4255 y(of) 31 b(this) f(class.) 125 4385 y(Mapp) s(ed) 35 b(fon) m(t) h(is) g(recursiv) m(ely) h(\(recursiv) m(ely\)) h (requested) e(to) h(op) s(en) e(and) g(an) m(y) i(op) s(erations) f (suc) m(h) g(as) g(ob-) 0 4495 y(taining) 31 b(bitmaps) f(on) g(the) h (requested) f(fon) m(t) h(are) g(applied) f(on) g(the) h(mapp) s(ed) e (fon) m(t.) p Fm 0 4735 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(TeX) p Fm 0 4974 a(Capabilities) g(for) g(fon) m(t) g(class) f (default:) p Fp 0 5235 a(dpi) p Ft 29 w(\(optional\)) 480 5344 y(|) g(Default) i(device) f(resolution) g(for) f(T) 1811 5364 y(E) 1861 5344 y(X-related) i(fon) m(ts.) p Fp 0 5495 a(tfm-directories) p Ft 26 w(\(optional\)) 480 5605 y(|) e(A) f(list) i(of) f(directories) h(of) f(TFM) g(\014les.) 40 b(Directories) 32 b(listed) e(b) m(y) g(this) f(capabilit) m(y) j(is) e (used) f(for) 480 5715 y(searc) m(hing) k(TFM) f(\014les.) 46 b(If) 32 b(a) g(directory) h(name) f(is) p Fp 32 w(TEXMF) p Ft(,) f(kpathsea) i(is) f(in) m(v) m(ok) m(ed) i(to) e(searc) m(h) h(a) 480 5824 y(\014le.) 480 5954 y(example:) p Fp 41 w(\(tfm-directories) 26 b("TEXMF") j("/usr/local/share/font/) o(tfm/) o(/"\)) p dyy eop end %%Page: 50 51 TeXDict begin 50 50 bop Ft 0 -116 a(50) 3198 b(VFlib) 31 b(3.6.14) p Fp 0 365 a(tfm-filename-extensions) p Ft 24 w(\(optional\)) 480 475 y(|) f(A) g(list) g(of) g(extensions) g(of) g (\014lenames) g(for) g(TFM) g(\014les.) 40 b(This) 29 b(is) h(used) f(to) i(construct) f(a) g(TFM) 480 584 y(\014le) g(name,) h(e.g.,) p Fp 32 w(") p Ft(cmr10.tfm) p Fp(") p Ft 31 w(for) f(a) h(fon) m(t) p Fp 30 w(") p Ft(cmr10) p Fp(") p Ft(.) 480 720 y(example:) p Fp 41 w(\(tfm-filename-extensions) 24 b("tfm"\)) 0 882 y(font-mapping) p Ft 27 w(\(optional\)) 480 992 y(|) 29 b(F) -8 b(on) m(t) 31 b(mapping) d(rules) h(are) h(describ) s(ed) e(in) h(this) g(capabilit) m (y) -8 b(.) 42 b(When) 29 b(a) h(fon) m(t) f(is) h(requested) f(to) 480 1101 y(op) s(en) h(\(as) h(an) f(implicit) i(fon) m(t\),) g(the) e(fon) m(t) h(name) g(is) g(mapp) s(ed) e(to) i(another) g(name) f(and) g(sp) s (eci\014ed) 480 1211 y(fon) m(t) h(driv) m(er) f(is) g(requested) h(to) g(op) s(en) f(the) g(mapp) s(ed) f(fon) m(t.) 480 1346 y(Syn) m(tax) i(of) f(this) g(capabilit) m(y) j(is) d(as) h(follo) m (ws:) p Fp 720 1482 a(\(font-mapping) 815 1592 y(\(\() p Fk(DRIVER-NAME) 55 b(MAPPING-FORMAT) g(FONT-OPEN-OPTIONS) p Fp 11 w(\)) 42 b(...) p Fk 863 1701 a(FONT-NAME) 56 b(FONT-NAME) p Fp 56 w(...\)) 815 1811 y(\(\() p Fk(DRIVER-NAME) f(MAPPING-FORMAT) g (FONT-OPEN-OPTIONS) p Fp 11 w(\)) 42 b(...) p Fk 863 1920 a(FONT-NAME) 56 b(FONT-NAME) p Fp 56 w(...\)) 815 2030 y(...\)) p Ft 480 2166 a(Th) m(us,) 47 b(v) -5 b(alue) 44 b(for) g(this) g(capabilit) m(y) i(is) e(a) g(sequence) h(of) f(items) p Fp 44 w(\(\() p Fk(DRIVER-NAME) 38 b(MAPPING-) 480 2275 y(FORMAT) h(FONT-OPEN-OPTIONS) p Fp 11 w(\)) 25 b(...) p Fk 30 w(FONT-NAME) 38 b(FONT-NAME) p Fp 38 w(...\)) p Ft(,) 48 b(and) c(this) h(forms) f(a) 480 2385 y(mapping) g(rule.) p Fj 84 w(F) m(ONT-NAME) p Ft 52 w(is) g(a) i(fon) m(t) f(name) g(and) f (this) h(rule) g(applies) g(if) g(requested) 480 2494 y(fon) m(t) 27 b(name) g(matc) m(hes) p Fj 28 w(F) m(ONT-NAME) p Ft(.) h(\() p Fj(F) m(ONT-NAME) p Ft 34 w(is) f(a) g(name) g(without) g (directory) g(and) 480 2604 y(extension) 37 b(parts.) 58 b(A) 37 b(fon) m(t) f(name) h(requested) f(to) h(op) s(en) f(is) g (compared) g(with) p Fj 36 w(F) m(ONT-NAME) p Ft 480 2714 a(b) m(y) d(deleting) h(directory) g(and) f(extension) h(parts.\)) 49 b(If) p Fj 33 w(F) m(ONT-NAME) p Ft 39 w(con) m(tains) p Fp 35 w(*) p Ft 33 w(c) m(haracter,) 480 2823 y(it) 39 b(matc) m(hes) h(to) g(the) f(rest) g(of) g(requested) f(fon) m(t) i (name.) 66 b(F) -8 b(or) 39 b(example,) p Fp 42 w(cm*) p Ft 38 w(matc) m(hes) p Fp 40 w(cmr10) p Ft 480 2933 a(and) p Fp 31 w(cmbx10) p Ft(.) j(Th) m(us,) 31 b(in) g(case) p Fj 32 w(F) m(ONT-NAME) p Ft 38 w(is) p Fp 32 w(*) p Ft(,) g(all) i(fon) m(ts) e(matc) m(hes) i(and) e(th) m(us) g(all) h(fon) m(ts) 480 3042 y(applies) f(the) f(rule.) 480 3178 y(The) 51 b(fon) m(t) g(name) h (is) f(mapp) s(ed) f(according) i(to) g(the) f(format) p Fj 51 w(MAPPING-F) m(ORMA) -8 b(T) p Ft 60 w(and) 480 3288 y(mapp) s(ed) 26 b(name) h(is) g(op) s(ened) f(b) m(y) h(calling) i (a) f(fon) m(t) f(driv) m(er) p Fj 27 w(DRIVER-NAME) p Ft(.) p Fp 28 w(VF_OpenFont1\(\)) p Ft 480 3397 a(and) p Fp 29 w(VF_OpenFont2\(\)) p Ft 26 w(are) j(not) g(used.) 40 b(\(As) 30 b(a) g(sp) s(ecial) h(case,) g(when) p Fj 29 w(DRIVER-NAME) p Ft 36 w(is) p Fp 30 w(*) p Ft(,) p Fp 480 3507 a(VF_OpenFont1\(\)) p Ft 26 w(or) p Fp 31 w(VF_OpenFont2\(\)) p Ft 26 w(is) g(used) e(to) i(op) s(en) f(a) h (mapp) s(ed) e(fon) m(t.\)) 480 3643 y(The) d(syn) m(tax) h(of) p Fj 27 w(MAPPING-F) m(ORMA) -8 b(T) p Ft 35 w(is) 26 b(similar) h(to) g (a) g(format) g(string) f(of) p Fp 27 w(printf\(\)) p Ft 24 w(func-) 480 3752 y(tion) j(in) f(C) h(library) -8 b(,) 29 b(but) f(con) m(v) m(ersion) h(c) m(haracters) i(and) c(seman) m (tics) j(are) f(di\013eren) m(t.) 41 b(Con) m(v) m(ersion) 480 3862 y(sp) s(eci\014cation) h(is) f(in) m(tro) s(duced) f(b) m(y) p Fp 41 w(\045) p Ft 41 w(c) m(haracter.) 74 b(Non-con) m(v) m(ersion) 42 b(c) m(haracters) h(are) e(simply) 480 3971 y(copied) 31 b(and) f(con) m(v) m(ersion) h(sp) s(eci\014cations) g(are) g (substituted) f(for) g(the) h(follo) m(wing:) p Fp 480 4133 a(\045\045) 384 b(\045) p Ft 30 w(c) m(haracter) p Fp 480 4295 a(\045f) p Ft 384 w(the) 31 b(requested) f(fon) m(t) h (name) f(without) h(extension) g(and) e(directory) i(parts.) p Fp 480 4457 a(\045d) p Ft 384 w(fon) m(t) g(\014le) f(resolution) h (part) g(in) f(the) g(extension) h(of) g(the) f(requested) h(fon) m(t) f (name) p Fp 480 4618 a(\045e) p Ft 384 w(\014le) g(format) h(part) f (in) g(the) h(extension) g(of) g(the) f(requested) g(fon) m(t) h(name) 480 4780 y(F) -8 b(or) 31 b(instance,) f(let) p Fp 31 w(/foo/bar/qwe.300pk) p Ft 25 w(is) g(the) g(requested) f(fon) m(t) i (name.) 40 b(Then) p Fp 29 w(\045f) p Ft 29 w(is) p Fp 30 w(qwe) p Ft(,) p Fp 480 4890 a(\045d) p Ft 23 w(is) p Fp 23 w(300) p Ft(,) 24 b(and) p Fp 22 w(\045e) p Ft 23 w(is) p Fp 23 w(pk) p Ft(.) 38 b(A) 23 b(con) m(v) m(ersion) i(sp) s (eci\014cation) f(will) f(b) s(e) g(n) m(ull) g(string) g(if) g (corresp) s(onding) 480 4999 y(substring) 29 b(do) s(es) h(not) h (exist.) 480 5135 y(In) h(general,) j(mapp) s(ed) c(fon) m(ts) j(are) f (op) s(ened) f(with) h(the) g(same) g(parameters) g(\(device) i (resolution,) 480 5245 y(magni\014cation) j(factors,) i(p) s(oin) m(t) d (or) g(pixel) g(size\)) h(of) f(the) g(requested) g(fon) m(t.) 61 b(Suc) m(h) 36 b(parameters) 480 5354 y(can) d(b) s(e) g(c) m(hanged) g (b) m(y) g(optional) p Fj 34 w(F) m(ONT-OPEN-OPTIONS) p Ft 38 w(part.) 48 b(F) -8 b(ollo) m(wing) 36 b(descriptions) 480 5464 y(can) 31 b(b) s(e) e(used) h(for) p Fj 30 w(F) m (ONT-OPEN-OPTIONS) p Ft 5 w(:) 480 5599 y(W) -8 b(e) 36 b(can) f(sp) s(ecify) f(m) m(ultiple) p Fp 35 w(\() p Fk(DRIVER-NAME) k(MAPPING-FORMAT) f(FONT-OPEN-OPTIONS) p Fp 11 w(\)) p Ft 29 w(in) 480 5709 y(a) 30 b(rule) g(description.) 41 b(This) 29 b(is) h(useful) f(if) h(w) m(e) h(need) f(to) g(write) h(m) m (ultiple) f(mapping) g(rules) f(for) h(the) 480 5819 y(same) h(set) g(of) f(fon) m(ts.) 480 5954 y(A) g(fon) m(t) h(is) g (op) s(ened) e(b) m(y) i(the) f(follo) m(wing) i(w) m(a) m(y) -8 b(.) p dyy eop end %%Page: 51 52 TeXDict begin 51 51 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(51) 529 365 y(1.) 61 b(F) -8 b(or) 37 b(eac) m(h) g(rule) f(\(from) g(the) g (\014rst) g(one) g(to) h(the) f(last) h(one\),) h(the) f(requested) f (fon) m(t) g(name) g(is) 660 475 y(c) m(hec) m(k) m(ed) h(if) f(the) f (rule) h(applies) f(to) h(the) g(fon) m(t.) 57 b(If) 35 b(the) g(rule) g(do) s(es) h(not) f(apply) -8 b(,) 37 b(c) m(hec) m(k) g(next) 660 584 y(rule.) 529 743 y(2.) 61 b(F) -8 b(or) 41 b(eac) m(h) g(\() p Fj(DRIVER-NAME) 46 b(MAPPING-F) m(ORMA) -8 b(T) 49 b(F) m(ONT-OPEN-OPTIONS) p Ft 5 w(\)) 660 852 y(in) 41 b(the) g(rule,) j(the) d(requested) h(fon) m (t) f(is) g(mapp) s(ed) f(and) h(fon) m(t) g(op) s(en) g(is) g (attempted.) 74 b(If) 41 b(a) 660 962 y(mapp) s(ed) g(fon) m(t) i(is) g (is) g(successfully) g(op) s(ened,) i(it) e(is) g(used) f(as) h(a) g (requested) f(fon) m(t.) 79 b(Oth-) 660 1072 y(erwise,) 29 b(next) g(mapping) e(\() p Fj(DRIVER-NAME) 35 b(MAPPING-F) m(ORMA) -8 b(T) 37 b(F) m(ONT-OPEN-) 660 1181 y(OPTIONS) p Ft 5 w(\)) 29 b(is) i(attempted.) 42 b(This) 29 b(is) i(rep) s(eated) f(for) g(a) h(mapp) s(ed) e(fon) m(t) i(is) f(op) s(ened.) 529 1339 y(3.) 61 b(If) 34 b(mapp) s(ed) e(fon) m(ts) i(are) h(not) f(op) s (ened,) g(next) g(rule) g(is) g(c) m(hec) m(k) m(ed.) 54 b(This) 33 b(is) h(rep) s(eated) g(for) g(all) 660 1449 y(rules) c(un) m(til) h(a) f(mapp) s(ed) f(fon) m(t) i(is) g(op) s (ened.) 480 1656 y(example:) p Fp 720 1814 a(\(font-mapping) 768 1924 y(\(\(ascii-jtex-kanji) 43 b("\045f.jtex"\)) 815 2033 y("min*") k("goth*") e("tmin*") h("tgoth*"\)) 768 2143 y(\(\(type1) g("\045f.pfb") f(point-size-from-tfm) e (\(magnification-adjustme) o(nt) f(1.0\)\)) 815 2253 y(*\)) 768 2362 y(\(\(pk) k("\045f.\045dpk"\)) f(\(gf) i ("\045f.\045dgf"\)) e(\(tfm) i("\045f.tfm"\)) 815 2472 y(*\)\)) p Ft 480 2630 a(F) -8 b(or) 31 b(this) f(example,) i(supp) s (ose) d(that) p Fp 31 w(min10.300pk) p Ft 27 w(is) h(requested) h(to) g (op) s(en.) 529 2788 y(1.) 61 b(The) 34 b(\014rst) g(rule) g(applies) g (to) h(the) g(requested) f(fon) m(t) h(since) p Fp 35 w(min*) p Ft 33 w(is) g(in) f(the) h(fon) m(t) f(list.) 54 b(The) p Fp 660 2898 a(ascii-jtex-kanji) p Ft 29 w(driv) m(er) 34 b(is) g(in) m(v) m(ok) m(ed) h(to) g(op) s(en) e(a) h(mapp) s(ed) f (name) p Fp 34 w(min10.jtex) p Ft(.) 48 b(If) 660 3008 y(it) 31 b(is) f(op) s(ened,) g(fon) m(t) g(op) s(en) g(succeeds;) p Fp 31 w(min10.jtex) p Ft 27 w(is) g(used) g(as) p Fp 30 w(min10.300pk) p Ft 27 w(and) g(fon) m(t) 660 3117 y(op) s(en) g(\014nishes.) 39 b(If) 30 b(the) h(fon) m(t) g(is) f(not) h (op) s(ened,) e(con) m(tin) m(ue) j(to) f(the) g(next) f(step.) 529 3275 y(2.) 61 b(The) 34 b(second) h(rule) g(applies) f(to) i(the) f (requested) g(fon) m(t) g(since) p Fp 35 w(*) p Ft 34 w(is) g(giv) m(en) h(in) e(the) h(fon) m(t) h(list.) 660 3385 y(The) p Fp 23 w(type1) p Ft 22 w(driv) m(er) 24 b(is) f(in) m(v) m(ok) m(ed) i(to) g(op) s(en) d(a) i(mapp) s(ed) f (name) p Fp 23 w(min10.pfb) p Ft(.) 36 b(If) 23 b(it) h(is) g(op) s (ened,) p Fp 660 3495 a(min10.jtex) p Ft 31 w(is) 34 b(used) f(as) p Fp 34 w(min10.300pk) p Ft 31 w(and) g(fon) m(t) h(op) s (en) f(\014nishes.) 50 b(If) 33 b(the) h(fon) m(t) g(is) g(not) 660 3604 y(op) s(ened,) c(con) m(tin) m(ue) h(to) h(the) e(next) h(step.) 529 3763 y(3.) 61 b(The) 30 b(second) g(rule) g(applies) h(to) g(the) g (reqiested) g(fon) m(t) g(since) p Fp 30 w(*) p Ft 30 w(is) g(giv) m(en) g(in) f(the) h(fon) m(t) g(list.) 709 3921 y(1.) 61 b(The) p Fp 26 w(pk) p Ft 26 w(driv) m(er) 27 b(is) g(in) m(v) m(ok) m(ed) h(to) f(op) s(en) f(a) h(mapp) s(ed) f (name) p Fp 26 w(min10.300pk) p Ft(.) 37 b(If) 26 b(it) h(is) g(not) 840 4030 y(op) s(ened,) j(next) g(mapping) g(is) h(attempted.) 709 4189 y(2.) 61 b(The) p Fp 26 w(gf) p Ft 26 w(driv) m(er) 27 b(is) g(in) m(v) m(ok) m(ed) h(to) f(op) s(en) f(a) h(mapp) s(ed) f (name) p Fp 26 w(min10.300gf) p Ft(.) 37 b(If) 26 b(it) h(is) g(not) 840 4298 y(op) s(ened,) j(next) g(mapping) g(is) h(attempted.) 709 4457 y(3.) 61 b(The) p Fp 30 w(tfm) p Ft 29 w(driv) m(er) 30 b(is) h(in) m(v) m(ok) m(ed) h(to) f(op) s(en) f(a) g(mapp) s(ed) f (name) p Fp 31 w(min10.tfm) p Ft(.) 480 4664 y(If) h(ev) m(erything) h (ab) s(o) m(v) m(e) h(fails,) f(fon) m(t) g(op) s(en) e(for) p Fp 31 w(cmr10.300pk) p Ft 27 w(fails.) p Fq 555 4822 a(\017) p Fp 60 w(point-size-from-tfm) p Ft 26 w(\(optional\)) j(|) f (When) g(a) g(mapp) s(ed) f(fon) m(t) h(is) g(op) s(ened) f(\(in) h(mo) s(de) 660 4932 y(1,) 42 b(high) c(resolution) i(orien) m(ted) f(mo) s (de\),) i(p) s(oin) m(t) e(size) h(whic) m(h) f(is) f(obtained) i(from) e(a) h(TFM) 660 5041 y(\014le) 33 b(is) h(giv) m(en.) 50 b(This) 33 b(is) g(necessary) h(when) e(w) m(e) i(use) f(T) -8 b(rueT) m(yp) s(e) 33 b(and/or) g(T) m(yp) s(e1) g(fon) m(ts) h(for) 660 5151 y(mapp) s(ed) 26 b(fon) m(ts.) 40 b(F) -8 b(or) 29 b(example,) p Fp 29 w(") p Ft(cmr10.ttf) p Fp(") p Ft 28 w(and) p Fp 28 w(") p Ft(cmr10.pfb) p Fp(") p Ft 26 w(in) f(the) g(BaKoMa) h(fon) m(t) 660 5260 y(set) f(do) f(not) h(ha) m (v) m(e) h(p) s(oin) m(t) e(size) h(information,) h(since) f(T) -8 b(rueT) m(yp) s(e) 26 b(and) h(T) m(yp) s(e1) g(format) h(fon) m(ts) 660 5370 y(cannot) j(ha) m(v) m(e) h(information) e(on) h(p) s(oin) m(t) f (size.) p Fq 555 5528 a(\017) p Fp 60 w(\(magnification-adjustmen) o(t) p Fk 24 w(mag) p Fp 11 w(\)) p Ft 48 w(\(optional\)) 50 b(|) f(Mapp) s(ed) f(fon) m(ts) h(are) g(op) s(ened) 660 5638 y(with) 33 b(magni\014cation) i(factors) f(magni\014ed) g(b) m(y) p Fj 33 w(mag) p Ft(.) 51 b(This) 32 b(can) i(b) s(e) f(used) g(to) h (adjust) f(size) 660 5747 y(of) e(mapp) s(ed) d(fon) m(ts.) 42 b(But) 30 b(most) h(of) f(the) h(case,) h(this) e(is) g(not) h (necessary) -8 b(.) 480 5954 y(As) 30 b(a) h(restriction) g(of) g(fon) m (ts) g(of) f(this) h(class,) g(eac) m(h) g(fon) m(t) g(m) m(ust) g(ha) m (v) m(e) g(a) g(TFM) g(\014le.) p dyy eop end %%Page: 52 53 TeXDict begin 52 52 bop Ft 0 -116 a(52) 3198 b(VFlib) 31 b(3.6.14) p Fp 0 365 a(resolution-accuracy) p Ft 25 w(\(optional\)) p Fp 0 475 a(resolution-corrections) p Ft 24 w(\(optional\)) 480 584 y(|) i(According) h(to) g(arithmetic) g(errors,) g(DPI) f(v) -5 b(alue) 34 b(for) f(fon) m(t) g(\014les) g(and) g(computed) g(v) -5 b(alue) 33 b(\(=) 480 694 y(device) 24 b(resolution) f(times) h (magni\014cation) g(v) -5 b(alue\)) 24 b(ma) m(y) g(b) s(e) e (di\013eren) m(t.) 39 b(These) 22 b(t) m(w) m(o) j(capabilities) 480 804 y(giv) m(e) 32 b(correct) f(resolution) g(v) -5 b(alues) 31 b(for) f(PK) g(and) g(GF) h(fon) m(ts.) 480 936 y(Syn) m(tax) g(of) f (these) h(capabilities) h(are) f(as) g(follo) m(ws:) p Fp 720 1068 a(\(resolution-accuracy) p Fk 42 w(ACCURACY) p Fp 11 w(\)) 720 1178 y(\(resolution-corrections) 815 1288 y(\() p Fk(DEVICE-RESOLUTION) 54 b(FONT-RESOLION) g(FONT-RESOLION) p Fp 55 w(...) 47 b(\)) 815 1397 y(\() p Fk(DEVICE-RESOLUTION) 54 b(FONT-RESOLION) g(FONT-RESOLION) p Fp 55 w(...) 47 b(\)) 863 1507 y(...\)) p Fj 480 1639 a(DEVICE-RESOLUTION) p Ft 56 w(is) h(the) g(resolution) g(of) g(target) h(device) g(in) e(DPI) h (and) p Fj 47 w(F) m(ONT-) 480 1749 y(RESOLUTION) p Ft 39 w(is) 30 b(a) h(fon) m(t) g(resolution) g(v) -5 b(alue.) 480 1881 y(T) d(o) 28 b(\014nd) d(a) j(fon) m(t) f(\014le,) h(fon) m(t) g (resolution) g(is) f(computed) g(b) m(y) g(device) h(resolution) g (times) f(magni\014ca-) 480 1991 y(tion) 36 b(factor.) 57 b(Then,) 36 b(this) g(driv) m(er) f(\014nds) f(a) i(list) p Fp 36 w(\() p Fk(DEVICE-RESOLUTION) g(FONT-RESOLUTION) 480 2100 y(FONT-RESOLUTION) p Fp 37 w(...) 29 b(\)) p Ft 39 w(suc) m(h) 39 b(that) p Fj 40 w(DEVICE-RESOLUTION) p Ft 48 w(is) g(the) h(same) f(as) h(reso-) 480 2210 y(lution) i(of) f (target) i(device.) 75 b(\(If) 41 b(there) h(is) g(no) f(suc) m(h) g (list) h(is) g(the) f(capabilit) m(y) i(v) -5 b(alue,) 45 b(fon) m(t) d(\014le) 480 2320 y(resolution) 31 b(is) f(not) h (corrected) g(and) f(computed) g(v) -5 b(alue) 31 b(is) g(used.\)) 480 2452 y(F) -8 b(or) 34 b(eac) m(h) p Fj 34 w(F) m(ONT-RESOLUTION) p Ft 42 w(in) e(the) h(list,) i(the) e(driv) m(er) g(c) m(hec) m(ks) h (if) f(the) g(computed) g(fon) m(t) 480 2562 y(\014le) i(resolution) g (is) g(in) f(the) h(range) g(from) p Fj 34 w(F) m(ONT-RESOLUTION) p Ft 44 w(times) g(\(1-) p Fj(A) m(CCURA) m(CY) p Ft 13 w(\)) 480 2671 y(to) p Fj 29 w(F) m(ONT-RESOLUTION) p Ft 38 w(times) 29 b(\(1) p Fp(+) p Fj(A) m(CCURA) m(CY) p Ft 13 w(\).) h(If) e(the) h(computed) f(resolution) h(is) g(in) 480 2781 y(the) e(range,) i(fon) m(t) e(\014le) g(resolution) h(is) f(c) m (hanged) h(to) p Fj 28 w(F) m(ONT-RESOLUTION) p Ft(.) e(Then,) h(a) h (fon) m(t) f(\014le) 480 2890 y(is) j(searc) m(hed) h(b) m(y) g(the) f (corrected) i(fon) m(t) e(\014le) h(resolution.) 480 3023 y(example:) p Fp 720 3155 a(\(resolution-accuracy) 42 b(0.02\)) 720 3265 y(\(resolution-corrections) 768 3374 y(\(300) 94 b(;;) 47 b(cx) 815 3484 y(300) 95 b(329) g(360) f(432) h (518) g(622) f(746) h(896) 47 b(1075) f(1290) 95 b(240) 47 b(270\)) 768 3594 y(\(600) 94 b(;;) 47 b(ljfour) 815 3703 y(600) 95 b(657) g(720) f(864) 47 b(1037) g(1244) g(1493) f(1792) h (2150) f(2580) 95 b(480) 47 b(540\)\)) p Ft 480 3836 a(Be) 35 b(careful) f(not) g(to) g(map) g(to) g(the) g(same) h(name!) 51 b(Otherwise,) 34 b(fon) m(t) h(op) s(en) e(will) h(b) s(e) f(an) h (in\014nite) 480 3945 y(lo) s(op.) 77 b(\(VFlib) 44 b(restricts) f(the) g(depth) e(of) i(nested) f(fon) m(t) h(op) s(en.) 77 b(Ev) m(en) 43 b(if) f(the) h(fon) m(t) g(name) f(is) 480 4055 y(mapp) s(ed) 29 b(to) i(the) g(same) f(name,) h(VFlib) g(will) g (detects) g(an) f(error,) h(an) m(yw) m(a) m(y) -8 b(.\)) p Fp 0 4210 a(properties) p Ft 28 w(\(optional\)) p Fp 0 4320 a(variable-values) p Ft 26 w(\(optional\)) p Fs 0 4548 a(6.19) 68 b(PK) 45 b(fon) l(t) h(class) p Ft 125 4790 a(PK) 25 b(fon) m(ts) i(are) g(bitmap) f(fon) m(ts) h(used) e (b) m(y) i(T) 1555 4810 y(E) 1605 4790 y(X) f(system.) 40 b(PK) 26 b(fon) m(t) h(driv) m(er) f(pro) m(vides) g(a) h(logical) i (view) d(of) h(PK) 0 4900 y(fon) m(ts) k(when) e(a) i(fon) m(t) g(is) g (requested) g(to) g(op) s(en) f(as) h(an) f(implicit) i(fon) m(t;) f (if) g(a) f(giv) m(en) i(fon) m(t) f(\014lename) g(is) p Fp 30 w(cmr10.pk) p Ft(,) 0 5009 y(requested) f(device) g(resolution) g (is) g(300) h(and) e(magni\014cation) i(is) f(1.2,) h(then) e(PK) h (fon) m(t) g(driv) m(er) f(lo) s(oks) h(for) g(a) g(fon) m(t) 0 5119 y(\014le) p Fp 28 w(cmr10.360pk) p Ft(.) 36 b(Th) m(us,) 28 b(fon) m(t) g(names) f(\(for) h(fon) m(t) g(op) s(en\)) g(should) e (not) i(b) s(e) f(the) h(same) g(as) g(fon) m(t) g(\014lenames) g(on) 0 5228 y(\014lesystems.) 125 5361 y(T) -8 b(o) 27 b(searc) m(h) h(a) g (fon) m(t) g(\014le,) g(the) f(kpathsea) h(library) f(can) g(b) s(e) g (used.) 39 b(A) 27 b(sp) s(ecial) h(name) p Fp 27 w(TEXMF) p Ft 26 w(in) f(a) h(list) g(of) f(fon) m(t) 0 5470 y(directories) k (\(capabilit) m(y) p Fp 33 w(font-directories) p Ft(\)) 26 b(is) 31 b(used) e(to) i(searc) m(h) g(a) g(\014le) g(b) m(y) f (kpathsea.) 125 5603 y(T) -8 b(o) 35 b(enable) h(kpathsea,) h(the) f(v) -5 b(alue) 36 b(for) p Fp 35 w(use-kpathsea) p Ft 32 w(capabilit) m(y) h(in) p Fp 35 w(VFlib) p Ft 34 w(class) f(default) g (m) m(ust) f(b) s(e) p Fp 0 5712 a("Yes") p Ft(.) 125 5845 y(This) 29 b(fon) m(t) i(class) g(supp) s(orts) e(compressed) h (fon) m(t) h(\014les) f(and) g(implicit) h(fon) m(ts.) p dyy eop end %%Page: 53 54 TeXDict begin 53 53 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(53) p Fm 0 365 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(pk) p Fm 0 643 a(Capabilities) g(for) g(fon) m(t) g(class) f (default:) p Fp 0 963 a(font-directories) p Ft 26 w(\(optional\)) 480 1073 y(|) k(A) h(list) g(of) f(directory) h(names) f(for) g(fon) m(t) h (\014les.) 52 b(This) 34 b(driv) m(er) g(supp) s(orts) e(fon) m(t) j (\014le) g(searc) m(h) g(b) m(y) 480 1182 y(kpathsea.) 41 b(T) -8 b(o) 31 b(searc) m(h) g(a) g(fon) m(t) g(\014le) f(b) m(y) g (kpathsea,) h(use) p Fp 31 w(TEXMF) p Ft 28 w(for) g(a) f(directory) h (name.) p Fp 0 1376 a(filename-extensions) p Ft 25 w(\(optional\)) 480 1485 y(|) k(A) f(list) i(of) f(extensions) g(of) g(\014lenames) g(for) f (PK) g(fon) m(ts.) 55 b(This) 34 b(is) g(used) g(to) i(construct) f(a) g (fon) m(t) 480 1595 y(\014le) 30 b(name) p Fp 31 w(") p Ft(cmr10.300pk) p Fp(") p Ft 31 w(from) p Fp 30 w(") p Ft(cmr10.pk) p Fp(") p Ft 30 w(for) h(300) g(dpi) f(fon) m(ts.) 480 1746 y(example:) p Fp 41 w(\(filename-extensions) 25 b("pk"\)) 0 1940 y(make-missing-glyph) p Ft 25 w(\(optional\)) 480 2049 y(|) 35 b(Generate) h(a) g(PK) e(fon) m(t) i(\014le) f(from) g (Metafon) m(t) i(source) e(\014le) g(b) m(y) g(running) f(MET) -8 b(AF) m(ONT) 36 b(on) 480 2159 y(the) 28 b(\015y) -8 b(,) 28 b(if) g(a) g(requested) f(PK) g(fon) m(t) h(\014le) g(do) s(es) f(not) h(exist.) 41 b(example:) p Fp 40 w(\(make-missing-glyphs) 480 2268 y("yes"\)) 0 2462 y(point-size) p Ft 28 w(\(optional\)) p Fp 0 2571 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 2681 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 2790 a(properties) p Ft 28 w(\(optional\)) p Fp 0 2900 a(variable-values) p Ft 26 w(\(optional\)) p Fm 0 3346 a(Capabilities) 31 b(for) g(fon) m(t) g(de\014nition:) p Fp 0 3666 a(font-class) p Ft 28 w(\(essen) m(tial\)) 480 3776 y(|) f(A) h(fon) m(t) g(class) g (name.) p Fp 0 3969 a(font-file) p Ft 28 w(\(optional\)) 480 4079 y(|) 40 b(a) g(fon) m(t) g(\014lename.) 69 b(An) 39 b(extension) i(\(e.g.,) p Fp 44 w(.300pk) p Ft(\)) d(can) i(b) s(e) f (omitted.) 70 b(In) 39 b(case) i(of) f(this) 480 4188 y(capabilit) m(y) 32 b(is) f(not) f(giv) m(en,) i(fon) m(t) f(name) f (is) h(used) e(as) i(this) f(capabilit) m(y) i(v) -5 b(alue.) p Fp 0 4382 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 4491 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 4601 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 4710 a(properties) p Ft 28 w(\(optional\)) p Fp 0 4820 a(magnification) p Ft 27 w(\(optional\)) p Fs 0 5120 a(6.20) 68 b(GF) 44 b(fon) l(t) i(class) p Fm 0 5676 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(gf) p Ft 125 5954 a(Other) e(capabilities) k (are) d(the) h(same) g(as) f(ones) h(for) p Fp 30 w(pk) p Ft 30 w(fon) m(t) g(class.) p dyy eop end %%Page: 54 55 TeXDict begin 54 54 bop Ft 0 -116 a(54) 3198 b(VFlib) 31 b(3.6.14) p Fs 0 365 a(6.21) 68 b(TFM) 44 b(fon) l(t) h(class) p Ft 125 613 a(TFM) 32 b(\014les) g(con) m(tains) h(only) f(metric) h (information) f(for) g(t) m(yp) s(esetting) h(T) 2553 633 y(E) 2603 613 y(X) g(do) s(cumen) m(ts.) 45 b(This) 31 b(fon) m(t) i(class) 0 723 y(pro) m(vides) c(fon) m(ts) g(whose) f (metrics) i(are) f(de\014ned) e(b) m(y) i(TFM) g(fon) m(t) g(\014les.) 40 b(Since) 29 b(TFM) g(\014les) g(do) g(not) g(ha) m(v) m(e) h(glyph,) 0 832 y(glyph) h(of) g(a) h(fon) m(t) f(of) g(this) h(fon) m(t) f (class) h(are) g(\(blac) m(k) g(or) f(white\)) h(rectangles.) 44 b(F) -8 b(on) m(ts) 33 b(of) e(this) g(fon) m(t) h(class) g(can) f(b) s (e) 0 942 y(used) f(as) g(substitutes) g(of) h(PK,) f(GF,) h(or) g(VF) f (\014les) h(in) f(case) h(they) g(are) g(missing.) 125 1080 y(If) 26 b(the) i(\014le) f(is) h(not) f(found,) g(it) h(is) g (searc) m(hed) g(b) m(y) p Fp 27 w(font-directories) p Ft 23 w(capabilit) m(y) h(giv) m(en) f(in) p Fp 27 w(TFM) p Ft 27 w(fon) m(t) g(class) 0 1190 y(default) 35 b(description.) 54 b(Note) 36 b(that) g(the) f(extension) g(of) h(fon) m(t) f(\014les) g (\(giv) m(en) h(b) m(y) f(the) p Fp 35 w(filename-extensions) p Ft 0 1300 a(capabilit) m(y\)) g(has) e(no) g(e\013ect) i(for) e(searc) m (hing) h(b) m(y) f(kpathsea) h(library) -8 b(.) 49 b(The) 33 b(extension) h(of) f(fon) m(t) h(\014les) f(m) m(ust) g(b) s(e) p Fp 0 1409 a(") p Ft(.tfm) p Fp(") p Ft(.) 40 b(See) 31 b(kpathsea) g(man) m(ual) f(for) h(detail.) 125 1547 y(This) e(fon) m(t) i(class) g(supp) s(orts) e(compressed) h(fon) m(t) h (\014les) f(and) g(implicit) h(fon) m(ts.) p Fm 0 1795 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(tfm) p Fm 0 2043 a(Capabilities) g(for) g(fon) m(t) g(class) f(default:) p Fp 0 2318 a(font-directories) p Ft 26 w(\(optional\)) 480 2428 y(|) k(A) h(list) g(of) f(directory) h(names) f(for) g(fon) m(t) h (\014les.) 52 b(This) 34 b(driv) m(er) g(supp) s(orts) e(fon) m(t) j (\014le) g(searc) m(h) g(b) m(y) 480 2537 y(kpathsea.) 41 b(T) -8 b(o) 31 b(searc) m(h) g(a) g(fon) m(t) g(\014le) f(b) m(y) g (kpathsea,) h(use) p Fp 31 w(TEXMF) p Ft 28 w(for) g(a) f(directory) h (name.) p Fp 0 2700 a(filename-extensions) p Ft 25 w(\(optional\)) p Fp 0 2810 a(glyph-style) p Ft 27 w(\(optional\)) 480 2920 y(|) f(De\014nes) g(default) g(glyph) g(st) m(yle:) p Fp 41 w(empty) p Ft 29 w(or) p Fp 30 w(fill) p Ft(.) 39 b(If) p Fp 30 w(empty) p Ft 29 w(is) 30 b(giv) m(en,) h(all) g(glyph) e (of) i(a) f(fon) m(t) 480 3029 y(are) h(white) f(rectangles.) 43 b(If) p Fp 30 w(fill) p Ft 29 w(is) 30 b(giv) m(en,) i(all) f(glyph) f (of) h(a) f(fon) m(t) h(are) g(blac) m(k) g(rectangles.) p Fp 0 3192 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 3302 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 3412 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 3521 a(properties) p Ft 28 w(\(optional\)) p Fp 0 3631 a(variable-values) p Ft 26 w(\(optional\)) p Fm 0 3769 a(Capabilities) g(for) g(fon) m(t) g (de\014nition:) p Fp 0 3934 a(font-class) p Ft 28 w(\(essen) m(tial\)) 480 4044 y(|) f(A) h(fon) m(t) g(class) g(name.) p Fp 0 4207 a(font-file) p Ft 28 w(\(optional\)) p Fp 0 4317 a(glyph-style) p Ft 27 w(\(optional\)) 480 4426 y(|) 38 b(De\014nes) g(glyph) g(st) m(yle:) p Fp 57 w(empty) p Ft 37 w(or) p Fp 38 w(fill) p Ft(.) 63 b(If) p Fp 37 w(empty) p Ft 37 w(is) 38 b(giv) m(en,) j(all) e(glyph) f(of) g(a) g (fon) m(t) h(are) 480 4536 y(white) 30 b(rectangles.) 43 b(If) p Fp 30 w(fill) p Ft 29 w(is) 30 b(giv) m(en,) i(all) f(glyph) f (of) h(a) g(fon) m(t) f(are) h(blac) m(k) h(rectangles.) p Fp 0 4699 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 4809 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 4918 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 5028 a(magnification) p Ft 27 w(\(optional\)) p Fp 0 5138 a(aspect-ratio) p Ft 27 w(\(optional\)) p Fp 0 5247 a(properties) p Ft 28 w(\(optional\)) p Fs 0 5487 a(6.22) 68 b(VF) 44 b(fon) l(t) i(class) p Ft 125 5735 a(This) 39 b(fon) m(t) j(class) f(handles) p Fl 40 w(Virtual) i(F) -7 b(ont) p Ft 50 w(\014les.) 71 b(A) 41 b(virtual) g(fon) m(t) g(consists) h(of) e(a) h(fon) m(t) h (program) e(and) 0 5845 y(subfon) m(ts.) k(A) 31 b(fon) m(t) i(program) e(in) g(a) h(vf) g(\014le) f(is) h(similar) g(to) g(D) m(VI) h(\014le) e (formats.) 45 b(Glyph) 31 b(of) h(a) g(virtual) g(fon) m(t) g(are) 0 5954 y(constructed) 26 b(from) f(a) i(b) s(o) m(x) e(instruction) h(in) g(a) g(fon) m(t) g(program) g(and) f(glyph) h(tak) m(en) h(from) e (subfon) m(ts.) 38 b(Therefore,) p dyy eop end %%Page: 55 56 TeXDict begin 55 55 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(55) 0 365 y(this) 24 b(fon) m(t) h(class) g(requires) e(a) i(fon) m(t) g (mapping) e(rule) h(to) h(obtain) g(glyph) e(from) h(subfon) m(ts.) 38 b(Y) -8 b(ou) 25 b(can) f(sp) s(ecify) g(VFlib) 0 475 y(not) 31 b(to) g(op) s(en) e(subfon) m(ts) h(of) h(a) f(virtual) h (fon) m(t) g(in) f(case) h(of) g(subfon) m(ts) f(are) g(una) m(v) -5 b(ailable.) p Fm 0 625 a(F) d(on) m(t) 32 b(class) f(name:) p Fp 40 w(vf) p Fm 0 775 a(Capabilities) g(for) g(fon) m(t) g(class) f (default:) p Fp 0 958 a(font-directories) p Ft 26 w(\(optional\)) 480 1067 y(|) k(A) h(list) g(of) f(directory) h(names) f(for) g(fon) m(t) h (\014les.) 52 b(This) 34 b(driv) m(er) g(supp) s(orts) e(fon) m(t) j (\014le) g(searc) m(h) g(b) m(y) 480 1177 y(kpathsea) 27 b(library) -8 b(.) 40 b(T) -8 b(o) 28 b(searc) m(h) f(a) h(fon) m(t) f (\014le) g(b) m(y) g(kpathsea) h(library) -8 b(,) 28 b(use) p Fp 26 w(TEXMF) p Ft 26 w(for) f(a) g(directory) 480 1286 y(name.) p Fp 0 1461 a(filename-extensions) p Ft 25 w(\(optional\)) 480 1571 y(|) j(A) h(extension) g(string) f(for) g (virtual) h(fon) m(t) g(\014les.) 480 1713 y(example:) p Fp 41 w(\(filename-extensions) 25 b("vf"\)) 0 1888 y(tfm-directories) p Ft 26 w(\(optional\)) p Fp 0 1998 a(tfm-filename-extensions) p Ft 24 w(\(optional\)) p Fp 0 2107 a(font-mapping) p Ft 27 w(\(optional\)) 480 2217 y(|) 35 b(A) h(set) f(of) h(rules) f(for) g (mapping) g(for) g(subfon) m(ts) f(to) i(op) s(en) f(as) g(an) h(VFlib) f(fon) m(ts.) 56 b(This) 35 b(is) g(the) 480 2326 y(same) f(as) f(T) 876 2346 y(E) 926 2326 y(X) g(fon) m(t) h(mapp) s(er,) f(i.e.,) p Fp 35 w(font-mapping) p Ft 30 w(capabilit) m(y) i(for) p Fp 33 w(TeX) p Ft 33 w(fon) m(t) e(class) h(default) 480 2436 y(description.) 480 2578 y(Be) h(careful) f(not) g(to) g(map) g (to) g(the) g(same) h(name!) 51 b(Otherwise,) 34 b(fon) m(t) h(op) s (en) e(will) h(b) s(e) f(an) h(in\014nite) 480 2688 y(lo) s(op.) 77 b(\(VFlib) 44 b(restricts) f(the) g(depth) e(of) i(nested) f(fon) m(t) h (op) s(en.) 77 b(Ev) m(en) 43 b(if) f(the) h(fon) m(t) g(name) f(is) 480 2797 y(mapp) s(ed) 29 b(to) i(the) g(same) f(name,) h(VFlib) g(will) g (detects) g(an) f(error,) h(an) m(yw) m(a) m(y) -8 b(.\)) p Fp 0 2972 a(open-style) p Ft 28 w(\(optional\)) 480 3082 y(|) 30 b(This) g(capabilit) m(y) i(sp) s(eci\014es) e(ho) m(w) g (subfon) m(ts) g(are) h(op) s(ened.) p Fp 480 3257 a(none) p Ft 288 w(|) 23 b(Bo) m(xes) i(are) e(used) g(instead) g(of) g(glyph) g (of) g(subfon) m(ts.) 38 b(Subfon) m(ts) 22 b(are) i(not) f(op) s (ened.) p Fp 480 3432 a(try) p Ft 336 w(|) 37 b(The) g(virtual) g(fon) m (t) h(driv) m(er) f(tries) h(to) g(op) s(en) f(eac) m(h) h(subfon) m (t.) 61 b(If) 37 b(subfon) m(ts) f(are) 960 3541 y(op) s(ened,) 26 b(glyph) f(are) i(tak) m(en) f(from) g(op) s(ened) e(subfon) m(ts.) 39 b(If) 25 b(some) h(subfon) m(ts) f(are) h(not) 960 3651 y(op) s(ened,) 34 b(b) s(o) m(xes) h(are) f(used) f(instead) i(of) f (glyph) f(of) i(suc) m(h) e(subfon) m(ts.) 51 b(It) 34 b(is) g(not) h(an) 960 3761 y(error) 30 b(ev) m(en) h(if) f(all) i (subfon) m(ts) d(are) i(not) g(op) s(ened.) p Fp 480 3936 a(require) p Ft 144 w(|) k(The) g(virtual) g(fon) m(t) h(driv) m (er) f(tries) g(to) h(op) s(en) f(eac) m(h) h(subfon) m(t.) 54 b(It) 36 b(is) f(an) g(error) f(if) 960 4045 y(ev) m(ery) d(subfon) m (t) f(is) g(not) h(op) s(ened.) p Fp 0 4220 a(glyph-style) p Ft 27 w(\(optional\)) 480 4330 y(|) i(In) g(case) h(b) s(o) m(xes) g (are) f(used) g(instead) h(of) f(glyph) g(of) h(subfon) m(ts,) f(this) g (capabilit) m(y) j(con) m(trols) e(the) 480 4439 y(lo) s(oks) d(of) f (b) s(o) m(xes.) p Fp 480 4614 a(empty) p Ft 240 w(|) g(Bo) m(xes) i (are) f(white,) g(i.e.,) g(all) h(pixels) e(are) h(v) -5 b(alue) 31 b(0.) p Fp 480 4789 a(fill) p Ft 288 w(|) f(Bo) m(xes) i (are) f(blac) m(k,) g(i.e.,) h(all) f(pixels) g(are) g(v) -5 b(alue) 31 b(1.) p Fp 0 4964 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 5074 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 5183 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 5293 a(properties) p Ft 28 w(\(optional\)) p Fp 0 5402 a(variables) p Ft 28 w(\(optional\)) p Fp 0 5512 a(debug) p Ft 29 w(\(optional\)) p Fm 0 5662 a(Capabilities) g(for) g(fon) m(t) g(de\014nition:) p Fp 0 5845 a(font-file) p Ft 28 w(\(optional\)) 480 5954 y(|) f(File) i(name) e(of) h(a) f(virtual) h(fon) m(t.) p dyy eop end %%Page: 56 57 TeXDict begin 56 56 bop Ft 0 -116 a(56) 3198 b(VFlib) 31 b(3.6.14) p Fp 0 365 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 475 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 584 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 694 a(magnification) p Ft 27 w(\(optional\)) p Fp 0 804 a(properties) p Ft 28 w(\(optional\)) p Fs 0 1029 a(6.23) 68 b(ASCI) t(I) 45 b(Japanese) h(T) 1371 1056 y(E) 1441 1029 y(X) f(Kanji) g(fon) l(t) h (class) p Ft 125 1270 a(This) 35 b(is) h(for) p Fl 36 w(Kanji) p Ft 46 w(fon) m(ts) g(of) h(Japanese) f(T) 1629 1290 y(E) 1679 1270 y(X) g(lo) s(calized) i(b) m(y) f(ASCI) s(I) d(Co.) 58 b(This) 36 b(fon) m(t) h(driv) m(er) e(pro) m(vides) p Fl 0 1380 a(Kanji) p Ft 45 w(fon) m(ts) g(that) h(can) g(b) s(e) e (accessed) j(as) e(if) g(they) h(w) m(ere) g(PK) e(fon) m(ts) i(b) m(y) f(using) g(another) g(VFlib) h(fon) m(t.) 56 b(F) -8 b(on) m(t) 0 1489 y(metrics) 34 b(of) p Fl 33 w(Kanji) p Ft 43 w(c) m(haracters) g(de\014ned) e(b) m(y) h(ASCI) s(I) f(jT) 1939 1509 y(E) 1989 1489 y(X) h(ma) m(y) h(not) f(matc) m(h) h(that) g(of) f (a) p Fl 34 w(Kanji) p Ft 43 w(fon) m(t) g(to) h(b) s(e) 0 1599 y(used.) k(This) 22 b(case) i(happ) s(ens) e(when) p Fp 22 w(jiskan24.pcf) p Ft 20 w(fon) m(t) h(is) h(used) e(as) h(a) h (Japanese) p Fl 23 w(Kanji) p Ft 33 w(fon) m(t) g(for) f(T) 3436 1619 y(E) 3486 1599 y(X.) g(This) 0 1709 y(fon) m(t) k(driv) m(er) g(w) m(orks) g(as) g(a) p Fl 27 w(\014lter) p Ft 37 w(that) g(mo) s (di\014es) f(fon) m(t) i(metrics) f(of) g(another) g(fon) m(t.) 40 b(Change) 27 b(of) g(fon) m(t) g(metrics) g(is) 0 1818 y(de\014ned) i(b) m(y) i(an) f(external) i(\014le) e(called) p Fp 32 w(adjustment) e(file) p Ft(.) 40 b(See) 31 b(sample) f (distribution) g(of) h(adjustmen) m(t) g(\014les) 0 1928 y(for) f(their) h(syn) m(tax.) 41 b(\(Not) 31 b(do) s(cumen) m(ted) g (no) m(w...\)) 125 2059 y(F) -8 b(on) m(t) 33 b(metrics) g(of) f(a) h (fon) m(t) g(of) f(this) g(class) h(is) f(de\014ned) f(b) m(y) h(a) h (TFM) f(fon) m(t;) i(a) f(v) m(ector) g(to) g(the) g(next) f(reference) 0 2169 y(p) s(oin) m(t) 27 b(is) h(tak) m(en) h(from) e(a) g(TFM) h (\014le.) 40 b(A) 28 b(v) m(ector) h(to) f(upp) s(er) d(left) k(corner) e(of) h(a) f(bitmap) h(is) f(tak) m(en) i(from) e(subfon) m(t.) 0 2278 y(Then,) j(fon) m(t) g(metrics) h(is) g(mo) s(di\014ed) e (according) i(to) h(an) e(adjustmen) m(t) g(\014le.) 125 2409 y(This) f(driv) m(er) h(supp) s(orts) e(v) m(ertical) k(writing.) 41 b(In) 29 b(case) i(fon) m(ts) g(for) e(v) m(ertical) k(writing) d (are) g(not) h(a) m(v) -5 b(ailable,) 32 b(the) 0 2519 y(driv) m(er) e(rotates) i(glyph) e(of) g(some) h(c) m(haracters,) h (e,g,) g(paren) m(thesis,) f(to) g(yield) g(\(p) s(ossible\)) f (correct) i(glyph.) p Fm 0 2650 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(ascii-jtex) p Fm 0 2781 a(Capabilities) g (for) g(fon) m(t) g(class) f(default:) p Fp 0 2934 a (implicit-font-mapping-su) o(ffix) p Ft 24 w(\(optional\)) 480 3044 y(|) 37 b(A) g(su\016x) g(to) g(map) g(a) h(fon) m(t) g(name) f (for) g(searc) m(hing) h(an) f(implicit) h(fon) m(t.) 62 b(Supp) s(ose) 35 b(a) j(fon) m(t) f(is) 480 3153 y(requested) k(to) g (op) s(en.) 70 b(Then,) 43 b(fon) m(t) e(name) f(is) h(mapp) s(ed) e (in) h(suc) m(h) h(a) g(w) m(a) m(y) g(that) g(extension) g(is) 480 3263 y(deleted) 32 b(and) f(the) g(su\016x) g(giv) m(en) h(b) m(y) f (this) g(capabilit) m(y) i(is) f(added.) 42 b(Then,) 31 b(an) g(v\015ib) s(cap) g(en) m(try) g(of) 480 3372 y(the) c(mapp) s (ed) f(name) h(is) g(searc) m(hed.) 40 b(If) 27 b(suc) m(h) f(an) h(en) m(try) h(exists,) g(it) g(is) f(used) f(for) h(the) g(implicit) h(fon) m (t) 480 3482 y(and) d(the) h(fon) m(t) h(is) f(op) s(ened) f(as) h(if) g (it) g(w) m(ere) g(an) g(explicit) h(fon) m(t.) 40 b(\(Note) 28 b(that) e(a) g(fon) m(t) h(of) f(the) g(mapp) s(ed) 480 3592 y(name) k(m) m(ust) h(exist) g(as) f(an) h(explicit) g(fon) m(t,) h (not) e(as) h(an) f(implicit) h(fon) m(t.\)) 480 3723 y(Supp) s(ose) p Fp 27 w(min10.400pk) p Ft 26 w(is) e(requested) g(to) h (op) s(en) e(as) i(an) f(implicit) h(fon) m(t) f(and) g(the) g(v) -5 b(alue) 29 b(of) h(this) 480 3832 y(capabilit) m(y) 40 b(is) p Fp 38 w(.jtex) p Ft(.) 63 b(Then) 37 b(mapp) s(ed) g(name) h (is) p Fp 38 w(min10.jtex) p Ft 36 w(and) f(it) i(is) f(op) s(ened) f (b) m(y) i(this) 480 3942 y(fon) m(t) 31 b(driv) m(er) f(in) m (ternally) -8 b(.) 480 4073 y(example:) p Fp 41 w (\(implicit-font-mapping-suf) o(fix) 24 b(".jtex"\)) 0 4226 y(tfm-directories) p Ft 26 w(\(optional\)) p Fp 0 4335 a(tfm-filename-extensions) p Ft 24 w(\(optional\)) p Fp 0 4445 a(properties) p Ft 28 w(\(optional\)) p Fp 0 4555 a(variable-values) p Ft 26 w(\(optional\)) p Fm 0 4686 a(Capabilities) 31 b(for) g(fon) m(t) g(de\014nition:) p Fp 0 4839 a(font-class) p Ft 28 w(\(essen) m(tial\)) 480 4948 y(|) f(A) h(fon) m(t) g(class) g(name.) p Fp 0 5101 a(kanji-font) p Ft 28 w(\(optional\)) 480 5210 y(|) f(F) -8 b(on) m(t) 32 b(name) e(for) h(a) f(subfon) m(t.) p Fp 0 5363 a(kanji-font-point-size) p Ft 25 w(\(optional\)) 480 5473 y(|) i(Default) i(p) s(oin) m(t) e(size) h(of) g(subfon) m(t.) 46 b(If) 32 b(p) s(oin) m(t) g(size) h(is) g(not) f(explicitly) i(giv) m (en) f(when) f(a) h(fon) m(t) f(is) 480 5582 y(op) s(ened,) e(This) f (v) -5 b(alue) 31 b(is) g(used.) p Fp 0 5735 a(kanji-font-pixel-size) p Ft 25 w(\(optional\)) 480 5845 y(|) f(Default) h(pixel) g(size) f(of) h (a) f(subfon) m(t.) 40 b(If) 30 b(pixel) g(size) h(is) f(not) h (explicitly) g(giv) m(en) g(when) e(a) i(fon) m(t) f(is) 480 5954 y(op) s(ened,) g(This) f(v) -5 b(alue) 31 b(is) g(used.) p dyy eop end %%Page: 57 58 TeXDict begin 57 57 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(57) p Fp 0 365 a(kanji-font-magnification) p Ft 24 w(\(optional\)) 480 475 y(|) 30 b(magni\014cation) i(factor) f(for) f(subfon) m(t.) p Fp 0 645 a(tfm-file) p Ft 28 w(\(optional\)) 480 754 y(|) g(TFM) h(\014le) f(that) h(de\014nes) f(fon) m(t) h(metrics) g(of) f(a) h(fon) m(t.) 480 894 y(example:) p Fp 41 w(\(tfm-file) d ("min10.tfm"\)) 0 1064 y(metric-adjustment-file) p Ft 24 w(\(optional\)) 480 1173 y(|) i(a) h(\014le) f(name) h(for) f(fon) m (t) h(metric) g(adjustmen) m(t) f(\014le.) p Fp 0 1343 a(properties) p Ft 28 w(\(optional\)) p Fs 0 1596 a(6.24) 68 b(Japanese) 47 b(comic) e(fon) l(t) g(class) p Ft 125 1850 a(This) 24 b(fon) m(t) i(driv) m(er) f(comp) s(oses) h(t) m(w) m (o) g(Japanese) p Fl 26 w(Kanji) p Ft 35 w(fon) m(ts.) 39 b(According) 26 b(to) g(co) s(de) g(p) s(oin) m(t) f(\() p Fl(Kana) p Ft 34 w(or) p Fl 25 w(kanji) p Ft 0 1960 a(c) m(haracter\),) 40 b(one) d(of) g(t) m(w) m(o) h(fon) m(t) f(is) g(selected) h(to) f (obtain) g(a) g(bitmap) g(or) f(metric.) 60 b(This) 36 b(fon) m(t) h(class) g(pro) m(vides) 0 2070 y(Japanese) 31 b(fon) m(ts) f(that) h(comp) s(oses) p Fl 31 w(Kana) p Ft 38 w(and) p Fl 30 w(Kanji) p Ft 40 w(fon) m(t.) p Fm 0 2214 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(japanese-comic) p Fm 0 2359 a(Capabilities) g(for) g(fon) m(t) g (class) f(default:) p Fp 0 2534 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 2644 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 2753 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 2863 a(properties) p Ft 28 w(\(optional\)) p Fp 0 2972 a(variable-values) p Ft 26 w(\(optional\)) p Fm 0 3117 a(Capabilities) h(for) g(fon) m(t) g (de\014nition:) p Fp 0 3292 a(font-class) p Ft 28 w(\(essen) m(tial\)) 480 3402 y(|) f(A) h(fon) m(t) g(class) g(name.) p Fp 0 3571 a(kanji-font) p Ft 28 w(\(optional\)) 480 3681 y(|) k(A) g(VFlib) h(fon) m(t) f(name) h(for) f(Kanji) f(c) m (haracters.) 57 b(F) -8 b(or) 36 b(co) s(de) f(p) s(oin) m(ts) g(for) g (Kanji) g(c) m(haracters,) 480 3791 y(this) 30 b(fon) m(t) h(is) g (used) e(to) i(obtain) g(bitmaps) f(and) g(metrics.) p Fp 0 3960 a(kana-font) p Ft 28 w(\(optional\)) 480 4070 y(|) 39 b(A) h(VFlib) g(fon) m(t) g(name) g(for) f(Kana) h(fon) m(t) g (\(co) s(de) g(p) s(oin) m(t:) 60 b(0x2121) 42 b(...) 68 b(0x287f) 7 b(\).) 71 b(F) -8 b(or) 40 b(co) s(de) 480 4180 y(p) s(oin) m(ts) 30 b(except) i(Kanji) e(c) m(haracters,) i(this) e(fon) m(t) h(is) f(used) g(to) h(obtain) g(bitmaps) f(and) f(metrics.) p Fp 0 4349 a(symbol-font) p Ft 27 w(\(optional\)) 480 4459 y(|) e(A) h(VFlib) g(fon) m(t) g(name) g(for) f(sym) m(b) s(ol) g (c) m(haracters) i(\(co) s(de) f(p) s(oin) m(t:) 40 b(0x2121) 30 b(...) 40 b(0x227f) 7 b(\).) 41 b(If) 28 b(this) 480 4568 y(capabilit) m(y) k(is) f(not) f(giv) m(en,) i(a) f(fon) m(t) f (giv) m(en) i(b) m(y) p Fp 30 w(kana-font) p Ft 28 w(is) e(used) g(for) g(sym) m(b) s(ol) g(c) m(haracters.) p Fp 0 4738 a(alpha-numeric-font) p Ft 25 w(\(optional\)) 480 4848 y(|) 40 b(A) g(VFlib) h(fon) m(t) g (name) f(for) g(alphab) s(et) g(and) f(n) m(umeric) i(c) m(haracters) g (\(co) s(de) g(p) s(oin) m(t:) 60 b(0x2321) 480 4957 y(...) g(0x237f) 7 b(\).) 61 b(If) 37 b(this) f(capabilit) m(y) j(is) d (not) h(giv) m(en,) j(a) d(fon) m(t) g(giv) m(en) h(b) m(y) p Fp 36 w(kana-font) p Ft 34 w(is) f(used) f(for) 480 5067 y(alphab) s(et) 30 b(and) g(n) m(umeric) g(c) m(haracters.) p Fp 0 5237 a(hirakana-font) p Ft 27 w(\(optional\)) 480 5346 y(|) 21 b(A) g(VFlib) h(fon) m(t) f(name) h(for) f(Hirak) -5 b(ana) 21 b(c) m(haracters) i(\(co) s(de) f(p) s(oin) m(t:) 36 b(0x2421) 23 b(...) 38 b(0x247f) 7 b(\).) 40 b(If) 21 b(this) 480 5456 y(capabilit) m(y) 32 b(is) f(not) f(giv) m(en,) i(a) f (fon) m(t) f(giv) m(en) i(b) m(y) p Fp 30 w(kana-font) p Ft 28 w(is) e(used) g(for) g(Hirak) -5 b(ana) 31 b(c) m(haracters.) p Fp 0 5626 a(katakana-font) p Ft 27 w(\(optional\)) 480 5735 y(|) 40 b(A) g(VFlib) g(fon) m(t) h(name) f(for) f(Katak) -5 b(ana) 42 b(c) m(haracters) f(\(co) s(de) f(p) s(oin) m(t:) 60 b(0x2521) 42 b(...) 70 b(0x257f) 7 b(\).) 480 5845 y(If) 43 b(this) h(capabilit) m(y) i(is) d(not) h(giv) m(en,) 49 b(a) 44 b(fon) m(t) g(giv) m(en) h(b) m(y) p Fp 44 w(kana-font) p Ft 41 w(is) f(used) f(for) g(Katak) -5 b(ana) 480 5954 y(c) m(haracters.) p dyy eop end %%Page: 58 59 TeXDict begin 58 58 bop Ft 0 -116 a(58) 3198 b(VFlib) 31 b(3.6.14) p Fp 0 365 a(greek-font) p Ft 28 w(\(optional\)) 480 475 y(|) g(A) g(VFlib) g(fon) m(t) h(name) f(for) f(Greek) i(c) m (haracters) g(\(co) s(de) g(p) s(oin) m(t:) 42 b(0x2621) 33 b(...) 43 b(0x267f) 7 b(\).) 44 b(If) 31 b(this) 480 584 y(capabilit) m(y) h(is) f(not) f(giv) m(en,) i(a) f(fon) m(t) f (giv) m(en) i(b) m(y) p Fp 30 w(kana-font) p Ft 28 w(is) e(used) g(for) g(Greek) h(c) m(haracters.) p Fp 0 745 a(cyrillic-font) p Ft 27 w(\(optional\)) 480 855 y(|) c(A) f(VFlib) i(fon) m(t) f(name) g (for) f(Cyrillic) i(c) m(haracters) g(\(co) s(de) f(p) s(oin) m(t:) 39 b(0x2721) 29 b(...) 40 b(0x277f) 7 b(\).) 41 b(If) 27 b(this) 480 964 y(capabilit) m(y) 32 b(is) f(not) f(giv) m(en,) i(a) f (fon) m(t) f(giv) m(en) i(b) m(y) p Fp 30 w(kana-font) p Ft 28 w(is) e(used) g(for) g(Cyrillic) h(c) m(haracters.) p Fp 0 1125 a(keisen-font) p Ft 27 w(\(optional\)) 480 1235 y(|) e(A) g(VFlib) g(fon) m(t) h(name) f(for) g(Keisen) g(c) m (haracters) h(\(co) s(de) g(p) s(oin) m(t:) 40 b(0x2821) 31 b(...) 41 b(0x287f) 7 b(\).) 42 b(If) 29 b(this) 480 1344 y(capabilit) m(y) j(is) f(not) f(giv) m(en,) i(a) f(fon) m(t) f (giv) m(en) i(b) m(y) p Fp 30 w(kana-font) p Ft 28 w(is) e(used) g(for) g(Keisen) h(c) m(haracters.) p Fp 0 1505 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 1615 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 1724 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 1834 a(magnification) p Ft 27 w(\(optional\)) p Fp 0 1943 a(properties) p Ft 28 w(\(optional\)) p Fs 0 2178 a(6.25) 68 b(T) -11 b(ry) 44 b(fon) l(t) i(class) p Ft 125 2424 a(A) 32 b(fon) m(t) h(of) f(this) h(fon) m(t) f(class) i (has) e(a) g(list) h(of) p Fl 33 w(sub-fonts) p Ft(.) 47 b(When) 32 b(a) g(fon) m(t) h(of) g(this) f(class) h(is) g(requested) f (op) s(en,) 0 2533 y(the) c(try) h(fon) m(t) f(driv) m(er) g(tries) h (to) g(op) s(en) f(the) g(sub-fon) m(ts) g(one) g(after) h(another) g (un) m(til) f(one) h(of) f(them) g(is) g(successfully) 0 2643 y(op) s(ened.) 66 b(If) 39 b(all) h(sub-fon) m(ts) f(in) g(the) g (list) h(are) g(not) f(op) s(ened,) i(the) e(fon) m(t) h(is) f(failed) h (to) g(b) s(e) f(op) s(ened.) 66 b(All) 40 b(fon) m(t) 0 2752 y(op) s(eration) 31 b(of) f(the) h(fon) m(t) g(is) f(applied) g (to) h(an) g(op) s(ened) e(sub-fon) m(t.) p Fm 0 2888 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(try) p Fm 0 3024 a(Capabilities) g(for) g(fon) m(t) g(class) f(default:) p Fp 0 3185 a(properties) p Ft 28 w(\(optional\)) p Fp 0 3295 a(variable-values) p Ft 26 w(\(optional\)) p Fm 0 3431 a(Capabilities) h(for) g(fon) m(t) g(de\014nition:) p Fp 0 3592 a(font-class) p Ft 28 w(\(essen) m(tial\)) 480 3702 y(|) f(A) h(fon) m(t) g(class) g(name.) 40 b(This) 30 b(m) m(ust) g(b) s(e) p Fp 30 w(try) p Ft(.) p Fp 0 3862 a(font-list) p Ft 28 w(\(optional\)) 480 3972 y(|) g(A) h(list) g(of) f (sub-fon) m(ts.) 41 b(These) 30 b(fon) m(ts) g(are) h(VFlib) g(fon) m (ts,) g(not) g(a) f(fon) m(t) h(\014le) g(names.) p Fp 0 4133 a(point-size) p Ft 28 w(\(optional\)) p Fp 0 4242 a(pixel-size) p Ft 28 w(\(optional\)) p Fp 0 4352 a(dpi) p Ft 29 w(\(optional\)) p Fp 0 4461 a(magnification) p Ft 27 w(\(optional\)) p Fp 0 4571 a(properties) p Ft 28 w(\(optional\)) p Fs 0 4806 a(6.26) 68 b(Mo) 7 b(jiky) l(o) 46 b(fon) l(t) g(mapping) f(class) p Ft 125 5051 a(This) 27 b(fon) m(t) h(driv) m(er) g(is) g(sp) s(eci\014c) g(to) g(the) h(Mo) 5 b(jiky) m(o) 29 b(fon) m(t) g(\014les,) f(whic) m(h) g(is) g(a) h(h) m (uge) f(collection) i(\(more) f(than) f(80) 0 5161 y(thousand\)) i(of) h (Kanji) f(c) m(haracters.) 43 b(\(Access) p Fp 32 w (http://www.mojikyo.gr.j) o(p/) p Ft 24 w(for) 31 b(detail.\)) 43 b(The) 30 b(Mo) 5 b(jiky) m(o) 0 5271 y(fon) m(t) 31 b(is) g(supplied) e(b) m(y) i(a) g(set) g(of) g(fon) m(t) g(\014les,) g (since) g(the) f(n) m(um) m(b) s(er) g(of) g(c) m(haracters) j(is) d (to) s(o) i(h) m(uge) e(to) i(con) m(tain) g(in) e(a) 0 5380 y(single) h(fon) m(t) g(\014le.) 125 5516 y(The) 42 b(Mo) 5 b(jiky) m(o) 44 b(fon) m(t) g(de\014nes) e(its) h(o) m(wn) g(c) m(haracter) h(enco) s(ding,) i(staring) d(from) g(1) g(and) f(eac) m(h) i(c) m(haracter) 0 5626 y(has) 37 b(its) h(o) m(wn) f(c) m(haracter) i (co) s(de.) 62 b(\(Character) 38 b(co) s(des) g(are) f(not) h(the) g (co) s(des) f(in) g(a) h(fon) m(t) g(\014le.\)) 62 b(The) 37 b(Mo) 5 b(jiky) m(o) 0 5735 y(fon) m(t) 40 b(set) g(is) g(supplied) e (b) m(y) h(b) s(oth) g(T) -8 b(rueT) m(yp) s(e) 39 b(and) f(T) m(yp) s (e) h(1) h(formats.) 69 b(A) 39 b(single) h(c) m(haracter) i(space) e (of) f(the) 0 5845 y(Mo) 5 b(jiky) m(o) 34 b(is) f(divided) f(in) m(to) h(fon) m(t) h(\014le) e(n) m(um) m(b) s(er) g(and) g(c) m(haracter) i (co) s(de) f(in) f(a) h(fon) m(t) g(\014le.) 47 b(This) 32 b(means) h(that) g(w) m(e) 0 5954 y(m) m(ust) e(compute) g(fon) m(t) h (\014le) f(among) g(man) m(y) g(fon) m(t) h(\014les) e(and) h(co) s(de) g(p) s(oin) m(t) g(in) g(a) g(fon) m(t) g(\014le) g(to) h(obtain) f(a) h (glyph) e(of) p dyy eop end %%Page: 59 60 TeXDict begin 59 59 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(59) 0 365 y(Mo) 5 b(jiky) m(o) 31 b(c) m(haracters.) 42 b(T) -8 b(o) 31 b(a) m(v) m(oid) g(suc) m(h) e(complex) i(pro) s(cedure,) e (this) g(fon) m(t) h(driv) m(er) g(pro) m(vides) g(a) g(virtual) g (single) 0 475 y(fon) m(t.) 125 617 y(Note) e(that) g(this) f(fon) m(t) h(driv) m(er) f(only) g(delegates) i(requested) e(c) m(haracters) i(to) f(other) f(fon) m(t) h(driv) m(er) f(\(T) -8 b(rueT) m(yp) s(e) 0 727 y(or) 34 b(T) m(yp) s(e) g(1\).) 53 b(Therefore,) 35 b(T) -8 b(rueT) m(yp) s(e) 33 b(and/or) h(T) m(yp) s(e) g(1) h(fon) m (t) f(driv) m(er) g(m) m(ust) g(b) s(e) g(con\014gured) f(in) h(VFlib) h (and) 0 836 y(they) c(m) m(ust) f(b) s(e) g(prop) s(op) s(ery) e(set) j (up) e(in) h(a) h(v\015ib) s(cap) e(\014le.) p Fm 0 978 a(F) -8 b(on) m(t) 32 b(class) f(name:) p Fp 40 w(mojikyo-mapper) p Fm 0 1120 a(Capabilities) g(for) g(fon) m(t) g(class) f(default:) p Fp 0 1291 a(properties) p Ft 28 w(\(optional\)) p Fp 0 1401 a(variable-values) p Ft 26 w(\(optional\)) p Fm 0 1543 a(Capabilities) h(for) g(fon) m(t) g(de\014nition:) p Fp 0 1713 a(font-class) p Ft 28 w(\(essen) m(tial\)) 480 1823 y(|) f(A) h(fon) m(t) g(class) g(name.) 40 b(This) 30 b(m) m(ust) g(b) s(e) p Fp 30 w(mojikyo-mapper) p Ft(.) p Fp 0 1990 a(division-scheme) p Ft 26 w(\(optional\)) 480 2100 y(Mapping) j(sc) m(heme) h(from) f(the) g(Mo) 5 b(jiky) m(o) 35 b(c) m(haracter) g(space) e(to) h(real) g(fon) m(t) g (\014les) f(is) g(di\013eren) m(t) h(b) m(y) 480 2209 y(real) 44 b(fon) m(t) g(\014le) g(format) f(\(T) -8 b(rueT) m(yp) s(e/T) m(yp) s(e1\).) 80 b(This) 43 b(capabilit) m(y) i (de\014nes) e(whic) m(h) g(mapping) 480 2319 y(sc) m(heme) 31 b(is) g(used.) 480 2457 y(If) p Fp 21 w(truetype) p Ft 19 w(is) 21 b(giv) m(en) h(for) f(this) g(capabilit) m(y) -8 b(,) 25 b(underla) m(ying) c(fon) m(t) h(\014les) f(are) h(in) f(T) -8 b(rueT) m(yp) s(e) 20 b(format.) 480 2567 y(If) p Fp 39 w(type1) p Ft 39 w(is) 39 b(giv) m(en) i(for) f(this) g(capabilit) m (y) -8 b(,) 44 b(underla) m(ying) c(fon) m(t) g(\014les) g(are) g(in) f (T) m(yp) s(e) h(1) g(format.) 480 2676 y(Default) 31 b(v) -5 b(alue) 31 b(for) f(this) h(capabilit) m(y) h(is) p Fp 30 w(truetype) p Ft(.) 480 2815 y(Aliases) 27 b(of) g(division) f (sc) m(heme) h(names) f(are) h(de\014ned) e(as) h(follo) m(ws:) p Fp 40 w(ttf) p Ft 25 w(is) h(an) f(alias) h(of) p Fp 26 w(truetype) p Ft(,) 480 2924 y(and) p Fp 30 w(pfb) p Ft 29 w(is) k(an) f(alias) i(of) p Fp 30 w(type1) p Ft(.) p Fp 0 3091 a(subfont-name-format) p Ft 25 w(\(optional\)) 480 3201 y(This) 50 b(capabilit) m(y) j(de\014nes) d(format) h(of) g(fon) m (t) g(\014le) g(names.) 102 b(If) p Fp 50 w(truetype) p Ft 49 w(is) 50 b(selected) j(for) p Fp 480 3310 a(division-scheme) p Ft 20 w(capabilit) m(y) -8 b(,) p Fp 27 w(Mojik\045d.ttf) p Ft 21 w(is) 24 b(assumed) f(for) h(this) g(capabilit) m(y) h(b) m(y) f (default.) p Fp 480 3420 a(\045d) p Ft 36 w(in) p Fp 37 w(Mojik\045d.ttf) p Ft 34 w(is) 36 b(substituted) h(b) m(y) f(fon) m (t) i(n) m(um) m(b) s(er,) f(starting) h(from) e(101.) 62 b(If) p Fp 36 w(type1) p Ft 35 w(is) 480 3529 y(selected) 32 b(for) p Fp 31 w(division-scheme) p Ft 26 w(capabilit) m(y) -8 b(,) p Fp 34 w(mo\045dm\04502d.pfb) p Ft 27 w(is) 30 b(assumed) g(for) h(this) f(capa-) 480 3639 y(bilit) m(y) 35 b(b) m(y) f(default.) 51 b(The) 33 b(\014rst) p Fp 34 w(\045d) p Ft 33 w(in) p Fp 33 w(mo\045dm\04502d.pfb) p Ft 31 w(is) g(a) i(ma) 5 b(jor) 34 b(fon) m(t) g(n) m(um) m(b) s(er,) g (starting) 480 3749 y(from) d(101.) 47 b(The) 31 b(second) p Fp 32 w(\045d) p Ft 31 w(in) p Fp 32 w(mo\045dm\04502d.pfb) p Ft 28 w(is) h(a) g(minor) g(fon) m(t) g(n) m(um) m(b) s(er,) f (starting) i(from) 480 3858 y(6.) 480 3997 y(In) d(case) i(y) m(ou) f (w) m(an) m(t) h(to) f(use) g(a) g(fon) m(t) g(name) g(format) g(other) g(than) g(describ) s(ed) e(ab) s(o) m(v) m(e,) k(this) d(capa-) 480 4106 y(bilit) m(y) c(should) e(b) s(e) g(de\014ned.) 38 b(Note) 26 b(that) f(format) h(sting) f(should) f(con) m(tain) i (exactly) h(one) p Fp 25 w(\045d) p Ft 24 w(if) e(y) m(ou) 480 4216 y(select) p Fp 37 w(truetype) p Ft 34 w(division) 35 b(sc) m(heme,) k(and) c(exactly) i(t) m(w) m(o) p Fp 37 w(\045d) p Ft(s) e(if) h(y) m(ou) g(select) p Fp 37 w(type1) p Ft 34 w(division) 480 4325 y(sc) m(heme.) p Fp 0 4492 a(truetype-subfont-encodin) o(g) p Ft 24 w(\(optional\)) 480 4602 y(This) k(capabilit) m(y) i(has) e(e\013ect) i(only) f(when) p Fp 39 w(truetype) p Ft 39 w(division) f(sc) m(heme) h(is) g(selected.) 72 b(This) 480 4711 y(capabilit) m(y) 46 b(selects) g(c) m(haracter) g (enco) s(ding) e(sc) m(heme) h(of) f(underla) m(ying) g(T) -8 b(rueT) m(yp) s(e) 44 b(fon) m(t) g(\014les.) 480 4821 y(If) p Fp 36 w(unicode) p Ft 34 w(is) 37 b(giv) m(en) g(to) h(this) e (capabilit) m(y) -8 b(,) 40 b(underla) m(ying) d(T) -8 b(rueT) m(yp) s(e) 35 b(fon) m(ts) i(are) g(enco) s(ded) f(in) 480 4931 y(Unico) s(de.) 75 b(If) p Fp 41 w(iso-2022) p Ft 39 w(\(as) 42 b(aliases,) p Fp 46 w(iso2022) p Ft 40 w(or) p Fp 41 w(jis) p Ft 41 w(can) g(b) s(e) f(used\)) g(is) h(giv) m (en) g(to) h(this) 480 5040 y(capabilit) m(y) -8 b(,) 33 b(underla) m(ying) d(T) -8 b(rueT) m(yp) s(e) 30 b(fon) m(ts) g(are) h (enco) s(ded) f(in) g(ISO) f(2022) k(\(JIS\).) 480 5178 y(Default) 23 b(v) -5 b(alue) 23 b(is) p Fp 22 w(unicode) p Ft(,) f(whic) m(h) g(is) g(the) g(same) h(as) f(the) h(the) f(Mo) 5 b(jiky) m(o) 24 b(fon) m(t) e(\014les) h(in) e(T) -8 b(rueT) m(yp) s(e) 480 5288 y(format.) p Fp 0 5455 a(properties) p Ft 28 w(\(optional\)) p Fs 0 5703 a(6.27) 68 b(Example) 46 b(v\015ib) t(cap) f(1) p Ft 125 5954 a(This) 29 b(example) i(v\015ib) s (cap) f(is) g(for) g(general) i(use.) p dyy eop end %%Page: 60 61 TeXDict begin 60 60 bop Ft 0 -116 a(60) 3198 b(VFlib) 31 b(3.6.14) p Fp 240 365 a(;;) 47 b(-------------------------) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o (---) 240 475 y(;;) 143 b(VFlib) 46 b(Default) 240 584 y(;;) h(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 694 y(\(define-default) 91 b(VFlib) 335 804 y(;;) 48 b(hint) e(to) h(find) g(font) g(class) f(from) h(font) f(name) h(for) g (fast) g(font) f(open) 335 913 y(\(extension-hints) 92 b(\(".bdf") 45 b(bdf\)) i(\(".pcf") f(pcf\)) g(\(".hbf") g(hbf\)) 1195 1023 y(\(".ttf") f(truetype\)) h(\(".ttc") f(truetype\)) 1195 1132 y(\(".pfa") g(type1\)) h(\(".pfb") g(type1\)) 1195 1242 y(\("pk") g(TeX\)) h(\("gf") f(gf\)) h(\("tfm") f(tfm\)\)) 335 1352 y(;;) i(implicit) d(font) i(classes) 335 1461 y (\(implicit-font-classes) 90 b(pcf) 47 b(bdf) g(hbf) g(truetype) e (type1) i(zeit) f(jg) h(gf) h(tfm\)) 335 1680 y(;;) g(uncompression) c (programs) 335 1790 y(\(uncompression-programs) 90 b(\(".Z") 46 b("zcat"\)) g(\(".gz") g("gzip) g(-cd"\)\)) 335 2009 y(;;) i(a) f(list) g(of) g(default) f(values) g(of) h(variables) 335 2119 y(;;) h(*Note*) e("variable-values") d(must) j(come) h(before) f (variable) g(uses) 335 2228 y(\(variable-values) 92 b(\(TeX_DPI) 713 b("300"\)) 1195 2338 y(\(TeX_USE_KPATHSEA) 281 b("Yes"\)) 1195 2447 y(\(TeX_KPATHSEA_MODE) 233 b("cx"\)) 1195 2557 y (\(TeX_KPATHSEA_PROGRAM) 89 b("/usr/local/bin/xldvi"\)\)) 335 2776 y(;;) 48 b(kpathsea:) d(enabled/disabled) 335 2886 y(\(use-kpathsea) 522 b($TeX_USE_KPATHSEA\)) 335 2995 y(;;) 48 b(kpathsea) d(mode) i(\(e.g.,) f("cx"\)) 335 3105 y(\(kpathsea-mode) 474 b($TeX_KPATHSEA_MODE\)) 335 3215 y(;;) 48 b(kpathsea) d(program) h(name) h(\(e.g.,) f ("/usr/local/bin/xdvi"\)) 335 3324 y(\(kpathsea-program-name) 90 b($TeX_KPATHSEA_PROGRAM\)) 335 3543 y(;;) 48 b(encoding/charset) 43 b(conversion) i(files) 335 3653 y(\(code-conversion-files) 383 3763 y("iso8859-1_unicode.ccv") d("iso8859-2_unicode.ccv") f ("iso8859-3_unicode.ccv") 383 3872 y("iso8859-4_unicode.ccv") h ("iso8859-5_unicode.ccv") f("iso8859-6_unicode.ccv") 383 3982 y("iso8859-7_unicode.ccv") h("iso8859-8_unicode.ccv") f ("iso8859-9_unicode.ccv") 383 4091 y("jisx0201_unicode.ccv") h ("jisx0208_unicode.ccv") g("jisx0212_unicode.ccv") 383 4201 y("ksc5601_unicode.ccv") 383 4311 y("gb12345_unicode.ccv") g ("gb2312_unicode.ccv") 383 4420 y("big5_unicode.ccv") h ("cns11643_unicode.ccv") 383 4530 y("iso8859-5_koi8-r.ccv") f ("koi8-r_iso8859-5.ccv") g("koi8-r_unicode.ccv"\)\)) 240 4749 y(;;) 47 b(-------------------------) o(----) o(---) o(----) o (----) o(---) o(----) o(----) o(---) o(----) o(----) o(---) 240 4858 y(;;) 143 b(BDF) 47 b(Font) f(Class) h(Default) 240 4968 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 5078 y(\(define-default) 91 b(bdf) 335 5187 y(;;) 48 b(font) e(directories) 335 5297 y(\(font-directories) 91 b("/usr/local/share/fonts/X) o(11//) o("\)) 335 5406 y(;;) 48 b(extensions) d(of) i(compressed) e(font) h(files) h(that) f (this) h(font) g(class) f(supports) 335 5516 y (\(compression-extensions) c(".gz") k(".Z"\)) 335 5626 y(;;) i(default) d(values) i(for) f(fonts) h(of) g(this) g(font) f (class) 335 5735 y(\(variable-values) 187 b(\(VAR1) 46 b(\("PROP1") g("VAL1"\)\)) 93 b(;) 48 b(just) e(for) h(debugging...) 1290 5845 y(\(VAR2) f(\("PROP2") g("VAL2"\)\)) 1290 5954 y(\(VARX) g(\("PROPX") g("VFlib-VALX"\)\)) e(\)) p dyy eop end %%Page: 61 62 TeXDict begin 61 61 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(61) p Fp 335 365 a(;;) 48 b(properties) d(for) i(all) f(fonts) h(of) g(this) g (font) f(class) 335 475 y(\(properties) f(\("FONT_CLASS") f("BDF"\)\)) i (\)) 240 694 y(;;) h(-------------------------) o(----) o(---) o(----) o (----) o(---) o(----) o(----) o(---) o(----) o(----) o(---) 240 804 y(;;) 143 b(PCF) 47 b(Font) f(Class) h(Default) 240 913 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 1023 y(\(define-default) 91 b(pcf) 335 1132 y(;;) 48 b(font) e(directories) 335 1242 y(\(font-directories) 91 b("/usr/X11R6/lib/X11/fonts) o(//") 1242 1352 y ("/usr/local/X11R6/lib/X11) o(/fon) o(ts//) o(") 1242 1461 y("/usr/openwin/lib/X11/fon) o(ts//) o(") 1242 1571 y("/usr/X386/lib/X11/fonts/) o(/") 1242 1680 y ("/usr/XFree86/lib/X11/fon) o(ts//) o(") 1242 1790 y ("/usr/X11/lib/X11/fonts//) o(") 1242 1900 y("/usr/local/lib/X11/fonts) o(//") 1242 2009 y("/usr/X11R5/lib/X11/fonts) o(//") 1242 2119 y("/usr/local/X11R5/lib/X11) o(/fon) o(ts//) o(") 1242 2228 y("/usr/local/share/fonts/X) o(11//) o("\)) 335 2338 y(;;) 48 b(extensions) d(of) i(compressed) e(font) h(files) h (that) f(this) h(font) g(class) f(supports) 335 2447 y(\(compression-extensions) c(".gz") k(".Z"\)) 335 2557 y(;;) i(properties) d(for) i(all) f(fonts) h(of) g(this) g(font) f (class) 335 2667 y(\(properties) f(\("FONT_CLASS") f("PCF"\)\)) 94 b(\)) 240 2886 y(;;) 47 b(-------------------------) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o(---) 240 2995 y(;;) 143 b(HBF) 47 b(Font) f(Class) h(Default) 240 3105 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 3215 y(\(define-default) 91 b(hbf) 335 3324 y(;;) 48 b(font) e(directories) 335 3434 y(\(font-directories) 91 b("/usr/local/share/fonts/H) o(BF//) o("\)) 335 3543 y(;;) 48 b(extensions) d(of) i(compressed) e(font) h(files) h(that) f (this) h(font) g(class) f(supports) 335 3653 y (\(compression-extensions) c(".gz") k(".Z"\)) 335 3763 y(;;) i(properties) d(for) i(all) f(fonts) h(of) g(this) g(font) f (class) 335 3872 y(\(properties) f(\("FONT_CLASS") f("HBF"\)\)) 94 b(\)) 240 4091 y(;;) 47 b(-------------------------) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o(---) 240 4201 y(;;) g(TrueType) f(Font) g(Class) h(Default) 240 4311 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 4420 y(\(define-default) 91 b(truetype) 335 4530 y(;;) 48 b(font) e(directories) 335 4639 y(\(font-directories) 91 b("TEXMF") j(;) 47 b(-) h(a) f(special) f(name) h(to) g(search) f(by) h (`kpathsea') 1242 4749 y("/usr/local/share/fonts/b) o(akom) o(a/tt) o (f/") 1242 4858 y("/usr/local/share/fonts/F) o(ontC) o(ity2) o(//") 1242 4968 y("/usr/local/share/fonts/D) o(ynaF) o(ont-) o(Pre) o(mium) o (30/w) o(in9) o(5//") 1242 5078 y("/usr/local/share/fonts/D) o(ynaF) o (ont-) o(Spe) o(cial) o(Pack) o(1/w) o(in95) o(//") 1242 5187 y("/usr/local/share/fonts/T) o(rueT) o(ypeW) o(orl) o(d-Va) o (lueF) o(ont) o(141/) o(/") 1242 5297 y("/usr/local/share/fonts/F) o (ontA) o(sia/) o(/") 1242 5406 y("/usr/local/share/fonts/F) o(ontG) o (arde) o(n/t) o(tf//) o(") 90 b(\)) 335 5516 y(;;) 48 b(debugging) d(flags) 142 b(\('*') 46 b(selects) g(all\)) 335 5626 y(\(debug) h(""\)) 335 5735 y(;;) h(properties) d(for) i(all) f (fonts) h(of) g(this) g(font) f(class) 335 5845 y(\(properties) f (\("FONT_CLASS") f("TrueType"\)\)) 93 b(\)) p dyy eop end %%Page: 62 63 TeXDict begin 62 62 bop Ft 0 -116 a(62) 3198 b(VFlib) 31 b(3.6.14) p Fp 240 365 a(;;) 47 b(-------------------------) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o (---) 240 475 y(;;) g(Type1) g(Font) f(Class) h(Default) 240 584 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 694 y(\(define-default) d(type1) 335 804 y(;;) k(font) e(\(pfa,) h (pfb\)) f(directories) 335 913 y(\(font-directories) e("TEXMF") 93 b(;) 48 b(-) f(a) g(special) f(name) h(to) g(search) f(by) h (`kpathsea') 1195 1023 y("/usr/local/share/fonts) o(/ba) o(koma) o (/pfb) o(/"\)) 335 1132 y(;;) h(AFM) f(directories) 335 1242 y(\(afm-directories) d("TEXMF") 141 b(;) 48 b(-) f(a) g(special) f (name) h(to) g(search) f(by) h(`kpathsea') 1147 1352 y("/usr/local/share/fonts/) o(bak) o(oma/) o(afm/) o("\)) 335 1461 y(;;) h(T1Lib) e(logfile) g(output) g(level:) g("none",) g ("error",) f("warning",) g("stat",) h("debug") 335 1571 y(\(log-level) f("none"\)\)) 240 1790 y(;;) i (-------------------------) o(----) o(---) o(----) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) 240 1900 y(;;) 143 b(Syotrai) 45 b(Club) i(Font) g(Class) f(Default) 240 2009 y(;;) h(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 2119 y(\(define-default) 91 b(zeit) 335 2228 y(;;) 48 b(filename) d(extensions) g(\("vf") i(for) f("mincho.vf{1,2}"\)) 335 2338 y(\(filename-extensions) 90 b(".vf"\)) 335 2447 y(;;) 48 b(font) e(directories) 335 2557 y(\(font-directories) 139 b("/usr/local/share/fonts/) o(Wata) o(nabe) o(//") 1290 2667 y("/usr/local/share/fonts/) o(Wada) o(Lab/) o(/"\)) 335 2776 y(;;) 48 b(properties) d(for) i(all) f(fonts) h(of) g(this) g (font) f(class) 335 2886 y(\(properties) 93 b(\("FONT_CLASS") 44 b("ZEIT"\)) 956 2995 y(\("CHARSET_REGISTRY") e("jisx0208.1983"\)) 956 3105 y(\("CHARSET_ENCODING") g("0"\)) 47 b(\)\)) 240 3324 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 3434 y(;;) 143 b(JG) 47 b(Font) f(Class) h(Default) 240 3543 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 3653 y(\(define-default) 91 b(jg) 335 3763 y(;;) 48 b(filename) d (extensions) g(\("fn") i(for) f("zkyo0by.fn{0,1,2}"\)) 335 3872 y(\(filename-extensions) d(".fn"\)) 335 3982 y(;;) 48 b(font) e(directories) 335 4091 y(\(font-directories) 91 b("/usr/local/share/fonts/J) o(G-Fo) o(nts/) o(/"\)) 335 4201 y(;;) 48 b(properties) d(for) i(all) f(fonts) h(of) g(this) g (font) f(class) 335 4311 y(\(properties) 93 b(\("FONT_CLASS") 44 b("JG"\)) 956 4420 y(\("CHARSET_REGISTRY") e("jisx0208.1983"\)) 956 4530 y(\("CHARSET_ENCODING") g("0"\)\)\)) 240 4749 y(;;) 47 b(-------------------------) o(----) o(---) o(----) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) 240 4858 y(;;) 143 b(TeX-related) 44 b(Font) j(Class) f(Default) g(and) h(TeX) g (Font) g(Mapper) 240 4968 y(;;) g(-------------------------) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o (---) 240 5078 y(\(define-default) 91 b(TeX) 335 5187 y(;;) 48 b(TFM) f(file) f(directories) 335 5297 y(\(tfm-directories) 92 b("TEXMF") 1195 5406 y("/usr/local/share/fonts) o(/ba) o(koma) o(/tfm) o (/"\)) 335 5516 y(;;) 48 b(possible) d(extensions) g(of) i(TFM) g (files) 335 5626 y(\(tfm-filename-extensions) 89 b(".tfm"\)) 335 5735 y(;;) 48 b(font) e(name) h(mapping) f(rules) 335 5845 y(\(font-mapping) 383 5954 y(\(\(ascii-jtex-kanji) d ("\045f.jtex"\)) 93 b("min*") 46 b("goth*") g("tmin*") f("tgoth*"\)) p dyy eop end %%Page: 63 64 TeXDict begin 63 63 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(63) p Fp 383 365 a(\(\(type1) 46 b("\045f.pfb") g(point-size-from-tfm) c (\(magnification-adjustment) f(1.0\)\)) 479 475 y(*\)) 383 584 y(\(\(pk) 47 b("\045f.\045dpk"\)) e(\(gf) i("\045f.\045dgf"\)) 92 b(*\)) 383 694 y(\(\(tfm) 47 b("\045f.\045dtfm"\)) 92 b(*\)\)) 335 804 y(;;) 48 b(accuracy) d(of) i(device) f(resolutions,) f (used) i(with) f('resolution-corrections') 335 913 y (\(resolution-accuracy) d(0.02\)) 335 1023 y(;;) 48 b(font) e (resolution) f(values) h(for) h(each) g(device) f(resolutions.) 335 1132 y(\(resolution-corrections) 383 1242 y(\(240) 95 b(;;) 47 b(sparcptr) 431 1352 y(240) 95 b(263) f(288) h(312) f(346) h (415) g(498) f(597\)) 383 1461 y(\(300) h(;;) 47 b(cx) 431 1571 y(300) 95 b(329) f(360) h(432) f(518) h(622) g(746) f(896) 47 b(1075) g(1290) 94 b(240) 47 b(270\)) 383 1680 y(\(400) 95 b(;;) 47 b(sparcptr) 431 1790 y(400) 95 b(438) f(480) h(576) f(691) h (829) g(995) 47 b(1194) f(1433) h(1720) 94 b(320) 47 b(360\)) 383 1900 y(\(600) 95 b(;;) 47 b(ljfour) 431 2009 y(600) 95 b(657) f(720) h(864) 47 b(1037) f(1244) h(1493) g(1792) f (2150) h(2580) 94 b(480) 47 b(540\)\)) 335 2119 y(;;) h(default) d (device) i(resolution) 335 2228 y(\(dpi) g($TeX_DPI\)\)) 240 2447 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 2557 y(;;) 143 b(TeX) 47 b(GF) g(Font) f(Class) h(Default) 240 2667 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 2776 y(\(define-default) 91 b(gf) 335 2886 y(;;) 48 b(font) e (directories) 335 2995 y(\(font-directories) 91 b("TEXMF") 1242 3105 y("/usr/local/TeX/gf//"\)) 335 3215 y(;;) 48 b(properties) d(for) i (all) f(fonts) h(of) g(this) g(font) f(class) 335 3324 y(\(properties) 93 b(\("FONT_CLASS") 44 b("GF"\)\)) i(\)) 240 3543 y(;;) h(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 3653 y(;;) 143 b(TeX) 47 b(PK) g(Font) f(Class) h(Default) 240 3763 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 3872 y(\(define-default) 91 b(pk) 335 3982 y(;;) 48 b(font) e (directories) 335 4091 y(\(font-directories) 91 b("TEXMF") 1242 4201 y("/usr/local/TeX/pk//"\)) 335 4311 y(;;) 48 b(properties) d(for) i (all) f(fonts) h(of) g(this) g(font) f(class) 335 4420 y(\(properties) 93 b(\("FONT_CLASS") 44 b("PK"\)\)) i(\)) 240 4639 y(;;) h(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 4749 y(;;) 143 b(TeX) 47 b(TFM) f(Font) h(Class) f(Default) 240 4858 y(;;) h(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 4968 y(\(define-default) 91 b(tfm) 335 5078 y(;;) 48 b(font) e(directories) 335 5187 y(\(font-directories) 91 b("TEXMF") 1242 5297 y("/usr/local/TeX/tfm//"\)) 335 5406 y(;;) 48 b(glyph) e(style:) g("fill") g(\(all) h(pixels) f (black\)) g(or) h("empty") f(\(all) h(pixels) f(white\)) 335 5516 y(\(glyph-style) 93 b("fill"\)) 335 5626 y(;;) 48 b(properties) d(for) i(all) f(fonts) h(of) g(this) g(font) f(class) 335 5735 y(\(properties) 93 b(\("FONT_CLASS") 44 b("TFM"\)\)) i(\)) 240 5954 y(;;) h(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) p dyy eop end %%Page: 64 65 TeXDict begin 64 64 bop Ft 0 -116 a(64) 3198 b(VFlib) 31 b(3.6.14) p Fp 240 365 a(;;) 143 b(ASCII-jTeX) 45 b(Kanji) h(Font) h (Class) f(Default) 240 475 y(;;) h(-------------------------) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o (---) 240 584 y(\(define-default) 91 b(ascii-jtex-kanji) 335 694 y(;;) 48 b(TFM) f(file) f(directories) 335 804 y(\(tfm-directories) 92 b("TEXMF"\)) 335 913 y(;;) 48 b(possible) d(extensions) g(of) i(TFM) g(files) 335 1023 y(\(tfm-filename-extensions) 42 b(".tfm"\)) 335 1132 y(;;) 48 b(Suffix) e(for) h(name) f(mapping) 335 1242 y(;;) i(\(e.g.,) e(implicit) f(font) i("min10.300pk") d(is) j (mapped) f(to) i("min10.jtex"\)) 335 1352 y (\(implicit-font-mapping-suf) o(fix) 41 b(".jtex"\)\)) 240 1571 y(;;) 47 b(-------------------------) o(----) o(---) o(----) o (----) o(---) o(----) o(----) o(---) o(----) o(----) o(---) 240 1680 y(;;) 143 b(Japanese) 45 b(Comic) i(Font) f(Class) h(Default) 240 1790 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 1900 y(\(define-default) 91 b(japanese-comic) 335 2009 y(;;) 48 b(debugging) d(flags) 142 b(\('*') 46 b(selects) g(all\)) 335 2119 y(\(debug) h("f"\)) 335 2228 y(;;) h(properties) d(for) i(all) f (fonts) h(of) g(this) g(font) f(class) 335 2338 y(\(properties) 93 b(\("FONT_CLASS") 44 b("JAPANESE-COMIC"\)) 956 2447 y (\("CHARSET_REGISTRY") e("jisx0208.1983"\)) 956 2557 y(\("CHARSET_ENCODING") g("0"\)\)\)) 240 2886 y(;;) 47 b(-------------------------) o(----) o(---) o(----) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) 240 2995 y(;;) 95 b(sample) 46 b(font) h(definitions) d(for) j(Japanese) f(TeX) 240 3215 y(\(define-font) e(jtex-min) 189 b(\(font-class) 45 b(pcf\)) i(\(font-file) e("jiskan24.pcf"\)\)) 240 3324 y(\(define-font) f(jtex-goth) 141 b(\(font-class) 45 b(pcf\)) i(\(font-file) e("jiskan24.pcf"\)\)) 240 3434 y(\(define-font) f(jtex-tmin) 141 b(\(font-class) 45 b(pcf\)) i(\(font-file) e("jiskan24.pcf"\)\)) 240 3543 y(\(define-font) f(jtex-tgoth) 93 b(\(font-class) 45 b(pcf\)) i(\(font-file) e("jiskan24.pcf"\)\)) 240 3763 y(;;) i(Definitions) e(for) i("min10") f(fonts.) g(These) g(fonts) g (are) h(used) g(by) 240 3872 y(;;) g('name) g(mapping') e(feature) h (of) h(ascii-jtex-kanji) c(driver.) 240 3982 y(;;) k(\(e.g.,) f ("min10.400pk") e(is) k(mapped) e(to) h("min10.jtex"\)) 240 4091 y(\(define-macro) d(min-common) 335 4201 y(\(font-class) h (ascii-jtex-kanji\)) e(\(kanji-font) i(jtex-min\)) 335 4311 y(\(kanji-font-magnification) c(0.85\)) 47 b (\(metric-adjustment-file) 41 b("jiskan24.adj"\)\)) 240 4420 y(\(define-macro) j(goth-common) 335 4530 y(\(font-class) h (ascii-jtex-kanji\)) e(\(kanji-font) i(jtex-goth\)) 335 4639 y(\(kanji-font-magnification) c(0.85\)) 47 b (\(metric-adjustment-file) 41 b("jiskan24.adj"\)\)) 240 4749 y(\(define-macro) j(tmin-common) 335 4858 y(\(font-class) h (ascii-jtex-kanji\)) e(\(kanji-font) i(jtex-tmin\)) 335 4968 y(\(kanji-font-magnification) c(0.85\)) 335 5078 y(\(metric-adjustment-file) h("jiskan24v.adj"\)\)) 240 5187 y(\(define-macro) i(tgoth-common) 335 5297 y(\(font-class) h (ascii-jtex-kanji\)) e(\(kanji-font) i(jtex-tgoth\)) 335 5406 y(\(kanji-font-magnification) c(0.85\)) 335 5516 y(\(metric-adjustment-file) h("jiskan24v.adj"\)\)) 240 5626 y(\(define-font) i(min5.jtex) 237 b(\(kanji-font-point-size) 89 b(5\)) 95 b(min-common\)) 240 5735 y(\(define-font) 44 b(min6.jtex) 237 b(\(kanji-font-point-size) 89 b(6\)) 95 b(min-common\)) 240 5845 y(\(define-font) 44 b(min7.jtex) 237 b(\(kanji-font-point-size) 89 b(7\)) 95 b(min-common\)) 240 5954 y(\(define-font) 44 b(min8.jtex) 237 b(\(kanji-font-point-size) 89 b(8\)) 95 b(min-common\)) p dyy eop end %%Page: 65 66 TeXDict begin 65 65 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(65) p Fp 240 365 a(\(define-font) 44 b(min9.jtex) 237 b (\(kanji-font-point-size) 89 b(9\)) 95 b(min-common\)) 240 475 y(\(define-font) 44 b(min10.jtex) 189 b(\(kanji-font-point-size) 41 b(10\)) 95 b(min-common\)) 240 584 y(\(define-font) 44 b(goth5.jtex) 189 b(\(kanji-font-point-size) 89 b(5\)) 95 b(goth-common\)) 240 694 y(\(define-font) 44 b(goth6.jtex) 189 b(\(kanji-font-point-size) 89 b(6\)) 95 b(goth-common\)) 240 804 y(\(define-font) 44 b(goth7.jtex) 189 b(\(kanji-font-point-size) 89 b(7\)) 95 b(goth-common\)) 240 913 y(\(define-font) 44 b(goth8.jtex) 189 b(\(kanji-font-point-size) 89 b(8\)) 95 b(goth-common\)) 240 1023 y(\(define-font) 44 b(goth9.jtex) 189 b(\(kanji-font-point-size) 89 b(9\)) 95 b(goth-common\)) 240 1132 y(\(define-font) 44 b(goth10.jtex) 141 b(\(kanji-font-point-size) 41 b(10\)) 95 b(goth-common\)) 240 1242 y(\(define-font) 44 b(tmin5.jtex) 189 b(\(kanji-font-point-size) 89 b(5\)) 95 b(tmin-common\)) 240 1352 y(\(define-font) 44 b(tmin6.jtex) 189 b(\(kanji-font-point-size) 89 b(6\)) 95 b(tmin-common\)) 240 1461 y(\(define-font) 44 b(tmin7.jtex) 189 b(\(kanji-font-point-size) 89 b(7\)) 95 b(tmin-common\)) 240 1571 y(\(define-font) 44 b(tmin8.jtex) 189 b(\(kanji-font-point-size) 89 b(8\)) 95 b(tmin-common\)) 240 1680 y(\(define-font) 44 b(tmin9.jtex) 189 b(\(kanji-font-point-size) 89 b(9\)) 95 b(tmin-common\)) 240 1790 y(\(define-font) 44 b(tmin10.jtex) 141 b(\(kanji-font-point-size) 41 b(10\)) 95 b(tmin-common\)) 240 1900 y(\(define-font) 44 b(tgoth5.jtex) 141 b(\(kanji-font-point-size) 89 b(5\)) 95 b(tgoth-common\)) 240 2009 y(\(define-font) 44 b(tgoth6.jtex) 141 b(\(kanji-font-point-size) 89 b(6\)) 95 b(tgoth-common\)) 240 2119 y(\(define-font) 44 b(tgoth7.jtex) 141 b(\(kanji-font-point-size) 89 b(7\)) 95 b(tgoth-common\)) 240 2228 y(\(define-font) 44 b(tgoth8.jtex) 141 b(\(kanji-font-point-size) 89 b(8\)) 95 b(tgoth-common\)) 240 2338 y(\(define-font) 44 b(tgoth9.jtex) 141 b(\(kanji-font-point-size) 89 b(9\)) 95 b(tgoth-common\)) 240 2447 y(\(define-font) 44 b(tgoth10.jtex) 93 b(\(kanji-font-point-size) 41 b(10\)) 95 b(tgoth-common\)) 240 2667 y(;;) 47 b (-------------------------) o(----) o(---) o(----) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) 240 2776 y(;;) g(EOF) p Fs 0 3043 a(6.28) 68 b(Example) 46 b(v\015ib) t(cap) f (2) p Ft 125 3291 a(This) 26 b(v\015ib) s(cap) f(\014le) i(is) g(an) g (example) g(for) g(T) 1561 3310 y(E) 1611 3291 y(X) g(D) m(VI) h(driv) m (ers.) 39 b(This) 26 b(v\015ib) s(cap) g(\014le) h(pro) m(vides) g(a) g (set) g(of) g(fon) m(ts) 0 3400 y(of) k(the) f(form) p Fk 30 w(NAME) p Fp(.) p Fk(DVI) p Fp 11 w(pk) p Ft 27 w(and) p Fk 30 w(NAME) p Fp(.pk) p Ft(.) 39 b(F) -8 b(or) 31 b(example,) p Fp 31 w(cmr10.300pk) p Ft 27 w(and) p Fp 30 w(cmr10.pk) p Ft(.) 125 3538 y(F) -8 b(or) 41 b(Japanese) g(Kanji) g (c) m(haracter) i(fon) m(ts) p Fp 41 w(min5) p Ft 40 w(...) p Fp 73 w(min10) p Ft(,) p Fp 42 w(goth5) p Ft 40 w(...) p Fp 73 w(goth10) p Ft(,) p Fp 42 w(tmin5) p Ft 39 w(..) p Fp 73 w(tmin10) p Ft(,) p Fp 0 3648 a(tgoth5) p Ft 27 w(...) p Fp 41 w(tgoth10) p Ft(,) 28 b(X) h(Windo) m(w) g(PCF) g (format) g(fon) m(t) p Fp 30 w(jiskan24.pcf) p Ft 26 w(is) g(used) f(via) p Fp 30 w(ascii-jtex-kanji) p Ft 0 3758 a(fon) m(t) j(driv) m(er.) 125 3896 y(Other) 26 b(fon) m(ts) h(are) g(solv) m(ed) h(in) e(PK) h(and) f(GF) h(format) g (fon) m(ts.) 40 b(If) 27 b(a) g(fon) m(t) g(is) g(not) g(a) m(v) -5 b(ailable) 29 b(in) e(these) g(formats,) 0 4005 y(a) 33 b(TFM) f(fon) m(t) h(is) f(used) f(to) i(pro) s(duce) e(a) p Fp 33 w(") p Ft(blac) m(k) p Fp(") p Ft 33 w(b) s(o) m(x.) 46 b(\(TFM) 33 b(\014les) f(are) g(metrics) h(\014les) f(and) g(do) g(not) h(conatin) 0 4115 y(glyph.) 40 b(But) 31 b(TFM) g(driv) m(er) f(in) g (VFlib) h(pro) s(duces) e(a) p Fp 30 w(") p Ft(b) s(o) m(x) p Fp(") p Ft 30 w(glyph) h(as) h(it) g(w) m(are) g(fon) m(t) f (\014les.\)) 125 4253 y(P) m(arameters) 36 b(of) g(device) h (resolution) f(and) g(magni\014cation) h(factor) f(for) g(the) g (function) p Fp 35 w(VF_OpenFont1\(\)) p Ft 0 4363 a(determines) 30 b(the) h(fon) m(t) g(size) g(and) f(fon) m(t) h(metrics) g(to) g(b) s (e) e(op) s(ened.) 125 4501 y(T) -8 b(o) 31 b(use) g(VFlib) h(with) f (this) g(v\015ib) s(cap) f(\014le,) i(I) f(recommend) g(to) h(op) s(en) e(fon) m(t) i(b) m(y) p Fp 31 w(VF_OpenFont1\() p Fk(name) p Fp(.pk,) p Fk 0 4611 a(dpi) p Fp(,) p Fk 29 w(dpi) p Fp(,) d(-1,) p Fk 30 w(mag) p Fp(,) p Fk 29 w(mag) p Fp 11 w(\)) p Ft(,) 40 b(where) p Fk 38 w(name) p Fp(.pk) p Ft 37 w(is) f(a) g(fon) m(t) g(name) g(\(e.g.,) p Fp 43 w(cmr10.pk) p Ft(\),) p Fj 39 w(dpi) p Ft 43 w(is) g(the) g(device) 0 4720 y(resolution) 28 b(in) f(dpi) f(\(e.g.,) p Fp 30 w(300) p Ft(\),) i(and) p Fj 26 w(mag) p Ft 36 w(is) f(the) h (magni\014cation) g(factor) h(\(e.g.,) p Fp 29 w(1.2) p Ft 27 w(for) e(magstep) h(1) f(fon) m(ts\).) p Fp 240 4858 a(;;) 47 b(-------------------------) o(----) o(---) o(----) o (----) o(---) o(----) o(----) o(---) o(----) o(----) o(---) 240 4968 y(;;) 143 b(VFlib) 46 b(Default) 240 5078 y(;;) h (-------------------------) o(----) o(---) o(----) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) 240 5187 y(\(define-default) d(VFlib) 335 5297 y(\(extension-hints) 92 b(\("pk") 46 b(TeX\)\)) 335 5406 y(\(implicit-font-classes\)) 335 5516 y(\(uncompression-programs) 90 b(\(".Z") 46 b("zcat"\)) g(\(".gz") g("gzip) g(-cd"\)\)) 335 5626 y(\(variable-values) 92 b(\(TeX_USE_KPATHSEA) 281 b("Yes"\)) 1195 5735 y(\(TeX_DPI) 713 b("300"\)) 94 b(;;) 47 b(or) g("600") 1195 5845 y(\(TeX_KPATHSEA_MODE) 233 b("cx"\)) 142 b(;;) 47 b(or) g("ljfour") 1195 5954 y(\(TeX_KPATHSEA_PROGRAM) 89 b("/usr/local/bin/xldvi"\)\)) p dyy eop end %%Page: 66 67 TeXDict begin 66 66 bop Ft 0 -116 a(66) 3198 b(VFlib) 31 b(3.6.14) p Fp 335 365 a(\(use-kpathsea) 522 b($TeX_USE_KPATHSEA\)) 335 475 y(\(kpathsea-mode) 474 b($TeX_KPATHSEA_MODE\)) 335 584 y(\(kpathsea-program-name) 90 b($TeX_KPATHSEA_PROGRAM\)) 335 694 y(\(code-conversion-files) 383 804 y("iso8859-1_unicode.ccv") 42 b("iso8859-2_unicode.ccv") f("iso8859-3_unicode.ccv") 383 913 y("iso8859-4_unicode.ccv") h("iso8859-5_unicode.ccv") f ("iso8859-6_unicode.ccv") 383 1023 y("iso8859-7_unicode.ccv") h ("iso8859-8_unicode.ccv") f("iso8859-9_unicode.ccv") 383 1132 y("jisx0201_unicode.ccv") h("jisx0208_unicode.ccv") g ("jisx0212_unicode.ccv") 383 1242 y("ksc5601_unicode.ccv") 383 1352 y("gb12345_unicode.ccv") g("gb2312_unicode.ccv") 383 1461 y("big5_unicode.ccv") h("cns11643_unicode.ccv") 383 1571 y("iso8859-5_koi8-r.ccv") f("koi8-r_iso8859-5.ccv") g ("koi8-r_unicode.ccv"\)\)) 240 1790 y(;;) 47 b (-------------------------) o(----) o(---) o(----) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) 240 1900 y(;;) 143 b(TeX-related) 44 b(Font) j(Class) f(Default) g(and) h(TeX) g (Font) g(Mapper) 240 2009 y(;;) g(-------------------------) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o (---) 240 2119 y(\(define-default) 91 b(TeX) 335 2228 y(\(tfm-directories) h("TEXMF"\)) 335 2338 y(\(tfm-filename-extensions) d(".tfm"\)) 335 2447 y(\(font-mapping) 383 2557 y(\(\(ascii-jtex-kanji) 43 b("\045f.jtex"\)) 93 b("min*") 46 b("goth*") g("tmin*") f ("tgoth*"\)) 383 2667 y(\(\(pk) i("\045f.\045dpk"\)) e(\(gf) i ("\045f.\045dgf"\)) 92 b(*\)) 383 2776 y(\(\(tfm) 47 b("\045f.\045dtfm"\)) d(*\)\)) 335 2886 y(\(resolution-accuracy) f (0.02\)) 335 2995 y(\(resolution-corrections) 383 3105 y(\(240) 95 b(;;) 47 b(sparcptr) 431 3215 y(240) 95 b(263) f(288) h (312) f(346) h(415) g(498) f(597\)) 383 3324 y(\(300) h(;;) 47 b(cx) 431 3434 y(300) 95 b(329) f(360) h(432) f(518) h(622) g(746) f (896) 47 b(1075) g(1290) 94 b(240) 47 b(270\)) 383 3543 y(\(400) 95 b(;;) 47 b(sparcptr) 431 3653 y(400) 95 b(438) f(480) h (576) f(691) h(829) g(995) 47 b(1194) f(1433) h(1720) 94 b(320) 47 b(360\)) 383 3763 y(\(600) 95 b(;;) 47 b(ljfour) 431 3872 y(600) 95 b(657) f(720) h(864) 47 b(1037) f(1244) h(1493) g(1792) f (2150) h(2580) 94 b(480) 47 b(540\)\)) 335 3982 y(\(dpi) g ($TeX_DPI\)\)) 240 4201 y(;;) g(-------------------------) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o (---) 240 4311 y(;;) 143 b(GF) 47 b(Font) f(Class) h(Default) 240 4420 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 4530 y(\(define-default) d(gf) 335 4639 y(\(font-directories) 91 b("TEXMF"\)\)) 240 4858 y(;;) 47 b(-------------------------) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o (---) 240 4968 y(;;) 143 b(PK) 47 b(Font) f(Class) h(Default) 240 5078 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 5187 y(\(define-default) d(pk) 335 5297 y(\(font-directories) 91 b("TEXMF"\)\)) 240 5516 y(;;) 47 b(-------------------------) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o (---) 240 5626 y(;;) 143 b(VF) 47 b(Font) f(Class) h(Default) 240 5735 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 5845 y(\(define-default) d(vf) 335 5954 y(\(font-directories) 91 b("TEXMF"\)) p dyy eop end %%Page: 67 68 TeXDict begin 67 67 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(67) p Fp 335 365 a(\(font-mapping) 383 475 y(\(\(type1) 46 b("\045f.pfb") g(point-size-from-tfm\)) 90 b(*\)) 47 b(\)) 335 584 y(\(open-style) e("try"\)) 237 b(;;) 47 b("none",) f("try",) g(or) h("require") 335 694 y(\(glyph-style) e ("fill"\)\)) 93 b(;;) 47 b("fill",) f(or) h("empty") 240 913 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 1023 y(;;) 143 b(TFM) 47 b(Font) f(Class) h(Default) 240 1132 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 1242 y(\(define-default) d(tfm) 335 1352 y(\(glyph-style) 93 b("fill"\)\)) 240 1571 y(;;) 47 b(-------------------------) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o (---) 240 1680 y(;;) 143 b(ASCII-JTeX) 45 b(Kanji) h(fonts) 240 1790 y(;;) h(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 1900 y(\(define-default) 91 b(ascii-jtex-kanji) 335 2009 y(\(tfm-directories) h("TEXMF"\)) 335 2119 y (\(implicit-font-mapping-suf) o(fix) 41 b(".jtex"\)\)) 240 2338 y(;;) 47 b(-------------------------) o(----) o(---) o(----) o (----) o(---) o(----) o(----) o(---) o(----) o(----) o(---) 240 2447 y(;;) g(Type1) g(Font) f(Class) h(Default) 240 2557 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 2667 y(\(define-default) d(type1) 335 2776 y(\(font-directories) 91 b("TEXMF"\)) 335 2886 y(\(afm-directories) 139 b("TEXMF"\)) 335 2995 y(\(log-level) 45 b("none"\)) 335 3105 y(\(dpi) i($TeX_DPI\)\)) 240 3324 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 3434 y(;;) g(TrueType) f(Font) g(Class) h(Default) 240 3543 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 3653 y(\(define-default) d(truetype) 335 3763 y(\(font-directories) 91 b("TEXMF"\)) 335 3872 y(\(platform-id) 45 b("microsoft"\)) 335 3982 y(\(dpi) i($TeX_DPI\)\)) 240 4201 y(;;) g (-------------------------) o(----) o(---) o(----) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) 240 4311 y(;;) 143 b(PCF) 47 b(Font) f(Class) h(Default) 240 4420 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 4530 y(\(define-default) 91 b(pcf) 335 4639 y(\(font-directories) g ("/usr/X11R6/lib/X11/fonts) o(//") 1242 4749 y ("/usr/local/X11R6/lib/X11) o(/fon) o(ts//) o(") 1242 4858 y("/usr/openwin/lib/X11/fon) o(ts//) o(") 1242 4968 y("/usr/X386/lib/X11/fonts/) o(/") 1242 5078 y ("/usr/XFree86/lib/X11/fon) o(ts//) o(") 1242 5187 y ("/usr/X11/lib/X11/fonts//) o(") 1242 5297 y("/usr/local/lib/X11/fonts) o(//") 1242 5406 y("/usr/X11R5/lib/X11/fonts) o(//") 1242 5516 y("/usr/local/X11R5/lib/X11) o(/fon) o(ts//) o(") 1242 5626 y("/usr/local/share/fonts/X) o(11//) o("\)) 335 5735 y(\(compression-extensions) 42 b(".gz") k(".Z"\)) 335 5845 y(\(dpi) h($TeX_DPI\)\)) p dyy eop end %%Page: 68 69 TeXDict begin 68 68 bop Ft 0 -116 a(68) 3198 b(VFlib) 31 b(3.6.14) p Fp 240 475 a(;;) 47 b(-------------------------) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o (---) 240 584 y(;;) 95 b(Japanese) 45 b(Kanji) i(fonts) f(using) h (standard) e(X11) i(PCF) g(fonts) 240 694 y(\(define-font) d(jtex-min) 189 b(\(font-class) 45 b(pcf\)) i(\(font-file) e("jiskan24.pcf"\)\)) 240 804 y(\(define-font) f(jtex-goth) 141 b(\(font-class) 45 b(pcf\)) i(\(font-file) e("jiskan24.pcf"\)\)) 240 913 y(\(define-font) f(jtex-tmin) 141 b(\(font-class) 45 b(pcf\)) i(\(font-file) e("jiskan24.pcf"\)\)) 240 1023 y(\(define-font) f(jtex-tgoth) 93 b(\(font-class) 45 b(pcf\)) i(\(font-file) e("jiskan24.pcf"\)\)) 240 1242 y(\(define-macro) f(min-common) 335 1352 y(\(font-class) h (ascii-jtex-kanji\)) e(\(kanji-font) i(jtex-min\)) 335 1461 y(\(kanji-font-magnification) c(0.85\)) 47 b (\(metric-adjustment-file) 41 b("jiskan24.adj"\)\)) 240 1571 y(\(define-macro) j(goth-common) 335 1680 y(\(font-class) h (ascii-jtex-kanji\)) e(\(kanji-font) i(jtex-goth\)) 335 1790 y(\(kanji-font-magnification) c(0.85\)) 47 b (\(metric-adjustment-file) 41 b("jiskan24.adj"\)\)) 240 1900 y(\(define-macro) j(tmin-common) 335 2009 y(\(font-class) h (ascii-jtex-kanji\)) e(\(kanji-font) i(jtex-tmin\)) 335 2119 y(\(kanji-font-magnification) c(0.85\)) 47 b (\(metric-adjustment-file) 41 b("jiskan24v.adj"\)\)) 240 2228 y(\(define-macro) j(tgoth-common) 335 2338 y(\(font-class) h (ascii-jtex-kanji\)) e(\(kanji-font) i(jtex-tgoth\)) 335 2447 y(\(kanji-font-magnification) c(0.85\)) 47 b (\(metric-adjustment-file) 41 b("jiskan24v.adj"\)\)) 240 2667 y(\(define-font) j(min5.jtex) 237 b(\(kanji-font-point-size) 89 b(5\)) 95 b(min-common\)) 240 2776 y(\(define-font) 44 b(min6.jtex) 237 b(\(kanji-font-point-size) 89 b(6\)) 95 b(min-common\)) 240 2886 y(\(define-font) 44 b(min7.jtex) 237 b(\(kanji-font-point-size) 89 b(7\)) 95 b(min-common\)) 240 2995 y(\(define-font) 44 b(min8.jtex) 237 b(\(kanji-font-point-size) 89 b(8\)) 95 b(min-common\)) 240 3105 y(\(define-font) 44 b(min9.jtex) 237 b(\(kanji-font-point-size) 89 b(9\)) 95 b(min-common\)) 240 3215 y(\(define-font) 44 b(min10.jtex) 189 b(\(kanji-font-point-size) 41 b(10\)) 95 b(min-common\)) 240 3324 y(\(define-font) 44 b(goth5.jtex) 189 b(\(kanji-font-point-size) 89 b(5\)) 95 b(goth-common\)) 240 3434 y(\(define-font) 44 b(goth6.jtex) 189 b(\(kanji-font-point-size) 89 b(6\)) 95 b(goth-common\)) 240 3543 y(\(define-font) 44 b(goth7.jtex) 189 b(\(kanji-font-point-size) 89 b(7\)) 95 b(goth-common\)) 240 3653 y(\(define-font) 44 b(goth8.jtex) 189 b(\(kanji-font-point-size) 89 b(8\)) 95 b(goth-common\)) 240 3763 y(\(define-font) 44 b(goth9.jtex) 189 b(\(kanji-font-point-size) 89 b(9\)) 95 b(goth-common\)) 240 3872 y(\(define-font) 44 b(goth10.jtex) 141 b(\(kanji-font-point-size) 41 b(10\)) 95 b(goth-common\)) 240 3982 y(\(define-font) 44 b(tmin5.jtex) 189 b(\(kanji-font-point-size) 89 b(5\)) 95 b(tmin-common\)) 240 4091 y(\(define-font) 44 b(tmin6.jtex) 189 b(\(kanji-font-point-size) 89 b(6\)) 95 b(tmin-common\)) 240 4201 y(\(define-font) 44 b(tmin7.jtex) 189 b(\(kanji-font-point-size) 89 b(7\)) 95 b(tmin-common\)) 240 4311 y(\(define-font) 44 b(tmin8.jtex) 189 b(\(kanji-font-point-size) 89 b(8\)) 95 b(tmin-common\)) 240 4420 y(\(define-font) 44 b(tmin9.jtex) 189 b(\(kanji-font-point-size) 89 b(9\)) 95 b(tmin-common\)) 240 4530 y(\(define-font) 44 b(tmin10.jtex) 141 b(\(kanji-font-point-size) 41 b(10\)) 95 b(tmin-common\)) 240 4639 y(\(define-font) 44 b(tgoth5.jtex) 141 b(\(kanji-font-point-size) 89 b(5\)) 95 b(tgoth-common\)) 240 4749 y(\(define-font) 44 b(tgoth6.jtex) 141 b(\(kanji-font-point-size) 89 b(6\)) 95 b(tgoth-common\)) 240 4858 y(\(define-font) 44 b(tgoth7.jtex) 141 b(\(kanji-font-point-size) 89 b(7\)) 95 b(tgoth-common\)) 240 4968 y(\(define-font) 44 b(tgoth8.jtex) 141 b(\(kanji-font-point-size) 89 b(8\)) 95 b(tgoth-common\)) 240 5078 y(\(define-font) 44 b(tgoth9.jtex) 141 b(\(kanji-font-point-size) 89 b(9\)) 95 b(tgoth-common\)) 240 5187 y(\(define-font) 44 b(tgoth10.jtex) 93 b(\(kanji-font-point-size) 41 b(10\)) 95 b(tgoth-common\)) 240 5297 y(;;) 47 b(-------------------------) o(----) o(---) o(----) o (----) o(---) o(----) o(----) o(---) o(----) o(----) o(---) 240 5406 y(;;) g(EOF) p dyy eop end %%Page: 69 70 TeXDict begin 69 69 bop Ft 0 -116 a(Chapter) 30 b(6:) 41 b(W) -8 b(riting) 31 b(a) g(v\015ib) s(cap) 2501 b(69) p Fs 0 365 a(6.29) 68 b(Example) 46 b(v\015ib) t(cap) f(3) p Ft 125 639 a(This) 29 b(is) i(an) f(example) h(for) f(T) 1096 659 y(E) 1146 639 y(X) h(D) m(VI) g(driv) m(ers.) 41 b(This) 29 b(v\015ib) s(cap) h(desgnates) h(VFlib) g(to) g(use) f(PK) g (\014les.) 41 b(F) -8 b(or) 0 749 y(missing) 30 b(PK) g(\014les,) h (blac) m(k) p Fp 31 w(") p Ft(b) s(o) m(xes) p Fp(") p Ft 30 w(b) m(y) f(TFM) h(fon) m(ts) g(are) f(used) g(as) h(substitutes) f(of) g(glyphs) g(of) h(PK) f(\014les) p Fp 240 913 a(;;) 47 b(-------------------------) o(----) o(---) o(----) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) 240 1023 y(;;) 143 b(VFlib) 46 b(Default) 240 1132 y(;;) h (-------------------------) o(----) o(---) o(----) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) 240 1242 y(\(define-default) d(VFlib) 335 1352 y(\(extension-hints) 92 b(\("pk") 46 b(TeX\)) h(\("gf") f(TeX\)\)) 335 1461 y (\(implicit-font-classes\)) 335 1571 y(\(uncompression-programs) 90 b(\(".Z") 46 b("zcat"\)) g(\(".gz") g("gzip) g(-cd"\)\)) 335 1680 y(\(variable-values) 92 b(\(TeX_USE_KPATHSEA) 281 b("Yes"\)) 1195 1790 y(\(TeX_DPI) 713 b("300"\)) 94 b(;;) 47 b(or) g("600") 1195 1900 y(\(TeX_KPATHSEA_MODE) 233 b("cx"\)) 142 b(;;) 47 b(or) g("ljfour") 1195 2009 y(\(TeX_KPATHSEA_PROGRAM) 89 b("/usr/local/bin/xldvi"\)\)) 335 2119 y(\(use-kpathsea) 522 b($TeX_USE_KPATHSEA\)) 335 2228 y(\(kpathsea-mode) 474 b($TeX_KPATHSEA_MODE\)) 335 2338 y(\(kpathsea-program-name) 90 b($TeX_KPATHSEA_PROGRAM\)\)) 240 2557 y(;;) 47 b (-------------------------) o(----) o(---) o(----) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) 240 2667 y(;;) 143 b(TeX-related) 44 b(Font) j(Class) f(Default) g(and) h(TeX) g (Font) g(Mapper) 240 2776 y(;;) g(-------------------------) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o (---) 240 2886 y(\(define-default) 91 b(TeX) 335 2995 y(\(tfm-directories) h("TEXMF") 1195 3105 y("/usr/local/lib/jtex/fo) o (nts) o(") 1195 3215 y("/usr/local/lib/tex/fon) o(ts") o(\)) 335 3324 y(\(tfm-filename-extensions) d(".tfm"\)) 335 3434 y(\(font-mapping) 383 3543 y(\(\(pk) 47 b("\045f.\045dpk"\)) e(*\)) 383 3653 y(\(\(tfm) i("\045f.\045dtfm"\)) d(*\)\)) 335 3763 y(\(resolution-accuracy) f(0.02\)) 335 3872 y(\(resolution-corrections) 383 3982 y(\(240) 95 b(;;) 47 b(sparcptr) 431 4091 y(240) 95 b(263) f(288) h(312) f(346) h(415) g(498) f(597\)) 383 4201 y(\(300) h(;;) 47 b(cx) 431 4311 y(300) 95 b(329) f(360) h(432) f (518) h(622) g(746) f(896) 47 b(1075) g(1290) 94 b(240) 47 b(270\)) 383 4420 y(\(400) 95 b(;;) 47 b(sparcptr) 431 4530 y(400) 95 b(438) f(480) h(576) f(691) h(829) g(995) 47 b(1194) f(1433) h(1720) 94 b(320) 47 b(360\)) 383 4639 y(\(600) 95 b(;;) 47 b(ljfour) 431 4749 y(600) 95 b(657) f(720) h(864) 47 b(1037) f(1244) h(1493) g(1792) f(2150) h(2580) 94 b(480) 47 b(540\)\)) 335 4858 y(\(dpi) g($TeX_DPI\)\)) 240 5078 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 5187 y(;;) 143 b(PK) 47 b(Font) f(Class) h(Default) 240 5297 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) 240 5406 y(\(define-default) d(pk) 335 5516 y(\(font-directories) g ("TEXMF"\)\)) 240 5735 y(;;) j(-------------------------) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) o(----) o(----) o (---) 240 5845 y(;;) 143 b(TFM) 47 b(Font) f(Class) h(Default) 240 5954 y(;;) g(-------------------------) o(----) o(---) o(----) o(----) o (---) o(----) o(----) o(---) o(----) o(----) o(---) p dyy eop end %%Page: 70 71 TeXDict begin 70 70 bop Ft 0 -116 a(70) 3198 b(VFlib) 31 b(3.6.14) p Fp 240 365 a(\(define-default) 44 b(tfm) 335 475 y(\(glyph-style) 93 b("fill"\)\)) 240 694 y(;;) 47 b(-------------------------) o(----) o(---) o(----) o(----) o(---) o (----) o(----) o(---) o(----) o(----) o(---) 240 804 y(;EOF) p dyy eop end %%Page: 71 72 TeXDict begin 71 71 bop Ft 0 -116 a(Chapter) 30 b(7:) 41 b(Debugging) 31 b(a) g(v\015ib) s(cap) 2381 b(71) p Fr 0 365 a(7) 80 b(Debugging) 51 b(a) k(v\015ib) t(cap) p Ft 125 599 a(There) 32 b(is) h(no) h(utilit) m(y) g(programs) f(that) h (c) m(hec) m(ks) g(syn) m(tax) g(of) f(a) h(v\015ib) s(cap) e(\014le.) 49 b(But) 34 b(VFlib) f(c) m(hec) m(ks) i(syn) m(tax) 0 709 y(of) c(v\015ib) s(cap) e(\014le) h(when) g(a) h(fon) m(t) f(driv) m (er) h(is) f(initialized) i(or) f(a) f(fon) m(t) h(is) g(op) s(ened.) 125 844 y(VFlib) e(prin) m(ts) f(a) h(message) g(to) h(inform) d(a) i (user) f(if) h(syn) m(tax) g(is) g(illegal,) i(unde\014ned) 26 b(capabilit) m(y) 31 b(is) d(used) g(\(this) 0 953 y(ma) m(y) 37 b(b) s(e) e(a) i(t) m(yp) s(ographical) g(error\),) h(essen) m(tial) g (capabilit) m(y) g(is) e(missing,) i(an) e(unde\014ned) d(macro) k(is) f (used,) h(or) 0 1063 y(forms) 30 b(of) g(capabilit) m(y) i(v) -5 b(alues) 31 b(are) g(illegal.) 125 1197 y(The) e(follo) m(wing) j(Unix) e(en) m(vironmen) m(t) h(v) -5 b(ariables) 31 b(are) g(used) f(to) h (prin) m(t) f(debugging) g(messages.) p Fp 0 1357 a (VFLIB_DEBUG_FONT_OPEN) p Ft 480 1466 a(|) g(If) g(this) g(en) m (vironmen) m(t) h(v) -5 b(ariable) 32 b(is) e(de\014ned,) f(the) i(pro) s(cesses) f(of) h(fon) m(t) f(op) s(ens) g(are) h(prin) m(ted.) p Fp 0 1626 a(VFLIB_DEBUG_FONT_SEARCH) p Ft 480 1735 a(|) f(If) g(this) g (v) -5 b(ariable) 32 b(is) e(de\014ned,) f(the) i(pro) s(cesses) f(of) h (fon) m(t) g(op) s(ens) e(are) i(prin) m(ted) p Fp 0 1895 a(VFLIB_DEBUG_VFLIBCAP) p Ft 480 2004 a(|) f(If) g(this) g(v) -5 b(ariable) 32 b(is) e(de\014ned,) f(the) i(pro) s(cess) f(of) g (reading) h(of) f(v\015ib) s(cap) g(\014le) g(is) h(prin) m(ted.) p Fp 0 2164 a(VFLIB_DEBUG_PARAMETERS) p Ft 480 2273 a(|) 26 b(If) g(this) g(v) -5 b(ariable) 27 b(is) f(de\014ned,) g(VFlib) h (prin) m(ts) e(ho) m(w) h(parameters) h(\(v) -5 b(ariables\)) 27 b(in) f(v\015ib) s(cap) f(\014le) 480 2383 y(are) 31 b(substituted.) p Fp 0 2542 a(VFLIB_DEBUG_CCV) p Ft 480 2652 a(|) f(If) g(this) g(v) -5 b(ariable) 32 b(is) e(de\014ned,) f (the) i(pro) s(cess) f(of) g(reading) h(CCV) f(\014les) g(is) g(prin) m (ted.) p Fp 0 2811 a(VFLIB_DEBUG_CCV_MAPPING) p Ft 480 2921 a(|) g(If) g(this) g(v) -5 b(ariable) 32 b(is) e(de\014ned,) f (enco) s(ding) i(con) m(v) m(ersions) g(b) m(y) f(CCV) g(are) h(prin) m (ted.) p dyy eop end %%Page: 72 73 TeXDict begin 72 72 bop Ft 0 -116 a(72) 3198 b(VFlib) 31 b(3.6.14) p dyy eop end %%Page: 73 74 TeXDict begin 73 73 bop Ft 0 -116 a(Chapter) 30 b(8:) 41 b(Co) s(de) 30 b(con) m(v) m(ersion) h(system) 2276 b(73) p Fr 0 365 a(8) 80 b(Co) t(de) 53 b(con) l(v) l(ersion) e(system) p Ft 125 572 a(Co) s(de) 33 b(con) m(v) m(ersion) i(system) f(\(CCV\)) f (is) h(used) f(to) h(con) m(v) m(ert) i(from) d(a) h(c) m(haracter) h (set) f(and) g(an) f(enco) s(ding) h(to) 0 682 y(another.) 40 b(F) -8 b(or) 29 b(example,) g(a) f(fon) m(t) h(of) f(Unico) s(de) g(c) m(haracter) h(set) g(and) e(Unico) s(de) h(enco) s(ding) g(can) g(b) s (e) f(accessed) i(as) 0 791 y(ISO) k(8859-2) j(c) m(haracter) f(set) g (of) f(ISO) e(enco) s(ding) i(b) m(y) g(enco) s(ding) g(con) m(v) m (ersion.) 52 b(T) -8 b(rueT) m(yp) s(e) 33 b(fon) m(t) h(class) h(mak) m (es) 0 901 y(use) 30 b(of) g(this) f(feature) i(to) f(hide) g(in) m (visible) g(in) m(ternal) h(fon) m(t) f(enco) s(ding) g(sc) m(heme) g (and) f(pro) m(vides) h(desired) g(external) 0 1011 y(view) h(to) g (users.) 125 1140 y(Con) m(v) m(ersion) f(rule) h(is) f(giv) m(en) h(b) m(y) g(one) f(of) h(the) f(follo) m(wing) i(t) m(w) m(o) g(metho) s(ds) p Fq 75 1269 a(\017) p Ft 60 w(In) m(ternal) f(functions) g(in) g (VFlib) g(\(written) h(in) f(C\)) g(These) g(functions) f(are) i (hardco) s(ded) e(and) g(new) h(con) m(v) m(er-) 180 1378 y(sions) f(rules) g(cannot) h(b) s(e) f(added) g(without) g(mo) s (difying) g(source) g(co) s(de.) p Fq 75 1507 a(\017) p Ft 60 w(External) 47 b(\014les,) 52 b(called) c(CCV) e(\014les.) 91 b(A) 47 b(list) g(of) g(CCV) g(\014les) g(to) g(b) s(e) g(used) f(is) h (sp) s(eci\014ed) f(in) p Fp 47 w(code-) 180 1617 y(conversion-files) p Ft 26 w(capabilit) m(y) 32 b(of) p Fp 31 w(VFlib) p Ft 29 w(default.) p Fs 0 1858 a(8.1) 68 b(Ho) l(w) 46 b(CCV) e(w) l(orks) p Ft 125 2097 a(Eac) m(h) 31 b(con) m(v) m(ersion) g(rule) f(has) g(the) h (follo) m(wing) h(information.) p Fq 75 2226 a(\017) p Ft 60 w(EXTERNAL) e(c) m(harset) h(name) p Fq 75 2355 a(\017) p Ft 60 w(EXTERNAL) f(enco) s(ding) g(name) p Fq 75 2484 a(\017) p Ft 60 w(INTERNAL) g(c) m(harset) h(name) p Fq 75 2613 a(\017) p Ft 60 w(INTERNAL) f(enco) s(ding) g(name) p Fq 75 2742 a(\017) p Ft 60 w(other) h(info) f(suc) m(h) g(as) h(format) f(and) g(size) h(of) g(con) m(v) m(ersion) g(table...) 125 2891 y(On) i(in) m(v) m(o) s(cation) i(of) f(VFlib,) i(these) e (information) g(is) g(read) g(from) f(eac) m(h) i(CCV) e(\014les.) 52 b(\(CCV) 33 b(\014les) h(are) g(not) 0 3000 y(fully) 21 b(loaded) h(at) h(initialization) h(of) e(VFlib;) j(VFlib) d(just) f(c) m(hec) m(ks) j(relation) e(of) g(con) m(v) m(ersion.) 39 b(Con) m(v) m(ersion) 22 b(tables,) 0 3110 y(whic) m(h) j(can) h(b) s (e) g(large,) i(are) e(loaded) g(on) f(demand.\)) 39 b(In) 25 b(addition,) i(when) e(VFlib) h(is) g(initialized,) j(in) m (ternal) d(CCV) 0 3219 y(functions) k(are) h(installed) g(and) f(these) g(information) h(is) g(giv) m(en) g(for) f(eac) m(h) i(con) m(v) m (ersion) f(function.) p Fp 125 3349 a(") p Ft(EXTERNAL) p Fp(") p Ft 42 w(means) 44 b(external) g(view) g(\(i.e.,) k(user) 43 b(side) g(enco) s(ding\)) h(and) p Fp 43 w(") p Ft(INTERNAL) p Fp(") p Ft 43 w(means) 0 3458 y(in) m(ternal) g(view) f(\(i.e.,) 48 b(fon) m(t) c(enco) s(ding\).) 80 b(Users) 43 b(can) g(de\014ne) f (arbitrary) h(c) m(harset) i(and) d(enco) s(ding) h(names,) 0 3568 y(except) 29 b(that) g(some) f(fon) m(t) h(driv) m(er) f(ma) m(y) g (prede\014ned) f(names) h(for) g(in) m(ternal) g(use.) 40 b(\(T) -8 b(rueT) m(yp) s(e) 27 b(fon) m(t) i(driv) m(er) f(uses) 0 3677 y(some) j(prede\014ned) d(names,) j(suc) m(h) f(as) p Fp 31 w(") p Ft(unico) s(de) p Fp(") p Ft(.\)) 125 3806 y(CCV) 46 b(system) h(has) g(a) g(con) m(v) m(ersion) i(table) e(searc) m(hing) h(mec) m(hanism.) 91 b(T) -8 b(able) 48 b(is) f(searc) m(hed) g (b) m(y) g(source) 0 3916 y(c) m(harset/enco) s(ding) 35 b(names) f(and) f(destination) h(c) m(harset/enco) s(ding) h(names.) 51 b(If) 33 b(there) g(is) h(a) g(CCV) f(\014le) h(listed) 0 4026 y(in) p Fp 29 w(code_conversion_files) p Ft 24 w(capabilit) m(y) d (of) p Fp 30 w(VFlib) p Ft 28 w(defaults) f(en) m(try) g(in) f(v\015ib) s(cap) g(that) h(matc) m(hes) g(c) m(harset) 0 4135 y(and) g(enco) s (ding) g(name,) h(the) f(CCV) g(\014le) h(is) f(dynamically) h(loaded) g (and) f(used) f(for) h(co) s(de) h(con) m(v) m(ersion.) 125 4264 y(F) -8 b(or) 25 b(example,) h(a) f(CCV) f(\014le) p Fp 25 w(iso8859-1_unicode.ccv) p Ft 18 w(has) h(the) f(follo) m(wing) i (c) m(harset/enco) s(ding) g(names:) p Fq 75 4393 a(\017) p Ft 60 w(EXTERNAL) k(c) m(harset) h(name:) p Fp 41 w(ISO8859-1) p Fq 75 4522 a(\017) p Ft 60 w(EXTERNAL) f(c) m(harset) h(enco) s(ding:) p Fp 41 w(ISO) p Fq 75 4651 a(\017) p Ft 60 w(INTERNAL) f(c) m(harset) h (name:) p Fp 41 w(UNICODE) p Fq 75 4781 a(\017) p Ft 60 w(INTERNAL) f(c) m(harset) h(enco) s(ding:) p Fp 41 w(UNICODE) p Ft 125 4929 a(By) d(this) h(CCV) f(\014le,) h(a) g(unico) s (de) f(fon) m(t) h(can) f(b) s(e) g(view) m(ed) h(as) g(a) g(ISO) e (enco) s(ding) i(of) f(ISO) g(8859-1) j(c) m(harset.) 41 b(\(It) 0 5039 y(is) 30 b(v) m(ery) g(imp) s(ortan) m(t) h(to) f(note) h (that) f(names) g(are) h(just) e(sym) m(b) s(ols) h(and) f(not) h(ha) m (v) m(e) h(an) m(y) g(meaning;) f(in) g(the) g(ab) s(o) m(v) m(e) 0 5148 y(example,) h(con) m(v) m(ersion) h(to) f(ISO) e(enco) s(ding) i (is) f(implemen) m(ted) h(b) m(y) f(con) m(v) m(ersion) i(table) f(b) s (o) s(dy) e(in) h(CCV) g(\014le.\)) 125 5277 y(In) 21 b(the) h(curren) m(t) f(implemen) m(tation,) 26 b(BDF,) d(PCF,) f(HBF,) h(and) e(T) -8 b(rueT) m(yp) s(e) 21 b(fon) m(t) h(driv) m(ers) f(use) h (CCV) f(system.) 0 5387 y(In) 30 b(the) g(follo) m(wing,) i(ho) m(w) f (T) -8 b(rueT) m(yp) s(e) 29 b(fon) m(t) i(driv) m(er) f(uses) g(CCV) g (is) g(describ) s(ed.) 125 5516 y(Eac) m(h) 39 b(T) -8 b(rueT) m(yp) s(e) 38 b(fon) m(t) i(has) e(information) i(ab) s(out) e (c) m(harset) i(name) f(and) g(enco) s(ding) f(name) h(of) h(the) f (fon) m(t.) 0 5626 y(When) g(a) g(fon) m(t) g(en) m(try) g(is) g (de\014ned) e(in) h(v\015ib) s(cap) g(\014le) h(and) p Fp 38 w(encoding) p Ft 37 w(and) p Fp 38 w(character-set) p Ft 35 w(capabilit) m(y) h(is) 0 5735 y(de\014ned,) 33 b(sa) m(y) -8 b(,) p Fj 36 w(E) p Ft 39 w(and) p Fj 33 w(C) p Ft 41 w(resp) s(ectiv) m(ely) g(.) 52 b(According) 35 b(to) f(in) m(ternal) g(c) m(harset) h(and) e(enco) s(ding) g (information) h(of) 0 5845 y(T) -8 b(rueT) m(yp) s(e) 32 b(fon) m(t,) h(the) g(driv) m(er) f(searc) m(hes) h(a) g(CCV) f(table,) i(when) e(the) g(VFlib) h(fon) m(t) g(is) g(op) s(ened,) f(that) h (matc) m(hes) 0 5954 y(the) e(follo) m(wing) g(con) m(v) m(ersion) h (relation.) p dyy eop end %%Page: 74 75 TeXDict begin 74 74 bop Ft 0 -116 a(74) 3198 b(VFlib) 31 b(3.6.14) p Fq 75 365 a(\017) p Ft 60 w(EXTERNAL) f(c) m(harset) h (name:) p Fj 41 w(E) p Fq 75 499 a(\017) p Ft 60 w(EXTERNAL) f(c) m (harset) h(enco) s(ding:) p Fj 41 w(C) p Fq 75 633 a(\017) p Ft 60 w(INTERNAL) f(c) m(harset) h(name:) 41 b(p) s(ossibly) -8 b(,) p Fp 30 w(UNICODE) p Ft 29 w(\(from) 30 b(fon) m(t) h(\014le) f (info\)) p Fq 75 767 a(\017) p Ft 60 w(INTERNAL) g(c) m(harset) h(enco) s(ding:) 41 b(p) s(ossibly) -8 b(,) p Fp 30 w(UNICODE) p Ft 29 w(\(from) 30 b(fon) m(t) h(\014le) f(info\)) 125 925 y(If) 41 b(not) g(found,) i(con) m(v) m(ersion) g(is) f(imp) s (ossible.) 73 b(If) 41 b(found,) i(a) f(CCV) f(\014le) h(found) e(is) h (used.) 73 b(After) 42 b(a) g(fon) m(t) 0 1035 y(is) 48 b(op) s(ened,) k(CCV) 47 b(table) i(is) f(used) f(for) h(con) m(v) m (erting) h(co) s(de) f(p) s(oin) m(ts) g(for) g(VFlib) g(op) s(eration) h(suc) m(h) e(as) p Fp 48 w(VF_) 0 1145 y(GetBitmap1\(\)) p Ft(.) p Fs 0 1400 a(8.2) 68 b(The) 45 b(in) l(ternal) h(\(hardco) t (ded\)) f(CCV) f(functions) p Ft 125 1644 a(VFlib) 30 b(has) g(sev) m(eral) i(hardco) s(ded) d(CCV) h(functions.) 40 b(F) -8 b(ollo) m(wings) 33 b(CCV) d(functions) g(are) h(implemen) m (ted.) p Fq 75 1778 a(\017) p Ft 60 w(from) f(ISO-2022) h(\() p Fp(ISO2022) p Ft(\)) e(to) j(Shift) d(JIS) h(\() p Fp(SJIS) p Ft(\)) p Fq 75 1912 a(\017) p Ft 60 w(from) g(Shift) g(JIS) f(\() p Fp(SJIS) p Ft(\)) h(to) h(ISO) e(2022) j(\() p Fp(ISO2022) p Ft(\)) p Fq 75 2046 a(\017) p Ft 60 w(from) e(EUC) g(\() p Fp(EUC) p Ft(\)) g(to) h(ISO) f(2022) i(\() p Fp(ISO2022) p Ft(\)) p Fq 75 2180 a(\017) p Ft 60 w(from) e(Ro) m(w-Cell) i(\() p Fp(Row-Cell) p Ft(\)) c(to) k(ISO) d(2022) j(\() p Fp(ISO2022) p Ft(\)) p Fq 75 2314 a(\017) p Ft 60 w(from) e(ISO-2022) h(\() p Fp(ISO2022) p Ft(\)) e(to) j(Ro) m(w-Cell) f(\() p Fp(Row-Cell) p Ft(\)) p Fq 75 2447 a(\017) p Ft 60 w(from) f(ISO-2022) h(\() p Fp(ISO2022) p Ft(\)) e(to) j(W) -8 b(anSung) 30 b(\() p Fp(WanSung) p Ft(\)) p Fq 75 2581 a(\017) p Ft 60 w(from) g(Ro) m (w-Cell) i(\() p Fp(Row-Cell) p Ft(\)) c(to) k(W) -8 b(anSung) 30 b(\() p Fp(WanSung) p Ft(\)) p Fq 75 2715 a(\017) p Ft 60 w(from) g(ISO-2022) h(\() p Fp(ISO2022) p Ft(\)) e(to) j(Sequen) m(tial) f(Num) m(b) s(ering) e(\() p Fp(Sequential2-0) p Ft 28 w(and) p Fp 29 w(Sequential2-1) p Ft(\)) 180 2849 y(By) 66 b(these) h(enco) s(ding) f(sc) m(hemes,) 76 b(c) m(haracters) 68 b(are) e(n) m(um) m(b) s(ered) f(sequen) m(tially) j(starting) e(from) g(0) 180 2959 y(\() p Fp(Sequential2-0) p Ft(\)) 26 b(or) k(1) f(\() p Fp(Sequential2-1) p Ft(\).) 38 b(That) 29 b(is,) p Fp 29 w(Sequential2-0) p Ft 26 w(enco) s(ding) g (is) g(an) h(enco) s(ding) 180 3068 y(suc) m(h) k(that) g(co) s(de) h (of) f(the) g(\014rst) f(c) m(haracter) j(is) e(0,) i(co) s(de) e(of) g (the) g(second) g(is) h(1,) g(...,) h(and) d(co) s(de) i(of) f(the) g (i-th) 180 3178 y(c) m(haracter) 46 b(is) f(\(i-1\).) p Fp 85 w(Sequential2-1) p Ft 41 w(enco) s(ding) g(is) f(an) h(enco) s (ding) f(suc) m(h) h(that) g(co) s(de) g(of) f(the) h(\014rst) 180 3288 y(c) m(haracter) 35 b(is) e(1,) i(co) s(de) e(of) h(the) f(second) g(is) h(2,) g(...,) h(and) e(co) s(de) g(of) h(the) f(i-th) h(is) f (\(i\).) 50 b(External) 34 b(co) s(de) f(p) s(oin) m(t) 180 3397 y(m) m(ust) 38 b(b) s(e) g(enco) s(ded) g(t) m(w) m(o-b) m(yte,) 43 b(i.e.,) f(0x2121...7e7e.) 70 b(These) 38 b(v) -5 b(alues) 39 b(are) g(con) m(v) m(erted) h(to) f(0...8835) i(or) 180 3507 y(1...8836.) 125 3665 y(Enco) s(ding) 31 b(name) p Fp 33 w(JIS) p Ft 31 w(is) i(de\014ned) e(as) i(an) f(alias) i(of) p Fp 32 w(ISO2022) p Ft(.) 45 b(Enco) s(ding) 32 b(name) p Fp 33 w(Ku-Ten) p Ft 31 w(is) g(de\014ned) f(as) 0 3775 y(an) f(alias) i(of) p Fp 30 w(Row-Cell) p Ft(.) 39 b(Note) 32 b(that) f(these) f(aliases) i(are) f(de\014ned) e(only) i(for) f (hardcorded) f(CCV) h(functions.) 125 3909 y(All) e(of) g(these) g(are) g(implemen) m(ted) g(simple) g(arithmetic) h(and) e(large) i(con) m(v) m (ersion) g(tables) g(are) f(not) g(necessary) 0 4018 y(in) i(memory) -8 b(.) p Fs 0 4274 a(8.3) 68 b(The) 45 b(syn) l(tax) g(of) g(CCV) g(\014les) p Ft 125 4518 a(The) 32 b(syn) m(tax) i(of) f(CCV) f(\014les) h(is) g(lisp-lik) m(e) i (notation,) g(similar) e(to) h(v\015ib) s(cap) e(\014les.) 48 b(The) 33 b(CCV) f(\014le) h(de\014nes) 0 4627 y(its) g(o) m(wn) f (directiv) m(e) i(set,) g(explained) e(b) s(elo) m(w.) 47 b(A) 33 b(co) s(de) g(con) m(v) m(ersion) g(table) h(is) e(divided) g (in) g(sev) m(eral) i(sub-tables) 0 4737 y(to) g(reduce) g(the) f (\014le) h(size) g(\(and) f(memory) h(size) g(when) f(the) g(\014le) h (is) g(loaded) g(in) m(to) g(memory\).) 51 b(The) 33 b(sub-tables) 0 4846 y(are) e(called) g(`blo) s(c) m(ks'.) p Fp 0 5005 a(\(charset-external-name) p Fk 24 w(from-cs-name) p Fp 11 w(\)) 0 5114 y(\(charset-external-encodi) o(ng) p Fk 24 w(from-cs-enc) p Fp 11 w(\)) 0 5224 y(\(charset-internal-name) p Fk 24 w(to-cs-name) p Fp 11 w(\)) 0 5333 y(\(charset-internal-encodi) o (ng) p Fk 24 w(to-cs-enc) p Fp 11 w(\)) p Ft 480 5443 a(|) 26 b(These) g(four) g(directiv) m(es) h(describ) s(es) f(c) m (haracter) h(set) g(and) f(enco) s(ding) g(information) h(of) f(con) m (v) m(er-) 480 5553 y(sion.) p Fp 0 5711 a(\(table-type) p Fk 27 w(type) p Fp 11 w(\)) p Fj 480 5820 a(t) m(yp) s(e) p Ft 36 w(m) m(ust) k(b) s(e) g(one) g(of) h(the) f(follo) m(wing:) p Fp 660 5954 a(array) p dyy eop end %%Page: 75 76 TeXDict begin 75 75 bop Ft 0 -116 a(Chapter) 30 b(8:) 41 b(Co) s(de) 30 b(con) m(v) m(ersion) h(system) 2276 b(75) p Fp 660 365 a(random-arrays) 0 528 y(\(c1-min) p Fk 28 w(c1min) p Fp 11 w(\)) 0 638 y(\(c1-max) p Fk 28 w(c1max) p Fp 11 w(\)) 0 747 y(\(c2-min) p Fk 28 w(c2min) p Fp 11 w(\)) 0 857 y(\(c2-max) p Fk 28 w(c2max) p Fp 11 w(\)) 0 967 y(\(block-size) p Fk 27 w(size) p Fp 11 w(\)) 0 1076 y(\(nblocks) p Fk 28 w(nblocks) p Fp 11 w(\)) 0 1186 y(\(block) p Fk 29 w(block) 39 b(code0) h(code1) p Fp 39 w(...\)) p Ft 125 1324 a(Let) p Fj 30 w(c) p Ft 37 w(b) s(e) 29 b(a) i(co) s(de) g(p) s(oin) m(t) f(of) h(a) f(c) m (haracter) i(to) f(b) s(e) f(con) m(v) m(erted) i(b) m(y) e(this) h (CCV) e(\014le.) 125 1462 y(It) 34 b(is) g(con) m(v) m(erted) i(as) f (follo) m(ws.) 54 b(Let) p Fj 34 w(c1) p Ft 43 w(b) s(e) p Fj 33 w(c) p Ft 6 w(/) p Fj(size) p Ft 41 w(and) p Fj 34 w(c2) p Ft 42 w(b) s(e) p Fj 34 w(c) p Ft 40 w(mo) s(dulo) p Fj 34 w(size) p Ft(.) f(The) 34 b(blo) s(c) m(k) h(n) m(um) m(b) s(er) p Fj 33 w(b) p Ft 0 1572 a(that) j(should) e(b) s(e) g(referred) g(to) i (is) p Fj 37 w(c1) p Ft(-) p Fj(c1min) p Ft(.) 62 b(The) 36 b(p) s(osition) p Fj 38 w(i) p Ft 42 w(in) g(the) h(blo) s(c) m(k) p Fj 38 w(b) p Ft 38 w(is) p Fj 37 w(c2) p Ft(-) p Fj(c2min) p Ft(.) 62 b(Th) m(us,) 38 b(the) 0 1681 y(v) -5 b(alue) 31 b(of) p Fj 30 w(i) p Ft(-th) g(en) m(try) g(of) f(a) h(blo) s(c) m(k) g (n) m(um) m(b) s(ered) p Fj 29 w(b) p Ft 32 w(is) f(con) m(v) m(erted) i (co) s(de) f(p) s(oin) m(t.) p Fj 125 1819 a(c1max) p Ft(,) p Fj 36 w(c2max) p Ft 42 w(and) p Fj 34 w(n) m(blo) s(c) m(ks) p Ft 39 w(are) k(used) f(in) m(ternally) h(to) g(determine) g(the) g (necessary) g(memory) f(area) i(to) 0 1929 y(load) 31 b(the) g(table.) 125 2067 y(Theoretically) -8 b(,) p Fp 29 w(array) p Ft 26 w(is) 26 b(enough) h(for) f(the) h(v) -5 b(alue) 27 b(for) p Fp 26 w(table-type) p Ft 24 w(directiv) m(e.) 41 b(But) 27 b(in) f(case) i(that) f(there) 0 2177 y(are) 34 b(man) m(y) f(blo) s(c) m(ks) g(that) h(do) f(not) h(ha) m(v) m(e) g (con) m(v) m(ersion) h(en) m(tries.) 50 b(This) 32 b(is) h(happ) s(en) f (in) h(the) g(case) i(of) e(CNS11643) 0 2286 y(c) m(haracter) e(set) e (\(a) h(Hanji) f(c) m(haracter) i(set) e(in) g(T) -8 b(aiw) m(an\).) 41 b(T) -8 b(o) 30 b(reduce) e(the) i(table) f(size,) i (some) e(of) g(blo) s(c) m(ks) h(can) f(b) s(e) 0 2396 y(omitted) i(b) m(y) g(giving) p Fp 31 w(random-array) p Ft 27 w(for) p Fp 30 w(table-type) p Ft 28 w(directiv) m(e.) 125 2534 y(In) 39 b(case) h(of) p Fp 40 w(array) p Ft(,) h(lo) s(okup) e (for) h(co) s(de) g(con) m(v) m(ersion) h(is) f(implemen) m(ted) g(b) m (y) f(indexing) h(an) g(en) m(tire) g(arra) m(y) -8 b(,) 0 2643 y(whic) m(h) 36 b(is) h(v) m(ery) g(fast.) 59 b(In) 36 b(case) i(of) p Fp 36 w(random-array) p Ft(,) d(lo) s(okup) i(for) f (co) s(de) h(con) m(v) m(ersion) h(tak) m(es) g(time) f(to) g(\014nd) e (a) 0 2753 y(corresp) s(onding) 29 b(sub-table) i(\(blo) s(c) m(k\),) h (since) e(the) h(table) g(is) g(not) f(linear.) p Fs 0 3019 a(8.4) 68 b(Example) 46 b(of) f(a) g(CCV) g(\014le) g(1) p Ft 125 3267 a(The) 30 b(follo) m(wing) j(example) g(is) e(a) h(CCV) f (\014le) g(that) h(virtually) g(pro) m(vides) g(a) g(ISO) e(8859-1) k (c) m(haracter) f(set) f(fon) m(t) 0 3377 y(using) 27 b(a) i(Unico) s(de) f(fon) m(t.) 40 b(That) 28 b(is,) g(a) h(Unico) s (de) f(fon) m(t) g(can) g(b) s(e) f(used) g(as) h(if) g(it) h(w) m(ere) f(a) g(ISO) f(8859-1) j(fon) m(t) f(b) m(y) e(the) 0 3486 y(CCV) 21 b(\014le.) 39 b(This) 21 b(\014le) h(is) g(distributed) f (with) h(VFlib) g(and) g(installed) h(b) m(y) f(the) g(name) p Fp 22 w(iso8859-1_unicode.ccv) p Ft(.) 125 3624 y(This) h(\014le) i(is) g(a) g(table) g(indexed) f(b) m(y) h(co) s(de) g(p) s(oin) m(ts) f(of) h (ISO) f(8859-1;) 29 b(con) m(ten) m(ts) d(of) f(table) h(en) m(tries) f (are) g(Unico) s(de) 0 3734 y(co) s(de) 31 b(p) s(oin) m(ts.) p Fp 240 3872 a(;) 47 b(Conversion) e(table:) i(ISO8859-1) e(==>) i (UNICODE) 240 3982 y(\(charset-external-name) 42 b(ISO8859-1\)) 240 4091 y(\(charset-external-encodi) o(ng) g(ISO\)) 240 4201 y(\(charset-internal-name) g(UNICODE\)) 240 4311 y(\(charset-internal-encodi) o(ng) g(UNICODE\)) 240 4420 y(\(table-type) j(array\)) 240 4530 y(;) i(Code) g(point) f(C) i(is) f (converted) e(to) j(C') f(by) g(the) g(following) e(formula:) 240 4639 y(;) 143 b(C') 47 b(=) h(Table[\(c1) d(-) i(c1min\)*M) f(+) h (\(c2) g(-) h(c2min\)],) 240 4749 y(;) 143 b(where) 46 b(c1) h(=) h(C/B) f(and) g(c2) g(=) g(C\045B,) g(and) g(M) g(=) h (c2max) e(-) i(c2min) e(+) h(1.) 240 4858 y(;) 143 b(B) 47 b(is) h(a) f(block) f(size) h(given) f(by) i(the) e('block-size:') f (parameter.) 240 4968 y(\(c1-min) h(0x0\)) 240 5078 y(\(c1-max) g (0x0\)) 240 5187 y(\(c2-min) g(0x20\)) 240 5297 y(\(c2-max) g(0xff\)) 240 5406 y(\(block-size) f(256\)) 240 5516 y(\(nblocks) h(1\)) 240 5626 y(;) h(0x0020) g(...) f(0x00ff) 240 5735 y(\(block) g(0) 431 5845 y(0x0020) g(0x0021) g(0x0022) g(0x0023) g(0x0024) g(0x0025) g (0x0026) h(0x0027) 431 5954 y(0x0028) f(0x0029) g(0x002a) g(0x002b) g (0x002c) g(0x002d) g(0x002e) h(0x002f) p dyy eop end %%Page: 76 77 TeXDict begin 76 76 bop Ft 0 -116 a(76) 3198 b(VFlib) 31 b(3.6.14) p Fp 431 365 a(0x0030) 46 b(0x0031) g(0x0032) g(0x0033) g (0x0034) g(0x0035) g(0x0036) h(0x0037) 431 475 y(0x0038) f(0x0039) g (0x003a) g(0x003b) g(0x003c) g(0x003d) g(0x003e) h(0x003f) 431 584 y(0x0040) f(0x0041) g(0x0042) g(0x0043) g(0x0044) g(0x0045) g (0x0046) h(0x0047) 431 694 y(0x0048) f(0x0049) g(0x004a) g(0x004b) g (0x004c) g(0x004d) g(0x004e) h(0x004f) 431 804 y(0x0050) f(0x0051) g (0x0052) g(0x0053) g(0x0054) g(0x0055) g(0x0056) h(0x0057) 431 913 y(0x0058) f(0x0059) g(0x005a) g(0x005b) g(0x005c) g(0x005d) g (0x005e) h(0x005f) 431 1023 y(0x0060) f(0x0061) g(0x0062) g(0x0063) g (0x0064) g(0x0065) g(0x0066) h(0x0067) 431 1132 y(0x0068) f(0x0069) g (0x006a) g(0x006b) g(0x006c) g(0x006d) g(0x006e) h(0x006f) 431 1242 y(0x0070) f(0x0071) g(0x0072) g(0x0073) g(0x0074) g(0x0075) g (0x0076) h(0x0077) 431 1352 y(0x0078) f(0x0079) g(0x007a) g(0x007b) g (0x007c) g(0x007d) g(0x007e) h(-1) 431 1461 y(-1) 238 b(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 1571 y(-1) f(-1) g(-1) g (-1) g(-1) g(-1) g(-1) h(-1) 431 1680 y(-1) f(-1) g(-1) g(-1) g(-1) g (-1) g(-1) h(-1) 431 1790 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h (-1) 431 1900 y(0x00a0) 46 b(0x00a1) g(0x00a2) g(0x00a3) g(0x00a4) g (0x00a5) g(0x00a6) h(0x00a7) 431 2009 y(0x00a8) f(0x00a9) g(0x00aa) g (0x00ab) g(0x00ac) g(0x00ad) g(0x00ae) h(0x00af) 431 2119 y(0x00b0) f(0x00b1) g(0x00b2) g(0x00b3) g(0x00b4) g(0x00b5) g (0x00b6) h(0x00b7) 431 2228 y(0x00b8) f(0x00b9) g(0x00ba) g(0x00bb) g (0x00bc) g(0x00bd) g(0x00be) h(0x00bf) 431 2338 y(0x00c0) f(0x00c1) g (0x00c2) g(0x00c3) g(0x00c4) g(0x00c5) g(0x00c6) h(0x00c7) 431 2447 y(0x00c8) f(0x00c9) g(0x00ca) g(0x00cb) g(0x00cc) g(0x00cd) g (0x00ce) h(0x00cf) 431 2557 y(0x00d0) f(0x00d1) g(0x00d2) g(0x00d3) g (0x00d4) g(0x00d5) g(0x00d6) h(0x00d7) 431 2667 y(0x00d8) f(0x00d9) g (0x00da) g(0x00db) g(0x00dc) g(0x00dd) g(0x00de) h(0x00df) 431 2776 y(0x00e0) f(0x00e1) g(0x00e2) g(0x00e3) g(0x00e4) g(0x00e5) g (0x00e6) h(0x00e7) 431 2886 y(0x00e8) f(0x00e9) g(0x00ea) g(0x00eb) g (0x00ec) g(0x00ed) g(0x00ee) h(0x00ef) 431 2995 y(0x00f0) f(0x00f1) g (0x00f2) g(0x00f3) g(0x00f4) g(0x00f5) g(0x00f6) h(0x00f7) 431 3105 y(0x00f8) f(0x00f9) g(0x00fa) g(0x00fb) g(0x00fc) g(0x00fd) g (0x00fe) h(0x00ff) f(\)) p Fs 0 3361 a(8.5) 68 b(Example) 46 b(of) f(a) g(CCV) g(\014le) g(2) p Ft 125 3604 a(The) 30 b(follo) m(wing) j(example) f(is) g(a) g(CCV) e(\014le) i(that) g (virtually) g(pro) m(vides) f(a) h(CNS) f(11643) i(Plane) f(1) g(c) m (haracter) 0 3714 y(set) 39 b(fon) m(t) g(using) f(a) h(Unico) s(de) g (fon) m(t.) 66 b(This) 38 b(\014le) h(is) g(distributed) e(with) i (VFlib) g(and) f(installed) h(b) m(y) g(the) f(name) p Fp 0 3823 a(cns11643-1_unicode.ccv) p Ft(.) 125 3957 y(This) 29 b(\014le) i(is) f(an) g(example) h(of) g(CCV) f(\014les) g (that) h(ha) m(v) m(e) p Fp 32 w(random-arrays) p Ft 26 w(for) p Fp 30 w(table-type) p Ft 28 w(directiv) m(e.) p Fp 240 4091 a(;) 47 b(Conversion) e(table:) i(CNS11643-1) e(==>) h (UNICODE) 240 4201 y(\(charset-external-name) c(CNS11643-1\)) 240 4311 y(\(charset-external-encodi) o(ng) g(ISO2022\)) 240 4420 y(\(charset-internal-name) g(UNICODE\)) 240 4530 y(\(charset-internal-encodi) o(ng) g(UNICODE\)) 240 4639 y(\(table-type) j(random-arrays\)) 240 4749 y(;) i(Code) g(point) f(C) i (is) f(converted) e(to) j(C') f(by) g(the) g(following) e(formula:) 240 4858 y(;) 143 b(C') 47 b(=) h(Table[\(c1) d(-) i(c1min\)*M) f(+) h (\(c2) g(-) h(c2min\)],) 240 4968 y(;) 143 b(where) 46 b(c1) h(=) h(C/B) f(and) g(c2) g(=) g(C\045B,) g(and) g(M) g(=) h (c2max) e(-) i(c2min) e(+) h(1.) 240 5078 y(;) 143 b(B) 47 b(is) h(a) f(block) f(size) h(given) f(by) i(the) e('block-size:') f (parameter.) 240 5187 y(\(c1-min) h(0x121\)) 240 5297 y(\(c1-max) g(0xe67\)) 240 5406 y(\(c2-min) g(0x21\)) 240 5516 y(\(c2-max) g(0x7e\)) 240 5626 y(\(block-size) f(256\)) 240 5735 y(\(nblocks) h(218\)) 240 5845 y(;) h(0x12121) f(...) h(0x1217e) 240 5954 y(\(block) f(0) p dyy eop end %%Page: 77 78 TeXDict begin 77 77 bop Ft 0 -116 a(Chapter) 30 b(8:) 41 b(Co) s(de) 30 b(con) m(v) m(ersion) h(system) 2276 b(77) p Fp 431 365 a(0x3000) 46 b(0xff0c) g(0x3001) g(0x3002) g(0xff0e) g (0x30fb) g(0xff1b) h(0xff1a) 431 475 y(0xff1f) f(0xff01) g(0xfe30) g (0x2026) g(0x2025) g(0xfe50) g(0xfe51) h(0xfe52) 431 584 y(0x00b7) f(0xfe54) g(0xfe55) g(0xfe56) g(0xfe57) g(0xfe31) g (0x2014) h(0xfe32) 431 694 y(0x2013) f(-1) 238 b(-1) g(-1) g(-1) g (0xff08) 46 b(0xff09) h(0xfe35) 431 804 y(0xfe36) f(0xff5b) g(0xff5d) g (0xfe37) g(0xfe38) g(0x3014) g(0x3015) h(0xfe39) 431 913 y(0xfe3a) f(0x3010) g(0x3011) g(0xfe3b) g(0xfe3c) g(0x300a) g (0x300b) h(0xfe3d) 431 1023 y(0xfe3e) f(0x3008) g(0x3009) g(0xfe3f) g (0xfe40) g(0x300c) g(0x300d) h(0xfe41) 431 1132 y(0xfe42) f(0x300e) g (0x300f) g(0xfe43) g(0xfe44) g(0xfe59) g(0xfe5a) h(0xfe5b) 431 1242 y(0xfe5c) f(0xfe5d) g(0xfe5e) g(0x2018) g(0x2019) g(0x201c) g (0x201d) h(0x301d) 431 1352 y(0x301e) f(0x2032) g(0x2035) g(0xff03) g (0xff06) g(0xff0a) g(0x203b) h(0x00a7) 431 1461 y(0x3003) f(0x25cb) g (0x25cf) g(0x25b3) g(0x25b2) g(0x25ce) g(0x2606) h(0x2605) 431 1571 y(0x25c7) f(0x25c6) g(0x25a1) g(0x25a0) g(0x25bd) g(0x25bc) g(\)) 240 1680 y(;) h(0x12221) f(...) h(0x1227e) 240 1790 y(\(block) f(1) 431 1900 y(0x32a3) g(0x2105) g(0x203e) g(-1) 238 b(0xff3f) 46 b(-1) 238 b(0xfe49) 47 b(0xfe4a) 431 2009 y(0xfe4d) f(0xfe4e) g(0xfe4b) g(0xfe4c) g(0xfe5f) g(0xfe60) g(0xfe61) h(0xff0b) 431 2119 y(0xff0d) f(0x00d7) g(0x00f7) g(0x00b1) g(0x221a) g(0xff1c) g (0xff1e) h(0xff1d) 431 2228 y(0x2266) f(0x2267) g(0x2260) g(0x221e) g (0x2252) g(0x2261) g(0xfe62) h(0xfe63) 431 2338 y(0xfe64) f(0xfe66) g (0xfe65) g(0x223c) g(0x2229) g(0x222a) g(0x22a5) h(0x2220) 431 2447 y(0x221f) f(0x22bf) g(0x33d2) g(0x33d1) g(0x222b) g(0x222e) g (0x2235) h(0x2234) 431 2557 y(0x2640) f(0x2642) g(0x2641) g(0x2609) g (0x2191) g(0x2193) g(0x2192) h(0x2190) 431 2667 y(0x2196) f(0x2197) g (0x2199) g(0x2198) g(0x2016) g(0xff5c) g(0xff0f) h(0xff3c) 431 2776 y(0x2215) f(0xfe68) g(0xff04) g(0xffe5) g(0x3012) g(0xffe0) g (0xffe1) h(0xff05) 431 2886 y(0xff20) f(0x2103) g(0x2109) g(0xfe69) g (0xfe6a) g(0xfe6b) g(0x33d5) h(0x339c) 431 2995 y(0x339d) f(0x339e) g (0x33ce) g(0x33a1) g(0x338e) g(0x338f) g(0x33c4) h(0x00b0) 431 3105 y(0x5159) f(0x515b) g(0x515e) g(0x515d) g(0x5161) g(0x5163) g(\)) 240 3215 y(;) h(0x12321) f(...) h(0x1237e) 240 3324 y(\(block) f(2) 431 3434 y(0x55e7) g(0x74e9) g(0x7cce) g(0x2581) g(0x2582) g(0x2583) g (0x2584) h(0x2585) 431 3543 y(0x2586) f(0x2587) g(0x2588) g(0x258f) g (0x258e) g(0x258d) g(0x258c) h(0x258b) 431 3653 y(0x258a) f(0x2589) g (0x253c) g(0x2534) g(0x252c) g(0x2524) g(0x251c) h(0x2594) 431 3763 y(0x2500) f(0x2502) g(0x2595) g(0x250c) g(0x2510) g(0x2514) g (0x2518) h(0x256d) 431 3872 y(0x256e) f(0x2570) g(0x256f) g(0x2550) g (0x255e) g(0x256a) g(0x2561) h(0x25e2) 431 3982 y(0x25e3) f(0x25e5) g (0x25e4) g(0x2571) g(0x2572) g(0x2573) g(-1) 239 b(-1) 431 4091 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 4201 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 4311 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 4420 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 4530 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 4639 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(\)) p Fk 240 4858 a(...) 47 b(it's) g(very) f(long,) h(snip,) f(snip,) g(snip) h (...) p Fp 240 5078 a(;) g(0xe6621) f(...) h(0xe667e) 240 5187 y(\(block) f(3397) 431 5297 y(0x7bd0) g(0x7c2f) g(0x7c32) g (0x7c42) g(0x7c4e) g(0x7c68) g(0x7ca9) h(0x7ced) 431 5406 y(0x7dd0) f(0x7e07) g(0x7dd3) g(0x7e64) g(0x7f40) g(-1) 238 b(0x8041) 47 b(0x8063) 431 5516 y(0x80bb) f(0x6711) g(0x6725) g(0x8248) g(0x8310) g(0x8362) g(0x8312) h(0x8421) 431 5626 y(0x841e) f(0x84e2) g (0x84de) g(0x84e1) g(0x8573) g(0x85d4) g(0x85f5) h(0x8637) 431 5735 y(0x8645) f(0x8672) g(0x874a) g(0x87a9) g(0x87a5) g(0x87f5) g (0x8834) h(0x8850) 431 5845 y(0x8887) f(0x8954) g(0x8984) g(0x8b03) g (0x8c52) g(0x8cd8) g(0x8d0c) h(0x8d18) 431 5954 y(0x8db0) f(0x8ebc) g (0x8ed5) g(0x8faa) g(0x909c) g(-1) 238 b(0x915c) 47 b(0x922b) p dyy eop end %%Page: 78 79 TeXDict begin 78 78 bop Ft 0 -116 a(78) 3198 b(VFlib) 31 b(3.6.14) p Fp 431 365 a(0x9221) 46 b(0x9273) g(0x92f4) g(0x92f5) g (0x933f) g(0x9342) g(0x9386) h(0x93be) 431 475 y(0x93bc) f(0x93bd) g (0x93f1) g(0x93f2) g(0x93ef) g(0x9422) g(0x9423) h(0x9424) 431 584 y(0x9467) f(0x9466) g(0x9597) g(0x95ce) g(0x95e7) g(0x973b) g (0x974d) h(0x98e4) 431 694 y(0x9942) f(0x9b1d) g(0x9b98) g(-1) 238 b(0x9d49) 46 b(0x6449) g(0x5e71) h(0x5e85) 431 804 y(0x61d3) f(0x990e) g (0x8002) g(0x781e) g(-1) 238 b(-1) g(\)) 240 913 y(;) 47 b(0xe6721) f(...) h(0xe677e) 240 1023 y(\(block) f(3398) 431 1132 y(0x5528) g(0x5572) g(0x55ba) g(0x55f0) g(0x55ee) g(0x56b8) g (0x56b9) h(0x56c4) 431 1242 y(0x8053) f(0x92b0) g(-1) 238 b(-1) g(-1) g(-1) g(-1) h(-1) 431 1352 y(-1) f(-1) g(-1) g(-1) g(-1) g (-1) g(-1) h(-1) 431 1461 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h (-1) 431 1571 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 1680 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 1790 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 1900 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 2009 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 2119 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 2228 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(-1) h(-1) 431 2338 y(-1) f(-1) g(-1) g(-1) g(-1) g(-1) g(\)) p dyy eop end %%Page: 79 80 TeXDict begin 79 79 bop Ft 0 -116 a(Chapter) 30 b(9:) 41 b(Utilit) m(y) 32 b(programs) 2564 b(79) p Fr 0 365 a(9) 80 b(Utilit) l(y) 53 b(programs) p Fs 0 704 a(9.1) 68 b(v\015mk) l(captex) p Fp 125 946 a(vflmkcaptex) p Ft 30 w(is) 34 b(a) g(utilit) m(y) h (program) f(to) g(generate) i(v\015ib) s(cap) d(\014le) g(for) h(T) 2673 965 y(E) 2723 946 y(X) g(D) m(VI) h(driv) m(er) e(soft) m(w) m(are) i (au-) 0 1055 y(tomatically) -8 b(.) 44 b(With) 31 b(simple) f(command) g (line) g(arugmen) m(ts,) h(a) f(v\015ib) s(cap) g(that) g(uses) g(PK,) g (GF,) h(Virtual) g(F) -8 b(on) m(t,) 0 1165 y(T) m(yp) s(e) 30 b(1) h(fon) m(ts) f(with) g(complex) h(T) 1147 1184 y(E) 1197 1165 y(X) g(fon) m(t) g(mapping) f(rules.) p Fm 0 1297 a(Usage:) p Fp 42 w(vflmkcaptex) p Ft 27 w([) p Fj 30 w(OPTIONS...) p Ft 40 w(]) 41 b([) p Fj 30 w(CLASS...) p Ft 40 w(]) p Fm 0 1429 a(Usage:) p Fp 42 w(vflmkcaptex) p Ft 27 w([) p Fj 30 w(SHOR) -8 b(TCUT) p Ft 36 w(]) 31 b([) p Fj 30 w(OPTIONS...) p Ft 40 w(]) 125 1561 y(`) p Fk(CLASS...) p Ft 11 w(') 37 b(is) i(a) h(list) g(of) g(fon) m(t) g (class) g(names) g(to) g(supp) s(ort) d(b) m(y) j(v\015ib) s(cap) e (\014le) i(to) g(b) s(e) f(generated.) 69 b(`) p Fk(OP-) 0 1670 y(TIONS...) p Ft 11 w(') 26 b(is) j(option) g(list) h(to) f (customize) h(default) f(settings.) 41 b(`) p Fk(SHORTCUT) p Ft 11 w(') 27 b(is) i(a) g(shortcut) g(name) f(to) i(t) m(ypical) 0 1780 y(options) h(and) e(class) j(name) e(list.) p Fm 0 1912 a(Shortcut:) p Fp 0 2066 a(minimum) p Ft 144 w(This) g(is) g (the) h(same) f(as) h(command) f(line) h(option) p Fp 31 w(pk) p Ft(.) 40 b(Use) 30 b(PK) g(fon) m(ts) h(only) -8 b(.) p Fp 0 2220 a(simple) p Ft 192 w(This) 37 b(is) h(the) g(same) g (as) g(command) g(line) g(option) p Fp 38 w(-g) 48 b(pk) f(tfm) p Ft(.) 62 b(Use) 38 b(PK) g(fon) m(ts.) 63 b(If) 38 b(PK) f(fon) m(t) 480 2330 y(\014le) c(is) h(missing,) g(it) g(is) f(generated) h (on-the-\015y) -8 b(.) 51 b(If) 32 b(fon) m(t) i(cannot) g(b) s(e) f (created,) i(blac) m(k) f(square) f(is) 480 2439 y(displa) m(y) m(ed) e (instead) g(of) f(c) m(haracter) i(glyph) e(\(as) h(long) g(as) g (corresp) s(onding) e(TFM) i(\014le) f(exists\).) p Fp 0 2594 a(standard) p Ft 96 w(This) j(is) i(the) f(same) g(as) h (command) f(line) g(option) p Fp 35 w(-t1) 47 b(-g) p Ft(.) k(Use) 35 b(default) f(class) h(list) p Fp 35 w(type1) 46 b(vf) 480 2703 y(pk) h(tfm) p Ft(.) 40 b(Missing) 31 b(PK) f(fon) m(t) h(is) f(created) h(on-the-\015y) -8 b(.) p Fp 0 2857 a(simple-ja) p Ft 480 2967 a(This) 46 b(is) h(the) g(same) g(as) g(command) f(line) i(option) p Fp 47 w(-g) f(pk) g(tfm) g(-jtex) f(-jisx0212) g(-jpcf) p Ft(.) 480 3077 y(\(Japanese) 31 b(supp) s(ort) e(for) p Fp 30 w(simple) p Ft 28 w(shortcut.\)) p Fp 0 3231 a(standard-ja) p Ft 480 3340 a(This) 64 b(is) h(the) f(same) h(as) g(command) g(line) g (option) p Fp 65 w(-t1) 47 b(-g) g(-jtex) f(-jisx0212) g(-jpcf) p Ft(.) 480 3450 y(\(Japanese) 31 b(supp) s(ort) e(for) p Fp 30 w(standard) p Ft 28 w(shortcut.\)) p Fm 0 3604 a(F) -8 b(on) m(t) 32 b(class) f(list:) p Fp 0 3758 a(gf) p Ft 384 w(Enables) 65 b(to) h(use) f(GF) g(fon) m(t) h(\014les.) 145 b(F) -8 b(or) 66 b(searc) m(hing) g(fon) m(t) f(\014les,) 74 b(kpathsea) 66 b(is) f(used.) 480 3868 y(That) 80 b(is,) 93 b(fon) m(t) 81 b(\014les) f(are) g(searc) m(hed) h(under) e(T) 2382 3888 y(E) 2432 3868 y(X) h(`) p Fp(texmf) p Ft(') f(directory) i(\(t) m (ypically) -8 b(,) 480 3978 y(`) p Fp(/usr/local/share/texmf) p Ft('\).) p Fp 0 4132 a(pk) p Ft 384 w(Enables) 30 b(to) h(use) f(PK) g (fon) m(t) h(\014les.) 41 b(F) -8 b(or) 31 b(searc) m(hing) g(fon) m(t) g(\014les,) g(kpathsea) f(is) h(used.) p Fp 0 4286 a(vf) p Ft 384 w(Enables) f(to) h(use) f(Virtual) h(F) -8 b(on) m(t) 32 b(\014les.) 41 b(F) -8 b(or) 31 b(searc) m(hing) g(fon) m(t) g (\014les,) g(kpathsea) f(is) h(used.) p Fp 0 4440 a(tfm) p Ft 336 w(Enables) 37 b(to) g(use) f(TFM) h(\014les.) 60 b(This) 36 b(option) h(enables) h(to) f(displa) m(y) g(blac) m(k) h (square) e(instead) h(of) 480 4550 y(glyph.) 46 b(The) 32 b(size) h(of) g(square) f(ob) s(eys) g(fon) m(t) h(metric) g(of) f(eac) m(h) i(c) m(haracter.) 48 b(This) 32 b(is) g(useful) f(when) 480 4660 y(glyph) f(\014le) g(\(e.g.,) j(PK,) d(T) m(yp) s(e1\)) h(is) f (missing.) p Fp 0 4814 a(type1) p Ft 240 w(Enables) k(to) g(use) g(T) m (yp) s(e) f(1) i(fon) m(ts.) 51 b(\(Curren) m(tly) -8 b(,) 36 b(it) e(supp) s(orts) e(Roman) i(fon) m(ts.) 52 b(CJK) 33 b(fon) m(ts) h(are) 480 4923 y(not) d(supp) s(orted.\)) 39 b(F) -8 b(or) 31 b(searc) m(hing) g(fon) m(t) g(\014les,) g(kpathsea) f (is) h(used.) 480 5055 y(By) 48 b(this) f(option,) 52 b(fon) m(t) c(de\014nitions) e(for) i(P) m(ostScript) f(fon) m(ts) h (used) e(in) h(T) 3078 5075 y(E) 3128 5055 y(X) h(D) m(VI) g(\014les) f (are) 480 5165 y(generated) 52 b(b) m(y) f(reading) g(`) p Fp(psfonts.map) p Ft(') d(of) p Fp 51 w(dvips) p Ft(.) 101 b(Eac) m(h) 51 b(P) m(ostScript) h(fon) m(t) f(listed) h(in) 480 5274 y(`) p Fp(psfonts.map) p Ft(') 41 b(is) i(c) m(hec) m(k) m(ed) i (if) e(it) h(exists.) 79 b(\(F) -8 b(or) 45 b(P) m(ostScript) e(fon) m (ts,) k(this) d(program) e(auto-) 480 5384 y(matically) i(searc) m(hs) e (Adob) s(e) f(Acrobat) i(3) f(and) f(4) h(fon) m(t) g(directories.\)) 76 b(If) 42 b(a) g(P) m(ostScript) g(fon) m(t) 480 5494 y(in) 37 b(question) h(is) f(not) h(found,) p Fp 38 w(Ghostscript) p Ft 34 w(fon) m(t) g(de\014nition) f(\014le) g(`) p Fp(Fontmap) p Ft(') f(is) h(c) m(hec) m(k) m(ed) j(to) 480 5603 y(substitute) 30 b(the) h(fon) m(t) g(b) m(y) f(a) h(fon) m(t) g(in) p Fp 30 w(Ghostscript) p Ft 27 w(fon) m(t) g(directory) -8 b(.) 480 5735 y(This) 25 b(feature) h(is) g(v) m(ery) h(useful) e(for) g (displa) m(ying) i(and) e(prin) m(ting) h(T) 2648 5755 y(E) 2698 5735 y(X) g(D) m(VI) g(\014les) g(with) g(P) m(ostScript) 480 5845 y(fon) m(ts.) 41 b(So,) 29 b(I) f(recommned) h(obtain) g(Adob) s (e) g(Acrobat) g(3) h(and) e(4) h(for) g(T) m(yp) s(e) f(1) h(P) m (ostScript) h(fon) m(ts.) 480 5954 y(\(Lin) m(ux) g(v) m(ersion) h(are) g(freely) g(a) m(v) -5 b(ailable.\)) p dyy eop end %%Page: 80 81 TeXDict begin 80 80 bop Ft 0 -116 a(80) 3198 b(VFlib) 31 b(3.6.14) 125 365 y(When) j(a) i(fon) m(t) f(is) g(requested) h(to) f (op) s(en,) h(the) f(fon) m(t) h(is) f(tried) g(to) h(op) s(en) e(b) m (y) h(fon) m(t) h(classes) g(b) m(y) f(the) g(order) g(in) 0 475 y(the) c(command) f(line.) 125 615 y(So,) f(b) m(y) g(a) h(`) p Fp(vflibcap) p Ft(') e(generated) i(b) m(y) f(the) h(follo) m(wing) g (example,) h(fon) m(t) f(in) f(PK) f(format) i(is) f(rearc) m(hed) h (\014rst.) 0 724 y(If) g(a) h(fon) m(t) g(in) f(PK) f(format) i(is) g (not) f(found,) g(fon) m(t) g(in) g(T) m(yp) s(e) g(1) h(format) g(is) f (searc) m(hed) h(next.) p Fp 240 864 a(vflmkcaptex) 45 b(pk) i(type1) p Ft 125 1004 a(Therefore,) 30 b(the) g(order) g(of) h (fon) m(t) g(classes) g(decides) g(the) f(priorit) m(y) h(of) g(fon) m (t) g(\014le) f(formats) h(to) g(searc) m(h.) p Fm 0 1144 a(Options:) p Fp 0 1312 a(--help) p Ft 192 w(Prin) m(t) f(a) h (list) g(of) g(command) f(line) h(options) f(and) g(exit.) p Fp 0 1476 a(--version) p Ft 480 1586 a(Prin) m(t) g(v) m(ersion) h(n) m (um) m(b) s(er) e(of) i(this) f(program) g(and) g(exit.) p Fp 0 1751 a(-p) p Fk 47 w(PROG) p Ft 145 w(Application) g(program) e (name.) 41 b(This) 28 b(is) g(used) g(b) m(y) h(kpathsea) g(for) g(fon) m(t) g(\014le) g(searc) m(h.) 41 b(Default) 29 b(is) p Fp 480 1860 a(xgdvi) p Ft(,) g(whic) m(h) h(is) h(a) f(D) m(VI) i (preview) m(er) e(in) g(the) h(T) 2123 1880 y(E) 2173 1860 y(X-Guy) g(pac) m(k) -5 b(age.) p Fp 0 2025 a(-n) p Fk 47 w(MODE) p Ft 145 w(Device) 32 b(mo) s(de) e(name) h(for) f(fon) m (t) h(\014le) f(searc) m(h,) h(used) f(b) m(y) g(kpathsea.) 41 b(Default) 32 b(is) p Fp 30 w(cx) 0 2190 y(-r) p Fk 47 w(DPI) p Ft 193 w(Device) g(resolution) f(in) f(DPI.) h(Default) g(is) g (300.) 480 2327 y(If) 36 b(this) g(option) h(is) g(not) f(giv) m(en,) p Fp 40 w(vflmkcaptex) p Ft 33 w(reads) g(`) p Fp(mode.mf) p Ft(',) h(whic) m(h) f(is) h(a) g(device) g(mo) s(de) 480 2437 y(de\014nition) 30 b(\014le) h(for) f(MET) -8 b(AF) m(ONT,) 31 b(and) f(obtains) g(revice) i(resolution) f(automatically) -8 b(.) p Fp 0 2602 a(-g) p Ft 384 w(Con\014gure) 29 b(`) p Fp(vflibcap) p Ft(') g(to) i(generate) h(non-existing) f(PK) f(\014les) g(on-the-\015y) -8 b(.) p Fp 0 2767 a(-pk) p Ft 336 w(When) 25 b(`) p Fk(CLASS...) p Ft 11 w(') f(is) h(not) h(giv) m(en,) i(default) e (fon) m(t) g(class) g(set) g(is) g(assumed) f(b) m(y) g(default.) 39 b(F) -8 b(or) 27 b(suc) m(h) 480 2876 y(case,) 35 b(generate) f(a) f(`) p Fp(vflibcap) p Ft(') e(to) i(searc) m(h) g(PK) g(fon) m(t) g(\014le) f (b) s(efore) h(searc) m(hing) g(T) m(yp) s(e) f(1) h(fon) m(t) h(b) m (y) 480 2986 y(this) c(option.) p Fp 0 3151 a(-t1) p Ft 336 w(When) 41 b(`) p Fk(CLASS...) p Ft 11 w(') e(is) i(not) g(giv) m (en,) k(generate) e(a) f(`) p Fp(vflibcap) p Ft(') d(to) j(searc) m(h) g (T) m(yp) s(e) e(1) i(fon) m(t) f(\014le) 480 3260 y(b) s(efore) 30 b(searc) m(hing) h(PK) f(fon) m(t) h(\014le) f(b) m(y) h(this) f (option.) p Fm 0 3428 a(Options) h(for) f(Japanese) g(T) 919 3448 y(E) 968 3428 y(X) g(supp) s(ort:) p Fp 0 3595 a(-jtex) p Ft 240 w(Generate) 41 b(fon) m(t) f(de\014nitions) e(for) i(JIS) e (X0208) j(c) m(haracter) g(set) f(used) f(b) m(y) g(Japanese) g(T) 3484 3615 y(E) 3534 3595 y(X.) h(By) 480 3705 y(default,) 29 b(a) f(`) p Fp(vflibcap) p Ft(') d(to) k(b) s(e) e(generated) h(uses) f (Japanese) h(Kanji) f(c) m(haracter) i(in) f(PCF) f(format) 480 3814 y(\(in) j(X11) i(fon) m(t) f(directory\).) 41 b(See) 31 b(also) g(`) p Fp(-jpcf) p Ft(',) f(`) p Fp(-jekanji) p Ft(') f(and) g(`) p Fp(-jttf) p Ft(') h(options.) p Fp 0 3979 a(-jisx0212) p Ft 480 4089 a(Generate) k(fon) m(t) g (de\014nitions) e(for) h(JIS) f(X0208) j(c) m(haracter) f(set) g(used) e (b) m(y) h(Japanese) g(T) 3414 4108 y(E) 3464 4089 y(X.) g(Note) 480 4198 y(that) 27 b(generated) h(fon) m(t) f(names) g(are) g(not) g (standard.) 38 b(It) 27 b(is) g(used) f(for) g(priv) -5 b(ate) 27 b(use) g(of) g(the) f(author.) p Fp 0 4363 a(-jpcf) p Ft 240 w(Switc) m(h) k(to) i(use) e(PCF) g(fon) m(ts) h(for) f(Japanese) g(Kanji) g(c) m(haracters.) 42 b(\(This) 30 b(is) h(the) f(default.\)) p Fp 0 4528 a(-jekanji) p Ft 96 w(Switc) m(h) i(to) h(use) f(eKanji) g(fon) m(ts) g(for) g (Japanese) g(Kanji) g(c) m(haracters.) 47 b(See) 32 b(Section) h(6.17) g ([eKanji) 480 4638 y(fon) m(t) e(class],) h(page) f(47) g(for) f (detail) i(ab) s(out) e(eKanji) g(fon) m(ts.) p Fp 0 4802 a(-jttf) p Ft 240 w(Switc) m(h) g(to) i(use) e(T) -8 b(rueT) m(yp) s(e) 29 b(fon) m(ts) i(for) f(Japanese) h(Kanji) f(c) m (haracters.) p Fp 0 4967 a(-jpfd) p Fk 46 w(DIR) p Ft 480 5077 a(Add) 35 b(a) h(PCF) f(fon) m(t) h(directory) -8 b(.) p Fp 58 w(vflmkcaptex) p Ft 32 w(c) m(hec) m(ks) 37 b(t) m(ypical) g(X11) g(PCF) e(fon) m(t) h(directories) 480 5186 y(and) g(existing) i(directories) g(are) f(added) f(to) h(PCF) g (fon) m(t) g(directory) g(list.) 60 b(This) 36 b(option) h(should) 480 5296 y(b) s(e) 28 b(used) g(when) f(y) m(ou) i(w) m(an) m(t) g(to) h (add) d(optional) j(\(and) e(not) h(automatically) j(detected\)) e(PCF) e(fon) m(t) 480 5406 y(directory) -8 b(.) 42 b(This) 29 b(option) i(can) g(b) s(e) e(used) h(m) m(ultiple) h(times.) p Fp 0 5570 a(-jefd) p Fk 46 w(DIR) p Ft 480 5680 a(Add) e(a) i(eKanji) g (fon) m(t) g(directory) -8 b(.) 41 b(This) 30 b(option) h(can) f(b) s (e) g(used) g(m) m(ultiple) h(times.) p Fp 0 5845 a(-jtfd) p Fk 46 w(DIR) p Ft 480 5954 a(Add) e(a) i(T) -8 b(rueT) m(yp) s(e) 30 b(fon) m(t) h(directory) -8 b(.) 41 b(This) 30 b(option) h(can) f(b) s (e) g(used) g(m) m(ultiple) h(times.) p dyy eop end %%Page: 81 82 TeXDict begin 81 81 bop Ft 0 -116 a(Chapter) 30 b(9:) 41 b(Utilit) m(y) 32 b(programs) 2564 b(81) p Fp 0 365 a(-jtdb) p Fk 46 w(FILE) p Ft 480 475 a(By) 45 b(this) f(option,) k(an) c (external) i(de\014nition) e(database) h(\014le) p Fj 44 w(FILE) p Ft 50 w(is) f(read) g(for) g(generating) 480 584 y(de\014nitions) 28 b(of) h(non-standard) f(T) 1626 604 y(E) 1676 584 y(X) h(Japanese) g(fon) m(ts) h(using) e(Japanese) h (T) -8 b(rueT) m(yp) s(e) 28 b(fon) m(t) h(\014les.) 480 694 y(Eac) m(h) g(line) f(in) p Fj 28 w(FILE) p Ft 33 w(is) g(a) g(pair) g(of) g(\(1\)) h(fon) m(t) f(name) g(used) g(in) f (T) 2597 714 y(E) 2647 694 y(X) h(and) g(\(2\)) h(T) -8 b(rueT) m(yp) s(e) 27 b(fon) m(t) h(\014le) 480 804 y(name.) 41 b(F) -8 b(ollo) m(wing) 33 b(is) d(an) g(example:) p Fp 720 938 a(dfailpaa) 46 b(dcail5.ttc) 720 1048 y(dfainpaa) g (dcai5.ttc) 720 1157 y(dfaispaa) g(dcais5.ttc) 720 1267 y(dfbrrsaa) g(dfbrr7.ttc) 720 1376 y(dfbrrzaa) g(dfbrrc.ttc) 720 1486 y(dfbrspaa) g(dfbrs5.ttc) 720 1595 y(dfbrsvaa) g(dfbrs9.ttc) 720 1705 y(dfbrszaa) g(dfbrsc.ttc) p Ft 480 1839 a(See) 31 b(\014les) f(in) g(a) h(directory) g(`) p Fp(ascii-jtex/) p Ft(') c(for) k(detail.) p Fp 125 1998 a(vflmkcaptex) p Ft 25 w(is) d(a) g(Unix) g(Shell) g(script.) 40 b(It) 28 b(uses) g(follo) m(wing) h(programs) f(to) h(generate) g(a) g(`) p Fp(vflibcap) p Ft(') d(\014le.) 0 2108 y(Descriptions) 38 b(the) f(follo) m(wng) h(programs) f(are) g(ommited) g(since) h(most) f (of) g(users) f(nev) m(er) i(use) e(them) h(directly) -8 b(.) 0 2218 y(F) g(or) 31 b(details,) h(in) m(v) m(ok) m(e) g(eac) m(h) g(program) e(with) g(`) p Fp(--help) p Ft(') f(option) i(to) g(see) g (ho) m(w) f(to) h(use) f(it.) p Fp 0 2377 a(vflmkvfl) p Ft 96 w(A) g(generator) i(for) e(VFlib) h(defaults.) 41 b(\(See) 31 b(Section) g(6.9) g([VFlib) g(defaults],) g(page) h(36.\)) p Fp 0 2536 a(vflmktex) p Ft 96 w(A) j(generator) i(for) e(T) -8 b(eX) 36 b(mapping) e(class.) 56 b(\(See) 36 b(Section) g(6.18) h([T) -8 b(eX) 36 b(default) f(and) g(T) -8 b(eX) 36 b(fon) m(t) 480 2645 y(mapping) 30 b(fon) m(t) h(class],) g(page) g(49.\)) p Fp 0 2804 a(vflmkpk) p Ft 144 w(A) f(generator) i(for) e(PK) g(class.) 42 b(\(See) 31 b(Section) g(6.19) h([PK) e(fon) m(t) h(class],) g(page) g(52.\)) p Fp 0 2963 a(vflmkgf) p Ft 144 w(A) f(generator) i(for) e(GF) h(class.) 42 b(\(See) 31 b(Section) g(6.20) h([GF) f(fon) m(t) g (class],) g(page) h(53.\)) p Fp 0 3122 a(vflmkvf) p Ft 144 w(A) e(generator) i(for) e(Virtual) h(F) -8 b(on) m(t) 32 b(class.) 41 b(\(See) 31 b(Section) h(6.22) f([VF) h(fon) m(t) e (class],) i(page) f(54.\)) p Fp 0 3281 a(vflmktfm) p Ft 96 w(A) f(generator) i(for) e(TFM) h(class.) 41 b(\(See) 31 b(Section) g(6.21) h([TFM) f(fon) m(t) g(class],) h(page) f(54.\)) p Fp 0 3440 a(vflmkt1) p Ft 144 w(A) f(generator) i(for) e(T) m(yp) s(e) g (1) h(class.) 41 b(\(See) 31 b(Section) g(6.14) h([T) m(yp) s(e1) f (fon) m(t) g(class],) g(page) h(43.\)) p Fp 0 3599 a(vflmkekan) p Ft 480 3709 a(A) e(generator) i(for) e(eKanji) h(class.) 41 b(\(See) 31 b(Section) g(6.17) h([eKanji) f(fon) m(t) g(class],) g (page) g(47.\)) p Fp 0 3868 a(vflmkajt) p Ft 96 w(A) d(generator) h (for) f(ASCI) s(I) f(Japanese) h(T) 1830 3887 y(E) 1880 3868 y(X) g(class.) 41 b(\(See) 28 b(Section) h(6.23) h([ASCI) s(I) d (Japanese) h(T) -8 b(eX) 480 3977 y(Kanji) 30 b(fon) m(t) h(class],) h (page) f(56.\)) p Fs 0 4234 a(9.2) 68 b(v\015pp) p Fp 125 4478 a(vflpp) p Ft 30 w(prett) m(yprin) m(ts) 32 b(\(i.e.,) i(grinds\)) d(a) h(v\015ib) s(cap) f(\014le.) 45 b(It) 32 b(eliminate) i(all) e(commen) m(t) h(strings) f(and) f(unnec-) 0 4588 y(essary) f(space) h(and) f(newline) g(c) m(haracters.) p Fm 0 4722 a(Usage:) p Fp 42 w(vflpp) p Ft 28 w([) p Fj 31 w(v\015ib) s(cap-\014le) p Ft 35 w(]) 125 4856 y(A) 35 b(program) p Fp 35 w(vflpp) p Ft 34 w(prett) m(yprin) m(ts) h(a) f (\014le) p Fj 36 w(v\015ib) s(cap) p Ft 37 w(to) h(standard) f(output.) 55 b(If) 35 b(no) g(argumen) m(t) h(is) f(giv) m(en,) p Fp 0 4966 a(vflpp) p Ft 29 w(reads) 30 b(from) g(standard) g(input.) p Fs 0 5223 a(9.3) 68 b(v\015mkfdb) p Fm 0 5467 a(Usage:) p Fp 42 w(vflmkfdb) p Fj 28 w(fon) m(t-directory) p Ft 39 w([) 31 b(...) 41 b(]) 125 5601 y(A) 36 b(program) p Fp 35 w(vflmkfdb) p Ft 34 w(mak) m(es) h(a) f(fon) m(t) h(\014le) f (hin) m(t) g(database) h(\(FDB) g(for) f(short\)) g(in) g(a) g(fon) m (t) g(directories) 0 5710 y(giv) m(en) 31 b(in) f(the) h(command) f (line) h(argumen) m(t.) 125 5845 y(It) k(is) h(used) f(in) h(a) g(fon) m (t) h(\014le) f(searc) m(h) g(mo) s(dule) f(in) h(VFlib.) 57 b(In) 35 b(case) i(there) f(are) h(man) m(y) f(fon) m(t) g(\014les) g (in) f(man) m(y) 0 5954 y(directories,) 46 b(searc) m(h) c(a) g(fon) m (t) g(\014le) f(consumes) g(m) m(uc) m(h) h(time) g(to) g(tra) m(v) m (erse) i(directory) e(hierarc) m(h) m(y) -8 b(.) 75 b(FDB) 42 b(\014le) p dyy eop end %%Page: 82 83 TeXDict begin 82 82 bop Ft 0 -116 a(82) 3198 b(VFlib) 31 b(3.6.14) 0 365 y(con) m(tains) e(pairs) f(of) g(\014le) f(name) h(and) g(path) f(name) h(to) h(the) f(\014le) g(in) f(a) h(single) h(\014le.) 40 b(By) 28 b(reading) g(FDB) h(\014le,) g(a) f(fon) m(t) 0 475 y(\014le) i(can) h(b) s(e) f(found) f(without) h(tra) m(v) m (ersing) i(directories.) 125 609 y(F) -8 b(or) 31 b(eac) m(h) p Fj 31 w(fon) m(t-directory) p Ft(,) h(a) f(FDB) g(\014le) g(named) f(`) p Fp(VFlib.fdb) p Ft(') e(is) j(created) g(in) f(the) h(directory) -8 b(.) p Fs 0 867 a(9.4) 68 b(v\015drvs) p Fm 0 1111 a(Usage:) p Fp 42 w(vfldrvs) p Ft 125 1245 a(A) 30 b(program) p Fp 30 w(vfldrvs) p Ft 29 w(prin) m(ts) f(a) i(list) g(of) g(pre-installed) g(fon) m(t) g(driv) m(ers) f(in) g(VFlib.) p dyy eop end %%Page: 83 84 TeXDict begin 83 83 bop Ft 0 -116 a(Chapter) 30 b(10:) 41 b(Sample) 31 b(programs) 2490 b(83) p Fr 0 365 a(10) 80 b(Sample) 54 b(programs) p Fs 0 726 a(10.1) 68 b(v\015serv) l(er) p Fp 125 971 a(vflserver) p Ft 27 w(is) 31 b(a) g(fon) m(t) f(serv) m(er) h(that) g(pro) m(vides) f(the) h(functionalit) m(y) h(of) e(VFlib) h (via) g(net) m(w) m(ork.) p Fp 125 1106 a(vflserver) p Ft 27 w(can) g(b) s(e) f(in) m(v) m(ok) m(es) i(from) e(command) g (line) h(or) f(via) h(net) m(w) m(ork.) p Fi 0 1331 a(10.1.1) 63 b(Using) 42 b(v\015serv) m(er) f(from) h(command) g(line) p Fm 0 1576 a(Usage:) p Fp 42 w(vflserver) p Ft 27 w([) p Fp(-v) p Fj 30 w(v\015ib) s(cap) p Ft 3 w(]) 30 b([) p Fp(-s) p Fj 30 w(shrink) p Ft 6 w(]) f([) p Fj(cmd-\014le) h(...) p Ft(]) p Fp 125 1712 a(vflserver) p Ft 40 w(receiv) m(es) 44 b(a) g(command,) i(executes) e(it,) j(and) 42 b(return) g(a) h(result.) 78 b(This) 42 b(is) h(rep) s(eated) g(un) m(til) 0 1821 y(connection) c(is) f(closed) g(or) g(quit) f(command) h(is) g (executed.) p Fp 63 w(vflserver) p Ft 35 w(reads) g(a) g(sequence) g (of) g(command) 0 1931 y(from) 30 b(standard) f(input) h(if) p Fj 30 w(cmd-\014le) p Ft 36 w(option) h(is) f(not) h(giv) m(en.) 0 2066 y(Options:) p Fp 0 2227 a(-v) p Fj 30 w(v\015ib) s(cap) p Ft 480 2336 a(A) d(\014le) h(name) f(of) g(v\015ib) s(cap) f(to) i(b) s (e) f(used.) 39 b(If) 28 b(this) g(option) g(is) g(not) h(giv) m(en,) h (default) e(v\015ib) s(cap) f(\014le) h(is) 480 2446 y(used.) 39 b(\(P) m(ossibly) -8 b(,) 28 b(default) e(v\015ib) s(cap) g (is) g(`) p Fp(/usr/local/share/VFlib/3) o(.6.1) o(4/vf) o(lib) o(cap) p Ft('.\)) p Fp 0 2606 a(-s) p Fj 26 w(shrink) p Fp 107 w(vflserver) p Ft 23 w(has) g(a) h(feature) g(to) g(prin) m(t) e (obtained) i(bitmaps) f(in) g(ASCI) s(I-art) f(st) m(yle) j(for) d (debugging) 480 2715 y(purp) s(ose.) 39 b(When) 29 b(this) h(feature) g (is) f(enabled,) h(bitmaps) g(are) g(shrink) m(ed) e(b) m(y) i(this) f (factor.) 42 b(This) 28 b(is) 480 2825 y(e\013ectiv) m(e) 33 b(when) c(obtained) i(bitmaps) f(are) h(h) m(uge.) p Fj 0 2985 a(cmd-\014le) f(...) p Ft 62 w(A) h(sequence) f(of) h (commands) f(can) h(b) s(e) e(read) i(from) f(\014les.) 41 b(Commands) 29 b(in) h(\014les) p Fj 30 w(cmd-\014le) h(...) p Ft 41 w(are) 480 3095 y(executed) 39 b(in) e(giv) m(en) i(order.) 62 b(After) 38 b(executing) h(all) g(\014les,) p Fp 39 w(vflserver) p Ft 36 w(reads) e(a) h(sequence) g(of) 480 3204 y(commands) f(from) g (standard) f(input.) 60 b(Th) m(us,) 38 b(quit) f(command) g(ma) m(y) h (b) s(e) f(explicitly) i(giv) m(en) f(in) p Fj 480 3314 a(cmd-\014le) p Ft(.) i(This) 27 b(option) h(is) f(e\013ectiv) m(e) k (in) c(the) h(pro) s(cess) f(of) h(fon) m(t) g(driv) m(er) f(dev) m (elopmen) m(t) i(to) g(do) e(the) 480 3424 y(same) k(commands) f(man) m (y) g(times.) p Fi 0 3649 a(10.1.2) 63 b(Using) 42 b(v\015serv) m(er) f (via) g(net) m(w) m(ork) p Ft 125 3894 a(Before) 29 b(using) p Fp 28 w(vflserver) p Ft 25 w(via) g(net) m(w) m(ork,) h(it) f(m) m(ust) f(b) s(e) g(installed) h(to) g(b) s(e) e(in) m(v) m(ok) m(ed) j(b) m(y) p Fp 28 w(inetd) p Ft(.) 39 b(Y) -8 b(ou) 29 b(m) m(ust) 0 4004 y(b) s(e) h(a) g(ro) s(ot) h(to) g(do) g(the) f(follo) m(wing) i (pro) s(cedures.) 0 4139 y(First,) f(edit) g(`) p Fp(/etc/services) p Ft(':) p Fq 75 4274 a(\017) p Ft 60 w(Net) m(w) m(ork) h(service) f (name:) 41 b(v\015serv) m(er) p Fq 75 4409 a(\017) p Ft 60 w(W) -8 b(ell) 32 b(kno) m(wn) e(p) s(ort:) 40 b(4681) p Fq 75 4544 a(\017) p Ft 60 w(Proto) s(col:) i(tcp) 0 4704 y(Add) 29 b(the) i(follo) m(wing) h(line) f(to) g(`) p Fp(/etc/inetd.conf) p Ft('.) p Fp 240 4840 a(vflserver) 45 b(stream) h(tcp) h(nowait) f(nobody) g(/usr/local/bin/vflserver) c (vflserver) p Ft 125 4975 a(If) 23 b(y) m(ou) i(need) f(to) h (explicitly) h(sp) s(ecify) e(a) h(v\015ib) s(cap) e(\014le) i(to) g(b) s(e) f(used,) h(y) m(ou) f(m) m(ust) h(giv) m(e) g(`) p Fp(-v) p Ft(') g(option) f(as) h(follo) m(ws:) p Fp 240 5110 a(vflserver) 45 b(stream) h(tcp) h(nowait) f(nobady) g (/usr/local/bin/vflserver) c(vflserver) j(-v) i(/foo/vflibcap) p Ft 0 5245 a(T) -8 b(o) 31 b(force) g(inetd) f(to) h(re-read) g(`) p Fp(inetd.conf) p Ft(',) d(send) i(a) g(HUP) h(signal) g(to) g(inetd.) 125 5381 y(W) -8 b(e) 33 b(\014nished) e(installing) j(v\015serv) m(er) e(to) h(use) f(via) h(net) m(w) m(ork.) 48 b(No) m(w,) 34 b(use) p Fp 32 w(telnet) p Ft 31 w(to) f(c) m(hec) m(k) i(if) p Fp 32 w(vflserver) p Ft 0 5490 a(is) 30 b(correctly) i(installed) f(to) g(net) m(w) m(ork) h(service.) 41 b(The) 30 b(follo) m(wing) i(an) e (example) h(in) m(teraction.) p Fp 240 5626 a(\045) 47 b(telnet) g(localhost) e(vflserver) 240 5735 y(Trying) h(127.0.0.1...) 240 5845 y(Connected) f(to) i(localhost.) 240 5954 y(Escape) f (character) f(is) j('^]'.) p dyy eop end %%Page: 84 85 TeXDict begin 84 84 bop Ft 0 -116 a(84) 3198 b(VFlib) 31 b(3.6.14) p Fp 240 365 a(;) 47 b(This) g(is) g(a) h(font) e(server) g (VFLSERVER) g(Version) g(2.0) g(Fri) h(Mar) g(13) g(11:58:42) f(JST) h (1998) 335 475 y(...) 240 694 y(;) g(Type) g(`HELP') f(for) h (description) e(of) i(the) g(protocol.) 240 913 y(\(100) g("vflserver) e (ready."\)) 240 1132 y(open1) h(timR14.pcf) 240 1242 y(\(100) h(0) g("timR14.pcf"\)) 240 1352 y(debug) f(bitmap) g(on) 240 1461 y(\(100) h("Ascii-art) e(bitmap) h(on."\)) 240 1571 y(bitmap1) g(0) h(0x67) 240 1680 y(\(100) g(8) g(13) g(0) h(9) f(9) h (0) 288 1790 y("3eccc4c4cc78407c7f83c1) o(e27c) o(") 240 1900 y(") 288 2009 y(89012345678901) 288 2119 y(+------------+) 240 2228 y(9|) 572 b(|9) 240 2338 y(0|) 47 b(..@@@@@.) 141 b(|0) 240 2447 y(1|) 47 b(@@..@@..) 141 b(|1) 240 2557 y(2|) 47 b(@@...@..) 141 b(|2) 240 2667 y(3|) 47 b(@@...@..) 141 b(|3) 240 2776 y(4|) 47 b(@@..@@..) 141 b(|4) 240 2886 y(5|) 47 b(.@@@@...) 141 b(|5) 240 2995 y(6|) 47 b(.@......) 141 b(|6) 240 3105 y(7|) 47 b(.@@@@@..) 141 b(|7) 240 3215 y(8|) 47 b(.@@@@@@@) 141 b(|8) 240 3324 y(9|) 47 b(+.....@@) f(o) h(|9) 240 3434 y(0|) g(@@.....@) 141 b(|0) 240 3543 y(1|) 47 b(@@@...@.) 141 b(|1) 240 3653 y(2|) 47 b(.@@@@@..) 141 b(|2) 240 3763 y(3|) 572 b(|3) 288 3872 y(+------------+) 288 3982 y(89012345678901) 240 4091 y("\)) 240 4201 y(quit) 240 4311 y(\(100) 47 b("Happy) f(Hacking"\)) 240 4420 y(Connection) f (closed) h(by) h(foreign) f(host.) p Fi 0 4734 a(10.1.3) 63 b(The) 41 b(proto) s(col) i(of) e(v\015serv) m(er) 0 5157 y(10.1.3.1) 63 b(In) m(tro) s(duction) p Ft 125 5446 a(The) 31 b(VFLSER) -10 b(VER) 31 b(Proto) s(col) i(is) e(a) h (comm) m(unication) h(proto) s(col) g(b) s(et) m(w) m(een) f(a) g(serv) m(er) g(whic) m(h) f(o\013ers) h(fon) m(t) 0 5556 y(service) f(and) f (a) h(clien) m(t) h(whic) m(h) e(uses) g(fon) m(ts.) 125 5735 y(The) j(c) m(haracter) j(set) f(assumed) e(b) m(y) h(this) g (proto) s(col) i(is) e(ASCI) s(I) e(c) m(haracter) k(set.) 53 b(A) 34 b(line) h(is) f(a) h(sequence) f(of) 0 5845 y(c) m(haracter) g (terminated) e(b) m(y) g(a) h(newline) f(c) m(haracter) h(and) f(comm) m (unication) h(b) s(et) m(w) m(een) g(a) g(serv) m(er) f(and) f(a) i (clien) m(t) 0 5954 y(is) d(line-orien) m(ted.) p dyy eop end %%Page: 85 86 TeXDict begin 85 85 bop Ft 0 -116 a(Chapter) 30 b(10:) 41 b(Sample) 31 b(programs) 2490 b(85) p Fi 0 365 a(10.1.3.2) 63 b(Reply) 41 b(F) -10 b(ormat) 41 b(of) h(a) e(Serv) m(er) p Ft 125 605 a(Eac) m(h) c(request) h(to) g(a) f(serv) m(er) h(b) m(y) f (a) h(clien) m(t) g(tak) m(es) h(a) f(form) f(of) g(a) h(line.) 58 b(The) 36 b(follo) m(wing) i(are) e(examples) h(of) 0 714 y(clien) m(t's) 32 b(requests.) p Fp 240 844 a(OPEN1) 46 b(timR24.pcf) 240 954 y(DEBUG) g(BITMAP) g(ON) 240 1063 y(BITMAP1) g(1) h(33) p Ft 125 1193 a(A) 40 b(reply) g(b) m(y) g(a) h (serv) m(er) f(to) h(a) g(clien) m(t) h(is) e(an) h(S-expression,) h (\(lisp-lik) m(e) g(notation\).) 72 b(The) 40 b(follo) m(wing) i(are) 0 1303 y(examples) 31 b(of) f(serv) m(er's) h(resp) s(onse.) p Fp 240 1433 a(\(100) 47 b(0) g("timR14.pcf"\)) 240 1542 y(\(100) g("Ascii-art) e(bitmap) h(on."\)) 240 1652 y(\(100) h(8) g(13) g(0) h(9) f(9) h(0) f("3eccc4c4cc78407c7f83c1e2) o(7c") o(\)) p Ft 125 1782 a(The) 30 b(\014rst) g(n) m(um) m(b) s(er) f(of) i(the) g (resp) s(onse) f(of) h(eac) m(h) h(reply) e(b) m(y) h(a) g(serv) m(er) g (are) g(formed) f(b) m(y) h(decimal) h(digits) f(and) 0 1892 y(these) e(three) h(digits) f(indicates) h(the) f(status) h(of) f (an) g(execution) h(of) f(clien) m(t's) i(request.) 40 b(Th) m(us,) 29 b(this) g(three) g(digits) 0 2001 y(is) h(a) h(status) g (co) s(de.) 125 2131 y(The) h(\014rst) g(digit) i(is) f(one) g(of) g(`) p Fp(1) p Ft(',) h(`) p Fp(2) p Ft(',) g(....,) h(`) p Fp(5) p Ft('.) 48 b(If) 33 b(this) f(digit) i(is) f(`) p Fp(1) p Ft(',) h(it) f(there) g(is) g(no) g(error) g(at) g(all.) 50 b(If) 32 b(it) h(is) 0 2241 y(`) p Fp(5) p Ft(',) j(there) f(are) g (some) g(errors) f(to) h(ac) m(hiev) m(e) i(a) e(request.) 54 b(According) 35 b(to) g(the) g(degree) g(of) g(fatalness,) i(the) e (digit) 0 2350 y(is) g(decided;) k(It) c(is) g(`) p Fp(1) p Ft(') h(if) f(no) h(error) f(is) g(detected) i(and) e(is) g(`) p Fp(5) p Ft(') h(if) f(some) h(fatal) g(errors) f(are) h(detected) h (and) d(it) i(is) 0 2460 y(imp) s(ossible) 30 b(to) h(con) m(tin) m(ue) h(to) f(execute) h(a) e(serv) m(er.) 41 b(If) 30 b(it) h(is) g(not) f (`) p Fp(5) p Ft(',) h(a) g(clien) m(t) h(can) e(receiv) m(e) j(some) d (result.) p Fi 0 2670 a(10.1.3.3) 63 b(The) 42 b(Proto) s(col) p Ft 125 2910 a(The) g(follo) m(wing) j(de\014nes) e(commands) g(and) g (their) g(argumen) m(ts) h(b) m(y) f(a) h(clien) m(t,) k(and) 43 b(corresp) s(onding) f(re-) 0 3019 y(sp) s(onses) 34 b(b) m(y) i(a) g(serv) m(er.) 56 b(Command) 34 b(name) i(is) g (case-insensitiv) m(e,) j(but) c(argumen) m(ts) h(are) f(case-sensitiv) m(e.) 59 b(In) 0 3129 y(the) 29 b(description) f(of) h(command) g (format,) g(argumen) m(ts) g(enclosed) g(b) m(y) g([) g(]) f(can) h(b) s (e) f(omitted,) j(while) d(argumen) m(ts) 0 3239 y(that) j(are) g(not) f (enclosed) h(b) m(y) g([) f(]) h(are) g(essen) m(tial) h(argumen) m(ts) e(and) g(cannot) h(b) s(e) f(omitted.) p Fp 0 3389 a(OPEN1) p Fj 29 w(fon) m(t) p 431 3389 28 4 v 41 w(name) p Ft 35 w([) p Fj 31 w(p) s(oin) m(t) p 982 3389 V 40 w(size) p Ft 36 w([) p Fj 31 w(mag) p 1421 3389 V 40 w(x) 37 b(mag) p 1712 3389 V 40 w(y) p Ft 38 w([) p Fj 31 w(dpi) p 2021 3389 V 39 w(x) g(dpi) p 2272 3389 V 39 w(y) p Ft 38 w(]]]) 480 3498 y(Op) s(en) e(a) i(fon) m(t) h(in) e(mo) s(de) h(1) g(\(high) f (resolution) i(device) f(orien) m(ted) h(mo) s(de\).) 60 b(This) 36 b(corresp) s(onds) 480 3608 y(to) p Fp 41 w(VF_OpenFont1\(\)) p Ft 36 w(function.) 69 b(If) 40 b(it) g(succeeds) g(op) s(ening) g(the) g(fon) m(t,) j(a) e(fon) m(t) f (iden) m(ti\014er) g(is) 480 3718 y(returned.) e(After) 28 b(a) g(fon) m(t) f(is) g(op) s(ened,) h(an) m(y) f(request) h(for) e(a) i(fon) m(t) g(is) f(sp) s(eci\014ed) f(b) m(y) i(fon) m(t) f(iden) m (ti\014er) 480 3827 y(\(not) k(fon) m(t) g(name\).) p Fm 480 3957 a(Resp) s(onse:) p Ft 480 4107 a(When) f(the) h(command) f (is) g(successful:) p Fp 41 w(\() p Fk 47 w(status) 57 b(fontid) f(message) p Fp 57 w(\)) p Fj 960 4217 a(fon) m(tid) p Ft 34 w(is) 31 b(a) f(fon) m(t) h(id) f(represen) m(ted) h(b) m(y) f (non-negativ) m(e) i(in) m(teger) g(in) e(decimal.) 480 4367 y(When) g(the) h(command) f(failed:) p Fp 41 w(\() p Fk 48 w(status) 56 b(message) p Fp 57 w(\)) p Fj 960 4477 a(status) p Ft 34 w(indicates) 32 b(that) f(an) f(error) g(o) s (ccurred.) p Fp 0 4627 a(OPEN2) p Fj 29 w(fon) m(t) p 431 4627 V 41 w(name) p Ft 35 w([) p Fj 31 w(pixel) p 964 4627 V 40 w(size) p Ft 36 w([) p Fj 31 w(mag) p 1403 4627 V 41 w(x) 36 b(mag) p 1694 4627 V 41 w(y) p Ft 38 w(]]) 480 4737 y(Op) s(en) i(a) i(fon) m(t) g(in) f(mo) s(de) g(2) h (\(lo) m(w) g(resolution) h(device) f(orien) m(ted) g(mo) s(de\).) 68 b(This) 39 b(corresp) s(onds) 480 4846 y(to) p Fp 41 w(VF_OpenFont2\(\)) p Ft 36 w(function.) 69 b(If) 40 b(it) g(succeeds) g(op) s(ening) g(the) g(fon) m(t,) j(a) e(fon) m(t) f (iden) m(ti\014er) g(is) 480 4956 y(returned.) e(After) 28 b(a) g(fon) m(t) f(is) g(op) s(ened,) h(an) m(y) f(request) h(for) e(a) i(fon) m(t) g(is) f(sp) s(eci\014ed) f(b) m(y) i(fon) m(t) f(iden) m (ti\014er) 480 5065 y(\(not) k(fon) m(t) g(name\).) p Fm 480 5195 a(Resp) s(onse:) p Ft 40 w(Resp) s(onse) f(is) g(the) h (same) g(as) f(one) h(for) p Fp 30 w(OPEN1) p Ft 29 w(command.) p Fp 0 5345 a(CLOSE) p Fj 29 w(fon) m(t) p 431 5345 V 41 w(id) p Ft 480 5455 a(Closed) f(a) h(fon) m(t.) p Fm 480 5585 a(Resp) s(onse:) p Fp 40 w(\() p Fk 48 w(status) 56 b(message) p Fp 57 w(\)) 0 5735 y(BITMAP1) p Fj 28 w(fon) m(t) p 526 5735 V 41 w(id) 34 b(co) s(de) p 856 5735 V 40 w(p) s(oin) m(t) p Ft 32 w([) p Fj 31 w(mag) p 1357 5735 V 40 w(x) j(mag) p 1648 5735 V 41 w(y) p Ft 38 w(]) 480 5845 y(Obtain) 54 b(a) i(bitmap.) p Fj 113 w(fon) m(t) p 1496 5845 V 41 w(id) p Ft 58 w(is) f(a) g(fon) m(t) g(id.) 114 b(This) 54 b(command) g(corresp) s(onds) g(to) p Fp 55 w(VF_) 480 5954 y(GetBitmap1\(\)) p Ft 27 w(function) 30 b(of) h(VFlib.) p dyy eop end %%Page: 86 87 TeXDict begin 86 86 bop Ft 0 -116 a(86) 3198 b(VFlib) 31 b(3.6.14) p Fm 480 365 a(Resp) s(onse:) p Ft 480 510 a(When) f(the) g(command) g(is) h(successful:) p Fp 40 w(\() p Fk 48 w(status) 56 b(width) h(height) g(offx) g(offy) g(mvx) g (mvy) 480 620 y(bitmap) p Fp 57 w(\)) p Fj 960 729 a(width) p Ft 37 w(and) p Fj 38 w(heigh) m(t) p Ft 41 w(is) 38 b(a) g(size) h(of) f (bitmap) g(in) g(pixels.) p Fj 64 w(bitmap) p Ft 40 w(is) h(enco) s (ded) e(as) 960 839 y(a) k(sequence) g(of) g(hexadecimal) h(n) m(um) m (b) s(er.) 69 b(Eigh) m(t) 42 b(pixels) f(are) g(enco) s(ded) f(to) h (t) m(w) m(o) 960 948 y(hexadecimal) 29 b(n) m(um) m(b) s(er) e(and) h (the) g(w) m(eigh) m(t) i(of) e(the) g(i-th) g(\(0) p Fg 27 w(<) p Ft(=) p Fg 24 w(i) e(<) p Ft 25 w(8\)) j(pixel) f(from) 960 1058 y(the) 40 b(leftmost) g(pixel) g(is) p Fp 39 w(0x80) 47 b(>>) g(i) p Ft(.) p Fj 68 w(bitmap) p Ft 42 w(is) 39 b(a) h(sequence) g(of) f(enco) s(ded) g(of) 960 1167 y(rasters;) 30 b(the) f(\014rst) g(raster) g(b) s(egins) g(from) f(the) i(upp) s(er) d(left) j(corner) f(to) h(upp) s(er) d(righ) m(t) 960 1277 y(corner.) 65 b(Then,) 40 b(it) g(is) e(follo) m(w) m(ed) j(b) m (y) d(next) h(raster) g(\(one) g(pixel) g(do) m(wn) f(from) g(the) 960 1387 y(\014rst) 28 b(raster\).) 40 b(One) 28 b(raster) g(is) h(\() p Fg(w) r(idth) p Ft 18 w(+) 15 b(7\)) p Fg(=) p Ft(8) 30 b(b) m(ytes,) g(and) p Fj 27 w(bitmap) p Ft 31 w(con) m(tains) g(an) 960 1496 y(enco) s(ded) i(bitmap) f(of) i(\(\() p Fg(w) r(idth) p Ft 23 w(+) 21 b(7\)) p Fg(=) p Ft(8\)) p Fq 23 w(\003) p Fg 22 w(heig) s(ht) p Ft 34 w(b) m(ytes.) 46 b(Th) m(us,) 32 b(the) g(length) g(of) p Fj 960 1606 a(bitmap) p Ft 33 w(is) e(2) p Fq 21 w(\003) p Ft 21 w(\(\() p Fg(w) r(idth) p Ft 22 w(+) 20 b(7\)) p Fg(=) p Ft(8\)) p Fq 22 w(\003) p Fg 21 w(heig) s(ht) p Ft(.) 480 1751 y(When) 30 b(the) h(command) f (failed:) p Fp 41 w(\() p Fk 48 w(status) 56 b(message) p Fp 57 w(\)) p Fj 960 1860 a(status) p Ft 34 w(indicates) 32 b(that) f(an) f(error) g(o) s(ccurred.) p Fp 0 2005 a(BITMAP2) p Fj 28 w(fon) m(t) p 526 2005 28 4 v 41 w(id) k(co) s(de) p 856 2005 V 40 w(p) s(oin) m(t) p Ft 32 w([) p Fj 31 w(pixel) p 1380 2005 V 40 w(size) p Ft 37 w([) p Fj 30 w(mag) p 1819 2005 V 41 w(x) i(mag) p 2110 2005 V 41 w(y) p Ft 38 w(]]) 480 2114 y(Obtain) f(a) g(bitmap.) 54 b(This) 35 b(command) f(corresp) s(onds) g(to) p Fp 36 w(VF_GetBitmap2\(\)) p Ft 31 w(function.) 54 b(Re-) 480 2224 y(sp) s(onse) 29 b(is) i(the) f(same) h(as) p Fp 31 w(BITMAP1) p Ft 28 w(command.) p Fp 0 2369 a(METRIC1) p Fj 28 w(fon) m(t) p 526 2369 V 41 w(id) j(co) s(de) p 856 2369 V 40 w(p) s(oin) m(t) p Ft 32 w([) p Fj 31 w(p) s(oin) m(t) p 1398 2369 V 40 w(size) p Ft 36 w([) p Fj 31 w(mag) p 1837 2369 V 40 w(x) j(mag) p 2128 2369 V 41 w(y) p Ft 38 w(]]) 480 2478 y(Obtain) 58 b(a) h(metric) g(information) f(of) h(a) g(fon) m(t.) 125 b(This) 57 b(command) h(corresp) s(onds) f(to) p Fp 59 w(VF_) 480 2588 y(GetMetric1\(\)) p Ft 27 w(function.) p Fm 480 2715 a(Resp) s(onse:) p Ft 480 2860 a(When) 30 b(the) g(command) g(is) h(successful:) p Fp 40 w(\() p Fk 48 w(status) 56 b(width) h(height) g(offx) g(offy) g(mvx) g(mvy) p Fp 480 2969 a(\)) p Ft 960 3079 a(Eac) m(h) 33 b(elemen) m(t) g(of) g (the) f(resp) s(onse) f(is) h(the) g(same) h(as) f(return) f(v) -5 b(alues) 33 b(for) p Fp 31 w(BITMAP1) p Ft 960 3188 a(command) d (except) h(for) g(their) f(units) g(are) h(p) s(oin) m(ts.) 480 3333 y(When) f(the) h(command) f(failed:) p Fp 41 w(\() p Fk 48 w(status) 56 b(message) p Fp 57 w(\)) p Fj 960 3443 a(status) p Ft 34 w(indicates) 32 b(that) f(an) f(error) g(o) s (ccurred.) p Fp 0 3587 a(METRIC2) p Fj 28 w(fon) m(t) p 526 3587 V 41 w(id) k(co) s(de) p 856 3587 V 40 w(p) s(oin) m(t) p Ft 32 w([) p Fj 31 w(pixel) p 1380 3587 V 40 w(size) p Ft 37 w([) p Fj 30 w(mag) p 1819 3587 V 41 w(x) i(mag) p 2110 3587 V 41 w(y) p Ft 38 w(]]) 480 3697 y(Obtain) 58 b(a) h(metric) g(information) f(of) h(a) g(fon) m(t.) 125 b(This) 57 b(command) h(corresp) s(onds) f(to) p Fp 59 w(VF_) 480 3806 y(GetMetric2\(\)) p Ft 27 w(function.) p Fm 480 3934 a(Resp) s(onse:) p Ft 40 w(Same) 31 b(as) f(METRIC1) g (command) g(except) i(for) e(units) g(are) h(p) s(oin) m(ts.) p Fp 0 4078 a(FONTBBX1) p Fj 28 w(fon) m(t) p 574 4078 V 41 w(id) p Ft 33 w([) p Fj 31 w(mag) p 946 4078 V 41 w(x) 36 b(mag) p 1237 4078 V 41 w(y) p Ft 38 w(]) 480 4188 y(Obtain) f(fon) m(t) g(b) s(ounding) f(information) h(of) g(a) h (giv) m(en) g(fon) m(t) p Fj 36 w(fon) m(t) p 2673 4188 V 40 w(id) p Ft 39 w(op) s(ened) e(in) h(mo) s(de) g(1.) 55 b(The) 480 4297 y(argumen) m(t) p Fj 32 w(mag) p 1060 4297 V 41 w(x) 38 b(mag) p 1353 4297 V 41 w(y) p Ft 39 w(are) 32 b(magni\014cation) i(factor) e(to) h(b) s(e) e(scaled.) 46 b(This) 31 b(command) h(cor-) 480 4407 y(resp) s(onds) d(to) p Fp 31 w(VF_GetFontBoundingBox1\() o(\)) p Ft 24 w(function.) p Fm 480 4534 a(Resp) s(onse:) p Ft 480 4679 a(When) h(the) h(command) f (is) g(successful:) p Fp 41 w(\() p Fk 47 w(status) 57 b(width) g(height) f(xoff) h(yoff) p Fp 58 w(\)) p Fj 960 4788 a(width) p Ft 35 w(and) p Fj 36 w(heigh) m(t) p Ft 39 w(are) 36 b(width) g(and) f(heigh) m(t) i(of) f(b) s(ounding) f (b) s(o) m(x,) i(resp) s(ectiv) m(ely) -8 b(.) p Fj 960 4898 a(xo\013) p Ft 59 w(and) p Fj 41 w(y) m(o\013) p Ft 60 w(are) 42 b(the) g(largest) g(horizon) m(tal) h(and) e(v) m (ertical) j(displacemen) m(t) e(of) 960 5007 y(lo) m(w) m(er) k(left) g (corner) e(of) h(b) s(ounding) e(b) s(o) m(x) i(from) f(reference) i(p) s(oin) m(ts.) 84 b(Note) 46 b(that) 960 5117 y(these) 41 b(v) -5 b(alues) 42 b(do) s(es) e(not) h(guaran) m(tee) i(the) e (minimalit) m(y;) 48 b(they) 41 b(only) g(guaran) m(tee) 960 5227 y(that) 30 b(all) h(c) m(haracters) g(can) g(b) s(e) e(con) m (tained) i(in) e(a) i(b) s(o) m(x) e(describ) s(ed) g(b) m(y) h(them.) 40 b(Units) 960 5336 y(of) 31 b(return) e(v) -5 b(alues) 31 b(are) f(p) s(oin) m(t.) 480 5481 y(When) g(the) h(command) f(failed:) p Fp 41 w(\() p Fk 48 w(status) 56 b(message) p Fp 57 w(\)) p Fj 960 5591 a(status) p Ft 34 w(indicates) 32 b(that) f(an) f(error) g (o) s(ccurred.) p Fp 0 5735 a(FONTBBX2) p Fj 28 w(fon) m(t) p 574 5735 V 41 w(id) p Ft 33 w([) p Fj 31 w(mag) p 946 5735 V 41 w(x) 36 b(mag) p 1237 5735 V 41 w(y) p Ft 38 w(]) 480 5845 y(Argumen) m(ts) f(and) f(return) f(v) -5 b(alues) 35 b(are) g(the) g(same) g(except) p Fj 35 w(fon) m(t) p 2688 5845 V 41 w(id) p Ft 37 w(m) m(ust) g(b) s(e) f(in) g(mo) s(de) g (2) h(and) 480 5954 y(units) 30 b(of) g(return) g(v) -5 b(alues) 30 b(are) h(pixel.) p dyy eop end %%Page: 87 88 TeXDict begin 87 87 bop Ft 0 -116 a(Chapter) 30 b(10:) 41 b(Sample) 31 b(programs) 2490 b(87) p Fp 0 365 a(PROPERTY) p Fj 28 w(fon) m(t) p 574 365 28 4 v 41 w(id) 33 b(prop) s(ert) m(y) p 1066 365 V 40 w(name) p Ft 480 475 a(Obtain) d(a) h(prop) s(ert) m(y) f (named) p Fj 29 w(prop) s(ert) m(y) p 1876 475 V 40 w(name) p Ft 35 w(of) h(a) g(fon) m(t) p Fj 31 w(fon) m(t) p 2686 475 V 40 w(id) p Ft(.) p Fm 480 610 a(Resp) s(onse:) p Ft 480 772 a(When) f(the) h(command) f(is) g(successful:) p Fp 41 w(\() p Fk 47 w(status) 57 b(value) p Fp 57 w(\)) p Ft 480 881 a(When) 30 b(the) h(command) f(failed:) p Fp 41 w(\() p Fk 48 w(status) 56 b(message) p Fp 57 w(\)) p Fj 960 991 a(status) p Ft 34 w(indicates) 32 b(that) f(an) f(error) g (o) s(ccurred.) p Fp 0 1152 a(MINIMIZE-BBX) p Ft 27 w([) p Fj 31 w(\015ag) p Ft 38 w(]) 480 1262 y(Select) i(a) g(mo) s(de) f (whether) f(a) i(bitmap) f(sen) m(t) h(from) e(a) i(serv) m(er) f (should) g(b) s(e) f(minimized) h(or) g(not.) 44 b(If) p Fj 480 1372 a(\015ag) p Ft 34 w(is) p Fp 26 w(ON) p Ft(,) 27 b(b) s(ounding) d(b) s(o) m(xes) i(of) g(bitmaps) g(sen) m(t) g(from) g (a) g(serv) m(er) g(is) g(minimized) g(not) g(to) h(con) m(tain) 480 1481 y(white) h(pixels) g(as) g(p) s(ossible.) 39 b(If) p Fj 28 w(\015ag) p Ft 36 w(is) p Fp 27 w(OFF) p Ft(,) 28 b(bitmaps) g(sen) m(t) g(from) f(a) h(serv) m(er) h(is) e(not) h (guaran) m(teed) 480 1591 y(to) 40 b(b) s(e) f(minimized) g(b) s (ounding) e(b) s(o) m(xes.) 68 b(If) p Fj 38 w(\015ag) p Ft 48 w(is) 39 b(not) h(giv) m(en,) i(curren) m(t) d(mo) s(de) g(is) g (returned.) 480 1700 y(Initial) 31 b(mo) s(de) f(is) p Fp 31 w(OFF) p Ft(.) p Fm 480 1836 a(Resp) s(onse:) p Ft 40 w(The) g(curren) m(t) g(mo) s(de) g(is) h(returned) e(ev) m(en) i (if) f(the) h(op) s(eration) g(fails) g(or) f(succeeds.) 480 1997 y(When) g(the) h(command) f(is) g(successful:) p Fp 41 w(\() p Fk 47 w(status-code) 55 b(mode) p Fp 58 w(\)) p Fj 960 2107 a(Mo) s(de) p Ft 36 w(is) 30 b(one) h(of) p Fp 30 w(ON) p Ft 30 w(or) p Fp 30 w(OFF) p Ft(.) 480 2268 y(When) f(the) h(command) f(failed:) p Fp 41 w(\() p Fk 48 w(status-code) 55 b(mode) p Fp 57 w(\)) p Fj 960 2378 a(Mo) s(de) p Ft 36 w(is) 30 b(one) h(of) p Fp 30 w(ON) p Ft 30 w(or) p Fp 30 w(OFF) p Ft(.) p Fp 0 2539 a(QUIT) p Ft 288 w(Finish) f(in) m(teraction) i(b) s(et) m(w) m(een) f (a) g(serv) m(er) g(and) f(a) g(clien) m(t.) 43 b(This) 29 b(op) s(eration) i(alw) m(a) m(ys) h(succeeds.) p Fm 480 2675 a(Resp) s(onse:) p Fp 40 w(\() p Fk 48 w(status) 56 b(message) p Fp 57 w(\)) p Fs 0 2937 a(10.2) 68 b(v\015test) p Fp 125 3183 a(vfltest) p Ft 38 w(displa) m(ys) 41 b(glyph) f(of) h(a) g (giv) m(en) h(fon) m(t) f(and) f(c) m(haracters) i(b) m(y) e(ASCI) s (I-art) g(form) g(on) h(a) g(c) m(haracter) 0 3293 y(terminal.) 82 b(It) 44 b(do) s(es) f(not) h(requires) g(X) g(Windo) m(w) g(System,) j (but) c(the) h(fon) m(t) h(of) f(the) g(terminal) g(m) m(ust) g(b) s(e) f(a) 0 3403 y(\014xed-width) 29 b(fon) m(t,) i(since) g(bitmaps) f(are) h(prin) m(ted) f(b) m(y) g(ASCI) s(I-art) g(form.) p Fm 0 3539 a(Usage:) p Fp 42 w(vfltest) p Ft 28 w([) p Fj 30 w(OPTIONS...) p Ft 40 w(]) p Fj 41 w(F) m(ONT) p 1593 3539 V 40 w(NAME) 36 b(CHAR) p 2219 3539 V 40 w(LIST) p Fm 0 3676 a(Options:) p Fp 0 3838 a(-mode1) p Ft 192 w(A) 30 b(fon) m(t) h(is) g(op) s(ened) e(in) h(mo) s(de) g(1) h (\(high) g(resolution) f(device) i(orien) m(ted) f(mo) s(de\).) p Fp 0 3999 a(-mode2) p Ft 192 w(A) f(fon) m(t) h(is) g(op) s(ened) e(in) h(mo) s(de) g(2) h(\(lo) m(w) h(resolution) f(device) g(orien) m(ted) g (mo) s(de\).) p Fp 0 4161 a(-ol) p Ft 336 w(Bitmaps) 25 b(are) g(obtained) g(b) m(y) p Fp 24 w(VF_GetOutline\(\)) p Ft 21 w(and) f(then) p Fp 24 w(VF_OutlineToBitmap\(\)) p Ft(.) 33 b(This) 480 4270 y(option) e(is) f(e\013ectiv) m(e) j(only) e (when) e(a) i(fon) m(t) g(is) f(op) s(ened) g(in) g(mo) s(de) g(1.) p Fp 0 4432 a(-v) p Fj 30 w(v\015ib) s(cap) p Ft 480 4542 a(A) e(\014le) h(name) f(of) g(v\015ib) s(cap) f(to) i(b) s(e) f(used.) 39 b(If) 28 b(this) g(option) g(is) g(not) h(giv) m(en,) h(default) e (v\015ib) s(cap) f(\014le) h(is) 480 4651 y(used.) 39 b(\(P) m(ossibly) -8 b(,) 28 b(default) e(v\015ib) s(cap) g(is) g(`) p Fp(/usr/local/share/VFlib/3) o(.6.1) o(4/vf) o(lib) o(cap) p Ft('.\)) p Fp 0 4813 a(-p) p Fj 30 w(p) s(oin) m(t) p Ft 32 w(or) p Fp 30 w(-p) p Fj 30 w(pixel) p Ft 480 4922 a(Sp) s(ecify) e(p) s(oin) m(t) i(or) f(pixel) g(size) h(of) g(c) m (haracters.) 40 b(If) 25 b(this) g(option) h(is) f(not) g(giv) m(en,) j (size) e(of) f(c) m(haracters) 480 5032 y(are) 31 b(original) g(size) h (of) e(a) h(fon) m(t.) p Fp 0 5193 a(-d) p Fj 29 w(dpi) p Ft 227 w(Giv) m(e) g(a) f(device) g(resolution) g(in) g(DPI.) f(This) g (option) h(is) g(e\013ectiv) m(e) i(only) d(when) g(a) h(fon) m(t) g (is) f(op) s(ened) 480 5303 y(in) h(mo) s(de) g(1.) p Fp 0 5464 a(-m) p Fj 41 w(mag) p Ft 188 w(Sp) s(ecify) 41 b(v) m(ertical) j(and) d(horizon) m(tal) j(magni\014cation) f(factor.) 75 b(If) 42 b(this) f(option) h(is) g(not) g(giv) m(en,) 480 5574 y(magni\014cation) 32 b(factor) f(is) f(1.0.) p Fp 0 5735 a(-mx) p Fj 29 w(mag) p 345 5735 V 41 w(h) p Ft 480 5845 a(Sp) s(ecify) g(horizon) m(tal) i(magni\014cation) g (factor.) 43 b(If) 31 b(this) f(option) h(is) g(not) g(giv) m(en,) h (horizon) m(tal) h(mag-) 480 5954 y(ni\014cation) e(factor) g(is) g (1.0.) p dyy eop end %%Page: 88 89 TeXDict begin 88 88 bop Ft 0 -116 a(88) 3198 b(VFlib) 31 b(3.6.14) p Fp 0 365 a(-my) p Fj 29 w(mag) p 345 365 28 4 v 41 w(v) p Ft 480 475 a(Sp) s(ecify) f(v) m(ertical) i (magni\014cation) g(factor.) 41 b(If) 30 b(this) h(option) f(is) h(not) f(giv) m(en,) i(v) m(ertical) g(magni\014ca-) 480 584 y(tion) f(factor) g(is) g(1.0.) p Fp 0 741 a(--help) p Ft 192 w(Prin) m(t) f(command) h(line) f(argumen) m(ts) h(and) f(k) m (ey) h(op) s(erations) f(on) h(a) g(windo) m(w.) 125 898 y(A) f(list) h(of) g(c) m(haracter) h(is) e(a) h(sequence) f(of) h (the) g(follo) m(wing) g(forms.) p Fj 0 1055 a(co) s(de) p Ft 301 w(A) d(c) m(haracter) i(is) f(giv) m(en) g(b) m(y) f(c) m (haracter) i(co) s(de.) 40 b(Decimal) 30 b(\(e.g.,) h(`) p Fp(34) p Ft('\)) d(and) g(Hexa-decimal) j(\(e.g.,) 480 1164 y(`) p Fp(0x67) p Ft('\)) f(n) m(um) m(b) s(ers) f(can) i(b) s(e) e (used.) p Fj 0 1321 a(from) p Fp 33 w(-) p Fj 34 w(to) p Ft 107 w(This) j(form) i(sp) s(eci\014es) f(c) m(haracters) i(b) m(y) f (a) g(range) g(of) g(c) m(haracter) h(co) s(de,) g(from) p Fj 33 w(from) p Ft 33 w(to) p Fj 35 w(to) p Ft 39 w(\(e.g.,) 480 1431 y(`) p Fp(0x20) 29 b(-) h(0x7e) p Ft('\).) 41 b(Space) 30 b(c) m(haracters) i(are) f(necessary) g(b) s(efore) f(and) f(after) i (min) m(us) f(sign) g(\() p Fp(-) p Ft(\).) p Fp 0 1588 a(=) p Fj(c) m(harlist) p Ft 142 w(This) g(form) f(sp) s(eci\014es) h (c) m(haracters) i(b) m(y) f(a) f(list) h(of) g(1-b) m(yte) h(c) m (haracters,) g(e.g.,) g(`) p Fp(=abcdefg) p Ft('.) p Fs 0 1841 a(10.3) 68 b(v\015x11) p Fp 125 2084 a(vflx11) p Ft 28 w(displa) m(ys) 31 b(glyph) f(of) g(a) h(giv) m(en) g(fon) m(t) g (in) f(a) h(windo) m(w.) 40 b(It) 31 b(requires) f(X11R5) h(or) g (X11R6.) p Fm 0 2217 a(Usage:) p Fp 42 w(vflx11) p Ft 28 w([) p Fj 31 w(OPTIONS...) p Ft 39 w(]) p Fj 41 w(F) m(ONT) p 1545 2217 V 40 w(NAME) p Fm 0 2350 a(Options:) p Fp 0 2507 a(-mode1) p Ft 192 w(A) f(fon) m(t) h(is) g(op) s(ened) e(in) h (mo) s(de) g(1) h(\(high) g(resolution) f(device) i(orien) m(ted) f(mo) s(de\).) p Fp 0 2664 a(-ol) p Ft 336 w(Bitmaps) 25 b(are) g(obtained) g (b) m(y) p Fp 24 w(VF_GetOutline\(\)) p Ft 21 w(and) f(then) p Fp 24 w(VF_OutlineToBitmap\(\)) p Ft(.) 33 b(This) 480 2773 y(is) d(e\013ectiv) m(e) j(when) d(a) h(fon) m(t) f(is) h(op) s (ened) e(in) i(mo) s(de) e(1.) p Fp 0 2930 a(-mode2) p Ft 192 w(A) h(fon) m(t) h(is) g(op) s(ened) e(in) h(mo) s(de) g(2) h (\(lo) m(w) h(resolution) f(device) g(orien) m(ted) g(mo) s(de\).) p Fp 0 3087 a(-v) p Fj 30 w(v\015ib) s(cap) p Ft 480 3196 a(A) d(\014le) h(name) f(of) g(v\015ib) s(cap) f(to) i(b) s(e) f(used.) 39 b(If) 28 b(this) g(option) g(is) g(not) h(giv) m(en,) h(default) e (v\015ib) s(cap) f(\014le) h(is) 480 3306 y(used.) 39 b(\(P) m(ossibly) -8 b(,) 28 b(default) e(v\015ib) s(cap) g(is) g(`) p Fp(/usr/local/share/VFlib/3) o(.6.1) o(4/vf) o(lib) o(cap) p Ft('.\)) p Fp 0 3463 a(-p) p Fj 30 w(p) s(oin) m(t) p Ft 32 w(or) p Fp 30 w(-p) p Fj 30 w(pixel) p Ft 480 3572 a(Sp) s(ecify) e(p) s(oin) m(t) i(or) f(pixel) g(size) h(of) g(c) m (haracters.) 40 b(If) 25 b(this) g(option) h(is) f(not) g(giv) m(en,) j (size) e(of) f(c) m(haracters) 480 3682 y(are) 31 b(original) g(size) h (of) e(a) h(fon) m(t.) p Fp 0 3839 a(-m) p Fj 41 w(mag) p Ft 188 w(Sp) s(ecify) 41 b(v) m(ertical) j(and) d(horizon) m(tal) j (magni\014cation) f(factor.) 75 b(If) 42 b(this) f(option) h(is) g(not) g(giv) m(en,) 480 3948 y(magni\014cation) 32 b(factor) f(is) f(1.0.) p Fp 0 4105 a(-mx) p Fj 29 w(mag) p 345 4105 V 41 w(h) p Ft 480 4215 a(Sp) s(ecify) g(horizon) m(tal) i(magni\014cation) g (factor.) 43 b(If) 31 b(this) f(option) h(is) g(not) g(giv) m(en,) h (horizon) m(tal) h(mag-) 480 4324 y(ni\014cation) e(factor) g(is) g (1.0.) p Fp 0 4481 a(-my) p Fj 29 w(mag) p 345 4481 V 41 w(v) p Ft 480 4591 a(Sp) s(ecify) f(v) m(ertical) i(magni\014cation) g(factor.) 41 b(If) 30 b(this) h(option) f(is) h(not) f(giv) m(en,) i (v) m(ertical) g(magni\014ca-) 480 4700 y(tion) f(factor) g(is) g(1.0.) p Fp 0 4857 a(--help) p Ft 192 w(Prin) m(t) f(command) h(line) f (argumen) m(ts) h(and) f(k) m(ey) h(op) s(erations) f(on) h(a) g(windo) m(w.) 0 5014 y(F) -8 b(ollo) m(wing) 33 b(op) s(erations) e(are) f (de\014ned) f(on) i(a) p Fp 30 w(vflx11) p Ft 29 w(windo) m(w.) p Ff 0 5167 a(h) p 24 5114 38 4 v Fe 24 5170 a(q) p 24 5186 V Ff 57 5167 a(i) p Ft 480 5170 a(Finish) p Fp 30 w(vflx11) p Ff 0 5324 a(h) p 24 5271 40 4 v Fe 24 5327 a(b) p 24 5343 V Ff 59 5324 a(i) p Ft 480 5327 a(Go) g(to) g(previous) f (page.) p Ff 0 5481 a(h) p 24 5428 139 4 v Fe 24 5484 a(SPC) p 24 5499 V Ff 158 5481 a(i) p Ft 480 5484 a(Go) h(to) g(next) g (page.) p Ff 0 5638 a(h) p 24 5585 20 4 v Fe 24 5641 a([) p 24 5657 V Ff 40 5638 a(i) p Ft 480 5641 a(Go) g(to) g(previous) f (4) h(page.) p Ff 0 5795 a(h) p 24 5742 V Fe 24 5798 a(]) p 24 5814 V Ff 40 5795 a(i) p Ft 480 5798 a(Go) g(to) g(next) g(4) g(page.) p Ff 0 5951 a(h) p 24 5895 48 4 v Fp 24 5954 a({) p 24 5970 V Ff 68 5951 a(i) p Ft 480 5954 a(Go) g(to) g(previous) f (16) h(page.) p dyy eop end %%Page: 89 90 TeXDict begin 89 89 bop Ft 0 -116 a(Chapter) 30 b(10:) 41 b(Sample) 31 b(programs) 2490 b(89) p Ff 0 362 a(h) p 24 305 48 4 v Fp 24 365 a(}) p 24 381 V Ff 68 362 a(i) p Ft 480 365 a(Go) 31 b(to) g(next) g(16) g(page.) p Ff 0 532 a(h) p 24 479 V Fp 24 535 a(+) p 24 550 V Ff 68 532 a(i) p Ft 480 535 a(Enlarge) g(the) f(windo) m(w.) p Ff 0 701 a(h) p 24 648 24 4 v Fe 24 704 a(-) p 24 719 V Ff 44 701 a(i) p Ft 480 704 a(Shrink) f(the) h(windo) m(w.) p Ff 0 870 a(h) p 24 817 48 4 v Fp 24 873 a(<) p 24 889 V Ff 68 870 a(i) p Ft 480 873 a(Go) h(to) g(the) g(\014rst) e(page.) p Ff 0 1040 a(h) p 24 987 V Fp 24 1043 a(>) p 24 1058 V Ff 68 1040 a(i) p Ft 480 1043 a(Go) i(to) g(the) g(last) g(page.) p Ff 0 1209 a(h) p 24 1156 59 4 v Fe 24 1212 a(m) p 24 1228 V Ff 79 1209 a(i) p Ft 480 1212 a(Mark) g(the) f(curren) m(t) g (page.) p Ff 0 1379 a(h) p 24 1326 36 4 v Fe 24 1382 a(g) p 24 1397 V Ff 55 1379 a(i) p Ft 480 1382 a(Goto) i(the) e(mark) m (ed) h(page.) p Fs 0 1664 a(10.4) 68 b(v\015disol) p Fp 125 1918 a(vfldisol) p Ft 28 w(displa) m(ys) 30 b(`disassem) m(bled) h(lists') g(of) f(v) m(ector) i(data) f(of) g(a) g(giv) m(en) g(fon) m (t) g(and) f(co) s(de) g(p) s(oin) m(ts.) p Fm 0 2062 a(Usage:) p Fp 42 w(vfldisol) p Ft 28 w([) p Fj 30 w(OPTIONS...) p Ft 40 w(]) p Fj 40 w(F) m(ONT) p 1640 2062 28 4 v 41 w(NAME) 36 b(CODE) p Ft 35 w(...) p Fm 0 2207 a(Options:) p Fp 0 2381 a(-v) p Fk 47 w(VFLIBCAP) p Ft 480 2491 a(A) 28 b(\014le) h(name) f(of) g(v\015ib) s(cap) f(to) i(b) s(e) f(used.) 39 b(If) 28 b(this) g(option) g(is) g(not) h(giv) m(en,) h(default) e (v\015ib) s(cap) f(\014le) h(is) 480 2601 y(used.) 39 b(\(P) m(ossibly) -8 b(,) 28 b(default) e(v\015ib) s(cap) g(is) g(`) p Fp(/usr/local/share/VFlib/3) o(.6.1) o(4/vf) o(lib) o(cap) p Ft('.\)) p Fp 0 2770 a(-d) p Fk 47 w(DPI) p Ft 193 w(Resolution) 34 b(of) f(device) h(in) e(dpi.) 48 b(If) 32 b(this) h(option) g(is) g (not) g(giv) m(en,) i(default) e(resolution) h(of) f(a) g(fon) m(t) 480 2880 y(is) d(used.) p Fp 0 3049 a(-p) p Fk 47 w(POINT) p Ft 97 w(P) m(oin) m(t) 37 b(size) g(of) f(c) m(haracters.) 59 b(If) 36 b(this) g(option) g(is) g(not) h(giv) m(en,) h(default) e(p) s (oin) m(t) g(size) h(of) g(a) f(fon) m(t) g(is) 480 3158 y(used.) p Fp 0 3328 a(-x) p Ft 384 w(Prin) m(t) 30 b(hexadecimal) i (dump) d(of) h(outline) h(data) g(instead) g(of) f(disassem) m(bled) h (list.) p Fs 0 3610 a(10.5) 68 b(ctext2pgm) p Fp 125 3864 a(ctext2pgm) p Ft 21 w(creates) 25 b(an) f(image) h(\014le) f(in) f (PGM) h(or) g(PBM) g(format) h(from) e(a) h(m) m(ultilingual) h(text) g (\014le) f(enco) s(ded) 0 3974 y(b) m(y) 34 b(comp) s(ound) f(text) i (format.) 53 b(It) 34 b(also) h(supp) s(orts) d(v) -5 b(arious) 35 b(text) g(enco) s(dings) f(suc) m(h) g(as) g(Chinese,) h (Japanese,) 0 4083 y(Korean) f(EUCs) f(and) g(Shift-JIS.) g(PGM) h(and) f(PBM) h(formats) g(are) g(p) s(ortable) g(formats,) h(image) f (\014les) g(can) g(b) s(e) 0 4193 y(easily) e(con) m(v) m(erted) f(to) g (another) g(image) h(format) e(suc) m(h) g(as) h(GIF,) g(TIFF.) 125 4338 y(It) f(supp) s(orts) e(v) -5 b(arious) 31 b(c) m(haracter) h (sets) f(and) e(left-to-righ) m(t) 34 b(and) 29 b(righ) m(t-to-left) k (directionalities.) 0 4542 y(ISO) c(8859-1,2,3,4,5,7,) q(8,9) 480 4651 y(|) h(Latin) h(c) m(haracter) h(sets,) f(including) f(Hebrew) g (whic) m(h) g(is) g(written) h(from) f(righ) m(t) h(to) g(left.) 0 4821 y(Mule) g(Arabic) 480 4930 y(|) 36 b(An) g(Arabic) g(script,) i (written) e(from) f(righ) m(t) i(to) g(left.) 58 b(This) 36 b(c) m(haracter) h(set) g(is) f(used) f(b) m(y) h(the) 480 5040 y(m) m(ultilingual) c(editor) e(Mule.) 0 5209 y(JIS) f(X) i(0201,) h(JIS) e(X) g(0208,) i(JIS) e(X) g(0212) 480 5319 y(|) g(Japanese) h(c) m(haracter) h(sets.) 0 5488 y(GB) f(2312) 134 b(|) 30 b(A) h(Chinese) f(c) m(haracter) i(set.) 0 5658 y(CNS) e(11641-1,) j (CNS) d(11641-2) 480 5767 y(|) g(Chinese) g(c) m(haracter) i(sets.) 0 5937 y(KSC) d(5601) 83 b(|) 30 b(A) h(Hangle) g(c) m(haracter) h(set.) p dyy eop end %%Page: 90 91 TeXDict begin 90 90 bop Ft 0 -116 a(90) 3198 b(VFlib) 31 b(3.6.14) p Fi 0 365 a(10.5.1) 63 b(Running) 42 b(ctext2pgm) p Fm 0 608 a(Usage:) p Fp 42 w(ctext2pgm) p Ft 27 w([) p Fj 31 w(OPTIONS...) p Ft 40 w(]) e([) p Fj 31 w(\014le) p Ft 35 w(]) 0 742 y(|) p Fp 34 w(ctext2pgm) p Ft 32 w(reads) p Fj 35 w(\014le) p Ft 39 w(\(if) 35 b(not) g(giv) m(en,) i(reads) d (standard) g(input\)) g(and) g(prin) m(ts) g(image) h(\014le) g(to) g (standard) 0 852 y(output.) p Fm 125 985 a(Example:) p Fp 240 1119 a(\045) 47 b(ctext2pgm) f(-pgm) g(-ctext) g(-16) h(-times) f (DOC-10.txt) 93 b(>) 48 b(IMAGE.pgm) p Ft 125 1252 a(\(Nev) m(er) 31 b(forget) h(to) f(redirect) g(the) f(output.\)) p Fm 0 1386 a(Options) h(for) f(VFlib:) p Fp 0 1543 a(-v) p Fk 47 w(f) p Ft 289 w(|) d(a) g(v\015ib) s(cap) g(\014le) g(to) h(b) s (e) e(used) h(b) m(y) p Fp 27 w(ctext2pgm) p Ft(.) 37 b(Default) 28 b(v) -5 b(alue) 28 b(is) f(`) p Fp(vflibcap-ctext2pgm) p Ft('.) p Fm 0 1701 a(Options) k(for) f(input) g(enco) s(ding) g(and) f (script:) p Fp 0 1858 a(-ctext) p Ft 192 w(|) 41 b(Assume) f(that) i (an) f(enco) s(ding) g(of) g(input) f(\014le.) 72 b(\(This) 41 b(is) g(the) g(default) g(input) f(enco) s(ding.\)) 480 1968 y(Default) 31 b(writing) g(directionalit) m(y) i(is) d(set) h(to) g (left-to-righ) m(t.) 480 2102 y(By) 40 b(this) g(enco) s(ding,) i(m) m (ultiple) f(c) m(haracter) g(set) f(can) g(b) s(e) g(used) f(in) g(an) h (input) e(text) j(b) m(y) f(escap) s(e) 480 2211 y(sequences.) h (Mixture) 30 b(of) g(scripts) f(of) h(left-to-righ) m(t) j(and) c(righ) m(t-to-left) j(directionalities) h(is) d(also) 480 2321 y(supp) s(orted.) p Fp 0 2478 a(-iso-8859-1) p Ft 27 w(or) p Fp 31 w(-latin-1) p Ft 480 2588 a(|) g(Assume) g(that) g(input) f(\014le) i(is) f(enco) s(ded) g(b) m(y) g(iso-8859-1.) 44 b(Escap) s(e) 30 b(sequence) g(is) g(not) h(allo) m(w) m(ed) 480 2697 y(in) f(input) f(\014le.) 41 b(Default) 32 b(writing) e (directionalit) m(y) j(is) d(set) h(to) g(left-to-righ) m(t.) p Fp 0 2855 a(-iso-8859-2) p Ft 27 w(or) p Fp 31 w(-latin-2) p Ft 480 2965 a(|) f(Assume) g(that) g(input) f(\014le) i(is) f(enco) s (ded) g(b) m(y) g(iso-8859-2.) 44 b(Escap) s(e) 30 b(sequence) g(is) g (not) h(allo) m(w) m(ed) 480 3074 y(in) f(input) f(\014le.) 41 b(Default) 32 b(writing) e(directionalit) m(y) j(is) d(set) h(to) g (left-to-righ) m(t.) p Fp 0 3232 a(-iso-8859-3) p Ft 27 w(or) p Fp 31 w(-latin-3) p Ft 480 3341 a(|) f(Assume) g(that) g (input) f(\014le) i(is) f(enco) s(ded) g(b) m(y) g(iso-8859-3.) 44 b(Escap) s(e) 30 b(sequence) g(is) g(not) h(allo) m(w) m(ed) 480 3451 y(in) f(input) f(\014le.) 41 b(Default) 32 b(writing) e (directionalit) m(y) j(is) d(set) h(to) g(left-to-righ) m(t.) p Fp 0 3608 a(-iso-8859-4) p Ft 27 w(or) p Fp 31 w(-latin-4) p Ft 480 3718 a(|) f(Assume) g(that) g(input) f(\014le) i(is) f(enco) s (ded) g(b) m(y) g(iso-8859-4.) 44 b(Escap) s(e) 30 b(sequence) g(is) g (not) h(allo) m(w) m(ed) 480 3828 y(in) f(input) f(\014le.) 41 b(Default) 32 b(writing) e(directionalit) m(y) j(is) d(set) h(to) g (left-to-righ) m(t.) p Fp 0 3985 a(-iso-8859-5) p Ft(,) p Fp 28 w(-cyrillic) p Ft 27 w(or) p Fp 31 w(-russian) p Ft 480 4095 a(|) f(Assume) g(that) g(input) f(\014le) i(is) f(enco) s (ded) g(b) m(y) g(iso-8859-5.) 44 b(Escap) s(e) 30 b(sequence) g(is) g (not) h(allo) m(w) m(ed) 480 4204 y(in) f(input) f(\014le.) 41 b(Default) 32 b(writing) e(directionalit) m(y) j(is) d(set) h(to) g (left-to-righ) m(t.) p Fp 0 4362 a(-iso-8859-7) p Ft 27 w(or) p Fp 31 w(-greek) p Ft 480 4471 a(|) f(Assume) g(that) g (input) f(\014le) i(is) f(enco) s(ded) g(b) m(y) g(iso-8859-7.) 44 b(Escap) s(e) 30 b(sequence) g(is) g(not) h(allo) m(w) m(ed) 480 4581 y(in) f(input) f(\014le.) 41 b(Default) 32 b(writing) e (directionalit) m(y) j(is) d(set) h(to) g(left-to-righ) m(t.) p Fp 0 4739 a(-iso-8859-8) p Ft 27 w(or) p Fp 31 w(-hebrew) p Ft 480 4848 a(|) f(Assume) g(that) g(input) f(\014le) i(is) f(enco) s (ded) g(b) m(y) g(iso-8859-7.) 44 b(Escap) s(e) 30 b(sequence) g(is) g (not) h(allo) m(w) m(ed) 480 4958 y(in) f(input) f(\014le.) 41 b(Default) 32 b(writing) e(directionalit) m(y) j(is) d(set) h(to) g (righ) m(t-to-left.) p Fp 0 5115 a(-iso-8859-9) p Ft 27 w(or) p Fp 31 w(-latin-5) p Ft 480 5225 a(|) f(Assume) g(that) g (input) f(\014le) i(is) f(enco) s(ded) g(b) m(y) g(iso-8859-9.) 44 b(Escap) s(e) 30 b(sequence) g(is) g(not) h(allo) m(w) m(ed) 480 5334 y(in) f(input) f(\014le.) 41 b(Default) 32 b(writing) e (directionalit) m(y) j(is) d(set) h(to) g(left-to-righ) m(t.) p Fp 0 5492 a(-euc-jp) p Ft 28 w(or) p Fp 31 w(-euc-jp1) p Ft 480 5602 a(|) 21 b(Assume) f(that) i(input) e(\014le) h(is) g(enco) s (ded) f(b) m(y) h(Japanese) g(EUC.) g(Default) h(writing) f (directionalit) m(y) 480 5711 y(is) 30 b(set) h(to) g(left-to-righ) m (t.) 480 5845 y(JIS) e(X) h(0201) i(Roman) f(c) m(haracter) g(set) g (is) f(used) g(for) f(co) s(de) i(set) g(0,) f(JIS) g(X) g(0208) i(is) e (used) f(for) h(co) s(de) 480 5954 y(set) e(1,) h(JIS) e(X) h(0201) h (Kana) f(is) f(used) g(for) h(co) s(de) g(set) g(2,) h(and) e(JIS) f(X) i(0212) i(is) d(used) g(for) h(co) s(de) g(set) g(3.) p dyy eop end %%Page: 91 92 TeXDict begin 91 91 bop Ft 0 -116 a(Chapter) 30 b(10:) 41 b(Sample) 31 b(programs) 2490 b(91) p Fp 0 365 a(-euc-jp2) p Ft 96 w(|) 30 b(Same) h(as) p Fp 30 w(-euc-jp1) p Ft 28 w(except) h(ASCI) s(I) d(c) m(haracter) j(set) e(is) h(used) e(for) i (co) s(de) f(set) h(0.) p Fp 0 523 a(-euc-kr) p Ft 144 w(|) 26 b(Assume) g(that) i(input) d(\014le) i(is) f(enco) s(ded) g(b) m (y) h(Korean) f(EUC.) h(Default) g(writing) g(directionalit) m(y) 480 632 y(is) j(set) h(to) g(left-to-righ) m(t.) 480 766 y(ASCI) s(I) e(c) m(haracter) j(set) f(is) f(used) g(for) g(co) s(de) g (set) h(0) g(and) f(KSC) f(5601) j(is) f(used) e(for) h(co) s(de) h (set) g(1.) p Fp 0 923 a(-euc-cn) p Ft 28 w(or) p Fp 31 w(-euc-gb) p Ft 480 1032 a(|) f(Assume) g(that) g(input) f(\014le) i (is) f(enco) s(ded) f(b) m(y) h(Chinese) g(EUC) g(b) m(y) g (simpli\014ed) f(Hanzi.) 41 b(Default) 480 1142 y(writing) 30 b(directionalit) m(y) j(is) e(set) g(to) g(left-to-righ) m(t.) 480 1275 y(ASCI) s(I) e(c) m(haracter) j(set) f(is) f(used) g(for) g(co) s (de) g(set) h(0,) g(and) f(GB) h(2312) h(is) f(used) e(for) h(co) s(de) h(set) g(1.) p Fp 0 1433 a(-euc-cns) p Ft 96 w(|) c(Assume) f(that) h (input) f(\014le) h(is) g(enco) s(ded) g(b) m(y) f(Chinese) h(EUC) f(b) m(y) h(traditional) h(Hanzi.) 40 b(Default) 480 1542 y(writing) 30 b(directionalit) m(y) j(is) e(set) g(to) g(left-to-righ) m (t.) 480 1676 y(ASCI) s(I) e(c) m(haracter) j(set) f(is) g(used) e(for) i(co) s(de) f(set) h(0,) g(CNS) f(11643-1) k(is) c(used) g(for) g(co) s (de) h(set) g(1,) g(and) 480 1785 y(CNS) f(11643-2) j(is) d(used) g (for) g(co) s(de) h(set) g(3.) p Fp 0 1942 a(-sjis) p Ft 240 w(|) j(Assume) g(that) h(input) e(\014le) i(is) f(enco) s(ded) g (b) m(y) g(Shift-JIS.) g(Escap) s(e) g(sequence) h(is) f(not) h(allo) m (w) m(ed) 480 2052 y(in) 30 b(input) f(\014le.) 41 b(Default) 32 b(writing) e(directionalit) m(y) j(is) d(set) h(to) g(left-to-righ) m (t.) 480 2185 y(ASCI) s(I) e(c) m(haracter) j(set) f(is) f(used) g(for) g(co) s(de) g(set) h(0,) g(JIS) f(X) g(0208) i(is) f(used) e(for) h(co) s(de) h(set) g(1,) g(and) p Fm 0 2343 a(Options) g(for) f (directionalit) m(y:) p Fp 0 2500 a(-l2r) p Ft 288 w(|) g(Select) i (left-to-righ) m(t) h(directionalit) m(y) g(for) d(t) m(yp) s (esetting.) p Fp 0 2657 a(-r2l) p Ft 288 w(|) g(Select) i(righ) m (t-to-left) h(directionalit) m(y) g(for) d(t) m(yp) s(esetting.) p Fm 0 2814 a(Options) h(for) f(fon) m(t) h(selection:) p Fp 0 2972 a(-fixed) p Ft(,) p Fp 29 w(-times) p Ft(,) p Fp 29 w(-helv) p Ft 29 w(or) p Fp 30 w(-cour) p Ft 480 3081 a(|) 37 b(Select) h(a) f(fon) m(t) h(family:) 54 b(Fixed,) 39 b(Times,) g(Helv) m(etia,) i(or) c(Courier,) h(resp) s (ectiv) m(ely) -8 b(.) 62 b(Default) 480 3191 y(fon) m(t) 31 b(family) g(is) f(Times.) p Fp 0 3348 a(-bold) p Ft 29 w(or) p Fp 30 w(-italic) p Ft 480 3458 a(|) 25 b(Select) i(a) f(fon) m (t) h(face:) 39 b(b) s(old) 25 b(or) g(italic) j(\(or) e(oblique\),) h (resp) s(ectiv) m(ely) -8 b(.) 41 b(Default) 27 b(face) g(is) e (normal.) p Fp 0 3615 a(-14) p Ft(,) p Fp 30 w(-16) p Ft(,) p Fp 29 w(-18) p Ft 30 w(or) p Fp 30 w(-24) p Ft 480 3724 a(|) 30 b(Select) i(a) f(fon) m(t) f(set) h(of) g(14-,) h (16-,) f(18-,) h(or) f(24-dot,) h(resp) s(ectiv) m(ely) -8 b(.) 42 b(Default) 32 b(fon) m(t) f(size) g(if) f(16.) p Fp 0 3882 a(-scale) p Fk 46 w(n) p Ft 98 w(|) g(Select) i(a) f (scalable) g(fon) m(t) g(set) g(and) f(scales) i(the) e(fon) m(t) h(to) p Fl 31 w(n) p Ft 38 w(dot.) p Fp 0 4039 a(-m) p Fk 47 w(m) p Ft 289 w(|) f(Sp) s(ecify) g(v) m(ertical) i(and) e(horizon) m (tal) i(magni\014cation) g(factors.) 41 b(Default) 32 b(v) -5 b(alue) 31 b(is) f(1.) p Fp 0 4196 a(-mx) p Fk 47 w(m) p Ft 241 w(|) g(Sp) s(ecify) g(horizon) m(tal) i (magni\014cation) g(factor.) p Fp 0 4353 a(-my) p Fk 47 w(m) p Ft 241 w(|) e(Sp) s(ecify) g(v) m(ertical) i(magni\014cation) g(factor.) p Fp 0 4511 a(-font-list) p Ft 480 4620 a(|) e(Prin) m(t) h (all) g(installed) g(c) m(haracter) h(sets) f(and) e(fon) m(t) i (names.) 41 b(Then) 29 b(exit) j(the) e(program.) p Fm 0 4777 a(Options) h(for) f(t) m(yp) s(esetting:) p Fp 0 4935 a(-b) p Fk 47 w(s) p Ft 289 w(|) 43 b(Sp) s(ecify) f(factor) i (of) f(baseline) h(skip.) 78 b(Baseline) 44 b(of) f(a) h(text) g(is) f (mo) m(v) m(ed) h(this) e(v) -5 b(alue) 44 b(times) 480 5044 y(dot-size) 32 b(of) e(a) h(selected) h(fon) m(t) f(set.) 41 b(Default) 32 b(v) -5 b(alue) 31 b(is) f(1.2.) p Fp 0 5202 a(-center-line) p Ft 480 5311 a(|) g(Eac) m(h) h(line) g(is) f (cen) m(tered.) 42 b(Output) 29 b(image) j(is) e(v) m(ertically) j(and) d(horizon) m(tally) i(cen) m(tered.) p Fp 0 5468 a(-flush-left) p Ft 480 5578 a(|) g(Eac) m(h) g(line) g(is) g(\015ushed) e(left.) 46 b(This) 31 b(is) g(default) h(mo) s(de) g(if) f(writing) h (directionalit) m(y) j(is) c(left-to-) 480 5688 y(righ) m(t.) 41 b(Output) 30 b(image) h(is) g(\015ushed) d(left.) p Fp 0 5845 a(-left-line) p Ft 480 5954 a(|) i(Eac) m(h) h(line) g(is) f (\015ushed) f(left,) i(but) f(image) i(is) e(not) h(\015ushed) d(left.) p dyy eop end %%Page: 92 93 TeXDict begin 92 92 bop Ft 0 -116 a(92) 3198 b(VFlib) 31 b(3.6.14) p Fp 0 365 a(-flush-right) p Ft 480 475 a(|) f(Eac) m(h) g (line) h(is) f(\015ushed) e(to) j(righ) m(t.) 41 b(This) 29 b(is) h(the) g(default) g(mo) s(de) g(if) g(writing) g(directionalit) m (y) i(is) 480 584 y(righ) m(t-to-left.) 42 b(\(Note) 26 b(that) f(options) g(`) p Fp(-flush-right) p Ft(') c(and) j(`) p Fp(-r2l) p Ft(') g(are) h(di\013eren) m(t) g(|) g(consider) 480 694 y(an) 32 b(English) f(text) i(including) e(Arabic) h(w) m(ords) f (in) h(the) f(same) i(line.\)) 45 b(Output) 31 b(image) h(is) g (\015ushed) 480 804 y(righ) m(t.) p Fp 0 960 a(-right-line) p Ft 480 1069 a(|) e(Eac) m(h) h(line) g(is) f(\015ushed) f(righ) m(t,) i (but) f(image) h(is) g(not) f(\015ushed) f(righ) m(t.) 125 1225 y(It) d(is) h(imp) s(ortan) m(t) g(to) g(notice) h(that) f(the) g (di\013erence) g(of) g(`) p Fp(-flush-left) p Ft(') d(and) i(`) p Fp(-left-line) p Ft(') f(options) i(\(and) 0 1335 y(`) p Fp(-flush-right) p Ft(') e(and) j(`) p Fp(-right-line) p Ft(') d(options\).) 41 b(By) 28 b(`) p Fp(-flush-left) p Ft(') e(option,) j(input) e(text) j(is) e(t) m(yp) s(eset) h(to) 0 1445 y(\015ush) f(eac) m(h) j(line) f(left) g(and) f(t) m(yp) s(eset) i (result) e(is) h(placed) g(in) f(the) h(left) g(of) g(an) g(output) f (image.) 42 b(By) 30 b(`) p Fp(-left-line) p Ft(') 0 1554 y(option,) i(input) e(text) i(is) g(t) m(yp) s(eset) f(to) h (\015ush) e(eac) m(h) i(line) g(left) f(and) g(do) s(es) g(not) g(sp) s (ecify) g(ho) m(w) g(to) h(put) e(the) i(t) m(yp) s(eset) 0 1664 y(result) h(in) g(an) g(output) g(image.) 51 b(The) 33 b(di\013erence) g(app) s(ears) g(when) f(the) i(horizon) m(tal) g(size) h(of) e(output) g(image) h(is) 0 1773 y(explicitly) e(giv) m(en) f(b) m (y) g(`) p Fp(-pw) p Ft(') f(option.) p Fm 0 1906 a(Options) h(for) f (output:) p Fp 0 2062 a(-pgm) p Ft 29 w(or) p Fp 31 w(-pgm-raw) p Ft 480 2172 a(|) g(Select) i(binary) d(PGM) i(format) g(for) f(image) i (output.) p Fp 0 2328 a(-pgm-ascii) p Ft 480 2438 a(|) e(Select) i (ascii) f(PGM) g(format) g(for) f(image) i(output.) 40 b(This) 30 b(is) g(the) h(default) f(output) g(mo) s(de.) p Fp 0 2594 a(-pbm) p Ft 29 w(or) p Fp 31 w(-pbm-ascii) p Ft 480 2703 a(|) g(Select) i(ascii) f(PBM) g(format) g(for) f(output) g (an) g(image.) p Fp 0 2859 a(-ascii-art) p Ft 28 w(or) p Fp 30 w(-ascii-art-v) p Ft 480 2969 a(|) i(An) g(image) i(is) f(prin) m (ted) f(as) g(an) h(ASCI) s(I) e(art.) 47 b(\(V) -8 b(ertical) 35 b(mo) s(de\)) e(Baseline) g(is) g(v) m(ertical;) j(th) m(us) 480 3078 y(this) 30 b(mo) s(de) g(is) h(similar) f(to) h(the) p Fp 31 w(banner) p Ft 29 w(command) f(on) g(Unix.) p Fp 0 3235 a(-ascii-art-h) p Ft 480 3344 a(|) g(An) g(image) i(is) e(prin) m (ted) g(as) h(an) f(ASCI) s(I) f(art.) 41 b(\(Horizon) m(tal) 33 b(mo) s(de\)) d(Baseline) i(is) f(horizon) m(tal.) p Fp 0 3500 a(-eps) p Ft 288 w(|) k(Select) i(EPS) e(format) g(for) h (image) g(output.) 56 b(By) 36 b(default,) h(16-dot) g(fon) m(t) f(is) f (prin) m(ted) g(b) m(y) g(12-) 480 3610 y(p) s(oin) m(t) d(in) f(EPS) g (\014le.) 45 b(T) -8 b(o) 32 b(c) m(hange) h(the) f(p) s(oin) m(t) f (size,) i(use) f(the) p Fp 32 w(-eps-ptsize) p Ft 28 w(option) h(describ) s(ed) 480 3719 y(b) s(elo) m(w.) p Fp 0 3875 a(-eps-ptsize) p Fk 45 w(pt) p Ft 480 3985 a(|) e(Select) h(p) s(oin) m(t) f(size) g(of) g(c) m(haracters) i(for) d (EPS) g(output.) 42 b(If) 31 b(this) f(option) i(is) f(giv) m(en,) h(p) s(oin) m(t) f(size) 480 4095 y(of) g(eac) m(h) g(c) m(haracter) h(is) e (scaled) i(to) p Fj 31 w(pt) p Ft 32 w(p) s(oin) m(t) e(regardless) h (dot) g(size) g(of) f(fon) m(ts.) p Fp 0 4251 a(-none) p Ft 240 w(|) g(An) g(image) i(is) e(not) h(shipp) s(ed) d(out.) p Fp 0 4407 a(-r) p Ft 384 w(|) j(Rev) m(erse) h(the) g(blac) m(k) g(and) f(white) g(of) g(output) g(image.) 45 b(\(This) 30 b(option) i(do) s (es) f(not) g(ha) m(v) m(e) i(e\013ect) 480 4516 y(when) c(EPS) h(is) g (selected) i(for) e(image) i(output) e(format.\)) p Fp 0 4672 a(-s) p Fk 47 w(n) p Ft 289 w(|) 37 b(Shrink) f(factor) j(for) e (an) m(ti-aliased) j(output.) p Fj 62 w(n) p Ft 37 w(b) m(y) p Fj 37 w(n) p Ft 37 w(pixels) e(are) g(shrink) m(ed) e(together) j(and) 480 4782 y(forms) 33 b(one) h(pixel) f(in) h(an) f(output) g(image.) 51 b(This) 33 b(option) h(has) f(e\013ect) i(when) e(output) g(format) g (is) 480 4892 y(PGM) e(and) f(EPS.) f(Default) j(v) -5 b(alue) 31 b(is) f(1.) p Fp 0 5048 a(-pw) p Fk 47 w(w) p Ft 241 w(|) i(Sp) s(ecify) f(width) f(of) i(output) g(image) h(\(in) e (pixels\).) 45 b(If) 32 b(this) f(option) h(is) g(not) g(giv) m(en,) h (the) f(width) 480 5157 y(of) f(output) f(image) h(is) g(the) f (smallest) i(width) d(to) i(con) m(tain) h(the) f(glyph) f(of) g(all) h (c) m(haracters.) p Fp 0 5313 a(-ph) p Ft 336 w(|) e(Sp) s(ecify) g (heigh) m(t) h(of) g(output) f(image) i(\(in) e(pixels\).) 41 b(If) 29 b(this) h(option) g(is) f(not) h(giv) m(en,) h(the) f(heigh) m (t) 480 5423 y(of) h(output) f(image) h(is) g(the) f(smallest) i(heigh) m(t) f(to) g(con) m(tain) h(the) e(glyph) g(of) h(all) g(c) m (haracters.) p Fp 0 5579 a(-g) p Ft 384 w(|) 43 b(Sp) s(ecify) f (horizon) m(tal) j(and) d(v) m(ertical) k(margins) d(of) g(output) g (image) h(\(in) f(pixels\).) 79 b(Default) 480 5689 y(margin) 30 b(is) h(zero) g(pixel.) p Fp 0 5845 a(-gx) p Ft 336 w(|) 38 b(Sp) s(ecify) f(horizon) m(tal) j(margin) e(of) h(output) f(image) h (\(in) f(pixels\).) 65 b(Default) 39 b(margin) f(is) h(zero) 480 5954 y(pixel.) p dyy eop end %%Page: 93 94 TeXDict begin 93 93 bop Ft 0 -116 a(Chapter) 30 b(10:) 41 b(Sample) 31 b(programs) 2490 b(93) p Fp 0 365 a(-gy) p Ft 336 w(|) 28 b(Sp) s(ecify) f(v) m(ertical) j(margin) d(of) h(output) g(image) h(\(in) e(pixels\).) 41 b(Default) 29 b(margin) e(is) h(zero) h (pixel.) p Fp 0 525 a(-center-image) p Ft 480 635 a(|) h(An) g(image) i (of) e(t) m(yp) s(eset) i(text) f(is) f(horizon) m(taly) i(and) e(v) m (ertically) j(cen) m(tered.) p Fp 0 795 a(-h-center-image) p Ft 480 904 a(|) d(An) g(image) i(of) e(t) m(yp) s(eset) i(text) f(is) f (horizon) m(taly) i(cen) m(tered.) p Fp 0 1064 a(-v-center-image) p Ft 480 1174 a(|) e(An) g(image) i(of) e(t) m(yp) s(eset) i(text) f(is) f (v) m(ertically) j(cen) m(tered.) p Fp 0 1334 a(-left-image) p Ft 480 1443 a(|) d(An) g(image) i(of) e(t) m(yp) s(eset) i(text) f(is) f (\015ushed) f(left.) p Fp 0 1603 a(-right-image) p Ft 480 1713 a(|) h(An) g(image) i(of) e(t) m(yp) s(eset) i(text) f(is) f (\015ushed) f(righ) m(t.) p Fp 0 1872 a(-top-image) p Ft 480 1982 a(|) h(An) g(image) i(of) e(t) m(yp) s(eset) i(text) f(is) f (\015ushed) f(top.) p Fp 0 2142 a(-bottom-image) p Ft 480 2251 a(|) h(An) g(image) i(of) e(t) m(yp) s(eset) i(text) f(is) f (\015ushed) f(b) s(ottom.) p Fi 0 2477 a(10.5.2) 63 b(Making) 41 b(input) h(\014les) f(for) h(ctext2pgm) p Ft 125 2721 a(An) m(y) 29 b(text) h(editor) f(can) h(b) s(e) e(used) g(to) i (prepare) f(input) f(\014les) h(for) p Fp 28 w(ctext2pgm) p Ft(.) 38 b(Input) 28 b(\014les) h(are) g(plain) g(texts.) 0 2831 y(If) 35 b(y) m(ou) h(w) m(an) m(t) g(to) g(create) h(an) e(image) i(con) m(taining) g(m) m(ultiple) f(c) m(haracter) h(sets,) g(sa) m(v) m (e) g(the) e(\014les) h(b) m(y) p Fl 35 w(c) -5 b(omp) g(ound) 0 2940 y(text) p Ft 47 w(enco) s(ding.) 63 b(If) 37 b(y) m(ou) h(w) m(an) m(t) g(to) h(mak) m(e) g(images) g(of) f(Arabic) g(text,) i(use) e(the) p Fp 38 w(Mule) p Ft 36 w(editor.) 64 b(\() p Fp(Mule) p Ft 37 w(is) 38 b(an) 0 3050 y(extension) d(of) p Fp 35 w(GNU) 29 b(Emacs) p Ft 33 w(for) 34 b(m) m(ultilingual) i(text) f(pro) s(cessing.\)) 53 b(F) -8 b(or) 36 b(making) e(images) i(of) f(Arabic) f (script,) p Fp 0 3159 a(ctext2pgm) p Ft 28 w(only) c(supp) s(orts) f(a) i(text) g(created) g(b) m(y) g(Mule,) g(ISO-8859-6) h(is) e(not) h (supp) s(orted.) 125 3294 y(Unlik) m(e) 36 b(T) 466 3314 y(E) 516 3294 y(X) f(and) g(HTML,) h(newlines) f(of) h(input) e (\014les) i(are) p Fl 35 w(not) p Ft 45 w(ignored) g(and) f(a) g (newline) h(c) m(haracter) h(in) 0 3404 y(input) i(text) h(breaks) f (line.) 69 b(Th) m(us,) 41 b(input) e(text) h(is) g(t) m(yp) s(eset) g (lik) m(e) h(`v) m(erbatim') g(en) m(vironmen) m(t) f(of) g(LaT) 3541 3424 y(E) 3591 3404 y(X) f(or) 0 3514 y(`) p Fp(<) p Ft(PRE) p Fp(>) p Ft 30 w(...) p Fp 41 w(<) p Ft(/PRE) p Fp(>) p Ft(') 30 b(tag) i(of) e(HTML.) p Fi 0 3739 a(10.5.3) 63 b(Commands) 42 b(in) f(input) g(text) p Ft 125 3983 a(Sev) m(eral) c (commands) f(can) g(b) s(e) g(em) m(b) s(edded) f(in) h(text) h (\014les) g(suc) m(h) f(as) g(fon) m(t) h(switc) m(h.) 59 b(Command) 35 b(sequence) 0 4093 y(starts) j(b) m(y) g(a) g(bac) m (kslash) g(\() p Fp(\\) p Ft(\)) g(follo) m(w) m(ed) h(b) m(y) f(one) g (c) m(haracter) h(whic) m(h) e(represen) m(ts) h(command) f(name.) 63 b(If) 37 b(y) m(ou) 0 4202 y(w) m(an) m(t) 31 b(to) g(displa) m(y) g(a) g(bac) m(kslash) g(c) m(haracter) h(itself,) f(use) f(double) g(bac) m (kslashes) p Fp 31 w(\\\\) p Ft(.) 125 4337 y(F) -8 b(ollo) m(wing) 32 b(commands) e(are) h(de\014ned:) p Fp 0 4497 a(\\f) p Ft(,) p Fp 30 w(\\t) p Ft(,) p Fp 30 w(\\h) p Ft(,) p Fp 30 w(\\c) p Ft 480 4607 a(|) d(Change) f(of) h(fon) m(t) h (families.) 40 b(Curren) m(t) 27 b(fon) m(t) i(family) f(is) g(c) m (hanged) g(to) h(\014xed,) e(times,) j(Helv) m(etia,) 480 4717 y(courier,) h(resp) s(ectiv) m(ely) -8 b(.) p Fp 0 4877 a(\\d) p Ft 384 w(|) 26 b(Curren) m(t) e(fon) m(t) i(family) g (is) g(c) m(hanged) h(to) f(the) g(default) g(fon) m(t) g(family) -8 b(.) 40 b(The) 25 b(default) h(fon) m(t) g(family) 480 4986 y(can) 31 b(b) s(e) e(sp) s(eci\014ed) h(b) m(y) g(a) h(command) f (line) h(option.) p Fp 0 5146 a(\\N) p Ft(,) p Fp 48 w(\\B) p Ft(,) p Fp 47 w(\\I) p Ft 82 w(|) 44 b(Change) h(of) f(fon) m (t) h(faces.) 84 b(Curren) m(t) 43 b(fon) m(t) i(face) g(is) g(c) m (hanged) g(to) g(normal,) j(b) s(old,) f(italic,) 480 5256 y(resp) s(ectiv) m(ely) -8 b(.) p Fp 0 5415 a(\\D) p Ft 384 w(|) 33 b(Curren) m(t) f(fon) m(t) h(face) h(is) f(c) m(hanged) h (to) f(the) g(default) h(fon) m(t) f(face.) 49 b(The) 33 b(default) g(fon) m(t) g(face) h(can) 480 5525 y(b) s(e) c(sp) s (eci\014ed) f(b) m(y) i(a) f(command) h(line) f(option.) p Fp 0 5685 a(\\.) p Ft 384 w(|) g(Same) h(as) p Fp 30 w(\\d) p Ft 30 w(follo) m(w) m(ed) h(b) m(y) p Fp 30 w(\\D) p Ft(.) p Fp 0 5845 a(\\\() p Ft 384 w(|) f(Blac) m(k) h(and) e (white) h(of) g(glyph) f(of) h(follo) m(wing) h(c) m(haracters) g(are) f (rev) m(ersed.) 42 b(This) 30 b(command) g(is) 480 5954 y(recommended) p Fl 24 w(only) p Ft 33 w(for) 24 b(\014xed-width) f (fon) m(ts.) 40 b(\(F) -8 b(or) 25 b(the) f(reason) h(of) f(curren) m (t) h(implemen) m(tation,) p dyy eop end %%Page: 94 95 TeXDict begin 94 94 bop Ft 0 -116 a(94) 3198 b(VFlib) 31 b(3.6.14) 480 365 y(resulting) i(bitmap) g(is) g(ugly) h(for) f(prop) s (ortional) g(fon) m(ts) g(and) g(y) m(ou) g(cannot) h(read) f(the) h (text) g(in) f(an) 480 475 y(image.\)) 480 609 y(Nesting) e(of) p Fp 31 w(\\\() p Ft 30 w(has) f(no) g(e\013ect.) p Fp 0 769 a(\\\)) p Ft 384 w(|) g(End) f(of) i(rev) m(ersing) g(blac) m(k) g (and) f(white.) p Fp 0 928 a(\\\\) p Ft 384 w(|) g(Prin) m(t) h(bac) m (kslash) g(itself.) p Fi 0 1152 a(10.5.4) 63 b(T) -10 b(rouble) 42 b(sho) s(oting) p Ft 125 1396 a(In) 30 b(case) i(y) m(ou) g (failed) g(to) g(obtain) g(a) f(desired) g(image) i(output,) e(the) h (follo) m(wing) g(command) f(line) h(options) g(for) 0 1506 y(debugging) k(ma) m(y) g(b) s(e) f(useful.) 57 b(\(Debugging) 37 b(messages) f(are) h(prin) m(ted) e(to) h(standard) f (output.) 57 b(The) 35 b(`) p Fp(-none) p Ft(') 0 1616 y(option) 45 b(is) f(useful) f(to) i(suppress) d(prin) m(ting) i (binary) g(image) h(to) g(y) m(our) f(terminal.) 83 b(Otherwise,) 47 b(debugging) 0 1725 y(message) 31 b(and) f(image) i(\014le) e(are) h (prin) m(ted) f(together) i(on) e(y) m(our) g(terminal!\)) p Fp 0 1885 a(-ds) p Ft 336 w(|) g(Prin) m(t) h(the) f(state) i (transition) f(of) f(the) h(parser) f(for) g(comp) s(ound) f(text.) p Fp 0 2044 a(-dr2l) p Ft 240 w(|) h(Prin) m(t) h(the) f(state) i (transition) f(of) f(bi-directionalit) m(y) j(handling.) p Fp 0 2203 a(-df) p Ft 336 w(|) d(Prin) m(t) h(fon) m(t) f(name) h(to) g (b) s(e) f(op) s(ened.) p Fp 0 2363 a(-dbc) p Ft 288 w(|) g(Prin) m(t) h(eac) m(h) g(c) m(haracter) h(glyph) e(in) g (ascii-art) i(form.) p Fp 0 2522 a(-dbl) p Ft 288 w(|) e(Prin) m(t) h (eac) m(h) g(line) g(image) g(b) m(y) g(in) f(ascii-art) i(form.) p Fp 0 2682 a(-dbp) p Ft 288 w(|) e(Prin) m(t) h(en) m(tire) g(page) g (image) h(in) e(ascii-art) i(form.) p Fp 0 2841 a(-dall) p Ft 240 w(|) e(Selects) i(all) f(debugging) f(options) h(ab) s(o) m(v) m (e.) p dyy eop end %%Page: 95 96 TeXDict begin 95 95 bop Ft 0 -116 a(Chapter) 30 b(11:) 41 b(Di\013erence) 32 b(b) s(et) m(w) m(een) f(VFlib) g(v) m(ersion) g (3.6) g(and) f(2) 1466 b(95) p Fr 0 365 a(11) 80 b(Di\013erence) 52 b(b) t(et) l(w) l(een) f(VFlib) i(v) l(ersion) f(3.6) h(and) h(2) p Ft 125 599 a(VFlib) 27 b(v) m(ersion) g(3.6) h(and) e(v) m(ersion) h(2) g(are) g(quite) g(di\013eren) m(t) g(and) f(y) m(ou) h(should) f (forget) h(ab) s(out) g(VFlib) g(v) m(ersion) 0 709 y(2.) 0 868 y(VFlib) k(2) g(w) m(as) f(designed) h(only) f(for) g(Japanese) h (Kanji) f(fon) m(ts) 480 978 y(VFlib) h(3.6) g(can) g(handle) f(fon) m (ts) h(for) f(m) m(ultilingual) h(text) h(prin) m(ting.) 0 1137 y(F) -8 b(on) m(t) 32 b(metric) f(is) f(in) m(tro) s(duced) g(in) g (VFlib) h(3.6) 480 1247 y(VFlib) 38 b(2) f(do) s(es) g(not) h(concepts) g(on) f(fon) m(t) h(metrics) g(since) f(it) h(assumes) f(all) h(c) m (haracters) h(are) e(the) 480 1357 y(same) f(metrics.) 56 b(F) -8 b(on) m(t) 37 b(metrics) f(is) g(in) m(tro) s(duced) f(in) g (VFlib) h(3.6) g(and) f(prop) s(ortional) g(fon) m(ts) h(can) 480 1466 y(b) s(e) 30 b(used.) 0 1626 y(Syn) m(tax) h(of) f(v\015ib) s(cap) g(\014le) 480 1735 y(Syn) m(tax) d(of) f(v\015ib) s(cap) g(\014le) g (is) h(quite) g(di\013eren) m(t.) 40 b(VFlib) 26 b(2) h(adopted) g (termcap-lik) m(e) h(notation,) h(but) 480 1845 y(no) m(w) h(VFlib) h (3.6) h(adopts) e(lisp-lik) m(e) i(notation.) 0 2004 y(Argumen) m(ts) e(and) g(return) f(v) -5 b(alues) 31 b(of) g(function) f(are) h(c) m(hanged) 480 2114 y(In) k(VFlib) i(2,) h (bitmaps) e(of) g(c) m(haracters) i(are) f(written) f(in) g(a) g(frame) g(bu\013er) f(whic) m(h) h(is) g(giv) m(en) i(b) m(y) 480 2223 y(argumen) m(t.) j(But) 31 b(in) f(VFlib) h(3.6,) g(a) g(bitmap) f (ob) 5 b(ject) 31 b(is) g(returned.) p dyy eop end %%Page: 96 97 TeXDict begin 96 96 bop Ft 0 -116 a(96) 3198 b(VFlib) 31 b(3.6.14) p dyy eop end %%Page: 97 98 TeXDict begin 97 97 bop Ft 0 -116 a(Ac) m(kno) m(wledgmen) m(ts) 2981 b(97) p Fr 0 365 a(Ac) l(kno) l(wledgmen) l(ts) p Ft 125 599 a(Since) 29 b(I) g(released) i(VFlib) f(v) m(ersion) g(1,) g (so) g(man) m(y) g(p) s(eople) g(help) s(ed) e(me) i(to) g(impro) m(v) m (e) h(VFlib.) 41 b(I) 29 b(am) h(grateful) 0 709 y(for) j(all) h(of) f (them.) 49 b(Sp) s(ecial) 34 b(gratitude) g(is) f(due) g(to) g(Satoru) g (T) -8 b(om) m(ura,) 35 b(Ken'ic) m(hi) f(Handa,) g(W) -8 b(erner) 33 b(Lem) m(b) s(erg,) 0 819 y(and) d(Ic) m(hiro) h(Matsuda.) p dyy eop end %%Page: 98 99 TeXDict begin 98 98 bop Ft 0 -116 a(98) 3198 b(VFlib) 31 b(3.6.14) p dyy eop end %%Page: 99 100 TeXDict begin 99 99 bop Ft 0 -116 a(Concept) 31 b(index) 3115 b(99) p Fr 0 365 a(Concept) 52 b(index) p Fs 0 655 a(A) p Fd 0 782 a(Arabic) p Fc 22 w(.) 12 b(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) p Fd 47 w(89) 0 875 y(ASCI) r(I) 25 b(Japanese) i(T) 607 891 y(E) 650 875 y(X) e(Kanji) h(fon) n(t) g (class) p Fc 14 w(.) 14 b(.) e(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) p Fd 40 w(56) p Fs 0 1156 a(B) p Fd 0 1284 a(BDF) 26 b(fon) n(t) g(class) p Fc 11 w(.) 13 b(.) f(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) p Fd 36 w(37) p Fs 0 1547 a(C) p Fd 0 1675 a(CCV) p Fc 13 w(.) h(.) g(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f (.) p Fd 39 w(73) 0 1768 y(Chinese) 26 b(EUC) p Fc 17 w(.) 13 b(.) f(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 43 w(89) 0 1861 y(CNS) 25 b(11641) p Fc 22 w(.) 13 b(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 45 w(89) 0 1954 y(co) r(de) 26 b(con) n(v) n(ersion) g(system) p Fc 16 w(.) 13 b(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 42 w(73) 0 2047 y(co) r(de-con) n(v) n(ersion-\014les) p Fc 12 w(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) p Fd 38 w(73) 0 2139 y(comp) r(ound) 25 b(text) p Fc 7 w(.) 12 b(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 33 w(93) 0 2232 y(Cop) n(yrigh) n(t) p Fc 22 w(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) p Fd 48 w(1) 0 2325 y(Cyrillic) p Fc 11 w(.) i(.) e(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 37 w(89) p Fs 0 2605 a(E) p Fd 0 2733 a(eKanji) 26 b(fon) n(t) g(class) p Fc 20 w(.) 13 b(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) p Fd 44 w(47) 0 2826 y(Emacs) p Fc 6 w(.) i(.) e(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 32 w(93) 0 2918 y(EUC) p Fc 15 w(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 40 w(89) 0 3011 y(explicit) 26 b(fon) n(ts) p Fc 8 w(.) 13 b(.) f(.) h(.) f(.) g(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) p Fd 33 w(36) p Fs 0 3291 a(F) p Fd 0 3419 a(fon) n(t) 26 b(class) p Fc 14 w(.) 14 b(.) e(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 40 w(11) 0 3512 y(fon) n(t) 26 b(driv) n(er) p Fc 11 w(.) 12 b(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 37 w(11) 0 3605 y(F) -6 b(reeT) n(yp) r(e) p Fc 24 w(.) 12 b(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) p Fd 50 w(13,) 26 b(40) p Fs 0 3884 a(G) p Fd 0 4012 a(GB) g(2312) p Fc 25 w(.) 13 b(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 49 w(89) 0 4105 y(GF) 26 b(fon) n(t) g(class) p Fc 20 w(.) 12 b(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) p Fd 44 w(53) 0 4198 y(GNU) 25 b(Emacs) p Fc 15 w(.) 13 b(.) f(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) g(.) h(.) p Fd 40 w(93) 0 4291 y(GNU) 25 b(Library) h(General) g(Public) g(License) p Fc 20 w(.) 12 b(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) p Fd 45 w(1) p Fs 0 4570 a(H) p Fd 0 4698 a(HBF) 26 b(fon) n(t) g(class) p Fc 11 w(.) 13 b(.) g(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) g(.) h(.) f(.) g(.) p Fd 37 w(39) 0 4791 y(Hebrew) p Fc 7 w(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) p Fd 32 w(89) 0 4884 y(High) 26 b(resolution) g(orien) n(ted) g(mo) r(de) p Fc 6 w(.) 13 b(.) f(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 32 w(12) p Fs 0 5163 a(I) p Fd 0 5291 a(implicit) 27 b(fon) n(ts) p Fc 21 w(.) 12 b(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 46 w(36) 0 5384 y(Installing) 27 b(VFlib) p Fc 13 w(.) 12 b(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 38 w(13) 0 5477 y(ISO) 25 b(8859) p Fc 16 w(.) 13 b(.) g(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) p Fd 41 w(89) p Fs 0 5740 a(J) p Fd 0 5868 a(Japanese) 27 b(comic) f(fon) n(t) g(class) p Fc 15 w(.) 14 b(.) e(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 40 w(57) 0 5960 y(Japanese) 27 b(EUC) p Fc 16 w(.) 12 b(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) p Fd 41 w(89) 0 6053 y(JG) 26 b(fon) n(t) g(class) p Fc 26 w(.) 12 b(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 50 w(47) 0 6146 y(JIS) 25 b(X) h(0201) p Fc 22 w(.) 12 b(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) p Fd 46 w(89) 0 6239 y(JIS) 25 b(X) h(0208) p Fc 22 w(.) 12 b(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) p Fd 46 w(89) 0 6332 y(JIS) 25 b(X) h(0212) p Fc 22 w(.) 12 b(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) p Fd 46 w(89) p Fs 1968 655 a(K) p Fd 1968 771 a(KangXi) p Fc 23 w(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) p Fd 49 w(47) 1968 858 y(Korean) 26 b(EUC) p Fc 8 w(.) 13 b(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 34 w(89) 1968 945 y(kpathsea) p Fc 22 w(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) p Fd 48 w(13) 1968 1032 y(KSC) 26 b(5601) p Fc 21 w(.) 13 b(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) p Fd 46 w(89) p Fs 1968 1265 a(L) p Fd 1968 1381 a(left-to-righ) n(t) 26 b(directionalit) n(y) p Fc 14 w(.) 13 b(.) g(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) p Fd 40 w(89) 1968 1468 y(LGPL) p Fc 13 w(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 38 w(1) 1968 1556 y(libVFlib.a) p Fc 12 w(.) h(.) e(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) p Fd 38 w(11,) 27 b(15) 1968 1643 y(libVFlib.so) p Fc 15 w(.) 14 b(.) e(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) p Fd 41 w(11,) 27 b(15) 1968 1730 y(Lo) n(w) g(resolution) f(orien) n(ted) g(mo) r(de) p Fc 16 w(.) 13 b(.) f(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 42 w(12) p Fs 1968 1963 a(M) p Fd 1968 2079 a(Mo) t(jiky) n(o) 27 b(fon) n(t) f (mapping) g(class) p Fc 15 w(.) 13 b(.) f(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 41 w(58) 1968 2166 y(Morohashi) 27 b(DaiKan) n(w) n(a) p Fc 7 w(.) 13 b(.) f(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) p Fd 33 w(47) 1968 2253 y(Mule) p Fc 6 w(.) h(.) f(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) p Fd 32 w(89,) 27 b(93) p Fs 1968 2503 a(P) p Fd 1968 2619 a(PBM) p Fc 9 w(.) 14 b(.) e(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 35 w(89) 1968 2706 y(PCF) 27 b(fon) n(t) f(class) p Fc 13 w(.) 14 b(.) e(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 39 w(39) 1968 2793 y(PGM) p Fc 6 w(.) h(.) e(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) p Fd 32 w(89) 1968 2881 y(PK) 26 b(fon) n(t) g (class) p Fc 18 w(.) 13 b(.) g(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) p Fd 44 w(52) p Fs 1968 3113 a(R) p Fd 1968 3229 a(righ) n(t-to-left) 26 b(directionalit) n(y) p Fc 14 w(.) 13 b(.) g(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) p Fd 40 w(89) p Fs 1968 3479 a(S) p Fd 1968 3595 a(Shift) 26 b(JIS) p Fc 22 w(.) 13 b(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) p Fd 49 w(91) p Fs 1968 3828 a(T) p Fd 1968 3944 a(T1Lib) p Fc 25 w(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 50 w(13,) 27 b(43) 1968 4031 y(T) 2010 4047 y(E) 2054 4031 y(X) e(default) h(and) f(T) 2586 4047 y(E) 2630 4031 y(X) g(fon) n(t) h(mapping) f(fon) n(t) h(class) p Fc 24 w(.) 13 b(.) f(.) g(.) p Fd 49 w(49) 1968 4118 y(TFM) 27 b(fon) n(t) f(class) p Fc 23 w(.) 13 b(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) p Fd 49 w(54) 1968 4206 y(T) -6 b(rueT) n(yp) r(e) 26 b(fon) n(t) f (class) p Fc 21 w(.) 12 b(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) p Fd 45 w(40) 1968 4293 y(T) -6 b(ry) 25 b(fon) n(t) h(class) p Fc 14 w(.) 14 b(.) f(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 40 w(58) 1968 4380 y(T) n(yp) r(e1) 26 b(fon) n(t) g(class) p Fc 24 w(.) 13 b(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) p Fd 49 w(43) p Fs 1968 4630 a(U) p Fd 1968 4746 a(Unico) r(de) p Fc 16 w(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) p Fd 42 w(47) p Fs 1968 4978 a(V) p Fd 1968 5094 a(v) l(ariables) p Fc 25 w(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) p Fd 50 w(36) 1968 5182 y(VF) 26 b(fon) n(t) f(class) p Fc 22 w(.) 12 b(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 46 w(54) 1968 5269 y(VFlib-3) p Fn(\\) p 2269 5269 24 4 v Fd 34 w(6.h) p Fc 9 w(.) g(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 35 w(29) 1968 5356 y(VFlib.fdb) p Fc 20 w(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) p Fd 45 w(35,) 27 b(82) 1968 5443 y(v\015ib) r(cap) p Fc 13 w(.) 12 b(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 38 w(11,) 27 b(15) 1968 5530 y(VFLIBCAP) p 2376 5530 V 34 w(P) -6 b(ARAM) p 2699 5530 V 33 w(v) l(ar) p Fc 11 w(.) 12 b(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 37 w(36) 1968 5618 y(Virtual) 26 b(F) -6 b(on) n(t) 25 b(library) p Fc 17 w(.) 13 b(.) f(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) p Fd 43 w(11) p Fs 1968 5867 a(W) p Fd 1968 5983 a(w) n(eb2c) p Fc 14 w(.) h(.) e(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) p Fd 41 w(13) p Fs 1968 6216 a(Z) p Fd 1968 6332 a(Zeit) 26 b(fon) n(t) g(class) p Fc 8 w(.) 14 b(.) e(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) p Fd 34 w(45) p dyy eop end %%Page: 100 101 TeXDict begin 100 100 bop Ft 0 -116 a(100) 3153 b(VFlib) 31 b(3.6.14) p dyy eop end %%Page: 101 102 TeXDict begin 101 101 bop Ft 0 -116 a(Data) 32 b(t) m(yp) s(e) f(index) 2997 b(101) p Fr 0 365 a(Data) 54 b(t) l(yp) t(e) f(index) p Fs 0 705 a(S) p Fn 0 912 a(struct) 27 b(vf_s_bitmap) p Fc 26 w(.) 13 b(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) p Fd 49 w(17) p Fn 0 1044 a(struct) 27 b(vf_s_metric1) p Fc 25 w(.) 12 b(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 48 w(17) p Fn 0 1176 a(struct) 27 b(vf_s_metric2) p Fc 25 w(.) 12 b(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 48 w(18) p Fs 1968 705 a(V) p Fn 1968 823 a(VF_BITMAP) p Fc 12 w(.) j(.) d(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) p Fd 38 w(17) p Fn 1968 911 a(VF_METRIC1) p Fc 11 w(.) i(.) f(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) p Fd 37 w(17) p Fn 1968 999 a(VF_METRIC2) p Fc 11 w(.) i(.) f(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 37 w(18) p Fn 1968 1088 a(VF_OUTLINE) p Fc 11 w(.) i(.) f(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) p Fd 37 w(18) p Fn 1968 1176 a(VF_OUTLINE_ELEM) p Fc 25 w(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) p Fd 48 w(18) p dyy eop end %%Page: 102 103 TeXDict begin 102 102 bop Ft 0 -116 a(102) 3153 b(VFlib) 31 b(3.6.14) p dyy eop end %%Page: 103 104 TeXDict begin 103 103 bop Ft 0 -116 a(F) -8 b(unction) 31 b(index) 3048 b(103) p Fr 0 365 a(F) -13 b(unction) 52 b(index) p Fn 0 677 a(VF_ClearError) p Fc 6 w(.) 15 b(.) e(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 32 w(19) p Fn 0 764 a(VF_CloseFont) p Fc 8 w(.) j(.) d(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) p Fd 33 w(20) p Fn 0 851 a(VF_CopyBitmap) p Fc 6 w(.) j(.) e(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) p Fd 32 w(24) p Fn 0 938 a(VF_DumpBitmap) p Fc 6 w(.) j(.) e(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) p Fd 32 w(25) p Fn 0 1025 a(vf_error) p Fc 13 w(.) j(.) d(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 39 w(19) p Fn 0 1112 a(VF_FreeBitmap) p Fc 6 w(.) j(.) e(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) p Fd 32 w(28) p Fn 0 1200 a(VF_FreeMetric1) p Fc 26 w(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) p Fd 48 w(28) p Fn 0 1287 a(VF_FreeMetric2) p Fc 26 w(.) f(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) p Fd 48 w(28) p Fn 0 1374 a(VF_GetBitmap1) p Fc 6 w(.) i(.) e(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) p Fd 32 w(20) p Fn 0 1461 a(VF_GetBitmap2) p Fc 6 w(.) j(.) e(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 32 w(21) p Fn 0 1548 a(VF_GetFontBoundingBox1) p Fc 11 w(.) 18 b(.) 12 b(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 37 w(23) p Fn 0 1636 a(VF_GetFontBoundingBox2) p Fc 11 w(.) 18 b(.) 12 b(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 37 w(23) p Fn 0 1723 a(VF_GetMetric1) p Fc 6 w(.) j(.) e(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 32 w(21) p Fn 0 1810 a(VF_GetMetric2) p Fc 6 w(.) j(.) e(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) p Fd 32 w(22) p Fn 0 1897 a(VF_GetOutline) p Fc 6 w(.) j(.) e(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) p Fd 32 w(22) p Fn 1968 677 a(VF_GetProp) p Fc 11 w(.) i(.) f(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 37 w(23) p Fn 1968 764 a(VF_ImageOut_ASCIIArt) p Fc 14 w(.) 17 b(.) c(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) p Fd 40 w(27) p Fn 1968 851 a(VF_ImageOut_ASCIIArtV) p Fc 13 w(.) k(.) 12 b(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) g(.) h(.) f(.) p Fd 39 w(28) p Fn 1968 938 a(VF_ImageOut_EPS) p Fc 25 w(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) p Fd 48 w(27) p Fn 1968 1025 a(VF_ImageOut_PBMAscii) p Fc 14 w(.) 17 b(.) c(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 40 w(25) p Fn 1968 1112 a(VF_ImageOut_PGMAscii) p Fc 14 w(.) k(.) c(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 40 w(26) p Fn 1968 1200 a(VF_ImageOut_PGMRaw) p Fc 17 w(.) k(.) 12 b(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) p Fd 43 w(27) p Fn 1968 1287 a(VF_Init) p Fc 15 w(.) h(.) e(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) p Fd 41 w(18) p Fn 1968 1374 a(VF_InstallFontDriver) p Fc 14 w(.) 17 b(.) c(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) p Fd 40 w(28) p Fn 1968 1461 a(VF_MakeScaledBitmap) p Fc 16 w(.) j(.) d(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) p Fd 42 w(24) p Fn 1968 1548 a(VF_OpenFont1) p Fc 8 w(.) j(.) d(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 34 w(19) p Fn 1968 1636 a(VF_OpenFont2) p Fc 8 w(.) j(.) d(.) h(.) f(.) g(.) h(.) f (.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) p Fd 34 w(20) p Fn 1968 1723 a(VF_OutlineToBitmap) p Fc 17 w(.) 17 b(.) 12 b(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h (.) p Fd 43 w(22) p Fn 1968 1810 a(VF_ReflectedBitmap) p Fc 17 w(.) k(.) 12 b(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h (.) p Fd 43 w(24) p Fn 1968 1897 a(VF_RotatedBitmap) p Fc 24 w(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) p Fd 46 w(25) p dyy eop end %%Page: 104 105 TeXDict begin 104 104 bop Ft 0 -116 a(104) 3153 b(VFlib) 31 b(3.6.14) p dyy eop end %%Page: 105 106 TeXDict begin 105 105 bop Ft 0 -116 a(Program) 31 b(index) 3052 b(105) p Fr 0 365 a(Program) 54 b(index) p Fs 0 705 a(C) p Fn 0 829 a(ctext2pgm) p Fc 12 w(.) 14 b(.) f(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) p Fd 37 w(89) p Fs 0 1103 a(V) p Fn 0 1228 a(vflbanner) p Fc 12 w(.) h(.) f(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 37 w(30) p Fn 0 1320 a(vfldisol) p Fc 13 w(.) i(.) d(.) g(.) h(.) f(.) g (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) p Fd 39 w(89) p Fn 1968 705 a(vfldrvs) p Fc 15 w(.) i(.) e(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) p Fd 41 w(82) p Fn 1968 792 a(VFlib3-config) p Fc 6 w(.) k(.) c(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) p Fd 32 w(32) p Fn 1968 880 a(vflmkcaptex) p Fc 9 w(.) i(.) d(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) g(.) h(.) f(.) g(.) h(.) p Fd 35 w(79) p Fn 1968 968 a(vflmkfdb) p Fc 13 w(.) i(.) d(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) p Fd 40 w(81) p Fn 1968 1056 a(vflpp) p Fc 18 w(.) h(.) g(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) p Fd 44 w(81) p Fn 1968 1144 a(vflserver) p Fc 12 w(.) j(.) d(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) p Fd 38 w(83) p Fn 1968 1232 a(vfltest) p Fc 15 w(.) i(.) e(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f (.) p Fd 41 w(87) p Fn 1968 1320 a(vflx11) p Fc 16 w(.) i(.) f(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h (.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) f(.) g (.) h(.) f(.) g(.) h(.) f(.) g(.) h(.) p Fd 42 w(88) p dyy eop end %%Page: 106 107 TeXDict begin 106 106 bop Ft 0 -116 a(106) 3153 b(VFlib) 31 b(3.6.14) p dyy eop end %%Page: -1 108 TeXDict begin -1 107 bop Fb 3752 -116 a(i) p Fr 0 365 a(Short) 53 b(Con) l(ten) l(ts) p Fb 0 606 a(1) 146 b(Cop) m(yrigh) m (t) p Fa 19 w(.) 21 b(.) f(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h (.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h (.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h (.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) p Fb 51 w(1) 0 747 y(2) 146 b(Cop) m(ying) p Fa 25 w(.) 20 b(.) g(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g (.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h (.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h (.) f(.) g(.) h(.) f(.) h(.) f(.) p Fb 57 w(3) 0 888 y(3) 146 b(In) m(tro) s(duction) p Fa 35 w(.) 20 b(.) f(.) h(.) f(.) g (.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g (.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g (.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) p Fb 66 w(11) 0 1029 y(4) 146 b(Installing) 33 b(VFlib) p Fa 25 w(.) 20 b(.) g(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f (.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f (.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f (.) h(.) f(.) h(.) p Fb 57 w(13) 0 1171 y(5) 146 b(Programming) 33 b(with) g(VFlib) p Fa 10 w(.) 20 b(.) f(.) h(.) f(.) h(.) f(.) h(.) f (.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) p Fb 42 w(17) 0 1312 y(6) 146 b(W) -8 b(riting) 33 b(a) f(v\015ib) s(cap) p Fa 40 w(.) 19 b(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) h(.) f(.) g(.) p Fb 71 w(33) 0 1453 y(7) 146 b(Debugging) 32 b(a) h(v\015ib) s(cap) p Fa 37 w(.) 20 b(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) p Fb 69 w(71) 0 1594 y(8) 146 b(Co) s(de) 33 b(con) m(v) m(ersion) i (system) p Fa 11 w(.) 21 b(.) f(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f (.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) p Fb 43 w(73) 0 1735 y(9) 146 b(Utilit) m(y) 34 b(programs) p Fa 41 w(.) 19 b(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f (.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) f(.) p Fb 73 w(79) 0 1876 y(10) 97 b(Sample) 34 b(programs) p Fa 26 w(.) 19 b(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) h(.) f(.) g(.) h(.) p Fb 58 w(83) 0 2017 y(11) 97 b(Di\013erence) 34 b(b) s(et) m(w) m(een) g(VFlib) f(v) m(ersion) h (3.6) e(and) h(2) p Fa 38 w(.) 19 b(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) f(.) p Fb 70 w(95) 0 2159 y(Ac) m(kno) m(wledgmen) m(ts) p Fa 18 w(.) k(.) d(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g (.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g (.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g (.) h(.) f(.) h(.) f(.) p Fb 50 w(97) 0 2300 y(Concept) 34 b(index) p Fa 30 w(.) 19 b(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f (.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f (.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f (.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) p Fb 61 w(99) 0 2441 y(Data) 32 b(t) m(yp) s(e) h(index) p Fa 30 w(.) 19 b(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) h(.) f(.) p Fb 60 w(101) 0 2582 y(F) -8 b(unction) 33 b(index) p Fa 24 w(.) 21 b(.) e(.) h(.) f(.) g(.) h(.) f (.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f (.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g (.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) p Fb 56 w(103) 0 2723 y(Program) 32 b(index) p Fa 29 w(.) 19 b(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f (.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f (.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) f(.) g(.) p Fb 59 w(105) p dyy eop end %%Page: -2 109 TeXDict begin -2 108 bop Fb 0 -116 a(ii) 3199 b(VFlib) 32 b(3.6.14) p dyy eop end %%Page: -3 110 TeXDict begin -3 109 bop Ft 3704 -116 a(iii) p Fr 0 365 a(T) -13 b(able) 53 b(of) h(Con) l(ten) l(ts) p Fs 0 699 a(1) 135 b(Cop) l(yrigh) l(t) p Fa 12 w(.) 21 b(.) e(.) h(.) f(.) g (.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g (.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h (.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) p Fs 56 w(1) 0 965 y(2) 135 b(Cop) l(ying) p Fa 33 w(.) 20 b(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) p Fs 77 w(3) p Ft 299 1102 a(Pream) m(ble) p Fl 18 w(.) d(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g (.) p Ft 47 w(3) 299 1211 y(GNU) 31 b(LIBRAR) -8 b(Y) 31 b(GENERAL) f(PUBLIC) g(LICENSE) p Fl 25 w(.) 15 b(.) h(.) f(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 56 w(4) 299 1321 y(App) s(endix:) 39 b(Ho) m(w) 31 b(to) g(Apply) f(These) g(T) -8 b(erms) 30 b(to) h(Y) -8 b(our) 31 b(New) f(Libraries) p Fl 22 w(.) 15 b(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 52 w(10) p Fs 0 1559 a(3) 135 b(In) l(tro) t(duction) p Fa 28 w(.) 19 b(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f (.) h(.) p Fs 72 w(11) 0 1825 y(4) 135 b(Installing) 46 b(VFlib) p Fa 27 w(.) 19 b(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f (.) p Fs 71 w(13) 0 2091 y(5) 135 b(Programming) 46 b(with) f(VFlib) p Fa 27 w(.) 19 b(.) g(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h (.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h (.) f(.) h(.) f(.) p Fs 71 w(17) p Ft 299 2228 a(5.1) 92 b(Data) 32 b(t) m(yp) s(es) p Fl 11 w(.) 15 b(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g (.) p Ft 40 w(17) 598 2338 y(5.1.1) 93 b(bitmap) 30 b(t) m(yp) s(e) p Fl 15 w(.) 15 b(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h (.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 45 w(17) 598 2447 y(5.1.2) 93 b(metric1) 31 b(t) m(yp) s(e) p Fl 30 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 59 w(17) 598 2557 y(5.1.3) 93 b(metric2) 31 b(t) m(yp) s(e) p Fl 30 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 59 w(17) 598 2667 y(5.1.4) 93 b(outline) 31 b(t) m(yp) s(e) p Fl 20 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 50 w(18) 299 2776 y(5.2) 92 b(F) -8 b(unctions) 31 b(and) f(v) -5 b(ariables) p Fl 17 w(.) 16 b(.) f(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) p Ft 47 w(18) 598 2886 y(5.2.1) p Fp 93 w(VF_Init\(\)) p Fl 23 w(.) d(.) j(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) p Ft 53 w(18) 598 2995 y(5.2.2) p Fp 93 w(vf_error) p Fl 23 w(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) p Ft 55 w(19) 598 3105 y(5.2.3) p Fp 93 w(VF_ClearError\(\)) p Fl 9 w(.) 10 b(.) 15 b(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) p Ft 38 w(19) 598 3215 y(5.2.4) p Fp 93 w(VF_OpenFont1\(\)) p Fl 11 w(.) c(.) k(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 41 w(19) 598 3324 y(5.2.5) p Fp 93 w(VF_OpenFont2\(\)) p Fl 11 w(.) c(.) k(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) p Ft 41 w(20) 598 3434 y(5.2.6) p Fp 93 w(VF_CloseFont\(\)) p Fl 11 w(.) c(.) k(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 41 w(20) 598 3543 y(5.2.7) p Fp 93 w(VF_GetBitmap1\(\)) p Fl 9 w(.) 10 b(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h (.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) p Ft 38 w(20) 598 3653 y(5.2.8) p Fp 93 w(VF_GetBitmap2\(\)) p Fl 9 w(.) 10 b(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) h(.) f(.) g(.) p Ft 38 w(21) 598 3763 y(5.2.9) p Fp 93 w(VF_GetMetric1\(\)) p Fl 9 w(.) 10 b(.) 15 b(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) p Ft 38 w(21) 598 3872 y(5.2.10) p Fp 93 w(VF_GetMetric2\(\)) p Fl 25 w(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) p Ft 59 w(22) 598 3982 y(5.2.11) p Fp 93 w(VF_GetOutline\(\)) p Fl 25 w(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 59 w(22) 598 4091 y(5.2.12) p Fp 93 w(VF_OutlineToBitmap\(\)) p Fl 17 w(.) 10 b(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) p Ft 47 w(22) 598 4201 y(5.2.13) p Fp 93 w (VF_GetFontBoundingBox1\(\)) p Fl 23 w(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) p Ft 59 w(23) 598 4311 y(5.2.14) p Fp 93 w (VF_GetFontBoundingBox2\(\)) p Fl 23 w(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) p Ft 59 w(23) 598 4420 y(5.2.15) p Fp 93 w(VF_GetProp\(\)) p Fl 15 w(.) c(.) k(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 44 w(23) 598 4530 y(5.2.16) p Fp 93 w(VF_CopyBitmap\(\)) p Fl 25 w(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 59 w(24) 598 4639 y(5.2.17) p Fp 93 w(VF_MakeScaledBitmap\(\)) p Fl 15 w(.) 9 b(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 45 w(24) 598 4749 y(5.2.18) p Fp 93 w(VF_ReflectedBitmap\(\)) p Fl 17 w(.) 10 b(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) p Ft 47 w(24) 598 4858 y(5.2.19) p Fp 93 w(VF_RotatedBitmap\(\)) p Fl 22 w(.) 10 b(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) p Ft 52 w(25) 598 4968 y(5.2.20) p Fp 93 w(VF_DumpBitmap\(\)) p Fl 25 w(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 59 w(25) 598 5078 y(5.2.21) p Fp 93 w(VF_ImageOut_PBMAscii\(\)) p Fl 12 w(.) 10 b(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) p Ft 42 w(25) 598 5187 y(5.2.22) p Fp 93 w(VF_ImageOut_PGMAscii\(\)) p Fl 12 w(.) 10 b(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) p Ft 42 w(26) 598 5297 y(5.2.23) p Fp 93 w(VF_ImageOut_PGMRaw\(\)) p Fl 17 w(.) 10 b(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) p Ft 47 w(27) 598 5406 y(5.2.24) p Fp 93 w(VF_ImageOut_EPS\(\)) p Fl 20 w(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) p Ft 54 w(27) 598 5516 y(5.2.25) p Fp 93 w(VF_ImageOut_ASCIIArt\(\)) p Fl 12 w(.) 10 b(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g (.) g(.) g(.) g(.) g(.) p Ft 42 w(27) 598 5626 y(5.2.26) p Fp 93 w(VF_ImageOut_ASCIIArtV\(\)) p Fl 10 w(.) 9 b(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 40 w(28) 598 5735 y(5.2.27) p Fp 93 w(VF_FreeBitmap\(\)) p Fl 25 w(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 59 w(28) 598 5845 y(5.2.28) p Fp 93 w(VF_FreeMetric1\(\)) p Fl 22 w(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h (.) f(.) g(.) g(.) p Ft 56 w(28) 598 5954 y(5.2.29) p Fp 93 w(VF_FreeMetric2\(\)) p Fl 22 w(.) g(.) g(.) g(.) g(.) g(.) g(.) h (.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) p Ft 56 w(28) p dyy eop end %%Page: -4 111 TeXDict begin -4 110 bop Ft 0 -116 a(iv) 3215 b(VFlib) 31 b(3.6.14) 598 83 y(5.2.30) p Fp 93 w(VF_InstallFontDriver\(\)) p Fl 12 w(.) 10 b(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) p Ft 42 w(28) 299 193 y(5.3) 92 b(Building) 30 b(an) h(application) g (soft) m(w) m(are) h(with) e(VFlib) p Fl 18 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 48 w(29) 299 302 y(5.4) 92 b(A) 30 b(simple) h(example) p Fl 26 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g (.) g(.) p Ft 55 w(29) p Fs 0 545 a(6) 135 b(W) -11 b(riting) 45 b(a) g(v\015ib) t(cap) p Fa 20 w(.) 19 b(.) h(.) f(.) h(.) f(.) h(.) f (.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f (.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f (.) h(.) p Fs 64 w(33) p Ft 299 682 a(6.1) 92 b(In) m(tro) s(duction) 30 b(to) h(v\015ib) s(cap) p Fl 11 w(.) 14 b(.) h(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) p Ft 41 w(33) 299 791 y(6.2) 92 b(Syn) m(tax) 31 b(of) f(v\015ib) s(cap) p Fl 18 w(.) 14 b(.) h(.) h(.) f(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 48 w(33) 299 901 y(6.3) 92 b(Macros) 31 b(in) f(v\015ib) s(cap) p Fl 12 w(.) 14 b(.) h(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) p Ft 41 w(34) 299 1010 y(6.4) 92 b(Searc) m(hing) 31 b(fon) m(t) g(\014les) p Fl 25 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) p Ft 55 w(35) 299 1120 y(6.5) 92 b(F) -8 b(ast) 32 b(fon) m(t) f(\014le) f(searc) m(h) p Fl 12 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) p Ft 42 w(35) 299 1230 y(6.6) 92 b(Compressed) 29 b(fon) m(t) i(\014les) p Fl 21 w(.) 15 b(.) h(.) f(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) p Ft 51 w(35) 299 1339 y(6.7) 92 b(Explicit) 31 b(and) f(implicit) h(fon) m(ts) p Fl 30 w(.) 15 b(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) p Ft 59 w(36) 299 1449 y(6.8) 92 b(V) -8 b(ariables) 32 b(in) e(v\015ib) s(cap) p Fl 15 w(.) 14 b(.) h(.) g(.) g(.) g(.) g(.) g (.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) p Ft 45 w(36) 299 1558 y(6.9) 92 b(VFlib) 31 b(defaults) p Fl 8 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 38 w(36) 299 1668 y(6.10) 92 b(BDF) 32 b(fon) m(t) f(class) p Fl 17 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) p Ft 47 w(37) 299 1778 y(6.11) 92 b(PCF) 31 b(fon) m(t) f(class) p Fl 20 w(.) 16 b(.) f(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 50 w(39) 299 1887 y(6.12) 92 b(HBF) 32 b(fon) m(t) e(class) p Fl 18 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g (.) g(.) g(.) g(.) p Ft 47 w(39) 299 1997 y(6.13) 92 b(T) -8 b(rueT) m(yp) s(e) 30 b(fon) m(t) h(class) p Fl 27 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h (.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) p Ft 56 w(39) 299 2106 y(6.14) 92 b(T) m(yp) s(e1) 31 b(fon) m(t) g (class) p Fl 10 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) p Ft 40 w(43) 299 2216 y(6.15) 92 b(Zeit) 31 b(fon) m(t) g(class) p Fl 14 w(.) 16 b(.) f(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 44 w(45) 299 2325 y(6.16) 92 b(JG) 31 b(fon) m(t) g(class) p Fl 12 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) p Ft 41 w(46) 299 2435 y(6.17) 92 b(eKanji) 31 b(fon) m(t) g(class) p Fl 27 w(.) 15 b(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 56 w(47) 299 2545 y(6.18) 92 b(T) 602 2564 y(E) 652 2545 y(X) 31 b(default) f(and) g (T) 1284 2564 y(E) 1334 2545 y(X) h(fon) m(t) g(mapping) e(fon) m(t) i (class) p Fl 10 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h (.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) p Ft 40 w(49) 299 2654 y(6.19) 92 b(PK) 30 b(fon) m(t) h(class) p Fl 27 w(.) 15 b(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 56 w(52) 299 2764 y(6.20) 92 b(GF) 31 b(fon) m(t) g(class) p Fl 28 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) h(.) f(.) p Ft 56 w(53) 299 2873 y(6.21) 92 b(TFM) 31 b(fon) m(t) g(class) p Fl 9 w(.) 16 b(.) f(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 39 w(53) 299 2983 y(6.22) 92 b(VF) 31 b(fon) m(t) g(class) p Fl 29 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) p Ft 58 w(54) 299 3093 y(6.23) 92 b(ASCI) s(I) 29 b(Japanese) i(T) 1271 3112 y(E) 1321 3093 y(X) f(Kanji) g(fon) m(t) h(class) p Fl 22 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) p Ft 51 w(56) 299 3202 y(6.24) 92 b(Japanese) 31 b(comic) h(fon) m(t) e(class) p Fl 22 w(.) 17 b(.) e(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 52 w(57) 299 3312 y(6.25) 92 b(T) -8 b(ry) 30 b(fon) m(t) h(class) p Fl 21 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h (.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) p Ft 51 w(58) 299 3421 y(6.26) 92 b(Mo) 5 b(jiky) m(o) 32 b(fon) m(t) f(mapping) f(class) p Fl 22 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) p Ft 52 w(58) 299 3531 y(6.27) 92 b(Example) 31 b(v\015ib) s(cap) e(1) p Fl 16 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 46 w(59) 299 3641 y(6.28) 92 b(Example) 31 b(v\015ib) s(cap) e(2) p Fl 16 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 46 w(65) 299 3750 y(6.29) 92 b(Example) 31 b(v\015ib) s(cap) e(3) p Fl 16 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 46 w(68) p Fs 0 3993 a(7) 135 b(Debugging) 45 b(a) h(v\015ib) t(cap) p Fa 26 w(.) 18 b(.) i(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f (.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) p Fs 70 w(71) 0 4262 y(8) 135 b(Co) t(de) 45 b(con) l(v) l(ersion) h(system) p Fa 37 w(.) 19 b(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) h(.) p Fs 80 w(73) p Ft 299 4399 a(8.1) 92 b(Ho) m(w) 31 b(CCV) f(w) m(orks) p Fl 25 w(.) 15 b(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 55 w(73) 299 4509 y(8.2) 92 b(The) 30 b(in) m(ternal) h(\(hardco) s (ded\)) f(CCV) g(functions) p Fl 18 w(.) 14 b(.) h(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) p Ft 47 w(74) 299 4619 y(8.3) 92 b(The) 30 b(syn) m(tax) h(of) f (CCV) g(\014les) p Fl 27 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 57 w(74) 299 4728 y(8.4) 92 b(Example) 30 b(of) h(a) g(CCV) f (\014le) g(1) p Fl 19 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 49 w(75) 299 4838 y(8.5) 92 b(Example) 30 b(of) h(a) g(CCV) f (\014le) g(2) p Fl 19 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 49 w(76) p Fs 0 5080 a(9) 135 b(Utilit) l(y) 47 b(programs) p Fa 33 w(.) 19 b(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) p Fs 76 w(79) p Ft 299 5217 a(9.1) 92 b(v\015mk) m(captex) p Fl 10 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 40 w(79) 299 5327 y(9.2) 92 b(v\015pp) p Fl 21 w(.) 14 b(.) h(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) p Ft 51 w(81) 299 5436 y(9.3) 92 b(v\015mkfdb) p Fl 10 w(.) 13 b(.) i(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 40 w(81) 299 5546 y(9.4) 92 b(v\015drvs) p Fl 8 w(.) 14 b(.) h(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 38 w(82) p dyy eop end %%Page: -5 112 TeXDict begin -5 111 bop Ft 3732 -116 a(v) p Fs 0 83 a(10) 135 b(Sample) 45 b(programs) p Fa 11 w(.) 20 b(.) f(.) h(.) f(.) h (.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h (.) f(.) h(.) f(.) p Fs 55 w(83) p Ft 299 220 a(10.1) 92 b(v\015serv) m(er) p Fl 19 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) p Ft 48 w(83) 598 330 y(10.1.1) 93 b(Using) 31 b(v\015serv) m(er) f(from) g(command) g(line) p Fl 16 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) p Ft 45 w(83) 598 439 y(10.1.2) 93 b(Using) 31 b(v\015serv) m(er) f(via) h(net) m(w) m (ork) p Fl 18 w(.) 15 b(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 48 w(83) 598 549 y(10.1.3) 93 b(The) 30 b(proto) s(col) h(of) g (v\015serv) m(er) p Fl 26 w(.) 15 b(.) g(.) g(.) g(.) g(.) h(.) f(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) p Ft 57 w(84) 897 658 y(10.1.3.1) 94 b(In) m(tro) s(duction) p Fl 18 w(.) 14 b(.) h(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 48 w(84) 897 768 y(10.1.3.2) 94 b(Reply) 30 b(F) -8 b(ormat) 32 b(of) e(a) h(Serv) m (er) p Fl 21 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) h(.) f(.) p Ft 50 w(84) 897 878 y(10.1.3.3) 94 b(The) 29 b(Proto) s(col) p Fl 28 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 56 w(85) 299 987 y(10.2) 92 b(v\015test) p Fl 19 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) h(.) f(.) p Ft 48 w(87) 299 1097 y(10.3) 92 b(v\015x11) p Fl 23 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 53 w(88) 299 1206 y(10.4) 92 b(v\015disol) p Fl 23 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) p Ft 52 w(89) 299 1316 y(10.5) 92 b(ctext2pgm) p Fl 19 w(.) 17 b(.) e(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) p Ft 49 w(89) 598 1425 y(10.5.1) 93 b(Running) 29 b(ctext2pgm) p Fl 15 w(.) 17 b(.) e(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 45 w(89) 598 1535 y(10.5.2) 93 b(Making) 31 b(input) f(\014les) g (for) g(ctext2pgm) p Fl 12 w(.) 17 b(.) e(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 42 w(93) 598 1645 y(10.5.3) 93 b(Commands) 29 b(in) h(input) g(text) p Fl 25 w(.) 16 b(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) p Ft 54 w(93) 598 1754 y(10.5.4) 93 b(T) -8 b(rouble) 30 b(sho) s(oting) p Fl 30 w(.) 15 b(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) h(.) f(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g (.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) g(.) p Ft 59 w(94) p Fs 0 1997 a(11) 135 b(Di\013erence) 46 b(b) t(et) l(w) l (een) g(VFlib) f(v) l(ersion) g(3.6) h(and) f(2) p Fa 28 w(.) 19 b(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) p Fs 72 w(95) 0 2266 y(Ac) l(kno) l(wledgmen) l(ts) p Fa 36 w(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f (.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f (.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h(.) p Fs 78 w(97) 0 2536 y(Concept) 45 b(index) p Fa 11 w(.) 20 b(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) p Fs 55 w(99) 0 2806 y(Data) 46 b(t) l(yp) t(e) f(index) p Fa 19 w(.) 20 b(.) g(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f (.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f (.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f (.) p Fs 64 w(101) 0 3076 y(F) -11 b(unction) 44 b(index) p Fa 26 w(.) 20 b(.) f(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h (.) f(.) p Fs 71 w(103) 0 3346 y(Program) 46 b(index) p Fa 27 w(.) 19 b(.) g(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g (.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) g (.) h(.) f(.) h(.) f(.) h(.) f(.) g(.) h(.) f(.) h(.) f(.) h(.) f(.) h (.) f(.) p Fs 71 w(105) p dyy eop end %%Page: -6 113 TeXDict begin -6 112 bop Ft 0 -116 a(vi) 3215 b(VFlib) 31 b(3.6.14) p dyy eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF vflib3-3.6.14.dfsg/doc/VFlib-36.info0000644000175000017500000000626310400435026016137 0ustar mohuramohuraInfo file: VFlib-36.info, -*-Text-*- produced by `texinfo-format-buffer' from file `VFlib-36.texi' using `texinfmt.el' version 2.38 of 3 July 1998.  Indirect: VFlib-36.info-1: 161 VFlib-36.info-2: 51464 VFlib-36.info-3: 106716 VFlib-36.info-4: 170173 VFlib-36.info-5: 220990  Tag table: (Indirect) Node: Top164 Node: Copyright1546 Node: Copying2438 Node: Introduction29486 Node: Installing VFlib35693 Node: Programming with VFlib46060 Node: Data types46344 Node: bitmap type46546 Node: metric1 type48592 Node: metric2 type49135 Node: outline type49684 Node: Functions and variables51467 Node: VF_Init()52530 Node: vf_error54424 Node: VF_ClearError()54753 Node: VF_OpenFont1()54998 Node: VF_OpenFont2()56571 Node: VF_CloseFont()57903 Node: VF_GetBitmap1()58312 Node: VF_GetBitmap2()59679 Node: VF_GetMetric1()61059 Node: VF_GetMetric2()61907 Node: VF_GetOutline()62756 Node: VF_OutlineToBitmap()63746 Node: VF_GetFontBoundingBox1()64916 Node: VF_GetFontBoundingBox2()66412 Node: VF_GetProp()66910 Node: VF_CopyBitmap()67675 Node: VF_MakeScaledBitmap()68341 Node: VF_ReflectedBitmap()69397 Node: VF_RotatedBitmap()70504 Node: VF_DumpBitmap()72001 Node: VF_ImageOut_PBMAscii()72347 Node: VF_ImageOut_PGMAscii()74838 Node: VF_ImageOut_PGMRaw()75689 Node: VF_ImageOut_EPS()76515 Node: VF_ImageOut_ASCIIArt()77523 Node: VF_ImageOut_ASCIIArtV()78232 Node: VF_FreeBitmap()78994 Node: VF_FreeMetric1()79338 Node: VF_FreeMetric2()79666 Node: VF_InstallFontDriver()80002 Node: Building an application software with VFlib81501 Node: A simple example82976 Node: Writing a vflibcap87386 Node: Introduction to vflibcap88364 Node: Syntax of vflibcap89360 Node: Macros in vflibcap92405 Node: Searching font files93597 Node: Fast font file search94729 Node: Compressed font files96600 Node: Explicit and implicit fonts97175 Node: Variables in vflibcap97553 Node: VFlib defaults98718 Node: BDF font class101344 Node: PCF font class106719 Node: HBF font class106975 Node: TrueType font class107236 Node: Type1 font class113564 Node: Zeit font class118286 Node: JG font class121962 Node: eKanji font class122725 Node: TeX default and TeX font mapping font class128107 Node: PK font class138061 Node: GF font class140250 Node: TFM font class140480 Node: VF font class142511 Node: ASCII Japanese TeX Kanji font class145397 Node: Japanese comic font class148511 Node: Try font class151267 Node: Mojikyo font mapping class152251 Node: Example vflibcap 1155910 Node: Example vflibcap 2170176 Node: Example vflibcap 3179550 Node: Debugging a vflibcap182139 Node: Code conversion system183499 Node: Utility programs198713 Node: vflmkcaptex198921 Node: vflpp206336 Node: vflmkfdb206740 Node: vfldrvs207441 Node: Sample programs207629 Node: vflserver207866 Node: Using vflserver from command line208221 Node: Using vflserver via network209557 Node: The protocol of vflserver211563 Node: vfltest218837 Node: vflx11220993 Node: vfldisol222795 Node: ctext2pgm223570 Node: Difference between VFlib version 3.6 and 2236266 Node: Acknowledgments237315 Node: Concept index237683 Node: Data type index242406 Node: Function index243030 Node: Program index244954  End tag table vflib3-3.6.14.dfsg/doc/VFlib-36.info-10000644000175000017500000014441210400435026016274 0ustar mohuramohuraInfo file: VFlib-36.info, -*-Text-*- produced by `texinfo-format-buffer' from file `VFlib-36.texi' using `texinfmt.el' version 2.38 of 3 July 1998.  File: VFlib-36.info, Node: Top, Up: (dir) This is a TeXinfo version of VVVVV VVVV FFFFFFFFF ll ii bb VVV VV FF FF lll ii bbb VV V FF F ll bb VVV V FF ll bb VV VV FF ll ii bb bbb VV V FF F ll iii bbb bbb VVV V FFFFFFF ll ii bb bb 33 66 1 4 VV VV FF F ll ii bb bb 3 3 6 11 44 VVV V FF ll ii bb bb 3 6 1 4 4 VV V FF ll ii bb bb 33 666 1 4 4 VVVV FF ll ii bb bb 3 6 6 1 44444 VV FF ll ii bb bb 3 3 6 6 1 4 VV FFFF llll iiii b bbb 33 * 66 * 111 4 User's Manual by Hirotsugu Kakugawa Final Revision: 26 Feb 2006 * Menu: * Copyright:: * Copying:: * Introduction:: * Installing VFlib:: * Programming with VFlib:: * Writing a vflibcap:: * Debugging a vflibcap:: * Code conversion system:: * Utility programs:: * Sample programs:: * Difference between VFlib version 3.6 and 2:: * Concept index:: * Data type index:: * Function index:: * Program index:: * Acknowledgments::  File: VFlib-36.info, Node: Copyright, Next: Copying, Up: Top Copyright ********* Copyright (C) 1996-2006 Hirotsugu Kakugawa. All rights reserved. This file is part of the VFlib Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  File: VFlib-36.info, Node: Copying, Next: Introduction, Prev: Copyright, Up: Top Copying ******* GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble ======== The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE ================================== TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 1. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 2. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 3. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a. The modified work must itself be a software library. b. You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c. You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d. If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 4. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 5. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 6. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 7. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a. Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b. Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c. If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d. Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 8. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: 1. Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. 2. Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 9. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 10. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 11. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 12. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 13. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 14. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 15. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 16. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 17. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Libraries ======================================================== If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. ONE LINE TO GIVE THE LIBRARY'S NAME AND A BRIEF IDEA OF WHAT IT DOES. Copyright (C) YEAR NAME OF AUTHOR This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. SIGNATURE OF TY COON, 1 April 1990 Ty Coon, President of Vice That's all there is to it!  File: VFlib-36.info, Node: Introduction, Next: Installing VFlib, Prev: Copying, Up: Top Introduction ************ Today many font files are available in various font file formats. When we need a software to display or print characters which does not depend on a windowing system and/or an operating system, we must write interface routines for accessing font files in each application software again and again. To do this, programmers must have knowledge on font file formats; it will be a hard task for programmers if the number of font formats that an application software supports becomes large. VFlib is a font library written in C providing several functions to obtain bitmaps of characters. VFlib hides the font format of font files and provides a unified API for all supported font formats. Thus, programmers for application software need not have knowledge on font file formats. Instead, any software using VFlib can support various font file formats immediately. This document describes the fundamental concepts of VFlib and gives a brief introduction in writing programs using VFlib. As described above, VFlib supports many font file formats and absorbs differences between font file formats. Currently, VFlib supports the following font file formats: PCF, BDF, HBF, TrueType, Type1, GF, PK, Virtual Fonts, TFM, SyotaiKurabu (a vector font format for Japanese Kanji characters), JG (another vector font format for Japanese Kanji characters), and eKanji (a bitmap font format for Kanji characters). The VFlib system consists of two parts: A library (`libVFlib.a' and/or `libVFlib.so') It provides several C functions. Any application software using VFlib must link this library. VFlib (optionally) uses kpathsea, FreeType, and T1Lib libraries. Application software linked with VFlib must be linked with these external libraries, if you want to use them. Application software must be linked against kpathsea, FreeType and T1Lib in addition to VFlib if you configured VFlib to use them. A font database file (`vflibcap') When we open a font, information about the font file (font format, location, possibly necessary glyph modifications etc.) is necessary. This file describes such information; it is read when the initialization function of VFlib is called. Basic concept of VFlib Font Classes and Font Drivers VFlib can handle multiple font file formats. Reading a font file according to its font file format is done by an internal module in VFlib corresponding to its font file format. This internal module is called a *font driver*. Service units provided by a font driver is called *font class*. From an end-user's point of view, various font formats are distinguished by various names of font classes. Font drivers themselves are internal of VFlib and invisible for end-users. Some font drivers may not read font files on disk; they may generate glyph and outlines by internal computation only. In addition, some font drivers may return glyph which are obtained as glyph by another font class (hence the name `Virtual Font library'). A View of VFlib Font From The End-User Each (virtual) font by VFlib has its inherent information of point size, pixel size, and resolution of the target device. In addition to these font metrics are defined for each glyph. Some font file formats does not have such concepts; in such case, (1) lacking information is given in a font database file `vflibcap' or (2) the specific font driver gives such information as default values. For instance, a TrueType font file is a vector font file and does not has information on point size and resolution of the target device (such information is unnecessary since vector fonts can be scaled at any size). SyotaiKurabu font format (a vector font for Japanese Kanji) does not have font metric information at all. A font driver for this font format virtually generates font metrics by information given in a vflibcap file. Font Names and Font Searching Mechanism In VFlib, a font is specified by a font name when a font is requested to open. First, VFlib checks whether the font name is given in vflibcap or not. If the font name is found, VFlib reads the description for the font in vflibcap. The description contains a font class name; VFlib then invokes a font driver corresponding to the font class name. Finally the font driver opens the font file (if necessary). If the font name is not given in a vflibcap file, a font searching mechanism is invoked. Since there are many font files for X Window and TeX, this feature is introduced to avoid writing an entry for each font file. Various font drivers will be called to see whether the font can be opened. If a font driver succeeds in opening the font, font searching finishes and the VFlib font opening function returns successfully. Otherwise, font open fails. Fonts described in a vflibcap file are called *explicit fonts* and fonts that are searched for by the font search feature are called *implicit fonts*. Support for explicit and implicit fonts depends on font driver. Obtaining Bitmaps (Glyph) Two interfaces are provided to obtain glyph (bitmaps) of a font. High resolution device oriented glyph This method is suitable for devices of high resolution such as laser printers. The size of glyph is specified by the physical size of glyph and device resolution. When the size of a glyph in the source font is different from the target size, VFlib scales the source glyph internally. Low resolution device oriented glyph This method is suitable for low resolution devices such as CRT displays. Glyph sizes are specified by pixel size rather than by device resolution. When the size of a glyph in the source font is different from the target size, VFlib scales the source glyph internally.  File: VFlib-36.info, Node: Installing VFlib, Next: Programming with VFlib, Prev: Introduction, Up: Top Installing VFlib **************** VFlib uses GNU autoconf and GNU libtool to compile. According to the following procedure, compile and install VFlib. VFlib (optionally) uses FreeType 1.3.0 or later, T1Lib 5.1 or later, and kpathsea 3.2 libraries. They must be installed before compiling VFlib if you want use them. They are available from the following sites: * FreeType VFlib is tested with FreeType 1.3. (FreeType 1.0 does not work with current VFlib3.) - `http://www.freetype.org/' - `ftp://ftp.freetype.org/pub/freetype/freetype-1.3.tar.gz' * T1Lib VFlib is tested with T1Lib 5.1. - `ftp://sunsite.unc.edu/pub/Linux/libs/graphics/' - `http://www.neuroinformatik.ruhr-uni-bochum.de/ini/PEOPLE/rmz/t1lib/t1lib.html' - `ftp://ftp.neuroinformatik.ruhr-uni-bochum.de/pub/software/t1lib/' * kpathsea VFlib is tested with kpathsea 3.2 in web2c-7.2b. - `ftp://ftp.ctan.org/tex-archive/system/web2c/' 1. VFlib is tested on the following platforms: * FreeBSD 2.2.2 and 3.2 on IBM PC-clones * Solaris 2.5.1 on Sun SPARC Stations Porting to Unix-like system is easy since the source code is not specific system dependent. Porting to non-Unix-like system is not difficult; please try. 2. Go into the directory `VFlib3-3.6.14'. 3. Run the `configure' script. % ./configure [RET] By default, VFlib does *not* support for TrueType and Type1 fonts and TeX font searching by kpathsea library for searching TeX-related font files such as GF, PK, TFM, VF. For such features, VFlib (optionally) uses FreeType library version 1.2 or later for rendering TrueType font files, T1Lib library version 5.1 or later for rendering Type 1 font files, and kpathsea library version 3.2. VFlib can be built to use these libraries by giving options when you run `configure' script. Probably, the following is the typical options to configure script to use TrueType and Type 1 fonts and font search feature by kpathsea library. % ./configure \ --with-kpathsea \ --with-kpathsea-includedir=/usr/local/include \ --with-kpathsea-libdir=/usr/local/lib --with-freetype \ --with-freetype-includedir=/usr/local/include/freetype \ --with-freetype-libdir=/usr/local/lib" --with-t1lib \ --with-t1lib-includedir=/usr/local/include \ --with-t1lib-libdir=/usr/local/lib [RET] *Note:* See the `configure-site' script; it invokes the `configure' script with typical settings shown above. Options for configure script is as follows: --enable-shared Enable to build a shared library version of VFlib. By default, shared library version is created, if the target system supports shared library. --disable-shared Disable to build a shared library version of VFlib. --disable-static Disable to build a static library version of VFlib. By default, static library version is not created, if the target system supports shared library. --enable-static Enable to build a shared library version of VFlib. --disable-bdf VFlib is built without the BDF font driver. --disable-pcf VFlib is built without the PCF font driver. --disable-hbf VFlib is built without the HBF font driver. --disable-gf VFlib is built without the TeX GF font driver. --disable-pk VFlib is built without the TeX PK font driver. --disable-tfm VFlib is built without the TeX TFM font driver. --disable-jtex VFlib is built without the Japanese TeX Kanji font driver. --disable-tex-fonts VFlib is built without all TeX-related font drivers, i.e., GF, PK, VF, TFM, and ASCII Japanese TeX Kanji. --disable-zeit VFlib is built without the Zeit (Syotai Kurabu) font driver. --disable-jg VFlib is built without the JG font driver. --disable-ekanji VFlib is built without the eKanji font driver. --disable-comic VFlib is built without the Japanese comic font driver. --disable-try VFlib is built without the Try font driver. --disable-mojikmap VFlib is built without the Mojikyo font mapping driver. --with-freetype[=LIB] FreeType library file is LIB. Default value is `ttf'. (Application programs must be linked against `libLIB.a' or `libLIB.so'.) --with-freetype-includedir=DIR FreeType include files are in DIR. --with-freetype-libdir=DIR FreeType library files are in DIR. --with-t1lib[=LIB] T1Lib library file is LIB. Default value is `t1'. (Application programs must be linked against `libLIB.a' or `libLIB.so'.) --with-t1lib-includedir=DIR T1Lib include files are in DIR. --with-t1lib-libdir=DIR T1lib library files are in DIR. --with-kpathsea=LIB Kpathsea library file is LIB. Default value is `kpathsea'. (Application programs must be linked against `libLIB.a' or `libLIB.so'.) --with-kpathsea-includedir=DIR Kpathsea include files are in DIR. --with-kpathsea-libdir=DIR Kpathsea library files are in DIR. 4. Run `make' to compile VFlib. % make [RET] 5. Become a super user (root) and run `make' with `install' option to install. (Run `make' with `uninstall' option to uninstall.) # make install [RET] 6. If installation is successful, the following has been created: `libVFlib.a' and/or `libVFlib.so' These are the library files and linked with application programs. `vflserver', `vflmkcaptex', `vflx11', `vfltest', etc. -- A VFlib server and test programs on X11 By `vflserver', the functionality of VFlib is available via network if `vflserver' is registered in `/etc/inetd.conf'. It can be used interactively by invocation from shell. Interactive use of VFlib is useful for testing or debugging purposes. `vflx11' is a test program that displays characters on X Window System. You can use it to test if a font is correctly configured in vflibcap file. `vflmkcaptex' is an automatic vflibcap generator for TeX DVI drivers, especially software in the TeX-Guy package. It is a Unix Shell script, and it invokes many subprograms (written in C) to generate font definitions for each font format. `vfltest' is a test program that displays characters on terminal by ascii-art form. Installation directories are as follows: `/usr/local/share/VFlib/3.6.14/' (= `$prefix/share/VFlib/3.6.14/') Runtime files such as vflibcap are installed here. This runtime root directory can be changed on runtime by an environment variable `VFLIB_RUNTIME_DIRECTORY'. If this environment variable is not set, the default directory (`/usr/local/share/VFlib/3.6.14/') is used. Under this directory, there are following subdirectories: `ccv' In this directory, code conversion files are installed. This directory can be changed on runtime by setting an environment variable `VFLIB_CCV_DIRECTORY'. If this variable is set, default runtime directory and the value by `VFLIB_RUNTIME_DIRECTORY' variable are ignored. `t1lib' Encoding vector files for T1Lib (for Type 1 fonts) are stored in this directory. Note that the file format for encoding vector files used by T1Lib is different from those used by standard PostScript. To convert standard PostScript encoding vector files into T1Lib format, use `mkt1enc.sh' program in this directory. By default, this directory contains files converted from encoding vector files in the `dvips' distribution. `ascii-jtex' In this directory, runtime files for Japanese TeX by ASCII Coop. are installed. This directory can be changed on runtime by setting an environment variable `VFLIB_ASCII_JTEX_DIRECTORY'. If this variable is set, default runtime directory and the value by `VFLIB_RUNTIME_DIRECTORY' variable are ignored. `doc' This directory contains several papers on VFlib, written by Hirotsugu Kakugawa. `/usr/local/share/VFlib/site/' Runtime files (vflibcap, ccv files, etc.) that are created by each site should be placed here. For each versiion of VFlib, it has own runtime directory (`/usr/local/share/VFlib/X.Y.Z/') for default settings; and therefore, the directory where runtime files such as vflibcap in differs by versions of VFlib. In oder to use your own runtime files regardless VFlib versions, runtime files modified for your system environment should be installed in `/usr/local/share/VFlib/site/', which is called "site directory". Before searching in `/usr/local/share/VFlib/X.Y.Z/', VFlib searches a runtime file in site directory. Note that there is no directory hierarchy in site directory; all runtime files are in the same directory. The site directory can be changed by an environment variable `VFLIB_RUNTIME_SITE_DIRECTORY'. `/usr/local/bin/' Binary programs such as `vflserver', `vflx11', etc are installed here. `/usr/local/include/' Include file for C programs `VFlib-3_6.h' is installed here. `/usr/local/lib/' VFlib library files such as `libVFlib.a', `libVFlib.so' are installed here. Install directories can be changed when you run `configure' script by the `--prefix=' option, for example. Invoke `configure' with `--help' option for details.  File: VFlib-36.info, Node: Programming with VFlib, Next: Writing a vflibcap, Prev: Installing VFlib, Up: Top Programming with VFlib ********************** * Menu: * Data types:: * Functions and variables:: * Building an application software with VFlib:: * A simple example::  File: VFlib-36.info, Node: Data types, Next: Functions and variables, Up: Programming with VFlib Data types ========== * Menu: * bitmap type:: * metric1 type:: * metric2 type:: * outline type::  File: VFlib-36.info, Node: bitmap type, Next: metric1 type, Up: Data types bitmap type ----------- A bitmap object is a structure of the following: struct vf_s_bitmap { int bbx_width, bbx_height; /* in pixels */ int off_x, off_y; /* in pixels */ int mv_x, mv_y; /* in pixels */ unsigned char* bitmap; int raster; }; typedef struct vf_s_bitmap* VF_BITMAP; `bbx_width' and `bbx_height' are the bitmap width and height. A pair of `off_x' and `off_y') forms a vector to the left-upper corner of the bitmap from the reference point. A pair of `mv_x' and `mv_y' is a vector to the next reference point from the current reference point. (Positive values indicate a move into the right and upper direction respectively.) The unit of `bbx_width', `bbx_height', `off_x', `off_y', `mv_x', and `mv_y' is pixels. `bitmap' is a pointer to the bitmap data; one pixel corresponds to one bit. The left upper corner is the beginning of the bitmap data, and a raster line is defined as a horizontal line from the left to the right corner of the glyph bitmap. `bitmap' is a sequence of raster lines starting from the top to the bottom. The distance (in bytes) of two consecutive raster lines in memory is given by `raster'. Although the raster line length of a bitmap is (`bbx_width'+7)/8, it is not guaranteed that this value is the same as `raster'. The type of `bitmap' is a pointer to `unsigned char' data object, and each `unsigned char' data object contains eight pixels. Let `P[0]' be the start address of a raster line. The `x'-th pixel counted from the leftmost pixel (which is pixel 0) is 1 if and only if `P[x/8] & (0x80>>(x%8))' is non-zero. If `bbx_width' is not a multiple of 8, there exist bits that do not correspond to any pixels but their values are always zero. Even if `bbx_width' and/or `bbx_height' are zero, at least one byte is allocated for the bitmap data. Thus, `bitmap' is always non-NULL.  File: VFlib-36.info, Node: metric1 type, Next: metric2 type, Prev: bitmap type, Up: Data types metric1 type ------------ A metric1 object is a structure of the following: struct vf_s_metric1 { double bbx_width, bbx_height; /* in points */ double off_x, off_y; /* in points */ double mv_x, mv_y; /* in points */ }; typedef struct vf_s_metric1* VF_METRIC1; The members of this structure are the same as the members of a bitmap object but the members' unit is point.  File: VFlib-36.info, Node: metric2 type, Next: outline type, Prev: metric1 type, Up: Data types metric2 type ------------ A metric2 object is a structure of the following: struct vf_s_metric2 { int bbx_width, bbx_height; /* in pixels */ int off_x, off_y; /* in pixels */ int mv_x, mv_y; /* in pixels */ }; typedef struct vf_s_metric2* VF_METRIC2; The members of this structure are the same as the members of a bitmap object, and the members' unit is pixel also.  File: VFlib-36.info, Node: outline type, Prev: metric2 type, Up: Data types outline type ------------ VFlib defines its private outline data formats for presenting vector data of characters. This data format is used by VFlib API functions `VF_GetOutline()' and `VF_OutlineToBitmap()'. Each font driver returns a outline data of a character of a font if a font driver of that font supports `VF_GetOutline()' function. Even if data format of a font is different from VFlib-format, a font driver converts outline data to VFlib-format data. For instance, the PCF font driver (note that PCF is a bitmap font format) supports `VF_GetOutline()' function and it constructs and return an outline data which is a set of square; each square corresponds to a pixel of a bitmap. Note that not all font drivers support `VF_GetOutline()' function, but most of them do. The developer of font drivers are strongly recommented to implement this feature even if the font font format is bitmap-based. (The function is supported by BDF, PCF, HBF, PK, GF, TFM, Zeit, JG, TrueType, and Type 1 font drivers.) Outline data is defined as follows: /* Outline data */ typedef long VF_OUTLINE_ELEM; typedef VF_OUTLINE_ELEM *VF_OUTLINE; According to CPU architecture, `VF_OUTLINE_ELEM' is defined as `int' if size of `long' is 8. typedef long VF_OUTLINE_ELEM; Outline data is an array of VF_OUTLINE_ELEM type (`long' or `int' type). Outline data consists from two parts: header and outline. The header part contains metric data and outline part contains outline representation of a character. Documentation for this feature is not finished. See the source code (e.g., `VFlib-3_6.h', `raster.c', `bm2ol', for example) for further information.  vflib3-3.6.14.dfsg/doc/VFlib-36.tocs0000644000175000017500000000542307305075546016172 0ustar mohuramohura\initial {\} \primary {2} \secondary {3}{5} \secondary {6}{5} \secondary {16}{5} \secondary {20}{5, 5} \secondary {27}{5} \secondary {28}{5} \secondary {29}{5} \secondary {7}{5} \secondary {8}{5} \secondary {13}{5} \secondary {14}{5} \secondary {9}{5} \secondary {10}{5} \secondary {11}{5} \secondary {15}{5} \secondary {25}{5} \secondary {26}{5} \secondary {24}{5} \secondary {21}{5} \secondary {22}{5} \secondary {23}{5} \secondary {1}{5} \secondary {30}{5} \secondary {17}{5} \secondary {4}{5} \secondary {5}{5} \secondary {12}{5} \secondary {18}{5} \secondary {19}{5} \primary {18} \secondary {52}{6} \initial {A} \primary {4} \secondary {30}{5, 103, 10} \primary {23} \secondary {59}{6} \initial {B} \primary {10} \secondary {40}{6} \secondary {1}{5} \primary {3} \secondary {30}{5} \initial {C} \entry {77}{8} \primary {5} \secondary {3}{10} \primary {6} \secondary {38}{6, 105} \entry {3}{2} \entry {1}{1} \primary {5} \secondary {94}{10, 107} \initial {D} \primary {1} \secondary {17}{5} \entry {75}{7} \entry {101}{11} \initial {E} \primary {17} \secondary {50}{6} \primary {4} \secondary {79}{8} \primary {5} \secondary {80}{8} \primary {27} \secondary {63}{6} \primary {28} \secondary {69}{6} \primary {29} \secondary {73}{6} \primary {7} \secondary {38}{6} \initial {F} \primary {5} \secondary {37}{6, 109} \primary {2} \secondary {18}{5} \initial {G} \primary {20} \secondary {57}{6, 4} \initial {H} \primary {12} \secondary {42}{6} \secondary {77}{8} \initial {I} \entry {13}{4} \entry {11}{3} \secondary {3}{10} \secondary {35}{6} \initial {J} \primary {24} \secondary {61}{6} \primary {16} \secondary {50}{6} \initial {M} \primary {3} \secondary {36}{6} \primary {5} \secondary {2}{10} \primary {1} \secondary {2}{5} \secondary {3}{5} \primary {26} \secondary {62}{6} \initial {O} \primary {1} \secondary {4}{5} \initial {P} \primary {11} \secondary {42}{6} \primary {19} \secondary {56}{6, 3, 111} \entry {17}{5} \secondary {3}{10} \initial {R} \primary {5} \secondary {1}{10} \initial {S} \entry {87}{10} \primary {4} \secondary {37}{6} \primary {2} \secondary {35}{6} \initial {T} \primary {21} \secondary {57}{6} \secondary {78}{8} \primary {1} \secondary {3}{10, 10} \primary {3} \secondary {78}{8} \primary {5} \secondary {4}{10} \primary {13} \secondary {42}{6} \primary {25} \secondary {62}{6} \primary {14} \secondary {46}{6} \secondary {1}{10} \secondary {2}{10} \initial {U} \entry {83}{9} \secondary {38}{6} \initial {V} \primary {22} \secondary {58}{6} \primary {4} \secondary {93}{10} \secondary {86}{9} \primary {9} \secondary {38}{6} \primary {1} \secondary {83}{9} \primary {3} \secondary {85}{9} \primary {2} \secondary {85}{9} \primary {1} \secondary {87}{10} \primary {2} \secondary {91}{10} \primary {3} \secondary {92}{10} \initial {W} \entry {35}{6} \initial {Z} \primary {15} \secondary {48}{6} vflib3-3.6.14.dfsg/doc/VFlib-36.kys0000644000175000017500000000000010400435027015772 0ustar mohuramohuravflib3-3.6.14.dfsg/doc/VFlib-36.info-20000644000175000017500000015416710400435026016305 0ustar mohuramohuraInfo file: VFlib-36.info, -*-Text-*- produced by `texinfo-format-buffer' from file `VFlib-36.texi' using `texinfmt.el' version 2.38 of 3 July 1998.  File: VFlib-36.info, Node: Functions and variables, Next: Building an application software with VFlib, Prev: Data types, Up: Programming with VFlib Functions and variables ======================= * Menu: Initialization * VF_Init():: Errors * vf_error:: * VF_ClearError():: Font open and close * VF_OpenFont1():: * VF_OpenFont2():: * VF_CloseFont():: Bitmaps and metrics * VF_GetBitmap1():: * VF_GetBitmap2():: * VF_GetMetric1():: * VF_GetMetric2():: Outline * VF_GetOutline():: * VF_OutlineToBitmap():: Font information * VF_GetFontBoundingBox1():: * VF_GetFontBoundingBox2():: * VF_GetProp():: Bitmap operations * VF_CopyBitmap():: * VF_MakeScaledBitmap():: * VF_ReflectedBitmap():: * VF_RotatedBitmap():: * VF_DumpBitmap():: Writing a bitmap to file * VF_ImageOut_PBMAscii():: * VF_ImageOut_PGMAscii():: * VF_ImageOut_PGMRaw():: * VF_ImageOut_EPS():: * VF_ImageOut_ASCIIArt():: * VF_ImageOut_ASCIIArtV():: Releasing data objects * VF_FreeBitmap():: * VF_FreeMetric1():: * VF_FreeMetric2():: Installing a font driver * VF_InstallFontDriver()::  File: VFlib-36.info, Node: VF_Init(), Next: vf_error, Up: Functions and variables `VF_Init()' ----------- int VF_Init(char* VFLIBCAP, char* VARIABLE_LIST) Functionality Initialization of VFlib. Arguments VFLIBCAP is a file name of vflibcap (this file is a font database). If the null pointer is given, the default path name given on compile time is used (a typical default value is `/usr/local/lib/VFlib/3.6.14/vflibcap'). Searching of a vflibcap file is done in the following way. First, VFlib try to open a file as given to the first argument. (That is, VFlib searches it relative to current working directory.) If not found, then VFlib try to open the file under default runtime directory (e.g., `/usr/local/lib/VFlib/3.6.14/'). For example, `vflibcap-tex' is given, VFlib first look for `vflibcap-tex' in current directory, and then, it looks for the file under runtime directory. Default runtime directory can be changed by an environment variable `VFLIB_RUNTIME_DIRECTORY' on runtime. If an environment variable `VFLIB_VFLIBCAP_PATH' is set, the first argument of this function is ignored and its value is used. If an environment variable `VFLIB_VFLIBCAP_DIRECTORY' is set, a vflibcap file is searched under a directory sepecified by this environment variable. VARIABLE_LIST is a list of parameters passed to VFlib. This is used to specify values of parameterized vflibcap files. (See basic.txt for parameterized vflibcap file.) The type of this argument is a string and its syntax is a sequence of VARIABLE=VALUE, separated by a comma `,'. For example, `DPI=400, LEVEL=1, FOO=bar'. Return value If initialization succeeds, a non-negative integer is returned. If initialization fails, a negative integer is returned.  File: VFlib-36.info, Node: vf_error, Next: VF_ClearError(), Prev: VF_Init(), Up: Functions and variables `vf_error' ---------- int vf_error Functionality This is a global variable. Holding the error code of VFlib. If no error, it keeps 0. If an error occurs, the corresponding error code is set.  File: VFlib-36.info, Node: VF_ClearError(), Next: VF_OpenFont1(), Prev: vf_error, Up: Functions and variables `VF_ClearError()' ----------------- void VF_ClearError(void) Functionality Clear the error code variable of VFlib.  File: VFlib-36.info, Node: VF_OpenFont1(), Next: VF_OpenFont2(), Prev: VF_ClearError(), Up: Functions and variables `VF_OpenFont1()' ---------------- int VF_OpenFont1(char* FONT_NAME, double DPI_X, double DPI_Y, double POINT_SIZE, double MAG_X, double MAG_Y) Functionality Open a font. (If the same font is opened multiple times, VFlib keeps track of the number of opened font instances of the font.) Since the font is opened with device resolution, point size and magnification, a font opened by this function may be useful for high resolution devices such as laser printers. Arguments The argument FONT_NAME is a name of the font to be opened. The device resolution of the target device is specified by DPI_X (horizontal) DPI_Y (vertical). These values are given in DPI (dots per inch). The argument POINT_SIZE specifies the size of the bitmap. If this argument is negative the bitmap size will be the inherent size of the font. To obtain a magnified bitmap, give a magnification factor to the argument MAG_X (horizontal) and MAG_Y (vertical). If the argument POINT_SIZE is non-negative, font size will be POINT_SIZE times MAG_X (MAG_Y) large for horizontal (vertical) direction. Return Value A non-negative integer is returned on success. This value is a font identifier (font id); it is used to specify a font for further font operations. If `VF_OpenFont1()' fails, a negative integer is returned.  File: VFlib-36.info, Node: VF_OpenFont2(), Next: VF_CloseFont(), Prev: VF_OpenFont1(), Up: Functions and variables `VF_OpenFont2()' ---------------- int VF_OpenFont2(char* FONT_NAME, int PIXEL_SIZE, double MAG_X, double MAG_Y) Functionality Open a font. (If the same font is opened multiple times, VFlib keeps track of the number of opened font instances of the font.) Since the font is opened with pixel size and magnification, a font opened by this function may be useful for low resolution devices such as CRT display. Arguments The argument FONT is a name of the font to be opened. The argument PIXEL_SIZE specifies the size of the bitmap. If this argument is negative the bitmap size will be the inherent size of the font. To obtain a magnified bitmap, give a magnification factor to the argument MAG_X (horizontal) and MAG_Y (vertical). If the argument POINT_SIZE is non-negative, font size will be PIXEL_SIZE times MAG_X (MAG_Y) large for horizontal (vertical) direction. Return Value A non-negative integer is returned on success. This value is a font identifier (font id); it is used to specify a font for further font operations. If `VF_OpenFont2()' fails, a negative integer is returned.  File: VFlib-36.info, Node: VF_CloseFont(), Next: VF_GetBitmap1(), Prev: VF_OpenFont2(), Up: Functions and variables `VF_CloseFont()' ---------------- int VF_CloseFont(int FONT_ID) Functionality Close a font. Arguments The argument FONT_ID is a font id to be closed. Return Value A non-negative integer is returned on success. A negative integer is returned on failure.  File: VFlib-36.info, Node: VF_GetBitmap1(), Next: VF_GetBitmap2(), Prev: VF_CloseFont(), Up: Functions and variables `VF_GetBitmap1()' ----------------- VF_BITMAP VF_GetBitmap1(int FONT_ID, long CODE_POINT, double MAG_X, double MAG_Y) Functionality Obtain a glyph bitmap of given font id and code point. The font id FONT_ID must be an id by `VF_OpenFont1()'. Size of bitmap to be obtained can be specified by MAG_X and MAG_Y arguments. Arguments FONT_ID specifies the font; CODE_POINT specifies the code point of a character. To obtain a magnified bitmap, give a magnification factor to the argument MAG_X (horizontal) and MAG_Y (vertical). If a font is opened with magnification factor 2 and an bitmap is obtained by this function with magnification factor 2, then the size of yielding bitmap will be 4 times larger than the original size. Return Value The return value is a pointer to a newly allocated bitmap object. If it fails to obtain a bitmap, the null pointer is returned. If the bitmap object is no longer needed, it must be released by the function `VF_FreeBitmap()'. The font may not have the specified size; in such case, VFlib internally enlarges or shrinks the glyph to obtain a bitmap of the requested size.  File: VFlib-36.info, Node: VF_GetBitmap2(), Next: VF_GetMetric1(), Prev: VF_GetBitmap1(), Up: Functions and variables `VF_GetBitmap2()' ----------------- VF_BITMAP VF_GetBitmap2(int FONT_ID, long CODE_POINT, double MAG_X, double MAG_Y) Functionality Obtain a glyph bitmap of given font id and code point. The font id 'font_id' must be an id by `VF_OpenFont2()'. Size of bitmap to be obtained can be specified by PIXEL_SIZE, MAG_X and MAG_Y arguments. Arguments FONT_ID specifies the font; CODE_POINT specifies the code point of a character. To obtain a magnified bitmap, give a magnification factor to the argument MAG_X (horizontal) and MAG_Y (vertical). If a font is opened with magnification factor 2 and an bitmap is obtained by this function with magnification factor 2, then the size of yielding bitmap will be 4 times larger than the original size. Return Value The return value is a pointer to a newly allocated bitmap object. If it fails to obtain a bitmap, the null pointer is returned. If the bitmap object is no longer needed, it must be released by the function `VF_FreeBitmap()'. The font may not have the specified size; in such case, VFlib internally enlarges or shrinks the glyph to obtain a bitmap of the requested size.  File: VFlib-36.info, Node: VF_GetMetric1(), Next: VF_GetMetric2(), Prev: VF_GetBitmap2(), Up: Functions and variables `VF_GetMetric1()' ----------------- VF_METRIC1 VF_GetMetric1(int FONT_ID, long CODE_POINT, VF_METRIC1 METRIC1, double MAG_X, double MAG_Y) Functionality Obtain font metrics of a given font and code point. Arguments Same arguments as of `VF_GetBitmap1()'. Return Value A pointer to a metric1 object is returned. If an error occurs, the NULL pointer is returned. The obtained metric is a metric for a bitmap obtained by `VF_GetBitmap1()' with the same arguments, but the unit of the obtained metric is point. If the metric1 object is no longer needed it must be released by the function `VF_FreeMetric1()'.  File: VFlib-36.info, Node: VF_GetMetric2(), Next: VF_GetOutline(), Prev: VF_GetMetric1(), Up: Functions and variables `VF_GetMetric2()' ----------------- VF_METRIC2 VF_GetMetric2(int FONT_ID, long CODE_POINT, VF_METRIC2 METRIC2, double MAG_X, double MAG_Y) Functionality Obtain font metrics of a given font and code point. Arguments Same arguments as of `VF_GetBitmap2()'. Return Value A pointer to a metric2 object is returned. If an error occurs, the NULL pointer is returned. The obtained metric is a metric for a bitmap obtained by `VF_GetBitmap2()' with the same arguments, but the unit of the obtained metric is pixel. If the metric2 object is no longer needed, it must be released by the function `VF_FreeMetric2()'.  File: VFlib-36.info, Node: VF_GetOutline(), Next: VF_OutlineToBitmap(), Prev: VF_GetMetric2(), Up: Functions and variables `VF_GetOutline()' ----------------- VF_OUTLINE VF_GetOutline(int FONT_ID, long CODE_POINT, double MAG_X, double MAG_Y) Functionality Obtain outline data from a given font and code point. Arguments Same as `VF_GetBitmap1()'. Return Value Return value is a pointer to a newly allocated outline data object. If it fails to obtain a outline data, the NULL pointer is returned. Even if the original font is a bitmap, VFlib internally creates outline data from the bitmap. If the source font is a vector font, VFlib internally converts the data format to VFlib outline data style. A bitmap of any specified size can be obtained from outline data by the function `VF_Outline2Bitmap()'. (Default point size and device resolution is also kept in the outline data.)  File: VFlib-36.info, Node: VF_OutlineToBitmap(), Next: VF_GetFontBoundingBox1(), Prev: VF_GetOutline(), Up: Functions and variables `VF_OutlineToBitmap()' ---------------------- VF_OUTLINE VF_OutlineToBitmap(VF_OUTLINE OUTLINE, double DPI_X, double DPI_Y, double POINT_SIZE, double MAG_X, double MAG_Y) Functionality Obtain a bitmap from outline data. Arguments The argument OUTLINE is a pointer to an outline object to be rasterised. The arguments DPI_X, DPI_Y, POINT_SIZE, MAG_X and MAG_Y are the same as the corresponding arguments of `VF_GetBitmap1()'. The outline data contains information on device resolution and point size specified by `VF_GetOutline()'. (If not specified, default values are used. Thus, bitmaps with a default size can be obtained by giving -1 for the arguments). Return Value A pointer to a bitmap object is returned. The NULL pointer is returned on failure. If the bitmap object is no longer needed it must be released by the function `VF_FreeBitmap()'.  File: VFlib-36.info, Node: VF_GetFontBoundingBox1(), Next: VF_GetFontBoundingBox2(), Prev: VF_OutlineToBitmap(), Up: Functions and variables `VF_GetFontBoundingBox1()' -------------------------- int VF_GetFontBoundingBox1(int FONT_ID, double MAG_X, double MAG_Y, double* W, double* H, double* XOFF, double* YOFF) Functionality Obtain font bounding box information of a given font. Arguments The argument FONT_ID specify a font in interest. The function writes the bounding box information to the locations pointed by W, H, XOFF, and YOFF. W and H point to data objects for width and height of bounding box, respectively. XOFF and YOFF point to data objects for largest horizontal and vertical displacement of lower left corner of bounding box from reference points. Note that these values does not guarantee the minimality; they only guarantee that all characters can be contained in a box descrived by them. If some values of W, H, XOFF, or YOFF are not in interest, NULL pointer can be given. The argument MAG_X and MAG_Y are maginification factor to be scaled for a given font FONT_ID. Return Value If font bounding information is successfully obtained, a non-negative integer is returned; otherwize, negative integer is returned. Units of bounding box information is in point.  File: VFlib-36.info, Node: VF_GetFontBoundingBox2(), Next: VF_GetProp(), Prev: VF_GetFontBoundingBox1(), Up: Functions and variables `VF_GetFontBoundingBox2()' -------------------------- int VF_GetFontBoundingBox2(int FONT_ID, double MAG_X, double MAG_Y, int* W, int* H, int* XOFF, int* YOFF) Same as `VF_GetFontBoundingBox1()' except units of font bounding box parameters are pixel.  File: VFlib-36.info, Node: VF_GetProp(), Next: VF_CopyBitmap(), Prev: VF_GetFontBoundingBox2(), Up: Functions and variables `VF_GetProp()' -------------- char* VF_GetProp(int FONT_ID, char* PROP_NAME) Functionality Obtain a property of given font. (This function is font class dependent. You must be very careful to use it!) Arguments The argument FONT_ID specifies a font from which to obtain a property. PROPERTY_NAME specifies the property name. Return Value If the given property exists, its value is returned as a string. The string for the property value is newly allocated and must be released by FREE() if it is no longer needed. If the given property is undefined, the NULL pointer is returned.  File: VFlib-36.info, Node: VF_CopyBitmap(), Next: VF_MakeScaledBitmap(), Prev: VF_GetProp(), Up: Functions and variables `VF_CopyBitmap()' ----------------- VF_BITMAP VF_CopyBitmap(VF_BITMAP BM) Functionality Make a copy of a bitmap object. Arguments The argument BM is a pointer to a bitmap object to be copied. Return Value A new bitmap object is allocated; all values are copied. Return value is a pointer to a new bitmap. The source bitmap BM remains unaffected. If an error occurs, the NULL pointer is returned. The obtained bitmap object must be released by `VF_FreeBitmap()' if it is no longer needed.  File: VFlib-36.info, Node: VF_MakeScaledBitmap(), Next: VF_ReflectedBitmap(), Prev: VF_CopyBitmap(), Up: Functions and variables `VF_MakeScaledBitmap()' ----------------------- VF_BITMAP VF_MakeScaledBitmap(VF_BITMAP BM, double MAG_X, double MAG_Y) Functionality Make an enlarged or shrinked bitmap. Arguments The argument BM specifies the source bitmap object, MAG_X and MAG_Y give the magnification factor in the horizontal and vertical direction respectively. If the magnification factor is less than 1, a shrinked bitmap is obtained. Values for MAG_X and MAG_Y can be arbitrary such as (MAG_X > 1 and MAG_Y < 1) or (MAG_X < 1 and MAG_Y > 1). Return Value A bitmap object whose bitmap is enlarged or shrinked is created and a pointer to the new bitmap is returned. If an error occurs, the NULL pointer is returned. The source bitmap BM remains unaffected. Use `VF_FreeBitmap()' if the returned bitmap object is no longer necessary.  File: VFlib-36.info, Node: VF_ReflectedBitmap(), Next: VF_RotatedBitmap(), Prev: VF_MakeScaledBitmap(), Up: Functions and variables `VF_ReflectedBitmap()' ---------------------- VF_BITMAP VF_ReflectedBitmap(VF_BITMAP BM, int REFL_X, double REFL_Y) Functionality Make a bitmap with horizontally and/or vertically reflected image. Arguments The argument BM specifies the source bitmap object, REFL_X and REFL_Y specify the reflection, respectively. If REFL_X is non-zero, the image is holizontally reflected; if REFL_Y is non-zero, the image is vertically reflected. In case RELF_X and REFL_Y are both zero, the effect is the same as `VF_CopyBitmap()'. Return Value A new bitmap object is created and a pointer to the new bitmap is returned. If an error occurs, the NULL pointer is returned. Metrics of created bitmap is the same as that of the original bitmap. The source bitmap BM remains unaffected. Use `VF_FreeBitmap()' if the returned bitmap object is no longer necessary.  File: VFlib-36.info, Node: VF_RotatedBitmap(), Next: VF_DumpBitmap(), Prev: VF_ReflectedBitmap(), Up: Functions and variables `VF_RotatedBitmap()' -------------------- VF_BITMAP VF_RotatedBitmap(VF_BITMAP BM, int ANGLE) Functionality Make a bitmap image with rotated image. Arguments The argument BM specifies the source bitmap object, ANGLE gives rotation angle in degree. By the limitation of implementation, rotatin angle must be multiple of 90. The rotation angle ANGLE must be one of the following: `VF_BM_ROTATE_0' Rotation angle is zero. Thus, the effect is the same as `VF_CopyBitmap()'. `VF_BM_ROTATE_90' Rotation angle is 90 degree. `VF_BM_ROTATE_180' Rotation angle is 180 degree. `VF_BM_ROTATE_270' Rotation angle is 270 degree. Return Value A bitmap object whose bitmap is rotated is created and a pointer to the new bitmap is returned. If an error occurs, the NULL pointer is returned. The source bitmap BM remains unaffected. Use `VF_FreeBitmap()' if the bitmap object is no longer necessary. This function rotates a bitmap with the reference point as origin. The vector to the next reference point is also rotated. Therefore, position of the reference point and a vector to the next reference point of `VF_RotatedBitmap(BM, VF_BM_ROTATE_180)' and that of `VF_ReflectedBitmap(BM, 1, 1)' are different.  File: VFlib-36.info, Node: VF_DumpBitmap(), Next: VF_ImageOut_PBMAscii(), Prev: VF_RotatedBitmap(), Up: Functions and variables `VF_DumpBitmap()' ----------------- void VF_DumpBitmap(VF_BITMAP BM) Functionality Print a bitmap in ASCII-art-style to stdout. Arguments The argument BM specifies a bitmap to be displayed.  File: VFlib-36.info, Node: VF_ImageOut_PBMAscii(), Next: VF_ImageOut_PGMAscii(), Prev: VF_DumpBitmap(), Up: Functions and variables `VF_ImageOut_PBMAscii()' ------------------------ int VF_ImageOut_PBMAscii(VF_BITMAP BM, FILE *FP, int IMAGE_WIDTH, int IMAGE_HEIGHT, int POSITION_X, int POSITION_Y, int MARGIN_L, int MARGIN_R, int MARGIN_T, int MARGIN_B, int REVERSE, int SHRINK, char *PROG, char *TITLE) Functionality Print a bitmap BM in PBM ASCII format to a file stream FP. Arguments BM is a bitmap to be written to a file stream FP. Size of output image (in pixel) is specified by IMAGE_WIDTH and IMAGE_HEIGHT. If -1 is given for these arguments, the image size should be minimum to contain the bitmap BM. Arguments POSITION_X and POSITION_Y specifies the horizontal and vertical position of a source bitmap BM in an output image file, respectively. These parameters have effect when IMAGE_WIDTH and IMAGE_HEIGHT are specified. Possible values for POSITION_X is `VF_IMAGEOUT_POSITION_NONE' Same as `VF_IMAGEOUT_POSITION_LEFT'. `VF_IMAGEOUT_POSITION_CENTER' BM is centered in output image. `VF_IMAGEOUT_POSITION_LEFT' BM is flushed left in output image. `VF_IMAGEOUT_POSITION_RIGHT' BM is flushed righted in output image. Possible values for POSITION_Y is `VF_IMAGEOUT_POSITION_NONE' Same as `VF_IMAGEOUT_POSITION_TOP'. `VF_IMAGEOUT_POSITION_CENTER' BM is centered in output image. `VF_IMAGEOUT_POSITION_TOP' BM is placed at the top in output image. `VF_IMAGEOUT_POSITION_BOTTOM' BM is placed at the bottom in output image. Arguments MARGIN_L, int MARGIN_R are used to speficy left and right margins, respectively. Arguments MARGIN_T, int MARGIN_B are used to speficy top and bottom margins, respectively. If the argument REVERSE is not 0, black and white in an output image is reversed. Argument SHRINK specifys shrink factor of image BM. (If this value is 1, BM is not shrinked. Note: Currently, shrinking image is not supported in PBM ASCII format.) Arguments PROG and TITLE are used to emmbed program name and title in an image file.  File: VFlib-36.info, Node: VF_ImageOut_PGMAscii(), Next: VF_ImageOut_PGMRaw(), Prev: VF_ImageOut_PBMAscii(), Up: Functions and variables `VF_ImageOut_PGMAscii()' ------------------------ int VF_ImageOut_PGMAscii(VF_BITMAP BM, FILE *FP, int IMAGE_WIDTH, int IMAGE_HEIGHT, int POSITION_X, int POSITION_Y, int MARGIN_L, int MARGIN_R, int MARGIN_T, int MARGIN_B, int REVERSE, int SHRINK, char *PROG, char *TITLE) Functionality Print a bitmap BM in PGM ASCII format to a file stream FP. Arguments Arguments are the same as that of `VF_ImageOut_PGMAscii()'. If SHRINK is greater than 1, output image is anti-aliased (gray-scaled).  File: VFlib-36.info, Node: VF_ImageOut_PGMRaw(), Next: VF_ImageOut_EPS(), Prev: VF_ImageOut_PGMAscii(), Up: Functions and variables `VF_ImageOut_PGMRaw()' ---------------------- int VF_ImageOut_PGMRaw(VF_BITMAP BM, FILE *FP, int IMAGE_WIDTH, int IMAGE_HEIGHT, int POSITION_X, int POSITION_Y, int MARGIN_L, int MARGIN_R, int MARGIN_T, int MARGIN_B, int REVERSE, int SHRINK, char *PROG, char *TITLE) Functionality Print a bitmap BM in PGM Raw format to a file stream FP. Arguments Arguments are the same as that of `VF_ImageOut_PGMAscii()'. If SHRINK is greater than 1, output image is anti-aliased (gray-scaled).  File: VFlib-36.info, Node: VF_ImageOut_EPS(), Next: VF_ImageOut_ASCIIArt(), Prev: VF_ImageOut_PGMRaw(), Up: Functions and variables `VF_ImageOut_EPS()' ------------------- int VF_ImageOut_EPS(VF_BITMAP BM, FILE *FP, int IMAGE_WIDTH, int IMAGE_HEIGHT, int POSITION_X, int POSITION_Y, int MARGIN_L, int MARGIN_R, int MARGIN_T, int MARGIN_B, int REVERSE, int SHRINK, char *PROG, char *TITLE, double PTSIZE, int PIXSIZE) Functionality Print a bitmap BM in EPS (Encapsulated PostScript) format to a file stream FP. Arguments Arguments are the same as that of `VF_ImageOut_PGMAscii()'. If SHRINK is greater than 1, output image is anti-aliased (gray-scaled). Arguments PTSIZE and PIXSIZE specify size of EPS bounding box; PIXSIZE pixels occupy PTSIZE points in physical paper.  File: VFlib-36.info, Node: VF_ImageOut_ASCIIArt(), Next: VF_ImageOut_ASCIIArtV(), Prev: VF_ImageOut_EPS(), Up: Functions and variables `VF_ImageOut_ASCIIArt()' ------------------------ int VF_ImageOut_ASCIIArt(VF_BITMAP BM, FILE *FP, int IMAGE_WIDTH, int IMAGE_HEIGHT, int POSITION_X, int POSITION_Y, int MARGIN_L, int MARGIN_R, int MARGIN_T, int MARGIN_B, int REVERSE, int SHRINK) Functionality Print a bitmap BM in ASCII art format to a file stream FP. Arguments Arguments are the same as that of `VF_ImageOut_PGMAscii()'.  File: VFlib-36.info, Node: VF_ImageOut_ASCIIArtV(), Next: VF_FreeBitmap(), Prev: VF_ImageOut_ASCIIArt(), Up: Functions and variables `VF_ImageOut_ASCIIArtV()' ------------------------- int VF_ImageOut_ASCIIArtV(VF_BITMAP BM, FILE *FP, int IMAGE_WIDTH, int IMAGE_HEIGHT, int POSITION_X, int POSITION_Y, int MARGIN_L, int MARGIN_R, int MARGIN_T, int MARGIN_B, int REVERSE, int SHRINK) Functionality Print a bitmap BM in ASCII art format to a file stream FP. Image is rotated in clockwise, 90 degree. Arguments Arguments are the same as that of `VF_ImageOut_PGMAscii()'.  File: VFlib-36.info, Node: VF_FreeBitmap(), Next: VF_FreeMetric1(), Prev: VF_ImageOut_ASCIIArtV(), Up: Functions and variables `VF_FreeBitmap()' ----------------- void VF_FreeBitmap(VF_BITMAP BM) Functionality Release a bitmap object. Arguments The argument BM is a pointer to a bitmap object to be released.  File: VFlib-36.info, Node: VF_FreeMetric1(), Next: VF_FreeMetric2(), Prev: VF_FreeBitmap(), Up: Functions and variables `VF_FreeMetric1()' ------------------ void VF_FreeMetric1(VF_METRIC1 METRIC) Functionality Release a metric1 object. Arguments The argument METRIC is a pointer to a metric1 object.  File: VFlib-36.info, Node: VF_FreeMetric2(), Next: VF_InstallFontDriver(), Prev: VF_FreeMetric1(), Up: Functions and variables `VF_FreeMetric2()' ------------------ void VF_FreeMetric2(VF_METRIC2 METRIC) Functionality Release a metric2 object. Arguments The argument METRIC is a pointer to a metric2 object.  File: VFlib-36.info, Node: VF_InstallFontDriver(), Prev: VF_FreeMetric2(), Up: Functions and variables `VF_InstallFontDriver()' ------------------------ int VF_InstallFontDriver(char* CLASS_NAME, int(*driver)(VF_FONT FONT, char* CLASS_NAME, char* FONT_NAME, int IMPLICIT_FLAG)); Functionality Install a font driver. Arguments CLASS_NAME is a font class name, DRIVER is a pointer to a function of a font driver of the font class. The function given by DRIVER is called when a font of this font class is opened by `VF_OpenFont1()' and `VF_OpenFont2()'. The function DRIVER is called with parameters of the font to be opened: FONT is a data object for font management defined by VFlib internally. CLASS_NAME is the font class name. FONT_NAME is the name of the font to be opened. This argument is the same as the argument of `VF_OpenFont1()' and `VF_OpenFont2()'. IMPLICIT_FONT is a flag whose value is 1 if a font is to be opened as an implicit font (a font which does not explicitly appear in vflibcap) and 0 if it is to be opened as an explicit font (a font that does appear in vflibcap). Return Value If successful, a non-negative integer is returned. A negative integer is returned if the installation of the font driver fails.  File: VFlib-36.info, Node: Building an application software with VFlib, Next: A simple example, Prev: Functions and variables, Up: Programming with VFlib Building an application software with VFlib =========================================== An application software that use VFlib must include a header file `VFlib-3_6.h'. Typically, this file is installed `/usr/local/include/' directory. Never forget, that application software that uses VFlib must be linked against FreeType 1.2 or later (`libttf.a' or `libttf.so'), T1Lib 5.1 or later (`libt1.a' or `libt1.so'), and kpathsea 3.2 (`libkpathsea.a' or `libkpathsea.so'), if you configure VFlib to use them. (If VFlib is configured not to use them, they are not necessary.) I recommend shared library versions for these optional libraries if you built a shared library version of VFlib. #include VFlib must be initialized before it is used. char* vflibcap = "vflibcap"; char* params = "TeX_DPI=300, KPATHSEA_MODE=cx"; if (VF_Init(vflibcap, params) < 0){ fprintf(stderr, "Initializing VFlib: failed\n"); exit(1); } Following program fragment opens a font, obtains a bitmap, and print obtained bitmap. int fid; VF_BITMAP bm; if ((fid = VF_OpenFont2("timR24.pcf", -1, 1.0, 1.0)) < 0){ fprintf(stderr, "Opening font: failed\n"); exit(1); } bm = VF_GetBitmap2(fid, 0x67, 1.0, 1.0); VF_DumpBitmap(bm);  File: VFlib-36.info, Node: A simple example, Prev: Building an application software with VFlib, Up: Programming with VFlib A simple example ================ The following program code is a "banner" like using VFlib. For simplicity, this program accepts only 1-byte encoded characters. It reads an input from standard input and prints characters in ascii-art form to standard output. /* * vflbanner.c - a banner by VFlib * by Hirotsugu Kakugawa * * */ /* * Copyright (C) 1998 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include #include #include #include "VFlib-3_6.h" #define DEFAULT_FONT "timR18.pcf" char *vflibcap; char *fontname; void usage(void); void vflbanner(FILE *fp); int main(int argc, char **argv) { vflibcap = NULL; fontname = DEFAULT_FONT; --argc; argv++; while (argc > 0){ if ((argc >= 1) && ((strcmp(argv[0], "-h") == 0) || (strcmp(argv[0], "--help") == 0))){ usage(); exit(0); } else if ((argc >= 2) && (strcmp(argv[0], "-v") == 0)){ --argc; argv++; vflibcap = argv[0]; --argc; argv++; } else if ((argc >= 2) && (strcmp(argv[0], "-f") == 0)){ --argc; argv++; fontname = argv[0]; --argc; argv++; } else { break; } } vflbanner(stdin); return 0; } void usage(void) { printf("vflbanner - a banner program using VFlib\n"); printf("Usage: vflbanner [-v vflibcap] [-f fontname]\n"); printf("This program reads a text from standard input. It supports\n"); printf("1-bit encoded font only. Thus, `ctextpgm' is better than this.\n"); } void vflbanner(FILE *fp) { int fid; int ch; int pos_x, pos_y; VF_BITMAP bm, page_bm; struct vf_s_bitmaplist PageBuff; if (VF_Init(vflibcap, NULL) < 0){ printf("VFlib initialization error"); switch (vf_error){ case VF_ERR_INTERNAL: printf(" - Internal error.\n"); break; case VF_ERR_NO_MEMORY: printf(" - Server runs out of memory.\n"); break; case VF_ERR_NO_VFLIBCAP: printf(" - No vflibcap.\n"); break; default: printf(" - Error code %d\n", vf_error); break; } fflush(stdout); exit(1); } if ((fid = VF_OpenFont1(fontname, -1, -1, -1, 1, 1)) < 0) return; VF_BitmapListInit(&PageBuff); pos_x = pos_y = 0; while ((ch = getc(fp)) != EOF){ if (!isprint(ch)) ch = ' '; if ((bm = VF_GetBitmap1(fid, (long)ch, 1, 1)) == NULL) continue; VF_BitmapListPut(&PageBuff, bm, pos_x, pos_y); pos_x = pos_x + bm->mv_x; } page_bm = VF_BitmapListCompose(&PageBuff); VF_DumpBitmap(page_bm); VF_BitmapListFinish(&PageBuff); VF_FreeBitmap(page_bm); VF_CloseFont(fid); } /*EOF*/ By the following commands is used to comple the program. % gcc -c `VFlib3-config --cflags` vflbanner.c % gcc -o vflbanner vflbanner.o `VFlib3-config --libs` `VFlib3-config' is a program to print misc information on configuration of VFlib. It prints C compiler option to specify include directory (`--cflags'), dependent libraries (`--libs'), for example. Run `VFlib3-config' with `--help' option for detail.  File: VFlib-36.info, Node: Writing a vflibcap, Next: Debugging a vflibcap, Prev: Programming with VFlib, Up: Top Writing a vflibcap ****************** * Menu: Introduction * Introduction to vflibcap:: * Syntax of vflibcap:: * Macros in vflibcap:: * Searching font files:: * Fast font file search:: * Compressed font files:: * Explicit and implicit fonts:: * Variables in vflibcap:: Global definitions * VFlib defaults:: Font drivers * BDF font class:: * PCF font class:: * HBF font class:: * TrueType font class:: * Type1 font class:: * Zeit font class:: * JG font class:: * eKanji font class:: * TeX default and TeX font mapping font class:: * PK font class:: * GF font class:: * TFM font class:: * VF font class:: Font drivers that map to another fonts * ASCII Japanese TeX Kanji font class:: * Japanese comic font class:: * Try font class:: * Mojikyo font mapping class:: Examples of vflibcaps * Example vflibcap 1:: * Example vflibcap 2:: * Example vflibcap 3::  File: VFlib-36.info, Node: Introduction to vflibcap, Next: Syntax of vflibcap, Up: Writing a vflibcap Introduction to vflibcap ======================== A vflibcap file is a database of font definitions for the VFlib library. A vflibcap font definition is described in a format similar to termcap and printcap. Vflibcap provides logical font names and logical font names may not corresponds to font files to be accessed. In this document, we simply say "font" to denote logical fonts. Each VFlib fonts have its own parameters listed below: * Pixel size, * Point size, and * Resolution of target device. These parameters may not be available in font file. For instance, these parameters are lacking in TrueType fonts. Lacking information is given in vflibcap file, or it is given by a font driver as default values. Note: If you want to use VFlib for TeX DVI drivers, such as previewers and pronter driver, use `vflmkcaptex' program to generate vflibcap file automatically.  File: VFlib-36.info, Node: Syntax of vflibcap, Next: Macros in vflibcap, Prev: Introduction to vflibcap, Up: Writing a vflibcap Syntax of vflibcap ================== The syntax of vflibcap file is lisp-like form. A semicolon `;' starts a comment and following text is ignored until the end of line. A colon in a string which is enclosed by double colons is not considered as a comment character and forms a part of string. In the following explanation, we ignore comments. A vflibcap file is a sequence of expressions called s-expressions. Basic data item of s-expression is string. Unlike lisp, there is no "number" type. A sequence of digits is parsed as a string. To include a special characters in a string such as double quotation, control code, and parenthesis, escape sequence can be used. String is a sequence of characters of the following form: String Form 1: Sequence of characters enclosed by double quotations. Examples: "hello world" "a, b, c, d" "He said \"Thanks!\"." "a*(b+c)" String Form 2: Sequence of characters except space, tab, newline, and closing parenthesis. A start character must not be a double quotation. Examples: font-file hello\ world He\ said\ \"Thanks!\". a*\(b+c\) Unlink lisp, there is no distinction between string and symbol in vflibcap; they are the same data type. That is, `HELLO' and `"HELLO"' are the same. Parentheses is used to form a "list" like in lisp. For example, `(A B C)' is a list of three strings. List can be nested any depth, e.g., `(A (B1 B2 B3) (C1 (C21 C22) C3))'. A vflibcap must be a sequence of s-expression of the following forms: `(define-default FONT-CLASS CAPABILITY-DEF ... )' This expression defines a default values for a font class. `(define-font NAME CAPABILITY-DEF ... )' This expression defines a font. `(define-macro NAME CAPABILITY-DEF ... )' This expression defines a macro NAME. CAPABILITY-DEF must be a list of form `(CAPABILITY-NAME VALUE)', e.g., `(font-file "/usr/local/share/fonts/"'. Each font class defines its own set of capabilities and capability sets can be different by font classes. This is an example of vflibcap file. ;; vflibcap (define-default VFlib (extension-hints (".bdf" bdf) (".pcf" pcf)) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd") ("pk" ascii-jtex-kanji)) (implicit-font-classes bdf pcf hbf ascii-jtex-kanji) (variable-values ("TeX_DPI" "300")) (define-default bdf (filename-extensions ".bdf") (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/share/fonts/X11//") (compression-extensions ".gz" ".Z")) (define-font timR24 ; times roman 24 (font-class bdf) (font-file "timR24.bdf")) (define-font timR18 ; times roman 18 (font-class bdf) (font-file "timR18.bdf"))  File: VFlib-36.info, Node: Macros in vflibcap, Next: Searching font files, Prev: Syntax of vflibcap, Up: Writing a vflibcap Macros in vflibcap ================== To avoid writing the same capabilities, macro feature is provided in vflib. In case of CAPABILITY-DEF is a string, it is treated as a macro and a macro definition for it is expanded. For instance, (define-font timR18 MACRO-NAME (font-file "timR18.bdf")) is a font definition using a macro `MACRO-NAME'. Suppose a macro `MACRO-NAME' is defined as follows. (define-macro MACRO-NAME (font-class bdf) (dpi 300)) Then, the font definition for `timR24' is the same as follow. (define-font timR18 (font-class bdf) (dpi 300)) (font-file "timR18.bdf")) The rule of macr expand is as following procedure. 1. Looks for use of macros. From the first CAPABILITY-DEF to the last one, it is checked if it is a string (thus a macro) or not in order. If it is a macro, corresponding macro definition is substituted. Then, next CAPABILITY-DEF is checked. 2. Macro expand is done recursively. Thus, a macro can be used in another macro.  File: VFlib-36.info, Node: Searching font files, Next: Fast font file search, Prev: Macros in vflibcap, Up: Writing a vflibcap Searching font files ==================== Some font classes (e.g., BDF, PCF) defines a `font-directories' capability in vflibcap file. This capability specifies a list of font directories, for instance, `(font-directories "/usr/local/fonts/" "/opt/fonts" "/usr/local/share/fonts//")'. A font file can be searched recursively in a directory tree if a font directory name ends by double slashes `//'. Some font drivers support file search by kpathsea. Typically, font files are located under `/usr/local/share/texmf'. This directory is used to hold TeX-related files. If a font driver supports searching by kpathsea, a special name `TEXMF' can be given in a list of `font-directories' capability. For instance, suppose that `(font-directories "/opt1/fonts//" "TEXMF" "/opt2/fonts//")' is specified. Then files are searched under `/opt1/fonts', by kpathsea, and then `/opt2/fonts', in this order. Currently, pk, gf, tfm, vf, truetype, and type1 font classes suport searcing files by kpathsea.  File: VFlib-36.info, Node: Fast font file search, Next: Compressed font files, Prev: Searching font files, Up: Writing a vflibcap Fast font file search ===================== In case there are many font directories and sub-directory which contains many font file, searching a font file take long time, since font directories are traversed to find a requested font file. For fast font file search, font file hint database (FDB for short) can be used. It is placed in a root of a font directory, and it contains pairs of font file name and relative pathname of the font file from the font directory. The file name of FDB is `VFlib.fdb'. The following is an example of FDB file. times__m.pfb type1/t/times__m.pfb times__m.afm type1/t/times__m.afm zac_____.ttf ttf/z/zac_____.ttf zalescap.ttf ttf/z/zalescap.ttf Suppose that this FDB file is located in `/foo/bar/', for instance. The file tells us that there is a file `times__m.pfb' and absolute path name of the file is `/foo/bar/type1/t/times__m.pfb'. If FDB file is found in a root directory of font directory, the FDB file is opened to find a requested font file. If a requested font file is not found, other font directory is searched, i.e., the directory is not traversed at all. In case FDB file is not found, a font directory is traversed to find a requested font file. It is important to remember that you must not forget to update FDB file after you added new font files in a font directory. If you forget, installed font files are not found evenif they are in a font directory. To update a FDB file, run the utility program `vflmkfdb'. See *Note vflmkfdb::, for details of the program. A FDB file must be located in a root of a font directory and its name must be `VFlib.fdb'. Even if there is a FDB file in a sub-directory of a font directory, VFlib does not look for it.  File: VFlib-36.info, Node: Compressed font files, Next: Explicit and implicit fonts, Prev: Fast font file search, Up: Writing a vflibcap Compressed font files ===================== To reduce disk storage, compressed font files and uncompression on the fly is supported by some font class. Note that this feature is font class dependent and not all font class support this. In a vflibcap file, a font file name need not have a compressed type extension, such as `.gz'. When VFlib searches a font file, it internally adds compressed type extension and finds a file.  File: VFlib-36.info, Node: Explicit and implicit fonts, Next: Variables in vflibcap, Prev: Compressed font files, Up: Writing a vflibcap Explicit and implicit fonts =========================== Fonts explicitly defined in a vflibcap file are called *explicit fonts*. Fonts does not appear vflibcap file and searched by font drivers on demand are called *implicit fonts*.  File: VFlib-36.info, Node: Variables in vflibcap, Next: VFlib defaults, Prev: Explicit and implicit fonts, Up: Writing a vflibcap Variables in vflibcap ===================== In a vflibcap file, variables can be used as capability values. A capability value can be a value of a variable if a dollar sign (`$') followed by a variable name is given. For instance, `(dpi $TeX_DPI)' can be used instead of `(dpi 300)'. The value for a variable must be defined somewhere. Default value can be given in `(define-default VFlib ...)', which will be explained later. Default values can be overridden on initialization function of VFlib `VF_Init()', or Unix environment variables `VFLIBCAP_PARAM_VAR'. For example, `VFLIBCAP_PARAM_TeX_DPI' is defined, its value becomes the value of the vflibcap variable `TeX_DPI'. The value of an environment variable `VFLIBCAP_PARAM_VAR' is parsed as an S-expression, not as an string. Thus, if you want to specify a string `ABC 123', the value of an environment variablue must be `\"abc 123\"'. (Without double quotation, it will be a sequence of two strings. Only the first one is effective and the second one is ignored.)  File: VFlib-36.info, Node: VFlib defaults, Next: BDF font class, Prev: Variables in vflibcap, Up: Writing a vflibcap VFlib defaults ============== To specify global behavior of VFlib, (virtual) font class `VFlib' is defined. The following capability are defined. `implicit-font-classes' (optional) --- A list of implicit font classes. Font classes listed by this capability is candidates for implicit font searching. example: `(implicit-font-classes "bdf" "pcf" "gf")' `extension-hints' (optional) --- A list of paris of font name postfix and corresponding font class name. This is hint information to find font class from a font name in case of searching an implicit font. If an implicit font name matches with a postfix given by this capability, specified font class is invoked to search an implicit font. This is effective to reduce time to search an implicit font. example: `(extension-hints (".pcf" pcf) (".bdf" bdf) ("gf" gf))' `variable-values' (optional) --- A list of pairs of a name of vflibcap variable and its default value. example: `(variable-values ("TeX_DPI" "300") ("TeX_KPATHSEA_MODE" "cx") (v ("p1" "v1")' `uncompression-programs' (optional) --- A list of pairs of file name extension and corresponding uncompression program. This is used for reading compressed font files. An uncompression program must output uncompressed data to standard output. This capability is just defines relations of an extension and an uncompression program. A list of supported compressed types of a font class is given in a font class default description of each font class. example: `(uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")' `code-conversion-files' (optional) --- A list of file names for encoding conversion. Currently, TrueType font class uses this. See *Note Code conversion system::. example: `(code-conversion-files "iso8859-1_unicode.ccv".ccv")' `use-kpathsea' (optional) --- A flag whether kpathsea is used or not to search TeX font files. Value of this capability must be one of `"Yes"' or `"No"'. example: `(use-kpathsea "Yes")' `kpathsea-mode' (optional) --- A device mode name for kpathsea library. example: `(kpathsea-mode "cx")' `kpathsea-dpi' (optional) --- Device resolution (in dpi) of a device mode for kpathsea library. example: `(kpathsea-mode 300)' `kpathsea-program-name' (optional) --- An application program name for kpathsea library. example: `(kpathsea-mode "xgdvi")'  File: VFlib-36.info, Node: BDF font class, Next: PCF font class, Prev: VFlib defaults, Up: Writing a vflibcap BDF font class ============== The BDF format is a bitmap font format encoded in human-readable, platform independent format for distributing X Window fonts. This font class supports compressed font files and implicit fonts. Font class name: `bdf' Capabilities for font class default: `font-directories' (optional) --- A list of font directories for searching font files. Recursive searching of font files is support. `compression-extensions' (optional) --- A list of supported compression type for this font class. This font class supports only compression type given by this capability. When a font is searched, a file followed by a compression extension is searched if given font file is not found. (Note that `uncompression-programs' capability of VFlib class default description gives a uncompression programs.) example: `(compression-extensions ".gz" ".Z")' `dpi' (optional) --- Defualt device resolution. Default horizontal and vertical resolutions will be the same value. example: `(dpi 300)' `dpi-x' (optional) --- Default horizontal device resolution. example: `(dpi-x 300)' `dpi-y' (optional) --- Default vertical device resolution. example: `(dpi-y 300)' `aspect-ratio' (optional) --- Aspect ratio of characters. If this value is 0.5 then width is half, and if 2 then width is doubled. example: `(aspect-ratio 0.8)' `properties' (optional) --- A list of pairs of a property name and its value. Property values given by this parameter is used by `VF_GetProp()' example: `(properties ("PROP-1" "value-1") ("PROP-2" "value-2"))' `variable-values' (optional) --- A list of pairs of a vflibcap variable name and its default value. example: `(variable-values ("TeX_DPI" "300") ("TeX_KPATHSEA_MODE" "cx") ("TeX_KPATHSEA_PROGRAM" "/usr/X11R6/xldvi"))' Capabilities for font definition: `font-class' (essential) --- A font class name. This value must be `bdf'. `font-directories' (optional) --- A list of font directories for searching font files. Recursive searching of font files is support. A font file is searched in the directories given by this capability. If this capability is not given, the font directory specified by the class default is used to search fonts. If this capability is given, the font directory specified by the class default is not used to search fonts. `font-file' (optional) --- A font file name string. If this capability is not specified, the font name is used as the font file name. Multiple font file names can be listed in this capability. The driver tries to open a font listed first. If it is impossible to open, then it tries to open the second font. This is repeated until a font is successfully opened. If all fonts are impossible to open, font open fails. example: `(font-file "timI24.bdf" "timR24.bdf")' `point-size' (optional) --- font size in points. If the size is different from the size defined in the BDF font file, the bitmap is enlarged or shrinked to yield the specified size. This capability has effect for the VFlib functions `VF_GetBitmap1()' and `VF_GetMetric1()'. example: `(point-size 24.0)' `pixel-size' (optional) --- font size in pixels. If the size is different from the size defined in the BDF font file, the bitmap is enlarged or shrinked to yield the specified size. This capability has effect for the VFlib functions `VF_GetBitmap2()' and `VF_GetMetric2()'. example: `(pixel-size 24)' `magnification' (optional) --- magnification factor. The font is magnified by this factor. example: `(magnification 1.20)' `character-set' (optional) --- This is used for code point conversion. Value of this capability gives an external view of a character set of a font. Code conversion (ccv) is determined by this value and the following three capabilities. `encoding' (optional) --- This is used for code point conversion. Value of this capability gives an external view of an encoding of a font. `font-character-set' (optional) --- This is used for code point conversion. Value of this capability gives an internal view of a character set of a font. Therefore, this value must match the character set of the font file given by `font-file' capability. `font-encoding' (optional) --- This is used for code point conversion. Value of this capability gives an internal view of an encoding of a font. Therefore, this value must match the encoding of the font file given by `font-file' capability. The following example defines a font named `iso8859_5-font' with ISO-8859-5 encoding by using a KOI8-R encoded font file. (define-font iso8859_5-font (font-class pcf) (character-set "ISO8859-5") (encoding "ISO") (font-character-set "KOI8-R") (font-encoding "KOI8-R") (font-file "koi8x13.pcf")) Code conversion is done by a subsystem named CCV. See *Note Code conversion system:: for detail.  vflib3-3.6.14.dfsg/doc/VFlib-36.info-30000644000175000017500000017420410400435026016300 0ustar mohuramohuraInfo file: VFlib-36.info, -*-Text-*- produced by `texinfo-format-buffer' from file `VFlib-36.texi' using `texinfmt.el' version 2.38 of 3 July 1998.  File: VFlib-36.info, Node: PCF font class, Next: HBF font class, Prev: BDF font class, Up: Writing a vflibcap PCF font class ============== Font class name: `pcf' Other specification is the same as BDF font class except font class name is `pcf'.  File: VFlib-36.info, Node: HBF font class, Next: TrueType font class, Prev: PCF font class, Up: Writing a vflibcap HBF font class ============== Font class name: `hbf' Other specification is the same as BDF font class except font class name is `hbf'.  File: VFlib-36.info, Node: TrueType font class, Next: Type1 font class, Prev: HBF font class, Up: Writing a vflibcap TrueType font class =================== TrueType is a vector font font format. This font class supports implicit fonts but does not support compressed font files. TrueType font driver uses FreeType library version 1.2 developed by David Turner, Robert Wilhelm, and Werner Lemberg. See `http://www.freetype.org/' for detail. Font class name: `truetype' Capabilities for font class default: `font-directories' (optional) --- A list of font directories. This driver supports font file search by kpathsea. To search a font file by kpathsea, use `TEXMF' for a directory name. `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `dpi-x' (optional) `dpi-y' (optional) `aspect-ratio' (optional) `hinting' (optional) --- If the value of capability `on', "hinting" information is used to render characters. This is effective when small characters are rendered. If the value is `off', hinting is disabled. Hinting information is used by default. Note that enabling hinting has effect when obtaining bitmaps. It has no effect when you obtain and rasterize outline data in VFlib format, since VFlib outline format does not supports hinting information. `platform-id' (optional) --- A TrueType font can have multiple character code - glyph mapping tables. A mapping table is selected by specifying a pair of platform ID (`Microsoft', `Macintosh', etc) and encoding ID (`Unicode', `Shift-JIS', etc). This capability is used to specify platform ID of a mapping table to be selected. Value of this capability is one of strings below: `apple' Apple platform `macintosh', `mac' Macintosh platform `ascii', `iso' ISO platform `microsoft', `windows', `ms' Microsoft platform `any', `?', `*' Any platform Default value for this capability is Microsoft platform. example: `(platform-id "microsoft")' `encoding-id' (optional) --- Together with platform id, this capability is used to specify a mapping table. When ISO platform is selected by the `encoding-id' capability, value of this `encoding-id' capability is one of strings below: `ascii' ASCII encoding. `iso10464' ISO 10464 encoding. `iso8859-1' ISO8859-1 encoding. `any', `?', `*' Any encoding. When Apple platform is selected by the `encoding-id' capability, value of this `encoding-id' capability is one of strings below: `unicode1.1' Unicode 1.1 encoding. `unicode2.0' Unicode 2.0 encoding. `iso10464' ISO 10464 encoding. `any', `?', `*' Any encoding When Microsoft platform is selected by the `encoding-id' capability, value of this `encoding-id' capability is one of strings below: `symbol' `unicode' Unicode encoding. `shift-jis', `sjis', `ms-kanji' Shift JIS encoding. `big5' Big5 encoding. `rpc' `wansung' `johab' `any', `?', `*' Any encoding When Macintosh platform is selected by the `encoding-id' capability, value of this `encoding-id' capability is one of strings below: `roman' `japanese' `traditional-chinese' `korean' `arabic' `hebrew' `greek' `russian' `any', `?', `*' Any encoding example: `(encoding-id "any")' `properties' (optional) `variable-values' (optional) Capabilities for font definition: `font-class' (essential) This value must be "truetype". `font-directories' (optional) --- A list of font directories for searching font files. Recursive searching of font files is support. A font file is searched in the directories by this capability. If not found, then a font is searched in a directories given by the class default. To search a font file by kpathsea, use `TEXMF' for a directory name. `font-file' (optional) `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `dpi-x' (optional) `dpi-y' (optional) `magnification' (optional) `aspect-ratio' (optional) `hinting' (optional) `font-number' (optional) `encoding-force' (optional) --- In case encoding id data is broken in a TrueType font, its value can be overridden by this capability. example `(encoding-force "unicode")' `character-set' (optional) --- Together with `encoding' capability, this capability is used to change "external view" of a font. A font would be a font of a character set given by this capability and encoding given by `encoding' capability. Conversion of font internal character set and encoding to an external view is determined by these capability. Conversion is done by by code conversion system, called CCV. *Note Code conversion system:: Code conversion files are specified in `code-conversion-files' in `VFlib' font class default. See *Note VFlib defaults::. For example, a font of JIS X 0208 character set (a Japanese character set) in Shift-JIS encoding fonts can be accessed as a JIS encoding font. `encoding' (optional) --- Together with `character-set' capability, this capability defines a external view of a font. *Note Code conversion system:: `properties' (optional) `jisx0212-row47-empty-sjis' (optional) --- This capability is used for an ad-hoc solution to handle JIS X 0212 fonts with non-standard encoding such that row 47 is empty and followed rows are shifted by one. (That is, Kanjis in row 48 of JIS X 0212 appeard in row 49 in such fonts.) JIS X 0212 fonts of Ricoh TrueTypeWorld ValueFont DX are such fonts. If `yes' is given to this capability, buggy encoding is virtually fixed. This capability can apply to other products of buggy encoded JIS X 0212 fonts whose internal encoding is Shift JIS. (Use `ftdump' utility of FreeType package to check internal encoding scheme of fonts.)  File: VFlib-36.info, Node: Type1 font class, Next: Zeit font class, Prev: TrueType font class, Up: Writing a vflibcap Type1 font class ================ Type1 is a vector font font format used by PostScript. This font class supports implicit fonts but does not support compressed font files. This Type1 font driver uses T1Lib library version 5.1 or later developed by Rainer Menzner. See `http://www.neuroinformatik.ruhr-uni-bochum.de/ini/PEOPLE/rmz/t1lib/t1lib.html' for detail. Be careful, VFlib does not work with old T1Lib. Obtain and install T1Lib 5.1 or later. Currently, this font driver supports only 8-bit encoded fonts, i.e., it does not support for fonts of Japanese Kanji characters. The function `VF_GetOutline()' for Type1 font files is supported but the result is ugly. Since T1Lib does not have a function to obtain outline data of a character in Type1 font, this font driver creates an outline data from a bitmap (for compatibility). Thus, it is very ugly. If your application software requires outline data, you are recommended to use the same font in other font format, such as TrueType. Thus, the outline obtained `VF_GetOutline()' function for Type1 font should be used only when the same font in other font format is not available. Font class name: `type1' Capabilities for font class default: `font-directories' (optional) --- A list of directories of Type1 font files. This driver supports font file search by kpathsea. To search a font file by kpathsea, use `TEXMF' for a directory name. `afm-directories' (optional) --- A list of directories of AFM files. Each element of this capability should not be a directory for recursive search (ending by //). This is why AFM files are searched by inside of T1Lib, although Type1 font files are searched by a file search subsystem of VFlib. `encoding-vector-directories' (optional) --- A list of directories of encoding files. Each element of this capability should not be a directory for recursive search (ending by //). This is why encoding vector files are searched by inside of T1Lib. By default, directories `/usr/local/share/VFlib/X.Y.Z/t1lib/' and `/usr/local/share/VFlib/site/t1lib/' are registered. Optional directories can be installed by this capability. T1Lib adopts file format for encoding vector file. When we want to use encoding vector files supplied by `dvips', we must convert them into T1Lib format. To automate this, you can use a Unix Shell script `mkt1enc.sh' which is in `/usr/local/share/VFlib/X.Y.Z/t1lib/' directory. Encoding vector files for `dvips' are converted into T1Lib format and they are also installed in this directory. `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `dpi-x' (optional) `dpi-y' (optional) `aspect-ratio' (optional) `log-level' (optional) --- Select logfile output type of T1Lib. The filename of a logfile is `t1lib.log'. If this capability is not given, the logfile is not created. `error' Only error messages are written to the logfile. `warning' Warning messages and error messages are written to the logfile. `statistics' Statistics messages and above written to the logfile. `debug' Any messages useful for debugging and above are written to the logfile. `none' Never use a logfile. See users manual of T1Lib for detail. `properties' (optional) `variable-values' (optional) Capabilities for font definition: `font-class' (essential) This value must be "type1". `font-file' (optional) A list of font file names. Font file is searched in the listed order until existing font files is found. example: `(font-file "AvantGarde-Book" "a0100131.pfb")' By this example, `AvantGarde-Book' is seached first. If it exists, it is opened. Otherwise, `a0100131.pfb' is seached next. If it exists, it is opened. If it does not exist either, font open fails. `encoding-vector' (optional) A file name for encoding vector. This file must be reside in a directoy listed by `encoding-vector-directories' capability for type1 font class default. `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `dpi-x' (optional) `dpi-y' (optional) `magnification' (optional) `aspect-ratio' (optional) `slant-factor' (optional) --- Slant factor of a font. This value is tan(TH), where TH is slant angle of a font. Default value is 0, in case of TH is 90 degree. example: `(slant-factor 0.2)' `properties' (optional)  File: VFlib-36.info, Node: Zeit font class, Next: JG font class, Prev: Type1 font class, Up: Writing a vflibcap Zeit font class =============== This font class supports "Syotai Kurubu" format; it is a vector font format for Japanese Kanji characters. Several free Japanese fonts in this file format are available. * Umeda vector fonts - `ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/umeda-vector/mincho.vf1.gz' - `ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/umeda-vector/mincho.vf2.gz' - `ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/umeda-vector-font/mincho.vf1.gz' - `ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/umeda-vector-font/mincho.vf2.gz' * Watanabe vector fonts - `ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/watanabe-vector/mincho.vf1.gz' - `ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/watanabe-vector/mincho.vf2.gz' - `ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/watanabe-vector-font/mincho.vf1.gz' - `ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/watanabe-vector-font/mincho.vf2.gz' * Wadalab fonts - `ftp://ftp.web.ad.jp/pub/TeX/akiu/fonts/wadalab-vector/' - `ftp://ftp.eos.hokudai.ac.jp/pub/TeX/fonts/wadalab-vector-font/' - See also `ftp://ftp.ipl.t.u-tokyo.ac.jp/Font/' for Free Japanese Kanji fonts in Type 1 formats. This font class does not support compressed font files nor implicit fonts. Font class name: `zeit' Capabilities for font class default: `font-directories' (optional) `filename-extensions' (optional) --- Two file files form a font for this font class, e.g., `mincho.vf1' and `mincho.vf2'. Extension candidates without digit must be the value for this capability. example: `(filename-extensions ".vf" ".VF")' `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `dpi-x' (optional) `dpi-y' (optional) `aspect-ratio' (optional) `writing-direction' (optional) --- Default writing direction. `Horizontal' or `vertical'; default is `Horizontal'. This is the same as `(vector-to-bbx-upper-left 0.0 0.86)' and `(vector-to-next-ref-point 1.0 0.0)' if value of this capability is "horizontal". Otherwise, it is the same as `(vector-to-bbx-upper-left -0.5 0.0)' and `(vector-to-next-ref-point 0.0 -1.0)'. `vector-to-bbx-upper-left' (optional) --- Default value of a vector from the reference point of a character to upper-left bounding box. Right and up are positive directions. example: `(vector-to-bbx-upper-left 0 0.86)' `vector-to-next-ref-point' (optional) --- Default value of a vector from the reference point to next reference point. example: `(vector-to-next-ref-point 1.0 0.0)' `properties' (optional) `variable-values' (optional) Capabilities for font definition: `font-class' (essential) --- A font class name. `font-name' (optional) --- Font file name without extensions. Together with vale and extension given by default description, font file names are formed. For example, if `mincho' is given for the `font-name' capability and `(".vf")' is given for the `filename-extensions' capability, then font files `mincho.vf1' and `mincho.vf2' are used. example: `(font-name "mincho")' `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `dpi-x' (optional) `dpi-y' (optional) `magnification' (optional) `aspect-ratio' (optional) `writing-direction' (optional) `vector-to-bbx-upper-left' (optional) example: `(vector-to-bbx-upper-left 0 0.86)' `vector-to-next-ref-point' (optional) example: `(vector-to-next-ref-point 1.0 0.0)' `properties' (optional)  File: VFlib-36.info, Node: JG font class, Next: eKanji font class, Prev: Zeit font class, Up: Writing a vflibcap JG font class ============= JG font format is a vector font format for Japanese character sets JIS X 0208. JG font driver is based on the work by Hideo Morishita. Font class name: `jg' Capabilities for font class default: `filename-extensions' (optional) --- Three files form a font for this font class, e.g., `mincho.fn0', `mincho.fn1', and `mincho.fn2'. Extension candidates without digit must be the value for this capability. example: `(filename-extensions ".fn" ".FN")' (Other capabilities are the same as `zeit' font class.) Capability for font definition: Capabilities are the same as `zeit' font class.  File: VFlib-36.info, Node: eKanji font class, Next: TeX default and TeX font mapping font class, Prev: JG font class, Up: Writing a vflibcap eKanji font class ================= The eKanji font format is a bitmap font format for Kanji characters. The first character in an eKanji font file has code point 1, and the second character has code point 2. That is, characters in an eKanji font are numbered sequentially starting from 1. (This encoding scheme can be changed by setting some capabilities.) eKanji font files are distributed at the following URL: `http://www.zinbun.kyoto-u.ac.jp/~ekanji/' The distribution package contains the following font files. * Unicode (`ekan0010.d24') * Kyoto University KangXi (`ekan0020.d24') * Morohashi DaiKanwa (`ekan0030.d24') * JIS X 0208 (`jisx9052.d24') Font class name: `ekanji' Capabilities for font class default: `font-directories' (optional) `font-dot-size' (optional) --- Dot size of characters in the font file. Default value is 24. example: `(font-dot-size 24)' `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `dpi-x' (optional) `dpi-y' (optional) `aspect-ratio' (optional) `writing-direction' (optional) --- Default writing direction. `Horizontal' or `vertical'; default is `Horizontal'. This is the same as `(vector-to-bbx-upper-left 0.0 0.92)' and `(vector-to-next-ref-point 1.0 0.0)' if value of this capability is "Horizontal". Otherwise, it is the same as `(vector-to-bbx-upper-left -0.5 0.0)' and `(vector-to-next-ref-point 0.0 -1.0)'. `vector-to-bbx-upper-left' (optional) --- Default value of a vector from the reference point of a character to upper-left bounding box. Right and up are positive directions. example: `(vector-to-bbx-upper-left 0 0.90)' `vector-to-next-ref-point' (optional) --- Default value of a vector from the reference point to next reference point. example: `(vector-to-next-ref-point 1.0 0.0)' `properties' (optional) `variable-values' (optional) Capability for font definition: `font-class' (essential) --- A font class name. `font-name' (optional) --- Font file name with extension. `font-dot-size' (optional) --- Dot size of characters in the font file. `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `dpi-x' (optional) `dpi-y' (optional) `magnification' (optional) `aspect-ratio' (optional) `character-set' (optional) `encoding' (optional) `font-character-set' (optional) `font-encoding' (optional) --- Select code conversion. If you want to access a eKanji font by ISO-2022 (JIS) encoding scheme, define `eKanji' for `character-set', `ISO2022' for `encoding', `eKanji' for `font-character-set', and `SEQUENTIAL2-1' for `encoding'. Then the first character in the eKanji font is accessed by code point 0x2121. `mock-font-encoding' (optional) --- By this capability, encoding of an eKanji font file is virtually changed. This capability requires an argument and parameter. There are three keywords for an argument: * `raw' No effect, i.e., font encoding is not changed. * `subblocks-94x94' B An eKanji font file is virtually divided by 94x94 sub blocks (blocks of 94x94 = 8836 characters) and selects B-th block for this font definition. This implies that an eKanji font file with this capability offers only 8836 (= 94x94) characters among all the characters of an eKanji font file. The first sub block is numbered zero. (A font with B = 0 for this capability selects the first sub block.) Characters with character code from 8836*B+1 to 8836*B+8836 in an eKanji font file is accessed by character code from 0x2121 to 0x7e7e. * `subblocks-94x60' B This is similar to the case for `subblocks-94x60'. An eKanji font file is virtually divided by 94x60 sub blocks (blocks of 94x60 = 5640 characters) and selects B-th block for this font definition. The first sub block is numbered zero. Characters with character code from 5640*B+1 to 5640*B+5640 in an eKanji font file is accessed by character code from 0x3021 to 0x4e7e (first 30 rows) and from 0x5021 to 0x6e7e (another 30 rows). (This division scheme is the same as Mojikyo scheme.) * `with-offset' OFFS An offset value OFFS is added to obtain character code of a character in an eKanji font file. When OFFS is `-0x4dff', the first character in an eKanji font file is accessed by code number 0x4e00, since 0x4e00 + (-0x4dff) = 1. Theoretically, the same functionality shown above can be implemented within the CCV subsystem framework *Note Code conversion system::, the eKanji font driver defines this capability, since the eKanji font file format adopts curious character encoding scheme and it seems to be simpler and cleaner to define this capability. `writing-direction' (optional) `vector-to-bbx-upper-left' (optional) example: `(vector-to-bbx-upper-left 0 0.86)' `vector-to-next-ref-point' (optional) example: `(vector-to-next-ref-point 1.0 0.0)' `properties' (optional)  File: VFlib-36.info, Node: TeX default and TeX font mapping font class, Next: PK font class, Prev: eKanji font class, Up: Writing a vflibcap TeX default and TeX font mapping font class =========================================== This is a special font class to define common default values of TeX-related font classes. This font class has a feature to map a requested font to another font. Thus, this class is also called "TeX font mapping class" or "TeX font mapper". TeX-related font classes include the followings: GF, PK, TFM, VF, ASCII Japanese TeX. This font class supports only implicit fonts and explicit fonts is not supported. Therefore, the driver name of this font class must be given in `extension-hints' and/or `implicit-font-classes' capabilities in the `VFlib' default description if you want to use the font mapping feature of this class. Mapped font is recursively (recursively) requested to open and any operations such as obtaining bitmaps on the requested font are applied on the mapped font. Font class name: `TeX' Capabilities for font class default: `dpi' (optional) --- Default device resolution for TeX-related fonts. `tfm-directories' (optional) --- A list of directories of TFM files. Directories listed by this capability is used for searching TFM files. If a directory name is `TEXMF', kpathsea is invoked to search a file. example: `(tfm-directories "TEXMF" "/usr/local/share/font/tfm//")' `tfm-filename-extensions' (optional) --- A list of extensions of filenames for TFM files. This is used to construct a TFM file name, e.g., "cmr10.tfm" for a font "cmr10". example: `(tfm-filename-extensions "tfm")' `font-mapping' (optional) --- Font mapping rules are described in this capability. When a font is requested to open (as an implicit font), the font name is mapped to another name and specified font driver is requested to open the mapped font. Syntax of this capability is as follows: (font-mapping ((DRIVER-NAME MAPPING-FORMAT FONT-OPEN-OPTIONS) ... FONT-NAME FONT-NAME ...) ((DRIVER-NAME MAPPING-FORMAT FONT-OPEN-OPTIONS) ... FONT-NAME FONT-NAME ...) ...) Thus, value for this capability is a sequence of items `((DRIVER-NAME MAPPING-FORMAT FONT-OPEN-OPTIONS) ... FONT-NAME FONT-NAME ...)', and this forms a mapping rule. FONT-NAME is a font name and this rule applies if requested font name matches FONT-NAME. (FONT-NAME is a name without directory and extension parts. A font name requested to open is compared with FONT-NAME by deleting directory and extension parts.) If FONT-NAME contains `*' character, it matches to the rest of requested font name. For example, `cm*' matches `cmr10' and `cmbx10'. Thus, in case FONT-NAME is `*', all fonts matches and thus all fonts applies the rule. The font name is mapped according to the format MAPPING-FORMAT and mapped name is opened by calling a font driver DRIVER-NAME. `VF_OpenFont1()' and `VF_OpenFont2()' are not used. (As a special case, when DRIVER-NAME is `*', `VF_OpenFont1()' or `VF_OpenFont2()' is used to open a mapped font.) The syntax of MAPPING-FORMAT is similar to a format string of `printf()' function in C library, but conversion characters and semantics are different. Conversion specification is introduced by `%' character. Non-conversion characters are simply copied and conversion specifications are substituted for the following: `%%' `%' character `%f' the requested font name without extension and directory parts. `%d' font file resolution part in the extension of the requested font name `%e' file format part in the extension of the requested font name For instance, let `/foo/bar/qwe.300pk' is the requested font name. Then `%f' is `qwe', `%d' is `300', and `%e' is `pk'. A conversion specification will be null string if corresponding substring does not exist. In general, mapped fonts are opened with the same parameters (device resolution, magnification factors, point or pixel size) of the requested font. Such parameters can be changed by optional FONT-OPEN-OPTIONS part. Following descriptions can be used for FONT-OPEN-OPTIONS: We can specify multiple `(DRIVER-NAME MAPPING-FORMAT FONT-OPEN-OPTIONS)' in a rule description. This is useful if we need to write multiple mapping rules for the same set of fonts. A font is opened by the following way. 1. For each rule (from the first one to the last one), the requested font name is checked if the rule applies to the font. If the rule does not apply, check next rule. 2. For each (DRIVER-NAME MAPPING-FORMAT FONT-OPEN-OPTIONS) in the rule, the requested font is mapped and font open is attempted. If a mapped font is is successfully opened, it is used as a requested font. Otherwise, next mapping (DRIVER-NAME MAPPING-FORMAT FONT-OPEN-OPTIONS) is attempted. This is repeated for a mapped font is opened. 3. If mapped fonts are not opened, next rule is checked. This is repeated for all rules until a mapped font is opened. example: (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*") ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ((pk "%f.%dpk") (gf "%f.%dgf") (tfm "%f.tfm") *)) For this example, suppose that `min10.300pk' is requested to open. 1. The first rule applies to the requested font since `min*' is in the font list. The `ascii-jtex-kanji' driver is invoked to open a mapped name `min10.jtex'. If it is opened, font open succeeds; `min10.jtex' is used as `min10.300pk' and font open finishes. If the font is not opened, continue to the next step. 2. The second rule applies to the requested font since `*' is given in the font list. The `type1' driver is invoked to open a mapped name `min10.pfb'. If it is opened, `min10.jtex' is used as `min10.300pk' and font open finishes. If the font is not opened, continue to the next step. 3. The second rule applies to the reqiested font since `*' is given in the font list. 1. The `pk' driver is invoked to open a mapped name `min10.300pk'. If it is not opened, next mapping is attempted. 2. The `gf' driver is invoked to open a mapped name `min10.300gf'. If it is not opened, next mapping is attempted. 3. The `tfm' driver is invoked to open a mapped name `min10.tfm'. If everything above fails, font open for `cmr10.300pk' fails. * `point-size-from-tfm' (optional) --- When a mapped font is opened (in mode 1, high resolution oriented mode), point size which is obtained from a TFM file is given. This is necessary when we use TrueType and/or Type1 fonts for mapped fonts. For example, "cmr10.ttf" and "cmr10.pfb" in the BaKoMa font set do not have point size information, since TrueType and Type1 format fonts cannot have information on point size. * `(magnification-adjustment MAG)' (optional) --- Mapped fonts are opened with magnification factors magnified by MAG. This can be used to adjust size of mapped fonts. But most of the case, this is not necessary. As a restriction of fonts of this class, each font must have a TFM file. `resolution-accuracy' (optional) `resolution-corrections' (optional) --- According to arithmetic errors, DPI value for font files and computed value (= device resolution times magnification value) may be different. These two capabilities give correct resolution values for PK and GF fonts. Syntax of these capabilities are as follows: (resolution-accuracy ACCURACY) (resolution-corrections (DEVICE-RESOLUTION FONT-RESOLION FONT-RESOLION ... ) (DEVICE-RESOLUTION FONT-RESOLION FONT-RESOLION ... ) ...) DEVICE-RESOLUTION is the resolution of target device in DPI and FONT-RESOLUTION is a font resolution value. To find a font file, font resolution is computed by device resolution times magnification factor. Then, this driver finds a list `(DEVICE-RESOLUTION FONT-RESOLUTION FONT-RESOLUTION ... )' such that DEVICE-RESOLUTION is the same as resolution of target device. (If there is no such list is the capability value, font file resolution is not corrected and computed value is used.) For each FONT-RESOLUTION in the list, the driver checks if the computed font file resolution is in the range from FONT-RESOLUTION times (1-ACCURACY) to FONT-RESOLUTION times (1+ACCURACY). If the computed resolution is in the range, font file resolution is changed to FONT-RESOLUTION. Then, a font file is searched by the corrected font file resolution. example: (resolution-accuracy 0.02) (resolution-corrections (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) Be careful not to map to the same name! Otherwise, font open will be an infinite loop. (VFlib restricts the depth of nested font open. Even if the font name is mapped to the same name, VFlib will detects an error, anyway.) `properties' (optional) `variable-values' (optional)  File: VFlib-36.info, Node: PK font class, Next: GF font class, Prev: TeX default and TeX font mapping font class, Up: Writing a vflibcap PK font class ============= PK fonts are bitmap fonts used by TeX system. PK font driver provides a logical view of PK fonts when a font is requested to open as an implicit font; if a given font filename is `cmr10.pk', requested device resolution is 300 and magnification is 1.2, then PK font driver looks for a font file `cmr10.360pk'. Thus, font names (for font open) should not be the same as font filenames on filesystems. To search a font file, the kpathsea library can be used. A special name `TEXMF' in a list of font directories (capability `font-directories') is used to search a file by kpathsea. To enable kpathsea, the value for `use-kpathsea' capability in `VFlib' class default must be `"Yes"'. This font class supports compressed font files and implicit fonts. Font class name: `pk' Capabilities for font class default: `font-directories' (optional) --- A list of directory names for font files. This driver supports font file search by kpathsea. To search a font file by kpathsea, use `TEXMF' for a directory name. `filename-extensions' (optional) --- A list of extensions of filenames for PK fonts. This is used to construct a font file name "cmr10.300pk" from "cmr10.pk" for 300 dpi fonts. example: `(filename-extensions "pk")' `make-missing-glyph' (optional) --- Generate a PK font file from Metafont source file by running METAFONT on the fly, if a requested PK font file does not exist. example: `(make-missing-glyphs "yes")' `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `properties' (optional) `variable-values' (optional) Capabilities for font definition: `font-class' (essential) --- A font class name. `font-file' (optional) --- a font filename. An extension (e.g., `.300pk') can be omitted. In case of this capability is not given, font name is used as this capability value. `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `properties' (optional) `magnification' (optional)  File: VFlib-36.info, Node: GF font class, Next: TFM font class, Prev: PK font class, Up: Writing a vflibcap GF font class ============= Font class name: `gf' Other capabilities are the same as ones for `pk' font class.  File: VFlib-36.info, Node: TFM font class, Next: VF font class, Prev: GF font class, Up: Writing a vflibcap TFM font class ============== TFM files contains only metric information for typesetting TeX documents. This font class provides fonts whose metrics are defined by TFM font files. Since TFM files do not have glyph, glyph of a font of this font class are (black or white) rectangles. Fonts of this font class can be used as substitutes of PK, GF, or VF files in case they are missing. If the file is not found, it is searched by `font-directories' capability given in `TFM' font class default description. Note that the extension of font files (given by the `filename-extensions' capability) has no effect for searching by kpathsea library. The extension of font files must be ".tfm". See kpathsea manual for detail. This font class supports compressed font files and implicit fonts. Font class name: `tfm' Capabilities for font class default: `font-directories' (optional) --- A list of directory names for font files. This driver supports font file search by kpathsea. To search a font file by kpathsea, use `TEXMF' for a directory name. `filename-extensions' (optional) `glyph-style' (optional) --- Defines default glyph style: `empty' or `fill'. If `empty' is given, all glyph of a font are white rectangles. If `fill' is given, all glyph of a font are black rectangles. `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `properties' (optional) `variable-values' (optional) Capabilities for font definition: `font-class' (essential) -- A font class name. `font-file' (optional) `glyph-style' (optional) --- Defines glyph style: `empty' or `fill'. If `empty' is given, all glyph of a font are white rectangles. If `fill' is given, all glyph of a font are black rectangles. `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `magnification' (optional) `aspect-ratio' (optional) `properties' (optional)  File: VFlib-36.info, Node: VF font class, Next: ASCII Japanese TeX Kanji font class, Prev: TFM font class, Up: Writing a vflibcap VF font class ============= This font class handles Virtual Font files. A virtual font consists of a font program and subfonts. A font program in a vf file is similar to DVI file formats. Glyph of a virtual font are constructed from a box instruction in a font program and glyph taken from subfonts. Therefore, this font class requires a font mapping rule to obtain glyph from subfonts. You can specify VFlib not to open subfonts of a virtual font in case of subfonts are unavailable. Font class name: `vf' Capabilities for font class default: `font-directories' (optional) --- A list of directory names for font files. This driver supports font file search by kpathsea library. To search a font file by kpathsea library, use `TEXMF' for a directory name. `filename-extensions' (optional) --- A extension string for virtual font files. example: `(filename-extensions "vf")' `tfm-directories' (optional) `tfm-filename-extensions' (optional) `font-mapping' (optional) --- A set of rules for mapping for subfonts to open as an VFlib fonts. This is the same as TeX font mapper, i.e., `font-mapping' capability for `TeX' font class default description. Be careful not to map to the same name! Otherwise, font open will be an infinite loop. (VFlib restricts the depth of nested font open. Even if the font name is mapped to the same name, VFlib will detects an error, anyway.) `open-style' (optional) --- This capability specifies how subfonts are opened. `none' --- Boxes are used instead of glyph of subfonts. Subfonts are not opened. `try' --- The virtual font driver tries to open each subfont. If subfonts are opened, glyph are taken from opened subfonts. If some subfonts are not opened, boxes are used instead of glyph of such subfonts. It is not an error even if all subfonts are not opened. `require' --- The virtual font driver tries to open each subfont. It is an error if every subfont is not opened. `glyph-style' (optional) --- In case boxes are used instead of glyph of subfonts, this capability controls the looks of boxes. `empty' --- Boxes are white, i.e., all pixels are value 0. `fill' --- Boxes are black, i.e., all pixels are value 1. `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `properties' (optional) `variables' (optional) `debug' (optional) Capabilities for font definition: `font-file' (optional) --- File name of a virtual font. `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `magnification' (optional) `properties' (optional)  File: VFlib-36.info, Node: ASCII Japanese TeX Kanji font class, Next: Japanese comic font class, Prev: VF font class, Up: Writing a vflibcap ASCII Japanese TeX Kanji font class =================================== This is for Kanji fonts of Japanese TeX localized by ASCII Co. This font driver provides Kanji fonts that can be accessed as if they were PK fonts by using another VFlib font. Font metrics of Kanji characters defined by ASCII jTeX may not match that of a Kanji font to be used. This case happens when `jiskan24.pcf' font is used as a Japanese Kanji font for TeX. This font driver works as a *filter* that modifies font metrics of another font. Change of font metrics is defined by an external file called `adjustment file'. See sample distribution of adjustment files for their syntax. (Not documented now...) Font metrics of a font of this class is defined by a TFM font; a vector to the next reference point is taken from a TFM file. A vector to upper left corner of a bitmap is taken from subfont. Then, font metrics is modified according to an adjustment file. This driver supports vertical writing. In case fonts for vertical writing are not available, the driver rotates glyph of some characters, e,g, parenthesis, to yield (possible) correct glyph. Font class name: `ascii-jtex' Capabilities for font class default: `implicit-font-mapping-suffix' (optional) --- A suffix to map a font name for searching an implicit font. Suppose a font is requested to open. Then, font name is mapped in such a way that extension is deleted and the suffix given by this capability is added. Then, an vflibcap entry of the mapped name is searched. If such an entry exists, it is used for the implicit font and the font is opened as if it were an explicit font. (Note that a font of the mapped name must exist as an explicit font, not as an implicit font.) Suppose `min10.400pk' is requested to open as an implicit font and the value of this capability is `.jtex'. Then mapped name is `min10.jtex' and it is opened by this font driver internally. example: `(implicit-font-mapping-suffix ".jtex")' `tfm-directories' (optional) `tfm-filename-extensions' (optional) `properties' (optional) `variable-values' (optional) Capabilities for font definition: `font-class' (essential) --- A font class name. `kanji-font' (optional) --- Font name for a subfont. `kanji-font-point-size' (optional) --- Default point size of subfont. If point size is not explicitly given when a font is opened, This value is used. `kanji-font-pixel-size' (optional) --- Default pixel size of a subfont. If pixel size is not explicitly given when a font is opened, This value is used. `kanji-font-magnification' (optional) --- magnification factor for subfont. `tfm-file' (optional) --- TFM file that defines font metrics of a font. example: `(tfm-file "min10.tfm")' `metric-adjustment-file' (optional) --- a file name for font metric adjustment file. `properties' (optional)  File: VFlib-36.info, Node: Japanese comic font class, Next: Try font class, Prev: ASCII Japanese TeX Kanji font class, Up: Writing a vflibcap Japanese comic font class ========================= This font driver composes two Japanese Kanji fonts. According to code point (Kana or kanji character), one of two font is selected to obtain a bitmap or metric. This font class provides Japanese fonts that composes Kana and Kanji font. Font class name: `japanese-comic' Capabilities for font class default: `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `properties' (optional) `variable-values' (optional) Capabilities for font definition: `font-class' (essential) --- A font class name. `kanji-font' (optional) --- A VFlib font name for Kanji characters. For code points for Kanji characters, this font is used to obtain bitmaps and metrics. `kana-font' (optional) --- A VFlib font name for Kana font (code point: 0x2121 ... 0x287f). For code points except Kanji characters, this font is used to obtain bitmaps and metrics. `symbol-font' (optional) --- A VFlib font name for symbol characters (code point: 0x2121 ... 0x227f). If this capability is not given, a font given by `kana-font' is used for symbol characters. `alpha-numeric-font' (optional) --- A VFlib font name for alphabet and numeric characters (code point: 0x2321 ... 0x237f). If this capability is not given, a font given by `kana-font' is used for alphabet and numeric characters. `hirakana-font' (optional) --- A VFlib font name for Hirakana characters (code point: 0x2421 ... 0x247f). If this capability is not given, a font given by `kana-font' is used for Hirakana characters. `katakana-font' (optional) --- A VFlib font name for Katakana characters (code point: 0x2521 ... 0x257f). If this capability is not given, a font given by `kana-font' is used for Katakana characters. `greek-font' (optional) --- A VFlib font name for Greek characters (code point: 0x2621 ... 0x267f). If this capability is not given, a font given by `kana-font' is used for Greek characters. `cyrillic-font' (optional) --- A VFlib font name for Cyrillic characters (code point: 0x2721 ... 0x277f). If this capability is not given, a font given by `kana-font' is used for Cyrillic characters. `keisen-font' (optional) --- A VFlib font name for Keisen characters (code point: 0x2821 ... 0x287f). If this capability is not given, a font given by `kana-font' is used for Keisen characters. `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `magnification' (optional) `properties' (optional)  File: VFlib-36.info, Node: Try font class, Next: Mojikyo font mapping class, Prev: Japanese comic font class, Up: Writing a vflibcap Try font class ============== A font of this font class has a list of *sub-fonts*. When a font of this class is requested open, the try font driver tries to open the sub-fonts one after another until one of them is successfully opened. If all sub-fonts in the list are not opened, the font is failed to be opened. All font operation of the font is applied to an opened sub-font. Font class name: `try' Capabilities for font class default: `properties' (optional) `variable-values' (optional) Capabilities for font definition: `font-class' (essential) --- A font class name. This must be `try'. `font-list' (optional) --- A list of sub-fonts. These fonts are VFlib fonts, not a font file names. `point-size' (optional) `pixel-size' (optional) `dpi' (optional) `magnification' (optional) `properties' (optional)  File: VFlib-36.info, Node: Mojikyo font mapping class, Next: Example vflibcap 1, Prev: Try font class, Up: Writing a vflibcap Mojikyo font mapping class ========================== This font driver is specific to the Mojikyo font files, which is a huge collection (more than 80 thousand) of Kanji characters. (Access `http://www.mojikyo.gr.jp/' for detail.) The Mojikyo font is supplied by a set of font files, since the number of characters is too huge to contain in a single font file. The Mojikyo font defines its own character encoding, staring from 1 and each character has its own character code. (Character codes are not the codes in a font file.) The Mojikyo font set is supplied by both TrueType and Type 1 formats. A single character space of the Mojikyo is divided into font file number and character code in a font file. This means that we must compute font file among many font files and code point in a font file to obtain a glyph of Mojikyo characters. To avoid such complex procedure, this font driver provides a virtual single font. Note that this font driver only delegates requested characters to other font driver (TrueType or Type 1). Therefore, TrueType and/or Type 1 font driver must be configured in VFlib and they must be propopery set up in a vflibcap file. Font class name: `mojikyo-mapper' Capabilities for font class default: `properties' (optional) `variable-values' (optional) Capabilities for font definition: `font-class' (essential) --- A font class name. This must be `mojikyo-mapper'. `division-scheme' (optional) Mapping scheme from the Mojikyo character space to real font files is different by real font file format (TrueType/Type1). This capability defines which mapping scheme is used. If `truetype' is given for this capability, underlaying font files are in TrueType format. If `type1' is given for this capability, underlaying font files are in Type 1 format. Default value for this capability is `truetype'. Aliases of division scheme names are defined as follows: `ttf' is an alias of `truetype', and `pfb' is an alias of `type1'. `subfont-name-format' (optional) This capability defines format of font file names. If `truetype' is selected for `division-scheme' capability, `Mojik%d.ttf' is assumed for this capability by default. `%d' in `Mojik%d.ttf' is substituted by font number, starting from 101. If `type1' is selected for `division-scheme' capability, `mo%dm%02d.pfb' is assumed for this capability by default. The first `%d' in `mo%dm%02d.pfb' is a major font number, starting from 101. The second `%d' in `mo%dm%02d.pfb' is a minor font number, starting from 6. In case you want to use a font name format other than described above, this capability should be defined. Note that format sting should contain exactly one `%d' if you select `truetype' division scheme, and exactly two `%d's if you select `type1' division scheme. `truetype-subfont-encoding' (optional) This capability has effect only when `truetype' division scheme is selected. This capability selects character encoding scheme of underlaying TrueType font files. If `unicode' is given to this capability, underlaying TrueType fonts are encoded in Unicode. If `iso-2022' (as aliases, `iso2022' or `jis' can be used) is given to this capability, underlaying TrueType fonts are encoded in ISO 2022 (JIS). Default value is `unicode', which is the same as the the Mojikyo font files in TrueType format. `properties' (optional)  File: VFlib-36.info, Node: Example vflibcap 1, Next: Example vflibcap 2, Prev: Mojikyo font mapping class, Up: Writing a vflibcap Example vflibcap 1 ================== This example vflibcap is for general use. ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib ;; hint to find font class from font name for fast font open (extension-hints (".bdf" bdf) (".pcf" pcf) (".hbf" hbf) (".ttf" truetype) (".ttc" truetype) (".pfa" type1) (".pfb" type1) ("pk" TeX) ("gf" gf) ("tfm" tfm)) ;; implicit font classes (implicit-font-classes pcf bdf hbf truetype type1 zeit jg gf tfm) ;; uncompression programs (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) ;; a list of default values of variables ;; *Note* "variable-values" must come before variable uses (variable-values (TeX_DPI "300") (TeX_USE_KPATHSEA "Yes") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "/usr/local/bin/xldvi")) ;; kpathsea: enabled/disabled (use-kpathsea $TeX_USE_KPATHSEA) ;; kpathsea mode (e.g., "cx") (kpathsea-mode $TeX_KPATHSEA_MODE) ;; kpathsea program name (e.g., "/usr/local/bin/xdvi") (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) ;; encoding/charset conversion files (code-conversion-files "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv" "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv" "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv" "jisx0201_unicode.ccv" "jisx0208_unicode.ccv" "jisx0212_unicode.ccv" "ksc5601_unicode.ccv" "gb12345_unicode.ccv" "gb2312_unicode.ccv" "big5_unicode.ccv" "cns11643_unicode.ccv" "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv")) ;; ----------------------------------------------------------------- ;; BDF Font Class Default ;; ----------------------------------------------------------------- (define-default bdf ;; font directories (font-directories "/usr/local/share/fonts/X11//") ;; extensions of compressed font files that this font class supports (compression-extensions ".gz" ".Z") ;; default values for fonts of this font class (variable-values (VAR1 ("PROP1" "VAL1")) ; just for debugging... (VAR2 ("PROP2" "VAL2")) (VARX ("PROPX" "VFlib-VALX")) ) ;; properties for all fonts of this font class (properties ("FONT_CLASS" "BDF")) ) ;; ----------------------------------------------------------------- ;; PCF Font Class Default ;; ----------------------------------------------------------------- (define-default pcf ;; font directories (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/fonts/X11//") ;; extensions of compressed font files that this font class supports (compression-extensions ".gz" ".Z") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "PCF")) ) ;; ----------------------------------------------------------------- ;; HBF Font Class Default ;; ----------------------------------------------------------------- (define-default hbf ;; font directories (font-directories "/usr/local/share/fonts/HBF//") ;; extensions of compressed font files that this font class supports (compression-extensions ".gz" ".Z") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "HBF")) ) ;; ----------------------------------------------------------------- ;; TrueType Font Class Default ;; ----------------------------------------------------------------- (define-default truetype ;; font directories (font-directories "TEXMF" ; - a special name to search by `kpathsea' "/usr/local/share/fonts/bakoma/ttf/" "/usr/local/share/fonts/FontCity2//" "/usr/local/share/fonts/DynaFont-Premium30/win95//" "/usr/local/share/fonts/DynaFont-SpecialPack1/win95//" "/usr/local/share/fonts/TrueTypeWorld-ValueFont141//" "/usr/local/share/fonts/FontAsia//" "/usr/local/share/fonts/FontGarden/ttf//" ) ;; debugging flags ('*' selects all) (debug "") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "TrueType")) ) ;; ----------------------------------------------------------------- ;; Type1 Font Class Default ;; ----------------------------------------------------------------- (define-default type1 ;; font (pfa, pfb) directories (font-directories "TEXMF" ; - a special name to search by `kpathsea' "/usr/local/share/fonts/bakoma/pfb/") ;; AFM directories (afm-directories "TEXMF" ; - a special name to search by `kpathsea' "/usr/local/share/fonts/bakoma/afm/") ;; T1Lib logfile output level: "none", "error", "warning", "stat", "debug" (log-level "none")) ;; ----------------------------------------------------------------- ;; Syotrai Club Font Class Default ;; ----------------------------------------------------------------- (define-default zeit ;; filename extensions ("vf" for "mincho.vf{1,2}") (filename-extensions ".vf") ;; font directories (font-directories "/usr/local/share/fonts/Watanabe//" "/usr/local/share/fonts/WadaLab//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "ZEIT") ("CHARSET_REGISTRY" "jisx0208.1983") ("CHARSET_ENCODING" "0") )) ;; ----------------------------------------------------------------- ;; JG Font Class Default ;; ----------------------------------------------------------------- (define-default jg ;; filename extensions ("fn" for "zkyo0by.fn{0,1,2}") (filename-extensions ".fn") ;; font directories (font-directories "/usr/local/share/fonts/JG-Fonts//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "JG") ("CHARSET_REGISTRY" "jisx0208.1983") ("CHARSET_ENCODING" "0"))) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX ;; TFM file directories (tfm-directories "TEXMF" "/usr/local/share/fonts/bakoma/tfm/") ;; possible extensions of TFM files (tfm-filename-extensions ".tfm") ;; font name mapping rules (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*") ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ((pk "%f.%dpk") (gf "%f.%dgf") *) ((tfm "%f.%dtfm") *)) ;; accuracy of device resolutions, used with 'resolution-corrections' (resolution-accuracy 0.02) ;; font resolution values for each device resolutions. (resolution-corrections (240 ;; sparcptr 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) ;; default device resolution (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; TeX GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf ;; font directories (font-directories "TEXMF" "/usr/local/TeX/gf//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "GF")) ) ;; ----------------------------------------------------------------- ;; TeX PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk ;; font directories (font-directories "TEXMF" "/usr/local/TeX/pk//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "PK")) ) ;; ----------------------------------------------------------------- ;; TeX TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm ;; font directories (font-directories "TEXMF" "/usr/local/TeX/tfm//") ;; glyph style: "fill" (all pixels black) or "empty" (all pixels white) (glyph-style "fill") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "TFM")) ) ;; ----------------------------------------------------------------- ;; ASCII-jTeX Kanji Font Class Default ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji ;; TFM file directories (tfm-directories "TEXMF") ;; possible extensions of TFM files (tfm-filename-extensions ".tfm") ;; Suffix for name mapping ;; (e.g., implicit font "min10.300pk" is mapped to "min10.jtex") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; Japanese Comic Font Class Default ;; ----------------------------------------------------------------- (define-default japanese-comic ;; debugging flags ('*' selects all) (debug "f") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "JAPANESE-COMIC") ("CHARSET_REGISTRY" "jisx0208.1983") ("CHARSET_ENCODING" "0"))) ;; ----------------------------------------------------------------- ;; sample font definitions for Japanese TeX (define-font jtex-min (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-goth (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tmin (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tgoth (font-class pcf) (font-file "jiskan24.pcf")) ;; Definitions for "min10" fonts. These fonts are used by ;; 'name mapping' feature of ascii-jtex-kanji driver. ;; (e.g., "min10.400pk" is mapped to "min10.jtex") (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24v.adj")) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24v.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) ;; ----------------------------------------------------------------- ;; EOF  vflib3-3.6.14.dfsg/doc/VFlib-36.info-40000644000175000017500000014344410400435026016303 0ustar mohuramohuraInfo file: VFlib-36.info, -*-Text-*- produced by `texinfo-format-buffer' from file `VFlib-36.texi' using `texinfmt.el' version 2.38 of 3 July 1998.  File: VFlib-36.info, Node: Example vflibcap 2, Next: Example vflibcap 3, Prev: Example vflibcap 1, Up: Writing a vflibcap Example vflibcap 2 ================== This vflibcap file is an example for TeX DVI drivers. This vflibcap file provides a set of fonts of the form `NAME.DVIpk' and `NAME.pk'. For example, `cmr10.300pk' and `cmr10.pk'. For Japanese Kanji character fonts `min5' ... `min10', `goth5' ... `goth10', `tmin5' .. `tmin10', `tgoth5' ... `tgoth10', X Window PCF format font `jiskan24.pcf' is used via `ascii-jtex-kanji' font driver. Other fonts are solved in PK and GF format fonts. If a font is not available in these formats, a TFM font is used to produce a "black" box. (TFM files are metrics files and do not conatin glyph. But TFM driver in VFlib produces a "box" glyph as it ware font files.) Parameters of device resolution and magnification factor for the function `VF_OpenFont1()' determines the font size and font metrics to be opened. To use VFlib with this vflibcap file, I recommend to open font by `VF_OpenFont1(NAME.pk, DPI, DPI, -1, MAG, MAG)', where `NAME.pk' is a font name (e.g., `cmr10.pk'), DPI is the device resolution in dpi (e.g., `300'), and MAG is the magnification factor (e.g., `1.2' for magstep 1 fonts). ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (extension-hints ("pk" TeX)) (implicit-font-classes) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") ;; or "600" (TeX_KPATHSEA_MODE "cx") ;; or "ljfour" (TeX_KPATHSEA_PROGRAM "/usr/local/bin/xldvi")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv" "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv" "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv" "jisx0201_unicode.ccv" "jisx0208_unicode.ccv" "jisx0212_unicode.ccv" "ksc5601_unicode.ccv" "gb12345_unicode.ccv" "gb2312_unicode.ccv" "big5_unicode.ccv" "cns11643_unicode.ccv" "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv")) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*") ((pk "%f.%dpk") (gf "%f.%dgf") *) ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ;; sparcptr 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; VF Font Class Default ;; ----------------------------------------------------------------- (define-default vf (font-directories "TEXMF") (font-mapping ((type1 "%f.pfb" point-size-from-tfm) *) ) (open-style "try") ;; "none", "try", or "require" (glyph-style "fill")) ;; "fill", or "empty" ;; ----------------------------------------------------------------- ;; TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm (glyph-style "fill")) ;; ----------------------------------------------------------------- ;; ASCII-JTeX Kanji fonts ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji (tfm-directories "TEXMF") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; Type1 Font Class Default ;; ----------------------------------------------------------------- (define-default type1 (font-directories "TEXMF") (afm-directories "TEXMF") (log-level "none") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; TrueType Font Class Default ;; ----------------------------------------------------------------- (define-default truetype (font-directories "TEXMF") (platform-id "microsoft") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; PCF Font Class Default ;; ----------------------------------------------------------------- (define-default pcf (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/fonts/X11//") (compression-extensions ".gz" ".Z") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; Japanese Kanji fonts using standard X11 PCF fonts (define-font jtex-min (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-goth (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tmin (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tgoth (font-class pcf) (font-file "jiskan24.pcf")) (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24v.adj")) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24v.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) ;; ----------------------------------------------------------------- ;; EOF  File: VFlib-36.info, Node: Example vflibcap 3, Prev: Example vflibcap 2, Up: Writing a vflibcap Example vflibcap 3 ================== This is an example for TeX DVI drivers. This vflibcap desgnates VFlib to use PK files. For missing PK files, black "boxes" by TFM fonts are used as substitutes of glyphs of PK files ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (extension-hints ("pk" TeX) ("gf" TeX)) (implicit-font-classes) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") ;; or "600" (TeX_KPATHSEA_MODE "cx") ;; or "ljfour" (TeX_KPATHSEA_PROGRAM "/usr/local/bin/xldvi")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM)) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX (tfm-directories "TEXMF" "/usr/local/lib/jtex/fonts" "/usr/local/lib/tex/fonts") (tfm-filename-extensions ".tfm") (font-mapping ((pk "%f.%dpk") *) ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ;; sparcptr 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm (glyph-style "fill")) ;; ----------------------------------------------------------------- ;EOF  File: VFlib-36.info, Node: Debugging a vflibcap, Next: Code conversion system, Prev: Writing a vflibcap, Up: Top Debugging a vflibcap ******************** There is no utility programs that checks syntax of a vflibcap file. But VFlib checks syntax of vflibcap file when a font driver is initialized or a font is opened. VFlib prints a message to inform a user if syntax is illegal, undefined capability is used (this may be a typographical error), essential capability is missing, an undefined macro is used, or forms of capability values are illegal. The following Unix environment variables are used to print debugging messages. `VFLIB_DEBUG_FONT_OPEN' -- If this environment variable is defined, the processes of font opens are printed. `VFLIB_DEBUG_FONT_SEARCH' -- If this variable is defined, the processes of font opens are printed `VFLIB_DEBUG_VFLIBCAP' -- If this variable is defined, the process of reading of vflibcap file is printed. `VFLIB_DEBUG_PARAMETERS' -- If this variable is defined, VFlib prints how parameters (variables) in vflibcap file are substituted. `VFLIB_DEBUG_CCV' -- If this variable is defined, the process of reading CCV files is printed. `VFLIB_DEBUG_CCV_MAPPING' -- If this variable is defined, encoding conversions by CCV are printed.  File: VFlib-36.info, Node: Code conversion system, Next: Utility programs, Prev: Debugging a vflibcap, Up: Top Code conversion system ********************** Code conversion system (CCV) is used to convert from a character set and an encoding to another. For example, a font of Unicode character set and Unicode encoding can be accessed as ISO 8859-2 character set of ISO encoding by encoding conversion. TrueType font class makes use of this feature to hide invisible internal font encoding scheme and provides desired external view to users. Conversion rule is given by one of the following two methods * Internal functions in VFlib (written in C) These functions are hardcoded and new conversions rules cannot be added without modifying source code. * External files, called CCV files. A list of CCV files to be used is specified in `code-conversion-files' capability of `VFlib' default. How CCV works ============= Each conversion rule has the following information. * EXTERNAL charset name * EXTERNAL encoding name * INTERNAL charset name * INTERNAL encoding name * other info such as format and size of conversion table... On invocation of VFlib, these information is read from each CCV files. (CCV files are not fully loaded at initialization of VFlib; VFlib just checks relation of conversion. Conversion tables, which can be large, are loaded on demand.) In addition, when VFlib is initialized, internal CCV functions are installed and these information is given for each conversion function. "EXTERNAL" means external view (i.e., user side encoding) and "INTERNAL" means internal view (i.e., font encoding). Users can define arbitrary charset and encoding names, except that some font driver may predefined names for internal use. (TrueType font driver uses some predefined names, such as "unicode".) CCV system has a conversion table searching mechanism. Table is searched by source charset/encoding names and destination charset/encoding names. If there is a CCV file listed in `code_conversion_files' capability of `VFlib' defaults entry in vflibcap that matches charset and encoding name, the CCV file is dynamically loaded and used for code conversion. For example, a CCV file iso8859-1_unicode.ccv has the following charset/encoding names: * EXTERNAL charset name: ISO8859-1 * EXTERNAL charset encoding: ISO * INTERNAL charset name: UNICODE * INTERNAL charset encoding: UNICODE By this CCV file, a unicode font can be viewed as a ISO encoding of ISO 8859-1 charset. (It is very important to note that names are just symbols and not have any meaning; in the above example, conversion to ISO encoding is implemented by conversion table body in CCV file.) In the current implementation, BDF, PCF, HBF, and TrueType font drivers use CCV system. In the following, how TrueType font driver uses CCV is described. Each TrueType font has information about charset name and encoding name of the font. When a font entry is defined in vflibcap file and `encoding' and `character-set' capability is defined, say, E and C respectively. According to internal charset and encoding information of TrueType font, the driver searches a CCV table, when the VFlib font is opened, that matches the following conversion relation. * EXTERNAL charset name: E * EXTERNAL charset encoding: C * INTERNAL charset name: possibly, UNICODE (from font file info) * INTERNAL charset encoding: possibly, UNICODE (from font file info) If not found, conversion is impossible. If found, a CCV file found is used. After a font is opened, CCV table is used for converting code points for VFlib operation such as `VF_GetBitmap1()'. The internal (hardcoded) CCV functions ====================================== VFlib has several hardcoded CCV functions. Followings CCV functions are implemented. * from ISO-2022 (`ISO2022') to Shift JIS (`SJIS') * from Shift JIS (`SJIS') to ISO 2022 (`ISO2022') * from EUC (`EUC') to ISO 2022 (`ISO2022') * from Row-Cell (`Row-Cell') to ISO 2022 (`ISO2022') * from ISO-2022 (`ISO2022') to Row-Cell (`Row-Cell') * from ISO-2022 (`ISO2022') to WanSung (`WanSung') * from Row-Cell (`Row-Cell') to WanSung (`WanSung') * from ISO-2022 (`ISO2022') to Sequential Numbering (`Sequential2-0' and `Sequential2-1') By these encoding schemes, characters are numbered sequentially starting from 0 (`Sequential2-0') or 1 (`Sequential2-1'). That is, `Sequential2-0' encoding is an encoding such that code of the first character is 0, code of the second is 1, ..., and code of the i-th character is (i-1). `Sequential2-1' encoding is an encoding such that code of the first character is 1, code of the second is 2, ..., and code of the i-th is (i). External code point must be encoded two-byte, i.e., 0x2121...7e7e. These values are converted to 0...8835 or 1...8836. Encoding name `JIS' is defined as an alias of `ISO2022'. Encoding name `Ku-Ten' is defined as an alias of `Row-Cell'. Note that these aliases are defined only for hardcorded CCV functions. All of these are implemented simple arithmetic and large conversion tables are not necessary in memory. The syntax of CCV files ======================= The syntax of CCV files is lisp-like notation, similar to vflibcap files. The CCV file defines its own directive set, explained below. A code conversion table is divided in several sub-tables to reduce the file size (and memory size when the file is loaded into memory). The sub-tables are called `blocks'. `(charset-external-name FROM-CS-NAME)' `(charset-external-encoding FROM-CS-ENC)' `(charset-internal-name TO-CS-NAME)' `(charset-internal-encoding TO-CS-ENC)' --- These four directives describes character set and encoding information of conversion. `(table-type TYPE)' TYPE must be one of the following: `array' `random-arrays' `(c1-min C1MIN)' `(c1-max C1MAX)' `(c2-min C2MIN)' `(c2-max C2MAX)' `(block-size SIZE)' `(nblocks NBLOCKS)' `(block BLOCK CODE0 CODE1 ...)' Let C be a code point of a character to be converted by this CCV file. It is converted as follows. Let C1 be C/SIZE and C2 be C modulo SIZE. The block number B that should be referred to is C1-C1MIN. The position I in the block B is C2-C2MIN. Thus, the value of I-th entry of a block numbered B is converted code point. C1MAX, C2MAX and NBLOCKS are used internally to determine the necessary memory area to load the table. Theoretically, `array' is enough for the value for `table-type' directive. But in case that there are many blocks that do not have conversion entries. This is happen in the case of CNS11643 character set (a Hanji character set in Taiwan). To reduce the table size, some of blocks can be omitted by giving `random-array' for `table-type' directive. In case of `array', lookup for code conversion is implemented by indexing an entire array, which is very fast. In case of `random-array', lookup for code conversion takes time to find a corresponding sub-table (block), since the table is not linear. Example of a CCV file 1 ======================= The following example is a CCV file that virtually provides a ISO 8859-1 character set font using a Unicode font. That is, a Unicode font can be used as if it were a ISO 8859-1 font by the CCV file. This file is distributed with VFlib and installed by the name `iso8859-1_unicode.ccv'. This file is a table indexed by code points of ISO 8859-1; contents of table entries are Unicode code points. ; Conversion table: ISO8859-1 ==> UNICODE (charset-external-name ISO8859-1) (charset-external-encoding ISO) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type array) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x0) (c1-max 0x0) (c2-min 0x20) (c2-max 0xff) (block-size 256) (nblocks 1) ; 0x0020 ... 0x00ff (block 0 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 0x0026 0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x003a 0x003b 0x003c 0x003d 0x003e 0x003f 0x0040 0x0041 0x0042 0x0043 0x0044 0x0045 0x0046 0x0047 0x0048 0x0049 0x004a 0x004b 0x004c 0x004d 0x004e 0x004f 0x0050 0x0051 0x0052 0x0053 0x0054 0x0055 0x0056 0x0057 0x0058 0x0059 0x005a 0x005b 0x005c 0x005d 0x005e 0x005f 0x0060 0x0061 0x0062 0x0063 0x0064 0x0065 0x0066 0x0067 0x0068 0x0069 0x006a 0x006b 0x006c 0x006d 0x006e 0x006f 0x0070 0x0071 0x0072 0x0073 0x0074 0x0075 0x0076 0x0077 0x0078 0x0079 0x007a 0x007b 0x007c 0x007d 0x007e -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x00a0 0x00a1 0x00a2 0x00a3 0x00a4 0x00a5 0x00a6 0x00a7 0x00a8 0x00a9 0x00aa 0x00ab 0x00ac 0x00ad 0x00ae 0x00af 0x00b0 0x00b1 0x00b2 0x00b3 0x00b4 0x00b5 0x00b6 0x00b7 0x00b8 0x00b9 0x00ba 0x00bb 0x00bc 0x00bd 0x00be 0x00bf 0x00c0 0x00c1 0x00c2 0x00c3 0x00c4 0x00c5 0x00c6 0x00c7 0x00c8 0x00c9 0x00ca 0x00cb 0x00cc 0x00cd 0x00ce 0x00cf 0x00d0 0x00d1 0x00d2 0x00d3 0x00d4 0x00d5 0x00d6 0x00d7 0x00d8 0x00d9 0x00da 0x00db 0x00dc 0x00dd 0x00de 0x00df 0x00e0 0x00e1 0x00e2 0x00e3 0x00e4 0x00e5 0x00e6 0x00e7 0x00e8 0x00e9 0x00ea 0x00eb 0x00ec 0x00ed 0x00ee 0x00ef 0x00f0 0x00f1 0x00f2 0x00f3 0x00f4 0x00f5 0x00f6 0x00f7 0x00f8 0x00f9 0x00fa 0x00fb 0x00fc 0x00fd 0x00fe 0x00ff ) Example of a CCV file 2 ======================= The following example is a CCV file that virtually provides a CNS 11643 Plane 1 character set font using a Unicode font. This file is distributed with VFlib and installed by the name `cns11643-1_unicode.ccv'. This file is an example of CCV files that have `random-arrays' for `table-type' directive. ; Conversion table: CNS11643-1 ==> UNICODE (charset-external-name CNS11643-1) (charset-external-encoding ISO2022) (charset-internal-name UNICODE) (charset-internal-encoding UNICODE) (table-type random-arrays) ; Code point C is converted to C' by the following formula: ; C' = Table[(c1 - c1min)*M + (c2 - c2min)], ; where c1 = C/B and c2 = C%B, and M = c2max - c2min + 1. ; B is a block size given by the 'block-size:' parameter. (c1-min 0x121) (c1-max 0xe67) (c2-min 0x21) (c2-max 0x7e) (block-size 256) (nblocks 218) ; 0x12121 ... 0x1217e (block 0 0x3000 0xff0c 0x3001 0x3002 0xff0e 0x30fb 0xff1b 0xff1a 0xff1f 0xff01 0xfe30 0x2026 0x2025 0xfe50 0xfe51 0xfe52 0x00b7 0xfe54 0xfe55 0xfe56 0xfe57 0xfe31 0x2014 0xfe32 0x2013 -1 -1 -1 -1 0xff08 0xff09 0xfe35 0xfe36 0xff5b 0xff5d 0xfe37 0xfe38 0x3014 0x3015 0xfe39 0xfe3a 0x3010 0x3011 0xfe3b 0xfe3c 0x300a 0x300b 0xfe3d 0xfe3e 0x3008 0x3009 0xfe3f 0xfe40 0x300c 0x300d 0xfe41 0xfe42 0x300e 0x300f 0xfe43 0xfe44 0xfe59 0xfe5a 0xfe5b 0xfe5c 0xfe5d 0xfe5e 0x2018 0x2019 0x201c 0x201d 0x301d 0x301e 0x2032 0x2035 0xff03 0xff06 0xff0a 0x203b 0x00a7 0x3003 0x25cb 0x25cf 0x25b3 0x25b2 0x25ce 0x2606 0x2605 0x25c7 0x25c6 0x25a1 0x25a0 0x25bd 0x25bc ) ; 0x12221 ... 0x1227e (block 1 0x32a3 0x2105 0x203e -1 0xff3f -1 0xfe49 0xfe4a 0xfe4d 0xfe4e 0xfe4b 0xfe4c 0xfe5f 0xfe60 0xfe61 0xff0b 0xff0d 0x00d7 0x00f7 0x00b1 0x221a 0xff1c 0xff1e 0xff1d 0x2266 0x2267 0x2260 0x221e 0x2252 0x2261 0xfe62 0xfe63 0xfe64 0xfe66 0xfe65 0x223c 0x2229 0x222a 0x22a5 0x2220 0x221f 0x22bf 0x33d2 0x33d1 0x222b 0x222e 0x2235 0x2234 0x2640 0x2642 0x2641 0x2609 0x2191 0x2193 0x2192 0x2190 0x2196 0x2197 0x2199 0x2198 0x2016 0xff5c 0xff0f 0xff3c 0x2215 0xfe68 0xff04 0xffe5 0x3012 0xffe0 0xffe1 0xff05 0xff20 0x2103 0x2109 0xfe69 0xfe6a 0xfe6b 0x33d5 0x339c 0x339d 0x339e 0x33ce 0x33a1 0x338e 0x338f 0x33c4 0x00b0 0x5159 0x515b 0x515e 0x515d 0x5161 0x5163 ) ; 0x12321 ... 0x1237e (block 2 0x55e7 0x74e9 0x7cce 0x2581 0x2582 0x2583 0x2584 0x2585 0x2586 0x2587 0x2588 0x258f 0x258e 0x258d 0x258c 0x258b 0x258a 0x2589 0x253c 0x2534 0x252c 0x2524 0x251c 0x2594 0x2500 0x2502 0x2595 0x250c 0x2510 0x2514 0x2518 0x256d 0x256e 0x2570 0x256f 0x2550 0x255e 0x256a 0x2561 0x25e2 0x25e3 0x25e5 0x25e4 0x2571 0x2572 0x2573 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ... IT'S VERY LONG, SNIP, SNIP, SNIP ... ; 0xe6621 ... 0xe667e (block 3397 0x7bd0 0x7c2f 0x7c32 0x7c42 0x7c4e 0x7c68 0x7ca9 0x7ced 0x7dd0 0x7e07 0x7dd3 0x7e64 0x7f40 -1 0x8041 0x8063 0x80bb 0x6711 0x6725 0x8248 0x8310 0x8362 0x8312 0x8421 0x841e 0x84e2 0x84de 0x84e1 0x8573 0x85d4 0x85f5 0x8637 0x8645 0x8672 0x874a 0x87a9 0x87a5 0x87f5 0x8834 0x8850 0x8887 0x8954 0x8984 0x8b03 0x8c52 0x8cd8 0x8d0c 0x8d18 0x8db0 0x8ebc 0x8ed5 0x8faa 0x909c -1 0x915c 0x922b 0x9221 0x9273 0x92f4 0x92f5 0x933f 0x9342 0x9386 0x93be 0x93bc 0x93bd 0x93f1 0x93f2 0x93ef 0x9422 0x9423 0x9424 0x9467 0x9466 0x9597 0x95ce 0x95e7 0x973b 0x974d 0x98e4 0x9942 0x9b1d 0x9b98 -1 0x9d49 0x6449 0x5e71 0x5e85 0x61d3 0x990e 0x8002 0x781e -1 -1 ) ; 0xe6721 ... 0xe677e (block 3398 0x5528 0x5572 0x55ba 0x55f0 0x55ee 0x56b8 0x56b9 0x56c4 0x8053 0x92b0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 )  File: VFlib-36.info, Node: Utility programs, Next: Sample programs, Prev: Code conversion system, Up: Top Utility programs **************** * Menu: * vflmkcaptex:: * vflpp:: * vflmkfdb:: * vfldrvs::  File: VFlib-36.info, Node: vflmkcaptex, Next: vflpp, Up: Utility programs vflmkcaptex =========== `vflmkcaptex' is a utility program to generate vflibcap file for TeX DVI driver software automatically. With simple command line arugments, a vflibcap that uses PK, GF, Virtual Font, Type 1 fonts with complex TeX font mapping rules. Usage: vflmkcaptex [ OPTIONS... ] [ CLASS... ] Usage: vflmkcaptex [ SHORTCUT ] [ OPTIONS... ] `CLASS...' is a list of font class names to support by vflibcap file to be generated. `OPTIONS...' is option list to customize default settings. `SHORTCUT' is a shortcut name to typical options and class name list. Shortcut: minimum This is the same as command line option pk. Use PK fonts only. simple This is the same as command line option -g pk tfm. Use PK fonts. If PK font file is missing, it is generated on-the-fly. If font cannot be created, black square is displayed instead of character glyph (as long as corresponding TFM file exists). standard This is the same as command line option -t1 -g. Use default class list type1 vf pk tfm. Missing PK font is created on-the-fly. simple-ja This is the same as command line option -g pk tfm -jtex -jisx0212 -jpcf. (Japanese support for simple shortcut.) standard-ja This is the same as command line option -t1 -g -jtex -jisx0212 -jpcf. (Japanese support for standard shortcut.) Font class list: gf Enables to use GF font files. For searching font files, kpathsea is used. That is, font files are searched under TeX `texmf' directory (typically, `/usr/local/share/texmf'). pk Enables to use PK font files. For searching font files, kpathsea is used. vf Enables to use Virtual Font files. For searching font files, kpathsea is used. tfm Enables to use TFM files. This option enables to display black square instead of glyph. The size of square obeys font metric of each character. This is useful when glyph file (e.g., PK, Type1) is missing. type1 Enables to use Type 1 fonts. (Currently, it supports Roman fonts. CJK fonts are not supported.) For searching font files, kpathsea is used. By this option, font definitions for PostScript fonts used in TeX DVI files are generated by reading `psfonts.map' of `dvips'. Each PostScript font listed in `psfonts.map' is checked if it exists. (For PostScript fonts, this program automatically searchs Adobe Acrobat 3 and 4 font directories.) If a PostScript font in question is not found, `Ghostscript' font definition file `Fontmap' is checked to substitute the font by a font in `Ghostscript' font directory. This feature is very useful for displaying and printing TeX DVI files with PostScript fonts. So, I recommned obtain Adobe Acrobat 3 and 4 for Type 1 PostScript fonts. (Linux version are freely available.) When a font is requested to open, the font is tried to open by font classes by the order in the command line. So, by a `vflibcap' generated by the following example, font in PK format is rearched first. If a font in PK format is not found, font in Type 1 format is searched next. vflmkcaptex pk type1 Therefore, the order of font classes decides the priority of font file formats to search. Options: --help Print a list of command line options and exit. --version Print version number of this program and exit. -p PROG Application program name. This is used by kpathsea for font file search. Default is xgdvi, which is a DVI previewer in the TeX-Guy package. -n MODE Device mode name for font file search, used by kpathsea. Default is cx -r DPI Device resolution in DPI. Default is 300. If this option is not given, `vflmkcaptex' reads `mode.mf', which is a device mode definition file for METAFONT, and obtains revice resolution automatically. -g Configure `vflibcap' to generate non-existing PK files on-the-fly. -pk When `CLASS...' is not given, default font class set is assumed by default. For such case, generate a `vflibcap' to search PK font file before searching Type 1 font by this option. -t1 When `CLASS...' is not given, generate a `vflibcap' to search Type 1 font file before searching PK font file by this option. Options for Japanese TeX support: -jtex Generate font definitions for JIS X0208 character set used by Japanese TeX. By default, a `vflibcap' to be generated uses Japanese Kanji character in PCF format (in X11 font directory). See also `-jpcf', `-jekanji' and `-jttf' options. -jisx0212 Generate font definitions for JIS X0208 character set used by Japanese TeX. Note that generated font names are not standard. It is used for private use of the author. -jpcf Switch to use PCF fonts for Japanese Kanji characters. (This is the default.) -jekanji Switch to use eKanji fonts for Japanese Kanji characters. See *Note eKanji font class:: for detail about eKanji fonts. -jttf Switch to use TrueType fonts for Japanese Kanji characters. -jpfd DIR Add a PCF font directory. `vflmkcaptex' checks typical X11 PCF font directories and existing directories are added to PCF font directory list. This option should be used when you want to add optional (and not automatically detected) PCF font directory. This option can be used multiple times. -jefd DIR Add a eKanji font directory. This option can be used multiple times. -jtfd DIR Add a TrueType font directory. This option can be used multiple times. -jtdb FILE By this option, an external definition database file FILE is read for generating definitions of non-standard TeX Japanese fonts using Japanese TrueType font files. Each line in FILE is a pair of (1) font name used in TeX and (2) TrueType font file name. Following is an example: dfailpaa dcail5.ttc dfainpaa dcai5.ttc dfaispaa dcais5.ttc dfbrrsaa dfbrr7.ttc dfbrrzaa dfbrrc.ttc dfbrspaa dfbrs5.ttc dfbrsvaa dfbrs9.ttc dfbrszaa dfbrsc.ttc See files in a directory `ascii-jtex/' for detail. `vflmkcaptex' is a Unix Shell script. It uses following programs to generate a `vflibcap' file. Descriptions the followng programs are ommited since most of users never use them directly. For details, invoke each program with `--help' option to see how to use it. `vflmkvfl' A generator for VFlib defaults. (See *Note VFlib defaults::.) `vflmktex' A generator for TeX mapping class. (See *Note TeX default and TeX font mapping font class::.) `vflmkpk' A generator for PK class. (See *Note PK font class::.) `vflmkgf' A generator for GF class. (See *Note GF font class::.) `vflmkvf' A generator for Virtual Font class. (See *Note VF font class::.) `vflmktfm' A generator for TFM class. (See *Note TFM font class::.) `vflmkt1' A generator for Type 1 class. (See *Note Type1 font class::.) `vflmkekan' A generator for eKanji class. (See *Note eKanji font class::.) `vflmkajt' A generator for ASCII Japanese TeX class. (See *Note ASCII Japanese TeX Kanji font class::.)  File: VFlib-36.info, Node: vflpp, Next: vflmkfdb, Prev: vflmkcaptex, Up: Utility programs vflpp ===== `vflpp' prettyprints (i.e., grinds) a vflibcap file. It eliminate all comment strings and unnecessary space and newline characters. Usage: vflpp [ VFLIBCAP-FILE ] A program `vflpp' prettyprints a file VFLIBCAP to standard output. If no argument is given, `vflpp' reads from standard input.  File: VFlib-36.info, Node: vflmkfdb, Next: vfldrvs, Prev: vflpp, Up: Utility programs vflmkfdb ======== Usage: vflmkfdb FONT-DIRECTORY [ ... ] A program `vflmkfdb' makes a font file hint database (FDB for short) in a font directories given in the command line argument. It is used in a font file search module in VFlib. In case there are many font files in many directories, search a font file consumes much time to traverse directory hierarchy. FDB file contains pairs of file name and path name to the file in a single file. By reading FDB file, a font file can be found without traversing directories. For each FONT-DIRECTORY, a FDB file named `VFlib.fdb' is created in the directory.  File: VFlib-36.info, Node: vfldrvs, Prev: vflmkfdb, Up: Utility programs vfldrvs ======= Usage: vfldrvs A program `vfldrvs' prints a list of pre-installed font drivers in VFlib.  File: VFlib-36.info, Node: Sample programs, Next: Difference between VFlib version 3.6 and 2, Prev: Utility programs, Up: Top Sample programs *************** * Menu: * vflserver:: * vfltest:: * vflx11:: * vfldisol:: * ctext2pgm::  File: VFlib-36.info, Node: vflserver, Next: vfltest, Up: Sample programs vflserver ========= `vflserver' is a font server that provides the functionality of VFlib via network. `vflserver' can be invokes from command line or via network. * Menu: * Using vflserver from command line:: * Using vflserver via network:: * The protocol of vflserver::  File: VFlib-36.info, Node: Using vflserver from command line, Next: Using vflserver via network, Up: vflserver Using vflserver from command line --------------------------------- Usage: vflserver [-v VFLIBCAP] [-s SHRINK] [CMD-FILE ...] `vflserver' receives a command, executes it, and return a result. This is repeated until connection is closed or quit command is executed. `vflserver' reads a sequence of command from standard input if CMD-FILE option is not given. Options: -v VFLIBCAP A file name of vflibcap to be used. If this option is not given, default vflibcap file is used. (Possibly, default vflibcap is `/usr/local/share/VFlib/3.6.14/vflibcap'.) -s SHRINK `vflserver' has a feature to print obtained bitmaps in ASCII-art style for debugging purpose. When this feature is enabled, bitmaps are shrinked by this factor. This is effective when obtained bitmaps are huge. CMD-FILE ... A sequence of commands can be read from files. Commands in files CMD-FILE ... are executed in given order. After executing all files, `vflserver' reads a sequence of commands from standard input. Thus, quit command may be explicitly given in CMD-FILE. This option is effective in the process of font driver development to do the same commands many times.  File: VFlib-36.info, Node: Using vflserver via network, Next: The protocol of vflserver, Prev: Using vflserver from command line, Up: vflserver Using vflserver via network --------------------------- Before using `vflserver' via network, it must be installed to be invoked by `inetd'. You must be a root to do the following procedures. First, edit `/etc/services': * Network service name: vflserver * Well known port: 4681 * Protocol: tcp Add the following line to `/etc/inetd.conf'. vflserver stream tcp nowait nobody /usr/local/bin/vflserver vflserver If you need to explicitly specify a vflibcap file to be used, you must give `-v' option as follows: vflserver stream tcp nowait nobady /usr/local/bin/vflserver vflserver -v /foo/vflibcap To force inetd to re-read `inetd.conf', send a HUP signal to inetd. We finished installing vflserver to use via network. Now, use `telnet' to check if `vflserver' is correctly installed to network service. The following an example interaction. % telnet localhost vflserver Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. ; This is a font server VFLSERVER Version 2.0 Fri Mar 13 11:58:42 JST 1998 ... ; Type `HELP' for description of the protocol. (100 "vflserver ready.") open1 timR14.pcf (100 0 "timR14.pcf") debug bitmap on (100 "Ascii-art bitmap on.") bitmap1 0 0x67 (100 8 13 0 9 9 0 "3eccc4c4cc78407c7f83c1e27c" " 89012345678901 +------------+ 9| |9 0| ..@@@@@. |0 1| @@..@@.. |1 2| @@...@.. |2 3| @@...@.. |3 4| @@..@@.. |4 5| .@@@@... |5 6| .@...... |6 7| .@@@@@.. |7 8| .@@@@@@@ |8 9| +.....@@ o |9 0| @@.....@ |0 1| @@@...@. |1 2| .@@@@@.. |2 3| |3 +------------+ 89012345678901 ") quit (100 "Happy Hacking") Connection closed by foreign host.  File: VFlib-36.info, Node: The protocol of vflserver, Prev: Using vflserver via network, Up: vflserver The protocol of vflserver ------------------------- Introduction ............ The VFLSERVER Protocol is a communication protocol between a server which offers font service and a client which uses fonts. The character set assumed by this protocol is ASCII character set. A line is a sequence of character terminated by a newline character and communication between a server and a client is line-oriented. Reply Format of a Server ........................ Each request to a server by a client takes a form of a line. The following are examples of client's requests. OPEN1 timR24.pcf DEBUG BITMAP ON BITMAP1 1 33 A reply by a server to a client is an S-expression, (lisp-like notation). The following are examples of server's response. (100 0 "timR14.pcf") (100 "Ascii-art bitmap on.") (100 8 13 0 9 9 0 "3eccc4c4cc78407c7f83c1e27c") The first number of the response of each reply by a server are formed by decimal digits and these three digits indicates the status of an execution of client's request. Thus, this three digits is a status code. The first digit is one of `1', `2', ...., `5'. If this digit is `1', it there is no error at all. If it is `5', there are some errors to achieve a request. According to the degree of fatalness, the digit is decided; It is `1' if no error is detected and is `5' if some fatal errors are detected and it is impossible to continue to execute a server. If it is not `5', a client can receive some result. The Protocol ............ The following defines commands and their arguments by a client, and corresponding responses by a server. Command name is case-insensitive, but arguments are case-sensitive. In the description of command format, arguments enclosed by [ ] can be omitted, while arguments that are not enclosed by [ ] are essential arguments and cannot be omitted. OPEN1 FONT_NAME [ POINT_SIZE [ MAG_X MAG_Y [ DPI_X DPI_Y ]]] Open a font in mode 1 (high resolution device oriented mode). This corresponds to `VF_OpenFont1()' function. If it succeeds opening the font, a font identifier is returned. After a font is opened, any request for a font is specified by font identifier (not font name). Response: When the command is successful: ( STATUS FONTID MESSAGE ) FONTID is a font id represented by non-negative integer in decimal. When the command failed: ( STATUS MESSAGE ) STATUS indicates that an error occurred. OPEN2 FONT_NAME [ PIXEL_SIZE [ MAG_X MAG_Y ]] Open a font in mode 2 (low resolution device oriented mode). This corresponds to `VF_OpenFont2()' function. If it succeeds opening the font, a font identifier is returned. After a font is opened, any request for a font is specified by font identifier (not font name). Response: Response is the same as one for `OPEN1' command. CLOSE FONT_ID Closed a font. Response: ( STATUS MESSAGE ) BITMAP1 FONT_ID CODE_POINT [ MAG_X MAG_Y ] Obtain a bitmap. FONT_ID is a font id. This command corresponds to `VF_GetBitmap1()' function of VFlib. Response: When the command is successful: ( STATUS WIDTH HEIGHT OFFX OFFY MVX MVY BITMAP ) WIDTH and HEIGHT is a size of bitmap in pixels. BITMAP is encoded as a sequence of hexadecimal number. Eight pixels are encoded to two hexadecimal number and the weight of the i-th (0 <= i < 8) pixel from the leftmost pixel is 0x80 >> i. BITMAP is a sequence of encoded of rasters; the first raster begins from the upper left corner to upper right corner. Then, it is followed by next raster (one pixel down from the first raster). One raster is (width+7)/8 bytes, and BITMAP contains an encoded bitmap of ((width+7)/8)*height bytes. Thus, the length of BITMAP is 2*((width+7)/8)*height. When the command failed: ( STATUS MESSAGE ) STATUS indicates that an error occurred. BITMAP2 FONT_ID CODE_POINT [ PIXEL_SIZE [ MAG_X MAG_Y ]] Obtain a bitmap. This command corresponds to `VF_GetBitmap2()' function. Response is the same as `BITMAP1' command. METRIC1 FONT_ID CODE_POINT [ POINT_SIZE [ MAG_X MAG_Y ]] Obtain a metric information of a font. This command corresponds to `VF_GetMetric1()' function. Response: When the command is successful: ( STATUS WIDTH HEIGHT OFFX OFFY MVX MVY ) Each element of the response is the same as return values for `BITMAP1' command except for their units are points. When the command failed: ( STATUS MESSAGE ) STATUS indicates that an error occurred. METRIC2 FONT_ID CODE_POINT [ PIXEL_SIZE [ MAG_X MAG_Y ]] Obtain a metric information of a font. This command corresponds to `VF_GetMetric2()' function. Response: Same as METRIC1 command except for units are points. FONTBBX1 FONT_ID [ MAG_X MAG_Y ] Obtain font bounding information of a given font FONT_ID opened in mode 1. The argument MAG_X MAG_Y are magnification factor to be scaled. This command corresponds to `VF_GetFontBoundingBox1()' function. Response: When the command is successful: ( STATUS WIDTH HEIGHT XOFF YOFF ) WIDTH and HEIGHT are width and height of bounding box, respectively. XOFF and YOFF are the largest horizontal and vertical displacement of lower left corner of bounding box from reference points. Note that these values does not guarantee the minimality; they only guarantee that all characters can be contained in a box described by them. Units of return values are point. When the command failed: ( STATUS MESSAGE ) STATUS indicates that an error occurred. FONTBBX2 FONT_ID [ MAG_X MAG_Y ] Arguments and return values are the same except FONT_ID must be in mode 2 and units of return values are pixel. PROPERTY FONT_ID PROPERTY_NAME Obtain a property named PROPERTY_NAME of a font FONT_ID. @noindent Response: When the command is successful: ( STATUS VALUE ) When the command failed: ( STATUS MESSAGE ) STATUS indicates that an error occurred. MINIMIZE-BBX [ FLAG ] Select a mode whether a bitmap sent from a server should be minimized or not. If FLAG is `ON', bounding boxes of bitmaps sent from a server is minimized not to contain white pixels as possible. If FLAG is `OFF', bitmaps sent from a server is not guaranteed to be minimized bounding boxes. If FLAG is not given, current mode is returned. Initial mode is `OFF'. Response: The current mode is returned even if the operation fails or succeeds. When the command is successful: ( STATUS-CODE MODE ) MODE is one of `ON' or `OFF'. When the command failed: ( STATUS-CODE MODE ) MODE is one of `ON' or `OFF'. QUIT Finish interaction between a server and a client. This operation always succeeds. Response: ( STATUS MESSAGE )  File: VFlib-36.info, Node: vfltest, Next: vflx11, Prev: vflserver, Up: Sample programs vfltest ======= `vfltest' displays glyph of a given font and characters by ASCII-art form on a character terminal. It does not requires X Window System, but the font of the terminal must be a fixed-width font, since bitmaps are printed by ASCII-art form. Usage: vfltest [ OPTIONS... ] FONT_NAME CHAR_LIST Options: -mode1 A font is opened in mode 1 (high resolution device oriented mode). -mode2 A font is opened in mode 2 (low resolution device oriented mode). -ol Bitmaps are obtained by `VF_GetOutline()' and then `VF_OutlineToBitmap()'. This option is effective only when a font is opened in mode 1. -v VFLIBCAP A file name of vflibcap to be used. If this option is not given, default vflibcap file is used. (Possibly, default vflibcap is `/usr/local/share/VFlib/3.6.14/vflibcap'.) -p POINT or -p PIXEL Specify point or pixel size of characters. If this option is not given, size of characters are original size of a font. -d DPI Give a device resolution in DPI. This option is effective only when a font is opened in mode 1. -m MAG Specify vertical and horizontal magnification factor. If this option is not given, magnification factor is 1.0. -mx MAG_H Specify horizontal magnification factor. If this option is not given, horizontal magnification factor is 1.0. -my MAG_V Specify vertical magnification factor. If this option is not given, vertical magnification factor is 1.0. --help Print command line arguments and key operations on a window. A list of character is a sequence of the following forms. CODE A character is given by character code. Decimal (e.g., `34') and Hexa-decimal (e.g., `0x67') numbers can be used. FROM - TO This form specifies characters by a range of character code, from FROM to TO (e.g., `0x20 - 0x7e'). Space characters are necessary before and after minus sign (`-'). =CHARLIST This form specifies characters by a list of 1-byte characters, e.g., `=abcdefg'.  vflib3-3.6.14.dfsg/doc/VFlib-36.info-50000644000175000017500000006052310400435026016300 0ustar mohuramohuraInfo file: VFlib-36.info, -*-Text-*- produced by `texinfo-format-buffer' from file `VFlib-36.texi' using `texinfmt.el' version 2.38 of 3 July 1998.  File: VFlib-36.info, Node: vflx11, Next: vfldisol, Prev: vfltest, Up: Sample programs vflx11 ====== `vflx11' displays glyph of a given font in a window. It requires X11R5 or X11R6. Usage: vflx11 [ OPTIONS... ] FONT_NAME Options: -mode1 A font is opened in mode 1 (high resolution device oriented mode). -ol Bitmaps are obtained by `VF_GetOutline()' and then `VF_OutlineToBitmap()'. This is effective when a font is opened in mode 1. -mode2 A font is opened in mode 2 (low resolution device oriented mode). -v VFLIBCAP A file name of vflibcap to be used. If this option is not given, default vflibcap file is used. (Possibly, default vflibcap is `/usr/local/share/VFlib/3.6.14/vflibcap'.) -p POINT or -p PIXEL Specify point or pixel size of characters. If this option is not given, size of characters are original size of a font. -m MAG Specify vertical and horizontal magnification factor. If this option is not given, magnification factor is 1.0. -mx MAG_H Specify horizontal magnification factor. If this option is not given, horizontal magnification factor is 1.0. -my MAG_V Specify vertical magnification factor. If this option is not given, vertical magnification factor is 1.0. --help Print command line arguments and key operations on a window. Following operations are defined on a `vflx11' window. q Finish `vflx11' b Go to previous page. SPC Go to next page. [ Go to previous 4 page. ] Go to next 4 page. { Go to previous 16 page. } Go to next 16 page. + Enlarge the window. - Shrink the window. < Go to the first page. > Go to the last page. m Mark the current page. g Goto the marked page.  File: VFlib-36.info, Node: vfldisol, Next: ctext2pgm, Prev: vflx11, Up: Sample programs vfldisol ======== `vfldisol' displays `disassembled lists' of vector data of a given font and code points. Usage: vfldisol [ OPTIONS... ] FONT_NAME CODE ... Options: -v VFLIBCAP A file name of vflibcap to be used. If this option is not given, default vflibcap file is used. (Possibly, default vflibcap is `/usr/local/share/VFlib/3.6.14/vflibcap'.) -d DPI Resolution of device in dpi. If this option is not given, default resolution of a font is used. -p POINT Point size of characters. If this option is not given, default point size of a font is used. -x Print hexadecimal dump of outline data instead of disassembled list.  File: VFlib-36.info, Node: ctext2pgm, Prev: vfldisol, Up: Sample programs ctext2pgm ========= `ctext2pgm' creates an image file in PGM or PBM format from a multilingual text file encoded by compound text format. It also supports various text encodings such as Chinese, Japanese, Korean EUCs and Shift-JIS. PGM and PBM formats are portable formats, image files can be easily converted to another image format such as GIF, TIFF. It supports various character sets and left-to-right and right-to-left directionalities. ISO 8859-1,2,3,4,5,7,8,9 --- Latin character sets, including Hebrew which is written from right to left. Mule Arabic --- An Arabic script, written from right to left. This character set is used by the multilingual editor Mule. JIS X 0201, JIS X 0208, JIS X 0212 --- Japanese character sets. GB 2312 --- A Chinese character set. CNS 11641-1, CNS 11641-2 --- Chinese character sets. KSC 5601 --- A Hangle character set. Running ctext2pgm ----------------- Usage: ctext2pgm [ OPTIONS... ] [ FILE ] --- `ctext2pgm' reads FILE (if not given, reads standard input) and prints image file to standard output. Example: % ctext2pgm -pgm -ctext -16 -times DOC-10.txt > IMAGE.pgm (Never forget to redirect the output.) Options for VFlib: -v F --- a vflibcap file to be used by `ctext2pgm'. Default value is `vflibcap-ctext2pgm'. Options for input encoding and script: -ctext --- Assume that an encoding of input file. (This is the default input encoding.) Default writing directionality is set to left-to-right. By this encoding, multiple character set can be used in an input text by escape sequences. Mixture of scripts of left-to-right and right-to-left directionalities is also supported. -iso-8859-1 or -latin-1 --- Assume that input file is encoded by iso-8859-1. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. -iso-8859-2 or -latin-2 --- Assume that input file is encoded by iso-8859-2. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. -iso-8859-3 or -latin-3 --- Assume that input file is encoded by iso-8859-3. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. -iso-8859-4 or -latin-4 --- Assume that input file is encoded by iso-8859-4. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. -iso-8859-5, -cyrillic or -russian --- Assume that input file is encoded by iso-8859-5. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. -iso-8859-7 or -greek --- Assume that input file is encoded by iso-8859-7. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. -iso-8859-8 or -hebrew --- Assume that input file is encoded by iso-8859-7. Escape sequence is not allowed in input file. Default writing directionality is set to right-to-left. -iso-8859-9 or -latin-5 --- Assume that input file is encoded by iso-8859-9. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. -euc-jp or -euc-jp1 --- Assume that input file is encoded by Japanese EUC. Default writing directionality is set to left-to-right. JIS X 0201 Roman character set is used for code set 0, JIS X 0208 is used for code set 1, JIS X 0201 Kana is used for code set 2, and JIS X 0212 is used for code set 3. -euc-jp2 --- Same as -euc-jp1 except ASCII character set is used for code set 0. -euc-kr --- Assume that input file is encoded by Korean EUC. Default writing directionality is set to left-to-right. ASCII character set is used for code set 0 and KSC 5601 is used for code set 1. -euc-cn or -euc-gb --- Assume that input file is encoded by Chinese EUC by simplified Hanzi. Default writing directionality is set to left-to-right. ASCII character set is used for code set 0, and GB 2312 is used for code set 1. -euc-cns --- Assume that input file is encoded by Chinese EUC by traditional Hanzi. Default writing directionality is set to left-to-right. ASCII character set is used for code set 0, CNS 11643-1 is used for code set 1, and CNS 11643-2 is used for code set 3. -sjis --- Assume that input file is encoded by Shift-JIS. Escape sequence is not allowed in input file. Default writing directionality is set to left-to-right. ASCII character set is used for code set 0, JIS X 0208 is used for code set 1, and Options for directionality: -l2r --- Select left-to-right directionality for typesetting. -r2l --- Select right-to-left directionality for typesetting. Options for font selection: -fixed, -times, -helv or -cour --- Select a font family: Fixed, Times, Helvetia, or Courier, respectively. Default font family is Times. -bold or -italic --- Select a font face: bold or italic (or oblique), respectively. Default face is normal. -14, -16, -18 or -24 --- Select a font set of 14-, 16-, 18-, or 24-dot, respectively. Default font size if 16. -scale N --- Select a scalable font set and scales the font to n dot. -m M --- Specify vertical and horizontal magnification factors. Default value is 1. -mx M --- Specify horizontal magnification factor. -my M --- Specify vertical magnification factor. -font-list --- Print all installed character sets and font names. Then exit the program. Options for typesetting: -b S --- Specify factor of baseline skip. Baseline of a text is moved this value times dot-size of a selected font set. Default value is 1.2. -center-line --- Each line is centered. Output image is vertically and horizontally centered. -flush-left --- Each line is flushed left. This is default mode if writing directionality is left-to-right. Output image is flushed left. -left-line --- Each line is flushed left, but image is not flushed left. -flush-right --- Each line is flushed to right. This is the default mode if writing directionality is right-to-left. (Note that options `-flush-right' and `-r2l' are different --- consider an English text including Arabic words in the same line.) Output image is flushed right. -right-line --- Each line is flushed right, but image is not flushed right. It is important to notice that the difference of `-flush-left' and `-left-line' options (and `-flush-right' and `-right-line' options). By `-flush-left' option, input text is typeset to flush each line left and typeset result is placed in the left of an output image. By `-left-line' option, input text is typeset to flush each line left and does not specify how to put the typeset result in an output image. The difference appears when the horizontal size of output image is explicitly given by `-pw' option. Options for output: -pgm or -pgm-raw --- Select binary PGM format for image output. -pgm-ascii --- Select ascii PGM format for image output. This is the default output mode. -pbm or -pbm-ascii --- Select ascii PBM format for output an image. -ascii-art or -ascii-art-v --- An image is printed as an ASCII art. (Vertical mode) Baseline is vertical; thus this mode is similar to the `banner' command on Unix. -ascii-art-h --- An image is printed as an ASCII art. (Horizontal mode) Baseline is horizontal. -eps --- Select EPS format for image output. By default, 16-dot font is printed by 12-point in EPS file. To change the point size, use the -eps-ptsize option described below. -eps-ptsize PT --- Select point size of characters for EPS output. If this option is given, point size of each character is scaled to PT point regardless dot size of fonts. -none --- An image is not shipped out. -r --- Reverse the black and white of output image. (This option does not have effect when EPS is selected for image output format.) -s N --- Shrink factor for anti-aliased output. N by N pixels are shrinked together and forms one pixel in an output image. This option has effect when output format is PGM and EPS. Default value is 1. -pw W --- Specify width of output image (in pixels). If this option is not given, the width of output image is the smallest width to contain the glyph of all characters. -ph --- Specify height of output image (in pixels). If this option is not given, the height of output image is the smallest height to contain the glyph of all characters. -g --- Specify horizontal and vertical margins of output image (in pixels). Default margin is zero pixel. -gx --- Specify horizontal margin of output image (in pixels). Default margin is zero pixel. -gy --- Specify vertical margin of output image (in pixels). Default margin is zero pixel. -center-image --- An image of typeset text is horizontaly and vertically centered. -h-center-image --- An image of typeset text is horizontaly centered. -v-center-image --- An image of typeset text is vertically centered. -left-image --- An image of typeset text is flushed left. -right-image --- An image of typeset text is flushed right. -top-image --- An image of typeset text is flushed top. -bottom-image --- An image of typeset text is flushed bottom. Making input files for ctext2pgm -------------------------------- Any text editor can be used to prepare input files for `ctext2pgm'. Input files are plain texts. If you want to create an image containing multiple character sets, save the files by *compound text* encoding. If you want to make images of Arabic text, use the `Mule' editor. (`Mule' is an extension of `GNU Emacs' for multilingual text processing.) For making images of Arabic script, `ctext2pgm' only supports a text created by Mule, ISO-8859-6 is not supported. Unlike TeX and HTML, newlines of input files are *not* ignored and a newline character in input text breaks line. Thus, input text is typeset like `verbatim' environment of LaTeX or `

     ... 
    ' tag of HTML. Commands in input text ---------------------- Several commands can be embedded in text files such as font switch. Command sequence starts by a backslash (`\') followed by one character which represents command name. If you want to display a backslash character itself, use double backslashes `\\'. Following commands are defined: `\f', `\t', `\h', `\c' --- Change of font families. Current font family is changed to fixed, times, Helvetia, courier, respectively. `\d' --- Current font family is changed to the default font family. The default font family can be specified by a command line option. `\N', `\B', `\I' --- Change of font faces. Current font face is changed to normal, bold, italic, respectively. `\D' --- Current font face is changed to the default font face. The default font face can be specified by a command line option. `\.' --- Same as `\d' followed by `\D'. `\(' --- Black and white of glyph of following characters are reversed. This command is recommended *only* for fixed-width fonts. (For the reason of current implementation, resulting bitmap is ugly for proportional fonts and you cannot read the text in an image.) Nesting of `\(' has no effect. `\)' --- End of reversing black and white. `\\' --- Print backslash itself. Trouble shooting ---------------- In case you failed to obtain a desired image output, the following command line options for debugging may be useful. (Debugging messages are printed to standard output. The `-none' option is useful to suppress printing binary image to your terminal. Otherwise, debugging message and image file are printed together on your terminal!) -ds --- Print the state transition of the parser for compound text. -dr2l --- Print the state transition of bi-directionality handling. -df --- Print font name to be opened. -dbc --- Print each character glyph in ascii-art form. -dbl --- Print each line image by in ascii-art form. -dbp --- Print entire page image in ascii-art form. -dall --- Selects all debugging options above.  File: VFlib-36.info, Node: Difference between VFlib version 3.6 and 2, Next: Concept index, Prev: Sample programs, Up: Top Difference between VFlib version 3.6 and 2 ****************************************** VFlib version 3.6 and version 2 are quite different and you should forget about VFlib version 2. VFlib 2 was designed only for Japanese Kanji fonts VFlib 3.6 can handle fonts for multilingual text printing. Font metric is introduced in VFlib 3.6 VFlib 2 does not concepts on font metrics since it assumes all characters are the same metrics. Font metrics is introduced in VFlib 3.6 and proportional fonts can be used. Syntax of vflibcap file Syntax of vflibcap file is quite different. VFlib 2 adopted termcap-like notation, but now VFlib 3.6 adopts lisp-like notation. Arguments and return values of function are changed In VFlib 2, bitmaps of characters are written in a frame buffer which is given by argument. But in VFlib 3.6, a bitmap object is returned.  File: VFlib-36.info, Node: Acknowledgments, Next: Concept index, Prev: Difference between VFlib version 3.6 and 2, Up: Top Acknowledgments *************** Since I released VFlib version 1, so many people helped me to improve VFlib. I am grateful for all of them. Special gratitude is due to Satoru Tomura, Ken'ichi Handa, Werner Lemberg, and Ichiro Matsuda.  File: VFlib-36.info, Node: Concept index, Next: Data type index, Prev: Acknowledgments, Up: Top Concept index ************* * Menu: * Arabic: ctext2pgm. 20. * ASCII Japanese TeX Kanji font class: ASCII Japanese TeX Kanji font class. 4. * BDF font class: BDF font class. 12. * CCV: Code conversion system. 5. * Chinese EUC: ctext2pgm. 10. * CNS 11641: ctext2pgm. 33. * code conversion system: Code conversion system. 5. * code-conversion-files: Code conversion system. 5. * compound text: ctext2pgm. 335. * Copyright: Copyright. 5. * Cyrillic: ctext2pgm. 15. * eKanji font class: eKanji font class. 4. * Emacs: ctext2pgm. 338. * EUC: ctext2pgm. 10. * explicit fonts: Explicit and implicit fonts. 4. * font class: Introduction. 57. * font driver: Introduction. 57. * FreeType: Installing VFlib. 46. * FreeType: TrueType font class. 7. * GB 2312: ctext2pgm. 29. * GF font class: GF font class. 4. * GNU Emacs: ctext2pgm. 338. * GNU Library General Public License: Copyright. 5. * HBF font class: HBF font class. 4. * Hebrew: ctext2pgm. 15. * High resolution oriented mode: Introduction. 125. * implicit fonts: Explicit and implicit fonts. 4. * Installing VFlib: Installing VFlib. 4. * ISO 8859: ctext2pgm. 15. * Japanese comic font class: Japanese comic font class. 4. * Japanese EUC: ctext2pgm. 10. * JG font class: JG font class. 4. * JIS X 0201: ctext2pgm. 25. * JIS X 0208: ctext2pgm. 25. * JIS X 0212: ctext2pgm. 25. * KangXi: eKanji font class. 21. * Korean EUC: ctext2pgm. 10. * kpathsea: Installing VFlib. 46. * KSC 5601: ctext2pgm. 37. * left-to-right directionality: ctext2pgm. 13. * LGPL: Copyright. 5. * libVFlib.a: Installing VFlib. 188. * libVFlib.a: Introduction. 35. * libVFlib.so: Installing VFlib. 188. * libVFlib.so: Introduction. 35. * Low resolution oriented mode: Introduction. 134. * Mojikyo font mapping class: Mojikyo font mapping class. 4. * Morohashi DaiKanwa: eKanji font class. 24. * Mule: ctext2pgm. 20. * Mule: ctext2pgm. 338. * PBM: ctext2pgm. 5. * PCF font class: PCF font class. 4. * PGM: ctext2pgm. 5. * PK font class: PK font class. 4. * right-to-left directionality: ctext2pgm. 13. * Shift JIS: ctext2pgm. 155. * T1Lib: Installing VFlib. 46. * T1Lib: Type1 font class. 8. * TeX default and TeX font mapping font class: TeX default and TeX font mapping font class. 4. * TFM font class: TFM font class. 4. * TrueType font class: TrueType font class. 4. * Try font class: Try font class. 4. * Type1 font class: Type1 font class. 4. * Unicode: eKanji font class. 18. * variables: Variables in vflibcap. 4. * VF font class: VF font class. 4. * VFlib-3_6.h: Building an application software with VFlib. 7. * vflibcap: Installing VFlib. 194. * vflibcap: Introduction. 47. * VFLIBCAP_PARAM_var: Variables in vflibcap. 14. * VFlib.fdb: Fast font file search. 5. * VFlib.fdb: vflmkfdb. 17. * Virtual Font library: Introduction. 72. * web2c: Installing VFlib. 46. * Zeit font class: Zeit font class. 4.  File: VFlib-36.info, Node: Data type index, Next: Function index, Prev: Concept index, Up: Top Data type index *************** * Menu: * struct vf_s_bitmap: bitmap type. 15. * struct vf_s_metric1: metric1 type. 13. * struct vf_s_metric2: metric2 type. 13. * VF_BITMAP: bitmap type. 15. * VF_METRIC1: metric1 type. 13. * VF_METRIC2: metric2 type. 13. * VF_OUTLINE: outline type. 29. * VF_OUTLINE_ELEM: outline type. 29.  File: VFlib-36.info, Node: Function index, Next: Program index, Prev: Data type index, Up: Top Function index ************** * Menu: * VF_ClearError: VF_ClearError(). 4. * VF_CloseFont: VF_CloseFont(). 4. * VF_CopyBitmap: VF_CopyBitmap(). 4. * VF_DumpBitmap: VF_DumpBitmap(). 4. * vf_error: vf_error. 4. * VF_FreeBitmap: VF_FreeBitmap(). 4. * VF_FreeMetric1: VF_FreeMetric1(). 4. * VF_FreeMetric2: VF_FreeMetric2(). 4. * VF_GetBitmap1: VF_GetBitmap1(). 4. * VF_GetBitmap2: VF_GetBitmap2(). 4. * VF_GetFontBoundingBox1: VF_GetFontBoundingBox1(). 4. * VF_GetFontBoundingBox2: VF_GetFontBoundingBox2(). 4. * VF_GetMetric1: VF_GetMetric1(). 4. * VF_GetMetric2: VF_GetMetric2(). 4. * VF_GetOutline: VF_GetOutline(). 4. * VF_GetProp: VF_GetProp(). 4. * VF_ImageOut_ASCIIArt: VF_ImageOut_ASCIIArt(). 4. * VF_ImageOut_ASCIIArtV: VF_ImageOut_ASCIIArtV(). 4. * VF_ImageOut_EPS: VF_ImageOut_EPS(). 4. * VF_ImageOut_PBMAscii: VF_ImageOut_PBMAscii(). 4. * VF_ImageOut_PGMAscii: VF_ImageOut_PGMAscii(). 4. * VF_ImageOut_PGMRaw: VF_ImageOut_PGMRaw(). 4. * VF_Init: VF_Init(). 6. * VF_InstallFontDriver: VF_InstallFontDriver(). 4. * VF_MakeScaledBitmap: VF_MakeScaledBitmap(). 4. * VF_OpenFont1: VF_OpenFont1(). 4. * VF_OpenFont2: VF_OpenFont2(). 4. * VF_OutlineToBitmap: VF_OutlineToBitmap(). 4. * VF_ReflectedBitmap: VF_ReflectedBitmap(). 4. * VF_RotatedBitmap: VF_RotatedBitmap(). 4.  File: VFlib-36.info, Node: Program index, Next: Acknowledgments, Prev: Function index, Up: Top Program index ************* * Menu: * ctext2pgm: ctext2pgm. 5. * vflbanner: A simple example. 5. * vfldisol: vfldisol. 5. * vfldrvs: vfldrvs. 5. * VFlib3-config: A simple example. 146. * vflmkcaptex: vflmkcaptex. 5. * vflmkfdb: vflmkfdb. 5. * vflpp: vflpp. 4. * vflserver: vflserver. 5. * vfltest: vfltest. 5. * vflx11: vflx11. 5.  vflib3-3.6.14.dfsg/utils/0000755000175000017500000000000010400435232014415 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/Makefile.in0000644000175000017500000000076307007156653016510 0ustar mohuramohura# Makefile for VFlib utils SUBDIRS = ctext2pgm vfl2bdf vflx11 hyaku makedefault: default include ../make-sub default all: @for d in $(SUBDIRS) ; do \ (cd $$d ; $(MAKE) $@); done install uninstall:: @echo "Installing utility programs..." @for d in $(SUBDIRS) ; do \ (cd $$d ; $(MAKE) $@); done clean veryclean:: for d in $(SUBDIRS) ; do \ (cd $$d ; $(MAKE) $@); done -rm -f X11/make-x11 distclean:: for d in $(SUBDIRS) ; do \ (cd $$d ; $(MAKE) $@); done -$(RM) *~ #EOF vflib3-3.6.14.dfsg/utils/vfl2bdf-2.0.0/0000755000175000017500000000000010400435232016375 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/vfl2bdf-2.0.0/vfl2bdf.c0000644000175000017500000003023106750036317020103 0ustar mohuramohura/* * vf2bdf * --- Generate a BDF font file from VFlib fonts. * * Programmed by Hirotsugu KAKUGAWA * E-Mail: h.kakugwa@computer.org * * Edition History * 18 Jan 1996 for VFlib 2 * 6 May 1997 for VFlib 3.2 * 6 Aug 1997 for VFlib 3.3 * 1 Mar 1999 for VFlib 3.5, bug fix. * */ /* * Copyright (C) 1996-1998 Hirotsugu Kakugawa. * All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #include #define VFL2BDF_VERSION "2.1" #define GLYPH_TYPE_FONT_BBX 0 #define GLYPH_TYPE_MIN_BBX 1 #define ENCODING_TYPE_FLAT 0 #define ENCODING_TYPE_94x94 1 int gtype = GLYPH_TYPE_FONT_BBX; int etype = ENCODING_TYPE_FLAT; int code_from = -1; int code_to = -1; int pixel = -1; int xoff = 0; int yoff = 0; int fixed = 0; int quiet = 0; char font_xlfd[1024]; int font_bbx_w, font_bbx_h; int font_off_x, font_off_y; int font_mv_x, font_mv_y; char *font_creator = "UNKNOWN"; char *font_family = "UNKNOWN"; char *charset_registry = "UNKNOWN"; char *charset_encoding = "0"; void usage(void); void DecideFontXLDF(int pixel_size, double point_size); int GenerateBDF(char *font_name, char *bdf_file_name); int BDF_PutChar(FILE *bdf_fp, VF_BITMAP bm, int code_point, int pixel_size); int BDF_Header(FILE *bdf_fp, int fid, int pixel_size, double point_size, int nchars, int default_char, int font_ascent, int font_descent, int font_bbx_w, int font_bbx_h, int font_off_x, int font_off_y); int BDF_Trailer(FILE *bdf_fp, int pixel_size); int main(argc, argv) int argc; char **argv; { int iarg; char *font_name, *bdf_file_name, *vflibcap; vflibcap = NULL; font_name = NULL; bdf_file_name = NULL; argv++; argc--; iarg = 0; while (argc > 0){ if (argv[0][0] != '-'){ switch (iarg++){ case 0: font_name = *argv; break; case 1: sscanf(*argv, "%i", &code_from); break; case 2: sscanf(*argv, "%i", &code_to); break; default: break; } } else { if (strcmp(argv[0], "-v") == 0){ if (--argc == 0) usage(); vflibcap = *(++argv); } else if (strcmp(argv[0], "-f") == 0){ if (--argc == 0) usage(); font_name = *(++argv); } else if (strcmp(argv[0], "-m") == 0){ gtype = GLYPH_TYPE_MIN_BBX; } else if (strcmp(argv[0], "-p") == 0){ if (--argc == 0) usage(); pixel = atoi(*(++argv)); if (pixel <= 0){ fprintf(stderr, "Illegal pixel size=%d\n", pixel); exit(1); } } else if (strcmp(argv[0], "-xoff") == 0){ if (--argc == 0) usage(); xoff = atoi(*(++argv)); } else if (strcmp(argv[0], "-yoff") == 0){ if (--argc == 0) usage(); yoff = atoi(*(++argv)); } else if (strcmp(argv[0], "-o") == 0){ if (--argc == 0) usage(); bdf_file_name = *(++argv); } else if (strcmp(argv[0], "-94x94") == 0){ etype = ENCODING_TYPE_94x94; } else if (strcmp(argv[0], "-fixed") == 0){ fixed = 1; } else if (strcmp(argv[0], "-q") == 0){ quiet = 1; } else if (strcmp(argv[0], "-font-creator") == 0){ if (--argc == 0) usage(); font_creator = *(++argv); } else if (strcmp(argv[0], "-font-family") == 0){ if (--argc == 0) usage(); font_family = *(++argv); } else if (strcmp(argv[0], "-charset-registry") == 0){ if (--argc == 0) usage(); charset_registry = *(++argv); } else if (strcmp(argv[0], "-charset-encoding") == 0){ if (--argc == 0) usage(); charset_encoding = *(++argv); } else { printf("Unknown option: %s\n", *argv); usage(); } } argc--; argv++; } if ((font_name == NULL) || (code_from < 0) || (code_to < 0)) usage(); if (VF_Init(vflibcap, NULL) < 0){ fprintf(stderr, "VFlib initialization error.\n"); exit(1); } GenerateBDF(font_name, bdf_file_name); return 0; } void usage(void) { printf("Usage: vfl2bdf [Options] FONT START END\n"); printf(" - Make a BDF font from VFlib font FONT.\n"); printf(" Range of code points is from START to END.\n"); printf("Options: \n"); printf(" -v FILE : vflibcap file\n"); printf(" -p PIXEL : pixel size of BDF font\n"); printf(" -o FILE : output file name\n"); printf(" -f FONT : font name\n"); printf(" -xoff N : shift N pixels to right\n"); printf(" -yoff N : shift N pixels to up\n"); printf(" -94x94 : assume the font is encoded in 94x94 style\n"); printf(" -m : make minimized bounding boxes\n"); printf(" -q : quiet mode\n"); printf(" -h : print how to use this program\n"); printf(" -font-family NAME : set font family name\n"); printf(" -charset-registry NAME : set charset registry name\n"); printf(" -charset-encoding NAME : set charset encoding name\n"); exit(0); } int GenerateBDF(char *font_name, char *bdf_file_name) { FILE *bdf_fp; int fid1, fid2; int code_point, nchars, default_char; int font_ascent, font_descent; int pixel_size; double point_size; VF_BITMAP bm, bm2; char *p; font_bbx_w = font_bbx_h = 0; font_off_x = font_off_y = 0; font_mv_x = font_mv_y = 0; font_ascent = font_descent = 0; default_char = code_from; if (bdf_file_name != NULL){ if ((bdf_fp = fopen(bdf_file_name, "w")) == NULL){ fprintf(stderr, "Can't open output file: %s\n", bdf_file_name); exit(0); } if (quiet == 0) fprintf(stderr, "Writing to %s\n", bdf_file_name); } else { bdf_fp = stdout; if (quiet == 0) fprintf(stderr, "Writing to %s\n", "standard output"); } /* PASS 1 */ if (quiet == 0) fprintf(stderr, "Pass 1\n"); if ((fid1 = VF_OpenFont2(font_name, pixel, 1, 1)) < 0){ fprintf(stderr, "Can't open font: %s.\n", font_name); exit(1); } nchars = 0; for (code_point = code_from; code_point <= code_to; code_point++){ if ((etype == ENCODING_TYPE_94x94) && ( ((code_point % 256) < 0x21) || (0x7e < (code_point % 256)) || ((code_point / 256) < 0x21) || (0x7e < (code_point / 256)))) continue; if ((bm = VF_GetBitmap2(fid1, code_point, 1, 1)) != NULL){ nchars++; if (font_bbx_w < bm->bbx_width) font_bbx_w = bm->bbx_width; if (font_bbx_h < bm->bbx_height) font_bbx_h = bm->bbx_height; if (font_mv_x < bm->mv_x) font_mv_x = bm->mv_x; if (font_mv_y < bm->mv_y) font_mv_y = bm->mv_y; if (font_off_x > bm->off_x) font_off_x = bm->off_x; if (font_off_y > (bm->bbx_height - bm->off_y)) font_off_y = (bm->bbx_height - bm->off_y); VF_FreeBitmap(bm); } } if ((pixel_size = pixel) < 0){ if ((p = VF_GetFontProp(fid1, "PIXEL_SIZE")) != NULL) pixel_size = atoi(p); } if ((p = VF_GetFontProp(fid1, "POINT_SIZE")) != NULL){ point_size = (double)atof(p)/10.0; } else { point_size = pixel_size; } if (quiet == 0){ fprintf(stderr, " Pixel size = %d\n", pixel); fprintf(stderr, " Point size = %.3f\n", point_size); fprintf(stderr, " %d chracters\n", nchars); } DecideFontXLDF(pixel_size, point_size); /* PASS 2 */ if (quiet == 0) fprintf(stderr, "Pass 2\n"); if (quiet == 0) fprintf(stderr, " XLFD = %s\n", font_xlfd); if ((fid2 = VF_OpenFont2(font_name, pixel, 1, 1)) < 0){ fprintf(stderr, "Can't open font: %s.\n", font_name); exit(1); } BDF_Header(bdf_fp, fid2, pixel_size, point_size, nchars, default_char, font_ascent, font_descent, font_bbx_w, font_bbx_h, font_off_x, font_off_y); for (code_point = code_from; code_point <= code_to; code_point++){ if ((etype == ENCODING_TYPE_94x94) && ( ((code_point % 256) < 0x21) || (0x7e < (code_point % 256)) || ((code_point / 256) < 0x21) || (0x7e < (code_point / 256)))) continue; if ((bm = VF_GetBitmap2(fid2, code_point, 1, 1)) != NULL){ if (gtype == GLYPH_TYPE_FONT_BBX){ BDF_PutChar(bdf_fp, bm, code_point, pixel_size); } else { if ((bm2 = VF_MinimizeBitmap(bm)) != NULL){ BDF_PutChar(bdf_fp, bm2, code_point, pixel_size); VF_FreeBitmap(bm2); } } VF_FreeBitmap(bm); } } BDF_Trailer(bdf_fp, pixel_size); fclose(bdf_fp); VF_CloseFont(fid1); VF_CloseFont(fid2); if (quiet == 0) fprintf(stderr, "done.\n"); return nchars; } void DecideFontXLDF(int pixel_size, double point_size) { sprintf(font_xlfd, "-%s-%s-%s-%s-%s--%d-%d-75-75-C-140-%s-%s", font_creator, font_family, "medium", "r", "normal", pixel_size, (int)(point_size*10.0), charset_registry, charset_encoding); } int BDF_Header(FILE *bdf_fp, int fid, int pixel_size, double point_size, int nchars, int default_char, int font_ascent, int font_descent, int font_bbx_w, int font_bbx_h, int font_off_x, int font_off_y) { char *p; fprintf(bdf_fp, "STARTFONT 2.1\n"); fprintf(bdf_fp, "COMMENT BDF font by VFL2BDF %s\n", VFL2BDF_VERSION); fprintf(bdf_fp, "FONT %s\n", font_xlfd); fprintf(bdf_fp, "SIZE %d 75 75\n", (int)(point_size+0.5)); fprintf(bdf_fp, "FONTBOUNDINGBOX %d %d %d %d\n", font_bbx_w, font_bbx_h, font_off_x + xoff, font_off_y + yoff); fprintf(bdf_fp, "STARTPROPERTIES 9\n"); fprintf(bdf_fp, "PIXEL_SIZE %d\n", pixel_size); fprintf(bdf_fp, "POINT_SIZE %d\n", (int)(point_size*10.0)); fprintf(bdf_fp, "RESOLUTION_X 75\n"); fprintf(bdf_fp, "RESOLUTION_Y 75\n"); if ((p = VF_GetFontProp(fid, "CHARSET_REGISTRY")) == NULL) p = "UNKNOWN"; fprintf(bdf_fp, "CHARSET_REGISTRY \"%s\"\n", p); if ((p = VF_GetFontProp(fid, "CHARSET_ENCODING")) == NULL) p = ""; fprintf(bdf_fp, "CHARSET_ENCODING \"%s\"\n", p); fprintf(bdf_fp, "DEFAULT_CHAR %d\n", default_char); fprintf(bdf_fp, "FONT_DESCENT %d\n", font_descent + yoff); fprintf(bdf_fp, "FONT_ASCENT %d\n", font_ascent + yoff); fprintf(bdf_fp, "ENDPROPERTIES\n"); fprintf(bdf_fp, "CHARS %d\n", nchars); return 0; } int BDF_Trailer(FILE *bdf_fp, int pixel_size) { fprintf(bdf_fp, "ENDFONT\n"); return 0; } int BDF_PutChar(FILE *bdf_fp, VF_BITMAP bm, int code_point, int pixel_size) { int x, y; unsigned char *p; fprintf(bdf_fp, "STARTCHAR 0x%X\n", code_point); fprintf(bdf_fp, "ENCODING %d\n", code_point); fprintf(bdf_fp, "SWIDTH %d %d\n", (int)(1000.0*(double)bm->mv_x/(double)pixel_size), (int)(1000.0*(double)bm->mv_y/(double)pixel_size)); if (fixed == 0){ /* propotional font */ fprintf(bdf_fp, "DWIDTH %d %d\n", bm->mv_x, bm->mv_y); fprintf(bdf_fp, "BBX %d %d %d %d\n", bm->bbx_width, bm->bbx_height, bm->off_x + xoff, bm->off_y - bm->bbx_height + yoff); fprintf(bdf_fp, "BITMAP\n"); for (y = 0; y < bm->bbx_height; y++){ p = &bm->bitmap[y*bm->raster]; for (x = 0; x < (bm->bbx_width+7)/8; x++) fprintf(bdf_fp, "%02X", p[x]); fprintf(bdf_fp, "\n"); } } else { /* monospace font */ fprintf(bdf_fp, "DWIDTH %d %d\n", font_mv_x, font_mv_y); fprintf(bdf_fp, "BBX %d %d %d %d\n", font_bbx_w, font_bbx_h, bm->off_x + xoff, bm->off_y - bm->bbx_height + yoff); fprintf(bdf_fp, "BITMAP\n"); for (y = 0; y < font_bbx_h - bm->bbx_height; y++){ for (x = 0; x < (bm->bbx_width+7)/8; x++) fprintf(bdf_fp, "00"); fprintf(bdf_fp, "\n"); } for (y = 0; y < bm->bbx_height; y++){ p = &bm->bitmap[y*bm->raster]; for (x = 0; x < (bm->bbx_width+7)/8; x++) fprintf(bdf_fp, "%02X", p[x]); for (x = (bm->bbx_width+7)/8; x < (font_bbx_w+7)/8; x++) fprintf(bdf_fp, "00"); fprintf(bdf_fp, "\n"); } } fprintf(bdf_fp, "ENDCHAR\n"); return 0; } /*EOF*/ vflib3-3.6.14.dfsg/utils/vfl2bdf-2.0.0/Readme.txt0000644000175000017500000000124506535650673020363 0ustar mohuramohura vfl2bdf - make a BDF font from VFlib font. May 15 1997 Hirotsugu Kakugawa kakugawa@se.hiroshima-u.ac.jp Usage: vfl2bdf [Options] FONT START END - Make a BDF font from VFlib font FONT. Range of code points is from START to END. Options: -p PIXEL : pixel size of BDF font. -o FILE : output file name. -v FILE : vflibcap file. -f FONT : font name. -h : print how to use this program. Examples: ./vfl2bdf -v /usr/local/lib/vflibcap timR24.pcf 0x20 0x7e ./vfl2bdf -v /usr/local/lib/vflibcap jiskan16.pcf 0x2121 0x7e7e ./vfl2bdf -v /usr/local/lib/vflibcap cmr10.400pk 0x00 0x7f /*EOF*/ vflib3-3.6.14.dfsg/utils/vfl2bdf-2.0.0/Makefile.in0000644000175000017500000000150007007156414020451 0ustar mohuramohura# # Makefile.in for vfl2bdf # by H.Kakugawa # # ----------------------------------------------------------------------- default: all PROGRAM = vfl2bdf LIBTOOL = ../../libtool include ../../make-sub VFLIB_DIR = ../../src PROGRAMS = vfl2bdf SRCS = vfl2bdf.c OBJS = vfl2bdf.o all: $(PROGRAMS) vfl2bdf: $(OBJS) $(VFLIB_DIR)/libVFlib3.la $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o $@ vfl2bdf.o \ $(VFLIB_DIR)/libVFlib3.la vfl2bdf.o: vfl2bdf.c $(CC) $(VFCFLAGS) -I$(VFLIB_DIR) -c vfl2bdf.c install: $(PROGRAM) @$(LIBTOOL) --mode=install \ ../../$(INSTALL_PROGRAM) vfl2bdf $(bindir)/vfl2bdf uninstall: @$(LIBTOOL) --mode=uninstall $(RM) $(bindir)/vfl2bdf clean:: -$(RM) $(PROGRAM) veryclean:: clean distclean:: clean # ----------------------------------------------------------------------- vflib3-3.6.14.dfsg/utils/vfl2bdf-2.0.0/sample.sh0000755000175000017500000000125306667661345020250 0ustar mohuramohura#!/bin/sh OPT_VFLIBCAP=vflibcap-tex ./vfl2bdf -o min48.bdf -p 48 -v ${OPT_VFLIBCAP} \ -font-family Mincho.Fixed -94x94 \ -charset-registry jisx0208.1990 -charset-encoding 0 \ min10.pk 0x2121 0x747e bdftopcf min48.bdf > min48.pcf ./vfl2bdf -o minh48.bdf -p 48 -v ${OPT_VFLIBCAP} \ -font-family Mincho.Fixed -94x94 \ -charset-registry jisx0212.1990 -charset-encoding 0 \ minh10.pk 0x2121 0x747e bdftopcf minh48.bdf > minh48.pcf ./vfl2bdf -o 24x48.bdf -p 48 -v ${OPT_VFLIBCAP} \ -font-family Fixed \ -charset-registry iso8859 -charset-encoding 1 \ 12x24.pcf 0x00 0xff bdftopcf 24x48.bdf > 24x48.pcf vflib3-3.6.14.dfsg/utils/vflx11-2.0.1/0000755000175000017500000000000010400435232016172 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/vflx11-2.0.1/Imakefile.in0000644000175000017500000000210206641557741020431 0ustar mohuramohura/* * Imakefile.in for vflx11 * by H.Kakugawa */ /* ----------------------------------------------------------------------- */ makedefault: default LIBTOOL = ../../libtool include ../../make-sub /* ----------------------------------------------------------------------- */ VFLIB_DIR = ../../src PROGRAMS = vflx11 SRCS = vflx11.c OBJS = vflx11.o default all:: $(PROGRAMS) vflx11: $(OBJS) $(VFLIB_DIR)/libVFlib3.la $(RM) $@ $(LIBTOOL) --mode=link \ $(CC) -o $@ $(OBJS) \ $(LDOPTIONS) $(XLIB) $(VFLIB_DIR)/libVFlib3.la \ vflx11s: $(OBJS) $(VFLIB_DIR)/libVFlib3.la $(RM) $@ $(LIBTOOL) --mode=link \ $(CC) -o $@ -static $(OBJS) \ $(LDOPTIONS) $(XLIB) $(VFLIB_DIR)/libVFlib3.la vflx11.o: vflx11.c $(CC) $(VFCFLAGS) -I$(INCROOT) -c vflx11.c install:: $(PROGRAMS) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) vflx11 $(bindir)/vflx11 uninstall:: $(LIBTOOL) --mode=uninstall $(RM) $(bindir)/vflx11 clean:: -$(RM) $(PROGRAMS) vflx11s veryclean:: clean distclean:: clean /* ----------------------------------------------------------------------- */ vflib3-3.6.14.dfsg/utils/vflx11-2.0.1/vflx11.c0000644000175000017500000004273010264673441017503 0ustar mohuramohura/* * vfx11 - Display characters on a X11R6 window * by Hirotsugu Kakugawa (h.kakugawa@computer.org) * * Edition History * 24 Jan 1997 Simple version. * 25 Jan 1997 Enhanced parsing of cmd line args. * Added key operations: '<', '>', 'm', 'g', and '?'. * 28 Jan 1997 Added '+', '-', and 'r' operations. * 22 Mar 1997 Upgrade for VFlib 3.2 * 20 May 1997 Bug fixed. (Window Clear) * 1 Sep 1998 Upgrade for VFlib 3.5 */ /* * Copyright (C) 1997-1998 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "../../src/config.h" #include #include #include #include #include #include #if defined(HAVE_STRING_H) || defined(STDC_HEADERS) # include #else # include #endif #include "../../src/VFlib-3_6.h" #define VFLX11_VERSION "2.0.0" #define CMD_NOP 0 #define CMD_NEXT_PAGE 1 #define CMD_PREV_PAGE 2 #define CMD_EXIT 3 #define CMD_RESIZE 4 #define CMD_FIRST_PAGE 5 #define CMD_LAST_PAGE 6 #define CMD_SET_MARK 7 #define CMD_GOTO_MARK 8 #define CMD_HELP 9 #define CMD_P4PAGES 10 #define CMD_N4PAGES 11 #define CMD_P16PAGES 12 #define CMD_N16PAGES 13 #define CMD_P64PAGES 14 #define CMD_N64PAGES 15 #define CMD_ENLARGE 20 #define CMD_SHRINK 21 #define CMD_REDRAW 22 #define CMD_REOPEN 23 #define POLL_NOTHING 0 #define POLL_EVENT 1 #define ACT_NONE 0 #define ACT_BREAK 1 #define ACT_WINCH 2 #define ACT_REDRAW 3 #define DEFAULT_PIXEL_SIZE 24 #define CHAR_BORDER_FACTOR 1.2 int Mode = 2; char *FontName; double ArgFontSize = -1; double FontSize = -1; double Dpi_X = 1, Dpi_Y = -1; int OutlineMode = 0; int Verbose = 0; int Mode94x94 = 0; int PageSize = 256; double CharBorderX = CHAR_BORDER_FACTOR; double CharBorderY = CHAR_BORDER_FACTOR; #define CHARS_PER_LINE 16 int Font_ID; int Page; int PageMin, PageMax; int StartInPage, EndInPage; int SkipBeginInPage, SkipEndInPage; int CharWidth, CharHeight, CharLines; int CharWidth0, CharHeight0; double FMagX, FMagY; int MagX, MagY; #define MAG_SCALE 100.0 #define MAGX() ((double)MagX/MAG_SCALE) #define MAGY() ((double)MagY/MAG_SCALE) int usage(), key_usage(); int OpenFont(), Loop(), Cmd(), CodePoint(); void change_win_size(); void Win_Init(), Win_Clear(), Win_PutBitmap(), Win_Beep(), Win_ChangeSize(); int Win_UserCmd(), Win_PollUserCmd(); extern double atof(); int main(argc, argv) int argc; char **argv; { char *vflibcap; int na; Mode = 2; FontName = NULL; ArgFontSize = -1; FontSize = -1; FMagX = 1.0; FMagY = 1.0; MagX = 1 * MAG_SCALE; MagY = 1 * MAG_SCALE; CharBorderX = CHAR_BORDER_FACTOR; CharBorderY = CHAR_BORDER_FACTOR; OutlineMode = 0; vflibcap = NULL; for (argv++, argc--; argc > 0; argc -= na, argv += na){ na = 1; if (argv[0][0] != '-'){ FontName = argv[0]; continue; } else if (strcmp(argv[0], "-verbose") == 0){ Verbose = 1; continue; } else if (strcmp(argv[0], "-94x94") == 0){ Mode94x94 = 1; continue; } else if (strcmp(argv[0], "-mode1") == 0){ Mode = 1; continue; } else if (strcmp(argv[0], "-mode2") == 0){ Mode = 2; continue; } else if (strcmp(argv[0], "-ol") == 0){ OutlineMode = 1; continue; } else if (strcmp(argv[0], "-help") == 0){ usage(); exit(0); } else if (strcmp(argv[0], "--help") == 0){ usage(); exit(0); } na = 2; if (argc < 2){ usage(); break; } if (strcmp(argv[0], "-f") == 0){ FontName = argv[1]; } else if (strcmp(argv[0], "-v") == 0){ vflibcap = argv[1]; } else if (strcmp(argv[0], "-s") == 0){ PageSize = atoi(argv[1]); } else if (strcmp(argv[0], "-p") == 0){ ArgFontSize = atof(argv[1]); } else if (strcmp(argv[0], "-m") == 0){ FMagX = FMagY = atof(argv[1]); } else if (strcmp(argv[0], "-mx") == 0){ FMagX = atof(argv[1]); } else if (strcmp(argv[0], "-my") == 0){ FMagY = atof(argv[1]); } else if (strcmp(argv[0], "-b") == 0){ CharBorderX = CharBorderY = atof(argv[1]); if (CharBorderX < 0) CharBorderX = CharBorderY = CHAR_BORDER_FACTOR; } else if (strcmp(argv[0], "-bx") == 0){ CharBorderX = atof(argv[1]); if (CharBorderX < 0) CharBorderX = CHAR_BORDER_FACTOR; } else if (strcmp(argv[0], "-by") == 0){ CharBorderY = atof(argv[1]); if (CharBorderY < 0) CharBorderY = CHAR_BORDER_FACTOR; } else { usage(); } } if (FontName == NULL) usage(); if ((Mode == 2) && (OutlineMode == 1)){ fprintf(stderr, "Warning: Outline mode is not supported in mode 2.\n"); } if (VF_Init(vflibcap, NULL) < 0){ fprintf(stderr, "Initializing VFlib: failed\n"); if (vf_error == VF_ERR_NO_VFLIBCAP){ if (vflibcap == NULL){ fprintf(stderr, "Could not read default vflibcap file.\n"); } else { fprintf(stderr, "Could not read vflibcap file: %s.\n", vflibcap); } } exit(1); } PageMin = 0; PageMax = 0xffff; StartInPage = 0x00; EndInPage = 0xff; if (Mode94x94 != 0){ StartInPage = 0x20; EndInPage = 0x7f; } SkipBeginInPage = -1; SkipEndInPage = -1; Font_ID = -1; if (Verbose == 1) printf("Opening font: %s\n", FontName); if (OpenFont() < 0){ fprintf(stderr, "Failed to open a font: %s\n", FontName); exit(1); } Loop(); return 0; } int usage() { printf("vflx11 - Display VFlib font version %s, based on VFlib %s.\n", VFLX11_VERSION, VF_GetVersion()); printf("Usage: vfx11 [Options] FONT\n"); printf("Options: \n"); printf(" -v VFLIBCAP : vflibcap file\n"); printf(" -p PIXEL : pixel size (or point size)\n"); printf(" -m MAG : magnification\n"); printf(" -mx MAG_X : horizontal magnification\n"); printf(" -my MAG_Y : vertical magnification\n"); printf(" -f FONT : font name\n"); printf(" -mode1 : open font in mode 1\n"); printf(" -mode2 : open font in mode 2\n"); printf(" -ol : outline mode for mode 1\n"); key_usage(); printf("Example: vflx11 -v vflibcap-pcf -m 0.5 timR24.pcf\n"); exit(0); } int OpenFont(void) { int fd; char *p; fd = -1; if (Mode == 1){ if (ArgFontSize < 0) fd = VF_OpenFont1(FontName, -1, -1, -1, FMagX, FMagY); else fd = VF_OpenFont1(FontName, -1, -1, ArgFontSize, FMagX, FMagY); } else if (Mode == 2){ if (ArgFontSize < 0) fd = VF_OpenFont2(FontName, -1, FMagX, FMagY); else fd = VF_OpenFont2(FontName, ArgFontSize, FMagX, FMagY); } if (fd < 0) return -1; if ((p = VF_GetFontProp(fd, "PIXEL_SIZE")) != NULL) FontSize = atof(p); else FontSize = DEFAULT_PIXEL_SIZE; if (Font_ID >= 0){ VF_CloseFont(Font_ID); Font_ID = -1; } Font_ID = fd; if (Verbose == 1) printf("Pixel size: %d\n", (int)FontSize); return 0; } int key_usage() { printf("Key and mouse operations:\n"); printf(" q (or mouse middle button) : exit\n"); printf(" b (or mouse left button) : go to previous page\n"); printf(" SPC (or mouse right button) : go to next page\n"); printf(" m : set mark on current page\n"); printf(" g : go to marked page\n"); printf(" + : enlarge window\n"); printf(" - : shrink window\n"); printf(" d : redraw window\n"); printf(" ? : help\n"); return 0; } int Loop() { VF_BITMAP bm = NULL, bm2; VF_OUTLINE ol; int act, nl0, nl1, c; if (MagX < 0) MagX = 1 * MAG_SCALE; if (MagY < 0) MagY = 1 * MAG_SCALE; nl0 = StartInPage/CHARS_PER_LINE; nl1 = (EndInPage+CHARS_PER_LINE-1)/CHARS_PER_LINE; CharLines = nl1 - nl0; CharWidth = FontSize * CharBorderX; CharHeight = FontSize * CharBorderY; Win_Init(CharWidth * CHARS_PER_LINE, CharHeight * CharLines); Page = PageMin; for (;;){ Win_Clear(); AGAIN: for (c = StartInPage; c <= EndInPage; c++){ if ((SkipBeginInPage <= c) && (c <= SkipEndInPage)) continue; if (Win_PollUserCmd() == POLL_EVENT){ if ((act = Cmd()) != ACT_NONE){ if (act == ACT_WINCH) change_win_size(); Win_Clear(); goto AGAIN; } } bm = NULL; if (Mode == 1){ if (OutlineMode == 0){ bm = VF_GetBitmap1(Font_ID, CodePoint(c), MAGX(), MAGY()); } else { bm = NULL; if ((ol = VF_GetOutline(Font_ID, CodePoint(c), MAGX(), MAGY())) != NULL){ bm = VF_OutlineToBitmap(ol, -1, -1, -1, 1.0, 1.0); VF_FreeOutline(ol); } } } else if (Mode == 2){ bm = VF_GetBitmap2(Font_ID, CodePoint(c), MAGX(), MAGY()); } if (bm != NULL){ bm2 = VF_MinimizeBitmap(bm); if (bm2 != NULL){ Win_PutBitmap(bm2, c%CHARS_PER_LINE, c/CHARS_PER_LINE - nl0, CharWidth, CharHeight); VF_FreeBitmap(bm2); } else { Win_PutBitmap(bm, c%CHARS_PER_LINE, c/CHARS_PER_LINE - nl0, CharWidth, CharHeight); } VF_FreeBitmap(bm); } } while ((act = Cmd()) == ACT_NONE) ; if (act == ACT_WINCH) change_win_size(); } return 0; } int Cmd() { static int markedPage = -100; int temp; switch (Win_UserCmd()){ default: case CMD_NOP: return ACT_NONE; case CMD_EXIT: exit(0); case CMD_PREV_PAGE: if (Page > PageMin){ Page = Page - 1; return ACT_BREAK; } else Win_Beep(); break; case CMD_NEXT_PAGE: if (Page < PageMax){ Page = Page + 1; return ACT_BREAK; } else Win_Beep(); break; case CMD_N64PAGES: Page += 64; if (Page > PageMax) Page = PageMax; return ACT_BREAK; case CMD_P64PAGES: Page -= 64; if (Page < PageMin) Page = PageMin; return ACT_BREAK; case CMD_N16PAGES: Page += 16; if (Page > PageMax) Page = PageMax; return ACT_BREAK; case CMD_P16PAGES: Page -= 16; if (Page < PageMin) Page = PageMin; return ACT_BREAK; case CMD_N4PAGES: Page += 4; if (Page > PageMax) Page = PageMax; return ACT_BREAK; case CMD_P4PAGES: Page -= 4; if (Page < PageMin) Page = PageMin; return ACT_BREAK; case CMD_FIRST_PAGE: Page = PageMin; return ACT_BREAK; case CMD_LAST_PAGE: Page = PageMax; return ACT_BREAK; case CMD_SET_MARK: markedPage = Page; break; case CMD_GOTO_MARK: if (markedPage >= PageMin){ temp = Page; Page = markedPage; markedPage = temp; return ACT_BREAK; } else Win_Beep(); break; case CMD_HELP: key_usage(); break; case CMD_RESIZE: return ACT_WINCH; case CMD_REDRAW: return ACT_REDRAW; case CMD_ENLARGE: MagX = MagX + 20; MagY = MagY + 20; return ACT_WINCH; case CMD_SHRINK: if ((MagX > 30) && (MagY > 30)){ MagX = MagX - 20; MagY = MagY - 20; } return ACT_WINCH; case CMD_REOPEN: if (Verbose == 1) printf("Reopening font: %s\n", FontName); if (OpenFont() < 0){ fprintf(stderr, "Failed to reopen a font: %s\n", FontName); exit(1); } return ACT_REDRAW; } return ACT_BREAK; } int CodePoint(c) int c; { return Page * PageSize + c; } void change_win_size() { CharWidth = FontSize * CharBorderX * MAGX(); CharHeight = FontSize * CharBorderY * MAGY(); Win_ChangeSize(CharWidth * CHARS_PER_LINE, CharHeight * CharLines); } /*------------------------*/ Display *Disp; Window Win; XEvent xevent, *xev = NULL; GC Gc; XGCValues GcVal; XSetWindowAttributes Att; unsigned int WinX, WinY, WinBorder, WinDepth; char *DisplayName; char WindowName[256]; #define WIN_BORDER 3 void Win_Init(w, h) int w, h; { if ((w > 2000) || (h > 2000)){ fprintf(stderr, "Window is too large: (%dx%d)\n", w, h); exit(0); } WinX = w + WIN_BORDER * 2; WinY = h + WIN_BORDER * 2; DisplayName = NULL; Disp = XOpenDisplay(DisplayName); if (Disp == NULL){ fprintf(stderr, "Can't open display\n"); exit(1); } Win = XCreateSimpleWindow(Disp, RootWindow(Disp, 0), 0, 0, WinX, WinY, 2, BlackPixel(Disp, 0), WhitePixel(Disp, 0)); Gc = XCreateGC(Disp, Win, 0, 0); XSetForeground(Disp, Gc, WhitePixel(Disp, 0)); /* Att.override_redirect = True; Att.backing_store = Always; XChangeWindowAttributes(Disp, Win, CWOverrideRedirect, &Att); XChangeWindowAttributes(Disp, Win, CWBackingStore, &Att); */ XSelectInput(Disp, Win, (KeyPressMask|ButtonPressMask|ExposureMask|ConfigureNotify)); XMapWindow(Disp, Win); Win_Clear(); XFlush(Disp); } void Win_Clear() { sprintf(WindowName, "VFlib font: %s (0x%X-0x%X / %d-%d)", FontName, CodePoint(StartInPage), CodePoint(EndInPage), CodePoint(StartInPage), CodePoint(EndInPage)); XStoreName(Disp, Win, WindowName); XFillRectangle(Disp, Win, Gc, 0, 0, WinX, WinY); } void Win_Beep() { XBell(Disp, 50); } void Win_PutBitmap(bm, x, y, cw, ch) VF_BITMAP bm; int x, y, cw, ch; { int w, h, ix, iy, i, n; unsigned char *xbitmap, c; Pixmap pix; unsigned long fg, bg; unsigned int depth; static unsigned char bit_rev[] = { /* 0000 0001 0010 0011 0100 0101 0110 0111 */ 0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe, /* 1000 1001 1010 1011 1100 1101 1110 1111 */ 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf }; if (bm == NULL) return; depth = DefaultDepth(Disp, DefaultScreen(Disp)); fg = BlackPixel(Disp, DefaultScreen(Disp)); bg = WhitePixel(Disp, DefaultScreen(Disp)); if ((w = bm->bbx_width) == 0) w = 1; if ((h = bm->bbx_height) == 0) h = 1; n = h * ((w+7)/8); if ((xbitmap = (unsigned char*)malloc(n)) == NULL){ fprintf(stderr, "No Memory.\n"); exit(1); } for (i = 0; i < n; i++) xbitmap[i] = 0; if ((bm->bbx_width != 0) && (bm->bbx_height != 0)){ for (iy = 0; iy < bm->bbx_height; iy++){ for (ix = 0; ix < (bm->bbx_width+7)/8; ix++){ c = bm->bitmap[ix+iy*bm->raster]; xbitmap[ix+iy*((bm->bbx_width+7)/8)] = bit_rev[(c%0x10)]*0x10 + bit_rev[(c/0x10)]; } } } pix = XCreatePixmapFromBitmapData(Disp, Win, (char*)xbitmap, w, h, fg, bg, depth); XCopyArea(Disp, pix, Win, Gc, 0, 0, w, h, x*cw + bm->off_x + WIN_BORDER, y*ch - bm->off_y + ch*0.8 + WIN_BORDER); XFreePixmap(Disp, pix); free(xbitmap); } void Win_ChangeSize(w, h) { WinX = w + WIN_BORDER * 2; WinY = h + WIN_BORDER * 2; XResizeWindow(Disp, Win, w, h); } int Win_UserCmd() { char str[10]; KeySym k; if (xev == NULL) XNextEvent(Disp, &xevent); xev = NULL; switch(xevent.type){ case ButtonPress: switch (xevent.xbutton.button){ case 1: return CMD_PREV_PAGE; case 2: return CMD_EXIT; case 3: return CMD_NEXT_PAGE; } case Expose: return CMD_REDRAW; #if 0 case ConfigureNotify: x = xevent.xconfigure.width; y = xevent.xconfigure.height; if ((WinX != x) || (y != WinY)){ WinX = x; WinY = y; return CMD_RESIZE; } #endif break; case KeyPress: if (XLookupString(&xevent.xkey, str, 10, &k, NULL) == 1){ switch (k){ case XK_b: case XK_B: case XK_BackSpace: case XK_Delete: case XK_j: return CMD_PREV_PAGE; case XK_space: case XK_Return: case XK_Linefeed: case XK_k: return CMD_NEXT_PAGE; case XK_bracketleft: case XK_h: return CMD_P4PAGES; case XK_bracketright: case XK_l: return CMD_N4PAGES; case XK_braceleft: return CMD_P16PAGES; case XK_braceright: return CMD_N16PAGES; case XK_parenleft: return CMD_P64PAGES; case XK_parenright: return CMD_N64PAGES; case XK_less: return CMD_FIRST_PAGE; case XK_greater: return CMD_LAST_PAGE; case XK_m: case XK_M: return CMD_SET_MARK; case XK_g: case XK_G: return CMD_GOTO_MARK; case XK_question: return CMD_HELP; case XK_q: case XK_Q: return CMD_EXIT; case XK_plus: return CMD_ENLARGE; case XK_minus: return CMD_SHRINK; case XK_r: return CMD_REOPEN; case XK_d: return CMD_REDRAW; } break; } default: return CMD_NOP; } return CMD_NOP; } int Win_PollUserCmd() { int val; char str[10]; KeySym k; val = POLL_NOTHING; xev = NULL; if (XCheckWindowEvent(Disp, Win, (KeyPressMask | ButtonPressMask | ExposureMask | ConfigureNotify), &xevent) == False) return POLL_NOTHING; switch(xevent.type){ case Expose: case ButtonPress: val = POLL_EVENT; break; #if 0 case ConfigureNotify: if ((WinX != xevent.xconfigure.width) || (WinY != xevent.xconfigure.height)) val = POLL_EVENT; break; #endif case KeyPress: if (XLookupString(&xevent.xkey, str, 10, &k, NULL) == 1) val = POLL_EVENT; break; } if (val == POLL_EVENT) xev = &xevent; return val; } /*EOF*/ vflib3-3.6.14.dfsg/utils/vflx11-2.0.1/Makefile.in0000644000175000017500000000163507575235055020270 0ustar mohuramohura# # Imakefile.in for vflx11 # by H.Kakugawa # # makedefault: default LIBTOOL = ../../libtool include ../../make-sub include ../../X11/x11.mk # VFLIB_DIR = ../../src PROGRAMS = vflx11 SRCS = vflx11.c OBJS = vflx11.o default all:: $(PROGRAMS) vflx11: $(OBJS) $(VFLIB_DIR)/libVFlib3.la $(RM) $@ $(LIBTOOL) --mode=link \ $(CC) -o $@ $(OBJS) \ $(LDFLAGS) $(VFLIB_DIR)/libVFlib3.la -L$(USRLIBDIR) $(XLIB) vflx11s: $(OBJS) $(VFLIB_DIR)/libVFlib3.la $(RM) $@ $(LIBTOOL) --mode=link \ $(CC) -o $@ -static $(OBJS) \ $(LDFLAGS) $(VFLIB_DIR)/libVFlib3.la -L$(USRLIBDIR) $(XLIB) vflx11.o: vflx11.c $(CC) $(VFCFLAGS) -I$(INCROOT) -c vflx11.c install:: $(PROGRAMS) @$(LIBTOOL) --mode=install \ ../../$(INSTALL_PROGRAM) vflx11 $(bindir)/vflx11 uninstall:: @$(LIBTOOL) --mode=uninstall $(RM) $(bindir)/vflx11 clean:: -$(RM) $(PROGRAMS) vflx11s veryclean:: clean distclean:: clean # EOF vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/0000755000175000017500000000000010400435232016171 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/hyaku-1.1.0/hyaku.txt0000644000175000017500000004105006637663302020075 0ustar mohuramohura### ### һ² (ɴͰ) ### ɮ ### ģ¢ֻ͡ޡ졻ޡ ### 1 ŷŷ Ĥ ۤΰä Ѥ򤢤 郎 Ϫˤ̤Ĥ 1 Ƥ󤸤ƤΤ Τ ۤΤۤ Ȥޤ򤢤 郎Ǥ Ĥˤ̤Ĥ # 2 ŷ ղ᤮ ˤ餷 ̯ ۤƤ ޤΤ 2 ȤƤΤ Ϥ뤹 ʤĤˤ餷 ۤƤ ޤΤ # 3 ܿϤ Ȥ ɤ ʤʤ Ȥ꤫ͤ 3 ΤȤΤҤȤޤ Ӥ ޤɤΤ ʤʤ ҤȤ꤫ͤ # 4 ֿ ĻҤΤ ФǤƤߤ ̯ դιͤ ϤդĤ 4 ޤ٤ΤҤ Τ ǤƤߤ ؤ դΤͤ 椭ϤդĤ # 5 դդʬ ʤ ʹȤ Ϥʤ 5 ޤ椦 ޤ ߤդߤ櫓 ʤ 񤭤Ȥ Ϥʤ # 6 ǼȻ 錄붶 ߤ 뤾ˤ 6 夦ʤ䤫 錄Ϥ ߤ 褾դˤ # 7 ŷθ դꤵߤ ʤ ޤλ ФǤ 7 ٤Τʤޤ ޤΤϤ դꤵߤ ʤ ߤΤޤ ǤĤ # 8 ˡ ä ԤΤĤ 򱧼 ͤϤդʤ 8 ۤ 郎ۤ ߤ䤳ΤĤ 򤦤¤ޤ ҤȤϤդʤ # 9 Į ֤ο Ĥˤ Ť ˤդ ʤ᤻ޤ 9 ΤΤޤ ϤʤΤ Ĥˤ Ť 郎ߤˤդ ʤ᤻ޤ # 10 亡 椯ⵢ ̤Ƥ ⤷̤ պδ 10 ߤޤ 䤳 椯⤫ 狼Ƥ ⤷̤ դΤ # 11 錄θ Ȭ礫 ФǤ̤ ͤˤϤĤ ޤ཮ 11 󤮤 錄ΤϤ 䤽ޤ Ǥ̤ ҤȤˤϤĤ ޤΤĤ֤ # 12 ׾ ŷĤ ϩ ᤭Ȥ¤ ȤΤ ФȤɤ 12 礦ؤ󤸤礦 ޤĤ ΤҤ դȤ¤ ȤΤ ФȤɤ # 13 ĤФͤ ꤪĤ ߤʤ ҤĤ ʥȤʤꤱ 13 褦 ĤФͤ ߤͤꤪĤ ߤʤΤ ҤĤ դȤʤ̤ #** ɮܡʥȤʤꤱ ή:ʥȤʤ̤ # 14 ϸ ߤΤ Ǧ֤¤ ˤ ʤʤ 14 Τ ߤΤ Τ֤¤ ߤ줽ˤ ʤʤ # 15 ŷ դΤΤ˽ФǤ 狼ʤĤ ϤդĤ 15 ƤΤ ߤ ϤΤΤˤǤ 狼ʤĤ 郎Ǥ 椭ϤդĤ # 16 Ǽʿ Ω̤ ʤФλ ߤͤդ Ȥ 16 夦ʤ椭Ҥ 狼 ʤФΤޤ ߤͤˤդ ޤĤȤ ޤؤꤳ # 17 ߸ʿī ῶ ⤭ Ĥ Ȥ 夯Ȥ 17 ΤʤҤ餢 Ϥ֤ ߤ⤭ Ĥ 餯ʤ ߤȤ # 18 ƣҹī ι ߤˤ 뤵ؤ ̴ϩ ͤ褯 18 դΤȤ椭 ߤΤ ˤʤ 뤵ؤ ΤҤ ҤȤ褯 # 19 Ȥ ߤ դδ֤ ϤǺ ƤȤ 19 ʤˤ郎 ߤ դΤޤ ϤǤΤ ƤȤ # 20 ɿƲ ΤӤ̤ Ϥʤ ʤˤϤʤ ȤĤƤ ϤȤפ 20 Ȥ褷Τ Ӥ̤ ޤϤʤ ʤˤʤ ߤĤƤ Ȥ # 21 ˡ ҤФ Ĺ ͭη ԽФǤĤ뤫 21 ۤ ޤ ҤФ ʤĤ ꤢΤĤ ޤǤĤ뤫 # 22 ʸ ᤯ ڤ ٻ 餷Ȥդ 22 դΤ䤹Ҥ դ Τ ٤ޤ 餷Ȥդ # 23 繾Τ ߤ ʪ ʤ ȤҤȤĤ ˤϤͤ 23 Τ Ĥߤ ¤ˤΤ ʤ 郎ߤҤȤĤ ˤϤͤ # 24 ɲ ٤ ̤Ȥꤢؤ դΤˤ Τޤˤޤ 24 ΤӤ ̤Ȥꤢؤ ऱ ߤ¤Τˤ ߤΤޤˤޤ # 25 ̾ˤϤ 仳 ͤŤ ͤˤ 褷⤬ 25 󤸤礦Τ ʤˤϤ դޤ ͤŤ ҤȤˤ 褷⤬ # 26 翮 򤰤 ߤͤΤߤ ٤ ߤ椭ޤʤ 26 Ƥ󤳤 򤰤 ߤͤΤߤ ޤҤȤӤ ߤ椭ޤʤ # 27 Ǽ ߤθ 來Ƥʤ Ť ĤߤȤƤ 27 夦ʤ󤫤ͤ ߤΤϤ 來Ƥʤ ߤ ĤȤƤ Ҥ # 28 вī Ȥ ߤӤ ޤꤱ ͤ ̤Ȥؤ 28 ߤʤȤΤͤ椭 ޤȤ դ椾Ӥ ޤꤱ ҤȤ⤯ ̤Ȥؤ # 29 ޲ Ƥ Ф ϤĤ ֤ޤɤϤ 餮β 29 ΤߤĤ Ƥ Ф ϤĤ ޤɤϤ 餮ΤϤ # 30 ֪ ͭ Ĥʤ ̤ ǤФ ʪϤʤ 30 ߤ֤Τߤ ꤢ Ĥʤߤ 狼 ĤФ ΤϤʤ # 31 § īܤ餱 ꤢη ޤǤ ˧ΤȤ դ 31 ΤΤΤ ܤ餱 ꤢΤĤ ߤޤǤ 褷ΤΤȤ դ뤷椭 # 32 ƻ Ϥ Τ ߤ ʤ⤢ؤ դʤꤱ 32 ϤߤΤĤ餭 ޤϤ 椭Τ ߤ ʤ⤢ؤ ߤʤꤱ # 33 ͧ§ ׷ Τɤ դ Ťʤ ֤Τ 33 ΤȤΤ Ҥ ҤΤɤ ϤΤҤ Ťʤ ϤʤΤ # 34 ƣ 򤫤 ͤˤ ⺽ फ ͧʤʤ 34 դΤ 򤫤 ҤȤˤ ޤĤफ Ȥʤʤ # 35 Ƿ ͤϤ ⤷餺 դ뤵Ȥ ֤फ ˤˤۤҤ 35 ΤĤ椭 ҤȤϤ ⤷餺 դ뤵Ȥ Ϥʤफ ˤˤۤҤ # 36 Ƥ ޤҤʤ ̤ ΤŤ ɤ 36 ҤϤΤդ ʤĤΤ ޤҤʤ ̤ ΤŤ Ĥɤ #** ή:ֱΤˡ # 37 ʸī Ϫ ο᤭ Ĥ̤Ȥ ̤ꤱ 37 դΤ䤹 Ĥ Τդ ΤΤ Ĥ̤Ȥ ޤꤱ # 38 ˺ ȤлפϤ ҤƤ ͤΤΤ ⤢뤫 38 魯 ߤФϤ ҤƤ ҤȤΤΤ ⤢뤫 # 39 ¤դ ΤΤθ Ǧ֤ ޤƤʤɤ ͤΤҤ 39 󤮤ҤȤ ¤դ ΤΤΤϤ Τ֤ ޤƤʤɤ ҤȤΤҤ # 40 ʿ Ǧ֤ ˤǤˤ ʪ䤪դ ͤΤȤդޤ 40 Τͤ Τ֤ ˤǤˤ 郎Ҥ Τ䤪դ ҤȤΤȤդޤ # 41 鸫 Ƥ ̾Ϥޤ Ωˤ ͤ줺 פҤᤷ 41 ߤ֤Τ ҤƤ 郎ʤϤޤ ˤ ҤȤ줺 Ҥᤷ # 42 ꤭ ߤµ ܤĤ ξ ȤȤ 42 ϤΤȤ ꤭ ߤˤǤ ܤĤ ΤޤĤ ʤߤȤ # 43 Ǽ Ƥ ΤΤ ֤ फʪ Ϥꤱ 43 夦ʤ󤢤Ĥ ҤߤƤ ΤΤ ֤ फϤΤ Ϥꤱ # 44 Ǽī ջ Ƥʤ ͤȤ ߤޤ 44 夦ʤ󤢤 դȤ Ƥʤ ʤʤ ҤȤߤ ߤޤ # 45 ϤȤ դ٤ͤ ۤ ȤΤŤ ̤٤ 45 Ȥ ϤȤ դ٤ҤȤ ۤ ߤΤŤ ʤ̤٤ # 46 ǩ ͳɤϤ 錄뽮 ¤򤿤 Ԥؤ⤷ ҤΤߤ 46 ͤΤ褷 ΤȤ 錄դʤӤ ¤򤿤 椯ؤ⤷ ҤΤߤ # 47 ÷ˡ ȬΪ ɤ Ӥ ͤ ˤ 47 礦ۤ 䤨र ɤ Ӥ ҤȤߤ Ϥˤ # 48 Ƿ 򤤤 䤦Ȥ ΤΤ ʪ פդ 48 ߤʤȤΤ椭 򤤤 臘Ĥʤߤ ΤΤ ƤΤ դ # 49 ǽī һΤΤФ Ϥ⤨ ҤϤĤ ʪ򤳤פ 49 ʤȤߤΤ褷Τ֤ ߤ ΤҤ Ϥ⤨ ҤϤĤ Τ򤳤 # 50 ƣ 餶ꤷ ̿ ʤ⤬ʤ Ҥ뤫 50 դΤ褷 ߤ 餶ꤷ Τ ʤ⤬ʤ Ҥ뤫 # 51 ƣī Ȥ Ϥ֤ ⤷餸 פҤ 51 դΤͤ Ȥ Ϥ֤ ⤰ ⤷餸 뤪Ҥ # 52 ƣƻī ̤ ΤȤ ʤ ͱᤷ īܤ餱 52 դΤߤΤ֤ ̤ ΤȤ ʤ ʤۤᤷ ܤ餱 # 53 羭ƻ ÷Ĥ Ȥ̤ ޤ ˵פ ΤȤϤ 53 礦ߤĤʤΤϤ ʤĤ ҤȤ̤ ޤ ˤҤ ΤȤϤ # 54 Ʊ ˺줸 椯ޤǤ դ򤫤 ̿Ȥ⤬ 54 ɤ󤷤ΤϤ 魯줸 椯ޤǤ դ򤫤 ΤȤ⤬ # 55 ǼǤ ΤȤ 䤨Ƶפ ̤ ̾ʤ ͱ 55 ʤ󤭤Ȥ ΤȤ ƤҤ ʤ̤ ʤʤ ʤۤ # 56 餶 Τۤ ҽФ 줿Ӥ ջ⤬ 56 ߤ 餶 ΤΤۤ ҤǤ ޤҤȤӤ դȤ⤬ # 57 缰 ᤰꤢҤ ߤ䤽Ȥ 狼̤ޤ ˤ Ⱦη 57 餵 ᤰꤢҤ ߤ䤽Ȥ 狼̤ޤ ⤬ˤ ϤΤĤ # 58 ֻͭ ʤΤ դ Ǥͤ 魯Ϥ 58 ˤΤ ޤ ʤΤϤ դ ǤҤȤ 魯Ϥ # 59 䤹Ϥ ͤʤޤΤ 빹 ֤ޤǤ ߤ 59 ᤨ 䤹Ϥ ͤʤޤΤ դ ֤ޤǤ Ĥߤ # 60 繾 ƻ 󤱤 ޤդߤߤ ŷζΩ 60 ֤Τʤ ΤΤߤ Ȥۤ ޤդߤߤ ޤΤϤ # 61 ˤؤ ɤΤߤ䤳 ȬŤ նŤ Ҥ̤뤫 61 Τ ˤؤ ʤΤߤ䤳 䤨 դΤؤ ˤۤҤ̤뤫 # 62 Ǽ 򤳤 ĻΤ鲻 ϤȤ ˤդ Ϥ뤵 62 礦ʤ 򤳤 ȤΤͤ ϤȤ ˤդ Ϥ뤵 # 63 ƻ ޤϤ פҤʤ ȤФ ͤŤƤʤ դ褷⤬ 63 礦Τդߤޤ ޤϤ Ҥʤ ȤФ ҤȤŤƤʤ դ褷⤬ # 64 Ǽ īϯ ¤̸ Ϥ錄 64 夦ʤ󤵤 ܤ餱 ΤϤ Ϥ錄 Τ # 65 ߤ ۤµ Τ ˤʤ ̾򤷤 65 ߤ ̤ۤǤ Τ Ҥˤʤ ʤ򤷤 # 66 º Ȥ ϤȤ ֤곰 ͤʤ 66 礦礦 Ȥ ϤȤ ޤ Ϥʤۤ ҤȤʤ # 67 դ Фʤ Ҥʤ ̾ 67 Τʤ ϤΤ Фʤ ޤ Ҥʤ ʤ # 68 ˤ Ǥ ʤؤ Ҥ٤ Ⱦη 68 󤸤礦 ˤ Ǥ ʤؤ Ҥ٤ ϤΤĤ # 69 ǽˡ 餷᤯ λ ߤդ ζĤ ˤʤꤱ 69 Τۤ 餷դ ߤΤޤ ߤ¤Ф ĤΤϤ ˤʤꤱ # 70 ˡ Ӥ ɤ򤿤Ǥ ʤ Ť⤪ʤ Τ 70 礦ۤ Ӥ ɤ򤿤Ǥ ʤ Ť⤪ʤ Τդ # 71 Ǽп ͼ Ĥΰ ȤŤ δݲ դ 71 ʤĤͤΤ 椦 ɤΤʤ ȤŤ Τޤ դ # 72 ʹƲȵ ˤ դΤϤޤ ʤߤ µ ̤⤳ 72 椦ʤΤΤ Ȥˤ ΤϤޤ ʤߤ 䤽Ǥ ̤⤳ # 73 Ǽ˼ ⺽ Τ 餭ˤ Τ ⤢ʤ 73 夦ʤޤդ ΤؤΤ ˤ ȤޤΤ ⤢ʤ # 74 ī ꤱ ͤϤĤ ϤȤ Τ̤Τ 74 ߤʤȤΤȤꤢ ꤱ ҤȤϤĤ ޤ ϤȤ Τ̤Τ # 75 ƣ ꤪ ⤬Ϫ ̿ˤ Ϥ줳Ȥ ⤤̤ 75 դΤȤȤ ꤪ ⤬Ĥ Τˤ Ϥ줳Ȥ ⤤̤ # 76 ˡƻ 錄θ ФǤƸ Ҥ ˤޤ Ĥʤ 76 ۤ礦Τˤ夦ɤΤѤ礦 錄ΤϤ ǤƤߤ Ҥ ˤޤ Ĥʤ # 77 Ϥ ˤ Ϥ Ƥ⤹ ϤȤפ 77 Ȥ Ϥ ˤ Ϥ Ƥ⤹ ϤȤ # 78 øϩ Ļ ʤ ᤶ ޤδؤ 78 ߤʤȤΤͤޤ Ϥ¤ դɤ ʤ ͤ ޤΤ # 79 ׸ ʤӤ ޤ 줤Ť Τ䤱 79 礦Τ֤ ʤӤ ޤ 줤ŤĤ Τ䤱 # 80 Ը籡 ʤ ⤷餺 ߤ ߤƤ ʪ򤳤פ 80 󤤤Τ꤫ۤ ʤ ⤷餺 ߤ ߤƤ Τ򤳤 # 81 ۤȤȤ ĤĤ ʤ ͭ Τ 81 ȤΤ ۤȤȤ ʤĤ뤫 ʤ ꤢ ĤΤ # 82 ƻˡ פΤ Ƥ⤤Τ Τ ˤؤ̤ ޤʤꤱ 82 ɤۤ Ҥ Ƥ⤤Τ Τ ˤؤ̤ ʤߤʤꤱ # 83 ׽ ƻʤ Ҥ Τˤ ʤʤ 83 Τ֤󤼤 Τʤ ߤʤ Ҥ ޤΤˤ ʤʤ # 84 ƣī ʤؤ ΤФ Ȥߤ ϤҤ 84 դΤ褹 ʤؤ ޤΤ ΤФ Ȥߤ褾 ޤϤҤ # 85 ӷˡ ⤹ ʪפպ ͤΤҤޤ Ĥʤꤱ 85 󤨤ۤ ⤹ Τդ ͤΤҤޤ Ĥʤꤱ # 86 ˡ ʤȤ ʪ Ϥ ۤʤ ʤߤ 86 礦ۤ ʤȤ ĤϤΤ Ϥ ۤʤ 郎ʤߤ # 87 ϡˡ 餵 ϪޤҤ դ ̸Τܤ Τդ 87 㤯ۤ 餵 ޤҤ ޤΤϤ ꤿΤܤ Τդ # 88 IJ籡 ȹ Τͤ ȤĤƤ 錄٤ 88 󤤤٤äȤ ʤˤϤ Τͤ ҤȤ ߤĤƤ Ҥ錄٤ # 89 Ʋ ̤ν 䤨ʤФ ʤؤ Ǧ֤뤳Ȥ Ϥ⤾ 89 ʤΤ ޤΤ ʤФ ʤؤ Τ֤뤳Ȥ Ϥ⤾ # 90 籡 Ф Τޤ µˤ ̤ˤ̤줷 ϤϤ餺 90 פ󤤤Τ ߤФ 򤸤ޤΤޤ Ǥˤ ̤ˤ̤줷 ϤϤ餺 # 91 ꤮ꤹ Ĥ ष ᤫ ҤȤ꤫ͤ 91 礦ä礦Τ礦 ꤮ꤹ ʤ䤷 ष ⤫ ҤȤ꤫ͤ # 92 򱡻 µ ۤҤ˸ Ф ͤ 勞֤ʤ 92 ˤ礦Τ̤ 郎Ǥ ۤҤˤߤ Τ ҤȤ 勞ޤʤ # 93 ұ ˤ⤬ ʤ ޤξ ˼꤫ʤ 93 ޤΤ Τʤ Ĥͤˤ⤬ ʤ ޤΤ֤ͤ ĤʤǤʤ # 94 IJ ߤ褷 Τ 빹 ζय ⤦Ĥʤ 94 󤮤ޤĤ ߤ褷Τ ޤΤ դ դ뤵Ȥय ⤦Ĥʤ # 95 ۤʤ Τߤ ۤդ 椿Ĥޤ µ 95 Τ礦 ۤʤ Τߤ ۤդ 郎Ĥޤ ߤΤ # 96 ƻ ֤ 餷 椭ʤ դ椯Τ Ȥʤꤱ 96 ˤ夦ɤΤ礦 Ϥʤ 餷Τˤ 椭ʤ դ椯Τ 郎ߤʤꤱ # 97 Ǽ ̿ͤ α ͼʤ 䤯⤷ۤ Ȥ⤳Ĥ 97 夦ʤƤ ̤ҤȤ ޤĤۤΤ 椦ʤ 䤯⤷ۤ ߤ⤳Ĥ # 98 ̲δ 褰 ʤΤ򤬤 ͼ ߤƤ 뤷ʤꤱ 98 夦ˤ 褰 ʤΤ򤬤Ϥ 椦 ߤʤĤ 뤷ʤꤱ # 99 Ļ ͤ ͤ⤦ᤷ ¤ʤ 򤪤դ ʪפտȤ 99 ȤФ ҤȤ ҤȤ⤦ᤷ ¤ʤ 򤪤դ Τդߤ # 100 ɴߤ դ뤭ü Ǧ֤ˤ ͱޤꤢ फʤꤱ 100 Ȥ ⤷ դ뤭ΤФ Τ֤ˤ ʤۤޤꤢ फʤꤱ ### #--- # # 17 Sep 1998: 53 Ȥ̤Ρ==>ȤΡ # 17 Sep 1998: 34 ֤ͤˤ ==> ֤ͤˤ # 21 Sep 1998: 53 ȤΡ==>Ȥ̤Ρ # 13 Nov 1998: 40 ֿͤΤȤդդޤǡ==>ֿͤΤȤդޤǡ #--- vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/COPY0000755000175000017500000000034406621014241016675 0ustar mohuramohura#!/bin/sh # house-keeping job (internal work for the maintainer) DIR=${HOME}/hack/HyakuninIssyu/ FILES="hyaku.txt hyakubm.c hyakubm.h mkhdr.c mkgif" for F in ${FILES}; do cp ${DIR}/$F ./ done make hyakubm make hyakux11 vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/Makefile.in0000644000175000017500000000351407575235017020263 0ustar mohuramohura# # a Makefile for "hyaku" --- HyakuninIssyu # by Hirotsugu Kakugawa # # ----------------------------------------------------------------------- # For making sample GIFs GIF_FONT=tdfkaisaa GIF_VFLIBCAP=vflibcap-jtex GIF_DPI=300 GIF_MODE=cx GIF_SHRINK=3 GIF_PARAMS=$(GIF_FONT) $(GIF_VFLIBCAP) $(GIF_DPI) $(GIF_MODE) $(GIF_SHRINK) # ----------------------------------------------------------------------- default all:: hyakubm hyakux11 LIBTOOL=../../libtool include ../../make-sub include ../../X11/x11.mk PROGRAMS = hyakubm hyakux11 SRCS = hyakubm.c hyakux11.c OBJS = hyakubm.lo hyakux11.lo VFLIB_DIR = ../../src include ../../make-sub # hyakubm hyakubm: hyakubm.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o hyakubm hyakubm.o \ $(VFLIB_DIR)/libVFlib3.la hyakubm.o: hyakubm.c hyakubm.h $(CC) -I$(VFLIB_DIR) $(VFCFLAGS) -c hyakubm.c # hyakux11 hyakux11: hyakux11.o $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o hyakux11 hyakux11.o \ $(LDFLAGS) $(VFLIB_DIR)/libVFlib3.la -L$(USRLIBDIR) $(XLIB) hyakux11.o: hyakubm.c hyakubm.h -rm -f hyakux11.c ln -s hyakubm.c hyakux11.c $(CC) -I$(VFLIB_DIR) -I$(INCROOT) $(VFCFLAGS) -DHYAKUX11 -c hyakux11.c -rm -f hyakux11.c install:: $(PROGRAMS) @$(LIBTOOL) --mode=install \ ../../$(INSTALL_PROGRAM) hyakubm $(bindir) @$(LIBTOOL) --mode=install \ ../../$(INSTALL_PROGRAM) hyakux11 $(bindir) uninstall:: @$(LIBTOOL) --mode=uninstall $(RM) $(bindir)/hyakubm @$(LIBTOOL) --mode=uninstall $(RM) $(bindir)/hyakux11 clean:: -$(RM) $(PROGRAMS) veryclean:: clean distclean:: clean GIF: hyakubm ./mkgif $(GIF_PARAMS) samples: hyakubm -rm -f GIF ./mkgif $(GIF_PARAMS) 1 5 ln -s GIF-$(FONT) GIF UPDATE: mkhdr ./mkhdr < hyaku.txt > hyakubm.h mkhdr: $(LIBTOOL) --mode-compile $(CC) -o mkhdr mkhdr.lo mkhdr.lo: $(LIBTOOL) --mode-compile $(CC) -c mkhdr.c # vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/hyakubm.c0000644000175000017500000004327410264673452020027 0ustar mohuramohura/* hyakubm.c * hyakubm --- Make a bitmap of "Ogura Hyakunin Issyu" in PGM-ASCII format. * hyakux11 --- Display "Ogura Hyakunin Issyu" on an X11 window. * * by Hirotsugu Kakugawa (h.kakugawa@computer.org) * * Copyright (C) 1998 by H. Kakugawa * * Oct 1998 Version 1.0: only mode 1 fonts. * 10 Dec 1998 Version 1.1: supports mode1 and 2 switch. * Uses "jiskan16.pcf" in mode 2 by default; this works * (possibly) all X11 environment. */ /* * Copyright (C) 1998 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "../../src/config.h" #include #include #include #include #include #if defined(HAVE_STRING_H) || defined(STDC_HEADERS) # include #else # include #endif #include #include "hyakubm.h" #ifdef HYAKUX11 #include #include #include #include #endif #define PARAM_NAME_DPI "TeX_DPI" #define PARAM_NAME_MODE "TeX_KPATHSEA_MODE" #define PARAM_NAME_PROG "TeX_KPATHSEA_PROGRAM" #define PARAM_DEFAULT_VFLIBCAP "vflibcap" #define PARAM_DEFAULT_DPI 300 #define PARAM_DEFAULT_KMODE "cx" #define PARAM_DEFAULT_PROG "/usr/local/bin/hyakubm" #define PARAM_DEFAULT_FONT_MODE 2 #define PARAM_DEFAULT_FONT_SIZE -1 #define PARAM_DEFAULT_FONT_NAME "jiskan16.pcf" #define PARAM_DEFAULT_BASELINESKIP 1.4 #define PARAM_DEFAULT_WAIT 300 #define PARAM_DEFAULT_SHRINK 1 #define PARAM_DEFAULT_MARGIN_Y 5 #define PARAM_DEFAULT_MARGIN_X 5 static char* param_vflibcap = PARAM_DEFAULT_VFLIBCAP; static int param_dpi = PARAM_DEFAULT_DPI; static char* param_kmode = PARAM_DEFAULT_KMODE; static char* param_prog = PARAM_DEFAULT_PROG; static int param_font_mode = PARAM_DEFAULT_FONT_MODE; static double param_font_size = PARAM_DEFAULT_FONT_SIZE; static char* param_font_name = PARAM_DEFAULT_FONT_NAME; static double param_baselineskip = PARAM_DEFAULT_BASELINESKIP; static int param_shrink = PARAM_DEFAULT_SHRINK; static int param_margin_t = PARAM_DEFAULT_MARGIN_Y; static int param_margin_b = PARAM_DEFAULT_MARGIN_Y; static int param_margin_l = PARAM_DEFAULT_MARGIN_X; static int param_margin_r = PARAM_DEFAULT_MARGIN_X; static double param_indent1 = 0; static double param_indent2 = 4; static double param_indent3 = 1; #ifdef HYAKUX11 static double param_wait = PARAM_DEFAULT_WAIT; static char* param_geometry = NULL; #endif void usage(void); void hyakubm(int); void typeset(int,int,VF_BITMAPLIST); void typeset_phase(long*,int,VF_BITMAPLIST,long*,long*); void typeset_length(long*,int,long*,long*); void shipout(VF_BITMAP,FILE*,int); #ifdef HYAKUX11 int shipoutx11(VF_BITMAP,FILE*,int,int); #endif #define PR1(s1) fprintf(stderr, s1); #define PR2(s1,s2) fprintf(stderr, s1, s2); #define PR3(s1,s2,s3) fprintf(stderr, s1, s2, s3); int main(int argc, char **argv) { int poem_no, m; poem_no = -1; for (--argc, argv++; argc > 0; --argc, argv++){ if (isdigit((int)*argv[0])){ poem_no = atoi(*argv); if ((poem_no < 1) || (100 < poem_no)){ usage(); } } else { if ((strcmp(*argv, "-v") == 0) && (argc > 1)){ param_vflibcap = argv[1]; argc--; argv++; } else if (strcmp(*argv, "-cx") == 0){ param_dpi = 300; param_kmode = "cx"; } else if (strcmp(*argv, "-sparcptr") == 0){ param_dpi = 400; param_kmode = "sparcptr"; } else if (strcmp(*argv, "-ljfour") == 0){ param_dpi = 600; param_kmode = "ljfour"; } else if ((strcmp(*argv, "-dpi") == 0) && (argc > 1)){ param_dpi = atoi(argv[1]); argc--; argv++; } else if ((strcmp(*argv, "-mode") == 0) && (argc > 1)){ param_kmode = argv[1]; argc--; argv++; } else if ((strcmp(*argv, "-s") == 0) && (argc > 1)){ param_shrink = atoi(argv[1]); argc--; argv++; } else if ((strcmp(*argv, "-f") == 0) && (argc > 1)){ param_font_name = argv[1]; argc--; argv++; } else if (strcmp(*argv, "-mode1") == 0){ param_font_mode = 1; } else if (strcmp(*argv, "-mode2") == 0){ param_font_mode = 2; } else if ((strcmp(*argv, "-p") == 0) && (argc > 1)){ param_font_size = atof(argv[1]); argc--; argv++; } else if ((strcmp(*argv, "-f") == 0) && (argc > 1)){ param_font_name = argv[1]; argc--; argv++; } else if ((strcmp(*argv, "-b") == 0) && (argc > 1)){ param_baselineskip = atof(argv[1]); argc--; argv++; } else if ((strcmp(*argv, "-g") == 0) && (argc > 1)){ m = atoi(argv[1]); param_margin_t = param_margin_b = m; param_margin_l = param_margin_r = m; argc--; argv++; } else if ((strcmp(*argv, "-gy") == 0) && (argc > 1)){ param_margin_t = param_margin_b = atoi(argv[1]); argc--; argv++; } else if ((strcmp(*argv, "-gx") == 0) && (argc > 1)){ param_margin_l = param_margin_r = atoi(argv[1]); argc--; argv++; #ifdef HYAKUX11 } else if ((strcmp(*argv, "-w") == 0) && (argc > 1)){ param_wait = atoi(argv[1]); argc--; argv++; } else if ((strcmp(*argv, "-geometry") == 0) && (argc > 1)){ param_geometry = argv[1]; argc--; argv++; #endif } else if ((strcmp(*argv, "-i1") == 0) && (argc > 1)){ param_indent1 = atof(argv[1]); argc--; argv++; } else if ((strcmp(*argv, "-i2") == 0) && (argc > 1)){ param_indent2 = atof(argv[1]); argc--; argv++; } else if ((strcmp(*argv, "-i3") == 0) && (argc > 1)){ param_indent3 = atof(argv[1]); argc--; argv++; } else if ((strcmp(*argv, "-h") == 0) || (strcmp(*argv, "--help") == 0)){ usage(); } else { usage(); } } } hyakubm(poem_no); return 0; } void usage(void) { #ifndef HYAKUX11 PR1("hyakubm --- Make bitmap of Hyakunin-Issyu.\n"); #else PR1("hyakux11 --- Print Hyakunin-Issyu on an X11 Window.\n"); #endif PR1("Usage: hyakubm [OPTIONS] [POEM_NO]\n"); PR1("POEM_NO is the poem number, from 1 to 100\n"); PR1("Options:\n"); PR2(" -v VFLIBCAP vflibcap file [%s]\n", PARAM_DEFAULT_VFLIBCAP); PR2(" -f FONT font name [%s]\n", PARAM_DEFAULT_FONT_NAME); PR1(" -mode1 font is opened in VFlib mode 1\n"); PR1(" -mode2 font is opened in VFlib mode 2 (defualt mode)\n"); PR1(" -p font size in pixel (mode 1) or point (mode 2)\n"); PR2(" -dpi device resolution (mode 1) [%d]\n", PARAM_DEFAULT_DPI); PR2(" -mode device mode for font search in kpathsea [%s]\n", PARAM_DEFAULT_KMODE); PR1(" -cx same as '-dpi 300 -mode cx'\n"); PR1(" -sparcptr same as '-dpi 400 -mode sparcptr'\n"); PR1(" -ljfour same as '-dpi 600 -mode ljfour'\n"); PR2(" -b B baseline skip factor [%.2f]\n", PARAM_DEFAULT_BASELINESKIP); PR2(" -gx MX horizontal margin [%d]\n", PARAM_DEFAULT_MARGIN_X); PR2(" -gy MY vertical margin [%d]\n", PARAM_DEFAULT_MARGIN_Y); PR1(" -g M same as '-gx M -gy M'\n"); PR2(" -s S shrink factor of an image [%d]\n", PARAM_DEFAULT_SHRINK); #ifdef HYAKUX11 PR2(" -w S wait for S second for each poem [%d]\n", PARAM_DEFAULT_WAIT); PR1(" -geometry G window geometry\n"); #endif exit(0); } void hyakubm(int poem_no) { int fid, p; VF_BITMAP bm; char vflib_param[1024]; struct vf_s_bitmaplist bmlist; sprintf(vflib_param, "%s=%d, %s=%s, %s=%s", PARAM_NAME_DPI, param_dpi, PARAM_NAME_MODE, param_kmode, PARAM_NAME_PROG, param_prog); if (VF_Init(param_vflibcap, vflib_param) < 0){ PR1("Failed to initialize VFlib\n"); return; } if (param_font_mode == 1){ fid = VF_OpenFont1(param_font_name, param_dpi, param_dpi, param_font_size, 1.0, 1.0); } else { fid = VF_OpenFont2(param_font_name, param_font_size, 1.0, 1.0); } if (fid < 0){ PR2("Failed to open a font: %s\n", param_font_name); return; } p = poem_no; if (p < 1) p = 1; #ifndef HYAKUX11 VF_BitmapListInit(&bmlist); typeset(p, fid, &bmlist); bm = VF_BitmapListCompose(&bmlist); VF_BitmapListFinish(&bmlist); shipout(bm, stdout, p); #else for (;;){ VF_BitmapListInit(&bmlist); typeset(p, fid, &bmlist); bm = VF_BitmapListCompose(&bmlist); VF_BitmapListFinish(&bmlist); p = shipoutx11(bm, stdout, p, param_wait); if (p > 100) p = 100; if (p < 1) p = 1; } #endif VF_CloseFont(fid); } void typeset(int poem_no, int fid, VF_BITMAPLIST bmlist) { VF_BITMAP bm3121; int dir; long refp_x, refp_y; long dx, dy, w, h; long ref1, ref2, ref_max, x3, y3; if (param_font_mode == 1){ bm3121 = VF_GetBitmap1(fid, 0x3121L, 1.0, 1.0); } else { bm3121 = VF_GetBitmap2(fid, 0x3121L, 1.0, 1.0); } dx = bm3121->mv_x; dy = bm3121->mv_y; w = bm3121->bbx_width; h = bm3121->bbx_height; if (dy == 0) dir = 0; /* horizontal */ else dir = 1; /* vertical */ if (dir == 0){ refp_x = param_indent1 * dx; refp_y = 0; typeset_phase(poem_table[poem_no-1].phase1, fid, bmlist, &refp_x, &refp_y); typeset_phase(poem_table[poem_no-1].phase2, fid, bmlist, &refp_x, &refp_y); typeset_phase(poem_table[poem_no-1].phase3, fid, bmlist, &refp_x, &refp_y); ref1 = refp_x; refp_x = param_indent2 * dx; refp_y -= param_baselineskip * h; typeset_phase(poem_table[poem_no-1].phase4, fid, bmlist, &refp_x, &refp_y); typeset_phase(poem_table[poem_no-1].phase5, fid, bmlist, &refp_x, &refp_y); ref2 = refp_x; refp_y -= param_baselineskip * h; if ((ref_max = ref1) < ref2) ref_max = ref2; typeset_length(poem_table[poem_no-1].auth, fid, &x3, &y3); refp_x = ref_max - x3 + param_indent3 * dx; typeset_phase(poem_table[poem_no-1].auth, fid, bmlist, &refp_x, &refp_y); } else /* vertical */ { refp_x = 0; refp_y = param_indent1 * dy; typeset_phase(poem_table[poem_no-1].phase1, fid, bmlist, &refp_x, &refp_y); typeset_phase(poem_table[poem_no-1].phase2, fid, bmlist, &refp_x, &refp_y); typeset_phase(poem_table[poem_no-1].phase3, fid, bmlist, &refp_x, &refp_y); ref1 = refp_y; refp_x -= param_baselineskip * w; refp_y = param_indent2 * dy; typeset_phase(poem_table[poem_no-1].phase4, fid, bmlist, &refp_x, &refp_y); typeset_phase(poem_table[poem_no-1].phase5, fid, bmlist, &refp_x, &refp_y); ref2 = refp_y; refp_x -= param_baselineskip * w; if ((ref_max = ref1) > ref2) /* Note: ref1, ref2 < 0 */ ref_max = ref2; typeset_length(poem_table[poem_no-1].auth, fid, &x3, &y3); refp_y = ref_max - y3 + param_indent3 * dy; typeset_phase(poem_table[poem_no-1].auth, fid, bmlist, &refp_x, &refp_y); } } void typeset_phase(long *s, int fid, VF_BITMAPLIST bmlist, long *refp_x, long *refp_y) { int i; VF_BITMAP bm; for (i = 0; s[i] != 0L; i++){ if (param_font_mode == 1){ bm = VF_GetBitmap1(fid, s[i], 1.0, 1.0); } else { bm = VF_GetBitmap2(fid, s[i], 1.0, 1.0); } VF_BitmapListPut(bmlist, bm, *refp_x, *refp_y); *refp_x += bm->mv_x; *refp_y += bm->mv_y; } } void typeset_length(long *s, int fid, long *x, long *y) { int i; long junkx, junky; VF_BITMAP bm; if (x == NULL) x = &junkx; if (y == NULL) y = &junky; *x = 0; *y = 0; for (i = 0; s[i] != 0L; i++){ if (param_font_mode == 1){ bm = VF_GetBitmap1(fid, s[i], 1.0, 1.0); } else { bm = VF_GetBitmap2(fid, s[i], 1.0, 1.0); } *x += bm->mv_x; *y += bm->mv_y; VF_FreeBitmap(bm); } } #ifndef HYAKUX11 void shipout(VF_BITMAP bm, FILE *fp, int poem_no) { char title[512]; sprintf(title, "Hyakunin Issyu #%d", poem_no); VF_ImageOut_PGMAscii(bm, fp, -1, -1, VF_IMAGEOUT_POSITION_NONE, VF_IMAGEOUT_POSITION_NONE, param_margin_l, param_margin_r, param_margin_t, param_margin_b, 0, param_shrink, "hyakubm", title); } #else static int x_initialized = 0; static int x_mapped = 0; static Display *x_disp; static Window x_win; static GC x_gc_win; static int x_w, x_h; static int x_aa; static unsigned long x_pix_fg; static unsigned long x_pix_bg; static unsigned long *x_pix_table = NULL; static char *param_fg = "black"; static char *param_bg = "white"; static unsigned char bits[] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; static void x_create_window(VF_BITMAP); static void x_update_window(VF_BITMAP,int); int shipoutx11(VF_BITMAP bm, FILE *fp, int p, int t) { int waitsec; XEvent xev; KeySym ks; char keyin[16]; if (x_initialized == 0){ x_create_window(bm); x_initialized = 1; } x_update_window(bm, p); if ((waitsec = t) < 0) waitsec = 1; while ((t < 0) || (waitsec > 0)){ while ((waitsec > 0) && (XPending(x_disp) == 0)){ sleep(1); waitsec--; } if (XPending(x_disp) > 0){ XNextEvent(x_disp, &xev); switch (xev.type){ case Expose: while (XCheckWindowEvent(x_disp, x_win, ExposureMask, &xev) == True) ; x_update_window(bm, p); break; case KeyPress: if (XLookupString(&xev.xkey, keyin, sizeof(keyin), &ks, NULL) != 1){ switch (ks){ case XK_space: return (p) % 100 + 1; } } else { switch (keyin[0]){ case ' ': return (p) % 100 + 1; case 'b': case 'B': return (p-2+100) % 100 + 1; case '<': return 1; case '>': return 100; case 'q': case 'Q': exit(0); } } } } } return (p) % 100 + 1; } void x_create_window(VF_BITMAP bm) { XSizeHints hints; XColor col, xc_fg, xc_bg, xc; long w, h; int geom_x, geom_y; unsigned int geom_w, geom_h; int i, gf; if (x_initialized == 1) return; x_aa = param_shrink * param_shrink + 1; w = bm->bbx_width; h = bm->bbx_height; if ((x_disp = XOpenDisplay(NULL)) == NULL){ PR1("Can't open X display.\n"); exit(0); } XAllocNamedColor(x_disp, DefaultColormap(x_disp,0), param_fg, &xc_fg, &xc); XAllocNamedColor(x_disp, DefaultColormap(x_disp,0), param_bg, &xc_bg, &xc); x_pix_fg = xc_fg.pixel; x_pix_bg = xc_bg.pixel; geom_x = geom_y = geom_w = geom_h = 1; gf = XParseGeometry(param_geometry, &geom_x, &geom_y, &geom_w, &geom_h); x_win = XCreateSimpleWindow(x_disp, RootWindow(x_disp, 0), geom_x, geom_y, w, h, 2, XBlackPixel(x_disp,0), x_pix_bg); if (((gf & XValue) != 0) || ((gf & YValue) != 0)){ hints.flags = USPosition; hints.x = geom_x; hints.y = geom_y; XSetStandardProperties(x_disp, x_win, "", "", None, NULL, 0, &hints); } x_gc_win = XCreateGC(x_disp, x_win, 0, 0); x_pix_table = (unsigned long*)malloc(x_aa * sizeof(unsigned long)); if (x_pix_table == NULL){ PR1("No memory.\n"); exit(0); } for (i = 0; i < x_aa; i++){ col.flags = DoRed | DoGreen | DoBlue; col.red = xc_bg.red + ((xc_fg.red - xc_bg.red) * i)/(x_aa-1); col.green = xc_bg.green + ((xc_fg.green - xc_bg.green) * i)/(x_aa-1); col.blue = xc_bg.blue + ((xc_fg.blue - xc_bg.blue) * i)/(x_aa-1); if (XAllocColor(x_disp, DefaultColormap(x_disp, 0), &col) == 0){ PR1("Can't allocate colors.\n"); exit(0); } x_pix_table[i] = col.pixel; } XSetForeground(x_disp, x_gc_win, x_pix_table[0]); XSetBackground(x_disp, x_gc_win, x_pix_table[x_aa-1]); XStoreName(x_disp, x_win, "OHI"); XSelectInput(x_disp, x_win, KeyPressMask|ButtonPressMask|ExposureMask); } void x_update_window(VF_BITMAP bm, int poem_no) { int x, y, z; int *pgm_buff, *g, pgm_w, pgm_h, max_val; char name[32]; XImage *x_image; unsigned char *p; if (param_shrink <= 0) param_shrink = 1; max_val = param_shrink * param_shrink; pgm_w = (bm->bbx_width + param_shrink - 1) / param_shrink; pgm_h = (bm->bbx_height + param_shrink - 1) / param_shrink; x_w = param_margin_l + pgm_w + param_margin_r; x_h = param_margin_t + pgm_h + param_margin_b; sprintf(name, "OHI#%d", poem_no); XStoreName(x_disp, x_win, name); XResizeWindow(x_disp, x_win, x_w, x_h); if (x_mapped == 0){ XMapWindow(x_disp, x_win); x_mapped = 1; } XClearWindow(x_disp, x_win); if ((pgm_buff = calloc(pgm_w * pgm_h, sizeof(int))) == NULL){ PR1("No memory.\n"); exit(1); } p = bm->bitmap; for (y = 0; y < bm->bbx_height; y++){ g = &pgm_buff[(y/param_shrink)*pgm_w]; for (x = 0; x < bm->bbx_width; x++){ if ((p[x/8] & bits[x%8]) != 0) g[x/param_shrink] += 1; } p = p + bm->raster; } if ((x_image = XCreateImage(x_disp, DefaultVisual(x_disp,0), DefaultDepth(x_disp,0), ZPixmap, 0, NULL, x_w, x_h, 8, 0)) == NULL){ PR1("No memory.\n"); exit(0); } z = x_image->bytes_per_line * x_h; if ((x_image->data = (char*)malloc((z!=0)?z:1)) == NULL){ PR1("No memory.\n"); exit(0); } g = pgm_buff; for (y = 0; y < pgm_h; y++){ for (x = 0; x < pgm_w; x++) XPutPixel(x_image, x, y, x_pix_table[pgm_buff[pgm_w * y + x]]); g = g + pgm_w; } XPutImage(x_disp, x_win, x_gc_win, x_image, 0, 0, param_margin_l, param_margin_t, pgm_w, pgm_h); XDestroyImage(x_image); free(pgm_buff); } #endif /*EOF*/ vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/hyakubm.h0000644000175000017500000005540306637663302020033 0ustar mohuramohura struct s_poem { long phase1[8]; long phase2[10]; long phase3[8]; long phase4[10]; long phase5[10]; long auth[32]; }; typedef struct s_poem *POEM; struct s_poem poem_table[] = { /* 1 */ {{15657,9294,17732,9294,0}, {9259,9322,9307,9294,12355,9294,0}, {18001,9330,9250,9321,9311,0}, {9327,9260,12385,15466,9295,0}, {20266,9291,9292,9324,9284,9284,0}, {17719,17234,17719,14660,0},}, /* 2 */ {{15701,12897,9262,9286,0}, {12870,19816,9291,9265,9321,9271,0}, {18290,19503,9294,0}, {12385,9307,9273,9286,9301,0}, {9250,9310,9294,9259,9264,15155,0}, {15229,17789,17719,14660,0},}, /* 3 */ {{9250,9271,12616,9294,0}, {15155,9289,9322,9294,18552,9294,0}, {9271,9280,9322,9330,9294,0}, {9290,9260,9290,9260,9271,19563,9330,0}, {17992,9322,9259,9314,9293,9312,0}, {13121,19292,16205,19299,20260,0},}, /* 4 */ {{17732,15186,9294,9254,9321,9291,0}, {9254,9281,15696,9287,9286,9311,9324,9296,0}, {18290,19503,9294,0}, {9301,9272,9294,14690,9293,9291,0}, {16483,9295,9301,9322,9284,9284,0}, {15155,18804,16470,16205,0},}, /* 5 */ {{9258,9263,15155,9291,0}, {14664,19797,9301,9311,18988,9265,0}, {9290,9263,15407,9294,0}, {9267,9329,19001,9263,9288,9261,9278,0}, {15657,9295,9259,9290,9271,9261,0}, {12654,13405,16999,18775,0},}, /* 6 */ {{29479,9294,0}, {9327,9279,9275,9323,13878,9291,0}, {9258,9263,9271,9314,9294,0}, {9271,9325,9261,9330,9311,9324,9296,0}, {19563,9278,14649,9265,9291,9265,9323,0}, {17254,18236,14400,12872,15229,0},}, /* 7 */ {{17719,9294,14390,0}, {9301,9322,9269,9265,9311,9324,9296,0}, {9259,9273,9260,9290,9323,0}, {15152,13150,9294,15155,9291,0}, {15696,9287,9271,14190,9259,9314,0}, {12354,18268,17255,19323,0},}, /* 8 */ {{12902,12355,9295,0}, {17748,9294,9279,9284,9311,0}, {9271,9259,9278,9273,9312,0}, {16420,9330,12583,15395,15155,9288,0}, {16205,9295,9252,9301,9290,9322,0}, {13422,16497,19233,15189,0},}, /* 9 */ {{12886,9294,16167,9295,0}, {9254,9284,9322,9291,9265,9322,9290,0}, {9252,9279,9285,9321,9291,0}, {12902,16200,16420,9291,9301,9323,0}, {9290,9260,9313,9275,9271,9310,9291,0}, {15918,19566,15918,17454,0},}, /* 10 */ {{9267,9324,9316,14881,0}, {9318,9263,9314,13602,9323,9314,0}, {19020,9324,9286,9295,0}, {9271,9323,9314,9271,9321,9292,9314,0}, {9250,9301,14948,9294,13400,0}, {16486,13405,0},}, /* 11 */ {{9327,9279,9294,14390,0}, {18476,15677,17767,9259,9265,9286,0}, {16742,15696,9287,9292,9288,0}, {16205,9291,9295,9284,9266,9320,0}, {9250,9310,9294,17504,15662,0}, {15154,13636,25659,0},}, /* 12 */ {{17719,9284,9259,9276,0}, {12608,9294,17484,20265,0}, {16225,9261,9288,9282,9320,0}, {9330,9288,9313,9294,9273,9260,9279,0}, {9271,9296,9271,9288,9289,9313,9312,0}, {16718,16437,19031,15932,0},}, /* 13 */ {{9284,9263,9296,9293,9294,0}, {20070,9320,9322,9258,9284,9323,0}, {9311,9290,9294,16494,0}, {9267,9298,9278,9284,9314,9322,9286,0}, {18981,9288,9290,9322,9265,9323,0}, {19803,16430,12577,0},}, /* 14 */ {{9311,9281,9294,9263,9294,0}, {18214,9302,9314,9282,9274,9322,0}, {9279,9324,9318,9329,9291,0}, {19824,9324,15721,9313,9291,9271,0}, {12902,9290,9321,9290,9263,9291,0}, {12879,14390,14904,16999,16195,0},}, /* 15 */ {{14127,9260,9279,9313,0}, {15701,9294,9294,9291,15696,9287,9286,0}, {9327,9259,9290,9284,9312,0}, {12902,12385,15466,9291,0}, {16483,9295,9301,9322,9284,9284,0}, {14455,14631,17719,14660,0},}, /* 16 */ {{20009,9281,19020,9324,0}, {9252,9290,9296,9294,15155,9294,0}, {9311,9293,9291,16440,9301,9323,0}, {15934,9288,9271,9261,9259,9296,0}, {14883,13602,9322,19816,9312,0}, {17254,18236,14400,14676,19007,0},}, /* 17 */ {{16489,16737,16182,0}, {16192,16997,9314,9261,9259,9274,0}, {9279,9284,9279,16494,0}, {9259,9321,14664,9291,0}, {16229,9263,9263,9323,9288,9295,0}, {14943,14390,13896,19007,17451,16195,0},}, /* 18 */ {{15675,9294,14654,9294,0}, {13407,9291,9320,9323,18248,0}, {9320,9323,9269,9304,9316,0}, {19508,9294,17484,20265,0}, {16205,9313,9320,9263,9321,9331,0}, {17955,14390,18770,14676,17451,16195,0},}, /* 19 */ {{18033,18248,9260,9279,0}, {9311,9272,9259,9261,9250,9271,9294,0}, {9301,9271,9294,13398,9314,0}, {9250,9295,9287,14881,16420,9330,0}, {9273,9264,9271,9286,9320,9288,9316,0}, {12363,16426,0},}, /* 20 */ {{20558,9299,9292,9324,9296,0}, {14883,9295,9279,9258,9290,9272,0}, {9290,9291,9295,9290,9323,0}, {16200,9330,9284,9263,9271,9286,9314,0}, {9250,9295,9312,9288,9278,15191,9301,0}, {14389,20041,16198,12838,0},}, /* 21 */ {{14883,9267,9312,9288,0}, {9252,9298,9271,9296,9259,9322,9291,0}, {17465,14190,9294,0}, {19757,19520,9294,14190,9330,0}, {16980,15696,9287,9284,9323,9259,9290,0}, {16711,16429,19233,15189,0},}, /* 22 */ {{16225,9263,9259,9321,9291,0}, {15657,9294,16752,19546,9294,0}, {9271,9330,9323,9324,9296,0}, {9312,9305,15155,9259,9276,9330,0}, {9250,9321,9271,9288,9252,9301,9321,9331,0}, {19000,12848,14639,15656,0},}, /* 23 */ {{14190,9311,9324,9296,0}, {16489,16489,9291,18986,9267,9277,0}, {9259,9290,9271,9265,9324,0}, {12902,16200,9298,9288,9284,9294,0}, {15657,9291,9295,9250,9321,9293,9289,0}, {16999,14654,16489,20004,0},}, /* 24 */ {{9267,9294,17753,9295,0}, {9292,9269,9314,9288,9322,9250,9304,9274,0}, {15466,14462,15155,0}, {14664,19797,9294,9291,9271,9261,0}, {16192,9294,9310,9291,9310,9291,0}, {13385,12872,0},}, /* 25 */ {{19518,9291,9271,9258,9295,9296,0}, {16746,14948,15155,9294,0}, {9269,9293,9259,9285,9321,0}, {16205,9291,9271,9321,9324,9287,0}, {9263,9323,9320,9271,9314,9260,9290,0}, {15152,15986,12582,16999,16195,0},}, /* 26 */ {{9330,9264,9321,9316,9310,0}, {9311,9293,9294,9314,9311,9272,19797,0}, {16180,9250,9321,9296,0}, {14883,12396,17753,9294,0}, {9311,9318,9261,9310,9279,9290,9312,0}, {17511,16174,14456,0},}, /* 27 */ {{9311,9259,9294,14390,0}, {9327,9261,9286,9290,9260,9323,9323,0}, {9252,9285,9311,16494,0}, {9252,9284,9311,9261,9288,9286,9259,0}, {20088,9271,9259,9323,9321,9312,0}, {17254,18236,14400,14195,19045,0},}, /* 28 */ {{15155,9270,9288,9295,0}, {17759,9278,9269,9299,9271,9269,0}, {9310,9269,9322,9265,9323,0}, {16205,9313,9314,16752,9314,0}, {9259,9324,9292,9288,9258,9314,9304,9296,0}, {14395,15649,20530,17451,16195,0},}, /* 29 */ {{16180,9250,9286,9291,0}, {9330,9321,9296,9316,9330,9321,9312,0}, {9295,9284,9271,9314,9294,0}, {17238,9261,9310,9289,9295,9275,9323,0}, {9271,9321,9262,9263,9294,12886,0}, {19294,12879,18018,27963,14641,0},}, /* 30 */ {{19757,19520,9294,0}, {9284,9324,9290,9263,14379,9256,9271,0}, {19020,9320,9322,0}, {13895,9296,9259,9322,0}, {9254,9261,18986,9295,9290,9271,0}, {16209,16440,17257,22058,0},}, /* 31 */ {{17451,9308,9321,9265,0}, {9250,9322,9250,9265,9294,14190,9288,0}, {14379,9323,9310,9287,9291,0}, {19239,19566,9294,9269,9288,9291,0}, {9301,9324,9323,18290,16483,0}, {14948,15973,16423,16935,0},}, /* 32 */ {{15155,12879,9291,0}, {9259,9276,9294,9259,9265,9279,9323,0}, {9271,9260,9321,9311,9295,0}, {9290,9260,9324,9314,9250,9304,9292,0}, {14664,19797,9290,9322,9265,9322,0}, {15701,17979,20083,15481,0},}, /* 33 */ {{13655,14200,9294,0}, {14455,9294,9289,9265,9261,0}, {15701,9294,18044,9291,0}, {9271,9285,9267,9267,9325,9290,9263,0}, {12886,9294,9281,9323,9321,9331,0}, {13610,19751,16935,0},}, /* 34 */ {{9279,9324,9330,9259,9314,0}, {9271,9323,16205,9291,9275,9312,0}, {14690,14909,9294,0}, {15934,9314,9312,9259,9271,9294,0}, {19751,9290,9321,9290,9263,9291,0}, {17955,14390,13885,18807,0},}, /* 35 */ {{16205,9295,9252,9269,0}, {16180,9314,9271,9321,9274,0}, {9301,9323,9269,9288,9295,0}, {12886,9278,9312,9259,9271,9294,0}, {9259,9291,9291,9307,9298,9265,9323,0}, {13610,13395,18231,0},}, /* 36 */ {{12870,9294,19563,9295,0}, {9310,9280,9320,9298,9290,9260,9321,0}, {19520,9265,9292,9323,9330,0}, {12608,9294,9252,9285,9267,9291,0}, {14190,9316,9289,9323,9321,9312,0}, {16438,14390,16188,19804,18787,0},}, /* 37 */ {{9271,9321,20266,9291,0}, {18807,9294,16225,9261,9271,9263,0}, {15657,9294,19566,9295,0}, {9284,9321,9292,9261,9288,9313,9292,0}, {13900,9278,9281,9322,9265,9323,0}, {19000,12848,17451,14639,0},}, /* 38 */ {{19258,9321,9323,9323,0}, {16200,9330,9296,15191,9295,9274,0}, {16448,9298,9286,9271,0}, {16205,9294,9252,9294,9281,9294,0}, {9258,9271,9263,9314,9250,9323,9259,9290,0}, {12582,13921,0},}, /* 39 */ {{9250,9269,9282,9301,9294,0}, {9330,9294,9294,9271,9294,14390,0}, {18214,9302,9324,9289,0}, {9250,9310,9322,9286,9290,9289,9259,0}, {16205,9294,9267,9298,9271,9261,0}, {15154,13636,17785,0},}, /* 40 */ {{18214,9302,9324,9289,0}, {16167,9291,9252,9287,9291,9265,9322,0}, {12902,20088,9295,0}, {18986,9316,9258,9314,9301,9288,0}, {16205,9294,9288,9301,9310,9287,0}, {19007,14195,16441,0},}, /* 41 */ {{20088,9273,9286,9301,0}, {12902,19518,9295,9310,9280,9261,0}, {20009,9281,9291,9265,9322,0}, {16205,9271,9324,9274,9267,9277,0}, {15191,9298,9277,9313,9271,9259,0}, {16209,16440,17257,14379,0},}, /* 42 */ {{14144,9322,9261,9290,0}, {9259,9279,9311,9291,16949,9330,0}, {9271,9308,9322,9284,9284,0}, {9273,9329,9294,15934,15155,0}, {18248,9267,9269,9272,9288,9295,0}, {16438,14390,14389,19045,0},}, /* 43 */ {{12329,14379,9286,9294,0}, {9294,9281,9294,9267,9267,9325,9291,0}, {9263,9321,9302,9324,9296,0}, {9312,9259,9271,9295,18986,9330,0}, {9258,9314,9295,9270,9322,9265,9322,0}, {14370,17254,18236,14400,18008,17257,0},}, /* 44 */ {{9250,9301,15222,9294,0}, {9279,9256,9286,9271,9290,9263,9295,0}, {17254,17254,9291,0}, {16205,9330,9314,16200,9330,9314,0}, {9254,9321,9311,9270,9321,9310,9271,0}, {17254,18236,14400,17451,17257,0},}, /* 45 */ {{9250,9295,9324,9288,9314,0}, {9252,9301,9305,9261,16205,9295,0}, {9258,9314,9307,9256,9287,0}, {16200,9294,9252,9279,9285,9321,9291,0}, {16430,9322,9292,9305,9261,9259,9290,0}, {14380,17985,14456,0},}, /* 46 */ {{19763,20041,9294,17743,9330,0}, {9327,9279,9323,15662,16205,0}, {9259,9282,9330,9279,9256,0}, {14676,9263,9304,9314,9271,9321,9292,0}, {9267,9298,9294,9311,9281,9259,9290,0}, {16702,18217,14629,17257,0},}, /* 47 */ {{18476,15685,20010,0}, {9271,9266,9324,9323,9316,9289,9294,0}, {9269,9299,9271,9261,9291,0}, {16205,9267,9277,14379,9256,9293,0}, {15657,9295,19816,9291,9265,9322,0}, {14147,14148,19233,15189,0},}, /* 48 */ {{9259,9276,9330,9252,9279,9311,0}, {13412,9254,9284,18248,9294,0}, {9258,9294,9324,9294,9311,0}, {9263,9280,9265,9286,18986,9330,0}, {15191,9301,9267,9325,9259,9290,0}, {14395,15685,18231,0},}, /* 49 */ {{14438,13120,15465,0}, {12626,15182,9294,9279,9263,12880,9294,0}, {9320,9323,9295,9314,9256,0}, {9298,9323,9295,9261,9256,9284,9284,0}, {18986,9330,9267,9277,15191,9304,0}, {16999,17254,16195,18237,16491,17451,16195,0},}, /* 50 */ {{14127,9260,9279,9313,0}, {9258,9271,9259,9321,9270,9322,9271,0}, {19519,9269,9304,0}, {9290,9260,9263,9314,9260,9290,9288,0}, {9258,9314,9298,9265,9323,9259,9290,0}, {17955,14390,13633,14631,0},}, /* 51 */ {{9259,9263,9288,9280,9291,0}, {9256,9316,9295,9252,9302,9261,9294,0}, {9269,9271,9314,16752,0}, {9269,9271,9314,9271,9321,9272,9290,0}, {9314,9318,9323,15191,9298,9330,0}, {17955,14390,15426,19069,17451,16195,0},}, /* 52 */ {{19520,9265,9292,9324,9296,0}, {9263,9323,9323,9314,9294,9288,9295,0}, {9271,9322,9290,9260,9321,0}, {19761,9254,9321,9313,9271,9261,0}, {17451,9308,9321,9265,9259,9290,0}, {17955,14390,17979,16174,17451,16195,0},}, /* 53 */ {{17207,9261,9284,9284,0}, {17992,9292,9323,19563,9294,0}, {9250,9263,9323,9310,9295,0}, {9252,9259,9291,13655,9271,9261,0}, {9314,9294,9288,9259,9295,9271,9323,0}, {12582,16999,15917,17979,14667,19052,0},}, /* 54 */ {{19258,9324,9272,9294,0}, {9318,9263,9273,9329,9310,9287,9295,0}, {9259,9279,9265,9324,9296,0}, {9265,9301,9330,9259,9262,9322,9294,0}, {19519,9288,9314,9260,9290,0}, {13623,17969,15152,15178,19052,0},}, /* 55 */ {{17004,9294,9258,9288,9295,0}, {16484,9256,9286,13655,9271,9263,0}, {16430,9322,9292,9324,9289,0}, {19518,9267,9277,9290,9260,9324,9286,0}, {19761,9261,9267,9256,9265,9324,0}, {16999,18236,14400,14456,18212,0},}, /* 56 */ {{9250,9321,9270,9321,9312,0}, {14881,16420,9294,9307,9259,9294,0}, {9258,9314,9298,15696,9291,0}, {14883,12396,9279,9299,9294,0}, {9250,9301,15222,9314,9260,9290,0}, {20290,16500,15408,18804,0},}, /* 57 */ {{9313,9264,9322,9250,9298,9286,0}, {9311,9271,9316,9277,9324,9288,9314,0}, {9327,9259,9292,9310,9291,0}, {12608,9260,9263,9324,9291,9271,0}, {19563,18494,9294,14190,9259,9290,0}, {15207,15408,18804,0},}, /* 58 */ {{19757,13398,15155,0}, {9328,9290,9294,9269,9269,14390,0}, {18807,9301,9265,9296,0}, {9252,9287,9277,9320,16205,9330,0}, {9327,9273,9324,9316,9295,9273,9323,0}, {16999,18037,15152,12364,0},}, /* 59 */ {{9316,9273,9321,9295,9287,0}, {9293,9290,9310,9271,9314,9294,9330,0}, {9269,19563,14649,9265,9286,0}, {9259,9279,9302,9263,9310,9287,9294,0}, {14190,9330,9311,9271,9259,9290,0}, {16470,16503,12626,19559,0},}, /* 60 */ {{16999,14654,15155,0}, {9252,9263,19566,9294,17979,9294,0}, {12659,9265,9324,9296,0}, {9310,9280,9301,9311,9314,9311,9274,0}, {17719,9294,13878,20009,0}, {15918,15408,18804,18018,15224,0},}, /* 61 */ {{9252,9291,9271,9304,9294,0}, {18016,20041,9294,9311,9316,9267,9294,0}, {18476,15685,9270,9263,9321,0}, {9265,9301,13925,15685,9291,0}, {18039,9298,9292,9323,9259,9290,0}, {12363,16426,16999,19045,0},}, /* 62 */ {{19563,9330,9267,9313,9286,0}, {17467,9294,9277,9321,12859,9295,0}, {9295,9259,9323,9288,9314,0}, {16420,9291,9250,9301,9269,9259,9294,0}, {9275,9261,9295,9318,9323,9269,9272,0}, {16438,15919,18236,14400,0},}, /* 63 */ {{9252,9310,9295,9279,9280,0}, {15191,9298,9279,9256,9290,9312,0}, {9288,9296,9259,9322,9330,0}, {16205,9285,9286,9290,9321,9287,0}, {9252,9301,9320,9271,9314,9260,9290,0}, {14904,13694,16999,18775,17979,12909,0},}, /* 64 */ {{17451,20271,0}, {9254,9282,9294,16494,19512,0}, {9279,9256,9280,9256,9291,0}, {9250,9321,9295,9324,9327,9279,9323,0}, {9275,9276,9294,19542,16997,19546,0}, {14370,17254,18236,14400,17514,19818,0},}, /* 65 */ {{14888,9311,9327,9299,0}, {9307,9269,9292,16949,9280,9291,0}, {9250,9323,9314,9294,9330,0}, {20088,9291,9263,9281,9290,9312,0}, {19518,9267,9277,9330,9271,9265,9324,0}, {16746,19535,0},}, /* 66 */ {{9314,9325,9288,9314,9291,0}, {9250,9295,9324,9288,9258,9314,9304,0}, {15155,9270,9263,9321,0}, {12886,9320,9322,13104,9291,0}, {9271,9323,16205,9314,9290,9271,0}, {16688,16999,16718,16437,14676,16954,0},}, /* 67 */ {{15701,9294,19563,9294,0}, {9318,9313,9296,9259,9322,9290,9323,0}, {15466,19309,9291,0}, {9259,9298,9290,9263,9279,9279,9312,0}, {19518,9267,9277,9258,9271,9265,9324,0}, {15486,19273,18018,15224,0},}, /* 68 */ {{16180,9291,9314,0}, {9250,9321,9287,9254,9261,16420,9291,0}, {9290,9260,9321,9304,9296,0}, {9267,9298,9271,9259,9323,9305,9261,0}, {19563,18494,9294,14190,9259,9290,0}, {15152,15986,12577,0},}, /* 69 */ {{9250,9321,9271,16225,9263,0}, {15152,15420,9294,15155,9294,0}, {9314,9311,9282,19797,9295,0}, {20022,17732,9294,16494,9294,0}, {9291,9271,9261,9290,9322,9265,9322,0}, {18237,12408,19233,15189,0},}, /* 70 */ {{9269,9299,9271,9269,9291,0}, {9316,9289,9330,9279,9281,9252,9287,9286,0}, {9290,9260,9312,9324,9296,0}, {9252,9285,9263,9314,9258,9290,9272,0}, {15657,9294,9318,9301,19051,0}, {20041,23163,19233,15189,0},}, /* 71 */ {{19772,9269,9324,9296,0}, {19559,17732,9294,12400,19797,0}, {9258,9288,9285,9324,9286,0}, {9250,9271,9294,13405,12848,9291,0}, {15657,9259,9276,9278,9301,9263,0}, {16999,18236,14400,14160,16174,0},}, /* 72 */ {{12859,9291,9261,9263,0}, {14690,15189,9294,9295,9310,9294,0}, {9250,9280,9290,9311,9295,0}, {9259,9265,9272,9316,16949,9294,0}, {9292,9324,9314,9267,9277,9273,9324,0}, {19764,15186,18018,16198,12838,12872,13610,12363,0},}, /* 73 */ {{14690,14909,9294,0}, {18552,15973,9294,9269,9263,9321,0}, {14953,9261,9291,9265,9322,0}, {13104,15155,9294,9259,9273,9311,0}, {9279,9279,9274,9314,9250,9321,9290,9331,0}, {14370,17254,18236,14400,13865,19260,0},}, /* 74 */ {{9254,9259,9322,9265,9323,0}, {16205,9330,9295,9284,9275,9294,0}, {15155,9258,9325,9271,9320,0}, {9295,9266,9271,9259,9324,9288,9295,0}, {9252,9294,9321,9292,9314,9294,9330,0}, {14395,15699,19818,17451,16195,0},}, /* 75 */ {{14144,9322,9258,9261,9271,0}, {9269,9275,9314,9260,20266,9330,0}, {19519,9291,9286,0}, {9250,9295,9324,9267,9288,9271,9294,0}, {15657,9314,9252,9292,9313,9322,0}, {17955,14390,13424,15699,0},}, /* 76 */ {{9327,9279,9294,14390,0}, {9267,9262,15696,9287,9286,14379,9324,9296,0}, {9298,9269,9259,9279,9294,0}, {12608,12390,9291,9310,9260,9301,0}, {12668,9284,9271,9321,9290,9311,0}, {19233,16429,15227,18046,17979,16688,13400,18290,16960,16431,16999,16195,0},}, /* 77 */ {{16421,9330,9295,9316,9311,0}, {13412,9291,9275,9259,9323,9323,0}, {9279,9261,12879,9294,0}, {9327,9324,9286,9314,9273,9329,9291,0}, {9250,9295,9312,9288,9278,15191,9301,0}, {16242,17985,12577,0},}, /* 78 */ {{17208,20265,17767,0}, {9259,9320,9301,16489,17467,9294,0}, {9290,9263,9267,9329,9291,0}, {9252,9263,19563,9313,9270,9313,9292,0}, {9273,9310,9294,13400,9314,9322,0}, {14395,14195,15931,0},}, /* 79 */ {{15657,9259,9276,9291,0}, {9279,9290,9299,9263,12608,9294,0}, {9279,9256,9310,9320,9322,0}, {9314,9324,9252,9285,9323,14190,9294,0}, {9259,9266,9294,9269,9316,9265,9269,0}, {14904,13694,16999,18775,14386,19045,0},}, /* 80 */ {{9290,9260,9259,9321,9312,0}, {16180,9314,9271,9321,9274,0}, {9263,9325,9259,9311,9294,0}, {9311,9280,9324,9286,9265,9269,9295,0}, {18986,9330,9267,9277,15191,9304,0}, {16980,14381,19559,12577,19289,16494,0},}, /* 81 */ {{9307,9288,9288,9262,9273,0}, {19524,9261,9284,9323,19069,9330,0}, {9290,9260,9312,9324,9296,0}, {9279,9280,19757,19520,9294,0}, {14190,9278,9294,9267,9324,9323,0}, {14437,17985,16999,15227,14904,16999,16195,0},}, /* 82 */ {{15191,9298,20558,9299,0}, {9269,9286,9314,9252,9294,9281,9295,0}, {9250,9323,9314,9294,9330,0}, {9254,9261,9291,9279,9304,9292,9295,0}, {20062,9290,9322,9265,9322,0}, {17979,12408,19233,15189,0},}, /* 83 */ {{16420,17254,9320,0}, {17979,9267,9277,9290,9265,9324,0}, {9258,9314,9298,9252,9323,0}, {15155,9294,9258,9263,9291,9314,0}, {15407,9278,9290,9263,9290,9323,0}, {14660,16960,14625,13660,16999,18775,15699,16430,0},}, /* 84 */ {{9290,9260,9321,9304,9296,0}, {19316,9267,9294,18534,9316,0}, {9271,9294,9296,9324,9312,0}, {9254,9271,9288,9311,9271,16420,9278,0}, {14883,9295,9267,9298,9271,9261,0}, {17955,14390,16438,19045,17451,16195,0},}, /* 85 */ {{19563,9314,9273,9260,9321,0}, {18986,15191,9301,14882,9295,0}, {19520,9265,9316,9321,9292,0}, {9293,9316,9294,9298,9310,9269,9304,0}, {9284,9324,9290,9259,9322,9265,9322,0}, {15699,14147,19233,15189,0},}, /* 86 */ {{9290,9266,9265,9288,9286,0}, {14190,9316,9295,18986,9330,0}, {9258,9314,9295,9273,9323,0}, {9259,9267,9281,9260,9307,9290,9323,0}, {12902,9290,9311,9280,9259,9290,0}, {16446,14676,19233,15189,0},}, /* 87 */ {{9312,9321,9269,9313,9294,0}, {20266,9314,9310,9280,9298,9292,0}, {19306,9294,19797,9291,0}, {19512,9279,9281,9294,9308,9323,0}, {15657,9294,9318,9301,9264,9324,0}, {15460,20257,19233,15189,0},}, /* 88 */ {{18033,18248,14654,9294,0}, {9250,9271,9294,9259,9322,9293,9294,0}, {12396,19563,9318,9329,0}, {16200,9330,9284,9263,9271,9286,9316,0}, {20088,9327,9279,9323,9305,9261,0}, {14660,12869,19559,12577,19020,17782,0},}, /* 89 */ {{13900,9294,15727,9320,0}, {16484,9256,9290,9296,9279,9256,9293,0}, {9290,9260,9321,9304,9296,0}, {18214,9302,9323,9267,9288,9294,0}, {9320,9295,9322,9314,9278,9273,9323,0}, {15408,15186,18018,16198,12838,0},}, /* 90 */ {{14379,9275,9296,9316,9290,0}, {9330,17767,9294,9250,9310,9294,0}, {16949,9280,9291,9314,0}, {9292,9324,9291,9278,9292,9324,9271,0}, {16167,9295,9259,9295,9321,9274,0}, {23894,18777,19559,12577,16999,19045,0},}, /* 91 */ {{9261,9322,9262,9322,9273,0}, {19524,9263,9316,16762,19563,9294,0}, {9269,9312,9271,9325,9291,0}, {12385,9259,9279,9271,9261,0}, {9298,9288,9322,9259,9314,9293,9312,0}, {14437,13694,13899,16477,16431,16688,16960,16431,16999,16195,0},}, /* 92 */ {{12902,16949,9295,0}, {9271,9307,9298,9291,14379,9256,9292,0}, {9258,9261,9294,16464,9294,0}, {16205,9267,9277,9271,9321,9293,0}, {9259,9327,9263,13398,9314,9290,9271,0}, {18035,15986,12577,15166,13428,0},}, /* 93 */ {{16420,17254,9295,0}, {15983,9291,9314,9260,9314,9290,0}, {9290,9262,9269,9267,9264,0}, {9250,9310,9294,15918,15662,9294,0}, {14667,15466,9259,9290,9271,9314,0}, {13177,16722,12582,16999,16195,0},}, /* 94 */ {{9311,9320,9271,19566,9294,0}, {15155,9294,9250,9261,9259,9276,0}, {9269,19563,14649,9265,9286,0}, {14414,13887,9269,9312,9263,0}, {9267,9325,9314,9254,9284,9290,9322,0}, {15154,13636,12909,14160,0},}, /* 95 */ {{9258,9307,9265,9290,9263,0}, {9254,9261,16420,9294,9279,9311,9291,0}, {9258,9307,9301,9259,9290,0}, {12902,9279,9284,9277,9310,9291,0}, {19279,16503,9294,16949,0}, {16688,16999,16718,16437,15228,12639,0},}, /* 96 */ {{12886,9269,9277,9301,0}, {9250,9321,9271,9294,17517,9294,0}, {9318,9261,9290,9321,9287,0}, {9301,9322,9318,9263,9314,9294,9295,0}, {12902,16200,9290,9322,9265,9322,0}, {18046,17979,16688,16999,16431,16999,16195,0},}, /* 97 */ {{9267,9292,16205,9330,0}, {15934,18497,9294,12602,9294,0}, {19772,9290,9262,9291,0}, {9316,9263,9316,9314,9271,9307,9294,0}, {16200,9314,9267,9260,9324,9284,9284,0}, {14370,17254,18236,14400,17514,12872,0},}, /* 98 */ {{18807,9277,9320,9264,0}, {9290,9321,9294,9330,9260,9295,0}, {19772,19051,9295,0}, {9311,9277,9262,9278,12870,9294,0}, {9271,9323,9271,9290,9322,9265,9323,0}, {15678,18035,12364,12872,20020,0},}, /* 99 */ {{16205,9314,9330,9271,0}, {16205,9314,9254,9321,9313,9271,0}, {9250,9282,9261,9290,9263,0}, {16420,9330,9258,9314,9301,9318,9329,9291,0}, {18986,15191,9301,16200,9295,0}, {14437,17467,12585,12577,0},}, /* 100 */ {{18740,18783,9316,0}, {9301,9323,9261,14382,17212,9294,0}, {18214,9302,9291,9314,0}, {19761,9250,9310,9322,9250,9323,0}, {9312,9259,9271,9290,9322,9265,9322,0}, {15719,17985,12577,0},}, }; vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/mkhdr.c0000644000175000017500000000437006637663302017470 0ustar mohuramohura#include #include #include long txtbuff[7][BUFSIZ]; void mk_hdr(void); int get_line(void); void parseit(unsigned char*); void print_poem_i(int n); void dumpit(void); int main(int argc, char **argv) { mk_hdr(); return 0; } void mk_hdr(void) { int n, i; printf(" struct s_poem { long phase1[8]; long phase2[10]; long phase3[8]; long phase4[10]; long phase5[10]; long auth[32]; }; typedef struct s_poem *POEM;\n\n"); printf("struct s_poem poem_table[] = {\n"); for (i = 1; i <= 100; i++){ while ((n = get_line()) != 7){ if (n < 0) break; } printf(" /* %d */\n", i); printf(" {"); print_poem_i(2); printf("\n "); print_poem_i(3); printf("\n "); print_poem_i(4); printf("\n "); print_poem_i(5); printf("\n "); print_poem_i(6); printf("\n "); print_poem_i(1); printf("},\n"); while ((n = get_line()) != 7){ if (n < 0) break; } } printf("};\n"); } int get_line(void) { int i, j, x; int ch; long c; for (i = 0; i < 7; i++) txtbuff[i][0] = 0; for (i = 0; i < 7; i++){ for (;;){ if ((ch = getc(stdin)) < 0){ txtbuff[i][0] = 0; return i-1; } if (!isspace(ch) || (ch == '\n')){ ungetc(ch, stdin); break; } } j = 0; for (;;){ if ((ch = getc(stdin)) < 0) return i; if (ch == '\n'){ txtbuff[i][j] = 0; return i+1; } if (isspace(ch)){ txtbuff[i][j] = 0; break; } if ((c = ch) > 0x80){ ch = getc(stdin); c = (c & 0x7f) * 256 + (ch & 0x7f); } if (c != '#'){ txtbuff[i][j] = c; } else { txtbuff[i][j] = 0; for (;;){ if (((ch = getc(stdin)) < 0) || (ch == '\n')) return i; } } j++; } txtbuff[i][j] = 0; } return i; } void print_poem_i(int n) { int i, j; printf("{"); for (j = 0; txtbuff[n][j] != 0; j++){ printf("%d,", txtbuff[n][j]); } printf("0},"); } void dumpit(void) { int i, j; for (i = 0; i < 7; i++){ for (j = 0; txtbuff[i][j] != 0; j++){ if (txtbuff[i][j] < 0x80){ printf("%c", txtbuff[i][j]); } else { printf("%c%c", 0x80 | txtbuff[i][j]/256, 0x80 | txtbuff[i][j]); } } printf(" "); } printf("\n"); } vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/mkgif0000755000175000017500000000172206637663302017240 0ustar mohuramohura#!/bin/sh FGCOLOR=rgb:00/00/00 BGCOLOR=rgb:ff/ff/ff FONT=tdfkaisaa VFLIBCAP=vflibcap-jtex DPI=600 MODE=ljfour SHRINK=4 POEM_FROM=1 POEM_TO=100 if [ $# -ge 1 ]; then FONT=$1 fi if [ $# -ge 2 ]; then VFLIBCAP=$2 fi if [ $# -ge 3 ]; then DPI=$3 fi if [ $# -ge 4 ]; then MODE=$4 fi if [ $# -ge 5 ]; then SHRINK=$5 fi if [ $# -ge 6 ]; then POEM_FROM=$6 fi if [ $# -ge 7 ]; then POEM_TO=$7 fi ARGS="-f ${FONT}.pk -v ${VFLIBCAP} -dpi ${DPI} -mode ${MODE} -s ${SHRINK}" GIFDIR=GIF-${FONT} if [ ! -d ${GIFDIR} ] ; then mkdir ${GIFDIR} fi TMP=tmp-$$.pgm POEM=${POEM_FROM} while true do if [ $POEM -gt ${POEM_TO} ]; then break; fi rm -f ${TMP} echo "Making Hyakunin Issyu Poem No. #${POEM}..." ./hyakubm ${POEM} ${ARGS} | pgmtoppm ${FGCOLOR}-${BGCOLOR} > ${TMP} ppmtogif -interlace ${TMP} > ${GIFDIR}/P${POEM}.gif ppmtogif -interlace -transparent ${BGCOLOR} ${TMP} > ${GIFDIR}/P${POEM}t.gif rm -f ${TMP} POEM=`expr ${POEM} + 1` done #EOF vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/GIF/0000755000175000017500000000000006617260475016622 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/hyaku-1.1.0/GIF/P1.gif0000644000175000017500000000332606617260462017571 0ustar mohuramohuraGIF87a<UUU999rrr,<@I8{Er ^V BjsH pH@0 ɑ0=,n0L.  Zዙ/^ucB 0hwM0#}l$3u9;v?A$o< Kw9]5SU{w ?H*zK}LIK6/~$=2L}vk !* O<?BDC RQO~IXC"~;.O:%}HdYxh -iA! IفP9 ZfX V6[2,$"j#ϝ? RH32)B@= IW,+|EW4 {sqBtZPP8(*{DF$@L,QuYhomHBzËո_~[̕9w(ya3/CGKhO`k[\bR- /s#^9$o %][5Eqo#@$%AA%j`ija& 8 {$(FI|VMУPmY ǏXAuM!t24RT斋Q`>OvbEB$Xn2dQ]9]&̇;|Qe0s&e~3`-Rha K'4h3a>چ:R:Y*01h$0ƖLK AxRԱDnŒ) J9,DTJa{|,Ȓي\73P"B+82"ρB k[Wgvn)3j~AP$ f&y%Ey`UÅ%@G(wQ(CG?aL)lK<[sɬP?GsU wWm3?Ѥs C<z!&y5E 'hÓMGg)Yp/^D(EP0(郷AZDT W>,0A@?[%h~Z-h "'B F7w,$%\ |AHh waUcq:]JL,W?  ^AAќ!?PA|jZêDu#KLxӃbg c"ED3 Pa'F 9FyTȂ\Bxd!1L>0 8t28qs)8AhD r^ذ0]n  6_:*ĥ6A~ai*bP}T6:@QW{"}x䥀5I^'# @/g78,}U@W/N(wAd OBe9"cFW{̒qR|$׸]J` Ha->%E~sZk|E@Uf*T`"SQ" WoC(eVhfo0'1dJ0W;%0'XXJ`#H tlZц~IGBv,ĂBʁm0!Ka@K`D(d'SJZ KˀjB3fQ`)RYؤ fĜrR(G}uAhW N>pfdqILBkt";vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/GIF/P1t.gif0000644000175000017500000000333606617260462017756 0ustar mohuramohuraGIF89a<UUU999rrr!,<@I8{Er ^V BjsH pH@0 ɑ0=,n0L.  Zዙ/^ucB 0hwM0#}l$3u9;v?A$o< Kw9]5SU{w ?H*zK}LIK6/~$=2L}vk !* O<?BDC RQO~IXC"~;.O:%}HdYxh -iA! IفP9 ZfX V6[2,$"j#ϝ? RH32)B@= IW,+|EW4 {sqBtZPP8(*{DF$@L,QuYhomHBzËո_~[̕9w(ya3/CGKhO`k[\bR- /s#^9$o %][5Eqo#@$%AA%j`ija& 8 {$(FI|VMУPmY ǏXAuM!t24RT斋Q`>OvbEB$Xn2dQ]9]&̇;|Qe0s&e~3`-Rha K'4h3a>چ:R:Y*01h$0ƖLK AxRԱDnŒ) J9,DTJa{|,Ȓي\73P"B+82"ρB k[Wgvn)3j~AP$ f&y%Ey`UÅ%@G(wQ(CG?aL)lK<[sɬP?GsU wWm3?Ѥs C<z!&y5E 'hÓMGg)Yp/^D(EP0(郷AZDT W>,0A@?[%h~Z-h "'B F7w,$%\ |AHh waUcq:]JL,W?  ^AAќ!?PA|jZêDu#KLxӃbg c"ED3 Pa'F 9FyTȂ\Bxd!1L>0 8t28qs)8AhD r^ذ0]n  6_:*ĥ6A~ai*bP}T6:@QW{"}x䥀5I^'# @/g78,}U@W/N(wAd OBe9"cFW{̒qR|$׸]J` Ha->%E~sZk|E@Uf*T`"SQ" WoC(eVhfo0'1dJ0W;%0'XXJ`#H tlZц~IGBv,ĂBʁm0!Ka@K`D(d'SJZ KˀjB3fQ`)RYؤ fĜrR(G}uAhW N>pfdqILBkt";vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/GIF/P2.gif0000644000175000017500000000315406617260465017574 0ustar mohuramohuraGIF87a<UUU999rrr,<@I8{G $g @f"1so)M FB Bgi4`VI 8-H R-y l)\5cX$\sF "qL}V4Wm' I&{*F""` B62v?h]c5:`':ZH3o@ & xcX!A(j\ B)ʞ&.s& 6: % zYDQ+ ʁkzxaz3d"W+I@C7R*бҚ#Oj2&%E\ڈ%z\$KZ!jN lVX u#$ P@" NKQk* | d'OSب)"kԈR.*\P.SM6)OnԌJbotPRJ09*qRs@5ћp[|2:0g0R$DFrMVNNl&WF]pᆘ6) d$Wy%~wdB&S AU|wZeDbT>g@'C rM.fbVxaَY$2Spl)qP =UI2bQW*K^u`Z`G-=h#-cĨTFRD_}x'A&<[20\.X vZpCi`ԩ_hRE6t%Y=!p)WiIu@ȇV,db* q$`baC2OHKr $8KQ:PJk/ŠFWnqHNr`frfJ u*6pQo9%[\,EkЂz eE HXZ FnܐC1kYT(תq&x Pj^*0}OJ*=)HI/#JTAlOftPKp2ce$LY_HRZ,] >bݿ9`2Fa:*ZhQ lFh6x lW^II:jte#Mt1rXGt VrgT# p0מYvcgA,AK0vCCD4_A%b|R3\kb9t:ƣ0@:tAIH"f \l{< 0`O d+Wv%(,m,# K,rȅNhhƙf> \!Y@>3Mgq!p1e3 $w3hz5 Hd)$泛,A4@5fpFѰ|E DX*F=‚-$QX"1AGP{B.nB J8z&2P$ _P! < :Ca&p)rTh 7E|hD2xE%TA3sdSx:rP@gGCx{|=D+b@C紧 ٫'x(!48`Dˊ ȁ;CNЈO:7(JvF;vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/GIF/P2t.gif0000644000175000017500000000316406617260465017761 0ustar mohuramohuraGIF89a<UUU999rrr!,<@I8{G $g @f"1so)M FB Bgi4`VI 8-H R-y l)\5cX$\sF "qL}V4Wm' I&{*F""` B62v?h]c5:`':ZH3o@ & xcX!A(j\ B)ʞ&.s& 6: % zYDQ+ ʁkzxaz3d"W+I@C7R*бҚ#Oj2&%E\ڈ%z\$KZ!jN lVX u#$ P@" NKQk* | d'OSب)"kԈR.*\P.SM6)OnԌJbotPRJ09*qRs@5ћp[|2:0g0R$DFrMVNNl&WF]pᆘ6) d$Wy%~wdB&S AU|wZeDbT>g@'C rM.fbVxaَY$2Spl)qP =UI2bQW*K^u`Z`G-=h#-cĨTFRD_}x'A&<[20\.X vZpCi`ԩ_hRE6t%Y=!p)WiIu@ȇV,db* q$`baC2OHKr $8KQ:PJk/ŠFWnqHNr`frfJ u*6pQo9%[\,EkЂz eE HXZ FnܐC1kYT(תq&x Pj^*0}OJ*=)HI/#JTAlOftPKp2ce$LY_HRZ,] >bݿ9`2Fa:*ZhQ lFh6x lW^II:jte#Mt1rXGt VrgT# p0מYvcgA,AK0vCCD4_A%b|R3\kb9t:ƣ0@:tAIH"f \l{< 0`O d+Wv%(,m,# K,rȅNhhƙf> \!Y@>3Mgq!p1e3 $w3hz5 Hd)$泛,A4@5fpFѰ|E DX*F=‚-$QX"1AGP{B.nB J8z&2P$ _P! < :Ca&p)rTh 7E|hD2xE%TA3sdSx:rP@gGCx{|=D+b@C紧 ٫'x(!48`Dˊ ȁ;CNЈO:7(JvF;vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/GIF/P3.gif0000644000175000017500000000345206617260467017600 0ustar mohuramohuraGIF87a=UUU999rrr,=@I8ͻO0gQ hA-1t b`(&H_:!rXm]CV hD@ 8ڂ0X0 6|g?w}3j81zj=#IciDFH}gcuVOmix!0Goqr&|MVlNftvu. &}ԝ<ZcX*b.a '98\3j؊qpMH=8YvXvHPD&>8ˍ"[ CHN1!Ƴ+dPKhs"* s§&ڕ/lD$bRՈ ´N[8ۄ$Y %'f2!TpIdp{ku+ hp=p NQ=HK4L51.j=5w Ȅ$NS\H> agcJ*J"ӷ2k}MSfB* qLŻB(m*]>h|fiWm?QV!D)&DWKt`435yPG 1@xt$>WlN"$袃#"MaA's7aR"_<Й-О<cCacF@\,Mp',6x% J|E(8.jH/| H&( YpRL` Yg:1zA&A:wBet…Ƨ+ Nh6Pba[-ljh%l0F5. f.SGJ"9Xƹj~EI"dV7}΁0X[+ _@@3Mssߊ]  5s-oNפH5%p˜ 8j]TNE<~>ިG:̺c!!(؁brDCVa[@/ެ ;Lx$6=Ttx7RE)#PE#`2 fREB%NSƀ"Hi{|4Nx`ALald4+ 8BN@eR !k}@G$E1Zm,~ qʒr;dBJfT15 Kw@"V+|]Kl`NO' @9OFҔTJqM)4Rʀ , -`H ˸VX;vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/GIF/P3t.gif0000644000175000017500000000346206617260467017765 0ustar mohuramohuraGIF89a=UUU999rrr!,=@I8ͻO0gQ hA-1t b`(&H_:!rXm]CV hD@ 8ڂ0X0 6|g?w}3j81zj=#IciDFH}gcuVOmix!0Goqr&|MVlNftvu. &}ԝ<ZcX*b.a '98\3j؊qpMH=8YvXvHPD&>8ˍ"[ CHN1!Ƴ+dPKhs"* s§&ڕ/lD$bRՈ ´N[8ۄ$Y %'f2!TpIdp{ku+ hp=p NQ=HK4L51.j=5w Ȅ$NS\H> agcJ*J"ӷ2k}MSfB* qLŻB(m*]>h|fiWm?QV!D)&DWKt`435yPG 1@xt$>WlN"$袃#"MaA's7aR"_<Й-О<cCacF@\,Mp',6x% J|E(8.jH/| H&( YpRL` Yg:1zA&A:wBet…Ƨ+ Nh6Pba[-ljh%l0F5. f.SGJ"9Xƹj~EI"dV7}΁0X[+ _@@3Mssߊ]  5s-oNפH5%p˜ 8j]TNE<~>ިG:̺c!!(؁brDCVa[@/ެ ;Lx$6=Ttx7RE)#PE#`2 fREB%NSƀ"Hi{|4Nx`ALald4+ 8BN@eR !k}@G$E1Zm,~ qʒr;dBJfT15 Kw@"V+|]Kl`NO' @9OFҔTJqM)4Rʀ , -`H ˸VX;vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/GIF/P4.gif0000644000175000017500000000336406617260472017577 0ustar mohuramohuraGIF87a<UUU999rrr,<@I8;1^l+Ŭs_! ^`p H2"+S. VBh E%5LPBTW V{0JL|qza*yzhx9@$D|Wp)_ft(h66 nNb (_ltzq2 W` *jU,Ay3Axh8R!As1 1j},Ќ)$MqMA`xh/ Nj*'HE~mpX'#^R$g:fTL _&iq ̓0t`_C7"CGS hdїAIĒaj{# O2F~K2} xVc+Vk@n W7d+]+3>#"p`b @9bg{(773u\4 8L%O,"<}7lC dLa0xb(Ɓnۨ7{6AGQ!g]X3s `ΆD @'az03Bн@Oq`|$b[gУ8"Hq0 $B# Fxбp1bX-gI-E9F\ЕT6b i49xN :3 \;qUP$& gzl# @µpi8uB0ad V@J4 C$|[Q1ubPXKic⊒?yl~L̈́hC {eIPY`i aZYsrz5?|͘&{>uЅ9gN|aek(_ǽ(F$JLRV*qpʋaH?Xi !YuK'@W0Oʼ16@Gd;[ Z7 3[H׵zrko'.4v8Cw0:Ę)zYr9 Tu v>@,9 ˘F&%Iښ@+'x {wAZ?xRB vxgz*cɮ@JKH iCH"IK7#2=/$tL\5HPB{wdP1xMGv#netü$,Z.e DEN !#,%2c^d$22֏#Kt ݱYƽ.He"R{Bc1 WR@!Eʓ֯;vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/GIF/P4t.gif0000644000175000017500000000337406617260472017764 0ustar mohuramohuraGIF89a<UUU999rrr!,<@I8;1^l+Ŭs_! ^`p H2"+S. VBh E%5LPBTW V{0JL|qza*yzhx9@$D|Wp)_ft(h66 nNb (_ltzq2 W` *jU,Ay3Axh8R!As1 1j},Ќ)$MqMA`xh/ Nj*'HE~mpX'#^R$g:fTL _&iq ̓0t`_C7"CGS hdїAIĒaj{# O2F~K2} xVc+Vk@n W7d+]+3>#"p`b @9bg{(773u\4 8L%O,"<}7lC dLa0xb(Ɓnۨ7{6AGQ!g]X3s `ΆD @'az03Bн@Oq`|$b[gУ8"Hq0 $B# Fxбp1bX-gI-E9F\ЕT6b i49xN :3 \;qUP$& gzl# @µpi8uB0ad V@J4 C$|[Q1ubPXKic⊒?yl~L̈́hC {eIPY`i aZYsrz5?|͘&{>uЅ9gN|aek(_ǽ(F$JLRV*qpʋaH?Xi !YuK'@W0Oʼ16@Gd;[ Z7 3[H׵zrko'.4v8Cw0:Ę)zYr9 Tu v>@,9 ˘F&%Iښ@+'x {wAZ?xRB vxgz*cɮ@JKH iCH"IK7#2=/$tL\5HPB{wdP1xMGv#netü$,Z.e DEN !#,%2c^d$22֏#Kt ݱYƽ.He"R{Bc1 WR@!Eʓ֯;vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/GIF/P5.gif0000644000175000017500000000331006617260475017572 0ustar mohuramohuraGIF87a<UUU999rrr,<@I8;G0^ihDtF@AA  3rY2X)@ز@]R0>$ A*,ttG=Xt0],,#e3B w=/3\v?>%Izo|E!7k7bnj1QT?ràXժj3r1 _ݘȚE>;4ƭIGߣvV%0Çr3AND^`fctxi"F!DQ!K{)ԁ/)ka)vf^F +'c U&19$ xzPi*J%l :ʅ9-;-Y&eÈsg 8{ĖWc\Q2L1r#7-Ya"#FxCQV(0x4@gGj*%L8z '` qL8®OXXuĥMlXe 8%Ż܌lvH}]I``'EneOQq`@, wP$cą  H9TDpSI&z<8 "h),d] HYA)eNuuA7ނ̷ "ljGI?Qܕk'fLy6LJDY*$ԷMUMIKA ]S"iz8(fQ># GhI ~xh.Hu^&h"opcZ(eg TIXrh C`@n(Z0s+gF#Ii-Ae "Zm;XPjwf ﱚgmEG~"lۡ\q70AȮq"$R%N fAuT5K9W,sJ hY~{zHwlۡ8Tc|0D:#[>W}=!L*# E5q9]C*zlPtѓ$$}G &, vJ&: 1p]Q0 ܠK=iabӦ]6`w!`0 ?8!z xpr{hHa4 Ra"ud8iZ."xeT!h {pl qt*P#$.qc>D5 R|>BR_d}# (! /V M!Hf#, lbCd9tG CFQW ) 0W"7#=*-X 81ÃpπTM) r<h,YK$"#}4*@d4>Se\':Ɲ@D6 [  ]`Ka]%L*̵ mb_&@TЁ  y#~h0(;ø#єq$L;DC`"c tt$t$U$ K;vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/GIF/P5t.gif0000644000175000017500000000332006617260475017757 0ustar mohuramohuraGIF89a<UUU999rrr!,<@I8;G0^ihDtF@AA  3rY2X)@ز@]R0>$ A*,ttG=Xt0],,#e3B w=/3\v?>%Izo|E!7k7bnj1QT?ràXժj3r1 _ݘȚE>;4ƭIGߣvV%0Çr3AND^`fctxi"F!DQ!K{)ԁ/)ka)vf^F +'c U&19$ xzPi*J%l :ʅ9-;-Y&eÈsg 8{ĖWc\Q2L1r#7-Ya"#FxCQV(0x4@gGj*%L8z '` qL8®OXXuĥMlXe 8%Ż܌lvH}]I``'EneOQq`@, wP$cą  H9TDpSI&z<8 "h),d] HYA)eNuuA7ނ̷ "ljGI?Qܕk'fLy6LJDY*$ԷMUMIKA ]S"iz8(fQ># GhI ~xh.Hu^&h"opcZ(eg TIXrh C`@n(Z0s+gF#Ii-Ae "Zm;XPjwf ﱚgmEG~"lۡ\q70AȮq"$R%N fAuT5K9W,sJ hY~{zHwlۡ8Tc|0D:#[>W}=!L*# E5q9]C*zlPtѓ$$}G &, vJ&: 1p]Q0 ܠK=iabӦ]6`w!`0 ?8!z xpr{hHa4 Ra"ud8iZ."xeT!h {pl qt*P#$.qc>D5 R|>BR_d}# (! /V M!Hf#, lbCd9tG CFQW ) 0W"7#=*-X 81ÃpπTM) r<h,YK$"#}4*@d4>Se\':Ɲ@D6 [  ]`Ka]%L*̵ mb_&@TЁ  y#~h0(;ø#єq$L;DC`"c tt$t$U$ K;vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/00_README0000644000175000017500000000027006633351620017362 0ustar mohuramohurahyakubm, hyakux11 --- "Ogura Hyakunin Issyu" "hyakubm" makes a PGM bitmap file of a poem in "Ogura Hyakunin Issu". "hyakux11" displays a poem in "Ogura Hyakunin Issu". h.kakugawa vflib3-3.6.14.dfsg/utils/hyaku-1.1.0/index.html0000644000175000017500000000224406617264257020216 0ustar mohuramohura
    The Ogura Hyakunin Issyu

    "The Ogura Hyakunin Issyu"

    What is "The Ogura Hyakunin Issyu"?
    --- It is a collection of old Japanese poems, selected by Fujiwara-no-Teika. "Ogura Hyakunin Issyu" contains poems of hundread poets, one per poest. "Hyakunin" means "hundread people", and "Issyu" means "a poem". "Ogura" is a name of place where Fujiwara-no-Teika selected this poem collection.

    This is an example of VFlib version 3 for the use of vertical writing fonts.


    The followings are the first five poems.

    1. 2. 3. 4. 5.

    For the meaning of these poems (in English), for example, refer to the http://etext.lib.virginia.edu/japanese/index/, Japanese Text Initiative at University Virginia and University Pittsburgh.


    by Hirotsugu Kakugawa vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/0000755000175000017500000000000010400435232016774 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/ctext2pgm.h0000644000175000017500000001357506731042516021110 0ustar mohuramohura/* ctext2pgm.h */ /* * Copyright (C) 1998-1999 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Name of this program */ #define PROG_NAME "ctext2pgm" #define VERSION "version 1.5.0, 13 June 1999" /* Input encodings */ /* (codesets 2 and 3 are not supported for EUC encodings) */ #define ENC_DEFAULT 0 #define ENC_UNKNOWN -1 #define ENC_CTEXT 0 /* Compound text */ #define ENC_ISO2022_JP 1 /* ISO-2022-JP */ #define ENC_ISO2022_KR 2 /* ISO-2022-KR */ #define ENC_ISO2022_CN 3 /* ISO-2022-CN */ #define ENC_ISO8859_1 11 /* ISO 8859-1, all chars are 1byte */ #define ENC_ISO8859_2 12 /* ISO 8859-2, all chars are 1byte */ #define ENC_ISO8859_3 13 /* ISO 8859-3, all chars are 1byte */ #define ENC_ISO8859_4 14 /* ISO 8859-4, all chars are 1byte */ #define ENC_ISO8859_5 15 /* ISO 8859-5, all chars are 1byte */ #define ENC_ISO8859_6 16 /* ISO 8859-6, all chars are 1byte */ #define ENC_ISO8859_7 17 /* ISO 8859-7, all chars are 1byte */ #define ENC_ISO8859_8 18 /* ISO 8859-8, all chars are 1byte */ #define ENC_ISO8859_9 19 /* ISO 8859-9, all chars are 1byte */ #define ENC_EUC_JP1 21 /* EUC Japan (JISX0201Roman for codeset 0) */ #define ENC_EUC_JP2 22 /* EUC Japan with ISO8859-1 for codeset 0 */ #define ENC_EUC_KR 23 /* EUC Korean */ #define ENC_EUC_CH_GB 24 /* EUC Chinese, GB2312 */ #define ENC_EUC_CH_CNS 25 /* EUC Chinese, CNS11643 */ #define ENC_SJIS 30 /* Shift JIS */ /* Writing directions in a line */ #define WDIR_DEFAULT 0 #define WDIR_L2R 0 #define WDIR_R2L 1 /* Charset types */ #define TYPEID_UNKNOWN -1 #define TYPEID94 1 #define TYPEID96 2 #define TYPEID94_2 3 /* Charsets */ #define CS_UNKNOWN -1 #define CS_ASCII (TYPEID94*256 + (4*16+2)) #define CS_ISO8859_1 (TYPEID96*256 + (4*16+1)) #define CS_ISO8859_2 (TYPEID96*256 + (4*16+2)) #define CS_ISO8859_3 (TYPEID96*256 + (4*16+3)) #define CS_ISO8859_4 (TYPEID96*256 + (4*16+4)) #define CS_ISO8859_5 (TYPEID96*256 + (4*16+12)) #define CS_ISO8859_6 (TYPEID96*256 + (4*16+7)) #define CS_ISO8859_7 (TYPEID96*256 + (4*16+6)) #define CS_ISO8859_8 (TYPEID96*256 + (4*16+8)) #define CS_ISO8859_9 (TYPEID96*256 + (4*16+13)) #define CS_JISX0201K (TYPEID94*256 + (4*16+9)) #define CS_JISX0201R (TYPEID94*256 + (4*16+10)) #define CS_JISX0208 (TYPEID94_2*256 + (4*16+2)) #define CS_JISX0212 (TYPEID94_2*256 + (4*16+4)) #define CS_VISCII (TYPEID94_2*256 + (5*16+10)) #define CS_TIS620 (TYPEID94_2*256 + (5*16+4)) #define CS_KSC5601 (TYPEID94_2*256 + (4*16+3)) #define CS_GB2312 (TYPEID94_2*256 + (4*16+1)) #define CS_CNS11643_1 (TYPEID94_2*256 + (4*16+7)) #define CS_CNS11643_2 (TYPEID94_2*256 + (4*16+8)) #define CS_CNS11643_3 (TYPEID94_2*256 + (4*16+9)) #define CS_CNS11643_4 (TYPEID94_2*256 + (4*16+10)) #define CS_CNS11643_5 (TYPEID94_2*256 + (4*16+11)) #define CS_CNS11643_6 (TYPEID94_2*256 + (4*16+12)) #define CS_CNS11643_7 (TYPEID94_2*256 + (4*16+13)) #define CS_MULE_BIG5_L1 (TYPEID94_2*256 + (3*16+0)) #define CS_MULE_BIG5_L2 (TYPEID94_2*256 + (3*16+1)) #define CS_MULE_ARAB0 (TYPEID94*256 + (3*16+2)) #define CS_MULE_ARAB1 (TYPEID94*256 + (3*16+3)) #define CS_MULE_ARAB2 (TYPEID94*256 + (3*16+4)) #define CS_MULE_ETHIOPIC (TYPEID94_2*256 + (3*16+3)) #define CS_MULE_VISCII_L (TYPEID96*256 + (3*16+1)) #define CS_MULE_VISCII_U (TYPEID96*256 + (3*16+2)) #define CSID(t,code) ((t)*256+(code)) /* Font families */ #define FAM_DEFAULT 1 #define FAM_FIXED 0 #define FAM_TIMES 1 #define FAM_HELV 2 #define FAM_COUR 3 /* Font faces */ #define FACE_DEFAULT 0 #define FACE_NORMAL 0 #define FACE_BOLD 1 #define FACE_ITALIC 2 /* Status of s_font_info.font_id */ #define NOT_OPENED -1 #define NOT_FOUND -2 /* Font info structue */ struct s_font_info { int pixel_size; int charset_id; int family_id; int face_id; char *font_name; int font_id; /* internal use only --- for opened VFlib font id */ }; /* Direction stack structue */ #define MAX_DIR_STACK 64 struct s_dir_stack_elem { int dir; struct vf_s_bitmaplist the_line_buff; int h_pos_x; int h_pos_y; }; #define PR1(s1) fprintf(stderr, s1); #define PR2(s1,s2) fprintf(stderr, s1, s2); #define PR3(s1,s2,s3) fprintf(stderr, s1, s2, s3); /* Output formats */ #define OFORM_DEFAULT 0 #define OFORM_PGM_ASCII 0 #define OFORM_PGM_RAW 1 #define OFORM_PBM_ASCII 2 #define OFORM_PBM_RAW 3 #define OFORM_EPS 10 #define OFORM_ASCII_ART 20 #define OFORM_ASCII_ART_V 21 #define OFORM_NONE 99 /* Line typeset */ #define LINE_DEFAULT 0 #define LINE_FLUSH_LEFT 1 #define LINE_FLUSH_RIGHT 2 #define LINE_CENTER 3 /* Default values */ #define DEFAULT_VFLIBCAP "vflibcap-ctext2pgm" #define DEFAULT_PIXEL_SIZE 16 #define DEFAULT_BASELINESKIP 1.2 #define DEFAULT_MAG 1 #define DEFAULT_MARGIN 0 #define DEFAULT_SHRINK 1 #define DEFAULT_REVERSE 0 #define DEFAULT_LINE_POS LINE_DEFAULT #define DEFAULT_EPS_POINT_SIZE 12.0 #define DEFAULT_TAB_SKIP 6 /*EOF*/ vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/00_README0000644000175000017500000000646706544364275020216 0ustar mohuramohuraREADME: ctext2pgm by Hirotsugu Kakugawa (h.kakugawa@computer.org) 1. What is "ctext2pgm" ? Ctext2pgm makes a bitmap of a text encoded in compound text. Bitmap format is PGM, PBM, EPS and ASCII art format. Not only it accepts compound text encodings but also it accepts EUC-Japanese, EUC-Korean, and EUC-Chinese encodings for input file encodings. This program supports scripts of Left-to-Right writing direction. Therefore, Arabic and Hebrew languages are not supported. Currently, the following character sets are supported: ASCII (English), ISO 8859-1,2,3,4,9 (English, German, Italy, French, Spanish, etc) ISO 8859-5 (Russian) ISO 8859-7 (Greek) ISO 8859-8 (Hebrew) Mule Arabic (Arabic by Mule editor) JIS X 0201 (Japanese Roman and and Roman) JIS X 0208 (Japanese Kanji) GB 2312 (Chinese Hanzi) CNS 11641 (Chinese Hanzi) KSC 5601 (Hangle) 2. Installing ctext2pgm To compile the program, run the "configure" script and then, run "make" in ctext2pgm directory: % ./configure [RET] % make [RET] To install the program, become the root user and run "make" with an "install" argument: # make install [RET] The program "ctext2pgm" and default vflibcap file (a font database) "vflibcap-ctext2pgm" is installed. The program used "vflibcap-ctext2pgm" for its font database file by default. 3. Running ctext2pgm Run ctext2pgm with a `-help' option. Short help message is printed. See `VFlib-34.info' (users manual of VFlib 3.4) for detail. 4. Fonts Ctext2pgm used VFlib library to obtain glyphs of characters of various character sets. A file `vflibcap-ctext2pgm' defines a set of fonts that are used in ctext2pgm. Standard `vflibcap-ctext2pgm' defines fonts to use standard fonts of X Window system in PCF format. (ISO8859-{2,3,4,9}, Mule Arabic, and CNS11641 fonts are not included standard X WIndow system.) You can obtain these optional fonts from the following URLs. ftp://ftp.etl.go.jp/pub/mule/fonts/ETL/ ftp://ftp.etl.go.jp/pub/mule/fonts/japanese/ ftp://ftp.etl.go.jp/pub/mule/fonts/chinese/ If optional fonts are installed under directories /usr/local/share/fonts/X11/ETL/ /usr/local/share/fonts/X11/japanese/ /usr/local/share/fonts/X11/chinese/ in your system, respectively, you can use the default vflibcap file without any modifications. Since the fonts are in BDF format, a shell script shown below may be useful to convert from BDF to PCF: - * - - * - - * - - * - - * - - * - - * - - * - - * - #! /bin/sh for BDF in `echo *.bdf.gz` do echo ${BDF}... PCF=`echo ${BDF} | sed 's/.bdf.gz$/.pcf/'` rm -f ${PCF} ${PCF}.gz gzip -cd < ${BDF} | bdftopcf | gzip -c > ${PCF}.gz done - * - - * - - * - - * - - * - - * - - * - - * - - * - If you want to use these optional fonts by application software on X Window system (e.g., multilingual editor Mule), the "fonts.dir" file is necessary in the directory. Run the "mkfontdir" program to make `fonts.dir' file. This file is necessary if you want to use such font on application software on X Window. 5. Making multilingual text files Use the Mule editor. It is distributed from the following URL: ftp://ftp.etl.go.jp/pub/mule/ vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/fontdef.h0000644000175000017500000017710206731037107020615 0ustar mohuramohura/* fontdef.h */ /* * Copyright (C) 1998-1999 Hirotsugu Kakugawa. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ struct s_font_info font_info[] = { /*** 14 ***/ /* ascii */ {14, CS_ASCII, FAM_FIXED, FACE_NORMAL, "iso8859_1:14:f" }, {14, CS_ASCII, FAM_FIXED, FACE_ITALIC, "iso8859_1:14I:f" }, {14, CS_ASCII, FAM_FIXED, FACE_BOLD, "iso8859_1:14B:f" }, {14, CS_ASCII, FAM_TIMES, FACE_NORMAL, "iso8859_1:14:t" }, {14, CS_ASCII, FAM_TIMES, FACE_ITALIC, "iso8859_1:14I:t" }, {14, CS_ASCII, FAM_TIMES, FACE_BOLD, "iso8859_1:14B:t" }, {14, CS_ASCII, FAM_HELV, FACE_NORMAL, "iso8859_1:14:h" }, {14, CS_ASCII, FAM_HELV, FACE_ITALIC, "iso8859_1:14I:h" }, {14, CS_ASCII, FAM_HELV, FACE_BOLD, "iso8859_1:14B:h" }, {14, CS_ASCII, FAM_COUR, FACE_NORMAL, "iso8859_1:14:c" }, {14, CS_ASCII, FAM_COUR, FACE_ITALIC, "iso8859_1:14I:c" }, {14, CS_ASCII, FAM_COUR, FACE_BOLD, "iso8859_1:14B:c" }, /* iso8859-1 */ {14, CS_ISO8859_1, FAM_FIXED, FACE_NORMAL, "iso8859_1:14:f" }, {14, CS_ISO8859_1, FAM_FIXED, FACE_ITALIC, "iso8859_1:14I:f" }, {14, CS_ISO8859_1, FAM_FIXED, FACE_BOLD, "iso8859_1:14B:f" }, {14, CS_ISO8859_1, FAM_TIMES, FACE_NORMAL, "iso8859_1:14:t" }, {14, CS_ISO8859_1, FAM_TIMES, FACE_ITALIC, "iso8859_1:14I:t" }, {14, CS_ISO8859_1, FAM_TIMES, FACE_BOLD, "iso8859_1:14B:t" }, {14, CS_ISO8859_1, FAM_HELV, FACE_NORMAL, "iso8859_1:14:h" }, {14, CS_ISO8859_1, FAM_HELV, FACE_ITALIC, "iso8859_1:14I:h" }, {14, CS_ISO8859_1, FAM_HELV, FACE_BOLD, "iso8859_1:14B:h" }, {14, CS_ISO8859_1, FAM_COUR, FACE_NORMAL, "iso8859_1:14:c" }, {14, CS_ISO8859_1, FAM_COUR, FACE_ITALIC, "iso8859_1:14I:c" }, {14, CS_ISO8859_1, FAM_COUR, FACE_BOLD, "iso8859_1:14B:c" }, /* iso8859-2 */ {14, CS_ISO8859_2, FAM_FIXED, FACE_NORMAL, "iso8859_2:14:f" }, {14, CS_ISO8859_2, FAM_FIXED, FACE_ITALIC, "iso8859_2:14I:f" }, {14, CS_ISO8859_2, FAM_FIXED, FACE_BOLD, "iso8859_2:14B:f" }, {14, CS_ISO8859_2, FAM_TIMES, FACE_NORMAL, "iso8859_2:14:t" }, {14, CS_ISO8859_2, FAM_TIMES, FACE_ITALIC, "iso8859_2:14I:t" }, {14, CS_ISO8859_2, FAM_TIMES, FACE_BOLD, "iso8859_2:14B:t" }, {14, CS_ISO8859_2, FAM_HELV, FACE_NORMAL, "iso8859_2:14:h" }, {14, CS_ISO8859_2, FAM_HELV, FACE_ITALIC, "iso8859_2:14I:h" }, {14, CS_ISO8859_2, FAM_HELV, FACE_BOLD, "iso8859_2:14B:h" }, {14, CS_ISO8859_2, FAM_COUR, FACE_NORMAL, "iso8859_2:14:c" }, {14, CS_ISO8859_2, FAM_COUR, FACE_ITALIC, "iso8859_2:14I:c" }, {14, CS_ISO8859_2, FAM_COUR, FACE_BOLD, "iso8859_2:14B:c" }, /* iso8859-3 */ {14, CS_ISO8859_3, FAM_FIXED, FACE_NORMAL, "iso8859_3:14:f" }, {14, CS_ISO8859_3, FAM_FIXED, FACE_ITALIC, "iso8859_3:14I:f" }, {14, CS_ISO8859_3, FAM_FIXED, FACE_BOLD, "iso8859_3:14B:f" }, {14, CS_ISO8859_3, FAM_TIMES, FACE_NORMAL, "iso8859_3:14:t" }, {14, CS_ISO8859_3, FAM_TIMES, FACE_ITALIC, "iso8859_3:14I:t" }, {14, CS_ISO8859_3, FAM_TIMES, FACE_BOLD, "iso8859_3:14B:t" }, {14, CS_ISO8859_3, FAM_HELV, FACE_NORMAL, "iso8859_3:14:h" }, {14, CS_ISO8859_3, FAM_HELV, FACE_ITALIC, "iso8859_3:14I:h" }, {14, CS_ISO8859_3, FAM_HELV, FACE_BOLD, "iso8859_3:14B:h" }, {14, CS_ISO8859_3, FAM_COUR, FACE_NORMAL, "iso8859_3:14:c" }, {14, CS_ISO8859_3, FAM_COUR, FACE_ITALIC, "iso8859_3:14I:c" }, {14, CS_ISO8859_3, FAM_COUR, FACE_BOLD, "iso8859_3:14B:c" }, /* iso8859-4 */ {14, CS_ISO8859_4, FAM_FIXED, FACE_NORMAL, "iso8859_4:14:f" }, {14, CS_ISO8859_4, FAM_FIXED, FACE_ITALIC, "iso8859_4:14I:f" }, {14, CS_ISO8859_4, FAM_FIXED, FACE_BOLD, "iso8859_4:14B:f" }, {14, CS_ISO8859_4, FAM_TIMES, FACE_NORMAL, "iso8859_4:14:t" }, {14, CS_ISO8859_4, FAM_TIMES, FACE_ITALIC, "iso8859_4:14I:t" }, {14, CS_ISO8859_4, FAM_TIMES, FACE_BOLD, "iso8859_4:14B:t" }, {14, CS_ISO8859_4, FAM_HELV, FACE_NORMAL, "iso8859_4:14:h" }, {14, CS_ISO8859_4, FAM_HELV, FACE_ITALIC, "iso8859_4:14I:h" }, {14, CS_ISO8859_4, FAM_HELV, FACE_BOLD, "iso8859_4:14B:h" }, {14, CS_ISO8859_4, FAM_COUR, FACE_NORMAL, "iso8859_4:14:c" }, {14, CS_ISO8859_4, FAM_COUR, FACE_ITALIC, "iso8859_4:14I:c" }, {14, CS_ISO8859_4, FAM_COUR, FACE_BOLD, "iso8859_4:14B:c" }, /* iso8859-5 */ {14, CS_ISO8859_5, FAM_FIXED, FACE_NORMAL, "iso8859_5:14:f" }, {14, CS_ISO8859_5, FAM_FIXED, FACE_ITALIC, "iso8859_5:14I:f" }, {14, CS_ISO8859_5, FAM_FIXED, FACE_BOLD, "iso8859_5:14B:f" }, {14, CS_ISO8859_5, FAM_TIMES, FACE_NORMAL, "iso8859_5:14:t" }, {14, CS_ISO8859_5, FAM_TIMES, FACE_ITALIC, "iso8859_5:14I:t" }, {14, CS_ISO8859_5, FAM_TIMES, FACE_BOLD, "iso8859_5:14B:t" }, {14, CS_ISO8859_5, FAM_HELV, FACE_NORMAL, "iso8859_5:14:h" }, {14, CS_ISO8859_5, FAM_HELV, FACE_ITALIC, "iso8859_5:14I:h" }, {14, CS_ISO8859_5, FAM_HELV, FACE_BOLD, "iso8859_5:14B:h" }, {14, CS_ISO8859_5, FAM_COUR, FACE_NORMAL, "iso8859_5:14:c" }, {14, CS_ISO8859_5, FAM_COUR, FACE_ITALIC, "iso8859_5:14I:c" }, {14, CS_ISO8859_5, FAM_COUR, FACE_BOLD, "iso8859_5:14B:c" }, /* iso8859-7 */ {14, CS_ISO8859_7, FAM_FIXED, FACE_NORMAL, "iso8859_7:14:f" }, {14, CS_ISO8859_7, FAM_FIXED, FACE_ITALIC, "iso8859_7:14I:f" }, {14, CS_ISO8859_7, FAM_FIXED, FACE_BOLD, "iso8859_7:14B:f" }, {14, CS_ISO8859_7, FAM_TIMES, FACE_NORMAL, "iso8859_7:14:t" }, {14, CS_ISO8859_7, FAM_TIMES, FACE_ITALIC, "iso8859_7:14I:t" }, {14, CS_ISO8859_7, FAM_TIMES, FACE_BOLD, "iso8859_7:14B:t" }, {14, CS_ISO8859_7, FAM_HELV, FACE_NORMAL, "iso8859_7:14:h" }, {14, CS_ISO8859_7, FAM_HELV, FACE_ITALIC, "iso8859_7:14I:h" }, {14, CS_ISO8859_7, FAM_HELV, FACE_BOLD, "iso8859_7:14B:h" }, {14, CS_ISO8859_7, FAM_COUR, FACE_NORMAL, "iso8859_7:14:c" }, {14, CS_ISO8859_7, FAM_COUR, FACE_ITALIC, "iso8859_7:14I:c" }, {14, CS_ISO8859_7, FAM_COUR, FACE_BOLD, "iso8859_7:14B:c" }, /* iso8859-8 */ {14, CS_ISO8859_8, FAM_FIXED, FACE_NORMAL, "iso8859_8:14:f" }, {14, CS_ISO8859_8, FAM_FIXED, FACE_ITALIC, "iso8859_8:14I:f" }, {14, CS_ISO8859_8, FAM_FIXED, FACE_BOLD, "iso8859_8:14B:f" }, {14, CS_ISO8859_8, FAM_TIMES, FACE_NORMAL, "iso8859_8:14:t" }, {14, CS_ISO8859_8, FAM_TIMES, FACE_ITALIC, "iso8859_8:14I:t" }, {14, CS_ISO8859_8, FAM_TIMES, FACE_BOLD, "iso8859_8:14B:t" }, {14, CS_ISO8859_8, FAM_HELV, FACE_NORMAL, "iso8859_8:14:h" }, {14, CS_ISO8859_8, FAM_HELV, FACE_ITALIC, "iso8859_8:14I:h" }, {14, CS_ISO8859_8, FAM_HELV, FACE_BOLD, "iso8859_8:14B:h" }, {14, CS_ISO8859_8, FAM_COUR, FACE_NORMAL, "iso8859_8:14:c" }, {14, CS_ISO8859_8, FAM_COUR, FACE_ITALIC, "iso8859_8:14I:c" }, {14, CS_ISO8859_8, FAM_COUR, FACE_BOLD, "iso8859_8:14B:c" }, /* iso8859-9 */ {14, CS_ISO8859_9, FAM_FIXED, FACE_NORMAL, "iso8859_9:14:f" }, {14, CS_ISO8859_9, FAM_FIXED, FACE_ITALIC, "iso8859_9:14I:f" }, {14, CS_ISO8859_9, FAM_FIXED, FACE_BOLD, "iso8859_9:14B:f" }, {14, CS_ISO8859_9, FAM_TIMES, FACE_NORMAL, "iso8859_9:14:t" }, {14, CS_ISO8859_9, FAM_TIMES, FACE_ITALIC, "iso8859_9:14I:t" }, {14, CS_ISO8859_9, FAM_TIMES, FACE_BOLD, "iso8859_9:14B:t" }, {14, CS_ISO8859_9, FAM_HELV, FACE_NORMAL, "iso8859_9:14:h" }, {14, CS_ISO8859_9, FAM_HELV, FACE_ITALIC, "iso8859_9:14I:h" }, {14, CS_ISO8859_9, FAM_HELV, FACE_BOLD, "iso8859_9:14B:h" }, {14, CS_ISO8859_9, FAM_COUR, FACE_NORMAL, "iso8859_9:14:c" }, {14, CS_ISO8859_9, FAM_COUR, FACE_ITALIC, "iso8859_9:14I:c" }, {14, CS_ISO8859_9, FAM_COUR, FACE_BOLD, "iso8859_9:14B:c" }, /* japanese */ {14, CS_JISX0201K, FAM_FIXED, FACE_NORMAL, "jisx0201k:14:f" }, {14, CS_JISX0201R, FAM_FIXED, FACE_NORMAL, "jisx0201r:14:f" }, {14, CS_JISX0208, FAM_FIXED, FACE_NORMAL, "jisx0208:14:f" }, {14, CS_JISX0208, FAM_FIXED, FACE_ITALIC, "jisx0208:14I:f" }, {14, CS_JISX0208, FAM_FIXED, FACE_BOLD, "jisx0208:14B:f" }, {14, CS_JISX0208, FAM_TIMES, FACE_NORMAL, "jisx0208:14:t" }, {14, CS_JISX0208, FAM_TIMES, FACE_ITALIC, "jisx0208:14I:t" }, {14, CS_JISX0208, FAM_TIMES, FACE_BOLD, "jisx0208:14B:t" }, {14, CS_JISX0208, FAM_HELV, FACE_NORMAL, "jisx0208:14:h" }, {14, CS_JISX0208, FAM_HELV, FACE_ITALIC, "jisx0208:14I:h" }, {14, CS_JISX0208, FAM_HELV, FACE_BOLD, "jisx0208:14B:h" }, {14, CS_JISX0208, FAM_COUR, FACE_NORMAL, "jisx0208:14:c" }, {14, CS_JISX0208, FAM_COUR, FACE_ITALIC, "jisx0208:14I:c" }, {14, CS_JISX0208, FAM_COUR, FACE_BOLD, "jisx0208:14B:c" }, {14, CS_JISX0212, FAM_FIXED, FACE_NORMAL, "jisx0212:14:f" }, /* hangle */ {14, CS_KSC5601, FAM_FIXED, FACE_NORMAL, "ksc5601:14:f" }, {14, CS_KSC5601, FAM_FIXED, FACE_ITALIC, "ksc5601:14I:f" }, {14, CS_KSC5601, FAM_FIXED, FACE_BOLD, "ksc5601:14B:f" }, {14, CS_KSC5601, FAM_TIMES, FACE_NORMAL, "ksc5601:14:t" }, {14, CS_KSC5601, FAM_TIMES, FACE_ITALIC, "ksc5601:14I:t" }, {14, CS_KSC5601, FAM_TIMES, FACE_BOLD, "ksc5601:14B:t" }, {14, CS_KSC5601, FAM_HELV, FACE_NORMAL, "ksc5601:14:h" }, {14, CS_KSC5601, FAM_HELV, FACE_ITALIC, "ksc5601:14I:h" }, {14, CS_KSC5601, FAM_HELV, FACE_BOLD, "ksc5601:14B:h" }, {14, CS_KSC5601, FAM_COUR, FACE_NORMAL, "ksc5601:14:c" }, {14, CS_KSC5601, FAM_COUR, FACE_ITALIC, "ksc5601:14I:c" }, {14, CS_KSC5601, FAM_COUR, FACE_BOLD, "ksc5601:14B:c" }, /* chinese */ {14, CS_GB2312, FAM_FIXED, FACE_NORMAL, "gb2312:14:f" }, {14, CS_GB2312, FAM_FIXED, FACE_ITALIC, "gb2312:14I:f" }, {14, CS_GB2312, FAM_FIXED, FACE_BOLD, "gb2312:14B:f" }, {14, CS_GB2312, FAM_TIMES, FACE_NORMAL, "gb2312:14:t" }, {14, CS_GB2312, FAM_TIMES, FACE_ITALIC, "gb2312:14I:t" }, {14, CS_GB2312, FAM_TIMES, FACE_BOLD, "gb2312:14B:t" }, {14, CS_GB2312, FAM_HELV, FACE_NORMAL, "gb2312:14:h" }, {14, CS_GB2312, FAM_HELV, FACE_ITALIC, "gb2312:14I:h" }, {14, CS_GB2312, FAM_HELV, FACE_BOLD, "gb2312:14B:h" }, {14, CS_GB2312, FAM_COUR, FACE_NORMAL, "gb2312:14:c" }, {14, CS_GB2312, FAM_COUR, FACE_ITALIC, "gb2312:14I:c" }, {14, CS_GB2312, FAM_COUR, FACE_BOLD, "gb2312:14B:c" }, {14, CS_CNS11643_1, FAM_FIXED, FACE_NORMAL, "cns11643_1:14:f" }, {14, CS_CNS11643_1, FAM_FIXED, FACE_ITALIC, "cns11643_1:14I:f" }, {14, CS_CNS11643_1, FAM_FIXED, FACE_BOLD, "cns11643_1:14B:f" }, {14, CS_CNS11643_1, FAM_TIMES, FACE_NORMAL, "cns11643_1:14:t" }, {14, CS_CNS11643_1, FAM_TIMES, FACE_ITALIC, "cns11643_1:14I:t" }, {14, CS_CNS11643_1, FAM_TIMES, FACE_BOLD, "cns11643_1:14B:t" }, {14, CS_CNS11643_1, FAM_HELV, FACE_NORMAL, "cns11643_1:14:h" }, {14, CS_CNS11643_1, FAM_HELV, FACE_ITALIC, "cns11643_1:14I:h" }, {14, CS_CNS11643_1, FAM_HELV, FACE_BOLD, "cns11643_1:14B:h" }, {14, CS_CNS11643_1, FAM_COUR, FACE_NORMAL, "cns11643_1:14:c" }, {14, CS_CNS11643_1, FAM_COUR, FACE_ITALIC, "cns11643_1:14I:c" }, {14, CS_CNS11643_1, FAM_COUR, FACE_BOLD, "cns11643_1:14B:c" }, {14, CS_CNS11643_2, FAM_FIXED, FACE_NORMAL, "cns11643_2:14:f" }, {14, CS_CNS11643_2, FAM_FIXED, FACE_ITALIC, "cns11643_2:14I:f" }, {14, CS_CNS11643_2, FAM_FIXED, FACE_BOLD, "cns11643_2:14B:f" }, {14, CS_CNS11643_2, FAM_TIMES, FACE_NORMAL, "cns11643_2:14:t" }, {14, CS_CNS11643_2, FAM_TIMES, FACE_ITALIC, "cns11643_2:14I:t" }, {14, CS_CNS11643_2, FAM_TIMES, FACE_BOLD, "cns11643_2:14B:t" }, {14, CS_CNS11643_2, FAM_HELV, FACE_NORMAL, "cns11643_2:14:h" }, {14, CS_CNS11643_2, FAM_HELV, FACE_ITALIC, "cns11643_2:14I:h" }, {14, CS_CNS11643_2, FAM_HELV, FACE_BOLD, "cns11643_2:14B:h" }, {14, CS_CNS11643_2, FAM_COUR, FACE_NORMAL, "cns11643_2:14:c" }, {14, CS_CNS11643_2, FAM_COUR, FACE_ITALIC, "cns11643_2:14I:c" }, {14, CS_CNS11643_2, FAM_COUR, FACE_BOLD, "cns11643_2:14B:c" }, {14, CS_CNS11643_3, FAM_FIXED, FACE_NORMAL, "cns11643_3:14:f" }, {14, CS_CNS11643_4, FAM_FIXED, FACE_NORMAL, "cns11643_4:14:f" }, {14, CS_CNS11643_5, FAM_FIXED, FACE_NORMAL, "cns11643_5:14:f" }, {14, CS_CNS11643_5, FAM_FIXED, FACE_NORMAL, "cns11643_6:14:f" }, {14, CS_CNS11643_7, FAM_FIXED, FACE_NORMAL, "cns11643_7:14:f" }, /* mule big 5 */ {14, CS_MULE_BIG5_L1, FAM_FIXED, FACE_NORMAL, "big5:14:f" }, {14, CS_MULE_BIG5_L2, FAM_FIXED, FACE_NORMAL, "big5:14:f" }, /* mule arabic */ {14, CS_MULE_ARAB0, FAM_FIXED, FACE_NORMAL, "mule_arab0:14:f" }, {14, CS_MULE_ARAB1, FAM_FIXED, FACE_NORMAL, "mule_arab1:14:f" }, {14, CS_MULE_ARAB2, FAM_FIXED, FACE_NORMAL, "mule_arab2:14:f" }, /* mule ethiopic */ {14, CS_MULE_ETHIOPIC, FAM_FIXED, FACE_NORMAL, "mule_ethio:14:f" }, /* mule viscii */ {14, CS_MULE_VISCII_L, FAM_FIXED, FACE_NORMAL, "mule_viscii_l:14:f" }, {14, CS_MULE_VISCII_U, FAM_FIXED, FACE_NORMAL, "mule_viscii_u:14:f" }, /*** 16 ***/ /* ascii */ {16, CS_ASCII, FAM_FIXED, FACE_NORMAL, "iso8859_1:16:f" }, {16, CS_ASCII, FAM_FIXED, FACE_ITALIC, "iso8859_1:16I:f" }, {16, CS_ASCII, FAM_FIXED, FACE_BOLD, "iso8859_1:16B:f" }, {16, CS_ASCII, FAM_TIMES, FACE_NORMAL, "iso8859_1:16:t" }, {16, CS_ASCII, FAM_TIMES, FACE_ITALIC, "iso8859_1:16I:t" }, {16, CS_ASCII, FAM_TIMES, FACE_BOLD, "iso8859_1:16B:t" }, {16, CS_ASCII, FAM_HELV, FACE_NORMAL, "iso8859_1:16:h" }, {16, CS_ASCII, FAM_HELV, FACE_ITALIC, "iso8859_1:16I:h" }, {16, CS_ASCII, FAM_HELV, FACE_BOLD, "iso8859_1:16B:h" }, {16, CS_ASCII, FAM_COUR, FACE_NORMAL, "iso8859_1:16:c" }, {16, CS_ASCII, FAM_COUR, FACE_ITALIC, "iso8859_1:16I:c" }, {16, CS_ASCII, FAM_COUR, FACE_BOLD, "iso8859_1:16B:c" }, /* iso8859-1 */ {16, CS_ISO8859_1, FAM_FIXED, FACE_NORMAL, "iso8859_1:16:f" }, {16, CS_ISO8859_1, FAM_FIXED, FACE_ITALIC, "iso8859_1:16I:f" }, {16, CS_ISO8859_1, FAM_FIXED, FACE_BOLD, "iso8859_1:16B:f" }, {16, CS_ISO8859_1, FAM_TIMES, FACE_NORMAL, "iso8859_1:16:t" }, {16, CS_ISO8859_1, FAM_TIMES, FACE_ITALIC, "iso8859_1:16I:t" }, {16, CS_ISO8859_1, FAM_TIMES, FACE_BOLD, "iso8859_1:16B:t" }, {16, CS_ISO8859_1, FAM_HELV, FACE_NORMAL, "iso8859_1:16:h" }, {16, CS_ISO8859_1, FAM_HELV, FACE_ITALIC, "iso8859_1:16I:h" }, {16, CS_ISO8859_1, FAM_HELV, FACE_BOLD, "iso8859_1:16B:h" }, {16, CS_ISO8859_1, FAM_COUR, FACE_NORMAL, "iso8859_1:16:c" }, {16, CS_ISO8859_1, FAM_COUR, FACE_ITALIC, "iso8859_1:16I:c" }, {16, CS_ISO8859_1, FAM_COUR, FACE_BOLD, "iso8859_1:16B:c" }, /* iso8859-2 */ {16, CS_ISO8859_2, FAM_FIXED, FACE_NORMAL, "iso8859_2:16:f" }, {16, CS_ISO8859_2, FAM_FIXED, FACE_ITALIC, "iso8859_2:16I:f" }, {16, CS_ISO8859_2, FAM_FIXED, FACE_BOLD, "iso8859_2:16B:f" }, {16, CS_ISO8859_2, FAM_TIMES, FACE_NORMAL, "iso8859_2:16:t" }, {16, CS_ISO8859_2, FAM_TIMES, FACE_ITALIC, "iso8859_2:16I:t" }, {16, CS_ISO8859_2, FAM_TIMES, FACE_BOLD, "iso8859_2:16B:t" }, {16, CS_ISO8859_2, FAM_HELV, FACE_NORMAL, "iso8859_2:16:h" }, {16, CS_ISO8859_2, FAM_HELV, FACE_ITALIC, "iso8859_2:16I:h" }, {16, CS_ISO8859_2, FAM_HELV, FACE_BOLD, "iso8859_2:16B:h" }, {16, CS_ISO8859_2, FAM_COUR, FACE_NORMAL, "iso8859_2:16:c" }, {16, CS_ISO8859_2, FAM_COUR, FACE_ITALIC, "iso8859_2:16I:c" }, {16, CS_ISO8859_2, FAM_COUR, FACE_BOLD, "iso8859_2:16B:c" }, /* iso8859-3 */ {16, CS_ISO8859_3, FAM_FIXED, FACE_NORMAL, "iso8859_3:16:f" }, {16, CS_ISO8859_3, FAM_FIXED, FACE_ITALIC, "iso8859_3:16I:f" }, {16, CS_ISO8859_3, FAM_FIXED, FACE_BOLD, "iso8859_3:16B:f" }, {16, CS_ISO8859_3, FAM_TIMES, FACE_NORMAL, "iso8859_3:16:t" }, {16, CS_ISO8859_3, FAM_TIMES, FACE_ITALIC, "iso8859_3:16I:t" }, {16, CS_ISO8859_3, FAM_TIMES, FACE_BOLD, "iso8859_3:16B:t" }, {16, CS_ISO8859_3, FAM_HELV, FACE_NORMAL, "iso8859_3:16:h" }, {16, CS_ISO8859_3, FAM_HELV, FACE_ITALIC, "iso8859_3:16I:h" }, {16, CS_ISO8859_3, FAM_HELV, FACE_BOLD, "iso8859_3:16B:h" }, {16, CS_ISO8859_3, FAM_COUR, FACE_NORMAL, "iso8859_3:16:c" }, {16, CS_ISO8859_3, FAM_COUR, FACE_ITALIC, "iso8859_3:16I:c" }, {16, CS_ISO8859_3, FAM_COUR, FACE_BOLD, "iso8859_3:16B:c" }, /* iso8859-4 */ {16, CS_ISO8859_4, FAM_FIXED, FACE_NORMAL, "iso8859_4:16:f" }, {16, CS_ISO8859_4, FAM_FIXED, FACE_ITALIC, "iso8859_4:16I:f" }, {16, CS_ISO8859_4, FAM_FIXED, FACE_BOLD, "iso8859_4:16B:f" }, {16, CS_ISO8859_4, FAM_TIMES, FACE_NORMAL, "iso8859_4:16:t" }, {16, CS_ISO8859_4, FAM_TIMES, FACE_ITALIC, "iso8859_4:16I:t" }, {16, CS_ISO8859_4, FAM_TIMES, FACE_BOLD, "iso8859_4:16B:t" }, {16, CS_ISO8859_4, FAM_HELV, FACE_NORMAL, "iso8859_4:16:h" }, {16, CS_ISO8859_4, FAM_HELV, FACE_ITALIC, "iso8859_4:16I:h" }, {16, CS_ISO8859_4, FAM_HELV, FACE_BOLD, "iso8859_4:16B:h" }, {16, CS_ISO8859_4, FAM_COUR, FACE_NORMAL, "iso8859_4:16:c" }, {16, CS_ISO8859_4, FAM_COUR, FACE_ITALIC, "iso8859_4:16I:c" }, {16, CS_ISO8859_4, FAM_COUR, FACE_BOLD, "iso8859_4:16B:c" }, /* iso8859-5 */ {16, CS_ISO8859_5, FAM_FIXED, FACE_NORMAL, "iso8859_5:16:f" }, {16, CS_ISO8859_5, FAM_FIXED, FACE_ITALIC, "iso8859_5:16I:f" }, {16, CS_ISO8859_5, FAM_FIXED, FACE_BOLD, "iso8859_5:16B:f" }, {16, CS_ISO8859_5, FAM_TIMES, FACE_NORMAL, "iso8859_5:16:t" }, {16, CS_ISO8859_5, FAM_TIMES, FACE_ITALIC, "iso8859_5:16I:t" }, {16, CS_ISO8859_5, FAM_TIMES, FACE_BOLD, "iso8859_5:16B:t" }, {16, CS_ISO8859_5, FAM_HELV, FACE_NORMAL, "iso8859_5:16:h" }, {16, CS_ISO8859_5, FAM_HELV, FACE_ITALIC, "iso8859_5:16I:h" }, {16, CS_ISO8859_5, FAM_HELV, FACE_BOLD, "iso8859_5:16B:h" }, {16, CS_ISO8859_5, FAM_COUR, FACE_NORMAL, "iso8859_5:16:c" }, {16, CS_ISO8859_5, FAM_COUR, FACE_ITALIC, "iso8859_5:16I:c" }, {16, CS_ISO8859_5, FAM_COUR, FACE_BOLD, "iso8859_5:16B:c" }, /* iso8859-7 */ {16, CS_ISO8859_7, FAM_FIXED, FACE_NORMAL, "iso8859_7:16:f" }, {16, CS_ISO8859_7, FAM_FIXED, FACE_ITALIC, "iso8859_7:16I:f" }, {16, CS_ISO8859_7, FAM_FIXED, FACE_BOLD, "iso8859_7:16B:f" }, {16, CS_ISO8859_7, FAM_TIMES, FACE_NORMAL, "iso8859_7:16:t" }, {16, CS_ISO8859_7, FAM_TIMES, FACE_ITALIC, "iso8859_7:16I:t" }, {16, CS_ISO8859_7, FAM_TIMES, FACE_BOLD, "iso8859_7:16B:t" }, {16, CS_ISO8859_7, FAM_HELV, FACE_NORMAL, "iso8859_7:16:h" }, {16, CS_ISO8859_7, FAM_HELV, FACE_ITALIC, "iso8859_7:16I:h" }, {16, CS_ISO8859_7, FAM_HELV, FACE_BOLD, "iso8859_7:16B:h" }, {16, CS_ISO8859_7, FAM_COUR, FACE_NORMAL, "iso8859_7:16:c" }, {16, CS_ISO8859_7, FAM_COUR, FACE_ITALIC, "iso8859_7:16I:c" }, {16, CS_ISO8859_7, FAM_COUR, FACE_BOLD, "iso8859_7:16B:c" }, /* iso8859-8 */ {16, CS_ISO8859_8, FAM_FIXED, FACE_NORMAL, "iso8859_8:16:f" }, {16, CS_ISO8859_8, FAM_FIXED, FACE_ITALIC, "iso8859_8:16I:f" }, {16, CS_ISO8859_8, FAM_FIXED, FACE_BOLD, "iso8859_8:16B:f" }, {16, CS_ISO8859_8, FAM_TIMES, FACE_NORMAL, "iso8859_8:16:t" }, {16, CS_ISO8859_8, FAM_TIMES, FACE_ITALIC, "iso8859_8:16I:t" }, {16, CS_ISO8859_8, FAM_TIMES, FACE_BOLD, "iso8859_8:16B:t" }, {16, CS_ISO8859_8, FAM_HELV, FACE_NORMAL, "iso8859_8:16:h" }, {16, CS_ISO8859_8, FAM_HELV, FACE_ITALIC, "iso8859_8:16I:h" }, {16, CS_ISO8859_8, FAM_HELV, FACE_BOLD, "iso8859_8:16B:h" }, {16, CS_ISO8859_8, FAM_COUR, FACE_NORMAL, "iso8859_8:16:c" }, {16, CS_ISO8859_8, FAM_COUR, FACE_ITALIC, "iso8859_8:16I:c" }, {16, CS_ISO8859_8, FAM_COUR, FACE_BOLD, "iso8859_8:16B:c" }, /* iso8859-9 */ {16, CS_ISO8859_9, FAM_FIXED, FACE_NORMAL, "iso8859_9:16:f" }, {16, CS_ISO8859_9, FAM_FIXED, FACE_ITALIC, "iso8859_9:16I:f" }, {16, CS_ISO8859_9, FAM_FIXED, FACE_BOLD, "iso8859_9:16B:f" }, {16, CS_ISO8859_9, FAM_TIMES, FACE_NORMAL, "iso8859_9:16:t" }, {16, CS_ISO8859_9, FAM_TIMES, FACE_ITALIC, "iso8859_9:16I:t" }, {16, CS_ISO8859_9, FAM_TIMES, FACE_BOLD, "iso8859_9:16B:t" }, {16, CS_ISO8859_9, FAM_HELV, FACE_NORMAL, "iso8859_9:16:h" }, {16, CS_ISO8859_9, FAM_HELV, FACE_ITALIC, "iso8859_9:16I:h" }, {16, CS_ISO8859_9, FAM_HELV, FACE_BOLD, "iso8859_9:16B:h" }, {16, CS_ISO8859_9, FAM_COUR, FACE_NORMAL, "iso8859_9:16:c" }, {16, CS_ISO8859_9, FAM_COUR, FACE_ITALIC, "iso8859_9:16I:c" }, {16, CS_ISO8859_9, FAM_COUR, FACE_BOLD, "iso8859_9:16B:c" }, /* japanese */ {16, CS_JISX0201K, FAM_FIXED, FACE_NORMAL, "jisx0201k:16:f" }, {16, CS_JISX0201R, FAM_FIXED, FACE_NORMAL, "jisx0201r:16:f" }, {16, CS_JISX0208, FAM_FIXED, FACE_NORMAL, "jisx0208:16:f" }, {16, CS_JISX0208, FAM_FIXED, FACE_ITALIC, "jisx0208:16I:f" }, {16, CS_JISX0208, FAM_FIXED, FACE_BOLD, "jisx0208:16B:f" }, {16, CS_JISX0208, FAM_TIMES, FACE_NORMAL, "jisx0208:16:t" }, {16, CS_JISX0208, FAM_TIMES, FACE_ITALIC, "jisx0208:16I:t" }, {16, CS_JISX0208, FAM_TIMES, FACE_BOLD, "jisx0208:16B:t" }, {16, CS_JISX0208, FAM_HELV, FACE_NORMAL, "jisx0208:16:h" }, {16, CS_JISX0208, FAM_HELV, FACE_ITALIC, "jisx0208:16I:h" }, {16, CS_JISX0208, FAM_HELV, FACE_BOLD, "jisx0208:16B:h" }, {16, CS_JISX0208, FAM_COUR, FACE_NORMAL, "jisx0208:16:c" }, {16, CS_JISX0208, FAM_COUR, FACE_ITALIC, "jisx0208:16I:c" }, {16, CS_JISX0208, FAM_COUR, FACE_BOLD, "jisx0208:16B:c" }, {16, CS_JISX0212, FAM_FIXED, FACE_NORMAL, "jisx0212:16:f" }, /* hangle */ {16, CS_KSC5601, FAM_FIXED, FACE_NORMAL, "ksc5601:16:f" }, {16, CS_KSC5601, FAM_FIXED, FACE_ITALIC, "ksc5601:16I:f" }, {16, CS_KSC5601, FAM_FIXED, FACE_BOLD, "ksc5601:16B:f" }, {16, CS_KSC5601, FAM_TIMES, FACE_NORMAL, "ksc5601:16:t" }, {16, CS_KSC5601, FAM_TIMES, FACE_ITALIC, "ksc5601:16I:t" }, {16, CS_KSC5601, FAM_TIMES, FACE_BOLD, "ksc5601:16B:t" }, {16, CS_KSC5601, FAM_HELV, FACE_NORMAL, "ksc5601:16:h" }, {16, CS_KSC5601, FAM_HELV, FACE_ITALIC, "ksc5601:16I:h" }, {16, CS_KSC5601, FAM_HELV, FACE_BOLD, "ksc5601:16B:h" }, {16, CS_KSC5601, FAM_COUR, FACE_NORMAL, "ksc5601:16:c" }, {16, CS_KSC5601, FAM_COUR, FACE_ITALIC, "ksc5601:16I:c" }, {16, CS_KSC5601, FAM_COUR, FACE_BOLD, "ksc5601:16B:c" }, /* chinese */ {16, CS_GB2312, FAM_FIXED, FACE_NORMAL, "gb2312:16:f" }, {16, CS_GB2312, FAM_FIXED, FACE_ITALIC, "gb2312:16I:f" }, {16, CS_GB2312, FAM_FIXED, FACE_BOLD, "gb2312:16B:f" }, {16, CS_GB2312, FAM_TIMES, FACE_NORMAL, "gb2312:16:t" }, {16, CS_GB2312, FAM_TIMES, FACE_ITALIC, "gb2312:16I:t" }, {16, CS_GB2312, FAM_TIMES, FACE_BOLD, "gb2312:16B:t" }, {16, CS_GB2312, FAM_HELV, FACE_NORMAL, "gb2312:16:h" }, {16, CS_GB2312, FAM_HELV, FACE_ITALIC, "gb2312:16I:h" }, {16, CS_GB2312, FAM_HELV, FACE_BOLD, "gb2312:16B:h" }, {16, CS_GB2312, FAM_COUR, FACE_NORMAL, "gb2312:16:c" }, {16, CS_GB2312, FAM_COUR, FACE_ITALIC, "gb2312:16I:c" }, {16, CS_GB2312, FAM_COUR, FACE_BOLD, "gb2312:16B:c" }, {16, CS_CNS11643_1, FAM_FIXED, FACE_NORMAL, "cns11643_1:16:f" }, {16, CS_CNS11643_1, FAM_FIXED, FACE_ITALIC, "cns11643_1:16I:f" }, {16, CS_CNS11643_1, FAM_FIXED, FACE_BOLD, "cns11643_1:16B:f" }, {16, CS_CNS11643_1, FAM_TIMES, FACE_NORMAL, "cns11643_1:16:t" }, {16, CS_CNS11643_1, FAM_TIMES, FACE_ITALIC, "cns11643_1:16I:t" }, {16, CS_CNS11643_1, FAM_TIMES, FACE_BOLD, "cns11643_1:16B:t" }, {16, CS_CNS11643_1, FAM_HELV, FACE_NORMAL, "cns11643_1:16:h" }, {16, CS_CNS11643_1, FAM_HELV, FACE_ITALIC, "cns11643_1:16I:h" }, {16, CS_CNS11643_1, FAM_HELV, FACE_BOLD, "cns11643_1:16B:h" }, {16, CS_CNS11643_1, FAM_COUR, FACE_NORMAL, "cns11643_1:16:c" }, {16, CS_CNS11643_1, FAM_COUR, FACE_ITALIC, "cns11643_1:16I:c" }, {16, CS_CNS11643_1, FAM_COUR, FACE_BOLD, "cns11643_1:16B:c" }, {16, CS_CNS11643_2, FAM_FIXED, FACE_NORMAL, "cns11643_2:16:f" }, {16, CS_CNS11643_2, FAM_FIXED, FACE_ITALIC, "cns11643_2:16I:f" }, {16, CS_CNS11643_2, FAM_FIXED, FACE_BOLD, "cns11643_2:16B:f" }, {16, CS_CNS11643_2, FAM_TIMES, FACE_NORMAL, "cns11643_2:16:t" }, {16, CS_CNS11643_2, FAM_TIMES, FACE_ITALIC, "cns11643_2:16I:t" }, {16, CS_CNS11643_2, FAM_TIMES, FACE_BOLD, "cns11643_2:16B:t" }, {16, CS_CNS11643_2, FAM_HELV, FACE_NORMAL, "cns11643_2:16:h" }, {16, CS_CNS11643_2, FAM_HELV, FACE_ITALIC, "cns11643_2:16I:h" }, {16, CS_CNS11643_2, FAM_HELV, FACE_BOLD, "cns11643_2:16B:h" }, {16, CS_CNS11643_2, FAM_COUR, FACE_NORMAL, "cns11643_2:16:c" }, {16, CS_CNS11643_2, FAM_COUR, FACE_ITALIC, "cns11643_2:16I:c" }, {16, CS_CNS11643_2, FAM_COUR, FACE_BOLD, "cns11643_2:16B:c" }, {16, CS_CNS11643_3, FAM_FIXED, FACE_NORMAL, "cns11643_3:16:f" }, {16, CS_CNS11643_4, FAM_FIXED, FACE_NORMAL, "cns11643_4:16:f" }, {16, CS_CNS11643_5, FAM_FIXED, FACE_NORMAL, "cns11643_5:16:f" }, {16, CS_CNS11643_6, FAM_FIXED, FACE_NORMAL, "cns11643_6:16:f" }, {16, CS_CNS11643_7, FAM_FIXED, FACE_NORMAL, "cns11643_7:16:f" }, /* mule big 5 */ {16, CS_MULE_BIG5_L1, FAM_FIXED, FACE_NORMAL, "big5:16:f" }, {16, CS_MULE_BIG5_L2, FAM_FIXED, FACE_NORMAL, "big5:16:f" }, /* mule arabic */ {16, CS_MULE_ARAB0, FAM_FIXED, FACE_NORMAL, "mule_arab0:16:f" }, {16, CS_MULE_ARAB1, FAM_FIXED, FACE_NORMAL, "mule_arab1:16:f" }, {16, CS_MULE_ARAB2, FAM_FIXED, FACE_NORMAL, "mule_arab2:16:f" }, /* mule ethiopic */ {16, CS_MULE_ETHIOPIC, FAM_FIXED, FACE_NORMAL, "mule_ethio:16:f" }, /* mule viscii */ {16, CS_MULE_VISCII_L, FAM_FIXED, FACE_NORMAL, "mule_viscii_l:16:f" }, {16, CS_MULE_VISCII_U, FAM_FIXED, FACE_NORMAL, "mule_viscii_u:16:f" }, /*** 18 ***/ /* ascii */ {18, CS_ASCII, FAM_FIXED, FACE_NORMAL, "iso8859_1:18:f" }, {18, CS_ASCII, FAM_FIXED, FACE_ITALIC, "iso8859_1:18I:f" }, {18, CS_ASCII, FAM_FIXED, FACE_BOLD, "iso8859_1:18B:f" }, {18, CS_ASCII, FAM_TIMES, FACE_NORMAL, "iso8859_1:18:t" }, {18, CS_ASCII, FAM_TIMES, FACE_ITALIC, "iso8859_1:18I:t" }, {18, CS_ASCII, FAM_TIMES, FACE_BOLD, "iso8859_1:18B:t" }, {18, CS_ASCII, FAM_HELV, FACE_NORMAL, "iso8859_1:18:h" }, {18, CS_ASCII, FAM_HELV, FACE_ITALIC, "iso8859_1:18I:h" }, {18, CS_ASCII, FAM_HELV, FACE_BOLD, "iso8859_1:18B:h" }, {18, CS_ASCII, FAM_COUR, FACE_NORMAL, "iso8859_1:18:c" }, {18, CS_ASCII, FAM_COUR, FACE_ITALIC, "iso8859_1:18I:c" }, {18, CS_ASCII, FAM_COUR, FACE_BOLD, "iso8859_1:18B:c" }, /* iso8859-1 */ {18, CS_ISO8859_1, FAM_FIXED, FACE_NORMAL, "iso8859_1:18:f" }, {18, CS_ISO8859_1, FAM_FIXED, FACE_ITALIC, "iso8859_1:18I:f" }, {18, CS_ISO8859_1, FAM_FIXED, FACE_BOLD, "iso8859_1:18B:f" }, {18, CS_ISO8859_1, FAM_TIMES, FACE_NORMAL, "iso8859_1:18:t" }, {18, CS_ISO8859_1, FAM_TIMES, FACE_ITALIC, "iso8859_1:18I:t" }, {18, CS_ISO8859_1, FAM_TIMES, FACE_BOLD, "iso8859_1:18B:t" }, {18, CS_ISO8859_1, FAM_HELV, FACE_NORMAL, "iso8859_1:18:h" }, {18, CS_ISO8859_1, FAM_HELV, FACE_ITALIC, "iso8859_1:18I:h" }, {18, CS_ISO8859_1, FAM_HELV, FACE_BOLD, "iso8859_1:18B:h" }, {18, CS_ISO8859_1, FAM_COUR, FACE_NORMAL, "iso8859_1:18:c" }, {18, CS_ISO8859_1, FAM_COUR, FACE_ITALIC, "iso8859_1:18I:c" }, {18, CS_ISO8859_1, FAM_COUR, FACE_BOLD, "iso8859_1:18B:c" }, /* iso8859-2 */ {18, CS_ISO8859_2, FAM_FIXED, FACE_NORMAL, "iso8859_2:18:f" }, {18, CS_ISO8859_2, FAM_FIXED, FACE_ITALIC, "iso8859_2:18I:f" }, {18, CS_ISO8859_2, FAM_FIXED, FACE_BOLD, "iso8859_2:18B:f" }, {18, CS_ISO8859_2, FAM_TIMES, FACE_NORMAL, "iso8859_2:18:t" }, {18, CS_ISO8859_2, FAM_TIMES, FACE_ITALIC, "iso8859_2:18I:t" }, {18, CS_ISO8859_2, FAM_TIMES, FACE_BOLD, "iso8859_2:18B:t" }, {18, CS_ISO8859_2, FAM_HELV, FACE_NORMAL, "iso8859_2:18:h" }, {18, CS_ISO8859_2, FAM_HELV, FACE_ITALIC, "iso8859_2:18I:h" }, {18, CS_ISO8859_2, FAM_HELV, FACE_BOLD, "iso8859_2:18B:h" }, {18, CS_ISO8859_2, FAM_COUR, FACE_NORMAL, "iso8859_2:18:c" }, {18, CS_ISO8859_2, FAM_COUR, FACE_ITALIC, "iso8859_2:18I:c" }, {18, CS_ISO8859_2, FAM_COUR, FACE_BOLD, "iso8859_2:18B:c" }, /* iso8859-3 */ {18, CS_ISO8859_3, FAM_FIXED, FACE_NORMAL, "iso8859_3:18:f" }, {18, CS_ISO8859_3, FAM_FIXED, FACE_ITALIC, "iso8859_3:18I:f" }, {18, CS_ISO8859_3, FAM_FIXED, FACE_BOLD, "iso8859_3:18B:f" }, {18, CS_ISO8859_3, FAM_TIMES, FACE_NORMAL, "iso8859_3:18:t" }, {18, CS_ISO8859_3, FAM_TIMES, FACE_ITALIC, "iso8859_3:18I:t" }, {18, CS_ISO8859_3, FAM_TIMES, FACE_BOLD, "iso8859_3:18B:t" }, {18, CS_ISO8859_3, FAM_HELV, FACE_NORMAL, "iso8859_3:18:h" }, {18, CS_ISO8859_3, FAM_HELV, FACE_ITALIC, "iso8859_3:18I:h" }, {18, CS_ISO8859_3, FAM_HELV, FACE_BOLD, "iso8859_3:18B:h" }, {18, CS_ISO8859_3, FAM_COUR, FACE_NORMAL, "iso8859_3:18:c" }, {18, CS_ISO8859_3, FAM_COUR, FACE_ITALIC, "iso8859_3:18I:c" }, {18, CS_ISO8859_3, FAM_COUR, FACE_BOLD, "iso8859_3:18B:c" }, /* iso8859-4 */ {18, CS_ISO8859_4, FAM_FIXED, FACE_NORMAL, "iso8859_4:18:f" }, {18, CS_ISO8859_4, FAM_FIXED, FACE_ITALIC, "iso8859_4:18I:f" }, {18, CS_ISO8859_4, FAM_FIXED, FACE_BOLD, "iso8859_4:18B:f" }, {18, CS_ISO8859_4, FAM_TIMES, FACE_NORMAL, "iso8859_4:18:t" }, {18, CS_ISO8859_4, FAM_TIMES, FACE_ITALIC, "iso8859_4:18I:t" }, {18, CS_ISO8859_4, FAM_TIMES, FACE_BOLD, "iso8859_4:18B:t" }, {18, CS_ISO8859_4, FAM_HELV, FACE_NORMAL, "iso8859_4:18:h" }, {18, CS_ISO8859_4, FAM_HELV, FACE_ITALIC, "iso8859_4:18I:h" }, {18, CS_ISO8859_4, FAM_HELV, FACE_BOLD, "iso8859_4:18B:h" }, {18, CS_ISO8859_4, FAM_COUR, FACE_NORMAL, "iso8859_4:18:c" }, {18, CS_ISO8859_4, FAM_COUR, FACE_ITALIC, "iso8859_4:18I:c" }, {18, CS_ISO8859_4, FAM_COUR, FACE_BOLD, "iso8859_4:18B:c" }, /* iso8859-5 */ {18, CS_ISO8859_5, FAM_FIXED, FACE_NORMAL, "iso8859_5:18:f" }, {18, CS_ISO8859_5, FAM_FIXED, FACE_ITALIC, "iso8859_5:18I:f" }, {18, CS_ISO8859_5, FAM_FIXED, FACE_BOLD, "iso8859_5:18B:f" }, {18, CS_ISO8859_5, FAM_TIMES, FACE_NORMAL, "iso8859_5:18:t" }, {18, CS_ISO8859_5, FAM_TIMES, FACE_ITALIC, "iso8859_5:18I:t" }, {18, CS_ISO8859_5, FAM_TIMES, FACE_BOLD, "iso8859_5:18B:t" }, {18, CS_ISO8859_5, FAM_HELV, FACE_NORMAL, "iso8859_5:18:h" }, {18, CS_ISO8859_5, FAM_HELV, FACE_ITALIC, "iso8859_5:18I:h" }, {18, CS_ISO8859_5, FAM_HELV, FACE_BOLD, "iso8859_5:18B:h" }, {18, CS_ISO8859_5, FAM_COUR, FACE_NORMAL, "iso8859_5:18:c" }, {18, CS_ISO8859_5, FAM_COUR, FACE_ITALIC, "iso8859_5:18I:c" }, {18, CS_ISO8859_5, FAM_COUR, FACE_BOLD, "iso8859_5:18B:c" }, /* iso8859-7 */ {18, CS_ISO8859_7, FAM_FIXED, FACE_NORMAL, "iso8859_7:18:f" }, {18, CS_ISO8859_7, FAM_FIXED, FACE_ITALIC, "iso8859_7:18I:f" }, {18, CS_ISO8859_7, FAM_FIXED, FACE_BOLD, "iso8859_7:18B:f" }, {18, CS_ISO8859_7, FAM_TIMES, FACE_NORMAL, "iso8859_7:18:t" }, {18, CS_ISO8859_7, FAM_TIMES, FACE_ITALIC, "iso8859_7:18I:t" }, {18, CS_ISO8859_7, FAM_TIMES, FACE_BOLD, "iso8859_7:18B:t" }, {18, CS_ISO8859_7, FAM_HELV, FACE_NORMAL, "iso8859_7:18:h" }, {18, CS_ISO8859_7, FAM_HELV, FACE_ITALIC, "iso8859_7:18I:h" }, {18, CS_ISO8859_7, FAM_HELV, FACE_BOLD, "iso8859_7:18B:h" }, {18, CS_ISO8859_7, FAM_COUR, FACE_NORMAL, "iso8859_7:18:c" }, {18, CS_ISO8859_7, FAM_COUR, FACE_ITALIC, "iso8859_7:18I:c" }, {18, CS_ISO8859_7, FAM_COUR, FACE_BOLD, "iso8859_7:18B:c" }, /* iso8859-8 */ {18, CS_ISO8859_8, FAM_FIXED, FACE_NORMAL, "iso8859_8:18:f" }, {18, CS_ISO8859_8, FAM_FIXED, FACE_ITALIC, "iso8859_8:18I:f" }, {18, CS_ISO8859_8, FAM_FIXED, FACE_BOLD, "iso8859_8:18B:f" }, {18, CS_ISO8859_8, FAM_TIMES, FACE_NORMAL, "iso8859_8:18:t" }, {18, CS_ISO8859_8, FAM_TIMES, FACE_ITALIC, "iso8859_8:18I:t" }, {18, CS_ISO8859_8, FAM_TIMES, FACE_BOLD, "iso8859_8:18B:t" }, {18, CS_ISO8859_8, FAM_HELV, FACE_NORMAL, "iso8859_8:18:h" }, {18, CS_ISO8859_8, FAM_HELV, FACE_ITALIC, "iso8859_8:18I:h" }, {18, CS_ISO8859_8, FAM_HELV, FACE_BOLD, "iso8859_8:18B:h" }, {18, CS_ISO8859_8, FAM_COUR, FACE_NORMAL, "iso8859_8:18:c" }, {18, CS_ISO8859_8, FAM_COUR, FACE_ITALIC, "iso8859_8:18I:c" }, {18, CS_ISO8859_8, FAM_COUR, FACE_BOLD, "iso8859_8:18B:c" }, /* iso8859-9 */ {18, CS_ISO8859_9, FAM_FIXED, FACE_NORMAL, "iso8859_9:18:f" }, {18, CS_ISO8859_9, FAM_FIXED, FACE_ITALIC, "iso8859_9:18I:f" }, {18, CS_ISO8859_9, FAM_FIXED, FACE_BOLD, "iso8859_9:18B:f" }, {18, CS_ISO8859_9, FAM_TIMES, FACE_NORMAL, "iso8859_9:18:t" }, {18, CS_ISO8859_9, FAM_TIMES, FACE_ITALIC, "iso8859_9:18I:t" }, {18, CS_ISO8859_9, FAM_TIMES, FACE_BOLD, "iso8859_9:18B:t" }, {18, CS_ISO8859_9, FAM_HELV, FACE_NORMAL, "iso8859_9:18:h" }, {18, CS_ISO8859_9, FAM_HELV, FACE_ITALIC, "iso8859_9:18I:h" }, {18, CS_ISO8859_9, FAM_HELV, FACE_BOLD, "iso8859_9:18B:h" }, {18, CS_ISO8859_9, FAM_COUR, FACE_NORMAL, "iso8859_9:18:c" }, {18, CS_ISO8859_9, FAM_COUR, FACE_ITALIC, "iso8859_9:18I:c" }, {18, CS_ISO8859_9, FAM_COUR, FACE_BOLD, "iso8859_9:18B:c" }, /* japanese */ {18, CS_JISX0201K, FAM_FIXED, FACE_NORMAL, "jisx0201k:18:f" }, {18, CS_JISX0201R, FAM_FIXED, FACE_NORMAL, "jisx0201r:18:f" }, {18, CS_JISX0208, FAM_FIXED, FACE_NORMAL, "jisx0208:18:f" }, {18, CS_JISX0208, FAM_FIXED, FACE_ITALIC, "jisx0208:18I:f" }, {18, CS_JISX0208, FAM_FIXED, FACE_BOLD, "jisx0208:18B:f" }, {18, CS_JISX0208, FAM_TIMES, FACE_NORMAL, "jisx0208:18:t" }, {18, CS_JISX0208, FAM_TIMES, FACE_ITALIC, "jisx0208:18I:t" }, {18, CS_JISX0208, FAM_TIMES, FACE_BOLD, "jisx0208:18B:t" }, {18, CS_JISX0208, FAM_HELV, FACE_NORMAL, "jisx0208:18:h" }, {18, CS_JISX0208, FAM_HELV, FACE_ITALIC, "jisx0208:18I:h" }, {18, CS_JISX0208, FAM_HELV, FACE_BOLD, "jisx0208:18B:h" }, {18, CS_JISX0208, FAM_COUR, FACE_NORMAL, "jisx0208:18:c" }, {18, CS_JISX0208, FAM_COUR, FACE_ITALIC, "jisx0208:18I:c" }, {18, CS_JISX0208, FAM_COUR, FACE_BOLD, "jisx0208:18B:c" }, {18, CS_JISX0212, FAM_FIXED, FACE_NORMAL, "jisx0212:18:f" }, /* hangle */ {18, CS_KSC5601, FAM_FIXED, FACE_NORMAL, "ksc5601:18:f" }, {18, CS_KSC5601, FAM_FIXED, FACE_ITALIC, "ksc5601:18I:f" }, {18, CS_KSC5601, FAM_FIXED, FACE_BOLD, "ksc5601:18B:f" }, {18, CS_KSC5601, FAM_TIMES, FACE_NORMAL, "ksc5601:18:t" }, {18, CS_KSC5601, FAM_TIMES, FACE_ITALIC, "ksc5601:18I:t" }, {18, CS_KSC5601, FAM_TIMES, FACE_BOLD, "ksc5601:18B:t" }, {18, CS_KSC5601, FAM_HELV, FACE_NORMAL, "ksc5601:18:h" }, {18, CS_KSC5601, FAM_HELV, FACE_ITALIC, "ksc5601:18I:h" }, {18, CS_KSC5601, FAM_HELV, FACE_BOLD, "ksc5601:18B:h" }, {18, CS_KSC5601, FAM_COUR, FACE_NORMAL, "ksc5601:18:c" }, {18, CS_KSC5601, FAM_COUR, FACE_ITALIC, "ksc5601:18I:c" }, {18, CS_KSC5601, FAM_COUR, FACE_BOLD, "ksc5601:18B:c" }, /* chinese */ {18, CS_GB2312, FAM_FIXED, FACE_NORMAL, "gb2312:18:f" }, {18, CS_GB2312, FAM_FIXED, FACE_ITALIC, "gb2312:18I:f" }, {18, CS_GB2312, FAM_FIXED, FACE_BOLD, "gb2312:18B:f" }, {18, CS_GB2312, FAM_TIMES, FACE_NORMAL, "gb2312:18:t" }, {18, CS_GB2312, FAM_TIMES, FACE_ITALIC, "gb2312:18I:t" }, {18, CS_GB2312, FAM_TIMES, FACE_BOLD, "gb2312:18B:t" }, {18, CS_GB2312, FAM_HELV, FACE_NORMAL, "gb2312:18:h" }, {18, CS_GB2312, FAM_HELV, FACE_ITALIC, "gb2312:18I:h" }, {18, CS_GB2312, FAM_HELV, FACE_BOLD, "gb2312:18B:h" }, {18, CS_GB2312, FAM_COUR, FACE_NORMAL, "gb2312:18:c" }, {18, CS_GB2312, FAM_COUR, FACE_ITALIC, "gb2312:18I:c" }, {18, CS_GB2312, FAM_COUR, FACE_BOLD, "gb2312:18B:c" }, {18, CS_CNS11643_1, FAM_FIXED, FACE_NORMAL, "cns11643_1:18:f" }, {18, CS_CNS11643_1, FAM_FIXED, FACE_ITALIC, "cns11643_1:18I:f" }, {18, CS_CNS11643_1, FAM_FIXED, FACE_BOLD, "cns11643_1:18B:f" }, {18, CS_CNS11643_1, FAM_TIMES, FACE_NORMAL, "cns11643_1:18:t" }, {18, CS_CNS11643_1, FAM_TIMES, FACE_ITALIC, "cns11643_1:18I:t" }, {18, CS_CNS11643_1, FAM_TIMES, FACE_BOLD, "cns11643_1:18B:t" }, {18, CS_CNS11643_1, FAM_HELV, FACE_NORMAL, "cns11643_1:18:h" }, {18, CS_CNS11643_1, FAM_HELV, FACE_ITALIC, "cns11643_1:18I:h" }, {18, CS_CNS11643_1, FAM_HELV, FACE_BOLD, "cns11643_1:18B:h" }, {18, CS_CNS11643_1, FAM_COUR, FACE_NORMAL, "cns11643_1:18:c" }, {18, CS_CNS11643_1, FAM_COUR, FACE_ITALIC, "cns11643_1:18I:c" }, {18, CS_CNS11643_1, FAM_COUR, FACE_BOLD, "cns11643_1:18B:c" }, {18, CS_CNS11643_2, FAM_FIXED, FACE_NORMAL, "cns11643_2:18:f" }, {18, CS_CNS11643_2, FAM_FIXED, FACE_ITALIC, "cns11643_2:18I:f" }, {18, CS_CNS11643_2, FAM_FIXED, FACE_BOLD, "cns11643_2:18B:f" }, {18, CS_CNS11643_2, FAM_TIMES, FACE_NORMAL, "cns11643_2:18:t" }, {18, CS_CNS11643_2, FAM_TIMES, FACE_ITALIC, "cns11643_2:18I:t" }, {18, CS_CNS11643_2, FAM_TIMES, FACE_BOLD, "cns11643_2:18B:t" }, {18, CS_CNS11643_2, FAM_HELV, FACE_NORMAL, "cns11643_2:18:h" }, {18, CS_CNS11643_2, FAM_HELV, FACE_ITALIC, "cns11643_2:18I:h" }, {18, CS_CNS11643_2, FAM_HELV, FACE_BOLD, "cns11643_2:18B:h" }, {18, CS_CNS11643_2, FAM_COUR, FACE_NORMAL, "cns11643_2:18:c" }, {18, CS_CNS11643_2, FAM_COUR, FACE_ITALIC, "cns11643_2:18I:c" }, {18, CS_CNS11643_2, FAM_COUR, FACE_BOLD, "cns11643_2:18B:c" }, {18, CS_CNS11643_3, FAM_FIXED, FACE_NORMAL, "cns11643_3:18:f" }, {18, CS_CNS11643_4, FAM_FIXED, FACE_NORMAL, "cns11643_4:18:f" }, {18, CS_CNS11643_5, FAM_FIXED, FACE_NORMAL, "cns11643_5:18:f" }, {18, CS_CNS11643_6, FAM_FIXED, FACE_NORMAL, "cns11643_6:18:f" }, {18, CS_CNS11643_7, FAM_FIXED, FACE_NORMAL, "cns11643_7:18:f" }, /* mule big 5 */ {18, CS_MULE_BIG5_L1, FAM_FIXED, FACE_NORMAL, "big5:18:f" }, {18, CS_MULE_BIG5_L2, FAM_FIXED, FACE_NORMAL, "big5:18:f" }, /* mule arabic */ {18, CS_MULE_ARAB0, FAM_FIXED, FACE_NORMAL, "mule_arab0:18:f" }, {18, CS_MULE_ARAB1, FAM_FIXED, FACE_NORMAL, "mule_arab1:18:f" }, {18, CS_MULE_ARAB2, FAM_FIXED, FACE_NORMAL, "mule_arab2:18:f" }, /* mule ethiopic */ {18, CS_MULE_ETHIOPIC, FAM_FIXED, FACE_NORMAL, "mule_ethio:18:f" }, /* mule viscii */ {18, CS_MULE_VISCII_L, FAM_FIXED, FACE_NORMAL, "mule_viscii_l:18:f" }, {18, CS_MULE_VISCII_U, FAM_FIXED, FACE_NORMAL, "mule_viscii_u:18:f" }, /*** 24 ***/ /* ascii */ {24, CS_ASCII, FAM_FIXED, FACE_NORMAL, "iso8859_1:24:f" }, {24, CS_ASCII, FAM_FIXED, FACE_ITALIC, "iso8859_1:24I:f" }, {24, CS_ASCII, FAM_FIXED, FACE_BOLD, "iso8859_1:24B:f" }, {24, CS_ASCII, FAM_TIMES, FACE_NORMAL, "iso8859_1:24:t" }, {24, CS_ASCII, FAM_TIMES, FACE_ITALIC, "iso8859_1:24I:t" }, {24, CS_ASCII, FAM_TIMES, FACE_BOLD, "iso8859_1:24B:t" }, {24, CS_ASCII, FAM_HELV, FACE_NORMAL, "iso8859_1:24:h" }, {24, CS_ASCII, FAM_HELV, FACE_ITALIC, "iso8859_1:24I:h" }, {24, CS_ASCII, FAM_HELV, FACE_BOLD, "iso8859_1:24B:h" }, {24, CS_ASCII, FAM_COUR, FACE_NORMAL, "iso8859_1:24:c" }, {24, CS_ASCII, FAM_COUR, FACE_ITALIC, "iso8859_1:24I:c" }, {24, CS_ASCII, FAM_COUR, FACE_BOLD, "iso8859_1:24B:c" }, /* iso8859-1 */ {24, CS_ISO8859_1, FAM_FIXED, FACE_NORMAL, "iso8859_1:24:f" }, {24, CS_ISO8859_1, FAM_FIXED, FACE_ITALIC, "iso8859_1:24I:f" }, {24, CS_ISO8859_1, FAM_FIXED, FACE_BOLD, "iso8859_1:24B:f" }, {24, CS_ISO8859_1, FAM_TIMES, FACE_NORMAL, "iso8859_1:24:t" }, {24, CS_ISO8859_1, FAM_TIMES, FACE_ITALIC, "iso8859_1:24I:t" }, {24, CS_ISO8859_1, FAM_TIMES, FACE_BOLD, "iso8859_1:24B:t" }, {24, CS_ISO8859_1, FAM_HELV, FACE_NORMAL, "iso8859_1:24:h" }, {24, CS_ISO8859_1, FAM_HELV, FACE_ITALIC, "iso8859_1:24I:h" }, {24, CS_ISO8859_1, FAM_HELV, FACE_BOLD, "iso8859_1:24B:h" }, {24, CS_ISO8859_1, FAM_COUR, FACE_NORMAL, "iso8859_1:24:c" }, {24, CS_ISO8859_1, FAM_COUR, FACE_ITALIC, "iso8859_1:24I:c" }, {24, CS_ISO8859_1, FAM_COUR, FACE_BOLD, "iso8859_1:24B:c" }, /* iso8859-2 */ {24, CS_ISO8859_2, FAM_FIXED, FACE_NORMAL, "iso8859_2:24:f" }, {24, CS_ISO8859_2, FAM_FIXED, FACE_ITALIC, "iso8859_2:24I:f" }, {24, CS_ISO8859_2, FAM_FIXED, FACE_BOLD, "iso8859_2:24B:f" }, {24, CS_ISO8859_2, FAM_TIMES, FACE_NORMAL, "iso8859_2:24:t" }, {24, CS_ISO8859_2, FAM_TIMES, FACE_ITALIC, "iso8859_2:24I:t" }, {24, CS_ISO8859_2, FAM_TIMES, FACE_BOLD, "iso8859_2:24B:t" }, {24, CS_ISO8859_2, FAM_HELV, FACE_NORMAL, "iso8859_2:24:h" }, {24, CS_ISO8859_2, FAM_HELV, FACE_ITALIC, "iso8859_2:24I:h" }, {24, CS_ISO8859_2, FAM_HELV, FACE_BOLD, "iso8859_2:24B:h" }, {24, CS_ISO8859_2, FAM_COUR, FACE_NORMAL, "iso8859_2:24:c" }, {24, CS_ISO8859_2, FAM_COUR, FACE_ITALIC, "iso8859_2:24I:c" }, {24, CS_ISO8859_2, FAM_COUR, FACE_BOLD, "iso8859_2:24B:c" }, /* iso8859-3 */ {24, CS_ISO8859_3, FAM_FIXED, FACE_NORMAL, "iso8859_3:24:f" }, {24, CS_ISO8859_3, FAM_FIXED, FACE_ITALIC, "iso8859_3:24I:f" }, {24, CS_ISO8859_3, FAM_FIXED, FACE_BOLD, "iso8859_3:24B:f" }, {24, CS_ISO8859_3, FAM_TIMES, FACE_NORMAL, "iso8859_3:24:t" }, {24, CS_ISO8859_3, FAM_TIMES, FACE_ITALIC, "iso8859_3:24I:t" }, {24, CS_ISO8859_3, FAM_TIMES, FACE_BOLD, "iso8859_3:24B:t" }, {24, CS_ISO8859_3, FAM_HELV, FACE_NORMAL, "iso8859_3:24:h" }, {24, CS_ISO8859_3, FAM_HELV, FACE_ITALIC, "iso8859_3:24I:h" }, {24, CS_ISO8859_3, FAM_HELV, FACE_BOLD, "iso8859_3:24B:h" }, {24, CS_ISO8859_3, FAM_COUR, FACE_NORMAL, "iso8859_3:24:c" }, {24, CS_ISO8859_3, FAM_COUR, FACE_ITALIC, "iso8859_3:24I:c" }, {24, CS_ISO8859_3, FAM_COUR, FACE_BOLD, "iso8859_3:24B:c" }, /* iso8859-4 */ {24, CS_ISO8859_4, FAM_FIXED, FACE_NORMAL, "iso8859_4:24:f" }, {24, CS_ISO8859_4, FAM_FIXED, FACE_ITALIC, "iso8859_4:24I:f" }, {24, CS_ISO8859_4, FAM_FIXED, FACE_BOLD, "iso8859_4:24B:f" }, {24, CS_ISO8859_4, FAM_TIMES, FACE_NORMAL, "iso8859_4:24:t" }, {24, CS_ISO8859_4, FAM_TIMES, FACE_ITALIC, "iso8859_4:24I:t" }, {24, CS_ISO8859_4, FAM_TIMES, FACE_BOLD, "iso8859_4:24B:t" }, {24, CS_ISO8859_4, FAM_HELV, FACE_NORMAL, "iso8859_4:24:h" }, {24, CS_ISO8859_4, FAM_HELV, FACE_ITALIC, "iso8859_4:24I:h" }, {24, CS_ISO8859_4, FAM_HELV, FACE_BOLD, "iso8859_4:24B:h" }, {24, CS_ISO8859_4, FAM_COUR, FACE_NORMAL, "iso8859_4:24:c" }, {24, CS_ISO8859_4, FAM_COUR, FACE_ITALIC, "iso8859_4:24I:c" }, {24, CS_ISO8859_4, FAM_COUR, FACE_BOLD, "iso8859_4:24B:c" }, /* iso8859-5 */ {24, CS_ISO8859_5, FAM_FIXED, FACE_NORMAL, "iso8859_5:24:f" }, {24, CS_ISO8859_5, FAM_FIXED, FACE_ITALIC, "iso8859_5:24I:f" }, {24, CS_ISO8859_5, FAM_FIXED, FACE_BOLD, "iso8859_5:24B:f" }, {24, CS_ISO8859_5, FAM_TIMES, FACE_NORMAL, "iso8859_5:24:t" }, {24, CS_ISO8859_5, FAM_TIMES, FACE_ITALIC, "iso8859_5:24I:t" }, {24, CS_ISO8859_5, FAM_TIMES, FACE_BOLD, "iso8859_5:24B:t" }, {24, CS_ISO8859_5, FAM_HELV, FACE_NORMAL, "iso8859_5:24:h" }, {24, CS_ISO8859_5, FAM_HELV, FACE_ITALIC, "iso8859_5:24I:h" }, {24, CS_ISO8859_5, FAM_HELV, FACE_BOLD, "iso8859_5:24B:h" }, {24, CS_ISO8859_5, FAM_COUR, FACE_NORMAL, "iso8859_5:24:c" }, {24, CS_ISO8859_5, FAM_COUR, FACE_ITALIC, "iso8859_5:24I:c" }, {24, CS_ISO8859_5, FAM_COUR, FACE_BOLD, "iso8859_5:24B:c" }, /* iso8859-7 */ {24, CS_ISO8859_7, FAM_FIXED, FACE_NORMAL, "iso8859_7:24:f" }, {24, CS_ISO8859_7, FAM_FIXED, FACE_ITALIC, "iso8859_7:24I:f" }, {24, CS_ISO8859_7, FAM_FIXED, FACE_BOLD, "iso8859_7:24B:f" }, {24, CS_ISO8859_7, FAM_TIMES, FACE_NORMAL, "iso8859_7:24:t" }, {24, CS_ISO8859_7, FAM_TIMES, FACE_ITALIC, "iso8859_7:24I:t" }, {24, CS_ISO8859_7, FAM_TIMES, FACE_BOLD, "iso8859_7:24B:t" }, {24, CS_ISO8859_7, FAM_HELV, FACE_NORMAL, "iso8859_7:24:h" }, {24, CS_ISO8859_7, FAM_HELV, FACE_ITALIC, "iso8859_7:24I:h" }, {24, CS_ISO8859_7, FAM_HELV, FACE_BOLD, "iso8859_7:24B:h" }, {24, CS_ISO8859_7, FAM_COUR, FACE_NORMAL, "iso8859_7:24:c" }, {24, CS_ISO8859_7, FAM_COUR, FACE_ITALIC, "iso8859_7:24I:c" }, {24, CS_ISO8859_7, FAM_COUR, FACE_BOLD, "iso8859_7:24B:c" }, /* iso8859-8 */ {24, CS_ISO8859_8, FAM_FIXED, FACE_NORMAL, "iso8859_8:24:f" }, {24, CS_ISO8859_8, FAM_FIXED, FACE_ITALIC, "iso8859_8:24I:f" }, {24, CS_ISO8859_8, FAM_FIXED, FACE_BOLD, "iso8859_8:24B:f" }, {24, CS_ISO8859_8, FAM_TIMES, FACE_NORMAL, "iso8859_8:24:t" }, {24, CS_ISO8859_8, FAM_TIMES, FACE_ITALIC, "iso8859_8:24I:t" }, {24, CS_ISO8859_8, FAM_TIMES, FACE_BOLD, "iso8859_8:24B:t" }, {24, CS_ISO8859_8, FAM_HELV, FACE_NORMAL, "iso8859_8:24:h" }, {24, CS_ISO8859_8, FAM_HELV, FACE_ITALIC, "iso8859_8:24I:h" }, {24, CS_ISO8859_8, FAM_HELV, FACE_BOLD, "iso8859_8:24B:h" }, {24, CS_ISO8859_8, FAM_COUR, FACE_NORMAL, "iso8859_8:24:c" }, {24, CS_ISO8859_8, FAM_COUR, FACE_ITALIC, "iso8859_8:24I:c" }, {24, CS_ISO8859_8, FAM_COUR, FACE_BOLD, "iso8859_8:24B:c" }, /* iso8859-9 */ {24, CS_ISO8859_9, FAM_FIXED, FACE_NORMAL, "iso8859_9:24:f" }, {24, CS_ISO8859_9, FAM_FIXED, FACE_ITALIC, "iso8859_9:24I:f" }, {24, CS_ISO8859_9, FAM_FIXED, FACE_BOLD, "iso8859_9:24B:f" }, {24, CS_ISO8859_9, FAM_TIMES, FACE_NORMAL, "iso8859_9:24:t" }, {24, CS_ISO8859_9, FAM_TIMES, FACE_ITALIC, "iso8859_9:24I:t" }, {24, CS_ISO8859_9, FAM_TIMES, FACE_BOLD, "iso8859_9:24B:t" }, {24, CS_ISO8859_9, FAM_HELV, FACE_NORMAL, "iso8859_9:24:h" }, {24, CS_ISO8859_9, FAM_HELV, FACE_ITALIC, "iso8859_9:24I:h" }, {24, CS_ISO8859_9, FAM_HELV, FACE_BOLD, "iso8859_9:24B:h" }, {24, CS_ISO8859_9, FAM_COUR, FACE_NORMAL, "iso8859_9:24:c" }, {24, CS_ISO8859_9, FAM_COUR, FACE_ITALIC, "iso8859_9:24I:c" }, {24, CS_ISO8859_9, FAM_COUR, FACE_BOLD, "iso8859_9:24B:c" }, /* japanese */ {24, CS_JISX0201K, FAM_FIXED, FACE_NORMAL, "jisx0201k:24:f" }, {24, CS_JISX0201R, FAM_FIXED, FACE_NORMAL, "jisx0201r:24:f" }, {24, CS_JISX0208, FAM_FIXED, FACE_NORMAL, "jisx0208:24:f" }, {24, CS_JISX0208, FAM_FIXED, FACE_ITALIC, "jisx0208:24I:f" }, {24, CS_JISX0208, FAM_FIXED, FACE_BOLD, "jisx0208:24B:f" }, {24, CS_JISX0208, FAM_TIMES, FACE_NORMAL, "jisx0208:24:t" }, {24, CS_JISX0208, FAM_TIMES, FACE_ITALIC, "jisx0208:24I:t" }, {24, CS_JISX0208, FAM_TIMES, FACE_BOLD, "jisx0208:24B:t" }, {24, CS_JISX0208, FAM_HELV, FACE_NORMAL, "jisx0208:24:h" }, {24, CS_JISX0208, FAM_HELV, FACE_ITALIC, "jisx0208:24I:h" }, {24, CS_JISX0208, FAM_HELV, FACE_BOLD, "jisx0208:24B:h" }, {24, CS_JISX0208, FAM_COUR, FACE_NORMAL, "jisx0208:24:c" }, {24, CS_JISX0208, FAM_COUR, FACE_ITALIC, "jisx0208:24I:c" }, {24, CS_JISX0208, FAM_COUR, FACE_BOLD, "jisx0208:24B:c" }, {24, CS_JISX0212, FAM_FIXED, FACE_NORMAL, "jisx0212:24:f" }, /* hangle */ {24, CS_KSC5601, FAM_FIXED, FACE_NORMAL, "ksc5601:24:f" }, {24, CS_KSC5601, FAM_FIXED, FACE_ITALIC, "ksc5601:24I:f" }, {24, CS_KSC5601, FAM_FIXED, FACE_BOLD, "ksc5601:24B:f" }, {24, CS_KSC5601, FAM_TIMES, FACE_NORMAL, "ksc5601:24:t" }, {24, CS_KSC5601, FAM_TIMES, FACE_ITALIC, "ksc5601:24I:t" }, {24, CS_KSC5601, FAM_TIMES, FACE_BOLD, "ksc5601:24B:t" }, {24, CS_KSC5601, FAM_HELV, FACE_NORMAL, "ksc5601:24:h" }, {24, CS_KSC5601, FAM_HELV, FACE_ITALIC, "ksc5601:24I:h" }, {24, CS_KSC5601, FAM_HELV, FACE_BOLD, "ksc5601:24B:h" }, {24, CS_KSC5601, FAM_COUR, FACE_NORMAL, "ksc5601:24:c" }, {24, CS_KSC5601, FAM_COUR, FACE_ITALIC, "ksc5601:24I:c" }, {24, CS_KSC5601, FAM_COUR, FACE_BOLD, "ksc5601:24B:c" }, /* chinese */ {24, CS_GB2312, FAM_FIXED, FACE_NORMAL, "gb2312:24:f" }, {24, CS_GB2312, FAM_FIXED, FACE_ITALIC, "gb2312:24I:f" }, {24, CS_GB2312, FAM_FIXED, FACE_BOLD, "gb2312:24B:f" }, {24, CS_GB2312, FAM_TIMES, FACE_NORMAL, "gb2312:24:t" }, {24, CS_GB2312, FAM_TIMES, FACE_ITALIC, "gb2312:24I:t" }, {24, CS_GB2312, FAM_TIMES, FACE_BOLD, "gb2312:24B:t" }, {24, CS_GB2312, FAM_HELV, FACE_NORMAL, "gb2312:24:h" }, {24, CS_GB2312, FAM_HELV, FACE_ITALIC, "gb2312:24I:h" }, {24, CS_GB2312, FAM_HELV, FACE_BOLD, "gb2312:24B:h" }, {24, CS_GB2312, FAM_COUR, FACE_NORMAL, "gb2312:24:c" }, {24, CS_GB2312, FAM_COUR, FACE_ITALIC, "gb2312:24I:c" }, {24, CS_GB2312, FAM_COUR, FACE_BOLD, "gb2312:24B:c" }, {24, CS_CNS11643_1, FAM_FIXED, FACE_NORMAL, "cns11643_1:24:f" }, {24, CS_CNS11643_1, FAM_FIXED, FACE_ITALIC, "cns11643_1:24I:f" }, {24, CS_CNS11643_1, FAM_FIXED, FACE_BOLD, "cns11643_1:24B:f" }, {24, CS_CNS11643_1, FAM_TIMES, FACE_NORMAL, "cns11643_1:24:t" }, {24, CS_CNS11643_1, FAM_TIMES, FACE_ITALIC, "cns11643_1:24I:t" }, {24, CS_CNS11643_1, FAM_TIMES, FACE_BOLD, "cns11643_1:24B:t" }, {24, CS_CNS11643_1, FAM_HELV, FACE_NORMAL, "cns11643_1:24:h" }, {24, CS_CNS11643_1, FAM_HELV, FACE_ITALIC, "cns11643_1:24I:h" }, {24, CS_CNS11643_1, FAM_HELV, FACE_BOLD, "cns11643_1:24B:h" }, {24, CS_CNS11643_1, FAM_COUR, FACE_NORMAL, "cns11643_1:24:c" }, {24, CS_CNS11643_1, FAM_COUR, FACE_ITALIC, "cns11643_1:24I:c" }, {24, CS_CNS11643_1, FAM_COUR, FACE_BOLD, "cns11643_1:24B:c" }, {24, CS_CNS11643_2, FAM_FIXED, FACE_NORMAL, "cns11643_2:24:f" }, {24, CS_CNS11643_2, FAM_FIXED, FACE_ITALIC, "cns11643_2:24I:f" }, {24, CS_CNS11643_2, FAM_FIXED, FACE_BOLD, "cns11643_2:24B:f" }, {24, CS_CNS11643_2, FAM_TIMES, FACE_NORMAL, "cns11643_2:24:t" }, {24, CS_CNS11643_2, FAM_TIMES, FACE_ITALIC, "cns11643_2:24I:t" }, {24, CS_CNS11643_2, FAM_TIMES, FACE_BOLD, "cns11643_2:24B:t" }, {24, CS_CNS11643_2, FAM_HELV, FACE_NORMAL, "cns11643_2:24:h" }, {24, CS_CNS11643_2, FAM_HELV, FACE_ITALIC, "cns11643_2:24I:h" }, {24, CS_CNS11643_2, FAM_HELV, FACE_BOLD, "cns11643_2:24B:h" }, {24, CS_CNS11643_2, FAM_COUR, FACE_NORMAL, "cns11643_2:24:c" }, {24, CS_CNS11643_2, FAM_COUR, FACE_ITALIC, "cns11643_2:24I:c" }, {24, CS_CNS11643_2, FAM_COUR, FACE_BOLD, "cns11643_2:24B:c" }, {24, CS_CNS11643_3, FAM_FIXED, FACE_NORMAL, "cns11643_3:24:f" }, {24, CS_CNS11643_4, FAM_FIXED, FACE_NORMAL, "cns11643_4:24:f" }, {24, CS_CNS11643_5, FAM_FIXED, FACE_NORMAL, "cns11643_5:24:f" }, {24, CS_CNS11643_6, FAM_FIXED, FACE_NORMAL, "cns11643_6:24:f" }, {24, CS_CNS11643_7, FAM_FIXED, FACE_NORMAL, "cns11643_7:24:f" }, /* mule big 5 */ {24, CS_MULE_BIG5_L1, FAM_FIXED, FACE_NORMAL, "big5:24:f" }, {24, CS_MULE_BIG5_L2, FAM_FIXED, FACE_NORMAL, "big5:24:f" }, /* mule arabic */ {24, CS_MULE_ARAB0, FAM_FIXED, FACE_NORMAL, "mule_arab0:24:f" }, {24, CS_MULE_ARAB1, FAM_FIXED, FACE_NORMAL, "mule_arab1:24:f" }, {24, CS_MULE_ARAB2, FAM_FIXED, FACE_NORMAL, "mule_arab2:24:f" }, /* mule ethiopic */ {24, CS_MULE_ETHIOPIC, FAM_FIXED, FACE_NORMAL, "mule_ethio:24:f" }, /* mule viscii */ {24, CS_MULE_VISCII_L, FAM_FIXED, FACE_NORMAL, "mule_viscii_l:24:f" }, {24, CS_MULE_VISCII_U, FAM_FIXED, FACE_NORMAL, "mule_viscii_u:24:f" }, /*** scalable ***/ /* ascii */ {0, CS_ASCII, FAM_FIXED, FACE_NORMAL, "iso8859_1:n:f" }, {0, CS_ASCII, FAM_FIXED, FACE_ITALIC, "iso8859_1:nI:f" }, {0, CS_ASCII, FAM_FIXED, FACE_BOLD, "iso8859_1:nB:f" }, {0, CS_ASCII, FAM_TIMES, FACE_NORMAL, "iso8859_1:n:t" }, {0, CS_ASCII, FAM_TIMES, FACE_ITALIC, "iso8859_1:nI:t" }, {0, CS_ASCII, FAM_TIMES, FACE_BOLD, "iso8859_1:nB:t" }, {0, CS_ASCII, FAM_HELV, FACE_NORMAL, "iso8859_1:n:h" }, {0, CS_ASCII, FAM_HELV, FACE_ITALIC, "iso8859_1:nI:h" }, {0, CS_ASCII, FAM_HELV, FACE_BOLD, "iso8859_1:nB:h" }, {0, CS_ASCII, FAM_COUR, FACE_NORMAL, "iso8859_1:n:c" }, {0, CS_ASCII, FAM_COUR, FACE_ITALIC, "iso8859_1:nI:c" }, {0, CS_ASCII, FAM_COUR, FACE_BOLD, "iso8859_1:nB:c" }, /* iso8859-1 */ {0, CS_ISO8859_1, FAM_FIXED, FACE_NORMAL, "iso8859_1:n:f" }, {0, CS_ISO8859_1, FAM_FIXED, FACE_ITALIC, "iso8859_1:nI:f" }, {0, CS_ISO8859_1, FAM_FIXED, FACE_BOLD, "iso8859_1:nB:f" }, {0, CS_ISO8859_1, FAM_TIMES, FACE_NORMAL, "iso8859_1:n:t" }, {0, CS_ISO8859_1, FAM_TIMES, FACE_ITALIC, "iso8859_1:nI:t" }, {0, CS_ISO8859_1, FAM_TIMES, FACE_BOLD, "iso8859_1:nB:t" }, {0, CS_ISO8859_1, FAM_HELV, FACE_NORMAL, "iso8859_1:n:h" }, {0, CS_ISO8859_1, FAM_HELV, FACE_ITALIC, "iso8859_1:nI:h" }, {0, CS_ISO8859_1, FAM_HELV, FACE_BOLD, "iso8859_1:nB:h" }, {0, CS_ISO8859_1, FAM_COUR, FACE_NORMAL, "iso8859_1:n:c" }, {0, CS_ISO8859_1, FAM_COUR, FACE_ITALIC, "iso8859_1:nI:c" }, {0, CS_ISO8859_1, FAM_COUR, FACE_BOLD, "iso8859_1:nB:c" }, /* iso8859-2 */ {0, CS_ISO8859_2, FAM_FIXED, FACE_NORMAL, "iso8859_2:n:f" }, {0, CS_ISO8859_2, FAM_FIXED, FACE_ITALIC, "iso8859_2:nI:f" }, {0, CS_ISO8859_2, FAM_FIXED, FACE_BOLD, "iso8859_2:nB:f" }, {0, CS_ISO8859_2, FAM_TIMES, FACE_NORMAL, "iso8859_2:n:t" }, {0, CS_ISO8859_2, FAM_TIMES, FACE_ITALIC, "iso8859_2:nI:t" }, {0, CS_ISO8859_2, FAM_TIMES, FACE_BOLD, "iso8859_2:nB:t" }, {0, CS_ISO8859_2, FAM_HELV, FACE_NORMAL, "iso8859_2:n:h" }, {0, CS_ISO8859_2, FAM_HELV, FACE_ITALIC, "iso8859_2:nI:h" }, {0, CS_ISO8859_2, FAM_HELV, FACE_BOLD, "iso8859_2:nB:h" }, {0, CS_ISO8859_2, FAM_COUR, FACE_NORMAL, "iso8859_2:n:c" }, {0, CS_ISO8859_2, FAM_COUR, FACE_ITALIC, "iso8859_2:nI:c" }, {0, CS_ISO8859_2, FAM_COUR, FACE_BOLD, "iso8859_2:nB:c" }, /* iso8859-3 */ {0, CS_ISO8859_3, FAM_FIXED, FACE_NORMAL, "iso8859_3:n:f" }, {0, CS_ISO8859_3, FAM_FIXED, FACE_ITALIC, "iso8859_3:nI:f" }, {0, CS_ISO8859_3, FAM_FIXED, FACE_BOLD, "iso8859_3:nB:f" }, {0, CS_ISO8859_3, FAM_TIMES, FACE_NORMAL, "iso8859_3:n:t" }, {0, CS_ISO8859_3, FAM_TIMES, FACE_ITALIC, "iso8859_3:nI:t" }, {0, CS_ISO8859_3, FAM_TIMES, FACE_BOLD, "iso8859_3:nB:t" }, {0, CS_ISO8859_3, FAM_HELV, FACE_NORMAL, "iso8859_3:n:h" }, {0, CS_ISO8859_3, FAM_HELV, FACE_ITALIC, "iso8859_3:nI:h" }, {0, CS_ISO8859_3, FAM_HELV, FACE_BOLD, "iso8859_3:nB:h" }, {0, CS_ISO8859_3, FAM_COUR, FACE_NORMAL, "iso8859_3:n:c" }, {0, CS_ISO8859_3, FAM_COUR, FACE_ITALIC, "iso8859_3:nI:c" }, {0, CS_ISO8859_3, FAM_COUR, FACE_BOLD, "iso8859_3:nB:c" }, /* iso8859-4 */ {0, CS_ISO8859_4, FAM_FIXED, FACE_NORMAL, "iso8859_4:n:f" }, {0, CS_ISO8859_4, FAM_FIXED, FACE_ITALIC, "iso8859_4:nI:f" }, {0, CS_ISO8859_4, FAM_FIXED, FACE_BOLD, "iso8859_4:nB:f" }, {0, CS_ISO8859_4, FAM_TIMES, FACE_NORMAL, "iso8859_4:n:t" }, {0, CS_ISO8859_4, FAM_TIMES, FACE_ITALIC, "iso8859_4:nI:t" }, {0, CS_ISO8859_4, FAM_TIMES, FACE_BOLD, "iso8859_4:nB:t" }, {0, CS_ISO8859_4, FAM_HELV, FACE_NORMAL, "iso8859_4:n:h" }, {0, CS_ISO8859_4, FAM_HELV, FACE_ITALIC, "iso8859_4:nI:h" }, {0, CS_ISO8859_4, FAM_HELV, FACE_BOLD, "iso8859_4:nB:h" }, {0, CS_ISO8859_4, FAM_COUR, FACE_NORMAL, "iso8859_4:n:c" }, {0, CS_ISO8859_4, FAM_COUR, FACE_ITALIC, "iso8859_4:nI:c" }, {0, CS_ISO8859_4, FAM_COUR, FACE_BOLD, "iso8859_4:nB:c" }, /* iso8859-5 */ {0, CS_ISO8859_5, FAM_FIXED, FACE_NORMAL, "iso8859_5:n:f" }, {0, CS_ISO8859_5, FAM_FIXED, FACE_ITALIC, "iso8859_5:nI:f" }, {0, CS_ISO8859_5, FAM_FIXED, FACE_BOLD, "iso8859_5:nB:f" }, {0, CS_ISO8859_5, FAM_TIMES, FACE_NORMAL, "iso8859_5:n:t" }, {0, CS_ISO8859_5, FAM_TIMES, FACE_ITALIC, "iso8859_5:nI:t" }, {0, CS_ISO8859_5, FAM_TIMES, FACE_BOLD, "iso8859_5:nB:t" }, {0, CS_ISO8859_5, FAM_HELV, FACE_NORMAL, "iso8859_5:n:h" }, {0, CS_ISO8859_5, FAM_HELV, FACE_ITALIC, "iso8859_5:nI:h" }, {0, CS_ISO8859_5, FAM_HELV, FACE_BOLD, "iso8859_5:nB:h" }, {0, CS_ISO8859_5, FAM_COUR, FACE_NORMAL, "iso8859_5:n:c" }, {0, CS_ISO8859_5, FAM_COUR, FACE_ITALIC, "iso8859_5:nI:c" }, {0, CS_ISO8859_5, FAM_COUR, FACE_BOLD, "iso8859_5:nB:c" }, /* iso8859-7 */ {0, CS_ISO8859_7, FAM_FIXED, FACE_NORMAL, "iso8859_7:n:f" }, {0, CS_ISO8859_7, FAM_FIXED, FACE_ITALIC, "iso8859_7:nI:f" }, {0, CS_ISO8859_7, FAM_FIXED, FACE_BOLD, "iso8859_7:nB:f" }, {0, CS_ISO8859_7, FAM_TIMES, FACE_NORMAL, "iso8859_7:n:t" }, {0, CS_ISO8859_7, FAM_TIMES, FACE_ITALIC, "iso8859_7:nI:t" }, {0, CS_ISO8859_7, FAM_TIMES, FACE_BOLD, "iso8859_7:nB:t" }, {0, CS_ISO8859_7, FAM_HELV, FACE_NORMAL, "iso8859_7:n:h" }, {0, CS_ISO8859_7, FAM_HELV, FACE_ITALIC, "iso8859_7:nI:h" }, {0, CS_ISO8859_7, FAM_HELV, FACE_BOLD, "iso8859_7:nB:h" }, {0, CS_ISO8859_7, FAM_COUR, FACE_NORMAL, "iso8859_7:n:c" }, {0, CS_ISO8859_7, FAM_COUR, FACE_ITALIC, "iso8859_7:nI:c" }, {0, CS_ISO8859_7, FAM_COUR, FACE_BOLD, "iso8859_7:nB:c" }, /* iso8859-8 */ {0, CS_ISO8859_8, FAM_FIXED, FACE_NORMAL, "iso8859_8:n:f" }, {0, CS_ISO8859_8, FAM_FIXED, FACE_ITALIC, "iso8859_8:nI:f" }, {0, CS_ISO8859_8, FAM_FIXED, FACE_BOLD, "iso8859_8:nB:f" }, {0, CS_ISO8859_8, FAM_TIMES, FACE_NORMAL, "iso8859_8:n:t" }, {0, CS_ISO8859_8, FAM_TIMES, FACE_ITALIC, "iso8859_8:nI:t" }, {0, CS_ISO8859_8, FAM_TIMES, FACE_BOLD, "iso8859_8:nB:t" }, {0, CS_ISO8859_8, FAM_HELV, FACE_NORMAL, "iso8859_8:n:h" }, {0, CS_ISO8859_8, FAM_HELV, FACE_ITALIC, "iso8859_8:nI:h" }, {0, CS_ISO8859_8, FAM_HELV, FACE_BOLD, "iso8859_8:nB:h" }, {0, CS_ISO8859_8, FAM_COUR, FACE_NORMAL, "iso8859_8:n:c" }, {0, CS_ISO8859_8, FAM_COUR, FACE_ITALIC, "iso8859_8:nI:c" }, {0, CS_ISO8859_8, FAM_COUR, FACE_BOLD, "iso8859_8:nB:c" }, /* iso8859-9 */ {0, CS_ISO8859_9, FAM_FIXED, FACE_NORMAL, "iso8859_9:n:f" }, {0, CS_ISO8859_9, FAM_FIXED, FACE_ITALIC, "iso8859_9:nI:f" }, {0, CS_ISO8859_9, FAM_FIXED, FACE_BOLD, "iso8859_9:nB:f" }, {0, CS_ISO8859_9, FAM_TIMES, FACE_NORMAL, "iso8859_9:n:t" }, {0, CS_ISO8859_9, FAM_TIMES, FACE_ITALIC, "iso8859_9:nI:t" }, {0, CS_ISO8859_9, FAM_TIMES, FACE_BOLD, "iso8859_9:nB:t" }, {0, CS_ISO8859_9, FAM_HELV, FACE_NORMAL, "iso8859_9:n:h" }, {0, CS_ISO8859_9, FAM_HELV, FACE_ITALIC, "iso8859_9:nI:h" }, {0, CS_ISO8859_9, FAM_HELV, FACE_BOLD, "iso8859_9:nB:h" }, {0, CS_ISO8859_9, FAM_COUR, FACE_NORMAL, "iso8859_9:n:c" }, {0, CS_ISO8859_9, FAM_COUR, FACE_ITALIC, "iso8859_9:nI:c" }, {0, CS_ISO8859_9, FAM_COUR, FACE_BOLD, "iso8859_9:nB:c" }, /* japanese */ {0, CS_JISX0201K, FAM_FIXED, FACE_NORMAL, "jisx0201k:n:f" }, {0, CS_JISX0201R, FAM_FIXED, FACE_NORMAL, "jisx0201r:n:f" }, {0, CS_JISX0208, FAM_FIXED, FACE_NORMAL, "jisx0208:n:f" }, {0, CS_JISX0208, FAM_FIXED, FACE_ITALIC, "jisx0208:nI:f" }, {0, CS_JISX0208, FAM_FIXED, FACE_BOLD, "jisx0208:nB:f" }, {0, CS_JISX0208, FAM_TIMES, FACE_NORMAL, "jisx0208:n:t" }, {0, CS_JISX0208, FAM_TIMES, FACE_ITALIC, "jisx0208:nI:t" }, {0, CS_JISX0208, FAM_TIMES, FACE_BOLD, "jisx0208:nB:t" }, {0, CS_JISX0208, FAM_HELV, FACE_NORMAL, "jisx0208:n:h" }, {0, CS_JISX0208, FAM_HELV, FACE_ITALIC, "jisx0208:nI:h" }, {0, CS_JISX0208, FAM_HELV, FACE_BOLD, "jisx0208:nB:h" }, {0, CS_JISX0208, FAM_COUR, FACE_NORMAL, "jisx0208:n:c" }, {0, CS_JISX0208, FAM_COUR, FACE_ITALIC, "jisx0208:nI:c" }, {0, CS_JISX0208, FAM_COUR, FACE_BOLD, "jisx0208:nB:c" }, {0, CS_JISX0212, FAM_FIXED, FACE_NORMAL, "jisx0212:n:f" }, /* hangle */ {0, CS_KSC5601, FAM_FIXED, FACE_NORMAL, "ksc5601:n:f" }, {0, CS_KSC5601, FAM_FIXED, FACE_ITALIC, "ksc5601:nI:f" }, {0, CS_KSC5601, FAM_FIXED, FACE_BOLD, "ksc5601:nB:f" }, {0, CS_KSC5601, FAM_TIMES, FACE_NORMAL, "ksc5601:n:t" }, {0, CS_KSC5601, FAM_TIMES, FACE_ITALIC, "ksc5601:nI:t" }, {0, CS_KSC5601, FAM_TIMES, FACE_BOLD, "ksc5601:nB:t" }, {0, CS_KSC5601, FAM_HELV, FACE_NORMAL, "ksc5601:n:h" }, {0, CS_KSC5601, FAM_HELV, FACE_ITALIC, "ksc5601:nI:h" }, {0, CS_KSC5601, FAM_HELV, FACE_BOLD, "ksc5601:nB:h" }, {0, CS_KSC5601, FAM_COUR, FACE_NORMAL, "ksc5601:n:c" }, {0, CS_KSC5601, FAM_COUR, FACE_ITALIC, "ksc5601:nI:c" }, {0, CS_KSC5601, FAM_COUR, FACE_BOLD, "ksc5601:nB:c" }, /* chinese */ {0, CS_GB2312, FAM_FIXED, FACE_NORMAL, "gb2312:n:f" }, {0, CS_GB2312, FAM_FIXED, FACE_ITALIC, "gb2312:nI:f" }, {0, CS_GB2312, FAM_FIXED, FACE_BOLD, "gb2312:nB:f" }, {0, CS_GB2312, FAM_TIMES, FACE_NORMAL, "gb2312:n:t" }, {0, CS_GB2312, FAM_TIMES, FACE_ITALIC, "gb2312:nI:t" }, {0, CS_GB2312, FAM_TIMES, FACE_BOLD, "gb2312:nB:t" }, {0, CS_GB2312, FAM_HELV, FACE_NORMAL, "gb2312:n:h" }, {0, CS_GB2312, FAM_HELV, FACE_ITALIC, "gb2312:nI:h" }, {0, CS_GB2312, FAM_HELV, FACE_BOLD, "gb2312:nB:h" }, {0, CS_GB2312, FAM_COUR, FACE_NORMAL, "gb2312:n:c" }, {0, CS_GB2312, FAM_COUR, FACE_ITALIC, "gb2312:nI:c" }, {0, CS_GB2312, FAM_COUR, FACE_BOLD, "gb2312:nB:c" }, {0, CS_CNS11643_1, FAM_FIXED, FACE_NORMAL, "cns11643_1:n:f" }, {0, CS_CNS11643_1, FAM_FIXED, FACE_ITALIC, "cns11643_1:nI:f" }, {0, CS_CNS11643_1, FAM_FIXED, FACE_BOLD, "cns11643_1:nB:f" }, {0, CS_CNS11643_1, FAM_TIMES, FACE_NORMAL, "cns11643_1:n:t" }, {0, CS_CNS11643_1, FAM_TIMES, FACE_ITALIC, "cns11643_1:nI:t" }, {0, CS_CNS11643_1, FAM_TIMES, FACE_BOLD, "cns11643_1:nB:t" }, {0, CS_CNS11643_1, FAM_HELV, FACE_NORMAL, "cns11643_1:n:h" }, {0, CS_CNS11643_1, FAM_HELV, FACE_ITALIC, "cns11643_1:nI:h" }, {0, CS_CNS11643_1, FAM_HELV, FACE_BOLD, "cns11643_1:nB:h" }, {0, CS_CNS11643_1, FAM_COUR, FACE_NORMAL, "cns11643_1:n:c" }, {0, CS_CNS11643_1, FAM_COUR, FACE_ITALIC, "cns11643_1:nI:c" }, {0, CS_CNS11643_1, FAM_COUR, FACE_BOLD, "cns11643_1:nB:c" }, {0, CS_CNS11643_2, FAM_FIXED, FACE_NORMAL, "cns11643_2:n:f" }, {0, CS_CNS11643_2, FAM_FIXED, FACE_ITALIC, "cns11643_2:nI:f" }, {0, CS_CNS11643_2, FAM_FIXED, FACE_BOLD, "cns11643_2:nB:f" }, {0, CS_CNS11643_2, FAM_TIMES, FACE_NORMAL, "cns11643_2:n:t" }, {0, CS_CNS11643_2, FAM_TIMES, FACE_ITALIC, "cns11643_2:nI:t" }, {0, CS_CNS11643_2, FAM_TIMES, FACE_BOLD, "cns11643_2:nB:t" }, {0, CS_CNS11643_2, FAM_HELV, FACE_NORMAL, "cns11643_2:n:h" }, {0, CS_CNS11643_2, FAM_HELV, FACE_ITALIC, "cns11643_2:nI:h" }, {0, CS_CNS11643_2, FAM_HELV, FACE_BOLD, "cns11643_2:nB:h" }, {0, CS_CNS11643_2, FAM_COUR, FACE_NORMAL, "cns11643_2:n:c" }, {0, CS_CNS11643_2, FAM_COUR, FACE_ITALIC, "cns11643_2:nI:c" }, {0, CS_CNS11643_2, FAM_COUR, FACE_BOLD, "cns11643_2:nB:c" }, {0, CS_CNS11643_3, FAM_FIXED, FACE_NORMAL, "cns11643_3:n:f" }, {0, CS_CNS11643_4, FAM_FIXED, FACE_NORMAL, "cns11643_4:n:f" }, {0, CS_CNS11643_5, FAM_FIXED, FACE_NORMAL, "cns11643_5:n:f" }, {0, CS_CNS11643_6, FAM_FIXED, FACE_NORMAL, "cns11643_6:n:f" }, {0, CS_CNS11643_7, FAM_FIXED, FACE_NORMAL, "cns11643_7:n:f" }, /* mule big 5 */ {0, CS_MULE_BIG5_L1, FAM_FIXED, FACE_NORMAL, "big5:n:f" }, {0, CS_MULE_BIG5_L2, FAM_FIXED, FACE_NORMAL, "big5:n:f" }, /* mule arabic */ {0, CS_MULE_ARAB0, FAM_FIXED, FACE_NORMAL, "mule_arab0:n:f" }, {0, CS_MULE_ARAB1, FAM_FIXED, FACE_NORMAL, "mule_arab1:n:f" }, {0, CS_MULE_ARAB2, FAM_FIXED, FACE_NORMAL, "mule_arab2:n:f" }, /* mule ethiopic */ {0, CS_MULE_ETHIOPIC, FAM_FIXED, FACE_NORMAL, "mule_ethio:n:f" }, /* mule viscii */ {0, CS_MULE_VISCII_L, FAM_FIXED, FACE_NORMAL, "mule_viscii_l:n:f" }, {0, CS_MULE_VISCII_U, FAM_FIXED, FACE_NORMAL, "mule_viscii_u:n:f" }, /*** end ***/ {-1, -1, -1, -1, NULL, -1}, }; /*EOF*/ vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Makefile.in0000644000175000017500000000213007007156670021054 0ustar mohuramohura# # a Makefile for "ctext2pgm" # by Hirotsugu Kakugawa # # ----------------------------------------------------------------------- makedefault: default LIBTOOL=../../libtool include ../../make-sub PROGRAM = ctext2pgm SRCS = ctext2pgm.c OBJS = ctext2pgm.lo VFLIB_DIR = ../../src default all: $(PROGRAM) ctext2pgm: ctext2pgm.o $(VFLIB_DIR)/libVFlib3.la $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -o ctext2pgm ctext2pgm.o \ $(VFLIB_DIR)/libVFlib3.la ctext2pgm.o: ctext2pgm.c ctext2pgm.h fontdef.h $(CC) $(VFCFLAGS) -I$(VFLIB_DIR) -c ctext2pgm.c ctext2pgms: ctext2pgm.o $(VFLIB_DIR)/libVFlib3.la $(LIBTOOL) --mode=link \ $(CC) $(VFCFLAGS) -static -o ctext2pgms ctext2pgm.o \ $(VFLIB_DIR)/libVFlib3.la wc: wc *.c *.h install: $(PROGRAM) @$(LIBTOOL) --mode=install \ ../../$(INSTALL_PROGRAM) ctext2pgm $(bindir) @../../$(INSTALL_DATA) vflibcap-ctext2pgm $(runtimedir) uninstall: $(LIBTOOL) --mode=uninstall $(RM) $(bindir)/ctext2pgm $(RM) $(runtimedir)/vflibcap-ctext2pgm clean:: -$(RM) $(PROGRAM) ctext2pgms veryclean:: clean distclean:: clean #EOF vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/vflibcap-ctext2pgm0000644000175000017500000014160707713642063022450 0ustar mohuramohura;;; -*-Lisp-*- ;; ;; vflibcap-ctext2pgm ;; by h.kakugawa@computer.org ;; ;; ------------------------------------------------------------------------- ;; VFlib Default ;; ------------------------------------------------------------------------- (define-default VFlib (extension-hints (".bdf" bdf) (".pcf" pcf) (".pfb" type1) (".ttf" truetype) (".ttc" truetype)) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (variable-values (TeX_DPI "300") (TeX_USE_KPATHSEA "Yes") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "ctext2pgm")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv" "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv" "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv" "iso8859-10_unicode.ccv" "iso8859-13_unicode.ccv" "iso8859-14_unicode.ccv" "iso8859-15_unicode.ccv" "jisx0208_unicode.ccv" "jisx0208sjis_unicode.ccv" "jisx0201_unicode.ccv" "jisx0212_unicode.ccv" "ksc5601_unicode.ccv" "ksx1001_unicode.ccv" "gb12345_unicode.ccv" "gb2312_unicode.ccv" "big5_unicode.ccv" "cns11643-1_unicode.ccv" "cns11643-2_unicode.ccv" "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv")) ;; ------------------------------------------------------------------------- ;; BDF Font Class Default ;; ------------------------------------------------------------------------- (define-default bdf (font-directories "/usr/local/share/emacs/fonts/" "/usr/local/share/fonts/emacs/" "/usr/local/fonts/X11//" ) (compression-extensions ".gz" ".Z") (properties ("FONT_CLASS" "BDF")) ) ;; ------------------------------------------------------------------------- ;; PCF Font Class Default ;; ------------------------------------------------------------------------- (define-default pcf (font-directories "/usr/X11R6/lib/X11/fonts/100dpi/" "/usr/X11R6/lib/X11/fonts/misc/" "/usr/local/X11R6/lib/X11/fonts/100dpi/" "/usr/local/X11R6/lib/X11/fonts/misc/" "/usr/openwin/lib/X11/fonts/100dpi/" "/usr/openwin/lib/X11/fonts/misc/" "/usr/X386/lib/X11/fonts/100dpi/" "/usr/XFree86/lib/X11/fonts/100dpi/" "/usr/X11/lib/X11/fonts/100dpi/" "/usr/local/lib/X11/fonts/100dpi/" "/usr/X11R5/lib/X11/fonts/100dpi/" "/usr/local/X11R5/lib/X11/fonts/100dpi/" "/usr/local/share/emacs/fonts/" "/usr/local/share/fonts/emacs/" "/usr/share/emacs/fonts/" "/usr/local/fonts/X11//" ) (compression-extensions ".gz" ".Z") (properties ("FONT_CLASS" "PCF")) ) ;; ISO 8859-2 (Latin-2) fonts (define-macro pcf:iso8859_2 (font-class pcf) (font-directories "/usr/local/share/fonts/X11/Latin-2/100dpi/" "/usr/local/share/fonts/emacs/")) ;; ISO 8859-5 (Cyrillic) fonts by KOI8-R encoded fonts (define-macro pcf:iso8859_5:koi8r (font-class pcf) (character-set "ISO8859-5") (encoding "ISO") (font-character-set "KOI8-R") (font-encoding "KOI8-R")) ;; ------------------------------------------------------------------------- ;; TrueType Font Class Default ;; ------------------------------------------------------------------------- (define-default truetype (font-directories "TEXMF" ; - a special name to search by `kpathsea' "/usr/local/fonts/DynaFont-Premium30//" "/usr/local/fonts/DynaFont-SpecialPack1//" "/usr/local/fonts/DynaFont-TypeMuseum//" "/usr/local/fonts/TrueTypeWorld-ValueFontDX//" ) ;;(debug "*") (properties ("FONT_CLASS" "TrueType")) ) ;; ------------------------------------------------------------------------- ;; Type1 Font Class Default ;; ------------------------------------------------------------------------- (define-default type1 (font-directories "TEXMF" "/usr/local/Acrobat3/Fonts" "/usr/local/Acrobat4/Resource/Font" "/usr/local/share/ghostscript/fonts") (afm-directories "TEXMF" "/usr/local/share/ghostscript/fonts") (encoding-vector-directories) (log-level "none") (dpi $TeX_DPI)) ;; ------------------------------------------------------------------------- ;; ------------------------------------------------------------------------- ;; 14-dot fonts ;; ------------------------------------------------------------------------- ;; iso 8859-1 (define-font iso8859_1:14:f (font-class pcf) (font-file "7x13-ISO8859-1.pcf" "7x13.pcf" "lt1-14-etl.pcf" "etl14-latin1.pcf")) (define-font iso8859_1:14B:f (font-class pcf) (font-file "7x13B-ISO8859-1.pcf" "7x13B.pcf")) (define-font iso8859_1:14:t (font-class pcf) (font-file "timR10-ISO8859-1.pcf" "timR10.pcf")) (define-font iso8859_1:14I:t (font-class pcf) (font-file "timI10-ISO8859-1.pcf" "timI10.pcf")) (define-font iso8859_1:14B:t (font-class pcf) (font-file "timB10-ISO8859-1.pcf" "timB10.pcf")) (define-font iso8859_1:14:h (font-class pcf) (font-file "helvR10-ISO8859-1.pcf" "helvR10.pcf")) (define-font iso8859_1:14I:h (font-class pcf) (font-file "helvO10-ISO8859-1.pcf" "helvO10.pcf")) (define-font iso8859_1:14B:h (font-class pcf) (font-file "helvB10-ISO8859-1.pcf" "helvB10.pcf")) (define-font iso8859_1:14:c (font-class pcf) (font-file "courR10-ISO8859-1.pcf" "courR10.pcf")) (define-font iso8859_1:14I:c (font-class pcf) (font-file "courO10-ISO8859-1.pcf" "courO10.pcf")) (define-font iso8859_1:14B:c (font-class pcf) (font-file "courB10-ISO8859-1.pcf" "courB10.pcf")) ;; iso 8859-2 (define-font iso8859_2:14:f (font-class pcf) (font-file "7x13-ISO8859-2.pcf")) (define-font iso8859_2:14B:f (font-class pcf) (font-file "7x13B-ISO8859-2.pcf")) (define-font iso8859_2:14:t (font-class pcf) (font-file "timR10-ISO8859-2.pcf")) (define-font iso8859_2:14I:t (font-class pcf) (font-file "timI10-ISO8859-2.pcf")) (define-font iso8859_2:14B:t (font-class pcf) (font-file "timB10-ISO8859-2.pcf")) (define-font iso8859_2:14:h (font-class pcf) (font-file "helvR10-ISO8859-2.pcf")) (define-font iso8859_2:14I:h (font-class pcf) (font-file "helvO10-ISO8859-2.pcf")) (define-font iso8859_2:14B:h (font-class pcf) (font-file "helvB10-ISO8859-2.pcf")) (define-font iso8859_2:14:c (font-class pcf) (font-file "courR10-ISO8859-2.pcf")) (define-font iso8859_2:14I:c (font-class pcf) (font-file "courO10-ISO8859-2.pcf")) (define-font iso8859_2:14B:c (font-class pcf) (font-file "courB10-ISO8859-2.pcf")) ;; iso 8859-3 (define-font iso8859_3:14:f (font-class pcf) (font-file "7x13-ISO8859-3.pcf")) (define-font iso8859_3:14B:f (font-class pcf) (font-file "7x13B-ISO8859-3.pcf")) (define-font iso8859_3:14:t (font-class pcf) (font-file "timR10-ISO8859-3.pcf")) (define-font iso8859_3:14I:t (font-class pcf) (font-file "timI10-ISO8859-3.pcf")) (define-font iso8859_3:14B:t (font-class pcf) (font-file "timB10-ISO8859-3.pcf")) (define-font iso8859_3:14:h (font-class pcf) (font-file "helvR10-ISO8859-3.pcf")) (define-font iso8859_3:14I:h (font-class pcf) (font-file "helvO10-ISO8859-3.pcf")) (define-font iso8859_3:14B:h (font-class pcf) (font-file "helvB10-ISO8859-3.pcf")) (define-font iso8859_3:14:c (font-class pcf) (font-file "courR10-ISO8859-3.pcf")) (define-font iso8859_3:14I:c (font-class pcf) (font-file "courO10-ISO8859-3.pcf")) (define-font iso8859_3:14B:c (font-class pcf) (font-file "courB10-ISO8859-3.pcf")) ;; iso 8859-4 (define-font iso8859_4:14:f (font-class pcf) (font-file "7x13-ISO8859-4.pcf")) (define-font iso8859_4:14B:f (font-class pcf) (font-file "7x13B-ISO8859-4.pcf")) (define-font iso8859_4:14:t (font-class pcf) (font-file "timR10-ISO8859-4.pcf")) (define-font iso8859_4:14I:t (font-class pcf) (font-file "timI10-ISO8859-4.pcf")) (define-font iso8859_4:14B:t (font-class pcf) (font-file "timB10-ISO8859-4.pcf")) (define-font iso8859_4:14:h (font-class pcf) (font-file "helvR10-ISO8859-4.pcf")) (define-font iso8859_4:14I:h (font-class pcf) (font-file "helvO10-ISO8859-4.pcf")) (define-font iso8859_4:14B:h (font-class pcf) (font-file "helvB10-ISO8859-4.pcf")) (define-font iso8859_4:14:c (font-class pcf) (font-file "courR10-ISO8859-4.pcf")) (define-font iso8859_4:14I:c (font-class pcf) (font-file "courO10-ISO8859-4.pcf")) (define-font iso8859_4:14B:c (font-class pcf) (font-file "courB10-ISO8859-4.pcf")) ;; iso 8859-5 ;; XXX (define-font iso8859_5:14:f (font-class try) (font-list "iso8859_5:14:f:koi8r" ;; "lt5-14-etl.pcf" "cyr14-etl.pcf" "etl14-cyrillic.pcf")) (define-font iso8859_5:14B:f (font-class try) (font-list "iso8859_5:14B:f:koi8r")) (define-font iso8859_5:14:t (font-class try) (font-list "iso8859_5:14:t:koi8r")) (define-font iso8859_5:14I:t (font-class try) (font-list "iso8859_5:14I:t:koi8r")) (define-font iso8859_5:14B:t (font-class try) (font-list "iso8859_5:14B:t:koi8r")) (define-font iso8859_5:14:h (font-class try) (font-list "iso8859_5:14:h:koi8r")) (define-font iso8859_5:14I:h (font-class try) (font-list "iso8859_5:14I:h:koi8r")) (define-font iso8859_5:14B:h (font-class try) (font-list "iso8859_5:14B:h:koi8r")) (define-font iso8859_5:14:c (font-class try) (font-list "iso8859_5:14:c:koi8r")) (define-font iso8859_5:14I:c (font-class try) (font-list "iso8859_5:14I:c:koi8r")) (define-font iso8859_5:14B:c (font-class try) (font-list "iso8859_5:14B:c:koi8r")) ;; iso 8859-7 (define-font iso8859_7:14:f (font-class pcf) (font-file "7x13-ISO8859-7.pcf")) ;; iso 8859-8 (define-font iso8859_8:14:f (font-class pcf) (font-file "7x13-ISO8859-8.pcf")) ;; iso 8859-9 (define-font iso8859_9:14:f (font-class pcf) (font-file "7x13-ISO8859-9.pcf")) ;; japanese (define-font jisx0201r:14:f (font-class pcf) (font-file "7x14-JISX0201.1976-0.pcf" "7x14rk.pcf" "8x16rk.pcf")) (define-font jisx0201k:14:f (font-class pcf) (font-file "7x14-JISX0201.1976-0.pcf" "7x14rk.pcf" "8x16rk.pcf")) (define-font jisx0208:14:f (font-class pcf) (font-file "k14.pcf")) (define-font jisx0212:14:f (font-class pcf) (font-file "jksp16.pcf" "jisksp16-1990.pcf" "min-1-16.pcf")) ;; hangle (define-font ksc5601:14:f (font-class pcf) (font-file "hanglg16.pcf" "hanglm16.pcf")) (define-font ksc5601:14:c (font-class pcf) (font-file "hanglg16.pcf")) (define-font ksc5601:14:h (font-class pcf) (font-file "hanglg16.pcf")) (define-font ksc5601:14:t (font-class pcf) (font-file "hanglm16.pcf")) ;; chinese (define-font gb2312:14:f (font-class pcf) (font-file "gb16fs.pcf")) (define-font gb2312:14:t (font-class pcf) (font-file "gb16st.pcf")) (define-font big5:14:f (font-class pcf) (font-file "taipei16.pcf")) (define-font cns11643_1:14:f (font-class pcf) (font-file "cns1-16.pcf" "cns-1-16.pcf")) (define-font cns11643_2:14:f (font-class pcf) (font-file "cns2-16.pcf" "cns-2-16.pcf")) (define-font cns11643_3:14:f (font-class pcf) (font-file "cns3-16.pcf" "cns-3-16.pcf")) (define-font cns11643_4:14:f (font-class pcf) (font-file "cns4-16.pcf" "cns-4-16.pcf")) (define-font cns11643_5:14:f (font-class pcf) (font-file "cns5-16.pcf" "cns-5-16.pcf")) (define-font cns11643_6:14:f (font-class pcf) (font-file "cns6-16.pcf" "cns-6-16.pcf")) (define-font cns11643_7:14:f (font-class pcf) (font-file "cns7-16.pcf" "cns-7-16.pcf")) ;; mule arabic (define-font mule_arab0:14:f (font-class pcf) (font-file "arab16-0-etl.pcf" "etl16-arabic0.pcf")) (define-font mule_arab1:14:f (font-class pcf) (font-file "arab16-1-etl.pcf" "etl16-arabic1.pcf")) (define-font mule_arab2:14:f (font-class pcf) (font-file "arab16-2-etl.pcf" "etl16-arabic2.pcf")) ;; mule viscii (define-font mule_viscii_u:14:f (font-class pcf) (font-file "visc16-etl.pcf" "etl16-viscii.pcf")) (define-font mule_viscii_l:14:f (font-class pcf) (font-file "visc16-etl.pcf" "etl16-viscii.pcf")) ;; mule ethiopic (define-font mule_ethio:14:f (font-class pcf) (font-file "ethio16f-uni.pcf" "ethiomx16f-uni.pcf")) ;; ------------------------------------------------------------------------- ;; 16-dot fonts ;; ------------------------------------------------------------------------- ;; iso 8859-1 (define-font iso8859_1:16:f (font-class pcf) (font-file "9x15-ISO8859-1.pcf" "9x15.pcf")) (define-font iso8859_1:16B:f (font-class pcf) (font-file "9x15B-ISO8859-1.pcf" "9x15B.pcf")) (define-font iso8859_1:16I:f (font-class pcf) (font-file "9x15-ISO8859-1.pcf" "9x15.pcf")) (define-font iso8859_1:16:t (font-class pcf) (font-file "timR12-ISO8859-1.pcf" "timR12.pcf")) (define-font iso8859_1:16I:t (font-class pcf) (font-file "timI12-ISO8859-1.pcf" "timI12.pcf")) (define-font iso8859_1:16B:t (font-class pcf) (font-file "timB12-ISO8859-1.pcf" "timB12.pcf")) (define-font iso8859_1:16:h (font-class pcf) (font-file "helvR12-ISO8859-1.pcf" "helvR12.pcf")) (define-font iso8859_1:16I:h (font-class pcf) (font-file "helvO12-ISO8859-1.pcf")) (define-font iso8859_1:16B:h (font-class pcf) (font-file "helvB12-ISO8859-1.pcf")) (define-font iso8859_1:16:c (font-class pcf) (font-file "courR12-ISO8859-1.pcf")) (define-font iso8859_1:16I:c (font-class pcf) (font-file "courO12-ISO8859-1.pcf")) (define-font iso8859_1:16B:c (font-class pcf) (font-file "courB12-ISO8859-1.pcf")) ;; iso 8859-2 (define-font iso8859_2:16:f (font-class pcf) (font-file "9x15-ISO8859-2.pcf")) (define-font iso8859_2:16B:f (font-class pcf) (font-file "9x15B-ISO8859-2.pcf")) (define-font iso8859_2:16I:f (font-class pcf) (font-file "9x15-ISO8859-2.pcf")) (define-font iso8859_2:16:t (font-class pcf) (font-file "timR12-ISO8859-2.pcf")) (define-font iso8859_2:16I:t (font-class pcf) (font-file "timI12-ISO8859-2.pcf")) (define-font iso8859_2:16B:t (font-class pcf) (font-file "timB12-ISO8859-2.pcf")) (define-font iso8859_2:16:h (font-class pcf) (font-file "helvR12-ISO8859-2.pcf")) (define-font iso8859_2:16I:h (font-class pcf) (font-file "helvO12-ISO8859-2.pcf")) (define-font iso8859_2:16B:h (font-class pcf) (font-file "helvB12-ISO8859-2.pcf")) (define-font iso8859_2:16:c (font-class pcf) (font-file "courR12-ISO8859-2.pcf")) (define-font iso8859_2:16I:c (font-class pcf) (font-file "courO12-ISO8859-2.pcf")) (define-font iso8859_2:16B:c (font-class pcf) (font-file "courB12-ISO8859-2.pcf")) ;; iso 8859-3 (define-font iso8859_3:16:f (font-class pcf) (font-file "9x15-ISO8859-3.pcf")) (define-font iso8859_3:16B:f (font-class pcf) (font-file "9x15B-ISO8859-3.pcf")) (define-font iso8859_3:16I:f (font-class pcf) (font-file "9x15-ISO8859-3.pcf")) (define-font iso8859_3:16:t (font-class pcf) (font-file "timR12-ISO8859-3.pcf")) (define-font iso8859_3:16I:t (font-class pcf) (font-file "timI12-ISO8859-3.pcf")) (define-font iso8859_3:16B:t (font-class pcf) (font-file "timB12-ISO8859-3.pcf")) (define-font iso8859_3:16:h (font-class pcf) (font-file "helvR12-ISO8859-3.pcf")) (define-font iso8859_3:16I:h (font-class pcf) (font-file "helvO12-ISO8859-3.pcf")) (define-font iso8859_3:16B:h (font-class pcf) (font-file "helvB12-ISO8859-3.pcf")) (define-font iso8859_3:16:c (font-class pcf) (font-file "courR12-ISO8859-3.pcf")) (define-font iso8859_3:16I:c (font-class pcf) (font-file "courO12-ISO8859-3.pcf")) (define-font iso8859_3:16B:c (font-class pcf) (font-file "courB12-ISO8859-3.pcf")) ;; iso 8859-4 (define-font iso8859_4:16:f (font-class pcf) (font-file "9x15-ISO8859-4.pcf")) (define-font iso8859_4:16B:f (font-class pcf) (font-file "9x15B-ISO8859-4.pcf")) (define-font iso8859_4:16I:f (font-class pcf) (font-file "9x15-ISO8859-4.pcf")) (define-font iso8859_4:16:t (font-class pcf) (font-file "timR12-ISO8859-4.pcf")) (define-font iso8859_4:16I:t (font-class pcf) (font-file "timI12-ISO8859-4.pcf")) (define-font iso8859_4:16B:t (font-class pcf) (font-file "timB12-ISO8859-4.pcf")) (define-font iso8859_4:16:h (font-class pcf) (font-file "helvR12-ISO8859-4.pcf")) (define-font iso8859_4:16I:h (font-class pcf) (font-file "helvO12-ISO8859-4.pcf")) (define-font iso8859_4:16B:h (font-class pcf) (font-file "helvB12-ISO8859-4.pcf")) (define-font iso8859_4:16:c (font-class pcf) (font-file "courR12-ISO8859-4.pcf")) (define-font iso8859_4:16I:c (font-class pcf) (font-file "courO12-ISO8859-4.pcf")) (define-font iso8859_4:16B:c (font-class pcf) (font-file "courB12-ISO8859-4.pcf")) ;; iso 8859-5 ;; XXX (define-font iso8859_5:16:f (font-class try) (font-list "iso8859_5:16:f:koi8r" ;; "lt5-16-etl.pcf" "cyr16-etl.pcf" "etl16-cyrillic.pcf")) (define-font iso8859_5:16B:f (font-class try) (font-list "iso8859_5:16B:f:koi8r")) (define-font iso8859_5:16:t (font-class try) (font-list "iso8859_5:16:t:koi8r")) (define-font iso8859_5:16I:t (font-class try) (font-list "iso8859_5:16I:t:koi8r")) (define-font iso8859_5:16B:t (font-class try) (font-list "iso8859_5:16B:t:koi8r")) (define-font iso8859_5:16:h (font-class try) (font-list "iso8859_5:16:h:koi8r" )) (define-font iso8859_5:16I:h (font-class try) (font-list "iso8859_5:16I:h:koi8r")) (define-font iso8859_5:16B:h (font-class try) (font-list "iso8859_5:16B:h:koi8r")) (define-font iso8859_5:16:c (font-class try) (font-list "iso8859_5:16:c:koi8r")) (define-font iso8859_5:16I:c (font-class try) (font-list "iso8859_5:16I:c:koi8r")) (define-font iso8859_5:16B:c (font-class try) (font-list "iso8859_5:16B:c:koi8r")) ;; iso 8859-7 (define-font iso8859_7:16:f (font-class pcf) (font-file "9x15-ISO8859-7.pcf")) ;; iso 8859-8 (define-font iso8859_8:16:f (font-class pcf) (font-file "9x15-ISO8859-8.pcf")) ;; iso 8859-9 (define-font iso8859_9:16:f (font-class pcf) (font-file "9x15-ISO8859-9.pcf")) ;; japanese (define-font jisx0201r:16:f (font-class pcf) (font-file "8x16rk.pcf")) (define-font jisx0201k:16:f (font-class pcf) (font-file "8x16rk.pcf")) (define-font jisx0208:16:f (font-class pcf) (font-file "j90-16.pcf" "jiskan16.pcf")) (define-font jisx0212:16:f (font-class pcf) (font-file "jksp16.pcf" "jisksp16.pcf" "jisksp16-1990.pcf" "min-1-16.pcf")) ;; hangle (define-font ksc5601:16:f (font-class pcf) (font-file "hanglm16.pcf")) (define-font ksc5601:16B:f (font-class pcf) (font-file "hanglg16.pcf")) (define-font ksc5601:16:t (font-class pcf) (font-file "hanglm16.pcf")) (define-font ksc5601:16B:t (font-class pcf) (font-file "hanglg16.pcf")) (define-font ksc5601:16:h (font-class pcf) (font-file "hanglg16.pcf")) (define-font ksc5601:16:c (font-class pcf) (font-file "hanglg16.pcf")) ;; chinese (define-font gb2312:16:f (font-class pcf) (font-file "gb16fs.pcf")) (define-font gb2312:16B:f (font-class pcf) (font-file "gb16st.pcf")) (define-font gb2312:16:t (font-class pcf) (font-file "gb16fs.pcf")) (define-font gb2312:16B:t (font-class pcf) (font-file "gb16st.pcf")) (define-font big5:16:f (font-class pcf) (font-file "taipei16.pcf")) (define-font cns11643_1:16:f (font-class pcf) (font-file "cns1-16.pcf" "cns-1-16.pcf")) (define-font cns11643_2:16:f (font-class pcf) (font-file "cns2-16.pcf" "cns-2-16.pcf")) (define-font cns11643_3:16:f (font-class pcf) (font-file "cns3-16.pcf" "cns-3-16.pcf")) (define-font cns11643_4:16:f (font-class pcf) (font-file "cns4-16.pcf" "cns-4-16.pcf")) (define-font cns11643_5:16:f (font-class pcf) (font-file "cns5-16.pcf" "cns-5-16.pcf")) (define-font cns11643_6:16:f (font-class pcf) (font-file "cns6-16.pcf" "cns-6-16.pcf")) (define-font cns11643_7:16:f (font-class pcf) (font-file "cns7-16.pcf" "cns-7-16.pcf")) ;; mule arabic (define-font mule_arab0:16:f (font-class pcf) (font-file "arab16-0-etl.pcf" "etl16-arabic0.pcf")) (define-font mule_arab1:16:f (font-class pcf) (font-file "arab16-1-etl.pcf" "etl16-arabic1.pcf")) (define-font mule_arab2:16:f (font-class pcf) (font-file "arab16-2-etl.pcf" "etl16-arabic2.pcf")) ;; mule viscii (define-font mule_viscii_l:16:f (font-class pcf) (font-file "visc16-etl.pcf" "etl16-viscii.pcf")) (define-font mule_viscii_u:16:f (font-class pcf) (font-file "visc16-etl.pcf" "etl16-viscii.pcf")) ;; mule ethiopic (define-font mule_ethio:16:f (font-class pcf) (font-file "ethio16f-uni.pcf" "ethiomx16f-uni.pcf")) ;; ------------------------------------------------------------------------- ;; 18-dot fonts ;; ------------------------------------------------------------------------- ;; iso 8859-1 (define-font iso8859_1:18:f (font-class pcf) (font-file "10x20-ISO8859-1.pcf" "10x20.pcf")) (define-font iso8859_1:18:t (font-class pcf) (font-file "timR14-ISO8859-1.pcf" "timR14.pcf")) (define-font iso8859_1:18I:t (font-class pcf) (font-file "timI14-ISO8859-1.pcf" "timI14.pcf")) (define-font iso8859_1:18B:t (font-class pcf) (font-file "timB14-ISO8859-1.pcf" "timB14.pcf")) (define-font iso8859_1:18:h (font-class pcf) (font-file "helvR14-ISO8859-1.pcf" "helvR14.pcf")) (define-font iso8859_1:18I:h (font-class pcf) (font-file "helvO14-ISO8859-1.pcf" "helvO14.pcf")) (define-font iso8859_1:18B:h (font-class pcf) (font-file "helvB14-ISO8859-1.pcf" "helvB14.pcf")) (define-font iso8859_1:18:c (font-class pcf) (font-file "courR14-ISO8859-1.pcf" "courR14.pcf")) (define-font iso8859_1:18I:c (font-class pcf) (font-file "courO14-ISO8859-1.pcf" "courO14.pcf")) (define-font iso8859_1:18B:c (font-class pcf) (font-file "courB14-ISO8859-1.pcf" "courB14.pcf")) ;; iso 8859-2 (define-font iso8859_2:18:f (font-class pcf) (font-file "10x20-ISO8859-2.pcf")) (define-font iso8859_2:18:t (font-class pcf) (font-file "timR14-ISO8859-2.pcf")) (define-font iso8859_2:18I:t (font-class pcf) (font-file "timI14-ISO8859-2.pcf")) (define-font iso8859_2:18B:t (font-class pcf) (font-file "timB14-ISO8859-2.pcf")) (define-font iso8859_2:18:h (font-class pcf) (font-file "helvR14-ISO8859-2.pcf")) (define-font iso8859_2:18I:h (font-class pcf) (font-file "helvO14-ISO8859-2.pcf")) (define-font iso8859_2:18B:h (font-class pcf) (font-file "helvB14-ISO8859-2.pcf")) (define-font iso8859_2:18:c (font-class pcf) (font-file "courR14-ISO8859-2.pcf")) (define-font iso8859_2:18I:c (font-class pcf) (font-file "courO14-ISO8859-2.pcf")) (define-font iso8859_2:18B:c (font-class pcf) (font-file "courB14-ISO8859-2.pcf")) ;; iso 8859-3 (define-font iso8859_3:18:f (font-class pcf) (font-file "10x20-ISO8859-3.pcf")) (define-font iso8859_3:18:t (font-class pcf) (font-file "timR14-ISO8859-3.pcf")) (define-font iso8859_3:18I:t (font-class pcf) (font-file "timI14-ISO8859-3.pcf")) (define-font iso8859_3:18B:t (font-class pcf) (font-file "timB14-ISO8859-3.pcf")) (define-font iso8859_3:18:h (font-class pcf) (font-file "helvR14-ISO8859-3.pcf")) (define-font iso8859_3:18I:h (font-class pcf) (font-file "helvO14-ISO8859-3.pcf")) (define-font iso8859_3:18B:h (font-class pcf) (font-file "helvB14-ISO8859-3.pcf")) (define-font iso8859_3:18:c (font-class pcf) (font-file "courR14-ISO8859-3.pcf")) (define-font iso8859_3:18I:c (font-class pcf) (font-file "courO14-ISO8859-3.pcf")) (define-font iso8859_3:18B:c (font-class pcf) (font-file "courB14-ISO8859-3.pcf")) ;; iso 8859-4 (define-font iso8859_4:18:f (font-class pcf) (font-file "10x20-ISO8859-4.pcf")) (define-font iso8859_4:18:t (font-class pcf) (font-file "timR14-ISO8859-4.pcf")) (define-font iso8859_4:18I:t (font-class pcf) (font-file "timI14-ISO8859-4.pcf")) (define-font iso8859_4:18B:t (font-class pcf) (font-file "timB14-ISO8859-4.pcf")) (define-font iso8859_4:18:h (font-class pcf) (font-file "helvR14-ISO8859-4.pcf")) (define-font iso8859_4:18I:h (font-class pcf) (font-file "helvO14-ISO8859-4.pcf")) (define-font iso8859_4:18B:h (font-class pcf) (font-file "helvB14-ISO8859-4.pcf")) (define-font iso8859_4:18:c (font-class pcf) (font-file "courR14-ISO8859-4.pcf")) (define-font iso8859_4:18I:c (font-class pcf) (font-file "courO14-ISO8859-4.pcf")) (define-font iso8859_4:18B:c (font-class pcf) (font-file "courB14-ISO8859-4.pcf")) ;; iso 8859-5 ;; XXX (define-font iso8859_5:18:f (font-class try) (font-list "iso8859_5:18:f:koi8r" ;; "lt5-16-etl.pcf" "cyr16-etl.pcf" "etl16-cyrillic.pcf")) (define-font iso8859_5:18B:f (font-class try) (font-list "iso8859_5:18B:f:koi8r")) (define-font iso8859_5:18:t (font-class try) (font-list "iso8859_5:18:t:koi8r")) (define-font iso8859_5:18I:t (font-class try) (font-list "iso8859_5:18I:t:koi8r")) (define-font iso8859_5:18B:t (font-class try) (font-list "iso8859_5:18B:t:koi8r")) (define-font iso8859_5:18:h (font-class try) (font-list "iso8859_5:18:h:koi8r")) (define-font iso8859_5:18I:h (font-class try) (font-list "iso8859_5:18I:h:koi8r")) (define-font iso8859_5:18B:h (font-class try) (font-list "iso8859_5:18B:h:koi8r")) (define-font iso8859_5:18:c (font-class try) (font-list "iso8859_5:18:c:koi8r")) (define-font iso8859_5:18I:c (font-class try) (font-list "iso8859_5:18I:c:koi8r")) (define-font iso8859_5:18B:c (font-class try) (font-list "iso8859_5:18B:c:koi8r")) ;; iso 8859-7 (define-font iso8859_7:18:f (font-class pcf) (font-file "10x20-ISO8859-7.pcf")) ;; iso 8859-8 (define-font iso8859_8:18:f (font-class pcf) (font-file "10x20-ISO8859-9.pcf")) ;; iso 8859-9 (define-font iso8859_9:18:f (font-class pcf) (font-file "10x20-ISO8859-9.pcf")) ;; japanese (define-font jisx0201r:18:f (font-class pcf) (font-file "8x16rk.pcf")) (define-font jisx0201k:18:f (font-class pcf) (font-file "8x16rk.pcf")) (define-font jisx0208:18:f (font-class pcf) (font-file "j83-18.pcf" "18x18ja.pcf" "jiskan16.pcf")) (define-font jisx0208:18B:f (font-class pcf) (font-file "j83-18B.pcf" "18x18ja.pcf" "jiskan16.pcf")) (define-font jisx0208:18I:f (font-class pcf) (font-file "j83-18i.pcf" "18x18ja.pcf" "jiskan16.pcf")) (define-font jisx0212:18:f (font-class pcf) (font-file "jksp16.pcf" "jisksp16.pcf" "jisksp16-1990.pcf" "min-1-16.pcf")) ;; hangle (define-font ksc5601:18:f (font-class pcf) (font-file "18x18ko.pcf" "hanglm16.pcf")) ;; chinese (define-font gb2312:18:f (font-class pcf) (font-file "gb16fs.pcf")) (define-font big5:18:f (font-class pcf) (font-file "taipei16.pcf")) (define-font cns11643_1:18:f (font-class pcf) (font-file "cns1-16.pcf" "cns-1-16.pcf")) (define-font cns11643_2:18:f (font-class pcf) (font-file "cns2-16.pcf" "cns-2-16.pcf")) (define-font cns11643_3:18:f (font-class pcf) (font-file "cns3-16.pcf" "cns-3-16.pcf")) (define-font cns11643_4:18:f (font-class pcf) (font-file "cns4-16.pcf" "cns-4-16.pcf")) (define-font cns11643_5:18:f (font-class pcf) (font-file "cns5-16.pcf" "cns-5-16.pcf")) (define-font cns11643_6:18:f (font-class pcf) (font-file "cns6-16.pcf" "cns-6-16.pcf")) (define-font cns11643_7:18:f (font-class pcf) (font-file "cns7-16.pcf" "cns-7-16.pcf")) ;; mule arabic (define-font mule_arab0:18:f (font-class pcf) (font-file "arab16-0-etl.pcf" "etl16-arabic0.pcf")) (define-font mule_arab1:18:f (font-class pcf) (font-file "arab16-1-etl.pcf" "etl16-arabic1.pcf")) (define-font mule_arab2:18:f (font-class pcf) (font-file "arab16-2-etl.pcf" "etl16-arabic2.pcf")) ;; mule viscii (define-font mule_viscii_l:18:f (font-class pcf) (font-file "visc18-etl.pcf" "visc16-etl.pcf" "etl16-viscii.pcf")) (define-font mule_viscii_l:18I:f (font-class pcf) (font-file "visc18i-etl.pcf")) (define-font mule_viscii_l:18B:f (font-class pcf) (font-file "visc18b-etl.pcf")) (define-font mule_viscii_u:18:f (font-class pcf) (font-file "visc18-etl.pcf" "visc16-etl.pcf" "etl16-viscii.pcf")) (define-font mule_viscii_u:18I:f (font-class pcf) (font-file "visc18i-etl.pcf")) (define-font mule_viscii_u:18B:f (font-class pcf) (font-file "visc18b-etl.pcf")) ;; mule ethiopic (define-font mule_ethio:18:f (font-class pcf) (font-file "ethio16f-uni.pcf" "ethiomx16f-uni.pcf")) ;; ------------------------------------------------------------------------- ;; 24-dot fonts ;; ------------------------------------------------------------------------- ;; iso 8859-1 (define-font iso8859_1:24:f (font-class pcf) (font-file "12x24.pcf" "12x24.pcf")) (define-font iso8859_1:24B:f (font-class pcf) (font-file "lt1-24b-etl.pcf")) (define-font iso8859_1:24B:f (font-class pcf) (font-file "lt1-24i-etl.pcf")) (define-font iso8859_1:24:t (font-class pcf) (font-file "timR18.pcf")) (define-font iso8859_1:24I:t (font-class pcf) (font-file "timI18.pcf")) (define-font iso8859_1:24B:t (font-class pcf) (font-file "timB18.pcf")) (define-font iso8859_1:24:h (font-class pcf) (font-file "helvR18.pcf")) (define-font iso8859_1:24I:h (font-class pcf) (font-file "helvO18.pcf")) (define-font iso8859_1:24B:h (font-class pcf) (font-file "helvB18.pcf")) (define-font iso8859_1:24:c (font-class pcf) (font-file "courR18.pcf")) (define-font iso8859_1:24I:c (font-class pcf) (font-file "courO18.pcf")) (define-font iso8859_1:24B:c (font-class pcf) (font-file "courB18.pcf")) ;; iso 8859-2 (define-font iso8859_2:24:f pcf:iso8859_2 (font-file "lt2-24-etl.pcf" "etl24-latin2.pcf" "12x24.pcf")) (define-font iso8859_2:24B:f pcf:iso8859_2 (font-file "lt2-24b-etl.pcf")) (define-font iso8859_2:24:t pcf:iso8859_2 (font-file "timR18.pcf")) (define-font iso8859_2:24I:t pcf:iso8859_2 (font-file "timI18.pcf")) (define-font iso8859_2:24B:t pcf:iso8859_2 (font-file "timB18.pcf")) (define-font iso8859_2:24:h pcf:iso8859_2 (font-file "helvR18.pcf")) (define-font iso8859_2:24I:h pcf:iso8859_2 (font-file "helvO18.pcf")) (define-font iso8859_2:24B:h pcf:iso8859_2 (font-file "helvB18.pcf")) (define-font iso8859_2:24:c pcf:iso8859_2 (font-file "courR18.pcf")) (define-font iso8859_2:24I:c pcf:iso8859_2 (font-file "courO18.pcf")) (define-font iso8859_2:24B:c pcf:iso8859_2 (font-file "courB18.pcf")) ;; iso 8859-3 (define-font iso8859_3:24:f (font-class pcf) (font-file "lt3-24-etl.pcf" "etl24-latin3.pcf")) ;; iso 8859-4 (define-font iso8859_4:24:f (font-class pcf) (font-file "lt4-24-etl.pcf" "etl24-latin4.pcf")) ;; iso 8859-5 (define-font iso8859_5:24:f (font-class try) (font-list "iso8859_5:24:f:koi8r" ;; "lt5-24-etl.pcf" "cyr24-etl.pcf" "etl24-cyrillic.pcf")) (define-font iso8859_5:24B:f (font-class try) (font-list "iso8859_5:24B:f:koi8r")) (define-font iso8859_5:24:t (font-class try) (font-list "iso8859_5:24:t:koi8r")) (define-font iso8859_5:24I:t (font-class try) (font-list "iso8859_5:24I:t:koi8r")) (define-font iso8859_5:24B:t (font-class try) (font-list "iso8859_5:24B:t:koi8r")) (define-font iso8859_5:24:h (font-class try) (font-list "iso8859_5:24:h:koi8r")) (define-font iso8859_5:24I:h (font-class try) (font-list "iso8859_5:24I:h:koi8r")) (define-font iso8859_5:24B:h (font-class try) (font-list "iso8859_5:24B:h:koi8r")) (define-font iso8859_5:24:c (font-class try) (font-list "iso8859_5:24:c:koi8r")) (define-font iso8859_5:24I:c (font-class try) (font-list "iso8859_5:24I:c:koi8r")) (define-font iso8859_5:24B:c (font-class try) (font-list "iso8859_5:24B:c:koi8r")) ;; iso 8859-7 (define-font iso8859_7:24:f (font-class pcf) (font-file "grk24-etl.pcf" "etl24-greek.pcf")) ;; iso 8859-8 (define-font iso8859_8:24:f (font-class pcf) (font-file "heb24-etl.pcf" "etl24-hebrew.pcf")) ;; iso 8859-9 (define-font iso8859_9:24:f (font-class pcf) (font-file "lt5-24-etl.pcf" "etl24-latin5.pcf")) ;; japanese (define-font jisx0201r:24:f (font-class pcf) (font-file "12x24rk.pcf")) (define-font jisx0201k:24:f (font-class pcf) (font-file "12x24rk.pcf")) (define-font jisx0208:24:f (font-class pcf) (font-file "jiskan24.pcf")) (define-font jisx0212:24:f (font-class pcf) (pixel-size 24) (font-file "jksp24.pcf" "jksp40.pcf" "jisksp40.pcf" "min-1-24.pcf")) ;; hangle (define-font ksc5601:24:f (font-class pcf) (font-file "hanglm24.pcf")) ;; chinese (define-font gb2312:24:f (font-class pcf) (font-file "gb24st.pcf")) (define-font big5:24:f (font-class pcf) (font-file "taipei24.pcf")) (define-font cns11643_1:24:f (font-class pcf) (font-file "cns1-24.pcf" "cns-1-24.pcf")) (define-font cns11643_2:24:f (font-class pcf) (font-file "cns2-24.pcf" "cns-2-24.pcf")) (define-font cns11643_3:24:f (font-class pcf) (font-file "cns3-24.pcf" "cns-3-24.pcf")) (define-font cns11643_4:24:f (font-class pcf) (font-file "cns4-24.pcf" "cns-4-24.pcf")) (define-font cns11643_5:24:f (font-class pcf) (font-file "cns5-24.pcf" "cns-5-24.pcf")) (define-font cns11643_6:24:f (font-class pcf) (font-file "cns6-24.pcf" "cns-6-24.pcf")) (define-font cns11643_7:24:f (font-class pcf) (font-file "cns7-24.pcf" "cns-7-24.pcf")) ;; mule arabic (define-font mule_arab0:24:f (font-class pcf) (font-file "arab24-0-etl.pcf" "etl24-arabic0.pcf")) (define-font mule_arab1:24:f (font-class pcf) (font-file "arab24-1-etl.pcf" "etl24-arabic1.pcf")) (define-font mule_arab2:24:f (font-class pcf) (font-file "arab24-2-etl.pcf" "etl24-arabic2.pcf")) ;; mule viscii (define-font mule_viscii_u:24:f (font-class pcf) (font-file "visc24-etl.pcf" "etl24-viscii.pcf")) (define-font mule_viscii_l:24:f (font-class pcf) (font-file "visc24-etl.pcf" "etl24-viscii.pcf")) ;; mule ethiopic (define-font mule_ethio:24:f (font-class pcf) (font-file "ethio24f-uni.pcf" "ethiomx24f-uni.pcf")) ;; ------------------------------------------------------------------------- ;; scalable fonts ;; ------------------------------------------------------------------------- ;; iso 8859-1 (define-font iso8859_1:n:f (font-class try) (font-list "iso8859_1:n:f_type1" "iso8859_1:n:f_pcf")) (define-font iso8859_1:nB:f (font-class try) (font-list "iso8859_1:nB:f_type1" "iso8859_1:nB:f_pcf")) (define-font iso8859_1:nI:f (font-class try) (font-list "iso8859_1:nI:t_type1" "iso8859_1:nI:t_pcf")) (define-font iso8859_1:n:t (font-class try) (font-list "iso8859_1:n:t_type1" "iso8859_1:n:t_pcf")) (define-font iso8859_1:nI:t (font-class try) (font-list "iso8859_1:nI:t_type1" "iso8859_1:nI:t_pcf")) (define-font iso8859_1:nB:t (font-class try) (font-list "iso8859_1:nB:t_type1" "iso8859_1:nB:t_pcf")) (define-font iso8859_1:n:h (font-class try) (font-list "iso8859_1:n:h_type1" "iso8859_1:n:h_pcf")) (define-font iso8859_1:nI:h (font-class try) (font-list "iso8859_1:nI:h_type1" "iso8859_1:nI:h_pcf")) (define-font iso8859_1:nB:h (font-class try) (font-list "iso8859_1:nI:h_type1" "iso8859_1:nI:h_pcf")) (define-font iso8859_1:n:c (font-class try) (font-list "iso8859_1:n:c_type1" "iso8859_1:n:c_pcf")) (define-font iso8859_1:nI:c (font-class try) (font-list "iso8859_1:nI:c_type1" "iso8859_1:nI:c_pcf")) (define-font iso8859_1:nB:c (font-class try) (font-list "iso8859_1:nB:c_type1" "iso8859_1:nB:c_pcf")) (define-font iso8859_1:n:f_pcf (font-class pcf) (font-file "lt1-24-etl.pcf" "etl24-latin1.pcf" "12x24.pcf")) (define-font iso8859_1:nB:f_pcf (font-class pcf) (font-file "lt1-24b-etl.pcf")) (define-font iso8859_1:nI:f_pcf (font-class pcf) (font-file "lt1-24i-etl.pcf")) (define-font iso8859_1:n:t_pcf (font-class pcf) (font-file "timR24.pcf")) (define-font iso8859_1:nI:t_pcf (font-class pcf) (font-file "timI24.pcf")) (define-font iso8859_1:nB:t_pcf (font-class pcf) (font-file "timB24.pcf")) (define-font iso8859_1:n:h_pcf (font-class pcf) (font-file "helvR24.pcf")) (define-font iso8859_1:nI:h_pcf (font-class pcf) (font-file "helvO24.pcf")) (define-font iso8859_1:nB:h_pcf (font-class pcf) (font-file "helvB24.pcf")) (define-font iso8859_1:n:c_pcf (font-class pcf) (font-file "courR24.pcf")) (define-font iso8859_1:nI:c_pcf (font-class pcf) (font-file "courO24.pcf")) (define-font iso8859_1:nB:c_pcf (font-class pcf) (font-file "courB24.pcf")) (define-font iso8859_1:nI:t_pcf (font-class pcf) (font-file "timI24.pcf")) (define-font iso8859_1:n:f_type1 (font-class type1) (font-file "Courier" "Courier.pfb" "n022003l.pfb")) (define-font iso8859_1:nB:f_type1 (font-class type1) (font-file "Courier-Bold" "Courier-Bold.pfb" "n022004l.pfb")) (define-font iso8859_1:nI:f_type1 (font-class type1) (font-file "Courier-Oblique" "Courier-Oblique.pfb" "n022023l.pfb")) (define-font iso8859_1:n:t_type1 (font-class type1) (font-file "Times-Roman" "Times-Roman.pfb" "n021003l.pfb")) (define-font iso8859_1:nI:t_type1 (font-class type1) (font-file "Times-Italic" "Times-Italic.pfb" "n021023l.pfb")) (define-font iso8859_1:nB:t_type1 (font-class type1) (font-file "Times-Bold" "Times-Bold.pfb" "n021004l.pfb")) (define-font iso8859_1:n:h_type1 (font-class type1) (font-file "Helvetica" "Helvetica.pfb" "n019003l.pfb")) (define-font iso8859_1:nI:h_type1 (font-class type1) (font-file "Helvetica-Oblique" "Helvetica-Oblique.pfb" "n019023l.pfb")) (define-font iso8859_1:nB:h_type1 (font-class type1) (font-file "Helvetica-Bold" "Helvetica-Bold.pfb" "n019004l.pfb")) (define-font iso8859_1:n:c_type1 (font-class type1) (font-file "Courier" "Courier.pfb" "n022003l.pfb")) (define-font iso8859_1:nI:c_type1 (font-class type1) (font-file "Courier-Oblique" "Courier-Oblique.pfb" "n022023l.pfb")) (define-font iso8859_1:nB:c_type1 (font-class type1) (font-file "Courier-Bold" "Courier-Bold.pfb" "n022004l.pfb")) ;; iso 8859-2 (define-font iso8859_2:n:f pcf:iso8859_2 (font-file "lt2-24-etl.pcf" "etl24-latin2.pcf" "12x24.pcf")) (define-font iso8859_2:n:t pcf:iso8859_2 (font-file "timR24.pcf")) (define-font iso8859_2:nI:t pcf:iso8859_2 (font-file "timI24.pcf")) (define-font iso8859_2:nB:t pcf:iso8859_2 (font-file "timB24.pcf" )) (define-font iso8859_2:n:h pcf:iso8859_2 (font-file "helvR24.pcf")) (define-font iso8859_2:nI:h pcf:iso8859_2 (font-file "helvO24.pcf")) (define-font iso8859_2:nB:h pcf:iso8859_2 (font-file "helvB24.pcf")) (define-font iso8859_2:n:c pcf:iso8859_2 (font-file "courR24.pcf")) (define-font iso8859_2:nI:c pcf:iso8859_2 (font-file "courO24.pcf")) (define-font iso8859_2:nB:c pcf:iso8859_2 (font-file "courB24.pcf")) ;; iso 8859-3 (define-font iso8859_3:n:f (font-class pcf) (font-file "lt3-24-etl.pcf" "etl24-latin3.pcf")) ;; iso 8859-4 (define-font iso8859_4:n:f (font-class pcf) (font-file "lt4-24-etl.pcf" "etl24-latin4.pcf")) ;; iso 8859-5 (define-font iso8859_5:n:f (font-class try) (font-list "iso8859_5:24:f:koi8r" ;; "lt5-24-etl.pcf" "cyr24-etl.pcf" "etl24-cyrillic.pcf")) (define-font iso8859_5:nB:f (font-class try) (font-list "iso8859_5:24B:f:koi8r")) (define-font iso8859_5:n:t (font-class try) (font-list "iso8859_5:24:t:koi8r")) (define-font iso8859_5:nI:t (font-class try) (font-list "iso8859_5:24I:t:koi8r")) (define-font iso8859_5:nB:t (font-class try) (font-list "iso8859_5:24B:t:koi8r")) (define-font iso8859_5:n:h (font-class try) (font-list "iso8859_5:24:h:koi8r")) (define-font iso8859_5:nI:h (font-class try) (font-list "iso8859_5:24I:h:koi8r")) (define-font iso8859_5:nB:h (font-class try) (font-list "iso8859_5:24B:h:koi8r")) (define-font iso8859_5:n:c (font-class try) (font-list "iso8859_5:24:c:koi8r")) (define-font iso8859_5:nI:c (font-class try) (font-list "iso8859_5:24I:c:koi8r")) (define-font iso8859_5:nB:c (font-class try) (font-list "iso8859_5:24B:c:koi8r")) ;; iso 8859-7 (define-font iso8859_7:n:f (font-class pcf) (font-file "grk24-etl.pcf" "etl24-greek.pcf")) ;; iso 8859-8 (define-font iso8859_8:n:f (font-class pcf) (font-file "heb24-etl.pcf" "etl24-hebrew.pcf")) ;; iso 8859-9 (define-font iso8859_9:n:f (font-class pcf) (font-file "lt5-24-etl.pcf" "etl24-latin5.pcf")) ;; japanese (define-font jisx0201r:n:f (font-class pcf) (font-file "7x14-JISX0201.1976-0.pcf")) (define-font jisx0201k:n:f (font-class pcf) (font-file "7x14-JISX0201.1976-0.pcf")) (define-font jisx0208:n:f (font-class pcf) (font-file "j83-48.pcf" "j83-32.pcf" "jiskan24.pcf" "j83-18.pcf" "jiskan16.pcf")) (define-font jisx0208:n:t (font-class try) (font-list "jisx0208:n:t:ttf" "jisx0208:n:f")) (define-font jisx0208:nI:t (font-class try) (font-list "jisx0208:nI:t:ttf" "jisx0208:n:f")) (define-font jisx0208:nB:t (font-class try) (font-list "jisx0208:nB:t:ttf" "jisx0208:n:f")) (define-font jisx0208:n:h (font-class try) (font-list "jisx0208:n:h:ttf" "jisx0208:n:f")) (define-font jisx0208:nI:h (font-class try) (font-list "jisx0208:nI:h:ttf" "jisx0208:n:f")) (define-font jisx0208:nB:h (font-class try) (font-list "jisx0208:nB:h:ttf" "jisx0208:n:f")) (define-font jisx0208:n:c (font-class try) (font-list "jisx0208:n:c:ttf" "jisx0208:n:f")) (define-font jisx0208:nI:c (font-class try) (font-list "jisx0208:nI:c:ttf" "jisx0208:n:f")) (define-font jisx0208:nB:c (font-class try) (font-list "jisx0208:nB:c:ttf" "jisx0208:n:f")) (define-font jisx0212:n:f (font-class pcf) (font-file "jksp40.pcf" "jisksp40.pcf" "min-1-24.pcf" "jisksp16.pcf" "min-1-16.pcf")) (define-font jisx0212:n:t (font-class try) (font-list "jisx0212:n:t:ttf" "jisx0212:n:f")) (define-font jisx0212:n:h (font-class try) (font-list "jisx0212:n:h:ttf" "jisx0212:n:f")) (define-font jisx0212:n:c (font-class try) (font-list "jisx0212:n:c:ttf" "jisx0212:n:f")) ;; hangle (define-font ksc5601:n:f (font-class pcf) (font-file "hanglm24.pcf" "hanglm16.pcf" "hanglg16.pcf")) (define-font ksc5601:n:t (font-class try) (font-list "ksc5601:n:t:ttf" "ksc5601:n:f")) (define-font ksc5601:n:h (font-class try) (font-list "ksc5601:n:h:ttf" "ksc5601:n:f")) (define-font ksc5601:n:c (font-class try) (font-list "ksc5601:n:c:ttf" "ksc5601:n:f")) ;; chinese (define-font gb2312:n:t (font-class try) (font-list "gb2312:n:t:ttf" "gb2312:n:f")) (define-font gb2312:n:h (font-class try) (font-list "gb2312:n:h:ttf" "gb2312:n:f")) (define-font gb2312:n:c (font-class try) (font-list "gb2312:n:c:ttf" "gb2312:n:f")) (define-font gb2312:n:f (font-class pcf) (font-file "cc48s.pcf" "cc40s.pcf" "gb24st.pcf" "gb16st.pcf" "gb16fs.pcf")) (define-font big5:n:f (font-class pcf) (font-file "taipei24.pcf")) (define-font cns11643_1:n:f (font-class pcf) (font-file "cns1-40.pcf" "cns-1-40.pcf" "cns1-24.pcf" "cns-1-24.pcf" "cns1-16.pcf" "cns-1-16.pcf")) (define-font cns11643_2:n:f (font-class pcf) (font-file "cns2-40.pcf" "cns-2-40.pcf" "cns2-24.pcf" "cns-2-24.pcf" "cns2-16.pcf" "cns-2-16.pcf")) (define-font cns11643_3:n:f (font-class pcf) (font-file "cns3-40.pcf" "cns-3-40.pcf" "cns3-24.pcf" "cns-3-24.pcf" "cns3-16.pcf" "cns-3-16.pcf")) (define-font cns11643_4:n:f (font-class pcf) (font-file "cns4-40.pcf" "cns-4-40.pcf" "cns4-24.pcf" "cns-4-24.pcf" "cns4-16.pcf" "cns-4-16.pcf")) (define-font cns11643_5:n:f (font-class pcf) (font-file "cns5-40.pcf" "cns-5-40.pcf" "cns5-24.pcf" "cns-5-24.pcf" "cns5-16.pcf" "cns-5-16.pcf")) (define-font cns11643_6:n:f (font-class pcf) (font-file "cns6-40.pcf" "cns-6-40.pcf" "cns6-24.pcf" "cns-6-24.pcf" "cns6-16.pcf" "cns-6-16.pcf")) (define-font cns11643_7:n:f (font-class pcf) (font-file "cns7-40.pcf" "cns-7-40.pcf" "cns7-24.pcf" "cns-7-24.pcf" "cns7-16.pcf" "cns-7-16.pcf")) ;; mule arabic (define-font mule_arab0:n:f (font-class pcf) (font-file "arab24-0-etl.pcf" "etl24-arabic0.pcf")) (define-font mule_arab1:n:f (font-class pcf) (font-file "arab24-1-etl.pcf" "etl24-arabic1.pcf")) (define-font mule_arab2:n:f (font-class pcf) (font-file "arab24-2-etl.pcf" "etl24-arabic2.pcf")) ;; mule viscii (define-font mule_viscii_u:n:f (font-class pcf) (font-file "visc24-etl.pcf" "etl24-viscii.pcf")) (define-font mule_viscii_l:n:f (font-class pcf) (font-file "visc24-etl.pcf" "etl24-viscii.pcf")) ;; mule ethiopic (define-font mule_ethio:n:f (font-class pcf) (font-file "ethio24f-uni.pcf" "ethiomx24f-uni.pcf")) ;; ------------------------------------------------------------------------- ;; Optional Cyrillic fonts in XFree86 ("crox") ; 14 (define-font iso8859_5:14:f:koi8r pcf:iso8859_5:koi8r (font-file "koi8x13.pcf")) (define-font iso8859_5:14B:f:koi8r pcf:iso8859_5:koi8r (font-file "koi8x13.pcf")) (define-font iso8859_5:14:t:koi8r pcf:iso8859_5:koi8r (font-file "crox2t.pcf")) (define-font iso8859_5:14I:t:koi8r pcf:iso8859_5:koi8r (font-file "crox2to.pcf")) (define-font iso8859_5:14B:t:koi8r pcf:iso8859_5:koi8r (font-file "crox2tb.pcf")) (define-font iso8859_5:14:h:koi8r pcf:iso8859_5:koi8r (font-file "crox2h.pcf")) (define-font iso8859_5:14I:h:koi8r pcf:iso8859_5:koi8r (font-file "crox2ho.pcf")) (define-font iso8859_5:14B:h:koi8r pcf:iso8859_5:koi8r (font-file "crox2hb.pcf")) (define-font iso8859_5:14:c:koi8r pcf:iso8859_5:koi8r (font-file "crox2c.pcf")) (define-font iso8859_5:14I:c:koi8r pcf:iso8859_5:koi8r (font-file "crox2co.pcf")) (define-font iso8859_5:14B:c:koi8r pcf:iso8859_5:koi8r (font-file "crox2cb.pcf")) ; 16 (define-font iso8859_5:16:f:koi8r pcf:iso8859_5:koi8r (font-file "koi9x15.pcf")) (define-font iso8859_5:16B:f:koi8r pcf:iso8859_5:koi8r (font-file "koi9x15.pcf")) (define-font iso8859_5:16:t:koi8r pcf:iso8859_5:koi8r (font-file "crox3t.pcf")) (define-font iso8859_5:16I:t:koi8r pcf:iso8859_5:koi8r (font-file "crox3to.pcf")) (define-font iso8859_5:16B:t:koi8r pcf:iso8859_5:koi8r (font-file "crox3tb.pcf")) (define-font iso8859_5:16:h:koi8r pcf:iso8859_5:koi8r (font-file "crox3h.pcf")) (define-font iso8859_5:16I:h:koi8r pcf:iso8859_5:koi8r (font-file "crox3ho.pcf")) (define-font iso8859_5:16B:h:koi8r pcf:iso8859_5:koi8r (font-file "crox3hb.pcf")) (define-font iso8859_5:16:c:koi8r pcf:iso8859_5:koi8r (font-file "crox3c.pcf")) (define-font iso8859_5:16I:c:koi8r pcf:iso8859_5:koi8r (font-file "crox3co.pcf")) (define-font iso8859_5:16B:c:koi8r pcf:iso8859_5:koi8r (font-file "crox3cb.pcf")) ; 18 (define-font iso8859_5:18:f:koi8r pcf:iso8859_5:koi8r (font-file "koi10x20.pcf")) (define-font iso8859_5:18B:f:koi8r pcf:iso8859_5:koi8r (font-file "koi10x20.pcf")) (define-font iso8859_5:18:t:koi8r pcf:iso8859_5:koi8r (font-file "crox4t.pcf")) (define-font iso8859_5:18I:t:koi8r pcf:iso8859_5:koi8r (font-file "crox4to.pcf")) (define-font iso8859_5:18B:t:koi8r pcf:iso8859_5:koi8r (font-file "crox4tb.pcf")) (define-font iso8859_5:18:h:koi8r pcf:iso8859_5:koi8r (font-file "crox4h.pcf")) (define-font iso8859_5:18I:h:koi8r pcf:iso8859_5:koi8r (font-file "crox4ho.pcf")) (define-font iso8859_5:18B:h:koi8r pcf:iso8859_5:koi8r (font-file "crox4hb.pcf")) (define-font iso8859_5:18:c:koi8r pcf:iso8859_5:koi8r (font-file "crox4c.pcf")) (define-font iso8859_5:18I:c:koi8r pcf:iso8859_5:koi8r (font-file "crox4co.pcf")) (define-font iso8859_5:18B:c:koi8r pcf:iso8859_5:koi8r (font-file "crox4cb.pcf")) ; 24 (define-font iso8859_5:24:f:koi8r pcf:iso8859_5:koi8r (font-file "koi12x24.pcf")) (define-font iso8859_5:24B:f:koi8r pcf:iso8859_5:koi8r (font-file "koi12x24.pcf")) (define-font iso8859_5:24:t:koi8r pcf:iso8859_5:koi8r (font-file "crox5t.pcf")) (define-font iso8859_5:24I:t:koi8r pcf:iso8859_5:koi8r (font-file "crox5to.pcf")) (define-font iso8859_5:24B:t:koi8r pcf:iso8859_5:koi8r (font-file "crox5tb.pcf")) (define-font iso8859_5:24:h:koi8r pcf:iso8859_5:koi8r (font-file "crox5h.pcf")) (define-font iso8859_5:24I:h:koi8r pcf:iso8859_5:koi8r (font-file "crox5ho.pcf")) (define-font iso8859_5:24B:h:koi8r pcf:iso8859_5:koi8r (font-file "crox5hb.pcf")) (define-font iso8859_5:24:c:koi8r pcf:iso8859_5:koi8r (font-file "crox5c.pcf")) (define-font iso8859_5:24I:c:koi8r pcf:iso8859_5:koi8r (font-file "crox5co.pcf")) (define-font iso8859_5:24B:c:koi8r pcf:iso8859_5:koi8r (font-file "crox5cb.pcf")) ;; ------------------------------------------------------------------------- ;; Optional Japanese fonts in TrueType (define-macro jisx0208:n:ttf (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "JIS") (hinting "on")) (define-font jisx0208:n:t:ttf jisx0208:n:ttf (font-file "dfhsmw3.ttc")) (define-font jisx0208:nI:t:ttf jisx0208:n:ttf (font-file "dfhsmw3.ttc")) (define-font jisx0208:nB:t:ttf jisx0208:n:ttf (font-file "dfhsmw7.ttc")) (define-font jisx0208:n:h:ttf jisx0208:n:ttf (font-file "dfhsgw5.ttc")) (define-font jisx0208:nI:h:ttf jisx0208:n:ttf (font-file "dfhsgw5.ttc")) (define-font jisx0208:nB:h:ttf jisx0208:n:ttf (font-file "dfhsgw7.ttc")) (define-font jisx0208:n:c:ttf jisx0208:n:ttf (font-file "dfhsgw3.ttc")) (define-font jisx0208:nI:c:ttf jisx0208:n:ttf (font-file "dfhsgw3.ttc")) (define-font jisx0208:nB:c:ttf jisx0208:n:ttf (font-file "dfhsgw7.ttc")) (define-macro jisx0212:n:ttf (font-class truetype) (platform-id "microsoft") (character-set "JISX0212") (encoding "JIS") (hinting "on")) (define-font jisx0212:n:t:ttf jisx0212:n:ttf (font-file "hgrhm3h.ttf")) (define-font jisx0212:n:h:ttf jisx0212:n:ttf (font-file "hgrgbh.ttf")) (define-font jisx0212:n:c:ttf jisx0212:n:ttf (font-file "hgrgbh.ttf")) ;; ------------------------------------------------------------------------- ;; Optional Hangle fonts in TrueType (From Dynalab, "TypeMuseum") (define-macro ksc5601:n:ttf (font-class truetype) (platform-id "microsoft") (character-set "KSC5601") (encoding "JIS") (hinting "on")) (define-font ksc5601:n:f:ttf ksc5601:n:ttf (font-file "dfheibd.ttf")) (define-font ksc5601:n:t:ttf ksc5601:n:ttf (font-file "dfheibd.ttf")) (define-font ksc5601:n:h:ttf ksc5601:n:ttf (font-file "dfheibd.ttf")) (define-font ksc5601:n:c:ttf ksc5601:n:ttf (font-file "dfheibd.ttf")) ;; ------------------------------------------------------------------------- ;; Optional Chinese fonts in TrueType (From Dynalab, "TypeMuseum") (define-macro gb2312:n:ttf (font-class truetype) (platform-id "microsoft") (character-set "GB2312") (encoding "JIS") (hinting "on")) (define-font gb2312:n:f:ttf gb2312:n:ttf (font-file "dgbn_b6.ttf")) (define-font gb2312:n:t:ttf gb2312:n:ttf (font-file "dgbn_f6.ttf")) (define-font gb2312:n:h:ttf gb2312:n:ttf (font-file "dgbn_k6.ttf")) (define-font gb2312:n:c:ttf gb2312:n:ttf (font-file "dgbn_m6.ttf")) ;; ------------------------------------------------------------------------- ;; EOF vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/0000755000175000017500000000000007034757325020423 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/index.shtml0000644000175000017500000001060006646345121022573 0ustar mohuramohura
    A Page of Multilingual Texts in Bitmaps

    A web page with mutilingual texts (in bitmap)


    All bitmaps in this page are generated by ctext2pgm program. Ctext2pgm generates a bitmap file in PBM or PGM format from a multilingual text file in compound text encoding. This program is included in VFlib 3 package. Ctext2pgm now supports Japanese EUC, Korean EUC, and Chinese EUC for input file encodings.

    Images in PBM/PGM formats can be converted to other image formats such as GIF, TIFF and EPS. Several free programs are available, for example, the netpbm package.


    A simple example:

    *bitmap*

    Dump list of the document file


    An example of German text:

    *bitmap*

    Dump list of the document file


    An example of Spanish text:

    *bitmap*

    Dump list of the document file


    An example of Swedish text:

    *bitmap*

    Dump list of the document file


    An example of Polish text:

    *bitmap*

    Dump list of the document file


    An example of Czech text:

    *bitmap*

    Dump list of the document file


    An example of Danish text:

    *bitmap*

    Dump list of the document file


    An example of French text:

    *bitmap*

    Dump list of the document file


    An example of Italian text:

    *bitmap*

    Dump list of the document file


    An example of Russian text:

    *bitmap*

    Dump list of the document file


    An example of Greek text:

    *bitmap*

    Dump list of the document file


    An example of Esperanto text:

    *bitmap*

    Dump list of the document file


    An example of Chinese text:

    *bitmap*

    Dump list of the document file


    An example of Hangle text:

    *bitmap*

    Dump list of the document file


    An example of Hebrew text:

    *bitmap*

    Dump list of the document file


    An example of Arabic text:

    *bitmap*

    Dump list of the document file


    An example of multilingual text #1:

    *bitmap*

    Dump list of the document file


    An example of multilingual text #2:

    *bitmap*

    Dump list of the document file


    An example of font switching:

    *bitmap*

    Dump list of the document file

    by Hirotsugu Kakugawa
    (Images in this Web page are created by ctext2pgm using VFlib.)

    Accessed times since June 9 1998.

    vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/index-ja.shtml0000644000175000017500000001066107034757242023175 0ustar mohuramohura
    A Page of Multilingual Texts in Bitmaps

    $B$$$m$$$m$J8@8l$N:.:_$7$?J8=q$N%Z!<%8$NNc(B

    $B%S%C%H%^%C%W$NKd$a9~$_$K$h$k!"B?8@8l(BWeb$B%Z!<%8(B


    $B$3$N%Z!<%8Fb$N%S%C%H%^%C%W$O$$$:$l$b!"(Bctext2pgm $B%W%m%0%i%`$K$h$C$F:n$i$l$^$7$?!#(B ctext2pgm $B$O!"!V%3%s%Q%&%s%I%F%-%9%H7A<0!W(B $B$GId9g2=$5$l$F$$$kB?8@8lJ8=q%U%!%$%k$r!"(B PBM $B$^$?$O(B PGM $B7A<0$N2hA|%U%!%$%k$KJQ49$7$^$9!#(B $B$3$N%W%m%0%i%`$O(B VFlib 3 $B$KImB0$7$F$$$^$9!#(B ctext2pgm $B$O!"%3%s%Q%&%s%I%F%-%9%H7A<00J30$K$b!"(B $BF|K\8l(B EUC, $B4Z9q8l(B EUC, $BCf9q8l(B EUC $B$GId9g2=$5$l$F$$$k%F%-%9%H%U%!%$%k$b(B $B

    PBM/PGM $B$K$h$k2hA|%G!<%?7A<0$O!"B>$N2hA|7A<0(B (GIF, TIFF, EPS $B$J$I(B) $B$KJQ49$G$-$^$9!#(B $BNc$($P!"(Bnetpbm $B%Q%C%1!<%8$K$OJQ49$r9T$J$&%W%m%0%i%`$,4^$^$l$*$j!"(B $BL5NA$GMxMQ$G$-$^$9!#(B


    $B4JC1$JNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%I%$%D8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%9%Z%$%s8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%9%&%'!<%G%s8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%]!<%i%s%I8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%A%'%38lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%G%s%^!<%/8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%U%i%s%98lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%$%?%j%"8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%m%7%"8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%.%j%7%"8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%(%9%Z%i%s%H8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $BCf9q8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B4Z9q8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%X%V%i%$8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%"%i%S%"8lJ8=q$NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $BB?8@8lJ8=q$NNc(B 1:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B


    $B%U%)%s%H@ZBX$($NNc(B:

    *bitmap*

    $B85J8=q%G!<%?$N(B16$B?J%@%s%W(B

    by Hirotsugu Kakugawa

    times since June 9 1998. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/ISO8859-8-HEBREW/0000755000175000017500000000000006541204274022522 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/ISO8859-8-HEBREW/Makefile0000644000175000017500000000056606541172767024204 0ustar mohuramohura# # a Makefile to make sample images for "ctext2pgm" # by Hirotsugu Kakugawa # # ----------------------------------------------------------------------- ARG_CTEXT2PGM= -hebrew -16 -helv -g 10 -pgm-raw ARG_BGCOLOR= rgb:ff/ff/ff ARG_FGCOLOR= rgb:00/00/00 DOCS= include ../make-sub # ----------------------------------------------------------------------- #EOF vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/SHIFT-JIS/0000755000175000017500000000000006542437130021713 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/SHIFT-JIS/DOC1.txt0000644000175000017500000000007306541101322023130 0ustar mohuramohuraɂ { SJIS R[h SJIS Japanese SJIS code vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/SHIFT-JIS/Makefile0000644000175000017500000000057506541173247023367 0ustar mohuramohura# # a Makefile to make sample images for "ctext2pgm" # by Hirotsugu Kakugawa # # ----------------------------------------------------------------------- ARG_CTEXT2PGM= -sjis -16 -helv -g 10 -pgm-raw ARG_BGCOLOR= rgb:ff/ff/ff ARG_FGCOLOR= rgb:00/00/00 DOCS= DOC1.txt include ../make-sub # ----------------------------------------------------------------------- #EOF vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/SHIFT-JIS/DOC1.gif0000644000175000017500000000150106542437130023065 0ustar mohuramohuraGIF89a_!,_@ڋ޼Da56er~ꊥ+.KYŀ"ψ|A9N,wy]H\NTE/mM{ٺTF3oAd3]u#`Z[cEw_*܁'i v)WEe` GNX(sEhRs`%)ۡ(Zޅk$u)!N"He=U)%\e=vdKjH]K^mK M &}a-2|A"sYIhƔu"?Fi"DeYPu$]4Ո4"ei/LQ@>fXV)أliiy:)+zy*6.-X*"۬"Jm^mnJ;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/SHIFT-JIS/DOC1.hex0000644000175000017500000000055106542437130023110 0ustar mohuramohura +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 00000000: 82 b1 82 f1 82 c9 82 bf 82 cd 0a 93 fa 96 7b 8c ..............{. 00000010: ea 20 53 4a 49 53 20 83 52 81 5b 83 68 0a 53 4a . SJIS .R.[.h.SJ 00000020: 49 53 20 ba b0 c4 de 0a 4a 61 70 61 6e 65 73 65 IS .....Japanese 00000030: 20 53 4a 49 53 20 63 6f 64 65 0a SJIS code. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/make-sub0000644000175000017500000000133506541172515022046 0ustar mohuramohura# make-sub # for creating sample images # # ----------------------------------------------------------------------- RM = rm -f RM_RF = rm -rf RMDIR = rmdir .SUFFIXES: .gif .txt .hex .txt.gif: ../../ctext2pgm $(ARG_CTEXT2PGM) -v ../../vflibcap-ctext2pgm $< \ | pgmtoppm $(ARG_FGCOLOR)-$(ARG_BGCOLOR) \ | ppmtogif -interlace -transparent $(ARG_BGCOLOR) > $@ .txt.hex: hd $< > $@ default all: $(DOCS) ../makeit $(MAKE) $(DOCS) clean:: -$(RM) $(PROGRAMS) clean:: -$(RM) *.o *.lo *.la *.core core gmon.out a.out veryclean:: clean -$(RM) *~ distclean:: clean -$(RM) *~ clean-images:: -$(RM) *.pgm *.ppm *.pbm *.gif *.tiff *.eps *.hex # ----------------------------------------------------------------------- vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/ISO8859-7-GREEK/0000755000175000017500000000000006541204273022401 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/ISO8859-7-GREEK/Makefile0000644000175000017500000000056506541172777024064 0ustar mohuramohura# # a Makefile to make sample images for "ctext2pgm" # by Hirotsugu Kakugawa # # ----------------------------------------------------------------------- ARG_CTEXT2PGM= -greek -16 -helv -g 10 -pgm-raw ARG_BGCOLOR= rgb:ff/ff/ff ARG_FGCOLOR= rgb:00/00/00 DOCS= include ../make-sub # ----------------------------------------------------------------------- #EOF vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/ISO8859-5-CYRILLIC/0000755000175000017500000000000006541204273022754 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/ISO8859-5-CYRILLIC/Makefile0000644000175000017500000000057006541173014024414 0ustar mohuramohura# # a Makefile to make sample images for "ctext2pgm" # by Hirotsugu Kakugawa # # ----------------------------------------------------------------------- ARG_CTEXT2PGM= -cyrillic -16 -helv -g 10 -pgm-raw ARG_BGCOLOR= rgb:ff/ff/ff ARG_FGCOLOR= rgb:00/00/00 DOCS= include ../make-sub # ----------------------------------------------------------------------- #EOF vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/EUC-JAPANESE/0000755000175000017500000000000006542437125022217 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/EUC-JAPANESE/Makefile0000644000175000017500000000057706541167756023701 0ustar mohuramohura# # a Makefile to make sample images for "ctext2pgm" # by Hirotsugu Kakugawa # # ----------------------------------------------------------------------- ARG_CTEXT2PGM= -euc-jp -16 -helv -g 10 -pgm-raw ARG_BGCOLOR= rgb:ff/ff/ff ARG_FGCOLOR= rgb:00/00/00 DOCS= DOC1.txt include ../make-sub # ----------------------------------------------------------------------- #EOF vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/EUC-JAPANESE/DOC1.txt0000644000175000017500000000010706540457477023456 0ustar mohuramohuraˤ ܸ EUC ƎΎݎ EUC Ď Japanese EUC code vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/EUC-JAPANESE/DOC1.gif0000644000175000017500000000151506542437125023376 0ustar mohuramohuraGIF89a_!,_@ڋ޼gؐKd_$&QL(F\jgHFz1yvMsTN {V"574&((8bCh'9iظهztJ%wdjƉĆqCEz+k y:'ӆ;ojy.qln`U`5`uP ᡖTugI{\㕁S-^I=`s^6ekH{dx6qd8kR6ێ&VN}V^1MePġN7?d 5%hf8DOE!!:d^.^$q&"ZynQUe*&l"c~) ԟRNJi%]1OrіRd|Z}bA5u&6eV yXgx!&'*a3)Zs&V kJxi~ nKC;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/EUC-JAPANESE/DOC1.hex0000644000175000017500000000066206542437125023417 0ustar mohuramohura +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 00000000: a4 b3 a4 f3 a4 cb a4 c1 a4 cf 0a c6 fc cb dc b8 ................ 00000010: ec 20 45 55 43 20 a5 b3 a1 bc a5 c9 0a 8e c6 8e . EUC .......... 00000020: ce 8e dd 8e ba 8e de 20 45 55 43 20 8e ba 8e b0 ....... EUC .... 00000030: 8e c4 8e de 0a 4a 61 70 61 6e 65 73 65 20 45 55 .....Japanese EU 00000040: 43 20 63 6f 64 65 0a C code. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/ISO8859-1-LATIN1/0000755000175000017500000000000006542437114022471 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/ISO8859-1-LATIN1/Makefile0000644000175000017500000000060206541172707024132 0ustar mohuramohura# # a Makefile to make sample images for "ctext2pgm" # by Hirotsugu Kakugawa # # ----------------------------------------------------------------------- ARG_CTEXT2PGM= -iso-8859-1 -16 -helv -g 10 -pgm-raw ARG_BGCOLOR= rgb:ff/ff/ff ARG_FGCOLOR= rgb:00/00/00 DOCS= DOC1.txt include ../make-sub # ----------------------------------------------------------------------- #EOF vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/ISO8859-1-LATIN1/DOC1.gif0000644000175000017500000000114406542437114023646 0ustar mohuramohuraGIF89aH&!,H&@ڋ޼H2Ѿȳ15\4dBIjj䦐 {AHf>?xg5'PHءFUąեYՅ֩#Z )ɩ)&y9%e ,]LD.G‚ Ɣ AvG`xG=2Q%v,hx~iPsdKJ3\w *܉gՑx| D=J(ia6}u:dA[QfbIfffj_'=Iq_s֓D)Ibh2EW1ׇ~|"E. NΨё|وI/ee;tvV}\ޘABnFH@{!bezi9Fj8,YzN-2l> mNKm^mFw&j+nƮM*F: .P=6r8* kT 3e,wunas ka"!o!*-Kq`Mf =H507Ј{ANJ?*A:cjFkﮑOȤpH(ZD`! vbwP;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT-MULE-ARABIC/DOC1.hex0000644000175000017500000000134506542437111024157 0ustar mohuramohura +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 00000000: 9b 32 5d 1b 28 34 3a 57 1b 28 33 47 38 26 9b 5d .2].(4:W.(3G8&.] 00000010: 1b 28 42 0a 5c 49 54 68 61 6e 6b 20 79 6f 75 2e .(B.\IThank you. 00000020: 5c 2e 0a 0a 9b 32 5d 1b 28 33 2d 4e 5f 38 26 9b \....2].(3-N_8&. 00000030: 5d 1b 28 42 0a 5c 49 59 6f 75 20 61 72 65 20 77 ].(B.\IYou are w 00000040: 65 6c 63 6f 6d 65 2e 5c 2e 0a 0a 9b 32 5d 1b 28 elcome.\....2].( 00000050: 34 3e 1b 28 33 3b 39 1b 28 34 2d 1b 28 33 21 38 4>.(3;9.(4-.(3!8 00000060: 52 1b 28 34 33 1b 28 33 61 47 21 60 39 26 9b 5d R.(43.(3aG!`9&.] 00000070: 1b 28 42 0a 5c 49 47 6f 6f 64 20 6d 6f 72 6e 69 .(B.\IGood morni 00000080: 6e 67 2e 5c 2e 0a ng.\.. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT-MULE-ARABIC/Makefile0000644000175000017500000000061206541201205024407 0ustar mohuramohura# # a Makefile to make sample images for "ctext2pgm" # by Hirotsugu Kakugawa # # ----------------------------------------------------------------------- ARG_CTEXT2PGM= -ctext -r2l -16 -times -g 10 -pgm-raw -b 1.4 ARG_BGCOLOR= rgb:ff/ff/ff ARG_FGCOLOR= rgb:00/00/00 DOCS= DOC1.txt include ../make-sub # ----------------------------------------------------------------------- #EOF vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT-MULE-ARABIC/DOC1.txt0000644000175000017500000000020606541200452024200 0ustar mohuramohura2](4:W(3G8&](B \IThank you.\. 2](3-N_8&](B \IYou are welcome.\. 2](4>(3;9(4-(3!8R(43(3aG!`9&](B \IGood morning.\. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT-HEBREW/0000755000175000017500000000000006543324500022251 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT-HEBREW/DOC1.txt0000644000175000017500000000030106542446475023511 0ustar mohuramohura2]-H.]-A \IThank you.\. 2]-H .]-A \IYou are welcome.\. 2]-H .]-A \IGood morning.\. 2]-H.]-A \I Good afternoon.\. 2]-H .]-A \IGood evening.\. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT-HEBREW/DOC1.gif0000644000175000017500000000250406542446502023435 0ustar mohuramohuraGIF89a !, @ڋ޼ (a2eʶqk9'ov$Z r̦ JԪU$x[K'M0i=tU4#CV)9 wwhWIhDEzx'&'[k{H3ډ6;q9뻆|7|"L<{N ~^jv4mh47܊>5o&Bp^1kՎ &Z1c KR7H,k IBh*Ņ9;4kڼ!B|ܙ3O yeekH徠TZ 8p4WAPWbN]Apa 2&f.Xs]ڽ[fTOO-Ɍ  |ō@kq\/.ҿ+[9͂tC͸o(AKMj1?c_"Ɯ^<ұ`Fuu;.-U}iشċ"GmC;'V< >Yv~*w݆+{.; /zXV3 mHU gC$ xblaP( cvyf1a2HcQMRlR9D7fRGوdZc}-6VpH 5ibeedffj s6_> XIe)|QJsWKRM֛|_<>y^iniE?`z򅨪Ajފf9'Aݬw4WnCZ%-ScL cNxZ7JnnBuW [u[gp4oVk#o"$MdVyXvV j_ĵ,Ʌ_-\(Ib)+J/tN? uR_vdIRYҎGFi7 :*8pګ/``v?J@c*!vFW!)9IY9#FgDŽcIZzh渺h*Kȗg9kPs7J\2!X{-K~ں]+Cc}/?O_Ӊmꝺ!6;0'`iPPU<'p@tٺx@Faf(W)e#} 1Hf$vl!b}cE,;Qsc `iGTrZr{TPԺ'ubv}S[6-_DivGLQj= 9ɔ+[{=o/k93hy/^g*Uvٴk.5Pc6wR4CUVP4̎"Xw.OGk-wvÉ. 7/\P&2}S5TU[+=[{ :a]a=Lp(F׍pNUPLtv^]6“ ?*J[,G!yv^X^tdJ*M,]"oYG]`T8S8Li>u7|I @:bH3gGO<)(B vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC2.gif0000644000175000017500000001035506542437017022470 0ustar mohuramohuraGIF89aK!,K@ڋ޼H. K#-w| lnuLe7dN),elkNlʟ86:޶qGSgeViyY *:"8YZggJGyu*;K*zK ,|ILkdTJ=v W4} 2&}XN2~>o2KߥW (yyRp?~aHO[$k ^ȋ$v m6^)Hz\yHd6 #8 4TTr2UX=t6Bu*aĥ$Q)fOd˚E#PZ<ںv11tE}^ew 8rN7؏\{8& ɪXz;t5ˏ4͌>*;i,2lMrVsl-vr_. 7j˕#MyEu_}҂g&^[> HE0ڱ`vG^"xrfaUSSNU)rV8aDAc.c>03Ņ$d#(ߏJ@PYKNiIn4Ie^~ fbIff Q8BB䧎~'5)fT#!"!|2Q}݊b|]%zPA]JfdUlb)eRrwb 26mJk̄+MxQ)ٸ?]Vwg콩SQf:`jJ!'i3+OQv;u$$M jW 6#Ekk#.êR ^[k5 ĵ|E:(yY^&($?U \%n#X92߶3=WGXB]${xW]m)\NELvtXWmmn-n"\,2spi p>aܿ߮lG:v`rf֎@h[GI$(_4q:&ñ$ lX;­b쐪U-:9 *KdoIy{n7> *r8P@ RuI-ЄF)F~FҦ@SWEc&&xYOrCY RtO_=Y3B0z +aLDKt(]zW2g?uE8 <UA!XAaYpord#̤ܔD4zX5QcOT"ԦVgmxK*)ږYaھe!ny#▴8 mjzgqPִۍI( ,k2aok*=SClw\w%&>P{ݔF{YyOCಊ&IWj!@$]|K/WWR/HU6H^O}R !2|9~>Yuʓfdd?Gl`Ȼtv>of6>I2|fqNtc1:x Z%5pmaJgu57)3nXw[ A^N5Ey2ё[4-}gLL,[ϯ6‰s7ITŧsrvO;&:E&ޮ9ꚂΖ@JsQNyNv[AZ5c^)TlEg2bͭ6/6Y?R1lz"$T6GcoE}v;G~pKr&_ kMk|?|$/9=9w8se(7+3//S}~dX O\d |<.k1ɺ2$C1WһʧǶHfyY5v?1no񚷛z*Q:ûsQ|3{h| v%<K~%X47VwfqZj: |?Z\( [c'r/?}S{F9lv4{D'3ctaVx8Vg/io*BП>{⿿>ҾB{qUB:S3AxGj7G:vPzlA%`8;u*9(kCefY)|3i ɒȑPLU8fXv|VI@dxBkNHQ.IYY2Sa՗(igtXF<ȏq)s@)N1l_x~ ^,y!$6VjND6p~7~Ud]bIz!iO"`An5R赒+fSli8sDՓgi(feWIa9o:x5 cx<(k'_Ʌ}WzOX M1<ЉWI%jtH44]~$]e&\[㓓y]L7]ukՅJ\"Rz\)!I4Sg J Օ-/J 3J7is4Y6vta|Ģ]ڣ)Ty/byE 4fNH? ,a]{Ć?tW-bYMPxwىw`wwgkQk›D9Kc{I_=RKqlRvx3b@cWe\[TGe~?$S=85zip>8Q"tA`8~:sL5w^V…ZyU2biWiN&ePQnԚ٪](K}ڟj)d4FHXڪj0قXqF.xiÉÓ5DCcQcJ #Jp{ap1h*Gt!HbG#'KIHZuU[SGk5ث<3#9's䪌4 'NjBU{nv۪ӧ<Ӵ3 ؗ ĨssT }|8*rHU#exx 5[H=$)#bEji$-FqI#4{:&*3!\键:ʫ˸kJg!827vif㚭%ԇ:K @vڭfd`<]˦a6ƫuYe8Qaĩj)pjDfl׮UD6Gb }OVp;ک{H-;yZ2csً9眲5 KEnqcSBɗ(! c{© ֈ†P6uVU7hC fTS|IO7Š0%S'gy^ ]l[\8&ȋ2k0}s85䤭a6 *&KS2Z }br8C\(_x۰q3By3R.hBJr !uJ5j4Ts=6ڮ WemJ^ҵbSU~TΨHc,9[1}AR sU، +ޢQqcaAgP5܃w}VJY#ʷo[T[-~&N9A7ḁnxw."KA2BpP+߿)' pR[j5#{>mVX^wM}~hQ "Cf$X{5a&uݔw`]u.Eg"4X#nsYȕ\]"g" U#@5 _SS)^~ fbIfffj:I pߛ'QEv"֝7XDt؞8蛛Hɛ9f8I )V{PZޥNJ"@y'IԓŞP8!Q:D>Xg%ЬspVSi0-vNEDr*`!+*n~&O\T K'ih4ʹQz`66T5rKpׂj =ƺ{>dI\q"pj@ Ro_LY 9Gzvі'.4HHK:H$!g~0 OPʻJނסkr>3=OS-6'inςN8aS8X(38O]uZx7{z袏NzJ|/⟔*2ilfs{>Ǥ*&N$6_'MgR\ |xiO~柏vzXlj* *5).!.:1<m$0TSmfuEAA\"?ˤog ~vҴN(/}G(4z9(BCG@}C5oJTy/Ver"z:s9}XKiI5=WMߌ,]vrHfӪX#ZEblRKmUPx}  ֎@17v++`jO >ÄXNEb%3ʣ2o^Yd\VQKyT,kyˢ<\GP.Km:! b:sdؼf7_r2„-ݳD+s) qZAB,>Ӟ.H}{1*uRjAx[*ɑyg] ^g1akYhK{Ԯlk{|#fC*<*97=Nˀ!E%Jzhl^B5ړP: cD__+e(BcwT&6 tSU͔AWS.96!gu]qw .\3F-Uh25fYIÚ[񨅮 F(}:hҒ%a*yTV'Ɨ^2=wW.۬gjT$F|7BQt7} uMvh¿޴}_o*1T,.pqoQ+h9og*ѻ /X_dRnRu̝uwiL] s42F4XluuuFz)Aw^ u~WSHQrqցZFP7 wҕwΤdJRNBFꇀw7sW^5tQpTG<L$v:o:865]=3~gSv@#p6bLmW.@]x%g!WD^*,_J2D}hxyEG~Korf]bF-6]pl}rtxs%xYiw3Fza4kXq|B(Vud0 xhN8M}XxN焎gs@ą0CFe#cxE%s{w|#v#}WIHu'G: 58g. X)fv{TAvu}X- afj@s G.bM}EԂJhn8cGPrg (PZJR^"^فQr$Iw6w%i')+ɒ-/ 1)ddi [$gZq< WR@&Z=4T_&[p#hJ*\UJAe~GI^1%F2O3MH(])m(3IlS{~p+<@Ÿ_@#h2^)7ap`6#G)3& bf0Zaa2_&q`G;3ra$TIT!EIu9xxIX&M™*+lItUx.؈7x6#udzsI'%1ȝ,`(Tk(^x~?ětv 4^<7Zok\;x6s+e$ 3a/p ٖIsyX~|~Lbҙ# "&ʜE) Y Tم4zW sGlya'r=8<7dfS;~gnU. \p 󠖵%?DdǢ3K)z<ʒiHDםN:,KFl6e?AK"dGjr%{ˆ"HK"U}BPBJI:jznyik˶m :ȩC!160dvnJ\ad˦O&zrvlsKzj=&jfWZ빝j=[+KzSHO6=ۉ뺢vu˹)yvK,*-uGjВƶO+Ļ-+;ȫQq{\x  +Kk狾髾˾;S&h{4.Plbqw F0%4f}k˽Tǝ ǜ8W(ȏzI?JFܺwzpl({%0,z3KowE:Vii\Hp'H$:0xwWM~@LJy$їϽoQF Њ|r#cbS^Gv̿~i,umruCK̵w3 fXz\+QP?"D;ְ 7S݋\iB'&IL~=7}BW'7ǿg J[D6щj؋'̳uR}\gyGKi$XX74iZ}-7aݠԤ}6@}Vl@m>ƅ]{݌yDDFN\H}]B b|^*ȢLVĉ?]m!M ].p .%m-)'&yMvM=P끆{Y3.=[/-*̂xzIx+㽀aՙ-< еnؤe;E^?mR<]«5]>k2XuYB>Jm+ޙsᷪ(vޭ-ӈݭ0)nbXUYb=N?jn96-/Bх7I~2|<9i$(IXX Ѿ ؿHHy ʻ~.V>A>nd&>𫍰C!ސ>uR&p,O3@>96? (ͪb®0_:~oЬ΃5S>b=ӭ> QM!@:Ky&5EI t00󘞬tX#n_,!)0~Nd_=R>ܿx3 9 }Jw] Q8 T} mtk} /ʋQ$LNWeE_+ X2į{ F1u]{0yp3j6yOIL㒲ڢ1H\'8%!vu;YZ#_AJYcQ^&ir}슪޺dZ:ݚ g.$d?AC( ELSHUA==\gRJiqsuwy{}#dF†p[\6uѣ`>@q "(&E/>ɣFɨM*Č̘j!N1w`-~~ǝp%AJ1ot澇m]<"ᤣ)񃣏&+V Q \#%e#b"r2hm ِPdlD+ $P0q+@TJo2t$HCI.{f{D3192 Zʨ.`ip14q-!B9;ͣ MRQ^ 0٠6\tnPLRB"[/ MKL6K4JŎ%d[B)9\_ tcmgVT\,xMXC)UrU AkE)5vL C׽M`>(===;-V*tHܴ3PsZsЫ,t3Yx&2߅)͊m4Pk91TwRUֲcVx݇V|)V+XwWY}SG/u͹5$3bX ]P~\y }1O;j5yҖn:9ޕnjG[;myqs.!u_`v05"1%-L$U^&| y)/IF*޲a.֩C76܌ڒI10d3e堃6|H4줂  E5ҭ"͜"}9Χ)A\eI=#HꢚUn]*)3hUp_UrnRVyY$aieGB[:N^Т*H=D7fc;PE>tF 4a|l~"蕳;6AfEӰtga{m+F7ؿޖo\5q\.w;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC11.txt0000644000175000017500000000006306537414734022622 0ustar mohuramohuraTu ne parles pas franais? Si, je parle franais. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC4.gif0000644000175000017500000000133106542437031022460 0ustar mohuramohuraGIF89a(!,(@ڋ޼H扦rL2l7~xE"U?^ d_JfhE~=&kpʊl2cU\67WsH)9IYiyI%0Ij7ZzQjw[,ek N^n~~NNz{Wn[zog/͞;*XJכ< LOZa ~ l<0K#/!ZҠ4iēe5m")#"B<'!+U̞[BDޟ˾Sڵlۺ} 7ܹtڽ7޽| 8 >84\VC9dܩ_c +8\oӠJT5Fh[jrFQoP Xw0{Z-N ^|e\s$:uFrKSHKHݪ ?ѱbe@hWguo)Q n aǝpu}N mf]hObMQZymوN dx#BDftFdy5xBrcj8K() Fk`FcX G"= .FF)fڛtމgzg~ hJh7;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC12.txt0000644000175000017500000000012506537414734022622 0ustar mohuramohuraIl fiume che bagna Roma si chiama Tevere. Il fiume Tevere nasce dal Monte Fumaiolo. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC5.gif0000644000175000017500000000250006542437034022463 0ustar mohuramohuraGIF89aK!,K@ڋ޼H扦ʶ@qJ)e)C!)EIbT(Ι6u|9Hp':sYTWLk:} 5ԩTZ5"PĸFeόFԊسɎa6PtUkVTWOhxlIdq[Mq YAV"[9͜;{ :ӆH V$L`sef'1ی3WDlygVm>qK~:t}-' ;{5lp=*hN@'}9+"tpRktٗ7 >SF:'Zgana~b"Hb&b*b .T@X ̈aZm$(|FI9vGQHLInT vDLU'}OG8dwcapSHȵQOIu$_qxIђ_9'NwNaT(Or&'wmtqt΂NYD@xG jjj kJkފkZ `3v"(;p,"I(YQ* 8fKbzfZE[.VimEM+oESHX`dZWGIXw1yy,q#3u uZ 1=b%9} 11ӷ0WGL:zu.h Ox_Yt4"QF]7]eC ׄ9vj]xZ"5 m]bF߂gex/x?yONy_yoyz薓$̦V覍 nPɒ[;i.aQq(c^x4TBv݉Ҷ}Z?(o.]L鴕8s˶2̱M?O1ڏ 87- |U);+/ `B4?+[͠d2)tnȓv B!PY&L9C^76P,|G$Co \SDBY51\0qd,ψ;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC13.txt0000644000175000017500000000037406542446141022622 0ustar mohuramohura-L.-A \IThank you. $(B$"$j$,$H$&!#(B\. -L.-A \IYou are welcome. $(B$I$&$$$?$7$^$7$F!#(B\. -L .-A \IGood morning. $(B$*$O$h$&$4$6$$$^$9!#(B\. -L .-A \IGood-bye. $(B$5$h$&$J$i!#(B\. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC6.gif0000644000175000017500000000221306542437036022467 0ustar mohuramohuraGIF89aK!,K@ڋ޼H扦ʶl}?6^+,X5xkEE9OP*}@ BH>* T~:/1Fß3)qeZH;?<̛;=ԫ[=;<ė7Z!퍺Q8 cfF˲e3E |AXeR_{VHDC2DXlNDO lH?UPbYQEҋNl#NFexB)c(4T22h_#EK+vV^eZne^~ fbIfffjf }0ePaq$hm &V6")%&I^X E-SFn"iV ZWm:kOі"!z`mɟjZlmz}[f+b՛)j ۶5B)Sy5ƞwBoK׻)/ދoo pLpp /p? qŝC46]ϩgy*'珈7i*%,_Ɖ* $*کJ"AxiNlgL|Z4y.y*`6nnE@A]+ןvdk[w ,e큭lc{H+x'v +w۷׶UmoPfl&:ɒ:fwQܠ][OW[`k(#쏣}Zʳ=x.OR­m?~cs2˷_}o}~cW;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC14.txt0000644000175000017500000000036606542446214022625 0ustar mohuramohura-F.-A \IThank you. $(B$"$j$,$H$&!#(B\. -F.-A \IYou are welcome. $(B$I$&$$$?$7$^$7$F!#(B\. -F.-A \IGood morning. $(B$*$O$h$&$4$6$$$^$9!#(B\. -F.-A \I Good-bye. $(B$5$h$&$J$i!#(B\. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC7.gif0000644000175000017500000000254307034754226022476 0ustar mohuramohuraGIF89aK!,K@ڋ޼H扦ʞ1Ƽ8NIk`>Y,l6MeԘtx@%5FL^ fir]w+7HX!X)9IYiyAv2fI@qVa1J)JgGke {$ 6[FT+tKvͼmm}潩/?O_o]\-WT[Vsh`G"9)Hb9T 䡔'A9b<*$.0adh 9cFcˍA6B_5ԩTZ5֭\C`2CGl֭Y&[i&g6m$%v w}Y+[9͜;{~(+iDV94\8xjLŠH1qi޲x徒^9iЭ[Ja.K;`gw)~a OlsI+W@Wz5OFLq 楳W6%fi!hw"Hb&b*b.c2Hc6WuX8e<#C"*Ĥ _uw67UvE:\l@I^Gjdj5uӓ>J&ޘ=)Xj9pD?eJ;yw^ *Q[a&YztDStHWToΤb6[j kJkފkk lzSY( %r~9'ijѢw紩~@}y{tI˸-XasZ~ZxFv7pb\jbh͗]NcM܏q[,{p,buǶugj-'7'ͷurJ1B2#3H37sŨ<3Nx,xU}-T{*w ۹/Mݸ] ,wy-rbgpNrظ_yoyz袏Nz馟zꪯz뮿{=8f&Uq\ی,[ݵ5A4,6^՞cI۔ %tj?u:A;vnO+J"nJXA. Q4%1%}IJfLZ j˒s0C=QXL"!(2KJV2Ȅc-Pp8ϲ)>r'HzD%St ?HE%MGt_DU0"ְ@LIJ22+!Mqpi\(%H Y=eX ;~ 9ɔ+[9͜;{ :\g!-LjƧSqqYoJiVJEψD?uYVS! JKN:^BWR;ַ-J׭'E\%)Gi#Uev,Y76f\땰-#{q //](["5itN{5 J2qZ2*\'7z>f<'"!'$nHl^N{J$I.tg[D;0… :|1{8}Z$)xzi_#3?E9%wR%G37{YX2$ɒ(1)/lR ZINU* *'Qz 6رd˚=SlJYS7)Y܈gI %׈KCS"S`xont#8uLm'Ez"UGD=yvdMDlִk۾;ݼ{ U9}>EI&Yg^L\>C׊;; f@qh\.82!xH &$R6ތ)K{OV( dN> eRNIeV^eZne^Sviqw<'tCmJpfif`oN(U{o dV>&⨡\"-;.IVQHM1ihVe&QW%Y I*BުI|Z~A >F^2RO^5ے95]?ץ"s̉k+YdhnKoދoo p3N(,]&7Ugr9,=,*>Hvbƚ2sc8ejh]fzsiy~H;hr;:>w:~3}c sk~ eEa/ɫj*"rߪFѣvs٩5Vc|K/퉄&EiJ\rDAJk]r_7UQ՚`#Nmd`nBkq;rN<Q_FH1f7!?d(B? $(C>_184BGX55(B, $(CA$184B8xCD?d(B. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/Makefile0000644000175000017500000000107407034753753022755 0ustar mohuramohura# # a Makefile to make sample images for "ctext2pgm" # by Hirotsugu Kakugawa # # ----------------------------------------------------------------------- ARG_CTEXT2PGM= -ctext -16 -times -g 10 -pgm-raw ARG_BGCOLOR= rgb:ff/ff/ff ARG_FGCOLOR= rgb:00/00/00 DOCS= DOC1.txt DOC2.txt DOC3.txt DOC4.txt DOC5.txt \ DOC6.txt DOC7.txt DOC8.txt DOC9.txt DOC10.txt \ DOC11.txt DOC12.txt DOC13.txt DOC14.txt DOC15.txt \ DOC16.txt DOC17.txt \ DOC99.txt include ../make-sub # ----------------------------------------------------------------------- #EOF vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC10.gif0000644000175000017500000000203006542437050022533 0ustar mohuramohuraGIF89aYJ!,YJ@ڋ޼H扢&! {rzCpspIԹԧ*P^2GImtMש 'q(8HXhxȸ7uӔ)UevUEi9UZ+;K[k{{Q9upSQ'X l<gYJ6ڃaNHa2xGmUG(Z3Ɓj\!Qe-.3@:FqY^WX4韘/S:cXϣ7+"oYU]u'1[}7Fdy[Νg'kw~ xNx~T;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC11.gif0000644000175000017500000000117506542437052022547 0ustar mohuramohuraGIF89aK!,K@ڋ޼/xʎ,qz'~f01G)eyAԪj\L h $܍U*7N6t~(8HXhxhWwHȨ!U3iFCiiTC*:e֙ir8K[k{ky 4gzwWZGܸ+MmX]uFA\v ky, L:@:>0#0Pc prJ8bQ.ȑ$K<2ʕ,[BJ8ȣG!`p&0wL#3c O~0 ʄiӞ\Ţ79@ 6رd˚=6ڵlۢǫhǟo NK(Iʸ!V!nSapș4>p9a3vYקmGYYLx:6C[]D_;(h/ܒj>$rn[=ܻ{>˛?&lugR*xMTOV#cna2Uff`FhWjQYy5Zm%8zaQViaaonLXa6Q Z!-2c:c>A;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC2.txt0000644000175000017500000000101206541105551022522 0ustar mohuramohuraHello world \IHello world \BHello world\D Gr Gott \IGr Gott \BGr Gott\D \f\NGuten Tag \IGuten Tag \BGuten Tag\. \t\NGuten Tag \IGuten Tag \BGuten Tag\. \h\NGuten Tag \IGuten Tag \BGuten Tag\. \c\NGuten Tag \IGuten Tag \BGuten Tag\. \f\N\( GUTEN TAG! \)\. $(BEl5~(B $(B$3$s$K$A$O(B \f\NWonder $(B5~ET(B \BWonder $(B5~ET(B\. \t\NWonder $(B5~ET(B \BWonder $(B5~ET(B\. \h\NWonder $(B5~ET(B \BWonder $(B5~ET(B\. \c\NWonder $(B5~ET(B \BWonder $(B5~ET(B\. $(C>H3gGO<)(B vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC12.gif0000644000175000017500000000171006542437054022545 0ustar mohuramohuraGIF89a/G!,/G@ڋ޼H$mHz i 툲NL.iTg=< 7e-8"q%"axHrT&!5 $cIIy#Z95t0*j*I  W`8=}rmߨ] 0 <0n̪T ZlDUI`CVG0EdGod5q̙4kڼ3Ν<{6̔(i)y[Z\YUXMn*K ;%ژFmrWM+~> uc<*oj'^Uv0"uȔ+[9͜;{ :ѤK#DH|uh*Jlɴ۾bHTrȺ iP_F:u էo}ڻs 4n眷'><;؛}j`H`` .`ʶU*x&ṳbOVeI?kx.6\"~иhcyTy~XJ1c%J.-\}Ԙp&6~RRפoesR#Cra=tdXWqz]]ԓ\ fAza!JFIOKg-zty^:unAr~ jJjjj kJk Ij2U8b\âk~Ҩ(%Zy#)Z#&':H tBMtF A;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC3.txt0000644000175000017500000000152606541103342022531 0ustar mohuramohura\B$(BB?8@8lJ8>O$NNc(B An example of multilingual text\. "-L" $(B$O!"1Q8l$G(B Hello $(B$H$$$&0UL#$N%m%7%"8l$G(B-A $(B$9!#F|K\8l$J$i!V$3$s$K$A$O!W$H$$$&0UL#$G$9$M!#%.%j%7(B $(B%"$N8@MU$G$O!"(B"-F " $(B$H8@$&$=$&$G$9!#Cf9q$N8@MU(B-A $(B$G$O!"!V$(ADc:C$(B!W$G$9!#%O%s%0%k$G$O!"!V$(C>H3gGO<H3gGO<٪.O|,+c۫-".6sqLxLsG{E]ww>a"*S5Dلh7"J!_  2([|Ɔ۝HdFdJ.$N).$HIFe@[L9b$yD$А1bg26hZ 5Y`#1Er/-Z@q'%:6JDmfi~ jJjJ*~HWz/Zwnk†H qDr(i2ƾ 0z}aRW%Pe̤3f@R.ue?WjDJkn{Z6p /p7|WBmTxf e]{'lgl,'TΉC;VJ$&<Ė 9Z?.'AbV ,9駐J[5_ȜꡌҋO:bEvw~ xބĄWܵ+}bo֐ͻh1Z?Y5ZKy.?o+m^f{Q|e~loc ivwsxF ~ygg9U yOO}_}oϽyw"NͮkAOxB߯ci&/wy]o,KRxcBRW'$i!w4[$5 bK  6Kӎ3"Mv9:hg] _$! 󁍟p%3 .JY `wSNhAi&.cZUG'g!eRyQ) WSV2?@*/9G7HԶ:><ݹh|uʆJ0E-֊/y_Y,a -<r~uLu+0& /}d;u)h͐Iʅ*e'NYhc4N%IJEՋV9a cr\ kr,mK_ Әt4Mo1ԇTe}6ZJD0!)>LU䙢1>ҏ\S Tu{fSyLl ZxK5ßs>'W4HU3j6beFc6zw0,`(ReS4lCeOkd+ r/>(ּ6vl֔)x$L٪ES\0,?,I3>杏OPgj+15JfjY7;׽;okV_*?'hWǾieRhy 1[aJf@NՂfwrzǺwB5gD=[6NmsGo!lZeVD` HKz#(;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC4.txt0000644000175000017500000000010706537414741022541 0ustar mohuramohuraHello. Guten Tag. $(B:#F|$O!#)Iʡ(B Konnichiwa. $(ADc:C(B. -Avflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC14.gif0000644000175000017500000000375006542446556022564 0ustar mohuramohuraGIF89a-!,-@ڋ޼H,鱮 l Mx ZFL*f+qU u_-U ӎ(8HXhx&gո&3scftY *:Y9aW+8f93cgQln;wvJ.?j׌*.܊P8=hit(<8atO"p]uH/ $K<2!WTDb;uADK*d.K4}DJ@^iIMfLGIhᐃر]UW!dZzӌ16Lw0^_^Ca~lTRW9֗)fSѷb}He hCFЩ^ini~jNQ@H% tdRYVfJJw* f!(IV+2Ra)G* UdH*&}ԺoV{wY]rumRdWl&U08l2o pLS|QHFh]{Wak~rmA6Iw, }5K|qP\jnB] iS!~D9nۥZUkMٰA#Y5I;4lNCc ޷\%vjv\m pswZy=|-MxO%&h>@m T2c5 ʱN{ߎ{ᄏ޼{:tdEVb-ݳv#=*{:|95Z:w_߶71{yu_[|ٚ8?!*KQvAUAeHn(JbX#W',mӸgEɔJyR,,!o"LV56HDcHmwKR2[hz&Y ?Ks]) f9"BSjS+iA]^Dp]/9.ULZ ,A<=D]&KLOWh@솚9;!\*qȫwEBDpuKעBhhLI(Q%AЄ*t mC шJtfeD=i/bH,:5 +ZeP!53FEl΄Ri:gʍE@單9NQqvTX+T}Ɗ*wms Jwt"bۑ2֋e.B—*.WT"&K\bwO^gX*7'!ȶUM qլNfzFnxDo5~׺Vqg>kB2^~KKkڞTX0bUVFALYNdSS>wzG p} (KyT@;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC5.txt0000644000175000017500000000016506537414741022546 0ustar mohuramohuraDas Referat wird von meinem Professor gelesen und bewertet. Natrlich mu das mit dem Computer geschrieben werden. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC15.gif0000644000175000017500000000050606542437066022555 0ustar mohuramohuraGIF89a!!,!@ڋ޼G igZa|=҈[ĢL*̦y $ o^IG({Ѿ_W jm(ƒwerطHS&SeV&)C#VZJ8*; ,pZVy>3w7dX)9IYiY%u9* (Tz +;6(B*Ur{Ԅ[7x;,,M[m}ǙE |#m XJͮܩsHxP y2BBz*Z,\]̲Ǒ$Kk"qYC t&04R|̤СDu~4)Ms Ԧ&x 6Xx<ڌ"=Ae_c'Z/T˱|ݦPST] |8cJ [ 9f}"Sc!Sk*E7өʹ>yp `tsKm)95X^^atS@3UWX͆N6v{-bZ=#a4$"̃RsA՝J.dN>/Ȉ3*}mebO,6#iv t8χA>O$-堾ONTUG9w;*%=-H> sfh& {d2`w8.u`'dB*b+$8lU=t"@ipK@e*Q G()qLlE`BSk CCLl2MelZRGс*D7$ vx0IJNk_o(/a$и,0;9!݆9/ GQ8"b? PƬ;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC7.txt0000644000175000017500000000017707034606550022545 0ustar mohuramohuraNr vi var nygifta hade min man inget jobb hemma i Finland. Det var lttare att f arbete hr i Sverige, s vi flyttade hit. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC17.gif0000644000175000017500000000137706542437073022564 0ustar mohuramohuraGIF89aL!,L@ڋ޼f4ؚL&#f6K0z+[9> &A(kolOT7uB)9IYiyyTxEfGj(xX'84ZĆ")_bV`~tfeW(1FatWES9,FZ~b"Hb&b*b.esdY Nwݸ]W.xW9(v@3$!ufWf d@9 FeEX!ֶ~uNYڄw>'\jؗ etlxX~ jJj@;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC8.txt0000644000175000017500000000013406537414743022547 0ustar mohuramohuraKiedy urodzi-B si Chopin? -A Chopin urodz-B si w tysic osiemset dziesitym roku.-Avflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC99.gif0000644000175000017500000000546606542437076022604 0ustar mohuramohuraGIF89a!,@ڋ޼H扦bG 4 S8#+ ߰33ؤG 4%[$]kdfcm+KX~ùj;̟twh'Bɳ٦b7镦5h*DUȁj9[+ ;KK+w{̨) <+>MGޞ ET+Hҷ3gE/ -+,X~a5mHBw C|yLj?~>Iq H`1%M:`@qdTxbzD{^Ē@Eiӂ*RtbR QXEyّ/3XwrTpKH)N裇h'Ys͏Zne^~ fbI4ug^5R5Kv1g:Yr%❆&xU0~ (Z'uSu=^)Yl.uM$]O(4jVj*%䓇 )IkR }ڳκG^%vN42ߞnnnQ4(N:>D݈nt%jFs.iE>Ʌzbud+ KA͋%<2D>\FrT)wRJ/t#ߡgxap0Y֢Ipđ6)M!3 099Z ୧u|Td(JQ"CD+rh+9f2{ @%ّ(ҽ$x;5WAXB a%Ya% _(XZGEEqn$W2r|$!gHpp &o/b*w MHG|ѶSEyydt9@RfeD$qbZ B1@j.qCMk&nh 4; xs=|s?6dl8xGfrA!AHĝ.tYg UYXs$J8<]Hv&d)sҘjϤQbIPsp`M{D ֲfMф8G7&DqmTsȎFCmUZ91dXƐ;gEWiRTzm6jiP; S(9 y,XC4 hKzV<9 f5wܚp5s"SDV{~]1 XoClC)b+M%B4\jM//QʽU%$ _nн^{+7fPM$3%ۮSbN[c@5'<e? Sd[9~?I%&]XĊ-Ro%l0E fJ,lJ #ڤ: s!ẋA/+ mJAAiCN:0BRNȔ0#K $UB,'PN #O ns<=^vZ*zь<%Uktv+Jmi%[BsS灋t@贴TN]]U&@::ifĸdVlrvkqc$3:<]Fqgՙwuض#s=[;ғj~FjU/viҢMnvҐ0[vkM |/+| oK|RG*9` 5l.QujJm&^5zCKJIyڥp9q38Np1&2ˊ\Y]1. '&&›Xs38àkd=Kti]b[n` m ~2NsY:\oO;''UJ}GLq-gQN䚗Ts[nE$#;SA'{p*ϨCmq {dJ?uYCSYOpkqcj5Vg.ioH*ޝ5uMwMS&{eb\Чvk_4]EvYgs<Wx^zWzW`(yNw*(&h6 <8EVbTBK&Q*CX|ezFMlN'WNvMqmQCRc}B'G(R}O-+eI^wT+558KMr-Cs[ąyK*Inw@ *4(Hhx;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC9.txt0000644000175000017500000000016206542432107022537 0ustar mohuramohuraV-Bnoce jsou svtky klidu a pohody.-A P-Bed tdry`m dnem je vak v kad domcnosti -A velmi ru-Bno.-A vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC1.hex0000644000175000017500000000066506542437076022516 0ustar mohuramohura +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 00000000: 48 65 6c 6c 6f 0a 47 75 74 65 6e 20 54 61 67 0a Hello.Guten Tag. 00000010: 47 72 fc df 20 47 6f 74 74 0a 1b 24 28 42 24 33 Gr.. Gott..$(B$3 00000020: 24 73 24 4b 24 41 24 4f 1b 28 42 0a 1b 24 28 43 $s$K$A$O.(B..$(C 00000030: 3e 48 33 67 47 4f 3c 3c 3f 64 1b 28 42 0a 1b 24 >H3gGO<).(B. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC2.hex0000644000175000017500000000522706542437076022516 0ustar mohuramohura +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 00000000: 48 65 6c 6c 6f 20 77 6f 72 6c 64 20 20 5c 49 48 Hello world \IH 00000010: 65 6c 6c 6f 20 77 6f 72 6c 64 20 20 5c 42 48 65 ello world \BHe 00000020: 6c 6c 6f 20 77 6f 72 6c 64 5c 44 0a 47 72 fc df llo world\D.Gr.. 00000030: 20 47 6f 74 74 20 20 5c 49 47 72 fc df 20 47 6f Gott \IGr.. Go 00000040: 74 74 20 20 5c 42 47 72 fc df 20 47 6f 74 74 5c tt \BGr.. Gott\ 00000050: 44 0a 5c 66 5c 4e 47 75 74 65 6e 20 54 61 67 20 D.\f\NGuten Tag 00000060: 20 5c 49 47 75 74 65 6e 20 54 61 67 20 20 5c 42 \IGuten Tag \B 00000070: 47 75 74 65 6e 20 54 61 67 5c 2e 0a 5c 74 5c 4e Guten Tag\..\t\N 00000080: 47 75 74 65 6e 20 54 61 67 20 20 5c 49 47 75 74 Guten Tag \IGut 00000090: 65 6e 20 54 61 67 20 20 5c 42 47 75 74 65 6e 20 en Tag \BGuten 000000a0: 54 61 67 5c 2e 0a 5c 68 5c 4e 47 75 74 65 6e 20 Tag\..\h\NGuten 000000b0: 54 61 67 20 20 5c 49 47 75 74 65 6e 20 54 61 67 Tag \IGuten Tag 000000c0: 20 20 5c 42 47 75 74 65 6e 20 54 61 67 5c 2e 0a \BGuten Tag\.. 000000d0: 5c 63 5c 4e 47 75 74 65 6e 20 54 61 67 20 20 5c \c\NGuten Tag \ 000000e0: 49 47 75 74 65 6e 20 54 61 67 20 20 5c 42 47 75 IGuten Tag \BGu 000000f0: 74 65 6e 20 54 61 67 5c 2e 0a 5c 66 5c 4e 5c 28 ten Tag\..\f\N\( +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 00000100: 20 47 55 54 45 4e 20 54 41 47 21 20 5c 29 5c 2e GUTEN TAG! \)\. 00000110: 0a 1b 24 28 42 45 6c 35 7e 1b 28 42 20 1b 24 28 ..$(BEl5~.(B .$( 00000120: 42 24 33 24 73 24 4b 24 41 24 4f 1b 28 42 20 0a B$3$s$K$A$O.(B . 00000130: 5c 66 5c 4e 57 6f 6e 64 65 72 20 1b 24 28 42 35 \f\NWonder .$(B5 00000140: 7e 45 54 1b 28 42 20 20 5c 42 57 6f 6e 64 65 72 ~ET.(B \BWonder 00000150: 20 1b 24 28 42 35 7e 45 54 1b 28 42 5c 2e 0a 5c .$(B5~ET.(B\..\ 00000160: 74 5c 4e 57 6f 6e 64 65 72 20 1b 24 28 42 35 7e t\NWonder .$(B5~ 00000170: 45 54 1b 28 42 20 20 5c 42 57 6f 6e 64 65 72 20 ET.(B \BWonder 00000180: 1b 24 28 42 35 7e 45 54 1b 28 42 5c 2e 0a 5c 68 .$(B5~ET.(B\..\h 00000190: 5c 4e 57 6f 6e 64 65 72 20 1b 24 28 42 35 7e 45 \NWonder .$(B5~E 000001a0: 54 1b 28 42 20 20 5c 42 57 6f 6e 64 65 72 20 1b T.(B \BWonder . 000001b0: 24 28 42 35 7e 45 54 1b 28 42 5c 2e 0a 5c 63 5c $(B5~ET.(B\..\c\ 000001c0: 4e 57 6f 6e 64 65 72 20 1b 24 28 42 35 7e 45 54 NWonder .$(B5~ET 000001d0: 1b 28 42 20 20 5c 42 57 6f 6e 64 65 72 20 1b 24 .(B \BWonder .$ 000001e0: 28 42 35 7e 45 54 1b 28 42 5c 2e 0a 1b 24 28 43 (B5~ET.(B\...$(C 000001f0: 3e 48 33 67 47 4f 3c 3c 3f 64 1b 28 42 0a 1b 24 >H3gGO<).(B. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC3.hex0000644000175000017500000001043706542437076022516 0ustar mohuramohura +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 00000000: 5c 42 1b 24 28 42 42 3f 38 40 38 6c 4a 38 3e 4f \B.$(BB?8@8lJ8>O 00000010: 24 4e 4e 63 1b 28 42 0a 41 6e 20 65 78 61 6d 70 $NNc.(B.An examp 00000020: 6c 65 20 6f 66 20 6d 75 6c 74 69 6c 69 6e 67 75 le of multilingu 00000030: 61 6c 20 74 65 78 74 5c 2e 0a 0a 22 1b 2d 4c cd al text\...".-L. 00000040: d4 e0 d0 d2 e1 e2 d2 e3 d9 e2 d5 22 20 1b 24 28 ..........." .$( 00000050: 42 24 4f 21 22 31 51 38 6c 24 47 1b 28 42 20 48 B$O!"1Q8l$G.(B H 00000060: 65 6c 6c 6f 20 1b 24 28 42 24 48 24 24 24 26 30 ello .$(B$H$$$&0 00000070: 55 4c 23 24 4e 25 6d 25 37 25 22 38 6c 24 47 1b UL#$N%m%7%"8l$G. 00000080: 28 42 1b 2d 41 0a 1b 24 28 42 24 39 21 23 46 7c (B.-A..$(B$9!#F| 00000090: 4b 5c 38 6c 24 4a 24 69 21 56 24 33 24 73 24 4b K\8l$J$i!V$3$s$K 000000a0: 24 41 24 4f 21 57 24 48 24 24 24 26 30 55 4c 23 $A$O!W$H$$$&0UL# 000000b0: 24 47 24 39 24 4d 21 23 25 2e 25 6a 25 37 1b 28 $G$9$M!#%.%j%7.( 000000c0: 42 0a 1b 24 28 42 25 22 24 4e 38 40 4d 55 24 47 B..$(B%"$N8@MU$G 000000d0: 24 4f 21 22 1b 28 42 22 1b 2d 46 c3 e5 e9 dc 20 $O!".(B".-F.... 000000e0: f3 e1 f2 22 20 1b 24 28 42 24 48 38 40 24 26 24 ..." .$(B$H8@$&$ 000000f0: 3d 24 26 24 47 24 39 21 23 43 66 39 71 24 4e 38 =$&$G$9!#Cf9q$N8 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 00000100: 40 4d 55 1b 28 42 1b 2d 41 0a 1b 24 28 42 24 47 @MU.(B.-A..$(B$G 00000110: 24 4f 21 22 21 56 1b 24 28 41 44 63 3a 43 1b 24 $O!"!V.$(ADc:C.$ 00000120: 28 42 21 57 24 47 24 39 21 23 25 4f 25 73 25 30 (B!W$G$9!#%O%s%0 00000130: 25 6b 24 47 24 4f 21 22 21 56 1b 24 28 43 3e 48 %k$G$O!"!V.$(C>H 00000140: 33 67 47 4f 3c 3c 3f 64 1b 24 28 42 21 57 24 48 3gGO<H3gGO<H1f7!?d.(B?.. 00000020: 1b 24 28 43 3e 5f 31 38 34 42 47 58 35 35 1b 28 .$(C>_184BGX55.( 00000030: 42 2c 20 1b 24 28 43 41 24 31 38 34 42 38 78 43 B, .$(CA$184B8xC 00000040: 44 3f 64 1b 28 42 2e 0a D?d.(B.. vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/Samples/CTEXT/DOC99.hex0000644000175000017500000000261706542437077022617 0ustar mohuramohura +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 00000000: 1b 24 28 42 24 33 24 4e 25 5a 21 3c 25 38 24 47 .$(B$3$N%Z!<%8$G 00000010: 3b 48 24 6f 24 6c 24 46 24 24 24 6b 32 68 41 7c ;H$o$l$F$$$k2hA| 00000020: 24 4b 24 68 24 6b 42 3f 38 40 38 6c 4a 38 3d 71 $K$h$kB?8@8lJ8=q 00000030: 24 4f 21 22 1b 28 42 0a 1b 24 28 42 25 55 25 29 $O!".(B..$(B%U%) 00000040: 25 73 25 48 25 69 25 24 25 56 25 69 25 6a 1b 28 %s%H%i%$%V%i%j.( 00000050: 42 20 5c 42 56 46 6c 69 62 5c 4e 20 1b 24 28 42 B \BVFlib\N .$(B 00000060: 24 72 4d 78 4d 51 24 37 24 3f 25 57 25 6d 25 30 $rMxMQ$7$?%W%m%0 00000070: 25 69 25 60 1b 28 42 0a 5c 42 63 74 65 78 74 32 %i%`.(B.\Bctext2 00000080: 70 67 6d 5c 4e 20 1b 24 28 42 24 4b 24 68 24 6a pgm\N .$(B$K$h$j 00000090: 3a 6e 24 6a 24 5e 24 37 24 3f 21 23 1b 28 42 0a :n$j$^$7$?!#.(B. 000000a0: 0a 1b 24 28 42 33 51 40 6e 4d 35 3c 21 21 77 39 ..$(B3Q@nM5 #include #if defined(HAVE_STRING_H) || defined(STDC_HEADERS) # include #else # include #endif #include #include "ctext2pgm.h" #include "fontdef.h" void parse_args(int *argcp, char ***argvp); void usage(int level); void make_text_bitmap(FILE *fp, char *title); void parser(FILE *fp, VF_BITMAPLIST page_buff); void parser_eol(VF_BITMAPLIST *line_buff_p, VF_BITMAPLIST page_buff, int vposx, int vposy); void parser_check_wdir(int i, VF_BITMAPLIST *line_buff_p); void parser_wdir_push(int wdir, VF_BITMAPLIST *line_buff_p); void parser_wdir_pop(VF_BITMAPLIST *line_buff_p); void parser_wdir_do_push(int wdir, VF_BITMAPLIST *line_buff_p); void parser_wdir_do_pop(VF_BITMAPLIST *line_buff_p); int charset_wdirection(int charset); void parser_cmd(long code_point, VF_BITMAPLIST page_buff, int *charset_saved_p, int g, int *posxp, int *posyp); void parser_init(void); void draw_char(long code_point, VF_BITMAPLIST bmlist, int g, int *posxp, int *posyp); void put_bitmap(VF_BITMAPLIST buff, VF_BITMAP bm, int wdir, int *posxp, int *posyp); long cp_conv(long code_point, int i); void reverse_bitmap(VF_BITMAP bm); void swap_refpt_nextpt(VF_BITMAP bm); void change_fonts(int g); int try_font_open(int table_index); char* charset_name(int charset, char *if_unknown); void show_font_list(void); void wprint(char *str, int w); extern VF_BITMAP vf_alloc_bitmap(int,int); int input_encoding; int output_format; char *vflibcap; double magx, magy; int xpixel; int pixel; double baselineskip; int pix_reverse; int output_format; int minimum_image; int shrink_factor; double tab_skip; int wdirection; int page_width, page_height; int margin_x, margin_y; int line_typeset; int image_position_h, image_position_v; int default_family; int default_face; double eps_ptsize; /* For debugging */ int debug_state; int debug_r2l; int debug_font; int debug_page_bitmap; int debug_line_bitmap; int debug_char_bitmap; int debug_vflib; /* For encoding parser: parser states */ int current_family; /* current font family */ int current_face; /* current font face */ int current_reverse; /* reverse black and white of char */ int current_font_g[4]; /* current fonts for G0 and G1 */ int font_exists_g[4]; /* font existence flag for G0 and G1 */ int current_wdir_g[4]; int type_g[4]; /* 94/96 of G0/G1 */ int charset_g[4]; /* charset IDs of G0/G1 */ int chlen_g[4]; /* bytes per char of G0/G1 */ struct s_dir_stack_elem dir_stack[MAX_DIR_STACK]; /* direction stack */ int dir_sp; /* stack pointer */ int nchars_in_line; /* Parser parameters */ int use_esc; int use_csi; int use_si; int use_so; int use_ss2; int use_ss3; int use_sjis; int use_g1; int use_g2; int use_g3; int main(int argc, char **argv) { FILE *fp; int i; input_encoding = ENC_DEFAULT; output_format = OFORM_DEFAULT; minimum_image = 0; vflibcap = DEFAULT_VFLIBCAP; magx = DEFAULT_MAG; magy = DEFAULT_MAG; pixel = DEFAULT_PIXEL_SIZE; baselineskip = DEFAULT_BASELINESKIP; shrink_factor = 1; tab_skip = DEFAULT_TAB_SKIP; pix_reverse = DEFAULT_REVERSE; wdirection = WDIR_DEFAULT; xpixel = -1; eps_ptsize = -1; margin_x = DEFAULT_MARGIN; margin_y = DEFAULT_MARGIN; page_width = -1; page_height = -1; line_typeset = DEFAULT_LINE_POS; image_position_h = VF_IMAGEOUT_POSITION_NONE; image_position_v = VF_IMAGEOUT_POSITION_NONE; default_family = FAM_DEFAULT; default_face = FACE_DEFAULT; current_reverse = 0; debug_state = 0; debug_r2l = 0; debug_font = 0; debug_page_bitmap = 0; debug_line_bitmap = 0; debug_char_bitmap = 0; debug_vflib = 0; argc--; argv++; parse_args(&argc, &argv); current_family = default_family; current_face = default_face; if (debug_vflib == 1){ if (vflibcap == NULL) printf("VF_Init(NULL, NULL)\n"); else printf("VF_Init(\"%s\", NULL)\n", vflibcap); } if (VF_Init(vflibcap, NULL) < 0){ switch (vf_error){ case VF_ERR_NO_VFLIBCAP: PR2("ctext2pgm: vflibcap is not found: \"%s\".\n", (vflibcap==NULL)?DEFAULT_VFLIBCAP:vflibcap); break; default: PR1("ctext2pgm: failed to initialize.\n"); break; } exit(0); } for (i = 0; font_info[i].font_id >= 0; i++){ font_info[i].font_id = NOT_OPENED; } if (argc == 0){ make_text_bitmap(stdin, "stdin"); } else { if ((fp = fopen(argv[0], "r")) == NULL){ perror(argv[0]); exit(1); } make_text_bitmap(fp, argv[0]); fclose(fp); } return 0; } void parse_args(int *argcp, char ***argvp) { int argc; char **argv; argc = *argcp; argv = *argvp; while ((argc > 0) && (*argv[0] == '-')){ if (strcmp(argv[0], "-v") == 0){ vflibcap = argv[1]; argc--; argv++; } else if (strcmp(argv[0], "-m") == 0){ magx = magy = atof(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-mx") == 0){ magx = atof(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-my") == 0){ magy = atof(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-b") == 0){ baselineskip = atof(argv[1]); if (baselineskip <= 0) baselineskip = 1.2; argc--; argv++; } else if (strcmp(argv[0], "-bbx") == 0){ minimum_image = 1; } else if (strcmp(argv[0], "-g") == 0){ margin_x = margin_y = atoi(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-gx") == 0){ margin_x = atoi(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-gy") == 0){ margin_y = atoi(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-r") == 0){ pix_reverse = 1; } else if (strcmp(argv[0], "-14") == 0){ pixel = 14; } else if (strcmp(argv[0], "-16") == 0){ pixel = 16; } else if (strcmp(argv[0], "-18") == 0){ pixel = 18; } else if (strcmp(argv[0], "-24") == 0){ pixel = 24; } else if (strcmp(argv[0], "-scale") == 0){ pixel = 0; xpixel = atoi(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-fixed") == 0){ default_family = FAM_FIXED; } else if (strcmp(argv[0], "-times") == 0){ default_family = FAM_TIMES; } else if (strcmp(argv[0], "-helv") == 0){ default_family = FAM_HELV; } else if (strcmp(argv[0], "-cour") == 0){ default_family = FAM_COUR; } else if (strcmp(argv[0], "-normal") == 0){ default_face = FACE_NORMAL; } else if (strcmp(argv[0], "-bold") == 0){ default_face = FACE_BOLD; } else if (strcmp(argv[0], "-italic") == 0){ default_face = FACE_ITALIC; } else if (strcmp(argv[0], "-ctext") == 0){ input_encoding = ENC_CTEXT; } else if (strcmp(argv[0], "-iso-8859-1") == 0){ input_encoding = ENC_ISO8859_1; } else if (strcmp(argv[0], "-latin-1") == 0){ input_encoding = ENC_ISO8859_1; } else if (strcmp(argv[0], "-iso-8859-2") == 0){ input_encoding = ENC_ISO8859_2; } else if (strcmp(argv[0], "-latin-2") == 0){ input_encoding = ENC_ISO8859_2; } else if (strcmp(argv[0], "-iso-8859-3") == 0){ input_encoding = ENC_ISO8859_3; } else if (strcmp(argv[0], "-latin-3") == 0){ input_encoding = ENC_ISO8859_3; } else if (strcmp(argv[0], "-iso-8859-4") == 0){ input_encoding = ENC_ISO8859_4; } else if (strcmp(argv[0], "-latin-4") == 0){ input_encoding = ENC_ISO8859_4; } else if (strcmp(argv[0], "-iso-8859-5") == 0){ input_encoding = ENC_ISO8859_5; } else if (strcmp(argv[0], "-cyrillic") == 0){ input_encoding = ENC_ISO8859_5; } else if (strcmp(argv[0], "-russian") == 0){ input_encoding = ENC_ISO8859_5; } else if (strcmp(argv[0], "-iso-8859-6") == 0){ input_encoding = ENC_ISO8859_6; } else if (strcmp(argv[0], "-iso-8859-7") == 0){ input_encoding = ENC_ISO8859_7; } else if (strcmp(argv[0], "-greek") == 0){ input_encoding = ENC_ISO8859_7; } else if (strcmp(argv[0], "-iso-8859-8") == 0){ input_encoding = ENC_ISO8859_8; } else if (strcmp(argv[0], "-hebrew") == 0){ input_encoding = ENC_ISO8859_8; } else if (strcmp(argv[0], "-iso-8859-9") == 0){ input_encoding = ENC_ISO8859_9; } else if (strcmp(argv[0], "-iso-2022-jp") == 0){ input_encoding = ENC_ISO2022_JP; } else if (strcmp(argv[0], "-junet") == 0){ input_encoding = ENC_ISO2022_JP; #if 0 } else if (strcmp(argv[0], "-iso-2022-kr") == 0){ input_encoding = ENC_ISO2022_KR; } else if (strcmp(argv[0], "-iso-2022-cn") == 0){ input_encoding = ENC_ISO2022_CN; #endif } else if (strcmp(argv[0], "-euc-jp") == 0){ input_encoding = ENC_EUC_JP1; } else if (strcmp(argv[0], "-euc-jp1") == 0){ input_encoding = ENC_EUC_JP1; } else if (strcmp(argv[0], "-euc-jp2") == 0){ input_encoding = ENC_EUC_JP2; } else if (strcmp(argv[0], "-euc-kr") == 0){ input_encoding = ENC_EUC_KR; } else if (strcmp(argv[0], "-euc-ch") == 0){ input_encoding = ENC_EUC_CH_GB; } else if (strcmp(argv[0], "-euc-gb") == 0){ input_encoding = ENC_EUC_CH_GB; } else if (strcmp(argv[0], "-euc-cns") == 0){ input_encoding = ENC_EUC_CH_CNS; } else if (strcmp(argv[0], "-sjis") == 0){ input_encoding = ENC_SJIS; } else if (strcmp(argv[0], "-l2r") == 0){ wdirection = WDIR_L2R; } else if (strcmp(argv[0], "-r2l") == 0){ wdirection = WDIR_R2L; } else if (strcmp(argv[0], "-pbm") == 0){ output_format = OFORM_PBM_ASCII; } else if (strcmp(argv[0], "-pgm") == 0){ output_format = OFORM_PGM_RAW; } else if (strcmp(argv[0], "-pbm-ascii") == 0){ output_format = OFORM_PBM_ASCII; } else if (strcmp(argv[0], "-pgm-ascii") == 0){ output_format = OFORM_PGM_ASCII; #if 0 } else if (strcmp(argv[0], "-pbm-raw") == 0){ output_format = OFORM_PBM_RAW; #endif } else if (strcmp(argv[0], "-pgm-raw") == 0){ output_format = OFORM_PGM_RAW; } else if (strcmp(argv[0], "-eps") == 0){ output_format = OFORM_EPS; } else if (strcmp(argv[0], "-eps-ptsize") == 0){ if ((eps_ptsize = atof(argv[1])) <= 0) eps_ptsize = DEFAULT_EPS_POINT_SIZE; argc--; argv++; } else if (strcmp(argv[0], "-ascii-art") == 0){ output_format = OFORM_ASCII_ART; } else if (strcmp(argv[0], "-ascii-art-h") == 0){ output_format = OFORM_ASCII_ART; } else if (strcmp(argv[0], "-ascii-art-v") == 0){ output_format = OFORM_ASCII_ART_V; } else if (strcmp(argv[0], "-none") == 0){ output_format = OFORM_NONE; } else if (strcmp(argv[0], "-s") == 0){ shrink_factor = atoi(argv[1]); argc--; argv++; if (shrink_factor <= 0){ PR1("Shrink factor is too small. "); shrink_factor = 1; } if (shrink_factor > 8){ PR1("Shrink factor is too large. "); shrink_factor = 8; } } else if (strcmp(argv[0], "-tab") == 0){ tab_skip = atof(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-pw") == 0){ page_width = atoi(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-ph") == 0){ page_height = atoi(argv[1]); argc--; argv++; } else if (strcmp(argv[0], "-flush-left") == 0){ line_typeset = LINE_FLUSH_LEFT; image_position_h = VF_IMAGEOUT_POSITION_LEFT; } else if (strcmp(argv[0], "-flush-right") == 0){ line_typeset = LINE_FLUSH_RIGHT; image_position_h = VF_IMAGEOUT_POSITION_RIGHT; } else if (strcmp(argv[0], "-center") == 0){ line_typeset = LINE_CENTER; image_position_h = VF_IMAGEOUT_POSITION_CENTER; image_position_v = VF_IMAGEOUT_POSITION_CENTER; } else if (strcmp(argv[0], "-center-line") == 0){ line_typeset = LINE_CENTER; } else if (strcmp(argv[0], "-left-line") == 0){ line_typeset = LINE_FLUSH_LEFT; } else if (strcmp(argv[0], "-right-line") == 0){ line_typeset = LINE_FLUSH_RIGHT; } else if (strcmp(argv[0], "-center-image") == 0){ image_position_h = VF_IMAGEOUT_POSITION_CENTER; image_position_v = VF_IMAGEOUT_POSITION_CENTER; } else if (strcmp(argv[0], "-h-center-image") == 0){ image_position_h = VF_IMAGEOUT_POSITION_CENTER; } else if (strcmp(argv[0], "-v-center-image") == 0){ image_position_v = VF_IMAGEOUT_POSITION_CENTER; } else if (strcmp(argv[0], "-left-image") == 0){ image_position_h = VF_IMAGEOUT_POSITION_LEFT; } else if (strcmp(argv[0], "-right-image") == 0){ image_position_h = VF_IMAGEOUT_POSITION_RIGHT; } else if (strcmp(argv[0], "-top-image") == 0){ image_position_v = VF_IMAGEOUT_POSITION_TOP; } else if (strcmp(argv[0], "-bottom-image") == 0){ image_position_v = VF_IMAGEOUT_POSITION_BOTTOM; } else if (strcmp(argv[0], "-ds") == 0){ debug_state = 1; } else if (strcmp(argv[0], "-dr2l") == 0){ debug_r2l = 1; } else if (strcmp(argv[0], "-df") == 0){ debug_font = 1; } else if (strcmp(argv[0], "-dbc") == 0){ debug_char_bitmap = 1; } else if (strcmp(argv[0], "-dbl") == 0){ debug_line_bitmap = 1; } else if (strcmp(argv[0], "-dbp") == 0){ debug_page_bitmap = 1; } else if (strcmp(argv[0], "-dvflib") == 0){ debug_vflib = 1; } else if (strcmp(argv[0], "-dall") == 0){ debug_state = 1; debug_r2l = 1; debug_font = 1; debug_char_bitmap = 1; debug_line_bitmap = 1; debug_page_bitmap = 1; debug_vflib = 1; } else if (strcmp(argv[0], "-font-list") == 0){ show_font_list(); exit(0); } else if (strcmp(argv[0], "-h") == 0){ usage(0); } else if (strcmp(argv[0], "-help") == 0){ usage(0); } else if (strcmp(argv[0], "-more-help") == 0){ usage(1); } else if (strcmp(argv[0], "-version") == 0){ printf("%s %s\n", PROG_NAME, VERSION); exit(0); } else { printf("Unknown option: %s\n", *argv); usage(0); } argc--; argv++; } *argcp = argc; *argvp = argv; } void usage(int level) { PR3("%s --- %s\n", PROG_NAME, "Make a bitmap of multilingual text in compound text format"); PR2("Usage: %s [OPTIONS] [FILE]\n", PROG_NAME); PR1("Options:\n"); PR2(" -v FILE vflibcap file (default: %s)\n", DEFAULT_VFLIBCAP); PR1(" -bbx generate a minimun image file\n"); PR1(" -ctext, -euc-jp, -euc-kr, -euc-ch\n"); PR1(" select encoding of input text (default: -ctext)\n"); if (level > 0){ PR1(" -iso-8859-1, -iso-8859-2, ..., -iso-8859-9, \n"); PR1(" -latin-1, -latin-2, ..., -latin-4, -greek, -hebrew, -cyrillic\n"); PR1(" select encoding of input text (1-byte encoding)\n"); } PR1(" -times, -helv, -cour, -fixed\n"); PR1(" select times/helvetica/courie/fixed font family (default: times)\n"); PR1(" -normal, -bold, -italic\n"); PR1(" select normal/bold/italic font face\n"); PR1(" -14, -16, -18, -24\n"); PR2(" select 14-/16-/18-/24-dot font set (default: %d)\n", (int)DEFAULT_PIXEL_SIZE); PR1(" -scale PIXEL\n"); PR1(" select scalable font set and specify pixel size.\n"); if (level > 0){ PR1(" -center, -flush-left, -flush-right\n"); PR1(" Each line is centered or flushed left/right.\n"); PR1(" -l2r, -r2l\n"); PR1(" Select writing directionality left-to-right/right-to-left.\n"); PR2(" -b SKIP baseline skip (default: %.2f)\n", (double)DEFAULT_BASELINESKIP); } PR1(" -pbm-ascii, -pgm-ascii, -pgm-raw, -eps, -ascii-art, -none\n"); PR1(" select output format (default: -pgm-ascii)\n"); if (level > 0){ PR1(" -eps-ptsize POINT\n"); PR1(" select point size of characters (EPS mode only)\n"); } PR2(" -s N shrink factor for PGM output (default: %d)\n", (int)DEFAULT_SHRINK); if (level > 0){ PR1(" -g N vertical and horizontal margins in pixels\n"); } PR1(" -gx N, -gy N\n"); PR1(" horizontal/vertical margin in pixels\n"); PR1(" -r reverse black and white\n"); PR2(" -tab N Tab skip (default: %d)\n", DEFAULT_TAB_SKIP); PR1(" -font-list print list of defined fonts\n"); PR1(" -more-help print full descriptions of command line options\n"); if (level > 0){ PR1(" -ds Print state transision of a compound text parser\n"); PR1(" -df Print font open processes\n"); PR1(" -dr2l Print state transision of bi-directionality system\n"); PR1(" -dbc Print image of each chracter in ascii-art form\n"); PR1(" -dbl Print image of each line in ascii-art form\n"); PR1(" -dbp Print image of a page in ascii-art form\n"); } exit(0); } void make_text_bitmap(FILE *fp, char *title) { struct vf_s_bitmaplist the_page_buff; VF_BITMAP bm; VF_BitmapListInit(&the_page_buff); parser(fp, &the_page_buff); { VF_BITMAP bm0; bm0 = VF_BitmapListCompose(&the_page_buff); VF_BitmapListFinish(&the_page_buff); if (minimum_image == 1){ bm = VF_MinimizeBitmap(bm0); VF_FreeBitmap(bm0); } else { bm = bm0; } } bm->off_x = 0; bm->off_y = bm->bbx_height; bm->mv_x = bm->bbx_width; bm->mv_y = 0; if (debug_page_bitmap == 1) VF_DumpBitmap(bm); switch (output_format){ default: case OFORM_PBM_ASCII: VF_ImageOut_PBMAscii(bm, stdout, page_width, page_height, image_position_h, image_position_v, margin_x, margin_x, margin_y, margin_y, pix_reverse, shrink_factor, "ctext2pgm", title); break; case OFORM_PGM_ASCII: VF_ImageOut_PGMAscii(bm, stdout, page_width, page_height, image_position_h, image_position_v, margin_x, margin_x, margin_y, margin_y, pix_reverse, shrink_factor, "ctext2pgm", title); break; #if 0 case OFORM_PBM_RAW: break; #endif case OFORM_PGM_RAW: VF_ImageOut_PGMRaw(bm, stdout, page_width, page_height, image_position_h, image_position_v, margin_x, margin_x, margin_y, margin_y, pix_reverse, shrink_factor, "ctext2pgm", title); break; case OFORM_EPS: VF_ImageOut_EPS(bm, stdout, page_width, page_height, image_position_h, image_position_v, margin_x, margin_x, margin_y, margin_y, pix_reverse, shrink_factor, "ctext2pgm", title, eps_ptsize, (pixel!=0) ? pixel : xpixel); break; case OFORM_ASCII_ART: VF_ImageOut_ASCIIArt(bm, stdout, page_width, page_height, image_position_h, image_position_v, margin_x, margin_x, margin_y, margin_y, pix_reverse, shrink_factor); break; case OFORM_ASCII_ART_V: VF_ImageOut_ASCIIArtV(bm, stdout, page_width, page_height, image_position_h, image_position_v, margin_x, margin_x, margin_y, margin_y, pix_reverse, shrink_factor); break; case OFORM_NONE: break; } } void parser(FILE *fp, VF_BITMAPLIST page_buff) { int chlen, chmask, ch, ch1, ch2, ch3, ch4; long code_point, last_code_point; int charset_saved; int v_pos_x, v_pos_y, lineskip; int g, i; VF_BITMAPLIST line_buff; parser_init(); v_pos_x = 0; v_pos_y = 0; if (pixel > 0) lineskip = - pixel * baselineskip * magy; else lineskip = - xpixel * baselineskip * magy; last_code_point = 0; nchars_in_line = 0; dir_sp = 0; dir_stack[dir_sp].dir = wdirection; dir_stack[dir_sp].h_pos_x = 0; dir_stack[dir_sp].h_pos_y = 0; VF_BitmapListInit(&dir_stack[dir_sp].the_line_buff); line_buff = &dir_stack[dir_sp].the_line_buff; while ((ch = getc(fp)) != EOF){ /* HT (0x09) */ if (ch == '\t'){ int p; if (debug_state == 1) printf("Code point: 0x%02x\n", ch); p = tab_skip * ((pixel != 0) ? pixel : xpixel); if ((dir_stack[dir_sp].h_pos_x >= 0) && (dir_stack[dir_sp].dir == WDIR_L2R)){ dir_stack[dir_sp].h_pos_x = ((dir_stack[dir_sp].h_pos_x / p) + 1) * p; } else { dir_stack[dir_sp].h_pos_x = ((dir_stack[dir_sp].h_pos_x / p) - 1) * p; } nchars_in_line++; /* CR (0x0d) */ } else if (ch == 0x0d){ ; /* LF (0x0a) */ } else if (ch == 0x0a){ nchars_in_line = 0; parser_eol(&line_buff, page_buff, v_pos_x, v_pos_y); v_pos_x = 0; v_pos_y += lineskip; dir_stack[dir_sp].h_pos_x = 0; dir_stack[dir_sp].h_pos_y = 0; /* ESC (0x1b) */ } else if ((use_esc == 1) && (ch == 0x1b)){ if ((ch1 = getc(fp)) == EOF) goto end_of_file; if ((ch2 = getc(fp)) == EOF) goto end_of_file; if (debug_state == 1) printf("Escape Sequence: %02x %02x %02x\n", 0x1b, ch1, ch2); switch (ch1){ default: fprintf(stderr, "Parsing Error: %02x %02x %02x\n", 0x1b, ch1, ch2); break; case 0x28: type_g[0] = TYPEID94; charset_g[0] = CSID(TYPEID94,ch2); chlen_g[0] = 1; current_wdir_g[0] = charset_wdirection(charset_g[0]); if (debug_state == 1) printf("Designate a 94 charset \"%s\" to G0, G0 is invoked to GL\n", charset_name(charset_g[0], "???")); change_fonts(0); g = 0; break; case 0x29: type_g[1] = TYPEID94; charset_g[1] = CSID(TYPEID94,ch2); chlen_g[1] = 1; current_wdir_g[1] = charset_wdirection(charset_g[1]); if (debug_state == 1) printf("Designate a 94 charset \"%s\" to G1, G1 is invoked to GR\n", charset_name(charset_g[1], "???")); change_fonts(1); g = 1; break; case 0x2d: type_g[1] = TYPEID96; charset_g[1] = CSID(TYPEID96,ch2); chlen_g[1] = 1; current_wdir_g[1] = charset_wdirection(charset_g[1]); if (debug_state == 1) printf("Designate a 96 charset \"%s\" to G1, G1 is invoked to GR\n", charset_name(charset_g[1], "???")); change_fonts(1); g = 1; break; case 0x24: /* Designate a 94^n charset to G0 or G1 */ switch (ch2){ case 0x28: /* XXX: support for 94^2 charsets only */ if ((ch3 = getc(fp)) == EOF) goto end_of_file; type_g[0] = TYPEID94_2; charset_g[0] = CSID(TYPEID94_2,ch3); chlen_g[0] = 2; current_wdir_g[0] = charset_wdirection(charset_g[0]); if (debug_state == 1) printf("Designate a 94^2 charset \"%s\" to G0, " "G0 is invoked to GL\n", charset_name(charset_g[0], "???")); change_fonts(0); g = 0; break; case 0x29: /* XXX: support for 94^2 charsets only */ if ((ch3 = getc(fp)) == EOF) goto end_of_file; type_g[1] = TYPEID94_2; charset_g[1] = CSID(TYPEID94_2,ch3); chlen_g[1] = 2; current_wdir_g[1] = charset_wdirection(charset_g[1]); if (debug_state == 1) printf("Designate a 94^2 charset \"%s\" to G1, " "G1 is invoked to GR\n", charset_name(charset_g[1], "???")); change_fonts(1); g = 1; break; case 0x40: /* JIS C6226-1978 */ case 0x41: /* GB 2312 */ case 0x42: /* JIS X 0208 */ /* XXX: support for 2-byte charsets only */ type_g[0] = TYPEID94_2; charset_g[0] = CSID(TYPEID94_2,ch2); chlen_g[0] = 2; current_wdir_g[0] = charset_wdirection(charset_g[0]); if (debug_state == 1) printf("Designate a 94^2 charset \"%s\" to G0, " "G0 is invoked to GL\n", charset_name(charset_g[0], "???")); change_fonts(0); g = 0; break; default: g = -1; break; } if (debug_r2l == 1) printf("Charset directionality: %s %s\n", charset_name(charset_g[g], "???"), (charset_g[g]==WDIR_L2R)?"left-to-right":"right-to-left"); parser_check_wdir(g, &line_buff); break; } /* SI (0x0f) */ } else if ((use_si == 1) && (ch == 0x0f)){ ; /* SO (0x0e) */ } else if ((use_so == 1) && (ch == 0x0e)){ ; /* CSI (0x9b) */ } else if ((use_csi == 1) && (ch == 0x9b)){ if ((ch1 = getc(fp)) == EOF) goto end_of_file; switch (ch1){ case 0x31: /* begin left-to-right text */ if ((ch2 = getc(fp)) == EOF) goto end_of_file; if (ch2 != 0x5d) continue; if ((debug_r2l == 1) || (debug_state == 1)) printf("Begin left-to-right string\n"); parser_wdir_push(WDIR_L2R, &line_buff); break; case 0x32: /* begin right-to-left text */ if ((ch2 = getc(fp)) == EOF) goto end_of_file; if (ch2 != 0x5d) continue; if ((debug_r2l == 1) || (debug_state == 1)) printf("Begin right-to-left string\n"); parser_wdir_push(WDIR_R2L, &line_buff); break; case 0x5d: /* end of string */ if ((debug_r2l == 1) || (debug_state == 1)) printf("End of string\n"); parser_wdir_pop(&line_buff); break; default: ; } /* Code points */ } else { if (use_sjis == 0){ /* non-sjis encodings */ if ((use_ss2 == 1) && (ch == 0x8e)){ /* SS2: 0x8e */ code_point = 0; chlen = chlen_g[2] + 1; chmask = 0xff; g = 2; } else if ((use_ss3 == 1) && (ch == 0x8f)){ /* SS3: 0x8f */ code_point = 0; chlen = chlen_g[3] + 1; chmask = 0x7f; g = 3; } else { code_point = (long) ch; chlen = ((code_point & 0x80) == 0) ? chlen_g[0] : chlen_g[1]; chmask = (chlen >= 2) ? 0x7f : 0xff; g = ((code_point & 0x80) == 0) ? 0 : 1; } code_point = code_point & chmask; for (i = 1; i < chlen; i++){ if ((ch = getc(fp)) == EOF) goto end_of_file; code_point = code_point * 256 + (long)(ch & chmask); } } else { /* sjis encoding */ ch1 = ch; if (((ch1 >= 129) && (ch1 <= 159)) || ((ch1 >= 224) && (ch1 <=239))){ /* 1st byte of Kanji */ if ((ch2 = getc(fp)) == EOF) goto end_of_file; if ((ch2 >= 64) && (ch2 <= 252)){ /* 2nd byte of Kanji */ ch3 = (((ch1 - ((ch1<160)?112:176)) << 1) - ((ch2<159)?1:0)); ch4 = ch2 - ((ch2<159) ? (ch2>127?32:31) : 126); code_point = ch3 * 256 + ch4; } else code_point = 0x2121; g = 1; } else if ((ch >= 161) && (ch <= 223)){ /* kana, 1byte */ code_point = (long) ch; g = 2; } else { /* jisx0201 */ code_point = (long) ch; g = 0; } } if (last_code_point != (long)'\\'){ /* characters to be printed or backslash */ if (code_point != (long)'\\'){ /* print char */ last_code_point = 0; if (debug_state == 1){ if ((0x20 <= code_point) && (code_point < 0x7e)){ printf("Code point: 0x%lx '%c' (G%d)\n", code_point, (int)code_point, g); } else { printf("Code point: 0x%lx (G%d)\n", code_point, g); } } parser_check_wdir(g, &line_buff); draw_char(code_point, line_buff, g, &dir_stack[dir_sp].h_pos_x, &dir_stack[dir_sp].h_pos_y); nchars_in_line++; } else { /* a command by backslash */ last_code_point = code_point; } } else { /* backslash command */ parser_cmd(code_point, line_buff, &charset_saved, g, &dir_stack[dir_sp].h_pos_x, &dir_stack[dir_sp].h_pos_y); last_code_point = 0; } } } end_of_file: if (nchars_in_line > 0) /* the last line does not end by '\n' char */ parser_eol(&line_buff, page_buff, v_pos_x, v_pos_y); } void parser_eol(VF_BITMAPLIST *line_buff_p, VF_BITMAPLIST page_buff, int vposx, int vposy) { int x; VF_BITMAP line_bm; while (dir_sp > 0) parser_wdir_pop(line_buff_p); if ((line_bm = VF_BitmapListCompose(*line_buff_p)) == NULL){ PR1("No memory\n"); exit(1); } if (debug_line_bitmap == 1) VF_DumpBitmap(line_bm); VF_BitmapListFinish(*line_buff_p); switch (line_typeset){ default: case LINE_DEFAULT: x = vposx; break; case LINE_FLUSH_LEFT: if (wdirection == WDIR_R2L) swap_refpt_nextpt(line_bm); x = vposx; break; case LINE_FLUSH_RIGHT: if (wdirection == WDIR_L2R){ swap_refpt_nextpt(line_bm); x = vposx; } else { x = vposx - line_bm->bbx_width; } break; case LINE_CENTER: x = vposx - line_bm->bbx_width/2; break; } VF_BitmapListPut(page_buff, line_bm, x, vposy); } void parser_check_wdir(int i, VF_BITMAPLIST *line_buff_p) { if ((i < 0) || (1 < i)) return; if (debug_r2l == 1) printf("dir_stack[%d].dir=%s, current_wdir_g[%d]=%d\n", dir_sp, (dir_stack[dir_sp].dir==WDIR_L2R)?"WDIR_L2R":"WDIR_R2L", i, current_wdir_g[i]); if (dir_stack[dir_sp].dir != current_wdir_g[i]){ if (current_wdir_g[i] != wdirection){ if (current_wdir_g[i] == WDIR_L2R){ if (debug_r2l == 1) printf("Change directionality to left-to-right mode\n"); parser_wdir_push(WDIR_L2R, line_buff_p); } else { if (debug_r2l == 1) printf("Change directionality to right-to-left mode\n"); parser_wdir_push(WDIR_R2L, line_buff_p); } } else { if (debug_r2l == 1) printf("End of directionality change\n"); parser_wdir_pop(line_buff_p); } } } void parser_wdir_push(int wdir, VF_BITMAPLIST *line_buff_p) { if ((wdirection == WDIR_R2L) && (dir_sp == 1) && (wdir == WDIR_R2L)){ /* darty trick for right-to-left text */ parser_wdir_do_pop(line_buff_p); } else { parser_wdir_do_push(wdir, line_buff_p); } } void parser_wdir_pop(VF_BITMAPLIST *line_buff_p) { if ((wdirection == WDIR_R2L) && (dir_sp == 0) && (dir_stack[dir_sp].dir == WDIR_R2L)){ /* darty trick for right-to-left text */ parser_wdir_do_push(WDIR_L2R, line_buff_p); } else { parser_wdir_do_pop(line_buff_p); } } void parser_wdir_do_push(int wdir, VF_BITMAPLIST *line_buff_p) { int s; dir_sp++; dir_stack[dir_sp].dir = wdir; dir_stack[dir_sp].h_pos_x = 0; VF_BitmapListInit(&dir_stack[dir_sp].the_line_buff); *line_buff_p = &dir_stack[dir_sp].the_line_buff; if (debug_r2l == 1){ printf("Push to dir_stack\n"); for (s = dir_sp; s >= 0; s--){ printf(" dir_stack[%d].dir=%s\n", s, (dir_stack[s].dir==WDIR_L2R)?"WDIR_L2R":"WDIR_R2L"); } } } void parser_wdir_do_pop(VF_BITMAPLIST *line_buff_p) { int s; VF_BITMAP inline_bm; inline_bm = VF_BitmapListCompose(&dir_stack[dir_sp].the_line_buff); dir_sp--; *line_buff_p = &dir_stack[dir_sp].the_line_buff; if (debug_r2l == 1){ printf("Pop dir_stack\n"); for (s = dir_sp; s >= 0; s--){ printf(" dir_stack[%d].dir=%s\n", s, (dir_stack[s].dir==WDIR_L2R)?"WDIR_L2R":"WDIR_R2L"); } printf("current_wdir_g[0]=%s, current_wdir_g[1]=%s\n", (current_wdir_g[0]==WDIR_L2R)?"WDIR_L2R":"WDIR_R2L", (current_wdir_g[1]==WDIR_L2R)?"WDIR_L2R":"WDIR_R2L"); } if (debug_r2l == 1) VF_DumpBitmap(inline_bm); if (dir_stack[dir_sp].dir != dir_stack[dir_sp+1].dir) swap_refpt_nextpt(inline_bm); if (debug_r2l == 1) VF_DumpBitmap(inline_bm); put_bitmap(*line_buff_p, inline_bm, dir_stack[dir_sp].dir, &dir_stack[dir_sp].h_pos_x, &dir_stack[dir_sp].h_pos_y); } int charset_wdirection(int charset) { int dir; switch (charset){ case CS_ISO8859_6: /* Latin/Arabic */ case CS_ISO8859_8: /* Latin/Hebrew */ case CS_MULE_ARAB1: /* Mule Arabic 1 */ case CS_MULE_ARAB2: /* Mule Arabic 2 */ dir = WDIR_R2L; break; case CS_MULE_ARAB0: /* Mule Arabic 0 */ default: dir = WDIR_L2R; break; } return dir; } void draw_char(long code_point, VF_BITMAPLIST buff, int i, int *posxp, int *posyp) { VF_BITMAP bm; if ((font_exists_g[i] == 1) && (font_info[current_font_g[i]].font_id >= 0)){ code_point = cp_conv(code_point, i); if (debug_vflib == 1){ printf("VF_GetBitmap2(%d, 0x%lx, 1, 1);\n", font_info[current_font_g[i]].font_id, code_point); } if ((bm = VF_GetBitmap2(font_info[current_font_g[i]].font_id, code_point, 1, 1)) == NULL){ PR3("Cannot get bitmap 0x%lx of font %s\n", code_point, font_info[current_font_g[i]].font_name); if (chlen_g[i] == 1){ *posxp = *posxp + ((pixel != 0)?pixel:xpixel)/2; } else { *posxp = *posxp + ((pixel != 0)?pixel:xpixel); } } else { if (current_reverse == 1) reverse_bitmap(bm); if ((current_wdir_g[i] == WDIR_R2L) && (bm->mv_x > 0)) swap_refpt_nextpt(bm); if (debug_char_bitmap == 1) VF_DumpBitmap(bm); put_bitmap(buff, bm, current_wdir_g[i], posxp, posyp); } } } long cp_conv(long code_point, int i) { int r0, r1; static int tbl_mule_visvii_l[] = { 0,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, 176,177,178, 0, 0,181,182,183,184, 0, 0, 0, 0,189,190, 0, 0, 0, 0, 0, 0, 0,198,199, 0, 0, 0, 0, 0, 0, 0,207, 0,209, 0, 0, 0,213,214,215,216, 0, 0,219,220, 0,222,223, 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254, 0 }; static int tbl_mule_visvii_u[] = { 0,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, 144,145,146, 0, 0,147,150,151,152, 0, 0, 0, 0,180,149, 0, 0, 0, 0, 0, 0, 0, 2, 5, 0, 0, 0, 0, 0, 0, 0,159, 0,186, 0, 0, 0,128, 20,187,188, 0, 0, 25, 30, 0,179,191, 192,193,194,195,196,197,255, 6,200,201,202,203,204,205,206,155, 208,185,210,211,212,160,153,154,158,217,218,157,156,221,148, 0 }; r0 = code_point % 0x100; r1 = code_point / 0x100; switch (font_info[current_font_g[i]].charset_id){ default: break; case CS_JISX0201R: if (i == 1) r0 &= ~0x80; break; case CS_JISX0201K: if (i == 0) r0 |= 0x80; break; case CS_MULE_BIG5_L1: case CS_MULE_BIG5_L2: r0 = (r1 - 0x21) * 94 + (r0 - 0x21); r1 = (r0 / 157) + 0xa1; r0 = r0 % 157; if (r0 < 0x3f) r0 += 0x40; else r0 += 0x62; if (font_info[current_font_g[i]].charset_id == CS_MULE_BIG5_L2) r1 += 0x25; break; case CS_MULE_ETHIOPIC: r1 = (r1 - 33) * 94; r0 = (r0 - 33) + r1; if (r0 < 256){ r1 = 0x12; } else if (r0 < 448){ r1 = 0x13; r0 -= 256; } else { r1 = 0xfd; r0 -= 208; } break; case CS_MULE_VISCII_L: if (r0 < 128) break; r0 = tbl_mule_visvii_l[r0 - 160]; break; case CS_MULE_VISCII_U: if (r0 < 128) break; r0 = tbl_mule_visvii_u[r0 - 160]; break; } return r1 * 0x100 + r0; } void put_bitmap(VF_BITMAPLIST buff, VF_BITMAP bm, int wdir, int *posxp, int *posyp) { VF_BitmapListPut(buff, bm, *posxp, *posyp); *posxp += bm->mv_x; *posyp += bm->mv_y; } void reverse_bitmap(VF_BITMAP bm) { int x, y, b, m; unsigned char *p, w; static unsigned char bits[] = { 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff }; if (bm == NULL) return; b = bm->bbx_width / 8; m = bm->bbx_width % 8; for (y = 0; y < bm->bbx_height; y++){ p = &bm->bitmap[y * bm->raster]; for (x = 0; x < b; x++){ *p = *p ^ 0xff; p++; } } if (m != 0){ w = bits[m]; p = &bm->bitmap[b]; for (y = 0; y < bm->bbx_height; y++){ *p = *p ^ w; p = p + bm->raster; } } } void swap_refpt_nextpt(VF_BITMAP bm) { int offx, offy; int movx, movy; offx = bm->off_x - bm->mv_x; offy = bm->off_y - bm->mv_y; movx = -bm->mv_x; movy = -bm->mv_y; bm->off_x = offx; bm->off_y = offy; bm->mv_x = movx; bm->mv_y = movy; } void parser_cmd(long code_point, VF_BITMAPLIST buff, int *charset_saved_p, int g, int *posxp, int *posyp) { switch ((char)code_point){ default: PR2("Unknown command: \\%c\n", (char)code_point); break; case '\\': parser_check_wdir(g, &buff); draw_char((long)'\\', buff, 0, posxp, posyp); nchars_in_line++; break; case '.': current_family = default_family; current_face = default_face; break; case 'd': current_family = default_family; break; case 'f': current_family = FAM_FIXED; break; case 't': current_family = FAM_TIMES; break; case 'h': current_family = FAM_HELV; break; case 'c': current_family = FAM_COUR; break; case 'D': current_face = default_face; break; case 'N': current_face = FACE_NORMAL; break; case 'B': current_face = FACE_BOLD; break; case 'I': current_face = FACE_ITALIC; break; case '(': current_reverse = 1; break; case ')': current_reverse = 0; break; /* \< and \> commands swicthes fonts to iso8859-1 font */ /* This is effective (but ad-hoc) if looks of fonts of GL and */ /* GR are different. */ case '<': /* switch to a iso8859-1 font */ *charset_saved_p = charset_g[0]; charset_g[0] = CS_ISO8859_1; if (debug_state == 1) printf("Use iso8859-1 font temporarily\n"); break; case '>': /* switch back to the original */ charset_g[0] = *charset_saved_p; if (debug_state == 1) printf("Go back to the original font\n"); break; } change_fonts(0); if (use_g1 == 1) change_fonts(1); if (use_g2 == 2) change_fonts(2); if (use_g3 == 3) change_fonts(3); } void change_fonts(int i) { int opened, j; opened = -1; /* search an exact font */ for (j = 0; font_info[j].charset_id >= 0; j++){ if ( (font_info[j].pixel_size == pixel) && (font_info[j].charset_id == charset_g[i]) && (font_info[j].family_id == current_family) && (font_info[j].face_id == current_face)){ if (try_font_open(j) >= 0){ opened = j; break; } } } /* search a font of the default face */ if ( (opened < 0) && (current_face != default_face)){ for (j = 0; font_info[j].charset_id >= 0; j++){ if ( (font_info[j].pixel_size == pixel) && (font_info[j].charset_id == charset_g[i]) && (font_info[j].family_id == current_family) && (font_info[j].face_id == default_face)){ if (try_font_open(j) >= 0){ opened = j; break; } } } } /* search a font of the default face */ if ( (opened < 0) && (current_face != FACE_DEFAULT) && (default_face != FACE_DEFAULT)){ for (j = 0; font_info[j].charset_id >= 0; j++){ if ( (font_info[j].pixel_size == pixel) && (font_info[j].charset_id == charset_g[i]) && (font_info[j].family_id == current_family) && (font_info[j].face_id == FACE_DEFAULT)){ if (try_font_open(j) >= 0){ opened = j; break; } } } } /* search a font of default face and default family */ if ( (opened < 0) && (current_family != default_family)){ for (j = 0; font_info[j].charset_id >= 0; j++){ if ( (font_info[j].pixel_size == pixel) && (font_info[j].charset_id == charset_g[i]) && (font_info[j].family_id == default_family) && (font_info[j].face_id == FACE_DEFAULT)){ if (try_font_open(j) >= 0){ opened = j; break; } } } } /* search a font of default face of default family */ if ( (opened < 0) && (current_family != FAM_DEFAULT) && (default_family != FAM_DEFAULT)){ for (j = 0; font_info[j].charset_id >= 0; j++){ if ( (font_info[j].pixel_size == pixel) && (font_info[j].charset_id == charset_g[i]) && (font_info[j].family_id == FAM_DEFAULT) && (font_info[j].face_id == FACE_DEFAULT)){ if (try_font_open(j) >= 0){ opened = j; break; } } } } /* search any font of the charset */ if (opened < 0){ for (j = 0; font_info[j].charset_id >= 0; j++){ if ( (font_info[j].pixel_size == pixel) && (font_info[j].charset_id == charset_g[i])){ if (try_font_open(j) >= 0){ opened = j; break; } } } } /* Not found */ if (opened < 0){ font_exists_g[i] = 0; /* NO FONT */ current_font_g[i] = 0; PR2("No font for %s\n", charset_name(charset_g[i], "???")); } else { font_exists_g[i] = 1; current_font_g[i] = opened; if (debug_state == 1) printf("** Charset: %s\n", charset_name(charset_g[i], "???")); } } int try_font_open(int table_index) { if (debug_font == 1) printf("Try font open: %s", font_info[table_index].font_name); switch (font_info[table_index].font_id){ case NOT_OPENED: if (debug_vflib == 1){ printf("VF_OpenFont2(\"%s\", %d, %.3f, %.3f);\n", font_info[table_index].font_name, xpixel, magx, magy); } font_info[table_index].font_id = VF_OpenFont2(font_info[table_index].font_name, xpixel, magx, magy); if (debug_vflib == 1) printf(" VFlib font ID = %d\n", font_info[table_index].font_id ); if (font_info[table_index].font_id < 0){ font_info[table_index].font_id = NOT_FOUND; if (debug_font == 1) printf("... cannot open\n"); return -1; } if (debug_font == 1) printf("... successfully opened!\n"); break; case NOT_FOUND: if (debug_font == 1) printf("... could not opened before\n"); return -1; default: if (debug_font == 1) printf("... opened before\n"); break; } if (debug_font == 1) printf("Font switch: %s\n", font_info[table_index].font_name); return 1; } void parser_init(void) { int i; for (i = 0; i < 4; i++){ font_exists_g[i] = 0; /* font does not exist */ type_g[i] = TYPEID94; charset_g[i] = CS_ISO8859_1; chlen_g[i] = 1; } /* Default values */ use_esc = 0; use_csi = 0; use_si = 0; use_so = 0; use_ss2 = 0; use_ss3 = 0; use_g1 = 0; use_g2 = 0; use_g3 = 0; use_sjis = 0; switch (input_encoding){ case ENC_CTEXT: use_esc = 1; use_csi = 1; use_g1 = 1; /* Designate ISO8859-1 into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_1; chlen_g[0] = 1; change_fonts(0); /* Designate right-hand of ISO Latin-1 into G1 */ type_g[1] = TYPEID96; charset_g[1] = CS_ISO8859_1; chlen_g[1] = 1; change_fonts(1); break; case ENC_ISO8859_1: use_g1 = 1; /* Designate ISO8859-1 into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_1; chlen_g[0] = 1; change_fonts(0); /* Designate right-hand of ISO Latin-1 into G1 */ type_g[1] = TYPEID96; charset_g[1] = CS_ISO8859_1; chlen_g[1] = 1; change_fonts(1); break; case ENC_ISO8859_2: use_g1 = 1; /* Designate ISO8859-2 into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_2; chlen_g[0] = 1; change_fonts(0); /* Designate right-hand of ISO8859-1 into G1 */ type_g[1] = TYPEID96; charset_g[1] = CS_ISO8859_2; chlen_g[1] = 1; change_fonts(1); break; case ENC_ISO8859_3: use_g1 = 1; /* Designate ISO8859-3 into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_3; chlen_g[0] = 1; change_fonts(0); /* Designate right-hand of ISO8859-2 into G1 */ type_g[1] = TYPEID96; charset_g[1] = CS_ISO8859_2; chlen_g[1] = 1; change_fonts(1); break; case ENC_ISO8859_4: use_g1 = 1; /* Designate ISO8859-4 into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_4; chlen_g[0] = 1; change_fonts(0); /* Designate right-hand of ISO8859-4 into G1 */ type_g[1] = TYPEID96; charset_g[1] = CS_ISO8859_4; chlen_g[1] = 1; change_fonts(1); break; case ENC_ISO8859_5: /* Cryillic */ use_g1 = 1; /* Designate ISO8859-1 into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_1; chlen_g[0] = 1; change_fonts(0); /* Designate right-hand of ISO8859-5 into G1 */ type_g[1] = TYPEID96; charset_g[1] = CS_ISO8859_5; chlen_g[1] = 1; change_fonts(1); break; case ENC_ISO8859_6: /* Arabic */ use_g1 = 1; wdirection = WDIR_R2L; /* Designate ISO8859-1 into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_1; chlen_g[0] = 1; change_fonts(0); /* Designate right-hand of ISO8859-6 into G1 */ type_g[1] = TYPEID96; charset_g[1] = CS_ISO8859_6; chlen_g[1] = 1; change_fonts(1); break; case ENC_ISO8859_7: /* Greek */ use_g1 = 1; /* Designate ISO8859-1 into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_1; chlen_g[0] = 1; change_fonts(0); /* Designate right-hand of ISO8859-7 into G1 */ type_g[1] = TYPEID96; charset_g[1] = CS_ISO8859_7; chlen_g[1] = 1; change_fonts(1); break; case ENC_ISO8859_8: /* Hebrew */ use_g1 = 1; wdirection = WDIR_R2L; /* Designate ISO8859-1 into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_1; chlen_g[0] = 1; change_fonts(0); /* Designate right-hand of ISO8859-8 into G1 */ type_g[1] = TYPEID96; charset_g[1] = CS_ISO8859_8; chlen_g[1] = 1; change_fonts(1); break; case ENC_ISO8859_9: use_g1 = 1; /* Designate ISO8859-9 into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_9; chlen_g[0] = 1; change_fonts(0); /* Designate right-hand of ISO8859-9 into G1 */ type_g[1] = TYPEID96; charset_g[1] = CS_ISO8859_9; chlen_g[1] = 1; change_fonts(1); break; case ENC_ISO2022_JP: use_esc = 1; /* Designate ASCII into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ASCII; chlen_g[0] = 1; change_fonts(0); break; #if 0 case ENC_ISO2022_KR: use_si = 1; use_so = 1; use_g1 = 1; /* Designate ASCII into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ASCII; chlen_g[0] = 1; change_fonts(0); /* Designate KSC5601 into G1 */ type_g[1] = TYPEID94_2; charset_g[1] = CS_KSC5601; chlen_g[1] = 2; change_fonts(1); break; case ENC_ISO2022_CN: use_esc = 1; use_si = 1; use_so = 1; use_ss2 = 1; use_ss3 = 1; use_g1 = 1; use_g2 = 1; /* Designate ASCII into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_ASCII; chlen_g[0] = 1; change_fonts(0); break; #endif case ENC_EUC_JP1: case ENC_EUC_JP2: use_ss2 = 1; use_ss3 = 1; use_g1 = 1; use_g2 = 1; use_g3 = 1; if (input_encoding == ENC_EUC_JP1){ /* Designate JIS X0201 into G0 (code set 0) */ type_g[0] = TYPEID94; charset_g[0] = CS_JISX0201R; chlen_g[0] = 1; change_fonts(0); } else { /* Designate ISO8859-1 into G0 (code set 0) */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_1; chlen_g[0] = 1; change_fonts(0); } /* Designate JIS X0208 into G1 (code set 1) */ type_g[1] = TYPEID94_2; charset_g[1] = CS_JISX0208; chlen_g[1] = 2; change_fonts(1); /* Designate JIS X0208 into G2 (code set 2) */ type_g[2] = TYPEID94; charset_g[2] = CS_JISX0201K; chlen_g[2] = 1; change_fonts(2); /* Designate JIS X0212 into G3 (code set 3) */ type_g[3] = TYPEID94_2; charset_g[3] = CS_JISX0212; chlen_g[3] = 2; change_fonts(3); break; case ENC_EUC_KR: use_g1 = 1; /* Designate ISO8859-1 into G0 (code set 0) */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_1; chlen_g[0] = 1; change_fonts(0); /* Designate KSC5601 into G1 (code set 1) */ type_g[1] = TYPEID94_2; charset_g[1] = CS_KSC5601; chlen_g[1] = 2; change_fonts(1); break; case ENC_EUC_CH_GB: use_g1 = 1; /* Designate ISO8859-1 into G0 (code set 0) */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_1; chlen_g[0] = 1; change_fonts(0); /* Designate GB2312 into G1 (code set 1) */ type_g[1] = TYPEID94_2; charset_g[1] = CS_GB2312; chlen_g[1] = 2; change_fonts(1); break; case ENC_EUC_CH_CNS: use_ss2 = 1; use_ss3 = 1; use_g1 = 1; use_g3 = 1; /* Designate ISO8859-1 into G0 (code set 0) */ type_g[0] = TYPEID94; charset_g[0] = CS_ISO8859_1; chlen_g[0] = 1; change_fonts(0); /* Designate CNS11643-1 into G1 (code set 1) */ type_g[1] = TYPEID94_2; charset_g[1] = CS_CNS11643_1; chlen_g[1] = 2; change_fonts(1); /* Designate CNS11643-2 into G3 (code set 3) */ type_g[3] = TYPEID94_2; charset_g[3] = CS_CNS11643_2; chlen_g[3] = 2; change_fonts(3); break; case ENC_SJIS: use_g1 = 1; use_g2 = 1; use_sjis = 1; /* JISX0201 Roman into G0 */ type_g[0] = TYPEID94; charset_g[0] = CS_JISX0201R; chlen_g[0] = 1; change_fonts(0); /* JISX0208 into G1 */ type_g[1] = TYPEID94_2; charset_g[1] = CS_JISX0208; chlen_g[1] = 2; change_fonts(1); /* JISX0201 Kana into G2 */ type_g[2] = TYPEID94; charset_g[2] = CS_JISX0201K; chlen_g[2] = 1; change_fonts(2); break; default: fprintf(stderr, "Input encoding is unknown.\n"); exit(1); } for (i = 0; i < 4; i++){ current_wdir_g[i] = charset_wdirection(charset_g[i]); } } char* charset_name(int charset, char *if_unknown) { char *name; name = if_unknown; switch (charset){ case CS_ASCII: name = "ASCII"; break; case CS_ISO8859_1: name = "ISO 8859-1 (Latin-1)"; break; case CS_ISO8859_2: name = "ISO 8859-2 (Latin-2)"; break; case CS_ISO8859_3: name = "ISO 8859-3 (Latin-3)"; break; case CS_ISO8859_4: name = "ISO 8859-4 (Latin-4)"; break; case CS_ISO8859_5: name = "ISO 8859-5 (Cyrillic)"; break; case CS_ISO8859_6: name = "ISO 8859-6 (Arabic)"; break; case CS_ISO8859_7: name = "ISO 8859-7 (Greek)"; break; case CS_ISO8859_8: name = "ISO 8859-8 (Hebrew)"; break; case CS_ISO8859_9: name = "ISO 8859-9 (Latin-5)"; break; case CS_JISX0201R: name = "JIS X 0201-Roman"; break; case CS_JISX0201K: name = "JIS X 0201-Kana"; break; case CS_JISX0208: name = "JIS X 0208 (Japanese)"; break; case CS_JISX0212: name = "JIS X 0212 (Japanese)"; break; case CS_KSC5601: name = "KSC 5601 (Hangle)"; break; case CS_GB2312: name = "GB 2312 (Chinese)"; break; case CS_CNS11643_1: name = "CNS 11643-1 (Chinese)"; break; case CS_CNS11643_2: name = "CNS 11643-2 (Chinese)"; break; case CS_CNS11643_3: name = "CNS 11643-3 (Chinese)"; break; case CS_CNS11643_4: name = "CNS 11643-4 (Chinese)"; break; case CS_CNS11643_5: name = "CNS 11643-5 (Chinese)"; break; case CS_CNS11643_6: name = "CNS 11643-6 (Chinese)"; break; case CS_CNS11643_7: name = "CNS 11643-7 (Chinese)"; break; case CS_MULE_BIG5_L1: name = "BIG5 Level 1 (Chinese)"; break; case CS_MULE_BIG5_L2: name = "BIG5 Level 2 (Chinese)"; break; case CS_MULE_ARAB0: name = "Mule Arabic 0"; break; case CS_MULE_ARAB1: name = "Mule Arabic 1"; break; case CS_MULE_ARAB2: name = "Mule Arabic 2"; break; case CS_MULE_ETHIOPIC: name = "Mule Ethiopic"; break; case CS_MULE_VISCII_L: name = "Mule VISCII 1.1 Lower"; break; case CS_MULE_VISCII_U: name = "Mule VISCII 1.1 Upper"; break; } return name; } #define FONTLIST_W_CHARSET 28 #define FONTLIST_W_FAM_FACE 17 #define FONTLIST_W_PIXEL 12 #define FONTLIST_W_FONT -1 void show_font_list(void) { char buff[80], *s1, *s2; int i; wprint("Character Set Name", FONTLIST_W_CHARSET); wprint("Family&Face", FONTLIST_W_FAM_FACE); wprint("Pixel Size", FONTLIST_W_PIXEL); wprint("Font Name", FONTLIST_W_FONT); wprint("\n\n", -1); for (i = 0; font_info[i].charset_id >= 0; i++){ /* charset name */ sprintf(buff, "%s", charset_name(font_info[i].charset_id, "???")); wprint(buff, FONTLIST_W_CHARSET); /* font family & font face */ switch (font_info[i].family_id){ default: case FAM_FIXED: s1 = "Fixed"; break; case FAM_TIMES: s1 = "Times"; break; case FAM_HELV: s1 = "Helvetia"; break; case FAM_COUR: s1 = "Courier"; break; } switch (font_info[i].face_id){ default: case FACE_NORMAL: s2 = "Normal"; break; case FACE_ITALIC: s2 = "Italic"; break; case FACE_BOLD: s2 = "Bold"; break; } sprintf(buff, "%s %s", s1, s2); wprint(buff, FONTLIST_W_FAM_FACE); /* pixel size */ if (font_info[i].pixel_size == 0) sprintf(buff, "%s", "scalable"); else sprintf(buff, "%d", font_info[i].pixel_size); wprint(buff, FONTLIST_W_PIXEL); /* font name */ wprint(font_info[i].font_name, FONTLIST_W_FONT); wprint("\n", -1); } } void wprint(char *str, int w) { int i; char *p; if (w <= 0){ printf("%s", str); return; } if (str == NULL){ for (i = 0; i < w; i++){ putchar(' '); } return; } i = w; p = str; while (i > 0){ if (*p == '\0') break; putchar(*p); p++; --i; } while (i > 0){ putchar(' '); --i; } } /*EOF*/ vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/test/0000755000175000017500000000000006635423273017774 5ustar mohuramohuravflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/test/runnit0000755000175000017500000000512606635365272021251 0ustar mohuramohura#!/bin/sh PROG="../ctext2pgm -v ../vflibcap-ctext2pgm -16" TEXT="../Samples/CTEXT/DOC1.txt" # TEST 1: Output Formats ${PROG} -pbm ${TEXT} > OUT1-1.pbm ${PROG} -pgm ${TEXT} > OUT1-2a.pgm ${PROG} -pgm-ascii ${TEXT} > OUT1-2b.pgm ${PROG} -eps ${TEXT} > OUT1-3.eps ${PROG} -ascii-art ${TEXT} > OUT1-4a.aa ${PROG} -ascii-art-v ${TEXT} > OUT1-4b.aa ${PROG} -ascii-art-h ${TEXT} > OUT1-4c.aa # TEST 2: Margin ${PROG} -pgm -g 0 ${TEXT} > OUT2-1a.pgm ${PROG} -pgm -g 10 ${TEXT} > OUT2-1b.pgm ${PROG} -pgm -g 20 ${TEXT} > OUT2-1c.pgm ${PROG} -pgm -gx 20 ${TEXT} > OUT2-2a.pgm ${PROG} -pgm -gy 20 ${TEXT} > OUT2-2b.pgm # TEST 3: Bitmap Size ${PROG} -pgm ${TEXT} > OUT3-1.pgm ${PROG} -pgm -ph 300 ${TEXT} > OUT3-2.pgm ${PROG} -pgm -pw 300 ${TEXT} > OUT3-3.pgm ${PROG} -pgm -ph 300 -pw 300 ${TEXT} > OUT3-4.pgm # TEST 4: Left/Center/Right ${PROG} -pgm -pw 300 ${TEXT} > OUT4-1a.pgm ${PROG} -pgm -pw 300 -flush-left ${TEXT} > OUT4-1b.pgm ${PROG} -pgm -pw 300 -center ${TEXT} > OUT4-1c.pgm ${PROG} -pgm -pw 300 -flush-right ${TEXT} > OUT4-1d.pgm ${PROG} -pgm -ph 300 -pw 300 ${TEXT} > OUT4-3a.pgm ${PROG} -pgm -ph 300 -pw 300 -flush-left ${TEXT} > OUT4-3b.pgm ${PROG} -pgm -ph 300 -pw 300 -center ${TEXT} > OUT4-3c.pgm ${PROG} -pgm -ph 300 -pw 300 -flush-right ${TEXT} > OUT4-3d.pgm # TEST 5: Reverse ${PROG} -r -pbm -g 0 ${TEXT} > OUT5-1a.pbm ${PROG} -r -pbm -g 10 ${TEXT} > OUT5-1b.pbm ${PROG} -r -pgm -g 10 ${TEXT} > OUT5-2.pgm ${PROG} -r -eps -g 10 ${TEXT} > OUT5-3.eps ${PROG} -r -ascii-art -g 10 ${TEXT} > OUT5-4.aa # TEST 6: Shrink ${PROG} -pgm -s 1 ${TEXT} > OUT6-1a.pgm ${PROG} -pgm -s 2 ${TEXT} > OUT6-1b.pgm ${PROG} -pgm -s 3 ${TEXT} > OUT6-1c.pgm ${PROG} -pbm -s 1 ${TEXT} > OUT6-2a.pbm ${PROG} -pbm -s 2 ${TEXT} > OUT6-2b.pbm ${PROG} -pbm -s 3 ${TEXT} > OUT6-2c.pbm ${PROG} -pgm -s 1 -pw 300 -ph 300 ${TEXT} > OUT6-3a.pgm ${PROG} -pgm -s 2 -pw 300 -ph 300 ${TEXT} > OUT6-3b.pgm ${PROG} -pgm -s 3 -pw 300 -ph 300 ${TEXT} > OUT6-3c.pgm echo "Hello" | ${PROG} -ascii-art -s 1 > OUT6-4a.aa echo "Hello" | ${PROG} -ascii-art -s 2 > OUT6-4b.aa echo "Hello" | ${PROG} -ascii-art -s 3 > OUT6-4c.aa echo "Hello" | ${PROG} -ascii-art-v -s 1 > OUT6-5a.aa echo "Hello" | ${PROG} -ascii-art-v -s 2 > OUT6-5b.aa echo "Hello" | ${PROG} -ascii-art-v -s 3 > OUT6-5c.aa echo "Hello" | ${PROG} -eps -s 1 > OUT6-6a.eps echo "Hello" | ${PROG} -eps -s 2 > OUT6-6b.eps echo "Hello" | ${PROG} -eps -s 3 > OUT6-6c.eps vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/test/Makefile0000644000175000017500000000006506627164553021441 0ustar mohuramohuraall: ./runnit clean: rm *.pgm *.pbm *.eps *.aa *~ vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/HELLO.gif0000644000175000017500000003667606731106343020362 0ustar mohuramohuraGIF87a;###(((444TTTHHH...'''SSS+++)))qqq\\\@@@!!!%%%kkk 111&&&QQQ???---```CCCvvvQQQwww+++ MMM000(((~~~ """ aaa )))SSS###ttthhhzzzDDD))) ###WWWxxxJJJRRR```222~~~%%%>>>AAAqqqlll]]]YYY```www]]]ttt000)))999YYYbbbhhhwwwvvvbbbGGG%%%FFF}}}___>>> PPP666WWW333+++;;;,,,kkkJJJxxxyyy))) qqqbbbUUU""":::jjj___GGG888ooo,;80@&DaC#JtċbȱǏ-rɅ';Lɲ˗0cʜIs$E+3$y1'F5m7>TTӧPJTBK^5)ѣ]**ٳhSV=XѶ^ f'[oR{Wſ w,\uv)]cyoݥy"F3C܌x2ʢr6tװV6fۑsߖ<2jXy߼;8>iZwo=:?S>y`Gg7N6'f};_~hqyrt5%(|UhI)XXRt^f x%gxEGa!߄"s#6'! hcwD#o@ujhu ^A{deINX>"yT$ȕyd_ Ye[":YRf(G]8gPb"蠟(uyOr)Zv2]!.ȓmh4(o騘r٪䤛,~jlXZJ,A-z#~'mx+9~x^uxy;Ɩl,$k^7g*6dsy͆niٖ kcLFdp ,rPFU0,L*;]4;3&?y@mH'd+PG-TWmXg\wP<)5ٜʄ6ldmBʩlzҹ/5uw|{+%H{U82 |bZiMn:wxK^c 窇;\n9XXLֺNx; N;m־b&,ۻy?/)ʛKmɧgm~xUc|AR4#!j{fݮIMj %:Yz ܓ7$4i"-n1&XJ8A}o,Tך p}Cq5TԼ7w* &\aoxC <$e|cƈE }L淽QvV%>!Qj8=bPQ$wWGb^!uF8r3QNsX^C]Gs$AmU`Qg;5͒O%.h]RQa/yA`~ @JЂMBІ:D'JъZͨF7юz HGJҒDaT*s(lJc '3}Ke St8`~JTEQ:ԥ:UPmjTmTZSUխ `X:V5gEZֶp\J׺xͫ^׾{ "nZYnt,B 0, =m4%(4jRWalfQEj(%@'M2N+qAYOIz! R f}(m;5k}ߠ2X&,d\˳l_/W<4'v-S֟j`+0a(WUt(_&fiG\Mzb98=Dt-VN"%(ʸEװ ~(B2'xdVrM4æ&0XXk!oxDG%L؟+U(c,^k[20hN8YhensfW8+zkk_xE@,XtKsd$W-p'J &hhl |2ytN'[z+xN-)$e}kV[Yof-٬8,gcܧ(Cemg^X_sr!\Q -1]2-˕i?ܣ-5<ج\J~kA~UQy*Ia;>I 38E׹eNsSeFiKV.h W.'cGEWc;"I6a~%Mz~3&1Qwcal`WUqQ[)Sk}Χ/|>x۶{?^^hxʧz؈4^cxE("vFDֆhԁ@+Ɔ \w}&%zatZ5HzGGhMwŗpB~'5vo2:1j*J_4wG8(0RWg'fhX4׀h;iXƏ2F6Hٗjs 8 \o_8?0GeuBNXqI6}wPiȉs> Z6_%taXqorX&Z0)5&{C l7q5I@#9ɋ(N$m4D*Ĩ*Gd0FXlEyh&j9ieٖpr9tYwpvg~|ZE$P2{ X;H~[V9D&Ku%tb^zLȦڵ^`b;d[f{,tK0Q +MOSVrۡtnszh䞥c9H`7W}:Qȵv ʑ-K0Գ qEjnhFR,90(Q먥cTˑXAan+[ ź*Vkoy= ׎Y19s"Uk{s>{q:˹ x gBDRyqhX8KK縿\EJas{((j&L%7 nt[Tѷu6YX)tฃH%I)`)'eǸ9VKo֑:*%y$Vْ˼w*̔HyQ(;[zz0Ȋ( e\µAKcٜaa{컜<{o\s#dM",ź YcyRwl\ZY2ĕ짡y$Y+ܤ@ ͂ BQRŤn׾:pIY(lä$ǸƎǷfW&ujnLBha33,<\|Y5p"s(VD)*VIL'h!Ѩ*jk3g iK<,0ZKÔ :Yu~ 76U++@ܝT ;4 R5={0s"=.Y˱]*Ӳ\I]쮵i+%Ę;P-FuDwD뾍sűS3XdG6ݼ'T `@NG%wȦ4۴S(ㄽԳT+ˑ @<Տk,&w]8*~y)\+MĪ|I9-e]('g* ~zҽ Vݔ.yW-kJ}xAmg\ⓜ۽v{uFΜmak?Dւ6^ҖwD|CN.˞\ءXHr?⋁>gv(bH@:~ǐ̬Yiyw7ү^wEl}d<\P^Gl۔;pg~ '_VQN#wvʾze| k ޿ ˫:pJ6e |Vvܴ6@ YF6\Yљ3.>5SH?ۂsRb;j\ ÿiz=Gʣ7)Uo4d9]봨 n%ysޮXn{j3AhǸ|z .Jk|n=ݲ bR+"& zV@@Z/._;qBz$CK}?z[a b?ѥ'F dpA>n@z&"OI;F:QD-^ĘQF=B,G#% IRJM*492 QęSN=}ДgjiPmZ(QNUթSحe͞EV'VV \7-ձwl]s XbeEv~+kYR7prثFZj2f7rѓ}Ɯiō3_{/ו]y馝n<0Ӥk^ʧmG\trᴿW}k1Fgƍ1GwqF{2H!dmD2I%dI'2J)J+t"r?++)3#3MpC:QSN;-'s+2@I>(?ChO0uH&6%%ILOME4T7ы̌0Q5.U5!E-o5Q3Ub;aTjeIZ#W_u_3ֳuM+jѫNXmET^ NVbEgm[ygmlu7]Siw+Ug[x7m!nXሃlxEη_ >%dLf:b\pNOKy>b` Ys;7y:j2:klÙPzԨ2nDӲ'Ò k$Pߚ oɵt5DZB`ZXMs.èPX2zY^1VյAHmsK# csfQC;$ԌfP_68 6˻9Yr3 Jzy5#S,CB2+.Cbڛ@?:*=2DR9 =@T+)@Ì-aŸ4}B<2yB? L?j@./!B:Kj2MbMN:E1U 2Lތ@zCɰJ,Fӛ=CLI26䑼KNz5rJO̼tBJd'=C-K $25 CBݫ 5Et01O,$ SH.KQXQqѽjQ Ҷƻt* Ǡ2L;@JZG/s)[%=0LվZryS(9ּDg 4ٓYN\hT~L!ٜٝY֣IvٗG ZKl٢=Gj(SО==5!Uky% >@RH=-Gy3\YԨX|Y٣%:t֜UXY1]ۭMJYeB+K[A[B4HONhZ婠BMB_Y4ӭ\;ܜ7yA\J۲z2Q"b]ך]٤T?: (tv 蝮%5EUeu_HN_Bz,`+æ _e`}7 Dg wE^T(ƅֽZNEKHmm[}ۗӕ&l;M-\ɕOoSSJ繞M+~LOKDmI\qmNd #Y#܅@#Pܵ%nF>-b<)dz)fX+=D٠+[~/3%P櫡%ZkSVUfe/ ` 5.${ -P,ӌ=(@Z}pÝbhfpc+gD`.eU?Mae/fiCazaFQoZC4Dc5L eaݚ]ngNU^$S/| lV@6gacl2Lhĝba^f3簓W\wV`[Y iaji|N.8UOw:ݬ+ҟii~Jb .H6[ŜiTj(R>jk;^em Vew(Wt-kFVŦdn*UgY1eR(cCxYZli5貋'z>mf%b+ˆST^iĘ`m}.muѱA|Mcj')D̳9Z܆L ʮ.Ƶ>UCW5DOJ3NH\l=&UoL%ii\qDUot?vpu6mWJi~Eb6j{QkNHqo|ޚn+oޤ;XGmm}`?ْW Y;"G$j%w!&tng1kq0~Ӵ$p1YR}uWT5u>u W>fuhak ek' uV("Ør(/[aBsQ]qsbTnGgkua_fwR?IStR;+suupC2qxt~_yCs/-]NgnLg(7-;d-DkJRޡ!kk^me'?6sPK8WwSB~늄lŭ>pNC{g™]p1ں$oeRͶ1 p=?tFEvGVw{tVjǗ`}>]"rr9b^˧5}%UEahdԧgu&{NǙW'>".+K`l~zl}f]jԆibEf,2)C?o+h „ 2l!ăN$(Q`E Nh#ō=zQaF)%vT$ȘgҬi&Μ:w"|J%gV,'ѓI^Ӡ1}"5JcSVL8t֖.ʴ+ԴjײmӥCWChٓHezEq,\g.<.NW_a它3軀{2 m5դ_mvDW<2]‡W 7g̩{7>6xϥYpЩs/g׳o=>? 8~ѷW-u[zeE JH zj6ۃ!Ӄb )8!%]1~rѕ`d9_Uu̙#ccjHXf(sueYjYeT&` .٣2NM!cm9'U܅(Fdf^>febUbX=iuJ:)Z[I5e.i`5Y\J8Q<:[QPR:+6娓ª(Bz?q'z,YUd2'k~ʪYJ*kj ]ɚ]F&{#멼^ .zw&Ìh(QpN[{Liۮ z*2iK:Ȣkr dF_NK_DQ)ț]yuccbv: R6hrsvGۘf|(6094gzJ-B >96Mk9qK9硋>:饛~:ꩫc:|^11Նy1֍xv#!la :t}O/jnktOInH}]G7|ƒ]AI8Ó>q,15b]"@`OǓfIknRJ7:^"g,+i %gU;I0t ָVe1ipz4iJCE7yUJ!'1k|CrC]e &fId z i PbP_,\ '&O3Y`/^8=Oga#mԲ#q .XAJDƌwJ⯍!t5Ŏ-L24e:hNzGۦ \BIxLD AئQsa#-nO<`! ס):,P;=2W7y̩bͬ&^JqSa\#E>$#y Ѕ2mP'e'xQrtmTDKLLDʲ6~14'BCJa:RbALŚ9{|/>}Iyl^+eJ"Tb;_PT OPL9lJ`d5i&eREҪMP{ʑ.cYtUDG=")t֖;Y;äNW*VpI[kXR5mPe)NɅu"7jJ0{#0f ",}J,Д|&gI?J'6*\K1Pqz@wq-4&sxj%%5TJ:wݭ'av|+lZSy򺉃W̠Yk9~kMWxXȶ?bYoa 'JH$_D–h;0I' Spa3J J8sY+Uv^ lkkdyNW|kU~nXe/vr~,P1d>sC[f4n~3,9ӹv3=~3-AІ>4E3ю~4#-ISҖ43MsӞ4C-QԦVn̨7k.2Q*de.z^'Dey,9a ƚ4*#[5'W0mdUzӲ.َKdxmi.Iysgo;O2e[ 2*Hұ%W? ?vfYU%iF(nfU^m;)Yf\ p7 YwO{rj ȕ:t˪5NQP $M̶.\46ƍkZL /qݬIH¯veۙ`ƅ{68keƘvAr_" u [-~ڋUUm_X/jZUb *3>#4F4N#5b5Nc\ڽ5zT &e#ox7z&?a$ %i<~La8:Cg@bC>!Vb3Nbɟ0B$!BQRyFA;a iUHjH&-䜔jXe] +KEB>$'$ B$k`_>zQG[zXb4&S)_aSɚmN4]慠Yf$Y[%\ƥ\T\Ii]e@b6kVU$4)y Ua&rWbRf"M^zx%QVVTq_|i Rd$!"ZePflRJP`kn`o&c;-$[^rV&'RR_jtzWu*',ң'4eʰ(w^cY. JT!tz[ '_h'av"-bh} 8lr.e2(V^(fB.EdNNJ8 f%H#s( n v"%{}_`(HW#y>R#ВBh'ӑA. FX+FN+V^+f4Ӎ"ѡ*h{De #%I B(6xvN8Ʃv )š"!Mԩay.߉\dVP1^nWsĮ)Ďߥ:ZʯТ+RYz!Ň q` &_ x`%]SjmEhlE N>f6m0gw\>x^[L X'h^"%MnjX]!X /fQ*,ڦH!,օ2ڊ&+Uad (o&`' fҦejꎇy( A.NYm)Ѝ0 ⹞z.3^GnXpdUiyT,(V֮uA["u^ՎZlɘ/:%mOiԍkMfrlRVfG楜~mbI"D:iKnoR.f*.h5Fݮn-ܮ&.tp.b P^K*jeWm*k ZpYu^fi9ʰަۭ*Ta%d! qxqxy`|^66/.Zro&eWkN #-eJ"[ PTa&J'(/)"*++C;vflib3-3.6.14.dfsg/utils/ctext2pgm-1.5.3/HELLO0000644000175000017500000000312606731043277017604 0ustar mohuramohuraThis is a list of ways to say hello in various languages. Its purpose is to illustrate a number of scripts. --------------------------------------------------------- Amharic ($(3"c!(B Arabic (38R(47d(3T!JSa(4W(3W(B Czech (-Besky)-A Dobr-B-A den Danish (Dansk) Hej, Goddag English Hello Esperanto Saluton Estonian Tere, Tervist FORTRAN PROGRAM Finnish (Suomi) Hei French (Franais) Bonjour, Salut German (Deutsch Nord) Guten Tag German (Deutsch Sd) Gr Gott Greek (-F)-A -F-A -F-A Hebrew -H-A Hindi \t\I\. Italiano Ciao, Buon giorno Lao \t\I\. Maltese Ciao Nederlands, Vlaams Hallo, Dag Norwegian (Norsk) Hei, God dag Polish Dzie-B-A dobry, Hej Russian (-L)-A -L!-A Slovak Dobr-B-A de-B-A Spanish (Espaol) Hola! Swedish (Svenska) Hej, Goddag Thai \t\I\. Tibetan \t\I\. Tigrigna ($(3"8#r!N"^(B) $(3!Q!,!<"8(B Turkish (Trke) Merhaba Vietnamese (Ti-1ng-A Vi-1t)-A Ch-1o-A b-1n-A Japanese ($(BF|K\8l(B) $(B$3$s$K$A$O(B, (I:]FAJ(B Chinese ($(AVPND(B,$(AFUM(;0(B,$(A::So(B) $(ADc:C(B Cantonese ($(0GnM$(B,$(0N]0*Hd(B) $(0*/=((B, $(0+$)p(B Korean ($(CGQ1[(B) $(C>H3gGO<H3gGO=J4O1n(B Difference among chinese characters in GB, JIS, KSC, BIG5: GB -- $(AT*Fx(B $(A?*7"(B JIS -- $(B855$(B $(B3+H/(B KSC -- $(Cj*Q((B $(CKR[!(B BIG5 -- $(0&x86(B $(0DeBv(B Just for a test of JISX0212: $(BqV$(DiQ(B (the second character is of JISX0212) vflib3-3.6.14.dfsg/vflibcaps/0000755000175000017500000000000007405277113015243 5ustar mohuramohuravflib3-3.6.14.dfsg/vflibcaps/vflibcap-jg0000644000175000017500000001615407057623202017356 0ustar mohuramohura;;; -*-Lisp-*- ;; ;; 'vflibcap' for JG fonts ;; by h.kakugawa@computer.org ;; ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (extension-hints (".bdf" bdf) (".pcf" pcf) ("pk" TeX)) (implicit-font-classes jg pcf) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (variable-values (TeX_DPI "300") (TeX_USE_KPATHSEA "Yes") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "vflserver")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) ) ;; ----------------------------------------------------------------- ;; JG Font Class Default ;; ----------------------------------------------------------------- (define-default jg (filename-extensions ".fn") (font-directories "/usr/local/share/fonts/JG-Fonts//") (properties (FONT_CLASS "JG") (CHARSET_REGISTRY "jisx0208.1983") (CHARSET_ENCODING "0"))) ;; ----------------------------------------------------------------- ;; PCF Font Class Default ;; ----------------------------------------------------------------- (define-default pcf (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/emacs/fonts//" "/usr/local/share/fonts/X11//") (compression-extensions ".gz" ".Z") (properties ("FONT_CLASS" "PCF")) ) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default ;; ----------------------------------------------------------------- (define-default TeX (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*" "fj*" "tfj*" "df*" "tdf*" "rc*" "trc*") ((pk "%f.%dpk") *) ((gf "%f.%dgf") *) ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ((vf "%f.vf") *) ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ;; epson, canonlbp 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; VF Font Class Default ;; ----------------------------------------------------------------- (define-default vf (font-directories "TEXMF") (font-mapping ((* "%f.%dpk") (type1 "%f.pfb" point-size-from-tfm) *) ) (open-style "try") ;; "none", "try", or "require" (glyph-style "fill")) ;; "fill", or "empty" ;; ----------------------------------------------------------------- ;; TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm (glyph-style "fill")) ;; ----------------------------------------------------------------- ;; ASCII-JTeX Kanji fonts ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; sample font definitions for Japanese TeX (define-font jtex-min (font-class jg) (font-file "zkyo0by")) (define-font jtex-goth (font-class jg) (font-file "zkyo0by")) (define-font jtex-tmin (font-class jg) (font-file "zkyo0by")) (define-font jtex-tgoth (font-class jg) (font-file "zkyo0by")) (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.9) (metric-adjustment-file "jg.adj")) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.8) (metric-adjustment-file "jg.adj")) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.9) (metric-adjustment-file "tjg.adj")) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.8) (metric-adjustment-file "tjg.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) ;; ----------------------------------------------------------------- (define-font zkyo0by (font-class jg) (font-file "zkyo0by")) (define-font zkyo0byA (font-class jg) (pixel-size 32) (point-size 32) (font-file "zkyo0by")) (define-font zkyo0byB (font-class jg) (pixel-size 32) (point-size 32) (magnification 1.2) (font-file "zkyo0by")) (define-font kanji10.jtex (tfm-file "min10") (kanji-font-point-size 10) min-common) ;; ----------------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/vflibcaps/vflibcap-zeit0000644000175000017500000001665007057623255017742 0ustar mohuramohura;;; -*-Lisp-*- ;; ;; vflibcap for ZEIT (Syotai Kurab) fonts ;; by h.kakugawa@computer.org ;; ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (extension-hints ("pk" TeX)) (implicit-font-classes zeit) (variable-values (TeX_DPI "300") (TeX_USE_KPATHSEA "Yes") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "vflserver")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) ) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*") ((pk "%f.%dpk") (gf "%f.%dgf") *) ((vf "%f.vf") *) ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ;; epson, canonlbp 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk (font-directories "/usr/local/lib/fonts/pk300" "/usr/local/lib/fonts/pk400" "/usr/local/lib/fonts/pk240" "/usr/local/lib/fonts/pk118" "/usr/local/lib/fonts/pk600" "TEXMF")) ;; ----------------------------------------------------------------- ;; VF Font Class Default ;; ----------------------------------------------------------------- (define-default vf (font-directories "TEXMF") (font-mapping ((* "%f.%dpk") (type1 "%f.pfb" point-size-from-tfm) *) ) (open-style "try") ;; "none", "try", or "require" (glyph-style "fill")) ;; "fill", or "empty" ;; ----------------------------------------------------------------- ;; TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm (glyph-style "fill")) ;; ----------------------------------------------------------------- ;; ASCII-JTeX Kanji fonts ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji (tfm-directories "TEXMF") (tfm-filename-extensions "tfm") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; Syotrai Club Font Class Default ;; ----------------------------------------------------------------- (define-default zeit (filename-extensions ".vf" ".VF") (font-directories "/usr/local/share/kanji/zeit//" "/usr/local/share/fonts/Watanabe//" "/usr/local/share/fonts/WadaLab//") (properties ("FONT_CLASS" "ZEIT") ("CHARSET_REGISTRY" "jisx0208.1983") ("CHARSET_ENCODING" "0") )) ;; ----------------------------------------------------------------- ;; sample font definitions for Japanese TeX (define-font jtex-min (font-class zeit) (font-file "mincho")) (define-font jtex-goth (font-class zeit) (font-file "asiya24")) (define-font jtex-tmin (font-class zeit) (font-file "mincho")) (define-font jtex-tgoth (font-class zeit) (font-file "asiya24")) (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.95) (metric-adjustment-file "mincho.adj")) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.95) (metric-adjustment-file "asiya24.adj")) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.95) (metric-adjustment-file "tmincho.adj")) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.95) (metric-adjustment-file "tasiya24.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) ;; ----------------------------------------------------------------- (define-font mincho (font-class zeit) (pixel-size 32) (point-size 32) (font-file "mincho")) (define-font mincho2 (font-class zeit) (magnification 1.2) (pixel-size 32) (point-size 32) (font-file "mincho")) (define-font mincho3 (font-class zeit) (dpi 72.27) (pixel-size 24) (point-size 24) (font-file "mincho")) (define-font mincho4 (font-class zeit) (dpi 144.54) (pixel-size 24) (point-size 24) (font-file "mincho")) (define-font mincho5 (font-class zeit) (dpi 72.27) (aspect-ratio 0.5) (pixel-size 24) (point-size 24) (font-file "mincho")) (define-font mincho6 (font-class zeit) (dpi 72.27) (aspect-ratio 1.2) (pixel-size 24) (point-size 24) (font-file "mincho")) (define-font goth13 (font-class zeit) (pixel-size 48) (point-size 48) (font-file "goth13")) (define-font maru08 (font-class zeit) (pixel-size 48) (point-size 48) (font-file "maru08")) (define-font min08 (font-class zeit) (pixel-size 48) (point-size 48) (font-file "min08")) (define-font min12 (font-class zeit) (pixel-size 48) (point-size 48) (font-file "min12")) ;; ----------------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/vflibcaps/vflibcap-tex0000644000175000017500000017267307575242204017573 0ustar mohuramohura;; a vflibcap file generated by 'vflmkcaptex' automatically ;; at 2002ǯ 1210 1033ʬ55 JST ;; on home.kakugawa.hiroshima-u.ac.jp by kakugawa ;; ;; command line arguments given to generate this vflibcap: ;; vflmkcaptex standard -i ;; ;; ------------------------------------------------------- ;; *** VFlib defaults *** ;; Generated by vflmkvfl ;; at Tue Dec 10 10:33:55 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkvfl -n cx -r 300 -p xgdvi -k -i TeX (define-default VFlib (extension-hints) (implicit-font-classes TeX) (uncompression-programs (".Z" "gzip -cd") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "xgdvi")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files)) ;; ------------------------------------------------------- ;; *** TeX Font Mapper *** ;; Generated by vflmktex ;; at Tue Dec 10 10:33:55 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmktex -r $TeX_DPI -d TEXMF -m type1 %f.pfb -m vf %f.vf -m pk %f.%dpk -m tfm %f.%dtfm (define-default TeX (dpi $TeX_DPI) (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm" ".ofm") (font-mapping ((type1 "%f.pfb" point-size-from-tfm) *) ((vf "%f.vf" point-size-from-tfm) *) ((pk "%f.%dpk") *) ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ; 240 dpi devices 240 240 263 288 312 346 415 498 597) (300 ; 300 dpi devices 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ; 400 dpi devices 400 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ; 600 dpi devices 600 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540))) ;; ------------------------------------------------------- ;; *** Type 1 *** ;; Generated by vflmkt1 ;; at Tue Dec 10 10:33:56 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkt1 -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI -x .pk -a TEXMF -e /usr/local/share/VFlib/3.6.13/t1lib -e /usr/local/share/VFlib/site -e /usr/local/share/VFlib/site/t1lib -f -t -d /usr/Acrobat3/Fonts -d /usr/Acrobat4/Resource/Font -d /usr/Acrobat5/Resource/Font -d /opt/Acrobat3/Fonts -d /opt/Acrobat4/Resource/Font -d /opt/Acrobat5/Resource/Font -d /usr/lpp/Acrobat3/Fonts -d /usr/lpp/Acrobat4/Resource/Font -d /usr/lpp/Acrobat5/Resource/Font -d /usr/local/Acrobat3/Fonts -d /usr/local/Acrobat4/Resource/Font -d /usr/local/Acrobat5/Resource/Font -a /usr/local/share/ghostscript/7.05/lib -a /usr/local/share/ghostscript/fonts -gf /usr/local/share/ghostscript/7.05/lib -gf /usr/local/share/ghostscript/fonts -gm /usr/local/share/ghostscript/7.05/lib/Fontmap cmfonts.map lafonts.map eufonts.map psfonts.map xypic.map (define-default type1 (font-directories "TEXMF" "/usr/Acrobat3/Fonts" "/usr/Acrobat4/Resource/Font" "/usr/Acrobat5/Resource/Font" "/opt/Acrobat3/Fonts" "/opt/Acrobat4/Resource/Font" "/opt/Acrobat5/Resource/Font" "/usr/lpp/Acrobat3/Fonts" "/usr/lpp/Acrobat4/Resource/Font" "/usr/lpp/Acrobat5/Resource/Font" "/usr/local/Acrobat3/Fonts" "/usr/local/Acrobat4/Resource/Font" "/usr/local/Acrobat5/Resource/Font" "/usr/local/share/ghostscript/7.05/lib" "/usr/local/share/ghostscript/fonts") (afm-directories "TEXMF" "/usr/local/share/ghostscript/7.05/lib" "/usr/local/share/ghostscript/fonts") (encoding-vector-directories "/usr/local/share/VFlib/3.6.13/t1lib" "/usr/local/share/VFlib/site" "/usr/local/share/VFlib/site/t1lib") (log-level "none") (dpi $TeX_DPI)) ;; dvips mapfile: /usr/local/share/texmf/dvips/base/cmfonts.map (define-font cmbxsl10.pk (font-class type1) (point-size 10.00) (tfm "cmbxsl10") (font-file "cmbxsl10.pfb")) (define-font cmbxti10.pk (font-class type1) (point-size 10.00) (tfm "cmbxti10") (font-file "cmbxti10.pfb")) (define-font cmbx10.pk (font-class type1) (point-size 10.00) (tfm "cmbx10") (font-file "cmbx10.pfb")) (define-font cmbx12.pk (font-class type1) (point-size 12.00) (tfm "cmbx12") (font-file "cmbx12.pfb")) (define-font cmbx5.pk (font-class type1) (point-size 5.00) (tfm "cmbx5") (font-file "cmbx5.pfb")) (define-font cmbx6.pk (font-class type1) (point-size 6.00) (tfm "cmbx6") (font-file "cmbx6.pfb")) (define-font cmbx7.pk (font-class type1) (point-size 7.00) (tfm "cmbx7") (font-file "cmbx7.pfb")) (define-font cmbx8.pk (font-class type1) (point-size 8.00) (tfm "cmbx8") (font-file "cmbx8.pfb")) (define-font cmbx9.pk (font-class type1) (point-size 9.00) (tfm "cmbx9") (font-file "cmbx9.pfb")) (define-font cmb10.pk (font-class type1) (point-size 10.00) (tfm "cmb10") (font-file "cmb10.pfb")) (define-font cmdunh10.pk (font-class type1) (point-size 10.00) (tfm "cmdunh10") (font-file "cmdunh10.pfb")) (define-font cmff10.pk (font-class type1) (point-size 10.00) (tfm "cmff10") (font-file "cmff10.pfb")) (define-font cmfib8.pk (font-class type1) (point-size 8.00) (tfm "cmfib8") (font-file "cmfib8.pfb")) (define-font cmfi10.pk (font-class type1) (point-size 10.00) (tfm "cmfi10") (font-file "cmfi10.pfb")) (define-font cmr10.pk (font-class type1) (point-size 10.00) (tfm "cmr10") (font-file "cmr10.pfb")) (define-font cmr12.pk (font-class type1) (point-size 12.00) (tfm "cmr12") (font-file "cmr12.pfb")) (define-font cmr17.pk (font-class type1) (point-size 17.28) (tfm "cmr17") (font-file "cmr17.pfb")) (define-font cmr6.pk (font-class type1) (point-size 6.00) (tfm "cmr6") (font-file "cmr6.pfb")) (define-font cmr7.pk (font-class type1) (point-size 7.00) (tfm "cmr7") (font-file "cmr7.pfb")) (define-font cmr8.pk (font-class type1) (point-size 8.00) (tfm "cmr8") (font-file "cmr8.pfb")) (define-font cmr9.pk (font-class type1) (point-size 9.00) (tfm "cmr9") (font-file "cmr9.pfb")) (define-font cmsl10.pk (font-class type1) (point-size 10.00) (tfm "cmsl10") (font-file "cmsl10.pfb")) (define-font cmsl12.pk (font-class type1) (point-size 12.00) (tfm "cmsl12") (font-file "cmsl12.pfb")) (define-font cmsl8.pk (font-class type1) (point-size 8.00) (tfm "cmsl8") (font-file "cmsl8.pfb")) (define-font cmsl9.pk (font-class type1) (point-size 9.00) (tfm "cmsl9") (font-file "cmsl9.pfb")) (define-font cmssbx10.pk (font-class type1) (point-size 10.00) (tfm "cmssbx10") (font-file "cmssbx10.pfb")) (define-font cmssdc10.pk (font-class type1) (point-size 10.00) (tfm "cmssdc10") (font-file "cmssdc10.pfb")) (define-font cmssi10.pk (font-class type1) (point-size 10.00) (tfm "cmssi10") (font-file "cmssi10.pfb")) (define-font cmssi12.pk (font-class type1) (point-size 12.00) (tfm "cmssi12") (font-file "cmssi12.pfb")) (define-font cmssi17.pk (font-class type1) (point-size 17.28) (tfm "cmssi17") (font-file "cmssi17.pfb")) (define-font cmssi8.pk (font-class type1) (point-size 8.00) (tfm "cmssi8") (font-file "cmssi8.pfb")) (define-font cmssi9.pk (font-class type1) (point-size 9.00) (tfm "cmssi9") (font-file "cmssi9.pfb")) (define-font cmssqi8.pk (font-class type1) (point-size 8.00) (tfm "cmssqi8") (font-file "cmssqi8.pfb")) (define-font cmssq8.pk (font-class type1) (point-size 8.00) (tfm "cmssq8") (font-file "cmssq8.pfb")) (define-font cmss10.pk (font-class type1) (point-size 10.00) (tfm "cmss10") (font-file "cmss10.pfb")) (define-font cmss12.pk (font-class type1) (point-size 12.00) (tfm "cmss12") (font-file "cmss12.pfb")) (define-font cmss17.pk (font-class type1) (point-size 17.28) (tfm "cmss17") (font-file "cmss17.pfb")) (define-font cmss8.pk (font-class type1) (point-size 8.00) (tfm "cmss8") (font-file "cmss8.pfb")) (define-font cmss9.pk (font-class type1) (point-size 9.00) (tfm "cmss9") (font-file "cmss9.pfb")) (define-font cmti10.pk (font-class type1) (point-size 10.00) (tfm "cmti10") (font-file "cmti10.pfb")) (define-font cmti12.pk (font-class type1) (point-size 12.00) (tfm "cmti12") (font-file "cmti12.pfb")) (define-font cmti7.pk (font-class type1) (point-size 7.00) (tfm "cmti7") (font-file "cmti7.pfb")) (define-font cmti8.pk (font-class type1) (point-size 8.00) (tfm "cmti8") (font-file "cmti8.pfb")) (define-font cmti9.pk (font-class type1) (point-size 9.00) (tfm "cmti9") (font-file "cmti9.pfb")) (define-font cmu10.pk (font-class type1) (point-size 10.00) (tfm "cmu10") (font-file "cmu10.pfb")) (define-font cmvtt10.pk (font-class type1) (point-size 10.00) (tfm "cmvtt10") (font-file "cmvtt10.pfb")) (define-font cmcsc10.pk (font-class type1) (point-size 10.00) (tfm "cmcsc10") (font-file "cmcsc10.pfb")) (define-font cmcsc8.pk (font-class type1) (point-size 8.00) (tfm "cmcsc8") (font-file "cmcsc8.pfb")) (define-font cmcsc9.pk (font-class type1) (point-size 9.00) (tfm "cmcsc9") (font-file "cmcsc9.pfb")) (define-font cmr5.pk (font-class type1) (point-size 5.00) (tfm "cmr5") (font-file "cmr5.pfb")) (define-font cmtex10.pk (font-class type1) (point-size 10.00) (tfm "cmtex10") (font-file "cmtex10.pfb")) (define-font cmtex8.pk (font-class type1) (point-size 8.00) (tfm "cmtex8") (font-file "cmtex8.pfb")) (define-font cmtex9.pk (font-class type1) (point-size 9.00) (tfm "cmtex9") (font-file "cmtex9.pfb")) (define-font cmitt10.pk (font-class type1) (point-size 10.00) (tfm "cmitt10") (font-file "cmitt10.pfb")) (define-font cmsltt10.pk (font-class type1) (point-size 10.00) (tfm "cmsltt10") (font-file "cmsltt10.pfb")) (define-font cmtcsc10.pk (font-class type1) (point-size 10.00) (tfm "cmtcsc10") (font-file "cmtcsc10.pfb")) (define-font cmtt10.pk (font-class type1) (point-size 10.00) (tfm "cmtt10") (font-file "cmtt10.pfb")) (define-font cmtt12.pk (font-class type1) (point-size 12.00) (tfm "cmtt12") (font-file "cmtt12.pfb")) (define-font cmtt8.pk (font-class type1) (point-size 8.00) (tfm "cmtt8") (font-file "cmtt8.pfb")) (define-font cmtt9.pk (font-class type1) (point-size 9.00) (tfm "cmtt9") (font-file "cmtt9.pfb")) (define-font cmex10.pk (font-class type1) (point-size 10.00) (tfm "cmex10") (font-file "cmex10.pfb")) (define-font cmbsy10.pk (font-class type1) (point-size 10.00) (tfm "cmbsy10") (font-file "cmbsy10.pfb")) (define-font cmsy10.pk (font-class type1) (point-size 10.00) (tfm "cmsy10") (font-file "cmsy10.pfb")) (define-font cmsy5.pk (font-class type1) (point-size 5.00) (tfm "cmsy5") (font-file "cmsy5.pfb")) (define-font cmsy6.pk (font-class type1) (point-size 6.00) (tfm "cmsy6") (font-file "cmsy6.pfb")) (define-font cmsy7.pk (font-class type1) (point-size 7.00) (tfm "cmsy7") (font-file "cmsy7.pfb")) (define-font cmsy8.pk (font-class type1) (point-size 8.00) (tfm "cmsy8") (font-file "cmsy8.pfb")) (define-font cmsy9.pk (font-class type1) (point-size 9.00) (tfm "cmsy9") (font-file "cmsy9.pfb")) (define-font cmmib10.pk (font-class type1) (point-size 10.00) (tfm "cmmib10") (font-file "cmmib10.pfb")) (define-font cmmi10.pk (font-class type1) (point-size 10.00) (tfm "cmmi10") (font-file "cmmi10.pfb")) (define-font cmmi12.pk (font-class type1) (point-size 12.00) (tfm "cmmi12") (font-file "cmmi12.pfb")) (define-font cmmi5.pk (font-class type1) (point-size 5.00) (tfm "cmmi5") (font-file "cmmi5.pfb")) (define-font cmmi6.pk (font-class type1) (point-size 6.00) (tfm "cmmi6") (font-file "cmmi6.pfb")) (define-font cmmi7.pk (font-class type1) (point-size 7.00) (tfm "cmmi7") (font-file "cmmi7.pfb")) (define-font cmmi8.pk (font-class type1) (point-size 8.00) (tfm "cmmi8") (font-file "cmmi8.pfb")) (define-font cmmi9.pk (font-class type1) (point-size 9.00) (tfm "cmmi9") (font-file "cmmi9.pfb")) (define-font cminch.pk (font-class type1) (point-size 104.07) (tfm "cminch") (font-file "cminch.pfb")) ;; end of /usr/local/share/texmf/dvips/base/cmfonts.map ;; dvips mapfile: /usr/local/share/texmf/dvips/base/lafonts.map (define-font lasy5.pk (font-class type1) (point-size 5.00) (tfm "lasy5") (font-file "lasy5.pfb")) (define-font lasy6.pk (font-class type1) (point-size 6.00) (tfm "lasy6") (font-file "lasy6.pfb")) (define-font lasy7.pk (font-class type1) (point-size 7.00) (tfm "lasy7") (font-file "lasy7.pfb")) (define-font lasy8.pk (font-class type1) (point-size 8.00) (tfm "lasy8") (font-file "lasy8.pfb")) (define-font lasy9.pk (font-class type1) (point-size 9.00) (tfm "lasy9") (font-file "lasy9.pfb")) (define-font lasy10.pk (font-class type1) (point-size 10.00) (tfm "lasy10") (font-file "lasy10.pfb")) (define-font lasyb10.pk (font-class type1) (point-size 10.00) (tfm "lasyb10") (font-file "lasyb10.pfb")) (define-font lcircle10.pk (font-class type1) (point-size 10.00) (tfm "lcircle10") (font-file "lcircle10.pfb")) (define-font lcirclew10.pk (font-class type1) (point-size 10.00) (tfm "lcirclew10") (font-file "lcirclew10.pfb")) (define-font line10.pk (font-class type1) (point-size 10.00) (tfm "line10") (font-file "line10.pfb")) (define-font linew10.pk (font-class type1) (point-size 10.00) (tfm "linew10") (font-file "linew10.pfb")) (define-font logo8.pk (font-class type1) (point-size 8.00) (tfm "logo8") (font-file "logo8.pfb")) (define-font logo9.pk (font-class type1) (point-size 9.00) (tfm "logo9") (font-file "logo9.pfb")) (define-font logo10.pk (font-class type1) (point-size 10.00) (tfm "logo10") (font-file "logo10.pfb")) (define-font logobf10.pk (font-class type1) (point-size 10.00) (tfm "logobf10") (font-file "logobf10.pfb")) (define-font logosl10.pk (font-class type1) (point-size 10.00) (tfm "logosl10") (font-file "logosl10.pfb")) ;; end of /usr/local/share/texmf/dvips/base/lafonts.map ;; dvips mapfile: /usr/local/share/texmf/dvips/base/eufonts.map (define-font euex10.pk (font-class type1) (point-size 10.00) (tfm "euex10") (font-file "euex10.pfb")) (define-font eufb10.pk (font-class type1) (point-size 10.00) (tfm "eufb10") (font-file "eufb10.pfb")) (define-font eufb5.pk (font-class type1) (point-size 5.00) (tfm "eufb5") (font-file "eufb5.pfb")) (define-font eufb7.pk (font-class type1) (point-size 7.00) (tfm "eufb7") (font-file "eufb7.pfb")) (define-font eufm10.pk (font-class type1) (point-size 10.00) (tfm "eufm10") (font-file "eufm10.pfb")) (define-font eufm5.pk (font-class type1) (point-size 5.00) (tfm "eufm5") (font-file "eufm5.pfb")) (define-font eufm7.pk (font-class type1) (point-size 7.00) (tfm "eufm7") (font-file "eufm7.pfb")) (define-font eurb10.pk (font-class type1) (point-size 10.00) (tfm "eurb10") (font-file "eurb10.pfb")) (define-font eurb5.pk (font-class type1) (point-size 5.00) (tfm "eurb5") (font-file "eurb5.pfb")) (define-font eurb7.pk (font-class type1) (point-size 7.00) (tfm "eurb7") (font-file "eurb7.pfb")) (define-font eurm10.pk (font-class type1) (point-size 10.00) (tfm "eurm10") (font-file "eurm10.pfb")) (define-font eurm5.pk (font-class type1) (point-size 5.00) (tfm "eurm5") (font-file "eurm5.pfb")) (define-font eurm7.pk (font-class type1) (point-size 7.00) (tfm "eurm7") (font-file "eurm7.pfb")) (define-font eusb10.pk (font-class type1) (point-size 10.00) (tfm "eusb10") (font-file "eusb10.pfb")) (define-font eusb5.pk (font-class type1) (point-size 5.00) (tfm "eusb5") (font-file "eusb5.pfb")) (define-font eusb7.pk (font-class type1) (point-size 7.00) (tfm "eusb7") (font-file "eusb7.pfb")) (define-font eusm10.pk (font-class type1) (point-size 10.00) (tfm "eusm10") (font-file "eusm10.pfb")) (define-font eusm5.pk (font-class type1) (point-size 5.00) (tfm "eusm5") (font-file "eusm5.pfb")) (define-font eusm7.pk (font-class type1) (point-size 7.00) (tfm "eusm7") (font-file "eusm7.pfb")) (define-font msam10.pk (font-class type1) (point-size 10.00) (tfm "msam10") (font-file "msam10.pfb")) (define-font msbm10.pk (font-class type1) (point-size 10.00) (tfm "msbm10") (font-file "msbm10.pfb")) ;; end of /usr/local/share/texmf/dvips/base/eufonts.map ;; dvips mapfile: /usr/local/share/texmf/dvips/base/psfonts.map (define-font rpagk.pk (font-class type1) (point-size 10.00) (tfm "rpagk") (font-file "AvantGarde-Book")) (define-font rpagko.pk (font-class type1) (point-size 10.00) (tfm "rpagko") (font-file "AvantGarde-BookOblique")) (define-font rpagd.pk (font-class type1) (point-size 10.00) (tfm "rpagd") (font-file "AvantGarde-Demi")) (define-font rpagdo.pk (font-class type1) (point-size 10.00) (tfm "rpagdo") (font-file "AvantGarde-DemiOblique")) (define-font rpbkl.pk (font-class type1) (point-size 10.00) (tfm "rpbkl") (font-file "Bookman-Light")) (define-font rpbkli.pk (font-class type1) (point-size 10.00) (tfm "rpbkli") (font-file "Bookman-LightItalic")) (define-font rpbkd.pk (font-class type1) (point-size 10.00) (tfm "rpbkd") (font-file "Bookman-Demi")) (define-font rpbkdi.pk (font-class type1) (point-size 10.00) (tfm "rpbkdi") (font-file "Bookman-DemiItalic")) (define-font rpcrr.pk (font-class type1) (point-size 10.00) (tfm "rpcrr") (font-file "Courier")) (define-font rpcrro.pk (font-class type1) (point-size 10.00) (tfm "rpcrro") (font-file "Courier-Oblique")) (define-font rpcrb.pk (font-class type1) (point-size 10.00) (tfm "rpcrb") (font-file "Courier-Bold")) (define-font rpcrbo.pk (font-class type1) (point-size 10.00) (tfm "rpcrbo") (font-file "Courier-BoldOblique")) (define-font rphvr.pk (font-class type1) (point-size 10.00) (tfm "rphvr") (font-file "Helvetica")) (define-font rphvro.pk (font-class type1) (point-size 10.00) (tfm "rphvro") (font-file "Helvetica-Oblique")) (define-font rphvb.pk (font-class type1) (point-size 10.00) (tfm "rphvb") (font-file "Helvetica-Bold")) (define-font rphvbo.pk (font-class type1) (point-size 10.00) (tfm "rphvbo") (font-file "Helvetica-BoldOblique")) (define-font rphvrrn.pk (font-class type1) (point-size 10.00) (tfm "rphvrrn") (font-file "Helvetica") (aspect-ratio 0.820)) (define-font rphvron.pk (font-class type1) (point-size 10.00) (tfm "rphvron") (font-file "Helvetica-Oblique") (aspect-ratio 0.820)) (define-font rphvbrn.pk (font-class type1) (point-size 10.00) (tfm "rphvbrn") (font-file "Helvetica-Bold") (aspect-ratio 0.820)) (define-font rphvbon.pk (font-class type1) (point-size 10.00) (tfm "rphvbon") (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820)) (define-font rpncr.pk (font-class type1) (point-size 10.00) (tfm "rpncr") (font-file "NewCenturySchlbk-Roman")) (define-font rpncri.pk (font-class type1) (point-size 10.00) (tfm "rpncri") (font-file "NewCenturySchlbk-Italic")) (define-font rpncb.pk (font-class type1) (point-size 10.00) (tfm "rpncb") (font-file "NewCenturySchlbk-Bold")) (define-font rpncbi.pk (font-class type1) (point-size 10.00) (tfm "rpncbi") (font-file "NewCenturySchlbk-BoldItalic")) (define-font rpplr.pk (font-class type1) (point-size 10.00) (tfm "rpplr") (font-file "Palatino-Roman")) (define-font rpplri.pk (font-class type1) (point-size 10.00) (tfm "rpplri") (font-file "Palatino-Italic")) (define-font rpplro.pk (font-class type1) (point-size 10.00) (tfm "rpplro") (font-file "Palatino-Roman") (slant-factor 0.167)) (define-font rpplb.pk (font-class type1) (point-size 10.00) (tfm "rpplb") (font-file "Palatino-Bold")) (define-font rpplbi.pk (font-class type1) (point-size 10.00) (tfm "rpplbi") (font-file "Palatino-BoldItalic")) (define-font rpplbu.pk (font-class type1) (point-size 10.00) (tfm "rpplbu") (font-file "Palatino-BoldItalic") (slant-factor -0.176)) (define-font rpplru.pk (font-class type1) (point-size 10.00) (tfm "rpplru") (font-file "Palatino-Italic") (slant-factor -0.176)) (define-font rpplrrn.pk (font-class type1) (point-size 10.00) (tfm "rpplrrn") (font-file "Palatino-Roman") (aspect-ratio 0.820)) (define-font rpplrre.pk (font-class type1) (point-size 10.00) (tfm "rpplrre") (font-file "Palatino-Roman") (aspect-ratio 1.200)) (define-font psyr.pk (font-class type1) (point-size 10.00) (tfm "psyr") (font-file "Symbol")) (define-font rpsyr.pk (font-class type1) (point-size 10.00) (tfm "rpsyr") (font-file "Symbol")) (define-font psyro.pk (font-class type1) (point-size 10.00) (tfm "psyro") (font-file "Symbol") (slant-factor 0.167)) (define-font rpsyro.pk (font-class type1) (point-size 10.00) (tfm "rpsyro") (font-file "Symbol") (slant-factor 0.167)) (define-font rptmr.pk (font-class type1) (point-size 10.00) (tfm "rptmr") (font-file "Times-Roman")) (define-font rptmri.pk (font-class type1) (point-size 10.00) (tfm "rptmri") (font-file "Times-Italic")) (define-font rptmro.pk (font-class type1) (point-size 10.00) (tfm "rptmro") (font-file "Times-Roman") (slant-factor 0.167)) (define-font rptmb.pk (font-class type1) (point-size 10.00) (tfm "rptmb") (font-file "Times-Bold")) (define-font rptmbi.pk (font-class type1) (point-size 10.00) (tfm "rptmbi") (font-file "Times-BoldItalic")) (define-font rptmbo.pk (font-class type1) (point-size 10.00) (tfm "rptmbo") (font-file "Times-Bold") (slant-factor 0.167)) (define-font rptmrrn.pk (font-class type1) (point-size 10.00) (tfm "rptmrrn") (font-file "Times-Roman") (aspect-ratio 0.800)) (define-font rptmrre.pk (font-class type1) (point-size 10.00) (tfm "rptmrre") (font-file "Times-Roman") (aspect-ratio 1.200)) (define-font pzdr.pk (font-class type1) (point-size 10.00) (tfm "pzdr") (font-file "ZapfDingbats")) (define-font rpzdr.pk (font-class type1) (point-size 10.00) (tfm "rpzdr") (font-file "ZapfDingbats")) (define-font rpzcmi.pk (font-class type1) (point-size 10.00) (tfm "rpzcmi") (font-file "ZapfChancery-MediumItalic")) (define-font rputr.pk (font-class type1) (font-file "putr.pfa")) (define-font rputri.pk (font-class type1) (font-file "putri.pfa")) (define-font rputb.pk (font-class type1) (font-file "putb.pfa")) (define-font rputbi.pk (font-class type1) (font-file "putbi.pfa")) (define-font rbchr.pk (font-class type1) (font-file "bchr.pfb")) (define-font rbchri.pk (font-class type1) (font-file "bchri.pfb")) (define-font rbchb.pk (font-class type1) (font-file "bchb.pfb")) (define-font rbchbi.pk (font-class type1) (font-file "bchbi.pfb")) (define-font ruaqrrc.pk (font-class type1) (font-file "uaqrrc.pfa")) (define-font rugqb.pk (font-class type1) (font-file "ugqb.pfa")) (define-font runmr.pk (font-class type1) (font-file "unmr.pfa")) (define-font runmrs.pk (font-class type1) (font-file "unmrs.pfa")) (define-font hlcr5s.pk (font-class type1) (font-file "hlcr5s.pfa")) (define-font hlcr5as.pk (font-class type1) (font-file "hlcr5as.pfa")) (define-font rpaab.pk (font-class type1) (font-file "paab.pfa")) (define-font rpadr.pk (font-class type1) (font-file "padr.pfa")) (define-font rpadri.pk (font-class type1) (font-file "padri.pfa")) (define-font rpads.pk (font-class type1) (font-file "pads.pfa")) (define-font rpadsi.pk (font-class type1) (font-file "padsi.pfa")) (define-font rpadb.pk (font-class type1) (font-file "padb.pfa")) (define-font rpadbi.pk (font-class type1) (font-file "padbi.pfa")) (define-font rpadrd.pk (font-class type1) (font-file "padrd.pfa")) (define-font rpadrx.pk (font-class type1) (font-file "padrx.pfa")) (define-font rpadrix.pk (font-class type1) (font-file "padrix.pfa")) (define-font rpadsx.pk (font-class type1) (font-file "padsx.pfa")) (define-font rpadbx.pk (font-class type1) (font-file "padbx.pfa")) (define-font rpadbix.pk (font-class type1) (font-file "padbix.pfa")) (define-font rpbdr.pk (font-class type1) (font-file "pbdr.pfa")) (define-font rpbdri.pk (font-class type1) (font-file "pbdri.pfa")) (define-font rpbdb.pk (font-class type1) (font-file "pbdb.pfa")) (define-font rpbdbi.pk (font-class type1) (font-file "pbdbi.pfa")) (define-font rpbdp.pk (font-class type1) (font-file "pbdp.pfa")) (define-font rpburw.pk (font-class type1) (font-file "pburw.pfa")) (define-font rpc5r.pk (font-class type1) (font-file "pc5r.pfa")) (define-font rpc5ri.pk (font-class type1) (font-file "pc5ri.pfa")) (define-font rpc3r.pk (font-class type1) (font-file "pc3r.pfa")) (define-font rpc3ri.pk (font-class type1) (font-file "pc3ri.pfa")) (define-font rphvrrc.pk (font-class type1) (font-file "phvrrc.pfa")) (define-font rphvroc.pk (font-class type1) (font-file "phvroc.pfa")) (define-font rphvbrc.pk (font-class type1) (font-file "phvbrc.pfa")) (define-font rphvboc.pk (font-class type1) (font-file "phvboc.pfa")) (define-font rpubr.pk (font-class type1) (font-file "pubr.pfa")) (define-font rpubri.pk (font-class type1) (font-file "pubri.pfa")) (define-font rpubb.pk (font-class type1) (font-file "pubb.pfa")) (define-font rpubbi.pk (font-class type1) (font-file "pubbi.pfa")) (define-font rplbk.pk (font-class type1) (font-file "plbk.pfa")) (define-font rplbko.pk (font-class type1) (font-file "plbko.pfa")) (define-font rplbd.pk (font-class type1) (font-file "plbd.pfa")) (define-font rplbdo.pk (font-class type1) (font-file "plbdo.pfa")) (define-font rpsvl.pk (font-class type1) (font-file "psvl.pfa")) (define-font rpsvli.pk (font-class type1) (font-file "psvli.pfa")) (define-font rpsvd.pk (font-class type1) (font-file "psvd.pfa")) (define-font rpsvdi.pk (font-class type1) (font-file "psvdi.pfa")) (define-font rphbr.pk (font-class type1) (font-file "phbr.pfa")) (define-font rpslr.pk (font-class type1) (font-file "pslr.pfa")) (define-font rplcr.pk (font-class type1) (font-file "plcr.pfa")) (define-font rplcri.pk (font-class type1) (font-file "plcri.pfa")) (define-font rplcro.pk (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167)) (define-font rplcb.pk (font-class type1) (font-file "plcb.pfa")) (define-font rplcbi.pk (font-class type1) (font-file "plcbi.pfa")) (define-font rplcrs.pk (font-class type1) (font-file "plcrs.pfa")) (define-font rplcris.pk (font-class type1) (font-file "plcris.pfa")) (define-font rplcbs.pk (font-class type1) (font-file "plcbs.pfa")) (define-font rplcbis.pk (font-class type1) (font-file "plcbis.pfa")) (define-font rplcrb.pk (font-class type1) (font-file "plcrb.pfa")) (define-font rplcrbi.pk (font-class type1) (font-file "plcrbi.pfa")) (define-font rplcbb.pk (font-class type1) (font-file "plcbb.pfa")) (define-font rplcrst.pk (font-class type1) (font-file "plcrst.pfa")) (define-font rplcrm.pk (font-class type1) (font-file "plcrm.pfa")) (define-font rplcrv.pk (font-class type1) (font-file "plcrv.pfa")) (define-font rplcry.pk (font-class type1) (font-file "plcry.pfa")) (define-font rylhr.pk (font-class type1) (font-file "ylhr.pfb")) (define-font lbr.pk (font-class type1) (point-size 10.00) (tfm "lbr") (font-file "lbr.pfb")) (define-font rylhri.pk (font-class type1) (font-file "ylhri.pfb")) (define-font lbi.pk (font-class type1) (point-size 10.00) (tfm "lbi") (font-file "lbi.pfb")) (define-font rylhro.pk (font-class type1) (font-file "ylhro.pfb")) (define-font lbsl.pk (font-class type1) (point-size 10.00) (tfm "lbsl") (font-file "lbsl.pfb")) (define-font rylhd.pk (font-class type1) (font-file "ylhd.pfb")) (define-font lbd.pk (font-class type1) (point-size 10.00) (tfm "lbd") (font-file "lbd.pfb")) (define-font rylhdi.pk (font-class type1) (font-file "ylhdi.pfb")) (define-font lbdi.pk (font-class type1) (point-size 10.00) (tfm "lbdi") (font-file "lbdi.pfb")) (define-font rylcrs.pk (font-class type1) (font-file "ylcrs.pfb")) (define-font lsr.pk (font-class type1) (point-size 10.00) (tfm "lsr") (font-file "lsr.pfb")) (define-font rylcds.pk (font-class type1) (font-file "ylcds.pfb")) (define-font lsd.pk (font-class type1) (point-size 10.00) (tfm "lsd") (font-file "lsd.pfb")) (define-font rylcdis.pk (font-class type1) (font-file "ylcdis.pfb")) (define-font lsdi.pk (font-class type1) (point-size 10.00) (tfm "lsdi") (font-file "lsdi.pfb")) (define-font rylcrst.pk (font-class type1) (font-file "ylcrst.pfb")) (define-font lstr.pk (font-class type1) (point-size 10.00) (tfm "lstr") (font-file "lstr.pfb")) (define-font rylcrost.pk (font-class type1) (font-file "ylcrost.pfb")) (define-font lsto.pk (font-class type1) (point-size 10.00) (tfm "lsto") (font-file "lsto.pfb")) (define-font rylcbst.pk (font-class type1) (font-file "ylcbst.pfb")) (define-font lstb.pk (font-class type1) (point-size 10.00) (tfm "lstb") (font-file "lstb.pfb")) (define-font rylcbost.pk (font-class type1) (font-file "ylcbost.pfb")) (define-font lstbo.pk (font-class type1) (point-size 10.00) (tfm "lstbo") (font-file "lstbo.pfb")) (define-font rylcr4.pk (font-class type1) (font-file "ylcr4.pfb")) (define-font lfr.pk (font-class type1) (point-size 10.00) (tfm "lfr") (font-file "lfr.pfb")) (define-font rylcr4i.pk (font-class type1) (font-file "ylcr4i.pfb")) (define-font lfi.pk (font-class type1) (point-size 10.00) (tfm "lfi") (font-file "lfi.pfb")) (define-font rylcd4.pk (font-class type1) (font-file "ylcd4.pfb")) (define-font lfd.pk (font-class type1) (point-size 10.00) (tfm "lfd") (font-file "lfd.pfb")) (define-font rylcd4i.pk (font-class type1) (font-file "ylcd4i.pfb")) (define-font lfdi.pk (font-class type1) (point-size 10.00) (tfm "lfdi") (font-file "lfdi.pfb")) (define-font rylcrf.pk (font-class type1) (font-file "ylcrf.pfb")) (define-font lbl.pk (font-class type1) (point-size 10.00) (tfm "lbl") (font-file "lbl.pfb")) (define-font rylcrihw.pk (font-class type1) (font-file "ylcrihw.pfb")) (define-font lbh.pk (font-class type1) (point-size 10.00) (tfm "lbh") (font-file "lbh.pfb")) (define-font rylcris.pk (font-class type1) (font-file "ylcris.pfb")) (define-font lsi.pk (font-class type1) (point-size 10.00) (tfm "lsi") (font-file "lsi.pfb")) (define-font rylcriw.pk (font-class type1) (font-file "ylcriw.pfb")) (define-font lbc.pk (font-class type1) (point-size 10.00) (tfm "lbc") (font-file "lbc.pfb")) (define-font rcggr.pk (font-class type1) (font-file "cggr.pfa")) (define-font rcggri.pk (font-class type1) (font-file "cggri.pfa")) (define-font rcggb.pk (font-class type1) (font-file "cggb.pfa")) (define-font rcggbi.pk (font-class type1) (font-file "cggbi.pfa")) (define-font rcshr.pk (font-class type1) (font-file "cshr.pfa")) (define-font rcshro.pk (font-class type1) (font-file "cshro.pfa")) (define-font rcshb.pk (font-class type1) (font-file "cshb.pfa")) (define-font rcshx.pk (font-class type1) (font-file "cshx.pfa")) (define-font bchbo8r.pk (font-class type1) (point-size 10.00) (tfm "bchbo8r") (font-file "bchb.pfa") (slant-factor 0.167)) (define-font bchro8r.pk (font-class type1) (point-size 10.00) (tfm "bchro8r") (font-file "bchr.pfa") (slant-factor 0.167)) (define-font pbkdo8r.pk (font-class type1) (point-size 10.00) (tfm "pbkdo8r") (font-file "Bookman-Demi") (slant-factor 0.167)) (define-font pbklo8r.pk (font-class type1) (point-size 10.00) (tfm "pbklo8r") (font-file "Bookman-Light") (slant-factor 0.167)) (define-font pncbo8r.pk (font-class type1) (point-size 10.00) (tfm "pncbo8r") (font-file "NewCenturySchlbk-Bold") (slant-factor 0.167)) (define-font pncro8r.pk (font-class type1) (point-size 10.00) (tfm "pncro8r") (font-file "NewCenturySchlbk-Roman") (slant-factor 0.167)) (define-font pplbo8r.pk (font-class type1) (point-size 10.00) (tfm "pplbo8r") (font-file "Palatino-Bold") (slant-factor 0.167)) (define-font putbo8r.pk (font-class type1) (point-size 10.00) (tfm "putbo8r") (font-file "putb8r.pfa") (slant-factor 0.167)) (define-font putro8r.pk (font-class type1) (point-size 10.00) (tfm "putro8r") (font-file "putr.pfa") (slant-factor 0.167)) (define-font pagk8r.pk (font-class type1) (point-size 10.00) (tfm "pagk8r") (font-file "AvantGarde-Book") (encoding-vector "8r.enc")) (define-font pagko8r.pk (font-class type1) (point-size 10.00) (tfm "pagko8r") (font-file "AvantGarde-BookOblique") (encoding-vector "8r.enc")) (define-font pagd8r.pk (font-class type1) (point-size 10.00) (tfm "pagd8r") (font-file "AvantGarde-Demi") (encoding-vector "8r.enc")) (define-font pagdo8r.pk (font-class type1) (point-size 10.00) (tfm "pagdo8r") (font-file "AvantGarde-DemiOblique") (encoding-vector "8r.enc")) (define-font pbkl8r.pk (font-class type1) (point-size 10.00) (tfm "pbkl8r") (font-file "Bookman-Light") (encoding-vector "8r.enc")) (define-font pbkli8r.pk (font-class type1) (point-size 10.00) (tfm "pbkli8r") (font-file "Bookman-LightItalic") (encoding-vector "8r.enc")) (define-font pbkd8r.pk (font-class type1) (point-size 10.00) (tfm "pbkd8r") (font-file "Bookman-Demi") (encoding-vector "8r.enc")) (define-font pbkdi8r.pk (font-class type1) (point-size 10.00) (tfm "pbkdi8r") (font-file "Bookman-DemiItalic") (encoding-vector "8r.enc")) (define-font pcrr8r.pk (font-class type1) (point-size 10.00) (tfm "pcrr8r") (font-file "Courier") (encoding-vector "8r.enc")) (define-font pcrro8r.pk (font-class type1) (point-size 10.00) (tfm "pcrro8r") (font-file "Courier-Oblique") (encoding-vector "8r.enc")) (define-font pcrb8r.pk (font-class type1) (point-size 10.00) (tfm "pcrb8r") (font-file "Courier-Bold") (encoding-vector "8r.enc")) (define-font pcrbo8r.pk (font-class type1) (point-size 10.00) (tfm "pcrbo8r") (font-file "Courier-BoldOblique") (encoding-vector "8r.enc")) (define-font phvr8r.pk (font-class type1) (point-size 10.00) (tfm "phvr8r") (font-file "Helvetica") (encoding-vector "8r.enc")) (define-font phvro8r.pk (font-class type1) (point-size 10.00) (tfm "phvro8r") (font-file "Helvetica-Oblique") (encoding-vector "8r.enc")) (define-font phvb8r.pk (font-class type1) (point-size 10.00) (tfm "phvb8r") (font-file "Helvetica-Bold") (encoding-vector "8r.enc")) (define-font phvbo8r.pk (font-class type1) (point-size 10.00) (tfm "phvbo8r") (font-file "Helvetica-BoldOblique") (encoding-vector "8r.enc")) (define-font phvrrn8r.pk (font-class type1) (font-file "Helvetica") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvron8r.pk (font-class type1) (font-file "Helvetica-Oblique") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvbrn8r.pk (font-class type1) (font-file "Helvetica-Bold") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvbon8r.pk (font-class type1) (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font pncr8r.pk (font-class type1) (point-size 10.00) (tfm "pncr8r") (font-file "NewCenturySchlbk-Roman") (encoding-vector "8r.enc")) (define-font pncri8r.pk (font-class type1) (point-size 10.00) (tfm "pncri8r") (font-file "NewCenturySchlbk-Italic") (encoding-vector "8r.enc")) (define-font pncb8r.pk (font-class type1) (point-size 10.00) (tfm "pncb8r") (font-file "NewCenturySchlbk-Bold") (encoding-vector "8r.enc")) (define-font pncbi8r.pk (font-class type1) (point-size 10.00) (tfm "pncbi8r") (font-file "NewCenturySchlbk-BoldItalic") (encoding-vector "8r.enc")) (define-font pplr8r.pk (font-class type1) (point-size 10.00) (tfm "pplr8r") (font-file "Palatino-Roman") (encoding-vector "8r.enc")) (define-font pplri8r.pk (font-class type1) (point-size 10.00) (tfm "pplri8r") (font-file "Palatino-Italic") (encoding-vector "8r.enc")) (define-font pplro8r.pk (font-class type1) (point-size 10.00) (tfm "pplro8r") (font-file "Palatino-Roman") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font pplb8r.pk (font-class type1) (point-size 10.00) (tfm "pplb8r") (font-file "Palatino-Bold") (encoding-vector "8r.enc")) (define-font pplbi8r.pk (font-class type1) (point-size 10.00) (tfm "pplbi8r") (font-file "Palatino-BoldItalic") (encoding-vector "8r.enc")) (define-font pplbu8r.pk (font-class type1) (point-size 10.00) (tfm "pplbu8r") (font-file "Palatino-BoldItalic") (slant-factor -0.176) (encoding-vector "8r.enc")) (define-font pplru8r.pk (font-class type1) (point-size 10.00) (tfm "pplru8r") (font-file "Palatino-Italic") (slant-factor -0.176) (encoding-vector "8r.enc")) (define-font pplrrn8r.pk (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font pplrre8r.pk (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 1.200) (encoding-vector "8r.enc")) (define-font ptmr8r.pk (font-class type1) (point-size 10.00) (tfm "ptmr8r") (font-file "Times-Roman") (encoding-vector "8r.enc")) (define-font ptmri8r.pk (font-class type1) (point-size 10.00) (tfm "ptmri8r") (font-file "Times-Italic") (encoding-vector "8r.enc")) (define-font ptmro8r.pk (font-class type1) (point-size 10.00) (tfm "ptmro8r") (font-file "Times-Roman") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font ptmb8r.pk (font-class type1) (point-size 10.00) (tfm "ptmb8r") (font-file "Times-Bold") (encoding-vector "8r.enc")) (define-font ptmbi8r.pk (font-class type1) (point-size 10.00) (tfm "ptmbi8r") (font-file "Times-BoldItalic") (encoding-vector "8r.enc")) (define-font ptmbo8r.pk (font-class type1) (point-size 10.00) (tfm "ptmbo8r") (font-file "Times-Bold") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font ptmrrn8r.pk (font-class type1) (font-file "Times-Roman") (aspect-ratio 0.800) (encoding-vector "8r.enc")) (define-font ptmrre8r.pk (font-class type1) (font-file "Times-Roman") (aspect-ratio 1.200) (encoding-vector "8r.enc")) (define-font pzcmi8r.pk (font-class type1) (point-size 10.00) (tfm "pzcmi8r") (font-file "ZapfChancery-MediumItalic") (encoding-vector "8r.enc")) (define-font putr8r.pk (font-class type1) (point-size 10.00) (tfm "putr8r") (font-file "putr.pfa") (encoding-vector "8r.enc")) (define-font putri8r.pk (font-class type1) (point-size 10.00) (tfm "putri8r") (font-file "putri.pfa") (encoding-vector "8r.enc")) (define-font putb8r.pk (font-class type1) (point-size 10.00) (tfm "putb8r") (font-file "putb.pfa") (encoding-vector "8r.enc")) (define-font putbi8r.pk (font-class type1) (point-size 10.00) (tfm "putbi8r") (font-file "putbi.pfa") (encoding-vector "8r.enc")) (define-font bchr8r.pk (font-class type1) (point-size 10.00) (tfm "bchr8r") (font-file "bchr.pfb") (encoding-vector "8r.enc")) (define-font bchri8r.pk (font-class type1) (point-size 10.00) (tfm "bchri8r") (font-file "bchri.pfb") (encoding-vector "8r.enc")) (define-font bchb8r.pk (font-class type1) (point-size 10.00) (tfm "bchb8r") (font-file "bchb.pfb") (encoding-vector "8r.enc")) (define-font bchbi8r.pk (font-class type1) (point-size 10.00) (tfm "bchbi8r") (font-file "bchbi.pfb") (encoding-vector "8r.enc")) (define-font uaqrrc8r.pk (font-class type1) (font-file "uaqrrc.pfa") (encoding-vector "8r.enc")) (define-font ugqb8r.pk (font-class type1) (font-file "ugqb.pfa") (encoding-vector "8r.enc")) (define-font unmr8r.pk (font-class type1) (font-file "unmr.pfa") (encoding-vector "8r.enc")) (define-font unmrs8r.pk (font-class type1) (font-file "unmrs.pfa") (encoding-vector "8r.enc")) (define-font paab8r.pk (font-class type1) (font-file "paab.pfa") (encoding-vector "8r.enc")) (define-font padr8r.pk (font-class type1) (font-file "padr.pfa") (encoding-vector "8r.enc")) (define-font padri8r.pk (font-class type1) (font-file "padri.pfa") (encoding-vector "8r.enc")) (define-font pads8r.pk (font-class type1) (font-file "pads.pfa") (encoding-vector "8r.enc")) (define-font padsi8r.pk (font-class type1) (font-file "padsi.pfa") (encoding-vector "8r.enc")) (define-font padb8r.pk (font-class type1) (font-file "padb.pfa") (encoding-vector "8r.enc")) (define-font padbi8r.pk (font-class type1) (font-file "padbi.pfa") (encoding-vector "8r.enc")) (define-font padrd8r.pk (font-class type1) (font-file "padrd.pfa") (encoding-vector "8r.enc")) (define-font padrx8r.pk (font-class type1) (font-file "padrx.pfa") (encoding-vector "8r.enc")) (define-font padrix8r.pk (font-class type1) (font-file "padrix.pfa") (encoding-vector "8r.enc")) (define-font padsx8r.pk (font-class type1) (font-file "padsx.pfa") (encoding-vector "8r.enc")) (define-font padbx8r.pk (font-class type1) (font-file "padbx.pfa") (encoding-vector "8r.enc")) (define-font padbix8r.pk (font-class type1) (font-file "padbix.pfa") (encoding-vector "8r.enc")) (define-font pbdr8r.pk (font-class type1) (font-file "pbdr.pfa") (encoding-vector "8r.enc")) (define-font pbdri8r.pk (font-class type1) (font-file "pbdri.pfa") (encoding-vector "8r.enc")) (define-font pbdb8r.pk (font-class type1) (font-file "pbdb.pfa") (encoding-vector "8r.enc")) (define-font pbdbi8r.pk (font-class type1) (font-file "pbdbi.pfa") (encoding-vector "8r.enc")) (define-font pbdp8r.pk (font-class type1) (font-file "pbdp.pfa") (encoding-vector "8r.enc")) (define-font pburw8r.pk (font-class type1) (font-file "pburw.pfa") (encoding-vector "8r.enc")) (define-font pc5r8r.pk (font-class type1) (font-file "pc5r.pfa") (encoding-vector "8r.enc")) (define-font pc5ri8r.pk (font-class type1) (font-file "pc5ri.pfa") (encoding-vector "8r.enc")) (define-font pc3r8r.pk (font-class type1) (font-file "pc3r.pfa") (encoding-vector "8r.enc")) (define-font pc3ri8r.pk (font-class type1) (font-file "pc3ri.pfa") (encoding-vector "8r.enc")) (define-font phvrrc8r.pk (font-class type1) (font-file "phvrrc.pfa") (encoding-vector "8r.enc")) (define-font phvroc8r.pk (font-class type1) (font-file "phvroc.pfa") (encoding-vector "8r.enc")) (define-font phvbrc8r.pk (font-class type1) (font-file "phvbrc.pfa") (encoding-vector "8r.enc")) (define-font phvboc8r.pk (font-class type1) (font-file "phvboc.pfa") (encoding-vector "8r.enc")) (define-font pubr8r.pk (font-class type1) (font-file "pubr.pfa") (encoding-vector "8r.enc")) (define-font pubri8r.pk (font-class type1) (font-file "pubri.pfa") (encoding-vector "8r.enc")) (define-font pubb8r.pk (font-class type1) (font-file "pubb.pfa") (encoding-vector "8r.enc")) (define-font pubbi8r.pk (font-class type1) (font-file "pubbi.pfa") (encoding-vector "8r.enc")) (define-font plbk8r.pk (font-class type1) (font-file "plbk.pfa") (encoding-vector "8r.enc")) (define-font plbko8r.pk (font-class type1) (font-file "plbko.pfa") (encoding-vector "8r.enc")) (define-font plbd8r.pk (font-class type1) (font-file "plbd.pfa") (encoding-vector "8r.enc")) (define-font plbdo8r.pk (font-class type1) (font-file "plbdo.pfa") (encoding-vector "8r.enc")) (define-font psvl8r.pk (font-class type1) (font-file "psvl.pfa") (encoding-vector "8r.enc")) (define-font psvli8r.pk (font-class type1) (font-file "psvli.pfa") (encoding-vector "8r.enc")) (define-font psvd8r.pk (font-class type1) (font-file "psvd.pfa") (encoding-vector "8r.enc")) (define-font psvdi8r.pk (font-class type1) (font-file "psvdi.pfa") (encoding-vector "8r.enc")) (define-font phbr8r.pk (font-class type1) (font-file "phbr.pfa") (encoding-vector "8r.enc")) (define-font pslr8r.pk (font-class type1) (font-file "pslr.pfa") (encoding-vector "8r.enc")) (define-font plcr8r.pk (font-class type1) (font-file "plcr.pfa") (encoding-vector "8r.enc")) (define-font plcri8r.pk (font-class type1) (font-file "plcri.pfa") (encoding-vector "8r.enc")) (define-font plcro8r.pk (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font plcb8r.pk (font-class type1) (font-file "plcb.pfa") (encoding-vector "8r.enc")) (define-font plcbi8r.pk (font-class type1) (font-file "plcbi.pfa") (encoding-vector "8r.enc")) (define-font plcrs8r.pk (font-class type1) (font-file "plcrs.pfa") (encoding-vector "8r.enc")) (define-font plcris8r.pk (font-class type1) (font-file "plcris.pfa") (encoding-vector "8r.enc")) (define-font plcbs8r.pk (font-class type1) (font-file "plcbs.pfa") (encoding-vector "8r.enc")) (define-font plcbis8r.pk (font-class type1) (font-file "plcbis.pfa") (encoding-vector "8r.enc")) (define-font plcrb8r.pk (font-class type1) (font-file "plcrb.pfa") (encoding-vector "8r.enc")) (define-font plcrbi8r.pk (font-class type1) (font-file "plcrbi.pfa") (encoding-vector "8r.enc")) (define-font plcbb8r.pk (font-class type1) (font-file "plcbb.pfa") (encoding-vector "8r.enc")) (define-font plcrst8r.pk (font-class type1) (font-file "plcrst.pfa") (encoding-vector "8r.enc")) (define-font plcrm8r.pk (font-class type1) (font-file "plcrm.pfa") (encoding-vector "8r.enc")) (define-font plcrv8r.pk (font-class type1) (font-file "plcrv.pfa") (encoding-vector "8r.enc")) (define-font plcry8r.pk (font-class type1) (font-file "plcry.pfa") (encoding-vector "8r.enc")) (define-font ylhr8r.pk (font-class type1) (font-file "ylhr.pfb") (encoding-vector "8r.enc")) (define-font ylhri8r.pk (font-class type1) (font-file "ylhri.pfb") (encoding-vector "8r.enc")) (define-font ylhro8r.pk (font-class type1) (font-file "ylhro.pfb") (encoding-vector "8r.enc")) (define-font ylhd8r.pk (font-class type1) (font-file "ylhd.pfb") (encoding-vector "8r.enc")) (define-font ylhdi8r.pk (font-class type1) (font-file "ylhdi.pfb") (encoding-vector "8r.enc")) (define-font ylcrs8r.pk (font-class type1) (font-file "ylcrs.pfb") (encoding-vector "8r.enc")) (define-font ylcds8r.pk (font-class type1) (font-file "ylcds.pfb") (encoding-vector "8r.enc")) (define-font ylcdis8r.pk (font-class type1) (font-file "ylcdis.pfb") (encoding-vector "8r.enc")) (define-font ylcrst8r.pk (font-class type1) (font-file "ylcrst.pfb") (encoding-vector "8r.enc")) (define-font ylcrost8r.pk (font-class type1) (font-file "ylcrost.pfb") (encoding-vector "8r.enc")) (define-font ylcbst8r.pk (font-class type1) (font-file "ylcbst.pfb") (encoding-vector "8r.enc")) (define-font ylcbost8r.pk (font-class type1) (font-file "ylcbost.pfb") (encoding-vector "8r.enc")) (define-font ylcr48r.pk (font-class type1) (font-file "ylcr4.pfb") (encoding-vector "8r.enc")) (define-font ylcr4i8r.pk (font-class type1) (font-file "ylcr4i.pfb") (encoding-vector "8r.enc")) (define-font ylcd48r.pk (font-class type1) (font-file "ylcd4.pfb") (encoding-vector "8r.enc")) (define-font ylcd4i8r.pk (font-class type1) (font-file "ylcd4i.pfb") (encoding-vector "8r.enc")) (define-font ylcrf8r.pk (font-class type1) (font-file "ylcrf.pfb") (encoding-vector "8r.enc")) (define-font ylcrihw8r.pk (font-class type1) (font-file "ylcrihw.pfb") (encoding-vector "8r.enc")) (define-font ylcris8r.pk (font-class type1) (font-file "ylcris.pfb") (encoding-vector "8r.enc")) (define-font ylcriw8r.pk (font-class type1) (font-file "ylcriw.pfb") (encoding-vector "8r.enc")) (define-font cggr8r.pk (font-class type1) (font-file "cggr.pfa") (encoding-vector "8r.enc")) (define-font cggri8r.pk (font-class type1) (font-file "cggri.pfa") (encoding-vector "8r.enc")) (define-font cggb8r.pk (font-class type1) (font-file "cggb.pfa") (encoding-vector "8r.enc")) (define-font cggbi8r.pk (font-class type1) (font-file "cggbi.pfa") (encoding-vector "8r.enc")) (define-font cshr8r.pk (font-class type1) (font-file "cshr.pfa") (encoding-vector "8r.enc")) (define-font cshro8r.pk (font-class type1) (font-file "cshro.pfa") (encoding-vector "8r.enc")) (define-font cshb8r.pk (font-class type1) (font-file "cshb.pfa") (encoding-vector "8r.enc")) (define-font cshx8r.pk (font-class type1) (font-file "cshx.pfa") (encoding-vector "8r.enc")) (define-font pagk0.pk (font-class type1) (font-file "AvantGarde-Book")) (define-font pagko0.pk (font-class type1) (font-file "AvantGarde-BookOblique")) (define-font pagd0.pk (font-class type1) (font-file "AvantGarde-Demi")) (define-font pagdo0.pk (font-class type1) (font-file "AvantGarde-DemiOblique")) (define-font pbkl0.pk (font-class type1) (font-file "Bookman-Light")) (define-font pbkli0.pk (font-class type1) (font-file "Bookman-LightItalic")) (define-font pbklo0.pk (font-class type1) (font-file "Bookman-Light") (slant-factor 0.167)) (define-font pbkd0.pk (font-class type1) (font-file "Bookman-Demi")) (define-font pbkdi0.pk (font-class type1) (font-file "Bookman-DemiItalic")) (define-font pbkdo0.pk (font-class type1) (font-file "Bookman-Demi") (slant-factor 0.167)) (define-font pcrr0.pk (font-class type1) (font-file "Courier")) (define-font pcrro0.pk (font-class type1) (font-file "Courier-Oblique")) (define-font pcrb0.pk (font-class type1) (font-file "Courier-Bold")) (define-font pcrbo0.pk (font-class type1) (font-file "Courier-BoldOblique")) (define-font phvr0.pk (font-class type1) (font-file "Helvetica")) (define-font phvro0.pk (font-class type1) (font-file "Helvetica-Oblique")) (define-font phvb0.pk (font-class type1) (font-file "Helvetica-Bold")) (define-font phvbo0.pk (font-class type1) (font-file "Helvetica-BoldOblique")) (define-font phvrrn0.pk (font-class type1) (font-file "Helvetica") (aspect-ratio 0.820)) (define-font phvron0.pk (font-class type1) (font-file "Helvetica-Oblique") (aspect-ratio 0.820)) (define-font phvbrn0.pk (font-class type1) (font-file "Helvetica-Bold") (aspect-ratio 0.820)) (define-font phvbon0.pk (font-class type1) (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820)) (define-font pncr0.pk (font-class type1) (font-file "NewCenturySchlbk-Roman")) (define-font pncri0.pk (font-class type1) (font-file "NewCenturySchlbk-Italic")) (define-font pncro0.pk (font-class type1) (font-file "NewCenturySchlbk-Roman") (slant-factor 0.167)) (define-font pncb0.pk (font-class type1) (font-file "NewCenturySchlbk-Bold")) (define-font pncbi0.pk (font-class type1) (font-file "NewCenturySchlbk-BoldItalic")) (define-font pncbo0.pk (font-class type1) (font-file "NewCenturySchlbk-Bold") (slant-factor 0.167)) (define-font pplr0.pk (font-class type1) (font-file "Palatino-Roman")) (define-font pplri0.pk (font-class type1) (font-file "Palatino-Italic")) (define-font pplro0.pk (font-class type1) (font-file "Palatino-Roman") (slant-factor 0.167)) (define-font pplb0.pk (font-class type1) (font-file "Palatino-Bold")) (define-font pplbi0.pk (font-class type1) (font-file "Palatino-BoldItalic")) (define-font pplbo0.pk (font-class type1) (font-file "Palatino-Bold") (slant-factor 0.167)) (define-font pplbu0.pk (font-class type1) (font-file "Palatino-BoldItalic") (slant-factor -0.176)) (define-font pplru0.pk (font-class type1) (font-file "Palatino-Italic") (slant-factor -0.176)) (define-font pplrrn0.pk (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 0.820)) (define-font pplrre0.pk (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 1.200)) (define-font ptmr0.pk (font-class type1) (font-file "Times-Roman")) (define-font ptmri0.pk (font-class type1) (font-file "Times-Italic")) (define-font ptmro0.pk (font-class type1) (font-file "Times-Roman") (slant-factor 0.167)) (define-font ptmb0.pk (font-class type1) (font-file "Times-Bold")) (define-font ptmbi0.pk (font-class type1) (font-file "Times-BoldItalic")) (define-font ptmbo0.pk (font-class type1) (font-file "Times-Bold") (slant-factor 0.167)) (define-font ptmrrn0.pk (font-class type1) (font-file "Times-Roman") (aspect-ratio 0.800)) (define-font ptmrre0.pk (font-class type1) (font-file "Times-Roman") (aspect-ratio 1.200)) (define-font pzcmi0.pk (font-class type1) (font-file "ZapfChancery-MediumItalic")) (define-font putr0.pk (font-class type1) (font-file "putr.pfa")) (define-font putri0.pk (font-class type1) (font-file "putri.pfa")) (define-font putro0.pk (font-class type1) (font-file "putr.pfa") (slant-factor 0.167)) (define-font putb0.pk (font-class type1) (font-file "putb.pfa")) (define-font putbi0.pk (font-class type1) (font-file "putbi.pfa")) (define-font putbo0.pk (font-class type1) (font-file "putb.pfa") (slant-factor 0.167)) (define-font bchr0.pk (font-class type1) (font-file "bchr.pfb")) (define-font bchri0.pk (font-class type1) (font-file "bchri.pfb")) (define-font bchro0.pk (font-class type1) (font-file "bchr.pfa") (slant-factor 0.167)) (define-font bchb0.pk (font-class type1) (font-file "bchb.pfb")) (define-font bchbi0.pk (font-class type1) (font-file "bchbi.pfb")) (define-font bchbo0.pk (font-class type1) (font-file "bchb.pfa") (slant-factor 0.167)) (define-font uaqrrc0.pk (font-class type1) (font-file "uaqrrc.pfa")) (define-font ugqb0.pk (font-class type1) (font-file "ugqb.pfa")) (define-font unmr0.pk (font-class type1) (font-file "unmr.pfa")) (define-font unmrs0.pk (font-class type1) (font-file "unmrs.pfa")) (define-font paab0.pk (font-class type1) (font-file "paab.pfa")) (define-font padr0.pk (font-class type1) (font-file "padr.pfa")) (define-font padri0.pk (font-class type1) (font-file "padri.pfa")) (define-font pads0.pk (font-class type1) (font-file "pads.pfa")) (define-font padsi0.pk (font-class type1) (font-file "padsi.pfa")) (define-font padb0.pk (font-class type1) (font-file "padb.pfa")) (define-font padbi0.pk (font-class type1) (font-file "padbi.pfa")) (define-font padrd0.pk (font-class type1) (font-file "padrd.pfa")) (define-font padrx0.pk (font-class type1) (font-file "padrx.pfa")) (define-font padrix0.pk (font-class type1) (font-file "padrix.pfa")) (define-font padsx0.pk (font-class type1) (font-file "padsx.pfa")) (define-font padbx0.pk (font-class type1) (font-file "padbx.pfa")) (define-font padbix0.pk (font-class type1) (font-file "padbix.pfa")) (define-font pbdr0.pk (font-class type1) (font-file "pbdr.pfa")) (define-font pbdri0.pk (font-class type1) (font-file "pbdri.pfa")) (define-font pbdb0.pk (font-class type1) (font-file "pbdb.pfa")) (define-font pbdbi0.pk (font-class type1) (font-file "pbdbi.pfa")) (define-font pbdp0.pk (font-class type1) (font-file "pbdp.pfa")) (define-font pburw0.pk (font-class type1) (font-file "pburw.pfa")) (define-font pc5r0.pk (font-class type1) (font-file "pc5r.pfa")) (define-font pc5ri0.pk (font-class type1) (font-file "pc5ri.pfa")) (define-font pc3r0.pk (font-class type1) (font-file "pc3r.pfa")) (define-font pc3ri0.pk (font-class type1) (font-file "pc3ri.pfa")) (define-font phvrrc0.pk (font-class type1) (font-file "phvrrc.pfa")) (define-font phvroc0.pk (font-class type1) (font-file "phvroc.pfa")) (define-font phvbrc0.pk (font-class type1) (font-file "phvbrc.pfa")) (define-font phvboc0.pk (font-class type1) (font-file "phvboc.pfa")) (define-font pubr0.pk (font-class type1) (font-file "pubr.pfa")) (define-font pubri0.pk (font-class type1) (font-file "pubri.pfa")) (define-font pubb0.pk (font-class type1) (font-file "pubb.pfa")) (define-font pubbi0.pk (font-class type1) (font-file "pubbi.pfa")) (define-font plbk0.pk (font-class type1) (font-file "plbk.pfa")) (define-font plbko0.pk (font-class type1) (font-file "plbko.pfa")) (define-font plbd0.pk (font-class type1) (font-file "plbd.pfa")) (define-font plbdo0.pk (font-class type1) (font-file "plbdo.pfa")) (define-font psvl0.pk (font-class type1) (font-file "psvl.pfa")) (define-font psvli0.pk (font-class type1) (font-file "psvli.pfa")) (define-font psvd0.pk (font-class type1) (font-file "psvd.pfa")) (define-font psvdi0.pk (font-class type1) (font-file "psvdi.pfa")) (define-font phbr0.pk (font-class type1) (font-file "phbr.pfa")) (define-font pslr0.pk (font-class type1) (font-file "pslr.pfa")) (define-font plcr0.pk (font-class type1) (font-file "plcr.pfa")) (define-font plcri0.pk (font-class type1) (font-file "plcri.pfa")) (define-font plcro0.pk (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167)) (define-font plcb0.pk (font-class type1) (font-file "plcb.pfa")) (define-font plcbi0.pk (font-class type1) (font-file "plcbi.pfa")) (define-font plcrs0.pk (font-class type1) (font-file "plcrs.pfa")) (define-font plcris0.pk (font-class type1) (font-file "plcris.pfa")) (define-font plcbs0.pk (font-class type1) (font-file "plcbs.pfa")) (define-font plcbis0.pk (font-class type1) (font-file "plcbis.pfa")) (define-font plcrb0.pk (font-class type1) (font-file "plcrb.pfa")) (define-font plcrbi0.pk (font-class type1) (font-file "plcrbi.pfa")) (define-font plcbb0.pk (font-class type1) (font-file "plcbb.pfa")) (define-font plcrst0.pk (font-class type1) (font-file "plcrst.pfa")) (define-font plcrm0.pk (font-class type1) (font-file "plcrm.pfa")) (define-font plcrv0.pk (font-class type1) (font-file "plcrv.pfa")) (define-font plcry0.pk (font-class type1) (font-file "plcry.pfa")) (define-font ylhr0.pk (font-class type1) (font-file "ylhr.pfb")) (define-font ylhri0.pk (font-class type1) (font-file "ylhri.pfb")) (define-font ylhro0.pk (font-class type1) (font-file "ylhro.pfb")) (define-font ylhd0.pk (font-class type1) (font-file "ylhd.pfb")) (define-font ylhdi0.pk (font-class type1) (font-file "ylhdi.pfb")) (define-font ylcrs0.pk (font-class type1) (font-file "ylcrs.pfb")) (define-font ylcds0.pk (font-class type1) (font-file "ylcds.pfb")) (define-font ylcdis0.pk (font-class type1) (font-file "ylcdis.pfb")) (define-font ylcrst0.pk (font-class type1) (font-file "ylcrst.pfb")) (define-font ylcrost0.pk (font-class type1) (font-file "ylcrost.pfb")) (define-font ylcbst0.pk (font-class type1) (font-file "ylcbst.pfb")) (define-font ylcbost0.pk (font-class type1) (font-file "ylcbost.pfb")) (define-font ylcr40.pk (font-class type1) (font-file "ylcr4.pfb")) (define-font ylcr4i0.pk (font-class type1) (font-file "ylcr4i.pfb")) (define-font ylcd40.pk (font-class type1) (font-file "ylcd4.pfb")) (define-font ylcd4i0.pk (font-class type1) (font-file "ylcd4i.pfb")) (define-font ylcrf0.pk (font-class type1) (font-file "ylcrf.pfb")) (define-font ylcrihw0.pk (font-class type1) (font-file "ylcrihw.pfb")) (define-font ylcris0.pk (font-class type1) (font-file "ylcris.pfb")) (define-font ylcriw0.pk (font-class type1) (font-file "ylcriw.pfb")) (define-font cggr0.pk (font-class type1) (font-file "cggr.pfa")) (define-font cggri0.pk (font-class type1) (font-file "cggri.pfa")) (define-font cggb0.pk (font-class type1) (font-file "cggb.pfa")) (define-font cggbi0.pk (font-class type1) (font-file "cggbi.pfa")) (define-font cshr0.pk (font-class type1) (font-file "cshr.pfa")) (define-font cshro0.pk (font-class type1) (font-file "cshro.pfa")) (define-font cshb0.pk (font-class type1) (font-file "cshb.pfa")) (define-font cshx0.pk (font-class type1) (font-file "cshx.pfa")) (define-font rml.pk (font-class type1) (point-size 10.00) (tfm "rml") (font-file "`min")) (define-font gbm.pk (font-class type1) (point-size 10.00) (tfm "gbm") (font-file "`goth")) (define-font rmlv.pk (font-class type1) (point-size 10.00) (tfm "rmlv") (font-file "`min")) (define-font gbmv.pk (font-class type1) (point-size 10.00) (tfm "gbmv") (font-file "`goth")) ;; end of /usr/local/share/texmf/dvips/base/psfonts.map ;; dvips mapfile: /usr/local/share/texmf/dvips/config/xypic.map (define-font xydash10.pk (font-class type1) (point-size 10.00) (tfm "xydash10") (font-file "xydash10.pfb")) (define-font xyatip10.pk (font-class type1) (point-size 10.00) (tfm "xyatip10") (font-file "xyatip10.pfb")) (define-font xyatip11.pk (font-class type1) (font-file "xyatip10.pfb") (aspect-ratio 1.100)) (define-font xyatip12.pk (font-class type1) (font-file "xyatip10.pfb") (aspect-ratio 1.200)) (define-font xybtip10.pk (font-class type1) (point-size 10.00) (tfm "xybtip10") (font-file "xybtip10.pfb")) (define-font xybtip11.pk (font-class type1) (font-file "xybtip10.pfb") (aspect-ratio 1.100)) (define-font xybtip12.pk (font-class type1) (font-file "xybtip10.pfb") (aspect-ratio 1.200)) (define-font xybsql10.pk (font-class type1) (point-size 10.00) (tfm "xybsql10") (font-file "xybsql10.pfb")) (define-font xycirc10.pk (font-class type1) (point-size 10.00) (tfm "xycirc10") (font-file "xycirc10.pfb")) (define-font xycmat10.pk (font-class type1) (point-size 10.00) (tfm "xycmat10") (font-file "xycmat10.pfb")) (define-font xycmat11.pk (font-class type1) (point-size 11.00) (tfm "xycmat11") (font-file "xycmat10.pfb") (aspect-ratio 1.100)) (define-font xycmat12.pk (font-class type1) (point-size 12.00) (tfm "xycmat12") (font-file "xycmat10.pfb") (aspect-ratio 1.200)) (define-font xycmbt10.pk (font-class type1) (point-size 10.00) (tfm "xycmbt10") (font-file "xycmbt10.pfb")) (define-font xycmbt11.pk (font-class type1) (point-size 11.00) (tfm "xycmbt11") (font-file "xycmbt10.pfb") (aspect-ratio 1.100)) (define-font xycmbt12.pk (font-class type1) (point-size 12.00) (tfm "xycmbt12") (font-file "xycmbt10.pfb") (aspect-ratio 1.200)) (define-font xyeuat10.pk (font-class type1) (point-size 10.00) (tfm "xyeuat10") (font-file "xyeuat10.pfb")) (define-font xyeuat11.pk (font-class type1) (point-size 11.00) (tfm "xyeuat11") (font-file "xyeuat10.pfb") (aspect-ratio 1.100)) (define-font xyeuat12.pk (font-class type1) (point-size 12.00) (tfm "xyeuat12") (font-file "xyeuat10.pfb") (aspect-ratio 1.200)) (define-font xyeubt10.pk (font-class type1) (point-size 10.00) (tfm "xyeubt10") (font-file "xyeubt10.pfb")) (define-font xyeubt11.pk (font-class type1) (point-size 11.00) (tfm "xyeubt11") (font-file "xyeubt10.pfb") (aspect-ratio 1.100)) (define-font xyeubt12.pk (font-class type1) (point-size 12.00) (tfm "xyeubt12") (font-file "xyeubt10.pfb") (aspect-ratio 1.200)) ;; end of /usr/local/share/texmf/dvips/config/xypic.map ;; ------------------------------------------------------- ;; *** Virtual Font *** ;; Generated by vflmkvf ;; at Tue Dec 10 10:33:56 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkvf -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI -m any %f.pk (define-default vf (font-directories "TEXMF") (dpi $TeX_DPI) (filename-extensions ".vf" ".ovf") (open-style "try") (glyph-style "fill") (font-mapping ((* "%f.pk") *))) ;; ------------------------------------------------------- ;; *** PK *** ;; Generated by vflmkpk ;; at Tue Dec 10 10:33:56 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkpk -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI -g (define-default pk (font-directories "TEXMF") (dpi $TeX_DPI)) ;; ------------------------------------------------------- ;; *** TFM *** ;; Generated by vflmktfm ;; at Tue Dec 10 10:33:56 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmktfm -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI (define-default tfm (font-directories "TEXMF") (dpi $TeX_DPI) (filename-extensions ".tfm" ".ofm") (glyph-style "fill")) ;; end. vflib3-3.6.14.dfsg/vflibcaps/Makefile0000644000175000017500000000123307405120205016667 0ustar mohuramohuraALL= vflibcap-tex vflibcap-tex-ja-pcf \ vflibcap-tex-pk vflibcap-tex-pk-ja-pcf \ vflibcap-tex-ja-ttf default all: ${ALL} clean veryclean distclean: -rm -f *~ vflibcap-tex: ../src/vflmkcaptex ../src/vflmkcaptex standard -i > $@ vflibcap-tex-ja-pcf: ../src/vflmkcaptex ../src/vflmkcaptex standard-ja -i > $@ vflibcap-tex-pk: ../src/vflmkcaptex ../src/vflmkcaptex simple -i > $@ vflibcap-tex-pk-ja-pcf: ../src/vflmkcaptex ../src/vflmkcaptex simple-ja -i > $@ vflibcap-tex-ja-ttf: ../src/vflmkcaptex \ ../ascii-jtex/fonts.lst ../ascii-jtex/fontsh.lst \ ../ascii-jtex/fontsc.lst ../src/vflmkcaptex kakugawa -i > $@ vflib3-3.6.14.dfsg/vflibcaps/vflibcap-pcf0000644000175000017500000001535207057623220017525 0ustar mohuramohura;;; -*-Lisp-*- ;; ;; 'vflibcap' for X11 PCF fonts ;; by h.kakugawa@computer.org ;; ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (extension-hints (".pcf" pcf) ("pk" TeX)) (implicit-font-classes pcf) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") ;; or "600" (TeX_KPATHSEA_MODE "cx") ;; or "ljfour" (TeX_KPATHSEA_PROGRAM "vflserver")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM)) ;; ----------------------------------------------------------------- ;; PCF Font Class Default ;; ----------------------------------------------------------------- (define-default pcf (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/emacs/fonts//" "/usr/local/share/fonts/X11//") (compression-extensions ".gz" ".Z") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*" "fj*" "tfj*" "df*" "tdf*" "rc*" "trc*") ((pk "%f.%dpk") *) ((gf "%f.%dgf") *) ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ((vf "%f.vf") *) ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ;; epson, canonlbp 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; VF Font Class Default ;; ----------------------------------------------------------------- (define-default vf (font-directories "TEXMF") (font-mapping ((* "%f.%dpk") (type1 "%f.pfb" point-size-from-tfm) *) ) (open-style "try") ;; "none", "try", or "require" (glyph-style "fill")) ;; "fill", or "empty" ;; ----------------------------------------------------------------- ;; TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm (glyph-style "fill")) ;; ----------------------------------------------------------------- ;; ASCII-jTeX Kanji fonts ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; Type1 Font Class Default ;; ----------------------------------------------------------------- (define-default type1 (font-directories "TEXMF") (afm-directories "TEXMF") (log-level "none") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; Japanese Kanji fonts using standard X11 PCF fonts (define-font jtex-min (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-goth (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tmin (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tgoth (font-class pcf) (font-file "jiskan24.pcf")) (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.80) (metric-adjustment-file "jiskan24.adj")) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.80) (metric-adjustment-file "jiskan24.adj")) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.80) (metric-adjustment-file "tjiskan24.adj")) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.80) (metric-adjustment-file "tjiskan24.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) ;; ----------------------------------------------------------------- ;; for testing... (define-font kanji10.pk (tfm-file "min10") (kanji-font-point-size 10) min-common) ;EOF vflib3-3.6.14.dfsg/vflibcaps/vflibcap-ttf0000644000175000017500000002710007057623244017552 0ustar mohuramohura;;; -*-Lisp-*- ;; ;; vflibcap for TrueType fonts ;; by h.kakugawa@computer.org ;; ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (extension-hints (".ttf" truetype) (".ttc" truetype) ("pk" TeX)) (implicit-font-classes truetype) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (variable-values (TeX_DPI "300") (TeX_USE_KPATHSEA "Yes") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "vflserver")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv" "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv" "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv" "iso8859-10_unicode.ccv" "iso8859-13_unicode.ccv" "iso8859-14_unicode.ccv" "iso8859-15_unicode.ccv" "jisx0208_unicode.ccv" "jisx0208sjis_unicode.ccv" "jisx0201_unicode.ccv" "jisx0212_unicode.ccv" "ksc5601_unicode.ccv" "ksx1001_unicode.ccv" "gb12345_unicode.ccv" "gb2312_unicode.ccv" "big5_unicode.ccv" "cns11643-1_unicode.ccv" "cns11643-2_unicode.ccv" "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv")) ;; ----------------------------------------------------------------- ;; TrueType Font Class Default ;; ----------------------------------------------------------------- (define-default truetype (font-directories "TEXMF" "/usr/local/share/fonts/FontCity2//" "/usr/local/share/fonts/TrueTypeWorld-ValueFont141//" "/usr/local/share/fonts/DynaFont-Premium30/win95/futt//" "/usr/local/share/fonts/DynaFont-SpecialPack1/win95/futt//" "/usr/local/share/fonts/DynaFont-TypeMuseum//") ;;(debug "") (point-size 10) (dpi 200) (properties ("FONT_CLASS" "TrueType")) ) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*" "fj*" "tfj*" "df*" "tdf*" "rc*" "trc*") ;;((truetype "%f.ttf" point-size-from-tfm (magnification-adjustment 1.0)) ;; *) ((pk "%f.%dpk") (gf "%f.%dgf") *) ((vf "%f.vf") *) ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ;; epson, canonlbp 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm (glyph-style "fill")) ;; ----------------------------------------------------------------- ;; VF Font Class Default ;; ----------------------------------------------------------------- (define-default vf (font-directories "TEXMF") (font-mapping ((* "%f.%dpk") (type1 "%f.pfb" point-size-from-tfm) *)) (open-style "try") ;; "none", "try", or "require" (glyph-style "fill")) ;; "fill", or "empty" ;; ----------------------------------------------------------------- ;; ASCII-jTeX Kanji Font Class Default ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; sample font definitions for Japanese TeX (define-font jtex-min (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (font-file "f5ajchm3.ttf") (dpi $TeX_DPI)) (define-font jtex-goth (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (font-file "f5ajchg5.ttf") (dpi $TeX_DPI)) (define-font jtex-tmin (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (font-file "f5ajchm3.ttf") (dpi $TeX_DPI)) (define-font jtex-tgoth (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (font-file "f5ajchg5.ttf") (dpi $TeX_DPI)) (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 1.00) (metric-adjustment-file "f5ajchm3.adj")) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 1.00) (metric-adjustment-file "f5ajchg5.adj")) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 1.00) (metric-adjustment-file "tf5ajchm3.adj")) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 1.00) (metric-adjustment-file "tf5ajchg5.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) ;; ----------------------------------------------------------------- (define-font ttf-font1 (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (font-file "f5ajchm3.ttf")) (define-font ttf-font2 (font-class truetype) (font-number 1) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (magnification 1.2) (font-file "f5ajchm6.ttf")) (define-font ttf-font3 (font-class truetype) (platform-id "microsoft") (font-number 2) (character-set "JISX0208") (encoding "ISO2022") (font-file "f5ajchm9.ttf")) (define-font ttf-font4 (font-class truetype) (platform-id "microsoft") (font-number 2) (character-set "JISX0208") (encoding "ISO2022") (font-file "dfsokn3.ttc")) (define-macro ttf-common-def (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (point-size 10) (dpi 200)) (define-font ttf-fontA ttf-common-def (font-file "hgrhm3sj.ttc")) (define-font ttf-fontB ttf-common-def (font-file "hgrhm9sj.ttc")) (define-font ttf-fontC ttf-common-def (font-file "hgrhr4sj.ttc")) (define-font ttf-fontX1 ttf-common-def (hinting "on") (font-file "hgrhr4sj.ttc")) (define-font ttf-fontX2 ttf-common-def (hinting "off") (font-file "hgrhr4sj.ttc")) (define-font ttf-fontAa ttf-common-def (aspect-ratio 1.0) (font-file "hgrhm3sj.ttc")) (define-font ttf-fontAb ttf-common-def (aspect-ratio 0.5) (font-file "hgrhm3sj.ttc")) (define-font ttf-fontAc ttf-common-def (aspect-ratio 2) (font-file "hgrhm3sj.ttc")) (define-font ttf-activa__ (font-class truetype) (platform-id "microsoft") (character-set "iso8859-1") (encoding "unicode") (point-size 16) (dpi 200) (font-file "/usr/local/share/fonts/FontGarden/ttf/a/activa__.ttf")) (define-font ttf-activa_b (font-class truetype) (platform-id "microsoft") (character-set "iso8859-1") (encoding "unicode") (point-size 16) (dpi 200) (font-file "/usr/local/share/fonts/FontGarden/ttf/a/activa_b.ttf")) (define-macro ttf-boston (font-class truetype) (platform-id "microsoft") (character-set "iso8859-1") ;;(encoding "unicode") (encoding "iso") (point-size 16) (dpi 200)) (define-font ttf-boston__ ttf-boston (font-file "/usr/local/share/fonts/FontGarden/ttf/b/boston__.ttf")) (define-font ttf-boston_i ttf-boston (font-file "/usr/local/share/fonts/FontGarden/ttf/b/boston_i.ttf")) (define-font ttf-boston_b ttf-boston (font-file "/usr/local/share/fonts/FontGarden/ttf/b/boston_b.ttf")) (define-macro HakuSyuu-common (font-class truetype) (platform-id "microsoft") (font-number 1) (character-set "jisx0208") (encoding "ISO2022")) (define-font ttf-Hkgyokk HakuSyuu-common (font-file "/usr/local/share/fonts/HakuSyuu/Hkgyokk.ttf")) (define-font ttf-Hkkaikk HakuSyuu-common (font-file "/usr/local/share/fonts/HakuSyuu/Hkkaikk.ttf")) (define-font ttf-Hkkoinkk HakuSyuu-common (font-file "/usr/local/share/fonts/HakuSyuu/Hkkoinkk.ttf")) (define-font ttf-hktenkk HakuSyuu-common (font-file "/usr/local/share/fonts/HakuSyuu/hktenkk.ttf")) (define-font ttf-test (font-class truetype) (platform-id "microsoft") (character-set "jisx0201") (font-file "f5ajchg5.ttf")) ;; ;; "dfgotu_5.ttf" is a unicode font by DynaFont Co. ;; (define-font ttf-test2 (font-class truetype) (platform-id "microsoft") (character-set "iso8859-1") (encoding "iso") (font-file "dfgotu_5.ttf")) (define-font ttf-test2-2 (font-class truetype) (platform-id "microsoft") (character-set "iso8859-2") (encoding "iso") (font-file "dfgotu_5.ttf")) (define-font ttf-test3 (font-class truetype) (platform-id "microsoft") (character-set "jisx0201") (encoding "jis") (font-file "dfgotu_5.ttf")) (define-font ttf-test4 (font-class truetype) (platform-id "microsoft") (character-set "unicode") (encoding "jis") (font-file "dfgotu_5.ttf")) (define-font ttf-test5 (font-class truetype) (platform-id "microsoft") (character-set "jisx0208") (encoding "jis") (font-file "dfgotu_5.ttf")) (define-font ttf-test5-sjis (font-class truetype) (platform-id "microsoft") (character-set "jisx0208") (encoding "sjis") (font-file "dfgotu_5.ttf")) ;; ----------------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/vflibcaps/vflibcap0000644000175000017500000004051607057623155016766 0ustar mohuramohura;; -*-Lisp-*- ;; ;; an example of 'vflibcap' ;; by h.kakugawa@computer.org ;; ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib ;; hint to find font class from font name for fast font open (extension-hints (".bdf" bdf) (".pcf" pcf) (".hbf" hbf) (".ttf" truetype) (".ttc" truetype) (".pfa" type1) (".pfb" type1) ("pk" TeX) ("gf" gf) ("tfm" tfm) (".d24" ekanji) (".D24" ekanji)) ;; implicit font classes (implicit-font-classes pcf bdf hbf truetype type1 zeit jg gf tfm ekanji) ;; uncompression programs (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) ;; a list of default values of variables ;; *Note* "variable-values" must come before variable uses (variable-values (TeX_DPI "300") (TeX_USE_KPATHSEA "Yes") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "vflserver")) ;; kpathsea: enabled/disabled (use-kpathsea $TeX_USE_KPATHSEA) ;; kpathsea device mode (e.g., "cx") (kpathsea-mode $TeX_KPATHSEA_MODE) ;; kpathsea device dpi (e.g., 300) (kpathsea-dpi $TeX_DPI) ;; kpathsea program name (e.g., "/usr/local/bin/xdvi") (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) ;; encoding/charset conversion files (code-conversion-files "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv" "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv" "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv" "iso8859-10_unicode.ccv" "iso8859-13_unicode.ccv" "iso8859-14_unicode.ccv" "iso8859-15_unicode.ccv" "jisx0208_unicode.ccv" "jisx0208sjis_unicode.ccv" "jisx0201_unicode.ccv" "jisx0212_unicode.ccv" "ksc5601_unicode.ccv" "ksx1001_unicode.ccv" "gb12345_unicode.ccv" "gb2312_unicode.ccv" "big5_unicode.ccv" "cns11643-1_unicode.ccv" "cns11643-2_unicode.ccv" "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv")) ;; ----------------------------------------------------------------- ;; BDF Font Class Default ;; ----------------------------------------------------------------- (define-default bdf ;; font directories (font-directories "/usr/local/share/fonts/X11//") ;; extensions of compressed font files that this font class supports (compression-extensions ".gz" ".Z") ;; default values for fonts of this font class (variable-values (VAR1 ("PROP1" "VAL1")) ; just for debugging... (VAR2 ("PROP2" "VAL2")) (VARX ("PROPX" "VFlib-VALX")) ) ;; properties for all fonts of this font class (properties ("FONT_CLASS" "BDF")) ) ;; ----------------------------------------------------------------- ;; PCF Font Class Default ;; ----------------------------------------------------------------- (define-default pcf ;; font directories (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/emacs/fonts//" "/usr/local/share/fonts/X11//") ;; extensions of compressed font files that this font class supports (compression-extensions ".gz" ".Z") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "PCF")) ) ;; ----------------------------------------------------------------- ;; HBF Font Class Default ;; ----------------------------------------------------------------- (define-default hbf ;; font directories (font-directories "/usr/local/share/fonts/HBF//") ;; extensions of compressed font files that this font class supports (compression-extensions ".gz" ".Z") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "HBF")) ) ;; ----------------------------------------------------------------- ;; TrueType Font Class Default ;; ----------------------------------------------------------------- (define-default truetype ;; font directories (font-directories "TEXMF" ; - a special name to search by `kpathsea' "/usr/local/share/fonts/bakoma/ttf//" "/usr/local/share/fonts/FontCity2//" "/usr/local/share/fonts/DynaFont-Premium30/win95//" "/usr/local/share/fonts/DynaFont-SpecialPack1/win95//" "/usr/local/share/fonts/TrueTypeWorld-ValueFont141//" "/usr/local/share/fonts/FontAsia//" "/usr/local/share/fonts/FontGarden/ttf//" "/usr/local/share/fonts/Mojikyo/TTF//" ) ;; debugging flags ('*' selects all) ;;(debug "*") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "TrueType")) ) ;; ----------------------------------------------------------------- ;; Type1 Font Class Default ;; ----------------------------------------------------------------- (define-default type1 ;; font (pfa, pfb) directories (font-directories "TEXMF" ; - a special name to search by `kpathsea' "/usr/local/share/fonts/bakoma/pfb/" "/usr/local/share/fonts/Mojikyo/PFB/") ;; AFM directories (afm-directories "TEXMF" ; - a special name to search by `kpathsea' "/usr/local/share/fonts/Mojikyo/AFM/") ;; T1Lib logfile output level: "none", "error", "warning", "stat", "debug" (log-level "none")) ;; ----------------------------------------------------------------- ;; Syotrai Club Font Class Default ;; ----------------------------------------------------------------- (define-default zeit ;; filename extensions ("vf" for "mincho.vf{1,2}") (filename-extensions ".vf") ;; font directories (font-directories "/usr/local/share/fonts/Watanabe//" "/usr/local/share/fonts/WadaLab//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "ZEIT") ("CHARSET_REGISTRY" "jisx0208.1983") ("CHARSET_ENCODING" "0") )) ;; ----------------------------------------------------------------- ;; JG Font Class Default ;; ----------------------------------------------------------------- (define-default jg ;; filename extensions ("fn" for "zkyo0by.fn{0,1,2}") (filename-extensions ".fn") ;; font directories (font-directories "/usr/local/share/fonts/JG-Fonts//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "JG") ("CHARSET_REGISTRY" "jisx0208.1983") ("CHARSET_ENCODING" "0"))) ;; ----------------------------------------------------------------- ;; eKanji Font Class Default ;; See also http://www.zinbun.kyoto-u.ac.jp/~ekanji/ ;; ----------------------------------------------------------------- (define-default ekanji ;; font directories (font-directories "/usr/local/share/fonts/eKanji") ;; dot size of font files (font-dot-size 24) ;; pixel size (pixel-size 24) ;; point size, dpi (point-size 10) (dpi 72.27) ;; writing direction (writing-direction horizontal) ;; debug ;;(debug "cCf") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "EKANJI"))) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX ;; TFM file directories (tfm-directories "TEXMF" "/usr/local/share/fonts/bakoma/tfm/") ;; possible extensions of TFM files (tfm-filename-extensions ".tfm" ".ofm") ;; font name mapping rules (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*" "fj*" "tfj*" "df*" "tdf*" "rc*" "trc*") ((pk "%f.%dpk") (gf "%f.%dgf") *) ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ;;((truetype "%f.ttf" point-size-from-tfm (magnification-adjustment 1.0)) *) ((vf "%f.vf") *) ((tfm "%f.%dtfm") *)) ;; accuracy of device resolutions, used with 'resolution-corrections' (resolution-accuracy 0.02) ;; font resolution values for each device resolutions. (resolution-corrections (240 ;; epson, canonlbp 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) ;; default device resolution (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; TeX GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf ;; font directories (font-directories "TEXMF" "/usr/local/TeX/gf//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "GF")) ) ;; ----------------------------------------------------------------- ;; TeX PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk ;;(debug "m") ;; debug flag ;; font directories (font-directories "TEXMF" "/usr/local/TeX/pk//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "PK")) ) ;; ----------------------------------------------------------------- ;; TeX TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm ;; font directories (font-directories "TEXMF" "/usr/local/TeX/tfm//") ;; glyph style: "fill" (all pixels black) or "empty" (all pixels white) (glyph-style "fill") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "TFM")) ) ;; ----------------------------------------------------------------- ;; ASCII-jTeX Kanji Font Class Default ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji ;; TFM file directories (tfm-directories "TEXMF") ;; possible extensions of TFM files (tfm-filename-extensions ".tfm") ;; Suffix for name mapping ;; (e.g., implicit font "min10.300pk" is mapped to "min10.jtex") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; Japanese Comic Font Class Default ;; ----------------------------------------------------------------- (define-default japanese-comic ;; debugging flags ('*' selects all) ;;(debug "f") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "JAPANESE-COMIC") ("CHARSET_REGISTRY" "jisx0208.1983") ("CHARSET_ENCODING" "0"))) ;; ----------------------------------------------------------------- ;; Mojikyo Font Mapper Class Default ;; ----------------------------------------------------------------- (define-default mojikyo-mapper ;; debugging flags ('*' selects all) ;;(debug "f") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "MOJIKYO-MAPPER"))) ;; ----------------------------------------------------------------- ;; sample font definitions for Japanese TeX (define-font jtex-min (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-goth (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tmin (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tgoth (font-class pcf) (font-file "jiskan24.pcf")) ;; Definitions for "min10" fonts. These fonts are used by ;; 'name mapping' feature of ascii-jtex-kanji driver. ;; (e.g., "min10.400pk" is mapped to "min10.jtex") (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.85) (metric-adjustment-file "tjiskan24.adj")) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.85) (metric-adjustment-file "tjiskan24.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) (define-font kanji10.jtex (tfm-file "min10.tfm") (kanji-font-point-size 10) min-common) ;; ----------------------------------------------------------------- ;; for debugging .... (define-macro size-definition (point-size 10) (dpi 300)) (define-font f5ajchm3-ttf (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") size-definition (font-file "/usr/local/share/fonts/FontCity2/f5ajchm3.ttf")) (define-font dfhsgw3-ttf (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") size-definition (font-file "/usr/local/share/fonts/DynaFont-Premium30/win31/sbtt/dfhsgw3.ttf")) (define-font dfhsmw3-ttf (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") size-definition (font-file "/usr/local/share/fonts/DynaFont-Premium30/win31/sbtt/dfhsmw3.ttf")) (define-font dfhsm3-comic (font-class japanese-comic) (kanji-font "dfhsgw3-ttf") (kana-font "dfhsmw3-ttf")) (define-font dfhsmw5-ttc (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") size-definition (font-file "/usr/local/share/fonts/DynaFont-Premium30/win95/futt/dfhsmw5.ttc")) (define-font mincho-zeit (font-class zeit) size-definition (font-file "mincho")) (define-font zkyo0by-jg (font-class jg) size-definition (font-file "zkyo0by")) (define-font activa-ttf (font-class truetype) (platform-id "microsoft") (character-set "iso8859-1") (encoding "unicode") size-definition (font-file "/usr/local/share/fonts/FontGarden/ttf/a/activa__.ttf")) (define-font cmr10-pk (font-class pk) size-definition (font-file "cmr10.300pk")) (define-font cmr10-tfm (font-class tfm) size-definition (font-file "cmr10.tfm")) (define-font timR24-pcf (font-class pcf) size-definition (font-file "timR24.pcf")) (define-default try (debug "f")) (define-font try-1 (font-class try) (font-list "foobar1.pcf" "foobar2.pcf" "timR24-pcf" "foobar3.pcf")) ;; Mojikyo Mapper (define-font mojikyo-ttf (font-class mojikyo-mapper) (division-scheme TrueType) (truetype-subfont-encoding UNICODE) (subfont-name-format "Mojik%d.ttf")) (define-font mojikyo-type1 (font-class mojikyo-mapper) (division-scheme Type1) (subfont-name-format "mo%dm%02d.pfb")) ;; Direct access to eKanji font files. (define-font ekan0010 (font-class ekanji) (font-file "ekan0010.d24")) (define-font ekan0020 (font-class ekanji) (font-file "ekan0020.d24")) (define-font ekan0030 (font-class ekanji) (font-file "ekan0030.d24")) (define-font jisx9052 (font-class ekanji) (font-file "jisx9052.d24")) ;; ----------------------------------------------------------------- ;; EOF vflib3-3.6.14.dfsg/vflibcaps/vflibcap-bdf0000644000175000017500000000432206724705454017515 0ustar mohuramohura;;; -*-Lisp-*- ;; ;; 'vflibcap' for X11 BDF fonts ;; by h.kakugawa@computer.org ;; ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (extension-hints (".bdf" bdf)) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (implicit-font-classes bdf) (variable-values (VAR1 ("PROP1" "VAL1")) (VARX ("PROPX" "VFlib-VALX")))) ;; ----------------------------------------------------------------- ;; BDF Font Class Default ;; ----------------------------------------------------------------- (define-default bdf (filename-extensions ".bdf") (font-directories "/usr/local/share/emacs/fonts//" "/usr/local/share/fonts/X11/bdf//" "/usr/local/share/fonts/X11/ETL/" "/usr/local/share/fonts/X11/chinese/" "/usr/local/share/fonts/X11/japanese/" "/usr/local/share/fonts/X11/yasuoka/" "/usr/local/share/fonts/X11/greek/") (compression-extensions ".gz" ".Z") (variable-values (VAR2 ("PROP2" "VAL2")) (VARX ("PROPX" "Class-VALX")) ) ;;(debug "P") (properties ("FONT_CLASS" "BDF")) ) ;; ----------------------------------------------------------------- (define-font timR24 (font-class bdf) (font-file "timR24.bdf")) (define-font timR24-1 (font-class "bdf") (pixel-size 32) (point-size 32) (font-file "timR24.bdf")) (define-font timR24-2 (font-class "bdf") (pixel-size 48) (point-size 48) (font-file "timR24.bdf")) (define-font jiskan16 (font-class bdf) (font-file "jiskan16.bdf")) (define-macro size-definition (point-size 10) (dpi 300)) (define-font bdf-latin1 (font-class bdf) size-definition (font-file "etl24-latin1.bdf")) (define-font bdf-font1 (font-class bdf) (properties $VAR1) (font-file "etl16-latin1.bdf")) (define-font bdf-font2 (font-class bdf) (magnification 1.2) (properties $VAR2) (font-file "etl16-latin1.bdf")) (define-font bdf-fontx (font-class bdf) (properties $VARX) (font-file "etl16-latin1.bdf")) (define-font bdf-jiskan16 (font-class bdf) (font-file "jiskan16.bdf")) ;; ----------------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/vflibcaps/vflibcap-type10000644000175000017500000012741707276370234020034 0ustar mohuramohura;;; -*-Lisp-*- ;; ;; vflibcap for Type1 fonts ;; by h.kakugawa@computer.org ;; ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (extension-hints ("pk" TeX) (".pfa" type1) (".pfb" type1) (".vf" vf) (".ofm" tfm) (".ovf" vf) ) (implicit-font-classes type1) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") ;; or "600" (TeX_KPATHSEA_MODE "cx") ;; or "ljfour" (TeX_KPATHSEA_PROGRAM "vflserver")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv" "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv" "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv" "iso8859-10_unicode.ccv" "iso8859-13_unicode.ccv" "iso8859-14_unicode.ccv" "iso8859-15_unicode.ccv" "jisx0208_unicode.ccv" "jisx0208sjis_unicode.ccv" "jisx0201_unicode.ccv" "jisx0212_unicode.ccv" "ksc5601_unicode.ccv" "ksx1001_unicode.ccv" "gb12345_unicode.ccv" "gb2312_unicode.ccv" "big5_unicode.ccv" "cns11643-1_unicode.ccv" "cns11643-2_unicode.ccv" "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv")) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm" ".ofm") (font-mapping ;; Japanese Kanji fonts ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*" "fj*" "tfj*" "df*" "tdf*" "rc*" "trc*") ;; Type 1 fonts (probably found in /usr/local/share/texmf/fonts/type1/ ) ((type1 "%f.pfa" point-size-from-tfm (magnification-adjustment 1.0)) *) ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ;; PK, GF fonts ((pk "%f.%dpk") (gf "%f.%dgf") *) ;; VF fonts ((vf "%f.vf") *) ;; If everything fails, use "black square" as substitue of request fonts ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ;; epson, canonlbp 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf (font-directories "." "TEXMF")) ;; ----------------------------------------------------------------- ;; PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk (font-directories "." "TEXMF")) ;; ----------------------------------------------------------------- ;; VF Font Class Default ;; ----------------------------------------------------------------- (define-default vf (font-directories "." "TEXMF") (filename-extensions ".vf" ".ovf") (tfm-filename-extensions ".tfm" ".ofm") (font-mapping ((* "%f" point-size-from-tfm) *) ((type1 "%f.pfb" point-size-from-tfm) *) ((pk "%f.pk" point-size-from-tfm) *)) (open-style "try") ;; "none", "try", or "require" (glyph-style "fill")) ;; "fill", or "empty" ;; ----------------------------------------------------------------- ;; TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm (filename-extensions ".tfm" ".ofm") (glyph-style "fill")) ;; ----------------------------------------------------------------- ;; ASCII-jTeX Kanji fonts ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji (tfm-directories "." "TEXMF") (tfm-filename-extensions ".tfm") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; Type1 Font Class Default ;; ----------------------------------------------------------------- (define-default type1 (font-directories "TEXMF" "/opt/Acrobat4/Resource/Font//" "/opt/Acrobat3/Fonts//" "/usr/openwin/lib/X11/fonts/Type1//" "/usr/local/share/fonts/adobe//") (afm-directories "TEXMF") (encoding-vector-directories "/usr/local/share/t1lib/") ;;(debug "f") (log-level "none") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; TrueType Font Class Default ;; ----------------------------------------------------------------- (define-default truetype (platform-id "microsoft") (font-directories "TEXMF") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; PCF Font Class Default ;; ----------------------------------------------------------------- (define-default pcf (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/emacs/fonts//" "/usr/local/share/fonts/X11//") (compression-extensions ".gz" ".Z") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; generated by 'vfltexpr' program from psfonts.map file (define-font rpagk (font-class type1) (font-file "AvantGarde-Book")) (define-font rpagko (font-class type1) (font-file "AvantGarde-BookOblique")) (define-font rpagd (font-class type1) (font-file "AvantGarde-Demi")) (define-font rpagdo (font-class type1) (font-file "AvantGarde-DemiOblique")) (define-font rpbkl (font-class type1) (font-file "Bookman-Light")) (define-font rpbkli (font-class type1) (font-file "Bookman-LightItalic")) (define-font rpbkd (font-class type1) (font-file "Bookman-Demi")) (define-font rpbkdi (font-class type1) (font-file "Bookman-DemiItalic")) (define-font rpcrr (font-class type1) (font-file "Courier")) (define-font rpcrro (font-class type1) (font-file "Courier-Oblique")) (define-font rpcrb (font-class type1) (font-file "Courier-Bold")) (define-font rpcrbo (font-class type1) (font-file "Courier-BoldOblique")) (define-font rphvr (font-class type1) (font-file "Helvetica")) (define-font rphvro (font-class type1) (font-file "Helvetica-Oblique")) (define-font rphvb (font-class type1) (font-file "Helvetica-Bold")) (define-font rphvbo (font-class type1) (font-file "Helvetica-BoldOblique")) (define-font rphvrrn (font-class type1) (font-file "Helvetica") (aspect-ratio 0.820)) (define-font rphvron (font-class type1) (font-file "Helvetica-Oblique") (aspect-ratio 0.820)) (define-font rphvbrn (font-class type1) (font-file "Helvetica-Bold") (aspect-ratio 0.820)) (define-font rphvbon (font-class type1) (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820)) (define-font rpncr (font-class type1) (font-file "NewCenturySchlbk-Roman")) (define-font rpncri (font-class type1) (font-file "NewCenturySchlbk-Italic")) (define-font rpncb (font-class type1) (font-file "NewCenturySchlbk-Bold")) (define-font rpncbi (font-class type1) (font-file "NewCenturySchlbk-BoldItalic")) (define-font rpplr (font-class type1) (font-file "Palatino-Roman")) (define-font rpplri (font-class type1) (font-file "Palatino-Italic")) (define-font rpplro (font-class type1) (font-file "Palatino-Roman") (slant-factor 0.167)) (define-font rpplb (font-class type1) (font-file "Palatino-Bold")) (define-font rpplbi (font-class type1) (font-file "Palatino-BoldItalic")) (define-font rpplbu (font-class type1) (font-file "Palatino-BoldItalic") (slant-factor -0.176)) (define-font rpplru (font-class type1) (font-file "Palatino-Italic") (slant-factor -0.176)) (define-font rpplrrn (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 0.820)) (define-font rpplrre (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 1.200)) (define-font psyr (font-class type1) (font-file "Symbol")) (define-font rpsyr (font-class type1) (font-file "Symbol")) (define-font psyro (font-class type1) (font-file "Symbol") (slant-factor 0.167)) (define-font rpsyro (font-class type1) (font-file "Symbol") (slant-factor 0.167)) (define-font rptmr (font-class type1) (font-file "Times-Roman")) (define-font rptmri (font-class type1) (font-file "Times-Italic")) (define-font rptmro (font-class type1) (font-file "Times-Roman") (slant-factor 0.167)) (define-font rptmb (font-class type1) (font-file "Times-Bold")) (define-font rptmbi (font-class type1) (font-file "Times-BoldItalic")) (define-font rptmbo (font-class type1) (font-file "Times-Bold") (slant-factor 0.167)) (define-font rptmrrn (font-class type1) (font-file "Times-Roman") (aspect-ratio 0.800)) (define-font rptmrre (font-class type1) (font-file "Times-Roman") (aspect-ratio 1.200)) (define-font pzdr (font-class type1) (font-file "ZapfDingbats")) (define-font rpzdr (font-class type1) (font-file "ZapfDingbats")) (define-font rpzcmi (font-class type1) (font-file "ZapfChancery-MediumItalic")) (define-font rputr (font-class type1) (font-file "putr.pfa")) (define-font rputri (font-class type1) (font-file "putri.pfa")) (define-font rputb (font-class type1) (font-file "putb.pfa")) (define-font rputbi (font-class type1) (font-file "putbi.pfa")) (define-font rbchr (font-class type1) (font-file "bchr.pfb")) (define-font rbchri (font-class type1) (font-file "bchri.pfb")) (define-font rbchb (font-class type1) (font-file "bchb.pfb")) (define-font rbchbi (font-class type1) (font-file "bchbi.pfb")) (define-font ruaqrrc (font-class type1) (font-file "uaqrrc.pfa")) (define-font rugqb (font-class type1) (font-file "ugqb.pfa")) (define-font runmr (font-class type1) (font-file "unmr.pfa")) (define-font runmrs (font-class type1) (font-file "unmrs.pfa")) (define-font hlcr5s (font-class type1) (font-file "hlcr5s.pfa")) (define-font hlcr5as (font-class type1) (font-file "hlcr5as.pfa")) (define-font rpaab (font-class type1) (font-file "paab.pfa")) (define-font rpadr (font-class type1) (font-file "padr.pfa")) (define-font rpadri (font-class type1) (font-file "padri.pfa")) (define-font rpads (font-class type1) (font-file "pads.pfa")) (define-font rpadsi (font-class type1) (font-file "padsi.pfa")) (define-font rpadb (font-class type1) (font-file "padb.pfa")) (define-font rpadbi (font-class type1) (font-file "padbi.pfa")) (define-font rpadrd (font-class type1) (font-file "padrd.pfa")) (define-font rpadrx (font-class type1) (font-file "padrx.pfa")) (define-font rpadrix (font-class type1) (font-file "padrix.pfa")) (define-font rpadsx (font-class type1) (font-file "padsx.pfa")) (define-font rpadbx (font-class type1) (font-file "padbx.pfa")) (define-font rpadbix (font-class type1) (font-file "padbix.pfa")) (define-font rpbdr (font-class type1) (font-file "pbdr.pfa")) (define-font rpbdri (font-class type1) (font-file "pbdri.pfa")) (define-font rpbdb (font-class type1) (font-file "pbdb.pfa")) (define-font rpbdbi (font-class type1) (font-file "pbdbi.pfa")) (define-font rpbdp (font-class type1) (font-file "pbdp.pfa")) (define-font rpburw (font-class type1) (font-file "pburw.pfa")) (define-font rpc5r (font-class type1) (font-file "pc5r.pfa")) (define-font rpc5ri (font-class type1) (font-file "pc5ri.pfa")) (define-font rpc3r (font-class type1) (font-file "pc3r.pfa")) (define-font rpc3ri (font-class type1) (font-file "pc3ri.pfa")) (define-font rphvrrc (font-class type1) (font-file "phvrrc.pfa")) (define-font rphvroc (font-class type1) (font-file "phvroc.pfa")) (define-font rphvbrc (font-class type1) (font-file "phvbrc.pfa")) (define-font rphvboc (font-class type1) (font-file "phvboc.pfa")) (define-font rpubr (font-class type1) (font-file "pubr.pfa")) (define-font rpubri (font-class type1) (font-file "pubri.pfa")) (define-font rpubb (font-class type1) (font-file "pubb.pfa")) (define-font rpubbi (font-class type1) (font-file "pubbi.pfa")) (define-font rplbk (font-class type1) (font-file "plbk.pfa")) (define-font rplbko (font-class type1) (font-file "plbko.pfa")) (define-font rplbd (font-class type1) (font-file "plbd.pfa")) (define-font rplbdo (font-class type1) (font-file "plbdo.pfa")) (define-font rpsvl (font-class type1) (font-file "psvl.pfa")) (define-font rpsvli (font-class type1) (font-file "psvli.pfa")) (define-font rpsvd (font-class type1) (font-file "psvd.pfa")) (define-font rpsvdi (font-class type1) (font-file "psvdi.pfa")) (define-font rphbr (font-class type1) (font-file "phbr.pfa")) (define-font rpslr (font-class type1) (font-file "pslr.pfa")) (define-font rplcr (font-class type1) (font-file "plcr.pfa")) (define-font rplcri (font-class type1) (font-file "plcri.pfa")) (define-font rplcro (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167)) (define-font rplcb (font-class type1) (font-file "plcb.pfa")) (define-font rplcbi (font-class type1) (font-file "plcbi.pfa")) (define-font rplcrs (font-class type1) (font-file "plcrs.pfa")) (define-font rplcris (font-class type1) (font-file "plcris.pfa")) (define-font rplcbs (font-class type1) (font-file "plcbs.pfa")) (define-font rplcbis (font-class type1) (font-file "plcbis.pfa")) (define-font rplcrb (font-class type1) (font-file "plcrb.pfa")) (define-font rplcrbi (font-class type1) (font-file "plcrbi.pfa")) (define-font rplcbb (font-class type1) (font-file "plcbb.pfa")) (define-font rplcrst (font-class type1) (font-file "plcrst.pfa")) (define-font rplcrm (font-class type1) (font-file "plcrm.pfa")) (define-font rplcrv (font-class type1) (font-file "plcrv.pfa")) (define-font rplcry (font-class type1) (font-file "plcry.pfa")) (define-font rylhr (font-class type1) (font-file "ylhr.pfb")) (define-font lbr (font-class type1) (font-file "lbr.pfb")) (define-font rylhri (font-class type1) (font-file "ylhri.pfb")) (define-font lbi (font-class type1) (font-file "lbi.pfb")) (define-font rylhro (font-class type1) (font-file "ylhro.pfb")) (define-font lbsl (font-class type1) (font-file "lbsl.pfb")) (define-font rylhd (font-class type1) (font-file "ylhd.pfb")) (define-font lbd (font-class type1) (font-file "lbd.pfb")) (define-font rylhdi (font-class type1) (font-file "ylhdi.pfb")) (define-font lbdi (font-class type1) (font-file "lbdi.pfb")) (define-font rylcrs (font-class type1) (font-file "ylcrs.pfb")) (define-font lsr (font-class type1) (font-file "lsr.pfb")) (define-font rylcds (font-class type1) (font-file "ylcds.pfb")) (define-font lsd (font-class type1) (font-file "lsd.pfb")) (define-font rylcdis (font-class type1) (font-file "ylcdis.pfb")) (define-font lsdi (font-class type1) (font-file "lsdi.pfb")) (define-font rylcrst (font-class type1) (font-file "ylcrst.pfb")) (define-font lstr (font-class type1) (font-file "lstr.pfb")) (define-font rylcrost (font-class type1) (font-file "ylcrost.pfb")) (define-font lsto (font-class type1) (font-file "lsto.pfb")) (define-font rylcbst (font-class type1) (font-file "ylcbst.pfb")) (define-font lstb (font-class type1) (font-file "lstb.pfb")) (define-font rylcbost (font-class type1) (font-file "ylcbost.pfb")) (define-font lstbo (font-class type1) (font-file "lstbo.pfb")) (define-font rylcr4 (font-class type1) (font-file "ylcr4.pfb")) (define-font lfr (font-class type1) (font-file "lfr.pfb")) (define-font rylcr4i (font-class type1) (font-file "ylcr4i.pfb")) (define-font lfi (font-class type1) (font-file "lfi.pfb")) (define-font rylcd4 (font-class type1) (font-file "ylcd4.pfb")) (define-font lfd (font-class type1) (font-file "lfd.pfb")) (define-font rylcd4i (font-class type1) (font-file "ylcd4i.pfb")) (define-font lfdi (font-class type1) (font-file "lfdi.pfb")) (define-font rylcrf (font-class type1) (font-file "ylcrf.pfb")) (define-font lbl (font-class type1) (font-file "lbl.pfb")) (define-font rylcrihw (font-class type1) (font-file "ylcrihw.pfb")) (define-font lbh (font-class type1) (font-file "lbh.pfb")) (define-font rylcris (font-class type1) (font-file "ylcris.pfb")) (define-font lsi (font-class type1) (font-file "lsi.pfb")) (define-font rylcriw (font-class type1) (font-file "ylcriw.pfb")) (define-font lbc (font-class type1) (font-file "lbc.pfb")) (define-font rcggr (font-class type1) (font-file "cggr.pfa")) (define-font rcggri (font-class type1) (font-file "cggri.pfa")) (define-font rcggb (font-class type1) (font-file "cggb.pfa")) (define-font rcggbi (font-class type1) (font-file "cggbi.pfa")) (define-font rcshr (font-class type1) (font-file "cshr.pfa")) (define-font rcshro (font-class type1) (font-file "cshro.pfa")) (define-font rcshb (font-class type1) (font-file "cshb.pfa")) (define-font rcshx (font-class type1) (font-file "cshx.pfa")) (define-font bchbo8r (font-class type1) (font-file "bchb.pfa") (slant-factor 0.167)) (define-font bchro8r (font-class type1) (font-file "bchr.pfa") (slant-factor 0.167)) (define-font pbkdo8r (font-class type1) (font-file "Bookman-Demi") (slant-factor 0.167)) (define-font pbklo8r (font-class type1) (font-file "Bookman-Light") (slant-factor 0.167)) (define-font pncbo8r (font-class type1) (font-file "NewCenturySchlbk-Bold") (slant-factor 0.167)) (define-font pncro8r (font-class type1) (font-file "NewCenturySchlbk-Roman") (slant-factor 0.167)) (define-font pplbo8r (font-class type1) (font-file "Palatino-Bold") (slant-factor 0.167)) (define-font putbo8r (font-class type1) (font-file "putb8r.pfa") (slant-factor 0.167)) (define-font putro8r (font-class type1) (font-file "putr.pfa") (slant-factor 0.167)) (define-font pagk8r (font-class type1) (font-file "AvantGarde-Book") (encoding-vector "8r.enc")) (define-font pagko8r (font-class type1) (font-file "AvantGarde-BookOblique") (encoding-vector "8r.enc")) (define-font pagd8r (font-class type1) (font-file "AvantGarde-Demi") (encoding-vector "8r.enc")) (define-font pagdo8r (font-class type1) (font-file "AvantGarde-DemiOblique") (encoding-vector "8r.enc")) (define-font pbkl8r (font-class type1) (font-file "Bookman-Light") (encoding-vector "8r.enc")) (define-font pbkli8r (font-class type1) (font-file "Bookman-LightItalic") (encoding-vector "8r.enc")) (define-font pbkd8r (font-class type1) (font-file "Bookman-Demi") (encoding-vector "8r.enc")) (define-font pbkdi8r (font-class type1) (font-file "Bookman-DemiItalic") (encoding-vector "8r.enc")) (define-font pcrr8r (font-class type1) (font-file "Courier") (encoding-vector "8r.enc")) (define-font pcrro8r (font-class type1) (font-file "Courier-Oblique") (encoding-vector "8r.enc")) (define-font pcrb8r (font-class type1) (font-file "Courier-Bold") (encoding-vector "8r.enc")) (define-font pcrbo8r (font-class type1) (font-file "Courier-BoldOblique") (encoding-vector "8r.enc")) (define-font phvr8r (font-class type1) (font-file "Helvetica") (encoding-vector "8r.enc")) (define-font phvro8r (font-class type1) (font-file "Helvetica-Oblique") (encoding-vector "8r.enc")) (define-font phvb8r (font-class type1) (font-file "Helvetica-Bold") (encoding-vector "8r.enc")) (define-font phvbo8r (font-class type1) (font-file "Helvetica-BoldOblique") (encoding-vector "8r.enc")) (define-font phvrrn8r (font-class type1) (font-file "Helvetica") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvron8r (font-class type1) (font-file "Helvetica-Oblique") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvbrn8r (font-class type1) (font-file "Helvetica-Bold") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvbon8r (font-class type1) (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font pncr8r (font-class type1) (font-file "NewCenturySchlbk-Roman") (encoding-vector "8r.enc")) (define-font pncri8r (font-class type1) (font-file "NewCenturySchlbk-Italic") (encoding-vector "8r.enc")) (define-font pncb8r (font-class type1) (font-file "NewCenturySchlbk-Bold") (encoding-vector "8r.enc")) (define-font pncbi8r (font-class type1) (font-file "NewCenturySchlbk-BoldItalic") (encoding-vector "8r.enc")) (define-font pplr8r (font-class type1) (font-file "Palatino-Roman") (encoding-vector "8r.enc")) (define-font pplri8r (font-class type1) (font-file "Palatino-Italic") (encoding-vector "8r.enc")) (define-font pplro8r (font-class type1) (font-file "Palatino-Roman") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font pplb8r (font-class type1) (font-file "Palatino-Bold") (encoding-vector "8r.enc")) (define-font pplbi8r (font-class type1) (font-file "Palatino-BoldItalic") (encoding-vector "8r.enc")) (define-font pplbu8r (font-class type1) (font-file "Palatino-BoldItalic") (slant-factor -0.176) (encoding-vector "8r.enc")) (define-font pplru8r (font-class type1) (font-file "Palatino-Italic") (slant-factor -0.176) (encoding-vector "8r.enc")) (define-font pplrrn8r (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font pplrre8r (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 1.200) (encoding-vector "8r.enc")) (define-font ptmr8r (font-class type1) (font-file "Times-Roman") (encoding-vector "8r.enc")) (define-font ptmri8r (font-class type1) (font-file "Times-Italic") (encoding-vector "8r.enc")) (define-font ptmro8r (font-class type1) (font-file "Times-Roman") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font ptmb8r (font-class type1) (font-file "Times-Bold") (encoding-vector "8r.enc")) (define-font ptmbi8r (font-class type1) (font-file "Times-BoldItalic") (encoding-vector "8r.enc")) (define-font ptmbo8r (font-class type1) (font-file "Times-Bold") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font ptmrrn8r (font-class type1) (font-file "Times-Roman") (aspect-ratio 0.800) (encoding-vector "8r.enc")) (define-font ptmrre8r (font-class type1) (font-file "Times-Roman") (aspect-ratio 1.200) (encoding-vector "8r.enc")) (define-font pzcmi8r (font-class type1) (font-file "ZapfChancery-MediumItalic") (encoding-vector "8r.enc")) (define-font putr8r (font-class type1) (font-file "putr.pfa") (encoding-vector "8r.enc")) (define-font putri8r (font-class type1) (font-file "putri.pfa") (encoding-vector "8r.enc")) (define-font putb8r (font-class type1) (font-file "putb.pfa") (encoding-vector "8r.enc")) (define-font putbi8r (font-class type1) (font-file "putbi.pfa") (encoding-vector "8r.enc")) (define-font bchr8r (font-class type1) (font-file "bchr.pfb") (encoding-vector "8r.enc")) (define-font bchri8r (font-class type1) (font-file "bchri.pfb") (encoding-vector "8r.enc")) (define-font bchb8r (font-class type1) (font-file "bchb.pfb") (encoding-vector "8r.enc")) (define-font bchbi8r (font-class type1) (font-file "bchbi.pfb") (encoding-vector "8r.enc")) (define-font uaqrrc8r (font-class type1) (font-file "uaqrrc.pfa") (encoding-vector "8r.enc")) (define-font ugqb8r (font-class type1) (font-file "ugqb.pfa") (encoding-vector "8r.enc")) (define-font unmr8r (font-class type1) (font-file "unmr.pfa") (encoding-vector "8r.enc")) (define-font unmrs8r (font-class type1) (font-file "unmrs.pfa") (encoding-vector "8r.enc")) (define-font paab8r (font-class type1) (font-file "paab.pfa") (encoding-vector "8r.enc")) (define-font padr8r (font-class type1) (font-file "padr.pfa") (encoding-vector "8r.enc")) (define-font padri8r (font-class type1) (font-file "padri.pfa") (encoding-vector "8r.enc")) (define-font pads8r (font-class type1) (font-file "pads.pfa") (encoding-vector "8r.enc")) (define-font padsi8r (font-class type1) (font-file "padsi.pfa") (encoding-vector "8r.enc")) (define-font padb8r (font-class type1) (font-file "padb.pfa") (encoding-vector "8r.enc")) (define-font padbi8r (font-class type1) (font-file "padbi.pfa") (encoding-vector "8r.enc")) (define-font padrd8r (font-class type1) (font-file "padrd.pfa") (encoding-vector "8r.enc")) (define-font padrx8r (font-class type1) (font-file "padrx.pfa") (encoding-vector "8r.enc")) (define-font padrix8r (font-class type1) (font-file "padrix.pfa") (encoding-vector "8r.enc")) (define-font padsx8r (font-class type1) (font-file "padsx.pfa") (encoding-vector "8r.enc")) (define-font padbx8r (font-class type1) (font-file "padbx.pfa") (encoding-vector "8r.enc")) (define-font padbix8r (font-class type1) (font-file "padbix.pfa") (encoding-vector "8r.enc")) (define-font pbdr8r (font-class type1) (font-file "pbdr.pfa") (encoding-vector "8r.enc")) (define-font pbdri8r (font-class type1) (font-file "pbdri.pfa") (encoding-vector "8r.enc")) (define-font pbdb8r (font-class type1) (font-file "pbdb.pfa") (encoding-vector "8r.enc")) (define-font pbdbi8r (font-class type1) (font-file "pbdbi.pfa") (encoding-vector "8r.enc")) (define-font pbdp8r (font-class type1) (font-file "pbdp.pfa") (encoding-vector "8r.enc")) (define-font pburw8r (font-class type1) (font-file "pburw.pfa") (encoding-vector "8r.enc")) (define-font pc5r8r (font-class type1) (font-file "pc5r.pfa") (encoding-vector "8r.enc")) (define-font pc5ri8r (font-class type1) (font-file "pc5ri.pfa") (encoding-vector "8r.enc")) (define-font pc3r8r (font-class type1) (font-file "pc3r.pfa") (encoding-vector "8r.enc")) (define-font pc3ri8r (font-class type1) (font-file "pc3ri.pfa") (encoding-vector "8r.enc")) (define-font phvrrc8r (font-class type1) (font-file "phvrrc.pfa") (encoding-vector "8r.enc")) (define-font phvroc8r (font-class type1) (font-file "phvroc.pfa") (encoding-vector "8r.enc")) (define-font phvbrc8r (font-class type1) (font-file "phvbrc.pfa") (encoding-vector "8r.enc")) (define-font phvboc8r (font-class type1) (font-file "phvboc.pfa") (encoding-vector "8r.enc")) (define-font pubr8r (font-class type1) (font-file "pubr.pfa") (encoding-vector "8r.enc")) (define-font pubri8r (font-class type1) (font-file "pubri.pfa") (encoding-vector "8r.enc")) (define-font pubb8r (font-class type1) (font-file "pubb.pfa") (encoding-vector "8r.enc")) (define-font pubbi8r (font-class type1) (font-file "pubbi.pfa") (encoding-vector "8r.enc")) (define-font plbk8r (font-class type1) (font-file "plbk.pfa") (encoding-vector "8r.enc")) (define-font plbko8r (font-class type1) (font-file "plbko.pfa") (encoding-vector "8r.enc")) (define-font plbd8r (font-class type1) (font-file "plbd.pfa") (encoding-vector "8r.enc")) (define-font plbdo8r (font-class type1) (font-file "plbdo.pfa") (encoding-vector "8r.enc")) (define-font psvl8r (font-class type1) (font-file "psvl.pfa") (encoding-vector "8r.enc")) (define-font psvli8r (font-class type1) (font-file "psvli.pfa") (encoding-vector "8r.enc")) (define-font psvd8r (font-class type1) (font-file "psvd.pfa") (encoding-vector "8r.enc")) (define-font psvdi8r (font-class type1) (font-file "psvdi.pfa") (encoding-vector "8r.enc")) (define-font phbr8r (font-class type1) (font-file "phbr.pfa") (encoding-vector "8r.enc")) (define-font pslr8r (font-class type1) (font-file "pslr.pfa") (encoding-vector "8r.enc")) (define-font plcr8r (font-class type1) (font-file "plcr.pfa") (encoding-vector "8r.enc")) (define-font plcri8r (font-class type1) (font-file "plcri.pfa") (encoding-vector "8r.enc")) (define-font plcro8r (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font plcb8r (font-class type1) (font-file "plcb.pfa") (encoding-vector "8r.enc")) (define-font plcbi8r (font-class type1) (font-file "plcbi.pfa") (encoding-vector "8r.enc")) (define-font plcrs8r (font-class type1) (font-file "plcrs.pfa") (encoding-vector "8r.enc")) (define-font plcris8r (font-class type1) (font-file "plcris.pfa") (encoding-vector "8r.enc")) (define-font plcbs8r (font-class type1) (font-file "plcbs.pfa") (encoding-vector "8r.enc")) (define-font plcbis8r (font-class type1) (font-file "plcbis.pfa") (encoding-vector "8r.enc")) (define-font plcrb8r (font-class type1) (font-file "plcrb.pfa") (encoding-vector "8r.enc")) (define-font plcrbi8r (font-class type1) (font-file "plcrbi.pfa") (encoding-vector "8r.enc")) (define-font plcbb8r (font-class type1) (font-file "plcbb.pfa") (encoding-vector "8r.enc")) (define-font plcrst8r (font-class type1) (font-file "plcrst.pfa") (encoding-vector "8r.enc")) (define-font plcrm8r (font-class type1) (font-file "plcrm.pfa") (encoding-vector "8r.enc")) (define-font plcrv8r (font-class type1) (font-file "plcrv.pfa") (encoding-vector "8r.enc")) (define-font plcry8r (font-class type1) (font-file "plcry.pfa") (encoding-vector "8r.enc")) (define-font ylhr8r (font-class type1) (font-file "ylhr.pfb") (encoding-vector "8r.enc")) (define-font ylhri8r (font-class type1) (font-file "ylhri.pfb") (encoding-vector "8r.enc")) (define-font ylhro8r (font-class type1) (font-file "ylhro.pfb") (encoding-vector "8r.enc")) (define-font ylhd8r (font-class type1) (font-file "ylhd.pfb") (encoding-vector "8r.enc")) (define-font ylhdi8r (font-class type1) (font-file "ylhdi.pfb") (encoding-vector "8r.enc")) (define-font ylcrs8r (font-class type1) (font-file "ylcrs.pfb") (encoding-vector "8r.enc")) (define-font ylcds8r (font-class type1) (font-file "ylcds.pfb") (encoding-vector "8r.enc")) (define-font ylcdis8r (font-class type1) (font-file "ylcdis.pfb") (encoding-vector "8r.enc")) (define-font ylcrst8r (font-class type1) (font-file "ylcrst.pfb") (encoding-vector "8r.enc")) (define-font ylcrost8r (font-class type1) (font-file "ylcrost.pfb") (encoding-vector "8r.enc")) (define-font ylcbst8r (font-class type1) (font-file "ylcbst.pfb") (encoding-vector "8r.enc")) (define-font ylcbost8r (font-class type1) (font-file "ylcbost.pfb") (encoding-vector "8r.enc")) (define-font ylcr48r (font-class type1) (font-file "ylcr4.pfb") (encoding-vector "8r.enc")) (define-font ylcr4i8r (font-class type1) (font-file "ylcr4i.pfb") (encoding-vector "8r.enc")) (define-font ylcd48r (font-class type1) (font-file "ylcd4.pfb") (encoding-vector "8r.enc")) (define-font ylcd4i8r (font-class type1) (font-file "ylcd4i.pfb") (encoding-vector "8r.enc")) (define-font ylcrf8r (font-class type1) (font-file "ylcrf.pfb") (encoding-vector "8r.enc")) (define-font ylcrihw8r (font-class type1) (font-file "ylcrihw.pfb") (encoding-vector "8r.enc")) (define-font ylcris8r (font-class type1) (font-file "ylcris.pfb") (encoding-vector "8r.enc")) (define-font ylcriw8r (font-class type1) (font-file "ylcriw.pfb") (encoding-vector "8r.enc")) (define-font cggr8r (font-class type1) (font-file "cggr.pfa") (encoding-vector "8r.enc")) (define-font cggri8r (font-class type1) (font-file "cggri.pfa") (encoding-vector "8r.enc")) (define-font cggb8r (font-class type1) (font-file "cggb.pfa") (encoding-vector "8r.enc")) (define-font cggbi8r (font-class type1) (font-file "cggbi.pfa") (encoding-vector "8r.enc")) (define-font cshr8r (font-class type1) (font-file "cshr.pfa") (encoding-vector "8r.enc")) (define-font cshro8r (font-class type1) (font-file "cshro.pfa") (encoding-vector "8r.enc")) (define-font cshb8r (font-class type1) (font-file "cshb.pfa") (encoding-vector "8r.enc")) (define-font cshx8r (font-class type1) (font-file "cshx.pfa") (encoding-vector "8r.enc")) (define-font pagk0 (font-class type1) (font-file "AvantGarde-Book")) (define-font pagko0 (font-class type1) (font-file "AvantGarde-BookOblique")) (define-font pagd0 (font-class type1) (font-file "AvantGarde-Demi")) (define-font pagdo0 (font-class type1) (font-file "AvantGarde-DemiOblique")) (define-font pbkl0 (font-class type1) (font-file "Bookman-Light")) (define-font pbkli0 (font-class type1) (font-file "Bookman-LightItalic")) (define-font pbklo0 (font-class type1) (font-file "Bookman-Light") (slant-factor 0.167)) (define-font pbkd0 (font-class type1) (font-file "Bookman-Demi")) (define-font pbkdi0 (font-class type1) (font-file "Bookman-DemiItalic")) (define-font pbkdo0 (font-class type1) (font-file "Bookman-Demi") (slant-factor 0.167)) (define-font pcrr0 (font-class type1) (font-file "Courier")) (define-font pcrro0 (font-class type1) (font-file "Courier-Oblique")) (define-font pcrb0 (font-class type1) (font-file "Courier-Bold")) (define-font pcrbo0 (font-class type1) (font-file "Courier-BoldOblique")) (define-font phvr0 (font-class type1) (font-file "Helvetica")) (define-font phvro0 (font-class type1) (font-file "Helvetica-Oblique")) (define-font phvb0 (font-class type1) (font-file "Helvetica-Bold")) (define-font phvbo0 (font-class type1) (font-file "Helvetica-BoldOblique")) (define-font phvrrn0 (font-class type1) (font-file "Helvetica") (aspect-ratio 0.820)) (define-font phvron0 (font-class type1) (font-file "Helvetica-Oblique") (aspect-ratio 0.820)) (define-font phvbrn0 (font-class type1) (font-file "Helvetica-Bold") (aspect-ratio 0.820)) (define-font phvbon0 (font-class type1) (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820)) (define-font pncr0 (font-class type1) (font-file "NewCenturySchlbk-Roman")) (define-font pncri0 (font-class type1) (font-file "NewCenturySchlbk-Italic")) (define-font pncro0 (font-class type1) (font-file "NewCenturySchlbk-Roman") (slant-factor 0.167)) (define-font pncb0 (font-class type1) (font-file "NewCenturySchlbk-Bold")) (define-font pncbi0 (font-class type1) (font-file "NewCenturySchlbk-BoldItalic")) (define-font pncbo0 (font-class type1) (font-file "NewCenturySchlbk-Bold") (slant-factor 0.167)) (define-font pplr0 (font-class type1) (font-file "Palatino-Roman")) (define-font pplri0 (font-class type1) (font-file "Palatino-Italic")) (define-font pplro0 (font-class type1) (font-file "Palatino-Roman") (slant-factor 0.167)) (define-font pplb0 (font-class type1) (font-file "Palatino-Bold")) (define-font pplbi0 (font-class type1) (font-file "Palatino-BoldItalic")) (define-font pplbo0 (font-class type1) (font-file "Palatino-Bold") (slant-factor 0.167)) (define-font pplbu0 (font-class type1) (font-file "Palatino-BoldItalic") (slant-factor -0.176)) (define-font pplru0 (font-class type1) (font-file "Palatino-Italic") (slant-factor -0.176)) (define-font pplrrn0 (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 0.820)) (define-font pplrre0 (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 1.200)) (define-font ptmr0 (font-class type1) (font-file "Times-Roman")) (define-font ptmri0 (font-class type1) (font-file "Times-Italic")) (define-font ptmro0 (font-class type1) (font-file "Times-Roman") (slant-factor 0.167)) (define-font ptmb0 (font-class type1) (font-file "Times-Bold")) (define-font ptmbi0 (font-class type1) (font-file "Times-BoldItalic")) (define-font ptmbo0 (font-class type1) (font-file "Times-Bold") (slant-factor 0.167)) (define-font ptmrrn0 (font-class type1) (font-file "Times-Roman") (aspect-ratio 0.800)) (define-font ptmrre0 (font-class type1) (font-file "Times-Roman") (aspect-ratio 1.200)) (define-font pzcmi0 (font-class type1) (font-file "ZapfChancery-MediumItalic")) (define-font putr0 (font-class type1) (font-file "putr.pfa")) (define-font putri0 (font-class type1) (font-file "putri.pfa")) (define-font putro0 (font-class type1) (font-file "putr.pfa") (slant-factor 0.167)) (define-font putb0 (font-class type1) (font-file "putb.pfa")) (define-font putbi0 (font-class type1) (font-file "putbi.pfa")) (define-font putbo0 (font-class type1) (font-file "putb.pfa") (slant-factor 0.167)) (define-font bchr0 (font-class type1) (font-file "bchr.pfb")) (define-font bchri0 (font-class type1) (font-file "bchri.pfb")) (define-font bchro0 (font-class type1) (font-file "bchr.pfa") (slant-factor 0.167)) (define-font bchb0 (font-class type1) (font-file "bchb.pfb")) (define-font bchbi0 (font-class type1) (font-file "bchbi.pfb")) (define-font bchbo0 (font-class type1) (font-file "bchb.pfa") (slant-factor 0.167)) (define-font uaqrrc0 (font-class type1) (font-file "uaqrrc.pfa")) (define-font ugqb0 (font-class type1) (font-file "ugqb.pfa")) (define-font unmr0 (font-class type1) (font-file "unmr.pfa")) (define-font unmrs0 (font-class type1) (font-file "unmrs.pfa")) (define-font paab0 (font-class type1) (font-file "paab.pfa")) (define-font padr0 (font-class type1) (font-file "padr.pfa")) (define-font padri0 (font-class type1) (font-file "padri.pfa")) (define-font pads0 (font-class type1) (font-file "pads.pfa")) (define-font padsi0 (font-class type1) (font-file "padsi.pfa")) (define-font padb0 (font-class type1) (font-file "padb.pfa")) (define-font padbi0 (font-class type1) (font-file "padbi.pfa")) (define-font padrd0 (font-class type1) (font-file "padrd.pfa")) (define-font padrx0 (font-class type1) (font-file "padrx.pfa")) (define-font padrix0 (font-class type1) (font-file "padrix.pfa")) (define-font padsx0 (font-class type1) (font-file "padsx.pfa")) (define-font padbx0 (font-class type1) (font-file "padbx.pfa")) (define-font padbix0 (font-class type1) (font-file "padbix.pfa")) (define-font pbdr0 (font-class type1) (font-file "pbdr.pfa")) (define-font pbdri0 (font-class type1) (font-file "pbdri.pfa")) (define-font pbdb0 (font-class type1) (font-file "pbdb.pfa")) (define-font pbdbi0 (font-class type1) (font-file "pbdbi.pfa")) (define-font pbdp0 (font-class type1) (font-file "pbdp.pfa")) (define-font pburw0 (font-class type1) (font-file "pburw.pfa")) (define-font pc5r0 (font-class type1) (font-file "pc5r.pfa")) (define-font pc5ri0 (font-class type1) (font-file "pc5ri.pfa")) (define-font pc3r0 (font-class type1) (font-file "pc3r.pfa")) (define-font pc3ri0 (font-class type1) (font-file "pc3ri.pfa")) (define-font phvrrc0 (font-class type1) (font-file "phvrrc.pfa")) (define-font phvroc0 (font-class type1) (font-file "phvroc.pfa")) (define-font phvbrc0 (font-class type1) (font-file "phvbrc.pfa")) (define-font phvboc0 (font-class type1) (font-file "phvboc.pfa")) (define-font pubr0 (font-class type1) (font-file "pubr.pfa")) (define-font pubri0 (font-class type1) (font-file "pubri.pfa")) (define-font pubb0 (font-class type1) (font-file "pubb.pfa")) (define-font pubbi0 (font-class type1) (font-file "pubbi.pfa")) (define-font plbk0 (font-class type1) (font-file "plbk.pfa")) (define-font plbko0 (font-class type1) (font-file "plbko.pfa")) (define-font plbd0 (font-class type1) (font-file "plbd.pfa")) (define-font plbdo0 (font-class type1) (font-file "plbdo.pfa")) (define-font psvl0 (font-class type1) (font-file "psvl.pfa")) (define-font psvli0 (font-class type1) (font-file "psvli.pfa")) (define-font psvd0 (font-class type1) (font-file "psvd.pfa")) (define-font psvdi0 (font-class type1) (font-file "psvdi.pfa")) (define-font phbr0 (font-class type1) (font-file "phbr.pfa")) (define-font pslr0 (font-class type1) (font-file "pslr.pfa")) (define-font plcr0 (font-class type1) (font-file "plcr.pfa")) (define-font plcri0 (font-class type1) (font-file "plcri.pfa")) (define-font plcro0 (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167)) (define-font plcb0 (font-class type1) (font-file "plcb.pfa")) (define-font plcbi0 (font-class type1) (font-file "plcbi.pfa")) (define-font plcrs0 (font-class type1) (font-file "plcrs.pfa")) (define-font plcris0 (font-class type1) (font-file "plcris.pfa")) (define-font plcbs0 (font-class type1) (font-file "plcbs.pfa")) (define-font plcbis0 (font-class type1) (font-file "plcbis.pfa")) (define-font plcrb0 (font-class type1) (font-file "plcrb.pfa")) (define-font plcrbi0 (font-class type1) (font-file "plcrbi.pfa")) (define-font plcbb0 (font-class type1) (font-file "plcbb.pfa")) (define-font plcrst0 (font-class type1) (font-file "plcrst.pfa")) (define-font plcrm0 (font-class type1) (font-file "plcrm.pfa")) (define-font plcrv0 (font-class type1) (font-file "plcrv.pfa")) (define-font plcry0 (font-class type1) (font-file "plcry.pfa")) (define-font ylhr0 (font-class type1) (font-file "ylhr.pfb")) (define-font ylhri0 (font-class type1) (font-file "ylhri.pfb")) (define-font ylhro0 (font-class type1) (font-file "ylhro.pfb")) (define-font ylhd0 (font-class type1) (font-file "ylhd.pfb")) (define-font ylhdi0 (font-class type1) (font-file "ylhdi.pfb")) (define-font ylcrs0 (font-class type1) (font-file "ylcrs.pfb")) (define-font ylcds0 (font-class type1) (font-file "ylcds.pfb")) (define-font ylcdis0 (font-class type1) (font-file "ylcdis.pfb")) (define-font ylcrst0 (font-class type1) (font-file "ylcrst.pfb")) (define-font ylcrost0 (font-class type1) (font-file "ylcrost.pfb")) (define-font ylcbst0 (font-class type1) (font-file "ylcbst.pfb")) (define-font ylcbost0 (font-class type1) (font-file "ylcbost.pfb")) (define-font ylcr40 (font-class type1) (font-file "ylcr4.pfb")) (define-font ylcr4i0 (font-class type1) (font-file "ylcr4i.pfb")) (define-font ylcd40 (font-class type1) (font-file "ylcd4.pfb")) (define-font ylcd4i0 (font-class type1) (font-file "ylcd4i.pfb")) (define-font ylcrf0 (font-class type1) (font-file "ylcrf.pfb")) (define-font ylcrihw0 (font-class type1) (font-file "ylcrihw.pfb")) (define-font ylcris0 (font-class type1) (font-file "ylcris.pfb")) (define-font ylcriw0 (font-class type1) (font-file "ylcriw.pfb")) (define-font cggr0 (font-class type1) (font-file "cggr.pfa")) (define-font cggri0 (font-class type1) (font-file "cggri.pfa")) (define-font cggb0 (font-class type1) (font-file "cggb.pfa")) (define-font cggbi0 (font-class type1) (font-file "cggbi.pfa")) (define-font cshr0 (font-class type1) (font-file "cshr.pfa")) (define-font cshro0 (font-class type1) (font-file "cshro.pfa")) (define-font cshb0 (font-class type1) (font-file "cshb.pfa")) (define-font cshx0 (font-class type1) (font-file "cshx.pfa")) ;; ----------------------------------------------------------------- ;; Japanese Kanji fonts using standard X11 PCF fonts (define-font jtex-min (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-goth (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tmin (font-class pcf) (font-file "jiskan24.pcf")) (define-font jtex-tgoth (font-class pcf) (font-file "jiskan24.pcf")) (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.85) (metric-adjustment-file "tjiskan24.adj")) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.85) (metric-adjustment-file "tjiskan24.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) ;; ----------------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/vflibcaps/vflibcap-tex-pk0000644000175000017500000000317007575242206020166 0ustar mohuramohura;; a vflibcap file generated by 'vflmkcaptex' automatically ;; at 2002ǯ 1210 1033ʬ58 JST ;; on home.kakugawa.hiroshima-u.ac.jp by kakugawa ;; ;; command line arguments given to generate this vflibcap: ;; vflmkcaptex simple -i ;; ;; ------------------------------------------------------- ;; *** VFlib defaults *** ;; Generated by vflmkvfl ;; at Tue Dec 10 10:33:58 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkvfl -n cx -r 300 -p xgdvi -k -i pk -i tfm (define-default VFlib (extension-hints) (implicit-font-classes pk tfm) (uncompression-programs (".Z" "gzip -cd") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "xgdvi")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files)) ;; ------------------------------------------------------- ;; *** PK *** ;; Generated by vflmkpk ;; at Tue Dec 10 10:33:58 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkpk -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI -g (define-default pk (font-directories "TEXMF") (dpi $TeX_DPI)) ;; ------------------------------------------------------- ;; *** TFM *** ;; Generated by vflmktfm ;; at Tue Dec 10 10:33:58 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmktfm -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI (define-default tfm (font-directories "TEXMF") (dpi $TeX_DPI) (filename-extensions ".tfm" ".ofm") (glyph-style "fill")) ;; end. vflib3-3.6.14.dfsg/vflibcaps/vflibcap-jtex0000644000175000017500000031775607273752406017755 0ustar mohuramohura;;; -*-Lisp-*- ;; ;; vflibcap for TeX ;; * Support for PostScript fonts in DVI ;; * Support for Japanese TeX by ASCII Co. ;; ;; by h.kakugawa@computer.org ;; ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (extension-hints ("pk" TeX) (".pfa" type1) (".pfb" type1) (".vf" vf) (".ofm" tfm) (".ovf" vf) ) (implicit-font-classes type1) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") ;; or "600" (TeX_KPATHSEA_MODE "cx") ;; or "ljfour" (TeX_KPATHSEA_PROGRAM "xgdvi")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv" "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv" "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv" "iso8859-10_unicode.ccv" "iso8859-13_unicode.ccv" "iso8859-14_unicode.ccv" "iso8859-15_unicode.ccv" "jisx0208_unicode.ccv" "jisx0208sjis_unicode.ccv" "jisx0201_unicode.ccv" "jisx0212_unicode.ccv" "ksc5601_unicode.ccv" "ksx1001_unicode.ccv" "gb12345_unicode.ccv" "gb2312_unicode.ccv" "big5_unicode.ccv" "cns11643-1_unicode.ccv" "cns11643-2_unicode.ccv" "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv")) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm" ".ofm") (font-mapping ;; Japanese Kanji fonts ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*" "fj*" "tfj*" "df*" "tdf*" "rc*" "trc*") ;; VF fonts ((vf "%f.vf") *) ;; Type 1 fonts ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ;; PK, GF fonts ((pk "%f.%dpk") (gf "%f.%dgf") *) ;; If everything fails, use "black square" as substitue of request fonts ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ;; epson, canonlbp 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf (font-directories "." "TEXMF")) ;; ----------------------------------------------------------------- ;; PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk (make-missing-glyph "yes") (font-directories "." "TEXMF")) ;; ----------------------------------------------------------------- ;; VF Font Class Default ;; ----------------------------------------------------------------- (define-default vf (font-directories "." "TEXMF") (filename-extensions ".vf" ".ovf") (tfm-filename-extensions ".tfm" ".ofm") (font-mapping ((* "%f" point-size-from-tfm) *) ((type1 "%f.pfb" point-size-from-tfm) *) ((pk "%f.pk" point-size-from-tfm) *)) ;;(debug "fs") (open-style "try") ;; "none", "try", or "require" (glyph-style "fill")) ;; "fill", or "empty" ;; ----------------------------------------------------------------- ;; TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm (filename-extensions ".tfm" ".ofm") (glyph-style "fill")) ;; ----------------------------------------------------------------- ;; ASCII-jTeX Kanji fonts ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji (tfm-directories "." "TEXMF") (tfm-filename-extensions ".tfm") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; Type1 Font Class Default ;; ----------------------------------------------------------------- (define-default type1 ;;(debug "r") (font-directories "TEXMF" "/opt/Acrobat4/Resource/Font//" "/opt/Acrobat3/Fonts//" "/usr/openwin/lib/X11/fonts/Type1//" "/usr/local/share/fonts/adobe//" "/usr/local/share/fonts/OpenWindow/Type1/outline" "/usr/local/share/fonts/Mojikyo/PFB/") (afm-directories "/usr/local/share/fonts/OpenWindow/Type1/afm" "/usr/local/share/fonts/Mojikyo/AFM/") (encoding-vector-directories "/usr/local/share/t1lib/") (log-level "none") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; TrueType Font Class Default ;; ----------------------------------------------------------------- (define-default truetype (platform-id "microsoft") (font-directories "TEXMF" "/usr/local/share/fonts/DynaFont-TypeMuseum//" "/usr/local/share/fonts/FontCity2//" "/usr/local/share/fonts/DynaFont-Premium30//" "/usr/local/share/fonts/DynaFont-SpecialPack1//" "/usr/local/share/fonts/TrueTypeWorld-ValueFontDX//" "/usr/local/share/fonts/TrueTypeWorld-ValueFont141//" "/usr/local/share/fonts/Mojikyo/TTF" ) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; PCF Font Class Default ;; ----------------------------------------------------------------- (define-default pcf (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/emacs/fonts//" "/usr/local/share/fonts/X11//") (compression-extensions ".gz" ".Z") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; eKanji Font Class Default ;; See also http://www.zinbun.kyoto-u.ac.jp/~ekanji/ ;; ----------------------------------------------------------------- (define-default ekanji (font-directories "/usr/local/share/fonts/eKanji") (font-dot-size 24) (pixel-size 24) (point-size 10) (dpi 72.27) (writing-direction horizontal) ;;(debug "cCf") (properties ("FONT_CLASS" "EKANJI"))) ;; ----------------------------------------------------------------- ;; Sample font definitions for Japanese TeX ;; ;; JIS X 0208 Fonts (define-font jtex-min (font-class truetype) (character-set "JISX0208") (encoding "ISO2022") (font-file "dfmimp3.ttc")) (define-font jtex-goth (font-class truetype) (character-set "JISX0208") (encoding "ISO2022") (font-file "dfgotp5.ttc")) (define-font jtex-tmin (font-class truetype) (character-set "JISX0208") (encoding "ISO2022") (font-file "dfmimp3.ttc")) (define-font jtex-tgoth (font-class truetype) (character-set "JISX0208") (encoding "ISO2022") (font-file "dfgotp5.ttc")) (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.95) (metric-adjustment-file "dfmimp3.adj")) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.95) (metric-adjustment-file "dfgotp5.adj")) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.95) (metric-adjustment-file "tdfmimp3.adj")) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.95) (metric-adjustment-file "tdfgotp5.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) ;; Hojo Kanji (JISX0212) Fonts (define-macro jtex-hojo-common (font-class truetype) (platform-id "microsoft") (character-set "JISX0212") (encoding "ISO2022") ;; Ricoh TrueTypeWorld Value Font DX is buggy; Row 47 is empty and ;; characters in row R >= 47 are in encoded in rows R+1. ;;(jisx0212-row47-empty-sjis "YES") ) (define-font jtex-min-hojo jtex-hojo-common (font-file "dfmin3_u.ttc")) (define-font jtex-goth-hojo jtex-hojo-common (font-file "dfgot5_u.ttc")) (define-font jtex-tmin-hojo jtex-hojo-common (font-file "dfmin3_u.ttc")) (define-font jtex-tgoth-hojo jtex-hojo-common (font-file "dfgot5_u.ttc")) (define-macro min-hojo-common (font-class ascii-jtex-kanji) (kanji-font jtex-min-hojo) (kanji-font-magnification 0.95) (metric-adjustment-file "dfmimp3.adj")) (define-macro goth-hojo-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth-hojo) (kanji-font-magnification 0.95) (metric-adjustment-file "dfgotp5.adj")) (define-macro tmin-hojo-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin-hojo) (kanji-font-magnification 0.95) (metric-adjustment-file "tdfmimp3.adj")) (define-macro tgoth-hojo-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth-hojo) (kanji-font-magnification 0.95) (metric-adjustment-file "tdfgotp5.adj")) (define-font minh5.jtex (kanji-font-point-size 5) min-hojo-common) (define-font minh6.jtex (kanji-font-point-size 6) min-hojo-common) (define-font minh7.jtex (kanji-font-point-size 7) min-hojo-common) (define-font minh8.jtex (kanji-font-point-size 8) min-hojo-common) (define-font minh9.jtex (kanji-font-point-size 9) min-hojo-common) (define-font minh10.jtex (kanji-font-point-size 10) min-hojo-common) (define-font gothh5.jtex (kanji-font-point-size 5) goth-hojo-common) (define-font gothh6.jtex (kanji-font-point-size 6) goth-hojo-common) (define-font gothh7.jtex (kanji-font-point-size 7) goth-hojo-common) (define-font gothh8.jtex (kanji-font-point-size 8) goth-hojo-common) (define-font gothh9.jtex (kanji-font-point-size 9) goth-hojo-common) (define-font gothh10.jtex (kanji-font-point-size 10) goth-hojo-common) (define-font tminh5.jtex (kanji-font-point-size 5) tmin-hojo-common) (define-font tminh6.jtex (kanji-font-point-size 6) tmin-hojo-common) (define-font tminh7.jtex (kanji-font-point-size 7) tmin-hojo-common) (define-font tminh8.jtex (kanji-font-point-size 8) tmin-hojo-common) (define-font tminh9.jtex (kanji-font-point-size 9) tmin-hojo-common) (define-font tminh10.jtex (kanji-font-point-size 10) tmin-hojo-common) (define-font tgothh5.jtex (kanji-font-point-size 5) tgoth-hojo-common) (define-font tgothh6.jtex (kanji-font-point-size 6) tgoth-hojo-common) (define-font tgothh7.jtex (kanji-font-point-size 7) tgoth-hojo-common) (define-font tgothh8.jtex (kanji-font-point-size 8) tgoth-hojo-common) (define-font tgothh9.jtex (kanji-font-point-size 9) tgoth-hojo-common) (define-font tgothh10.jtex (kanji-font-point-size 10) tgoth-hojo-common) ;; Mojikyo font (Encoding scheme is completely different from JISX0208/0212) ;; See http://www.mojikyo.gr.jp/ for free download (define-macro ttf-mojikyo-h-common (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022")) (define-macro ttf-mojikyo-v-common (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022")) (define-font mojik101 (font-file "Mojik101.ttf") ttf-mojikyo-h-common) (define-font mojik102 (font-file "Mojik102.ttf") ttf-mojikyo-h-common) (define-font mojik103 (font-file "Mojik103.ttf") ttf-mojikyo-h-common) (define-font mojik104 (font-file "Mojik104.ttf") ttf-mojikyo-h-common) (define-font mojik105 (font-file "Mojik105.ttf") ttf-mojikyo-h-common) (define-font mojik106 (font-file "Mojik106.ttf") ttf-mojikyo-h-common) (define-font mojik107 (font-file "Mojik107.ttf") ttf-mojikyo-h-common) (define-font mojik108 (font-file "Mojik108.ttf") ttf-mojikyo-h-common) (define-font mojik109 (font-file "Mojik109.ttf") ttf-mojikyo-h-common) (define-font mojik110 (font-file "Mojik110.ttf") ttf-mojikyo-h-common) (define-font mojik111 (font-file "Mojik111.ttf") ttf-mojikyo-h-common) (define-font mojik112 (font-file "Mojik112.ttf") ttf-mojikyo-h-common) (define-font mojik113 (font-file "Mojik113.ttf") ttf-mojikyo-h-common) (define-font mojik114 (font-file "Mojik114.ttf") ttf-mojikyo-h-common) (define-font mojik115 (font-file "Mojik115.ttf") ttf-mojikyo-h-common) (define-font mojik116 (font-file "Mojik116.ttf") ttf-mojikyo-h-common) (define-font mojik117 (font-file "Mojik117.ttf") ttf-mojikyo-h-common) (define-font mojik118 (font-file "Mojik118.ttf") ttf-mojikyo-h-common) (define-font mojik119 (font-file "Mojik119.ttf") ttf-mojikyo-h-common) (define-font mojik120 (font-file "Mojik120.ttf") ttf-mojikyo-h-common) (define-font mojik121 (font-file "Mojik121.ttf") ttf-mojikyo-h-common) (define-font mojik181 (font-file "Mojik181.ttf") ttf-mojikyo-h-common) (define-font mojik182 (font-file "Mojik182.ttf") ttf-mojikyo-h-common) (define-font mojik183 (font-file "Mojik183.ttf") ttf-mojikyo-h-common) (define-font mojkv101 (font-file "Mojik101.ttf") ttf-mojikyo-v-common) (define-font mojkv102 (font-file "Mojik102.ttf") ttf-mojikyo-v-common) (define-font mojkv103 (font-file "Mojik103.ttf") ttf-mojikyo-v-common) (define-font mojkv104 (font-file "Mojik104.ttf") ttf-mojikyo-v-common) (define-font mojkv105 (font-file "Mojik105.ttf") ttf-mojikyo-v-common) (define-font mojkv106 (font-file "Mojik106.ttf") ttf-mojikyo-v-common) (define-font mojkv107 (font-file "Mojik107.ttf") ttf-mojikyo-v-common) (define-font mojkv108 (font-file "Mojik108.ttf") ttf-mojikyo-v-common) (define-font mojkv109 (font-file "Mojik109.ttf") ttf-mojikyo-v-common) (define-font mojkv110 (font-file "Mojik110.ttf") ttf-mojikyo-v-common) (define-font mojkv111 (font-file "Mojik111.ttf") ttf-mojikyo-v-common) (define-font mojkv112 (font-file "Mojik112.ttf") ttf-mojikyo-v-common) (define-font mojkv113 (font-file "Mojik113.ttf") ttf-mojikyo-v-common) (define-font mojkv114 (font-file "Mojik114.ttf") ttf-mojikyo-v-common) (define-font mojkv115 (font-file "Mojik115.ttf") ttf-mojikyo-v-common) (define-font mojkv116 (font-file "Mojik116.ttf") ttf-mojikyo-v-common) (define-font mojkv117 (font-file "Mojik117.ttf") ttf-mojikyo-v-common) (define-font mojkv118 (font-file "Mojik118.ttf") ttf-mojikyo-v-common) (define-font mojkv119 (font-file "Mojik119.ttf") ttf-mojikyo-v-common) (define-font mojkv120 (font-file "Mojik120.ttf") ttf-mojikyo-v-common) (define-font mojkv121 (font-file "Mojik121.ttf") ttf-mojikyo-v-common) (define-font mojkv181 (font-file "Mojik181.ttf") ttf-mojikyo-v-common) (define-font mojkv182 (font-file "Mojik182.ttf") ttf-mojikyo-v-common) (define-font mojkv183 (font-file "Mojik183.ttf") ttf-mojikyo-v-common) (define-macro jtex-mojikyo-h-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.95) (metric-adjustment-file "mojik.adj")) (define-macro jtex-mojikyo-v-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.95) (metric-adjustment-file "mojkv.adj")) (define-font mojik101.jtex (kanji-font mojik101) jtex-mojikyo-h-common) (define-font mojik102.jtex (kanji-font mojik102) jtex-mojikyo-h-common) (define-font mojik103.jtex (kanji-font mojik103) jtex-mojikyo-h-common) (define-font mojik104.jtex (kanji-font mojik104) jtex-mojikyo-h-common) (define-font mojik105.jtex (kanji-font mojik105) jtex-mojikyo-h-common) (define-font mojik106.jtex (kanji-font mojik106) jtex-mojikyo-h-common) (define-font mojik107.jtex (kanji-font mojik107) jtex-mojikyo-h-common) (define-font mojik108.jtex (kanji-font mojik108) jtex-mojikyo-h-common) (define-font mojik109.jtex (kanji-font mojik109) jtex-mojikyo-h-common) (define-font mojik110.jtex (kanji-font mojik110) jtex-mojikyo-h-common) (define-font mojik111.jtex (kanji-font mojik111) jtex-mojikyo-h-common) (define-font mojik112.jtex (kanji-font mojik112) jtex-mojikyo-h-common) (define-font mojik113.jtex (kanji-font mojik113) jtex-mojikyo-h-common) (define-font mojik114.jtex (kanji-font mojik114) jtex-mojikyo-h-common) (define-font mojik115.jtex (kanji-font mojik115) jtex-mojikyo-h-common) (define-font mojik116.jtex (kanji-font mojik116) jtex-mojikyo-h-common) (define-font mojik117.jtex (kanji-font mojik117) jtex-mojikyo-h-common) (define-font mojik118.jtex (kanji-font mojik118) jtex-mojikyo-h-common) (define-font mojik119.jtex (kanji-font mojik119) jtex-mojikyo-h-common) (define-font mojik120.jtex (kanji-font mojik120) jtex-mojikyo-h-common) (define-font mojik121.jtex (kanji-font mojik121) jtex-mojikyo-h-common) (define-font mojik181.jtex (kanji-font mojik181) jtex-mojikyo-h-common) (define-font mojik182.jtex (kanji-font mojik182) jtex-mojikyo-h-common) (define-font mojik183.jtex (kanji-font mojik183) jtex-mojikyo-h-common) (define-font mojkv101.jtex (kanji-font mojkv101) jtex-mojikyo-v-common) (define-font mojkv102.jtex (kanji-font mojkv102) jtex-mojikyo-v-common) (define-font mojkv103.jtex (kanji-font mojkv103) jtex-mojikyo-v-common) (define-font mojkv104.jtex (kanji-font mojkv104) jtex-mojikyo-v-common) (define-font mojkv105.jtex (kanji-font mojkv105) jtex-mojikyo-v-common) (define-font mojkv106.jtex (kanji-font mojkv106) jtex-mojikyo-v-common) (define-font mojkv107.jtex (kanji-font mojkv107) jtex-mojikyo-v-common) (define-font mojkv108.jtex (kanji-font mojkv108) jtex-mojikyo-v-common) (define-font mojkv109.jtex (kanji-font mojkv109) jtex-mojikyo-v-common) (define-font mojkv110.jtex (kanji-font mojkv110) jtex-mojikyo-v-common) (define-font mojkv111.jtex (kanji-font mojkv111) jtex-mojikyo-v-common) (define-font mojkv112.jtex (kanji-font mojkv112) jtex-mojikyo-v-common) (define-font mojkv113.jtex (kanji-font mojkv113) jtex-mojikyo-v-common) (define-font mojkv114.jtex (kanji-font mojkv114) jtex-mojikyo-v-common) (define-font mojkv115.jtex (kanji-font mojkv115) jtex-mojikyo-v-common) (define-font mojkv116.jtex (kanji-font mojkv116) jtex-mojikyo-v-common) (define-font mojkv117.jtex (kanji-font mojkv117) jtex-mojikyo-v-common) (define-font mojkv118.jtex (kanji-font mojkv118) jtex-mojikyo-v-common) (define-font mojkv119.jtex (kanji-font mojkv119) jtex-mojikyo-v-common) (define-font mojkv120.jtex (kanji-font mojkv120) jtex-mojikyo-v-common) (define-font mojkv121.jtex (kanji-font mojkv121) jtex-mojikyo-v-common) (define-font mojkv181.jtex (kanji-font mojkv181) jtex-mojikyo-v-common) (define-font mojkv182.jtex (kanji-font mojkv182) jtex-mojikyo-v-common) (define-font mojkv183.jtex (kanji-font mojkv183) jtex-mojikyo-v-common) ;; ----------------------------------------------------------------- ;; ;; eKanji fonts ;; ;; Definitions for "ekan10??.pk" (define-macro ekan10-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "ekanji.adj")) (define-font ekan1000.jtex ekan10-common (kanji-font ek1000)) (define-font ekan1001.jtex ekan10-common (kanji-font ek1001)) (define-font ekan1002.jtex ekan10-common (kanji-font ek1002)) (define-font ekan1003.jtex ekan10-common (kanji-font ek1003)) (define-font ekan1004.jtex ekan10-common (kanji-font ek1004)) (define-macro ek10-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0010.d24")) (define-font ek1000 ek10-common (mock-font-encoding subblocks-94x60 0)) (define-font ek1001 ek10-common (mock-font-encoding subblocks-94x60 1)) (define-font ek1002 ek10-common (mock-font-encoding subblocks-94x60 2)) (define-font ek1003 ek10-common (mock-font-encoding subblocks-94x60 3)) (define-font ek1004 ek10-common (mock-font-encoding subblocks-94x60 4)) ;; Definitions for "ekan20??.pk" (define-macro ekan20-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "ekanji.adj")) (define-font ekan2000.jtex ekan20-common (kanji-font ek2000)) (define-font ekan2001.jtex ekan20-common (kanji-font ek2001)) (define-font ekan2002.jtex ekan20-common (kanji-font ek2002)) (define-font ekan2003.jtex ekan20-common (kanji-font ek2003)) (define-font ekan2004.jtex ekan20-common (kanji-font ek2004)) (define-font ekan2005.jtex ekan20-common (kanji-font ek2005)) (define-font ekan2006.jtex ekan20-common (kanji-font ek2006)) (define-font ekan2007.jtex ekan20-common (kanji-font ek2007)) (define-font ekan2008.jtex ekan20-common (kanji-font ek2008)) (define-macro ek20-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0020.d24")) (define-font ek2000 ek20-common (mock-font-encoding subblocks-94x60 0)) (define-font ek2001 ek20-common (mock-font-encoding subblocks-94x60 1)) (define-font ek2002 ek20-common (mock-font-encoding subblocks-94x60 2)) (define-font ek2003 ek20-common (mock-font-encoding subblocks-94x60 3)) (define-font ek2004 ek20-common (mock-font-encoding subblocks-94x60 4)) (define-font ek2005 ek20-common (mock-font-encoding subblocks-94x60 5)) (define-font ek2006 ek20-common (mock-font-encoding subblocks-94x60 6)) (define-font ek2007 ek20-common (mock-font-encoding subblocks-94x60 7)) (define-font ek2008 ek20-common (mock-font-encoding subblocks-94x60 8)) ;; Definitions for "ekan30??.pk" (define-macro ekan30-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "ekanji.adj")) (define-font ekan3000.jtex ekan30-common (kanji-font ek3000)) (define-font ekan3001.jtex ekan30-common (kanji-font ek3001)) (define-font ekan3002.jtex ekan30-common (kanji-font ek3002)) (define-font ekan3003.jtex ekan30-common (kanji-font ek3003)) (define-font ekan3004.jtex ekan30-common (kanji-font ek3004)) (define-font ekan3005.jtex ekan30-common (kanji-font ek3005)) (define-font ekan3006.jtex ekan30-common (kanji-font ek3006)) (define-font ekan3007.jtex ekan30-common (kanji-font ek3007)) (define-font ekan3008.jtex ekan30-common (kanji-font ek3008)) (define-macro ek30-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0030.d24")) (define-font ek3000 ek30-common (mock-font-encoding subblocks-94x60 0)) (define-font ek3001 ek30-common (mock-font-encoding subblocks-94x60 1)) (define-font ek3002 ek30-common (mock-font-encoding subblocks-94x60 2)) (define-font ek3003 ek30-common (mock-font-encoding subblocks-94x60 3)) (define-font ek3004 ek30-common (mock-font-encoding subblocks-94x60 4)) (define-font ek3005 ek30-common (mock-font-encoding subblocks-94x60 5)) (define-font ek3006 ek30-common (mock-font-encoding subblocks-94x60 6)) (define-font ek3007 ek30-common (mock-font-encoding subblocks-94x60 7)) (define-font ek3008 ek30-common (mock-font-encoding subblocks-94x60 8)) ;; ----------------------------------------------------------------- ;; Definitions for "tekan10??.pk" (define-macro tekan10-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "tekanji.adj")) (define-font tekan1000.jtex tekan10-common (kanji-font tek1000)) (define-font tekan1001.jtex tekan10-common (kanji-font tek1001)) (define-font tekan1002.jtex tekan10-common (kanji-font tek1002)) (define-font tekan1003.jtex tekan10-common (kanji-font tek1003)) (define-font tekan1004.jtex tekan10-common (kanji-font tek1004)) (define-macro tek10-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0010.d24")) (define-font tek1000 tek10-common (mock-font-encoding subblocks-94x60 0)) (define-font tek1001 tek10-common (mock-font-encoding subblocks-94x60 1)) (define-font tek1002 tek10-common (mock-font-encoding subblocks-94x60 2)) (define-font tek1003 tek10-common (mock-font-encoding subblocks-94x60 3)) (define-font tek1004 tek10-common (mock-font-encoding subblocks-94x60 4)) ;; Definitions for "tekan20??.pk" (define-macro tekan20-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "tekanji.adj")) (define-font tekan2000.jtex tekan20-common (kanji-font tek2000)) (define-font tekan2001.jtex tekan20-common (kanji-font tek2001)) (define-font tekan2002.jtex tekan20-common (kanji-font tek2002)) (define-font tekan2003.jtex tekan20-common (kanji-font tek2003)) (define-font tekan2004.jtex tekan20-common (kanji-font tek2004)) (define-font tekan2005.jtex tekan20-common (kanji-font tek2005)) (define-font tekan2006.jtex tekan20-common (kanji-font tek2006)) (define-font tekan2007.jtex tekan20-common (kanji-font tek2007)) (define-font tekan2008.jtex tekan20-common (kanji-font tek2008)) (define-macro tek20-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0020.d24")) (define-font tek2000 tek20-common (mock-font-encoding subblocks-94x60 0)) (define-font tek2001 tek20-common (mock-font-encoding subblocks-94x60 1)) (define-font tek2002 tek20-common (mock-font-encoding subblocks-94x60 2)) (define-font tek2003 tek20-common (mock-font-encoding subblocks-94x60 3)) (define-font tek2004 tek20-common (mock-font-encoding subblocks-94x60 4)) (define-font tek2005 tek20-common (mock-font-encoding subblocks-94x60 5)) (define-font tek2006 tek20-common (mock-font-encoding subblocks-94x60 6)) (define-font tek2007 tek20-common (mock-font-encoding subblocks-94x60 7)) (define-font tek2008 tek20-common (mock-font-encoding subblocks-94x60 8)) ;; Definitions for "tekan30??.pk" (define-macro tekan30-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "tekanji.adj")) (define-font tekan3000.jtex tekan30-common (kanji-font tek3000)) (define-font tekan3001.jtex tekan30-common (kanji-font tek3001)) (define-font tekan3002.jtex tekan30-common (kanji-font tek3002)) (define-font tekan3003.jtex tekan30-common (kanji-font tek3003)) (define-font tekan3004.jtex tekan30-common (kanji-font tek3004)) (define-font tekan3005.jtex tekan30-common (kanji-font tek3005)) (define-font tekan3006.jtex tekan30-common (kanji-font tek3006)) (define-font tekan3007.jtex tekan30-common (kanji-font tek3007)) (define-font tekan3008.jtex tekan30-common (kanji-font tek3008)) (define-macro tek30-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0030.d24")) (define-font tek3000 tek30-common (mock-font-encoding subblocks-94x60 0)) (define-font tek3001 tek30-common (mock-font-encoding subblocks-94x60 1)) (define-font tek3002 tek30-common (mock-font-encoding subblocks-94x60 2)) (define-font tek3003 tek30-common (mock-font-encoding subblocks-94x60 3)) (define-font tek3004 tek30-common (mock-font-encoding subblocks-94x60 4)) (define-font tek3005 tek30-common (mock-font-encoding subblocks-94x60 5)) (define-font tek3006 tek30-common (mock-font-encoding subblocks-94x60 6)) (define-font tek3007 tek30-common (mock-font-encoding subblocks-94x60 7)) (define-font tek3008 tek30-common (mock-font-encoding subblocks-94x60 8)) ;; ----------------------------------------------------------------- ;; non-standard Kanji fonts (define-macro jtex-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (metric-adjustment-file "f5ajchm3.adj")) (define-macro jtex-tcommon (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (metric-adjustment-file "tf5ajchm3.adj")) (define-macro ttf-kanji-common (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (dpi $TeX_DPI)) (define-font fjminmaa.jtex jtex-common (kanji-font fjminmaa)) (define-font fjminmaa ttf-kanji-common (font-file "f5ajcfm2.ttf")) (define-font tfjminmaa.jtex jtex-tcommon (kanji-font tfjminmaa)) (define-font tfjminmaa ttf-kanji-common (font-file "f5ajcfm2.ttf")) (define-font fjminsaa.jtex jtex-common (kanji-font fjminsaa)) (define-font fjminsaa ttf-kanji-common (font-file "f5ajcfm8.ttf")) (define-font tfjminsaa.jtex jtex-tcommon (kanji-font tfjminsaa)) (define-font tfjminsaa ttf-kanji-common (font-file "f5ajcfm8.ttf")) (define-font fjhsmmaa.jtex jtex-common (kanji-font fjhsmmaa)) (define-font fjhsmmaa ttf-kanji-common (font-file "f5ajchm3.ttf")) (define-font tfjhsmmaa.jtex jtex-tcommon (kanji-font tfjhsmmaa)) (define-font tfjhsmmaa ttf-kanji-common (font-file "f5ajchm3.ttf")) (define-font fjhsmraa.jtex jtex-common (kanji-font fjhsmraa)) (define-font fjhsmraa ttf-kanji-common (font-file "f5ajchm6.ttf")) (define-font tfjhsmraa.jtex jtex-tcommon (kanji-font tfjhsmraa)) (define-font tfjhsmraa ttf-kanji-common (font-file "f5ajchm6.ttf")) (define-font fjhsmvaa.jtex jtex-common (kanji-font fjhsmvaa)) (define-font fjhsmvaa ttf-kanji-common (font-file "f5ajchm9.ttf")) (define-font tfjhsmvaa.jtex jtex-tcommon (kanji-font tfjhsmvaa)) (define-font tfjhsmvaa ttf-kanji-common (font-file "f5ajchm9.ttf")) (define-font fjgotmaa.jtex jtex-common (kanji-font fjgotmaa)) (define-font fjgotmaa ttf-kanji-common (font-file "f5ajcfg3.ttf")) (define-font tfjgotmaa.jtex jtex-tcommon (kanji-font tfjgotmaa)) (define-font tfjgotmaa ttf-kanji-common (font-file "f5ajcfg3.ttf")) (define-font fjgotpaa.jtex jtex-common (kanji-font fjgotpaa)) (define-font fjgotpaa ttf-kanji-common (font-file "f5ajcfg7.ttf")) (define-font tfjgotpaa.jtex jtex-tcommon (kanji-font tfjgotpaa)) (define-font tfjgotpaa ttf-kanji-common (font-file "f5ajcfg7.ttf")) (define-font fjgotsaa.jtex jtex-common (kanji-font fjgotsaa)) (define-font fjgotsaa ttf-kanji-common (font-file "f5ajcfg9.ttf")) (define-font tfjgotsaa.jtex jtex-tcommon (kanji-font tfjgotsaa)) (define-font tfjgotsaa ttf-kanji-common (font-file "f5ajcfg9.ttf")) (define-font fjgotxaa.jtex jtex-common (kanji-font fjgotxaa)) (define-font fjgotxaa ttf-kanji-common (font-file "f5ajcfgd.ttf")) (define-font tfjgotxaa.jtex jtex-tcommon (kanji-font tfjgotxaa)) (define-font tfjgotxaa ttf-kanji-common (font-file "f5ajcfgd.ttf")) (define-font fjhsgpaa.jtex jtex-common (kanji-font fjhsgpaa)) (define-font fjhsgpaa ttf-kanji-common (font-file "f5ajchg5.ttf")) (define-font tfjhsgpaa.jtex jtex-tcommon (kanji-font tfjhsgpaa)) (define-font tfjhsgpaa ttf-kanji-common (font-file "f5ajchg5.ttf")) (define-font fjhsgsaa.jtex jtex-common (kanji-font fjhsgsaa)) (define-font fjhsgsaa ttf-kanji-common (font-file "f5ajchg7.ttf")) (define-font tfjhsgsaa.jtex jtex-tcommon (kanji-font tfjhsgsaa)) (define-font tfjhsgsaa ttf-kanji-common (font-file "f5ajchg7.ttf")) (define-font fjhsgvaa.jtex jtex-common (kanji-font fjhsgvaa)) (define-font fjhsgvaa ttf-kanji-common (font-file "f5ajchg9.ttf")) (define-font tfjhsgvaa.jtex jtex-tcommon (kanji-font tfjhsgvaa)) (define-font tfjhsgvaa ttf-kanji-common (font-file "f5ajchg9.ttf")) (define-font fjmrgmaa.jtex jtex-common (kanji-font fjmrgmaa)) (define-font fjmrgmaa ttf-kanji-common (font-file "f5ajcfr3.ttf")) (define-font tfjmrgmaa.jtex jtex-tcommon (kanji-font tfjmrgmaa)) (define-font tfjmrgmaa ttf-kanji-common (font-file "f5ajcfr3.ttf")) (define-font fjmrgpaa.jtex jtex-common (kanji-font fjmrgpaa)) (define-font fjmrgpaa ttf-kanji-common (font-file "f5ajcfr5.ttf")) (define-font tfjmrgpaa.jtex jtex-tcommon (kanji-font tfjmrgpaa)) (define-font tfjmrgpaa ttf-kanji-common (font-file "f5ajcfr5.ttf")) (define-font fjmrgsaa.jtex jtex-common (kanji-font fjmrgsaa)) (define-font fjmrgsaa ttf-kanji-common (font-file "f5ajcfr7.ttf")) (define-font tfjmrgsaa.jtex jtex-tcommon (kanji-font tfjmrgsaa)) (define-font tfjmrgsaa ttf-kanji-common (font-file "f5ajcfr7.ttf")) (define-font fjmrgxaa.jtex jtex-common (kanji-font fjmrgxaa)) (define-font fjmrgxaa ttf-kanji-common (font-file "f5ajcfrd.ttf")) (define-font tfjmrgxaa.jtex jtex-tcommon (kanji-font tfjmrgxaa)) (define-font tfjmrgxaa ttf-kanji-common (font-file "f5ajcfrd.ttf")) (define-font fjhrgoaa.jtex jtex-common (kanji-font fjhrgoaa)) (define-font fjhrgoaa ttf-kanji-common (font-file "f5ajchr4.ttf")) (define-font tfjhrgoaa.jtex jtex-tcommon (kanji-font tfjhrgoaa)) (define-font tfjhrgoaa ttf-kanji-common (font-file "f5ajchr4.ttf")) (define-font fjashxaa.jtex jtex-common (kanji-font fjashxaa)) (define-font fjashxaa ttf-kanji-common (font-file "f5ajckrh.ttf")) (define-font tfjashxaa.jtex jtex-tcommon (kanji-font tfjashxaa)) (define-font tfjashxaa ttf-kanji-common (font-file "f5ajckrh.ttf")) (define-font fjkykmaa.jtex jtex-common (kanji-font fjkykmaa)) (define-font fjkykmaa ttf-kanji-common (font-file "f5ajcky1.ttf")) (define-font tfjkykmaa.jtex jtex-tcommon (kanji-font tfjkykmaa)) (define-font tfjkykmaa ttf-kanji-common (font-file "f5ajcky1.ttf")) (define-font fjkykpaa.jtex jtex-common (kanji-font fjkykpaa)) (define-font fjkykpaa ttf-kanji-common (font-file "f5ajcky2.ttf")) (define-font tfjkykpaa.jtex jtex-tcommon (kanji-font tfjkykpaa)) (define-font tfjkykpaa ttf-kanji-common (font-file "f5ajcky2.ttf")) (define-font fjfdkmaa.jtex jtex-common (kanji-font fjfdkmaa)) (define-font fjfdkmaa ttf-kanji-common (font-file "f5ajcfdk.ttf")) (define-font tfjfdkmaa.jtex jtex-tcommon (kanji-font tfjfdkmaa)) (define-font tfjfdkmaa ttf-kanji-common (font-file "f5ajcfdk.ttf")) (define-font fjgykmaa.jtex jtex-common (kanji-font fjgykmaa)) (define-font fjgykmaa ttf-kanji-common (font-file "f5ajcgyk.ttf")) (define-font tfjgykmaa.jtex jtex-tcommon (kanji-font tfjgykmaa)) (define-font tfjgykmaa ttf-kanji-common (font-file "f5ajcgyk.ttf")) (define-font fjreipaa.jtex jtex-common (kanji-font fjreipaa)) (define-font fjreipaa ttf-kanji-common (font-file "f5ajcrei.ttf")) (define-font tfjreipaa.jtex jtex-tcommon (kanji-font tfjreipaa)) (define-font tfjreipaa ttf-kanji-common (font-file "f5ajcrei.ttf")) (define-font fjkedxaa.jtex jtex-common (kanji-font fjkedxaa)) (define-font fjkedxaa ttf-kanji-common (font-file "f5ajcked.ttf")) (define-font tfjkedxaa.jtex jtex-tcommon (kanji-font tfjkedxaa)) (define-font tfjkedxaa ttf-kanji-common (font-file "f5ajcked.ttf")) (define-font fjhigxaa.jtex jtex-common (kanji-font fjhigxaa)) (define-font fjhigxaa ttf-kanji-common (font-file "f5ajchig.ttf")) (define-font tfjhigxaa.jtex jtex-tcommon (kanji-font tfjhigxaa)) (define-font tfjhigxaa ttf-kanji-common (font-file "f5ajchig.ttf")) (define-font fjtrepaa.jtex jtex-common (kanji-font fjtrepaa)) (define-font fjtrepaa ttf-kanji-common (font-file "f5ajctre.ttf")) (define-font tfjtrepaa.jtex jtex-tcommon (kanji-font tfjtrepaa)) (define-font tfjtrepaa ttf-kanji-common (font-file "f5ajctre.ttf")) (define-font fjtkosaa.jtex jtex-common (kanji-font fjtkosaa)) (define-font fjtkosaa ttf-kanji-common (font-file "f5ajctko.ttf")) (define-font tfjtkosaa.jtex jtex-tcommon (kanji-font tfjtkosaa)) (define-font tfjtkosaa ttf-kanji-common (font-file "f5ajctko.ttf")) (define-font fjcpemaa.jtex jtex-common (kanji-font fjcpemaa)) (define-font fjcpemaa ttf-kanji-common (font-file "f5ajccpe.ttf")) (define-font tfjcpemaa.jtex jtex-tcommon (kanji-font tfjcpemaa)) (define-font tfjcpemaa ttf-kanji-common (font-file "f5ajccpe.ttf")) (define-font fjhikmaa.jtex jtex-common (kanji-font fjhikmaa)) (define-font fjhikmaa ttf-kanji-common (font-file "f5ajchik.ttf")) (define-font tfjhikmaa.jtex jtex-tcommon (kanji-font tfjhikmaa)) (define-font tfjhikmaa ttf-kanji-common (font-file "f5ajchik.ttf")) (define-font fjmarpaa.jtex jtex-common (kanji-font fjmarpaa)) (define-font fjmarpaa ttf-kanji-common (font-file "f5ajcmar.ttf")) (define-font tfjmarpaa.jtex jtex-tcommon (kanji-font tfjmarpaa)) (define-font tfjmarpaa ttf-kanji-common (font-file "f5ajcmar.ttf")) (define-font fjimapaa.jtex jtex-common (kanji-font fjimapaa)) (define-font fjimapaa ttf-kanji-common (font-file "f5ajci18.ttf")) (define-font tfjimapaa.jtex jtex-tcommon (kanji-font tfjimapaa)) (define-font tfjimapaa ttf-kanji-common (font-file "f5ajci18.ttf")) (define-font fjimbmaa.jtex jtex-common (kanji-font fjimbmaa)) (define-font fjimbmaa ttf-kanji-common (font-file "f5ajci25.ttf")) (define-font tfjimbmaa.jtex jtex-tcommon (kanji-font tfjimbmaa)) (define-font tfjimbmaa ttf-kanji-common (font-file "f5ajci25.ttf")) (define-font fjimcraa.jtex jtex-common (kanji-font fjimcraa)) (define-font fjimcraa ttf-kanji-common (font-file "f5ajci3a.ttf")) (define-font tfjimcraa.jtex jtex-tcommon (kanji-font tfjimcraa)) (define-font tfjimcraa ttf-kanji-common (font-file "f5ajci3a.ttf")) (define-font fjimdsaa.jtex jtex-common (kanji-font fjimdsaa)) (define-font fjimdsaa ttf-kanji-common (font-file "f5ajci47.ttf")) (define-font tfjimdsaa.jtex jtex-tcommon (kanji-font tfjimdsaa)) (define-font tfjimdsaa ttf-kanji-common (font-file "f5ajci47.ttf")) (define-font fjimevaa.jtex jtex-common (kanji-font fjimevaa)) (define-font fjimevaa ttf-kanji-common (font-file "f5ajci5d.ttf")) (define-font tfjimevaa.jtex jtex-tcommon (kanji-font tfjimevaa)) (define-font tfjimevaa ttf-kanji-common (font-file "f5ajci5d.ttf")) (define-font dfhsmmaa.jtex jtex-common (kanji-font dfhsmmaa)) (define-font dfhsmmaa ttf-kanji-common (font-file "dfhsmw3.ttc")) (define-font tdfhsmmaa.jtex jtex-tcommon (kanji-font tdfhsmmaa)) (define-font tdfhsmmaa ttf-kanji-common (font-file "dfhsmw3.ttc")) (define-font dfhsmpaa.jtex jtex-common (kanji-font dfhsmpaa)) (define-font dfhsmpaa ttf-kanji-common (font-file "dfhsmw5.ttc")) (define-font tdfhsmpaa.jtex jtex-tcommon (kanji-font tdfhsmpaa)) (define-font tdfhsmpaa ttf-kanji-common (font-file "dfhsmw5.ttc")) (define-font dfhsmsaa.jtex jtex-common (kanji-font dfhsmsaa)) (define-font dfhsmsaa ttf-kanji-common (font-file "dfhsmw7.ttc")) (define-font tdfhsmsaa.jtex jtex-tcommon (kanji-font tdfhsmsaa)) (define-font tdfhsmsaa ttf-kanji-common (font-file "dfhsmw7.ttc")) (define-font dfhsmvaa.jtex jtex-common (kanji-font dfhsmvaa)) (define-font dfhsmvaa ttf-kanji-common (font-file "dfhsmw9.ttc")) (define-font tdfhsmvaa.jtex jtex-tcommon (kanji-font tdfhsmvaa)) (define-font tdfhsmvaa ttf-kanji-common (font-file "dfhsmw9.ttc")) (define-font dfminzaa.jtex jtex-common (kanji-font dfminzaa)) (define-font dfminzaa ttf-kanji-common (font-file "dfminub.ttc")) (define-font tdfminzaa.jtex jtex-tcommon (kanji-font tdfminzaa)) (define-font tdfminzaa ttf-kanji-common (font-file "dfminub.ttc")) (define-font dfhsgmaa.jtex jtex-common (kanji-font dfhsgmaa)) (define-font dfhsgmaa ttf-kanji-common (font-file "dfhsgw3.ttc")) (define-font tdfhsgmaa.jtex jtex-tcommon (kanji-font tdfhsgmaa)) (define-font tdfhsgmaa ttf-kanji-common (font-file "dfhsgw3.ttc")) (define-font dfhsgpaa.jtex jtex-common (kanji-font dfhsgpaa)) (define-font dfhsgpaa ttf-kanji-common (font-file "dfhsgw5.ttc")) (define-font tdfhsgpaa.jtex jtex-tcommon (kanji-font tdfhsgpaa)) (define-font tdfhsgpaa ttf-kanji-common (font-file "dfhsgw5.ttc")) (define-font dfhsgsaa.jtex jtex-common (kanji-font dfhsgsaa)) (define-font dfhsgsaa ttf-kanji-common (font-file "dfhsgw7.ttc")) (define-font tdfhsgsaa.jtex jtex-tcommon (kanji-font tdfhsgsaa)) (define-font tdfhsgsaa ttf-kanji-common (font-file "dfhsgw7.ttc")) (define-font dfhsgvaa.jtex jtex-common (kanji-font dfhsgvaa)) (define-font dfhsgvaa ttf-kanji-common (font-file "dfhsgw9.ttc")) (define-font tdfhsgvaa.jtex jtex-tcommon (kanji-font tdfhsgvaa)) (define-font tdfhsgvaa ttf-kanji-common (font-file "dfhsgw9.ttc")) (define-font dfgotxaa.jtex jtex-common (kanji-font dfgotxaa)) (define-font dfgotxaa ttf-kanji-common (font-file "dfgoteb.ttc")) (define-font tdfgotxaa.jtex jtex-tcommon (kanji-font tdfgotxaa)) (define-font tdfgotxaa ttf-kanji-common (font-file "dfgoteb.ttc")) (define-font dfgotzaa.jtex jtex-common (kanji-font dfgotzaa)) (define-font dfgotzaa ttf-kanji-common (font-file "dfgotub.ttc")) (define-font tdfgotzaa.jtex jtex-tcommon (kanji-font tdfgotzaa)) (define-font tdfgotzaa ttf-kanji-common (font-file "dfgotub.ttc")) (define-font dfhrgoaa.jtex jtex-common (kanji-font dfhrgoaa)) (define-font dfhrgoaa ttf-kanji-common (font-file "dfhsrw4.ttc")) (define-font tdfhrgoaa.jtex jtex-tcommon (kanji-font tdfhrgoaa)) (define-font tdfhrgoaa ttf-kanji-common (font-file "dfhsrw4.ttc")) (define-font dfmrgmaa.jtex jtex-common (kanji-font dfmrgmaa)) (define-font dfmrgmaa ttf-kanji-common (font-file "dfmrglt.ttc")) (define-font tdfmrgmaa.jtex jtex-tcommon (kanji-font tdfmrgmaa)) (define-font tdfmrgmaa ttf-kanji-common (font-file "dfmrglt.ttc")) (define-font dfmrgpaa.jtex jtex-common (kanji-font dfmrgpaa)) (define-font dfmrgpaa ttf-kanji-common (font-file "dfmrgmd.ttc")) (define-font tdfmrgpaa.jtex jtex-tcommon (kanji-font tdfmrgpaa)) (define-font tdfmrgpaa ttf-kanji-common (font-file "dfmrgmd.ttc")) (define-font dfmrgsaa.jtex jtex-common (kanji-font dfmrgsaa)) (define-font dfmrgsaa ttf-kanji-common (font-file "dfmrgbd.ttc")) (define-font tdfmrgsaa.jtex jtex-tcommon (kanji-font tdfmrgsaa)) (define-font tdfmrgsaa ttf-kanji-common (font-file "dfmrgbd.ttc")) (define-font dfgyopaa.jtex jtex-common (kanji-font dfgyopaa)) (define-font dfgyopaa ttf-kanji-common (font-file "dfgyomd.ttc")) (define-font tdfgyopaa.jtex jtex-tcommon (kanji-font tdfgyopaa)) (define-font tdfgyopaa ttf-kanji-common (font-file "dfgyomd.ttc")) (define-font dfkaimaa.jtex jtex-common (kanji-font dfkaimaa)) (define-font dfkaimaa ttf-kanji-common (font-file "dfkailt.ttc")) (define-font tdfkaimaa.jtex jtex-tcommon (kanji-font tdfkaimaa)) (define-font tdfkaimaa ttf-kanji-common (font-file "dfkailt.ttc")) (define-font dfkaipaa.jtex jtex-common (kanji-font dfkaipaa)) (define-font dfkaipaa ttf-kanji-common (font-file "dfkaimd.ttc")) (define-font tdfkaipaa.jtex jtex-tcommon (kanji-font tdfkaipaa)) (define-font tdfkaipaa ttf-kanji-common (font-file "dfkaimd.ttc")) (define-font dfkairaa.jtex jtex-common (kanji-font dfkairaa)) (define-font dfkairaa ttf-kanji-common (font-file "dfkaisb.ttc")) (define-font tdfkairaa.jtex jtex-tcommon (kanji-font tdfkairaa)) (define-font tdfkairaa ttf-kanji-common (font-file "dfkaisb.ttc")) (define-font dfkaisaa.jtex jtex-common (kanji-font dfkaisaa)) (define-font dfkaisaa ttf-kanji-common (font-file "dfkaibd.ttc")) (define-font tdfkaisaa.jtex jtex-tcommon (kanji-font tdfkaisaa)) (define-font tdfkaisaa ttf-kanji-common (font-file "dfkaibd.ttc")) (define-font dfleipaa.jtex jtex-common (kanji-font dfleipaa)) (define-font dfleipaa ttf-kanji-common (font-file "dfleimd.ttc")) (define-font tdfleipaa.jtex jtex-tcommon (kanji-font tdfleipaa)) (define-font tdfleipaa ttf-kanji-common (font-file "dfleimd.ttc")) (define-font dfktrxaa.jtex jtex-common (kanji-font dfktrxaa)) (define-font dfktrxaa ttf-kanji-common (font-file "dfktrxb.ttc")) (define-font tdfktrxaa.jtex jtex-tcommon (kanji-font tdfktrxaa)) (define-font tdfktrxaa ttf-kanji-common (font-file "dfktrxb.ttc")) (define-font dfpopmaa.jtex jtex-common (kanji-font dfpopmaa)) (define-font dfpopmaa ttf-kanji-common (font-file "dfpopw3.ttc")) (define-font tdfpopmaa.jtex jtex-tcommon (kanji-font tdfpopmaa)) (define-font tdfpopmaa ttf-kanji-common (font-file "dfpopw3.ttc")) (define-font dfpoppaa.jtex jtex-common (kanji-font dfpoppaa)) (define-font dfpoppaa ttf-kanji-common (font-file "dfpopw5.ttc")) (define-font tdfpoppaa.jtex jtex-tcommon (kanji-font tdfpoppaa)) (define-font tdfpoppaa ttf-kanji-common (font-file "dfpopw5.ttc")) (define-font dfpopraa.jtex jtex-common (kanji-font dfpopraa)) (define-font dfpopraa ttf-kanji-common (font-file "dfpop1.ttc")) (define-font tdfpopraa.jtex jtex-tcommon (kanji-font tdfpopraa)) (define-font tdfpopraa ttf-kanji-common (font-file "dfpop1.ttc")) (define-font dfpopvaa.jtex jtex-common (kanji-font dfpopvaa)) (define-font dfpopvaa ttf-kanji-common (font-file "dfpopw9.ttc")) (define-font tdfpopvaa.jtex jtex-tcommon (kanji-font tdfpopvaa)) (define-font tdfpopvaa ttf-kanji-common (font-file "dfpopw9.ttc")) (define-font dfmrmpaa.jtex jtex-common (kanji-font dfmrmpaa)) (define-font dfmrmpaa ttf-kanji-common (font-file "dfmrmw3.ttc")) (define-font tdfmrmpaa.jtex jtex-tcommon (kanji-font tdfmrmpaa)) (define-font tdfmrmpaa ttf-kanji-common (font-file "dfmrmw3.ttc")) (define-font dfmrmmaa.jtex jtex-common (kanji-font dfmrmmaa)) (define-font dfmrmmaa ttf-kanji-common (font-file "dfmrmmd.ttc")) (define-font tdfmrmmaa.jtex jtex-tcommon (kanji-font tdfmrmmaa)) (define-font tdfmrmmaa ttf-kanji-common (font-file "dfmrmmd.ttc")) (define-font dfmrmsaa.jtex jtex-common (kanji-font dfmrmsaa)) (define-font dfmrmsaa ttf-kanji-common (font-file "dfmrmw7.ttc")) (define-font tdfmrmsaa.jtex jtex-tcommon (kanji-font tdfmrmsaa)) (define-font tdfmrmsaa ttf-kanji-common (font-file "dfmrmw7.ttc")) (define-font dfmrmvaa.jtex jtex-common (kanji-font dfmrmvaa)) (define-font dfmrmvaa ttf-kanji-common (font-file "dfmrmw9.ttc")) (define-font tdfmrmvaa.jtex jtex-tcommon (kanji-font tdfmrmvaa)) (define-font tdfmrmvaa ttf-kanji-common (font-file "dfmrmw9.ttc")) (define-font dfsokmaa.jtex jtex-common (kanji-font dfsokmaa)) (define-font dfsokmaa ttf-kanji-common (font-file "dfsokn3.ttc")) (define-font tdfsokmaa.jtex jtex-tcommon (kanji-font tdfsokmaa)) (define-font tdfsokmaa ttf-kanji-common (font-file "dfsokn3.ttc")) (define-font dfsgypaa.jtex jtex-common (kanji-font dfsgypaa)) (define-font dfsgypaa ttf-kanji-common (font-file "dfsgyo5.ttc")) (define-font tdfsgypaa.jtex jtex-tcommon (kanji-font tdfsgypaa)) (define-font tdfsgypaa ttf-kanji-common (font-file "dfsgyo5.ttc")) (define-font dfgihsaa.jtex jtex-common (kanji-font dfgihsaa)) (define-font dfgihsaa ttf-kanji-common (font-file "dfgihi7.ttc")) (define-font tdfgihsaa.jtex jtex-tcommon (kanji-font tdfgihsaa)) (define-font tdfgihsaa ttf-kanji-common (font-file "dfgihi7.ttc")) (define-font dfkykmaa.jtex jtex-common (kanji-font dfkykmaa)) (define-font dfkykmaa ttf-kanji-common (font-file "dfkyks3.ttc")) (define-font tdfkykmaa.jtex jtex-tcommon (kanji-font tdfkykmaa)) (define-font tdfkykmaa ttf-kanji-common (font-file "dfkyks3.ttc")) (define-font dfkykoaa.jtex jtex-common (kanji-font dfkykoaa)) (define-font dfkykoaa ttf-kanji-common (font-file "dfkyks4.ttc")) (define-font tdfkykoaa.jtex jtex-tcommon (kanji-font tdfkykoaa)) (define-font tdfkykoaa ttf-kanji-common (font-file "dfkyks4.ttc")) (define-font dftlepaa.jtex jtex-common (kanji-font dftlepaa)) (define-font dftlepaa ttf-kanji-common (font-file "dftlei5.ttc")) (define-font tdftlepaa.jtex jtex-tcommon (kanji-font tdftlepaa)) (define-font tdftlepaa ttf-kanji-common (font-file "dftlei5.ttc")) (define-font dftlesaa.jtex jtex-common (kanji-font dftlesaa)) (define-font dftlesaa ttf-kanji-common (font-file "dftlei7.ttc")) (define-font tdftlesaa.jtex jtex-tcommon (kanji-font tdftlesaa)) (define-font tdftlesaa ttf-kanji-common (font-file "dftlei7.ttc")) (define-font dftlevaa.jtex jtex-common (kanji-font dftlevaa)) (define-font dftlevaa ttf-kanji-common (font-file "dftlei9.ttc")) (define-font tdftlevaa.jtex jtex-tcommon (kanji-font tdftlevaa)) (define-font tdftlevaa ttf-kanji-common (font-file "dftlei9.ttc")) (define-font dfrulpaa.jtex jtex-common (kanji-font dfrulpaa)) (define-font dfrulpaa ttf-kanji-common (font-file "dfrule5.ttc")) (define-font tdfrulpaa.jtex jtex-tcommon (kanji-font tdfrulpaa)) (define-font tdfrulpaa ttf-kanji-common (font-file "dfrule5.ttc")) (define-font dfrulsaa.jtex jtex-common (kanji-font dfrulsaa)) (define-font dfrulsaa ttf-kanji-common (font-file "dfrule7.ttc")) (define-font tdfrulsaa.jtex jtex-tcommon (kanji-font tdfrulsaa)) (define-font tdfrulsaa ttf-kanji-common (font-file "dfrule7.ttc")) (define-font dfsumzaa.jtex jtex-common (kanji-font dfsumzaa)) (define-font dfsumzaa ttf-kanji-common (font-file "dfsumoc.ttc")) (define-font tdfsumzaa.jtex jtex-tcommon (kanji-font tdfsumzaa)) (define-font tdfsumzaa ttf-kanji-common (font-file "dfsumoc.ttc")) (define-font dfkoioaa.jtex jtex-common (kanji-font dfkoioaa)) (define-font dfkoioaa ttf-kanji-common (font-file "dfkoin4.ttc")) (define-font tdfkoioaa.jtex jtex-tcommon (kanji-font tdfkoioaa)) (define-font tdfkoioaa ttf-kanji-common (font-file "dfkoin4.ttc")) (define-font dfsogpaa.jtex jtex-common (kanji-font dfsogpaa)) (define-font dfsogpaa ttf-kanji-common (font-file "dfsoge5.ttc")) (define-font tdfsogpaa.jtex jtex-tcommon (kanji-font tdfsogpaa)) (define-font tdfsogpaa ttf-kanji-common (font-file "dfsoge5.ttc")) (define-font dfsogsaa.jtex jtex-common (kanji-font dfsogsaa)) (define-font dfsogsaa ttf-kanji-common (font-file "dfsoge7.ttc")) (define-font tdfsogsaa.jtex jtex-tcommon (kanji-font tdfsogsaa)) (define-font tdfsogsaa ttf-kanji-common (font-file "dfsoge7.ttc")) (define-font dfsogvaa.jtex jtex-common (kanji-font dfsogvaa)) (define-font dfsogvaa ttf-kanji-common (font-file "dfsoge9.ttc")) (define-font tdfsogvaa.jtex jtex-tcommon (kanji-font tdfsogvaa)) (define-font tdfsogvaa ttf-kanji-common (font-file "dfsoge9.ttc")) (define-font dfmipmaa.jtex jtex-common (kanji-font dfmipmaa)) (define-font dfmipmaa ttf-kanji-common (font-file "dfmimp3.ttc")) (define-font tdfmipmaa.jtex jtex-tcommon (kanji-font tdfmipmaa)) (define-font tdfmipmaa ttf-kanji-common (font-file "dfmimp3.ttc")) (define-font dfmippaa.jtex jtex-common (kanji-font dfmippaa)) (define-font dfmippaa ttf-kanji-common (font-file "dfmimp5.ttc")) (define-font tdfmippaa.jtex jtex-tcommon (kanji-font tdfmippaa)) (define-font tdfmippaa ttf-kanji-common (font-file "dfmimp5.ttc")) (define-font dfgopkaa.jtex jtex-common (kanji-font dfgopkaa)) (define-font dfgopkaa ttf-kanji-common (font-file "dfgotp2.ttc")) (define-font tdfgopkaa.jtex jtex-tcommon (kanji-font tdfgopkaa)) (define-font tdfgopkaa ttf-kanji-common (font-file "dfgotp2.ttc")) (define-font dfgopmaa.jtex jtex-common (kanji-font dfgopmaa)) (define-font dfgopmaa ttf-kanji-common (font-file "dfgotp3.ttc")) (define-font tdfgopmaa.jtex jtex-tcommon (kanji-font tdfgopmaa)) (define-font tdfgopmaa ttf-kanji-common (font-file "dfgotp3.ttc")) (define-font dfgoppaa.jtex jtex-common (kanji-font dfgoppaa)) (define-font dfgoppaa ttf-kanji-common (font-file "dfgotp5.ttc")) (define-font tdfgoppaa.jtex jtex-tcommon (kanji-font tdfgoppaa)) (define-font tdfgoppaa ttf-kanji-common (font-file "dfgotp5.ttc")) (define-font rcgyopaa.jtex jtex-common (kanji-font rcgyopaa)) (define-font rcgyopaa ttf-kanji-common (font-file "hgrgysj.ttc")) (define-font trcgyopaa.jtex jtex-tcommon (kanji-font trcgyopaa)) (define-font trcgyopaa ttf-kanji-common (font-file "hgrgysj.ttc")) (define-font rckykmaa.jtex jtex-common (kanji-font rckykmaa)) (define-font rckykmaa ttf-kanji-common (font-file "hgrkksj.ttc")) (define-font trckykmaa.jtex jtex-tcommon (kanji-font trckykmaa)) (define-font trckykmaa ttf-kanji-common (font-file "hgrkksj.ttc")) (define-font rckaipaa.jtex jtex-common (kanji-font rckaipaa)) (define-font rckaipaa ttf-kanji-common (font-file "hgrsksj.ttc")) (define-font trckaipaa.jtex jtex-tcommon (kanji-font trckaipaa)) (define-font trckaipaa ttf-kanji-common (font-file "hgrsksj.ttc")) (define-font rckkapaa.jtex jtex-common (kanji-font rckkapaa)) (define-font rckkapaa ttf-kanji-common (font-file "hgraksj.ttc")) (define-font trckkapaa.jtex jtex-tcommon (kanji-font trckkapaa)) (define-font trckkapaa ttf-kanji-common (font-file "hgraksj.ttc")) (define-font rchkgpaa.jtex jtex-common (kanji-font rchkgpaa)) (define-font rchkgpaa ttf-kanji-common (font-file "hgrhkgsj.ttc")) (define-font trchkgpaa.jtex jtex-tcommon (kanji-font trchkgpaa)) (define-font trchkgpaa ttf-kanji-common (font-file "hgrhkgsj.ttc")) (define-font rchkfsaa.jtex jtex-common (kanji-font rchkfsaa)) (define-font rchkfsaa ttf-kanji-common (font-file "hgrhkfsj.ttc")) (define-font trchkfsaa.jtex jtex-tcommon (kanji-font trchkfsaa)) (define-font trchkfsaa ttf-kanji-common (font-file "hgrhkfsj.ttc")) (define-font rctfkpaa.jtex jtex-common (kanji-font rctfkpaa)) (define-font rctfkpaa ttf-kanji-common (font-file "hgrbfksj.ttf")) (define-font trctfkpaa.jtex jtex-tcommon (kanji-font trctfkpaa)) (define-font trctfkpaa ttf-kanji-common (font-file "hgrbfksj.ttf")) (define-font rctrepaa.jtex jtex-common (kanji-font rctrepaa)) (define-font rctrepaa ttf-kanji-common (font-file "hgrbresj.ttf")) (define-font trctrepaa.jtex jtex-tcommon (kanji-font trctrepaa)) (define-font trctrepaa ttf-kanji-common (font-file "hgrbresj.ttf")) (define-font rchagmaa.jtex jtex-common (kanji-font rchagmaa)) (define-font rchagmaa ttf-kanji-common (font-file "hgrhalsj.ttf")) (define-font trchagmaa.jtex jtex-tcommon (kanji-font trchagmaa)) (define-font trchagmaa ttf-kanji-common (font-file "hgrhalsj.ttf")) (define-font rchagpaa.jtex jtex-common (kanji-font rchagpaa)) (define-font rchagpaa ttf-kanji-common (font-file "hgrhamsj.ttf")) (define-font trchagpaa.jtex jtex-tcommon (kanji-font trchagpaa)) (define-font trchagpaa ttf-kanji-common (font-file "hgrhamsj.ttf")) (define-font rchagsaa.jtex jtex-common (kanji-font rchagsaa)) (define-font rchagsaa ttf-kanji-common (font-file "hgrhabsj.ttf")) (define-font trchagsaa.jtex jtex-tcommon (kanji-font trchagsaa)) (define-font trchagsaa ttf-kanji-common (font-file "hgrhabsj.ttf")) (define-font rchagvaa.jtex jtex-common (kanji-font rchagvaa)) (define-font rchagvaa ttf-kanji-common (font-file "hgrhaesj.ttf")) (define-font trchagvaa.jtex jtex-tcommon (kanji-font trchagvaa)) (define-font trchagvaa ttf-kanji-common (font-file "hgrhaesj.ttf")) (define-font rcckssaa.jtex jtex-common (kanji-font rcckssaa)) (define-font rcckssaa ttf-kanji-common (font-file "hgrcksj.ttc")) (define-font trcckssaa.jtex jtex-tcommon (kanji-font trcckssaa)) (define-font trcckssaa ttf-kanji-common (font-file "hgrcksj.ttc")) (define-font rcspnmaa.jtex jtex-common (kanji-font rcspnmaa)) (define-font rcspnmaa ttf-kanji-common (font-file "hgrpn1sj.ttc")) (define-font trcspnmaa.jtex jtex-tcommon (kanji-font trcspnmaa)) (define-font trcspnmaa ttf-kanji-common (font-file "hgrpn1sj.ttc")) (define-font rchkpmaa.jtex jtex-common (kanji-font rchkpmaa)) (define-font rchkpmaa ttf-kanji-common (font-file "hgrhkpsj.ttc")) (define-font trchkpmaa.jtex jtex-tcommon (kanji-font trchkpmaa)) (define-font trchkpmaa ttf-kanji-common (font-file "hgrhkpsj.ttc")) (define-font rcppkvaa.jtex jtex-common (kanji-font rcppkvaa)) (define-font rcppkvaa ttf-kanji-common (font-file "hgrpp1sj.ttc")) (define-font trcppkvaa.jtex jtex-tcommon (kanji-font trcppkvaa)) (define-font trcppkvaa ttf-kanji-common (font-file "hgrpp1sj.ttc")) (define-font rcppmvaa.jtex jtex-common (kanji-font rcppmvaa)) (define-font rcppmvaa ttf-kanji-common (font-file "hgrpp2sj.ttc")) (define-font trcppmvaa.jtex jtex-tcommon (kanji-font trcppmvaa)) (define-font trcppmvaa ttf-kanji-common (font-file "hgrpp2sj.ttc")) (define-font rcaguxaa.jtex jtex-common (kanji-font rcaguxaa)) (define-font rcaguxaa ttf-kanji-common (font-file "hgragusj.ttc")) (define-font trcaguxaa.jtex jtex-tcommon (kanji-font trcaguxaa)) (define-font trcaguxaa ttf-kanji-common (font-file "hgragusj.ttc")) (define-font rcashxaa.jtex jtex-common (kanji-font rcashxaa)) (define-font rcashxaa ttf-kanji-common (font-file "hgrashsj.ttf")) (define-font trcashxaa.jtex jtex-tcommon (kanji-font trcashxaa)) (define-font trcashxaa ttf-kanji-common (font-file "hgrashsj.ttf")) (define-font rcapfxaa.jtex jtex-common (kanji-font rcapfxaa)) (define-font rcapfxaa ttf-kanji-common (font-file "hgrapsj.ttf")) (define-font trcapfxaa.jtex jtex-tcommon (kanji-font trcapfxaa)) (define-font trcapfxaa ttf-kanji-common (font-file "hgrapsj.ttf")) (define-font rcaplxaa.jtex jtex-common (kanji-font rcaplxaa)) (define-font rcaplxaa ttf-kanji-common (font-file "hgraplsj.ttf")) (define-font trcaplxaa.jtex jtex-tcommon (kanji-font trcaplxaa)) (define-font trcaplxaa ttf-kanji-common (font-file "hgraplsj.ttf")) (define-font rcapsxaa.jtex jtex-common (kanji-font rcapsxaa)) (define-font rcapsxaa ttf-kanji-common (font-file "hgrapssj.ttf")) (define-font trcapsxaa.jtex jtex-tcommon (kanji-font trcapsxaa)) (define-font trcapsxaa ttf-kanji-common (font-file "hgrapssj.ttf")) (define-font rckedxaa.jtex jtex-common (kanji-font rckedxaa)) (define-font rckedxaa ttf-kanji-common (font-file "hgrkrsj.ttc")) (define-font trckedxaa.jtex jtex-tcommon (kanji-font trckedxaa)) (define-font trckedxaa ttf-kanji-common (font-file "hgrkrsj.ttc")) (define-font rcaegxaa.jtex jtex-common (kanji-font rcaegxaa)) (define-font rcaegxaa ttf-kanji-common (font-file "hgraesj.ttf")) (define-font trcaegxaa.jtex jtex-tcommon (kanji-font trcaegxaa)) (define-font trcaegxaa ttf-kanji-common (font-file "hgraesj.ttf")) (define-font rcadhxaa.jtex jtex-common (kanji-font rcadhxaa)) (define-font rcadhxaa ttf-kanji-common (font-file "hgradhsj.ttc")) (define-font trcadhxaa.jtex jtex-tcommon (kanji-font trcadhxaa)) (define-font trcadhxaa ttf-kanji-common (font-file "hgradhsj.ttc")) (define-font rchigxaa.jtex jtex-common (kanji-font rchigxaa)) (define-font rchigxaa ttf-kanji-common (font-file "hgrah2sj.ttc")) (define-font trchigxaa.jtex jtex-tcommon (kanji-font trchigxaa)) (define-font trchigxaa ttf-kanji-common (font-file "hgrah2sj.ttc")) (define-font rcakgxaa.jtex jtex-common (kanji-font rcakgxaa)) (define-font rcakgxaa ttf-kanji-common (font-file "hgrakgsj.ttc")) (define-font trcakgxaa.jtex jtex-tcommon (kanji-font trcakgxaa)) (define-font trcakgxaa ttf-kanji-common (font-file "hgrakgsj.ttc")) (define-font rccremaa.jtex jtex-common (kanji-font rccremaa)) (define-font rccremaa ttf-kanji-common (font-file "hgrcresj.ttc")) (define-font trccremaa.jtex jtex-tcommon (kanji-font trccremaa)) (define-font trccremaa ttf-kanji-common (font-file "hgrcresj.ttc")) (define-font rccbkpaa.jtex jtex-common (kanji-font rccbkpaa)) (define-font rccbkpaa ttf-kanji-common (font-file "hgrcbsj.ttc")) (define-font trccbkpaa.jtex jtex-tcommon (kanji-font trccbkpaa)) (define-font trccbkpaa ttf-kanji-common (font-file "hgrcbsj.ttc")) (define-font rcamgvaa.jtex jtex-common (kanji-font rcamgvaa)) (define-font rcamgvaa ttf-kanji-common (font-file "hgramgsj.ttc")) (define-font trcamgvaa.jtex jtex-tcommon (kanji-font trcamgvaa)) (define-font trcamgvaa ttf-kanji-common (font-file "hgramgsj.ttc")) (define-font rcaigxaa.jtex jtex-common (kanji-font rcaigxaa)) (define-font rcaigxaa ttf-kanji-common (font-file "hgraigsj.ttc")) (define-font trcaigxaa.jtex jtex-tcommon (kanji-font trcaigxaa)) (define-font trcaigxaa ttf-kanji-common (font-file "hgraigsj.ttc")) (define-font rcaisxaa.jtex jtex-common (kanji-font rcaisxaa)) (define-font rcaisxaa ttf-kanji-common (font-file "hgraissj.ttc")) (define-font trcaisxaa.jtex jtex-tcommon (kanji-font trcaisxaa)) (define-font trcaisxaa ttf-kanji-common (font-file "hgraissj.ttc")) (define-font rctsexaa.jtex jtex-common (kanji-font rctsexaa)) (define-font rctsexaa ttf-kanji-common (font-file "hgrtsesj.ttc")) (define-font trctsexaa.jtex jtex-tcommon (kanji-font trctsexaa)) (define-font trctsexaa ttf-kanji-common (font-file "hgrtsesj.ttc")) (define-font rchmnmaa.jtex jtex-common (kanji-font rchmnmaa)) (define-font rchmnmaa ttf-kanji-common (font-file "hgrhm3sj.ttc")) (define-font trchmnmaa.jtex jtex-tcommon (kanji-font trchmnmaa)) (define-font trchmnmaa ttf-kanji-common (font-file "hgrhm3sj.ttc")) (define-font rchmnvaa.jtex jtex-common (kanji-font rchmnvaa)) (define-font rchmnvaa ttf-kanji-common (font-file "hgrhm9sj.ttc")) (define-font trchmnvaa.jtex jtex-tcommon (kanji-font trchmnvaa)) (define-font trchmnvaa ttf-kanji-common (font-file "hgrhm9sj.ttc")) (define-font rchgopaa.jtex jtex-common (kanji-font rchgopaa)) (define-font rchgopaa ttf-kanji-common (font-file "hgrhg5sj.ttc")) (define-font trchgopaa.jtex jtex-tcommon (kanji-font trchgopaa)) (define-font trchgopaa ttf-kanji-common (font-file "hgrhg5sj.ttc")) (define-font rchgovaa.jtex jtex-common (kanji-font rchgovaa)) (define-font rchgovaa ttf-kanji-common (font-file "hgrhg9sj.ttc")) (define-font trchgovaa.jtex jtex-tcommon (kanji-font trchgovaa)) (define-font trchgovaa ttf-kanji-common (font-file "hgrhg9sj.ttc")) (define-font rchglvaa.jtex jtex-common (kanji-font rchglvaa)) (define-font rchglvaa ttf-kanji-common (font-file "hgrg9lsj.ttf")) (define-font trchglvaa.jtex jtex-tcommon (kanji-font trchglvaa)) (define-font trchglvaa ttf-kanji-common (font-file "hgrg9lsj.ttf")) (define-font rchgsvaa.jtex jtex-common (kanji-font rchgsvaa)) (define-font rchgsvaa ttf-kanji-common (font-file "hgrg9ssj.ttf")) (define-font trchgsvaa.jtex jtex-tcommon (kanji-font trchgsvaa)) (define-font trchgsvaa ttf-kanji-common (font-file "hgrg9ssj.ttf")) (define-font rchrgoaa.jtex jtex-common (kanji-font rchrgoaa)) (define-font rchrgoaa ttf-kanji-common (font-file "hgrhr4sj.ttc")) (define-font trchrgoaa.jtex jtex-tcommon (kanji-font trchrgoaa)) (define-font trchrgoaa ttf-kanji-common (font-file "hgrhr4sj.ttc")) ;; ----------------------------------------------------------------- ;; (define-macro illust-common (font-class ascii-jtex-kanji) (kanji-font-magnification 0.95) (metric-adjustment-file "none.adj")) (define-macro illust-tcommon (font-class ascii-jtex-kanji) (kanji-font-magnification 0.95) (metric-adjustment-file "tnone.adj")) (define-font fjcsxmaa.jtex illust-common (kanji-font fjcsxmaa)) (define-font fjcsxmaa ttf-kanji-common (font-file "f5ajcsxx.ttf")) (define-font tfjcsxmaa.jtex illust-tcommon (kanji-font tfjcsxmaa)) (define-font tfjcsxmaa ttf-kanji-common (font-file "f5ajcsxx.ttf")) ;; ----------------------------------------------------------------- ;; Hangle (define-macro HangleTTF (font-class truetype) (dpi $TeX_DPI) (platform-id "microsoft") (character-set "KSC5601") (encoding "ISO2022")) (define-font dfheibd HangleTTF (font-file "dfheibd.ttf")) ;; ----------------------------------------------------------------- ;; Chinese (Traditional) (define-macro ChineseTradTTF (font-class truetype) (dpi $TeX_DPI) (platform-id "microsoft") (character-set "CNS11643") (encoding "ISO2022")) (define-font dffn_b5 ChineseTradTTF (font-file "dffn_b5.ttc")) (define-font dffn_k5 ChineseTradTTF (font-file "dffn_k5.ttc")) (define-font dffn_m3 ChineseTradTTF (font-file "dffn_m3.ttc")) (define-font dffn_r3 ChineseTradTTF (font-file "dffn_r3.ttc")) ;; ----------------------------------------------------------------- ;; Chinese (Simplified) (define-macro ChineseSimpTTF (font-class truetype) (dpi $TeX_DPI) (platform-id "microsoft") (character-set "GB2312") (encoding "ISO2022")) (define-font dgbn_b6 ChineseSimpTTF (font-file "dgbn_b6.ttf")) (define-font dgbn_f6 ChineseSimpTTF (font-file "dgbn_f6.ttf")) (define-font dgbn_k6 ChineseSimpTTF (font-file "dgbn_k6.ttf")) (define-font dgbn_m6 ChineseSimpTTF (font-file "dgbn_m6.ttf")) ;; ----------------------------------------------------------------- ;; * Optional Kanji fonts (ekan10??, ekan20??, and ekan30??) are defined ;; to use ekan0010.d24, ekan0020.d24, and ekan0030.d24 font files, ;; respectively. ;; * See $VFLIB/ascii-jtex/eKanji/ directory for macro definition files ;; to use these fonts. (You must install macro packages and TFM files.) ;; ;; Definitions for "ekan10??.pk" ;; (define-macro ekan10-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "ekanji.adj")) (define-font ekan1000.jtex ekan10-common (kanji-font ek1000)) (define-font ekan1001.jtex ekan10-common (kanji-font ek1001)) (define-font ekan1002.jtex ekan10-common (kanji-font ek1002)) (define-font ekan1003.jtex ekan10-common (kanji-font ek1003)) (define-font ekan1004.jtex ekan10-common (kanji-font ek1004)) (define-macro ek10-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0010.d24")) (define-font ek1000 ek10-common (mock-font-encoding subblocks-94x60 0)) (define-font ek1001 ek10-common (mock-font-encoding subblocks-94x60 1)) (define-font ek1002 ek10-common (mock-font-encoding subblocks-94x60 2)) (define-font ek1003 ek10-common (mock-font-encoding subblocks-94x60 3)) (define-font ek1004 ek10-common (mock-font-encoding subblocks-94x60 4)) ;; ;; Definitions for "ekan20??.pk" ;; (define-macro ekan20-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "ekanji.adj")) (define-font ekan2000.jtex ekan20-common (kanji-font ek2000)) (define-font ekan2001.jtex ekan20-common (kanji-font ek2001)) (define-font ekan2002.jtex ekan20-common (kanji-font ek2002)) (define-font ekan2003.jtex ekan20-common (kanji-font ek2003)) (define-font ekan2004.jtex ekan20-common (kanji-font ek2004)) (define-font ekan2005.jtex ekan20-common (kanji-font ek2005)) (define-font ekan2006.jtex ekan20-common (kanji-font ek2006)) (define-font ekan2007.jtex ekan20-common (kanji-font ek2007)) (define-font ekan2008.jtex ekan20-common (kanji-font ek2008)) (define-macro ek20-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0020.d24")) (define-font ek2000 ek20-common (mock-font-encoding subblocks-94x60 0)) (define-font ek2001 ek20-common (mock-font-encoding subblocks-94x60 1)) (define-font ek2002 ek20-common (mock-font-encoding subblocks-94x60 2)) (define-font ek2003 ek20-common (mock-font-encoding subblocks-94x60 3)) (define-font ek2004 ek20-common (mock-font-encoding subblocks-94x60 4)) (define-font ek2005 ek20-common (mock-font-encoding subblocks-94x60 5)) (define-font ek2006 ek20-common (mock-font-encoding subblocks-94x60 6)) (define-font ek2007 ek20-common (mock-font-encoding subblocks-94x60 7)) (define-font ek2008 ek20-common (mock-font-encoding subblocks-94x60 8)) ;; ;; Definitions for "ekan30??.pk" ;; (define-macro ekan30-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "ekanji.adj")) (define-font ekan3000.jtex ekan30-common (kanji-font ek3000)) (define-font ekan3001.jtex ekan30-common (kanji-font ek3001)) (define-font ekan3002.jtex ekan30-common (kanji-font ek3002)) (define-font ekan3003.jtex ekan30-common (kanji-font ek3003)) (define-font ekan3004.jtex ekan30-common (kanji-font ek3004)) (define-font ekan3005.jtex ekan30-common (kanji-font ek3005)) (define-font ekan3006.jtex ekan30-common (kanji-font ek3006)) (define-font ekan3007.jtex ekan30-common (kanji-font ek3007)) (define-font ekan3008.jtex ekan30-common (kanji-font ek3008)) (define-macro ek30-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0030.d24")) (define-font ek3000 ek30-common (mock-font-encoding subblocks-94x60 0)) (define-font ek3001 ek30-common (mock-font-encoding subblocks-94x60 1)) (define-font ek3002 ek30-common (mock-font-encoding subblocks-94x60 2)) (define-font ek3003 ek30-common (mock-font-encoding subblocks-94x60 3)) (define-font ek3004 ek30-common (mock-font-encoding subblocks-94x60 4)) (define-font ek3005 ek30-common (mock-font-encoding subblocks-94x60 5)) (define-font ek3006 ek30-common (mock-font-encoding subblocks-94x60 6)) (define-font ek3007 ek30-common (mock-font-encoding subblocks-94x60 7)) (define-font ek3008 ek30-common (mock-font-encoding subblocks-94x60 8)) ;; ----------------------------------------------------------------- ;; PostScript fonts in DVI ;; Generated by 'vfltexps' program from psfonts.map file (define-font rpagk (font-class type1) (font-file "AvantGarde-Book")) (define-font rpagko (font-class type1) (font-file "AvantGarde-BookOblique")) (define-font rpagd (font-class type1) (font-file "AvantGarde-Demi")) (define-font rpagdo (font-class type1) (font-file "AvantGarde-DemiOblique")) (define-font rpbkl (font-class type1) (font-file "Bookman-Light")) (define-font rpbkli (font-class type1) (font-file "Bookman-LightItalic")) (define-font rpbkd (font-class type1) (font-file "Bookman-Demi")) (define-font rpbkdi (font-class type1) (font-file "Bookman-DemiItalic")) (define-font rpcrr (font-class type1) (font-file "Courier")) (define-font rpcrro (font-class type1) (font-file "Courier-Oblique")) (define-font rpcrb (font-class type1) (font-file "Courier-Bold")) (define-font rpcrbo (font-class type1) (font-file "Courier-BoldOblique")) (define-font rphvr (font-class type1) (font-file "Helvetica")) (define-font rphvro (font-class type1) (font-file "Helvetica-Oblique")) (define-font rphvb (font-class type1) (font-file "Helvetica-Bold")) (define-font rphvbo (font-class type1) (font-file "Helvetica-BoldOblique")) (define-font rphvrrn (font-class type1) (font-file "Helvetica") (aspect-ratio 0.820)) (define-font rphvron (font-class type1) (font-file "Helvetica-Oblique") (aspect-ratio 0.820)) (define-font rphvbrn (font-class type1) (font-file "Helvetica-Bold") (aspect-ratio 0.820)) (define-font rphvbon (font-class type1) (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820)) (define-font rpncr (font-class type1) (font-file "NewCenturySchlbk-Roman")) (define-font rpncri (font-class type1) (font-file "NewCenturySchlbk-Italic")) (define-font rpncb (font-class type1) (font-file "NewCenturySchlbk-Bold")) (define-font rpncbi (font-class type1) (font-file "NewCenturySchlbk-BoldItalic")) (define-font rpplr (font-class type1) (font-file "Palatino-Roman")) (define-font rpplri (font-class type1) (font-file "Palatino-Italic")) (define-font rpplro (font-class type1) (font-file "Palatino-Roman") (slant-factor 0.167)) (define-font rpplb (font-class type1) (font-file "Palatino-Bold")) (define-font rpplbi (font-class type1) (font-file "Palatino-BoldItalic")) (define-font rpplbu (font-class type1) (font-file "Palatino-BoldItalic") (slant-factor -0.176)) (define-font rpplru (font-class type1) (font-file "Palatino-Italic") (slant-factor -0.176)) (define-font rpplrrn (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 0.820)) (define-font rpplrre (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 1.200)) (define-font psyr (font-class type1) (font-file "Symbol")) (define-font rpsyr (font-class type1) (font-file "Symbol")) (define-font psyro (font-class type1) (font-file "Symbol") (slant-factor 0.167)) (define-font rpsyro (font-class type1) (font-file "Symbol") (slant-factor 0.167)) (define-font rptmr (font-class type1) (font-file "Times-Roman")) (define-font rptmri (font-class type1) (font-file "Times-Italic")) (define-font rptmro (font-class type1) (font-file "Times-Roman") (slant-factor 0.167)) (define-font rptmb (font-class type1) (font-file "Times-Bold")) (define-font rptmbi (font-class type1) (font-file "Times-BoldItalic")) (define-font rptmbo (font-class type1) (font-file "Times-Bold") (slant-factor 0.167)) (define-font rptmrrn (font-class type1) (font-file "Times-Roman") (aspect-ratio 0.800)) (define-font rptmrre (font-class type1) (font-file "Times-Roman") (aspect-ratio 1.200)) (define-font pzdr (font-class type1) (font-file "ZapfDingbats")) (define-font rpzdr (font-class type1) (font-file "ZapfDingbats")) (define-font rpzcmi (font-class type1) (font-file "ZapfChancery-MediumItalic")) (define-font rputr (font-class type1) (font-file "putr.pfa")) (define-font rputri (font-class type1) (font-file "putri.pfa")) (define-font rputb (font-class type1) (font-file "putb.pfa")) (define-font rputbi (font-class type1) (font-file "putbi.pfa")) (define-font rbchr (font-class type1) (font-file "bchr.pfb")) (define-font rbchri (font-class type1) (font-file "bchri.pfb")) (define-font rbchb (font-class type1) (font-file "bchb.pfb")) (define-font rbchbi (font-class type1) (font-file "bchbi.pfb")) (define-font ruaqrrc (font-class type1) (font-file "uaqrrc.pfa")) (define-font rugqb (font-class type1) (font-file "ugqb.pfa")) (define-font runmr (font-class type1) (font-file "unmr.pfa")) (define-font runmrs (font-class type1) (font-file "unmrs.pfa")) (define-font hlcr5s (font-class type1) (font-file "hlcr5s.pfa")) (define-font hlcr5as (font-class type1) (font-file "hlcr5as.pfa")) (define-font rpaab (font-class type1) (font-file "paab.pfa")) (define-font rpadr (font-class type1) (font-file "padr.pfa")) (define-font rpadri (font-class type1) (font-file "padri.pfa")) (define-font rpads (font-class type1) (font-file "pads.pfa")) (define-font rpadsi (font-class type1) (font-file "padsi.pfa")) (define-font rpadb (font-class type1) (font-file "padb.pfa")) (define-font rpadbi (font-class type1) (font-file "padbi.pfa")) (define-font rpadrd (font-class type1) (font-file "padrd.pfa")) (define-font rpadrx (font-class type1) (font-file "padrx.pfa")) (define-font rpadrix (font-class type1) (font-file "padrix.pfa")) (define-font rpadsx (font-class type1) (font-file "padsx.pfa")) (define-font rpadbx (font-class type1) (font-file "padbx.pfa")) (define-font rpadbix (font-class type1) (font-file "padbix.pfa")) (define-font rpbdr (font-class type1) (font-file "pbdr.pfa")) (define-font rpbdri (font-class type1) (font-file "pbdri.pfa")) (define-font rpbdb (font-class type1) (font-file "pbdb.pfa")) (define-font rpbdbi (font-class type1) (font-file "pbdbi.pfa")) (define-font rpbdp (font-class type1) (font-file "pbdp.pfa")) (define-font rpburw (font-class type1) (font-file "pburw.pfa")) (define-font rpc5r (font-class type1) (font-file "pc5r.pfa")) (define-font rpc5ri (font-class type1) (font-file "pc5ri.pfa")) (define-font rpc3r (font-class type1) (font-file "pc3r.pfa")) (define-font rpc3ri (font-class type1) (font-file "pc3ri.pfa")) (define-font rphvrrc (font-class type1) (font-file "phvrrc.pfa")) (define-font rphvroc (font-class type1) (font-file "phvroc.pfa")) (define-font rphvbrc (font-class type1) (font-file "phvbrc.pfa")) (define-font rphvboc (font-class type1) (font-file "phvboc.pfa")) (define-font rpubr (font-class type1) (font-file "pubr.pfa")) (define-font rpubri (font-class type1) (font-file "pubri.pfa")) (define-font rpubb (font-class type1) (font-file "pubb.pfa")) (define-font rpubbi (font-class type1) (font-file "pubbi.pfa")) (define-font rplbk (font-class type1) (font-file "plbk.pfa")) (define-font rplbko (font-class type1) (font-file "plbko.pfa")) (define-font rplbd (font-class type1) (font-file "plbd.pfa")) (define-font rplbdo (font-class type1) (font-file "plbdo.pfa")) (define-font rpsvl (font-class type1) (font-file "psvl.pfa")) (define-font rpsvli (font-class type1) (font-file "psvli.pfa")) (define-font rpsvd (font-class type1) (font-file "psvd.pfa")) (define-font rpsvdi (font-class type1) (font-file "psvdi.pfa")) (define-font rphbr (font-class type1) (font-file "phbr.pfa")) (define-font rpslr (font-class type1) (font-file "pslr.pfa")) (define-font rplcr (font-class type1) (font-file "plcr.pfa")) (define-font rplcri (font-class type1) (font-file "plcri.pfa")) (define-font rplcro (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167)) (define-font rplcb (font-class type1) (font-file "plcb.pfa")) (define-font rplcbi (font-class type1) (font-file "plcbi.pfa")) (define-font rplcrs (font-class type1) (font-file "plcrs.pfa")) (define-font rplcris (font-class type1) (font-file "plcris.pfa")) (define-font rplcbs (font-class type1) (font-file "plcbs.pfa")) (define-font rplcbis (font-class type1) (font-file "plcbis.pfa")) (define-font rplcrb (font-class type1) (font-file "plcrb.pfa")) (define-font rplcrbi (font-class type1) (font-file "plcrbi.pfa")) (define-font rplcbb (font-class type1) (font-file "plcbb.pfa")) (define-font rplcrst (font-class type1) (font-file "plcrst.pfa")) (define-font rplcrm (font-class type1) (font-file "plcrm.pfa")) (define-font rplcrv (font-class type1) (font-file "plcrv.pfa")) (define-font rplcry (font-class type1) (font-file "plcry.pfa")) (define-font rylhr (font-class type1) (font-file "ylhr.pfb")) (define-font lbr (font-class type1) (font-file "lbr.pfb")) (define-font rylhri (font-class type1) (font-file "ylhri.pfb")) (define-font lbi (font-class type1) (font-file "lbi.pfb")) (define-font rylhro (font-class type1) (font-file "ylhro.pfb")) (define-font lbsl (font-class type1) (font-file "lbsl.pfb")) (define-font rylhd (font-class type1) (font-file "ylhd.pfb")) (define-font lbd (font-class type1) (font-file "lbd.pfb")) (define-font rylhdi (font-class type1) (font-file "ylhdi.pfb")) (define-font lbdi (font-class type1) (font-file "lbdi.pfb")) (define-font rylcrs (font-class type1) (font-file "ylcrs.pfb")) (define-font lsr (font-class type1) (font-file "lsr.pfb")) (define-font rylcds (font-class type1) (font-file "ylcds.pfb")) (define-font lsd (font-class type1) (font-file "lsd.pfb")) (define-font rylcdis (font-class type1) (font-file "ylcdis.pfb")) (define-font lsdi (font-class type1) (font-file "lsdi.pfb")) (define-font rylcrst (font-class type1) (font-file "ylcrst.pfb")) (define-font lstr (font-class type1) (font-file "lstr.pfb")) (define-font rylcrost (font-class type1) (font-file "ylcrost.pfb")) (define-font lsto (font-class type1) (font-file "lsto.pfb")) (define-font rylcbst (font-class type1) (font-file "ylcbst.pfb")) (define-font lstb (font-class type1) (font-file "lstb.pfb")) (define-font rylcbost (font-class type1) (font-file "ylcbost.pfb")) (define-font lstbo (font-class type1) (font-file "lstbo.pfb")) (define-font rylcr4 (font-class type1) (font-file "ylcr4.pfb")) (define-font lfr (font-class type1) (font-file "lfr.pfb")) (define-font rylcr4i (font-class type1) (font-file "ylcr4i.pfb")) (define-font lfi (font-class type1) (font-file "lfi.pfb")) (define-font rylcd4 (font-class type1) (font-file "ylcd4.pfb")) (define-font lfd (font-class type1) (font-file "lfd.pfb")) (define-font rylcd4i (font-class type1) (font-file "ylcd4i.pfb")) (define-font lfdi (font-class type1) (font-file "lfdi.pfb")) (define-font rylcrf (font-class type1) (font-file "ylcrf.pfb")) (define-font lbl (font-class type1) (font-file "lbl.pfb")) (define-font rylcrihw (font-class type1) (font-file "ylcrihw.pfb")) (define-font lbh (font-class type1) (font-file "lbh.pfb")) (define-font rylcris (font-class type1) (font-file "ylcris.pfb")) (define-font lsi (font-class type1) (font-file "lsi.pfb")) (define-font rylcriw (font-class type1) (font-file "ylcriw.pfb")) (define-font lbc (font-class type1) (font-file "lbc.pfb")) (define-font rcggr (font-class type1) (font-file "cggr.pfa")) (define-font rcggri (font-class type1) (font-file "cggri.pfa")) (define-font rcggb (font-class type1) (font-file "cggb.pfa")) (define-font rcggbi (font-class type1) (font-file "cggbi.pfa")) (define-font rcshr (font-class type1) (font-file "cshr.pfa")) (define-font rcshro (font-class type1) (font-file "cshro.pfa")) (define-font rcshb (font-class type1) (font-file "cshb.pfa")) (define-font rcshx (font-class type1) (font-file "cshx.pfa")) (define-font bchbo8r (font-class type1) (font-file "bchb.pfa") (slant-factor 0.167)) (define-font bchro8r (font-class type1) (font-file "bchr.pfa") (slant-factor 0.167)) (define-font pbkdo8r (font-class type1) (font-file "Bookman-Demi") (slant-factor 0.167)) (define-font pbklo8r (font-class type1) (font-file "Bookman-Light") (slant-factor 0.167)) (define-font pncbo8r (font-class type1) (font-file "NewCenturySchlbk-Bold") (slant-factor 0.167)) (define-font pncro8r (font-class type1) (font-file "NewCenturySchlbk-Roman") (slant-factor 0.167)) (define-font pplbo8r (font-class type1) (font-file "Palatino-Bold") (slant-factor 0.167)) (define-font putbo8r (font-class type1) (font-file "putb8r.pfa") (slant-factor 0.167)) (define-font putro8r (font-class type1) (font-file "putr.pfa") (slant-factor 0.167)) (define-font pagk8r (font-class type1) (font-file "AvantGarde-Book") (encoding-vector "8r.enc")) (define-font pagko8r (font-class type1) (font-file "AvantGarde-BookOblique") (encoding-vector "8r.enc")) (define-font pagd8r (font-class type1) (font-file "AvantGarde-Demi") (encoding-vector "8r.enc")) (define-font pagdo8r (font-class type1) (font-file "AvantGarde-DemiOblique") (encoding-vector "8r.enc")) (define-font pbkl8r (font-class type1) (font-file "Bookman-Light") (encoding-vector "8r.enc")) (define-font pbkli8r (font-class type1) (font-file "Bookman-LightItalic") (encoding-vector "8r.enc")) (define-font pbkd8r (font-class type1) (font-file "Bookman-Demi") (encoding-vector "8r.enc")) (define-font pbkdi8r (font-class type1) (font-file "Bookman-DemiItalic") (encoding-vector "8r.enc")) (define-font pcrr8r (font-class type1) (font-file "Courier") (encoding-vector "8r.enc")) (define-font pcrro8r (font-class type1) (font-file "Courier-Oblique") (encoding-vector "8r.enc")) (define-font pcrb8r (font-class type1) (font-file "Courier-Bold") (encoding-vector "8r.enc")) (define-font pcrbo8r (font-class type1) (font-file "Courier-BoldOblique") (encoding-vector "8r.enc")) (define-font phvr8r (font-class type1) (font-file "Helvetica") (encoding-vector "8r.enc")) (define-font phvro8r (font-class type1) (font-file "Helvetica-Oblique") (encoding-vector "8r.enc")) (define-font phvb8r (font-class type1) (font-file "Helvetica-Bold") (encoding-vector "8r.enc")) (define-font phvbo8r (font-class type1) (font-file "Helvetica-BoldOblique") (encoding-vector "8r.enc")) (define-font phvrrn8r (font-class type1) (font-file "Helvetica") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvron8r (font-class type1) (font-file "Helvetica-Oblique") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvbrn8r (font-class type1) (font-file "Helvetica-Bold") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvbon8r (font-class type1) (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font pncr8r (font-class type1) (font-file "NewCenturySchlbk-Roman") (encoding-vector "8r.enc")) (define-font pncri8r (font-class type1) (font-file "NewCenturySchlbk-Italic") (encoding-vector "8r.enc")) (define-font pncb8r (font-class type1) (font-file "NewCenturySchlbk-Bold") (encoding-vector "8r.enc")) (define-font pncbi8r (font-class type1) (font-file "NewCenturySchlbk-BoldItalic") (encoding-vector "8r.enc")) (define-font pplr8r (font-class type1) (font-file "Palatino-Roman") (encoding-vector "8r.enc")) (define-font pplri8r (font-class type1) (font-file "Palatino-Italic") (encoding-vector "8r.enc")) (define-font pplro8r (font-class type1) (font-file "Palatino-Roman") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font pplb8r (font-class type1) (font-file "Palatino-Bold") (encoding-vector "8r.enc")) (define-font pplbi8r (font-class type1) (font-file "Palatino-BoldItalic") (encoding-vector "8r.enc")) (define-font pplbu8r (font-class type1) (font-file "Palatino-BoldItalic") (slant-factor -0.176) (encoding-vector "8r.enc")) (define-font pplru8r (font-class type1) (font-file "Palatino-Italic") (slant-factor -0.176) (encoding-vector "8r.enc")) (define-font pplrrn8r (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font pplrre8r (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 1.200) (encoding-vector "8r.enc")) (define-font ptmr8r (font-class type1) (font-file "Times-Roman") (encoding-vector "8r.enc")) (define-font ptmri8r (font-class type1) (font-file "Times-Italic") (encoding-vector "8r.enc")) (define-font ptmro8r (font-class type1) (font-file "Times-Roman") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font ptmb8r (font-class type1) (font-file "Times-Bold") (encoding-vector "8r.enc")) (define-font ptmbi8r (font-class type1) (font-file "Times-BoldItalic") (encoding-vector "8r.enc")) (define-font ptmbo8r (font-class type1) (font-file "Times-Bold") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font ptmrrn8r (font-class type1) (font-file "Times-Roman") (aspect-ratio 0.800) (encoding-vector "8r.enc")) (define-font ptmrre8r (font-class type1) (font-file "Times-Roman") (aspect-ratio 1.200) (encoding-vector "8r.enc")) (define-font pzcmi8r (font-class type1) (font-file "ZapfChancery-MediumItalic") (encoding-vector "8r.enc")) (define-font putr8r (font-class type1) (font-file "putr.pfa") (encoding-vector "8r.enc")) (define-font putri8r (font-class type1) (font-file "putri.pfa") (encoding-vector "8r.enc")) (define-font putb8r (font-class type1) (font-file "putb.pfa") (encoding-vector "8r.enc")) (define-font putbi8r (font-class type1) (font-file "putbi.pfa") (encoding-vector "8r.enc")) (define-font bchr8r (font-class type1) (font-file "bchr.pfb") (encoding-vector "8r.enc")) (define-font bchri8r (font-class type1) (font-file "bchri.pfb") (encoding-vector "8r.enc")) (define-font bchb8r (font-class type1) (font-file "bchb.pfb") (encoding-vector "8r.enc")) (define-font bchbi8r (font-class type1) (font-file "bchbi.pfb") (encoding-vector "8r.enc")) (define-font uaqrrc8r (font-class type1) (font-file "uaqrrc.pfa") (encoding-vector "8r.enc")) (define-font ugqb8r (font-class type1) (font-file "ugqb.pfa") (encoding-vector "8r.enc")) (define-font unmr8r (font-class type1) (font-file "unmr.pfa") (encoding-vector "8r.enc")) (define-font unmrs8r (font-class type1) (font-file "unmrs.pfa") (encoding-vector "8r.enc")) (define-font paab8r (font-class type1) (font-file "paab.pfa") (encoding-vector "8r.enc")) (define-font padr8r (font-class type1) (font-file "padr.pfa") (encoding-vector "8r.enc")) (define-font padri8r (font-class type1) (font-file "padri.pfa") (encoding-vector "8r.enc")) (define-font pads8r (font-class type1) (font-file "pads.pfa") (encoding-vector "8r.enc")) (define-font padsi8r (font-class type1) (font-file "padsi.pfa") (encoding-vector "8r.enc")) (define-font padb8r (font-class type1) (font-file "padb.pfa") (encoding-vector "8r.enc")) (define-font padbi8r (font-class type1) (font-file "padbi.pfa") (encoding-vector "8r.enc")) (define-font padrd8r (font-class type1) (font-file "padrd.pfa") (encoding-vector "8r.enc")) (define-font padrx8r (font-class type1) (font-file "padrx.pfa") (encoding-vector "8r.enc")) (define-font padrix8r (font-class type1) (font-file "padrix.pfa") (encoding-vector "8r.enc")) (define-font padsx8r (font-class type1) (font-file "padsx.pfa") (encoding-vector "8r.enc")) (define-font padbx8r (font-class type1) (font-file "padbx.pfa") (encoding-vector "8r.enc")) (define-font padbix8r (font-class type1) (font-file "padbix.pfa") (encoding-vector "8r.enc")) (define-font pbdr8r (font-class type1) (font-file "pbdr.pfa") (encoding-vector "8r.enc")) (define-font pbdri8r (font-class type1) (font-file "pbdri.pfa") (encoding-vector "8r.enc")) (define-font pbdb8r (font-class type1) (font-file "pbdb.pfa") (encoding-vector "8r.enc")) (define-font pbdbi8r (font-class type1) (font-file "pbdbi.pfa") (encoding-vector "8r.enc")) (define-font pbdp8r (font-class type1) (font-file "pbdp.pfa") (encoding-vector "8r.enc")) (define-font pburw8r (font-class type1) (font-file "pburw.pfa") (encoding-vector "8r.enc")) (define-font pc5r8r (font-class type1) (font-file "pc5r.pfa") (encoding-vector "8r.enc")) (define-font pc5ri8r (font-class type1) (font-file "pc5ri.pfa") (encoding-vector "8r.enc")) (define-font pc3r8r (font-class type1) (font-file "pc3r.pfa") (encoding-vector "8r.enc")) (define-font pc3ri8r (font-class type1) (font-file "pc3ri.pfa") (encoding-vector "8r.enc")) (define-font phvrrc8r (font-class type1) (font-file "phvrrc.pfa") (encoding-vector "8r.enc")) (define-font phvroc8r (font-class type1) (font-file "phvroc.pfa") (encoding-vector "8r.enc")) (define-font phvbrc8r (font-class type1) (font-file "phvbrc.pfa") (encoding-vector "8r.enc")) (define-font phvboc8r (font-class type1) (font-file "phvboc.pfa") (encoding-vector "8r.enc")) (define-font pubr8r (font-class type1) (font-file "pubr.pfa") (encoding-vector "8r.enc")) (define-font pubri8r (font-class type1) (font-file "pubri.pfa") (encoding-vector "8r.enc")) (define-font pubb8r (font-class type1) (font-file "pubb.pfa") (encoding-vector "8r.enc")) (define-font pubbi8r (font-class type1) (font-file "pubbi.pfa") (encoding-vector "8r.enc")) (define-font plbk8r (font-class type1) (font-file "plbk.pfa") (encoding-vector "8r.enc")) (define-font plbko8r (font-class type1) (font-file "plbko.pfa") (encoding-vector "8r.enc")) (define-font plbd8r (font-class type1) (font-file "plbd.pfa") (encoding-vector "8r.enc")) (define-font plbdo8r (font-class type1) (font-file "plbdo.pfa") (encoding-vector "8r.enc")) (define-font psvl8r (font-class type1) (font-file "psvl.pfa") (encoding-vector "8r.enc")) (define-font psvli8r (font-class type1) (font-file "psvli.pfa") (encoding-vector "8r.enc")) (define-font psvd8r (font-class type1) (font-file "psvd.pfa") (encoding-vector "8r.enc")) (define-font psvdi8r (font-class type1) (font-file "psvdi.pfa") (encoding-vector "8r.enc")) (define-font phbr8r (font-class type1) (font-file "phbr.pfa") (encoding-vector "8r.enc")) (define-font pslr8r (font-class type1) (font-file "pslr.pfa") (encoding-vector "8r.enc")) (define-font plcr8r (font-class type1) (font-file "plcr.pfa") (encoding-vector "8r.enc")) (define-font plcri8r (font-class type1) (font-file "plcri.pfa") (encoding-vector "8r.enc")) (define-font plcro8r (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font plcb8r (font-class type1) (font-file "plcb.pfa") (encoding-vector "8r.enc")) (define-font plcbi8r (font-class type1) (font-file "plcbi.pfa") (encoding-vector "8r.enc")) (define-font plcrs8r (font-class type1) (font-file "plcrs.pfa") (encoding-vector "8r.enc")) (define-font plcris8r (font-class type1) (font-file "plcris.pfa") (encoding-vector "8r.enc")) (define-font plcbs8r (font-class type1) (font-file "plcbs.pfa") (encoding-vector "8r.enc")) (define-font plcbis8r (font-class type1) (font-file "plcbis.pfa") (encoding-vector "8r.enc")) (define-font plcrb8r (font-class type1) (font-file "plcrb.pfa") (encoding-vector "8r.enc")) (define-font plcrbi8r (font-class type1) (font-file "plcrbi.pfa") (encoding-vector "8r.enc")) (define-font plcbb8r (font-class type1) (font-file "plcbb.pfa") (encoding-vector "8r.enc")) (define-font plcrst8r (font-class type1) (font-file "plcrst.pfa") (encoding-vector "8r.enc")) (define-font plcrm8r (font-class type1) (font-file "plcrm.pfa") (encoding-vector "8r.enc")) (define-font plcrv8r (font-class type1) (font-file "plcrv.pfa") (encoding-vector "8r.enc")) (define-font plcry8r (font-class type1) (font-file "plcry.pfa") (encoding-vector "8r.enc")) (define-font ylhr8r (font-class type1) (font-file "ylhr.pfb") (encoding-vector "8r.enc")) (define-font ylhri8r (font-class type1) (font-file "ylhri.pfb") (encoding-vector "8r.enc")) (define-font ylhro8r (font-class type1) (font-file "ylhro.pfb") (encoding-vector "8r.enc")) (define-font ylhd8r (font-class type1) (font-file "ylhd.pfb") (encoding-vector "8r.enc")) (define-font ylhdi8r (font-class type1) (font-file "ylhdi.pfb") (encoding-vector "8r.enc")) (define-font ylcrs8r (font-class type1) (font-file "ylcrs.pfb") (encoding-vector "8r.enc")) (define-font ylcds8r (font-class type1) (font-file "ylcds.pfb") (encoding-vector "8r.enc")) (define-font ylcdis8r (font-class type1) (font-file "ylcdis.pfb") (encoding-vector "8r.enc")) (define-font ylcrst8r (font-class type1) (font-file "ylcrst.pfb") (encoding-vector "8r.enc")) (define-font ylcrost8r (font-class type1) (font-file "ylcrost.pfb") (encoding-vector "8r.enc")) (define-font ylcbst8r (font-class type1) (font-file "ylcbst.pfb") (encoding-vector "8r.enc")) (define-font ylcbost8r (font-class type1) (font-file "ylcbost.pfb") (encoding-vector "8r.enc")) (define-font ylcr48r (font-class type1) (font-file "ylcr4.pfb") (encoding-vector "8r.enc")) (define-font ylcr4i8r (font-class type1) (font-file "ylcr4i.pfb") (encoding-vector "8r.enc")) (define-font ylcd48r (font-class type1) (font-file "ylcd4.pfb") (encoding-vector "8r.enc")) (define-font ylcd4i8r (font-class type1) (font-file "ylcd4i.pfb") (encoding-vector "8r.enc")) (define-font ylcrf8r (font-class type1) (font-file "ylcrf.pfb") (encoding-vector "8r.enc")) (define-font ylcrihw8r (font-class type1) (font-file "ylcrihw.pfb") (encoding-vector "8r.enc")) (define-font ylcris8r (font-class type1) (font-file "ylcris.pfb") (encoding-vector "8r.enc")) (define-font ylcriw8r (font-class type1) (font-file "ylcriw.pfb") (encoding-vector "8r.enc")) (define-font cggr8r (font-class type1) (font-file "cggr.pfa") (encoding-vector "8r.enc")) (define-font cggri8r (font-class type1) (font-file "cggri.pfa") (encoding-vector "8r.enc")) (define-font cggb8r (font-class type1) (font-file "cggb.pfa") (encoding-vector "8r.enc")) (define-font cggbi8r (font-class type1) (font-file "cggbi.pfa") (encoding-vector "8r.enc")) (define-font cshr8r (font-class type1) (font-file "cshr.pfa") (encoding-vector "8r.enc")) (define-font cshro8r (font-class type1) (font-file "cshro.pfa") (encoding-vector "8r.enc")) (define-font cshb8r (font-class type1) (font-file "cshb.pfa") (encoding-vector "8r.enc")) (define-font cshx8r (font-class type1) (font-file "cshx.pfa") (encoding-vector "8r.enc")) (define-font pagk0 (font-class type1) (font-file "AvantGarde-Book")) (define-font pagko0 (font-class type1) (font-file "AvantGarde-BookOblique")) (define-font pagd0 (font-class type1) (font-file "AvantGarde-Demi")) (define-font pagdo0 (font-class type1) (font-file "AvantGarde-DemiOblique")) (define-font pbkl0 (font-class type1) (font-file "Bookman-Light")) (define-font pbkli0 (font-class type1) (font-file "Bookman-LightItalic")) (define-font pbklo0 (font-class type1) (font-file "Bookman-Light") (slant-factor 0.167)) (define-font pbkd0 (font-class type1) (font-file "Bookman-Demi")) (define-font pbkdi0 (font-class type1) (font-file "Bookman-DemiItalic")) (define-font pbkdo0 (font-class type1) (font-file "Bookman-Demi") (slant-factor 0.167)) (define-font pcrr0 (font-class type1) (font-file "Courier")) (define-font pcrro0 (font-class type1) (font-file "Courier-Oblique")) (define-font pcrb0 (font-class type1) (font-file "Courier-Bold")) (define-font pcrbo0 (font-class type1) (font-file "Courier-BoldOblique")) (define-font phvr0 (font-class type1) (font-file "Helvetica")) (define-font phvro0 (font-class type1) (font-file "Helvetica-Oblique")) (define-font phvb0 (font-class type1) (font-file "Helvetica-Bold")) (define-font phvbo0 (font-class type1) (font-file "Helvetica-BoldOblique")) (define-font phvrrn0 (font-class type1) (font-file "Helvetica") (aspect-ratio 0.820)) (define-font phvron0 (font-class type1) (font-file "Helvetica-Oblique") (aspect-ratio 0.820)) (define-font phvbrn0 (font-class type1) (font-file "Helvetica-Bold") (aspect-ratio 0.820)) (define-font phvbon0 (font-class type1) (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820)) (define-font pncr0 (font-class type1) (font-file "NewCenturySchlbk-Roman")) (define-font pncri0 (font-class type1) (font-file "NewCenturySchlbk-Italic")) (define-font pncro0 (font-class type1) (font-file "NewCenturySchlbk-Roman") (slant-factor 0.167)) (define-font pncb0 (font-class type1) (font-file "NewCenturySchlbk-Bold")) (define-font pncbi0 (font-class type1) (font-file "NewCenturySchlbk-BoldItalic")) (define-font pncbo0 (font-class type1) (font-file "NewCenturySchlbk-Bold") (slant-factor 0.167)) (define-font pplr0 (font-class type1) (font-file "Palatino-Roman")) (define-font pplri0 (font-class type1) (font-file "Palatino-Italic")) (define-font pplro0 (font-class type1) (font-file "Palatino-Roman") (slant-factor 0.167)) (define-font pplb0 (font-class type1) (font-file "Palatino-Bold")) (define-font pplbi0 (font-class type1) (font-file "Palatino-BoldItalic")) (define-font pplbo0 (font-class type1) (font-file "Palatino-Bold") (slant-factor 0.167)) (define-font pplbu0 (font-class type1) (font-file "Palatino-BoldItalic") (slant-factor -0.176)) (define-font pplru0 (font-class type1) (font-file "Palatino-Italic") (slant-factor -0.176)) (define-font pplrrn0 (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 0.820)) (define-font pplrre0 (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 1.200)) (define-font ptmr0 (font-class type1) (font-file "Times-Roman")) (define-font ptmri0 (font-class type1) (font-file "Times-Italic")) (define-font ptmro0 (font-class type1) (font-file "Times-Roman") (slant-factor 0.167)) (define-font ptmb0 (font-class type1) (font-file "Times-Bold")) (define-font ptmbi0 (font-class type1) (font-file "Times-BoldItalic")) (define-font ptmbo0 (font-class type1) (font-file "Times-Bold") (slant-factor 0.167)) (define-font ptmrrn0 (font-class type1) (font-file "Times-Roman") (aspect-ratio 0.800)) (define-font ptmrre0 (font-class type1) (font-file "Times-Roman") (aspect-ratio 1.200)) (define-font pzcmi0 (font-class type1) (font-file "ZapfChancery-MediumItalic")) (define-font putr0 (font-class type1) (font-file "putr.pfa")) (define-font putri0 (font-class type1) (font-file "putri.pfa")) (define-font putro0 (font-class type1) (font-file "putr.pfa") (slant-factor 0.167)) (define-font putb0 (font-class type1) (font-file "putb.pfa")) (define-font putbi0 (font-class type1) (font-file "putbi.pfa")) (define-font putbo0 (font-class type1) (font-file "putb.pfa") (slant-factor 0.167)) (define-font bchr0 (font-class type1) (font-file "bchr.pfb")) (define-font bchri0 (font-class type1) (font-file "bchri.pfb")) (define-font bchro0 (font-class type1) (font-file "bchr.pfa") (slant-factor 0.167)) (define-font bchb0 (font-class type1) (font-file "bchb.pfb")) (define-font bchbi0 (font-class type1) (font-file "bchbi.pfb")) (define-font bchbo0 (font-class type1) (font-file "bchb.pfa") (slant-factor 0.167)) (define-font uaqrrc0 (font-class type1) (font-file "uaqrrc.pfa")) (define-font ugqb0 (font-class type1) (font-file "ugqb.pfa")) (define-font unmr0 (font-class type1) (font-file "unmr.pfa")) (define-font unmrs0 (font-class type1) (font-file "unmrs.pfa")) (define-font paab0 (font-class type1) (font-file "paab.pfa")) (define-font padr0 (font-class type1) (font-file "padr.pfa")) (define-font padri0 (font-class type1) (font-file "padri.pfa")) (define-font pads0 (font-class type1) (font-file "pads.pfa")) (define-font padsi0 (font-class type1) (font-file "padsi.pfa")) (define-font padb0 (font-class type1) (font-file "padb.pfa")) (define-font padbi0 (font-class type1) (font-file "padbi.pfa")) (define-font padrd0 (font-class type1) (font-file "padrd.pfa")) (define-font padrx0 (font-class type1) (font-file "padrx.pfa")) (define-font padrix0 (font-class type1) (font-file "padrix.pfa")) (define-font padsx0 (font-class type1) (font-file "padsx.pfa")) (define-font padbx0 (font-class type1) (font-file "padbx.pfa")) (define-font padbix0 (font-class type1) (font-file "padbix.pfa")) (define-font pbdr0 (font-class type1) (font-file "pbdr.pfa")) (define-font pbdri0 (font-class type1) (font-file "pbdri.pfa")) (define-font pbdb0 (font-class type1) (font-file "pbdb.pfa")) (define-font pbdbi0 (font-class type1) (font-file "pbdbi.pfa")) (define-font pbdp0 (font-class type1) (font-file "pbdp.pfa")) (define-font pburw0 (font-class type1) (font-file "pburw.pfa")) (define-font pc5r0 (font-class type1) (font-file "pc5r.pfa")) (define-font pc5ri0 (font-class type1) (font-file "pc5ri.pfa")) (define-font pc3r0 (font-class type1) (font-file "pc3r.pfa")) (define-font pc3ri0 (font-class type1) (font-file "pc3ri.pfa")) (define-font phvrrc0 (font-class type1) (font-file "phvrrc.pfa")) (define-font phvroc0 (font-class type1) (font-file "phvroc.pfa")) (define-font phvbrc0 (font-class type1) (font-file "phvbrc.pfa")) (define-font phvboc0 (font-class type1) (font-file "phvboc.pfa")) (define-font pubr0 (font-class type1) (font-file "pubr.pfa")) (define-font pubri0 (font-class type1) (font-file "pubri.pfa")) (define-font pubb0 (font-class type1) (font-file "pubb.pfa")) (define-font pubbi0 (font-class type1) (font-file "pubbi.pfa")) (define-font plbk0 (font-class type1) (font-file "plbk.pfa")) (define-font plbko0 (font-class type1) (font-file "plbko.pfa")) (define-font plbd0 (font-class type1) (font-file "plbd.pfa")) (define-font plbdo0 (font-class type1) (font-file "plbdo.pfa")) (define-font psvl0 (font-class type1) (font-file "psvl.pfa")) (define-font psvli0 (font-class type1) (font-file "psvli.pfa")) (define-font psvd0 (font-class type1) (font-file "psvd.pfa")) (define-font psvdi0 (font-class type1) (font-file "psvdi.pfa")) (define-font phbr0 (font-class type1) (font-file "phbr.pfa")) (define-font pslr0 (font-class type1) (font-file "pslr.pfa")) (define-font plcr0 (font-class type1) (font-file "plcr.pfa")) (define-font plcri0 (font-class type1) (font-file "plcri.pfa")) (define-font plcro0 (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167)) (define-font plcb0 (font-class type1) (font-file "plcb.pfa")) (define-font plcbi0 (font-class type1) (font-file "plcbi.pfa")) (define-font plcrs0 (font-class type1) (font-file "plcrs.pfa")) (define-font plcris0 (font-class type1) (font-file "plcris.pfa")) (define-font plcbs0 (font-class type1) (font-file "plcbs.pfa")) (define-font plcbis0 (font-class type1) (font-file "plcbis.pfa")) (define-font plcrb0 (font-class type1) (font-file "plcrb.pfa")) (define-font plcrbi0 (font-class type1) (font-file "plcrbi.pfa")) (define-font plcbb0 (font-class type1) (font-file "plcbb.pfa")) (define-font plcrst0 (font-class type1) (font-file "plcrst.pfa")) (define-font plcrm0 (font-class type1) (font-file "plcrm.pfa")) (define-font plcrv0 (font-class type1) (font-file "plcrv.pfa")) (define-font plcry0 (font-class type1) (font-file "plcry.pfa")) (define-font ylhr0 (font-class type1) (font-file "ylhr.pfb")) (define-font ylhri0 (font-class type1) (font-file "ylhri.pfb")) (define-font ylhro0 (font-class type1) (font-file "ylhro.pfb")) (define-font ylhd0 (font-class type1) (font-file "ylhd.pfb")) (define-font ylhdi0 (font-class type1) (font-file "ylhdi.pfb")) (define-font ylcrs0 (font-class type1) (font-file "ylcrs.pfb")) (define-font ylcds0 (font-class type1) (font-file "ylcds.pfb")) (define-font ylcdis0 (font-class type1) (font-file "ylcdis.pfb")) (define-font ylcrst0 (font-class type1) (font-file "ylcrst.pfb")) (define-font ylcrost0 (font-class type1) (font-file "ylcrost.pfb")) (define-font ylcbst0 (font-class type1) (font-file "ylcbst.pfb")) (define-font ylcbost0 (font-class type1) (font-file "ylcbost.pfb")) (define-font ylcr40 (font-class type1) (font-file "ylcr4.pfb")) (define-font ylcr4i0 (font-class type1) (font-file "ylcr4i.pfb")) (define-font ylcd40 (font-class type1) (font-file "ylcd4.pfb")) (define-font ylcd4i0 (font-class type1) (font-file "ylcd4i.pfb")) (define-font ylcrf0 (font-class type1) (font-file "ylcrf.pfb")) (define-font ylcrihw0 (font-class type1) (font-file "ylcrihw.pfb")) (define-font ylcris0 (font-class type1) (font-file "ylcris.pfb")) (define-font ylcriw0 (font-class type1) (font-file "ylcriw.pfb")) (define-font cggr0 (font-class type1) (font-file "cggr.pfa")) (define-font cggri0 (font-class type1) (font-file "cggri.pfa")) (define-font cggb0 (font-class type1) (font-file "cggb.pfa")) (define-font cggbi0 (font-class type1) (font-file "cggbi.pfa")) (define-font cshr0 (font-class type1) (font-file "cshr.pfa")) (define-font cshro0 (font-class type1) (font-file "cshro.pfa")) (define-font cshb0 (font-class type1) (font-file "cshb.pfa")) (define-font cshx0 (font-class type1) (font-file "cshx.pfa")) ;; ----------------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/vflibcaps/vflibcap-ml0000644000175000017500000012541107057623213017365 0ustar mohuramohura;;; -*-Lisp-*- ;; ;; vflibcap for testing various character stes ;; by h.kakugawa@computer.org ;; ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib (extension-hints ("pk" TeX) ("pcf" pcf) (".ttf" truetype) (".ttc" truetype) (".pfb" type1) (".pfa" type1) ) (implicit-font-classes) (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") ;; or "600" (TeX_KPATHSEA_MODE "cx") ;; or "ljfour" (TeX_KPATHSEA_PROGRAM "vflserver")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv" "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv" "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv" "iso8859-10_unicode.ccv" "iso8859-13_unicode.ccv" "iso8859-14_unicode.ccv" "iso8859-15_unicode.ccv" "jisx0208_unicode.ccv" "jisx0208sjis_unicode.ccv" "jisx0201_unicode.ccv" "jisx0212_unicode.ccv" "ksc5601_unicode.ccv" "ksx1001_unicode.ccv" "gb12345_unicode.ccv" "gb2312_unicode.ccv" "big5_unicode.ccv" "cns11643-1_unicode.ccv" "cns11643-2_unicode.ccv" "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv")) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (font-mapping ;; Japanese Kanji fonts ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*" "fj*" "tfj*" "df*" "tdf*" "rc*" "trc*") ;; PK, GF fonts ((pk "%f.%dpk") (gf "%f.%dgf") *) ;; Type 1 fonts (probably found in /usr/local/share/texmf/fonts/type1/ ) ((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ;; VF fonts ((vf "%f.vf") *) ;; If everything fails, use "black square" as substitue of request fonts ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ;; epson, canonlbp 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk (font-directories "TEXMF")) ;; ----------------------------------------------------------------- ;; VF Font Class Default ;; ----------------------------------------------------------------- (define-default vf (font-directories "TEXMF") (font-mapping ((* "%f.%dpk") (type1 "%f.pfb" point-size-from-tfm) *) ) (open-style "try") ;; "none", "try", or "require" (glyph-style "fill")) ;; "fill", or "empty" ;; ----------------------------------------------------------------- ;; TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm (glyph-style "fill")) ;; ----------------------------------------------------------------- ;; ASCII-jTeX Kanji fonts ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; Type1 Font Class Default ;; ----------------------------------------------------------------- (define-default type1 (font-directories "TEXMF") (afm-directories "TEXMF") (log-level "none") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; TrueType Font Class Default ;; ----------------------------------------------------------------- (define-default truetype (font-directories "TEXMF" "/usr/local/share/fonts/FontCity2//" "/usr/local/share/fonts/DynaFont-Premium30//" "/usr/local/share/fonts/DynaFont-SpecialPack1//" "/usr/local/share/fonts/TrueTypeWorld-ValueFont141//" "/usr/local/share/fonts/HanYang//" "/usr/local/share/fonts/UnionWay//" ) (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; PCF Font Class Default ;; ----------------------------------------------------------------- (define-default pcf (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/emacs/fonts//" "/usr/local/share/fonts/X11//") (compression-extensions ".gz" ".Z") (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; sample font definitions for Japanese TeX (define-font jtex-min (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (dpi $TeX_DPI) (font-file "f5ajchm3.ttf")) (define-font jtex-goth (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (dpi $TeX_DPI) (font-file "f5ajchg5.ttf")) (define-font jtex-tmin (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (dpi $TeX_DPI) (font-file "f5ajchm3.ttf")) (define-font jtex-tgoth (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (dpi $TeX_DPI) (font-file "f5ajchg5.ttf")) (define-macro min-common (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.95) (metric-adjustment-file "f5ajchm3.adj")) (define-macro goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.95) (metric-adjustment-file "f5ajchg5.adj")) (define-macro tmin-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.95) (metric-adjustment-file "tf5ajchm3.adj")) (define-macro tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.95) (metric-adjustment-file "tf5ajchg5.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-common) (define-font min6.jtex (kanji-font-point-size 6) min-common) (define-font min7.jtex (kanji-font-point-size 7) min-common) (define-font min8.jtex (kanji-font-point-size 8) min-common) (define-font min9.jtex (kanji-font-point-size 9) min-common) (define-font min10.jtex (kanji-font-point-size 10) min-common) (define-font goth5.jtex (kanji-font-point-size 5) goth-common) (define-font goth6.jtex (kanji-font-point-size 6) goth-common) (define-font goth7.jtex (kanji-font-point-size 7) goth-common) (define-font goth8.jtex (kanji-font-point-size 8) goth-common) (define-font goth9.jtex (kanji-font-point-size 9) goth-common) (define-font goth10.jtex (kanji-font-point-size 10) goth-common) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tgoth-common) ;; ----------------------------------------------------------------- ;; non-standard Kanji fonts (define-macro jtex-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (metric-adjustment-file "f5ajchm3.adj")) (define-macro jtex-tcommon (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (metric-adjustment-file "tf5ajchm3.adj")) (define-macro ttf-kanji-common (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (dpi $TeX_DPI)) (define-font fjminmaa.jtex jtex-common (kanji-font fjminmaa)) (define-font fjminmaa ttf-kanji-common (font-file "f5ajcfm2.ttf")) (define-font tfjminmaa.jtex jtex-tcommon (kanji-font tfjminmaa)) (define-font tfjminmaa ttf-kanji-common (font-file "f5ajcfm2.ttf")) (define-font fjminsaa.jtex jtex-common (kanji-font fjminsaa)) (define-font fjminsaa ttf-kanji-common (font-file "f5ajcfm8.ttf")) (define-font tfjminsaa.jtex jtex-tcommon (kanji-font tfjminsaa)) (define-font tfjminsaa ttf-kanji-common (font-file "f5ajcfm8.ttf")) (define-font fjhsmmaa.jtex jtex-common (kanji-font fjhsmmaa)) (define-font fjhsmmaa ttf-kanji-common (font-file "f5ajchm3.ttf")) (define-font tfjhsmmaa.jtex jtex-tcommon (kanji-font tfjhsmmaa)) (define-font tfjhsmmaa ttf-kanji-common (font-file "f5ajchm3.ttf")) (define-font fjhsmraa.jtex jtex-common (kanji-font fjhsmraa)) (define-font fjhsmraa ttf-kanji-common (font-file "f5ajchm6.ttf")) (define-font tfjhsmraa.jtex jtex-tcommon (kanji-font tfjhsmraa)) (define-font tfjhsmraa ttf-kanji-common (font-file "f5ajchm6.ttf")) (define-font fjhsmvaa.jtex jtex-common (kanji-font fjhsmvaa)) (define-font fjhsmvaa ttf-kanji-common (font-file "f5ajchm9.ttf")) (define-font tfjhsmvaa.jtex jtex-tcommon (kanji-font tfjhsmvaa)) (define-font tfjhsmvaa ttf-kanji-common (font-file "f5ajchm9.ttf")) (define-font fjgotmaa.jtex jtex-common (kanji-font fjgotmaa)) (define-font fjgotmaa ttf-kanji-common (font-file "f5ajcfg3.ttf")) (define-font tfjgotmaa.jtex jtex-tcommon (kanji-font tfjgotmaa)) (define-font tfjgotmaa ttf-kanji-common (font-file "f5ajcfg3.ttf")) (define-font fjgotpaa.jtex jtex-common (kanji-font fjgotpaa)) (define-font fjgotpaa ttf-kanji-common (font-file "f5ajcfg7.ttf")) (define-font tfjgotpaa.jtex jtex-tcommon (kanji-font tfjgotpaa)) (define-font tfjgotpaa ttf-kanji-common (font-file "f5ajcfg7.ttf")) (define-font fjgotsaa.jtex jtex-common (kanji-font fjgotsaa)) (define-font fjgotsaa ttf-kanji-common (font-file "f5ajcfg9.ttf")) (define-font tfjgotsaa.jtex jtex-tcommon (kanji-font tfjgotsaa)) (define-font tfjgotsaa ttf-kanji-common (font-file "f5ajcfg9.ttf")) (define-font fjgotxaa.jtex jtex-common (kanji-font fjgotxaa)) (define-font fjgotxaa ttf-kanji-common (font-file "f5ajcfgd.ttf")) (define-font tfjgotxaa.jtex jtex-tcommon (kanji-font tfjgotxaa)) (define-font tfjgotxaa ttf-kanji-common (font-file "f5ajcfgd.ttf")) (define-font fjhsgpaa.jtex jtex-common (kanji-font fjhsgpaa)) (define-font fjhsgpaa ttf-kanji-common (font-file "f5ajchg5.ttf")) (define-font tfjhsgpaa.jtex jtex-tcommon (kanji-font tfjhsgpaa)) (define-font tfjhsgpaa ttf-kanji-common (font-file "f5ajchg5.ttf")) (define-font fjhsgsaa.jtex jtex-common (kanji-font fjhsgsaa)) (define-font fjhsgsaa ttf-kanji-common (font-file "f5ajchg7.ttf")) (define-font tfjhsgsaa.jtex jtex-tcommon (kanji-font tfjhsgsaa)) (define-font tfjhsgsaa ttf-kanji-common (font-file "f5ajchg7.ttf")) (define-font fjhsgvaa.jtex jtex-common (kanji-font fjhsgvaa)) (define-font fjhsgvaa ttf-kanji-common (font-file "f5ajchg9.ttf")) (define-font tfjhsgvaa.jtex jtex-tcommon (kanji-font tfjhsgvaa)) (define-font tfjhsgvaa ttf-kanji-common (font-file "f5ajchg9.ttf")) (define-font fjmrgmaa.jtex jtex-common (kanji-font fjmrgmaa)) (define-font fjmrgmaa ttf-kanji-common (font-file "f5ajcfr3.ttf")) (define-font tfjmrgmaa.jtex jtex-tcommon (kanji-font tfjmrgmaa)) (define-font tfjmrgmaa ttf-kanji-common (font-file "f5ajcfr3.ttf")) (define-font fjmrgpaa.jtex jtex-common (kanji-font fjmrgpaa)) (define-font fjmrgpaa ttf-kanji-common (font-file "f5ajcfr5.ttf")) (define-font tfjmrgpaa.jtex jtex-tcommon (kanji-font tfjmrgpaa)) (define-font tfjmrgpaa ttf-kanji-common (font-file "f5ajcfr5.ttf")) (define-font fjmrgsaa.jtex jtex-common (kanji-font fjmrgsaa)) (define-font fjmrgsaa ttf-kanji-common (font-file "f5ajcfr7.ttf")) (define-font tfjmrgsaa.jtex jtex-tcommon (kanji-font tfjmrgsaa)) (define-font tfjmrgsaa ttf-kanji-common (font-file "f5ajcfr7.ttf")) (define-font fjmrgxaa.jtex jtex-common (kanji-font fjmrgxaa)) (define-font fjmrgxaa ttf-kanji-common (font-file "f5ajcfrd.ttf")) (define-font tfjmrgxaa.jtex jtex-tcommon (kanji-font tfjmrgxaa)) (define-font tfjmrgxaa ttf-kanji-common (font-file "f5ajcfrd.ttf")) (define-font fjhrgoaa.jtex jtex-common (kanji-font fjhrgoaa)) (define-font fjhrgoaa ttf-kanji-common (font-file "f5ajchr4.ttf")) (define-font tfjhrgoaa.jtex jtex-tcommon (kanji-font tfjhrgoaa)) (define-font tfjhrgoaa ttf-kanji-common (font-file "f5ajchr4.ttf")) (define-font fjashxaa.jtex jtex-common (kanji-font fjashxaa)) (define-font fjashxaa ttf-kanji-common (font-file "f5ajckrh.ttf")) (define-font tfjashxaa.jtex jtex-tcommon (kanji-font tfjashxaa)) (define-font tfjashxaa ttf-kanji-common (font-file "f5ajckrh.ttf")) (define-font fjkykmaa.jtex jtex-common (kanji-font fjkykmaa)) (define-font fjkykmaa ttf-kanji-common (font-file "f5ajcky1.ttf")) (define-font tfjkykmaa.jtex jtex-tcommon (kanji-font tfjkykmaa)) (define-font tfjkykmaa ttf-kanji-common (font-file "f5ajcky1.ttf")) (define-font fjkykpaa.jtex jtex-common (kanji-font fjkykpaa)) (define-font fjkykpaa ttf-kanji-common (font-file "f5ajcky2.ttf")) (define-font tfjkykpaa.jtex jtex-tcommon (kanji-font tfjkykpaa)) (define-font tfjkykpaa ttf-kanji-common (font-file "f5ajcky2.ttf")) (define-font fjfdkmaa.jtex jtex-common (kanji-font fjfdkmaa)) (define-font fjfdkmaa ttf-kanji-common (font-file "f5ajcfdk.ttf")) (define-font tfjfdkmaa.jtex jtex-tcommon (kanji-font tfjfdkmaa)) (define-font tfjfdkmaa ttf-kanji-common (font-file "f5ajcfdk.ttf")) (define-font fjgykmaa.jtex jtex-common (kanji-font fjgykmaa)) (define-font fjgykmaa ttf-kanji-common (font-file "f5ajcgyk.ttf")) (define-font tfjgykmaa.jtex jtex-tcommon (kanji-font tfjgykmaa)) (define-font tfjgykmaa ttf-kanji-common (font-file "f5ajcgyk.ttf")) (define-font fjreipaa.jtex jtex-common (kanji-font fjreipaa)) (define-font fjreipaa ttf-kanji-common (font-file "f5ajcrei.ttf")) (define-font tfjreipaa.jtex jtex-tcommon (kanji-font tfjreipaa)) (define-font tfjreipaa ttf-kanji-common (font-file "f5ajcrei.ttf")) (define-font fjkedxaa.jtex jtex-common (kanji-font fjkedxaa)) (define-font fjkedxaa ttf-kanji-common (font-file "f5ajcked.ttf")) (define-font tfjkedxaa.jtex jtex-tcommon (kanji-font tfjkedxaa)) (define-font tfjkedxaa ttf-kanji-common (font-file "f5ajcked.ttf")) (define-font fjhigxaa.jtex jtex-common (kanji-font fjhigxaa)) (define-font fjhigxaa ttf-kanji-common (font-file "f5ajchig.ttf")) (define-font tfjhigxaa.jtex jtex-tcommon (kanji-font tfjhigxaa)) (define-font tfjhigxaa ttf-kanji-common (font-file "f5ajchig.ttf")) (define-font fjtrepaa.jtex jtex-common (kanji-font fjtrepaa)) (define-font fjtrepaa ttf-kanji-common (font-file "f5ajctre.ttf")) (define-font tfjtrepaa.jtex jtex-tcommon (kanji-font tfjtrepaa)) (define-font tfjtrepaa ttf-kanji-common (font-file "f5ajctre.ttf")) (define-font fjtkosaa.jtex jtex-common (kanji-font fjtkosaa)) (define-font fjtkosaa ttf-kanji-common (font-file "f5ajctko.ttf")) (define-font tfjtkosaa.jtex jtex-tcommon (kanji-font tfjtkosaa)) (define-font tfjtkosaa ttf-kanji-common (font-file "f5ajctko.ttf")) (define-font fjcpemaa.jtex jtex-common (kanji-font fjcpemaa)) (define-font fjcpemaa ttf-kanji-common (font-file "f5ajccpe.ttf")) (define-font tfjcpemaa.jtex jtex-tcommon (kanji-font tfjcpemaa)) (define-font tfjcpemaa ttf-kanji-common (font-file "f5ajccpe.ttf")) (define-font fjhikmaa.jtex jtex-common (kanji-font fjhikmaa)) (define-font fjhikmaa ttf-kanji-common (font-file "f5ajchik.ttf")) (define-font tfjhikmaa.jtex jtex-tcommon (kanji-font tfjhikmaa)) (define-font tfjhikmaa ttf-kanji-common (font-file "f5ajchik.ttf")) (define-font fjmarpaa.jtex jtex-common (kanji-font fjmarpaa)) (define-font fjmarpaa ttf-kanji-common (font-file "f5ajcmar.ttf")) (define-font tfjmarpaa.jtex jtex-tcommon (kanji-font tfjmarpaa)) (define-font tfjmarpaa ttf-kanji-common (font-file "f5ajcmar.ttf")) (define-font fjimapaa.jtex jtex-common (kanji-font fjimapaa)) (define-font fjimapaa ttf-kanji-common (font-file "f5ajci18.ttf")) (define-font tfjimapaa.jtex jtex-tcommon (kanji-font tfjimapaa)) (define-font tfjimapaa ttf-kanji-common (font-file "f5ajci18.ttf")) (define-font fjimbmaa.jtex jtex-common (kanji-font fjimbmaa)) (define-font fjimbmaa ttf-kanji-common (font-file "f5ajci25.ttf")) (define-font tfjimbmaa.jtex jtex-tcommon (kanji-font tfjimbmaa)) (define-font tfjimbmaa ttf-kanji-common (font-file "f5ajci25.ttf")) (define-font fjimcraa.jtex jtex-common (kanji-font fjimcraa)) (define-font fjimcraa ttf-kanji-common (font-file "f5ajci3a.ttf")) (define-font tfjimcraa.jtex jtex-tcommon (kanji-font tfjimcraa)) (define-font tfjimcraa ttf-kanji-common (font-file "f5ajci3a.ttf")) (define-font fjimdsaa.jtex jtex-common (kanji-font fjimdsaa)) (define-font fjimdsaa ttf-kanji-common (font-file "f5ajci47.ttf")) (define-font tfjimdsaa.jtex jtex-tcommon (kanji-font tfjimdsaa)) (define-font tfjimdsaa ttf-kanji-common (font-file "f5ajci47.ttf")) (define-font fjimevaa.jtex jtex-common (kanji-font fjimevaa)) (define-font fjimevaa ttf-kanji-common (font-file "f5ajci5d.ttf")) (define-font tfjimevaa.jtex jtex-tcommon (kanji-font tfjimevaa)) (define-font tfjimevaa ttf-kanji-common (font-file "f5ajci5d.ttf")) (define-font dfhsmmaa.jtex jtex-common (kanji-font dfhsmmaa)) (define-font dfhsmmaa ttf-kanji-common (font-file "dfhsmw3.ttc")) (define-font tdfhsmmaa.jtex jtex-tcommon (kanji-font tdfhsmmaa)) (define-font tdfhsmmaa ttf-kanji-common (font-file "dfhsmw3.ttc")) (define-font dfhsmpaa.jtex jtex-common (kanji-font dfhsmpaa)) (define-font dfhsmpaa ttf-kanji-common (font-file "dfhsmw5.ttc")) (define-font tdfhsmpaa.jtex jtex-tcommon (kanji-font tdfhsmpaa)) (define-font tdfhsmpaa ttf-kanji-common (font-file "dfhsmw5.ttc")) (define-font dfhsmsaa.jtex jtex-common (kanji-font dfhsmsaa)) (define-font dfhsmsaa ttf-kanji-common (font-file "dfhsmw7.ttc")) (define-font tdfhsmsaa.jtex jtex-tcommon (kanji-font tdfhsmsaa)) (define-font tdfhsmsaa ttf-kanji-common (font-file "dfhsmw7.ttc")) (define-font dfhsmvaa.jtex jtex-common (kanji-font dfhsmvaa)) (define-font dfhsmvaa ttf-kanji-common (font-file "dfhsmw9.ttc")) (define-font tdfhsmvaa.jtex jtex-tcommon (kanji-font tdfhsmvaa)) (define-font tdfhsmvaa ttf-kanji-common (font-file "dfhsmw9.ttc")) (define-font dfminzaa.jtex jtex-common (kanji-font dfminzaa)) (define-font dfminzaa ttf-kanji-common (font-file "dfminub.ttc")) (define-font tdfminzaa.jtex jtex-tcommon (kanji-font tdfminzaa)) (define-font tdfminzaa ttf-kanji-common (font-file "dfminub.ttc")) (define-font dfhsgmaa.jtex jtex-common (kanji-font dfhsgmaa)) (define-font dfhsgmaa ttf-kanji-common (font-file "dfhsgw3.ttc")) (define-font tdfhsgmaa.jtex jtex-tcommon (kanji-font tdfhsgmaa)) (define-font tdfhsgmaa ttf-kanji-common (font-file "dfhsgw3.ttc")) (define-font dfhsgpaa.jtex jtex-common (kanji-font dfhsgpaa)) (define-font dfhsgpaa ttf-kanji-common (font-file "dfhsgw5.ttc")) (define-font tdfhsgpaa.jtex jtex-tcommon (kanji-font tdfhsgpaa)) (define-font tdfhsgpaa ttf-kanji-common (font-file "dfhsgw5.ttc")) (define-font dfhsgsaa.jtex jtex-common (kanji-font dfhsgsaa)) (define-font dfhsgsaa ttf-kanji-common (font-file "dfhsgw7.ttc")) (define-font tdfhsgsaa.jtex jtex-tcommon (kanji-font tdfhsgsaa)) (define-font tdfhsgsaa ttf-kanji-common (font-file "dfhsgw7.ttc")) (define-font dfhsgvaa.jtex jtex-common (kanji-font dfhsgvaa)) (define-font dfhsgvaa ttf-kanji-common (font-file "dfhsgw9.ttc")) (define-font tdfhsgvaa.jtex jtex-tcommon (kanji-font tdfhsgvaa)) (define-font tdfhsgvaa ttf-kanji-common (font-file "dfhsgw9.ttc")) (define-font dfgotxaa.jtex jtex-common (kanji-font dfgotxaa)) (define-font dfgotxaa ttf-kanji-common (font-file "dfgoteb.ttc")) (define-font tdfgotxaa.jtex jtex-tcommon (kanji-font tdfgotxaa)) (define-font tdfgotxaa ttf-kanji-common (font-file "dfgoteb.ttc")) (define-font dfgotzaa.jtex jtex-common (kanji-font dfgotzaa)) (define-font dfgotzaa ttf-kanji-common (font-file "dfgotub.ttc")) (define-font tdfgotzaa.jtex jtex-tcommon (kanji-font tdfgotzaa)) (define-font tdfgotzaa ttf-kanji-common (font-file "dfgotub.ttc")) (define-font dfhrgoaa.jtex jtex-common (kanji-font dfhrgoaa)) (define-font dfhrgoaa ttf-kanji-common (font-file "dfhsrw4.ttc")) (define-font tdfhrgoaa.jtex jtex-tcommon (kanji-font tdfhrgoaa)) (define-font tdfhrgoaa ttf-kanji-common (font-file "dfhsrw4.ttc")) (define-font dfmrgmaa.jtex jtex-common (kanji-font dfmrgmaa)) (define-font dfmrgmaa ttf-kanji-common (font-file "dfmrglt.ttc")) (define-font tdfmrgmaa.jtex jtex-tcommon (kanji-font tdfmrgmaa)) (define-font tdfmrgmaa ttf-kanji-common (font-file "dfmrglt.ttc")) (define-font dfmrgpaa.jtex jtex-common (kanji-font dfmrgpaa)) (define-font dfmrgpaa ttf-kanji-common (font-file "dfmrgmd.ttc")) (define-font tdfmrgpaa.jtex jtex-tcommon (kanji-font tdfmrgpaa)) (define-font tdfmrgpaa ttf-kanji-common (font-file "dfmrgmd.ttc")) (define-font dfmrgsaa.jtex jtex-common (kanji-font dfmrgsaa)) (define-font dfmrgsaa ttf-kanji-common (font-file "dfmrgbd.ttc")) (define-font tdfmrgsaa.jtex jtex-tcommon (kanji-font tdfmrgsaa)) (define-font tdfmrgsaa ttf-kanji-common (font-file "dfmrgbd.ttc")) (define-font dfgyopaa.jtex jtex-common (kanji-font dfgyopaa)) (define-font dfgyopaa ttf-kanji-common (font-file "dfgyomd.ttc")) (define-font tdfgyopaa.jtex jtex-tcommon (kanji-font tdfgyopaa)) (define-font tdfgyopaa ttf-kanji-common (font-file "dfgyomd.ttc")) (define-font dfkaimaa.jtex jtex-common (kanji-font dfkaimaa)) (define-font dfkaimaa ttf-kanji-common (font-file "dfkailt.ttc")) (define-font tdfkaimaa.jtex jtex-tcommon (kanji-font tdfkaimaa)) (define-font tdfkaimaa ttf-kanji-common (font-file "dfkailt.ttc")) (define-font dfkaipaa.jtex jtex-common (kanji-font dfkaipaa)) (define-font dfkaipaa ttf-kanji-common (font-file "dfkaimd.ttc")) (define-font tdfkaipaa.jtex jtex-tcommon (kanji-font tdfkaipaa)) (define-font tdfkaipaa ttf-kanji-common (font-file "dfkaimd.ttc")) (define-font dfkairaa.jtex jtex-common (kanji-font dfkairaa)) (define-font dfkairaa ttf-kanji-common (font-file "dfkaisb.ttc")) (define-font tdfkairaa.jtex jtex-tcommon (kanji-font tdfkairaa)) (define-font tdfkairaa ttf-kanji-common (font-file "dfkaisb.ttc")) (define-font dfkaisaa.jtex jtex-common (kanji-font dfkaisaa)) (define-font dfkaisaa ttf-kanji-common (font-file "dfkaibd.ttc")) (define-font tdfkaisaa.jtex jtex-tcommon (kanji-font tdfkaisaa)) (define-font tdfkaisaa ttf-kanji-common (font-file "dfkaibd.ttc")) (define-font dfleipaa.jtex jtex-common (kanji-font dfleipaa)) (define-font dfleipaa ttf-kanji-common (font-file "dfleimd.ttc")) (define-font tdfleipaa.jtex jtex-tcommon (kanji-font tdfleipaa)) (define-font tdfleipaa ttf-kanji-common (font-file "dfleimd.ttc")) (define-font dfktrxaa.jtex jtex-common (kanji-font dfktrxaa)) (define-font dfktrxaa ttf-kanji-common (font-file "dfktrxb.ttc")) (define-font tdfktrxaa.jtex jtex-tcommon (kanji-font tdfktrxaa)) (define-font tdfktrxaa ttf-kanji-common (font-file "dfktrxb.ttc")) (define-font dfpopmaa.jtex jtex-common (kanji-font dfpopmaa)) (define-font dfpopmaa ttf-kanji-common (font-file "dfpopw3.ttc")) (define-font tdfpopmaa.jtex jtex-tcommon (kanji-font tdfpopmaa)) (define-font tdfpopmaa ttf-kanji-common (font-file "dfpopw3.ttc")) (define-font dfpoppaa.jtex jtex-common (kanji-font dfpoppaa)) (define-font dfpoppaa ttf-kanji-common (font-file "dfpopw5.ttc")) (define-font tdfpoppaa.jtex jtex-tcommon (kanji-font tdfpoppaa)) (define-font tdfpoppaa ttf-kanji-common (font-file "dfpopw5.ttc")) (define-font dfpopraa.jtex jtex-common (kanji-font dfpopraa)) (define-font dfpopraa ttf-kanji-common (font-file "dfpop1.ttc")) (define-font tdfpopraa.jtex jtex-tcommon (kanji-font tdfpopraa)) (define-font tdfpopraa ttf-kanji-common (font-file "dfpop1.ttc")) (define-font dfpopvaa.jtex jtex-common (kanji-font dfpopvaa)) (define-font dfpopvaa ttf-kanji-common (font-file "dfpopw9.ttc")) (define-font tdfpopvaa.jtex jtex-tcommon (kanji-font tdfpopvaa)) (define-font tdfpopvaa ttf-kanji-common (font-file "dfpopw9.ttc")) (define-font dfmrmpaa.jtex jtex-common (kanji-font dfmrmpaa)) (define-font dfmrmpaa ttf-kanji-common (font-file "dfmrmw3.ttc")) (define-font tdfmrmpaa.jtex jtex-tcommon (kanji-font tdfmrmpaa)) (define-font tdfmrmpaa ttf-kanji-common (font-file "dfmrmw3.ttc")) (define-font dfmrmmaa.jtex jtex-common (kanji-font dfmrmmaa)) (define-font dfmrmmaa ttf-kanji-common (font-file "dfmrmmd.ttc")) (define-font tdfmrmmaa.jtex jtex-tcommon (kanji-font tdfmrmmaa)) (define-font tdfmrmmaa ttf-kanji-common (font-file "dfmrmmd.ttc")) (define-font dfmrmsaa.jtex jtex-common (kanji-font dfmrmsaa)) (define-font dfmrmsaa ttf-kanji-common (font-file "dfmrmw7.ttc")) (define-font tdfmrmsaa.jtex jtex-tcommon (kanji-font tdfmrmsaa)) (define-font tdfmrmsaa ttf-kanji-common (font-file "dfmrmw7.ttc")) (define-font dfmrmvaa.jtex jtex-common (kanji-font dfmrmvaa)) (define-font dfmrmvaa ttf-kanji-common (font-file "dfmrmw9.ttc")) (define-font tdfmrmvaa.jtex jtex-tcommon (kanji-font tdfmrmvaa)) (define-font tdfmrmvaa ttf-kanji-common (font-file "dfmrmw9.ttc")) (define-font dfsokmaa.jtex jtex-common (kanji-font dfsokmaa)) (define-font dfsokmaa ttf-kanji-common (font-file "dfsokn3.ttc")) (define-font tdfsokmaa.jtex jtex-tcommon (kanji-font tdfsokmaa)) (define-font tdfsokmaa ttf-kanji-common (font-file "dfsokn3.ttc")) (define-font dfsgypaa.jtex jtex-common (kanji-font dfsgypaa)) (define-font dfsgypaa ttf-kanji-common (font-file "dfsgyo5.ttc")) (define-font tdfsgypaa.jtex jtex-tcommon (kanji-font tdfsgypaa)) (define-font tdfsgypaa ttf-kanji-common (font-file "dfsgyo5.ttc")) (define-font dfgihsaa.jtex jtex-common (kanji-font dfgihsaa)) (define-font dfgihsaa ttf-kanji-common (font-file "dfgihi7.ttc")) (define-font tdfgihsaa.jtex jtex-tcommon (kanji-font tdfgihsaa)) (define-font tdfgihsaa ttf-kanji-common (font-file "dfgihi7.ttc")) (define-font dfkykmaa.jtex jtex-common (kanji-font dfkykmaa)) (define-font dfkykmaa ttf-kanji-common (font-file "dfkyks3.ttc")) (define-font tdfkykmaa.jtex jtex-tcommon (kanji-font tdfkykmaa)) (define-font tdfkykmaa ttf-kanji-common (font-file "dfkyks3.ttc")) (define-font dfkykoaa.jtex jtex-common (kanji-font dfkykoaa)) (define-font dfkykoaa ttf-kanji-common (font-file "dfkyks4.ttc")) (define-font tdfkykoaa.jtex jtex-tcommon (kanji-font tdfkykoaa)) (define-font tdfkykoaa ttf-kanji-common (font-file "dfkyks4.ttc")) (define-font dftlepaa.jtex jtex-common (kanji-font dftlepaa)) (define-font dftlepaa ttf-kanji-common (font-file "dftlei5.ttc")) (define-font tdftlepaa.jtex jtex-tcommon (kanji-font tdftlepaa)) (define-font tdftlepaa ttf-kanji-common (font-file "dftlei5.ttc")) (define-font dftlesaa.jtex jtex-common (kanji-font dftlesaa)) (define-font dftlesaa ttf-kanji-common (font-file "dftlei7.ttc")) (define-font tdftlesaa.jtex jtex-tcommon (kanji-font tdftlesaa)) (define-font tdftlesaa ttf-kanji-common (font-file "dftlei7.ttc")) (define-font dftlevaa.jtex jtex-common (kanji-font dftlevaa)) (define-font dftlevaa ttf-kanji-common (font-file "dftlei9.ttc")) (define-font tdftlevaa.jtex jtex-tcommon (kanji-font tdftlevaa)) (define-font tdftlevaa ttf-kanji-common (font-file "dftlei9.ttc")) (define-font dfrulpaa.jtex jtex-common (kanji-font dfrulpaa)) (define-font dfrulpaa ttf-kanji-common (font-file "dfrule5.ttc")) (define-font tdfrulpaa.jtex jtex-tcommon (kanji-font tdfrulpaa)) (define-font tdfrulpaa ttf-kanji-common (font-file "dfrule5.ttc")) (define-font dfrulsaa.jtex jtex-common (kanji-font dfrulsaa)) (define-font dfrulsaa ttf-kanji-common (font-file "dfrule7.ttc")) (define-font tdfrulsaa.jtex jtex-tcommon (kanji-font tdfrulsaa)) (define-font tdfrulsaa ttf-kanji-common (font-file "dfrule7.ttc")) (define-font dfsumzaa.jtex jtex-common (kanji-font dfsumzaa)) (define-font dfsumzaa ttf-kanji-common (font-file "dfsumoc.ttc")) (define-font tdfsumzaa.jtex jtex-tcommon (kanji-font tdfsumzaa)) (define-font tdfsumzaa ttf-kanji-common (font-file "dfsumoc.ttc")) (define-font dfkoioaa.jtex jtex-common (kanji-font dfkoioaa)) (define-font dfkoioaa ttf-kanji-common (font-file "dfkoin4.ttc")) (define-font tdfkoioaa.jtex jtex-tcommon (kanji-font tdfkoioaa)) (define-font tdfkoioaa ttf-kanji-common (font-file "dfkoin4.ttc")) (define-font dfsogpaa.jtex jtex-common (kanji-font dfsogpaa)) (define-font dfsogpaa ttf-kanji-common (font-file "dfsoge5.ttc")) (define-font tdfsogpaa.jtex jtex-tcommon (kanji-font tdfsogpaa)) (define-font tdfsogpaa ttf-kanji-common (font-file "dfsoge5.ttc")) (define-font dfsogsaa.jtex jtex-common (kanji-font dfsogsaa)) (define-font dfsogsaa ttf-kanji-common (font-file "dfsoge7.ttc")) (define-font tdfsogsaa.jtex jtex-tcommon (kanji-font tdfsogsaa)) (define-font tdfsogsaa ttf-kanji-common (font-file "dfsoge7.ttc")) (define-font dfsogvaa.jtex jtex-common (kanji-font dfsogvaa)) (define-font dfsogvaa ttf-kanji-common (font-file "dfsoge9.ttc")) (define-font tdfsogvaa.jtex jtex-tcommon (kanji-font tdfsogvaa)) (define-font tdfsogvaa ttf-kanji-common (font-file "dfsoge9.ttc")) (define-font rcgyopaa.jtex jtex-common (kanji-font rcgyopaa)) (define-font rcgyopaa ttf-kanji-common (font-file "hgrgysj.ttc")) (define-font trcgyopaa.jtex jtex-tcommon (kanji-font trcgyopaa)) (define-font trcgyopaa ttf-kanji-common (font-file "hgrgysj.ttc")) (define-font rckykmaa.jtex jtex-common (kanji-font rckykmaa)) (define-font rckykmaa ttf-kanji-common (font-file "hgrkksj.ttc")) (define-font trckykmaa.jtex jtex-tcommon (kanji-font trckykmaa)) (define-font trckykmaa ttf-kanji-common (font-file "hgrkksj.ttc")) (define-font rckaipaa.jtex jtex-common (kanji-font rckaipaa)) (define-font rckaipaa ttf-kanji-common (font-file "hgrsksj.ttc")) (define-font trckaipaa.jtex jtex-tcommon (kanji-font trckaipaa)) (define-font trckaipaa ttf-kanji-common (font-file "hgrsksj.ttc")) (define-font rckkapaa.jtex jtex-common (kanji-font rckkapaa)) (define-font rckkapaa ttf-kanji-common (font-file "hgraksj.ttc")) (define-font trckkapaa.jtex jtex-tcommon (kanji-font trckkapaa)) (define-font trckkapaa ttf-kanji-common (font-file "hgraksj.ttc")) (define-font rchkgpaa.jtex jtex-common (kanji-font rchkgpaa)) (define-font rchkgpaa ttf-kanji-common (font-file "hgrhkgsj.ttc")) (define-font trchkgpaa.jtex jtex-tcommon (kanji-font trchkgpaa)) (define-font trchkgpaa ttf-kanji-common (font-file "hgrhkgsj.ttc")) (define-font rchkfsaa.jtex jtex-common (kanji-font rchkfsaa)) (define-font rchkfsaa ttf-kanji-common (font-file "hgrhkfsj.ttc")) (define-font trchkfsaa.jtex jtex-tcommon (kanji-font trchkfsaa)) (define-font trchkfsaa ttf-kanji-common (font-file "hgrhkfsj.ttc")) (define-font rctfkpaa.jtex jtex-common (kanji-font rctfkpaa)) (define-font rctfkpaa ttf-kanji-common (font-file "hgrbfksj.ttf")) (define-font trctfkpaa.jtex jtex-tcommon (kanji-font trctfkpaa)) (define-font trctfkpaa ttf-kanji-common (font-file "hgrbfksj.ttf")) (define-font rctrepaa.jtex jtex-common (kanji-font rctrepaa)) (define-font rctrepaa ttf-kanji-common (font-file "hgrbresj.ttf")) (define-font trctrepaa.jtex jtex-tcommon (kanji-font trctrepaa)) (define-font trctrepaa ttf-kanji-common (font-file "hgrbresj.ttf")) (define-font rchagmaa.jtex jtex-common (kanji-font rchagmaa)) (define-font rchagmaa ttf-kanji-common (font-file "hgrhalsj.ttf")) (define-font trchagmaa.jtex jtex-tcommon (kanji-font trchagmaa)) (define-font trchagmaa ttf-kanji-common (font-file "hgrhalsj.ttf")) (define-font rchagpaa.jtex jtex-common (kanji-font rchagpaa)) (define-font rchagpaa ttf-kanji-common (font-file "hgrhamsj.ttf")) (define-font trchagpaa.jtex jtex-tcommon (kanji-font trchagpaa)) (define-font trchagpaa ttf-kanji-common (font-file "hgrhamsj.ttf")) (define-font rchagsaa.jtex jtex-common (kanji-font rchagsaa)) (define-font rchagsaa ttf-kanji-common (font-file "hgrhabsj.ttf")) (define-font trchagsaa.jtex jtex-tcommon (kanji-font trchagsaa)) (define-font trchagsaa ttf-kanji-common (font-file "hgrhabsj.ttf")) (define-font rchagvaa.jtex jtex-common (kanji-font rchagvaa)) (define-font rchagvaa ttf-kanji-common (font-file "hgrhaesj.ttf")) (define-font trchagvaa.jtex jtex-tcommon (kanji-font trchagvaa)) (define-font trchagvaa ttf-kanji-common (font-file "hgrhaesj.ttf")) (define-font rcckssaa.jtex jtex-common (kanji-font rcckssaa)) (define-font rcckssaa ttf-kanji-common (font-file "hgrcksj.ttc")) (define-font trcckssaa.jtex jtex-tcommon (kanji-font trcckssaa)) (define-font trcckssaa ttf-kanji-common (font-file "hgrcksj.ttc")) (define-font rcspnmaa.jtex jtex-common (kanji-font rcspnmaa)) (define-font rcspnmaa ttf-kanji-common (font-file "hgrpn1sj.ttc")) (define-font trcspnmaa.jtex jtex-tcommon (kanji-font trcspnmaa)) (define-font trcspnmaa ttf-kanji-common (font-file "hgrpn1sj.ttc")) (define-font rchkpmaa.jtex jtex-common (kanji-font rchkpmaa)) (define-font rchkpmaa ttf-kanji-common (font-file "hgrhkpsj.ttc")) (define-font trchkpmaa.jtex jtex-tcommon (kanji-font trchkpmaa)) (define-font trchkpmaa ttf-kanji-common (font-file "hgrhkpsj.ttc")) (define-font rcppkvaa.jtex jtex-common (kanji-font rcppkvaa)) (define-font rcppkvaa ttf-kanji-common (font-file "hgrpp1sj.ttc")) (define-font trcppkvaa.jtex jtex-tcommon (kanji-font trcppkvaa)) (define-font trcppkvaa ttf-kanji-common (font-file "hgrpp1sj.ttc")) (define-font rcppmvaa.jtex jtex-common (kanji-font rcppmvaa)) (define-font rcppmvaa ttf-kanji-common (font-file "hgrpp2sj.ttc")) (define-font trcppmvaa.jtex jtex-tcommon (kanji-font trcppmvaa)) (define-font trcppmvaa ttf-kanji-common (font-file "hgrpp2sj.ttc")) (define-font rcaguxaa.jtex jtex-common (kanji-font rcaguxaa)) (define-font rcaguxaa ttf-kanji-common (font-file "hgragusj.ttc")) (define-font trcaguxaa.jtex jtex-tcommon (kanji-font trcaguxaa)) (define-font trcaguxaa ttf-kanji-common (font-file "hgragusj.ttc")) (define-font rcashxaa.jtex jtex-common (kanji-font rcashxaa)) (define-font rcashxaa ttf-kanji-common (font-file "hgrashsj.ttf")) (define-font trcashxaa.jtex jtex-tcommon (kanji-font trcashxaa)) (define-font trcashxaa ttf-kanji-common (font-file "hgrashsj.ttf")) (define-font rcapfxaa.jtex jtex-common (kanji-font rcapfxaa)) (define-font rcapfxaa ttf-kanji-common (font-file "hgrapsj.ttf")) (define-font trcapfxaa.jtex jtex-tcommon (kanji-font trcapfxaa)) (define-font trcapfxaa ttf-kanji-common (font-file "hgrapsj.ttf")) (define-font rcaplxaa.jtex jtex-common (kanji-font rcaplxaa)) (define-font rcaplxaa ttf-kanji-common (font-file "hgraplsj.ttf")) (define-font trcaplxaa.jtex jtex-tcommon (kanji-font trcaplxaa)) (define-font trcaplxaa ttf-kanji-common (font-file "hgraplsj.ttf")) (define-font rcapsxaa.jtex jtex-common (kanji-font rcapsxaa)) (define-font rcapsxaa ttf-kanji-common (font-file "hgrapssj.ttf")) (define-font trcapsxaa.jtex jtex-tcommon (kanji-font trcapsxaa)) (define-font trcapsxaa ttf-kanji-common (font-file "hgrapssj.ttf")) (define-font rckedxaa.jtex jtex-common (kanji-font rckedxaa)) (define-font rckedxaa ttf-kanji-common (font-file "hgrkrsj.ttc")) (define-font trckedxaa.jtex jtex-tcommon (kanji-font trckedxaa)) (define-font trckedxaa ttf-kanji-common (font-file "hgrkrsj.ttc")) (define-font rcaegxaa.jtex jtex-common (kanji-font rcaegxaa)) (define-font rcaegxaa ttf-kanji-common (font-file "hgraesj.ttf")) (define-font trcaegxaa.jtex jtex-tcommon (kanji-font trcaegxaa)) (define-font trcaegxaa ttf-kanji-common (font-file "hgraesj.ttf")) (define-font rcadhxaa.jtex jtex-common (kanji-font rcadhxaa)) (define-font rcadhxaa ttf-kanji-common (font-file "hgradhsj.ttc")) (define-font trcadhxaa.jtex jtex-tcommon (kanji-font trcadhxaa)) (define-font trcadhxaa ttf-kanji-common (font-file "hgradhsj.ttc")) (define-font rchigxaa.jtex jtex-common (kanji-font rchigxaa)) (define-font rchigxaa ttf-kanji-common (font-file "hgrah2sj.ttc")) (define-font trchigxaa.jtex jtex-tcommon (kanji-font trchigxaa)) (define-font trchigxaa ttf-kanji-common (font-file "hgrah2sj.ttc")) (define-font rcakgxaa.jtex jtex-common (kanji-font rcakgxaa)) (define-font rcakgxaa ttf-kanji-common (font-file "hgrakgsj.ttc")) (define-font trcakgxaa.jtex jtex-tcommon (kanji-font trcakgxaa)) (define-font trcakgxaa ttf-kanji-common (font-file "hgrakgsj.ttc")) (define-font rccremaa.jtex jtex-common (kanji-font rccremaa)) (define-font rccremaa ttf-kanji-common (font-file "hgrcresj.ttc")) (define-font trccremaa.jtex jtex-tcommon (kanji-font trccremaa)) (define-font trccremaa ttf-kanji-common (font-file "hgrcresj.ttc")) (define-font rccbkpaa.jtex jtex-common (kanji-font rccbkpaa)) (define-font rccbkpaa ttf-kanji-common (font-file "hgrcbsj.ttc")) (define-font trccbkpaa.jtex jtex-tcommon (kanji-font trccbkpaa)) (define-font trccbkpaa ttf-kanji-common (font-file "hgrcbsj.ttc")) (define-font rcamgvaa.jtex jtex-common (kanji-font rcamgvaa)) (define-font rcamgvaa ttf-kanji-common (font-file "hgramgsj.ttc")) (define-font trcamgvaa.jtex jtex-tcommon (kanji-font trcamgvaa)) (define-font trcamgvaa ttf-kanji-common (font-file "hgramgsj.ttc")) (define-font rcaigxaa.jtex jtex-common (kanji-font rcaigxaa)) (define-font rcaigxaa ttf-kanji-common (font-file "hgraigsj.ttc")) (define-font trcaigxaa.jtex jtex-tcommon (kanji-font trcaigxaa)) (define-font trcaigxaa ttf-kanji-common (font-file "hgraigsj.ttc")) (define-font rcaisxaa.jtex jtex-common (kanji-font rcaisxaa)) (define-font rcaisxaa ttf-kanji-common (font-file "hgraissj.ttc")) (define-font trcaisxaa.jtex jtex-tcommon (kanji-font trcaisxaa)) (define-font trcaisxaa ttf-kanji-common (font-file "hgraissj.ttc")) (define-font rctsexaa.jtex jtex-common (kanji-font rctsexaa)) (define-font rctsexaa ttf-kanji-common (font-file "hgrtsesj.ttc")) (define-font trctsexaa.jtex jtex-tcommon (kanji-font trctsexaa)) (define-font trctsexaa ttf-kanji-common (font-file "hgrtsesj.ttc")) (define-font rchmnmaa.jtex jtex-common (kanji-font rchmnmaa)) (define-font rchmnmaa ttf-kanji-common (font-file "hgrhm3sj.ttc")) (define-font trchmnmaa.jtex jtex-tcommon (kanji-font trchmnmaa)) (define-font trchmnmaa ttf-kanji-common (font-file "hgrhm3sj.ttc")) (define-font rchmnvaa.jtex jtex-common (kanji-font rchmnvaa)) (define-font rchmnvaa ttf-kanji-common (font-file "hgrhm9sj.ttc")) (define-font trchmnvaa.jtex jtex-tcommon (kanji-font trchmnvaa)) (define-font trchmnvaa ttf-kanji-common (font-file "hgrhm9sj.ttc")) (define-font rchgopaa.jtex jtex-common (kanji-font rchgopaa)) (define-font rchgopaa ttf-kanji-common (font-file "hgrhg5sj.ttc")) (define-font trchgopaa.jtex jtex-tcommon (kanji-font trchgopaa)) (define-font trchgopaa ttf-kanji-common (font-file "hgrhg5sj.ttc")) (define-font rchgovaa.jtex jtex-common (kanji-font rchgovaa)) (define-font rchgovaa ttf-kanji-common (font-file "hgrhg9sj.ttc")) (define-font trchgovaa.jtex jtex-tcommon (kanji-font trchgovaa)) (define-font trchgovaa ttf-kanji-common (font-file "hgrhg9sj.ttc")) (define-font rchglvaa.jtex jtex-common (kanji-font rchglvaa)) (define-font rchglvaa ttf-kanji-common (font-file "hgrg9lsj.ttf")) (define-font trchglvaa.jtex jtex-tcommon (kanji-font trchglvaa)) (define-font trchglvaa ttf-kanji-common (font-file "hgrg9lsj.ttf")) (define-font rchgsvaa.jtex jtex-common (kanji-font rchgsvaa)) (define-font rchgsvaa ttf-kanji-common (font-file "hgrg9ssj.ttf")) (define-font trchgsvaa.jtex jtex-tcommon (kanji-font trchgsvaa)) (define-font trchgsvaa ttf-kanji-common (font-file "hgrg9ssj.ttf")) (define-font rchrgoaa.jtex jtex-common (kanji-font rchrgoaa)) (define-font rchrgoaa ttf-kanji-common (font-file "hgrhr4sj.ttc")) (define-font trchrgoaa.jtex jtex-tcommon (kanji-font trchrgoaa)) (define-font trchrgoaa ttf-kanji-common (font-file "hgrhr4sj.ttc")) ;; ----------------------------------------------------------------- (define-macro illust-common (font-class ascii-jtex-kanji) (kanji-font-magnification 0.95) (metric-adjustment-file "none.adj")) (define-macro illust-tcommon (font-class ascii-jtex-kanji) (kanji-font-magnification 0.95) (metric-adjustment-file "tnone.adj")) (define-font fjillmaa.jtex illust-common (kanji-font fjillmaa)) (define-font fjillmaa ttf-kanji-common (font-file "f5ajcsxx.ttf")) (define-font tfjillmaa.jtex illust-tcommon (kanji-font tfjillmaa)) (define-font tfjillmaa ttf-kanji-common (font-file "f5ajcsxx.ttf")) ;; ----------------------------------------------------------------- ;; Hangle Font from HanYang (http://www.hanyang.co.kr/) (define-font hangleh (font-class truetype) (platform-id "microsoft") (character-set "KSC5601") (encoding "ISO2022") (dpi $TeX_DPI) (font-file "Web_bt_w.ttc")) ;; ----------------------------------------------------------------- ;; Fonts From UnionWay (http://www.unionway.com/) (define-font uw-kr (font-class truetype) (platform-id "microsoft") (character-set "KSC5601") (encoding "ISO2022") (dpi $TeX_DPI) (font-file "uwkmjf.ttf")) (define-font uw-ch-trad (font-class truetype) (platform-id "microsoft") (character-set "BIG5") (encoding "ISO2022") (dpi $TeX_DPI) (font-file "uwcxmf.ttf")) (define-font uw-ch-simp (font-class truetype) (platform-id "microsoft") (character-set "GB2312") (encoding "ISO2022") (dpi $TeX_DPI) (font-file "uwpstj.ttf")) (define-font uw-ja (font-class truetype) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022") (dpi $TeX_DPI) (font-file "uwkmjf.ttf")) ;; ----------------------------------------------------------------- ;EOF vflib3-3.6.14.dfsg/vflibcaps/vflibcap-tex-ja-ttf0000644000175000017500000037070307575242207020753 0ustar mohuramohura;; a vflibcap file generated by 'vflmkcaptex' automatically ;; at 2002ǯ 1210 1033ʬ58 JST ;; on home.kakugawa.hiroshima-u.ac.jp by kakugawa ;; ;; command line arguments given to generate this vflibcap: ;; vflmkcaptex kakugawa -i ;; ;; ------------------------------------------------------- ;; *** VFlib defaults *** ;; Generated by vflmkvfl ;; at Tue Dec 10 10:33:58 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkvfl -n cx -r 300 -p xgdvi -k -i TeX -c jisx0201_unicode.ccv -c jisx0208_unicode.ccv -c jisx0208sjis_unicode.ccv -c jisx0212_unicode.ccv (define-default VFlib (extension-hints) (implicit-font-classes TeX) (uncompression-programs (".Z" "gzip -cd") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "xgdvi")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files "jisx0201_unicode.ccv" "jisx0208_unicode.ccv" "jisx0208sjis_unicode.ccv" "jisx0212_unicode.ccv")) ;; ------------------------------------------------------- ;; *** TeX Font Mapper *** ;; Generated by vflmktex ;; at Tue Dec 10 10:33:58 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmktex -r $TeX_DPI -d TEXMF -m pk %f.%dpk -m vf %f.vf -m type1 %f.pfb -m tfm %f.%dtfm (define-default TeX (dpi $TeX_DPI) (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm" ".ofm") (font-mapping ((pk "%f.%dpk") *) ((vf "%f.vf" point-size-from-tfm) *) ((type1 "%f.pfb" point-size-from-tfm) *) ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ; 240 dpi devices 240 240 263 288 312 346 415 498 597) (300 ; 300 dpi devices 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ; 400 dpi devices 400 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ; 600 dpi devices 600 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540))) ;; ------------------------------------------------------- ;; *** PK *** ;; Generated by vflmkpk ;; at Tue Dec 10 10:33:58 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkpk -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI (define-default pk (font-directories "TEXMF") (dpi $TeX_DPI)) ;; ------------------------------------------------------- ;; *** Virtual Font *** ;; Generated by vflmkvf ;; at Tue Dec 10 10:33:58 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkvf -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI -m any %f.pk (define-default vf (font-directories "TEXMF") (dpi $TeX_DPI) (filename-extensions ".vf" ".ovf") (open-style "try") (glyph-style "fill") (font-mapping ((* "%f.pk") *))) ;; ------------------------------------------------------- ;; *** Type 1 *** ;; Generated by vflmkt1 ;; at Tue Dec 10 10:33:59 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkt1 -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI -x .pk -a TEXMF -e /usr/local/share/VFlib/3.6.13/t1lib -e /usr/local/share/VFlib/site -e /usr/local/share/VFlib/site/t1lib -f -t -d /usr/Acrobat3/Fonts -d /usr/Acrobat4/Resource/Font -d /usr/Acrobat5/Resource/Font -d /opt/Acrobat3/Fonts -d /opt/Acrobat4/Resource/Font -d /opt/Acrobat5/Resource/Font -d /usr/lpp/Acrobat3/Fonts -d /usr/lpp/Acrobat4/Resource/Font -d /usr/lpp/Acrobat5/Resource/Font -d /usr/local/Acrobat3/Fonts -d /usr/local/Acrobat4/Resource/Font -d /usr/local/Acrobat5/Resource/Font -a /usr/local/share/ghostscript/7.05/lib -a /usr/local/share/ghostscript/fonts -gf /usr/local/share/ghostscript/7.05/lib -gf /usr/local/share/ghostscript/fonts -gm /usr/local/share/ghostscript/7.05/lib/Fontmap cmfonts.map lafonts.map eufonts.map psfonts.map xypic.map (define-default type1 (font-directories "TEXMF" "/usr/Acrobat3/Fonts" "/usr/Acrobat4/Resource/Font" "/usr/Acrobat5/Resource/Font" "/opt/Acrobat3/Fonts" "/opt/Acrobat4/Resource/Font" "/opt/Acrobat5/Resource/Font" "/usr/lpp/Acrobat3/Fonts" "/usr/lpp/Acrobat4/Resource/Font" "/usr/lpp/Acrobat5/Resource/Font" "/usr/local/Acrobat3/Fonts" "/usr/local/Acrobat4/Resource/Font" "/usr/local/Acrobat5/Resource/Font" "/usr/local/share/ghostscript/7.05/lib" "/usr/local/share/ghostscript/fonts") (afm-directories "TEXMF" "/usr/local/share/ghostscript/7.05/lib" "/usr/local/share/ghostscript/fonts") (encoding-vector-directories "/usr/local/share/VFlib/3.6.13/t1lib" "/usr/local/share/VFlib/site" "/usr/local/share/VFlib/site/t1lib") (log-level "none") (dpi $TeX_DPI)) ;; dvips mapfile: /usr/local/share/texmf/dvips/base/cmfonts.map (define-font cmbxsl10.pk (font-class type1) (point-size 10.00) (tfm "cmbxsl10") (font-file "cmbxsl10.pfb")) (define-font cmbxti10.pk (font-class type1) (point-size 10.00) (tfm "cmbxti10") (font-file "cmbxti10.pfb")) (define-font cmbx10.pk (font-class type1) (point-size 10.00) (tfm "cmbx10") (font-file "cmbx10.pfb")) (define-font cmbx12.pk (font-class type1) (point-size 12.00) (tfm "cmbx12") (font-file "cmbx12.pfb")) (define-font cmbx5.pk (font-class type1) (point-size 5.00) (tfm "cmbx5") (font-file "cmbx5.pfb")) (define-font cmbx6.pk (font-class type1) (point-size 6.00) (tfm "cmbx6") (font-file "cmbx6.pfb")) (define-font cmbx7.pk (font-class type1) (point-size 7.00) (tfm "cmbx7") (font-file "cmbx7.pfb")) (define-font cmbx8.pk (font-class type1) (point-size 8.00) (tfm "cmbx8") (font-file "cmbx8.pfb")) (define-font cmbx9.pk (font-class type1) (point-size 9.00) (tfm "cmbx9") (font-file "cmbx9.pfb")) (define-font cmb10.pk (font-class type1) (point-size 10.00) (tfm "cmb10") (font-file "cmb10.pfb")) (define-font cmdunh10.pk (font-class type1) (point-size 10.00) (tfm "cmdunh10") (font-file "cmdunh10.pfb")) (define-font cmff10.pk (font-class type1) (point-size 10.00) (tfm "cmff10") (font-file "cmff10.pfb")) (define-font cmfib8.pk (font-class type1) (point-size 8.00) (tfm "cmfib8") (font-file "cmfib8.pfb")) (define-font cmfi10.pk (font-class type1) (point-size 10.00) (tfm "cmfi10") (font-file "cmfi10.pfb")) (define-font cmr10.pk (font-class type1) (point-size 10.00) (tfm "cmr10") (font-file "cmr10.pfb")) (define-font cmr12.pk (font-class type1) (point-size 12.00) (tfm "cmr12") (font-file "cmr12.pfb")) (define-font cmr17.pk (font-class type1) (point-size 17.28) (tfm "cmr17") (font-file "cmr17.pfb")) (define-font cmr6.pk (font-class type1) (point-size 6.00) (tfm "cmr6") (font-file "cmr6.pfb")) (define-font cmr7.pk (font-class type1) (point-size 7.00) (tfm "cmr7") (font-file "cmr7.pfb")) (define-font cmr8.pk (font-class type1) (point-size 8.00) (tfm "cmr8") (font-file "cmr8.pfb")) (define-font cmr9.pk (font-class type1) (point-size 9.00) (tfm "cmr9") (font-file "cmr9.pfb")) (define-font cmsl10.pk (font-class type1) (point-size 10.00) (tfm "cmsl10") (font-file "cmsl10.pfb")) (define-font cmsl12.pk (font-class type1) (point-size 12.00) (tfm "cmsl12") (font-file "cmsl12.pfb")) (define-font cmsl8.pk (font-class type1) (point-size 8.00) (tfm "cmsl8") (font-file "cmsl8.pfb")) (define-font cmsl9.pk (font-class type1) (point-size 9.00) (tfm "cmsl9") (font-file "cmsl9.pfb")) (define-font cmssbx10.pk (font-class type1) (point-size 10.00) (tfm "cmssbx10") (font-file "cmssbx10.pfb")) (define-font cmssdc10.pk (font-class type1) (point-size 10.00) (tfm "cmssdc10") (font-file "cmssdc10.pfb")) (define-font cmssi10.pk (font-class type1) (point-size 10.00) (tfm "cmssi10") (font-file "cmssi10.pfb")) (define-font cmssi12.pk (font-class type1) (point-size 12.00) (tfm "cmssi12") (font-file "cmssi12.pfb")) (define-font cmssi17.pk (font-class type1) (point-size 17.28) (tfm "cmssi17") (font-file "cmssi17.pfb")) (define-font cmssi8.pk (font-class type1) (point-size 8.00) (tfm "cmssi8") (font-file "cmssi8.pfb")) (define-font cmssi9.pk (font-class type1) (point-size 9.00) (tfm "cmssi9") (font-file "cmssi9.pfb")) (define-font cmssqi8.pk (font-class type1) (point-size 8.00) (tfm "cmssqi8") (font-file "cmssqi8.pfb")) (define-font cmssq8.pk (font-class type1) (point-size 8.00) (tfm "cmssq8") (font-file "cmssq8.pfb")) (define-font cmss10.pk (font-class type1) (point-size 10.00) (tfm "cmss10") (font-file "cmss10.pfb")) (define-font cmss12.pk (font-class type1) (point-size 12.00) (tfm "cmss12") (font-file "cmss12.pfb")) (define-font cmss17.pk (font-class type1) (point-size 17.28) (tfm "cmss17") (font-file "cmss17.pfb")) (define-font cmss8.pk (font-class type1) (point-size 8.00) (tfm "cmss8") (font-file "cmss8.pfb")) (define-font cmss9.pk (font-class type1) (point-size 9.00) (tfm "cmss9") (font-file "cmss9.pfb")) (define-font cmti10.pk (font-class type1) (point-size 10.00) (tfm "cmti10") (font-file "cmti10.pfb")) (define-font cmti12.pk (font-class type1) (point-size 12.00) (tfm "cmti12") (font-file "cmti12.pfb")) (define-font cmti7.pk (font-class type1) (point-size 7.00) (tfm "cmti7") (font-file "cmti7.pfb")) (define-font cmti8.pk (font-class type1) (point-size 8.00) (tfm "cmti8") (font-file "cmti8.pfb")) (define-font cmti9.pk (font-class type1) (point-size 9.00) (tfm "cmti9") (font-file "cmti9.pfb")) (define-font cmu10.pk (font-class type1) (point-size 10.00) (tfm "cmu10") (font-file "cmu10.pfb")) (define-font cmvtt10.pk (font-class type1) (point-size 10.00) (tfm "cmvtt10") (font-file "cmvtt10.pfb")) (define-font cmcsc10.pk (font-class type1) (point-size 10.00) (tfm "cmcsc10") (font-file "cmcsc10.pfb")) (define-font cmcsc8.pk (font-class type1) (point-size 8.00) (tfm "cmcsc8") (font-file "cmcsc8.pfb")) (define-font cmcsc9.pk (font-class type1) (point-size 9.00) (tfm "cmcsc9") (font-file "cmcsc9.pfb")) (define-font cmr5.pk (font-class type1) (point-size 5.00) (tfm "cmr5") (font-file "cmr5.pfb")) (define-font cmtex10.pk (font-class type1) (point-size 10.00) (tfm "cmtex10") (font-file "cmtex10.pfb")) (define-font cmtex8.pk (font-class type1) (point-size 8.00) (tfm "cmtex8") (font-file "cmtex8.pfb")) (define-font cmtex9.pk (font-class type1) (point-size 9.00) (tfm "cmtex9") (font-file "cmtex9.pfb")) (define-font cmitt10.pk (font-class type1) (point-size 10.00) (tfm "cmitt10") (font-file "cmitt10.pfb")) (define-font cmsltt10.pk (font-class type1) (point-size 10.00) (tfm "cmsltt10") (font-file "cmsltt10.pfb")) (define-font cmtcsc10.pk (font-class type1) (point-size 10.00) (tfm "cmtcsc10") (font-file "cmtcsc10.pfb")) (define-font cmtt10.pk (font-class type1) (point-size 10.00) (tfm "cmtt10") (font-file "cmtt10.pfb")) (define-font cmtt12.pk (font-class type1) (point-size 12.00) (tfm "cmtt12") (font-file "cmtt12.pfb")) (define-font cmtt8.pk (font-class type1) (point-size 8.00) (tfm "cmtt8") (font-file "cmtt8.pfb")) (define-font cmtt9.pk (font-class type1) (point-size 9.00) (tfm "cmtt9") (font-file "cmtt9.pfb")) (define-font cmex10.pk (font-class type1) (point-size 10.00) (tfm "cmex10") (font-file "cmex10.pfb")) (define-font cmbsy10.pk (font-class type1) (point-size 10.00) (tfm "cmbsy10") (font-file "cmbsy10.pfb")) (define-font cmsy10.pk (font-class type1) (point-size 10.00) (tfm "cmsy10") (font-file "cmsy10.pfb")) (define-font cmsy5.pk (font-class type1) (point-size 5.00) (tfm "cmsy5") (font-file "cmsy5.pfb")) (define-font cmsy6.pk (font-class type1) (point-size 6.00) (tfm "cmsy6") (font-file "cmsy6.pfb")) (define-font cmsy7.pk (font-class type1) (point-size 7.00) (tfm "cmsy7") (font-file "cmsy7.pfb")) (define-font cmsy8.pk (font-class type1) (point-size 8.00) (tfm "cmsy8") (font-file "cmsy8.pfb")) (define-font cmsy9.pk (font-class type1) (point-size 9.00) (tfm "cmsy9") (font-file "cmsy9.pfb")) (define-font cmmib10.pk (font-class type1) (point-size 10.00) (tfm "cmmib10") (font-file "cmmib10.pfb")) (define-font cmmi10.pk (font-class type1) (point-size 10.00) (tfm "cmmi10") (font-file "cmmi10.pfb")) (define-font cmmi12.pk (font-class type1) (point-size 12.00) (tfm "cmmi12") (font-file "cmmi12.pfb")) (define-font cmmi5.pk (font-class type1) (point-size 5.00) (tfm "cmmi5") (font-file "cmmi5.pfb")) (define-font cmmi6.pk (font-class type1) (point-size 6.00) (tfm "cmmi6") (font-file "cmmi6.pfb")) (define-font cmmi7.pk (font-class type1) (point-size 7.00) (tfm "cmmi7") (font-file "cmmi7.pfb")) (define-font cmmi8.pk (font-class type1) (point-size 8.00) (tfm "cmmi8") (font-file "cmmi8.pfb")) (define-font cmmi9.pk (font-class type1) (point-size 9.00) (tfm "cmmi9") (font-file "cmmi9.pfb")) (define-font cminch.pk (font-class type1) (point-size 104.07) (tfm "cminch") (font-file "cminch.pfb")) ;; end of /usr/local/share/texmf/dvips/base/cmfonts.map ;; dvips mapfile: /usr/local/share/texmf/dvips/base/lafonts.map (define-font lasy5.pk (font-class type1) (point-size 5.00) (tfm "lasy5") (font-file "lasy5.pfb")) (define-font lasy6.pk (font-class type1) (point-size 6.00) (tfm "lasy6") (font-file "lasy6.pfb")) (define-font lasy7.pk (font-class type1) (point-size 7.00) (tfm "lasy7") (font-file "lasy7.pfb")) (define-font lasy8.pk (font-class type1) (point-size 8.00) (tfm "lasy8") (font-file "lasy8.pfb")) (define-font lasy9.pk (font-class type1) (point-size 9.00) (tfm "lasy9") (font-file "lasy9.pfb")) (define-font lasy10.pk (font-class type1) (point-size 10.00) (tfm "lasy10") (font-file "lasy10.pfb")) (define-font lasyb10.pk (font-class type1) (point-size 10.00) (tfm "lasyb10") (font-file "lasyb10.pfb")) (define-font lcircle10.pk (font-class type1) (point-size 10.00) (tfm "lcircle10") (font-file "lcircle10.pfb")) (define-font lcirclew10.pk (font-class type1) (point-size 10.00) (tfm "lcirclew10") (font-file "lcirclew10.pfb")) (define-font line10.pk (font-class type1) (point-size 10.00) (tfm "line10") (font-file "line10.pfb")) (define-font linew10.pk (font-class type1) (point-size 10.00) (tfm "linew10") (font-file "linew10.pfb")) (define-font logo8.pk (font-class type1) (point-size 8.00) (tfm "logo8") (font-file "logo8.pfb")) (define-font logo9.pk (font-class type1) (point-size 9.00) (tfm "logo9") (font-file "logo9.pfb")) (define-font logo10.pk (font-class type1) (point-size 10.00) (tfm "logo10") (font-file "logo10.pfb")) (define-font logobf10.pk (font-class type1) (point-size 10.00) (tfm "logobf10") (font-file "logobf10.pfb")) (define-font logosl10.pk (font-class type1) (point-size 10.00) (tfm "logosl10") (font-file "logosl10.pfb")) ;; end of /usr/local/share/texmf/dvips/base/lafonts.map ;; dvips mapfile: /usr/local/share/texmf/dvips/base/eufonts.map (define-font euex10.pk (font-class type1) (point-size 10.00) (tfm "euex10") (font-file "euex10.pfb")) (define-font eufb10.pk (font-class type1) (point-size 10.00) (tfm "eufb10") (font-file "eufb10.pfb")) (define-font eufb5.pk (font-class type1) (point-size 5.00) (tfm "eufb5") (font-file "eufb5.pfb")) (define-font eufb7.pk (font-class type1) (point-size 7.00) (tfm "eufb7") (font-file "eufb7.pfb")) (define-font eufm10.pk (font-class type1) (point-size 10.00) (tfm "eufm10") (font-file "eufm10.pfb")) (define-font eufm5.pk (font-class type1) (point-size 5.00) (tfm "eufm5") (font-file "eufm5.pfb")) (define-font eufm7.pk (font-class type1) (point-size 7.00) (tfm "eufm7") (font-file "eufm7.pfb")) (define-font eurb10.pk (font-class type1) (point-size 10.00) (tfm "eurb10") (font-file "eurb10.pfb")) (define-font eurb5.pk (font-class type1) (point-size 5.00) (tfm "eurb5") (font-file "eurb5.pfb")) (define-font eurb7.pk (font-class type1) (point-size 7.00) (tfm "eurb7") (font-file "eurb7.pfb")) (define-font eurm10.pk (font-class type1) (point-size 10.00) (tfm "eurm10") (font-file "eurm10.pfb")) (define-font eurm5.pk (font-class type1) (point-size 5.00) (tfm "eurm5") (font-file "eurm5.pfb")) (define-font eurm7.pk (font-class type1) (point-size 7.00) (tfm "eurm7") (font-file "eurm7.pfb")) (define-font eusb10.pk (font-class type1) (point-size 10.00) (tfm "eusb10") (font-file "eusb10.pfb")) (define-font eusb5.pk (font-class type1) (point-size 5.00) (tfm "eusb5") (font-file "eusb5.pfb")) (define-font eusb7.pk (font-class type1) (point-size 7.00) (tfm "eusb7") (font-file "eusb7.pfb")) (define-font eusm10.pk (font-class type1) (point-size 10.00) (tfm "eusm10") (font-file "eusm10.pfb")) (define-font eusm5.pk (font-class type1) (point-size 5.00) (tfm "eusm5") (font-file "eusm5.pfb")) (define-font eusm7.pk (font-class type1) (point-size 7.00) (tfm "eusm7") (font-file "eusm7.pfb")) (define-font msam10.pk (font-class type1) (point-size 10.00) (tfm "msam10") (font-file "msam10.pfb")) (define-font msbm10.pk (font-class type1) (point-size 10.00) (tfm "msbm10") (font-file "msbm10.pfb")) ;; end of /usr/local/share/texmf/dvips/base/eufonts.map ;; dvips mapfile: /usr/local/share/texmf/dvips/base/psfonts.map (define-font rpagk.pk (font-class type1) (point-size 10.00) (tfm "rpagk") (font-file "AvantGarde-Book")) (define-font rpagko.pk (font-class type1) (point-size 10.00) (tfm "rpagko") (font-file "AvantGarde-BookOblique")) (define-font rpagd.pk (font-class type1) (point-size 10.00) (tfm "rpagd") (font-file "AvantGarde-Demi")) (define-font rpagdo.pk (font-class type1) (point-size 10.00) (tfm "rpagdo") (font-file "AvantGarde-DemiOblique")) (define-font rpbkl.pk (font-class type1) (point-size 10.00) (tfm "rpbkl") (font-file "Bookman-Light")) (define-font rpbkli.pk (font-class type1) (point-size 10.00) (tfm "rpbkli") (font-file "Bookman-LightItalic")) (define-font rpbkd.pk (font-class type1) (point-size 10.00) (tfm "rpbkd") (font-file "Bookman-Demi")) (define-font rpbkdi.pk (font-class type1) (point-size 10.00) (tfm "rpbkdi") (font-file "Bookman-DemiItalic")) (define-font rpcrr.pk (font-class type1) (point-size 10.00) (tfm "rpcrr") (font-file "Courier")) (define-font rpcrro.pk (font-class type1) (point-size 10.00) (tfm "rpcrro") (font-file "Courier-Oblique")) (define-font rpcrb.pk (font-class type1) (point-size 10.00) (tfm "rpcrb") (font-file "Courier-Bold")) (define-font rpcrbo.pk (font-class type1) (point-size 10.00) (tfm "rpcrbo") (font-file "Courier-BoldOblique")) (define-font rphvr.pk (font-class type1) (point-size 10.00) (tfm "rphvr") (font-file "Helvetica")) (define-font rphvro.pk (font-class type1) (point-size 10.00) (tfm "rphvro") (font-file "Helvetica-Oblique")) (define-font rphvb.pk (font-class type1) (point-size 10.00) (tfm "rphvb") (font-file "Helvetica-Bold")) (define-font rphvbo.pk (font-class type1) (point-size 10.00) (tfm "rphvbo") (font-file "Helvetica-BoldOblique")) (define-font rphvrrn.pk (font-class type1) (point-size 10.00) (tfm "rphvrrn") (font-file "Helvetica") (aspect-ratio 0.820)) (define-font rphvron.pk (font-class type1) (point-size 10.00) (tfm "rphvron") (font-file "Helvetica-Oblique") (aspect-ratio 0.820)) (define-font rphvbrn.pk (font-class type1) (point-size 10.00) (tfm "rphvbrn") (font-file "Helvetica-Bold") (aspect-ratio 0.820)) (define-font rphvbon.pk (font-class type1) (point-size 10.00) (tfm "rphvbon") (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820)) (define-font rpncr.pk (font-class type1) (point-size 10.00) (tfm "rpncr") (font-file "NewCenturySchlbk-Roman")) (define-font rpncri.pk (font-class type1) (point-size 10.00) (tfm "rpncri") (font-file "NewCenturySchlbk-Italic")) (define-font rpncb.pk (font-class type1) (point-size 10.00) (tfm "rpncb") (font-file "NewCenturySchlbk-Bold")) (define-font rpncbi.pk (font-class type1) (point-size 10.00) (tfm "rpncbi") (font-file "NewCenturySchlbk-BoldItalic")) (define-font rpplr.pk (font-class type1) (point-size 10.00) (tfm "rpplr") (font-file "Palatino-Roman")) (define-font rpplri.pk (font-class type1) (point-size 10.00) (tfm "rpplri") (font-file "Palatino-Italic")) (define-font rpplro.pk (font-class type1) (point-size 10.00) (tfm "rpplro") (font-file "Palatino-Roman") (slant-factor 0.167)) (define-font rpplb.pk (font-class type1) (point-size 10.00) (tfm "rpplb") (font-file "Palatino-Bold")) (define-font rpplbi.pk (font-class type1) (point-size 10.00) (tfm "rpplbi") (font-file "Palatino-BoldItalic")) (define-font rpplbu.pk (font-class type1) (point-size 10.00) (tfm "rpplbu") (font-file "Palatino-BoldItalic") (slant-factor -0.176)) (define-font rpplru.pk (font-class type1) (point-size 10.00) (tfm "rpplru") (font-file "Palatino-Italic") (slant-factor -0.176)) (define-font rpplrrn.pk (font-class type1) (point-size 10.00) (tfm "rpplrrn") (font-file "Palatino-Roman") (aspect-ratio 0.820)) (define-font rpplrre.pk (font-class type1) (point-size 10.00) (tfm "rpplrre") (font-file "Palatino-Roman") (aspect-ratio 1.200)) (define-font psyr.pk (font-class type1) (point-size 10.00) (tfm "psyr") (font-file "Symbol")) (define-font rpsyr.pk (font-class type1) (point-size 10.00) (tfm "rpsyr") (font-file "Symbol")) (define-font psyro.pk (font-class type1) (point-size 10.00) (tfm "psyro") (font-file "Symbol") (slant-factor 0.167)) (define-font rpsyro.pk (font-class type1) (point-size 10.00) (tfm "rpsyro") (font-file "Symbol") (slant-factor 0.167)) (define-font rptmr.pk (font-class type1) (point-size 10.00) (tfm "rptmr") (font-file "Times-Roman")) (define-font rptmri.pk (font-class type1) (point-size 10.00) (tfm "rptmri") (font-file "Times-Italic")) (define-font rptmro.pk (font-class type1) (point-size 10.00) (tfm "rptmro") (font-file "Times-Roman") (slant-factor 0.167)) (define-font rptmb.pk (font-class type1) (point-size 10.00) (tfm "rptmb") (font-file "Times-Bold")) (define-font rptmbi.pk (font-class type1) (point-size 10.00) (tfm "rptmbi") (font-file "Times-BoldItalic")) (define-font rptmbo.pk (font-class type1) (point-size 10.00) (tfm "rptmbo") (font-file "Times-Bold") (slant-factor 0.167)) (define-font rptmrrn.pk (font-class type1) (point-size 10.00) (tfm "rptmrrn") (font-file "Times-Roman") (aspect-ratio 0.800)) (define-font rptmrre.pk (font-class type1) (point-size 10.00) (tfm "rptmrre") (font-file "Times-Roman") (aspect-ratio 1.200)) (define-font pzdr.pk (font-class type1) (point-size 10.00) (tfm "pzdr") (font-file "ZapfDingbats")) (define-font rpzdr.pk (font-class type1) (point-size 10.00) (tfm "rpzdr") (font-file "ZapfDingbats")) (define-font rpzcmi.pk (font-class type1) (point-size 10.00) (tfm "rpzcmi") (font-file "ZapfChancery-MediumItalic")) (define-font rputr.pk (font-class type1) (font-file "putr.pfa")) (define-font rputri.pk (font-class type1) (font-file "putri.pfa")) (define-font rputb.pk (font-class type1) (font-file "putb.pfa")) (define-font rputbi.pk (font-class type1) (font-file "putbi.pfa")) (define-font rbchr.pk (font-class type1) (font-file "bchr.pfb")) (define-font rbchri.pk (font-class type1) (font-file "bchri.pfb")) (define-font rbchb.pk (font-class type1) (font-file "bchb.pfb")) (define-font rbchbi.pk (font-class type1) (font-file "bchbi.pfb")) (define-font ruaqrrc.pk (font-class type1) (font-file "uaqrrc.pfa")) (define-font rugqb.pk (font-class type1) (font-file "ugqb.pfa")) (define-font runmr.pk (font-class type1) (font-file "unmr.pfa")) (define-font runmrs.pk (font-class type1) (font-file "unmrs.pfa")) (define-font hlcr5s.pk (font-class type1) (font-file "hlcr5s.pfa")) (define-font hlcr5as.pk (font-class type1) (font-file "hlcr5as.pfa")) (define-font rpaab.pk (font-class type1) (font-file "paab.pfa")) (define-font rpadr.pk (font-class type1) (font-file "padr.pfa")) (define-font rpadri.pk (font-class type1) (font-file "padri.pfa")) (define-font rpads.pk (font-class type1) (font-file "pads.pfa")) (define-font rpadsi.pk (font-class type1) (font-file "padsi.pfa")) (define-font rpadb.pk (font-class type1) (font-file "padb.pfa")) (define-font rpadbi.pk (font-class type1) (font-file "padbi.pfa")) (define-font rpadrd.pk (font-class type1) (font-file "padrd.pfa")) (define-font rpadrx.pk (font-class type1) (font-file "padrx.pfa")) (define-font rpadrix.pk (font-class type1) (font-file "padrix.pfa")) (define-font rpadsx.pk (font-class type1) (font-file "padsx.pfa")) (define-font rpadbx.pk (font-class type1) (font-file "padbx.pfa")) (define-font rpadbix.pk (font-class type1) (font-file "padbix.pfa")) (define-font rpbdr.pk (font-class type1) (font-file "pbdr.pfa")) (define-font rpbdri.pk (font-class type1) (font-file "pbdri.pfa")) (define-font rpbdb.pk (font-class type1) (font-file "pbdb.pfa")) (define-font rpbdbi.pk (font-class type1) (font-file "pbdbi.pfa")) (define-font rpbdp.pk (font-class type1) (font-file "pbdp.pfa")) (define-font rpburw.pk (font-class type1) (font-file "pburw.pfa")) (define-font rpc5r.pk (font-class type1) (font-file "pc5r.pfa")) (define-font rpc5ri.pk (font-class type1) (font-file "pc5ri.pfa")) (define-font rpc3r.pk (font-class type1) (font-file "pc3r.pfa")) (define-font rpc3ri.pk (font-class type1) (font-file "pc3ri.pfa")) (define-font rphvrrc.pk (font-class type1) (font-file "phvrrc.pfa")) (define-font rphvroc.pk (font-class type1) (font-file "phvroc.pfa")) (define-font rphvbrc.pk (font-class type1) (font-file "phvbrc.pfa")) (define-font rphvboc.pk (font-class type1) (font-file "phvboc.pfa")) (define-font rpubr.pk (font-class type1) (font-file "pubr.pfa")) (define-font rpubri.pk (font-class type1) (font-file "pubri.pfa")) (define-font rpubb.pk (font-class type1) (font-file "pubb.pfa")) (define-font rpubbi.pk (font-class type1) (font-file "pubbi.pfa")) (define-font rplbk.pk (font-class type1) (font-file "plbk.pfa")) (define-font rplbko.pk (font-class type1) (font-file "plbko.pfa")) (define-font rplbd.pk (font-class type1) (font-file "plbd.pfa")) (define-font rplbdo.pk (font-class type1) (font-file "plbdo.pfa")) (define-font rpsvl.pk (font-class type1) (font-file "psvl.pfa")) (define-font rpsvli.pk (font-class type1) (font-file "psvli.pfa")) (define-font rpsvd.pk (font-class type1) (font-file "psvd.pfa")) (define-font rpsvdi.pk (font-class type1) (font-file "psvdi.pfa")) (define-font rphbr.pk (font-class type1) (font-file "phbr.pfa")) (define-font rpslr.pk (font-class type1) (font-file "pslr.pfa")) (define-font rplcr.pk (font-class type1) (font-file "plcr.pfa")) (define-font rplcri.pk (font-class type1) (font-file "plcri.pfa")) (define-font rplcro.pk (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167)) (define-font rplcb.pk (font-class type1) (font-file "plcb.pfa")) (define-font rplcbi.pk (font-class type1) (font-file "plcbi.pfa")) (define-font rplcrs.pk (font-class type1) (font-file "plcrs.pfa")) (define-font rplcris.pk (font-class type1) (font-file "plcris.pfa")) (define-font rplcbs.pk (font-class type1) (font-file "plcbs.pfa")) (define-font rplcbis.pk (font-class type1) (font-file "plcbis.pfa")) (define-font rplcrb.pk (font-class type1) (font-file "plcrb.pfa")) (define-font rplcrbi.pk (font-class type1) (font-file "plcrbi.pfa")) (define-font rplcbb.pk (font-class type1) (font-file "plcbb.pfa")) (define-font rplcrst.pk (font-class type1) (font-file "plcrst.pfa")) (define-font rplcrm.pk (font-class type1) (font-file "plcrm.pfa")) (define-font rplcrv.pk (font-class type1) (font-file "plcrv.pfa")) (define-font rplcry.pk (font-class type1) (font-file "plcry.pfa")) (define-font rylhr.pk (font-class type1) (font-file "ylhr.pfb")) (define-font lbr.pk (font-class type1) (point-size 10.00) (tfm "lbr") (font-file "lbr.pfb")) (define-font rylhri.pk (font-class type1) (font-file "ylhri.pfb")) (define-font lbi.pk (font-class type1) (point-size 10.00) (tfm "lbi") (font-file "lbi.pfb")) (define-font rylhro.pk (font-class type1) (font-file "ylhro.pfb")) (define-font lbsl.pk (font-class type1) (point-size 10.00) (tfm "lbsl") (font-file "lbsl.pfb")) (define-font rylhd.pk (font-class type1) (font-file "ylhd.pfb")) (define-font lbd.pk (font-class type1) (point-size 10.00) (tfm "lbd") (font-file "lbd.pfb")) (define-font rylhdi.pk (font-class type1) (font-file "ylhdi.pfb")) (define-font lbdi.pk (font-class type1) (point-size 10.00) (tfm "lbdi") (font-file "lbdi.pfb")) (define-font rylcrs.pk (font-class type1) (font-file "ylcrs.pfb")) (define-font lsr.pk (font-class type1) (point-size 10.00) (tfm "lsr") (font-file "lsr.pfb")) (define-font rylcds.pk (font-class type1) (font-file "ylcds.pfb")) (define-font lsd.pk (font-class type1) (point-size 10.00) (tfm "lsd") (font-file "lsd.pfb")) (define-font rylcdis.pk (font-class type1) (font-file "ylcdis.pfb")) (define-font lsdi.pk (font-class type1) (point-size 10.00) (tfm "lsdi") (font-file "lsdi.pfb")) (define-font rylcrst.pk (font-class type1) (font-file "ylcrst.pfb")) (define-font lstr.pk (font-class type1) (point-size 10.00) (tfm "lstr") (font-file "lstr.pfb")) (define-font rylcrost.pk (font-class type1) (font-file "ylcrost.pfb")) (define-font lsto.pk (font-class type1) (point-size 10.00) (tfm "lsto") (font-file "lsto.pfb")) (define-font rylcbst.pk (font-class type1) (font-file "ylcbst.pfb")) (define-font lstb.pk (font-class type1) (point-size 10.00) (tfm "lstb") (font-file "lstb.pfb")) (define-font rylcbost.pk (font-class type1) (font-file "ylcbost.pfb")) (define-font lstbo.pk (font-class type1) (point-size 10.00) (tfm "lstbo") (font-file "lstbo.pfb")) (define-font rylcr4.pk (font-class type1) (font-file "ylcr4.pfb")) (define-font lfr.pk (font-class type1) (point-size 10.00) (tfm "lfr") (font-file "lfr.pfb")) (define-font rylcr4i.pk (font-class type1) (font-file "ylcr4i.pfb")) (define-font lfi.pk (font-class type1) (point-size 10.00) (tfm "lfi") (font-file "lfi.pfb")) (define-font rylcd4.pk (font-class type1) (font-file "ylcd4.pfb")) (define-font lfd.pk (font-class type1) (point-size 10.00) (tfm "lfd") (font-file "lfd.pfb")) (define-font rylcd4i.pk (font-class type1) (font-file "ylcd4i.pfb")) (define-font lfdi.pk (font-class type1) (point-size 10.00) (tfm "lfdi") (font-file "lfdi.pfb")) (define-font rylcrf.pk (font-class type1) (font-file "ylcrf.pfb")) (define-font lbl.pk (font-class type1) (point-size 10.00) (tfm "lbl") (font-file "lbl.pfb")) (define-font rylcrihw.pk (font-class type1) (font-file "ylcrihw.pfb")) (define-font lbh.pk (font-class type1) (point-size 10.00) (tfm "lbh") (font-file "lbh.pfb")) (define-font rylcris.pk (font-class type1) (font-file "ylcris.pfb")) (define-font lsi.pk (font-class type1) (point-size 10.00) (tfm "lsi") (font-file "lsi.pfb")) (define-font rylcriw.pk (font-class type1) (font-file "ylcriw.pfb")) (define-font lbc.pk (font-class type1) (point-size 10.00) (tfm "lbc") (font-file "lbc.pfb")) (define-font rcggr.pk (font-class type1) (font-file "cggr.pfa")) (define-font rcggri.pk (font-class type1) (font-file "cggri.pfa")) (define-font rcggb.pk (font-class type1) (font-file "cggb.pfa")) (define-font rcggbi.pk (font-class type1) (font-file "cggbi.pfa")) (define-font rcshr.pk (font-class type1) (font-file "cshr.pfa")) (define-font rcshro.pk (font-class type1) (font-file "cshro.pfa")) (define-font rcshb.pk (font-class type1) (font-file "cshb.pfa")) (define-font rcshx.pk (font-class type1) (font-file "cshx.pfa")) (define-font bchbo8r.pk (font-class type1) (point-size 10.00) (tfm "bchbo8r") (font-file "bchb.pfa") (slant-factor 0.167)) (define-font bchro8r.pk (font-class type1) (point-size 10.00) (tfm "bchro8r") (font-file "bchr.pfa") (slant-factor 0.167)) (define-font pbkdo8r.pk (font-class type1) (point-size 10.00) (tfm "pbkdo8r") (font-file "Bookman-Demi") (slant-factor 0.167)) (define-font pbklo8r.pk (font-class type1) (point-size 10.00) (tfm "pbklo8r") (font-file "Bookman-Light") (slant-factor 0.167)) (define-font pncbo8r.pk (font-class type1) (point-size 10.00) (tfm "pncbo8r") (font-file "NewCenturySchlbk-Bold") (slant-factor 0.167)) (define-font pncro8r.pk (font-class type1) (point-size 10.00) (tfm "pncro8r") (font-file "NewCenturySchlbk-Roman") (slant-factor 0.167)) (define-font pplbo8r.pk (font-class type1) (point-size 10.00) (tfm "pplbo8r") (font-file "Palatino-Bold") (slant-factor 0.167)) (define-font putbo8r.pk (font-class type1) (point-size 10.00) (tfm "putbo8r") (font-file "putb8r.pfa") (slant-factor 0.167)) (define-font putro8r.pk (font-class type1) (point-size 10.00) (tfm "putro8r") (font-file "putr.pfa") (slant-factor 0.167)) (define-font pagk8r.pk (font-class type1) (point-size 10.00) (tfm "pagk8r") (font-file "AvantGarde-Book") (encoding-vector "8r.enc")) (define-font pagko8r.pk (font-class type1) (point-size 10.00) (tfm "pagko8r") (font-file "AvantGarde-BookOblique") (encoding-vector "8r.enc")) (define-font pagd8r.pk (font-class type1) (point-size 10.00) (tfm "pagd8r") (font-file "AvantGarde-Demi") (encoding-vector "8r.enc")) (define-font pagdo8r.pk (font-class type1) (point-size 10.00) (tfm "pagdo8r") (font-file "AvantGarde-DemiOblique") (encoding-vector "8r.enc")) (define-font pbkl8r.pk (font-class type1) (point-size 10.00) (tfm "pbkl8r") (font-file "Bookman-Light") (encoding-vector "8r.enc")) (define-font pbkli8r.pk (font-class type1) (point-size 10.00) (tfm "pbkli8r") (font-file "Bookman-LightItalic") (encoding-vector "8r.enc")) (define-font pbkd8r.pk (font-class type1) (point-size 10.00) (tfm "pbkd8r") (font-file "Bookman-Demi") (encoding-vector "8r.enc")) (define-font pbkdi8r.pk (font-class type1) (point-size 10.00) (tfm "pbkdi8r") (font-file "Bookman-DemiItalic") (encoding-vector "8r.enc")) (define-font pcrr8r.pk (font-class type1) (point-size 10.00) (tfm "pcrr8r") (font-file "Courier") (encoding-vector "8r.enc")) (define-font pcrro8r.pk (font-class type1) (point-size 10.00) (tfm "pcrro8r") (font-file "Courier-Oblique") (encoding-vector "8r.enc")) (define-font pcrb8r.pk (font-class type1) (point-size 10.00) (tfm "pcrb8r") (font-file "Courier-Bold") (encoding-vector "8r.enc")) (define-font pcrbo8r.pk (font-class type1) (point-size 10.00) (tfm "pcrbo8r") (font-file "Courier-BoldOblique") (encoding-vector "8r.enc")) (define-font phvr8r.pk (font-class type1) (point-size 10.00) (tfm "phvr8r") (font-file "Helvetica") (encoding-vector "8r.enc")) (define-font phvro8r.pk (font-class type1) (point-size 10.00) (tfm "phvro8r") (font-file "Helvetica-Oblique") (encoding-vector "8r.enc")) (define-font phvb8r.pk (font-class type1) (point-size 10.00) (tfm "phvb8r") (font-file "Helvetica-Bold") (encoding-vector "8r.enc")) (define-font phvbo8r.pk (font-class type1) (point-size 10.00) (tfm "phvbo8r") (font-file "Helvetica-BoldOblique") (encoding-vector "8r.enc")) (define-font phvrrn8r.pk (font-class type1) (font-file "Helvetica") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvron8r.pk (font-class type1) (font-file "Helvetica-Oblique") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvbrn8r.pk (font-class type1) (font-file "Helvetica-Bold") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvbon8r.pk (font-class type1) (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font pncr8r.pk (font-class type1) (point-size 10.00) (tfm "pncr8r") (font-file "NewCenturySchlbk-Roman") (encoding-vector "8r.enc")) (define-font pncri8r.pk (font-class type1) (point-size 10.00) (tfm "pncri8r") (font-file "NewCenturySchlbk-Italic") (encoding-vector "8r.enc")) (define-font pncb8r.pk (font-class type1) (point-size 10.00) (tfm "pncb8r") (font-file "NewCenturySchlbk-Bold") (encoding-vector "8r.enc")) (define-font pncbi8r.pk (font-class type1) (point-size 10.00) (tfm "pncbi8r") (font-file "NewCenturySchlbk-BoldItalic") (encoding-vector "8r.enc")) (define-font pplr8r.pk (font-class type1) (point-size 10.00) (tfm "pplr8r") (font-file "Palatino-Roman") (encoding-vector "8r.enc")) (define-font pplri8r.pk (font-class type1) (point-size 10.00) (tfm "pplri8r") (font-file "Palatino-Italic") (encoding-vector "8r.enc")) (define-font pplro8r.pk (font-class type1) (point-size 10.00) (tfm "pplro8r") (font-file "Palatino-Roman") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font pplb8r.pk (font-class type1) (point-size 10.00) (tfm "pplb8r") (font-file "Palatino-Bold") (encoding-vector "8r.enc")) (define-font pplbi8r.pk (font-class type1) (point-size 10.00) (tfm "pplbi8r") (font-file "Palatino-BoldItalic") (encoding-vector "8r.enc")) (define-font pplbu8r.pk (font-class type1) (point-size 10.00) (tfm "pplbu8r") (font-file "Palatino-BoldItalic") (slant-factor -0.176) (encoding-vector "8r.enc")) (define-font pplru8r.pk (font-class type1) (point-size 10.00) (tfm "pplru8r") (font-file "Palatino-Italic") (slant-factor -0.176) (encoding-vector "8r.enc")) (define-font pplrrn8r.pk (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font pplrre8r.pk (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 1.200) (encoding-vector "8r.enc")) (define-font ptmr8r.pk (font-class type1) (point-size 10.00) (tfm "ptmr8r") (font-file "Times-Roman") (encoding-vector "8r.enc")) (define-font ptmri8r.pk (font-class type1) (point-size 10.00) (tfm "ptmri8r") (font-file "Times-Italic") (encoding-vector "8r.enc")) (define-font ptmro8r.pk (font-class type1) (point-size 10.00) (tfm "ptmro8r") (font-file "Times-Roman") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font ptmb8r.pk (font-class type1) (point-size 10.00) (tfm "ptmb8r") (font-file "Times-Bold") (encoding-vector "8r.enc")) (define-font ptmbi8r.pk (font-class type1) (point-size 10.00) (tfm "ptmbi8r") (font-file "Times-BoldItalic") (encoding-vector "8r.enc")) (define-font ptmbo8r.pk (font-class type1) (point-size 10.00) (tfm "ptmbo8r") (font-file "Times-Bold") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font ptmrrn8r.pk (font-class type1) (font-file "Times-Roman") (aspect-ratio 0.800) (encoding-vector "8r.enc")) (define-font ptmrre8r.pk (font-class type1) (font-file "Times-Roman") (aspect-ratio 1.200) (encoding-vector "8r.enc")) (define-font pzcmi8r.pk (font-class type1) (point-size 10.00) (tfm "pzcmi8r") (font-file "ZapfChancery-MediumItalic") (encoding-vector "8r.enc")) (define-font putr8r.pk (font-class type1) (point-size 10.00) (tfm "putr8r") (font-file "putr.pfa") (encoding-vector "8r.enc")) (define-font putri8r.pk (font-class type1) (point-size 10.00) (tfm "putri8r") (font-file "putri.pfa") (encoding-vector "8r.enc")) (define-font putb8r.pk (font-class type1) (point-size 10.00) (tfm "putb8r") (font-file "putb.pfa") (encoding-vector "8r.enc")) (define-font putbi8r.pk (font-class type1) (point-size 10.00) (tfm "putbi8r") (font-file "putbi.pfa") (encoding-vector "8r.enc")) (define-font bchr8r.pk (font-class type1) (point-size 10.00) (tfm "bchr8r") (font-file "bchr.pfb") (encoding-vector "8r.enc")) (define-font bchri8r.pk (font-class type1) (point-size 10.00) (tfm "bchri8r") (font-file "bchri.pfb") (encoding-vector "8r.enc")) (define-font bchb8r.pk (font-class type1) (point-size 10.00) (tfm "bchb8r") (font-file "bchb.pfb") (encoding-vector "8r.enc")) (define-font bchbi8r.pk (font-class type1) (point-size 10.00) (tfm "bchbi8r") (font-file "bchbi.pfb") (encoding-vector "8r.enc")) (define-font uaqrrc8r.pk (font-class type1) (font-file "uaqrrc.pfa") (encoding-vector "8r.enc")) (define-font ugqb8r.pk (font-class type1) (font-file "ugqb.pfa") (encoding-vector "8r.enc")) (define-font unmr8r.pk (font-class type1) (font-file "unmr.pfa") (encoding-vector "8r.enc")) (define-font unmrs8r.pk (font-class type1) (font-file "unmrs.pfa") (encoding-vector "8r.enc")) (define-font paab8r.pk (font-class type1) (font-file "paab.pfa") (encoding-vector "8r.enc")) (define-font padr8r.pk (font-class type1) (font-file "padr.pfa") (encoding-vector "8r.enc")) (define-font padri8r.pk (font-class type1) (font-file "padri.pfa") (encoding-vector "8r.enc")) (define-font pads8r.pk (font-class type1) (font-file "pads.pfa") (encoding-vector "8r.enc")) (define-font padsi8r.pk (font-class type1) (font-file "padsi.pfa") (encoding-vector "8r.enc")) (define-font padb8r.pk (font-class type1) (font-file "padb.pfa") (encoding-vector "8r.enc")) (define-font padbi8r.pk (font-class type1) (font-file "padbi.pfa") (encoding-vector "8r.enc")) (define-font padrd8r.pk (font-class type1) (font-file "padrd.pfa") (encoding-vector "8r.enc")) (define-font padrx8r.pk (font-class type1) (font-file "padrx.pfa") (encoding-vector "8r.enc")) (define-font padrix8r.pk (font-class type1) (font-file "padrix.pfa") (encoding-vector "8r.enc")) (define-font padsx8r.pk (font-class type1) (font-file "padsx.pfa") (encoding-vector "8r.enc")) (define-font padbx8r.pk (font-class type1) (font-file "padbx.pfa") (encoding-vector "8r.enc")) (define-font padbix8r.pk (font-class type1) (font-file "padbix.pfa") (encoding-vector "8r.enc")) (define-font pbdr8r.pk (font-class type1) (font-file "pbdr.pfa") (encoding-vector "8r.enc")) (define-font pbdri8r.pk (font-class type1) (font-file "pbdri.pfa") (encoding-vector "8r.enc")) (define-font pbdb8r.pk (font-class type1) (font-file "pbdb.pfa") (encoding-vector "8r.enc")) (define-font pbdbi8r.pk (font-class type1) (font-file "pbdbi.pfa") (encoding-vector "8r.enc")) (define-font pbdp8r.pk (font-class type1) (font-file "pbdp.pfa") (encoding-vector "8r.enc")) (define-font pburw8r.pk (font-class type1) (font-file "pburw.pfa") (encoding-vector "8r.enc")) (define-font pc5r8r.pk (font-class type1) (font-file "pc5r.pfa") (encoding-vector "8r.enc")) (define-font pc5ri8r.pk (font-class type1) (font-file "pc5ri.pfa") (encoding-vector "8r.enc")) (define-font pc3r8r.pk (font-class type1) (font-file "pc3r.pfa") (encoding-vector "8r.enc")) (define-font pc3ri8r.pk (font-class type1) (font-file "pc3ri.pfa") (encoding-vector "8r.enc")) (define-font phvrrc8r.pk (font-class type1) (font-file "phvrrc.pfa") (encoding-vector "8r.enc")) (define-font phvroc8r.pk (font-class type1) (font-file "phvroc.pfa") (encoding-vector "8r.enc")) (define-font phvbrc8r.pk (font-class type1) (font-file "phvbrc.pfa") (encoding-vector "8r.enc")) (define-font phvboc8r.pk (font-class type1) (font-file "phvboc.pfa") (encoding-vector "8r.enc")) (define-font pubr8r.pk (font-class type1) (font-file "pubr.pfa") (encoding-vector "8r.enc")) (define-font pubri8r.pk (font-class type1) (font-file "pubri.pfa") (encoding-vector "8r.enc")) (define-font pubb8r.pk (font-class type1) (font-file "pubb.pfa") (encoding-vector "8r.enc")) (define-font pubbi8r.pk (font-class type1) (font-file "pubbi.pfa") (encoding-vector "8r.enc")) (define-font plbk8r.pk (font-class type1) (font-file "plbk.pfa") (encoding-vector "8r.enc")) (define-font plbko8r.pk (font-class type1) (font-file "plbko.pfa") (encoding-vector "8r.enc")) (define-font plbd8r.pk (font-class type1) (font-file "plbd.pfa") (encoding-vector "8r.enc")) (define-font plbdo8r.pk (font-class type1) (font-file "plbdo.pfa") (encoding-vector "8r.enc")) (define-font psvl8r.pk (font-class type1) (font-file "psvl.pfa") (encoding-vector "8r.enc")) (define-font psvli8r.pk (font-class type1) (font-file "psvli.pfa") (encoding-vector "8r.enc")) (define-font psvd8r.pk (font-class type1) (font-file "psvd.pfa") (encoding-vector "8r.enc")) (define-font psvdi8r.pk (font-class type1) (font-file "psvdi.pfa") (encoding-vector "8r.enc")) (define-font phbr8r.pk (font-class type1) (font-file "phbr.pfa") (encoding-vector "8r.enc")) (define-font pslr8r.pk (font-class type1) (font-file "pslr.pfa") (encoding-vector "8r.enc")) (define-font plcr8r.pk (font-class type1) (font-file "plcr.pfa") (encoding-vector "8r.enc")) (define-font plcri8r.pk (font-class type1) (font-file "plcri.pfa") (encoding-vector "8r.enc")) (define-font plcro8r.pk (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font plcb8r.pk (font-class type1) (font-file "plcb.pfa") (encoding-vector "8r.enc")) (define-font plcbi8r.pk (font-class type1) (font-file "plcbi.pfa") (encoding-vector "8r.enc")) (define-font plcrs8r.pk (font-class type1) (font-file "plcrs.pfa") (encoding-vector "8r.enc")) (define-font plcris8r.pk (font-class type1) (font-file "plcris.pfa") (encoding-vector "8r.enc")) (define-font plcbs8r.pk (font-class type1) (font-file "plcbs.pfa") (encoding-vector "8r.enc")) (define-font plcbis8r.pk (font-class type1) (font-file "plcbis.pfa") (encoding-vector "8r.enc")) (define-font plcrb8r.pk (font-class type1) (font-file "plcrb.pfa") (encoding-vector "8r.enc")) (define-font plcrbi8r.pk (font-class type1) (font-file "plcrbi.pfa") (encoding-vector "8r.enc")) (define-font plcbb8r.pk (font-class type1) (font-file "plcbb.pfa") (encoding-vector "8r.enc")) (define-font plcrst8r.pk (font-class type1) (font-file "plcrst.pfa") (encoding-vector "8r.enc")) (define-font plcrm8r.pk (font-class type1) (font-file "plcrm.pfa") (encoding-vector "8r.enc")) (define-font plcrv8r.pk (font-class type1) (font-file "plcrv.pfa") (encoding-vector "8r.enc")) (define-font plcry8r.pk (font-class type1) (font-file "plcry.pfa") (encoding-vector "8r.enc")) (define-font ylhr8r.pk (font-class type1) (font-file "ylhr.pfb") (encoding-vector "8r.enc")) (define-font ylhri8r.pk (font-class type1) (font-file "ylhri.pfb") (encoding-vector "8r.enc")) (define-font ylhro8r.pk (font-class type1) (font-file "ylhro.pfb") (encoding-vector "8r.enc")) (define-font ylhd8r.pk (font-class type1) (font-file "ylhd.pfb") (encoding-vector "8r.enc")) (define-font ylhdi8r.pk (font-class type1) (font-file "ylhdi.pfb") (encoding-vector "8r.enc")) (define-font ylcrs8r.pk (font-class type1) (font-file "ylcrs.pfb") (encoding-vector "8r.enc")) (define-font ylcds8r.pk (font-class type1) (font-file "ylcds.pfb") (encoding-vector "8r.enc")) (define-font ylcdis8r.pk (font-class type1) (font-file "ylcdis.pfb") (encoding-vector "8r.enc")) (define-font ylcrst8r.pk (font-class type1) (font-file "ylcrst.pfb") (encoding-vector "8r.enc")) (define-font ylcrost8r.pk (font-class type1) (font-file "ylcrost.pfb") (encoding-vector "8r.enc")) (define-font ylcbst8r.pk (font-class type1) (font-file "ylcbst.pfb") (encoding-vector "8r.enc")) (define-font ylcbost8r.pk (font-class type1) (font-file "ylcbost.pfb") (encoding-vector "8r.enc")) (define-font ylcr48r.pk (font-class type1) (font-file "ylcr4.pfb") (encoding-vector "8r.enc")) (define-font ylcr4i8r.pk (font-class type1) (font-file "ylcr4i.pfb") (encoding-vector "8r.enc")) (define-font ylcd48r.pk (font-class type1) (font-file "ylcd4.pfb") (encoding-vector "8r.enc")) (define-font ylcd4i8r.pk (font-class type1) (font-file "ylcd4i.pfb") (encoding-vector "8r.enc")) (define-font ylcrf8r.pk (font-class type1) (font-file "ylcrf.pfb") (encoding-vector "8r.enc")) (define-font ylcrihw8r.pk (font-class type1) (font-file "ylcrihw.pfb") (encoding-vector "8r.enc")) (define-font ylcris8r.pk (font-class type1) (font-file "ylcris.pfb") (encoding-vector "8r.enc")) (define-font ylcriw8r.pk (font-class type1) (font-file "ylcriw.pfb") (encoding-vector "8r.enc")) (define-font cggr8r.pk (font-class type1) (font-file "cggr.pfa") (encoding-vector "8r.enc")) (define-font cggri8r.pk (font-class type1) (font-file "cggri.pfa") (encoding-vector "8r.enc")) (define-font cggb8r.pk (font-class type1) (font-file "cggb.pfa") (encoding-vector "8r.enc")) (define-font cggbi8r.pk (font-class type1) (font-file "cggbi.pfa") (encoding-vector "8r.enc")) (define-font cshr8r.pk (font-class type1) (font-file "cshr.pfa") (encoding-vector "8r.enc")) (define-font cshro8r.pk (font-class type1) (font-file "cshro.pfa") (encoding-vector "8r.enc")) (define-font cshb8r.pk (font-class type1) (font-file "cshb.pfa") (encoding-vector "8r.enc")) (define-font cshx8r.pk (font-class type1) (font-file "cshx.pfa") (encoding-vector "8r.enc")) (define-font pagk0.pk (font-class type1) (font-file "AvantGarde-Book")) (define-font pagko0.pk (font-class type1) (font-file "AvantGarde-BookOblique")) (define-font pagd0.pk (font-class type1) (font-file "AvantGarde-Demi")) (define-font pagdo0.pk (font-class type1) (font-file "AvantGarde-DemiOblique")) (define-font pbkl0.pk (font-class type1) (font-file "Bookman-Light")) (define-font pbkli0.pk (font-class type1) (font-file "Bookman-LightItalic")) (define-font pbklo0.pk (font-class type1) (font-file "Bookman-Light") (slant-factor 0.167)) (define-font pbkd0.pk (font-class type1) (font-file "Bookman-Demi")) (define-font pbkdi0.pk (font-class type1) (font-file "Bookman-DemiItalic")) (define-font pbkdo0.pk (font-class type1) (font-file "Bookman-Demi") (slant-factor 0.167)) (define-font pcrr0.pk (font-class type1) (font-file "Courier")) (define-font pcrro0.pk (font-class type1) (font-file "Courier-Oblique")) (define-font pcrb0.pk (font-class type1) (font-file "Courier-Bold")) (define-font pcrbo0.pk (font-class type1) (font-file "Courier-BoldOblique")) (define-font phvr0.pk (font-class type1) (font-file "Helvetica")) (define-font phvro0.pk (font-class type1) (font-file "Helvetica-Oblique")) (define-font phvb0.pk (font-class type1) (font-file "Helvetica-Bold")) (define-font phvbo0.pk (font-class type1) (font-file "Helvetica-BoldOblique")) (define-font phvrrn0.pk (font-class type1) (font-file "Helvetica") (aspect-ratio 0.820)) (define-font phvron0.pk (font-class type1) (font-file "Helvetica-Oblique") (aspect-ratio 0.820)) (define-font phvbrn0.pk (font-class type1) (font-file "Helvetica-Bold") (aspect-ratio 0.820)) (define-font phvbon0.pk (font-class type1) (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820)) (define-font pncr0.pk (font-class type1) (font-file "NewCenturySchlbk-Roman")) (define-font pncri0.pk (font-class type1) (font-file "NewCenturySchlbk-Italic")) (define-font pncro0.pk (font-class type1) (font-file "NewCenturySchlbk-Roman") (slant-factor 0.167)) (define-font pncb0.pk (font-class type1) (font-file "NewCenturySchlbk-Bold")) (define-font pncbi0.pk (font-class type1) (font-file "NewCenturySchlbk-BoldItalic")) (define-font pncbo0.pk (font-class type1) (font-file "NewCenturySchlbk-Bold") (slant-factor 0.167)) (define-font pplr0.pk (font-class type1) (font-file "Palatino-Roman")) (define-font pplri0.pk (font-class type1) (font-file "Palatino-Italic")) (define-font pplro0.pk (font-class type1) (font-file "Palatino-Roman") (slant-factor 0.167)) (define-font pplb0.pk (font-class type1) (font-file "Palatino-Bold")) (define-font pplbi0.pk (font-class type1) (font-file "Palatino-BoldItalic")) (define-font pplbo0.pk (font-class type1) (font-file "Palatino-Bold") (slant-factor 0.167)) (define-font pplbu0.pk (font-class type1) (font-file "Palatino-BoldItalic") (slant-factor -0.176)) (define-font pplru0.pk (font-class type1) (font-file "Palatino-Italic") (slant-factor -0.176)) (define-font pplrrn0.pk (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 0.820)) (define-font pplrre0.pk (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 1.200)) (define-font ptmr0.pk (font-class type1) (font-file "Times-Roman")) (define-font ptmri0.pk (font-class type1) (font-file "Times-Italic")) (define-font ptmro0.pk (font-class type1) (font-file "Times-Roman") (slant-factor 0.167)) (define-font ptmb0.pk (font-class type1) (font-file "Times-Bold")) (define-font ptmbi0.pk (font-class type1) (font-file "Times-BoldItalic")) (define-font ptmbo0.pk (font-class type1) (font-file "Times-Bold") (slant-factor 0.167)) (define-font ptmrrn0.pk (font-class type1) (font-file "Times-Roman") (aspect-ratio 0.800)) (define-font ptmrre0.pk (font-class type1) (font-file "Times-Roman") (aspect-ratio 1.200)) (define-font pzcmi0.pk (font-class type1) (font-file "ZapfChancery-MediumItalic")) (define-font putr0.pk (font-class type1) (font-file "putr.pfa")) (define-font putri0.pk (font-class type1) (font-file "putri.pfa")) (define-font putro0.pk (font-class type1) (font-file "putr.pfa") (slant-factor 0.167)) (define-font putb0.pk (font-class type1) (font-file "putb.pfa")) (define-font putbi0.pk (font-class type1) (font-file "putbi.pfa")) (define-font putbo0.pk (font-class type1) (font-file "putb.pfa") (slant-factor 0.167)) (define-font bchr0.pk (font-class type1) (font-file "bchr.pfb")) (define-font bchri0.pk (font-class type1) (font-file "bchri.pfb")) (define-font bchro0.pk (font-class type1) (font-file "bchr.pfa") (slant-factor 0.167)) (define-font bchb0.pk (font-class type1) (font-file "bchb.pfb")) (define-font bchbi0.pk (font-class type1) (font-file "bchbi.pfb")) (define-font bchbo0.pk (font-class type1) (font-file "bchb.pfa") (slant-factor 0.167)) (define-font uaqrrc0.pk (font-class type1) (font-file "uaqrrc.pfa")) (define-font ugqb0.pk (font-class type1) (font-file "ugqb.pfa")) (define-font unmr0.pk (font-class type1) (font-file "unmr.pfa")) (define-font unmrs0.pk (font-class type1) (font-file "unmrs.pfa")) (define-font paab0.pk (font-class type1) (font-file "paab.pfa")) (define-font padr0.pk (font-class type1) (font-file "padr.pfa")) (define-font padri0.pk (font-class type1) (font-file "padri.pfa")) (define-font pads0.pk (font-class type1) (font-file "pads.pfa")) (define-font padsi0.pk (font-class type1) (font-file "padsi.pfa")) (define-font padb0.pk (font-class type1) (font-file "padb.pfa")) (define-font padbi0.pk (font-class type1) (font-file "padbi.pfa")) (define-font padrd0.pk (font-class type1) (font-file "padrd.pfa")) (define-font padrx0.pk (font-class type1) (font-file "padrx.pfa")) (define-font padrix0.pk (font-class type1) (font-file "padrix.pfa")) (define-font padsx0.pk (font-class type1) (font-file "padsx.pfa")) (define-font padbx0.pk (font-class type1) (font-file "padbx.pfa")) (define-font padbix0.pk (font-class type1) (font-file "padbix.pfa")) (define-font pbdr0.pk (font-class type1) (font-file "pbdr.pfa")) (define-font pbdri0.pk (font-class type1) (font-file "pbdri.pfa")) (define-font pbdb0.pk (font-class type1) (font-file "pbdb.pfa")) (define-font pbdbi0.pk (font-class type1) (font-file "pbdbi.pfa")) (define-font pbdp0.pk (font-class type1) (font-file "pbdp.pfa")) (define-font pburw0.pk (font-class type1) (font-file "pburw.pfa")) (define-font pc5r0.pk (font-class type1) (font-file "pc5r.pfa")) (define-font pc5ri0.pk (font-class type1) (font-file "pc5ri.pfa")) (define-font pc3r0.pk (font-class type1) (font-file "pc3r.pfa")) (define-font pc3ri0.pk (font-class type1) (font-file "pc3ri.pfa")) (define-font phvrrc0.pk (font-class type1) (font-file "phvrrc.pfa")) (define-font phvroc0.pk (font-class type1) (font-file "phvroc.pfa")) (define-font phvbrc0.pk (font-class type1) (font-file "phvbrc.pfa")) (define-font phvboc0.pk (font-class type1) (font-file "phvboc.pfa")) (define-font pubr0.pk (font-class type1) (font-file "pubr.pfa")) (define-font pubri0.pk (font-class type1) (font-file "pubri.pfa")) (define-font pubb0.pk (font-class type1) (font-file "pubb.pfa")) (define-font pubbi0.pk (font-class type1) (font-file "pubbi.pfa")) (define-font plbk0.pk (font-class type1) (font-file "plbk.pfa")) (define-font plbko0.pk (font-class type1) (font-file "plbko.pfa")) (define-font plbd0.pk (font-class type1) (font-file "plbd.pfa")) (define-font plbdo0.pk (font-class type1) (font-file "plbdo.pfa")) (define-font psvl0.pk (font-class type1) (font-file "psvl.pfa")) (define-font psvli0.pk (font-class type1) (font-file "psvli.pfa")) (define-font psvd0.pk (font-class type1) (font-file "psvd.pfa")) (define-font psvdi0.pk (font-class type1) (font-file "psvdi.pfa")) (define-font phbr0.pk (font-class type1) (font-file "phbr.pfa")) (define-font pslr0.pk (font-class type1) (font-file "pslr.pfa")) (define-font plcr0.pk (font-class type1) (font-file "plcr.pfa")) (define-font plcri0.pk (font-class type1) (font-file "plcri.pfa")) (define-font plcro0.pk (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167)) (define-font plcb0.pk (font-class type1) (font-file "plcb.pfa")) (define-font plcbi0.pk (font-class type1) (font-file "plcbi.pfa")) (define-font plcrs0.pk (font-class type1) (font-file "plcrs.pfa")) (define-font plcris0.pk (font-class type1) (font-file "plcris.pfa")) (define-font plcbs0.pk (font-class type1) (font-file "plcbs.pfa")) (define-font plcbis0.pk (font-class type1) (font-file "plcbis.pfa")) (define-font plcrb0.pk (font-class type1) (font-file "plcrb.pfa")) (define-font plcrbi0.pk (font-class type1) (font-file "plcrbi.pfa")) (define-font plcbb0.pk (font-class type1) (font-file "plcbb.pfa")) (define-font plcrst0.pk (font-class type1) (font-file "plcrst.pfa")) (define-font plcrm0.pk (font-class type1) (font-file "plcrm.pfa")) (define-font plcrv0.pk (font-class type1) (font-file "plcrv.pfa")) (define-font plcry0.pk (font-class type1) (font-file "plcry.pfa")) (define-font ylhr0.pk (font-class type1) (font-file "ylhr.pfb")) (define-font ylhri0.pk (font-class type1) (font-file "ylhri.pfb")) (define-font ylhro0.pk (font-class type1) (font-file "ylhro.pfb")) (define-font ylhd0.pk (font-class type1) (font-file "ylhd.pfb")) (define-font ylhdi0.pk (font-class type1) (font-file "ylhdi.pfb")) (define-font ylcrs0.pk (font-class type1) (font-file "ylcrs.pfb")) (define-font ylcds0.pk (font-class type1) (font-file "ylcds.pfb")) (define-font ylcdis0.pk (font-class type1) (font-file "ylcdis.pfb")) (define-font ylcrst0.pk (font-class type1) (font-file "ylcrst.pfb")) (define-font ylcrost0.pk (font-class type1) (font-file "ylcrost.pfb")) (define-font ylcbst0.pk (font-class type1) (font-file "ylcbst.pfb")) (define-font ylcbost0.pk (font-class type1) (font-file "ylcbost.pfb")) (define-font ylcr40.pk (font-class type1) (font-file "ylcr4.pfb")) (define-font ylcr4i0.pk (font-class type1) (font-file "ylcr4i.pfb")) (define-font ylcd40.pk (font-class type1) (font-file "ylcd4.pfb")) (define-font ylcd4i0.pk (font-class type1) (font-file "ylcd4i.pfb")) (define-font ylcrf0.pk (font-class type1) (font-file "ylcrf.pfb")) (define-font ylcrihw0.pk (font-class type1) (font-file "ylcrihw.pfb")) (define-font ylcris0.pk (font-class type1) (font-file "ylcris.pfb")) (define-font ylcriw0.pk (font-class type1) (font-file "ylcriw.pfb")) (define-font cggr0.pk (font-class type1) (font-file "cggr.pfa")) (define-font cggri0.pk (font-class type1) (font-file "cggri.pfa")) (define-font cggb0.pk (font-class type1) (font-file "cggb.pfa")) (define-font cggbi0.pk (font-class type1) (font-file "cggbi.pfa")) (define-font cshr0.pk (font-class type1) (font-file "cshr.pfa")) (define-font cshro0.pk (font-class type1) (font-file "cshro.pfa")) (define-font cshb0.pk (font-class type1) (font-file "cshb.pfa")) (define-font cshx0.pk (font-class type1) (font-file "cshx.pfa")) (define-font rml.pk (font-class type1) (point-size 10.00) (tfm "rml") (font-file "`min")) (define-font gbm.pk (font-class type1) (point-size 10.00) (tfm "gbm") (font-file "`goth")) (define-font rmlv.pk (font-class type1) (point-size 10.00) (tfm "rmlv") (font-file "`min")) (define-font gbmv.pk (font-class type1) (point-size 10.00) (tfm "gbmv") (font-file "`goth")) ;; end of /usr/local/share/texmf/dvips/base/psfonts.map ;; dvips mapfile: /usr/local/share/texmf/dvips/config/xypic.map (define-font xydash10.pk (font-class type1) (point-size 10.00) (tfm "xydash10") (font-file "xydash10.pfb")) (define-font xyatip10.pk (font-class type1) (point-size 10.00) (tfm "xyatip10") (font-file "xyatip10.pfb")) (define-font xyatip11.pk (font-class type1) (font-file "xyatip10.pfb") (aspect-ratio 1.100)) (define-font xyatip12.pk (font-class type1) (font-file "xyatip10.pfb") (aspect-ratio 1.200)) (define-font xybtip10.pk (font-class type1) (point-size 10.00) (tfm "xybtip10") (font-file "xybtip10.pfb")) (define-font xybtip11.pk (font-class type1) (font-file "xybtip10.pfb") (aspect-ratio 1.100)) (define-font xybtip12.pk (font-class type1) (font-file "xybtip10.pfb") (aspect-ratio 1.200)) (define-font xybsql10.pk (font-class type1) (point-size 10.00) (tfm "xybsql10") (font-file "xybsql10.pfb")) (define-font xycirc10.pk (font-class type1) (point-size 10.00) (tfm "xycirc10") (font-file "xycirc10.pfb")) (define-font xycmat10.pk (font-class type1) (point-size 10.00) (tfm "xycmat10") (font-file "xycmat10.pfb")) (define-font xycmat11.pk (font-class type1) (point-size 11.00) (tfm "xycmat11") (font-file "xycmat10.pfb") (aspect-ratio 1.100)) (define-font xycmat12.pk (font-class type1) (point-size 12.00) (tfm "xycmat12") (font-file "xycmat10.pfb") (aspect-ratio 1.200)) (define-font xycmbt10.pk (font-class type1) (point-size 10.00) (tfm "xycmbt10") (font-file "xycmbt10.pfb")) (define-font xycmbt11.pk (font-class type1) (point-size 11.00) (tfm "xycmbt11") (font-file "xycmbt10.pfb") (aspect-ratio 1.100)) (define-font xycmbt12.pk (font-class type1) (point-size 12.00) (tfm "xycmbt12") (font-file "xycmbt10.pfb") (aspect-ratio 1.200)) (define-font xyeuat10.pk (font-class type1) (point-size 10.00) (tfm "xyeuat10") (font-file "xyeuat10.pfb")) (define-font xyeuat11.pk (font-class type1) (point-size 11.00) (tfm "xyeuat11") (font-file "xyeuat10.pfb") (aspect-ratio 1.100)) (define-font xyeuat12.pk (font-class type1) (point-size 12.00) (tfm "xyeuat12") (font-file "xyeuat10.pfb") (aspect-ratio 1.200)) (define-font xyeubt10.pk (font-class type1) (point-size 10.00) (tfm "xyeubt10") (font-file "xyeubt10.pfb")) (define-font xyeubt11.pk (font-class type1) (point-size 11.00) (tfm "xyeubt11") (font-file "xyeubt10.pfb") (aspect-ratio 1.100)) (define-font xyeubt12.pk (font-class type1) (point-size 12.00) (tfm "xyeubt12") (font-file "xyeubt10.pfb") (aspect-ratio 1.200)) ;; end of /usr/local/share/texmf/dvips/config/xypic.map ;; ------------------------------------------------------- ;; *** TFM *** ;; Generated by vflmktfm ;; at Tue Dec 10 10:33:59 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmktfm -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI (define-default tfm (font-directories "TEXMF") (dpi $TeX_DPI) (filename-extensions ".tfm" ".ofm") (glyph-style "fill")) ;; ------------------------------------------------------- ;; *** TrueType *** ;; Generated by vflmkttf ;; at Tue Dec 10 10:33:59 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkttf -r $TeX_DPI -d TEXMF -d /usr/local/fonts/DynaFont-TypeMuseum// -d /usr/local/fonts/DynaFont-SpecialPack1// -d /usr/local/fonts/DynaFont-Premium30// -d /usr/local/fonts/FontCity2// -d /usr/local/fonts/TrueTypeWorld-ValueFont141// -d /usr/local/fonts/TrueTypeWorld-ValueFontDX// (define-default truetype (font-directories "TEXMF" "/usr/local/fonts/DynaFont-TypeMuseum//" "/usr/local/fonts/DynaFont-SpecialPack1//" "/usr/local/fonts/DynaFont-Premium30//" "/usr/local/fonts/FontCity2//" "/usr/local/fonts/TrueTypeWorld-ValueFont141//" "/usr/local/fonts/TrueTypeWorld-ValueFontDX//") (platform-id "microsoft") (dpi $TeX_DPI)) ;; ------------------------------------------------------- ;; *** Japanese TeX (ASCII Co. version) *** ;; Generated by vflmkajt ;; at Tue Dec 10 10:33:59 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkajt -d TEXMF -x .pk -c ttf -jisx0212 -tf ../ascii-jtex/fonts.lst (define-default ascii-jtex-kanji (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (implicit-font-mapping-suffix ".pk")) ; JISX0208 (define-macro min-def (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.95) (metric-adjustment-file "dfmimp3.adj")) (define-font jtex-min (font-class truetype) (font-file "dfmimp3.ttc") (character-set "JISX0208") (encoding "ISO2022")) (define-macro goth-def (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.95) (metric-adjustment-file "dfgotp5.adj")) (define-font jtex-goth (font-class truetype) (font-file "dfgotp5.ttc") (character-set "JISX0208") (encoding "ISO2022")) (define-macro tmin-def (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.95) (metric-adjustment-file "tdfmimp3.adj")) (define-font jtex-tmin (font-class truetype) (font-file "dfmimp3.ttc") (character-set "JISX0208") (encoding "ISO2022")) (define-macro tgoth-def (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.95) (metric-adjustment-file "tdfgotp5.adj")) (define-font jtex-tgoth (font-class truetype) (font-file "dfgotp5.ttc") (character-set "JISX0208") (encoding "ISO2022")) (define-font min5.pk (kanji-font-point-size 5) min-def) (define-font min6.pk (kanji-font-point-size 6) min-def) (define-font min7.pk (kanji-font-point-size 7) min-def) (define-font min8.pk (kanji-font-point-size 8) min-def) (define-font min9.pk (kanji-font-point-size 9) min-def) (define-font min10.pk (kanji-font-point-size 10) min-def) (define-font min12.pk (kanji-font-point-size 12) min-def) (define-font goth5.pk (kanji-font-point-size 5) goth-def) (define-font goth6.pk (kanji-font-point-size 6) goth-def) (define-font goth7.pk (kanji-font-point-size 7) goth-def) (define-font goth8.pk (kanji-font-point-size 8) goth-def) (define-font goth9.pk (kanji-font-point-size 9) goth-def) (define-font goth10.pk (kanji-font-point-size 10) goth-def) (define-font goth12.pk (kanji-font-point-size 12) goth-def) (define-font tmin5.pk (kanji-font-point-size 5) tmin-def) (define-font tmin6.pk (kanji-font-point-size 6) tmin-def) (define-font tmin7.pk (kanji-font-point-size 7) tmin-def) (define-font tmin8.pk (kanji-font-point-size 8) tmin-def) (define-font tmin9.pk (kanji-font-point-size 9) tmin-def) (define-font tmin10.pk (kanji-font-point-size 10) tmin-def) (define-font tmin12.pk (kanji-font-point-size 12) tmin-def) (define-font tgoth5.pk (kanji-font-point-size 5) tgoth-def) (define-font tgoth6.pk (kanji-font-point-size 6) tgoth-def) (define-font tgoth7.pk (kanji-font-point-size 7) tgoth-def) (define-font tgoth8.pk (kanji-font-point-size 8) tgoth-def) (define-font tgoth9.pk (kanji-font-point-size 9) tgoth-def) (define-font tgoth10.pk (kanji-font-point-size 10) tgoth-def) (define-font tgoth12.pk (kanji-font-point-size 12) tgoth-def) (define-macro jtex-h-def (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (metric-adjustment-file "f5ajchm3.adj")) (define-macro jtex-v-def (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (metric-adjustment-file "tf5ajchm3.adj")) (define-macro jtex-ttf (font-class truetype) (dpi $TeX_DPI) (platform-id "microsoft") (character-set "JISX0208") (encoding "ISO2022")) (define-font dfailpaa.pk jtex-h-def (kanji-font dfailpaa.jttf)) (define-font dfailpaa.jttf jtex-ttf (font-file "dcail5.ttc")) (define-font tdfailpaa.pk jtex-v-def (kanji-font tdfailpaa.jttf)) (define-font tdfailpaa.jttf jtex-ttf (font-file "dcail5.ttc")) (define-font dfainpaa.pk jtex-h-def (kanji-font dfainpaa.jttf)) (define-font dfainpaa.jttf jtex-ttf (font-file "dcai5.ttc")) (define-font tdfainpaa.pk jtex-v-def (kanji-font tdfainpaa.jttf)) (define-font tdfainpaa.jttf jtex-ttf (font-file "dcai5.ttc")) (define-font dfaispaa.pk jtex-h-def (kanji-font dfaispaa.jttf)) (define-font dfaispaa.jttf jtex-ttf (font-file "dcais5.ttc")) (define-font tdfaispaa.pk jtex-v-def (kanji-font tdfaispaa.jttf)) (define-font tdfaispaa.jttf jtex-ttf (font-file "dcais5.ttc")) (define-font dfbrrsaa.pk jtex-h-def (kanji-font dfbrrsaa.jttf)) (define-font dfbrrsaa.jttf jtex-ttf (font-file "dfbrr7.ttc")) (define-font tdfbrrsaa.pk jtex-v-def (kanji-font tdfbrrsaa.jttf)) (define-font tdfbrrsaa.jttf jtex-ttf (font-file "dfbrr7.ttc")) (define-font dfbrrzaa.pk jtex-h-def (kanji-font dfbrrzaa.jttf)) (define-font dfbrrzaa.jttf jtex-ttf (font-file "dfbrrc.ttc")) (define-font tdfbrrzaa.pk jtex-v-def (kanji-font tdfbrrzaa.jttf)) (define-font tdfbrrzaa.jttf jtex-ttf (font-file "dfbrrc.ttc")) (define-font dfbrspaa.pk jtex-h-def (kanji-font dfbrspaa.jttf)) (define-font dfbrspaa.jttf jtex-ttf (font-file "dfbrs5.ttc")) (define-font tdfbrspaa.pk jtex-v-def (kanji-font tdfbrspaa.jttf)) (define-font tdfbrspaa.jttf jtex-ttf (font-file "dfbrs5.ttc")) (define-font dfbrsvaa.pk jtex-h-def (kanji-font dfbrsvaa.jttf)) (define-font dfbrsvaa.jttf jtex-ttf (font-file "dfbrs9.ttc")) (define-font tdfbrsvaa.pk jtex-v-def (kanji-font tdfbrsvaa.jttf)) (define-font tdfbrsvaa.jttf jtex-ttf (font-file "dfbrs9.ttc")) (define-font dfbrszaa.pk jtex-h-def (kanji-font dfbrszaa.jttf)) (define-font dfbrszaa.jttf jtex-ttf (font-file "dfbrsc.ttc")) (define-font tdfbrszaa.pk jtex-v-def (kanji-font tdfbrszaa.jttf)) (define-font tdfbrszaa.jttf jtex-ttf (font-file "dfbrsc.ttc")) (define-font dfcfsvaa.pk jtex-h-def (kanji-font dfcfsvaa.jttf)) (define-font dfcfsvaa.jttf jtex-ttf (font-file "dfcrs9.ttc")) (define-font tdfcfsvaa.pk jtex-v-def (kanji-font tdfcfsvaa.jttf)) (define-font tdfcfsvaa.jttf jtex-ttf (font-file "dfcrs9.ttc")) (define-font dfcfypaa.pk jtex-h-def (kanji-font dfcfypaa.jttf)) (define-font dfcfypaa.jttf jtex-ttf (font-file "dfcry5.ttc")) (define-font tdfcfypaa.pk jtex-v-def (kanji-font tdfcfypaa.jttf)) (define-font tdfcfypaa.jttf jtex-ttf (font-file "dfcry5.ttc")) (define-font dfcfysaa.pk jtex-h-def (kanji-font dfcfysaa.jttf)) (define-font dfcfysaa.jttf jtex-ttf (font-file "dfcry7.ttc")) (define-font tdfcfysaa.pk jtex-v-def (kanji-font tdfcfysaa.jttf)) (define-font tdfcfysaa.jttf jtex-ttf (font-file "dfcry7.ttc")) (define-font dfcrdmaa.pk jtex-h-def (kanji-font dfcrdmaa.jttf)) (define-font dfcrdmaa.jttf jtex-ttf (font-file "dfcrd3.ttc")) (define-font tdfcrdmaa.pk jtex-v-def (kanji-font tdfcrdmaa.jttf)) (define-font tdfcrdmaa.jttf jtex-ttf (font-file "dfcrd3.ttc")) (define-font dfcrypaa.pk jtex-h-def (kanji-font dfcrypaa.jttf)) (define-font dfcrypaa.jttf jtex-ttf (font-file "dccry5.ttc")) (define-font tdfcrypaa.pk jtex-v-def (kanji-font tdfcrypaa.jttf)) (define-font tdfcrypaa.jttf jtex-ttf (font-file "dccry5.ttc")) (define-font dffrskaa.pk jtex-h-def (kanji-font dffrskaa.jttf)) (define-font dffrskaa.jttf jtex-ttf (font-file "dffrs2.ttc")) (define-font tdffrskaa.pk jtex-v-def (kanji-font tdffrskaa.jttf)) (define-font tdffrskaa.jttf jtex-ttf (font-file "dffrs2.ttc")) (define-font dffrsmaa.pk jtex-h-def (kanji-font dffrsmaa.jttf)) (define-font dffrsmaa.jttf jtex-ttf (font-file "dffrs3.ttc")) (define-font tdffrsmaa.pk jtex-v-def (kanji-font tdffrsmaa.jttf)) (define-font tdffrsmaa.jttf jtex-ttf (font-file "dffrs3.ttc")) (define-font dffrykaa.pk jtex-h-def (kanji-font dffrykaa.jttf)) (define-font dffrykaa.jttf jtex-ttf (font-file "dffry2.ttc")) (define-font tdffrykaa.pk jtex-v-def (kanji-font tdffrykaa.jttf)) (define-font tdffrykaa.jttf jtex-ttf (font-file "dffry2.ttc")) (define-font dffuusaa.pk jtex-h-def (kanji-font dffuusaa.jttf)) (define-font dffuusaa.jttf jtex-ttf (font-file "dffuu7.ttc")) (define-font tdffuusaa.pk jtex-v-def (kanji-font tdffuusaa.jttf)) (define-font tdffuusaa.jttf jtex-ttf (font-file "dffuu7.ttc")) (define-font dffuuzaa.pk jtex-h-def (kanji-font dffuuzaa.jttf)) (define-font dffuuzaa.jttf jtex-ttf (font-file "dffuuc.ttc")) (define-font tdffuuzaa.pk jtex-v-def (kanji-font tdffuuzaa.jttf)) (define-font tdffuuzaa.jttf jtex-ttf (font-file "dffuuc.ttc")) (define-font dfgihsaa.pk jtex-h-def (kanji-font dfgihsaa.jttf)) (define-font dfgihsaa.jttf jtex-ttf (font-file "dfgihi7.ttc")) (define-font tdfgihsaa.pk jtex-v-def (kanji-font tdfgihsaa.jttf)) (define-font tdfgihsaa.jttf jtex-ttf (font-file "dfgihi7.ttc")) (define-font dfgopkaa.pk jtex-h-def (kanji-font dfgopkaa.jttf)) (define-font dfgopkaa.jttf jtex-ttf (font-file "dfgotp2.ttc")) (define-font tdfgopkaa.pk jtex-v-def (kanji-font tdfgopkaa.jttf)) (define-font tdfgopkaa.jttf jtex-ttf (font-file "dfgotp2.ttc")) (define-font dfgopmaa.pk jtex-h-def (kanji-font dfgopmaa.jttf)) (define-font dfgopmaa.jttf jtex-ttf (font-file "dfgotp3.ttc")) (define-font tdfgopmaa.pk jtex-v-def (kanji-font tdfgopmaa.jttf)) (define-font tdfgopmaa.jttf jtex-ttf (font-file "dfgotp3.ttc")) (define-font dfgoppaa.pk jtex-h-def (kanji-font dfgoppaa.jttf)) (define-font dfgoppaa.jttf jtex-ttf (font-file "dfgotp5.ttc")) (define-font tdfgoppaa.pk jtex-v-def (kanji-font tdfgoppaa.jttf)) (define-font tdfgoppaa.jttf jtex-ttf (font-file "dfgotp5.ttc")) (define-font dfgotwaa.pk jtex-h-def (kanji-font dfgotwaa.jttf)) (define-font dfgotwaa.jttf jtex-ttf (font-file "dfheia.ttc")) (define-font tdfgotwaa.pk jtex-v-def (kanji-font tdfgotwaa.jttf)) (define-font tdfgotwaa.jttf jtex-ttf (font-file "dfheia.ttc")) (define-font dfgotxaa.pk jtex-h-def (kanji-font dfgotxaa.jttf)) (define-font dfgotxaa.jttf jtex-ttf (font-file "dfheic.ttc")) (define-font tdfgotxaa.pk jtex-v-def (kanji-font tdfgotxaa.jttf)) (define-font tdfgotxaa.jttf jtex-ttf (font-file "dfheic.ttc")) (define-font dfgotzaa.pk jtex-h-def (kanji-font dfgotzaa.jttf)) (define-font dfgotzaa.jttf jtex-ttf (font-file "dfheie.ttc")) (define-font tdfgotzaa.pk jtex-v-def (kanji-font tdfgotzaa.jttf)) (define-font tdfgotzaa.jttf jtex-ttf (font-file "dfheie.ttc")) (define-font dfgsksaa.pk jtex-h-def (kanji-font dfgsksaa.jttf)) (define-font dfgsksaa.jttf jtex-ttf (font-file "dfgsk7.ttc")) (define-font tdfgsksaa.pk jtex-v-def (kanji-font tdfgsksaa.jttf)) (define-font tdfgsksaa.jttf jtex-ttf (font-file "dfgsk7.ttc")) (define-font dfgyopaa.pk jtex-h-def (kanji-font dfgyopaa.jttf)) (define-font dfgyopaa.jttf jtex-ttf (font-file "dfgyomd.ttc")) (define-font tdfgyopaa.pk jtex-v-def (kanji-font tdfgyopaa.jttf)) (define-font tdfgyopaa.jttf jtex-ttf (font-file "dfgyomd.ttc")) (define-font dfgysmaa.pk jtex-h-def (kanji-font dfgysmaa.jttf)) (define-font dfgysmaa.jttf jtex-ttf (font-file "dfgys3.ttc")) (define-font tdfgysmaa.pk jtex-v-def (kanji-font tdfgysmaa.jttf)) (define-font tdfgysmaa.jttf jtex-ttf (font-file "dfgys3.ttc")) (define-font dfhgmpaa.pk jtex-h-def (kanji-font dfhgmpaa.jttf)) (define-font dfhgmpaa.jttf jtex-ttf (font-file "dchgm5.ttc")) (define-font tdfhgmpaa.pk jtex-v-def (kanji-font tdfhgmpaa.jttf)) (define-font tdfhgmpaa.jttf jtex-ttf (font-file "dchgm5.ttc")) (define-font dfhlepaa.pk jtex-h-def (kanji-font dfhlepaa.jttf)) (define-font dfhlepaa.jttf jtex-ttf (font-file "dchlei5.ttc")) (define-font tdfhlepaa.pk jtex-v-def (kanji-font tdfhlepaa.jttf)) (define-font tdfhlepaa.jttf jtex-ttf (font-file "dchlei5.ttc")) (define-font dfhrgoaa.pk jtex-h-def (kanji-font dfhrgoaa.jttf)) (define-font dfhrgoaa.jttf jtex-ttf (font-file "dfhsr4.ttc")) (define-font tdfhrgoaa.pk jtex-v-def (kanji-font tdfhrgoaa.jttf)) (define-font tdfhrgoaa.jttf jtex-ttf (font-file "dfhsr4.ttc")) (define-font dfhsgmaa.pk jtex-h-def (kanji-font dfhsgmaa.jttf)) (define-font dfhsgmaa.jttf jtex-ttf (font-file "dfhsg3.ttc")) (define-font tdfhsgmaa.pk jtex-v-def (kanji-font tdfhsgmaa.jttf)) (define-font tdfhsgmaa.jttf jtex-ttf (font-file "dfhsg3.ttc")) (define-font dfhsgpaa.pk jtex-h-def (kanji-font dfhsgpaa.jttf)) (define-font dfhsgpaa.jttf jtex-ttf (font-file "dfhsg5.ttc")) (define-font tdfhsgpaa.pk jtex-v-def (kanji-font tdfhsgpaa.jttf)) (define-font tdfhsgpaa.jttf jtex-ttf (font-file "dfhsg5.ttc")) (define-font dfhsgsaa.pk jtex-h-def (kanji-font dfhsgsaa.jttf)) (define-font dfhsgsaa.jttf jtex-ttf (font-file "dfhsg7.ttc")) (define-font tdfhsgsaa.pk jtex-v-def (kanji-font tdfhsgsaa.jttf)) (define-font tdfhsgsaa.jttf jtex-ttf (font-file "dfhsg7.ttc")) (define-font dfhsgvaa.pk jtex-h-def (kanji-font dfhsgvaa.jttf)) (define-font dfhsgvaa.jttf jtex-ttf (font-file "dfhsg9.ttc")) (define-font tdfhsgvaa.pk jtex-v-def (kanji-font tdfhsgvaa.jttf)) (define-font tdfhsgvaa.jttf jtex-ttf (font-file "dfhsg9.ttc")) (define-font dfhsmmaa.pk jtex-h-def (kanji-font dfhsmmaa.jttf)) (define-font dfhsmmaa.jttf jtex-ttf (font-file "dfhsm3.ttc")) (define-font tdfhsmmaa.pk jtex-v-def (kanji-font tdfhsmmaa.jttf)) (define-font tdfhsmmaa.jttf jtex-ttf (font-file "dfhsm3.ttc")) (define-font dfhsmpaa.pk jtex-h-def (kanji-font dfhsmpaa.jttf)) (define-font dfhsmpaa.jttf jtex-ttf (font-file "dfhsm5.ttc")) (define-font tdfhsmpaa.pk jtex-v-def (kanji-font tdfhsmpaa.jttf)) (define-font tdfhsmpaa.jttf jtex-ttf (font-file "dfhsm5.ttc")) (define-font dfhsmsaa.pk jtex-h-def (kanji-font dfhsmsaa.jttf)) (define-font dfhsmsaa.jttf jtex-ttf (font-file "dfhsm7.ttc")) (define-font tdfhsmsaa.pk jtex-v-def (kanji-font tdfhsmsaa.jttf)) (define-font tdfhsmsaa.jttf jtex-ttf (font-file "dfhsm7.ttc")) (define-font dfhsmvaa.pk jtex-h-def (kanji-font dfhsmvaa.jttf)) (define-font dfhsmvaa.jttf jtex-ttf (font-file "dfhsm9.ttc")) (define-font tdfhsmvaa.pk jtex-v-def (kanji-font tdfhsmvaa.jttf)) (define-font tdfhsmvaa.jttf jtex-ttf (font-file "dfhsm9.ttc")) (define-font dfinlpaa.pk jtex-h-def (kanji-font dfinlpaa.jttf)) (define-font dfinlpaa.jttf jtex-ttf (font-file "dcinl5.ttc")) (define-font tdfinlpaa.pk jtex-v-def (kanji-font tdfinlpaa.jttf)) (define-font tdfinlpaa.jttf jtex-ttf (font-file "dcinl5.ttc")) (define-font dfkaimaa.pk jtex-h-def (kanji-font dfkaimaa.jttf)) (define-font dfkaimaa.jttf jtex-ttf (font-file "dfkai3.ttc")) (define-font tdfkaimaa.pk jtex-v-def (kanji-font tdfkaimaa.jttf)) (define-font tdfkaimaa.jttf jtex-ttf (font-file "dfkai3.ttc")) (define-font dfkaipaa.pk jtex-h-def (kanji-font dfkaipaa.jttf)) (define-font dfkaipaa.jttf jtex-ttf (font-file "dfkai5.ttc")) (define-font tdfkaipaa.pk jtex-v-def (kanji-font tdfkaipaa.jttf)) (define-font tdfkaipaa.jttf jtex-ttf (font-file "dfkai5.ttc")) (define-font dfkaisaa.pk jtex-h-def (kanji-font dfkaisaa.jttf)) (define-font dfkaisaa.jttf jtex-ttf (font-file "dfkai7.ttc")) (define-font tdfkaisaa.pk jtex-v-def (kanji-font tdfkaisaa.jttf)) (define-font tdfkaisaa.jttf jtex-ttf (font-file "dfkai7.ttc")) (define-font dfkaivaa.pk jtex-h-def (kanji-font dfkaivaa.jttf)) (define-font dfkaivaa.jttf jtex-ttf (font-file "dfkai9.ttc")) (define-font tdfkaivaa.pk jtex-v-def (kanji-font tdfkaivaa.jttf)) (define-font tdfkaivaa.jttf jtex-ttf (font-file "dfkai9.ttc")) (define-font dfkaiyaa.pk jtex-h-def (kanji-font dfkaiyaa.jttf)) (define-font dfkaiyaa.jttf jtex-ttf (font-file "dfkaic.ttc")) (define-font tdfkaiyaa.pk jtex-v-def (kanji-font tdfkaiyaa.jttf)) (define-font tdfkaiyaa.jttf jtex-ttf (font-file "dfkaic.ttc")) (define-font dfkaizaa.pk jtex-h-def (kanji-font dfkaizaa.jttf)) (define-font dfkaizaa.jttf jtex-ttf (font-file "dfkaie.ttc")) (define-font tdfkaizaa.pk jtex-v-def (kanji-font tdfkaizaa.jttf)) (define-font tdfkaizaa.jttf jtex-ttf (font-file "dfkaie.ttc")) (define-font dfkbtmaa.pk jtex-h-def (kanji-font dfkbtmaa.jttf)) (define-font dfkbtmaa.jttf jtex-ttf (font-file "dfkbt3.ttc")) (define-font tdfkbtmaa.pk jtex-v-def (kanji-font tdfkbtmaa.jttf)) (define-font tdfkbtmaa.jttf jtex-ttf (font-file "dfkbt3.ttc")) (define-font dfkgmzaa.pk jtex-h-def (kanji-font dfkgmzaa.jttf)) (define-font dfkgmzaa.jttf jtex-ttf (font-file "dckgmc.ttc")) (define-font tdfkgmzaa.pk jtex-v-def (kanji-font tdfkgmzaa.jttf)) (define-font tdfkgmzaa.jttf jtex-ttf (font-file "dckgmc.ttc")) (define-font dfkoioaa.pk jtex-h-def (kanji-font dfkoioaa.jttf)) (define-font dfkoioaa.jttf jtex-ttf (font-file "dfkoin4.ttc")) (define-font tdfkoioaa.pk jtex-v-def (kanji-font tdfkoioaa.jttf)) (define-font tdfkoioaa.jttf jtex-ttf (font-file "dfkoin4.ttc")) (define-font dfktlxaa.pk jtex-h-def (kanji-font dfktlxaa.jttf)) (define-font dfktlxaa.jttf jtex-ttf (font-file "dfktl8.ttc")) (define-font tdfktlxaa.pk jtex-v-def (kanji-font tdfktlxaa.jttf)) (define-font tdfktlxaa.jttf jtex-ttf (font-file "dfktl8.ttc")) (define-font dfktrxaa.pk jtex-h-def (kanji-font dfktrxaa.jttf)) (define-font dfktrxaa.jttf jtex-ttf (font-file "dfktrxb.ttc")) (define-font tdfktrxaa.pk jtex-v-def (kanji-font tdfktrxaa.jttf)) (define-font tdfktrxaa.jttf jtex-ttf (font-file "dfktrxb.ttc")) (define-font dfkykmaa.pk jtex-h-def (kanji-font dfkykmaa.jttf)) (define-font dfkykmaa.jttf jtex-ttf (font-file "dfkyks3.ttc")) (define-font tdfkykmaa.pk jtex-v-def (kanji-font tdfkykmaa.jttf)) (define-font tdfkykmaa.jttf jtex-ttf (font-file "dfkyks3.ttc")) (define-font dfkykoaa.pk jtex-h-def (kanji-font dfkykoaa.jttf)) (define-font dfkykoaa.jttf jtex-ttf (font-file "dfkyks4.ttc")) (define-font tdfkykoaa.pk jtex-v-def (kanji-font tdfkykoaa.jttf)) (define-font tdfkykoaa.jttf jtex-ttf (font-file "dfkyks4.ttc")) (define-font dfleipaa.pk jtex-h-def (kanji-font dfleipaa.jttf)) (define-font dfleipaa.jttf jtex-ttf (font-file "dfleimd.ttc")) (define-font tdfleipaa.pk jtex-v-def (kanji-font tdfleipaa.jttf)) (define-font tdfleipaa.jttf jtex-ttf (font-file "dfleimd.ttc")) (define-font dflgsvaa.pk jtex-h-def (kanji-font dflgsvaa.jttf)) (define-font dflgsvaa.jttf jtex-ttf (font-file "dflgs9.ttc")) (define-font tdflgsvaa.pk jtex-v-def (kanji-font tdflgsvaa.jttf)) (define-font tdflgsvaa.jttf jtex-ttf (font-file "dflgs9.ttc")) (define-font dflispaa.pk jtex-h-def (kanji-font dflispaa.jttf)) (define-font dflispaa.jttf jtex-ttf (font-file "dflis6.ttc")) (define-font tdflispaa.pk jtex-v-def (kanji-font tdflispaa.jttf)) (define-font tdflispaa.jttf jtex-ttf (font-file "dflis6.ttc")) (define-font dflkapaa.pk jtex-h-def (kanji-font dflkapaa.jttf)) (define-font dflkapaa.jttf jtex-ttf (font-file "dclkai5.ttc")) (define-font tdflkapaa.pk jtex-v-def (kanji-font tdflkapaa.jttf)) (define-font tdflkapaa.jttf jtex-ttf (font-file "dclkai5.ttc")) (define-font dfminyaa.pk jtex-h-def (kanji-font dfminyaa.jttf)) (define-font dfminyaa.jttf jtex-ttf (font-file "dfminc.ttc1")) (define-font tdfminyaa.pk jtex-v-def (kanji-font tdfminyaa.jttf)) (define-font tdfminyaa.jttf jtex-ttf (font-file "dfminc.ttc1")) (define-font dfminzaa.pk jtex-h-def (kanji-font dfminzaa.jttf)) (define-font dfminzaa.jttf jtex-ttf (font-file "dfmine.ttc")) (define-font tdfminzaa.pk jtex-v-def (kanji-font tdfminzaa.jttf)) (define-font tdfminzaa.jttf jtex-ttf (font-file "dfmine.ttc")) (define-font dfmipmaa.pk jtex-h-def (kanji-font dfmipmaa.jttf)) (define-font dfmipmaa.jttf jtex-ttf (font-file "dfmimp3.ttc")) (define-font tdfmipmaa.pk jtex-v-def (kanji-font tdfmipmaa.jttf)) (define-font tdfmipmaa.jttf jtex-ttf (font-file "dfmimp3.ttc")) (define-font dfmippaa.pk jtex-h-def (kanji-font dfmippaa.jttf)) (define-font dfmippaa.jttf jtex-ttf (font-file "dfmimp5.ttc")) (define-font tdfmippaa.pk jtex-v-def (kanji-font tdfmippaa.jttf)) (define-font tdfmippaa.jttf jtex-ttf (font-file "dfmimp5.ttc")) (define-font dfmrgkaa.pk jtex-h-def (kanji-font dfmrgkaa.jttf)) (define-font dfmrgkaa.jttf jtex-ttf (font-file "dfmrg2.ttc")) (define-font tdfmrgkaa.pk jtex-v-def (kanji-font tdfmrgkaa.jttf)) (define-font tdfmrgkaa.jttf jtex-ttf (font-file "dfmrg2.ttc")) (define-font dfmrgmaa.pk jtex-h-def (kanji-font dfmrgmaa.jttf)) (define-font dfmrgmaa.jttf jtex-ttf (font-file "dfmrg3.ttc")) (define-font tdfmrgmaa.pk jtex-v-def (kanji-font tdfmrgmaa.jttf)) (define-font tdfmrgmaa.jttf jtex-ttf (font-file "dfmrg3.ttc")) (define-font dfmrgpaa.pk jtex-h-def (kanji-font dfmrgpaa.jttf)) (define-font dfmrgpaa.jttf jtex-ttf (font-file "dfmrg5.ttc")) (define-font tdfmrgpaa.pk jtex-v-def (kanji-font tdfmrgpaa.jttf)) (define-font tdfmrgpaa.jttf jtex-ttf (font-file "dfmrg5.ttc")) (define-font dfmrgsaa.pk jtex-h-def (kanji-font dfmrgsaa.jttf)) (define-font dfmrgsaa.jttf jtex-ttf (font-file "dfmrg7.ttc")) (define-font tdfmrgsaa.pk jtex-v-def (kanji-font tdfmrgsaa.jttf)) (define-font tdfmrgsaa.jttf jtex-ttf (font-file "dfmrg7.ttc")) (define-font dfmrgvaa.pk jtex-h-def (kanji-font dfmrgvaa.jttf)) (define-font dfmrgvaa.jttf jtex-ttf (font-file "dfmrg9.ttc")) (define-font tdfmrgvaa.pk jtex-v-def (kanji-font tdfmrgvaa.jttf)) (define-font tdfmrgvaa.jttf jtex-ttf (font-file "dfmrg9.ttc")) (define-font dfmrgyaa.pk jtex-h-def (kanji-font dfmrgyaa.jttf)) (define-font dfmrgyaa.jttf jtex-ttf (font-file "dfmrgc.ttc")) (define-font tdfmrgyaa.pk jtex-v-def (kanji-font tdfmrgyaa.jttf)) (define-font tdfmrgyaa.jttf jtex-ttf (font-file "dfmrgc.ttc")) (define-font dfmrgzaa.pk jtex-h-def (kanji-font dfmrgzaa.jttf)) (define-font dfmrgzaa.jttf jtex-ttf (font-file "dfmrge.ttc")) (define-font tdfmrgzaa.pk jtex-v-def (kanji-font tdfmrgzaa.jttf)) (define-font tdfmrgzaa.jttf jtex-ttf (font-file "dfmrge.ttc")) (define-font dfmrmmaa.pk jtex-h-def (kanji-font dfmrmmaa.jttf)) (define-font dfmrmmaa.jttf jtex-ttf (font-file "dfmrm3.ttc")) (define-font tdfmrmmaa.pk jtex-v-def (kanji-font tdfmrmmaa.jttf)) (define-font tdfmrmmaa.jttf jtex-ttf (font-file "dfmrm3.ttc")) (define-font dfmrmpaa.pk jtex-h-def (kanji-font dfmrmpaa.jttf)) (define-font dfmrmpaa.jttf jtex-ttf (font-file "dfmrm5.ttc")) (define-font tdfmrmpaa.pk jtex-v-def (kanji-font tdfmrmpaa.jttf)) (define-font tdfmrmpaa.jttf jtex-ttf (font-file "dfmrm5.ttc")) (define-font dfmrmsaa.pk jtex-h-def (kanji-font dfmrmsaa.jttf)) (define-font dfmrmsaa.jttf jtex-ttf (font-file "dfmrm7.ttc")) (define-font tdfmrmsaa.pk jtex-v-def (kanji-font tdfmrmsaa.jttf)) (define-font tdfmrmsaa.jttf jtex-ttf (font-file "dfmrm7.ttc")) (define-font dfmrmvaa.pk jtex-h-def (kanji-font dfmrmvaa.jttf)) (define-font dfmrmvaa.jttf jtex-ttf (font-file "dfmrm9.ttc")) (define-font tdfmrmvaa.pk jtex-v-def (kanji-font tdfmrmvaa.jttf)) (define-font tdfmrmvaa.jttf jtex-ttf (font-file "dfmrm9.ttc")) (define-font dfoyjpaa.pk jtex-h-def (kanji-font dfoyjpaa.jttf)) (define-font dfoyjpaa.jttf jtex-ttf (font-file "dfoyj5.ttc")) (define-font tdfoyjpaa.pk jtex-v-def (kanji-font tdfoyjpaa.jttf)) (define-font tdfoyjpaa.jttf jtex-ttf (font-file "dfoyj5.ttc")) (define-font dfpocraa.pk jtex-h-def (kanji-font dfpocraa.jttf)) (define-font dfpocraa.jttf jtex-ttf (font-file "dfpocl7.ttc")) (define-font tdfpocraa.pk jtex-v-def (kanji-font tdfpocraa.jttf)) (define-font tdfpocraa.jttf jtex-ttf (font-file "dfpocl7.ttc")) (define-font dfpocsaa.pk jtex-h-def (kanji-font dfpocsaa.jttf)) (define-font dfpocsaa.jttf jtex-ttf (font-file "dfpoco7.ttc")) (define-font tdfpocsaa.pk jtex-v-def (kanji-font tdfpocsaa.jttf)) (define-font tdfpocsaa.jttf jtex-ttf (font-file "dfpoco7.ttc")) (define-font dfpoczaa.pk jtex-h-def (kanji-font dfpoczaa.jttf)) (define-font dfpoczaa.jttf jtex-ttf (font-file "dfpococ.ttc")) (define-font tdfpoczaa.pk jtex-v-def (kanji-font tdfpoczaa.jttf)) (define-font tdfpoczaa.jttf jtex-ttf (font-file "dfpococ.ttc")) (define-font dfpopmaa.pk jtex-h-def (kanji-font dfpopmaa.jttf)) (define-font dfpopmaa.jttf jtex-ttf (font-file "dfpop3.ttc")) (define-font tdfpopmaa.pk jtex-v-def (kanji-font tdfpopmaa.jttf)) (define-font tdfpopmaa.jttf jtex-ttf (font-file "dfpop3.ttc")) (define-font dfpoppaa.pk jtex-h-def (kanji-font dfpoppaa.jttf)) (define-font dfpoppaa.jttf jtex-ttf (font-file "dfpop5.ttc")) (define-font tdfpoppaa.pk jtex-v-def (kanji-font tdfpoppaa.jttf)) (define-font tdfpoppaa.jttf jtex-ttf (font-file "dfpop5.ttc")) (define-font dfpopraa.pk jtex-h-def (kanji-font dfpopraa.jttf)) (define-font dfpopraa.jttf jtex-ttf (font-file "dfpop7.ttc")) (define-font tdfpopraa.pk jtex-v-def (kanji-font tdfpopraa.jttf)) (define-font tdfpopraa.jttf jtex-ttf (font-file "dfpop7.ttc")) (define-font dfpopvaa.pk jtex-h-def (kanji-font dfpopvaa.jttf)) (define-font dfpopvaa.jttf jtex-ttf (font-file "dfpop9.ttc")) (define-font tdfpopvaa.pk jtex-v-def (kanji-font tdfpopvaa.jttf)) (define-font tdfpopvaa.jttf jtex-ttf (font-file "dfpop9.ttc")) (define-font dfpopzaa.pk jtex-h-def (kanji-font dfpopzaa.jttf)) (define-font dfpopzaa.jttf jtex-ttf (font-file "dfpop1-c.ttc")) (define-font tdfpopzaa.pk jtex-v-def (kanji-font tdfpopzaa.jttf)) (define-font tdfpopzaa.jttf jtex-ttf (font-file "dfpop1-c.ttc")) (define-font dfpoqvaa.pk jtex-h-def (kanji-font dfpoqvaa.jttf)) (define-font dfpoqvaa.jttf jtex-ttf (font-file "dfpop2-9.ttc")) (define-font tdfpoqvaa.pk jtex-v-def (kanji-font tdfpoqvaa.jttf)) (define-font tdfpoqvaa.jttf jtex-ttf (font-file "dfpop2-9.ttc")) (define-font dfpoqzaa.pk jtex-h-def (kanji-font dfpoqzaa.jttf)) (define-font dfpoqzaa.jttf jtex-ttf (font-file "dfpop2-c.ttc")) (define-font tdfpoqzaa.pk jtex-v-def (kanji-font tdfpoqzaa.jttf)) (define-font tdfpoqzaa.jttf jtex-ttf (font-file "dfpop2-c.ttc")) (define-font dfposraa.pk jtex-h-def (kanji-font dfposraa.jttf)) (define-font dfposraa.jttf jtex-ttf (font-file "dfpost7.ttc")) (define-font tdfposraa.pk jtex-v-def (kanji-font tdfposraa.jttf)) (define-font tdfposraa.jttf jtex-ttf (font-file "dfpost7.ttc")) (define-font dfruapaa.pk jtex-h-def (kanji-font dfruapaa.jttf)) (define-font dfruapaa.jttf jtex-ttf (font-file "dfrula5.ttc")) (define-font tdfruapaa.pk jtex-v-def (kanji-font tdfruapaa.jttf)) (define-font tdfruapaa.jttf jtex-ttf (font-file "dfrula5.ttc")) (define-font dfruasaa.pk jtex-h-def (kanji-font dfruasaa.jttf)) (define-font dfruasaa.jttf jtex-ttf (font-file "dfrula9.ttc")) (define-font tdfruasaa.pk jtex-v-def (kanji-font tdfruasaa.jttf)) (define-font tdfruasaa.jttf jtex-ttf (font-file "dfrula9.ttc")) (define-font dfrulpaa.pk jtex-h-def (kanji-font dfrulpaa.jttf)) (define-font dfrulpaa.jttf jtex-ttf (font-file "dfrule5.ttc")) (define-font tdfrulpaa.pk jtex-v-def (kanji-font tdfrulpaa.jttf)) (define-font tdfrulpaa.jttf jtex-ttf (font-file "dfrule5.ttc")) (define-font dfrulsaa.pk jtex-h-def (kanji-font dfrulsaa.jttf)) (define-font dfrulsaa.jttf jtex-ttf (font-file "dfrule7.ttc")) (define-font tdfrulsaa.pk jtex-v-def (kanji-font tdfrulsaa.jttf)) (define-font tdfrulsaa.jttf jtex-ttf (font-file "dfrule7.ttc")) (define-font dfrysvaa.pk jtex-h-def (kanji-font dfrysvaa.jttf)) (define-font dfrysvaa.jttf jtex-ttf (font-file "dfrys9.ttc")) (define-font tdfrysvaa.pk jtex-v-def (kanji-font tdfrysvaa.jttf)) (define-font tdfrysvaa.jttf jtex-ttf (font-file "dfrys9.ttc")) (define-font dfsgypaa.pk jtex-h-def (kanji-font dfsgypaa.jttf)) (define-font dfsgypaa.jttf jtex-ttf (font-file "dfsgyo5.ttc")) (define-font tdfsgypaa.pk jtex-v-def (kanji-font tdfsgypaa.jttf)) (define-font tdfsgypaa.jttf jtex-ttf (font-file "dfsgyo5.ttc")) (define-font dfshtpaa.pk jtex-h-def (kanji-font dfshtpaa.jttf)) (define-font dfshtpaa.jttf jtex-ttf (font-file "dfsht5.ttc")) (define-font tdfshtpaa.pk jtex-v-def (kanji-font tdfshtpaa.jttf)) (define-font tdfshtpaa.jttf jtex-ttf (font-file "dfsht5.ttc")) (define-font dfshtsaa.pk jtex-h-def (kanji-font dfshtsaa.jttf)) (define-font dfshtsaa.jttf jtex-ttf (font-file "dfsht7.ttc")) (define-font tdfshtsaa.pk jtex-v-def (kanji-font tdfshtsaa.jttf)) (define-font tdfshtsaa.jttf jtex-ttf (font-file "dfsht7.ttc")) (define-font dfskasaa.pk jtex-h-def (kanji-font dfskasaa.jttf)) (define-font dfskasaa.jttf jtex-ttf (font-file "dfskai7.ttc")) (define-font tdfskasaa.pk jtex-v-def (kanji-font tdfskasaa.jttf)) (define-font tdfskasaa.jttf jtex-ttf (font-file "dfskai7.ttc")) (define-font dfsogpaa.pk jtex-h-def (kanji-font dfsogpaa.jttf)) (define-font dfsogpaa.jttf jtex-ttf (font-file "dfsoge5.ttc")) (define-font tdfsogpaa.pk jtex-v-def (kanji-font tdfsogpaa.jttf)) (define-font tdfsogpaa.jttf jtex-ttf (font-file "dfsoge5.ttc")) (define-font dfsogsaa.pk jtex-h-def (kanji-font dfsogsaa.jttf)) (define-font dfsogsaa.jttf jtex-ttf (font-file "dfsoge7.ttc")) (define-font tdfsogsaa.pk jtex-v-def (kanji-font tdfsogsaa.jttf)) (define-font tdfsogsaa.jttf jtex-ttf (font-file "dfsoge7.ttc")) (define-font dfsogvaa.pk jtex-h-def (kanji-font dfsogvaa.jttf)) (define-font dfsogvaa.jttf jtex-ttf (font-file "dfsoge9.ttc")) (define-font tdfsogvaa.pk jtex-v-def (kanji-font tdfsogvaa.jttf)) (define-font tdfsogvaa.jttf jtex-ttf (font-file "dfsoge9.ttc")) (define-font dfsokmaa.pk jtex-h-def (kanji-font dfsokmaa.jttf)) (define-font dfsokmaa.jttf jtex-ttf (font-file "dfsokn3.ttc")) (define-font tdfsokmaa.pk jtex-v-def (kanji-font tdfsokmaa.jttf)) (define-font tdfsokmaa.jttf jtex-ttf (font-file "dfsokn3.ttc")) (define-font dfssomaa.pk jtex-h-def (kanji-font dfssomaa.jttf)) (define-font dfssomaa.jttf jtex-ttf (font-file "dfsso3.ttc")) (define-font tdfssomaa.pk jtex-v-def (kanji-font tdfssomaa.jttf)) (define-font tdfssomaa.jttf jtex-ttf (font-file "dfsso3.ttc")) (define-font dfsumzaa.pk jtex-h-def (kanji-font dfsumzaa.jttf)) (define-font dfsumzaa.jttf jtex-ttf (font-file "dfsumoc.ttc")) (define-font tdfsumzaa.pk jtex-v-def (kanji-font tdfsumzaa.jttf)) (define-font tdfsumzaa.jttf jtex-ttf (font-file "dfsumoc.ttc")) (define-font dftlepaa.pk jtex-h-def (kanji-font dftlepaa.jttf)) (define-font dftlepaa.jttf jtex-ttf (font-file "dftlei5.ttc")) (define-font tdftlepaa.pk jtex-v-def (kanji-font tdftlepaa.jttf)) (define-font tdftlepaa.jttf jtex-ttf (font-file "dftlei5.ttc")) (define-font dftlesaa.pk jtex-h-def (kanji-font dftlesaa.jttf)) (define-font dftlesaa.jttf jtex-ttf (font-file "dftlei7.ttc")) (define-font tdftlesaa.pk jtex-v-def (kanji-font tdftlesaa.jttf)) (define-font tdftlesaa.jttf jtex-ttf (font-file "dftlei7.ttc")) (define-font dftlevaa.pk jtex-h-def (kanji-font dftlevaa.jttf)) (define-font dftlevaa.jttf jtex-ttf (font-file "dftlei9.ttc")) (define-font tdftlevaa.pk jtex-v-def (kanji-font tdftlevaa.jttf)) (define-font tdftlevaa.jttf jtex-ttf (font-file "dftlei9.ttc")) (define-font dfysmsaa.pk jtex-h-def (kanji-font dfysmsaa.jttf)) (define-font dfysmsaa.jttf jtex-ttf (font-file "dcysm7.ttc")) (define-font tdfysmsaa.pk jtex-v-def (kanji-font tdfysmsaa.jttf)) (define-font tdfysmsaa.jttf jtex-ttf (font-file "dcysm7.ttc")) (define-font fjashxaa.pk jtex-h-def (kanji-font fjashxaa.jttf)) (define-font fjashxaa.jttf jtex-ttf (font-file "f5ajckrh.ttf")) (define-font tfjashxaa.pk jtex-v-def (kanji-font tfjashxaa.jttf)) (define-font tfjashxaa.jttf jtex-ttf (font-file "f5ajckrh.ttf")) (define-font fjcpemaa.pk jtex-h-def (kanji-font fjcpemaa.jttf)) (define-font fjcpemaa.jttf jtex-ttf (font-file "f5ajccpe.ttf")) (define-font tfjcpemaa.pk jtex-v-def (kanji-font tfjcpemaa.jttf)) (define-font tfjcpemaa.jttf jtex-ttf (font-file "f5ajccpe.ttf")) (define-font fjcsxmaa.pk jtex-h-def (kanji-font fjcsxmaa.jttf)) (define-font fjcsxmaa.jttf jtex-ttf (font-file "f5ajcsxx.ttf")) (define-font tfjcsxmaa.pk jtex-v-def (kanji-font tfjcsxmaa.jttf)) (define-font tfjcsxmaa.jttf jtex-ttf (font-file "f5ajcsxx.ttf")) (define-font fjfdkmaa.pk jtex-h-def (kanji-font fjfdkmaa.jttf)) (define-font fjfdkmaa.jttf jtex-ttf (font-file "f5ajcfdk.ttf")) (define-font tfjfdkmaa.pk jtex-v-def (kanji-font tfjfdkmaa.jttf)) (define-font tfjfdkmaa.jttf jtex-ttf (font-file "f5ajcfdk.ttf")) (define-font fjgotmaa.pk jtex-h-def (kanji-font fjgotmaa.jttf)) (define-font fjgotmaa.jttf jtex-ttf (font-file "f5ajcfg3.ttf")) (define-font tfjgotmaa.pk jtex-v-def (kanji-font tfjgotmaa.jttf)) (define-font tfjgotmaa.jttf jtex-ttf (font-file "f5ajcfg3.ttf")) (define-font fjgotpaa.pk jtex-h-def (kanji-font fjgotpaa.jttf)) (define-font fjgotpaa.jttf jtex-ttf (font-file "f5ajcfg7.ttf")) (define-font tfjgotpaa.pk jtex-v-def (kanji-font tfjgotpaa.jttf)) (define-font tfjgotpaa.jttf jtex-ttf (font-file "f5ajcfg7.ttf")) (define-font fjgotsaa.pk jtex-h-def (kanji-font fjgotsaa.jttf)) (define-font fjgotsaa.jttf jtex-ttf (font-file "f5ajcfg9.ttf")) (define-font tfjgotsaa.pk jtex-v-def (kanji-font tfjgotsaa.jttf)) (define-font tfjgotsaa.jttf jtex-ttf (font-file "f5ajcfg9.ttf")) (define-font fjgotxaa.pk jtex-h-def (kanji-font fjgotxaa.jttf)) (define-font fjgotxaa.jttf jtex-ttf (font-file "f5ajcfgd.ttf")) (define-font tfjgotxaa.pk jtex-v-def (kanji-font tfjgotxaa.jttf)) (define-font tfjgotxaa.jttf jtex-ttf (font-file "f5ajcfgd.ttf")) (define-font fjgykmaa.pk jtex-h-def (kanji-font fjgykmaa.jttf)) (define-font fjgykmaa.jttf jtex-ttf (font-file "f5ajcgyk.ttf")) (define-font tfjgykmaa.pk jtex-v-def (kanji-font tfjgykmaa.jttf)) (define-font tfjgykmaa.jttf jtex-ttf (font-file "f5ajcgyk.ttf")) (define-font fjhigxaa.pk jtex-h-def (kanji-font fjhigxaa.jttf)) (define-font fjhigxaa.jttf jtex-ttf (font-file "f5ajchig.ttf")) (define-font tfjhigxaa.pk jtex-v-def (kanji-font tfjhigxaa.jttf)) (define-font tfjhigxaa.jttf jtex-ttf (font-file "f5ajchig.ttf")) (define-font fjhikmaa.pk jtex-h-def (kanji-font fjhikmaa.jttf)) (define-font fjhikmaa.jttf jtex-ttf (font-file "f5ajchik.ttf")) (define-font tfjhikmaa.pk jtex-v-def (kanji-font tfjhikmaa.jttf)) (define-font tfjhikmaa.jttf jtex-ttf (font-file "f5ajchik.ttf")) (define-font fjhrgoaa.pk jtex-h-def (kanji-font fjhrgoaa.jttf)) (define-font fjhrgoaa.jttf jtex-ttf (font-file "f5ajchr4.ttf")) (define-font tfjhrgoaa.pk jtex-v-def (kanji-font tfjhrgoaa.jttf)) (define-font tfjhrgoaa.jttf jtex-ttf (font-file "f5ajchr4.ttf")) (define-font fjhsgpaa.pk jtex-h-def (kanji-font fjhsgpaa.jttf)) (define-font fjhsgpaa.jttf jtex-ttf (font-file "f5ajchg5.ttf")) (define-font tfjhsgpaa.pk jtex-v-def (kanji-font tfjhsgpaa.jttf)) (define-font tfjhsgpaa.jttf jtex-ttf (font-file "f5ajchg5.ttf")) (define-font fjhsgsaa.pk jtex-h-def (kanji-font fjhsgsaa.jttf)) (define-font fjhsgsaa.jttf jtex-ttf (font-file "f5ajchg7.ttf")) (define-font tfjhsgsaa.pk jtex-v-def (kanji-font tfjhsgsaa.jttf)) (define-font tfjhsgsaa.jttf jtex-ttf (font-file "f5ajchg7.ttf")) (define-font fjhsgvaa.pk jtex-h-def (kanji-font fjhsgvaa.jttf)) (define-font fjhsgvaa.jttf jtex-ttf (font-file "f5ajchg9.ttf")) (define-font tfjhsgvaa.pk jtex-v-def (kanji-font tfjhsgvaa.jttf)) (define-font tfjhsgvaa.jttf jtex-ttf (font-file "f5ajchg9.ttf")) (define-font fjhsmmaa.pk jtex-h-def (kanji-font fjhsmmaa.jttf)) (define-font fjhsmmaa.jttf jtex-ttf (font-file "f5ajchm3.ttf")) (define-font tfjhsmmaa.pk jtex-v-def (kanji-font tfjhsmmaa.jttf)) (define-font tfjhsmmaa.jttf jtex-ttf (font-file "f5ajchm3.ttf")) (define-font fjhsmraa.pk jtex-h-def (kanji-font fjhsmraa.jttf)) (define-font fjhsmraa.jttf jtex-ttf (font-file "f5ajchm6.ttf")) (define-font tfjhsmraa.pk jtex-v-def (kanji-font tfjhsmraa.jttf)) (define-font tfjhsmraa.jttf jtex-ttf (font-file "f5ajchm6.ttf")) (define-font fjhsmvaa.pk jtex-h-def (kanji-font fjhsmvaa.jttf)) (define-font fjhsmvaa.jttf jtex-ttf (font-file "f5ajchm9.ttf")) (define-font tfjhsmvaa.pk jtex-v-def (kanji-font tfjhsmvaa.jttf)) (define-font tfjhsmvaa.jttf jtex-ttf (font-file "f5ajchm9.ttf")) (define-font fjimapaa.pk jtex-h-def (kanji-font fjimapaa.jttf)) (define-font fjimapaa.jttf jtex-ttf (font-file "f5ajci18.ttf")) (define-font tfjimapaa.pk jtex-v-def (kanji-font tfjimapaa.jttf)) (define-font tfjimapaa.jttf jtex-ttf (font-file "f5ajci18.ttf")) (define-font fjimbmaa.pk jtex-h-def (kanji-font fjimbmaa.jttf)) (define-font fjimbmaa.jttf jtex-ttf (font-file "f5ajci25.ttf")) (define-font tfjimbmaa.pk jtex-v-def (kanji-font tfjimbmaa.jttf)) (define-font tfjimbmaa.jttf jtex-ttf (font-file "f5ajci25.ttf")) (define-font fjimcraa.pk jtex-h-def (kanji-font fjimcraa.jttf)) (define-font fjimcraa.jttf jtex-ttf (font-file "f5ajci3a.ttf")) (define-font tfjimcraa.pk jtex-v-def (kanji-font tfjimcraa.jttf)) (define-font tfjimcraa.jttf jtex-ttf (font-file "f5ajci3a.ttf")) (define-font fjimdsaa.pk jtex-h-def (kanji-font fjimdsaa.jttf)) (define-font fjimdsaa.jttf jtex-ttf (font-file "f5ajci47.ttf")) (define-font tfjimdsaa.pk jtex-v-def (kanji-font tfjimdsaa.jttf)) (define-font tfjimdsaa.jttf jtex-ttf (font-file "f5ajci47.ttf")) (define-font fjimevaa.pk jtex-h-def (kanji-font fjimevaa.jttf)) (define-font fjimevaa.jttf jtex-ttf (font-file "f5ajci5d.ttf")) (define-font tfjimevaa.pk jtex-v-def (kanji-font tfjimevaa.jttf)) (define-font tfjimevaa.jttf jtex-ttf (font-file "f5ajci5d.ttf")) (define-font fjkanaxa.pk jtex-h-def (kanji-font fjkanaxa.jttf)) (define-font fjkanaxa.jttf jtex-ttf (font-file "f5ajck01.ttf")) (define-font tfjkanaxa.pk jtex-v-def (kanji-font tfjkanaxa.jttf)) (define-font tfjkanaxa.jttf jtex-ttf (font-file "f5ajck01.ttf")) (define-font fjkanaxb.pk jtex-h-def (kanji-font fjkanaxb.jttf)) (define-font fjkanaxb.jttf jtex-ttf (font-file "f5ajck02.ttf")) (define-font tfjkanaxb.pk jtex-v-def (kanji-font tfjkanaxb.jttf)) (define-font tfjkanaxb.jttf jtex-ttf (font-file "f5ajck02.ttf")) (define-font fjkanaxc.pk jtex-h-def (kanji-font fjkanaxc.jttf)) (define-font fjkanaxc.jttf jtex-ttf (font-file "f5ajck03.ttf")) (define-font tfjkanaxc.pk jtex-v-def (kanji-font tfjkanaxc.jttf)) (define-font tfjkanaxc.jttf jtex-ttf (font-file "f5ajck03.ttf")) (define-font fjkanaxd.pk jtex-h-def (kanji-font fjkanaxd.jttf)) (define-font fjkanaxd.jttf jtex-ttf (font-file "f5ajck04.ttf")) (define-font tfjkanaxd.pk jtex-v-def (kanji-font tfjkanaxd.jttf)) (define-font tfjkanaxd.jttf jtex-ttf (font-file "f5ajck04.ttf")) (define-font fjkanaxe.pk jtex-h-def (kanji-font fjkanaxe.jttf)) (define-font fjkanaxe.jttf jtex-ttf (font-file "f5ajck05.ttf")) (define-font tfjkanaxe.pk jtex-v-def (kanji-font tfjkanaxe.jttf)) (define-font tfjkanaxe.jttf jtex-ttf (font-file "f5ajck05.ttf")) (define-font fjkanaxf.pk jtex-h-def (kanji-font fjkanaxf.jttf)) (define-font fjkanaxf.jttf jtex-ttf (font-file "f5ajck06.ttf")) (define-font tfjkanaxf.pk jtex-v-def (kanji-font tfjkanaxf.jttf)) (define-font tfjkanaxf.jttf jtex-ttf (font-file "f5ajck06.ttf")) (define-font fjkanaxg.pk jtex-h-def (kanji-font fjkanaxg.jttf)) (define-font fjkanaxg.jttf jtex-ttf (font-file "f5ajck07.ttf")) (define-font tfjkanaxg.pk jtex-v-def (kanji-font tfjkanaxg.jttf)) (define-font tfjkanaxg.jttf jtex-ttf (font-file "f5ajck07.ttf")) (define-font fjkanaxh.pk jtex-h-def (kanji-font fjkanaxh.jttf)) (define-font fjkanaxh.jttf jtex-ttf (font-file "f5ajck08.ttf")) (define-font tfjkanaxh.pk jtex-v-def (kanji-font tfjkanaxh.jttf)) (define-font tfjkanaxh.jttf jtex-ttf (font-file "f5ajck08.ttf")) (define-font fjkanaxi.pk jtex-h-def (kanji-font fjkanaxi.jttf)) (define-font fjkanaxi.jttf jtex-ttf (font-file "f5ajck09.ttf")) (define-font tfjkanaxi.pk jtex-v-def (kanji-font tfjkanaxi.jttf)) (define-font tfjkanaxi.jttf jtex-ttf (font-file "f5ajck09.ttf")) (define-font fjkanaxj.pk jtex-h-def (kanji-font fjkanaxj.jttf)) (define-font fjkanaxj.jttf jtex-ttf (font-file "f5ajck10.ttf")) (define-font tfjkanaxj.pk jtex-v-def (kanji-font tfjkanaxj.jttf)) (define-font tfjkanaxj.jttf jtex-ttf (font-file "f5ajck10.ttf")) (define-font fjkanaxk.pk jtex-h-def (kanji-font fjkanaxk.jttf)) (define-font fjkanaxk.jttf jtex-ttf (font-file "f5ajck11.ttf")) (define-font tfjkanaxk.pk jtex-v-def (kanji-font tfjkanaxk.jttf)) (define-font tfjkanaxk.jttf jtex-ttf (font-file "f5ajck11.ttf")) (define-font fjkanaxl.pk jtex-h-def (kanji-font fjkanaxl.jttf)) (define-font fjkanaxl.jttf jtex-ttf (font-file "f5ajck12.ttf")) (define-font tfjkanaxl.pk jtex-v-def (kanji-font tfjkanaxl.jttf)) (define-font tfjkanaxl.jttf jtex-ttf (font-file "f5ajck12.ttf")) (define-font fjkanaxm.pk jtex-h-def (kanji-font fjkanaxm.jttf)) (define-font fjkanaxm.jttf jtex-ttf (font-file "f5ajck13.ttf")) (define-font tfjkanaxm.pk jtex-v-def (kanji-font tfjkanaxm.jttf)) (define-font tfjkanaxm.jttf jtex-ttf (font-file "f5ajck13.ttf")) (define-font fjkanaxn.pk jtex-h-def (kanji-font fjkanaxn.jttf)) (define-font fjkanaxn.jttf jtex-ttf (font-file "f5ajck14.ttf")) (define-font tfjkanaxn.pk jtex-v-def (kanji-font tfjkanaxn.jttf)) (define-font tfjkanaxn.jttf jtex-ttf (font-file "f5ajck14.ttf")) (define-font fjkanaxo.pk jtex-h-def (kanji-font fjkanaxo.jttf)) (define-font fjkanaxo.jttf jtex-ttf (font-file "f5ajck15.ttf")) (define-font tfjkanaxo.pk jtex-v-def (kanji-font tfjkanaxo.jttf)) (define-font tfjkanaxo.jttf jtex-ttf (font-file "f5ajck15.ttf")) (define-font fjkanaxp.pk jtex-h-def (kanji-font fjkanaxp.jttf)) (define-font fjkanaxp.jttf jtex-ttf (font-file "f5ajck16.ttf")) (define-font tfjkanaxp.pk jtex-v-def (kanji-font tfjkanaxp.jttf)) (define-font tfjkanaxp.jttf jtex-ttf (font-file "f5ajck16.ttf")) (define-font fjkanaxq.pk jtex-h-def (kanji-font fjkanaxq.jttf)) (define-font fjkanaxq.jttf jtex-ttf (font-file "f5ajck17.ttf")) (define-font tfjkanaxq.pk jtex-v-def (kanji-font tfjkanaxq.jttf)) (define-font tfjkanaxq.jttf jtex-ttf (font-file "f5ajck17.ttf")) (define-font fjkanaxr.pk jtex-h-def (kanji-font fjkanaxr.jttf)) (define-font fjkanaxr.jttf jtex-ttf (font-file "f5ajck18.ttf")) (define-font tfjkanaxr.pk jtex-v-def (kanji-font tfjkanaxr.jttf)) (define-font tfjkanaxr.jttf jtex-ttf (font-file "f5ajck18.ttf")) (define-font fjkanaxs.pk jtex-h-def (kanji-font fjkanaxs.jttf)) (define-font fjkanaxs.jttf jtex-ttf (font-file "f5ajck19.ttf")) (define-font tfjkanaxs.pk jtex-v-def (kanji-font tfjkanaxs.jttf)) (define-font tfjkanaxs.jttf jtex-ttf (font-file "f5ajck19.ttf")) (define-font fjkanaxt.pk jtex-h-def (kanji-font fjkanaxt.jttf)) (define-font fjkanaxt.jttf jtex-ttf (font-file "f5ajck20.ttf")) (define-font tfjkanaxt.pk jtex-v-def (kanji-font tfjkanaxt.jttf)) (define-font tfjkanaxt.jttf jtex-ttf (font-file "f5ajck20.ttf")) (define-font fjkedxaa.pk jtex-h-def (kanji-font fjkedxaa.jttf)) (define-font fjkedxaa.jttf jtex-ttf (font-file "f5ajcked.ttf")) (define-font tfjkedxaa.pk jtex-v-def (kanji-font tfjkedxaa.jttf)) (define-font tfjkedxaa.jttf jtex-ttf (font-file "f5ajcked.ttf")) (define-font fjkykmaa.pk jtex-h-def (kanji-font fjkykmaa.jttf)) (define-font fjkykmaa.jttf jtex-ttf (font-file "f5ajcky1.ttf")) (define-font tfjkykmaa.pk jtex-v-def (kanji-font tfjkykmaa.jttf)) (define-font tfjkykmaa.jttf jtex-ttf (font-file "f5ajcky1.ttf")) (define-font fjkykpaa.pk jtex-h-def (kanji-font fjkykpaa.jttf)) (define-font fjkykpaa.jttf jtex-ttf (font-file "f5ajcky2.ttf")) (define-font tfjkykpaa.pk jtex-v-def (kanji-font tfjkykpaa.jttf)) (define-font tfjkykpaa.jttf jtex-ttf (font-file "f5ajcky2.ttf")) (define-font fjmarpaa.pk jtex-h-def (kanji-font fjmarpaa.jttf)) (define-font fjmarpaa.jttf jtex-ttf (font-file "f5ajcmar.ttf")) (define-font tfjmarpaa.pk jtex-v-def (kanji-font tfjmarpaa.jttf)) (define-font tfjmarpaa.jttf jtex-ttf (font-file "f5ajcmar.ttf")) (define-font fjminmaa.pk jtex-h-def (kanji-font fjminmaa.jttf)) (define-font fjminmaa.jttf jtex-ttf (font-file "f5ajcfm2.ttf")) (define-font tfjminmaa.pk jtex-v-def (kanji-font tfjminmaa.jttf)) (define-font tfjminmaa.jttf jtex-ttf (font-file "f5ajcfm2.ttf")) (define-font fjminsaa.pk jtex-h-def (kanji-font fjminsaa.jttf)) (define-font fjminsaa.jttf jtex-ttf (font-file "f5ajcfm8.ttf")) (define-font tfjminsaa.pk jtex-v-def (kanji-font tfjminsaa.jttf)) (define-font tfjminsaa.jttf jtex-ttf (font-file "f5ajcfm8.ttf")) (define-font fjmrgmaa.pk jtex-h-def (kanji-font fjmrgmaa.jttf)) (define-font fjmrgmaa.jttf jtex-ttf (font-file "f5ajcfr3.ttf")) (define-font tfjmrgmaa.pk jtex-v-def (kanji-font tfjmrgmaa.jttf)) (define-font tfjmrgmaa.jttf jtex-ttf (font-file "f5ajcfr3.ttf")) (define-font fjmrgpaa.pk jtex-h-def (kanji-font fjmrgpaa.jttf)) (define-font fjmrgpaa.jttf jtex-ttf (font-file "f5ajcfr5.ttf")) (define-font tfjmrgpaa.pk jtex-v-def (kanji-font tfjmrgpaa.jttf)) (define-font tfjmrgpaa.jttf jtex-ttf (font-file "f5ajcfr5.ttf")) (define-font fjmrgsaa.pk jtex-h-def (kanji-font fjmrgsaa.jttf)) (define-font fjmrgsaa.jttf jtex-ttf (font-file "f5ajcfr7.ttf")) (define-font tfjmrgsaa.pk jtex-v-def (kanji-font tfjmrgsaa.jttf)) (define-font tfjmrgsaa.jttf jtex-ttf (font-file "f5ajcfr7.ttf")) (define-font fjmrgxaa.pk jtex-h-def (kanji-font fjmrgxaa.jttf)) (define-font fjmrgxaa.jttf jtex-ttf (font-file "f5ajcfrd.ttf")) (define-font tfjmrgxaa.pk jtex-v-def (kanji-font tfjmrgxaa.jttf)) (define-font tfjmrgxaa.jttf jtex-ttf (font-file "f5ajcfrd.ttf")) (define-font fjreipaa.pk jtex-h-def (kanji-font fjreipaa.jttf)) (define-font fjreipaa.jttf jtex-ttf (font-file "f5ajcrei.ttf")) (define-font tfjreipaa.pk jtex-v-def (kanji-font tfjreipaa.jttf)) (define-font tfjreipaa.jttf jtex-ttf (font-file "f5ajcrei.ttf")) (define-font fjtkosaa.pk jtex-h-def (kanji-font fjtkosaa.jttf)) (define-font fjtkosaa.jttf jtex-ttf (font-file "f5ajctko.ttf")) (define-font tfjtkosaa.pk jtex-v-def (kanji-font tfjtkosaa.jttf)) (define-font tfjtkosaa.jttf jtex-ttf (font-file "f5ajctko.ttf")) (define-font fjtrepaa.pk jtex-h-def (kanji-font fjtrepaa.jttf)) (define-font fjtrepaa.jttf jtex-ttf (font-file "f5ajctre.ttf")) (define-font tfjtrepaa.pk jtex-v-def (kanji-font tfjtrepaa.jttf)) (define-font tfjtrepaa.jttf jtex-ttf (font-file "f5ajctre.ttf")) (define-font rcadhxaa.pk jtex-h-def (kanji-font rcadhxaa.jttf)) (define-font rcadhxaa.jttf jtex-ttf (font-file "hgradhsj.ttc")) (define-font trcadhxaa.pk jtex-v-def (kanji-font trcadhxaa.jttf)) (define-font trcadhxaa.jttf jtex-ttf (font-file "hgradhsj.ttc")) (define-font rcaegxaa.pk jtex-h-def (kanji-font rcaegxaa.jttf)) (define-font rcaegxaa.jttf jtex-ttf (font-file "hgraesj.ttf")) (define-font trcaegxaa.pk jtex-v-def (kanji-font trcaegxaa.jttf)) (define-font trcaegxaa.jttf jtex-ttf (font-file "hgraesj.ttf")) (define-font rcaguxaa.pk jtex-h-def (kanji-font rcaguxaa.jttf)) (define-font rcaguxaa.jttf jtex-ttf (font-file "hgragusj.ttc")) (define-font trcaguxaa.pk jtex-v-def (kanji-font trcaguxaa.jttf)) (define-font trcaguxaa.jttf jtex-ttf (font-file "hgragusj.ttc")) (define-font rcaigxaa.pk jtex-h-def (kanji-font rcaigxaa.jttf)) (define-font rcaigxaa.jttf jtex-ttf (font-file "hgraigsj.ttc")) (define-font trcaigxaa.pk jtex-v-def (kanji-font trcaigxaa.jttf)) (define-font trcaigxaa.jttf jtex-ttf (font-file "hgraigsj.ttc")) (define-font rcaisxaa.pk jtex-h-def (kanji-font rcaisxaa.jttf)) (define-font rcaisxaa.jttf jtex-ttf (font-file "hgraissj.ttc")) (define-font trcaisxaa.pk jtex-v-def (kanji-font trcaisxaa.jttf)) (define-font trcaisxaa.jttf jtex-ttf (font-file "hgraissj.ttc")) (define-font rcakgxaa.pk jtex-h-def (kanji-font rcakgxaa.jttf)) (define-font rcakgxaa.jttf jtex-ttf (font-file "hgrakgsj.ttc")) (define-font trcakgxaa.pk jtex-v-def (kanji-font trcakgxaa.jttf)) (define-font trcakgxaa.jttf jtex-ttf (font-file "hgrakgsj.ttc")) (define-font rcamgvaa.pk jtex-h-def (kanji-font rcamgvaa.jttf)) (define-font rcamgvaa.jttf jtex-ttf (font-file "hgramgsj.ttc")) (define-font trcamgvaa.pk jtex-v-def (kanji-font trcamgvaa.jttf)) (define-font trcamgvaa.jttf jtex-ttf (font-file "hgramgsj.ttc")) (define-font rcapfxaa.pk jtex-h-def (kanji-font rcapfxaa.jttf)) (define-font rcapfxaa.jttf jtex-ttf (font-file "hgrapsj.ttf")) (define-font trcapfxaa.pk jtex-v-def (kanji-font trcapfxaa.jttf)) (define-font trcapfxaa.jttf jtex-ttf (font-file "hgrapsj.ttf")) (define-font rcaplxaa.pk jtex-h-def (kanji-font rcaplxaa.jttf)) (define-font rcaplxaa.jttf jtex-ttf (font-file "hgraplsj.ttf")) (define-font trcaplxaa.pk jtex-v-def (kanji-font trcaplxaa.jttf)) (define-font trcaplxaa.jttf jtex-ttf (font-file "hgraplsj.ttf")) (define-font rcapsxaa.pk jtex-h-def (kanji-font rcapsxaa.jttf)) (define-font rcapsxaa.jttf jtex-ttf (font-file "hgrapssj.ttf")) (define-font trcapsxaa.pk jtex-v-def (kanji-font trcapsxaa.jttf)) (define-font trcapsxaa.jttf jtex-ttf (font-file "hgrapssj.ttf")) (define-font rcashxaa.pk jtex-h-def (kanji-font rcashxaa.jttf)) (define-font rcashxaa.jttf jtex-ttf (font-file "hgrashsj.ttf")) (define-font trcashxaa.pk jtex-v-def (kanji-font trcashxaa.jttf)) (define-font trcashxaa.jttf jtex-ttf (font-file "hgrashsj.ttf")) (define-font rccbkpaa.pk jtex-h-def (kanji-font rccbkpaa.jttf)) (define-font rccbkpaa.jttf jtex-ttf (font-file "hgrcbsj.ttc")) (define-font trccbkpaa.pk jtex-v-def (kanji-font trccbkpaa.jttf)) (define-font trccbkpaa.jttf jtex-ttf (font-file "hgrcbsj.ttc")) (define-font rcckssaa.pk jtex-h-def (kanji-font rcckssaa.jttf)) (define-font rcckssaa.jttf jtex-ttf (font-file "hgrcksj.ttc")) (define-font trcckssaa.pk jtex-v-def (kanji-font trcckssaa.jttf)) (define-font trcckssaa.jttf jtex-ttf (font-file "hgrcksj.ttc")) (define-font rccremaa.pk jtex-h-def (kanji-font rccremaa.jttf)) (define-font rccremaa.jttf jtex-ttf (font-file "hgrcresj.ttc")) (define-font trccremaa.pk jtex-v-def (kanji-font trccremaa.jttf)) (define-font trccremaa.jttf jtex-ttf (font-file "hgrcresj.ttc")) (define-font rcgyopaa.pk jtex-h-def (kanji-font rcgyopaa.jttf)) (define-font rcgyopaa.jttf jtex-ttf (font-file "hgrgysj.ttc")) (define-font trcgyopaa.pk jtex-v-def (kanji-font trcgyopaa.jttf)) (define-font trcgyopaa.jttf jtex-ttf (font-file "hgrgysj.ttc")) (define-font rchagmaa.pk jtex-h-def (kanji-font rchagmaa.jttf)) (define-font rchagmaa.jttf jtex-ttf (font-file "hgrhalsj.ttf")) (define-font trchagmaa.pk jtex-v-def (kanji-font trchagmaa.jttf)) (define-font trchagmaa.jttf jtex-ttf (font-file "hgrhalsj.ttf")) (define-font rchagpaa.pk jtex-h-def (kanji-font rchagpaa.jttf)) (define-font rchagpaa.jttf jtex-ttf (font-file "hgrhamsj.ttf")) (define-font trchagpaa.pk jtex-v-def (kanji-font trchagpaa.jttf)) (define-font trchagpaa.jttf jtex-ttf (font-file "hgrhamsj.ttf")) (define-font rchagsaa.pk jtex-h-def (kanji-font rchagsaa.jttf)) (define-font rchagsaa.jttf jtex-ttf (font-file "hgrhabsj.ttf")) (define-font trchagsaa.pk jtex-v-def (kanji-font trchagsaa.jttf)) (define-font trchagsaa.jttf jtex-ttf (font-file "hgrhabsj.ttf")) (define-font rchagvaa.pk jtex-h-def (kanji-font rchagvaa.jttf)) (define-font rchagvaa.jttf jtex-ttf (font-file "hgrhaesj.ttf")) (define-font trchagvaa.pk jtex-v-def (kanji-font trchagvaa.jttf)) (define-font trchagvaa.jttf jtex-ttf (font-file "hgrhaesj.ttf")) (define-font rchglvaa.pk jtex-h-def (kanji-font rchglvaa.jttf)) (define-font rchglvaa.jttf jtex-ttf (font-file "hgrg9lsj.ttf")) (define-font trchglvaa.pk jtex-v-def (kanji-font trchglvaa.jttf)) (define-font trchglvaa.jttf jtex-ttf (font-file "hgrg9lsj.ttf")) (define-font rchgopaa.pk jtex-h-def (kanji-font rchgopaa.jttf)) (define-font rchgopaa.jttf jtex-ttf (font-file "hgrhg5sj.ttc")) (define-font trchgopaa.pk jtex-v-def (kanji-font trchgopaa.jttf)) (define-font trchgopaa.jttf jtex-ttf (font-file "hgrhg5sj.ttc")) (define-font rchgovaa.pk jtex-h-def (kanji-font rchgovaa.jttf)) (define-font rchgovaa.jttf jtex-ttf (font-file "hgrhg9sj.ttc")) (define-font trchgovaa.pk jtex-v-def (kanji-font trchgovaa.jttf)) (define-font trchgovaa.jttf jtex-ttf (font-file "hgrhg9sj.ttc")) (define-font rchgsvaa.pk jtex-h-def (kanji-font rchgsvaa.jttf)) (define-font rchgsvaa.jttf jtex-ttf (font-file "hgrg9ssj.ttf")) (define-font trchgsvaa.pk jtex-v-def (kanji-font trchgsvaa.jttf)) (define-font trchgsvaa.jttf jtex-ttf (font-file "hgrg9ssj.ttf")) (define-font rchigxaa.pk jtex-h-def (kanji-font rchigxaa.jttf)) (define-font rchigxaa.jttf jtex-ttf (font-file "hgrah2sj.ttc")) (define-font trchigxaa.pk jtex-v-def (kanji-font trchigxaa.jttf)) (define-font trchigxaa.jttf jtex-ttf (font-file "hgrah2sj.ttc")) (define-font rchkfsaa.pk jtex-h-def (kanji-font rchkfsaa.jttf)) (define-font rchkfsaa.jttf jtex-ttf (font-file "hgrhkfsj.ttc")) (define-font trchkfsaa.pk jtex-v-def (kanji-font trchkfsaa.jttf)) (define-font trchkfsaa.jttf jtex-ttf (font-file "hgrhkfsj.ttc")) (define-font rchkgpaa.pk jtex-h-def (kanji-font rchkgpaa.jttf)) (define-font rchkgpaa.jttf jtex-ttf (font-file "hgrhkgsj.ttc")) (define-font trchkgpaa.pk jtex-v-def (kanji-font trchkgpaa.jttf)) (define-font trchkgpaa.jttf jtex-ttf (font-file "hgrhkgsj.ttc")) (define-font rchkpmaa.pk jtex-h-def (kanji-font rchkpmaa.jttf)) (define-font rchkpmaa.jttf jtex-ttf (font-file "hgrhkpsj.ttc")) (define-font trchkpmaa.pk jtex-v-def (kanji-font trchkpmaa.jttf)) (define-font trchkpmaa.jttf jtex-ttf (font-file "hgrhkpsj.ttc")) (define-font rchmnmaa.pk jtex-h-def (kanji-font rchmnmaa.jttf)) (define-font rchmnmaa.jttf jtex-ttf (font-file "hgrhm3sj.ttc")) (define-font trchmnmaa.pk jtex-v-def (kanji-font trchmnmaa.jttf)) (define-font trchmnmaa.jttf jtex-ttf (font-file "hgrhm3sj.ttc")) (define-font rchmnvaa.pk jtex-h-def (kanji-font rchmnvaa.jttf)) (define-font rchmnvaa.jttf jtex-ttf (font-file "hgrhm9sj.ttc")) (define-font trchmnvaa.pk jtex-v-def (kanji-font trchmnvaa.jttf)) (define-font trchmnvaa.jttf jtex-ttf (font-file "hgrhm9sj.ttc")) (define-font rchrgoaa.pk jtex-h-def (kanji-font rchrgoaa.jttf)) (define-font rchrgoaa.jttf jtex-ttf (font-file "hgrhr4sj.ttc")) (define-font trchrgoaa.pk jtex-v-def (kanji-font trchrgoaa.jttf)) (define-font trchrgoaa.jttf jtex-ttf (font-file "hgrhr4sj.ttc")) (define-font rckaipaa.pk jtex-h-def (kanji-font rckaipaa.jttf)) (define-font rckaipaa.jttf jtex-ttf (font-file "hgrsksj.ttc")) (define-font trckaipaa.pk jtex-v-def (kanji-font trckaipaa.jttf)) (define-font trckaipaa.jttf jtex-ttf (font-file "hgrsksj.ttc")) (define-font rckedxaa.pk jtex-h-def (kanji-font rckedxaa.jttf)) (define-font rckedxaa.jttf jtex-ttf (font-file "hgrkrsj.ttc")) (define-font trckedxaa.pk jtex-v-def (kanji-font trckedxaa.jttf)) (define-font trckedxaa.jttf jtex-ttf (font-file "hgrkrsj.ttc")) (define-font rckkapaa.pk jtex-h-def (kanji-font rckkapaa.jttf)) (define-font rckkapaa.jttf jtex-ttf (font-file "hgraksj.ttc")) (define-font trckkapaa.pk jtex-v-def (kanji-font trckkapaa.jttf)) (define-font trckkapaa.jttf jtex-ttf (font-file "hgraksj.ttc")) (define-font rckykmaa.pk jtex-h-def (kanji-font rckykmaa.jttf)) (define-font rckykmaa.jttf jtex-ttf (font-file "hgrkksj.ttc")) (define-font trckykmaa.pk jtex-v-def (kanji-font trckykmaa.jttf)) (define-font trckykmaa.jttf jtex-ttf (font-file "hgrkksj.ttc")) (define-font rcppkvaa.pk jtex-h-def (kanji-font rcppkvaa.jttf)) (define-font rcppkvaa.jttf jtex-ttf (font-file "hgrpp1sj.ttc")) (define-font trcppkvaa.pk jtex-v-def (kanji-font trcppkvaa.jttf)) (define-font trcppkvaa.jttf jtex-ttf (font-file "hgrpp1sj.ttc")) (define-font rcppmvaa.pk jtex-h-def (kanji-font rcppmvaa.jttf)) (define-font rcppmvaa.jttf jtex-ttf (font-file "hgrpp2sj.ttc")) (define-font trcppmvaa.pk jtex-v-def (kanji-font trcppmvaa.jttf)) (define-font trcppmvaa.jttf jtex-ttf (font-file "hgrpp2sj.ttc")) (define-font rcrcgmaa.pk jtex-h-def (kanji-font rcrcgmaa.jttf)) (define-font rcrcgmaa.jttf jtex-ttf (font-file "gfrcg1sj.ttf")) (define-font trcrcgmaa.pk jtex-v-def (kanji-font trcrcgmaa.jttf)) (define-font trcrcgmaa.jttf jtex-ttf (font-file "gfrcg1sj.ttf")) (define-font rcspnmaa.pk jtex-h-def (kanji-font rcspnmaa.jttf)) (define-font rcspnmaa.jttf jtex-ttf (font-file "hgrpn1sj.ttc")) (define-font trcspnmaa.pk jtex-v-def (kanji-font trcspnmaa.jttf)) (define-font trcspnmaa.jttf jtex-ttf (font-file "hgrpn1sj.ttc")) (define-font rctfkpaa.pk jtex-h-def (kanji-font rctfkpaa.jttf)) (define-font rctfkpaa.jttf jtex-ttf (font-file "hgrbfksj.ttf")) (define-font trctfkpaa.pk jtex-v-def (kanji-font trctfkpaa.jttf)) (define-font trctfkpaa.jttf jtex-ttf (font-file "hgrbfksj.ttf")) (define-font rctrepaa.pk jtex-h-def (kanji-font rctrepaa.jttf)) (define-font rctrepaa.jttf jtex-ttf (font-file "hgrbresj.ttf")) (define-font trctrepaa.pk jtex-v-def (kanji-font trctrepaa.jttf)) (define-font trctrepaa.jttf jtex-ttf (font-file "hgrbresj.ttf")) (define-font rctsexaa.pk jtex-h-def (kanji-font rctsexaa.jttf)) (define-font rctsexaa.jttf jtex-ttf (font-file "hgrtsesj.ttc")) (define-font trctsexaa.pk jtex-v-def (kanji-font trctsexaa.jttf)) (define-font trctsexaa.jttf jtex-ttf (font-file "hgrtsesj.ttc")) ; JISX0212 (define-macro minh-def (font-class ascii-jtex-kanji) (kanji-font jtex-minh) (kanji-font-magnification 0.95) (metric-adjustment-file "dfmin3_u.adj")) (define-font jtex-minh (font-class truetype) (font-file "dfmin3_u.ttc") (character-set "JISX0212") (encoding "ISO2022")) (define-macro gothh-def (font-class ascii-jtex-kanji) (kanji-font jtex-gothh) (kanji-font-magnification 0.95) (metric-adjustment-file "dfgot5_u.adj")) (define-font jtex-gothh (font-class truetype) (font-file "dfgot5_u.ttc") (character-set "JISX0212") (encoding "ISO2022")) (define-macro tminh-def (font-class ascii-jtex-kanji) (kanji-font jtex-tminh) (kanji-font-magnification 0.95) (metric-adjustment-file "tdfmin3_u.adj")) (define-font jtex-tminh (font-class truetype) (font-file "dfmin3_u.ttc") (character-set "JISX0212") (encoding "ISO2022")) (define-macro tgothh-def (font-class ascii-jtex-kanji) (kanji-font jtex-tgothh) (kanji-font-magnification 0.95) (metric-adjustment-file "tdfgot5_u.adj")) (define-font jtex-tgothh (font-class truetype) (font-file "dfgot5_u.ttc") (character-set "JISX0212") (encoding "ISO2022")) (define-font minh5.pk (kanji-font-point-size 5) minh-def) (define-font minh6.pk (kanji-font-point-size 6) minh-def) (define-font minh7.pk (kanji-font-point-size 7) minh-def) (define-font minh8.pk (kanji-font-point-size 8) minh-def) (define-font minh9.pk (kanji-font-point-size 9) minh-def) (define-font minh10.pk (kanji-font-point-size 10) minh-def) (define-font minh12.pk (kanji-font-point-size 12) minh-def) (define-font gothh5.pk (kanji-font-point-size 5) gothh-def) (define-font gothh6.pk (kanji-font-point-size 6) gothh-def) (define-font gothh7.pk (kanji-font-point-size 7) gothh-def) (define-font gothh8.pk (kanji-font-point-size 8) gothh-def) (define-font gothh9.pk (kanji-font-point-size 9) gothh-def) (define-font gothh10.pk (kanji-font-point-size 10) gothh-def) (define-font gothh12.pk (kanji-font-point-size 12) gothh-def) (define-font tminh5.pk (kanji-font-point-size 5) tminh-def) (define-font tminh6.pk (kanji-font-point-size 6) tminh-def) (define-font tminh7.pk (kanji-font-point-size 7) tminh-def) (define-font tminh8.pk (kanji-font-point-size 8) tminh-def) (define-font tminh9.pk (kanji-font-point-size 9) tminh-def) (define-font tminh10.pk (kanji-font-point-size 10) tminh-def) (define-font tminh12.pk (kanji-font-point-size 12) tminh-def) (define-font tgothh5.pk (kanji-font-point-size 5) tgothh-def) (define-font tgothh6.pk (kanji-font-point-size 6) tgothh-def) (define-font tgothh7.pk (kanji-font-point-size 7) tgothh-def) (define-font tgothh8.pk (kanji-font-point-size 8) tgothh-def) (define-font tgothh9.pk (kanji-font-point-size 9) tgothh-def) (define-font tgothh10.pk (kanji-font-point-size 10) tgothh-def) (define-font tgothh12.pk (kanji-font-point-size 12) tgothh-def) ;; ------------------------------------------------------- ;; *** japanese-comic *** ;; Generated by vflmkjpc ;; at Tue Dec 10 10:33:59 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkjpc -x .pk ../ascii-jtex/fontsc.lst (define-default japanese-comic) (define-font fjkanaza.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxa.pk") (katakana-font "fjkanaxa.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazb.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxb.pk") (katakana-font "fjkanaxb.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazc.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxc.pk") (katakana-font "fjkanaxc.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazd.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxd.pk") (katakana-font "fjkanaxd.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanaze.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxe.pk") (katakana-font "fjkanaxe.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazf.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxf.pk") (katakana-font "fjkanaxf.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazg.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxg.pk") (katakana-font "fjkanaxg.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazh.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxh.pk") (katakana-font "fjkanaxh.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazi.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxi.pk") (katakana-font "fjkanaxi.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazj.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxj.pk") (katakana-font "fjkanaxj.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazk.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxk.pk") (katakana-font "fjkanaxk.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazl.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxl.pk") (katakana-font "fjkanaxl.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazm.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxm.pk") (katakana-font "fjkanaxm.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazn.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxn.pk") (katakana-font "fjkanaxn.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazo.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxo.pk") (katakana-font "fjkanaxo.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazp.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxp.pk") (katakana-font "fjkanaxp.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazq.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxq.pk") (katakana-font "fjkanaxq.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazr.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxr.pk") (katakana-font "fjkanaxr.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazs.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxs.pk") (katakana-font "fjkanaxs.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font fjkanazt.pk (font-class "japanese-comic") (kanji-font "goth10.pk") (hirakana-font "fjkanaxt.pk") (katakana-font "fjkanaxt.pk") (alpha-numeric-font "goth10.pk") (symbol-font "goth10.pk")) (define-font jpcomic.pk (font-class "japanese-comic") (kanji-font "dfhsgmaa.pk") (hirakana-font "dfhsmpaa.pk") (katakana-font "dfhsmpaa.pk") (alpha-numeric-font "dfhsgmaa.pk") (symbol-font "dfhsgmaa.pk")) ;; end. vflib3-3.6.14.dfsg/vflibcaps/vflibcap-ekanji0000644000175000017500000005615007057623173020226 0ustar mohuramohura;; -*-Lisp-*- ;; ;; an example of 'vflibcap' ;; by h.kakugawa@computer.org ;; ;; This vflibcap file defines fonts for Japanese pTeX System by ASCII Coop. ;; * Regular Japanese fonts (min, goth, tmin, and tgoth) are defined ;; to use eKanji bitmap font files. ;; * Optional Kanji fonts (ekan10??, ekan20??, and ekan30??) are defined ;; to use ekan0010.d24, ekan0020.d24, and ekan0030.d24 font files, ;; respectively. ;; * See $VFLIB/ascii-jtex/eKanji/ directory for macro definition files ;; to use these fonts. (You must install macro packages and TFM files.) ;; ----------------------------------------------------------------- ;; VFlib Default ;; ----------------------------------------------------------------- (define-default VFlib ;; hint to find font class from font name for fast font open (extension-hints ("pk" TeX) ("gf" gf) ("tfm" tfm) (".d24" ekanji) (".D24" ekanji)) ;; implicit font classes (implicit-font-classes ekanji) ;; uncompression programs (uncompression-programs (".Z" "zcat") (".gz" "gzip -cd")) ;; a list of default values of variables ;; *Note* "variable-values" must come before variable uses (variable-values (TeX_DPI "300") (TeX_USE_KPATHSEA "Yes") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "vflserver")) ;; kpathsea: enabled/disabled (use-kpathsea $TeX_USE_KPATHSEA) ;; kpathsea device mode (e.g., "cx") (kpathsea-mode $TeX_KPATHSEA_MODE) ;; kpathsea device dpi (e.g., 300) (kpathsea-dpi $TeX_DPI) ;; kpathsea program name (e.g., "/usr/local/bin/xdvi") (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) ;; encoding/charset conversion files (code-conversion-files "iso8859-1_unicode.ccv" "iso8859-2_unicode.ccv" "iso8859-3_unicode.ccv" "iso8859-4_unicode.ccv" "iso8859-5_unicode.ccv" "iso8859-6_unicode.ccv" "iso8859-7_unicode.ccv" "iso8859-8_unicode.ccv" "iso8859-9_unicode.ccv" "iso8859-10_unicode.ccv" "iso8859-13_unicode.ccv" "iso8859-14_unicode.ccv" "iso8859-15_unicode.ccv" "jisx0208_unicode.ccv" "jisx0208sjis_unicode.ccv" "jisx0201_unicode.ccv" "jisx0212_unicode.ccv" "ksc5601_unicode.ccv" "ksx1001_unicode.ccv" "gb12345_unicode.ccv" "gb2312_unicode.ccv" "big5_unicode.ccv" "cns11643-1_unicode.ccv" "cns11643-2_unicode.ccv" "iso8859-5_koi8-r.ccv" "koi8-r_iso8859-5.ccv" "koi8-r_unicode.ccv")) ;; ----------------------------------------------------------------- ;; eKanji Font Class Default ;; See also http://www.zinbun.kyoto-u.ac.jp/~ekanji/ ;; ----------------------------------------------------------------- (define-default ekanji ;; font directories (font-directories "/usr/local/share/fonts/eKanji" "/usr/local/share/fonts/ekanji" "/usr/share/fonts/eKanji" "/usr/share/fonts/ekanji" ) ;; dot size of font files (font-dot-size 24) ;; pixel size (pixel-size 24) ;; point size, dpi (point-size 10) (dpi 72.27) ;; writing direction (writing-direction horizontal) ;; debug ;;(debug "cCf") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "EKANJI"))) ;; ----------------------------------------------------------------- ;; TeX-related Font Class Default and TeX Font Mapper ;; ----------------------------------------------------------------- (define-default TeX ;; TFM file directories (tfm-directories "TEXMF" "/usr/local/share/fonts/bakoma/tfm/") ;; possible extensions of TFM files (tfm-filename-extensions ".tfm" ".ofm") ;; font name mapping rules (font-mapping ((ascii-jtex-kanji "%f.jtex") "min*" "goth*" "tmin*" "tgoth*" "ekan*" "tekan*") ((pk "%f.%dpk") *) ((gf "%f.%dgf") *) ;;((type1 "%f.pfb" point-size-from-tfm (magnification-adjustment 1.0)) *) ;;((truetype "%f.ttf" point-size-from-tfm (magnification-adjustment 1.0)) *) ;;((vf "%f.vf") *) ((tfm "%f.%dtfm") *)) ;; accuracy of device resolutions, used with 'resolution-corrections' (resolution-accuracy 0.02) ;; font resolution values for each device resolutions. (resolution-corrections (240 ;; epson, canonlbp 240 263 288 312 346 415 498 597) (300 ;; cx 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ;; sparcptr 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ;; ljfour 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540)) ;; default device resolution (dpi $TeX_DPI)) ;; ----------------------------------------------------------------- ;; TeX GF Font Class Default ;; ----------------------------------------------------------------- (define-default gf ;; font directories (font-directories "TEXMF" "/usr/local/TeX/gf//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "GF")) ) ;; ----------------------------------------------------------------- ;; TeX PK Font Class Default ;; ----------------------------------------------------------------- (define-default pk ;;(debug "m") ;; debug flag ;; font directories (font-directories "TEXMF" "/usr/local/TeX/pk//") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "PK")) ) ;; ----------------------------------------------------------------- ;; TeX TFM Font Class Default ;; ----------------------------------------------------------------- (define-default tfm ;; font directories (font-directories "TEXMF" "/usr/local/TeX/tfm//") ;; glyph style: "fill" (all pixels black) or "empty" (all pixels white) (glyph-style "fill") ;; properties for all fonts of this font class (properties ("FONT_CLASS" "TFM")) ) ;; ----------------------------------------------------------------- ;; ASCII-jTeX Kanji Font Class Default ;; ----------------------------------------------------------------- (define-default ascii-jtex-kanji ;; TFM file directories (tfm-directories "TEXMF") ;; possible extensions of TFM files (tfm-filename-extensions ".tfm") ;; Suffix for name mapping ;; (e.g., implicit font "min10.300pk" is mapped to "min10.jtex") (implicit-font-mapping-suffix ".jtex")) ;; ----------------------------------------------------------------- ;; ;; Direct Access to eKanji Font Files. ;; ;; Unicode (define-font ekan0010 (font-class ekanji) (font-file "ekan0010.d24")) ;; KangXi (define-font ekan0020 (font-class ekanji) (font-file "ekan0020.d24")) ;; Morohashi (define-font ekan0030 (font-class ekanji) (font-file "ekan0030.d24")) ;; JIS X 0208 (define-font jisx9052 (font-class ekanji) (font-file "jisx9052.d24")) ;; ----------------------------------------------------------------- ;; ;; Example Font Definitions ;; ;; JISX0208 font (using Unicode font file). (define-font ek-jisx0208 (font-class ekanji) (font-file "jisx9052.d24") (character-set "eKanji") (encoding "ISO2022") (font-character-set "eKanji") (font-encoding "SEQUENTIAL2-1")) ;; JISX0212 font (using Unicode font file). (define-font ek-jisx0212 (font-class ekanji) (font-file "ekan0010.d24") (mock-font-encoding with-offset -0x4dff) (character-set "JISX0212") (encoding "ISO2022") (font-character-set "Unicode") (font-encoding "Unicode")) ;; Unicode font (using Unicode font file). (define-font ek-unicode (font-class ekanji) (font-file "ekan0010.d24") (mock-font-encoding with-offset -0x4dff)) ;; Morohashi Dai-Kanwa Dictionary characters. 94x94 scheme. (define-font ek3b-0 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x94 0)) (define-font ek3b-1 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x94 1)) (define-font ek3b-2 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x94 2)) (define-font ek3b-3 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x94 3)) (define-font ek3b-4 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x94 4)) (define-font ek3b-5 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x94 5)) ;; Morohashi Dai-Kanwa Dictionary characters. 94x60 scheme. (define-font ek3a-0 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x60 0)) (define-font ek3a-1 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x60 1)) (define-font ek3a-2 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x60 2)) (define-font ek3a-3 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x60 3)) (define-font ek3a-4 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x60 4)) (define-font ek3a-5 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x60 5)) (define-font ek3a-6 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x60 6)) (define-font ek3a-7 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x60 7)) (define-font ek3a-8 (font-class ekanji) (font-file "ekan0030.d24") (mock-font-encoding subblocks-94x60 8)) ;; ----------------------------------------------------------------- ;; Font Definitions for Japanese pTeX by ASCII Coop. ;; *** Horizontal ;; Definitions for "min10.jtex" and other fonts. (JISX0208) (define-macro min-goth-common (font-class ascii-jtex-kanji) (kanji-font jtex-min-goth) (kanji-font-magnification 0.85) (metric-adjustment-file "ekanji.adj")) (define-font min5.jtex (kanji-font-point-size 5) min-goth-common) (define-font min6.jtex (kanji-font-point-size 6) min-goth-common) (define-font min7.jtex (kanji-font-point-size 7) min-goth-common) (define-font min8.jtex (kanji-font-point-size 8) min-goth-common) (define-font min9.jtex (kanji-font-point-size 9) min-goth-common) (define-font min10.jtex (kanji-font-point-size 10) min-goth-common) (define-font goth5.jtex (kanji-font-point-size 5) min-goth-common) (define-font goth6.jtex (kanji-font-point-size 6) min-goth-common) (define-font goth7.jtex (kanji-font-point-size 7) min-goth-common) (define-font goth8.jtex (kanji-font-point-size 8) min-goth-common) (define-font goth9.jtex (kanji-font-point-size 9) min-goth-common) (define-font goth10.jtex (kanji-font-point-size 10) min-goth-common) (define-macro ekanji-jisx0208-common-h (font-class ekanji) (font-file "jisx9052.d24") (writing-direction "holizontal") ;;(vector-to-bbx-upper-left 0.00 0.87) (character-set "eKanji") (encoding "ISO2022") (font-character-set "eKanji") (font-encoding "SEQUENTIAL2-1")) (define-font jtex-min-goth ekanji-jisx0208-common-h) ;; Definitions for "minh10.jtex" and other fonts. (JISX0212) (define-macro minh-gothh-common (font-class ascii-jtex-kanji) (kanji-font jtex-minh-gothh) (kanji-font-magnification 0.85) (metric-adjustment-file "ekanji.adj")) (define-font minh5.jtex (kanji-font-point-size 5) minh-gothh-common) (define-font minh6.jtex (kanji-font-point-size 6) minh-gothh-common) (define-font minh7.jtex (kanji-font-point-size 7) minh-gothh-common) (define-font minh8.jtex (kanji-font-point-size 8) minh-gothh-common) (define-font minh9.jtex (kanji-font-point-size 9) minh-gothh-common) (define-font minh10.jtex (kanji-font-point-size 10) minh-gothh-common) (define-font gothh5.jtex (kanji-font-point-size 5) minh-gothh-common) (define-font gothh6.jtex (kanji-font-point-size 6) minh-gothh-common) (define-font gothh7.jtex (kanji-font-point-size 7) minh-gothh-common) (define-font gothh8.jtex (kanji-font-point-size 8) minh-gothh-common) (define-font gothh9.jtex (kanji-font-point-size 9) minh-gothh-common) (define-font gothh10.jtex (kanji-font-point-size 10) minh-gothh-common) (define-macro ekanji-jisx0212-common-h (font-class ekanji) (font-file "ekan0010.d24") (writing-direction "horizontal") ;;(vector-to-bbx-upper-left 0.00 0.87) (mock-font-encoding with-offset -0x4dff) (character-set "JISX0212") (encoding "ISO2022") (font-character-set "Unicode") (font-encoding "Unicode")) (define-font jtex-minh-gothh ekanji-jisx0212-common-h) ;; Definitions for "ekan10??.pk" (define-macro ekan10-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "ekanji.adj")) (define-font ekan1000.jtex ekan10-common (kanji-font ek1000)) (define-font ekan1001.jtex ekan10-common (kanji-font ek1001)) (define-font ekan1002.jtex ekan10-common (kanji-font ek1002)) (define-font ekan1003.jtex ekan10-common (kanji-font ek1003)) (define-font ekan1004.jtex ekan10-common (kanji-font ek1004)) (define-macro ek10-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0010.d24")) (define-font ek1000 ek10-common (mock-font-encoding subblocks-94x60 0)) (define-font ek1001 ek10-common (mock-font-encoding subblocks-94x60 1)) (define-font ek1002 ek10-common (mock-font-encoding subblocks-94x60 2)) (define-font ek1003 ek10-common (mock-font-encoding subblocks-94x60 3)) (define-font ek1004 ek10-common (mock-font-encoding subblocks-94x60 4)) ;; Definitions for "ekan20??.pk" (define-macro ekan20-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "ekanji.adj")) (define-font ekan2000.jtex ekan20-common (kanji-font ek2000)) (define-font ekan2001.jtex ekan20-common (kanji-font ek2001)) (define-font ekan2002.jtex ekan20-common (kanji-font ek2002)) (define-font ekan2003.jtex ekan20-common (kanji-font ek2003)) (define-font ekan2004.jtex ekan20-common (kanji-font ek2004)) (define-font ekan2005.jtex ekan20-common (kanji-font ek2005)) (define-font ekan2006.jtex ekan20-common (kanji-font ek2006)) (define-font ekan2007.jtex ekan20-common (kanji-font ek2007)) (define-font ekan2008.jtex ekan20-common (kanji-font ek2008)) (define-macro ek20-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0020.d24")) (define-font ek2000 ek20-common (mock-font-encoding subblocks-94x60 0)) (define-font ek2001 ek20-common (mock-font-encoding subblocks-94x60 1)) (define-font ek2002 ek20-common (mock-font-encoding subblocks-94x60 2)) (define-font ek2003 ek20-common (mock-font-encoding subblocks-94x60 3)) (define-font ek2004 ek20-common (mock-font-encoding subblocks-94x60 4)) (define-font ek2005 ek20-common (mock-font-encoding subblocks-94x60 5)) (define-font ek2006 ek20-common (mock-font-encoding subblocks-94x60 6)) (define-font ek2007 ek20-common (mock-font-encoding subblocks-94x60 7)) (define-font ek2008 ek20-common (mock-font-encoding subblocks-94x60 8)) ;; Definitions for "ekan30??.pk" (define-macro ekan30-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "ekanji.adj")) (define-font ekan3000.jtex ekan30-common (kanji-font ek3000)) (define-font ekan3001.jtex ekan30-common (kanji-font ek3001)) (define-font ekan3002.jtex ekan30-common (kanji-font ek3002)) (define-font ekan3003.jtex ekan30-common (kanji-font ek3003)) (define-font ekan3004.jtex ekan30-common (kanji-font ek3004)) (define-font ekan3005.jtex ekan30-common (kanji-font ek3005)) (define-font ekan3006.jtex ekan30-common (kanji-font ek3006)) (define-font ekan3007.jtex ekan30-common (kanji-font ek3007)) (define-font ekan3008.jtex ekan30-common (kanji-font ek3008)) (define-macro ek30-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0030.d24")) (define-font ek3000 ek30-common (mock-font-encoding subblocks-94x60 0)) (define-font ek3001 ek30-common (mock-font-encoding subblocks-94x60 1)) (define-font ek3002 ek30-common (mock-font-encoding subblocks-94x60 2)) (define-font ek3003 ek30-common (mock-font-encoding subblocks-94x60 3)) (define-font ek3004 ek30-common (mock-font-encoding subblocks-94x60 4)) (define-font ek3005 ek30-common (mock-font-encoding subblocks-94x60 5)) (define-font ek3006 ek30-common (mock-font-encoding subblocks-94x60 6)) (define-font ek3007 ek30-common (mock-font-encoding subblocks-94x60 7)) (define-font ek3008 ek30-common (mock-font-encoding subblocks-94x60 8)) ;; *** Vertical ;; Definitions for "min10.jtex" and other fonts. (JISX0208) (define-macro tmin-tgoth-common (font-class ascii-jtex-kanji) (kanji-font jtex-tmin-tgoth) (kanji-font-magnification 0.85) (metric-adjustment-file "tekanji.adj")) (define-font tmin5.jtex (kanji-font-point-size 5) tmin-tgoth-common) (define-font tmin6.jtex (kanji-font-point-size 6) tmin-tgoth-common) (define-font tmin7.jtex (kanji-font-point-size 7) tmin-tgoth-common) (define-font tmin8.jtex (kanji-font-point-size 8) tmin-tgoth-common) (define-font tmin9.jtex (kanji-font-point-size 9) tmin-tgoth-common) (define-font tmin10.jtex (kanji-font-point-size 10) tmin-tgoth-common) (define-font tgoth5.jtex (kanji-font-point-size 5) tmin-tgoth-common) (define-font tgoth6.jtex (kanji-font-point-size 6) tmin-tgoth-common) (define-font tgoth7.jtex (kanji-font-point-size 7) tmin-tgoth-common) (define-font tgoth8.jtex (kanji-font-point-size 8) tmin-tgoth-common) (define-font tgoth9.jtex (kanji-font-point-size 9) tmin-tgoth-common) (define-font tgoth10.jtex (kanji-font-point-size 10) tmin-tgoth-common) (define-macro ekanji-jisx0208-common-v (font-class ekanji) (font-file "jisx9052.d24") (writing-direction "vertical") ;;(vector-to-bbx-upper-left -0.50 0.00) (character-set "eKanji") (encoding "ISO2022") (font-character-set "eKanji") (font-encoding "SEQUENTIAL2-1")) (define-font jtex-tmin-tgoth ekanji-jisx0208-common-v) ;; Definitions for "tminh10.jtex" and other fonts. (JISX0212) (define-macro tminh-tgothh-common (font-class ascii-jtex-kanji) (kanji-font jtex-tminh-tgothh) (kanji-font-magnification 0.85) (metric-adjustment-file "tekanji.adj")) (define-font tminh5.jtex (kanji-font-point-size 5) tminh-tgothh-common) (define-font tminh6.jtex (kanji-font-point-size 6) tminh-tgothh-common) (define-font tminh7.jtex (kanji-font-point-size 7) tminh-tgothh-common) (define-font tminh8.jtex (kanji-font-point-size 8) tminh-tgothh-common) (define-font tminh9.jtex (kanji-font-point-size 9) tminh-tgothh-common) (define-font tminh10.jtex (kanji-font-point-size 10) tminh-tgothh-common) (define-font tgothh5.jtex (kanji-font-point-size 5) tminh-tgothh-common) (define-font tgothh6.jtex (kanji-font-point-size 6) tminh-tgothh-common) (define-font tgothh7.jtex (kanji-font-point-size 7) tminh-tgothh-common) (define-font tgothh8.jtex (kanji-font-point-size 8) tminh-tgothh-common) (define-font tgothh9.jtex (kanji-font-point-size 9) tminh-tgothh-common) (define-font tgothh10.jtex (kanji-font-point-size 10) tminh-tgothh-common) (define-macro ekanji-jisx0212-common-v (font-class ekanji) (font-file "ekan0010.d24") (writing-direction "vertical") ;;(vector-to-bbx-upper-left -0.50 0.00) (mock-font-encoding with-offset -0x4dff) (character-set "JISX0212") (encoding "ISO2022") (font-character-set "Unicode") (font-encoding "Unicode")) (define-font jtex-tminh-tgothh ekanji-jisx0212-common-v) ;; Definitions for "tekan10??.pk" (define-macro tekan10-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "tekanji.adj")) (define-font tekan1000.jtex tekan10-common (kanji-font tek1000)) (define-font tekan1001.jtex tekan10-common (kanji-font tek1001)) (define-font tekan1002.jtex tekan10-common (kanji-font tek1002)) (define-font tekan1003.jtex tekan10-common (kanji-font tek1003)) (define-font tekan1004.jtex tekan10-common (kanji-font tek1004)) (define-macro tek10-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0010.d24")) (define-font tek1000 tek10-common (mock-font-encoding subblocks-94x60 0)) (define-font tek1001 tek10-common (mock-font-encoding subblocks-94x60 1)) (define-font tek1002 tek10-common (mock-font-encoding subblocks-94x60 2)) (define-font tek1003 tek10-common (mock-font-encoding subblocks-94x60 3)) (define-font tek1004 tek10-common (mock-font-encoding subblocks-94x60 4)) ;; Definitions for "tekan20??.pk" (define-macro tekan20-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "tekanji.adj")) (define-font tekan2000.jtex tekan20-common (kanji-font tek2000)) (define-font tekan2001.jtex tekan20-common (kanji-font tek2001)) (define-font tekan2002.jtex tekan20-common (kanji-font tek2002)) (define-font tekan2003.jtex tekan20-common (kanji-font tek2003)) (define-font tekan2004.jtex tekan20-common (kanji-font tek2004)) (define-font tekan2005.jtex tekan20-common (kanji-font tek2005)) (define-font tekan2006.jtex tekan20-common (kanji-font tek2006)) (define-font tekan2007.jtex tekan20-common (kanji-font tek2007)) (define-font tekan2008.jtex tekan20-common (kanji-font tek2008)) (define-macro tek20-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0020.d24")) (define-font tek2000 tek20-common (mock-font-encoding subblocks-94x60 0)) (define-font tek2001 tek20-common (mock-font-encoding subblocks-94x60 1)) (define-font tek2002 tek20-common (mock-font-encoding subblocks-94x60 2)) (define-font tek2003 tek20-common (mock-font-encoding subblocks-94x60 3)) (define-font tek2004 tek20-common (mock-font-encoding subblocks-94x60 4)) (define-font tek2005 tek20-common (mock-font-encoding subblocks-94x60 5)) (define-font tek2006 tek20-common (mock-font-encoding subblocks-94x60 6)) (define-font tek2007 tek20-common (mock-font-encoding subblocks-94x60 7)) (define-font tek2008 tek20-common (mock-font-encoding subblocks-94x60 8)) ;; Definitions for "tekan30??.pk" (define-macro tekan30-common (font-class ascii-jtex-kanji) (kanji-font-point-size 10) (kanji-font-magnification 0.85) (metric-adjustment-file "tekanji.adj")) (define-font tekan3000.jtex tekan30-common (kanji-font tek3000)) (define-font tekan3001.jtex tekan30-common (kanji-font tek3001)) (define-font tekan3002.jtex tekan30-common (kanji-font tek3002)) (define-font tekan3003.jtex tekan30-common (kanji-font tek3003)) (define-font tekan3004.jtex tekan30-common (kanji-font tek3004)) (define-font tekan3005.jtex tekan30-common (kanji-font tek3005)) (define-font tekan3006.jtex tekan30-common (kanji-font tek3006)) (define-font tekan3007.jtex tekan30-common (kanji-font tek3007)) (define-font tekan3008.jtex tekan30-common (kanji-font tek3008)) (define-macro tek30-common (font-class ekanji) (writing-direction "horizontal") (font-file "ekan0030.d24")) (define-font tek3000 tek30-common (mock-font-encoding subblocks-94x60 0)) (define-font tek3001 tek30-common (mock-font-encoding subblocks-94x60 1)) (define-font tek3002 tek30-common (mock-font-encoding subblocks-94x60 2)) (define-font tek3003 tek30-common (mock-font-encoding subblocks-94x60 3)) (define-font tek3004 tek30-common (mock-font-encoding subblocks-94x60 4)) (define-font tek3005 tek30-common (mock-font-encoding subblocks-94x60 5)) (define-font tek3006 tek30-common (mock-font-encoding subblocks-94x60 6)) (define-font tek3007 tek30-common (mock-font-encoding subblocks-94x60 7)) (define-font tek3008 tek30-common (mock-font-encoding subblocks-94x60 8)) ;; ----------------------------------------------------------------- ;; EOF vflib3-3.6.14.dfsg/vflibcaps/vflibcap-tex-ja-pcf0000644000175000017500000021121407575242205020713 0ustar mohuramohura;; a vflibcap file generated by 'vflmkcaptex' automatically ;; at 2002ǯ 1210 1033ʬ56 JST ;; on home.kakugawa.hiroshima-u.ac.jp by kakugawa ;; ;; command line arguments given to generate this vflibcap: ;; vflmkcaptex standard-ja -i ;; ;; ------------------------------------------------------- ;; *** VFlib defaults *** ;; Generated by vflmkvfl ;; at Tue Dec 10 10:33:56 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkvfl -n cx -r 300 -p xgdvi -k -i TeX -c jisx0201_unicode.ccv -c jisx0208_unicode.ccv -c jisx0208sjis_unicode.ccv -c jisx0212_unicode.ccv (define-default VFlib (extension-hints) (implicit-font-classes TeX) (uncompression-programs (".Z" "gzip -cd") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "xgdvi")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files "jisx0201_unicode.ccv" "jisx0208_unicode.ccv" "jisx0208sjis_unicode.ccv" "jisx0212_unicode.ccv")) ;; ------------------------------------------------------- ;; *** TeX Font Mapper *** ;; Generated by vflmktex ;; at Tue Dec 10 10:33:56 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmktex -r $TeX_DPI -d TEXMF -m type1 %f.pfb -m vf %f.vf -m pk %f.%dpk -m tfm %f.%dtfm (define-default TeX (dpi $TeX_DPI) (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm" ".ofm") (font-mapping ((type1 "%f.pfb" point-size-from-tfm) *) ((vf "%f.vf" point-size-from-tfm) *) ((pk "%f.%dpk") *) ((tfm "%f.%dtfm") *)) (resolution-accuracy 0.02) (resolution-corrections (240 ; 240 dpi devices 240 240 263 288 312 346 415 498 597) (300 ; 300 dpi devices 300 329 360 432 518 622 746 896 1075 1290 240 270) (400 ; 400 dpi devices 400 400 438 480 576 691 829 995 1194 1433 1720 320 360) (600 ; 600 dpi devices 600 600 657 720 864 1037 1244 1493 1792 2150 2580 480 540))) ;; ------------------------------------------------------- ;; *** Type 1 *** ;; Generated by vflmkt1 ;; at Tue Dec 10 10:33:57 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkt1 -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI -x .pk -a TEXMF -e /usr/local/share/VFlib/3.6.13/t1lib -e /usr/local/share/VFlib/site -e /usr/local/share/VFlib/site/t1lib -f -t -d /usr/Acrobat3/Fonts -d /usr/Acrobat4/Resource/Font -d /usr/Acrobat5/Resource/Font -d /opt/Acrobat3/Fonts -d /opt/Acrobat4/Resource/Font -d /opt/Acrobat5/Resource/Font -d /usr/lpp/Acrobat3/Fonts -d /usr/lpp/Acrobat4/Resource/Font -d /usr/lpp/Acrobat5/Resource/Font -d /usr/local/Acrobat3/Fonts -d /usr/local/Acrobat4/Resource/Font -d /usr/local/Acrobat5/Resource/Font -a /usr/local/share/ghostscript/7.05/lib -a /usr/local/share/ghostscript/fonts -gf /usr/local/share/ghostscript/7.05/lib -gf /usr/local/share/ghostscript/fonts -gm /usr/local/share/ghostscript/7.05/lib/Fontmap cmfonts.map lafonts.map eufonts.map psfonts.map xypic.map (define-default type1 (font-directories "TEXMF" "/usr/Acrobat3/Fonts" "/usr/Acrobat4/Resource/Font" "/usr/Acrobat5/Resource/Font" "/opt/Acrobat3/Fonts" "/opt/Acrobat4/Resource/Font" "/opt/Acrobat5/Resource/Font" "/usr/lpp/Acrobat3/Fonts" "/usr/lpp/Acrobat4/Resource/Font" "/usr/lpp/Acrobat5/Resource/Font" "/usr/local/Acrobat3/Fonts" "/usr/local/Acrobat4/Resource/Font" "/usr/local/Acrobat5/Resource/Font" "/usr/local/share/ghostscript/7.05/lib" "/usr/local/share/ghostscript/fonts") (afm-directories "TEXMF" "/usr/local/share/ghostscript/7.05/lib" "/usr/local/share/ghostscript/fonts") (encoding-vector-directories "/usr/local/share/VFlib/3.6.13/t1lib" "/usr/local/share/VFlib/site" "/usr/local/share/VFlib/site/t1lib") (log-level "none") (dpi $TeX_DPI)) ;; dvips mapfile: /usr/local/share/texmf/dvips/base/cmfonts.map (define-font cmbxsl10.pk (font-class type1) (point-size 10.00) (tfm "cmbxsl10") (font-file "cmbxsl10.pfb")) (define-font cmbxti10.pk (font-class type1) (point-size 10.00) (tfm "cmbxti10") (font-file "cmbxti10.pfb")) (define-font cmbx10.pk (font-class type1) (point-size 10.00) (tfm "cmbx10") (font-file "cmbx10.pfb")) (define-font cmbx12.pk (font-class type1) (point-size 12.00) (tfm "cmbx12") (font-file "cmbx12.pfb")) (define-font cmbx5.pk (font-class type1) (point-size 5.00) (tfm "cmbx5") (font-file "cmbx5.pfb")) (define-font cmbx6.pk (font-class type1) (point-size 6.00) (tfm "cmbx6") (font-file "cmbx6.pfb")) (define-font cmbx7.pk (font-class type1) (point-size 7.00) (tfm "cmbx7") (font-file "cmbx7.pfb")) (define-font cmbx8.pk (font-class type1) (point-size 8.00) (tfm "cmbx8") (font-file "cmbx8.pfb")) (define-font cmbx9.pk (font-class type1) (point-size 9.00) (tfm "cmbx9") (font-file "cmbx9.pfb")) (define-font cmb10.pk (font-class type1) (point-size 10.00) (tfm "cmb10") (font-file "cmb10.pfb")) (define-font cmdunh10.pk (font-class type1) (point-size 10.00) (tfm "cmdunh10") (font-file "cmdunh10.pfb")) (define-font cmff10.pk (font-class type1) (point-size 10.00) (tfm "cmff10") (font-file "cmff10.pfb")) (define-font cmfib8.pk (font-class type1) (point-size 8.00) (tfm "cmfib8") (font-file "cmfib8.pfb")) (define-font cmfi10.pk (font-class type1) (point-size 10.00) (tfm "cmfi10") (font-file "cmfi10.pfb")) (define-font cmr10.pk (font-class type1) (point-size 10.00) (tfm "cmr10") (font-file "cmr10.pfb")) (define-font cmr12.pk (font-class type1) (point-size 12.00) (tfm "cmr12") (font-file "cmr12.pfb")) (define-font cmr17.pk (font-class type1) (point-size 17.28) (tfm "cmr17") (font-file "cmr17.pfb")) (define-font cmr6.pk (font-class type1) (point-size 6.00) (tfm "cmr6") (font-file "cmr6.pfb")) (define-font cmr7.pk (font-class type1) (point-size 7.00) (tfm "cmr7") (font-file "cmr7.pfb")) (define-font cmr8.pk (font-class type1) (point-size 8.00) (tfm "cmr8") (font-file "cmr8.pfb")) (define-font cmr9.pk (font-class type1) (point-size 9.00) (tfm "cmr9") (font-file "cmr9.pfb")) (define-font cmsl10.pk (font-class type1) (point-size 10.00) (tfm "cmsl10") (font-file "cmsl10.pfb")) (define-font cmsl12.pk (font-class type1) (point-size 12.00) (tfm "cmsl12") (font-file "cmsl12.pfb")) (define-font cmsl8.pk (font-class type1) (point-size 8.00) (tfm "cmsl8") (font-file "cmsl8.pfb")) (define-font cmsl9.pk (font-class type1) (point-size 9.00) (tfm "cmsl9") (font-file "cmsl9.pfb")) (define-font cmssbx10.pk (font-class type1) (point-size 10.00) (tfm "cmssbx10") (font-file "cmssbx10.pfb")) (define-font cmssdc10.pk (font-class type1) (point-size 10.00) (tfm "cmssdc10") (font-file "cmssdc10.pfb")) (define-font cmssi10.pk (font-class type1) (point-size 10.00) (tfm "cmssi10") (font-file "cmssi10.pfb")) (define-font cmssi12.pk (font-class type1) (point-size 12.00) (tfm "cmssi12") (font-file "cmssi12.pfb")) (define-font cmssi17.pk (font-class type1) (point-size 17.28) (tfm "cmssi17") (font-file "cmssi17.pfb")) (define-font cmssi8.pk (font-class type1) (point-size 8.00) (tfm "cmssi8") (font-file "cmssi8.pfb")) (define-font cmssi9.pk (font-class type1) (point-size 9.00) (tfm "cmssi9") (font-file "cmssi9.pfb")) (define-font cmssqi8.pk (font-class type1) (point-size 8.00) (tfm "cmssqi8") (font-file "cmssqi8.pfb")) (define-font cmssq8.pk (font-class type1) (point-size 8.00) (tfm "cmssq8") (font-file "cmssq8.pfb")) (define-font cmss10.pk (font-class type1) (point-size 10.00) (tfm "cmss10") (font-file "cmss10.pfb")) (define-font cmss12.pk (font-class type1) (point-size 12.00) (tfm "cmss12") (font-file "cmss12.pfb")) (define-font cmss17.pk (font-class type1) (point-size 17.28) (tfm "cmss17") (font-file "cmss17.pfb")) (define-font cmss8.pk (font-class type1) (point-size 8.00) (tfm "cmss8") (font-file "cmss8.pfb")) (define-font cmss9.pk (font-class type1) (point-size 9.00) (tfm "cmss9") (font-file "cmss9.pfb")) (define-font cmti10.pk (font-class type1) (point-size 10.00) (tfm "cmti10") (font-file "cmti10.pfb")) (define-font cmti12.pk (font-class type1) (point-size 12.00) (tfm "cmti12") (font-file "cmti12.pfb")) (define-font cmti7.pk (font-class type1) (point-size 7.00) (tfm "cmti7") (font-file "cmti7.pfb")) (define-font cmti8.pk (font-class type1) (point-size 8.00) (tfm "cmti8") (font-file "cmti8.pfb")) (define-font cmti9.pk (font-class type1) (point-size 9.00) (tfm "cmti9") (font-file "cmti9.pfb")) (define-font cmu10.pk (font-class type1) (point-size 10.00) (tfm "cmu10") (font-file "cmu10.pfb")) (define-font cmvtt10.pk (font-class type1) (point-size 10.00) (tfm "cmvtt10") (font-file "cmvtt10.pfb")) (define-font cmcsc10.pk (font-class type1) (point-size 10.00) (tfm "cmcsc10") (font-file "cmcsc10.pfb")) (define-font cmcsc8.pk (font-class type1) (point-size 8.00) (tfm "cmcsc8") (font-file "cmcsc8.pfb")) (define-font cmcsc9.pk (font-class type1) (point-size 9.00) (tfm "cmcsc9") (font-file "cmcsc9.pfb")) (define-font cmr5.pk (font-class type1) (point-size 5.00) (tfm "cmr5") (font-file "cmr5.pfb")) (define-font cmtex10.pk (font-class type1) (point-size 10.00) (tfm "cmtex10") (font-file "cmtex10.pfb")) (define-font cmtex8.pk (font-class type1) (point-size 8.00) (tfm "cmtex8") (font-file "cmtex8.pfb")) (define-font cmtex9.pk (font-class type1) (point-size 9.00) (tfm "cmtex9") (font-file "cmtex9.pfb")) (define-font cmitt10.pk (font-class type1) (point-size 10.00) (tfm "cmitt10") (font-file "cmitt10.pfb")) (define-font cmsltt10.pk (font-class type1) (point-size 10.00) (tfm "cmsltt10") (font-file "cmsltt10.pfb")) (define-font cmtcsc10.pk (font-class type1) (point-size 10.00) (tfm "cmtcsc10") (font-file "cmtcsc10.pfb")) (define-font cmtt10.pk (font-class type1) (point-size 10.00) (tfm "cmtt10") (font-file "cmtt10.pfb")) (define-font cmtt12.pk (font-class type1) (point-size 12.00) (tfm "cmtt12") (font-file "cmtt12.pfb")) (define-font cmtt8.pk (font-class type1) (point-size 8.00) (tfm "cmtt8") (font-file "cmtt8.pfb")) (define-font cmtt9.pk (font-class type1) (point-size 9.00) (tfm "cmtt9") (font-file "cmtt9.pfb")) (define-font cmex10.pk (font-class type1) (point-size 10.00) (tfm "cmex10") (font-file "cmex10.pfb")) (define-font cmbsy10.pk (font-class type1) (point-size 10.00) (tfm "cmbsy10") (font-file "cmbsy10.pfb")) (define-font cmsy10.pk (font-class type1) (point-size 10.00) (tfm "cmsy10") (font-file "cmsy10.pfb")) (define-font cmsy5.pk (font-class type1) (point-size 5.00) (tfm "cmsy5") (font-file "cmsy5.pfb")) (define-font cmsy6.pk (font-class type1) (point-size 6.00) (tfm "cmsy6") (font-file "cmsy6.pfb")) (define-font cmsy7.pk (font-class type1) (point-size 7.00) (tfm "cmsy7") (font-file "cmsy7.pfb")) (define-font cmsy8.pk (font-class type1) (point-size 8.00) (tfm "cmsy8") (font-file "cmsy8.pfb")) (define-font cmsy9.pk (font-class type1) (point-size 9.00) (tfm "cmsy9") (font-file "cmsy9.pfb")) (define-font cmmib10.pk (font-class type1) (point-size 10.00) (tfm "cmmib10") (font-file "cmmib10.pfb")) (define-font cmmi10.pk (font-class type1) (point-size 10.00) (tfm "cmmi10") (font-file "cmmi10.pfb")) (define-font cmmi12.pk (font-class type1) (point-size 12.00) (tfm "cmmi12") (font-file "cmmi12.pfb")) (define-font cmmi5.pk (font-class type1) (point-size 5.00) (tfm "cmmi5") (font-file "cmmi5.pfb")) (define-font cmmi6.pk (font-class type1) (point-size 6.00) (tfm "cmmi6") (font-file "cmmi6.pfb")) (define-font cmmi7.pk (font-class type1) (point-size 7.00) (tfm "cmmi7") (font-file "cmmi7.pfb")) (define-font cmmi8.pk (font-class type1) (point-size 8.00) (tfm "cmmi8") (font-file "cmmi8.pfb")) (define-font cmmi9.pk (font-class type1) (point-size 9.00) (tfm "cmmi9") (font-file "cmmi9.pfb")) (define-font cminch.pk (font-class type1) (point-size 104.07) (tfm "cminch") (font-file "cminch.pfb")) ;; end of /usr/local/share/texmf/dvips/base/cmfonts.map ;; dvips mapfile: /usr/local/share/texmf/dvips/base/lafonts.map (define-font lasy5.pk (font-class type1) (point-size 5.00) (tfm "lasy5") (font-file "lasy5.pfb")) (define-font lasy6.pk (font-class type1) (point-size 6.00) (tfm "lasy6") (font-file "lasy6.pfb")) (define-font lasy7.pk (font-class type1) (point-size 7.00) (tfm "lasy7") (font-file "lasy7.pfb")) (define-font lasy8.pk (font-class type1) (point-size 8.00) (tfm "lasy8") (font-file "lasy8.pfb")) (define-font lasy9.pk (font-class type1) (point-size 9.00) (tfm "lasy9") (font-file "lasy9.pfb")) (define-font lasy10.pk (font-class type1) (point-size 10.00) (tfm "lasy10") (font-file "lasy10.pfb")) (define-font lasyb10.pk (font-class type1) (point-size 10.00) (tfm "lasyb10") (font-file "lasyb10.pfb")) (define-font lcircle10.pk (font-class type1) (point-size 10.00) (tfm "lcircle10") (font-file "lcircle10.pfb")) (define-font lcirclew10.pk (font-class type1) (point-size 10.00) (tfm "lcirclew10") (font-file "lcirclew10.pfb")) (define-font line10.pk (font-class type1) (point-size 10.00) (tfm "line10") (font-file "line10.pfb")) (define-font linew10.pk (font-class type1) (point-size 10.00) (tfm "linew10") (font-file "linew10.pfb")) (define-font logo8.pk (font-class type1) (point-size 8.00) (tfm "logo8") (font-file "logo8.pfb")) (define-font logo9.pk (font-class type1) (point-size 9.00) (tfm "logo9") (font-file "logo9.pfb")) (define-font logo10.pk (font-class type1) (point-size 10.00) (tfm "logo10") (font-file "logo10.pfb")) (define-font logobf10.pk (font-class type1) (point-size 10.00) (tfm "logobf10") (font-file "logobf10.pfb")) (define-font logosl10.pk (font-class type1) (point-size 10.00) (tfm "logosl10") (font-file "logosl10.pfb")) ;; end of /usr/local/share/texmf/dvips/base/lafonts.map ;; dvips mapfile: /usr/local/share/texmf/dvips/base/eufonts.map (define-font euex10.pk (font-class type1) (point-size 10.00) (tfm "euex10") (font-file "euex10.pfb")) (define-font eufb10.pk (font-class type1) (point-size 10.00) (tfm "eufb10") (font-file "eufb10.pfb")) (define-font eufb5.pk (font-class type1) (point-size 5.00) (tfm "eufb5") (font-file "eufb5.pfb")) (define-font eufb7.pk (font-class type1) (point-size 7.00) (tfm "eufb7") (font-file "eufb7.pfb")) (define-font eufm10.pk (font-class type1) (point-size 10.00) (tfm "eufm10") (font-file "eufm10.pfb")) (define-font eufm5.pk (font-class type1) (point-size 5.00) (tfm "eufm5") (font-file "eufm5.pfb")) (define-font eufm7.pk (font-class type1) (point-size 7.00) (tfm "eufm7") (font-file "eufm7.pfb")) (define-font eurb10.pk (font-class type1) (point-size 10.00) (tfm "eurb10") (font-file "eurb10.pfb")) (define-font eurb5.pk (font-class type1) (point-size 5.00) (tfm "eurb5") (font-file "eurb5.pfb")) (define-font eurb7.pk (font-class type1) (point-size 7.00) (tfm "eurb7") (font-file "eurb7.pfb")) (define-font eurm10.pk (font-class type1) (point-size 10.00) (tfm "eurm10") (font-file "eurm10.pfb")) (define-font eurm5.pk (font-class type1) (point-size 5.00) (tfm "eurm5") (font-file "eurm5.pfb")) (define-font eurm7.pk (font-class type1) (point-size 7.00) (tfm "eurm7") (font-file "eurm7.pfb")) (define-font eusb10.pk (font-class type1) (point-size 10.00) (tfm "eusb10") (font-file "eusb10.pfb")) (define-font eusb5.pk (font-class type1) (point-size 5.00) (tfm "eusb5") (font-file "eusb5.pfb")) (define-font eusb7.pk (font-class type1) (point-size 7.00) (tfm "eusb7") (font-file "eusb7.pfb")) (define-font eusm10.pk (font-class type1) (point-size 10.00) (tfm "eusm10") (font-file "eusm10.pfb")) (define-font eusm5.pk (font-class type1) (point-size 5.00) (tfm "eusm5") (font-file "eusm5.pfb")) (define-font eusm7.pk (font-class type1) (point-size 7.00) (tfm "eusm7") (font-file "eusm7.pfb")) (define-font msam10.pk (font-class type1) (point-size 10.00) (tfm "msam10") (font-file "msam10.pfb")) (define-font msbm10.pk (font-class type1) (point-size 10.00) (tfm "msbm10") (font-file "msbm10.pfb")) ;; end of /usr/local/share/texmf/dvips/base/eufonts.map ;; dvips mapfile: /usr/local/share/texmf/dvips/base/psfonts.map (define-font rpagk.pk (font-class type1) (point-size 10.00) (tfm "rpagk") (font-file "AvantGarde-Book")) (define-font rpagko.pk (font-class type1) (point-size 10.00) (tfm "rpagko") (font-file "AvantGarde-BookOblique")) (define-font rpagd.pk (font-class type1) (point-size 10.00) (tfm "rpagd") (font-file "AvantGarde-Demi")) (define-font rpagdo.pk (font-class type1) (point-size 10.00) (tfm "rpagdo") (font-file "AvantGarde-DemiOblique")) (define-font rpbkl.pk (font-class type1) (point-size 10.00) (tfm "rpbkl") (font-file "Bookman-Light")) (define-font rpbkli.pk (font-class type1) (point-size 10.00) (tfm "rpbkli") (font-file "Bookman-LightItalic")) (define-font rpbkd.pk (font-class type1) (point-size 10.00) (tfm "rpbkd") (font-file "Bookman-Demi")) (define-font rpbkdi.pk (font-class type1) (point-size 10.00) (tfm "rpbkdi") (font-file "Bookman-DemiItalic")) (define-font rpcrr.pk (font-class type1) (point-size 10.00) (tfm "rpcrr") (font-file "Courier")) (define-font rpcrro.pk (font-class type1) (point-size 10.00) (tfm "rpcrro") (font-file "Courier-Oblique")) (define-font rpcrb.pk (font-class type1) (point-size 10.00) (tfm "rpcrb") (font-file "Courier-Bold")) (define-font rpcrbo.pk (font-class type1) (point-size 10.00) (tfm "rpcrbo") (font-file "Courier-BoldOblique")) (define-font rphvr.pk (font-class type1) (point-size 10.00) (tfm "rphvr") (font-file "Helvetica")) (define-font rphvro.pk (font-class type1) (point-size 10.00) (tfm "rphvro") (font-file "Helvetica-Oblique")) (define-font rphvb.pk (font-class type1) (point-size 10.00) (tfm "rphvb") (font-file "Helvetica-Bold")) (define-font rphvbo.pk (font-class type1) (point-size 10.00) (tfm "rphvbo") (font-file "Helvetica-BoldOblique")) (define-font rphvrrn.pk (font-class type1) (point-size 10.00) (tfm "rphvrrn") (font-file "Helvetica") (aspect-ratio 0.820)) (define-font rphvron.pk (font-class type1) (point-size 10.00) (tfm "rphvron") (font-file "Helvetica-Oblique") (aspect-ratio 0.820)) (define-font rphvbrn.pk (font-class type1) (point-size 10.00) (tfm "rphvbrn") (font-file "Helvetica-Bold") (aspect-ratio 0.820)) (define-font rphvbon.pk (font-class type1) (point-size 10.00) (tfm "rphvbon") (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820)) (define-font rpncr.pk (font-class type1) (point-size 10.00) (tfm "rpncr") (font-file "NewCenturySchlbk-Roman")) (define-font rpncri.pk (font-class type1) (point-size 10.00) (tfm "rpncri") (font-file "NewCenturySchlbk-Italic")) (define-font rpncb.pk (font-class type1) (point-size 10.00) (tfm "rpncb") (font-file "NewCenturySchlbk-Bold")) (define-font rpncbi.pk (font-class type1) (point-size 10.00) (tfm "rpncbi") (font-file "NewCenturySchlbk-BoldItalic")) (define-font rpplr.pk (font-class type1) (point-size 10.00) (tfm "rpplr") (font-file "Palatino-Roman")) (define-font rpplri.pk (font-class type1) (point-size 10.00) (tfm "rpplri") (font-file "Palatino-Italic")) (define-font rpplro.pk (font-class type1) (point-size 10.00) (tfm "rpplro") (font-file "Palatino-Roman") (slant-factor 0.167)) (define-font rpplb.pk (font-class type1) (point-size 10.00) (tfm "rpplb") (font-file "Palatino-Bold")) (define-font rpplbi.pk (font-class type1) (point-size 10.00) (tfm "rpplbi") (font-file "Palatino-BoldItalic")) (define-font rpplbu.pk (font-class type1) (point-size 10.00) (tfm "rpplbu") (font-file "Palatino-BoldItalic") (slant-factor -0.176)) (define-font rpplru.pk (font-class type1) (point-size 10.00) (tfm "rpplru") (font-file "Palatino-Italic") (slant-factor -0.176)) (define-font rpplrrn.pk (font-class type1) (point-size 10.00) (tfm "rpplrrn") (font-file "Palatino-Roman") (aspect-ratio 0.820)) (define-font rpplrre.pk (font-class type1) (point-size 10.00) (tfm "rpplrre") (font-file "Palatino-Roman") (aspect-ratio 1.200)) (define-font psyr.pk (font-class type1) (point-size 10.00) (tfm "psyr") (font-file "Symbol")) (define-font rpsyr.pk (font-class type1) (point-size 10.00) (tfm "rpsyr") (font-file "Symbol")) (define-font psyro.pk (font-class type1) (point-size 10.00) (tfm "psyro") (font-file "Symbol") (slant-factor 0.167)) (define-font rpsyro.pk (font-class type1) (point-size 10.00) (tfm "rpsyro") (font-file "Symbol") (slant-factor 0.167)) (define-font rptmr.pk (font-class type1) (point-size 10.00) (tfm "rptmr") (font-file "Times-Roman")) (define-font rptmri.pk (font-class type1) (point-size 10.00) (tfm "rptmri") (font-file "Times-Italic")) (define-font rptmro.pk (font-class type1) (point-size 10.00) (tfm "rptmro") (font-file "Times-Roman") (slant-factor 0.167)) (define-font rptmb.pk (font-class type1) (point-size 10.00) (tfm "rptmb") (font-file "Times-Bold")) (define-font rptmbi.pk (font-class type1) (point-size 10.00) (tfm "rptmbi") (font-file "Times-BoldItalic")) (define-font rptmbo.pk (font-class type1) (point-size 10.00) (tfm "rptmbo") (font-file "Times-Bold") (slant-factor 0.167)) (define-font rptmrrn.pk (font-class type1) (point-size 10.00) (tfm "rptmrrn") (font-file "Times-Roman") (aspect-ratio 0.800)) (define-font rptmrre.pk (font-class type1) (point-size 10.00) (tfm "rptmrre") (font-file "Times-Roman") (aspect-ratio 1.200)) (define-font pzdr.pk (font-class type1) (point-size 10.00) (tfm "pzdr") (font-file "ZapfDingbats")) (define-font rpzdr.pk (font-class type1) (point-size 10.00) (tfm "rpzdr") (font-file "ZapfDingbats")) (define-font rpzcmi.pk (font-class type1) (point-size 10.00) (tfm "rpzcmi") (font-file "ZapfChancery-MediumItalic")) (define-font rputr.pk (font-class type1) (font-file "putr.pfa")) (define-font rputri.pk (font-class type1) (font-file "putri.pfa")) (define-font rputb.pk (font-class type1) (font-file "putb.pfa")) (define-font rputbi.pk (font-class type1) (font-file "putbi.pfa")) (define-font rbchr.pk (font-class type1) (font-file "bchr.pfb")) (define-font rbchri.pk (font-class type1) (font-file "bchri.pfb")) (define-font rbchb.pk (font-class type1) (font-file "bchb.pfb")) (define-font rbchbi.pk (font-class type1) (font-file "bchbi.pfb")) (define-font ruaqrrc.pk (font-class type1) (font-file "uaqrrc.pfa")) (define-font rugqb.pk (font-class type1) (font-file "ugqb.pfa")) (define-font runmr.pk (font-class type1) (font-file "unmr.pfa")) (define-font runmrs.pk (font-class type1) (font-file "unmrs.pfa")) (define-font hlcr5s.pk (font-class type1) (font-file "hlcr5s.pfa")) (define-font hlcr5as.pk (font-class type1) (font-file "hlcr5as.pfa")) (define-font rpaab.pk (font-class type1) (font-file "paab.pfa")) (define-font rpadr.pk (font-class type1) (font-file "padr.pfa")) (define-font rpadri.pk (font-class type1) (font-file "padri.pfa")) (define-font rpads.pk (font-class type1) (font-file "pads.pfa")) (define-font rpadsi.pk (font-class type1) (font-file "padsi.pfa")) (define-font rpadb.pk (font-class type1) (font-file "padb.pfa")) (define-font rpadbi.pk (font-class type1) (font-file "padbi.pfa")) (define-font rpadrd.pk (font-class type1) (font-file "padrd.pfa")) (define-font rpadrx.pk (font-class type1) (font-file "padrx.pfa")) (define-font rpadrix.pk (font-class type1) (font-file "padrix.pfa")) (define-font rpadsx.pk (font-class type1) (font-file "padsx.pfa")) (define-font rpadbx.pk (font-class type1) (font-file "padbx.pfa")) (define-font rpadbix.pk (font-class type1) (font-file "padbix.pfa")) (define-font rpbdr.pk (font-class type1) (font-file "pbdr.pfa")) (define-font rpbdri.pk (font-class type1) (font-file "pbdri.pfa")) (define-font rpbdb.pk (font-class type1) (font-file "pbdb.pfa")) (define-font rpbdbi.pk (font-class type1) (font-file "pbdbi.pfa")) (define-font rpbdp.pk (font-class type1) (font-file "pbdp.pfa")) (define-font rpburw.pk (font-class type1) (font-file "pburw.pfa")) (define-font rpc5r.pk (font-class type1) (font-file "pc5r.pfa")) (define-font rpc5ri.pk (font-class type1) (font-file "pc5ri.pfa")) (define-font rpc3r.pk (font-class type1) (font-file "pc3r.pfa")) (define-font rpc3ri.pk (font-class type1) (font-file "pc3ri.pfa")) (define-font rphvrrc.pk (font-class type1) (font-file "phvrrc.pfa")) (define-font rphvroc.pk (font-class type1) (font-file "phvroc.pfa")) (define-font rphvbrc.pk (font-class type1) (font-file "phvbrc.pfa")) (define-font rphvboc.pk (font-class type1) (font-file "phvboc.pfa")) (define-font rpubr.pk (font-class type1) (font-file "pubr.pfa")) (define-font rpubri.pk (font-class type1) (font-file "pubri.pfa")) (define-font rpubb.pk (font-class type1) (font-file "pubb.pfa")) (define-font rpubbi.pk (font-class type1) (font-file "pubbi.pfa")) (define-font rplbk.pk (font-class type1) (font-file "plbk.pfa")) (define-font rplbko.pk (font-class type1) (font-file "plbko.pfa")) (define-font rplbd.pk (font-class type1) (font-file "plbd.pfa")) (define-font rplbdo.pk (font-class type1) (font-file "plbdo.pfa")) (define-font rpsvl.pk (font-class type1) (font-file "psvl.pfa")) (define-font rpsvli.pk (font-class type1) (font-file "psvli.pfa")) (define-font rpsvd.pk (font-class type1) (font-file "psvd.pfa")) (define-font rpsvdi.pk (font-class type1) (font-file "psvdi.pfa")) (define-font rphbr.pk (font-class type1) (font-file "phbr.pfa")) (define-font rpslr.pk (font-class type1) (font-file "pslr.pfa")) (define-font rplcr.pk (font-class type1) (font-file "plcr.pfa")) (define-font rplcri.pk (font-class type1) (font-file "plcri.pfa")) (define-font rplcro.pk (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167)) (define-font rplcb.pk (font-class type1) (font-file "plcb.pfa")) (define-font rplcbi.pk (font-class type1) (font-file "plcbi.pfa")) (define-font rplcrs.pk (font-class type1) (font-file "plcrs.pfa")) (define-font rplcris.pk (font-class type1) (font-file "plcris.pfa")) (define-font rplcbs.pk (font-class type1) (font-file "plcbs.pfa")) (define-font rplcbis.pk (font-class type1) (font-file "plcbis.pfa")) (define-font rplcrb.pk (font-class type1) (font-file "plcrb.pfa")) (define-font rplcrbi.pk (font-class type1) (font-file "plcrbi.pfa")) (define-font rplcbb.pk (font-class type1) (font-file "plcbb.pfa")) (define-font rplcrst.pk (font-class type1) (font-file "plcrst.pfa")) (define-font rplcrm.pk (font-class type1) (font-file "plcrm.pfa")) (define-font rplcrv.pk (font-class type1) (font-file "plcrv.pfa")) (define-font rplcry.pk (font-class type1) (font-file "plcry.pfa")) (define-font rylhr.pk (font-class type1) (font-file "ylhr.pfb")) (define-font lbr.pk (font-class type1) (point-size 10.00) (tfm "lbr") (font-file "lbr.pfb")) (define-font rylhri.pk (font-class type1) (font-file "ylhri.pfb")) (define-font lbi.pk (font-class type1) (point-size 10.00) (tfm "lbi") (font-file "lbi.pfb")) (define-font rylhro.pk (font-class type1) (font-file "ylhro.pfb")) (define-font lbsl.pk (font-class type1) (point-size 10.00) (tfm "lbsl") (font-file "lbsl.pfb")) (define-font rylhd.pk (font-class type1) (font-file "ylhd.pfb")) (define-font lbd.pk (font-class type1) (point-size 10.00) (tfm "lbd") (font-file "lbd.pfb")) (define-font rylhdi.pk (font-class type1) (font-file "ylhdi.pfb")) (define-font lbdi.pk (font-class type1) (point-size 10.00) (tfm "lbdi") (font-file "lbdi.pfb")) (define-font rylcrs.pk (font-class type1) (font-file "ylcrs.pfb")) (define-font lsr.pk (font-class type1) (point-size 10.00) (tfm "lsr") (font-file "lsr.pfb")) (define-font rylcds.pk (font-class type1) (font-file "ylcds.pfb")) (define-font lsd.pk (font-class type1) (point-size 10.00) (tfm "lsd") (font-file "lsd.pfb")) (define-font rylcdis.pk (font-class type1) (font-file "ylcdis.pfb")) (define-font lsdi.pk (font-class type1) (point-size 10.00) (tfm "lsdi") (font-file "lsdi.pfb")) (define-font rylcrst.pk (font-class type1) (font-file "ylcrst.pfb")) (define-font lstr.pk (font-class type1) (point-size 10.00) (tfm "lstr") (font-file "lstr.pfb")) (define-font rylcrost.pk (font-class type1) (font-file "ylcrost.pfb")) (define-font lsto.pk (font-class type1) (point-size 10.00) (tfm "lsto") (font-file "lsto.pfb")) (define-font rylcbst.pk (font-class type1) (font-file "ylcbst.pfb")) (define-font lstb.pk (font-class type1) (point-size 10.00) (tfm "lstb") (font-file "lstb.pfb")) (define-font rylcbost.pk (font-class type1) (font-file "ylcbost.pfb")) (define-font lstbo.pk (font-class type1) (point-size 10.00) (tfm "lstbo") (font-file "lstbo.pfb")) (define-font rylcr4.pk (font-class type1) (font-file "ylcr4.pfb")) (define-font lfr.pk (font-class type1) (point-size 10.00) (tfm "lfr") (font-file "lfr.pfb")) (define-font rylcr4i.pk (font-class type1) (font-file "ylcr4i.pfb")) (define-font lfi.pk (font-class type1) (point-size 10.00) (tfm "lfi") (font-file "lfi.pfb")) (define-font rylcd4.pk (font-class type1) (font-file "ylcd4.pfb")) (define-font lfd.pk (font-class type1) (point-size 10.00) (tfm "lfd") (font-file "lfd.pfb")) (define-font rylcd4i.pk (font-class type1) (font-file "ylcd4i.pfb")) (define-font lfdi.pk (font-class type1) (point-size 10.00) (tfm "lfdi") (font-file "lfdi.pfb")) (define-font rylcrf.pk (font-class type1) (font-file "ylcrf.pfb")) (define-font lbl.pk (font-class type1) (point-size 10.00) (tfm "lbl") (font-file "lbl.pfb")) (define-font rylcrihw.pk (font-class type1) (font-file "ylcrihw.pfb")) (define-font lbh.pk (font-class type1) (point-size 10.00) (tfm "lbh") (font-file "lbh.pfb")) (define-font rylcris.pk (font-class type1) (font-file "ylcris.pfb")) (define-font lsi.pk (font-class type1) (point-size 10.00) (tfm "lsi") (font-file "lsi.pfb")) (define-font rylcriw.pk (font-class type1) (font-file "ylcriw.pfb")) (define-font lbc.pk (font-class type1) (point-size 10.00) (tfm "lbc") (font-file "lbc.pfb")) (define-font rcggr.pk (font-class type1) (font-file "cggr.pfa")) (define-font rcggri.pk (font-class type1) (font-file "cggri.pfa")) (define-font rcggb.pk (font-class type1) (font-file "cggb.pfa")) (define-font rcggbi.pk (font-class type1) (font-file "cggbi.pfa")) (define-font rcshr.pk (font-class type1) (font-file "cshr.pfa")) (define-font rcshro.pk (font-class type1) (font-file "cshro.pfa")) (define-font rcshb.pk (font-class type1) (font-file "cshb.pfa")) (define-font rcshx.pk (font-class type1) (font-file "cshx.pfa")) (define-font bchbo8r.pk (font-class type1) (point-size 10.00) (tfm "bchbo8r") (font-file "bchb.pfa") (slant-factor 0.167)) (define-font bchro8r.pk (font-class type1) (point-size 10.00) (tfm "bchro8r") (font-file "bchr.pfa") (slant-factor 0.167)) (define-font pbkdo8r.pk (font-class type1) (point-size 10.00) (tfm "pbkdo8r") (font-file "Bookman-Demi") (slant-factor 0.167)) (define-font pbklo8r.pk (font-class type1) (point-size 10.00) (tfm "pbklo8r") (font-file "Bookman-Light") (slant-factor 0.167)) (define-font pncbo8r.pk (font-class type1) (point-size 10.00) (tfm "pncbo8r") (font-file "NewCenturySchlbk-Bold") (slant-factor 0.167)) (define-font pncro8r.pk (font-class type1) (point-size 10.00) (tfm "pncro8r") (font-file "NewCenturySchlbk-Roman") (slant-factor 0.167)) (define-font pplbo8r.pk (font-class type1) (point-size 10.00) (tfm "pplbo8r") (font-file "Palatino-Bold") (slant-factor 0.167)) (define-font putbo8r.pk (font-class type1) (point-size 10.00) (tfm "putbo8r") (font-file "putb8r.pfa") (slant-factor 0.167)) (define-font putro8r.pk (font-class type1) (point-size 10.00) (tfm "putro8r") (font-file "putr.pfa") (slant-factor 0.167)) (define-font pagk8r.pk (font-class type1) (point-size 10.00) (tfm "pagk8r") (font-file "AvantGarde-Book") (encoding-vector "8r.enc")) (define-font pagko8r.pk (font-class type1) (point-size 10.00) (tfm "pagko8r") (font-file "AvantGarde-BookOblique") (encoding-vector "8r.enc")) (define-font pagd8r.pk (font-class type1) (point-size 10.00) (tfm "pagd8r") (font-file "AvantGarde-Demi") (encoding-vector "8r.enc")) (define-font pagdo8r.pk (font-class type1) (point-size 10.00) (tfm "pagdo8r") (font-file "AvantGarde-DemiOblique") (encoding-vector "8r.enc")) (define-font pbkl8r.pk (font-class type1) (point-size 10.00) (tfm "pbkl8r") (font-file "Bookman-Light") (encoding-vector "8r.enc")) (define-font pbkli8r.pk (font-class type1) (point-size 10.00) (tfm "pbkli8r") (font-file "Bookman-LightItalic") (encoding-vector "8r.enc")) (define-font pbkd8r.pk (font-class type1) (point-size 10.00) (tfm "pbkd8r") (font-file "Bookman-Demi") (encoding-vector "8r.enc")) (define-font pbkdi8r.pk (font-class type1) (point-size 10.00) (tfm "pbkdi8r") (font-file "Bookman-DemiItalic") (encoding-vector "8r.enc")) (define-font pcrr8r.pk (font-class type1) (point-size 10.00) (tfm "pcrr8r") (font-file "Courier") (encoding-vector "8r.enc")) (define-font pcrro8r.pk (font-class type1) (point-size 10.00) (tfm "pcrro8r") (font-file "Courier-Oblique") (encoding-vector "8r.enc")) (define-font pcrb8r.pk (font-class type1) (point-size 10.00) (tfm "pcrb8r") (font-file "Courier-Bold") (encoding-vector "8r.enc")) (define-font pcrbo8r.pk (font-class type1) (point-size 10.00) (tfm "pcrbo8r") (font-file "Courier-BoldOblique") (encoding-vector "8r.enc")) (define-font phvr8r.pk (font-class type1) (point-size 10.00) (tfm "phvr8r") (font-file "Helvetica") (encoding-vector "8r.enc")) (define-font phvro8r.pk (font-class type1) (point-size 10.00) (tfm "phvro8r") (font-file "Helvetica-Oblique") (encoding-vector "8r.enc")) (define-font phvb8r.pk (font-class type1) (point-size 10.00) (tfm "phvb8r") (font-file "Helvetica-Bold") (encoding-vector "8r.enc")) (define-font phvbo8r.pk (font-class type1) (point-size 10.00) (tfm "phvbo8r") (font-file "Helvetica-BoldOblique") (encoding-vector "8r.enc")) (define-font phvrrn8r.pk (font-class type1) (font-file "Helvetica") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvron8r.pk (font-class type1) (font-file "Helvetica-Oblique") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvbrn8r.pk (font-class type1) (font-file "Helvetica-Bold") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font phvbon8r.pk (font-class type1) (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font pncr8r.pk (font-class type1) (point-size 10.00) (tfm "pncr8r") (font-file "NewCenturySchlbk-Roman") (encoding-vector "8r.enc")) (define-font pncri8r.pk (font-class type1) (point-size 10.00) (tfm "pncri8r") (font-file "NewCenturySchlbk-Italic") (encoding-vector "8r.enc")) (define-font pncb8r.pk (font-class type1) (point-size 10.00) (tfm "pncb8r") (font-file "NewCenturySchlbk-Bold") (encoding-vector "8r.enc")) (define-font pncbi8r.pk (font-class type1) (point-size 10.00) (tfm "pncbi8r") (font-file "NewCenturySchlbk-BoldItalic") (encoding-vector "8r.enc")) (define-font pplr8r.pk (font-class type1) (point-size 10.00) (tfm "pplr8r") (font-file "Palatino-Roman") (encoding-vector "8r.enc")) (define-font pplri8r.pk (font-class type1) (point-size 10.00) (tfm "pplri8r") (font-file "Palatino-Italic") (encoding-vector "8r.enc")) (define-font pplro8r.pk (font-class type1) (point-size 10.00) (tfm "pplro8r") (font-file "Palatino-Roman") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font pplb8r.pk (font-class type1) (point-size 10.00) (tfm "pplb8r") (font-file "Palatino-Bold") (encoding-vector "8r.enc")) (define-font pplbi8r.pk (font-class type1) (point-size 10.00) (tfm "pplbi8r") (font-file "Palatino-BoldItalic") (encoding-vector "8r.enc")) (define-font pplbu8r.pk (font-class type1) (point-size 10.00) (tfm "pplbu8r") (font-file "Palatino-BoldItalic") (slant-factor -0.176) (encoding-vector "8r.enc")) (define-font pplru8r.pk (font-class type1) (point-size 10.00) (tfm "pplru8r") (font-file "Palatino-Italic") (slant-factor -0.176) (encoding-vector "8r.enc")) (define-font pplrrn8r.pk (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 0.820) (encoding-vector "8r.enc")) (define-font pplrre8r.pk (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 1.200) (encoding-vector "8r.enc")) (define-font ptmr8r.pk (font-class type1) (point-size 10.00) (tfm "ptmr8r") (font-file "Times-Roman") (encoding-vector "8r.enc")) (define-font ptmri8r.pk (font-class type1) (point-size 10.00) (tfm "ptmri8r") (font-file "Times-Italic") (encoding-vector "8r.enc")) (define-font ptmro8r.pk (font-class type1) (point-size 10.00) (tfm "ptmro8r") (font-file "Times-Roman") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font ptmb8r.pk (font-class type1) (point-size 10.00) (tfm "ptmb8r") (font-file "Times-Bold") (encoding-vector "8r.enc")) (define-font ptmbi8r.pk (font-class type1) (point-size 10.00) (tfm "ptmbi8r") (font-file "Times-BoldItalic") (encoding-vector "8r.enc")) (define-font ptmbo8r.pk (font-class type1) (point-size 10.00) (tfm "ptmbo8r") (font-file "Times-Bold") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font ptmrrn8r.pk (font-class type1) (font-file "Times-Roman") (aspect-ratio 0.800) (encoding-vector "8r.enc")) (define-font ptmrre8r.pk (font-class type1) (font-file "Times-Roman") (aspect-ratio 1.200) (encoding-vector "8r.enc")) (define-font pzcmi8r.pk (font-class type1) (point-size 10.00) (tfm "pzcmi8r") (font-file "ZapfChancery-MediumItalic") (encoding-vector "8r.enc")) (define-font putr8r.pk (font-class type1) (point-size 10.00) (tfm "putr8r") (font-file "putr.pfa") (encoding-vector "8r.enc")) (define-font putri8r.pk (font-class type1) (point-size 10.00) (tfm "putri8r") (font-file "putri.pfa") (encoding-vector "8r.enc")) (define-font putb8r.pk (font-class type1) (point-size 10.00) (tfm "putb8r") (font-file "putb.pfa") (encoding-vector "8r.enc")) (define-font putbi8r.pk (font-class type1) (point-size 10.00) (tfm "putbi8r") (font-file "putbi.pfa") (encoding-vector "8r.enc")) (define-font bchr8r.pk (font-class type1) (point-size 10.00) (tfm "bchr8r") (font-file "bchr.pfb") (encoding-vector "8r.enc")) (define-font bchri8r.pk (font-class type1) (point-size 10.00) (tfm "bchri8r") (font-file "bchri.pfb") (encoding-vector "8r.enc")) (define-font bchb8r.pk (font-class type1) (point-size 10.00) (tfm "bchb8r") (font-file "bchb.pfb") (encoding-vector "8r.enc")) (define-font bchbi8r.pk (font-class type1) (point-size 10.00) (tfm "bchbi8r") (font-file "bchbi.pfb") (encoding-vector "8r.enc")) (define-font uaqrrc8r.pk (font-class type1) (font-file "uaqrrc.pfa") (encoding-vector "8r.enc")) (define-font ugqb8r.pk (font-class type1) (font-file "ugqb.pfa") (encoding-vector "8r.enc")) (define-font unmr8r.pk (font-class type1) (font-file "unmr.pfa") (encoding-vector "8r.enc")) (define-font unmrs8r.pk (font-class type1) (font-file "unmrs.pfa") (encoding-vector "8r.enc")) (define-font paab8r.pk (font-class type1) (font-file "paab.pfa") (encoding-vector "8r.enc")) (define-font padr8r.pk (font-class type1) (font-file "padr.pfa") (encoding-vector "8r.enc")) (define-font padri8r.pk (font-class type1) (font-file "padri.pfa") (encoding-vector "8r.enc")) (define-font pads8r.pk (font-class type1) (font-file "pads.pfa") (encoding-vector "8r.enc")) (define-font padsi8r.pk (font-class type1) (font-file "padsi.pfa") (encoding-vector "8r.enc")) (define-font padb8r.pk (font-class type1) (font-file "padb.pfa") (encoding-vector "8r.enc")) (define-font padbi8r.pk (font-class type1) (font-file "padbi.pfa") (encoding-vector "8r.enc")) (define-font padrd8r.pk (font-class type1) (font-file "padrd.pfa") (encoding-vector "8r.enc")) (define-font padrx8r.pk (font-class type1) (font-file "padrx.pfa") (encoding-vector "8r.enc")) (define-font padrix8r.pk (font-class type1) (font-file "padrix.pfa") (encoding-vector "8r.enc")) (define-font padsx8r.pk (font-class type1) (font-file "padsx.pfa") (encoding-vector "8r.enc")) (define-font padbx8r.pk (font-class type1) (font-file "padbx.pfa") (encoding-vector "8r.enc")) (define-font padbix8r.pk (font-class type1) (font-file "padbix.pfa") (encoding-vector "8r.enc")) (define-font pbdr8r.pk (font-class type1) (font-file "pbdr.pfa") (encoding-vector "8r.enc")) (define-font pbdri8r.pk (font-class type1) (font-file "pbdri.pfa") (encoding-vector "8r.enc")) (define-font pbdb8r.pk (font-class type1) (font-file "pbdb.pfa") (encoding-vector "8r.enc")) (define-font pbdbi8r.pk (font-class type1) (font-file "pbdbi.pfa") (encoding-vector "8r.enc")) (define-font pbdp8r.pk (font-class type1) (font-file "pbdp.pfa") (encoding-vector "8r.enc")) (define-font pburw8r.pk (font-class type1) (font-file "pburw.pfa") (encoding-vector "8r.enc")) (define-font pc5r8r.pk (font-class type1) (font-file "pc5r.pfa") (encoding-vector "8r.enc")) (define-font pc5ri8r.pk (font-class type1) (font-file "pc5ri.pfa") (encoding-vector "8r.enc")) (define-font pc3r8r.pk (font-class type1) (font-file "pc3r.pfa") (encoding-vector "8r.enc")) (define-font pc3ri8r.pk (font-class type1) (font-file "pc3ri.pfa") (encoding-vector "8r.enc")) (define-font phvrrc8r.pk (font-class type1) (font-file "phvrrc.pfa") (encoding-vector "8r.enc")) (define-font phvroc8r.pk (font-class type1) (font-file "phvroc.pfa") (encoding-vector "8r.enc")) (define-font phvbrc8r.pk (font-class type1) (font-file "phvbrc.pfa") (encoding-vector "8r.enc")) (define-font phvboc8r.pk (font-class type1) (font-file "phvboc.pfa") (encoding-vector "8r.enc")) (define-font pubr8r.pk (font-class type1) (font-file "pubr.pfa") (encoding-vector "8r.enc")) (define-font pubri8r.pk (font-class type1) (font-file "pubri.pfa") (encoding-vector "8r.enc")) (define-font pubb8r.pk (font-class type1) (font-file "pubb.pfa") (encoding-vector "8r.enc")) (define-font pubbi8r.pk (font-class type1) (font-file "pubbi.pfa") (encoding-vector "8r.enc")) (define-font plbk8r.pk (font-class type1) (font-file "plbk.pfa") (encoding-vector "8r.enc")) (define-font plbko8r.pk (font-class type1) (font-file "plbko.pfa") (encoding-vector "8r.enc")) (define-font plbd8r.pk (font-class type1) (font-file "plbd.pfa") (encoding-vector "8r.enc")) (define-font plbdo8r.pk (font-class type1) (font-file "plbdo.pfa") (encoding-vector "8r.enc")) (define-font psvl8r.pk (font-class type1) (font-file "psvl.pfa") (encoding-vector "8r.enc")) (define-font psvli8r.pk (font-class type1) (font-file "psvli.pfa") (encoding-vector "8r.enc")) (define-font psvd8r.pk (font-class type1) (font-file "psvd.pfa") (encoding-vector "8r.enc")) (define-font psvdi8r.pk (font-class type1) (font-file "psvdi.pfa") (encoding-vector "8r.enc")) (define-font phbr8r.pk (font-class type1) (font-file "phbr.pfa") (encoding-vector "8r.enc")) (define-font pslr8r.pk (font-class type1) (font-file "pslr.pfa") (encoding-vector "8r.enc")) (define-font plcr8r.pk (font-class type1) (font-file "plcr.pfa") (encoding-vector "8r.enc")) (define-font plcri8r.pk (font-class type1) (font-file "plcri.pfa") (encoding-vector "8r.enc")) (define-font plcro8r.pk (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167) (encoding-vector "8r.enc")) (define-font plcb8r.pk (font-class type1) (font-file "plcb.pfa") (encoding-vector "8r.enc")) (define-font plcbi8r.pk (font-class type1) (font-file "plcbi.pfa") (encoding-vector "8r.enc")) (define-font plcrs8r.pk (font-class type1) (font-file "plcrs.pfa") (encoding-vector "8r.enc")) (define-font plcris8r.pk (font-class type1) (font-file "plcris.pfa") (encoding-vector "8r.enc")) (define-font plcbs8r.pk (font-class type1) (font-file "plcbs.pfa") (encoding-vector "8r.enc")) (define-font plcbis8r.pk (font-class type1) (font-file "plcbis.pfa") (encoding-vector "8r.enc")) (define-font plcrb8r.pk (font-class type1) (font-file "plcrb.pfa") (encoding-vector "8r.enc")) (define-font plcrbi8r.pk (font-class type1) (font-file "plcrbi.pfa") (encoding-vector "8r.enc")) (define-font plcbb8r.pk (font-class type1) (font-file "plcbb.pfa") (encoding-vector "8r.enc")) (define-font plcrst8r.pk (font-class type1) (font-file "plcrst.pfa") (encoding-vector "8r.enc")) (define-font plcrm8r.pk (font-class type1) (font-file "plcrm.pfa") (encoding-vector "8r.enc")) (define-font plcrv8r.pk (font-class type1) (font-file "plcrv.pfa") (encoding-vector "8r.enc")) (define-font plcry8r.pk (font-class type1) (font-file "plcry.pfa") (encoding-vector "8r.enc")) (define-font ylhr8r.pk (font-class type1) (font-file "ylhr.pfb") (encoding-vector "8r.enc")) (define-font ylhri8r.pk (font-class type1) (font-file "ylhri.pfb") (encoding-vector "8r.enc")) (define-font ylhro8r.pk (font-class type1) (font-file "ylhro.pfb") (encoding-vector "8r.enc")) (define-font ylhd8r.pk (font-class type1) (font-file "ylhd.pfb") (encoding-vector "8r.enc")) (define-font ylhdi8r.pk (font-class type1) (font-file "ylhdi.pfb") (encoding-vector "8r.enc")) (define-font ylcrs8r.pk (font-class type1) (font-file "ylcrs.pfb") (encoding-vector "8r.enc")) (define-font ylcds8r.pk (font-class type1) (font-file "ylcds.pfb") (encoding-vector "8r.enc")) (define-font ylcdis8r.pk (font-class type1) (font-file "ylcdis.pfb") (encoding-vector "8r.enc")) (define-font ylcrst8r.pk (font-class type1) (font-file "ylcrst.pfb") (encoding-vector "8r.enc")) (define-font ylcrost8r.pk (font-class type1) (font-file "ylcrost.pfb") (encoding-vector "8r.enc")) (define-font ylcbst8r.pk (font-class type1) (font-file "ylcbst.pfb") (encoding-vector "8r.enc")) (define-font ylcbost8r.pk (font-class type1) (font-file "ylcbost.pfb") (encoding-vector "8r.enc")) (define-font ylcr48r.pk (font-class type1) (font-file "ylcr4.pfb") (encoding-vector "8r.enc")) (define-font ylcr4i8r.pk (font-class type1) (font-file "ylcr4i.pfb") (encoding-vector "8r.enc")) (define-font ylcd48r.pk (font-class type1) (font-file "ylcd4.pfb") (encoding-vector "8r.enc")) (define-font ylcd4i8r.pk (font-class type1) (font-file "ylcd4i.pfb") (encoding-vector "8r.enc")) (define-font ylcrf8r.pk (font-class type1) (font-file "ylcrf.pfb") (encoding-vector "8r.enc")) (define-font ylcrihw8r.pk (font-class type1) (font-file "ylcrihw.pfb") (encoding-vector "8r.enc")) (define-font ylcris8r.pk (font-class type1) (font-file "ylcris.pfb") (encoding-vector "8r.enc")) (define-font ylcriw8r.pk (font-class type1) (font-file "ylcriw.pfb") (encoding-vector "8r.enc")) (define-font cggr8r.pk (font-class type1) (font-file "cggr.pfa") (encoding-vector "8r.enc")) (define-font cggri8r.pk (font-class type1) (font-file "cggri.pfa") (encoding-vector "8r.enc")) (define-font cggb8r.pk (font-class type1) (font-file "cggb.pfa") (encoding-vector "8r.enc")) (define-font cggbi8r.pk (font-class type1) (font-file "cggbi.pfa") (encoding-vector "8r.enc")) (define-font cshr8r.pk (font-class type1) (font-file "cshr.pfa") (encoding-vector "8r.enc")) (define-font cshro8r.pk (font-class type1) (font-file "cshro.pfa") (encoding-vector "8r.enc")) (define-font cshb8r.pk (font-class type1) (font-file "cshb.pfa") (encoding-vector "8r.enc")) (define-font cshx8r.pk (font-class type1) (font-file "cshx.pfa") (encoding-vector "8r.enc")) (define-font pagk0.pk (font-class type1) (font-file "AvantGarde-Book")) (define-font pagko0.pk (font-class type1) (font-file "AvantGarde-BookOblique")) (define-font pagd0.pk (font-class type1) (font-file "AvantGarde-Demi")) (define-font pagdo0.pk (font-class type1) (font-file "AvantGarde-DemiOblique")) (define-font pbkl0.pk (font-class type1) (font-file "Bookman-Light")) (define-font pbkli0.pk (font-class type1) (font-file "Bookman-LightItalic")) (define-font pbklo0.pk (font-class type1) (font-file "Bookman-Light") (slant-factor 0.167)) (define-font pbkd0.pk (font-class type1) (font-file "Bookman-Demi")) (define-font pbkdi0.pk (font-class type1) (font-file "Bookman-DemiItalic")) (define-font pbkdo0.pk (font-class type1) (font-file "Bookman-Demi") (slant-factor 0.167)) (define-font pcrr0.pk (font-class type1) (font-file "Courier")) (define-font pcrro0.pk (font-class type1) (font-file "Courier-Oblique")) (define-font pcrb0.pk (font-class type1) (font-file "Courier-Bold")) (define-font pcrbo0.pk (font-class type1) (font-file "Courier-BoldOblique")) (define-font phvr0.pk (font-class type1) (font-file "Helvetica")) (define-font phvro0.pk (font-class type1) (font-file "Helvetica-Oblique")) (define-font phvb0.pk (font-class type1) (font-file "Helvetica-Bold")) (define-font phvbo0.pk (font-class type1) (font-file "Helvetica-BoldOblique")) (define-font phvrrn0.pk (font-class type1) (font-file "Helvetica") (aspect-ratio 0.820)) (define-font phvron0.pk (font-class type1) (font-file "Helvetica-Oblique") (aspect-ratio 0.820)) (define-font phvbrn0.pk (font-class type1) (font-file "Helvetica-Bold") (aspect-ratio 0.820)) (define-font phvbon0.pk (font-class type1) (font-file "Helvetica-BoldOblique") (aspect-ratio 0.820)) (define-font pncr0.pk (font-class type1) (font-file "NewCenturySchlbk-Roman")) (define-font pncri0.pk (font-class type1) (font-file "NewCenturySchlbk-Italic")) (define-font pncro0.pk (font-class type1) (font-file "NewCenturySchlbk-Roman") (slant-factor 0.167)) (define-font pncb0.pk (font-class type1) (font-file "NewCenturySchlbk-Bold")) (define-font pncbi0.pk (font-class type1) (font-file "NewCenturySchlbk-BoldItalic")) (define-font pncbo0.pk (font-class type1) (font-file "NewCenturySchlbk-Bold") (slant-factor 0.167)) (define-font pplr0.pk (font-class type1) (font-file "Palatino-Roman")) (define-font pplri0.pk (font-class type1) (font-file "Palatino-Italic")) (define-font pplro0.pk (font-class type1) (font-file "Palatino-Roman") (slant-factor 0.167)) (define-font pplb0.pk (font-class type1) (font-file "Palatino-Bold")) (define-font pplbi0.pk (font-class type1) (font-file "Palatino-BoldItalic")) (define-font pplbo0.pk (font-class type1) (font-file "Palatino-Bold") (slant-factor 0.167)) (define-font pplbu0.pk (font-class type1) (font-file "Palatino-BoldItalic") (slant-factor -0.176)) (define-font pplru0.pk (font-class type1) (font-file "Palatino-Italic") (slant-factor -0.176)) (define-font pplrrn0.pk (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 0.820)) (define-font pplrre0.pk (font-class type1) (font-file "Palatino-Roman") (aspect-ratio 1.200)) (define-font ptmr0.pk (font-class type1) (font-file "Times-Roman")) (define-font ptmri0.pk (font-class type1) (font-file "Times-Italic")) (define-font ptmro0.pk (font-class type1) (font-file "Times-Roman") (slant-factor 0.167)) (define-font ptmb0.pk (font-class type1) (font-file "Times-Bold")) (define-font ptmbi0.pk (font-class type1) (font-file "Times-BoldItalic")) (define-font ptmbo0.pk (font-class type1) (font-file "Times-Bold") (slant-factor 0.167)) (define-font ptmrrn0.pk (font-class type1) (font-file "Times-Roman") (aspect-ratio 0.800)) (define-font ptmrre0.pk (font-class type1) (font-file "Times-Roman") (aspect-ratio 1.200)) (define-font pzcmi0.pk (font-class type1) (font-file "ZapfChancery-MediumItalic")) (define-font putr0.pk (font-class type1) (font-file "putr.pfa")) (define-font putri0.pk (font-class type1) (font-file "putri.pfa")) (define-font putro0.pk (font-class type1) (font-file "putr.pfa") (slant-factor 0.167)) (define-font putb0.pk (font-class type1) (font-file "putb.pfa")) (define-font putbi0.pk (font-class type1) (font-file "putbi.pfa")) (define-font putbo0.pk (font-class type1) (font-file "putb.pfa") (slant-factor 0.167)) (define-font bchr0.pk (font-class type1) (font-file "bchr.pfb")) (define-font bchri0.pk (font-class type1) (font-file "bchri.pfb")) (define-font bchro0.pk (font-class type1) (font-file "bchr.pfa") (slant-factor 0.167)) (define-font bchb0.pk (font-class type1) (font-file "bchb.pfb")) (define-font bchbi0.pk (font-class type1) (font-file "bchbi.pfb")) (define-font bchbo0.pk (font-class type1) (font-file "bchb.pfa") (slant-factor 0.167)) (define-font uaqrrc0.pk (font-class type1) (font-file "uaqrrc.pfa")) (define-font ugqb0.pk (font-class type1) (font-file "ugqb.pfa")) (define-font unmr0.pk (font-class type1) (font-file "unmr.pfa")) (define-font unmrs0.pk (font-class type1) (font-file "unmrs.pfa")) (define-font paab0.pk (font-class type1) (font-file "paab.pfa")) (define-font padr0.pk (font-class type1) (font-file "padr.pfa")) (define-font padri0.pk (font-class type1) (font-file "padri.pfa")) (define-font pads0.pk (font-class type1) (font-file "pads.pfa")) (define-font padsi0.pk (font-class type1) (font-file "padsi.pfa")) (define-font padb0.pk (font-class type1) (font-file "padb.pfa")) (define-font padbi0.pk (font-class type1) (font-file "padbi.pfa")) (define-font padrd0.pk (font-class type1) (font-file "padrd.pfa")) (define-font padrx0.pk (font-class type1) (font-file "padrx.pfa")) (define-font padrix0.pk (font-class type1) (font-file "padrix.pfa")) (define-font padsx0.pk (font-class type1) (font-file "padsx.pfa")) (define-font padbx0.pk (font-class type1) (font-file "padbx.pfa")) (define-font padbix0.pk (font-class type1) (font-file "padbix.pfa")) (define-font pbdr0.pk (font-class type1) (font-file "pbdr.pfa")) (define-font pbdri0.pk (font-class type1) (font-file "pbdri.pfa")) (define-font pbdb0.pk (font-class type1) (font-file "pbdb.pfa")) (define-font pbdbi0.pk (font-class type1) (font-file "pbdbi.pfa")) (define-font pbdp0.pk (font-class type1) (font-file "pbdp.pfa")) (define-font pburw0.pk (font-class type1) (font-file "pburw.pfa")) (define-font pc5r0.pk (font-class type1) (font-file "pc5r.pfa")) (define-font pc5ri0.pk (font-class type1) (font-file "pc5ri.pfa")) (define-font pc3r0.pk (font-class type1) (font-file "pc3r.pfa")) (define-font pc3ri0.pk (font-class type1) (font-file "pc3ri.pfa")) (define-font phvrrc0.pk (font-class type1) (font-file "phvrrc.pfa")) (define-font phvroc0.pk (font-class type1) (font-file "phvroc.pfa")) (define-font phvbrc0.pk (font-class type1) (font-file "phvbrc.pfa")) (define-font phvboc0.pk (font-class type1) (font-file "phvboc.pfa")) (define-font pubr0.pk (font-class type1) (font-file "pubr.pfa")) (define-font pubri0.pk (font-class type1) (font-file "pubri.pfa")) (define-font pubb0.pk (font-class type1) (font-file "pubb.pfa")) (define-font pubbi0.pk (font-class type1) (font-file "pubbi.pfa")) (define-font plbk0.pk (font-class type1) (font-file "plbk.pfa")) (define-font plbko0.pk (font-class type1) (font-file "plbko.pfa")) (define-font plbd0.pk (font-class type1) (font-file "plbd.pfa")) (define-font plbdo0.pk (font-class type1) (font-file "plbdo.pfa")) (define-font psvl0.pk (font-class type1) (font-file "psvl.pfa")) (define-font psvli0.pk (font-class type1) (font-file "psvli.pfa")) (define-font psvd0.pk (font-class type1) (font-file "psvd.pfa")) (define-font psvdi0.pk (font-class type1) (font-file "psvdi.pfa")) (define-font phbr0.pk (font-class type1) (font-file "phbr.pfa")) (define-font pslr0.pk (font-class type1) (font-file "pslr.pfa")) (define-font plcr0.pk (font-class type1) (font-file "plcr.pfa")) (define-font plcri0.pk (font-class type1) (font-file "plcri.pfa")) (define-font plcro0.pk (font-class type1) (font-file "plcr.pfa") (slant-factor 0.167)) (define-font plcb0.pk (font-class type1) (font-file "plcb.pfa")) (define-font plcbi0.pk (font-class type1) (font-file "plcbi.pfa")) (define-font plcrs0.pk (font-class type1) (font-file "plcrs.pfa")) (define-font plcris0.pk (font-class type1) (font-file "plcris.pfa")) (define-font plcbs0.pk (font-class type1) (font-file "plcbs.pfa")) (define-font plcbis0.pk (font-class type1) (font-file "plcbis.pfa")) (define-font plcrb0.pk (font-class type1) (font-file "plcrb.pfa")) (define-font plcrbi0.pk (font-class type1) (font-file "plcrbi.pfa")) (define-font plcbb0.pk (font-class type1) (font-file "plcbb.pfa")) (define-font plcrst0.pk (font-class type1) (font-file "plcrst.pfa")) (define-font plcrm0.pk (font-class type1) (font-file "plcrm.pfa")) (define-font plcrv0.pk (font-class type1) (font-file "plcrv.pfa")) (define-font plcry0.pk (font-class type1) (font-file "plcry.pfa")) (define-font ylhr0.pk (font-class type1) (font-file "ylhr.pfb")) (define-font ylhri0.pk (font-class type1) (font-file "ylhri.pfb")) (define-font ylhro0.pk (font-class type1) (font-file "ylhro.pfb")) (define-font ylhd0.pk (font-class type1) (font-file "ylhd.pfb")) (define-font ylhdi0.pk (font-class type1) (font-file "ylhdi.pfb")) (define-font ylcrs0.pk (font-class type1) (font-file "ylcrs.pfb")) (define-font ylcds0.pk (font-class type1) (font-file "ylcds.pfb")) (define-font ylcdis0.pk (font-class type1) (font-file "ylcdis.pfb")) (define-font ylcrst0.pk (font-class type1) (font-file "ylcrst.pfb")) (define-font ylcrost0.pk (font-class type1) (font-file "ylcrost.pfb")) (define-font ylcbst0.pk (font-class type1) (font-file "ylcbst.pfb")) (define-font ylcbost0.pk (font-class type1) (font-file "ylcbost.pfb")) (define-font ylcr40.pk (font-class type1) (font-file "ylcr4.pfb")) (define-font ylcr4i0.pk (font-class type1) (font-file "ylcr4i.pfb")) (define-font ylcd40.pk (font-class type1) (font-file "ylcd4.pfb")) (define-font ylcd4i0.pk (font-class type1) (font-file "ylcd4i.pfb")) (define-font ylcrf0.pk (font-class type1) (font-file "ylcrf.pfb")) (define-font ylcrihw0.pk (font-class type1) (font-file "ylcrihw.pfb")) (define-font ylcris0.pk (font-class type1) (font-file "ylcris.pfb")) (define-font ylcriw0.pk (font-class type1) (font-file "ylcriw.pfb")) (define-font cggr0.pk (font-class type1) (font-file "cggr.pfa")) (define-font cggri0.pk (font-class type1) (font-file "cggri.pfa")) (define-font cggb0.pk (font-class type1) (font-file "cggb.pfa")) (define-font cggbi0.pk (font-class type1) (font-file "cggbi.pfa")) (define-font cshr0.pk (font-class type1) (font-file "cshr.pfa")) (define-font cshro0.pk (font-class type1) (font-file "cshro.pfa")) (define-font cshb0.pk (font-class type1) (font-file "cshb.pfa")) (define-font cshx0.pk (font-class type1) (font-file "cshx.pfa")) (define-font rml.pk (font-class type1) (point-size 10.00) (tfm "rml") (font-file "`min")) (define-font gbm.pk (font-class type1) (point-size 10.00) (tfm "gbm") (font-file "`goth")) (define-font rmlv.pk (font-class type1) (point-size 10.00) (tfm "rmlv") (font-file "`min")) (define-font gbmv.pk (font-class type1) (point-size 10.00) (tfm "gbmv") (font-file "`goth")) ;; end of /usr/local/share/texmf/dvips/base/psfonts.map ;; dvips mapfile: /usr/local/share/texmf/dvips/config/xypic.map (define-font xydash10.pk (font-class type1) (point-size 10.00) (tfm "xydash10") (font-file "xydash10.pfb")) (define-font xyatip10.pk (font-class type1) (point-size 10.00) (tfm "xyatip10") (font-file "xyatip10.pfb")) (define-font xyatip11.pk (font-class type1) (font-file "xyatip10.pfb") (aspect-ratio 1.100)) (define-font xyatip12.pk (font-class type1) (font-file "xyatip10.pfb") (aspect-ratio 1.200)) (define-font xybtip10.pk (font-class type1) (point-size 10.00) (tfm "xybtip10") (font-file "xybtip10.pfb")) (define-font xybtip11.pk (font-class type1) (font-file "xybtip10.pfb") (aspect-ratio 1.100)) (define-font xybtip12.pk (font-class type1) (font-file "xybtip10.pfb") (aspect-ratio 1.200)) (define-font xybsql10.pk (font-class type1) (point-size 10.00) (tfm "xybsql10") (font-file "xybsql10.pfb")) (define-font xycirc10.pk (font-class type1) (point-size 10.00) (tfm "xycirc10") (font-file "xycirc10.pfb")) (define-font xycmat10.pk (font-class type1) (point-size 10.00) (tfm "xycmat10") (font-file "xycmat10.pfb")) (define-font xycmat11.pk (font-class type1) (point-size 11.00) (tfm "xycmat11") (font-file "xycmat10.pfb") (aspect-ratio 1.100)) (define-font xycmat12.pk (font-class type1) (point-size 12.00) (tfm "xycmat12") (font-file "xycmat10.pfb") (aspect-ratio 1.200)) (define-font xycmbt10.pk (font-class type1) (point-size 10.00) (tfm "xycmbt10") (font-file "xycmbt10.pfb")) (define-font xycmbt11.pk (font-class type1) (point-size 11.00) (tfm "xycmbt11") (font-file "xycmbt10.pfb") (aspect-ratio 1.100)) (define-font xycmbt12.pk (font-class type1) (point-size 12.00) (tfm "xycmbt12") (font-file "xycmbt10.pfb") (aspect-ratio 1.200)) (define-font xyeuat10.pk (font-class type1) (point-size 10.00) (tfm "xyeuat10") (font-file "xyeuat10.pfb")) (define-font xyeuat11.pk (font-class type1) (point-size 11.00) (tfm "xyeuat11") (font-file "xyeuat10.pfb") (aspect-ratio 1.100)) (define-font xyeuat12.pk (font-class type1) (point-size 12.00) (tfm "xyeuat12") (font-file "xyeuat10.pfb") (aspect-ratio 1.200)) (define-font xyeubt10.pk (font-class type1) (point-size 10.00) (tfm "xyeubt10") (font-file "xyeubt10.pfb")) (define-font xyeubt11.pk (font-class type1) (point-size 11.00) (tfm "xyeubt11") (font-file "xyeubt10.pfb") (aspect-ratio 1.100)) (define-font xyeubt12.pk (font-class type1) (point-size 12.00) (tfm "xyeubt12") (font-file "xyeubt10.pfb") (aspect-ratio 1.200)) ;; end of /usr/local/share/texmf/dvips/config/xypic.map ;; ------------------------------------------------------- ;; *** Virtual Font *** ;; Generated by vflmkvf ;; at Tue Dec 10 10:33:57 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkvf -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI -m any %f.pk (define-default vf (font-directories "TEXMF") (dpi $TeX_DPI) (filename-extensions ".vf" ".ovf") (open-style "try") (glyph-style "fill") (font-mapping ((* "%f.pk") *))) ;; ------------------------------------------------------- ;; *** PK *** ;; Generated by vflmkpk ;; at Tue Dec 10 10:33:57 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkpk -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI -g (define-default pk (font-directories "TEXMF") (dpi $TeX_DPI)) ;; ------------------------------------------------------- ;; *** TFM *** ;; Generated by vflmktfm ;; at Tue Dec 10 10:33:57 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmktfm -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI (define-default tfm (font-directories "TEXMF") (dpi $TeX_DPI) (filename-extensions ".tfm" ".ofm") (glyph-style "fill")) ;; ------------------------------------------------------- ;; *** PCF *** ;; Generated by vflmkpcf ;; at Tue Dec 10 10:33:57 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkpcf -r $TeX_DPI -d /usr/X11R6/lib/X11/fonts// -d /usr/local/X11R6/lib/X11/fonts// -d /usr/openwin/lib/X11/fonts// -d /usr/X386/lib/X11/fonts// -d /usr/XFree86/lib/X11/fonts// -d /usr/X11/lib/X11/fonts// -d /usr/local/lib/X11/fonts// -d /usr/X11R5/lib/X11/fonts// -d /usr/local/X11R5/lib/X11/fonts// -d /usr/local/share/emacs/fonts// -d /usr/local/fonts/X11// -d /usr/local/share/fonts/X11// (define-default pcf (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/emacs/fonts//" "/usr/local/fonts/X11//" "/usr/local/share/fonts/X11//") (dpi $TeX_DPI) (compression-extensions ".gz" ".Z")) ;; ------------------------------------------------------- ;; *** Japanese TeX (ASCII Co. version) *** ;; Generated by vflmkajt ;; at Tue Dec 10 10:33:57 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkajt -d TEXMF -x .pk -c pcf -jisx0212 (define-default ascii-jtex-kanji (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (implicit-font-mapping-suffix ".pk")) ; JISX0208 (define-macro min-def (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-font jtex-min (font-class pcf) (font-file "jiskan24.pcf" "jiskan16.pcf" "k14.pcf")) (define-macro goth-def (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-font jtex-goth (font-class pcf) (font-file "jiskan24.pcf" "jiskan16.pcf" "k14.pcf")) (define-macro tmin-def (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.85) (metric-adjustment-file "tjiskan24.adj")) (define-font jtex-tmin (font-class pcf) (font-file "jiskan24.pcf" "jiskan16.pcf" "k14.pcf")) (define-macro tgoth-def (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.85) (metric-adjustment-file "tjiskan24.adj")) (define-font jtex-tgoth (font-class pcf) (font-file "jiskan24.pcf" "jiskan16.pcf" "k14.pcf")) (define-font min5.pk (kanji-font-point-size 5) min-def) (define-font min6.pk (kanji-font-point-size 6) min-def) (define-font min7.pk (kanji-font-point-size 7) min-def) (define-font min8.pk (kanji-font-point-size 8) min-def) (define-font min9.pk (kanji-font-point-size 9) min-def) (define-font min10.pk (kanji-font-point-size 10) min-def) (define-font min12.pk (kanji-font-point-size 12) min-def) (define-font goth5.pk (kanji-font-point-size 5) goth-def) (define-font goth6.pk (kanji-font-point-size 6) goth-def) (define-font goth7.pk (kanji-font-point-size 7) goth-def) (define-font goth8.pk (kanji-font-point-size 8) goth-def) (define-font goth9.pk (kanji-font-point-size 9) goth-def) (define-font goth10.pk (kanji-font-point-size 10) goth-def) (define-font goth12.pk (kanji-font-point-size 12) goth-def) (define-font tmin5.pk (kanji-font-point-size 5) tmin-def) (define-font tmin6.pk (kanji-font-point-size 6) tmin-def) (define-font tmin7.pk (kanji-font-point-size 7) tmin-def) (define-font tmin8.pk (kanji-font-point-size 8) tmin-def) (define-font tmin9.pk (kanji-font-point-size 9) tmin-def) (define-font tmin10.pk (kanji-font-point-size 10) tmin-def) (define-font tmin12.pk (kanji-font-point-size 12) tmin-def) (define-font tgoth5.pk (kanji-font-point-size 5) tgoth-def) (define-font tgoth6.pk (kanji-font-point-size 6) tgoth-def) (define-font tgoth7.pk (kanji-font-point-size 7) tgoth-def) (define-font tgoth8.pk (kanji-font-point-size 8) tgoth-def) (define-font tgoth9.pk (kanji-font-point-size 9) tgoth-def) (define-font tgoth10.pk (kanji-font-point-size 10) tgoth-def) (define-font tgoth12.pk (kanji-font-point-size 12) tgoth-def) ; JISX0212 (define-macro minh-def (font-class ascii-jtex-kanji) (kanji-font jtex-minh) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-font jtex-minh (font-class pcf) (font-file "jisksp40.pcf")) (define-macro gothh-def (font-class ascii-jtex-kanji) (kanji-font jtex-gothh) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-font jtex-gothh (font-class pcf) (font-file "jisksp40.pcf")) (define-macro tminh-def (font-class ascii-jtex-kanji) (kanji-font jtex-tminh) (kanji-font-magnification 0.85) (metric-adjustment-file "tjiskan24.adj")) (define-font jtex-tminh (font-class pcf) (font-file "jisksp40.pcf")) (define-macro tgothh-def (font-class ascii-jtex-kanji) (kanji-font jtex-tgothh) (kanji-font-magnification 0.85) (metric-adjustment-file "tjiskan24.adj")) (define-font jtex-tgothh (font-class pcf) (font-file "jisksp40.pcf")) (define-font minh5.pk (kanji-font-point-size 5) minh-def) (define-font minh6.pk (kanji-font-point-size 6) minh-def) (define-font minh7.pk (kanji-font-point-size 7) minh-def) (define-font minh8.pk (kanji-font-point-size 8) minh-def) (define-font minh9.pk (kanji-font-point-size 9) minh-def) (define-font minh10.pk (kanji-font-point-size 10) minh-def) (define-font minh12.pk (kanji-font-point-size 12) minh-def) (define-font gothh5.pk (kanji-font-point-size 5) gothh-def) (define-font gothh6.pk (kanji-font-point-size 6) gothh-def) (define-font gothh7.pk (kanji-font-point-size 7) gothh-def) (define-font gothh8.pk (kanji-font-point-size 8) gothh-def) (define-font gothh9.pk (kanji-font-point-size 9) gothh-def) (define-font gothh10.pk (kanji-font-point-size 10) gothh-def) (define-font gothh12.pk (kanji-font-point-size 12) gothh-def) (define-font tminh5.pk (kanji-font-point-size 5) tminh-def) (define-font tminh6.pk (kanji-font-point-size 6) tminh-def) (define-font tminh7.pk (kanji-font-point-size 7) tminh-def) (define-font tminh8.pk (kanji-font-point-size 8) tminh-def) (define-font tminh9.pk (kanji-font-point-size 9) tminh-def) (define-font tminh10.pk (kanji-font-point-size 10) tminh-def) (define-font tminh12.pk (kanji-font-point-size 12) tminh-def) (define-font tgothh5.pk (kanji-font-point-size 5) tgothh-def) (define-font tgothh6.pk (kanji-font-point-size 6) tgothh-def) (define-font tgothh7.pk (kanji-font-point-size 7) tgothh-def) (define-font tgothh8.pk (kanji-font-point-size 8) tgothh-def) (define-font tgothh9.pk (kanji-font-point-size 9) tgothh-def) (define-font tgothh10.pk (kanji-font-point-size 10) tgothh-def) (define-font tgothh12.pk (kanji-font-point-size 12) tgothh-def) ;; end. vflib3-3.6.14.dfsg/vflibcaps/vflibcap-tex-pk-ja-pcf0000644000175000017500000002151107575242206021323 0ustar mohuramohura;; a vflibcap file generated by 'vflmkcaptex' automatically ;; at 2002ǯ 1210 1033ʬ58 JST ;; on home.kakugawa.hiroshima-u.ac.jp by kakugawa ;; ;; command line arguments given to generate this vflibcap: ;; vflmkcaptex simple-ja -i ;; ;; ------------------------------------------------------- ;; *** VFlib defaults *** ;; Generated by vflmkvfl ;; at Tue Dec 10 10:33:58 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkvfl -n cx -r 300 -p xgdvi -k -i pk -i tfm -c jisx0201_unicode.ccv -c jisx0208_unicode.ccv -c jisx0208sjis_unicode.ccv -c jisx0212_unicode.ccv (define-default VFlib (extension-hints) (implicit-font-classes pk tfm) (uncompression-programs (".Z" "gzip -cd") (".gz" "gzip -cd")) (variable-values (TeX_USE_KPATHSEA "Yes") (TeX_DPI "300") (TeX_KPATHSEA_MODE "cx") (TeX_KPATHSEA_PROGRAM "xgdvi")) (use-kpathsea $TeX_USE_KPATHSEA) (kpathsea-mode $TeX_KPATHSEA_MODE) (kpathsea-dpi $TeX_DPI) (kpathsea-program-name $TeX_KPATHSEA_PROGRAM) (code-conversion-files "jisx0201_unicode.ccv" "jisx0208_unicode.ccv" "jisx0208sjis_unicode.ccv" "jisx0212_unicode.ccv")) ;; ------------------------------------------------------- ;; *** PK *** ;; Generated by vflmkpk ;; at Tue Dec 10 10:33:58 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkpk -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI -g (define-default pk (font-directories "TEXMF") (dpi $TeX_DPI)) ;; ------------------------------------------------------- ;; *** TFM *** ;; Generated by vflmktfm ;; at Tue Dec 10 10:33:58 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmktfm -n $TeX_KPATHSEA_MODE -d TEXMF -r $TeX_DPI (define-default tfm (font-directories "TEXMF") (dpi $TeX_DPI) (filename-extensions ".tfm" ".ofm") (glyph-style "fill")) ;; ------------------------------------------------------- ;; *** PCF *** ;; Generated by vflmkpcf ;; at Tue Dec 10 10:33:58 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkpcf -r $TeX_DPI -d /usr/X11R6/lib/X11/fonts// -d /usr/local/X11R6/lib/X11/fonts// -d /usr/openwin/lib/X11/fonts// -d /usr/X386/lib/X11/fonts// -d /usr/XFree86/lib/X11/fonts// -d /usr/X11/lib/X11/fonts// -d /usr/local/lib/X11/fonts// -d /usr/X11R5/lib/X11/fonts// -d /usr/local/X11R5/lib/X11/fonts// -d /usr/local/share/emacs/fonts// -d /usr/local/fonts/X11// -d /usr/local/share/fonts/X11// (define-default pcf (font-directories "/usr/X11R6/lib/X11/fonts//" "/usr/local/X11R6/lib/X11/fonts//" "/usr/openwin/lib/X11/fonts//" "/usr/X386/lib/X11/fonts//" "/usr/XFree86/lib/X11/fonts//" "/usr/X11/lib/X11/fonts//" "/usr/local/lib/X11/fonts//" "/usr/X11R5/lib/X11/fonts//" "/usr/local/X11R5/lib/X11/fonts//" "/usr/local/share/emacs/fonts//" "/usr/local/fonts/X11//" "/usr/local/share/fonts/X11//") (dpi $TeX_DPI) (compression-extensions ".gz" ".Z")) ;; ------------------------------------------------------- ;; *** Japanese TeX (ASCII Co. version) *** ;; Generated by vflmkajt ;; at Tue Dec 10 10:33:58 2002 on home.kakugawa.hiroshima-u.ac.jp ;; Commandline: vflmkajt -d TEXMF -x .pk -c pcf -jisx0212 (define-default ascii-jtex-kanji (tfm-directories "TEXMF") (tfm-filename-extensions ".tfm") (implicit-font-mapping-suffix ".pk")) ; JISX0208 (define-macro min-def (font-class ascii-jtex-kanji) (kanji-font jtex-min) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-font jtex-min (font-class pcf) (font-file "jiskan24.pcf" "jiskan16.pcf" "k14.pcf")) (define-macro goth-def (font-class ascii-jtex-kanji) (kanji-font jtex-goth) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-font jtex-goth (font-class pcf) (font-file "jiskan24.pcf" "jiskan16.pcf" "k14.pcf")) (define-macro tmin-def (font-class ascii-jtex-kanji) (kanji-font jtex-tmin) (kanji-font-magnification 0.85) (metric-adjustment-file "tjiskan24.adj")) (define-font jtex-tmin (font-class pcf) (font-file "jiskan24.pcf" "jiskan16.pcf" "k14.pcf")) (define-macro tgoth-def (font-class ascii-jtex-kanji) (kanji-font jtex-tgoth) (kanji-font-magnification 0.85) (metric-adjustment-file "tjiskan24.adj")) (define-font jtex-tgoth (font-class pcf) (font-file "jiskan24.pcf" "jiskan16.pcf" "k14.pcf")) (define-font min5.pk (kanji-font-point-size 5) min-def) (define-font min6.pk (kanji-font-point-size 6) min-def) (define-font min7.pk (kanji-font-point-size 7) min-def) (define-font min8.pk (kanji-font-point-size 8) min-def) (define-font min9.pk (kanji-font-point-size 9) min-def) (define-font min10.pk (kanji-font-point-size 10) min-def) (define-font min12.pk (kanji-font-point-size 12) min-def) (define-font goth5.pk (kanji-font-point-size 5) goth-def) (define-font goth6.pk (kanji-font-point-size 6) goth-def) (define-font goth7.pk (kanji-font-point-size 7) goth-def) (define-font goth8.pk (kanji-font-point-size 8) goth-def) (define-font goth9.pk (kanji-font-point-size 9) goth-def) (define-font goth10.pk (kanji-font-point-size 10) goth-def) (define-font goth12.pk (kanji-font-point-size 12) goth-def) (define-font tmin5.pk (kanji-font-point-size 5) tmin-def) (define-font tmin6.pk (kanji-font-point-size 6) tmin-def) (define-font tmin7.pk (kanji-font-point-size 7) tmin-def) (define-font tmin8.pk (kanji-font-point-size 8) tmin-def) (define-font tmin9.pk (kanji-font-point-size 9) tmin-def) (define-font tmin10.pk (kanji-font-point-size 10) tmin-def) (define-font tmin12.pk (kanji-font-point-size 12) tmin-def) (define-font tgoth5.pk (kanji-font-point-size 5) tgoth-def) (define-font tgoth6.pk (kanji-font-point-size 6) tgoth-def) (define-font tgoth7.pk (kanji-font-point-size 7) tgoth-def) (define-font tgoth8.pk (kanji-font-point-size 8) tgoth-def) (define-font tgoth9.pk (kanji-font-point-size 9) tgoth-def) (define-font tgoth10.pk (kanji-font-point-size 10) tgoth-def) (define-font tgoth12.pk (kanji-font-point-size 12) tgoth-def) ; JISX0212 (define-macro minh-def (font-class ascii-jtex-kanji) (kanji-font jtex-minh) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-font jtex-minh (font-class pcf) (font-file "jisksp40.pcf")) (define-macro gothh-def (font-class ascii-jtex-kanji) (kanji-font jtex-gothh) (kanji-font-magnification 0.85) (metric-adjustment-file "jiskan24.adj")) (define-font jtex-gothh (font-class pcf) (font-file "jisksp40.pcf")) (define-macro tminh-def (font-class ascii-jtex-kanji) (kanji-font jtex-tminh) (kanji-font-magnification 0.85) (metric-adjustment-file "tjiskan24.adj")) (define-font jtex-tminh (font-class pcf) (font-file "jisksp40.pcf")) (define-macro tgothh-def (font-class ascii-jtex-kanji) (kanji-font jtex-tgothh) (kanji-font-magnification 0.85) (metric-adjustment-file "tjiskan24.adj")) (define-font jtex-tgothh (font-class pcf) (font-file "jisksp40.pcf")) (define-font minh5.pk (kanji-font-point-size 5) minh-def) (define-font minh6.pk (kanji-font-point-size 6) minh-def) (define-font minh7.pk (kanji-font-point-size 7) minh-def) (define-font minh8.pk (kanji-font-point-size 8) minh-def) (define-font minh9.pk (kanji-font-point-size 9) minh-def) (define-font minh10.pk (kanji-font-point-size 10) minh-def) (define-font minh12.pk (kanji-font-point-size 12) minh-def) (define-font gothh5.pk (kanji-font-point-size 5) gothh-def) (define-font gothh6.pk (kanji-font-point-size 6) gothh-def) (define-font gothh7.pk (kanji-font-point-size 7) gothh-def) (define-font gothh8.pk (kanji-font-point-size 8) gothh-def) (define-font gothh9.pk (kanji-font-point-size 9) gothh-def) (define-font gothh10.pk (kanji-font-point-size 10) gothh-def) (define-font gothh12.pk (kanji-font-point-size 12) gothh-def) (define-font tminh5.pk (kanji-font-point-size 5) tminh-def) (define-font tminh6.pk (kanji-font-point-size 6) tminh-def) (define-font tminh7.pk (kanji-font-point-size 7) tminh-def) (define-font tminh8.pk (kanji-font-point-size 8) tminh-def) (define-font tminh9.pk (kanji-font-point-size 9) tminh-def) (define-font tminh10.pk (kanji-font-point-size 10) tminh-def) (define-font tminh12.pk (kanji-font-point-size 12) tminh-def) (define-font tgothh5.pk (kanji-font-point-size 5) tgothh-def) (define-font tgothh6.pk (kanji-font-point-size 6) tgothh-def) (define-font tgothh7.pk (kanji-font-point-size 7) tgothh-def) (define-font tgothh8.pk (kanji-font-point-size 8) tgothh-def) (define-font tgothh9.pk (kanji-font-point-size 9) tgothh-def) (define-font tgothh10.pk (kanji-font-point-size 10) tgothh-def) (define-font tgothh12.pk (kanji-font-point-size 12) tgothh-def) ;; end. vflib3-3.6.14.dfsg/aclocal.m40000644000175000017500000002344506750002426015135 0ustar mohuramohuradnl local autoconf file for TypeHack dnl The following creates the needed soft links. It simply traverses dnl the whole directory tree and links the unversioned directory to dnl the versioned. The structure of versioned directories must be dnl -; can only contain numbers and dots. dnl dnl example: VFlib-src -> VFlib-src-3.1.2 AC_DEFUN(AC_STARTUP, [ changequote(<, >)dnl working_dir=`pwd` for curr_dir in `find $working_dir -type d -print`; do new_dir=`echo $curr_dir | sed -e 's|^\(.*\)-[0-9.][0-9.]*$|\1|'` if test $curr_dir != $new_dir; then r_curr_dir=`echo $curr_dir | sed -e "s|$working_dir/||"` r_new_dir=`echo $new_dir | sed -e "s|$working_dir/||"` echo Making a symbolic link: $r_new_dir '->' $r_curr_dir s_curr_dir=`echo $r_curr_dir | sed -e 's|.*/\([^/]*\)$|\1|'` s_new_dir=`echo $r_new_dir | sed -e 's|.*/\([^/]*\)$|\1|'` rm -f $new_dir # echo "(cd $curr_dir/..; ln -s $s_curr_dir $s_new_dir)" (cd $curr_dir/..; ln -s $s_curr_dir $s_new_dir) fi done dnl AC_PROVIDE([AC_STARTUP]) changequote([, ])dnl ]) dnl AC_ARG_DISABLE(PACKAGE, HELP-STRING, ACTION-IF-DISABLED dn [, ACTION-IF-NOT-DISABLED]) AC_DEFUN(AC_ARG_DISABLE, [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl ac_help="$ac_help [$2]" AC_DIVERT_POP()dnl [#] Check whether --enable-[$1] or --disable-[$1] was given. if test x-"[${enable_]patsubst([$1], -, _)}" = x-no ; then enableval="[${enable_]patsubst([$1], -, _)}" ifelse([$3], , :, [$3]) ifelse([$4], , , [else $4 ])dnl fi ]) AC_REQUIRE([AC_INIT_BINSH]) dnl ------------------ ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*- ## Copyright (C) 1996-1998 Free Software Foundation, Inc. ## Gordon Matzigkeit , 1996 ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ## ## As a special exception to the GNU General Public License, if you ## distribute this file as part of a program that contains a ## configuration script generated by Autoconf, you may include it under ## the same distribution terms that you use for the rest of that program. # serial 24 AM_PROG_LIBTOOL AC_DEFUN(AM_PROG_LIBTOOL, [AC_REQUIRE([AM_ENABLE_SHARED])dnl AC_REQUIRE([AM_ENABLE_STATIC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AM_PROG_LD])dnl AC_REQUIRE([AM_PROG_NM])dnl AC_REQUIRE([AC_PROG_LN_S])dnl dnl # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl # Check for any special flags to pass to ltconfig. libtool_flags= test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" test "$silent" = yes && libtool_flags="$libtool_flags --silent" test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" # Some flags need to be propagated to the compiler or linker for good # libtool support. case "$host" in *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case "`/usr/bin/file conftest.o`" in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. CFLAGS="$CFLAGS -belf" ;; esac # Actually configure libtool. ac_aux_dir is where install-sh is found. CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \ ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ || AC_MSG_ERROR([libtool configure failed]) ]) # AM_ENABLE_SHARED - implement the --enable-shared flag # Usage: AM_ENABLE_SHARED[(DEFAULT)] # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to # `yes'. AC_DEFUN(AM_ENABLE_SHARED, [define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE(shared, changequote(<<, >>)dnl << --enable-shared build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT] changequote([, ])dnl [ --enable-shared=PKGS only build shared libraries if the current package appears as an element in the PKGS list], [p=${PACKAGE-default} case "$enableval" in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$ac_save_ifs" ;; esac], enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl ]) # AM_DISABLE_SHARED - set the default shared flag to --disable-shared AC_DEFUN(AM_DISABLE_SHARED, [AM_ENABLE_SHARED(no)]) # AM_DISABLE_STATIC - set the default static flag to --disable-static AC_DEFUN(AM_DISABLE_STATIC, [AM_ENABLE_STATIC(no)]) # AM_ENABLE_STATIC - implement the --enable-static flag # Usage: AM_ENABLE_STATIC[(DEFAULT)] # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to # `yes'. AC_DEFUN(AM_ENABLE_STATIC, [define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE(static, changequote(<<, >>)dnl << --enable-static build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT] changequote([, ])dnl [ --enable-static=PKGS only build shared libraries if the current package appears as an element in the PKGS list], [p=${PACKAGE-default} case "$enableval" in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$ac_save_ifs" ;; esac], enable_static=AM_ENABLE_STATIC_DEFAULT)dnl ]) # AM_PROG_LD - find the path to the GNU or non-GNU linker AC_DEFUN(AM_PROG_LD, [AC_ARG_WITH(gnu-ld, [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) AC_REQUIRE([AC_PROG_CC]) ac_prog=ld if test "$ac_cv_prog_gcc" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. changequote(, )dnl /* | [A-Za-z]:\\*) changequote([, ])dnl test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(ac_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog"; then ac_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" else ac_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$ac_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_SUBST(LD) AM_PROG_LD_GNU ]) AC_DEFUN(AM_PROG_LD_GNU, [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then ac_cv_prog_gnu_ld=yes else ac_cv_prog_gnu_ld=no fi]) ]) # AM_PROG_NM - find the path to a BSD-compatible name lister AC_DEFUN(AM_PROG_NM, [AC_MSG_CHECKING([for BSD-compatible nm]) AC_CACHE_VAL(ac_cv_path_NM, [case "$NM" in changequote(, )dnl /* | [A-Za-z]:\\*) changequote([, ])dnl ac_cv_path_NM="$NM" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/nm; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ac_cv_path_NM="$ac_dir/nm -B" elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ac_cv_path_NM="$ac_dir/nm -p" else ac_cv_path_NM="$ac_dir/nm" fi break fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm ;; esac]) NM="$ac_cv_path_NM" AC_MSG_RESULT([$NM]) AC_SUBST(NM) ]) vflib3-3.6.14.dfsg/CHANGES0000644000175000017500000003016210400434700014251 0ustar mohuramohura*** CHANGES OF VFlib *** VFlib 3.6.14 25 Feb 2006 * Enhanced vflmkcaptex for searching dvips config files. * Upgrade to T1Lib 5.1. VFlib 3.6.13 1 Nov 2001 * Improved vflimkcaptex to read mode.cf to obtain device resolution. * Bug fix of vflimkcaptex. * Fixed memory leaks as possible. * Upgrade to T1Lib 1.3. * Fixed memory allocaion bug in texfonts.c. VFlib 3.6.10 * Added vflmkcaptex to generate vflibcap file for TeX DVI ware. * Improvement of type1 driver. * Improvement of virtual font driver. * Tested with T1Lib 1.1.1 * Tested on FreeBSD 4.3 VFlib 3.6.5 27 December 1999 * Bug fix of src/ccv.c and src/defaults.c. VFlib 3.6.4 9 December 1999 * Tested with T1Lib 1.0.0 for Type1 font driver. * Added VF_GetVersion(). * Added vflib-version command in vflserver. * Added eKanji font driver. (See http://www.zinbun.kyoto-u.ac.jp/~ekanji/ for details of eKanji fonts.) * Added pLaTeX2e macro packages for eKanji fonts. (See ascii-jtex/eKanji/) * Added mojikyo-mapper font driver to access mojikyo font files by 'mojikyo code'. VFlib 3.6.3 28 November 1999 * Tested with FreeBSD, Linux, Solaris 2.5.1/SPARC. Improved portability. * Fixed wrong version numbering and installation directory of runtime files. VFlib 3.6.2 19 November 1999 * Changed RPM spec file, configure.in, and some scripts for Linux. * System dependent code is improved for Linux. VFlib 3.6.1 16 November 1999 * Changed drv_jtex.c to return empty bitmap when a character of subfont does not exist. VFlib 3.6.0 28 October 1999 * Added `VFlib3-config' script to obtain installed VFlib 3 information, such as required external libs (FreeType/T1Lib/kpathsea), version number, etc. * Added SPEC file for Linux RPM packaging. * A script file 'run-conf' is renamed to 'configure-site', for typical configuration. * Added 'make-missing-glyph' capablity for PK and GF font class. If a glyph file is missing and source file for the font in metafont code exists, run the matafont program to generate glyph on the fly. * Now OFM (Omega font metric) file level 0 is supported. OFM files are handled by tfm font class and they can be used exactly the same as traditional TFM files in VFlib. * Type 1 driver with T1Lib 0.9.2 seems to work fine now. Changed default vflibcap files to check and use Type 1 fonts, if available, before checking PK and GF fonts. * Improved PK, GF, and VF font class not to open a corresponding TFM file if unnecessary. * Added more CCV files. Added multiple encoding names in CCV files. * Added more ADJ files for adjusting metrics of Japanese Kanji characters. * Added JIS X 0212 (Supplementary Kanji Character Set) support for pLaTeX2e, a localized latex2e for Japanese text. See `ascii-jtex/HojoKanji/00README'. * Support for Mojikyo fonts. (Mojikyo font is a set of more than 90 thousand Kanji characters.) See ascii-jtex/Mojikyo/. See also http://www.mojikyo.gr.jp/ for downloading fonts. * Added an ad-hoc solution in TrueType font driver to handle JIS X 0212 fonts with non-standard encoding such that row 47 is empty and followed rows are shifted by one. (That is, Kanjis in row 48 of JIS X 0212 appeard in row 49 in such fonts.) Added "jisx0212-row47-empty-sjis" capability to enable this feature. See the manual. * Upgrade to GNU Libtool 1.3.3 and GNU Autoconf 2.13. * Bug fix of `vfl2bdf'. VFlib 3.5.6 16 Feb 1999 * IMPORTANT: Now configure script requires explicit command line options to use Kpathsea, FreeType, and T1Lib. (See also 'run-conf' script.) * Added to change runtime directory by environment variables. VFLIB_RUNTIME_DIRECTORY for the root of runtime directory, VFLIB_CCV_DIRECTORY for ccv file directory, and VFLIB_VFLIBCAP_DIRECTORY for vflibcap directory. * Improved the Type 1 font driver not to open the same font more than once, i.e., VFlib fonts that refre to the same type 1 font share the same t1lib font ID to obtain glyphs. * Added new feature to read /usr/local/share/VFlib/site/ directory for run time files (e.g., vflibcap, *.ccv, *.adj) before /usr/local/share/VFlib/3.x.y/ directory. In the "site" directory /usr/local/share/VFlib/site/, no files are installed by VFlib; It is a place to put site-created files and they are not overwritten by VFlib installation. (No directory hierarchy in site directory, different from /usr/local/share/VFlib/3.x.y/ directory; all kind of files are placed just under the site directory.) * Added encoding conversions for WanSung, Ku-Ten, and EUC. See "src/ccv.c". VFlib 3.5.5 24 Dec 1998 * New feature: font file searcing module uses a font file hint database ("VFlib.fdb") called FDB file for fast font file search (in case it exists in a font file directory). * Added vflmkfdb program to make a FDB file. * TrueType fonr driver opens/closes dynamically font files to limit the number of simultaneously opened files. * TrueType font driver ("ttf" font class) supports VF_GetFontBoundingBox1() and VF_GetFontBoundingBox2() operations. * TrueType font driver ("ttf" font class) are controled by "VFLIB_TTF_DEBUG" environment variable to print debug information, in addition to capability value in vflibcap file. * Sample program "hyakubm" and "hyakux11" (in utils/hykau/ directory) support mode 1 and 2 for opening font. * Fixed a bug in Type 1 driver to obtain font metrics in mode 1 fonts. Now TeX DVI previewers of TeX-Guy package can display Computer Modern fonts in Type 1 formats. VFlib 3.5.4 4 Dec 1998 * Some installation problems are fixed. VFlib 3.5.3 29 Nov 1998 * IMPORTANT: Changed shared library versioning scheme. * Changed source codes to be compiled by gcc with '-pedantic -ansi' options. * Improved compiling utitlity programs using X Window. See X11/ directory. VFlib 3.5.2 26 Nov 1998 * Added image.c for image file output. (PBM ASCII, PGM Raw, PGM ASCII, EPS are supported for now.) * Added VF_GetFontBoundingBox1() and VF_GetFontBoundingBox2() to obtain font bounding box information of an opened font. * Added FONTBBX1 and FONTBBX2 command in vflserver. * Added --enable-static, --disable-static, --enable-shared, --enable-shared options for configure. By default, static library is not created if the system supports shared libraries. (Thanks to Werner Lemberg.) * Virtual Font driver is improved. (Thanks to Werner Lemberg.) * Added debug flag control for BDF, PCF, and HBF font drivers by an environment variable VFLIB_BDF_DEBUG, VFLIB_PCF_DEBUG, and VFLIB_HBF_DEBUG. (Debug flags can be given in vflibcap too.) See source code (drv_bdf.c and bdf.c) for detail. VFlib 3.5.1 7 Sep 1998 * Improved ascii-jtex-kanji driver. I supports "char-all" directive in metric adjustment file. * Added several metric adjustment files for the ascii-jtex-kanji driver. VFlib 3.5.0 1 Sep 1998 * Changed distribution style. VFlib 3 is now distributed without FreeType, T1Lib, Web2c sources. * Added VF_RotatedBitmap() and VF_ReflectedBitmap(). * Added --with-XXX-includedir=DIR, --with-XXX-libdir=DIR, and --with-XXX=LIB options for configure, where XXX is freetype, t1lib, and kpathsea. * Support of vertical writing in ascii-jtex font driver for pTeX. It supports glyph rotation to yield glyphs for vertical writing from fonts ofr horizontal writing. (Unfortunately, rotation is not supported in VF_GetOutline2() in ascii-jtex driver.) * Japanese comic font driver supports subfont sepecification for each character class: symbol, alpha-numeric, Hirakana, Katakana, Greek, Cyrillic, Keisen, Kanji. VFlib 3.4.2 27 July 1998 * Added --disable-XXX (XXX represents a font driver name) option for configure script to exclude unnecessary font drivers. * Added Type1 font driver using T1Llib. It lacks support for outline extracting since T1Lib does not have such feature. Currently, outlines are created from glyphs. * Added the TeX font mapping driver (driver name: "TeX"). * Added font mapping mechanism in the virtual font (vf) driver. The vf font driver is documented. * Implemented "vfldrvs" which prints a list of installed font drivers. VFlib 3.4.1 25 June 1998 * Adopted FreeType 1.1 * Fixed minor bugs in Makefiles. * Added 'ctext2pbm' program in utils directory. * Added 'vflpp' program. (A vflibcap prettyprinter.) * Implemented 'try' font driver. * Multiple font filenames can be given in the 'font-file' capability for fonts of BDF, PCF, and HBF font classes. * Added 'font-directories' capability in font definitions for fonts of BDF, PCF, and HBF font classes. * Added VF_BITMAPLIST data type and several functions for the data type. * Parameter values in vflibcap by environment variable can be any lisp-syntax object. VFlib 3.4.0 25 May 1998 * Upgraded libtool to version 1.2 * Upgraded kpathsea to version 3.2 in web2c-7.2. (TrueType fonts under the texmf directory can be searched by kpathsea.) * Adopted lisp-like syntax for vflibcap. * Adopted FreeType version 1.0 for TrueType font driver. * API is changed. (Point size is no longer given for VF_GetBitmap.) * Ducument is written in TeXinfo format. (See doc/ directory) * A paper on VFlib 3.4 is added. (See doc/Paper directory) VFlib 3.3.0 20 Nov 1997 * Deleted global font directory list ('font-directories' capability in 'VFlib-Defails' entry in vflibcap file). * Adopted libtool 1.0. * Improved installer. * Changed vflibcap file searching. Now we can omit runtime directory name. See description for VF_Init() in doc/api.txt for details. VFlib 3.2.99 20 Oct 1997 * Changed VFlib API --- Several parameters (e.g., maginication, point size) are given at font open. * Updated documents for the new API. VFlib 3.2.6 01 Aug 1997 * A common vflibcap capablility "character-set" for all font classes are deleted. * Added dynamic loading of code conversion tables. In vflibcap file, a capability "code_conversion_files" is added for an entry "VFlibcap-Defaults" to specify a list of file names of code conversion table files. Code conversion table files are stored in a directory, for example, /usr/local/lib/VFlib/3.2/ccv/. * Code conversion routine in TrueType font driver is chaned to use dynamic loaded code conversion tables. * Changed capability names of TrueType font class: * "encoding" is changed to "platform-encoding". (A symbolic name of encoding in TrueType font terminology.) * "encoding" is added. (An encoding name such as "unicode", "kuten", "sjis", etc.) VFlib 3.2.4 10 July 1997 * Added virtual font (VF) support. (experimental) * Added a feature to override parameter values in vflibcap by environment variables (Name of environment variables are "VFLIBCAP_PARAM_" followed by parameter names.) * Added VF_ClearBitmap() and VF_FillBitmap(). VFlib 3.2.3 28 May 1997 * Added recursive font file searching. (e.g., /FOO/BAR//) VFlib 3.2.2 20 May 1997 * Compilation and linking by 'klibtool'. VFlib 3.2.1 12 May 1997 * Documents are translated in English. * 'list' and 'alist' data classes are internally introduced. * Name of 'vfx11' is changed as 'vflx11'. * A BDF font generator 'vfl2bdf' is implemented. VFlib 3.2 9 Apr 1997 * Capability names can be any length. * kpathsea 3.0 is adopted to search TeX fonts. * A path name of vflibcap file should not be absolute path; a relative path name is now allowed. * Introduced parameterized vflibcap feature. * Added "pg" capability in texfont driver for an arguent ('program name') of initialization function of kpathsea library. * Bugs in HBF font driver are fixed. VFlib 3.1.5 20 Mar 1997 * Added a feature to specify symbolic names for 'pl' and 'en' capabilities in vflibcap for TrueType font class. VFlib 3.1.4 7 Mar 1997 'CHANGES' starts from this version. vflib3-3.6.14.dfsg/COPYING0000644000175000017500000004307606535650677014354 0ustar mohuramohura GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. vflib3-3.6.14.dfsg/configure.in0000644000175000017500000003555110225350016015600 0ustar mohuramohuradnl Top-level configure for VFlib verison 3 package dnl by H.Kakugawa (h.kakugawa@computer.org) AC_INIT(src/VFsys.h) AC_REQUIRE([AC_STARTUP]) dnl configure libtool AM_DISABLE_STATIC AM_PROG_LIBTOOL dnl VFlib version vflib_version='3.6.14' AC_SUBST(vflib_version) dnl Libtool versioning scheme CUR=9 REV=6 AGE=4 AC_SUBST(version_info) version_info=$CUR:$REV:$AGE dnl From GNU Libtoool 1.2 manual: dnl 1. Start with version information of `0:0:0' for each libtool library. dnl dnl 2. Update the version information only immediately before a public dnl release of your software. More frequent updates are unnecessary, dnl and only guarantee that the current interface number gets larger dnl faster. dnl dnl 3. If the library source code has changed at all since the last dnl update, then increment REVISION (`C:R:A' becomes `C:R+1:A'). dnl dnl 4. If any interfaces have been added, removed, or changed since the dnl last update, increment CURRENT, and set REVISION to 0. dnl dnl 5. If any interfaces have been added since the last public release, dnl then increment AGE. dnl dnl 6. If any interfaces have been removed since the last public release, dnl then set AGE to 0. AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S if test "x$CC" = xgcc; then XX_CFLAGS="-g -Wall -pedantic -ansi" else XX_CFLAGS= fi AC_SUBST(XX_CFLAGS) AC_HEADER_STDC AC_CHECK_HEADERS(unistd.h) AC_CHECK_HEADERS(malloc.h) AC_CHECK_HEADERS(fcntl.h) AC_CHECK_HEADERS(strings.h) AC_CHECK_HEADERS(string.h) AC_CHECK_HEADERS(dirent.h) AC_CHECK_HEADERS(stdarg.h) AC_CHECK_HEADERS(sys/stat.h) AC_FUNC_MEMCMP AC_CHECK_FUNCS(popen) AC_CHECK_FUNCS(opendir) AC_CHECK_FUNCS(access) AC_CHECK_FUNCS(nint) AC_CHECK_LIB(nsl, main, LIBS="$LIBS -lnsl") AC_CHECK_LIB(socket, main, LIBS="$LIBS -lsocket") AC_CHECK_LIB(m, main, LIBS="$LIBS -lm") AC_SUBST(default_vflibcap) AC_SUBST(runtimesitedir) AC_SUBST(runtimedir) AC_SUBST(subdir_ccv) AC_SUBST(subdir_t1enc) AC_SUBST(subdir_ascii_jtex) AC_SUBST(texmf_root) default_vflibcap=${datadir}/VFlib/${vflib_version}/vflibcap runtimesitedir=${datadir}/VFlib/site runtimedir=${datadir}/VFlib/${vflib_version} subdir_ccv=ccv subdir_t1enc=t1lib subdir_ascii_jtex=ascii-jtex AC_SUBST(bdf_objs) bdf_objs="drv_bdf.lo" AC_ARG_DISABLE( bdf, [ --disable-bdf Build VFlib without BDF font driver], bdf_objs="", AC_DEFINE(WITH_BDF)) if test -n "$bdf_objs" ; then echo "Enabled the BDF font driver"; else echo "Disabled the BDF font driver"; fi AC_SUBST(pcf_objs) pcf_objs="drv_pcf.lo" AC_ARG_DISABLE( pcf, [ --disable-pcf Build VFlib without PCF font driver], pcf_objs="", AC_DEFINE(WITH_PCF)) if test -n "$pcf_objs" ; then echo "Enabled the PCF font driver"; else echo "Disabled the PCF font driver"; fi AC_SUBST(hbf_objs) hbf_objs="drv_hbf.lo" AC_ARG_DISABLE( hbf, [ --disable-hbf Build VFlib without HBF font driver], hbf_objs="", AC_DEFINE(WITH_HBF)) if test -n "$hbf_objs" ; then echo "Enabled the HBF font driver"; else echo "Disabled the HBF font driver"; fi AC_SUBST(freetype_includedir) AC_SUBST(freetype_libdir) AC_SUBST(freetype_lib) AC_SUBST(ttf_objs) AC_ARG_WITH( freetype, [ --with-freetype[=LIB] Link FreeType library LIB [LIB=ttf]], if test "${withval}" = yes; then withval="ttf"; fi; if test "${withval}" = no; then withval=""; fi; if test "${withval}" = ""; then withval="ttf"; fi; if test "${withval}" != ""; then freetype_lib=-l$withval; ttf_objs="drv_ttf.lo"; AC_DEFINE(WITH_TRUETYPE) fi) AC_ARG_WITH( freetype-includedir, [ --with-freetype-includedir=DIR FreeType include files are in DIR], if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then freetype_includedir="" else freetype_includedir=-I${withval}; fi) AC_ARG_WITH( freetype-libdir, [ --with-freetype-libdir=DIR FreeType library files are in DIR], if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then freetype_libdir="" else freetype_libdir=-L${withval}; fi) if test -n "$freetype_lib" ; then echo "Enabled the TrueType font driver"; OLD_CPPFLAGS=${CPPFLAGS}; OLD_LIBS=${LIBS} CPPFLAGS="${freetype_includedir} ${CPPFLAGS}" LIBS="${freetype_libdir} ${freetype_lib} ${LIBS}"; AC_TRY_CPP([#include ], , AC_MSG_ERROR(Header file is not found: ${freetype_includedir})) dnl AC_TRY_LINK([#include ], dnl [TT_Engine fte; TT_Init_FreeType(&fte)], , dnl AC_MSG_ERROR(Library file is not found: ${freetype_lib})) CPPFLAGS=${OLD_CPPFLAGS}; LIBS=${OLD_LIBS} else echo "Disabled the TrueType font driver"; freetype_includedir=""; freetype_libdir=""; fi AC_SUBST(t1lib_includedir) AC_SUBST(t1lib_libdir) AC_SUBST(t1lib_lib) AC_SUBST(type1_objs) AC_ARG_WITH( t1lib, [ --with-t1lib[=LIB] Link T1Lib library LIB [LIB=t1]], if test "${withval}" = yes; then withval="t1"; fi; if test "${withval}" = no; then withval=""; fi; if test "${withval}" = ""; then withval="t1"; fi; if test "${withval}" != ""; then t1lib_lib=-l$withval; type1_objs="drv_t1.lo"; AC_DEFINE(WITH_TYPE1) fi) AC_ARG_WITH( t1lib-includedir, [ --with-t1lib-includedir=DIR T1Lib include files are in DIR], if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then t1lib_includedir="" else t1lib_includedir=-I${withval}; fi) AC_ARG_WITH( t1lib-libdir, [ --with-t1lib-libdir=DIR T1Lib library files are in DIR], if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then t1lib_libdir="" else t1lib_libdir=-L${withval}; fi) if test -n "$t1lib_lib" ; then echo "Enabled the Type1 font driver"; OLD_CPPFLAGS=${CPPFLAGS}; OLD_LIBS=${LIBS} CPPFLAGS="${t1lib_includedir} ${CPPFLAGS}" LIBS="${t1lib_libdir} ${t1lib_lib} ${LIBS}"; AC_TRY_CPP([#include ], , AC_MSG_ERROR(Header file is not found: ${t1lib_includedir})) AC_TRY_LINK([#include ], [T1_SetBitmapPad(8); T1_SetLogLevel(0)], , AC_MSG_ERROR(Library file is not found: ${t1lib_lib})) CPPFLAGS=${OLD_CPPFLAGS}; LIBS=${OLD_LIBS} else echo "Disabled the Type1 font driver"; t1lib_includedir=""; t1lib_libdir=""; fi AC_SUBST(zeit_objs) zeit_objs="drv_zeit.lo" AC_ARG_DISABLE( zeit, [ --disable-zeit Build VFlib without ZEIT font driver], zeit_objs="", AC_DEFINE(WITH_ZEIT)) if test -n "$zeit_objs" ; then echo "Enabled the Syotai Kurabu (ZEIT) font driver"; else echo "Disabled the Syotai Kurabu (ZEIT) font driver"; fi AC_SUBST(jg_objs) jg_objs="drv_jg.lo" AC_ARG_DISABLE( jg, [ --disable-jg Build VFlib without JG font driver], jg_objs="", AC_DEFINE(WITH_JG)) if test -n "$jg_objs" ; then echo "Enabled the JG font driver"; else echo "Disabled the JG font driver"; fi AC_SUBST(ekan_objs) ekan_objs="drv_ekan.lo" AC_ARG_DISABLE( ekanji, [ --disable-ekanji Build VFlib without EKanji font driver], ekan_objs="", AC_DEFINE(WITH_EKANJI)) if test -n "$ekan_objs" ; then echo "Enabled the EKanji font driver"; else echo "Disabled the EKanji font driver"; fi AC_SUBST(gf_objs) gf_objs="drv_gf.lo" AC_ARG_DISABLE( gf, [ --disable-gf Build VFlib without TeX GF font driver], gf_objs="", AC_DEFINE(WITH_GF)) if test -n "$gf_objs" ; then echo "Enabled the GF font driver"; else echo "Disabled the GF font driver"; fi AC_SUBST(pk_objs) pk_objs="drv_pk.lo" AC_ARG_DISABLE( pk, [ --disable-pk Build VFlib without TeX PK font driver], pk_objs="", AC_DEFINE(WITH_PK)) if test -n "$pk_objs" ; then echo "Enabled the PK font driver"; else echo "Disabled the PK font driver"; fi AC_SUBST(tfm_objs) tfm_objs="drv_tfm.lo" AC_ARG_DISABLE( tfm, [ --disable-tfm Build VFlib without TeX TFM font driver], tfm_objs="", AC_DEFINE(WITH_TFM)) if test -n "$tfm_objs" ; then echo "Enabled the TFM font driver"; else echo "Disabled the TFM font driver"; fi AC_SUBST(vf_objs) vf_objs="drv_vf.lo" AC_ARG_DISABLE( vf, [ --disable-vf Build VFlib without TeX VF font driver], vf_objs="", AC_DEFINE(WITH_VF)) if test -n "$vf_objs" ; then echo "Enabled the VF font driver"; else echo "Disabled the VF font driver"; fi AC_SUBST(jtex_objs) jtex_objs="drv_jtex.lo" AC_ARG_DISABLE( jtex, [ --disable-jtex Build VFlib without Japanese TeX Kanji font driver], jtex_objs="", AC_DEFINE(WITH_JTEX)) if test -n "$jtex_objs" ; then echo "Enabled the ASCII Japanese TeX Kanji font driver"; else echo "Disabled the ASCII Japanese TeX Kanji font driver"; fi AC_SUBST(texfonts_objs) texfonts_objs="texfonts.lo tfm.lo jfmbi.lo" AC_ARG_DISABLE( texfonts, [ --disable-tex-fonts Build VFlib without any TeX fonts font drivers], gf_objs="";pk_objs="";tfm_objs="";vf_objs="";jtex_objs="";texfonts_objs="", AC_DEFINE(WITH_TEXFONTS)) if test ! -n "$texfonts_objs" ; then echo "Disabled all TeX-related font drivers"; fi AC_SUBST(comic_objs) comic_objs="drv_comic.lo" AC_ARG_DISABLE( comic, [ --disable-comic Build VFlib without Japanese Comic font driver], comic_objs="", AC_DEFINE(WITH_COMIC)) if test -n "$comic_objs" ; then echo "Enabled the Japanese Comic font driver"; else echo "Disabled the Japanese Comic font driver"; fi AC_SUBST(try_objs) try_objs="drv_try.lo" AC_ARG_DISABLE( try, [ --disable-try Build VFlib without Try font driver], try_objs="", AC_DEFINE(WITH_TRY)) if test -n "$try_objs" ; then echo "Enabled the Try font driver"; else echo "Disabled the Try font driver"; fi AC_SUBST(mojikmap_objs) mojikmap_objs="drv_mojikmap.lo" AC_ARG_DISABLE( mojikmap, [ --disable-mojikmap Build VFlib without Mojikyo mapping font driver], mojikmap_objs="", AC_DEFINE(WITH_MOJIKMAP)) if test -n "$mojikmap_objs" ; then echo "Enabled the Mojikyo mapping font driver"; else echo "Disabled the Mojikyo mapping font driver"; fi AC_SUBST(kpathsea_includedir) AC_SUBST(kpathsea_libdir) AC_SUBST(kpathsea_lib) AC_ARG_WITH( kpathsea, [ --with-kpathsea[=LIB] Build VFlib with kpathsea library], if test "${withval}" = yes; then withval="kpathsea"; fi; if test "${withval}" = no; then withval=""; fi; if test "${withval}" = ""; then withval="kpathsea"; fi; if test "${withval}" != ""; then kpathsea_lib=-l$withval; AC_DEFINE(WITH_KPATHSEA) fi) AC_ARG_WITH( kpathsea-includedir, [ --with-kpathsea-includedir=DIR Kpathsea include files are in DIR], if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then kpathsea_includedir="" else kpathsea_includedir="-I${withval} -I${withval}/kpathsea"; fi) AC_ARG_WITH( kpathsea-libdir, [ --with-kpathsea-libdir=DIR Kpathsea library files are in DIR], if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then kpathsea_libdir="" else kpathsea_libdir=-L${withval}; fi) if test -n "$kpathsea_lib" ; then echo "Enabled the kpathsea library for font search"; OLD_CPPFLAGS=${CPPFLAGS}; OLD_LIBS=${LIBS}; CPPFLAGS="${kpathsea_includedir} ${CPPFLAGS}" LIBS="${kpathsea_libdir} ${kpathsea_lib} ${LIBS}"; AC_TRY_CPP([#include ], , AC_MSG_ERROR(Header file is not found: ${kpathsea_includedir})) AC_TRY_LINK([#include ], [kpse_init_prog("/usr/local/bin/xldvi", 300, "cx", NULL)], , AC_MSG_ERROR(Library file is not found: ${kpathsea_lib})) CPPFLAGS=${OLD_CPPFLAGS}; LIBS=${OLD_LIBS} else echo "Disabled the kpathsea library for font search"; kpathsea_includedir=""; kpathsea_libdir=""; fi KPSEWHICH="kpsewhich" TEXMF_CHECK="tex.fmt:fmt plain.fmt:fmt latex.fmt:fmt \ tex.pool:texpool plain.pool:texpool latex.fmt:texpool" TEXMF_ROOT="" if test ! -z "$KPSEWHICH" ; then for f in $TEXMF_CHECK do c=`echo $f | sed 's/:/ /' | awk '{ print $1 }'` s=`echo $f | sed 's/:/ /' | awk '{ print $2 }'` g="" $KPSEWHICH $c > /dev/null 2> /dev/null if test $? = 0 ; then g=`$KPSEWHICH $c` else $KPSEWHICH $s $c > /dev/null 2> /dev/null if test $? = 0 ; then g=`$KPSEWHICH $s $c` fi fi if test X-$g != X- ; then TEXMF_ROOT=`echo $g | sed "s|/web2c/$c||"` break; fi done fi #if test "X-${TEXMF_ROOT}" = "X-" ; then # TEXMF_ROOT="${datadir}/texmf" # echo "Failed to detect TeX directory. Assume ${TEXMF_ROOT} as default." #else # echo "Detected TeX directory is ${TEXMF_ROOT}" #fi #texmf_root=$TEXMF_ROOT AC_ARG_WITH( texmf-root, [ --with-texmf-root=DIR Top directory of TeX is DIR], if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then texmf_root="" else texmf_root=${withval}; fi, texmf_root=${datadir}/texmf; ) echo "texmf directory: $texmf_root" AC_CHECK_HEADERS(libintl.h) if test "X-${ac_cv_header_libintl_h}" = "X-yes"; then gettext="yes"; fi AC_ARG_WITH( gettext, [ --with-gettext Compile xgdvi with GNU gettext library], gettext="yes") AC_SUBST(gettext_lib) AC_SUBST(gettext_include) if test "X-${gettext}" = "X-no"; then gettext_lib="" gettext_include="" else AC_DEFINE(WITH_GETTEXT) AC_ARG_WITH( gettext_prefix, [ --with-gettext-prefix=DIR GNU gettext preffix direcotry is DIR], gettext_lib="-L${withval}/lib"; gettext_include="-I${withval}/include", gettext_lib='-L${prefix}/lib'; gettext_include='-I${prefix}/include') fi AC_TRY_LINK([#include ], [ bindtextdomain("xxx", "/usr/share/locale"); ], AC_MSG_RESULT(Use libc built-in gettext functions.); , AC_MSG_RESULT(Use external gettext library.); gettext_lib="${gettext_lib} -lintl") AC_CHECK_SIZEOF(int,0) AC_CHECK_SIZEOF(long,0) if test ${ac_cv_sizeof_long} -eq 4; then ol_elem_type="long" elif test ${ac_cv_sizeof_long} -ge 4; then if test ${ac_cv_sizeof_long} -eq ${ac_cv_sizeof_int}; then ol_elem_type="long" else ol_elem_type="int" fi else AC_MSG_ERROR([Long is too small to contain outline data element.]) fi AC_SUBST(ol_elem_type) AC_MSG_RESULT([Outline element type: ${ol_elem_type}.]) AC_CONFIG_HEADER(src/config.h src/with.h) AC_OUTPUT(Makefile make-sub VFlib3-config \ src/VFlib-3_6.h src/Makefile \ src/vflmkcaptex \ ccv/Makefile \ t1lib/Makefile \ ascii-jtex/Makefile \ doc/Makefile \ utils/Makefile \ utils/ctext2pgm/Makefile utils/vfl2bdf/Makefile\ utils/vflx11/Makefile utils/hyaku/Makefile ) chmod a+x VFlib3-config chmod a+x src/vflmkcaptex (cd X11; ./runxmkmf; make x11.mk ) echo "**" echo "** Configureation Finished!" echo "**" if test "x-${freetype_lib}" = "x-"; then echo "** Configured NOT to use TrueType." else echo "** Configured to use TrueType." fi if test "x-${t1lib_lib}" = "x-"; then echo "** Configured NOT to use Type 1." else echo "** Configured to use Type 1." fi if test "x-${kpathsea_lib}" = "x-"; then echo "** Configured NOT to use Kpathsea." else echo "** Configured to use Kpathsea." fi echo "**" echo "** (If it is not what you want, invoke configure with --help option," echo "** or see 'configure-site' file." echo "**" echo "** Now run 'make' to compile." echo "**" dnl EOF vflib3-3.6.14.dfsg/Makefile.in0000644000175000017500000000426507575235272015356 0ustar mohuramohura# Makefile.in for VFlib3 # by Hirotsugu Kakugawa (h.kakugwa@computer.org) makedefault: default include make-sub #------------------------------------------------- LIBTOOL = ./libtool MAKE_SUBDIRS = src ccv utils INST_SUBDIRS = $(MAKE_SUBDIRS) doc t1lib ascii-jtex CLEAN_SUBDIRS = $(MAKE_SUBDIRS) doc t1lib ascii-jtex vflibcaps default all: for d in $(MAKE_SUBDIRS) ; do \ (cd $$d ; $(MAKE) $@); done install: @if [ ! -d $(bindir) ] ; then \ ./recmkdir $(bindir); fi @if [ ! -d $(libdir) ] ; then \ ./recmkdir $(libdir); fi @if [ ! -d $(runtimesitedir) ] ; then \ ./recmkdir $(runtimesitedir); fi @if [ ! -d $(runtimedir) ] ; then \ ./recmkdir $(runtimedir); fi @for d in $(INST_SUBDIRS) ; do \ (cd $$d ; $(MAKE) $@); done @echo "Installing vflibcaps..." @for f in `ls ./vflibcaps/vflibcap*`; do \ ./$(INSTALL_DATA) $$f $(runtimedir); done @./$(INSTALL_PROGRAM) VFlib3-config $(bindir) uninstall: @for d in $(INST_SUBDIRS) ; do \ (cd $$d ; $(MAKE) $@); done -$(RM) $(runtimedir)/vflibcap* -$(RMDIR) $(runtimedir) clean veryclean:: -for d in $(CLEAN_SUBDIRS) ; do \ (cd $$d ; $(MAKE) $@); done distclean:: for d in $(CLEAN_SUBDIRS) ; do \ (cd $$d ; $(MAKE) $@); done -pwd=`pwd`; \ for d in `find $$pwd -type d -print | \ grep '^.*-[0-9]\.[0-9.]*$$'` ; do \ dir=`echo $$d | sed 's/^\(.*\)-[0-9.]*$$/\1/'`; \ if test -h $$dir; then \ echo Removing a symbolic link: $$dir; \ $(RM) $$dir; \ fi; \ done (cd X11; rm -f x11.mk Makefile *.bak *~ core *.core) -$(RM) make-sub VFlib3-config WebFiles.tar wc: find . -name '*.[c,h]' -print | xargs wc # DEVELOPERS ONLY web-files: -$(RM) WebFiles.tar (cd doc; tar cvf ../WebFiles.tar *.ps *.html ) (cd doc/Paper1; tar rvf ../../WebFiles.tar *.ps ) (cd doc/Paper2-ja; tar rvf ../../WebFiles.tar *.ps ) (cd .; tar rvf ./WebFiles.tar CHANGES ) (cd .; tar rvf ./WebFiles.tar ANNOUNCE*.txt ) (cd utils; tar rvf ../WebFiles.tar \ ctext2pgm/Samples/*.html \ ctext2pgm/Samples/CTEXT \ ctext2pgm/Samples/CTEXT-MULE-ARABIC \ ctext2pgm/Samples/CTEXT-HEBREW \ hyaku/*.html hyaku/GIF ) #EOF vflib3-3.6.14.dfsg/configure0000755000175000017500000031621210225353170015176 0ustar mohuramohura#! /bin/sh ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*- ## Copyright (C) 1996-1998 Free Software Foundation, Inc. ## Gordon Matzigkeit , 1996 ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ## ## As a special exception to the GNU General Public License, if you ## distribute this file as part of a program that contains a ## configuration script generated by Autoconf, you may include it under ## the same distribution terms that you use for the rest of that program. # serial 24 AM_PROG_LIBTOOL # AM_ENABLE_SHARED - implement the --enable-shared flag # Usage: AM_ENABLE_SHARED[(DEFAULT)] # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to # `yes'. # AM_DISABLE_SHARED - set the default shared flag to --disable-shared # AM_DISABLE_STATIC - set the default static flag to --disable-static # AM_ENABLE_STATIC - implement the --enable-static flag # Usage: AM_ENABLE_STATIC[(DEFAULT)] # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to # `yes'. # AM_PROG_LD - find the path to the GNU or non-GNU linker # AM_PROG_NM - find the path to a BSD-compatible name lister # Guess values for system-dependent variables and create Makefiles. # Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # Defaults: ac_help= ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help --enable-static build static libraries [default=no] --enable-static=PKGS only build shared libraries if the current package appears as an element in the PKGS list" ac_help="$ac_help --enable-shared build shared libraries [default=yes] --enable-shared=PKGS only build shared libraries if the current package appears as an element in the PKGS list" ac_help="$ac_help --with-gnu-ld assume the C compiler uses GNU ld [default=no]" ac_help="$ac_help --disable-bdf Build VFlib without BDF font driver" ac_help="$ac_help --disable-pcf Build VFlib without PCF font driver" ac_help="$ac_help --disable-hbf Build VFlib without HBF font driver" ac_help="$ac_help --with-freetype[=LIB] Link FreeType library LIB [LIB=ttf]" ac_help="$ac_help --with-freetype-includedir=DIR FreeType include files are in DIR" ac_help="$ac_help --with-freetype-libdir=DIR FreeType library files are in DIR" ac_help="$ac_help --with-t1lib[=LIB] Link T1Lib library LIB [LIB=t1]" ac_help="$ac_help --with-t1lib-includedir=DIR T1Lib include files are in DIR" ac_help="$ac_help --with-t1lib-libdir=DIR T1Lib library files are in DIR" ac_help="$ac_help --disable-zeit Build VFlib without ZEIT font driver" ac_help="$ac_help --disable-jg Build VFlib without JG font driver" ac_help="$ac_help --disable-ekanji Build VFlib without EKanji font driver" ac_help="$ac_help --disable-gf Build VFlib without TeX GF font driver" ac_help="$ac_help --disable-pk Build VFlib without TeX PK font driver" ac_help="$ac_help --disable-tfm Build VFlib without TeX TFM font driver" ac_help="$ac_help --disable-vf Build VFlib without TeX VF font driver" ac_help="$ac_help --disable-jtex Build VFlib without Japanese TeX Kanji font driver" ac_help="$ac_help --disable-tex-fonts Build VFlib without any TeX fonts font drivers" ac_help="$ac_help --disable-comic Build VFlib without Japanese Comic font driver" ac_help="$ac_help --disable-try Build VFlib without Try font driver" ac_help="$ac_help --disable-mojikmap Build VFlib without Mojikyo mapping font driver" ac_help="$ac_help --with-kpathsea[=LIB] Build VFlib with kpathsea library" ac_help="$ac_help --with-kpathsea-includedir=DIR Kpathsea include files are in DIR" ac_help="$ac_help --with-kpathsea-libdir=DIR Kpathsea library files are in DIR" ac_help="$ac_help --with-texmf-root=DIR Top directory of TeX is DIR" ac_help="$ac_help --with-gettext Compile xgdvi with GNU gettext library" ac_help="$ac_help --with-gettext-prefix=DIR GNU gettext preffix direcotry is DIR" # Initialize some variables set by options. # The variables have the same names as the options, with # dashes changed to underlines. build=NONE cache_file=./config.cache exec_prefix=NONE host=NONE no_create= nonopt=NONE no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= sitefile= srcdir= target=NONE verbose= x_includes=NONE x_libraries=NONE bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' # Initialize some other variables. subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. ac_max_here_lines=12 ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi case "$ac_option" in -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) ac_optarg= ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case "$ac_option" in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir="$ac_optarg" ;; -build | --build | --buil | --bui | --bu) ac_prev=build ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build="$ac_optarg" ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file="$ac_optarg" ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir="$ac_optarg" ;; -disable-* | --disable-*) ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } fi ac_feature=`echo $ac_feature| sed 's/-/_/g'` eval "enable_${ac_feature}=no" ;; -enable-* | --enable-*) ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } fi ac_feature=`echo $ac_feature| sed 's/-/_/g'` case "$ac_option" in *=*) ;; *) ac_optarg=yes ;; esac eval "enable_${ac_feature}='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix="$ac_optarg" ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he) # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat << EOF Usage: configure [options] [host] Options: [defaults in brackets after descriptions] Configuration: --cache-file=FILE cache test results in FILE --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages --site-file=FILE use FILE as the site file --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [same as prefix] --bindir=DIR user executables in DIR [EPREFIX/bin] --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] --libexecdir=DIR program executables in DIR [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data in DIR [PREFIX/share] --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data in DIR [PREFIX/com] --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] --libdir=DIR object code libraries in DIR [EPREFIX/lib] --includedir=DIR C header files in DIR [PREFIX/include] --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] --infodir=DIR info documentation in DIR [PREFIX/info] --mandir=DIR man documentation in DIR [PREFIX/man] --srcdir=DIR find the sources in DIR [configure dir or ..] --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names EOF cat << EOF Host type: --build=BUILD configure for building on BUILD [BUILD=HOST] --host=HOST configure for HOST [guessed] --target=TARGET configure for TARGET [TARGET=HOST] Features and packages: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR EOF if test -n "$ac_help"; then echo "--enable and --with options recognized:$ac_help" fi exit 0 ;; -host | --host | --hos | --ho) ac_prev=host ;; -host=* | --host=* | --hos=* | --ho=*) host="$ac_optarg" ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir="$ac_optarg" ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir="$ac_optarg" ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir="$ac_optarg" ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir="$ac_optarg" ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir="$ac_optarg" ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir="$ac_optarg" ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir="$ac_optarg" ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix="$ac_optarg" ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix="$ac_optarg" ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix="$ac_optarg" ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name="$ac_optarg" ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir="$ac_optarg" ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir="$ac_optarg" ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site="$ac_optarg" ;; -site-file | --site-file | --site-fil | --site-fi | --site-f) ac_prev=sitefile ;; -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) sitefile="$ac_optarg" ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir="$ac_optarg" ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir="$ac_optarg" ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target="$ac_optarg" ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers) echo "configure generated by autoconf version 2.13" exit 0 ;; -with-* | --with-*) ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } fi ac_package=`echo $ac_package| sed 's/-/_/g'` case "$ac_option" in *=*) ;; *) ac_optarg=yes ;; esac eval "with_${ac_package}='$ac_optarg'" ;; -without-* | --without-*) ac_package=`echo $ac_option|sed -e 's/-*without-//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } fi ac_package=`echo $ac_package| sed 's/-/_/g'` eval "with_${ac_package}=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes="$ac_optarg" ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries="$ac_optarg" ;; -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } ;; *) if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then echo "configure: warning: $ac_option: invalid host type" 1>&2 fi if test "x$nonopt" != xNONE; then { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } fi nonopt="$ac_option" ;; esac done if test -n "$ac_prev"; then { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } fi trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 # File descriptor usage: # 0 standard input # 1 file creation # 2 errors and warnings # 3 some systems may open it to /dev/tty # 4 used on the Kubota Titan # 6 checking for... messages and results # 5 compiler messages saved in config.log if test "$silent" = yes; then exec 6>/dev/null else exec 6>&1 fi exec 5>./config.log echo "\ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. " 1>&5 # Strip out --no-create and --no-recursion so they do not pile up. # Also quote any args containing shell metacharacters. ac_configure_args= for ac_arg do case "$ac_arg" in -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c) ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) ac_configure_args="$ac_configure_args '$ac_arg'" ;; *) ac_configure_args="$ac_configure_args $ac_arg" ;; esac done # NLS nuisances. # Only set these to C if already set. These must not be set unconditionally # because not all systems understand e.g. LANG=C (notably SCO). # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! # Non-C LC_CTYPE values break the ctype check. if test "${LANG+set}" = set; then LANG=C; export LANG; fi if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo > confdefs.h # A filename unique to this package, relative to the directory that # configure is in, which we can look for to find out if srcdir is correct. ac_unique_file=src/VFsys.h # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_prog=$0 ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } else { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } fi fi srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. if test -z "$sitefile"; then if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi else CONFIG_SITE="$sitefile" fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then echo "loading site script $ac_site_file" . "$ac_site_file" fi done if test -r "$cache_file"; then echo "loading cache $cache_file" . $cache_file else echo "creating cache $cache_file" > $cache_file fi ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross ac_exeext= ac_objext=o if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then ac_n= ac_c=' ' ac_t=' ' else ac_n=-n ac_c= ac_t= fi else ac_n= ac_c='\c' ac_t= fi working_dir=`pwd` for curr_dir in `find $working_dir -type d -print`; do new_dir=`echo $curr_dir | sed -e 's|^\(.*\)-[0-9.][0-9.]*$|\1|'` if test $curr_dir != $new_dir; then r_curr_dir=`echo $curr_dir | sed -e "s|$working_dir/||"` r_new_dir=`echo $new_dir | sed -e "s|$working_dir/||"` echo Making a symbolic link: $r_new_dir '->' $r_curr_dir s_curr_dir=`echo $r_curr_dir | sed -e 's|.*/\([^/]*\)$|\1|'` s_new_dir=`echo $r_new_dir | sed -e 's|.*/\([^/]*\)$|\1|'` rm -f $new_dir # echo "(cd $curr_dir/..; ln -s $s_curr_dir $s_new_dir)" (cd $curr_dir/..; ln -s $s_curr_dir $s_new_dir) fi done # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" p=${PACKAGE-default} case "$enableval" in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$ac_save_ifs" ;; esac else enable_static=no fi ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break fi done if test -z "$ac_aux_dir"; then { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" p=${PACKAGE-default} case "$enableval" in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$ac_save_ifs" ;; esac else enable_shared=yes fi # Make sure we can run config.sub. if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 echo "configure:746: checking host system type" >&5 host_alias=$host case "$host_alias" in NONE) case $nonopt in NONE) if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } fi ;; *) host_alias=$nonopt ;; esac ;; esac host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:769: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_RANLIB="ranlib" break fi done IFS="$ac_save_ifs" test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" fi fi RANLIB="$ac_cv_prog_RANLIB" if test -n "$RANLIB"; then echo "$ac_t""$RANLIB" 1>&6 else echo "$ac_t""no" 1>&6 fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:799: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="gcc" break fi done IFS="$ac_save_ifs" fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:829: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_prog_rejected=no ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" break fi done IFS="$ac_save_ifs" if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# -gt 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift set dummy "$ac_dir/$ac_word" "$@" shift ac_cv_prog_CC="$@" fi fi fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi if test -z "$CC"; then case "`uname -s`" in *win32* | *WIN32*) # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:880: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="cl" break fi done IFS="$ac_save_ifs" fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi ;; esac fi test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 echo "configure:912: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF #line 923 "configure" #include "confdefs.h" main(){return(0);} EOF if { (eval echo configure:928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then ac_cv_prog_cc_cross=no else ac_cv_prog_cc_cross=yes fi else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_prog_cc_works=no fi rm -fr conftest* ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 echo "configure:954: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 echo "configure:959: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no fi fi echo "$ac_t""$ac_cv_prog_gcc" 1>&6 if test $ac_cv_prog_gcc = yes; then GCC=yes else GCC= fi ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 echo "configure:987: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then ac_cv_prog_cc_g=yes else ac_cv_prog_cc_g=no fi rm -f conftest* fi echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$ac_cv_prog_gcc" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 echo "configure:1031: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. /* | [A-Za-z]:\\*) test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 echo "configure:1049: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 echo "configure:1052: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog"; then ac_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" else ac_cv_path_LD="$LD" # Let the user override the test with a path. fi fi LD="$ac_cv_path_LD" if test -n "$LD"; then echo "$ac_t""$LD" 1>&6 else echo "$ac_t""no" 1>&6 fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 echo "configure:1088: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then ac_cv_prog_gnu_ld=yes else ac_cv_prog_gnu_ld=no fi fi echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 echo "configure:1104: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else case "$NM" in /* | [A-Za-z]:\\*) ac_cv_path_NM="$NM" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/nm; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ac_cv_path_NM="$ac_dir/nm -B" elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ac_cv_path_NM="$ac_dir/nm -p" else ac_cv_path_NM="$ac_dir/nm" fi break fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm ;; esac fi NM="$ac_cv_path_NM" echo "$ac_t""$NM" 1>&6 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 echo "configure:1141: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftestdata if ln -s X conftestdata 2>/dev/null then rm -f conftestdata ac_cv_prog_LN_S="ln -s" else ac_cv_prog_LN_S=ln fi fi LN_S="$ac_cv_prog_LN_S" if test "$ac_cv_prog_LN_S" = "ln -s"; then echo "$ac_t""yes" 1>&6 else echo "$ac_t""no" 1>&6 fi # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Check for any special flags to pass to ltconfig. libtool_flags= test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" test "$silent" = yes && libtool_flags="$libtool_flags --silent" test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" # Some flags need to be propagated to the compiler or linker for good # libtool support. case "$host" in *-*-irix6*) # Find out which ABI we are using. echo '#line 1177 "configure"' > conftest.$ac_ext if { (eval echo configure:1178: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case "`/usr/bin/file conftest.o`" in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. CFLAGS="$CFLAGS -belf" ;; esac # Actually configure libtool. ac_aux_dir is where install-sh is found. CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \ ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ || { echo "configure: error: libtool configure failed" 1>&2; exit 1; } vflib_version='3.6.14' CUR=9 REV=6 AGE=4 version_info=$CUR:$REV:$AGE # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:1222: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="gcc" break fi done IFS="$ac_save_ifs" fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:1252: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_prog_rejected=no ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" break fi done IFS="$ac_save_ifs" if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# -gt 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift set dummy "$ac_dir/$ac_word" "$@" shift ac_cv_prog_CC="$@" fi fi fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi if test -z "$CC"; then case "`uname -s`" in *win32* | *WIN32*) # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:1303: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="cl" break fi done IFS="$ac_save_ifs" fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi ;; esac fi test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 echo "configure:1335: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF #line 1346 "configure" #include "confdefs.h" main(){return(0);} EOF if { (eval echo configure:1351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then ac_cv_prog_cc_cross=no else ac_cv_prog_cc_cross=yes fi else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_prog_cc_works=no fi rm -fr conftest* ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 echo "configure:1377: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 echo "configure:1382: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no fi fi echo "$ac_t""$ac_cv_prog_gcc" 1>&6 if test $ac_cv_prog_gcc = yes; then GCC=yes else GCC= fi ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 echo "configure:1410: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then ac_cv_prog_cc_g=yes else ac_cv_prog_cc_g=no fi rm -f conftest* fi echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 echo "configure:1442: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else # This must be in double quotes, not single quotes, because CPP may get # substituted into the Makefile and "${CC-cc}" will confuse make. CPP="${CC-cc} -E" # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1463: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1480: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1497: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CPP=/lib/cpp fi rm -f conftest* fi rm -f conftest* fi rm -f conftest* ac_cv_prog_CPP="$CPP" fi CPP="$ac_cv_prog_CPP" else ac_cv_prog_CPP="$CPP" fi echo "$ac_t""$CPP" 1>&6 # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 echo "configure:1533: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" for ac_dir in $PATH; do # Account for people who put trailing slashes in PATH elements. case "$ac_dir/" in /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do if test -f $ac_dir/$ac_prog; then if test $ac_prog = install && grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : else ac_cv_path_install="$ac_dir/$ac_prog -c" break 2 fi fi done ;; esac done IFS="$ac_save_IFS" fi if test "${ac_cv_path_install+set}" = set; then INSTALL="$ac_cv_path_install" else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL="$ac_install_sh" fi fi echo "$ac_t""$INSTALL" 1>&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 echo "configure:1586: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftestdata if ln -s X conftestdata 2>/dev/null then rm -f conftestdata ac_cv_prog_LN_S="ln -s" else ac_cv_prog_LN_S=ln fi fi LN_S="$ac_cv_prog_LN_S" if test "$ac_cv_prog_LN_S" = "ln -s"; then echo "$ac_t""yes" 1>&6 else echo "$ac_t""no" 1>&6 fi if test "x$CC" = xgcc; then XX_CFLAGS="-g -Wall -pedantic -ansi" else XX_CFLAGS= fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 echo "configure:1615: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include #include #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1628: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* ac_cv_header_stdc=yes else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* ac_cv_header_stdc=no fi rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "memchr" >/dev/null 2>&1; then : else rm -rf conftest* ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "free" >/dev/null 2>&1; then : else rm -rf conftest* ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') #define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF if { (eval echo configure:1695: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -fr conftest* ac_cv_header_stdc=no fi rm -fr conftest* fi fi fi echo "$ac_t""$ac_cv_header_stdc" 1>&6 if test $ac_cv_header_stdc = yes; then cat >> confdefs.h <<\EOF #define STDC_HEADERS 1 EOF fi for ac_hdr in unistd.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo "configure:1722: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1732: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <&6 fi done for ac_hdr in malloc.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo "configure:1762: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1772: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <&6 fi done for ac_hdr in fcntl.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo "configure:1802: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1812: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <&6 fi done for ac_hdr in strings.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo "configure:1842: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1852: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <&6 fi done for ac_hdr in string.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo "configure:1882: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1892: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <&6 fi done for ac_hdr in dirent.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo "configure:1922: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1932: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <&6 fi done for ac_hdr in stdarg.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo "configure:1962: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1972: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <&6 fi done for ac_hdr in sys/stat.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo "configure:2002: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:2012: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <&6 fi done echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 echo "configure:2039: checking for 8-bit clean memcmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -fr conftest* ac_cv_func_memcmp_clean=no fi rm -fr conftest* fi fi echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" for ac_func in popen do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:2077: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else $ac_func(); #endif ; return 0; } EOF if { (eval echo configure:2105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_$ac_func=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` cat >> confdefs.h <&6 fi done for ac_func in opendir do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:2132: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else $ac_func(); #endif ; return 0; } EOF if { (eval echo configure:2160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_$ac_func=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` cat >> confdefs.h <&6 fi done for ac_func in access do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:2187: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else $ac_func(); #endif ; return 0; } EOF if { (eval echo configure:2215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_$ac_func=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` cat >> confdefs.h <&6 fi done for ac_func in nint do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:2242: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else $ac_func(); #endif ; return 0; } EOF if { (eval echo configure:2270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_$ac_func=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` cat >> confdefs.h <&6 fi done echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6 echo "configure:2295: checking for main in -lnsl" >&5 ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 LIBS="$LIBS -lnsl" else echo "$ac_t""no" 1>&6 fi echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6 echo "configure:2331: checking for main in -lsocket" >&5 ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 LIBS="$LIBS -lsocket" else echo "$ac_t""no" 1>&6 fi echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 echo "configure:2367: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 LIBS="$LIBS -lm" else echo "$ac_t""no" 1>&6 fi default_vflibcap=${datadir}/VFlib/${vflib_version}/vflibcap runtimesitedir=${datadir}/VFlib/site runtimedir=${datadir}/VFlib/${vflib_version} subdir_ccv=ccv subdir_t1enc=t1lib subdir_ascii_jtex=ascii-jtex bdf_objs="drv_bdf.lo" # Check whether --enable-bdf or --disable-bdf was given. if test x-"${enable_bdf}" = x-no ; then enableval="${enable_bdf}" bdf_objs="" else cat >> confdefs.h <<\EOF #define WITH_BDF 1 EOF fi if test -n "$bdf_objs" ; then echo "Enabled the BDF font driver"; else echo "Disabled the BDF font driver"; fi pcf_objs="drv_pcf.lo" # Check whether --enable-pcf or --disable-pcf was given. if test x-"${enable_pcf}" = x-no ; then enableval="${enable_pcf}" pcf_objs="" else cat >> confdefs.h <<\EOF #define WITH_PCF 1 EOF fi if test -n "$pcf_objs" ; then echo "Enabled the PCF font driver"; else echo "Disabled the PCF font driver"; fi hbf_objs="drv_hbf.lo" # Check whether --enable-hbf or --disable-hbf was given. if test x-"${enable_hbf}" = x-no ; then enableval="${enable_hbf}" hbf_objs="" else cat >> confdefs.h <<\EOF #define WITH_HBF 1 EOF fi if test -n "$hbf_objs" ; then echo "Enabled the HBF font driver"; else echo "Disabled the HBF font driver"; fi # Check whether --with-freetype or --without-freetype was given. if test "${with_freetype+set}" = set; then withval="$with_freetype" if test "${withval}" = yes; then withval="ttf"; fi; if test "${withval}" = no; then withval=""; fi; if test "${withval}" = ""; then withval="ttf"; fi; if test "${withval}" != ""; then freetype_lib=-l$withval; ttf_objs="drv_ttf.lo"; cat >> confdefs.h <<\EOF #define WITH_TRUETYPE 1 EOF fi fi # Check whether --with-freetype-includedir or --without-freetype-includedir was given. if test "${with_freetype_includedir+set}" = set; then withval="$with_freetype_includedir" if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then freetype_includedir="" else freetype_includedir=-I${withval}; fi fi # Check whether --with-freetype-libdir or --without-freetype-libdir was given. if test "${with_freetype_libdir+set}" = set; then withval="$with_freetype_libdir" if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then freetype_libdir="" else freetype_libdir=-L${withval}; fi fi if test -n "$freetype_lib" ; then echo "Enabled the TrueType font driver"; OLD_CPPFLAGS=${CPPFLAGS}; OLD_LIBS=${LIBS} CPPFLAGS="${freetype_includedir} ${CPPFLAGS}" LIBS="${freetype_libdir} ${freetype_lib} ${LIBS}"; cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:2518: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* { echo "configure: error: Header file is not found: ${freetype_includedir}" 1>&2; exit 1; } fi rm -f conftest* CPPFLAGS=${OLD_CPPFLAGS}; LIBS=${OLD_LIBS} else echo "Disabled the TrueType font driver"; freetype_includedir=""; freetype_libdir=""; fi # Check whether --with-t1lib or --without-t1lib was given. if test "${with_t1lib+set}" = set; then withval="$with_t1lib" if test "${withval}" = yes; then withval="t1"; fi; if test "${withval}" = no; then withval=""; fi; if test "${withval}" = ""; then withval="t1"; fi; if test "${withval}" != ""; then t1lib_lib=-l$withval; type1_objs="drv_t1.lo"; cat >> confdefs.h <<\EOF #define WITH_TYPE1 1 EOF fi fi # Check whether --with-t1lib-includedir or --without-t1lib-includedir was given. if test "${with_t1lib_includedir+set}" = set; then withval="$with_t1lib_includedir" if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then t1lib_includedir="" else t1lib_includedir=-I${withval}; fi fi # Check whether --with-t1lib-libdir or --without-t1lib-libdir was given. if test "${with_t1lib_libdir+set}" = set; then withval="$with_t1lib_libdir" if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then t1lib_libdir="" else t1lib_libdir=-L${withval}; fi fi if test -n "$t1lib_lib" ; then echo "Enabled the Type1 font driver"; OLD_CPPFLAGS=${CPPFLAGS}; OLD_LIBS=${LIBS} CPPFLAGS="${t1lib_includedir} ${CPPFLAGS}" LIBS="${t1lib_libdir} ${t1lib_lib} ${LIBS}"; cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:2582: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* { echo "configure: error: Header file is not found: ${t1lib_includedir}" 1>&2; exit 1; } fi rm -f conftest* cat > conftest.$ac_ext < int main() { T1_SetBitmapPad(8); T1_SetLogLevel(0) ; return 0; } EOF if { (eval echo configure:2602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then : else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* { echo "configure: error: Library file is not found: ${t1lib_lib}" 1>&2; exit 1; } fi rm -f conftest* CPPFLAGS=${OLD_CPPFLAGS}; LIBS=${OLD_LIBS} else echo "Disabled the Type1 font driver"; t1lib_includedir=""; t1lib_libdir=""; fi zeit_objs="drv_zeit.lo" # Check whether --enable-zeit or --disable-zeit was given. if test x-"${enable_zeit}" = x-no ; then enableval="${enable_zeit}" zeit_objs="" else cat >> confdefs.h <<\EOF #define WITH_ZEIT 1 EOF fi if test -n "$zeit_objs" ; then echo "Enabled the Syotai Kurabu (ZEIT) font driver"; else echo "Disabled the Syotai Kurabu (ZEIT) font driver"; fi jg_objs="drv_jg.lo" # Check whether --enable-jg or --disable-jg was given. if test x-"${enable_jg}" = x-no ; then enableval="${enable_jg}" jg_objs="" else cat >> confdefs.h <<\EOF #define WITH_JG 1 EOF fi if test -n "$jg_objs" ; then echo "Enabled the JG font driver"; else echo "Disabled the JG font driver"; fi ekan_objs="drv_ekan.lo" # Check whether --enable-ekanji or --disable-ekanji was given. if test x-"${enable_ekanji}" = x-no ; then enableval="${enable_ekanji}" ekan_objs="" else cat >> confdefs.h <<\EOF #define WITH_EKANJI 1 EOF fi if test -n "$ekan_objs" ; then echo "Enabled the EKanji font driver"; else echo "Disabled the EKanji font driver"; fi gf_objs="drv_gf.lo" # Check whether --enable-gf or --disable-gf was given. if test x-"${enable_gf}" = x-no ; then enableval="${enable_gf}" gf_objs="" else cat >> confdefs.h <<\EOF #define WITH_GF 1 EOF fi if test -n "$gf_objs" ; then echo "Enabled the GF font driver"; else echo "Disabled the GF font driver"; fi pk_objs="drv_pk.lo" # Check whether --enable-pk or --disable-pk was given. if test x-"${enable_pk}" = x-no ; then enableval="${enable_pk}" pk_objs="" else cat >> confdefs.h <<\EOF #define WITH_PK 1 EOF fi if test -n "$pk_objs" ; then echo "Enabled the PK font driver"; else echo "Disabled the PK font driver"; fi tfm_objs="drv_tfm.lo" # Check whether --enable-tfm or --disable-tfm was given. if test x-"${enable_tfm}" = x-no ; then enableval="${enable_tfm}" tfm_objs="" else cat >> confdefs.h <<\EOF #define WITH_TFM 1 EOF fi if test -n "$tfm_objs" ; then echo "Enabled the TFM font driver"; else echo "Disabled the TFM font driver"; fi vf_objs="drv_vf.lo" # Check whether --enable-vf or --disable-vf was given. if test x-"${enable_vf}" = x-no ; then enableval="${enable_vf}" vf_objs="" else cat >> confdefs.h <<\EOF #define WITH_VF 1 EOF fi if test -n "$vf_objs" ; then echo "Enabled the VF font driver"; else echo "Disabled the VF font driver"; fi jtex_objs="drv_jtex.lo" # Check whether --enable-jtex or --disable-jtex was given. if test x-"${enable_jtex}" = x-no ; then enableval="${enable_jtex}" jtex_objs="" else cat >> confdefs.h <<\EOF #define WITH_JTEX 1 EOF fi if test -n "$jtex_objs" ; then echo "Enabled the ASCII Japanese TeX Kanji font driver"; else echo "Disabled the ASCII Japanese TeX Kanji font driver"; fi texfonts_objs="texfonts.lo tfm.lo jfmbi.lo" # Check whether --enable-texfonts or --disable-texfonts was given. if test x-"${enable_texfonts}" = x-no ; then enableval="${enable_texfonts}" gf_objs="";pk_objs="";tfm_objs="";vf_objs="";jtex_objs="";texfonts_objs="" else cat >> confdefs.h <<\EOF #define WITH_TEXFONTS 1 EOF fi if test ! -n "$texfonts_objs" ; then echo "Disabled all TeX-related font drivers"; fi comic_objs="drv_comic.lo" # Check whether --enable-comic or --disable-comic was given. if test x-"${enable_comic}" = x-no ; then enableval="${enable_comic}" comic_objs="" else cat >> confdefs.h <<\EOF #define WITH_COMIC 1 EOF fi if test -n "$comic_objs" ; then echo "Enabled the Japanese Comic font driver"; else echo "Disabled the Japanese Comic font driver"; fi try_objs="drv_try.lo" # Check whether --enable-try or --disable-try was given. if test x-"${enable_try}" = x-no ; then enableval="${enable_try}" try_objs="" else cat >> confdefs.h <<\EOF #define WITH_TRY 1 EOF fi if test -n "$try_objs" ; then echo "Enabled the Try font driver"; else echo "Disabled the Try font driver"; fi mojikmap_objs="drv_mojikmap.lo" # Check whether --enable-mojikmap or --disable-mojikmap was given. if test x-"${enable_mojikmap}" = x-no ; then enableval="${enable_mojikmap}" mojikmap_objs="" else cat >> confdefs.h <<\EOF #define WITH_MOJIKMAP 1 EOF fi if test -n "$mojikmap_objs" ; then echo "Enabled the Mojikyo mapping font driver"; else echo "Disabled the Mojikyo mapping font driver"; fi # Check whether --with-kpathsea or --without-kpathsea was given. if test "${with_kpathsea+set}" = set; then withval="$with_kpathsea" if test "${withval}" = yes; then withval="kpathsea"; fi; if test "${withval}" = no; then withval=""; fi; if test "${withval}" = ""; then withval="kpathsea"; fi; if test "${withval}" != ""; then kpathsea_lib=-l$withval; cat >> confdefs.h <<\EOF #define WITH_KPATHSEA 1 EOF fi fi # Check whether --with-kpathsea-includedir or --without-kpathsea-includedir was given. if test "${with_kpathsea_includedir+set}" = set; then withval="$with_kpathsea_includedir" if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then kpathsea_includedir="" else kpathsea_includedir="-I${withval} -I${withval}/kpathsea"; fi fi # Check whether --with-kpathsea-libdir or --without-kpathsea-libdir was given. if test "${with_kpathsea_libdir+set}" = set; then withval="$with_kpathsea_libdir" if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then kpathsea_libdir="" else kpathsea_libdir=-L${withval}; fi fi if test -n "$kpathsea_lib" ; then echo "Enabled the kpathsea library for font search"; OLD_CPPFLAGS=${CPPFLAGS}; OLD_LIBS=${LIBS}; CPPFLAGS="${kpathsea_includedir} ${CPPFLAGS}" LIBS="${kpathsea_libdir} ${kpathsea_lib} ${LIBS}"; cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:2865: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* { echo "configure: error: Header file is not found: ${kpathsea_includedir}" 1>&2; exit 1; } fi rm -f conftest* cat > conftest.$ac_ext < int main() { kpse_init_prog("/usr/local/bin/xldvi", 300, "cx", NULL) ; return 0; } EOF if { (eval echo configure:2885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then : else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* { echo "configure: error: Library file is not found: ${kpathsea_lib}" 1>&2; exit 1; } fi rm -f conftest* CPPFLAGS=${OLD_CPPFLAGS}; LIBS=${OLD_LIBS} else echo "Disabled the kpathsea library for font search"; kpathsea_includedir=""; kpathsea_libdir=""; fi KPSEWHICH="kpsewhich" TEXMF_CHECK="tex.fmt:fmt plain.fmt:fmt latex.fmt:fmt \ tex.pool:texpool plain.pool:texpool latex.fmt:texpool" TEXMF_ROOT="" if test ! -z "$KPSEWHICH" ; then for f in $TEXMF_CHECK do c=`echo $f | sed 's/:/ /' | awk '{ print $1 }'` s=`echo $f | sed 's/:/ /' | awk '{ print $2 }'` g="" $KPSEWHICH $c > /dev/null 2> /dev/null if test $? = 0 ; then g=`$KPSEWHICH $c` else $KPSEWHICH $s $c > /dev/null 2> /dev/null if test $? = 0 ; then g=`$KPSEWHICH $s $c` fi fi if test X-$g != X- ; then TEXMF_ROOT=`echo $g | sed "s|/web2c/$c||"` break; fi done fi #if test "X-${TEXMF_ROOT}" = "X-" ; then # TEXMF_ROOT="${datadir}/texmf" # echo "Failed to detect TeX directory. Assume ${TEXMF_ROOT} as default." #else # echo "Detected TeX directory is ${TEXMF_ROOT}" #fi #texmf_root=$TEXMF_ROOT # Check whether --with-texmf-root or --without-texmf-root was given. if test "${with_texmf_root+set}" = set; then withval="$with_texmf_root" if test "${withval}" = yes; then withval=""; fi; if test "${withval}" = ""; then texmf_root="" else texmf_root=${withval}; fi else texmf_root=${datadir}/texmf; fi echo "texmf directory: $texmf_root" for ac_hdr in libintl.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo "configure:2954: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:2964: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <&6 fi done if test "X-${ac_cv_header_libintl_h}" = "X-yes"; then gettext="yes"; fi # Check whether --with-gettext or --without-gettext was given. if test "${with_gettext+set}" = set; then withval="$with_gettext" gettext="yes" fi if test "X-${gettext}" = "X-no"; then gettext_lib="" gettext_include="" else cat >> confdefs.h <<\EOF #define WITH_GETTEXT 1 EOF # Check whether --with-gettext_prefix or --without-gettext_prefix was given. if test "${with_gettext_prefix+set}" = set; then withval="$with_gettext_prefix" gettext_lib="-L${withval}/lib"; gettext_include="-I${withval}/include" else gettext_lib='-L${prefix}/lib'; gettext_include='-I${prefix}/include' fi fi cat > conftest.$ac_ext < int main() { bindtextdomain("xxx", "/usr/share/locale"); ; return 0; } EOF if { (eval echo configure:3027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""Use libc built-in gettext functions." 1>&6; else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""Use external gettext library." 1>&6; gettext_lib="${gettext_lib} -lintl" fi rm -f conftest* echo $ac_n "checking size of int""... $ac_c" 1>&6 echo "configure:3040: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then ac_cv_sizeof_int=0 else cat > conftest.$ac_ext < main() { FILE *f=fopen("conftestval", "w"); if (!f) exit(1); fprintf(f, "%d\n", sizeof(int)); exit(0); } EOF if { (eval echo configure:3059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_int=`cat conftestval` else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -fr conftest* ac_cv_sizeof_int=0 fi rm -fr conftest* fi fi echo "$ac_t""$ac_cv_sizeof_int" 1>&6 cat >> confdefs.h <&6 echo "configure:3079: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then ac_cv_sizeof_long=0 else cat > conftest.$ac_ext < main() { FILE *f=fopen("conftestval", "w"); if (!f) exit(1); fprintf(f, "%d\n", sizeof(long)); exit(0); } EOF if { (eval echo configure:3098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long=`cat conftestval` else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -fr conftest* ac_cv_sizeof_long=0 fi rm -fr conftest* fi fi echo "$ac_t""$ac_cv_sizeof_long" 1>&6 cat >> confdefs.h <&2; exit 1; } fi echo "$ac_t""Outline element type: ${ol_elem_type}." 1>&6 trap '' 1 2 15 cat > confcache <<\EOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs. It is not useful on other systems. # If it contains results you don't want to keep, you may remove or edit it. # # By default, configure uses ./config.cache as the cache file, # creating it if it does not exist already. You can give configure # the --cache-file=FILE option to use a different cache file; that is # what configure does when it calls configure scripts in # subdirectories, so they share the cache. # Giving --cache-file=/dev/null disables caching, for debugging configure. # config.status only pays attention to the cache file if you give it the # --recheck option to rerun configure. # EOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote substitution # turns \\\\ into \\, and sed turns \\ into \). sed -n \ -e "s/'/'\\\\''/g" \ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' ;; esac >> confcache if cmp -s $cache_file confcache; then : else if test -w $cache_file; then echo "updating cache $cache_file" cat confcache > $cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Any assignment to VPATH causes Sun make to only execute # the first set of double-colon rules, so remove it if not needed. # If there is a colon in the path, we need to keep it. if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' fi trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 DEFS=-DHAVE_CONFIG_H # Without the "./", some shells look in PATH for config.status. : ${CONFIG_STATUS=./config.status} echo creating $CONFIG_STATUS rm -f $CONFIG_STATUS cat > $CONFIG_STATUS </dev/null | sed 1q`: # # $0 $ac_configure_args # # Compiler output produced by configure, useful for debugging # configure, is in ./config.log if it exists. ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" for ac_option do case "\$ac_option" in -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) echo "$CONFIG_STATUS generated by autoconf version 2.13" exit 0 ;; -help | --help | --hel | --he | --h) echo "\$ac_cs_usage"; exit 0 ;; *) echo "\$ac_cs_usage"; exit 1 ;; esac done ac_given_srcdir=$srcdir ac_given_INSTALL="$INSTALL" trap 'rm -fr `echo "Makefile make-sub VFlib3-config \ src/VFlib-3_6.h src/Makefile \ src/vflmkcaptex \ ccv/Makefile \ t1lib/Makefile \ ascii-jtex/Makefile \ doc/Makefile \ utils/Makefile \ utils/ctext2pgm/Makefile utils/vfl2bdf/Makefile\ utils/vflx11/Makefile utils/hyaku/Makefile src/config.h src/with.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 EOF cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF $ac_vpsub $extrasub s%@SHELL@%$SHELL%g s%@CFLAGS@%$CFLAGS%g s%@CPPFLAGS@%$CPPFLAGS%g s%@CXXFLAGS@%$CXXFLAGS%g s%@FFLAGS@%$FFLAGS%g s%@DEFS@%$DEFS%g s%@LDFLAGS@%$LDFLAGS%g s%@LIBS@%$LIBS%g s%@exec_prefix@%$exec_prefix%g s%@prefix@%$prefix%g s%@program_transform_name@%$program_transform_name%g s%@bindir@%$bindir%g s%@sbindir@%$sbindir%g s%@libexecdir@%$libexecdir%g s%@datadir@%$datadir%g s%@sysconfdir@%$sysconfdir%g s%@sharedstatedir@%$sharedstatedir%g s%@localstatedir@%$localstatedir%g s%@libdir@%$libdir%g s%@includedir@%$includedir%g s%@oldincludedir@%$oldincludedir%g s%@infodir@%$infodir%g s%@mandir@%$mandir%g s%@host@%$host%g s%@host_alias@%$host_alias%g s%@host_cpu@%$host_cpu%g s%@host_vendor@%$host_vendor%g s%@host_os@%$host_os%g s%@RANLIB@%$RANLIB%g s%@CC@%$CC%g s%@LD@%$LD%g s%@NM@%$NM%g s%@LN_S@%$LN_S%g s%@LIBTOOL@%$LIBTOOL%g s%@vflib_version@%$vflib_version%g s%@version_info@%$version_info%g s%@CPP@%$CPP%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g s%@INSTALL_DATA@%$INSTALL_DATA%g s%@XX_CFLAGS@%$XX_CFLAGS%g s%@LIBOBJS@%$LIBOBJS%g s%@default_vflibcap@%$default_vflibcap%g s%@runtimesitedir@%$runtimesitedir%g s%@runtimedir@%$runtimedir%g s%@subdir_ccv@%$subdir_ccv%g s%@subdir_t1enc@%$subdir_t1enc%g s%@subdir_ascii_jtex@%$subdir_ascii_jtex%g s%@texmf_root@%$texmf_root%g s%@bdf_objs@%$bdf_objs%g s%@pcf_objs@%$pcf_objs%g s%@hbf_objs@%$hbf_objs%g s%@freetype_includedir@%$freetype_includedir%g s%@freetype_libdir@%$freetype_libdir%g s%@freetype_lib@%$freetype_lib%g s%@ttf_objs@%$ttf_objs%g s%@t1lib_includedir@%$t1lib_includedir%g s%@t1lib_libdir@%$t1lib_libdir%g s%@t1lib_lib@%$t1lib_lib%g s%@type1_objs@%$type1_objs%g s%@zeit_objs@%$zeit_objs%g s%@jg_objs@%$jg_objs%g s%@ekan_objs@%$ekan_objs%g s%@gf_objs@%$gf_objs%g s%@pk_objs@%$pk_objs%g s%@tfm_objs@%$tfm_objs%g s%@vf_objs@%$vf_objs%g s%@jtex_objs@%$jtex_objs%g s%@texfonts_objs@%$texfonts_objs%g s%@comic_objs@%$comic_objs%g s%@try_objs@%$try_objs%g s%@mojikmap_objs@%$mojikmap_objs%g s%@kpathsea_includedir@%$kpathsea_includedir%g s%@kpathsea_libdir@%$kpathsea_libdir%g s%@kpathsea_lib@%$kpathsea_lib%g s%@gettext_lib@%$gettext_lib%g s%@gettext_include@%$gettext_include%g s%@ol_elem_type@%$ol_elem_type%g CEOF EOF cat >> $CONFIG_STATUS <<\EOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. ac_file=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_cmds # Line after last line for current file. ac_more_lines=: ac_sed_cmds="" while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file else sed "${ac_end}q" conftest.subs > conftest.s$ac_file fi if test ! -s conftest.s$ac_file; then ac_more_lines=false rm -f conftest.s$ac_file else if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f conftest.s$ac_file" else ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" fi ac_file=`expr $ac_file + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_cmds` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case "$ac_file" in *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; *) ac_file_in="${ac_file}.in" ;; esac # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. # Remove last slash and all that follows it. Not all systems have dirname. ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then # The file is in a subdirectory. test ! -d "$ac_dir" && mkdir "$ac_dir" ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" # A "../" for each directory in $ac_dir_suffix. ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` else ac_dir_suffix= ac_dots= fi case "$ac_given_srcdir" in .) srcdir=. if test -z "$ac_dots"; then top_srcdir=. else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; *) # Relative path. srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" top_srcdir="$ac_dots$ac_given_srcdir" ;; esac case "$ac_given_INSTALL" in [/$]*) INSTALL="$ac_given_INSTALL" ;; *) INSTALL="$ac_dots$ac_given_INSTALL" ;; esac echo creating "$ac_file" rm -f "$ac_file" configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." case "$ac_file" in *Makefile*) ac_comsub="1i\\ # $configure_input" ;; *) ac_comsub= ;; esac ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` sed -e "$ac_comsub s%@configure_input@%$configure_input%g s%@srcdir@%$srcdir%g s%@top_srcdir@%$top_srcdir%g s%@INSTALL@%$INSTALL%g " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file fi; done rm -f conftest.s* # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' ac_dC='\3' ac_dD='%g' # ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='\([ ]\)%\1#\2define\3' ac_uC=' ' ac_uD='\4%g' # ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_eB='$%\1#\2define\3' ac_eC=' ' ac_eD='%g' if test "${CONFIG_HEADERS+set}" != set; then EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF fi for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case "$ac_file" in *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; *) ac_file_in="${ac_file}.in" ;; esac echo creating $ac_file rm -f conftest.frag conftest.in conftest.out ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` cat $ac_file_inputs > conftest.in EOF # Transform confdefs.h into a sed script conftest.vals that substitutes # the proper values into config.h.in to produce config.h. And first: # Protect against being on the right side of a sed subst in config.status. # Protect against being in an unquoted here document in config.status. rm -f conftest.vals cat > conftest.hdr <<\EOF s/[\\&%]/\\&/g s%[\\$`]%\\&%g s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp s%ac_d%ac_u%gp s%ac_u%ac_e%gp EOF sed -n -f conftest.hdr confdefs.h > conftest.vals rm -f conftest.hdr # This sed command replaces #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >> conftest.vals <<\EOF s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% EOF # Break up conftest.vals because some shells have a limit on # the size of here documents, and old seds have small limits too. rm -f conftest.tail while : do ac_lines=`grep -c . conftest.vals` # grep -c gives empty output for an empty file on some AIX systems. if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi # Write a limited-size here document to conftest.frag. echo ' cat > conftest.frag <> $CONFIG_STATUS sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS echo 'CEOF sed -f conftest.frag conftest.in > conftest.out rm -f conftest.in mv conftest.out conftest.in ' >> $CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail rm -f conftest.vals mv conftest.tail conftest.vals done rm -f conftest.vals cat >> $CONFIG_STATUS <<\EOF rm -f conftest.frag conftest.h echo "/* $ac_file. Generated automatically by configure. */" > conftest.h cat conftest.in >> conftest.h rm -f conftest.in if cmp -s $ac_file conftest.h 2>/dev/null; then echo "$ac_file is unchanged" rm -f conftest.h else # Remove last slash and all that follows it. Not all systems have dirname. ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then # The file is in a subdirectory. test ! -d "$ac_dir" && mkdir "$ac_dir" fi rm -f $ac_file mv conftest.h $ac_file fi fi; done EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF exit 0 EOF chmod +x $CONFIG_STATUS rm -fr confdefs* $ac_clean_files test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 chmod a+x VFlib3-config chmod a+x src/vflmkcaptex (cd X11; ./runxmkmf; make x11.mk ) echo "**" echo "** Configureation Finished!" echo "**" if test "x-${freetype_lib}" = "x-"; then echo "** Configured NOT to use TrueType." else echo "** Configured to use TrueType." fi if test "x-${t1lib_lib}" = "x-"; then echo "** Configured NOT to use Type 1." else echo "** Configured to use Type 1." fi if test "x-${kpathsea_lib}" = "x-"; then echo "** Configured NOT to use Kpathsea." else echo "** Configured to use Kpathsea." fi echo "**" echo "** (If it is not what you want, invoke configure with --help option," echo "** or see 'configure-site' file." echo "**" echo "** Now run 'make' to compile." echo "**" vflib3-3.6.14.dfsg/recmkdir0000755000175000017500000000061707405104751015021 0ustar mohuramohura#! /bin/sh # # recmkdir - make directory recursively # by H.Kakugawa # case $# in 0) echo Usage: recmkdir DIR ... exit 1 ;; *) ;; esac for D in $* ; do case $D in /*) ;; *) D=`pwd`/$D ;; esac L=`echo $D | sed 's|/| |g'` set $L X="" for P in $* ; do X=$X/$P if [ ! -d $X ] ; then echo mkdir $X mkdir $X fi shift done done #EOF vflib3-3.6.14.dfsg/COPYING.LIB0000644000175000017500000006126106535650701014741 0ustar mohuramohura GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! vflib3-3.6.14.dfsg/make-sub.in0000644000175000017500000000242607305073702015327 0ustar mohuramohura# Common definitions CC=@CC@ VFCFLAGS=${CFLAGS} @XX_CFLAGS@ -DVFLIB_VERSION=\"@vflib_version@\" LDFLAGS=@LDFLAGS@ EXT_LIBRARY= @freetype_libdir@ @freetype_lib@ \ @t1lib_libdir@ @t1lib_lib@ \ @kpathsea_libdir@ @kpathsea_lib@ \ @gettext_lib@ \ @LIBS@ INSTALL=install-sh -c INSTALL_DATA=install-sh -c -m 644 INSTALL_PROGRAM=install-sh -c CP=cp RM=rm -f RM_RF=rm -rf RMDIR=rmdir prefix = @prefix@ exec_prefix = @exec_prefix@ libdir = @libdir@ datadir = @datadir@ bindir = @bindir@ includedir = @includedir@ infodir = @infodir@ default_vflibcap = @default_vflibcap@ runtimesitedir = @runtimesitedir@ runtimedir = @runtimedir@ subdir_ccv = @subdir_ccv@ subdir_t1enc = @subdir_t1enc@ subdir_ascii_jtex = @subdir_ascii_jtex@ texmf_fonts_vflib = @texmf_root@/fonts/tfm/ptex/VFlib texmf_platex_vflib = @texmf_root@/tex/platex/VFlib clean:: -$(RM) *.o *.lo *.la *.core core gmon.out a.out veryclean:: do-clean -$(RM) *.o *.lo *.la *.core core gmon.out a.out distclean:: do-clean -$(RM) *.o *.lo *.la *.core core gmon.out a.out -$(RM) config.h Makefile Makefile.bak *~ do-clean:: -$(RM) libtool config.cache config.log config.status missfont.log -$(RM) .libs/* Imakefile -$(RMDIR) .libs #EOF vflib3-3.6.14.dfsg/install-sh0000755000175000017500000001124306535650702015301 0ustar mohuramohura#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. # # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" tranformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 vflib3-3.6.14.dfsg/COPYING-jp0000644000175000017500000004606006535650702014744 0ustar mohuramohura GNU ̸ͭѵ ======================= 1991 ǯ6 С2 Copyright (C) 1989,1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA ͤ⡢ʲƤѹʤǤΤޤʣ̤˸¤ꡢܻѵʣ ۤ뤳ȤǤޤ Ϥ -------- ۤȤɤΥեȥλѵϡեȥͭѹ桼μͳ åȤտޤƤޤФơ桹GNU ̸ͭѵϡե꡼ եȥͭѹ뼫ͳ桼ݾڤ뤿ΤΡ¨ե꡼ ȥΥ桼ƤˤȤäƥե꡼Ǥ뤳Ȥݾڤ뤿ΤΤǤܻ ϡFree Software Foundation ΤۤȤƤΥեȥŬѤ ʤץκԤܻѵ˰ͤȤΤΥץˤŬѤ ȤǤޤ(¾Free Software Foundation ΥեȥΤĤϡ ǤϤʤGNU 饤̸֥ͭѵݸޤ) ʤϼʬΥ ˤ⤳ŬѤǤޤ桹ե꡼եȥˤĤƸϼͳ ΤȤ˸ڤƤΤǤäơʤΤȤǤϤޤ󡣲桹ΰ̸ͭѵ γƾϡλμ¤˼¸뤳ȤŪȤΩƤƤޤ ե꡼եȥʣʪͳۤǤ뤳(ơ˾ʤ餢ʤ ΤΥӥФвǤ뤳) ɤºݤ˼뤫뤤ϡ˾Фꤹ ȤǽǤ뤳ȡ ꤷեȥѹꡢե꡼ץΰȤƻ Ǥ뤳ȡ ʾγƤԤʤȤǤȤȤ桼ȤΤäƤ뤳ȡ Τ褦ʥ桼θ뤿ˡ桹ϡͤ⤳θꤷꡢ 褦˥桼˵뤳ȤϤǤʤȤ¾ߤɬפ ¾ϡ桼ե꡼եȥʣʪۤѹ 褦ȤˤϡΥ桼Ȥ٤̳Ȥʤޤ㤨Сʤ ꡼եȥʣʪۤ硢̵ͭˤ餺ʤϼʬ λäƤ븢ͿʤФʤޤ󡣤ʤϡޤ ɤäǤȤȤǧʤФʤޤ󡣤ˤʤϡ 餬ʬθΤ褦ˡξΤ餷ʤФʤޤ 桹ϼΣĤˡǥ桼θޤ(1) եȥĥ (2) ܻѵξβǥեȥʣۡѹ븢桼Ϳ ޤƺԤ桹Ȥ뤿ˡܥե꡼եȥ̵ݾڤǤ뤳Ȥ Ƥο͡λ򤷤Ƥɬפޤˡ¾ïˤäѹ줿ե ۤ줿硢μԤϤΥեȥꥸʥ롦СǤϤʤ ȤȤΤ餵ɬפޤϡ¾ͤδͿˤäƸȯԤФ ɾƶʤ褦ˤ뤿Ǥ ǸˡɤΥե꡼ץ⥽եȥõ䤨Ƥޤ桹ϡ ե꡼ץκۼԤĿŪõ¾夽Υץʬ κ⻺ˤƤޤȤ򤱤ȴäƤޤɤ˲桹ϡ õ⡢ïǤ⼫ͳ˻ѤǤ褦˻ѵ٤뤤ϲͤ ƤѤʤΡ줫ˤ٤Ǥ뤳Ȥ餫ˤƤޤ ʣ̡ۡѹФΤʾȾ򼡤˼ޤ GNU ̸ͭѵβǤʣۡѹ˴ؤȾ ============================================================== 1. ܻѵϡ̸ܰͭѵγƾ˽äۤȤԤ ιʸɽƤץ䤽¾κʪŬѤޤʲ ơ֥ץפȤϡΤ褦ʥץʪؤΤȤޤ ֥ץʪפȤϡҤ֥ץ׼ȡޤϡˡ ƤʪʤΡ֥ץפϰ򡢤Τޤ ѹơġ¾θѴơȤ߹ʪ̣ ޤ(ʲѴϡѹפȤѸ̵˴ޤޤΤȤޤ) ܻѵˤäƵԤ֤ʤפȸƤӤޤ ʣۡѹʳι԰٤ܻѵоݤȤޤ󡣤ܻѵ ϰϳǤ֥ץפ¹Ԥ԰٤˴ؤϤޤ󡣡֥ פνϤϡ( ֥ץפ¹ԤƺɤȤ̵ ) Ƥ֥ץʪפǤ˸¤ܻѵоݤȤʤ ޤ줬ƤϤޤ뤫ɤϡ֥ץפ򤹤Τ˰ͤޤ 2. ʤϡɤΤ褦ξʣ褦ȤǤäƤ⡢ꤷ֥ץ פΥɤ򤽤ΤޤޤƤʣ̤Ŭɽ ڤΡŬյ˸¤ꡢʣۤ뤳ȤǤ ξ硢ܻѵڤ̵ݾڤ˴ؤ뵭ʬϡƸΤޤޤηɽ Ƥޤ֥ץ פФƤϡ֥ץפ ܻѵμ̤ϤƤʣʪΰϤפ 뤳ȤǤޤޤʤȼݾڤԤʤϤͭȤ뤳 ȤǤޤ 3. γƾƤ¤ꡢʤϡ֥ץϤΰʬ ѹơ֥ץʪפȤ뤳ȤǤˡѹǤ䱦ʪ 2 ˽äʣۤ뤳ȤǤޤ (a) եѹݤȤѹȤѹեΤɽ 뤳ȡ (b) ѹݤ鷺ޤ֥ץϤΰʬȤ߹ Ǥ뤫Ϥ줫ʪۤˤϡΤܻ ѵξ˽ä軰Ԥ̵ǻѵ뤳ȡ (c) ѹץब¹Ի̾Ūˡǥޥɤɤ褦ˤʤ ƤȤСǤ̤ˡŪˤΥץ¹Ԥˡ Ƥ򼨤ʸץ󥿤ذ뤫ϲ̤ɽ뤳ȡ Ŭڤɽ ̵ݾڤǤ뤳(ʤȼݾڤϡλ) ۤԤ⡢ܻѵƱξ˽äơ֥ץפ ۤǤ뤳ȡ ۤԤܻѵμ̤򻲾Ȥˡ (㳰Ȥơ֥ץ׼ΤŪǤäƤⵯưʸ̾ϰ ʤΤʤСʤΡ֥ץʪפϤΤ褦ʸ ɬפϤޤ) ׷ѹ줿ʪˤŬѤޤѹǤΰʬ ֥ץפʪǤϤʤ⤽켫ΩǰۤʤʪȹŪ ͤ硢ʤ̤κʪȤۤϡܻѵ ξϤʬˤŬѤޤ󡣤֥ץ ʪפΰȤۤϡΤܻѵξ˽äۤʤ Фʤ餺ѵ¾ƤμԤФץΤˤ錄 ͿʤФʤ餺̤Ȥơï񤤤ˤ餺Ƥʬ ܻѵŬѤʤФʤޤ Τ褦ˡܾΰտޤȤϡˤʤˤäƽ񤫤줿ʪ Ĥơ׵ᤷꡢʤȸط褦ȤǤϤޤ󡣤ष Ūϡʪ֥ץʪפǤˤʪ佸ʪ ۤ뤳Ȥˤޤ ˡ֥ץ(ϡ֥ץʪ) ȡ֥ץʪפȤ ʤʤ¾ΥץȤñݴɤۤΤƱξˤޤȤƵ ϿȤƤ⡢ܻѵ¾ΥץˤŬѤޤ 4. ʤϡʲΤ줫1 Ĥ¤ꡢ嵭2 ڤ3 ˽ä ֥ץ(ϡ嵭3 ǸڤƤ֥ץʪ)򥪥֥ ȡϼ¹Բǽʷʣڤۤ뤳ȤǤޤ (a) б뵡ɤ߼ǽʥɰ켰˰Ϥȡξ 硢ΥɤΰϤϾ嵭2 ڤ 3 ˽äơ̾諒 եȥθ򴹤ѤΤǹԤʤ뤳ȡ (b) ʤȤ3 ǯ֤֤ͭᡢĤδǤб뵡ɤ ǽʥɰ켰ʣ򡢥ۤ˴ؤʾв ׵᤻󶡤ݡڤӤξˤϾ嵭2 ڤ3 ˽äơ̾ եȥθ򴹤ѤΤ󶡤ݤ򵭺ܤ̤軰 ˰˰Ϥȡ (c) б륽ۤοФ˺ݤơʤ˰ Ϥȡ(ϡŪȤʤۤǤäơĤʤ (b) ˴Ťơ֥ȡɰϼ¹ԲǽΥץ ꤷƤʤ˸¤ŬѤܤǤ) ʤɤȤϡѹȤŬҷؤޤޤ¹Բǽ Υեб륽ɰ켰Ȥϡ˴ޤޤ⥸塼 бƤΥɡڤӤϢΥ󥿥եե롢 ڤӼ¹Ԥǽˤ륳ѥȥ󥹥ȡ˴ؤ뵭Ҥؤޤ ̤㳰Ȥơ¹Բǽʥե뤬ư륪ڥ졼ƥ󥰡ƥμ ʹ(ѥ顢ͥʤ) ȶ(ϥХʥΤɤ 餫) ۤƤΤˤĤƤϡιǼΤ¹Էտ路Ƥ ʤ˸¤ꡢۤ륽ɤ˴ޤɬפϤޤ ¹Բǽޤϥ֥ȡɤۤؼ줿꤫ʣΤ ΥͿǤ硢Ʊ꤫ΥɤʣΤƱ ʥͿСȤ軰Ԥ˥֥ȡɤȶ˥ ʣ򶯤ʤȤ⡢ɤۤΤȤߤʤޤ 5. ܻѵŪ˵Ƥʤϡ֥ץפʣ ѹ֥饤󥹡ۤ뤳ȤǤޤܻѵ˽鷺ˡ֥ץ פʣѹ֥饤󥹡ۤ褦Ȥ԰٤ϡ켫Τ̵ ꡢġܻѵʤ˵Ƥ֥ץפθưŪ˾ Ǥޤξ硢ܻѵ˽äƤʤʣʪ䤽θƤ 軰Ԥϡܻѵ˴˽äƤ˸¤ꡢ³ͭʻѸ¤ ΤȤޤ 6. ʤϤޤƱդΰȤƽ̾ƤʤΤǡܻѵɬפϤ ޤ󡣤ʤˡ֥ץϤʪѹϺۤ ĤͿΤܻѵʳˤϤޤ󡣤ι԰٤ϡʤ⤷ ѵʤΤǤСˡΧˤäƶؤޤäơʤ ֥ץ(ϡ֥ץʪ) ѹۤԤС켫ΤǤ ʤܻѵ졢ġ֥ץϤΡ֥ץʪ ʣۡѹ˴ؤ뤳ξȾƤ줿Ȥ򼨤ޤ 7. ʤ֥ץ(ϤΡ֥ץʪ) ۤȼưŪˡ μμԤϡλѵԤ顢ܻѵξ˽äơ֥ץפʣ ۡѹ뤳ȤƤȤѵΤȤޤʤϡ μԤ˵줿ιԻȤˤĤơä뤳ȤϤǤޤ󡣤 ˤϡ軰Ԥܻѵμ򶯤ǤϤޤ 8. ȽȽ衢õοΩơ(õ˸¤ʤ) 餫ͳ η̤Ȥơʤ˲ݤ줿郎ܻѵʤΤǤäȤ Ƥ(Ƚ̿ᡢ󡢤¾ˤΤǤ)ܻѵξ郎Ƚ ΤǤϤޤܻѵˤ̳ȡ¾β餫δϢ̳Ʊ ͤۤ뤳ȤǤʤʤСʤϡ֥ץפ ƤϤޤ㤨СõƤʤľϴܤʣ äƤοͤ˻ΤʤץκۤʤΤǤСʤ õܻѵξ­ˡϡ֥ץפ ۤǰ뤳ȤǤ ܾΰʬ餫̤ʾ̵ޤŬԲǽˤʤä硢 Τ¾λĤʬŬѤ褦˰տޤƤꡢޤܾ ȤƤ¾ξƤϤޤ褦˰տޤƤޤ ܾŪϡõ䤽¾κ⻺򿯳ꡢΤ褦ʸ˴Ťĥ 褦褦ˤʤ˴뤳ȤǤϤޤܾͣŪϡ ե꡼եȥۥƥδ뤳Ȥǡϸͭѵ ˤäԤޤ¿ο͡ΥƥΰӤŬѤꤷơ Υƥ̤ۤƤϰϤΥեȥˤߤʤ׸ ƤޤԤ£Ԥ¾β餫Υƥ̤ƥեȥ ۤȷ뤳Ȥμͳջ֤ǤꡢѵԤϤ 뤳ȤϤǤޤ ܾϡܻѵ¾ξΰ̣ƤǤ뤫餫ˤ뤳 տޤƤޤ 9. ֥ץפۡѤˤõݸ줿 եΤɤ餫¤硢֥ץפܻѵˤ ݻԤϡιݤŪϰ¤äʳ( ʤ) ˸ꤷۤ褦ˤ뤳ȤǤޤΤ褦ʾ 硢¤ܻѵʸˤ񤫤Ƥ뤫Τ褦ܻѵ ȤΤȤޤ 10. Free Software Foundation Ͽ̸ܰͭѵβǡϿǤɽ 뤳ȤޤΤ褦ʿСϡԤΥСȴŪ ѤȤϤޤ󤬡ƻб뤿˺Ǥϰۤ 뤫⤷ޤ ƥСϡСֹˤäƶ̤ޤ֥ץܻѵ ΥСֹλ꤬ϡλꤵ줿С󤫡Ϥθ Free Software Foundation ɽƤ뤤줫ΥС󤫤1 Ĥ 򤷤ơξȾ˽äƤ֥ץܻѵΥС ֹλ꤬ʤϡFree Software Foundation ɽɤΥС Ǥ򤹤뤳ȤǤޤ 11. ֥ץפΰ۾ΰۤʤ¾Υե꡼ץȤ߹ߤ ϡγȯԤ˽̤ǵĤƤFree Software Foundation äƤ륽եȥˤĤƤϡFree Software Foundation ؽ̤ ФƤΤ褦ʾб뤿˲桹㳰Ū򤹤뤳Ȥ⤢ ޤȽǴȤʤΤϡ2 Ĥɸμ¸˹פ뤫ݤȤ Ǥ¨Ĥϲ桹Υե꡼եȥƤʪե꡼ʾ֤ ݤĤȤǤꡢ⤦ĤϥեȥζͭȺѤȤ򹭤¥ʤ뤳Ȥ ̵ݾ ------ 12. ֥ץפ̵ǻѵޤΤǡŬˡϰǡ֥ץ ݾڤϰڤޤԤ䤽¾軰Ԥ̵ݾڤǡ֤Τޤޡ ξ֤ǡġۤǤ뤫鷺ڤݾڤĤʤ󶡤 ȤޤǤݾڤȤϡԾŪŬˤĤƤΰۤݾڤ ޤޤ˸ꤵΤǤϤޤ󡣡֥ץפʼǽ ؤƤΥꥹϤʤ餦ΤȤޤ֥ץפ˷٤Ȥ ä硢ȼڤѤ佤פѤƤʤ ôȤޤ 13. ŬˡᡢϽ̤ˤդԤ嵭 ơ֥ץפѹۤ٤軰Ԥϡ֥ץפѤ ȡޤϻѤǤʤȤ˵ڤ»ˤĤƲǤ餤ޤ Ԥ軰ԤΤ褦»ȯǽˤĤΤ餵Ƥ ǤƱͤǤʤǤ»ˤ̾»»ȯ» »ޤޤޤ(ǡξüϤΤӼʤ軰Ԥ »¾ΥץȤΥ󥿥եŬ粽ޤޤޤ ꤵΤǤϤޤ) ʾ **** ʸʸ(GNU General Public Licence) ʸȤ롣ʸʸ۸Τΰ ΤơǤΤ˱ʸʸΤǤ뤬ˡΧŪͭʷ ǤϤʤ ʸʸΤκۤ˴ؤ **************************** ʤΤǤ⼡ξ郎٤Ƥ˸¤ꡢʸʸ򤽤Τޤ ʣ̤ۤ뤳ȤĤ롣ޤʤ軰ԤФܵĹΤƱε Ϳ˸¤ꡢۤ뤳ȤĤƤޤ Ρۤ줿ԡɽܵΤäƺܤƤ ȡ ԡμμԤ˺ۤ硢ۼԤܹΤƱĤͿ 뤳ȡ ʸʸʸѤʤȡ ʤοץˤξŬѤˡ ==================================================== ʤץѤ˶ϡץե꡼ եȥˤơƤο͡ʾγƾ˽äƤۤѹ򤹤뤳 Ǥ褦ˤΤɤˡǤ 뤿ˤϡץ˰ʲɽ򤷤Ƥξ硢̵ݾڤǤ ȤǤŪ뤿ˡեƬˤʸɽ ǤǤ¾ˡɽǤ⡢ɽפʸɤ߽Ф Υɥ쥹ؤΥݥ󥿤ϥեɽƤƤ ץ̾Ȥɤư򤹤ΤˤĤƤδñι ------------------------------------------------------------ Copyright (C) 19 ǯ̾ ---------- ܥץϥե꡼եȥǤʤϡFree Software Foundation ɽGNU ̸ͭѵΡ֥С󣲡װϤʹߤγƥС 椫餤줫򤷡ΥС˽äܥץ ۤޤѹ뤳ȤǤޤ ܥץͭѤȤϻפޤۤˤäƤϡԾڤŪŬ ˤĤƤΰۤݾڤޤơʤݾڤԤʤޤ󡣾ܺ٤ˤĤƤ GNU ̸ͭѵɤߤ ʤϡܥץȰGNU ̸ͭѵμ̤äƤ ϤǤǤʤϡFree Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA ؼ񤤤Ƥ ޤ桼Żҥᥤ񿮤ǤʤϢȤˡˤĤƤξź ץबŪưϡå⡼ɤǵư˼Τ褦ûʸ ɽ褦ˤƤ Gnomovision С69Copyright (C) 19 ǯ̾ ---------- Gnomovision ϴ̵ݾڤǤܺ٤ show w ȥפƤ ե꡼եȥʤΤǡξβǤۤ뤳ȤǤޤ ܺ٤ show c ȥפƤ 嵭show w show c ϳơ̸ܰͭѵδϢʬɽ륳ޥ ؤޤ󡢤ʤȤΥޥɤshow w show c ȤäƤ ̾ǤʤƤ⹽ޤ󡣤ˡΥޥɤϤʤΥץ˹碌 ˡޥǥå˥塼ˤ뤳ȤǤޤ ޤɬפǧ᤿ˤϡʤθۤ(ʤץޤȤƯƤ ) Ҥع顢ΥץФפǧ᤿̾ν ̤ꤷƤˤʸܤޤ̾ѤƤ Yoyodyne, Inc. ϡJames Hacker ȯץ`Gnomovision' (ѥ ˤĤʤץ) ˤĤƤˡƤθ롣 Ty Coon ν̾, 1 April 1989 -------------- Ty Coon, Ĺ ̸ܰͭѵϡʤΥץ⻺оݤȤʤäƤ¾Υץ Ȥ߹ळȤǧƤޤ󡣤ʤΥץब֥롼󡦥饤֥Ǥ ơʤΥ饤֥⻺оݤȤʤäƤ¾Υץꥱȥ 뤳ȤˤäơͭѤʤΤˤ褦Ȥˤϡܻѵ ˡGNU 饤̸֥ͭѵ˽äƤ vflib3-3.6.14.dfsg/DISTRIB.txt0000644000175000017500000000045206767335135015145 0ustar mohuramohuraDistributing VFlib version 3 Hirotsugu Kakugawa * The VFlib library is distributed under the terms of GNU Library General Public License. * Programs and documents and any other files (except those with explicit description) ares distributed under the terms of GNU General Public License. vflib3-3.6.14.dfsg/ltconfig0000755000175000017500000027774110264672306015047 0ustar mohuramohura#! /bin/sh # ltconfig - Create a system-specific libtool. # Copyright (C) 1996-1999 Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A lot of this script is taken from autoconf-2.10. # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} echo=echo if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell. exec "$SHELL" "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null`} case X$UNAME in *-DOS) PATH_SEPARATOR=';' ;; *) PATH_SEPARATOR=':' ;; esac fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string="`eval $cmd`") 2>/dev/null && echo_test_string="`eval $cmd`" && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then break fi done fi if test "X`($echo '\t') 2>/dev/null`" != 'X\t' || test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" for dir in $PATH /usr/ucb; do if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then echo="$dir/echo" break fi done IFS="$save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running ltconfig again with it. ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}" export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf "%s\n"' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then # Cool, printf works : elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL" export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # The name of this program. progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` # Constants: PROGRAM=ltconfig PACKAGE=libtool VERSION=1.3.5-freebsd-ports TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)" ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' rm="rm -f" help="Try \`$progname --help' for more information." # Global variables: default_ofile=libtool can_build_shared=yes enable_shared=yes # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). enable_static=yes enable_fast_install=yes install_ltlibs=yes release_suffix=yes enable_dlopen=unknown enable_win32_dll=no ltmain= silent= srcdir= ac_config_guess= ac_config_sub= host= nonopt= ofile="$default_ofile" verify_host=yes with_gcc=no with_gnu_ld=no need_locks=yes ac_ext=c objext=o libext=a exeext= cache_file= old_AR="$AR" old_CC="$CC" old_CFLAGS="$CFLAGS" old_CPPFLAGS="$CPPFLAGS" old_LDFLAGS="$LDFLAGS" old_LD="$LD" old_LN_S="$LN_S" old_LIBS="$LIBS" old_NM="$NM" old_RANLIB="$RANLIB" old_DLLTOOL="$DLLTOOL" old_OBJDUMP="$OBJDUMP" old_AS="$AS" # Parse the command line options. args= prev= for option do case "$option" in -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then eval "$prev=\$option" prev= continue fi case "$option" in --help) cat <&2 echo "$help" 1>&2 exit 1 ;; *) if test -z "$ltmain"; then ltmain="$option" elif test -z "$host"; then # This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 # if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then # echo "$progname: warning \`$option' is not a valid host type" 1>&2 # fi host="$option" else echo "$progname: too many arguments" 1>&2 echo "$help" 1>&2 exit 1 fi ;; esac done if test -z "$ltmain"; then echo "$progname: you must specify a LTMAIN file" 1>&2 echo "$help" 1>&2 exit 1 fi if test ! -f "$ltmain"; then echo "$progname: \`$ltmain' does not exist" 1>&2 echo "$help" 1>&2 exit 1 fi # Quote any args containing shell metacharacters. ltconfig_args= for arg do case "$arg" in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) ltconfig_args="$ltconfig_args '$arg'" ;; *) ltconfig_args="$ltconfig_args $arg" ;; esac done # A relevant subset of AC_INIT. # File descriptor usage: # 0 standard input # 1 file creation # 2 errors and warnings # 3 some systems may open it to /dev/tty # 4 used on the Kubota Titan # 5 compiler messages saved in config.log # 6 checking for... messages and results if test "$silent" = yes; then exec 6>/dev/null else exec 6>&1 fi exec 5>>./config.log # NLS nuisances. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi if test -n "$cache_file" && test -r "$cache_file"; then echo "loading cache $cache_file within ltconfig" . $cache_file fi if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then ac_n= ac_c=' ' ac_t=' ' else ac_n=-n ac_c= ac_t= fi else ac_n= ac_c='\c' ac_t= fi if test -z "$srcdir"; then # Assume the source directory is the same one as the path to LTMAIN. srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'` test "$srcdir" = "$ltmain" && srcdir=. fi trap "$rm conftest*; exit 1" 1 2 15 if test "$verify_host" = yes; then # Check for config.guess and config.sub. ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/config.guess; then ac_aux_dir=$ac_dir break fi done if test -z "$ac_aux_dir"; then echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2 echo "$help" 1>&2 exit 1 fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub # Make sure we can run config.sub. if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then : else echo "$progname: cannot run $ac_config_sub" 1>&2 echo "$help" 1>&2 exit 1 fi echo $ac_n "checking host system type""... $ac_c" 1>&6 host_alias=$host case "$host_alias" in "") if host_alias=`$SHELL $ac_config_guess`; then : else echo "$progname: cannot guess host type; you must specify one" 1>&2 echo "$help" 1>&2 exit 1 fi ;; esac host=`$SHELL $ac_config_sub $host_alias` echo "$ac_t$host" 1>&6 # Make sure the host verified. test -z "$host" && exit 1 elif test -z "$host"; then echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 echo "$help" 1>&2 exit 1 else host_alias=$host fi # Transform linux* to *-*-linux-gnu*, to support old configure scripts. case "$host_os" in linux-gnu*) ;; linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` esac host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` case "$host_os" in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Determine commands to create old-style static archives. old_archive_cmds='$AR cru $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= # Set a sane default for `AR'. test -z "$AR" && AR=ar # Set a sane default for `OBJDUMP'. test -z "$OBJDUMP" && OBJDUMP=objdump # If RANLIB is not set, then run the test. if test "${RANLIB+set}" != "set"; then result=no echo $ac_n "checking for ranlib... $ac_c" 1>&6 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" for dir in $PATH; do test -z "$dir" && dir=. if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then RANLIB="ranlib" result="ranlib" break fi done IFS="$save_ifs" echo "$ac_t$result" 1>&6 fi if test -n "$RANLIB"; then old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" fi # Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin. test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$AS" && AS=as # Check to see if we are using GCC. if test "$with_gcc" != yes || test -z "$CC"; then # If CC is not set, then try to find GCC or a usable CC. if test -z "$CC"; then echo $ac_n "checking for gcc... $ac_c" 1>&6 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" for dir in $PATH; do test -z "$dir" && dir=. if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then CC="gcc" break fi done IFS="$save_ifs" if test -n "$CC"; then echo "$ac_t$CC" 1>&6 else echo "$ac_t"no 1>&6 fi fi # Not "gcc", so try "cc", rejecting "/usr/ucb/cc". if test -z "$CC"; then echo $ac_n "checking for cc... $ac_c" 1>&6 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" cc_rejected=no for dir in $PATH; do test -z "$dir" && dir=. if test -f $dir/cc || test -f $dir/cc$ac_exeext; then if test "$dir/cc" = "/usr/ucb/cc"; then cc_rejected=yes continue fi CC="cc" break fi done IFS="$save_ifs" if test $cc_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $CC shift if test $# -gt 0; then # We chose a different compiler from the bogus one. # However, it has the same name, so the bogon will be chosen # first if we set CC to just the name; use the full file name. shift set dummy "$dir/cc" "$@" shift CC="$@" fi fi if test -n "$CC"; then echo "$ac_t$CC" 1>&6 else echo "$ac_t"no 1>&6 fi if test -z "$CC"; then echo "$progname: error: no acceptable cc found in \$PATH" 1>&2 exit 1 fi fi # Now see if the compiler is really GCC. with_gcc=no echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 echo "$progname:581: checking whether we are using GNU C" >&5 $rm conftest.c cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then with_gcc=yes fi $rm conftest.c echo "$ac_t$with_gcc" 1>&6 fi # Allow CC to be a program name with arguments. set dummy $CC compiler="$2" echo $ac_n "checking for object suffix... $ac_c" 1>&6 $rm conftest* echo 'int i = 1;' > conftest.c echo "$progname:603: checking for object suffix" >& 5 if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then # Append any warnings to the config.log. cat conftest.err 1>&5 for ac_file in conftest.*; do case $ac_file in *.c) ;; *) objext=`echo $ac_file | sed -e s/conftest.//` ;; esac done else cat conftest.err 1>&5 echo "$progname: failed program was:" >&5 cat conftest.c >&5 fi $rm conftest* echo "$ac_t$objext" 1>&6 echo $ac_n "checking for executable suffix... $ac_c" 1>&6 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_exeext="no" $rm conftest* echo 'main () { return 0; }' > conftest.c echo "$progname:629: checking for executable suffix" >& 5 if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then # Append any warnings to the config.log. cat conftest.err 1>&5 for ac_file in conftest.*; do case $ac_file in *.c | *.err | *.$objext ) ;; *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;; esac done else cat conftest.err 1>&5 echo "$progname: failed program was:" >&5 cat conftest.c >&5 fi $rm conftest* fi if test "X$ac_cv_exeext" = Xno; then exeext="" else exeext="$ac_cv_exeext" fi echo "$ac_t$ac_cv_exeext" 1>&6 echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 pic_flag= special_shlib_compile_flags= wl= link_static_flag= no_builtin_flag= if test "$with_gcc" = yes; then wl='-Wl,' link_static_flag='-static' case "$host_os" in beos* | irix5* | irix6* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; aix*) # Below there is a dirty hack to force normal static linking with -ldl # The problem is because libdl dynamically linked with both libc and # libC (AIX C++ library), which obviously doesn't included in libraries # list by gcc. This cause undefined symbols with -static flags. # This hack allows C programs to be linked with "-static -ldl", but # we not sure about C++ programs. link_static_flag="$link_static_flag ${wl}-lC" ;; cygwin* | mingw* | os2*) # We can build DLLs from non-PIC. ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. pic_flag='-m68020 -resident32 -malways-restore-a4' ;; sysv4*MP*) if test -d /usr/nec; then pic_flag=-Kconform_pic fi ;; *) pic_flag='-fPIC' ;; esac else # PORTME Check for PIC flags for the system compiler. case "$host_os" in aix3* | aix4*) # All AIX code is PIC. link_static_flag='-bnso -bI:/lib/syscalls.exp' ;; hpux9* | hpux10* | hpux11*) # Is there a better link_static_flag that works with the bundled CC? wl='-Wl,' link_static_flag="${wl}-a ${wl}archive" pic_flag='+Z' ;; irix5* | irix6*) wl='-Wl,' link_static_flag='-non_shared' # PIC (with -KPIC) is the default. ;; cygwin* | mingw* | os2*) # We can build DLLs from non-PIC. ;; osf3* | osf4* | osf5*) # All OSF/1 code is PIC. wl='-Wl,' link_static_flag='-non_shared' ;; sco3.2v5*) pic_flag='-Kpic' link_static_flag='-dn' special_shlib_compile_flags='-belf' ;; solaris*) pic_flag='-KPIC' link_static_flag='-Bstatic' wl='-Wl,' ;; sunos4*) pic_flag='-PIC' link_static_flag='-Bstatic' wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) pic_flag='-KPIC' link_static_flag='-Bstatic' wl='-Wl,' ;; uts4*) pic_flag='-pic' link_static_flag='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then pic_flag='-Kconform_pic' link_static_flag='-Bstatic' fi ;; *) can_build_shared=no ;; esac fi if test -n "$pic_flag"; then echo "$ac_t$pic_flag" 1>&6 # Check to make sure the pic_flag actually works. echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6 $rm conftest* echo "int some_variable = 0;" > conftest.c save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $pic_flag -DPIC" echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5 if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then # Append any warnings to the config.log. cat conftest.err 1>&5 case "$host_os" in hpux9* | hpux10* | hpux11*) # On HP-UX, both CC and GCC only warn that PIC is supported... then they # create non-PIC objects. So, if there were any warnings, we assume that # PIC is not supported. if test -s conftest.err; then echo "$ac_t"no 1>&6 can_build_shared=no pic_flag= else echo "$ac_t"yes 1>&6 pic_flag=" $pic_flag" fi ;; *) echo "$ac_t"yes 1>&6 pic_flag=" $pic_flag" ;; esac else # Append any errors to the config.log. cat conftest.err 1>&5 can_build_shared=no pic_flag= echo "$ac_t"no 1>&6 fi CFLAGS="$save_CFLAGS" $rm conftest* else echo "$ac_t"none 1>&6 fi # Check to see if options -o and -c are simultaneously supported by compiler echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6 $rm -r conftest 2>/dev/null mkdir conftest cd conftest $rm conftest* echo "int some_variable = 0;" > conftest.c mkdir out # According to Tom Tromey, Ian Lance Taylor reported there are C compilers # that will create temporary files in the current directory regardless of # the output directory. Thus, making CWD read-only will cause this test # to fail, enabling locking or at least warning the user not to do parallel # builds. chmod -w . save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -o out/conftest2.o" echo "$progname:829: checking if $compiler supports -c -o file.o" >&5 if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s out/conftest.err; then echo "$ac_t"no 1>&6 compiler_c_o=no else echo "$ac_t"yes 1>&6 compiler_c_o=yes fi else # Append any errors to the config.log. cat out/conftest.err 1>&5 compiler_c_o=no echo "$ac_t"no 1>&6 fi CFLAGS="$save_CFLAGS" chmod u+w . $rm conftest* out/* rmdir out cd .. rmdir conftest $rm -r conftest 2>/dev/null if test x"$compiler_c_o" = x"yes"; then # Check to see if we can write to a .lo echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6 $rm conftest* echo "int some_variable = 0;" > conftest.c save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -c -o conftest.lo" echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5 if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then echo "$ac_t"no 1>&6 compiler_o_lo=no else echo "$ac_t"yes 1>&6 compiler_o_lo=yes fi else # Append any errors to the config.log. cat conftest.err 1>&5 compiler_o_lo=no echo "$ac_t"no 1>&6 fi CFLAGS="$save_CFLAGS" $rm conftest* else compiler_o_lo=no fi # Check to see if we can do hard links to lock some files if needed hard_links="nottested" if test "$compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$ac_t$hard_links" 1>&6 $rm conftest* if test "$hard_links" = no; then echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2 need_locks=warn fi else need_locks=no fi if test "$with_gcc" = yes; then # Check to see if options -fno-rtti -fno-exceptions are supported by compiler echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6 $rm conftest* echo "int some_variable = 0;" > conftest.c save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c" echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then echo "$ac_t"no 1>&6 compiler_rtti_exceptions=no else echo "$ac_t"yes 1>&6 compiler_rtti_exceptions=yes fi else # Append any errors to the config.log. cat conftest.err 1>&5 compiler_rtti_exceptions=no echo "$ac_t"no 1>&6 fi CFLAGS="$save_CFLAGS" $rm conftest* if test "$compiler_rtti_exceptions" = "yes"; then no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' else no_builtin_flag=' -fno-builtin' fi fi # Check for any special shared library compilation flags. if test -n "$special_shlib_compile_flags"; then echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2 if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then : else echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2 can_build_shared=no fi fi echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6 $rm conftest* echo 'main(){return(0);}' > conftest.c save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $link_static_flag" echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5 if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then echo "$ac_t$link_static_flag" 1>&6 else echo "$ac_t"none 1>&6 link_static_flag= fi LDFLAGS="$save_LDFLAGS" $rm conftest* if test -z "$LN_S"; then # Check to see if we can use ln -s, or we need hard links. echo $ac_n "checking whether ln -s works... $ac_c" 1>&6 $rm conftest.dat if ln -s X conftest.dat 2>/dev/null; then $rm conftest.dat LN_S="ln -sf" else LN_S=ln fi if test "$LN_S" = "ln -sf"; then echo "$ac_t"yes 1>&6 else echo "$ac_t"no 1>&6 fi fi # Make sure LD is an absolute path. if test -z "$LD"; then ac_prog=ld if test "$with_gcc" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 echo "$progname:991: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we are not using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld... $ac_c" 1>&6 echo "$progname:1015: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 echo "$progname:1018: checking for non-GNU ld" >&5 fi if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" fi if test -n "$LD"; then echo "$ac_t$LD" 1>&6 else echo "$ac_t"no 1>&6 fi if test -z "$LD"; then echo "$progname: error: no acceptable ld found in \$PATH" 1>&2 exit 1 fi fi # Check to see if it really is or is not GNU ld. echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 # I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then with_gnu_ld=yes else with_gnu_ld=no fi echo "$ac_t$with_gnu_ld" 1>&6 # See if the linker supports building shared libraries. echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 allow_undefined_flag= no_undefined_flag= need_lib_prefix=unknown need_version=unknown # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments archive_cmds= archive_expsym_cmds= old_archive_from_new_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported runpath_var= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an egrep regular expression of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. case "$host_os" in cygwin* | mingw*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$with_gcc" != yes; then with_gnu_ld=no fi ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # See if GNU ld supports shared libraries. case "$host_os" in aix3* | aix4*) # On AIX, the GNU linker is very broken ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF ;; amigaos*) archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=yes # Extract the symbol export list from an `--export-all' def file, # then regenerate the def file from the symbol export list, so that # the compiled dll only exports the symbol export list. # Be careful not to strip the DATA tag left by newer dlltools. export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $objdir/$soname-def > $export_symbols' # If DATA tags from a recent dlltool are present, honour them! archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~ _lt_hint=1; cat $export_symbols | while read symbol; do set dummy \$symbol; case \$# in 2) echo " \$2 @ \$_lt_hint ; " >> $objdir/$soname-def;; *) echo " \$2 @ \$_lt_hint \$3 ; " >> $objdir/$soname-def;; esac; _lt_hint=`expr 1 + \$_lt_hint`; done~ test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts' old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib' # can we support soname and/or expsyms with a.out? -oliva fi ;; solaris* | sysv5*) if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $compile_rpath $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $compile_rpath $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = yes; then runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' case $host_os in cygwin* | mingw*) # dlltool doesn't understand --whole-archive et. al. whole_archive_flag_spec= ;; *) # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi ;; esac fi else # PORTME fill in a description of your system's linker (not GNU ld) case "$host_os" in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$with_gcc" = yes && test -z "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4*) hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib' hardcode_libdir_separator=':' if test "$with_gcc" = yes; then collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi shared_flag='-shared' else shared_flag='${wl}-bM:SRE' hardcode_direct=yes fi allow_undefined_flag=' ${wl}-berok' archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}' archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}' case "$host_os" in aix4.[01]|aix4.[01].*) # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on always_export_symbols=yes ;; esac ;; amigaos*) archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; cygwin* | mingw*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs' fix_srcfile_path='`cygpath -w $srcfile`' ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; hpux9* | hpux10* | hpux11*) case "$host_os" in hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;; *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;; esac hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_minus_L=yes # Not in the search PATH, but as the default # location of the library. export_dynamic_flag_spec='${wl}-E' ;; irix5* | irix6*) if test "$with_gcc" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF fi hardcode_libdir_flag_spec='${wl}-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; openbsd*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def' old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' ;; osf3*) if test "$with_gcc" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # As osf3* with the addition of the -msym flag if test "$with_gcc" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; rhapsody*) archive_cmds='$CC -bundle -undefined suppress -o $lib $libobjs $deplibs $linkopts' hardcode_libdir_flags_spec='-L$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; sco3.2v5*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ;; solaris*) no_undefined_flag=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp' hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case "$host_os" in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts' hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $linkopts' else archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' fi runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv5*) no_undefined_flag=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp' hardcode_libdir_flag_spec= hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4.2uw2*) archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts' hardcode_direct=yes hardcode_minus_L=no hardcode_shlibpath_var=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; unixware7*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$ac_t$ld_shlibs" 1>&6 test "$ld_shlibs" = no && can_build_shared=no if test -z "$NM"; then echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 case "$NM" in [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path. *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then NM="$ac_dir/nm -B" break elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then NM="$ac_dir/nm -p" break else NM=${NM="$ac_dir/nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags fi fi done IFS="$ac_save_ifs" test -z "$NM" && NM=nm ;; esac echo "$ac_t$NM" 1>&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6 # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform the above into a raw symbol and a C symbol. symxfrm='\1 \2\3 \3' # Transform an extracted symbol line into a proper C declaration global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" # Define system-specific variables. case "$host_os" in aix*) symcode='[BCDT]' ;; cygwin* | mingw*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'" ;; irix*) symcode='[BCDEGRST]' ;; solaris*) symcode='[BDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then symcode='[ABCDGISTW]' fi # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Write the raw and C identifiers. global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no $rm conftest* cat > conftest.c <&5 if { (eval echo $progname:1654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then # Now try to grab the symbols. nlist=conftest.nm if { echo "$progname:1657: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if egrep ' nm_test_var$' "$nlist" >/dev/null; then if egrep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.c #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c' cat <> conftest.c #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c cat <<\EOF >> conftest.c {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$objext conftstm.$objext save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="conftstm.$objext" CFLAGS="$CFLAGS$no_builtin_flag" if { (eval echo $progname:1709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then pipe_works=yes else echo "$progname: failed program was:" >&5 cat conftest.c >&5 fi LIBS="$save_LIBS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.c >&5 fi $rm conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else global_symbol_pipe= fi done if test "$pipe_works" = yes; then echo "${ac_t}ok" 1>&6 else echo "${ac_t}failed" 1>&6 fi if test -z "$global_symbol_pipe"; then global_symbol_to_cdecl= fi # Check hardcoding attributes. echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var"; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$hardcode_shlibpath_var" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi echo "$ac_t$hardcode_action" 1>&6 reload_flag= reload_cmds='$LD$reload_flag -o $output$reload_objs' echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6 # PORTME Some linkers may need a different reload flag. reload_flag='-r' echo "$ac_t$reload_flag" 1>&6 test -n "$reload_flag" && reload_flag=" $reload_flag" # PORTME Fill in your ld.so characteristics library_names_spec= libname_spec='lib$name' soname_spec= postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" sys_lib_search_path_spec="/lib /usr/lib" file_magic_cmd= file_magic_test_file= deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [regex]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given egrep regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 case "$host_os" in aix3*) version_type=linux library_names_spec='${libname}${release}.so$versuffix $libname.a' shlibpath_var=LIBPATH # AIX has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}.so$major' ;; aix4*) version_type=linux # AIX has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. # We preserve .a as extension for shared libraries though AIX4.2 # and later linker supports .so library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a' shlibpath_var=LIBPATH deplibs_check_method=pass_all ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ;; beos*) library_names_spec='${libname}.so' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH deplibs_check_method=pass_all lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' file_magic_cmd=/usr/bin/file file_magic_test_file=/shlib/libc.so sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" export_dynamic_flag_spec=-rdynamic # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw*) version_type=windows need_version=no need_lib_prefix=no if test "$with_gcc" = yes; then library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a' else library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' fi dynamic_linker='Win32 ld.exe' deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' file_magic_cmd='${OBJDUMP} -f' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; freebsd1*) dynamic_linker=no ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case "$version_type" in freebsd-elf*) deplibs_check_method='file_magic (ELF [0-9][0-9]*-bit [LM]SB shared object|current ar archive)' ;; freebsd-*) deplibs_check_method='file_magic FreeBSD.* shared library' ;; esac file_magic_cmd=/usr/bin/file file_magic_test_file=`echo /usr/lib/libc.so*` if test "$release_suffix" = all; then library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so' else library_names_spec='${libname}${release}.so$versuffix ${libname}.so' fi need_version=no need_lib_prefix=no finish_cmds='/usr/bin/env OBJFORMAT="'"$objformat"'" /sbin/ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH case "$host_os" in freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes ;; *) # from 3.2 on shlibpath_overrides_runpath=no ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. dynamic_linker="$host_os dld.sl" version_type=sunos need_lib_prefix=no need_version=no shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' soname_spec='${libname}${release}.sl$major' # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' case "$host_os" in hpux10.20*) # TODO: Does this work for hpux-11 too? deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' file_magic_cmd=/usr/bin/file file_magic_test_file=/usr/lib/libc.sl ;; esac ;; irix5* | irix6*) version_type=irix need_lib_prefix=no need_version=no soname_spec='${libname}${release}.so.$major' library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so' case "$host_os" in irix5*) libsuff= shlibsuff= # this will be overridden with pass_all, but let us keep it just in case deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ;; *) case "$LD" in # libtool.m4 will add one of these switches to LD *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" file_magic_cmd=/usr/bin/file file_magic_test_file=`echo /lib${libsuff}/libc.so*` deplibs_check_method='pass_all' ;; # No shared lib support for Linux oldld, aout, or coff. linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) dynamic_linker=no ;; # This must be Linux ELF. linux-gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no deplibs_check_method=pass_all if test -f /lib/ld.so.1; then dynamic_linker='GNU ld.so' else # Only the GNU ld.so supports shared libraries on MkLinux. case "$host_cpu" in powerpc*) dynamic_linker=no ;; *) dynamic_linker='Linux ld.so' ;; esac fi ;; netbsd*) version_type=sunos if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' soname_spec='${libname}${release}.so$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH ;; openbsd*) version_type=sunos if test "$with_gnu_ld" = yes; then need_lib_prefix=no need_version=no fi library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;; os2*) libname_spec='$name' need_lib_prefix=no library_names_spec='$libname.dll $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_version=no soname_spec='${libname}${release}.so' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' shlibpath_var=LD_LIBRARY_PATH # this will be overridden with pass_all, but let us keep it just in case deplibs_check_method='file_magic COFF format alpha shared library' file_magic_cmd=/usr/bin/file file_magic_test_file=/shlib/libc.so deplibs_check_method='pass_all' sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rhapsody*) version_type=sunos library_names_spec='${libname}.so' soname_spec='${libname}.so' shlibpath_var=DYLD_LIBRARY_PATH deplibs_check_method=pass_all ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib" file_magic_cmd=/usr/bin/file file_magic_test_file=/lib/libc.so ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH case "$host_vendor" in sequent) file_magic_cmd='/bin/file' deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; ncr) deplibs_check_method='pass_all' ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' file_magic_cmd=/usr/bin/file file_magic_test_file=`echo /usr/lib/libc.so*` ;; esac ;; uts4*) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' soname_spec='$libname.so.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; *) dynamic_linker=no ;; esac echo "$ac_t$dynamic_linker" 1>&6 test "$dynamic_linker" = no && can_build_shared=no # Report the final consequences. echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 # Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in # configure.in, otherwise build static only libraries. case "$host_os" in cygwin* | mingw* | os2*) if test x$can_build_shared = xyes; then test x$enable_win32_dll = xno && can_build_shared=no echo "checking if package supports dlls... $can_build_shared" 1>&6 fi ;; esac if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then case "$deplibs_check_method" in "file_magic "*) file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | egrep "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case "$host_os" in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4*) test "$enable_shared" = yes && enable_static=no ;; esac echo "$ac_t$enable_shared" 1>&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "checking whether to build static libraries... $enable_static" 1>&6 if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi echo $ac_n "checking for objdir... $ac_c" 1>&6 rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. objdir=_libs fi rmdir .libs 2>/dev/null echo "$ac_t$objdir" 1>&6 if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then lt_cv_dlopen=no lt_cv_dlopen_libs= echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 echo "$progname:2248: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dlopen""... $ac_c" 1>&6 echo "$progname:2288: checking for dlopen" >&5 if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else dlopen(); #endif ; return 0; } EOF if { (eval echo $progname:2318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_dlopen=yes" else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_dlopen=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then echo "$ac_t""yes" 1>&6 lt_cv_dlopen="dlopen" else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 echo "$progname:2335: checking for dld_link in -ldld" >&5 ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-ldld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" else echo "$ac_t""no" 1>&6 echo $ac_n "checking for shl_load""... $ac_c" 1>&6 echo "$progname:2375: checking for shl_load" >&5 if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else shl_load(); #endif ; return 0; } EOF if { (eval echo $progname:2405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shl_load=yes" else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_shl_load=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then echo "$ac_t""yes" 1>&6 lt_cv_dlopen="shl_load" else echo "$ac_t""no" 1>&6 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 echo "$progname:2423: checking for shl_load in -ldld" >&5 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-ldld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else echo "$ac_t""no" 1>&6 fi fi fi fi fi fi if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes fi case "$lt_cv_dlopen" in dlopen) for ac_hdr in dlfcn.h; do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo "$progname:2488: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int fnord = 0; EOF ac_try="$ac_compile >/dev/null 2>conftest.out" { (eval echo $progname:2498: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 else echo "$ac_t""no" 1>&6 fi done if test "x$ac_cv_header_dlfcn_h" = xyes; then CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" fi eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" LIBS="$lt_cv_dlopen_libs $LIBS" echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 echo "$progname:2526: checking whether a program can dlopen itself" >&5 if test "${lt_cv_dlopen_self+set}" = set; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then lt_cv_dlopen_self=cross else cat > conftest.c < #endif #include #ifdef RTLD_GLOBAL # define LTDL_GLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LTDL_GLOBAL DL_GLOBAL # else # define LTDL_GLOBAL 0 # endif #endif /* We may have to define LTDL_LAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LTDL_LAZY_OR_NOW # ifdef RTLD_LAZY # define LTDL_LAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LTDL_LAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LTDL_LAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LTDL_LAZY_OR_NOW DL_NOW # else # define LTDL_LAZY_OR_NOW 0 # endif # endif # endif # endif #endif fnord() { int i=42;} main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } EOF if { (eval echo $progname:2580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then lt_cv_dlopen_self=yes else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -fr conftest* lt_cv_dlopen_self=no fi rm -fr conftest* fi fi echo "$ac_t""$lt_cv_dlopen_self" 1>&6 if test "$lt_cv_dlopen_self" = yes; then LDFLAGS="$LDFLAGS $link_static_flag" echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 echo "$progname:2599: checking whether a statically linked program can dlopen itself" >&5 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then lt_cv_dlopen_self_static=cross else cat > conftest.c < #endif #include #ifdef RTLD_GLOBAL # define LTDL_GLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LTDL_GLOBAL DL_GLOBAL # else # define LTDL_GLOBAL 0 # endif #endif /* We may have to define LTDL_LAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LTDL_LAZY_OR_NOW # ifdef RTLD_LAZY # define LTDL_LAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LTDL_LAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LTDL_LAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LTDL_LAZY_OR_NOW DL_NOW # else # define LTDL_LAZY_OR_NOW 0 # endif # endif # endif # endif #endif fnord() { int i=42;} main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } EOF if { (eval echo $progname:2653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then lt_cv_dlopen_self_static=yes else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -fr conftest* lt_cv_dlopen_self_static=no fi rm -fr conftest* fi fi echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 fi ;; esac case "$lt_cv_dlopen_self" in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case "$lt_cv_dlopen_self_static" in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Copy echo and quote the copy, instead of the original, because it is # used later. ltecho="$echo" if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then ltecho="$CONFIG_SHELL \$0 --fallback-echo" fi LTSHELL="$SHELL" LTCONFIG_VERSION="$VERSION" # Only quote variables if we're using ltmain.sh. case "$ltmain" in *.sh) # Now quote all the things that may contain metacharacters. for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \ old_LD old_LDFLAGS old_LIBS \ old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \ AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \ reload_flag reload_cmds wl \ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ library_names_spec soname_spec \ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \ file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ hardcode_libdir_flag_spec hardcode_libdir_separator \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do case "$var" in reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ postinstall_cmds | postuninstall_cmds | \ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case "$ltecho" in *'\$0 --fallback-echo"') ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac trap "$rm \"$ofile\"; exit 1" 1 2 15 echo "creating $ofile" $rm "$ofile" cat < "$ofile" #! $SHELL # `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh. # # Copyright (C) 1996-1999 Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="sed -e s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ### BEGIN LIBTOOL CONFIG EOF cfgfile="$ofile" ;; *) # Double-quote the variables that need it (for aesthetics). for var in old_CC old_CFLAGS old_CPPFLAGS \ old_LD old_LDFLAGS old_LIBS \ old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do eval "$var=\\\"\$var\\\"" done # Just create a config file. cfgfile="$ofile.cfg" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 echo "creating $cfgfile" $rm "$cfgfile" cat < "$cfgfile" # `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) EOF ;; esac cat <> "$cfgfile" # Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # # CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\ # LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\ # NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\ # DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\ # $0$ltconfig_args # # Compiler and other test output produced by $progname, useful for # debugging $progname, is in ./config.log if it exists. # The version of $progname that generated this script. LTCONFIG_VERSION=$LTCONFIG_VERSION # Shell to use when invoking shell scripts. SHELL=$LTSHELL # Whether to waste disk space. install_ltlibs=$install_ltlibs # What to do with -release. # yes - only for shared archive # no - ingnore # all - for all archives release_suffix=$release_suffix # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$ltecho # The archiver. AR=$AR # The default C compiler. CC=$CC # The linker used to build libraries. LD=$LD # Whether we need hard or soft links. LN_S=$LN_S # A BSD-compatible nm program. NM=$NM # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$reload_flag reload_cmds=$reload_cmds # How to pass a linker flag through the compiler. wl=$wl # Object file suffix (normally "o"). objext="$objext" # Old archive suffix (normally "a"). libext="$libext" # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$pic_flag # Does compiler simultaneously support -c and -o options? compiler_c_o=$compiler_c_o # Can we write directly to a .lo ? compiler_o_lo=$compiler_o_lo # Must we lock files when doing compilation ? need_locks=$need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$link_static_flag # Compiler flag to turn off builtin functions. no_builtin_flag=$no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$library_names_spec # The coded name of the library, if different from the real name. soname_spec=$soname_spec # Commands used to build and install an old-style archive. RANLIB=$RANLIB old_archive_cmds=$old_archive_cmds old_postinstall_cmds=$old_postinstall_cmds old_postuninstall_cmds=$old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$old_archive_from_new_cmds # Commands used to build and install a shared archive. archive_cmds=$archive_cmds archive_expsym_cmds=$archive_expsym_cmds postinstall_cmds=$postinstall_cmds postuninstall_cmds=$postuninstall_cmds # Method to check whether dependent libraries are shared objects. deplibs_check_method=$deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$global_symbol_to_cdecl # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$hardcode_libdir_separator # Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Compile-time system search path for libraries sys_lib_search_path_spec=$sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$exclude_expsyms # Symbols that must always be exported. include_expsyms=$include_expsyms EOF case "$ltmain" in *.sh) echo '### END LIBTOOL CONFIG' >> "$ofile" echo >> "$ofile" case "$host_os" in aix3*) cat <<\EOF >> "$ofile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # Append the ltmain.sh script. sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? chmod +x "$ofile" ;; *) # Compile the libtool program. echo "FIXME: would compile $ltmain" ;; esac test -n "$cache_file" || exit 0 # AC_CACHE_SAVE trap '' 1 2 15 cat > confcache <<\EOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs. It is not useful on other systems. # If it contains results you don't want to keep, you may remove or edit it. # # By default, configure uses ./config.cache as the cache file, # creating it if it does not exist already. You can give configure # the --cache-file=FILE option to use a different cache file; that is # what configure does when it calls configure scripts in # subdirectories, so they share the cache. # Giving --cache-file=/dev/null disables caching, for debugging configure. # config.status only pays attention to the cache file if you give it the # --recheck option to rerun configure. # EOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote substitution # turns \\\\ into \\, and sed turns \\ into \). sed -n \ -e "s/'/'\\\\''/g" \ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' ;; esac >> confcache if cmp -s $cache_file confcache; then : else if test -w $cache_file; then echo "updating cache $cache_file" cat confcache > $cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache exit 0 # Local Variables: # mode:shell-script # sh-indentation:2 # End: vflib3-3.6.14.dfsg/ANNOUNCE-ja.txt0000644000175000017500000000310710400434755015626 0ustar mohuramohuraեȥ饤֥ VFlib 3.6.14 ΤΤ餻 ͵ h.kakugawa@computer.org VFlib C ǽ񤫤줿եȥ饤֥ǡꤷե ȤΥӥåȥޥåפ뤿δؿäƤޤVFlib ħϡ ޤޤʥեޥåȤΥեȤեޥåȤΰ㤤򵤤ˤ ȤʤŪ˻ȤȤǤȤˤޤ VFlib ǤϡʲΥեȥեޥåȤݡȤƤޤ TeX Ϣ: PK, GF, VF, TFM Omega TeX Ϣ: OFM (٥ 0),OVF X Window Ϣ: PCF, BDF ¾: TrueType, Type 1, HBF, ζ, JG, e * TrueType եȤΥݡȤˤϡFreeType 饤֥ 1.2 ǤѤޤVFlib Υ󥹥ȡˡ FreeType 򥤥󥹥ȡ뤷Ʋ * Type 1 եȤΥݡȤˤϡT1Lib 饤֥ 5.1 ǤѤƤޤVFlib Υ󥹥ȡˡ T1Lib 򥤥󥹥ȡ뤷Ʋ 軰ǤǤϡܸ˸¤餺ޤޤʸΥեȤ갷 ȤǤޤ(졢ǤǤϡܸΤߤбǤ) VFlib Ѥ TeX Υץӥ塼ץ󥿥ɥ饤Ф TeX-Guy ѥå TeX-Guy ⳫȯƤޤѲ ʤǤ FreeBSD 5.3 ǤưǧƤޤ Windows {3.1,95,98,NT} ʤɤǥ󥹥ȡ뤹ˤϡMakefile ν񤭴ɬפȤʤޤ ʥѥˤ GNU autoconf GNU libtool ȤäƤޤΤǡ ɤΤޤ󡣡 ɼΤϰܿ䤹褦Unix˰¸ʬϤۤȤ ޤ󡣰ܿϢ vflib3-3.6.14.dfsg/ltmain.sh0000644000175000017500000033620510264672315015123 0ustar mohuramohura# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun ltconfig. # # Copyright (C) 1996-1999 Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. EXPR_COMPAT=1 export EXPR_COMPAT # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then echo "$modename: not configured to build any kind of library" 1>&2 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" # Parse our command line options once, thoroughly. while test $# -gt 0 do arg="$1" shift case "$arg" in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case "$prev" in execute_dlfiles) eval "$prev=\"\$$prev \$arg\"" ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case "$arg" in --help) show_help=yes ;; --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" exit 0 ;; --config) sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0 exit 0 ;; --debug) echo "$progname: enabling shell trace mode" set -x ;; --dry-run | -n) run=: ;; --features) echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit 0 ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --quiet | --silent) show=: ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit 1 ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then case "$nonopt" in *cc | *++ | gcc* | *-gcc*) mode=link for arg do case "$arg" in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit 1 fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case "$mode" in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= lastarg= srcfile="$nonopt" suppress_output= user_target=no for arg do # Accept any command-line options. case "$arg" in -o) if test "$user_target" != "no"; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit 1 fi user_target=next ;; -static) build_old_libs=yes continue ;; esac case "$user_target" in next) # The next one is the -o target name user_target=yes continue ;; yes) # We got the output file user_target=set libobj="$arg" continue ;; esac # Accept the current argument as the source file. lastarg="$srcfile" srcfile="$arg" # Aesthetically quote the previous argument. # Backslashify any backslashes, double quotes, and dollar signs. # These are the only characters that are still specially # interpreted inside of double-quoted scrings. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly in scan # sets, so we specify it separately. case "$lastarg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) lastarg="\"$lastarg\"" ;; esac # Add the previous argument to base_compile. if test -z "$base_compile"; then base_compile="$lastarg" else base_compile="$base_compile $lastarg" fi done case "$user_target" in set) ;; no) # Get the name of the library object. libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; *) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit 1 ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSfmso]' case "$libobj" in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case "$libobj" in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit 1 ;; esac if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit 1 fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $libobj" else removelist="$libobj" fi $run $rm $removelist trap "$run $rm $removelist; exit 1" 1 2 15 # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit 1" 1 2 15 else need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until ln "$0" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit 1 fi echo $srcfile > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile # All platforms use -DPIC, to notify preprocessed assembler code. command="$base_compile $srcfile $pic_flag -DPIC" if test "$build_old_libs" = yes; then lo_libobj="$libobj" dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$libobj"; then dir="$objdir" else dir="$dir/$objdir" fi libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` if test -d "$dir"; then $show "$rm $libobj" $run $rm $libobj else $show "$mkdir $dir" $run $mkdir $dir status=$? if test $status -ne 0 && test ! -d $dir; then exit $status fi fi fi if test "$compiler_o_lo" = yes; then output_obj="$libobj" command="$command -o $output_obj" elif test "$compiler_c_o" = yes; then output_obj="$obj" command="$command -o $output_obj" fi $run $rm "$output_obj" $show "$command" if $run eval "$command"; then : else test -n "$output_obj" && $run $rm $removelist exit 1 fi if test "$need_locks" = warn && test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit 1 fi # Just move the object if needed, then go on to compile the next one if test x"$output_obj" != x"$libobj"; then $show "$mv $output_obj $libobj" if $run $mv $output_obj $libobj; then : else error=$? $run $rm $removelist exit $error fi fi # If we have no pic_flag, then copy the object into place and finish. if test -z "$pic_flag" && test "$build_old_libs" = yes; then # Rename the .lo from within objdir to obj if test -f $obj; then $show $rm $obj $run $rm $obj fi $show "$mv $libobj $obj" if $run $mv $libobj $obj; then : else error=$? $run $rm $removelist exit $error fi xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir="." else xdir="$xdir" fi baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"` libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` # Now arrange that obj and lo_libobj become the same file $show "(cd $xdir && $LN_S $baseobj $libobj)" if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then exit 0 else error=$? $run $rm $removelist exit $error fi fi # Allow error messages only from the first compilation. suppress_output=' >/dev/null 2>&1' fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then command="$base_compile $srcfile" if test "$compiler_c_o" = yes; then command="$command -o $obj" output_obj="$obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" $run $rm "$output_obj" $show "$command" if $run eval "$command"; then : else $run $rm $removelist exit 1 fi if test "$need_locks" = warn && test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit 1 fi # Just move the object if needed if test x"$output_obj" != x"$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Create an invalid libtool object if no PIC, so that we do not # accidentally link it into a program. if test "$build_libtool_libs" != yes; then $show "echo timestamp > $libobj" $run eval "echo timestamp > \$libobj" || exit $? else # Move the .lo from within objdir $show "$mv $libobj $lo_libobj" if $run $mv $libobj $lo_libobj; then : else error=$? $run $rm $removelist exit $error fi fi fi # Unlock the critical section if it was locked if test "$need_locks" != no; then $rm "$lockfile" fi exit 0 ;; # libtool link mode link) modename="$modename: link" case "$host" in *-*-cygwin* | *-*-mingw* | *-*-os2*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invokation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes # This is a source program that is used to create dlls on Windows # Don't remove nor modify the starting and closing comments # /* ltdll.c starts here */ # #define WIN32_LEAN_AND_MEAN # #include # #undef WIN32_LEAN_AND_MEAN # #include # # #ifndef __CYGWIN__ # # ifdef __CYGWIN32__ # # define __CYGWIN__ __CYGWIN32__ # # endif # #endif # # #ifdef __cplusplus # extern "C" { # #endif # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); # #ifdef __cplusplus # } # #endif # # #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); # #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) # { # __hDllInstance_base = hInst; # return TRUE; # } # /* ltdll.c ends here */ # This is a source program that is used to create import libraries # on Windows for dlls which lack them. Don't remove nor modify the # starting and closing comments # /* impgen.c starts here */ # /* Copyright (C) 1999 Free Software Foundation, Inc. # # This file is part of GNU libtool. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # */ # # #include /* for printf() */ # #include /* for open(), lseek(), read() */ # #include /* for O_RDONLY, O_BINARY */ # #include /* for strdup() */ # # static unsigned int # pe_get16 (fd, offset) # int fd; # int offset; # { # unsigned char b[2]; # lseek (fd, offset, SEEK_SET); # read (fd, b, 2); # return b[0] + (b[1]<<8); # } # # static unsigned int # pe_get32 (fd, offset) # int fd; # int offset; # { # unsigned char b[4]; # lseek (fd, offset, SEEK_SET); # read (fd, b, 4); # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); # } # # static unsigned int # pe_as32 (ptr) # void *ptr; # { # unsigned char *b = ptr; # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); # } # # int # main (argc, argv) # int argc; # char *argv[]; # { # int dll; # unsigned long pe_header_offset, opthdr_ofs, num_entries, i; # unsigned long export_rva, export_size, nsections, secptr, expptr; # unsigned long name_rvas, nexp; # unsigned char *expdata, *erva; # char *filename, *dll_name; # # filename = argv[1]; # # dll = open(filename, O_RDONLY|O_BINARY); # if (!dll) # return 1; # # dll_name = filename; # # for (i=0; filename[i]; i++) # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') # dll_name = filename + i +1; # # pe_header_offset = pe_get32 (dll, 0x3c); # opthdr_ofs = pe_header_offset + 4 + 20; # num_entries = pe_get32 (dll, opthdr_ofs + 92); # # if (num_entries < 1) /* no exports */ # return 1; # # export_rva = pe_get32 (dll, opthdr_ofs + 96); # export_size = pe_get32 (dll, opthdr_ofs + 100); # nsections = pe_get16 (dll, pe_header_offset + 4 +2); # secptr = (pe_header_offset + 4 + 20 + # pe_get16 (dll, pe_header_offset + 4 + 16)); # # expptr = 0; # for (i = 0; i < nsections; i++) # { # char sname[8]; # unsigned long secptr1 = secptr + 40 * i; # unsigned long vaddr = pe_get32 (dll, secptr1 + 12); # unsigned long vsize = pe_get32 (dll, secptr1 + 16); # unsigned long fptr = pe_get32 (dll, secptr1 + 20); # lseek(dll, secptr1, SEEK_SET); # read(dll, sname, 8); # if (vaddr <= export_rva && vaddr+vsize > export_rva) # { # expptr = fptr + (export_rva - vaddr); # if (export_rva + export_size > vaddr + vsize) # export_size = vsize - (export_rva - vaddr); # break; # } # } # # expdata = (unsigned char*)malloc(export_size); # lseek (dll, expptr, SEEK_SET); # read (dll, expdata, export_size); # erva = expdata - export_rva; # # nexp = pe_as32 (expdata+24); # name_rvas = pe_as32 (expdata+32); # # printf ("EXPORTS\n"); # for (i = 0; i&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi fi build_libtool_libs=no build_old_libs=yes prefer_static_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test $# -gt 0; do arg="$1" shift # If the previous option needs an argument, assign it. if test -n "$prev"; then case "$prev" in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case "$prev" in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case "$arg" in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit 1 fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; release) if test "$release_suffix" = all; then release="$arg" elif test "$release_suffix" = yes; then release="-$arg" fi prev= continue ;; rpath | xrpath) # We need an absolute path. case "$arg" in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit 1 ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi prevarg="$arg" case "$arg" in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) build_old_libs=no avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: not more than one -exported-symbols argument allowed" exit 1 fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case "$dir" in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 absdir="$dir" fi dir="$absdir" ;; esac case " $deplibs " in *" $arg "*) ;; *) deplibs="$deplibs $arg";; esac case " $lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir";; esac case "$host" in *-*-cygwin* | *-*-mingw* | *-*-os2*) dllsearchdir=`cd "$dir" && pwd || echo "$dir"` case ":$dllsearchpath:" in ::) dllsearchpath="$dllsearchdir";; *":$dllsearchdir:"*) ;; *) dllsearchpath="$dllsearchpath:$dllsearchdir";; esac ;; esac ;; -l*) if test "$arg" = "-lc"; then case "$host" in *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*) # These systems don't actually have c library (as such) continue ;; esac elif test "$arg" = "-lm"; then case "$host" in *-*-cygwin* | *-*-beos*) # These systems don't actually have math library (as such) continue ;; esac fi deplibs="$deplibs $arg" ;; -?thread) deplibs="$deplibs $arg" ;; -module) module=yes continue ;; -no-undefined) allow_undefined=no continue ;; -o) prev=output ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case "$dir" in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit 1 ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # If we have no pic_flag, then this is the same as -all-static. if test -z "$pic_flag" && test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac ;; *.o | *.obj | *.a | *.lib) # A standard object. libobjs="$libobjs $arg" ;; *.lo) # A library object. if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` prev= fi libobjs="$libobjs $arg" ;; *.la) # A libtool-controlled library. dlname= libdir= library_names= old_library= # Check to see that this really is a libtool archive. if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 exit 1 fi # If the library was installed with an old release of libtool, # it will not redefine variable installed. installed=yes # Read the .la file # If there is no directory component, then add one. case "$arg" in */* | *\\*) . $arg ;; *) . ./$arg ;; esac # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 exit 1 fi # Find the relevant object directory and library name. name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` if test "X$installed" = Xyes; then dir="$libdir" else dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$arg"; then dir="$objdir" else dir="$dir/$objdir" fi fi if test -n "$dependency_libs"; then # Extract -R and -L from dependency_libs temp_deplibs= for deplib in $dependency_libs; do case "$deplib" in -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'` case " $rpath $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; -L*) case "$compile_command $temp_deplibs " in *" $deplib "*) ;; *) temp_deplibs="$temp_deplibs $deplib";; esac temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'` case " $lib_search_path " in *" $temp_dir "*) ;; *) lib_search_path="$lib_search_path $temp_dir";; esac ;; *) temp_deplibs="$temp_deplibs $deplib";; esac done dependency_libs="$temp_deplibs" fi if test -z "$libdir"; then # It is a libtool convenience library, so add in its objects. convenience="$convenience $dir/$old_library" old_convenience="$old_convenience $dir/$old_library" deplibs="$deplibs$dependency_libs" compile_command="$compile_command $dir/$old_library$dependency_libs" finalize_command="$finalize_command $dir/$old_library$dependency_libs" continue fi # This library was specified with -dlopen. if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking statically, # we need to preload. prev=dlprefiles else # We should not create a dependency on this library, but we # may need any libraries it requires. compile_command="$compile_command$dependency_libs" finalize_command="$finalize_command$dependency_libs" prev= continue fi fi # The library was specified with -dlpreopen. if test "$prev" = dlprefiles; then # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then dlprefiles="$dlprefiles $dir/$old_library" else dlprefiles="$dlprefiles $dir/$linklib" fi prev= fi if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then link_against_libtool_libs="$link_against_libtool_libs $arg" if test -n "$shlibpath_var"; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *) temp_rpath="$temp_rpath $dir" ;; esac fi # We need an absolute path. case "$dir" in [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 absdir="$dir" fi ;; esac # This is the magic to use -rpath. # Skip directories that are in the system default run-time # search path, unless they have been requested with -R. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac lib_linked=yes case "$hardcode_action" in immediate | unsupported) if test "$hardcode_direct" = no; then compile_command="$compile_command $dir/$linklib" deplibs="$deplibs $dir/$linklib" case "$host" in *-*-cygwin* | *-*-mingw* | *-*-os2*) dllsearchdir=`cd "$dir" && pwd || echo "$dir"` if test -n "$dllsearchpath"; then dllsearchpath="$dllsearchpath:$dllsearchdir" else dllsearchpath="$dllsearchdir" fi ;; esac elif test "$hardcode_minus_L" = no; then case "$host" in *-*-sunos*) compile_shlibpath="$compile_shlibpath$dir:" ;; esac case "$compile_command " in *" -L$dir "*) ;; *) compile_command="$compile_command -L$dir";; esac compile_command="$compile_command -l$name" deplibs="$deplibs -L$dir -l$name" elif test "$hardcode_shlibpath_var" = no; then case ":$compile_shlibpath:" in *":$dir:"*) ;; *) compile_shlibpath="$compile_shlibpath$dir:";; esac compile_command="$compile_command -l$name" deplibs="$deplibs -l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then compile_command="$compile_command $absdir/$linklib" deplibs="$deplibs $absdir/$linklib" elif test "$hardcode_minus_L" = yes; then case "$compile_command " in *" -L$absdir "*) ;; *) compile_command="$compile_command -L$absdir";; esac compile_command="$compile_command -l$name" deplibs="$deplibs -L$absdir -l$name" elif test "$hardcode_shlibpath_var" = yes; then case ":$compile_shlibpath:" in *":$absdir:"*) ;; *) compile_shlibpath="$compile_shlibpath$absdir:";; esac compile_command="$compile_command -l$name" deplibs="$deplibs -l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit 1 fi # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then finalize_command="$finalize_command $libdir/$linklib" elif test "$hardcode_minus_L" = yes; then case "$finalize_command " in *" -L$libdir "*) ;; *) finalize_command="$finalize_command -L$libdir";; esac finalize_command="$finalize_command -l$name" elif test "$hardcode_shlibpath_var" = yes; then case ":$finalize_shlibpath:" in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:";; esac finalize_command="$finalize_command -l$name" else # We cannot seem to hardcode it, guess we'll fake it. case "$finalize_command " in *" -L$dir "*) ;; *) finalize_command="$finalize_command -L$libdir";; esac finalize_command="$finalize_command -l$name" fi else # Transform directly to old archives if we don't build new libraries. if test -n "$pic_flag" && test -z "$old_library"; then $echo "$modename: cannot find static library for \`$arg'" 1>&2 exit 1 fi # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_command="$compile_command $dir/$linklib" finalize_command="$finalize_command $dir/$linklib" else case "$compile_command " in *" -L$dir "*) ;; *) compile_command="$compile_command -L$dir";; esac compile_command="$compile_command -l$name" case "$finalize_command " in *" -L$dir "*) ;; *) finalize_command="$finalize_command -L$dir";; esac finalize_command="$finalize_command -l$name" fi fi # Add in any libraries that this one depends upon. compile_command="$compile_command$dependency_libs" finalize_command="$finalize_command$dependency_libs" continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac ;; esac # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" case "$output" in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit 1 ;; *.a | *.lib) if test -n "$link_against_libtool_libs"; then $echo "$modename: error: cannot link libtool libraries into archives" 1>&2 exit 1 fi if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" ;; *.la) # Make sure we only generate libraries of the form `libNAME.la'. case "$outputname" in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit 1 fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi if test -n "$objs"; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 exit 1 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test $# -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. libext=al oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi dependency_libs="$deplibs" if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit 1 fi current="$2" revision="$3" age="$4" # Check that each of the things are valid numbers. case "$current" in 0 | [1-9] | [1-9][0-9]*) ;; *) $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac case "$revision" in 0 | [1-9] | [1-9][0-9]*) ;; *) $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac case "$age" in 0 | [1-9] | [1-9][0-9]*) ;; *) $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac if test $age -gt $current; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 fi # Calculate the version variables. major= versuffix= verstring= case "$version_type" in none) ;; irix) major=`expr $current - $age + 1` versuffix="$major.$revision" verstring="sgi$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test $loop != 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="sgi$major.$iface:$verstring" done ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test $loop != 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; windows) # Like Linux, but with '-' rather than '.', since we only # want one extension on Windows 95. major=`expr $current - $age` versuffix="-$major-$age-$revision" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= verstring="0.0" if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi dependency_libs="$deplibs" case "$host" in *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody*) # rhapsody is a little odd... deplibs="$deplibs -framework System" ;; *-*-freebsd*) # FreeBSD doesn't need this... ;; *) # Add libc to deplibs on all other systems. deplibs="$deplibs -lc" ;; esac fi if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$compile_rpath " in *" $libdir "*) ;; *) compile_rpath="$compile_rpath $libdir" ;; esac case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" # Create the output directory, or remove our outputs if we need to. if test -d $output_objdir; then $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* else $show "$mkdir $output_objdir" $run $mkdir $output_objdir status=$? if test $status -ne 0 && test ! -d $output_objdir; then exit $status fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then if test "$release_suffix" = all; then oldlibs="$oldlibs $output_objdir/$libname$release.$libext" else oldlibs="$oldlibs $output_objdir/$libname.$libext" fi # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi if test "$build_libtool_libs" = yes; then # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case "$deplibs_check_method" in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behaviour. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | sed 's/.* -> //'` case "$potliblink" in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | sed 10q \ | egrep "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done if test -n "$a_deplib" ; then droppeddeps=yes echo echo "*** Warning: This library needs some functionality provided by $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | grep . >/dev/null; then echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" echo "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then if test "$release_suffix" = all; then oldlibs="$output_objdir/$libname$release.$libext" else oldlibs="$output_objdir/$libname.$libext" fi build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." fi fi # Done checking deplibs! deplibs=$newdeplibs fi # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Get the real and link names of the library. eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi lib="$output_objdir/$realname" for link do linknames="$linknames $link" done # Ensure that we have .o objects for linkers which dislike .lo # (e.g. aix) in case we are running --disable-static for obj in $libobjs; do xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir="." else xdir="$xdir" fi baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` if test ! -f $xdir/$oldobj; then $show "(cd $xdir && ${LN_S} $baseobj $oldobj)" $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? fi done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols eval cmds=\"$export_symbols_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "mkdir $gentop" $run mkdir "$gentop" status=$? if test $status -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" for xlib in $convenience; do # Extract the objects. case "$xlib" in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "mkdir $xdir" $run mkdir "$xdir" status=$? if test $status -ne 0 && test ! -d "$xdir"; then exit $status fi $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` done fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linkopts="$linkopts $flag" fi # Do each of the archive commands. if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval cmds=\"$archive_expsym_cmds\" else eval cmds=\"$archive_cmds\" fi IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; *.lo | *.o | *.obj) if test -n "$link_against_libtool_libs"; then $echo "$modename: error: cannot link libtool libraries into objects" 1>&2 exit 1 fi if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case "$output" in *.lo) if test -n "$objs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit 1 fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "mkdir $gentop" $run mkdir "$gentop" status=$? if test $status -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" for xlib in $convenience; do # Extract the objects. case "$xlib" in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "mkdir $xdir" $run mkdir "$xdir" status=$? if test $status -ne 0 && test ! -d "$xdir"; then exit $status fi $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` done fi fi # Create the old-style object. reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" output="$obj" eval cmds=\"$reload_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit 0 fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. $show "echo timestamp > $libobj" $run eval "echo timestamp > $libobj" || exit $? exit 0 fi if test -n "$pic_flag"; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" eval cmds=\"$reload_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" else # Just create a symlink. $show $rm $libobj $run $rm $libobj xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$libobj"; then xdir="." else xdir="$xdir" fi baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` $show "(cd $xdir && $LN_S $oldobj $baseobj)" $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit 0 ;; # Anything else should be a program. *) if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$compile_rpath " in *" $libdir "*) ;; *) compile_rpath="$compile_rpath $libdir" ;; esac case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the binary in the object directory, then wrap it. if test ! -d $output_objdir; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir status=$? if test $status -ne 0 && test ! -d $output_objdir; then exit $status fi fi if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case "$dlsyms" in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$output.exp" $run $rm $export_symbols $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' else $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`echo "$arg" | sed -e 's%^.*/%%'` $run eval 'echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = {\ " sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \ -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \ < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr_t) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case "$host" in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DPIC";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit 1 ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case "$dir" in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $0 --fallback-echo"; then case "$0" in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; *) qecho="$SHELL `pwd`/$0 --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`echo $output|sed 's,.exe$,,'` ;; esac $rm $output trap "$rm $output; exit 1" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: link_against_libtool_libs='$link_against_libtool_libs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then echo >> $output "\ program=lt-'$outputname' progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if (cd \"\$thisdir\" && eval \$relink_command); then : else $rm \"\$progdir/\$file\" exit 1 fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # win32 systems need to use the prog path for dll # lookup to work *-*-cygwin*) $echo >> $output "\ exec \$progdir/\$program \${1+\"\$@\"} " ;; # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \$progdir\\\\\$program \${1+\"\$@\"} " ;; *) $echo >> $output "\ # Export the path to the program. PATH=\"\$progdir:\$PATH\" export PATH exec \$program \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit 1 fi else # The program doesn't exist. \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " chmod +x $output fi exit 0 ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "mkdir $gentop" $run mkdir "$gentop" status=$? if test $status -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" # Add in members from convenience archives. for xlib in $addlibs; do # Extract the objects. case "$xlib" in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "mkdir $xdir" $run mkdir "$xdir" status=$? if test $status -ne 0 && test ! -d "$xdir"; then exit $status fi $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` done fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then eval cmds=\"$old_archive_from_new_cmds\" else # Ensure that we have .o objects in place in case we decided # not to build a shared library, and have fallen back to building # static libs even though --disable-static was passed! for oldobj in $oldobjs; do if test ! -f $oldobj; then xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$oldobj"; then xdir="." else xdir="$xdir" fi baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` $show "(cd $xdir && ${LN_S} $obj $baseobj)" $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? fi done eval cmds=\"$old_archive_cmds\" fi IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case "$output" in *.la) old_library= if test "$release_suffix" = all; then test "$build_old_libs" = yes && old_library="$libname$release.$libext" else test "$build_old_libs" = yes && old_library="$libname.$libext" fi $show "creating $output" if test -n "$xrpath"; then temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" done dependency_libs="$temp_xrpath $dependency_libs" fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i fi $rm $output $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$dlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Directory that this library needs to be installed in: libdir='$install_libdir'\ " done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $? ;; esac exit 0 ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg="$nonopt" fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest="$arg" continue fi case "$arg" in -d) isdir=yes ;; -f) prev="-f" ;; -g) prev="-g" ;; -m) prev="-m" ;; -o) prev="-o" ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest="$arg" continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit 1 fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test $# -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit 1 fi fi case "$destdir" in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case "$file" in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case "$file" in *.a | *.lib) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi library_names= old_library= # If there is no directory component, then add one. case "$file" in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/" test "X$dir" = "X$file/" && dir= dir="$dir$objdir" # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift # Install the shared library and build the symlinks. $show "$install_prog $dir/$realname $destdir/$realname" $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $? if test $# -gt 0; then # Delete the old symlinks, and create new ones. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" eval cmds=\"$postinstall_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. if test "$install_ltlibs" = yes; then name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? fi # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case "$destfile" in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.o | *.obj) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit 0 ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Do a test to see if this is really a libtool program. if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then link_against_libtool_libs= relink_command= # If there is no directory component, then add one. case "$file" in */* | *\\*) . $file ;; *) . ./$file ;; esac # Check the variables that should have been set. if test -z "$link_against_libtool_libs"; then $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 exit 1 fi finalize=yes for lib in $link_against_libtool_libs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case "$lib" in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`" if test -n "$libdir" && test ! -f "$libfile"; then finalize=no fi done outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir="/tmp" test -n "$TMPDIR" && tmpdir="$TMPDIR" tmpdir="$tmpdir/libtool-$$" save_umask=`umask` umask 0077 if $mkdir "$tmpdir"; then umask $save_umask else umask $save_umask $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 continue fi outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? # Do each command in the postinstall commands. eval cmds=\"$old_postinstall_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec $SHELL $0 --finish$current_libdirs exit 1 fi exit 0 ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. eval cmds=\"$finish_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit 0 echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do echo " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" echo "more information, such as the ld(1) and ld.so(8) manual pages." echo "----------------------------------------------------------------------" exit 0 ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit 1 fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit 1 fi dir= case "$file" in *.la) # Check to see that this really is a libtool archive. if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case "$file" in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit 1 fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case "$file" in -*) ;; *) # Do a test to see if this is really a libtool program. if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case "$file" in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved enviroment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now actually exec the command. eval "exec \$cmd$args" $echo "$modename: cannot exec \$cmd$args" exit 1 else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit 0 fi ;; # libtool uninstall mode uninstall) modename="$modename: uninstall" rm="$nonopt" files= for arg do case "$arg" in -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit 1 fi for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` rmfiles="$file" case "$name" in *.la) # Possibly a libtool archive, so verify it. if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $dir/$n" done test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" $show "$rm $rmfiles" $run $rm $rmfiles if test -n "$library_names"; then # Do each command in the postuninstall commands. eval cmds=\"$postuninstall_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. eval cmds=\"$old_postuninstall_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. fi ;; *.lo) if test "$build_old_libs" = yes; then oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` rmfiles="$rmfiles $dir/$oldobj" fi $show "$rm $rmfiles" $run $rm $rmfiles ;; *) $show "$rm $rmfiles" $run $rm $rmfiles ;; esac done exit 0 ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit 1 ;; esac $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit 1 fi # test -z "$show_help" # We need to display help for each of the modes. case "$mode" in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --version print version information MODE must be one of the following: compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE." exit 0 ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac echo $echo "Try \`$modename --help' for more information about other modes." exit 0 # Local Variables: # mode:shell-script # sh-indentation:2 # End: vflib3-3.6.14.dfsg/ANNOUNCE.txt0000644000175000017500000000324010400435015015222 0ustar mohuramohuraA font library VFlib version 3.6.14 Hirotsugu Kakugawa, Hiroshima Univ h.kakugawa@computer.org VFlib is a font library written in C language with several functions to obtain bitmaps of fonts. Unique feature of VFlib is that fonts in different formats are accessed by unified interface. VFlib supports the following font formats: TeX fonts: PK, GF, VF, TFM Omega TeX fonts: OFM (level 0), OVF X Window fonts: PCF, BDF Other fonts: TrueType, Type 1, HBF, Syotai Club, JG, ekanji * The FreeType library version 1.2 is used for TrueType format support. Install it before you install VFlib. * The T1Lib library version 5.1 is used for Type 1 format support. Install it before you install VFlib. * Kpathsae library 3.2 (in web2c-7.2) is used for font file search. Install it before you install VFlib. * Syotai Club and JG are font formats for Japanese Kanji characters. VFlib version 3 supports fonts for various languages. (VFlib versions 1 and 2 supports only Japanese Kanji fonts.) I also developed the TeX-Guy package, which is a set of previewers and printer drivers for TeX DVI files using VFlib. At this moment, only Unix-like operating systems are supported. VFlib is tested on FreeBSD 5.3. You must write makefiles by yourself to compile VFlib on Windows {3.1, 95, 98, NT}, for example. (Since GNU autoconf and GNU libtool are used to compile programs in VFlib, porting may not simple. I'm not sure.) But the source code itself contain less Unix-specific parts. Please let me know if you successfully ported VFlib to non-Unix systems. vflib3-3.6.14.dfsg/config.sub0000755000175000017500000007315310264671763015274 0ustar mohuramohura#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. timestamp='2003-07-04' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit 0;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | kfreebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k \ | m32r | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | msp430 \ | ns16k | ns32k \ | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | amd64-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* \ | m32r-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | msp430-* \ | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; crds | unos) basic_machine=m68k-crds ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; mmix*) basic_machine=mmix-knuth os=-mmixware ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nv1) basic_machine=nv1-cray os=-unicosmp ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; or32 | or32-*) basic_machine=or32-unknown os=-coff ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sh64) basic_machine=sh64-unknown ;; sparc | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-ibm) os=-aix ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -ptx*) vendor=sequent ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: vflib3-3.6.14.dfsg/config.guess0000755000175000017500000012206510264671757015631 0ustar mohuramohura#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. timestamp='2003-07-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; arc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; macppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; pmax:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sgi:OpenBSD:*:*) echo mipseb-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; wgrisc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; alpha:OSF1:*:*) if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` fi # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha*:OpenVMS:*:*) echo alpha-hp-vms exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit 0;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit 0 ;; DRS?6000:UNIX_SV:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7 && exit 0 ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c \ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ && exit 0 echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit 0 ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit 0 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit 0 ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit 0 ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit 0 ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then # avoid double evaluation of $set_cc_for_build test -n "$CC_FOR_BUILD" || eval $set_cc_for_build if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; *:UNICOS/mp:*:*) echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) # Determine whether the default compiler uses glibc. eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #if __GLIBC__ >= 2 LIBC=gnu #else LIBC= #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` # GNU/FreeBSD systems have a "k" prefix to indicate we are using # FreeBSD's kernel, but not the complete OS. case ${LIBC} in gnu) kernel_only='k' ;; esac echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; x86:Interix*:[34]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit 0 ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit 0 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit 0 ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit 0 ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit 0 ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit 0 ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit 0 ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit 0 ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit 0 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit 0 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit 0 ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit 0 ;; i*86:*:5:[78]*) case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit 0 ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit 0 ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit 0 ;; paragon:*:*:*) echo i860-intel-osf1 exit 0 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit 0 ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit 0 ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4.3${OS_REL} && exit 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) case `uname -p` in *86) UNAME_PROCESSOR=i686 ;; powerpc) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit 0 ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; c34*) echo c34-convex-bsd exit 0 ;; c38*) echo c38-convex-bsd exit 0 ;; c4*) echo c4-convex-bsd exit 0 ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: vflib3-3.6.14.dfsg/X11/0000755000175000017500000000000010400435232013626 5ustar mohuramohuravflib3-3.6.14.dfsg/X11/Imakefile0000644000175000017500000000063507575234720015465 0ustar mohuramohurax11.mk: Makefile -rm -f x11.mk touch x11.mk @echo "PROJECTROOT=$(PROJECTROOT)" >> x11.mk @echo "INCROOT=$(INCROOT)" >> x11.mk @echo "USRLIBDIR=$(USRLIBDIR)" >> x11.mk @echo "XLIB=$(XLIB)" >> x11.mk @echo "XTOOLLIB=$(XTOOLLIB)" >> x11.mk @echo "XMLIB=$(XMLIB)" >> x11.mk clean veryclean:: -rm x11.mk distclean:: -rm x11.mk Makefile *~ core *.core *.bak vflib3-3.6.14.dfsg/X11/runxmkmf0000755000175000017500000000207407575235764015461 0ustar mohuramohura#!/bin/sh # Run "xmkmf" # Since invocation of Sun OpenWindow's "xmkmf" is different from # X11R* "xmkmf", we need to check how to invoke it. XMKMF='' # Find xmkmf X=`echo $PATH | sed 's/:/ /g'` for d in $X ; do if test -x $d/xmkmf; then XMKMF=$d/xmkmf break fi done # Check if we have OpenWindow. NO_OPENWIN=1 if test -d /usr/openwin; then NO_OPENWIN=0 # If OPENWINHOME is not set, we do not use OpenWindow if test X-${OPENWINHOME+set} != X-set; then NO_OPENWIN=1 fi fi # In case we have OpenWindow but an "xmkmf" to be executed is not # an OpenWindow's "xmkmf", we do not use OpenWindow. if test ${NO_OPENWIN} = 0; then if [ X-$XMKMF != X-${OPENWINHOME}/bin/xmkmf ] ; then NO_OPENWIN=1 fi fi # Run "xmkmf" accroding to the check result. case ${NO_OPENWIN} in 0) echo Use OpenWindow echo "Running 'xmkmf $OPENWINHOME/lib .'" xmkmf $OPENWINHOME/lib . ;; 1) if [ X-$XMKMF != X- ] ; then echo Use X11. echo "Running 'xmkmf -a'" xmkmf -a else echo Not found: xmkmf. No X11. touch Makefile x11.mk fi ;; esac vflib3-3.6.14.dfsg/INSTALL0000644000175000017500000000501410400435077014315 0ustar mohuramohuraINSTALL Hirotsugu Kakugawa h.kakugawa@computer.org 1. To install VFlib3, following libraries are (optionally) necessary. Obtain, compile, and install them before you compile VFlib. These external libraries are optional and therefore VFlib can be compiled not to use such libraries. But in such a case, you cannot use TrueType, Type1 fonts and searching TeX fonts is very limited. So, I strongly recommend to use such libraries. Note: following libraries may be provided as binary packages for your operating systems. In such a case, obtain them and install. Not only binaries for libraries but also `header files' are necessary since we are to compile programs that use such libraries. * FreeType 1.2 or later (if you want to use TrueType fonts) Obtain it from ftp://ftp.freetype.org/pub/freetype/ or see http://www.freetype.org/ * T1Lib 5.1 (if you want to use Type 1 fonts) Obtain it from ftp://ftp.neuroinformatik.ruhr-uni-bochum.de/pub/software/t1lib/ or ftp://ftp.sunsite.unc.edu/pub/Linux/libs/graphics/ * kpathsea 3.2 in web2c-7.2 (if you want to use advanced TeX font searching) Obtain it from ftp://tug.ctan.org/tex-archive/systems/web2c/ 2. To compile, run the `configure' script and run 'make' % ./configure [RETURN] % make [RETURN] *NOTE* By default, VFlib is compiled not to use TrueType, Type1, and kpathsea. Thus, TrueType and Type 1 fonts cannot be used. To compile VFlib to use these features, run configure program with the following long options, for example. Probably, most users do this. (If you do no want to type this long lines, run a shell script 'configure-site'.) % ./configure --with-kpathsea \ --with-kpathsea-includedir=/usr/local/include \ --with-kpathsea-libdir=/usr/local/lib \ --with-freetype \ --with-freetype-includedir=/usr/local/include \ --with-freetype-libdir=/usr/local/lib \ --with-t1lib \ --with-t1lib-includedir=/usr/local/include \ --with-t1lib-libdir=/usr/local/lib [RETURN] % make [RETURN] 3. Become a super user (root) and install VFlib % su [RETURN] Password: ??????? [RETURN] (password for root) # make install [RETURN] That's it. vflib3-3.6.14.dfsg/VFlib3-config.in0000644000175000017500000000550407305074657016165 0ustar mohuramohura#!/bin/sh # # VFlib3-config # a script to obtain installation information # version=@vflib_version@ prefix=@prefix@ exec_prefix=${prefix} exec_prefix_set=no datadir=${prefix}/share datadir_set=no usage() { cat << __EOF__ Usage: VFlib3-config [Options] Options: [--prefix[=DIR]] [--exec-prefix[=DIR]] [--datadir[=DIR]] [--version] [--cflags] [--lib-vflib] [--lib-opt] [--libs] (same as --lib-vflib --lib-opt) [--runtime-dir] [--runtime-site-dir] [--vflibcap] [--help] __EOF__ exit $1 } if test $# -eq 0; then usage 1 1>&2 fi while test $# -gt 0; do case "$1" in -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac case $1 in --prefix=*) prefix=$optarg if test $exec_prefix_set = no ; then exec_prefix=$optarg fi ;; --prefix) echo_prefix=yes ;; --exec-prefix=*) exec_prefix=$optarg exec_prefix_set=yes ;; --exec-prefix) echo_exec_prefix=yes ;; --datadir=*) datadir=$optarg datadir_set=yes ;; --datadir) echo_datadir=yes ;; --exec-prefix) echo_exec_prefix=yes ;; --version) echo @vflib_version@ ;; --cflags) echo_cflags=yes ;; --lib-vflib) echo_lib_vflib=yes ;; --lib-opt) echo_lib_opt=yes ;; --libs) echo_lib_vflib=yes echo_lib_opt=yes ;; --runtime-dir) echo_runtime_dir=yes ;; --runtime-site-dir) echo_runtime_site_dir=yes ;; --vflibcap) echo_vflibcap=yes ;; --help|*) usage 1 1>&2 ;; esac shift done S="" if test "$echo_prefix" = "yes"; then S="$S $prefix" fi if test "$echo_exec_prefix" = "yes"; then S="$S $exec_prefix" fi if test "$echo_datadir" = "yes"; then S="$S $datadir" fi if test "$echo_version" = "yes"; then S="$S $version" fi if test "$echo_cflags" = "yes"; then S="$S -I$prefix/include" fi L="" if test "$echo_lib_vflib" = "yes"; then L="$L -L${exec_prefix}/lib -lVFlib3" fi if test "$echo_lib_opt" = "yes"; then L="$L @freetype_libdir@ @freetype_lib@ \ @t1lib_libdir@ @t1lib_lib@ \ @kpathsea_libdir@ @kpathsea_lib@ \ @gettext_lib@ " fi if test -n "$L"; then for f in $L do case "$f" in -L*) v=`echo $f | sed 's/^-L/L/' | sed 's/[!@#$%^&*-+=./|:;{}]/_/g'` w=`echo $v | sed 's/^\(.*\)$/${\1}/'` x=`eval "echo $w"` if test x"$x" != x"yes"; then eval "$v=yes" S="$S $f" fi ;; *) S="$S $f" ;; esac done fi if test "$echo_runtime_dir" = "yes"; then S="$S $datadir/VFlib/$version" fi if test "$echo_runtime_site_dir" = "yes"; then S="$S $datadir/VFlib/site" fi if test "$echo_vflibcap" = "yes"; then S="$S $datadir/VFlib/$version/vflibcap" fi echo $S #EOF vflib3-3.6.14.dfsg/configure-site0000755000175000017500000000152707573251732016155 0ustar mohuramohura#!/bin/sh # # Typical invocation of configure script # # Most of the case, you want to do this when configure VFlib. # machtype=`./config.guess` case ${machtype} in i386-*-freebsd*) ROOT=/usr/local ;; *-*-linux*) ROOT=/usr OPT="--prefix=/usr" ;; *) ROOT=/usr/local ;; esac OPT_K="--with-kpathsea \ --with-kpathsea-includedir=${ROOT}/include \ --with-kpathsea-libdir=${ROOT}/lib" OPT_F="--with-freetype \ --with-freetype-includedir=${ROOT}/include/freetype1/freetype \ --with-freetype-libdir=${ROOT}/lib" OPT_T="--with-t1lib \ --with-t1lib-includedir=${ROOT}/include \ --with-t1lib-libdir=${ROOT}/lib" OPT_OPT="" OPTION="${OPT} ${OPT_K} ${OPT_F} ${OPT_T} ${OPT_OPT}" echo echo Run configure for ${machtype}... echo ./configure ${OPTION} echo rm -f config.cache ./configure ${OPTION} #EOF vflib3-3.6.14.dfsg/t1lib/0000755000175000017500000000000010400435232014270 5ustar mohuramohuravflib3-3.6.14.dfsg/t1lib/mkt1enc.sh0000555000175000017500000000201607276171014016202 0ustar mohuramohura#!/bin/sh case $# in 0) echo "mkt1enc.sh ENCFILE..." exit 1 ;; esac for F in $* do case $# in --help|-help) echo "mkt1enc.sh ENCFILE..." exit 1 ;; esac PSENCFILE=$F T1ENCFILE=`echo $PSENCFILE | sed 's|.*/\([^/]*\)|\1|' | sed 's|.enc$|.enc|` echo "$PSENCFILE ==> $T1ENCFILE" if [ -f $T1ENCFILE ] ; then echo "Error: $T1ENCFILE exists." >&2 exit 1; fi touch $T1ENCFILE echo "# $T1ENCFILE: an encoding vector file for T1Lib." >>$T1ENCFILE echo "# Generated by mkt1enc.sh from $PSENCFILE." >>$T1ENCFILE cat $PSENCFILE \ | sed 's/%.*//' \ | tr ' ' '\n' \ | sed 's/[ ]*$//' | grep -v '^$' \ | grep -v "\[" | grep -v "\]" | grep -v '^def$' \ | sed 's|^/||' \ | awk 'BEGIN { chr = 0; } // { if (NR == 1){ printf("Encoding=%s\n", $1); } else { printf("%-50s/* %02x */\n", $0, chr); chr++; } }' \ | cat >>$T1ENCFILE done vflib3-3.6.14.dfsg/t1lib/8a.enc0000644000175000017500000003561307276171125015316 0ustar mohuramohura# 8a.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/8a.enc. Encoding=StandardEncoding .notdef /* 00 */ .notdef /* 01 */ .notdef /* 02 */ .notdef /* 03 */ .notdef /* 04 */ .notdef /* 05 */ .notdef /* 06 */ .notdef /* 07 */ .notdef /* 08 */ .notdef /* 09 */ .notdef /* 0a */ .notdef /* 0b */ .notdef /* 0c */ .notdef /* 0d */ .notdef /* 0e */ .notdef /* 0f */ .notdef /* 10 */ .notdef /* 11 */ .notdef /* 12 */ .notdef /* 13 */ .notdef /* 14 */ .notdef /* 15 */ .notdef /* 16 */ .notdef /* 17 */ .notdef /* 18 */ .notdef /* 19 */ .notdef /* 1a */ .notdef /* 1b */ .notdef /* 1c */ .notdef /* 1d */ .notdef /* 1e */ .notdef /* 1f */ space /* 20 */ exclam /* 21 */ quotedbl /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ asciicircum /* 5e */ underscore /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ asciitilde /* 7e */ .notdef /* 7f */ .notdef /* 80 */ .notdef /* 81 */ .notdef /* 82 */ .notdef /* 83 */ .notdef /* 84 */ .notdef /* 85 */ .notdef /* 86 */ .notdef /* 87 */ .notdef /* 88 */ .notdef /* 89 */ .notdef /* 8a */ .notdef /* 8b */ .notdef /* 8c */ .notdef /* 8d */ .notdef /* 8e */ .notdef /* 8f */ .notdef /* 90 */ .notdef /* 91 */ .notdef /* 92 */ .notdef /* 93 */ .notdef /* 94 */ .notdef /* 95 */ .notdef /* 96 */ .notdef /* 97 */ .notdef /* 98 */ .notdef /* 99 */ .notdef /* 9a */ .notdef /* 9b */ .notdef /* 9c */ .notdef /* 9d */ .notdef /* 9e */ .notdef /* 9f */ .notdef /* a0 */ exclamdown /* a1 */ cent /* a2 */ sterling /* a3 */ fraction /* a4 */ yen /* a5 */ florin /* a6 */ section /* a7 */ currency /* a8 */ quotesingle /* a9 */ quotedblleft /* aa */ guillemotleft /* ab */ guilsinglleft /* ac */ guilsinglright /* ad */ fi /* ae */ fl /* af */ .notdef /* b0 */ endash /* b1 */ dagger /* b2 */ daggerdbl /* b3 */ periodcentered /* b4 */ .notdef /* b5 */ paragraph /* b6 */ bullet /* b7 */ quotesinglbase /* b8 */ quotedblbase /* b9 */ quotedblright /* ba */ guillemotright /* bb */ ellipsis /* bc */ perthousand /* bd */ .notdef /* be */ questiondown /* bf */ .notdef /* c0 */ grave /* c1 */ acute /* c2 */ circumflex /* c3 */ tilde /* c4 */ macron /* c5 */ breve /* c6 */ dotaccent /* c7 */ dieresis /* c8 */ .notdef /* c9 */ ring /* ca */ cedilla /* cb */ .notdef /* cc */ hungarumlaut /* cd */ ogonek /* ce */ caron /* cf */ emdash /* d0 */ .notdef /* d1 */ .notdef /* d2 */ .notdef /* d3 */ .notdef /* d4 */ .notdef /* d5 */ .notdef /* d6 */ .notdef /* d7 */ .notdef /* d8 */ .notdef /* d9 */ .notdef /* da */ .notdef /* db */ .notdef /* dc */ .notdef /* dd */ .notdef /* de */ .notdef /* df */ .notdef /* e0 */ AE /* e1 */ .notdef /* e2 */ ordfeminine /* e3 */ .notdef /* e4 */ .notdef /* e5 */ .notdef /* e6 */ .notdef /* e7 */ Lslash /* e8 */ Oslash /* e9 */ OE /* ea */ ordmasculine /* eb */ .notdef /* ec */ .notdef /* ed */ .notdef /* ee */ .notdef /* ef */ .notdef /* f0 */ ae /* f1 */ .notdef /* f2 */ .notdef /* f3 */ .notdef /* f4 */ dotlessi /* f5 */ .notdef /* f6 */ .notdef /* f7 */ lslash /* f8 */ oslash /* f9 */ oe /* fa */ germandbls /* fb */ .notdef /* fc */ .notdef /* fd */ .notdef /* fe */ .notdef /* ff */ vflib3-3.6.14.dfsg/t1lib/8r.enc0000644000175000017500000003561307273472635015346 0ustar mohuramohura# 8r.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/8r.enc. Encoding=TeXBase1Encoding .notdef /* 00 */ dotaccent /* 01 */ fi /* 02 */ fl /* 03 */ fraction /* 04 */ hungarumlaut /* 05 */ Lslash /* 06 */ lslash /* 07 */ ogonek /* 08 */ ring /* 09 */ .notdef /* 0a */ breve /* 0b */ minus /* 0c */ .notdef /* 0d */ Zcaron /* 0e */ zcaron /* 0f */ caron /* 10 */ dotlessi /* 11 */ dotlessj /* 12 */ ff /* 13 */ ffi /* 14 */ ffl /* 15 */ .notdef /* 16 */ .notdef /* 17 */ .notdef /* 18 */ .notdef /* 19 */ .notdef /* 1a */ .notdef /* 1b */ .notdef /* 1c */ .notdef /* 1d */ grave /* 1e */ quotesingle /* 1f */ space /* 20 */ exclam /* 21 */ quotedbl /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ asciicircum /* 5e */ underscore /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ asciitilde /* 7e */ .notdef /* 7f */ .notdef /* 80 */ .notdef /* 81 */ quotesinglbase /* 82 */ florin /* 83 */ quotedblbase /* 84 */ ellipsis /* 85 */ dagger /* 86 */ daggerdbl /* 87 */ circumflex /* 88 */ perthousand /* 89 */ Scaron /* 8a */ guilsinglleft /* 8b */ OE /* 8c */ .notdef /* 8d */ .notdef /* 8e */ .notdef /* 8f */ .notdef /* 90 */ .notdef /* 91 */ .notdef /* 92 */ quotedblleft /* 93 */ quotedblright /* 94 */ bullet /* 95 */ endash /* 96 */ emdash /* 97 */ tilde /* 98 */ trademark /* 99 */ scaron /* 9a */ guilsinglright /* 9b */ oe /* 9c */ .notdef /* 9d */ .notdef /* 9e */ Ydieresis /* 9f */ .notdef /* a0 */ exclamdown /* a1 */ cent /* a2 */ sterling /* a3 */ currency /* a4 */ yen /* a5 */ brokenbar /* a6 */ section /* a7 */ dieresis /* a8 */ copyright /* a9 */ ordfeminine /* aa */ guillemotleft /* ab */ logicalnot /* ac */ hyphen /* ad */ registered /* ae */ macron /* af */ degree /* b0 */ plusminus /* b1 */ twosuperior /* b2 */ threesuperior /* b3 */ acute /* b4 */ mu /* b5 */ paragraph /* b6 */ periodcentered /* b7 */ cedilla /* b8 */ onesuperior /* b9 */ ordmasculine /* ba */ guillemotright /* bb */ onequarter /* bc */ onehalf /* bd */ threequarters /* be */ questiondown /* bf */ Agrave /* c0 */ Aacute /* c1 */ Acircumflex /* c2 */ Atilde /* c3 */ Adieresis /* c4 */ Aring /* c5 */ AE /* c6 */ Ccedilla /* c7 */ Egrave /* c8 */ Eacute /* c9 */ Ecircumflex /* ca */ Edieresis /* cb */ Igrave /* cc */ Iacute /* cd */ Icircumflex /* ce */ Idieresis /* cf */ Eth /* d0 */ Ntilde /* d1 */ Ograve /* d2 */ Oacute /* d3 */ Ocircumflex /* d4 */ Otilde /* d5 */ Odieresis /* d6 */ multiply /* d7 */ Oslash /* d8 */ Ugrave /* d9 */ Uacute /* da */ Ucircumflex /* db */ Udieresis /* dc */ Yacute /* dd */ Thorn /* de */ germandbls /* df */ agrave /* e0 */ aacute /* e1 */ acircumflex /* e2 */ atilde /* e3 */ adieresis /* e4 */ aring /* e5 */ ae /* e6 */ ccedilla /* e7 */ egrave /* e8 */ eacute /* e9 */ ecircumflex /* ea */ edieresis /* eb */ igrave /* ec */ iacute /* ed */ icircumflex /* ee */ idieresis /* ef */ eth /* f0 */ ntilde /* f1 */ ograve /* f2 */ oacute /* f3 */ ocircumflex /* f4 */ otilde /* f5 */ odieresis /* f6 */ divide /* f7 */ oslash /* f8 */ ugrave /* f9 */ uacute /* fa */ ucircumflex /* fb */ udieresis /* fc */ yacute /* fd */ thorn /* fe */ ydieresis /* ff */ vflib3-3.6.14.dfsg/t1lib/DC.enc0000644000175000017500000003560507273472635015304 0ustar mohuramohura# DC.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/DC.enc. Encoding=DCEncoding grave /* 00 */ acute /* 01 */ circumflex /* 02 */ tilde /* 03 */ dieresis /* 04 */ hungarumlaut /* 05 */ ring /* 06 */ caron /* 07 */ breve /* 08 */ macron /* 09 */ dotaccent /* 0a */ cedilla /* 0b */ ogonek /* 0c */ quotesinglbase /* 0d */ guilsinglleft /* 0e */ guilsinglright /* 0f */ quotedblleft /* 10 */ quotedblright /* 11 */ quotedblbase /* 12 */ guillemotleft /* 13 */ guillemotright /* 14 */ endash /* 15 */ emdash /* 16 */ .notdef /* 17 */ zeroinferior /* 18 */ dotlessi /* 19 */ dotlessj /* 1a */ ff /* 1b */ fi /* 1c */ fl /* 1d */ ffi /* 1e */ ffl /* 1f */ .notdef /* 20 */ exclam /* 21 */ quotedbl /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ asciicircum /* 5e */ underscore /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ asciitilde /* 7e */ hyphen /* 7f */ Abreve /* 80 */ Aogonek /* 81 */ Cacute /* 82 */ Ccaron /* 83 */ Dcaron /* 84 */ Ecaron /* 85 */ Eogonek /* 86 */ Gbreve /* 87 */ Lacute /* 88 */ Lcaron /* 89 */ Lslash /* 8a */ Nacute /* 8b */ Ncaron /* 8c */ Ng /* 8d */ Ohungarumlaut /* 8e */ Racute /* 8f */ Rcaron /* 90 */ Sacute /* 91 */ Scaron /* 92 */ Scedilla /* 93 */ Tcaron /* 94 */ Tcedilla /* 95 */ Uhungarumlaut /* 96 */ Uring /* 97 */ Ldot /* 98 */ Zacute /* 99 */ Zcaron /* 9a */ Zdotaccent /* 9b */ IJ /* 9c */ Idotaccent /* 9d */ dbar /* 9e */ section /* 9f */ abreve /* a0 */ aogonek /* a1 */ cacute /* a2 */ ccaron /* a3 */ dcaron /* a4 */ ecaron /* a5 */ eogonek /* a6 */ gbreve /* a7 */ lacute /* a8 */ lcaron /* a9 */ lslash /* aa */ nacute /* ab */ ncaron /* ac */ ng /* ad */ ohungarumlaut /* ae */ racute /* af */ rcaron /* b0 */ sacute /* b1 */ scaron /* b2 */ scedilla /* b3 */ tcaron /* b4 */ tcedilla /* b5 */ uhungarumlaut /* b6 */ uring /* b7 */ ldot /* b8 */ zacute /* b9 */ zcaron /* ba */ zdotaccent /* bb */ ij /* bc */ exclamdown /* bd */ questiondown /* be */ sterling /* bf */ Agrave /* c0 */ Aacute /* c1 */ Acircumflex /* c2 */ Atilde /* c3 */ Adieresis /* c4 */ Aring /* c5 */ AE /* c6 */ Ccedilla /* c7 */ Egrave /* c8 */ Eacute /* c9 */ Ecircumflex /* ca */ Edieresis /* cb */ Igrave /* cc */ Iacute /* cd */ Icircumflex /* ce */ Idieresis /* cf */ Eth /* d0 */ Ntilde /* d1 */ Ograve /* d2 */ Oacute /* d3 */ Ocircumflex /* d4 */ Otilde /* d5 */ Odieresis /* d6 */ OE /* d7 */ Oslash /* d8 */ Ugrave /* d9 */ Uacute /* da */ Ucircumflex /* db */ Udieresis /* dc */ Yacute /* dd */ Thorn /* de */ SS /* df */ agrave /* e0 */ aacute /* e1 */ acircumflex /* e2 */ atilde /* e3 */ adieresis /* e4 */ aring /* e5 */ ae /* e6 */ ccedilla /* e7 */ egrave /* e8 */ eacute /* e9 */ ecircumflex /* ea */ edieresis /* eb */ igrave /* ec */ iacute /* ed */ icircumflex /* ee */ idieresis /* ef */ eth /* f0 */ ntilde /* f1 */ ograve /* f2 */ oacute /* f3 */ ocircumflex /* f4 */ otilde /* f5 */ odieresis /* f6 */ oe /* f7 */ oslash /* f8 */ ugrave /* f9 */ uacute /* fa */ ucircumflex /* fb */ udieresis /* fc */ yacute /* fd */ thorn /* fe */ germandbls /* ff */ vflib3-3.6.14.dfsg/t1lib/EC.enc0000644000175000017500000003560507273472635015305 0ustar mohuramohura# EC.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/EC.enc. Encoding=ECEncoding grave /* 00 */ acute /* 01 */ circumflex /* 02 */ tilde /* 03 */ dieresis /* 04 */ hungarumlaut /* 05 */ ring /* 06 */ caron /* 07 */ breve /* 08 */ macron /* 09 */ dotaccent /* 0a */ cedilla /* 0b */ ogonek /* 0c */ quotesinglbase /* 0d */ guilsinglleft /* 0e */ guilsinglright /* 0f */ quotedblleft /* 10 */ quotedblright /* 11 */ quotedblbase /* 12 */ guillemotleft /* 13 */ guillemotright /* 14 */ endash /* 15 */ emdash /* 16 */ cwm /* 17 */ zeroinferior /* 18 */ dotlessi /* 19 */ dotlessj /* 1a */ ff /* 1b */ fi /* 1c */ fl /* 1d */ ffi /* 1e */ ffl /* 1f */ visualspace /* 20 */ exclam /* 21 */ quotedbl /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ asciicircum /* 5e */ underscore /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ asciitilde /* 7e */ hyphen /* 7f */ Abreve /* 80 */ Aogonek /* 81 */ Cacute /* 82 */ Ccaron /* 83 */ Dcaron /* 84 */ Ecaron /* 85 */ Eogonek /* 86 */ Gbreve /* 87 */ Lacute /* 88 */ Lcaron /* 89 */ Lslash /* 8a */ Nacute /* 8b */ Ncaron /* 8c */ Ng /* 8d */ Ohungarumlaut /* 8e */ Racute /* 8f */ Rcaron /* 90 */ Sacute /* 91 */ Scaron /* 92 */ Scedilla /* 93 */ Tcaron /* 94 */ Tcedilla /* 95 */ Uhungarumlaut /* 96 */ Uring /* 97 */ Ydieresis /* 98 */ Zacute /* 99 */ Zcaron /* 9a */ Zdotaccent /* 9b */ IJ /* 9c */ Idotaccent /* 9d */ dbar /* 9e */ section /* 9f */ abreve /* a0 */ aogonek /* a1 */ cacute /* a2 */ ccaron /* a3 */ dcaron /* a4 */ ecaron /* a5 */ eogonek /* a6 */ gbreve /* a7 */ lacute /* a8 */ lcaron /* a9 */ lslash /* aa */ nacute /* ab */ ncaron /* ac */ ng /* ad */ ohungarumlaut /* ae */ racute /* af */ rcaron /* b0 */ sacute /* b1 */ scaron /* b2 */ scedilla /* b3 */ tquoteright /* b4 */ tcedilla /* b5 */ uhungarumlaut /* b6 */ uring /* b7 */ ldot /* b8 */ zacute /* b9 */ zcaron /* ba */ zdotaccent /* bb */ ij /* bc */ exclamdown /* bd */ questiondown /* be */ sterling /* bf */ Agrave /* c0 */ Aacute /* c1 */ Acircumflex /* c2 */ Atilde /* c3 */ Adieresis /* c4 */ Aring /* c5 */ AE /* c6 */ Ccedilla /* c7 */ Egrave /* c8 */ Eacute /* c9 */ Ecircumflex /* ca */ Edieresis /* cb */ Igrave /* cc */ Iacute /* cd */ Icircumflex /* ce */ Idieresis /* cf */ Eth /* d0 */ Ntilde /* d1 */ Ograve /* d2 */ Oacute /* d3 */ Ocircumflex /* d4 */ Otilde /* d5 */ Odieresis /* d6 */ OE /* d7 */ Oslash /* d8 */ Ugrave /* d9 */ Uacute /* da */ Ucircumflex /* db */ Udieresis /* dc */ Yacute /* dd */ Thorn /* de */ Germandbls /* df */ agrave /* e0 */ aacute /* e1 */ acircumflex /* e2 */ atilde /* e3 */ adieresis /* e4 */ aring /* e5 */ ae /* e6 */ ccedilla /* e7 */ egrave /* e8 */ eacute /* e9 */ ecircumflex /* ea */ edieresis /* eb */ igrave /* ec */ iacute /* ed */ icircumflex /* ee */ idieresis /* ef */ eth /* f0 */ ntilde /* f1 */ ograve /* f2 */ oacute /* f3 */ ocircumflex /* f4 */ otilde /* f5 */ odieresis /* f6 */ oe /* f7 */ oslash /* f8 */ ugrave /* f9 */ uacute /* fa */ ucircumflex /* fb */ udieresis /* fc */ yacute /* fd */ thorn /* fe */ germandbls /* ff */ vflib3-3.6.14.dfsg/t1lib/ad.enc0000644000175000017500000003561007273472635015376 0ustar mohuramohura# ad.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/ad.enc. Encoding=AdobeEncoding Zcaron /* 00 */ zcaron /* 01 */ dotlessj /* 02 */ ff /* 03 */ ffi /* 04 */ ffl /* 05 */ trademark /* 06 */ Ydieresis /* 07 */ Scaron /* 08 */ scaron /* 09 */ brokenbar /* 0a */ copyright /* 0b */ logicalnot /* 0c */ registered /* 0d */ degree /* 0e */ plusminus /* 0f */ twosuperior /* 10 */ threesuperior /* 11 */ mu /* 12 */ onesuperior /* 13 */ onequarter /* 14 */ onehalf /* 15 */ threequarters /* 16 */ .notdef /* 17 */ .notdef /* 18 */ .notdef /* 19 */ .notdef /* 1a */ .notdef /* 1b */ .notdef /* 1c */ .notdef /* 1d */ .notdef /* 1e */ .notdef /* 1f */ space /* 20 */ exclam /* 21 */ quotedbl /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ asciicircum /* 5e */ underscore /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ asciitilde /* 7e */ Agrave /* 7f */ Aacute /* 80 */ Acircumflex /* 81 */ Atilde /* 82 */ Adieresis /* 83 */ Aring /* 84 */ .notdef /* 85 */ Ccedilla /* 86 */ Egrave /* 87 */ Eacute /* 88 */ Ecircumflex /* 89 */ Edieresis /* 8a */ Igrave /* 8b */ Iacute /* 8c */ Icircumflex /* 8d */ Idieresis /* 8e */ agrave /* 8f */ aacute /* 90 */ acircumflex /* 91 */ atilde /* 92 */ adieresis /* 93 */ aring /* 94 */ .notdef /* 95 */ ccedilla /* 96 */ egrave /* 97 */ eacute /* 98 */ ecircumflex /* 99 */ edieresis /* 9a */ igrave /* 9b */ iacute /* 9c */ icircumflex /* 9d */ idieresis /* 9e */ .notdef /* 9f */ .notdef /* a0 */ exclamdown /* a1 */ cent /* a2 */ sterling /* a3 */ fraction /* a4 */ yen /* a5 */ florin /* a6 */ section /* a7 */ currency /* a8 */ quotesingle /* a9 */ quotedblleft /* aa */ guillemotleft /* ab */ guilsinglleft /* ac */ guilsinglright /* ad */ fi /* ae */ fl /* af */ .notdef /* b0 */ endash /* b1 */ dagger /* b2 */ daggerdbl /* b3 */ periodcentered /* b4 */ .notdef /* b5 */ paragraph /* b6 */ bullet /* b7 */ quotesinglbase /* b8 */ quotedblbase /* b9 */ quotedblright /* ba */ guillemotright /* bb */ ellipsis /* bc */ perthousand /* bd */ .notdef /* be */ questiondown /* bf */ .notdef /* c0 */ grave /* c1 */ acute /* c2 */ circumflex /* c3 */ tilde /* c4 */ macron /* c5 */ breve /* c6 */ dotaccent /* c7 */ dieresis /* c8 */ .notdef /* c9 */ ring /* ca */ cedilla /* cb */ .notdef /* cc */ hungarumlaut /* cd */ ogonek /* ce */ caron /* cf */ emdash /* d0 */ Eth /* d1 */ Ntilde /* d2 */ Ograve /* d3 */ Oacute /* d4 */ Ocircumflex /* d5 */ Otilde /* d6 */ Odieresis /* d7 */ multiply /* d8 */ Oslash /* d9 */ Ugrave /* da */ Uacute /* db */ Ucircumflex /* dc */ Udieresis /* dd */ Yacute /* de */ Thorn /* df */ .notdef /* e0 */ AE /* e1 */ .notdef /* e2 */ ordfeminine /* e3 */ eth /* e4 */ ntilde /* e5 */ ograve /* e6 */ oacute /* e7 */ Lslash /* e8 */ .notdef /* e9 */ OE /* ea */ ordmasculine /* eb */ ocircumflex /* ec */ otilde /* ed */ odieresis /* ee */ divide /* ef */ .notdef /* f0 */ ae /* f1 */ ugrave /* f2 */ uacute /* f3 */ ucircumflex /* f4 */ dotlessi /* f5 */ .notdef /* f6 */ .notdef /* f7 */ lslash /* f8 */ oslash /* f9 */ oe /* fa */ germandbls /* fb */ udieresis /* fc */ yacute /* fd */ thorn /* fe */ ydieresis /* ff */ vflib3-3.6.14.dfsg/t1lib/asex.enc0000644000175000017500000007445707273472635015766 0ustar mohuramohura# asex.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/asex.enc. Encoding=ASEXEncoding Aogonek /* 00 */ Eogonek /* 01 */ Iogonek /* 02 */ Kafii9170 /* 03 */ Lafii9170 /* 04 */ Lcaron /* 05 */ Nafii9170 /* 06 */ Rafii9170 /* 07 */ Safii9170 /* 08 */ .Scedilla /* 09 */ Tafii9170 /* 0a */ Uogonek /* 0b */ .notdef /* 0c */ .notdef /* 0d */ .notdef /* 0e */ .notdef /* 0f */ aogonek /* 10 */ eogonek /* 11 */ iogonek /* 12 */ kafii9170 /* 13 */ lafii9170 /* 14 */ lcaron /* 15 */ nafii9170 /* 16 */ rafii9170 /* 17 */ safii9170 /* 18 */ .scedilla /* 19 */ tafii9170 /* 1a */ uogonek /* 1b */ .notdef /* 1c */ .notdef /* 1d */ .notdef /* 1e */ .notdef /* 1f */ space /* 20 */ exclam /* 21 */ quotedbl /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ asciicircum /* 5e */ underscore /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ asciitilde /* 7e */ .notdef /* 7f */ Ccedilla /* 80 */ Eth /* 81 */ Thorn /* 82 */ brokenbar /* 83 */ ccedilla /* 84 */ copyright /* 85 */ degree /* 86 */ divide /* 87 */ eth /* 88 */ logicalnot /* 89 */ minus /* 8a */ mu /* 8b */ multiply /* 8c */ onehalf /* 8d */ onequarter /* 8e */ onesuperior /* 8f */ plusminus /* 90 */ registered /* 91 */ thorn /* 92 */ threequarters /* 93 */ threesuperior /* 94 */ trademark /* 95 */ twosuperior /* 96 */ .notdef /* 97 */ .notdef /* 98 */ .notdef /* 99 */ .notdef /* 9a */ .notdef /* 9b */ .notdef /* 9c */ .notdef /* 9d */ .notdef /* 9e */ .notdef /* 9f */ .notdef /* a0 */ exclamdown /* a1 */ cent /* a2 */ sterling /* a3 */ fraction /* a4 */ yen /* a5 */ florin /* a6 */ section /* a7 */ currency /* a8 */ quotesingle /* a9 */ quotedblleft /* aa */ guillemotleft /* ab */ guilsinglleft /* ac */ guilsinglright /* ad */ fi /* ae */ fl /* af */ .notdef /* b0 */ endash /* b1 */ dagger /* b2 */ daggerdbl /* b3 */ periodcentered /* b4 */ .notdef /* b5 */ paragraph /* b6 */ bullet /* b7 */ quotesinglbase /* b8 */ quotedblbase /* b9 */ quotedblright /* ba */ guillemotright /* bb */ ellipsis /* bc */ perthousand /* bd */ .notdef /* be */ questiondown /* bf */ .notdef /* c0 */ grave /* c1 */ acute /* c2 */ circumflex /* c3 */ tilde /* c4 */ macron /* c5 */ breve /* c6 */ dotaccent /* c7 */ dieresis /* c8 */ .notdef /* c9 */ ring /* ca */ cedilla /* cb */ .notdef /* cc */ hungarumlaut /* cd */ ogonek /* ce */ caron /* cf */ emdash /* d0 */ .notdef /* d1 */ .notdef /* d2 */ .notdef /* d3 */ .notdef /* d4 */ .notdef /* d5 */ .notdef /* d6 */ .notdef /* d7 */ .notdef /* d8 */ .notdef /* d9 */ .notdef /* da */ .notdef /* db */ .notdef /* dc */ .notdef /* dd */ .notdef /* de */ .notdef /* df */ .notdef /* e0 */ AE /* e1 */ .notdef /* e2 */ ordfeminine /* e3 */ .notdef /* e4 */ .notdef /* e5 */ .notdef /* e6 */ .notdef /* e7 */ Lslash /* e8 */ Oslash /* e9 */ OE /* ea */ ordmasculine /* eb */ .notdef /* ec */ .notdef /* ed */ .notdef /* ee */ .notdef /* ef */ .notdef /* f0 */ ae /* f1 */ .notdef /* f2 */ .notdef /* f3 */ .notdef /* f4 */ dotlessi /* f5 */ .notdef /* f6 */ .notdef /* f7 */ lslash /* f8 */ oslash /* f9 */ oe /* fa */ germandbls /* fb */ .notdef /* fc */ .notdef /* fd */ .notdef /* fe */ .notdef /* ff */ Same /* 100 */ rationale /* 101 */ for /* 102 */ "Expert /* 103 */ Font" /* 104 */ encoding /* 105 */ ASEXPEncoding /* 106 */ .notdef /* 107 */ .notdef /* 108 */ .notdef /* 109 */ .notdef /* 10a */ .notdef /* 10b */ .notdef /* 10c */ .notdef /* 10d */ .notdef /* 10e */ .notdef /* 10f */ .notdef /* 110 */ .notdef /* 111 */ .notdef /* 112 */ .notdef /* 113 */ .notdef /* 114 */ .notdef /* 115 */ .notdef /* 116 */ .notdef /* 117 */ .notdef /* 118 */ .notdef /* 119 */ .notdef /* 11a */ .notdef /* 11b */ .notdef /* 11c */ .notdef /* 11d */ .notdef /* 11e */ .notdef /* 11f */ .notdef /* 120 */ .notdef /* 121 */ .notdef /* 122 */ .notdef /* 123 */ .notdef /* 124 */ .notdef /* 125 */ .notdef /* 126 */ .notdef /* 127 */ exclamsmall /* 128 */ Hungarumlautsmall /* 129 */ .notdef /* 12a */ dollaroldstyle /* 12b */ dollarsuperior /* 12c */ ampersandsmall /* 12d */ Acutesmall /* 12e */ parenleftsuperior /* 12f */ parenrightsuperior /* 130 */ twodotenleader /* 131 */ onedotenleader /* 132 */ comma /* 133 */ hyphen /* 134 */ period /* 135 */ fraction /* 136 */ zerooldstyle /* 137 */ oneoldstyle /* 138 */ twooldstyle /* 139 */ threeoldstyle /* 13a */ fouroldstyle /* 13b */ fiveoldstyle /* 13c */ sixoldstyle /* 13d */ sevenoldstyle /* 13e */ eightoldstyle /* 13f */ nineoldstyle /* 140 */ colon /* 141 */ semicolon /* 142 */ commasuperior /* 143 */ threequartersemdash /* 144 */ periodsuperior /* 145 */ questionsmall /* 146 */ .notdef /* 147 */ asuperior /* 148 */ bsuperior /* 149 */ centsuperior /* 14a */ dsuperior /* 14b */ esuperior /* 14c */ .notdef /* 14d */ .notdef /* 14e */ .notdef /* 14f */ isuperior /* 150 */ .notdef /* 151 */ .notdef /* 152 */ lsuperior /* 153 */ msuperior /* 154 */ nsuperior /* 155 */ osuperior /* 156 */ .notdef /* 157 */ .notdef /* 158 */ rsuperior /* 159 */ ssuperior /* 15a */ tsuperior /* 15b */ .notdef /* 15c */ ff /* 15d */ fi /* 15e */ fl /* 15f */ ffi /* 160 */ ffl /* 161 */ parenleftinferior /* 162 */ .notdef /* 163 */ parenrightinferior /* 164 */ Circumflexsmall /* 165 */ hyphensuperior /* 166 */ Gravesmall /* 167 */ Asmall /* 168 */ Bsmall /* 169 */ Csmall /* 16a */ Dsmall /* 16b */ Esmall /* 16c */ Fsmall /* 16d */ Gsmall /* 16e */ Hsmall /* 16f */ Ismall /* 170 */ Jsmall /* 171 */ Ksmall /* 172 */ Lsmall /* 173 */ Msmall /* 174 */ Nsmall /* 175 */ Osmall /* 176 */ Psmall /* 177 */ Qsmall /* 178 */ Rsmall /* 179 */ Ssmall /* 17a */ Tsmall /* 17b */ Usmall /* 17c */ Vsmall /* 17d */ Wsmall /* 17e */ Xsmall /* 17f */ Ysmall /* 180 */ Zsmall /* 181 */ colonmonetary /* 182 */ onefitted /* 183 */ rupiah /* 184 */ Tildesmall /* 185 */ .notdef /* 186 */ .notdef /* 187 */ .notdef /* 188 */ .notdef /* 189 */ .notdef /* 18a */ .notdef /* 18b */ .notdef /* 18c */ .notdef /* 18d */ .notdef /* 18e */ .notdef /* 18f */ .notdef /* 190 */ .notdef /* 191 */ .notdef /* 192 */ .notdef /* 193 */ .notdef /* 194 */ .notdef /* 195 */ .notdef /* 196 */ .notdef /* 197 */ .notdef /* 198 */ .notdef /* 199 */ .notdef /* 19a */ .notdef /* 19b */ .notdef /* 19c */ .notdef /* 19d */ .notdef /* 19e */ .notdef /* 19f */ .notdef /* 1a0 */ .notdef /* 1a1 */ .notdef /* 1a2 */ .notdef /* 1a3 */ .notdef /* 1a4 */ .notdef /* 1a5 */ .notdef /* 1a6 */ .notdef /* 1a7 */ exclamdownsmall /* 1a8 */ centoldstyle /* 1a9 */ Lslashsmall /* 1aa */ .notdef /* 1ab */ .notdef /* 1ac */ Scaronsmall /* 1ad */ Zcaronsmall /* 1ae */ Dieresissmall /* 1af */ Brevesmall /* 1b0 */ Caronsmall /* 1b1 */ .notdef /* 1b2 */ Dotaccentsmall /* 1b3 */ .notdef /* 1b4 */ .notdef /* 1b5 */ Macronsmall /* 1b6 */ .notdef /* 1b7 */ .notdef /* 1b8 */ figuredash /* 1b9 */ hypheninferior /* 1ba */ .notdef /* 1bb */ .notdef /* 1bc */ Ogoneksmall /* 1bd */ Ringsmall /* 1be */ Cedillasmall /* 1bf */ .notdef /* 1c0 */ .notdef /* 1c1 */ .notdef /* 1c2 */ onequarter /* 1c3 */ onehalf /* 1c4 */ threequarters /* 1c5 */ questiondownsmall /* 1c6 */ oneeighth /* 1c7 */ threeeighths /* 1c8 */ fiveeighths /* 1c9 */ seveneighths /* 1ca */ onethird /* 1cb */ twothirds /* 1cc */ .notdef /* 1cd */ .notdef /* 1ce */ zerosuperior /* 1cf */ onesuperior /* 1d0 */ twosuperior /* 1d1 */ threesuperior /* 1d2 */ foursuperior /* 1d3 */ fivesuperior /* 1d4 */ sixsuperior /* 1d5 */ sevensuperior /* 1d6 */ eightsuperior /* 1d7 */ ninesuperior /* 1d8 */ zeroinferior /* 1d9 */ oneinferior /* 1da */ twoinferior /* 1db */ threeinferior /* 1dc */ fourinferior /* 1dd */ fiveinferior /* 1de */ sixinferior /* 1df */ seveninferior /* 1e0 */ eightinferior /* 1e1 */ nineinferior /* 1e2 */ centinferior /* 1e3 */ dollarinferior /* 1e4 */ periodinferior /* 1e5 */ commainferior /* 1e6 */ Agravesmall /* 1e7 */ Aacutesmall /* 1e8 */ Acircumflexsmall /* 1e9 */ Atildesmall /* 1ea */ Adieresissmall /* 1eb */ Aringsmall /* 1ec */ AEsmall /* 1ed */ Ccedillasmall /* 1ee */ Egravesmall /* 1ef */ Eacutesmall /* 1f0 */ Ecircumflexsmall /* 1f1 */ Edieresissmall /* 1f2 */ Igravesmall /* 1f3 */ Iacutesmall /* 1f4 */ Icircumflexsmall /* 1f5 */ Idieresissmall /* 1f6 */ Ethsmall /* 1f7 */ Ntildesmall /* 1f8 */ Ogravesmall /* 1f9 */ Oacutesmall /* 1fa */ Ocircumflexsmall /* 1fb */ Otildesmall /* 1fc */ Odieresissmall /* 1fd */ OEsmall /* 1fe */ Oslashsmall /* 1ff */ Ugravesmall /* 200 */ Uacutesmall /* 201 */ Ucircumflexsmall /* 202 */ Udieresissmall /* 203 */ Yacutesmall /* 204 */ Thornsmall /* 205 */ Ydieresissmall /* 206 */ vflib3-3.6.14.dfsg/t1lib/asexp.enc0000644000175000017500000003561607273472635016140 0ustar mohuramohura# asexp.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/asexp.enc. Encoding=ASEXPEncoding .notdef /* 00 */ .notdef /* 01 */ .notdef /* 02 */ .notdef /* 03 */ .notdef /* 04 */ .notdef /* 05 */ .notdef /* 06 */ .notdef /* 07 */ .notdef /* 08 */ .notdef /* 09 */ .notdef /* 0a */ .notdef /* 0b */ .notdef /* 0c */ .notdef /* 0d */ .notdef /* 0e */ .notdef /* 0f */ .notdef /* 10 */ .notdef /* 11 */ .notdef /* 12 */ .notdef /* 13 */ .notdef /* 14 */ .notdef /* 15 */ .notdef /* 16 */ .notdef /* 17 */ .notdef /* 18 */ .notdef /* 19 */ .notdef /* 1a */ .notdef /* 1b */ .notdef /* 1c */ .notdef /* 1d */ .notdef /* 1e */ .notdef /* 1f */ .notdef /* 20 */ exclamsmall /* 21 */ Hungarumlautsmall /* 22 */ .notdef /* 23 */ dollaroldstyle /* 24 */ dollarsuperior /* 25 */ ampersandsmall /* 26 */ Acutesmall /* 27 */ parenleftsuperior /* 28 */ parenrightsuperior /* 29 */ twodotenleader /* 2a */ onedotenleader /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ fraction /* 2f */ zerooldstyle /* 30 */ oneoldstyle /* 31 */ twooldstyle /* 32 */ threeoldstyle /* 33 */ fouroldstyle /* 34 */ fiveoldstyle /* 35 */ sixoldstyle /* 36 */ sevenoldstyle /* 37 */ eightoldstyle /* 38 */ nineoldstyle /* 39 */ colon /* 3a */ semicolon /* 3b */ commasuperior /* 3c */ threequartersemdash /* 3d */ periodsuperior /* 3e */ questionsmall /* 3f */ .notdef /* 40 */ asuperior /* 41 */ bsuperior /* 42 */ centsuperior /* 43 */ dsuperior /* 44 */ esuperior /* 45 */ .notdef /* 46 */ .notdef /* 47 */ .notdef /* 48 */ isuperior /* 49 */ .notdef /* 4a */ .notdef /* 4b */ lsuperior /* 4c */ msuperior /* 4d */ nsuperior /* 4e */ osuperior /* 4f */ .notdef /* 50 */ .notdef /* 51 */ rsuperior /* 52 */ ssuperior /* 53 */ tsuperior /* 54 */ .notdef /* 55 */ ff /* 56 */ fi /* 57 */ fl /* 58 */ ffi /* 59 */ ffl /* 5a */ parenleftinferior /* 5b */ .notdef /* 5c */ parenrightinferior /* 5d */ Circumflexsmall /* 5e */ hyphensuperior /* 5f */ Gravesmall /* 60 */ Asmall /* 61 */ Bsmall /* 62 */ Csmall /* 63 */ Dsmall /* 64 */ Esmall /* 65 */ Fsmall /* 66 */ Gsmall /* 67 */ Hsmall /* 68 */ Ismall /* 69 */ Jsmall /* 6a */ Ksmall /* 6b */ Lsmall /* 6c */ Msmall /* 6d */ Nsmall /* 6e */ Osmall /* 6f */ Psmall /* 70 */ Qsmall /* 71 */ Rsmall /* 72 */ Ssmall /* 73 */ Tsmall /* 74 */ Usmall /* 75 */ Vsmall /* 76 */ Wsmall /* 77 */ Xsmall /* 78 */ Ysmall /* 79 */ Zsmall /* 7a */ colonmonetary /* 7b */ onefitted /* 7c */ rupiah /* 7d */ Tildesmall /* 7e */ .notdef /* 7f */ .notdef /* 80 */ .notdef /* 81 */ .notdef /* 82 */ .notdef /* 83 */ .notdef /* 84 */ .notdef /* 85 */ .notdef /* 86 */ .notdef /* 87 */ .notdef /* 88 */ .notdef /* 89 */ .notdef /* 8a */ .notdef /* 8b */ .notdef /* 8c */ .notdef /* 8d */ .notdef /* 8e */ .notdef /* 8f */ .notdef /* 90 */ .notdef /* 91 */ .notdef /* 92 */ .notdef /* 93 */ .notdef /* 94 */ .notdef /* 95 */ .notdef /* 96 */ .notdef /* 97 */ .notdef /* 98 */ .notdef /* 99 */ .notdef /* 9a */ .notdef /* 9b */ .notdef /* 9c */ .notdef /* 9d */ .notdef /* 9e */ .notdef /* 9f */ .notdef /* a0 */ exclamdownsmall /* a1 */ centoldstyle /* a2 */ Lslashsmall /* a3 */ .notdef /* a4 */ .notdef /* a5 */ Scaronsmall /* a6 */ Zcaronsmall /* a7 */ Dieresissmall /* a8 */ Brevesmall /* a9 */ Caronsmall /* aa */ .notdef /* ab */ Dotaccentsmall /* ac */ .notdef /* ad */ .notdef /* ae */ Macronsmall /* af */ .notdef /* b0 */ .notdef /* b1 */ figuredash /* b2 */ hypheninferior /* b3 */ .notdef /* b4 */ .notdef /* b5 */ Ogoneksmall /* b6 */ Ringsmall /* b7 */ Cedillasmall /* b8 */ .notdef /* b9 */ .notdef /* ba */ .notdef /* bb */ onequarter /* bc */ onehalf /* bd */ threequarters /* be */ questiondownsmall /* bf */ oneeighth /* c0 */ threeeighths /* c1 */ fiveeighths /* c2 */ seveneighths /* c3 */ onethird /* c4 */ twothirds /* c5 */ .notdef /* c6 */ .notdef /* c7 */ zerosuperior /* c8 */ onesuperior /* c9 */ twosuperior /* ca */ threesuperior /* cb */ foursuperior /* cc */ fivesuperior /* cd */ sixsuperior /* ce */ sevensuperior /* cf */ eightsuperior /* d0 */ ninesuperior /* d1 */ zeroinferior /* d2 */ oneinferior /* d3 */ twoinferior /* d4 */ threeinferior /* d5 */ fourinferior /* d6 */ fiveinferior /* d7 */ sixinferior /* d8 */ seveninferior /* d9 */ eightinferior /* da */ nineinferior /* db */ centinferior /* dc */ dollarinferior /* dd */ periodinferior /* de */ commainferior /* df */ Agravesmall /* e0 */ Aacutesmall /* e1 */ Acircumflexsmall /* e2 */ Atildesmall /* e3 */ Adieresissmall /* e4 */ Aringsmall /* e5 */ AEsmall /* e6 */ Ccedillasmall /* e7 */ Egravesmall /* e8 */ Eacutesmall /* e9 */ Ecircumflexsmall /* ea */ Edieresissmall /* eb */ Igravesmall /* ec */ Iacutesmall /* ed */ Icircumflexsmall /* ee */ Idieresissmall /* ef */ Ethsmall /* f0 */ Ntildesmall /* f1 */ Ogravesmall /* f2 */ Oacutesmall /* f3 */ Ocircumflexsmall /* f4 */ Otildesmall /* f5 */ Odieresissmall /* f6 */ OEsmall /* f7 */ Oslashsmall /* f8 */ Ugravesmall /* f9 */ Uacutesmall /* fa */ Ucircumflexsmall /* fb */ Udieresissmall /* fc */ Yacutesmall /* fd */ Thornsmall /* fe */ Ydieresissmall /* ff */ vflib3-3.6.14.dfsg/t1lib/cork.enc0000644000175000017500000003561307273472636015754 0ustar mohuramohura# cork.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/cork.enc. Encoding=CorkEncoding grave /* 00 */ acute /* 01 */ circumflex /* 02 */ tilde /* 03 */ dieresis /* 04 */ hungarumlaut /* 05 */ ring /* 06 */ caron /* 07 */ breve /* 08 */ macron /* 09 */ dotaccent /* 0a */ cedilla /* 0b */ ogonek /* 0c */ quotesinglbase /* 0d */ guilsinglleft /* 0e */ guilsinglright /* 0f */ quotedblleft /* 10 */ quotedblright /* 11 */ quotedblbase /* 12 */ guillemotleft /* 13 */ guillemotright /* 14 */ endash /* 15 */ emdash /* 16 */ compworkmark /* 17 */ perthousandzero /* 18 */ dotlessi /* 19 */ dotlessj /* 1a */ ff /* 1b */ fi /* 1c */ fl /* 1d */ ffi /* 1e */ ffl /* 1f */ visualspace /* 20 */ exclam /* 21 */ quotedbl /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ asciicircum /* 5e */ underscore /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ asciitilde /* 7e */ hyphen /* 7f */ Abreve /* 80 */ Aogonek /* 81 */ Cacute /* 82 */ Ccaron /* 83 */ Dcaron /* 84 */ Ecaron /* 85 */ Eogonek /* 86 */ Gbreve /* 87 */ Lacute /* 88 */ Lcaron /* 89 */ Lslash /* 8a */ Nacute /* 8b */ Ncaron /* 8c */ Ng /* 8d */ Ohungarumlaut /* 8e */ Racute /* 8f */ Rcaron /* 90 */ Sacute /* 91 */ Scaron /* 92 */ Scedilla /* 93 */ Tcaron /* 94 */ Tcedilla /* 95 */ Uhungarumlaut /* 96 */ Uring /* 97 */ Ydieresis /* 98 */ Zacute /* 99 */ Zcaron /* 9a */ Zdotaccent /* 9b */ IJ /* 9c */ Idotaccent /* 9d */ dbar /* 9e */ section /* 9f */ abreve /* a0 */ aogonek /* a1 */ cacute /* a2 */ ccaron /* a3 */ dcaron /* a4 */ ecaron /* a5 */ eogonek /* a6 */ gbreve /* a7 */ lacute /* a8 */ lcaron /* a9 */ lslash /* aa */ nacute /* ab */ ncaron /* ac */ ng /* ad */ ohungarumlaut /* ae */ racute /* af */ rcaron /* b0 */ sacute /* b1 */ scaron /* b2 */ scedilla /* b3 */ tquoteright /* b4 */ tcedilla /* b5 */ uhungarumlaut /* b6 */ uring /* b7 */ ydieresis /* b8 */ zacute /* b9 */ zcaron /* ba */ zdotaccent /* bb */ ij /* bc */ exclamdown /* bd */ questiondown /* be */ sterling /* bf */ Agrave /* c0 */ Aacute /* c1 */ Acircumflex /* c2 */ Atilde /* c3 */ Adieresis /* c4 */ Aring /* c5 */ AE /* c6 */ Ccedilla /* c7 */ Egrave /* c8 */ Eacute /* c9 */ Ecircumflex /* ca */ Edieresis /* cb */ Igrave /* cc */ Iacute /* cd */ Icircumflex /* ce */ Idieresis /* cf */ Eth /* d0 */ Ntilde /* d1 */ Ograve /* d2 */ Oacute /* d3 */ Ocircumflex /* d4 */ Otilde /* d5 */ Odieresis /* d6 */ OE /* d7 */ Oslash /* d8 */ Ugrave /* d9 */ Uacute /* da */ Ucircumflex /* db */ Udieresis /* dc */ Yacute /* dd */ Thorn /* de */ Germandbls /* df */ agrave /* e0 */ aacute /* e1 */ acircumflex /* e2 */ atilde /* e3 */ adieresis /* e4 */ aring /* e5 */ ae /* e6 */ ccedilla /* e7 */ egrave /* e8 */ eacute /* e9 */ ecircumflex /* ea */ edieresis /* eb */ igrave /* ec */ iacute /* ed */ icircumflex /* ee */ idieresis /* ef */ eth /* f0 */ ntilde /* f1 */ ograve /* f2 */ oacute /* f3 */ ocircumflex /* f4 */ otilde /* f5 */ odieresis /* f6 */ oe /* f7 */ oslash /* f8 */ ugrave /* f9 */ uacute /* fa */ ucircumflex /* fb */ udieresis /* fc */ yacute /* fd */ thorn /* fe */ germandbls /* ff */ vflib3-3.6.14.dfsg/t1lib/dc.enc0000644000175000017500000003560507273472636015405 0ustar mohuramohura# dc.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/dc.enc. Encoding=DCEncoding grave /* 00 */ acute /* 01 */ circumflex /* 02 */ tilde /* 03 */ dieresis /* 04 */ hungarumlaut /* 05 */ ring /* 06 */ caron /* 07 */ breve /* 08 */ macron /* 09 */ dotaccent /* 0a */ cedilla /* 0b */ ogonek /* 0c */ quotesinglbase /* 0d */ guilsinglleft /* 0e */ guilsinglright /* 0f */ quotedblleft /* 10 */ quotedblright /* 11 */ quotedblbase /* 12 */ guillemotleft /* 13 */ guillemotright /* 14 */ endash /* 15 */ emdash /* 16 */ .notdef /* 17 */ zeroinferior /* 18 */ dotlessi /* 19 */ dotlessj /* 1a */ ff /* 1b */ fi /* 1c */ fl /* 1d */ ffi /* 1e */ ffl /* 1f */ .notdef /* 20 */ exclam /* 21 */ quotedbl /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ asciicircum /* 5e */ underscore /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ asciitilde /* 7e */ hyphen /* 7f */ Abreve /* 80 */ Aogonek /* 81 */ Cacute /* 82 */ Ccaron /* 83 */ Dcaron /* 84 */ Ecaron /* 85 */ Eogonek /* 86 */ Gbreve /* 87 */ Lacute /* 88 */ Lcaron /* 89 */ Lslash /* 8a */ Nacute /* 8b */ Ncaron /* 8c */ Ng /* 8d */ Ohungarumlaut /* 8e */ Racute /* 8f */ Rcaron /* 90 */ Sacute /* 91 */ Scaron /* 92 */ Scedilla /* 93 */ Tcaron /* 94 */ Tcedilla /* 95 */ Uhungarumlaut /* 96 */ Uring /* 97 */ Ldot /* 98 */ Zacute /* 99 */ Zcaron /* 9a */ Zdotaccent /* 9b */ IJ /* 9c */ Idotaccent /* 9d */ dbar /* 9e */ section /* 9f */ abreve /* a0 */ aogonek /* a1 */ cacute /* a2 */ ccaron /* a3 */ dcaron /* a4 */ ecaron /* a5 */ eogonek /* a6 */ gbreve /* a7 */ lacute /* a8 */ lcaron /* a9 */ lslash /* aa */ nacute /* ab */ ncaron /* ac */ ng /* ad */ ohungarumlaut /* ae */ racute /* af */ rcaron /* b0 */ sacute /* b1 */ scaron /* b2 */ scedilla /* b3 */ tcaron /* b4 */ tcedilla /* b5 */ uhungarumlaut /* b6 */ uring /* b7 */ ldot /* b8 */ zacute /* b9 */ zcaron /* ba */ zdotaccent /* bb */ ij /* bc */ exclamdown /* bd */ questiondown /* be */ sterling /* bf */ Agrave /* c0 */ Aacute /* c1 */ Acircumflex /* c2 */ Atilde /* c3 */ Adieresis /* c4 */ Aring /* c5 */ AE /* c6 */ Ccedilla /* c7 */ Egrave /* c8 */ Eacute /* c9 */ Ecircumflex /* ca */ Edieresis /* cb */ Igrave /* cc */ Iacute /* cd */ Icircumflex /* ce */ Idieresis /* cf */ Eth /* d0 */ Ntilde /* d1 */ Ograve /* d2 */ Oacute /* d3 */ Ocircumflex /* d4 */ Otilde /* d5 */ Odieresis /* d6 */ OE /* d7 */ Oslash /* d8 */ Ugrave /* d9 */ Uacute /* da */ Ucircumflex /* db */ Udieresis /* dc */ Yacute /* dd */ Thorn /* de */ SS /* df */ agrave /* e0 */ aacute /* e1 */ acircumflex /* e2 */ atilde /* e3 */ adieresis /* e4 */ aring /* e5 */ ae /* e6 */ ccedilla /* e7 */ egrave /* e8 */ eacute /* e9 */ ecircumflex /* ea */ edieresis /* eb */ igrave /* ec */ iacute /* ed */ icircumflex /* ee */ idieresis /* ef */ eth /* f0 */ ntilde /* f1 */ ograve /* f2 */ oacute /* f3 */ ocircumflex /* f4 */ otilde /* f5 */ odieresis /* f6 */ oe /* f7 */ oslash /* f8 */ ugrave /* f9 */ uacute /* fa */ ucircumflex /* fb */ udieresis /* fc */ yacute /* fd */ thorn /* fe */ germandbls /* ff */ vflib3-3.6.14.dfsg/t1lib/dvips.enc0000644000175000017500000003561607273472636016146 0ustar mohuramohura# dvips.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/dvips.enc. Encoding=DvipsEncoding .notdef /* 00 */ .notdef /* 01 */ .notdef /* 02 */ .notdef /* 03 */ .notdef /* 04 */ .notdef /* 05 */ .notdef /* 06 */ .notdef /* 07 */ .notdef /* 08 */ .notdef /* 09 */ .notdef /* 0a */ .notdef /* 0b */ .notdef /* 0c */ quotesingle /* 0d */ exclamdown /* 0e */ questiondown /* 0f */ dotlessi /* 10 */ dotlessj /* 11 */ grave /* 12 */ acute /* 13 */ caron /* 14 */ breve /* 15 */ macron /* 16 */ ring /* 17 */ cedilla /* 18 */ germandbls /* 19 */ ae /* 1a */ oe /* 1b */ oslash /* 1c */ AE /* 1d */ OE /* 1e */ Oslash /* 1f */ space /* 20 */ exclam /* 21 */ quotedbl /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ circumflex /* 5e */ underscore /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ tilde /* 7e */ dieresis /* 7f */ asciicircum /* 80 */ asciitilde /* 81 */ Ccedilla /* 82 */ Iacute /* 83 */ Icircumflex /* 84 */ atilde /* 85 */ edieresis /* 86 */ egrave /* 87 */ scaron /* 88 */ zcaron /* 89 */ Eth /* 8a */ ff /* 8b */ ffi /* 8c */ ffl /* 8d */ .notdef /* 8e */ .notdef /* 8f */ .notdef /* 90 */ .notdef /* 91 */ Scaron /* 92 */ .notdef /* 93 */ .notdef /* 94 */ .notdef /* 95 */ .notdef /* 96 */ .notdef /* 97 */ Ydieresis /* 98 */ .notdef /* 99 */ Zcaron /* 9a */ .notdef /* 9b */ .notdef /* 9c */ .notdef /* 9d */ .notdef /* 9e */ .notdef /* 9f */ .notdef /* a0 */ .notdef /* a1 */ cent /* a2 */ sterling /* a3 */ fraction /* a4 */ yen /* a5 */ florin /* a6 */ section /* a7 */ currency /* a8 */ copyright /* a9 */ quotedblleft /* aa */ guillemotleft /* ab */ guilsinglleft /* ac */ guilsinglright /* ad */ fi /* ae */ fl /* af */ degree /* b0 */ endash /* b1 */ dagger /* b2 */ daggerdbl /* b3 */ periodcentered /* b4 */ .notdef /* b5 */ paragraph /* b6 */ bullet /* b7 */ quotesinglbase /* b8 */ quotedblbase /* b9 */ quotedblright /* ba */ guillemotright /* bb */ ellipsis /* bc */ perthousand /* bd */ .notdef /* be */ .notdef /* bf */ Agrave /* c0 */ Aacute /* c1 */ Acircumflex /* c2 */ Atilde /* c3 */ Adieresis /* c4 */ Aring /* c5 */ .notdef /* c6 */ dotaccent /* c7 */ Egrave /* c8 */ Eacute /* c9 */ Ecircumflex /* ca */ Edieresis /* cb */ Igrave /* cc */ hungarumlaut /* cd */ ogonek /* ce */ Idieresis /* cf */ emdash /* d0 */ Ntilde /* d1 */ Ograve /* d2 */ Oacute /* d3 */ Ocircumflex /* d4 */ Otilde /* d5 */ Odieresis /* d6 */ .notdef /* d7 */ .notdef /* d8 */ Ugrave /* d9 */ Uacute /* da */ Ucircumflex /* db */ Udieresis /* dc */ Yacute /* dd */ Thorn /* de */ .notdef /* df */ agrave /* e0 */ aacute /* e1 */ acircumflex /* e2 */ ordfeminine /* e3 */ adieresis /* e4 */ aring /* e5 */ .notdef /* e6 */ ccedilla /* e7 */ Lslash /* e8 */ eacute /* e9 */ ecircumflex /* ea */ ordmasculine /* eb */ igrave /* ec */ iacute /* ed */ icircumflex /* ee */ idieresis /* ef */ .notdef /* f0 */ ntilde /* f1 */ ograve /* f2 */ oacute /* f3 */ ocircumflex /* f4 */ otilde /* f5 */ odieresis /* f6 */ .notdef /* f7 */ lslash /* f8 */ ugrave /* f9 */ uacute /* fa */ ucircumflex /* fb */ udieresis /* fc */ yacute /* fd */ thorn /* fe */ ydieresis /* ff */ vflib3-3.6.14.dfsg/t1lib/extex.enc0000644000175000017500000003562407273472636016155 0ustar mohuramohura# extex.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/extex.enc. Encoding=ExtendedTeXEncoding grave /* 00 */ acute /* 01 */ circumflex /* 02 */ tilde /* 03 */ dieresis /* 04 */ hungarumlaut /* 05 */ ring /* 06 */ caron /* 07 */ breve /* 08 */ macron /* 09 */ dotaccent /* 0a */ cedilla /* 0b */ ogonek /* 0c */ quotesinglbase /* 0d */ guilsinglleft /* 0e */ guilsinglright /* 0f */ quotedblleft /* 10 */ quotedblright /* 11 */ quotedblbase /* 12 */ guillemotleft /* 13 */ guillemotright /* 14 */ endash /* 15 */ emdash /* 16 */ cwm /* 17 */ zeroinferior /* 18 */ dotlessi /* 19 */ dotlessj /* 1a */ ff /* 1b */ fi /* 1c */ fl /* 1d */ ffi /* 1e */ ffl /* 1f */ space /* 20 */ exclam /* 21 */ quotedbl /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ minus /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ asciicircum /* 5e */ underscore /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ asciitilde /* 7e */ hyphen /* 7f */ Abreve /* 80 */ Aogonek /* 81 */ Cacute /* 82 */ Ccaron /* 83 */ Dcaron /* 84 */ Ecaron /* 85 */ Eogonek /* 86 */ Gbreve /* 87 */ Lacute /* 88 */ Lcaron /* 89 */ Lslash /* 8a */ Nacute /* 8b */ Ncaron /* 8c */ Eng /* 8d */ Ohungarumlaut /* 8e */ Racute /* 8f */ Rcaron /* 90 */ Sacute /* 91 */ Scaron /* 92 */ Scedilla /* 93 */ Tcaron /* 94 */ Tcedilla /* 95 */ Uhungarumlaut /* 96 */ Uring /* 97 */ Ydieresis /* 98 */ Zacute /* 99 */ Zcaron /* 9a */ Zdot /* 9b */ IJ /* 9c */ Idot /* 9d */ dstroke /* 9e */ paragraph /* 9f */ abreve /* a0 */ aogonek /* a1 */ cacute /* a2 */ ccaron /* a3 */ dcaron /* a4 */ ecaron /* a5 */ eogonek /* a6 */ gbreve /* a7 */ lacute /* a8 */ lcaron /* a9 */ lslash /* aa */ nacute /* ab */ ncaron /* ac */ eng /* ad */ ohungarumlaut /* ae */ racute /* af */ rcaron /* b0 */ sacute /* b1 */ scaron /* b2 */ scedilla /* b3 */ tcaron /* b4 */ tcedilla /* b5 */ uhungarumlaut /* b6 */ uring /* b7 */ ydieresis /* b8 */ zacute /* b9 */ zcaron /* ba */ zdot /* bb */ ij /* bc */ exclamdown /* bd */ questiondown /* be */ sterling /* bf */ Agrave /* c0 */ Aacute /* c1 */ Acircumflex /* c2 */ Atilde /* c3 */ Adieresis /* c4 */ Aring /* c5 */ AE /* c6 */ Ccedilla /* c7 */ Egrave /* c8 */ Eacute /* c9 */ Ecircumflex /* ca */ Edieresis /* cb */ Igrave /* cc */ Iacute /* cd */ Icircumflex /* ce */ Idieresis /* cf */ Eth /* d0 */ Ntilde /* d1 */ Ograve /* d2 */ Oacute /* d3 */ Ocircumflex /* d4 */ Otilde /* d5 */ Odieresis /* d6 */ OE /* d7 */ Oslash /* d8 */ Ugrave /* d9 */ Uacute /* da */ Ucircumflex /* db */ Udieresis /* dc */ Yacute /* dd */ Thorn /* de */ Germandbls /* df */ agrave /* e0 */ aacute /* e1 */ acircumflex /* e2 */ atilde /* e3 */ adieresis /* e4 */ aring /* e5 */ ae /* e6 */ ccedilla /* e7 */ egrave /* e8 */ eacute /* e9 */ ecircumflex /* ea */ edieresis /* eb */ igrave /* ec */ iacute /* ed */ icircumflex /* ee */ idieresis /* ef */ eth /* f0 */ ntilde /* f1 */ ograve /* f2 */ oacute /* f3 */ ocircumflex /* f4 */ otilde /* f5 */ odieresis /* f6 */ oe /* f7 */ oslash /* f8 */ ugrave /* f9 */ uacute /* fa */ ucircumflex /* fb */ udieresis /* fc */ yacute /* fd */ thorn /* fe */ germandbls /* ff */ vflib3-3.6.14.dfsg/t1lib/funky.enc0000644000175000017500000003561607273472636016155 0ustar mohuramohura# funky.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/funky.enc. Encoding=FunkyEncoding Gamma /* 00 */ Delta /* 01 */ Theta /* 02 */ Lambda /* 03 */ Xi /* 04 */ Pi /* 05 */ Sigma /* 06 */ Upsilon /* 07 */ Phi /* 08 */ Psi /* 09 */ Omega /* 0a */ arrowup /* 0b */ arrowdown /* 0c */ quotesingle /* 0d */ exclamdown /* 0e */ questiondown /* 0f */ dotlessi /* 10 */ dotlessj /* 11 */ grave /* 12 */ acute /* 13 */ caron /* 14 */ breve /* 15 */ macron /* 16 */ ring /* 17 */ cedilla /* 18 */ germandbls /* 19 */ ae /* 1a */ oe /* 1b */ oslash /* 1c */ AE /* 1d */ OE /* 1e */ Oslash /* 1f */ space /* 20 */ exclam /* 21 */ quotedbl /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ E /* 41 */ C /* 42 */ D /* 43 */ F /* 44 */ I /* 45 */ G /* 46 */ H /* 47 */ J /* 48 */ O /* 49 */ K /* 4a */ L /* 4b */ M /* 4c */ N /* 4d */ P /* 4e */ U /* 4f */ Q /* 50 */ R /* 51 */ S /* 52 */ T /* 53 */ V /* 54 */ Y /* 55 */ W /* 56 */ X /* 57 */ Z /* 58 */ A /* 59 */ B /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ circumflex /* 5e */ underscore /* 5f */ quoteleft /* 60 */ e /* 61 */ c /* 62 */ d /* 63 */ f /* 64 */ i /* 65 */ g /* 66 */ h /* 67 */ j /* 68 */ o /* 69 */ k /* 6a */ l /* 6b */ m /* 6c */ n /* 6d */ p /* 6e */ u /* 6f */ q /* 70 */ r /* 71 */ s /* 72 */ t /* 73 */ v /* 74 */ y /* 75 */ w /* 76 */ x /* 77 */ z /* 78 */ a /* 79 */ b /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ tilde /* 7e */ dieresis /* 7f */ T /* 80 */ T /* 81 */ T /* 82 */ T /* 83 */ T /* 84 */ T /* 85 */ T /* 86 */ T /* 87 */ T /* 88 */ T /* 89 */ o /* 8a */ o /* 8b */ o /* 8c */ o /* 8d */ o /* 8e */ o /* 8f */ o /* 90 */ o /* 91 */ o /* 92 */ o /* 93 */ two /* 94 */ two /* 95 */ two /* 96 */ two /* 97 */ two /* 98 */ fi /* 99 */ ff /* 9a */ ffi /* 9b */ ffl /* 9c */ some /* 9d */ characters /* 9e */ that /* 9f */ dont /* a0 */ exist /* a1 */ . /* a2 */ . /* a3 */ . /* a4 */ . /* a5 */ . /* a6 */ . /* a7 */ . /* a8 */ . /* a9 */ . /* aa */ . /* ab */ . /* ac */ . /* ad */ . /* ae */ . /* af */ . /* b0 */ . /* b1 */ . /* b2 */ . /* b3 */ . /* b4 */ . /* b5 */ .notdef /* b6 */ .notdef /* b7 */ .notdef /* b8 */ .notdef /* b9 */ .notdef /* ba */ .notdef /* bb */ .notdef /* bc */ .notdef /* bd */ .notdef /* be */ .notdef /* bf */ .notdef /* c0 */ .notdef /* c1 */ .notdef /* c2 */ .notdef /* c3 */ .notdef /* c4 */ .notdef /* c5 */ .notdef /* c6 */ .notdef /* c7 */ .notdef /* c8 */ .notdef /* c9 */ .notdef /* ca */ .notdef /* cb */ .notdef /* cc */ .notdef /* cd */ .notdef /* ce */ .notdef /* cf */ .notdef /* d0 */ .notdef /* d1 */ .notdef /* d2 */ .notdef /* d3 */ .notdef /* d4 */ .notdef /* d5 */ .notdef /* d6 */ .notdef /* d7 */ .notdef /* d8 */ .notdef /* d9 */ .notdef /* da */ .notdef /* db */ .notdef /* dc */ .notdef /* dd */ .notdef /* de */ .notdef /* df */ .notdef /* e0 */ .notdef /* e1 */ .notdef /* e2 */ .notdef /* e3 */ .notdef /* e4 */ .notdef /* e5 */ .notdef /* e6 */ .notdef /* e7 */ .notdef /* e8 */ .notdef /* e9 */ .notdef /* ea */ .notdef /* eb */ .notdef /* ec */ .notdef /* ed */ .notdef /* ee */ .notdef /* ef */ .notdef /* f0 */ .notdef /* f1 */ .notdef /* f2 */ .notdef /* f3 */ .notdef /* f4 */ .notdef /* f5 */ .notdef /* f6 */ .notdef /* f7 */ .notdef /* f8 */ .notdef /* f9 */ .notdef /* fa */ .notdef /* fb */ .notdef /* fc */ .notdef /* fd */ .notdef /* fe */ .notdef /* ff */ vflib3-3.6.14.dfsg/t1lib/odvips.enc0000644000175000017500000003562007273472636016320 0ustar mohuramohura# odvips.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/odvips.enc. Encoding=DvipsEncoding .notdef /* 00 */ .notdef /* 01 */ .notdef /* 02 */ .notdef /* 03 */ .notdef /* 04 */ .notdef /* 05 */ .notdef /* 06 */ .notdef /* 07 */ .notdef /* 08 */ .notdef /* 09 */ .notdef /* 0a */ .notdef /* 0b */ .notdef /* 0c */ quotesingle /* 0d */ exclamdown /* 0e */ questiondown /* 0f */ dotlessi /* 10 */ dotlessj /* 11 */ grave /* 12 */ acute /* 13 */ caron /* 14 */ breve /* 15 */ macron /* 16 */ ring /* 17 */ cedilla /* 18 */ germandbls /* 19 */ ae /* 1a */ oe /* 1b */ oslash /* 1c */ AE /* 1d */ OE /* 1e */ Oslash /* 1f */ space /* 20 */ exclam /* 21 */ quotedbl /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ circumflex /* 5e */ underscore /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ tilde /* 7e */ dieresis /* 7f */ asciicircum /* 80 */ asciitilde /* 81 */ Zcaron /* 82 */ ccedilla /* 83 */ ydieresis /* 84 */ atilde /* 85 */ icircumflex /* 86 */ ecircumflex /* 87 */ egrave /* 88 */ eacute /* 89 */ otilde /* 8a */ Aacute /* 8b */ ocircumflex /* 8c */ yacute /* 8d */ udieresis /* 8e */ acircumflex /* 8f */ edieresis /* 90 */ ugrave /* 91 */ ograve /* 92 */ scaron /* 93 */ Idieresis /* 94 */ uacute /* 95 */ agrave /* 96 */ ntilde /* 97 */ aring /* 98 */ zcaron /* 99 */ Icircumflex /* 9a */ Ntilde /* 9b */ ucircumflex /* 9c */ Ecircumflex /* 9d */ Iacute /* 9e */ Ccedilla /* 9f */ Odieresis /* a0 */ Scaron /* a1 */ cent /* a2 */ sterling /* a3 */ fraction /* a4 */ yen /* a5 */ florin /* a6 */ section /* a7 */ currency /* a8 */ Edieresis /* a9 */ quotedblleft /* aa */ guillemotleft /* ab */ guilsinglleft /* ac */ guilsinglright /* ad */ fi /* ae */ fl /* af */ Igrave /* b0 */ endash /* b1 */ dagger /* b2 */ daggerdbl /* b3 */ periodcentered /* b4 */ adieresis /* b5 */ paragraph /* b6 */ bullet /* b7 */ quotesinglbase /* b8 */ quotedblbase /* b9 */ quotedblright /* ba */ guillemotright /* bb */ ellipsis /* bc */ perthousand /* bd */ Ograve /* be */ Egrave /* bf */ Ydieresis /* c0 */ Otilde /* c1 */ Ugrave /* c2 */ Ucircumflex /* c3 */ Atilde /* c4 */ Uacute /* c5 */ Ocircumflex /* c6 */ dotaccent /* c7 */ Aring /* c8 */ idieresis /* c9 */ iacute /* ca */ aacute /* cb */ Udieresis /* cc */ hungarumlaut /* cd */ ogonek /* ce */ Eacute /* cf */ emdash /* d0 */ Acircumflex /* d1 */ Agrave /* d2 */ odieresis /* d3 */ oacute /* d4 */ igrave /* d5 */ Oacute /* d6 */ Adieresis /* d7 */ Yacute /* d8 */ .notdef /* d9 */ .notdef /* da */ .notdef /* db */ .notdef /* dc */ .notdef /* dd */ .notdef /* de */ .notdef /* df */ .notdef /* e0 */ .notdef /* e1 */ .notdef /* e2 */ ordfeminine /* e3 */ .notdef /* e4 */ .notdef /* e5 */ .notdef /* e6 */ .notdef /* e7 */ Lslash /* e8 */ .notdef /* e9 */ .notdef /* ea */ ordmasculine /* eb */ .notdef /* ec */ .notdef /* ed */ .notdef /* ee */ .notdef /* ef */ .notdef /* f0 */ .notdef /* f1 */ .notdef /* f2 */ .notdef /* f3 */ .notdef /* f4 */ .notdef /* f5 */ .notdef /* f6 */ .notdef /* f7 */ lslash /* f8 */ .notdef /* f9 */ .notdef /* fa */ .notdef /* fb */ .notdef /* fc */ .notdef /* fd */ .notdef /* fe */ .notdef /* ff */ vflib3-3.6.14.dfsg/t1lib/texmext.enc0000644000175000017500000003563507273472636016520 0ustar mohuramohura# texmext.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/texmext.enc. Encoding=TeXMathExtensionEncoding parenleftbig /* 00 */ parenrightbig /* 01 */ bracketleftbig /* 02 */ bracketrightbig /* 03 */ floorleftbig /* 04 */ floorrightbig /* 05 */ ceilingleftbig /* 06 */ ceilingrightbig /* 07 */ braceleftbig /* 08 */ bracerightbig /* 09 */ angbracketleftbig /* 0a */ angbracketrightbig /* 0b */ vextendsingle /* 0c */ vextenddouble /* 0d */ slashbig /* 0e */ backslashbig /* 0f */ parenleftBig /* 10 */ parenrightBig /* 11 */ parenleftbigg /* 12 */ parenrightbigg /* 13 */ bracketleftbigg /* 14 */ bracketrightbigg /* 15 */ floorleftbigg /* 16 */ floorrightbigg /* 17 */ ceilingleftbigg /* 18 */ ceilingrightbigg /* 19 */ braceleftbigg /* 1a */ bracerightbigg /* 1b */ angbracketleftbigg /* 1c */ angbracketrightbigg /* 1d */ slashbigg /* 1e */ backslashbigg /* 1f */ parenleftBigg /* 20 */ parenrightBigg /* 21 */ bracketleftBigg /* 22 */ bracketrightBigg /* 23 */ floorleftBigg /* 24 */ floorrightBigg /* 25 */ ceilingleftBigg /* 26 */ ceilingrightBigg /* 27 */ braceleftBigg /* 28 */ bracerightBigg /* 29 */ angbracketleftBigg /* 2a */ angbracketrightBigg /* 2b */ slashBigg /* 2c */ backslashBigg /* 2d */ slashBig /* 2e */ backslashBig /* 2f */ parenlefttp /* 30 */ parenrighttp /* 31 */ bracketlefttp /* 32 */ bracketrighttp /* 33 */ bracketleftbt /* 34 */ bracketrightbt /* 35 */ bracketleftex /* 36 */ bracketrightex /* 37 */ bracelefttp /* 38 */ bracerighttp /* 39 */ braceleftbt /* 3a */ bracerightbt /* 3b */ braceleftmid /* 3c */ bracerightmid /* 3d */ braceex /* 3e */ arrowvertex /* 3f */ parenleftbt /* 40 */ parenrightbt /* 41 */ parenleftex /* 42 */ parenrightex /* 43 */ angbracketleftBig /* 44 */ angbracketrightBig /* 45 */ unionsqtext /* 46 */ unionsqdisplay /* 47 */ contintegraltext /* 48 */ contintegraldisplay /* 49 */ circledottext /* 4a */ circledotdisplay /* 4b */ circleplustext /* 4c */ circleplusdisplay /* 4d */ circlemultiplytext /* 4e */ circlemultiplydisplay /* 4f */ summationtext /* 50 */ producttext /* 51 */ integraltext /* 52 */ uniontext /* 53 */ intersectiontext /* 54 */ unionmultitext /* 55 */ logicalandtext /* 56 */ logicalortext /* 57 */ summationdisplay /* 58 */ productdisplay /* 59 */ integraldisplay /* 5a */ uniondisplay /* 5b */ intersectiondisplay /* 5c */ unionmultidisplay /* 5d */ logicalanddisplay /* 5e */ logicalordisplay /* 5f */ coproducttext /* 60 */ coproductdisplay /* 61 */ hatwide /* 62 */ hatwider /* 63 */ hatwidest /* 64 */ tildewide /* 65 */ tildewider /* 66 */ tildewidest /* 67 */ bracketleftBig /* 68 */ bracketrightBig /* 69 */ floorleftBig /* 6a */ floorrightBig /* 6b */ ceilingleftBig /* 6c */ ceilingrightBig /* 6d */ braceleftBig /* 6e */ bracerightBig /* 6f */ radicalbig /* 70 */ radicalBig /* 71 */ radicalbigg /* 72 */ radicalBigg /* 73 */ radicalbt /* 74 */ radicalvertex /* 75 */ radicaltp /* 76 */ arrowvertexdbl /* 77 */ arrowtp /* 78 */ arrowbt /* 79 */ bracehtipdownleft /* 7a */ bracehtipdownright /* 7b */ bracehtipupleft /* 7c */ bracehtipupright /* 7d */ arrowdbltp /* 7e */ arrowdblbt /* 7f */ .notdef /* 80 */ .notdef /* 81 */ .notdef /* 82 */ .notdef /* 83 */ .notdef /* 84 */ .notdef /* 85 */ .notdef /* 86 */ .notdef /* 87 */ .notdef /* 88 */ .notdef /* 89 */ .notdef /* 8a */ .notdef /* 8b */ .notdef /* 8c */ .notdef /* 8d */ .notdef /* 8e */ .notdef /* 8f */ .notdef /* 90 */ .notdef /* 91 */ .notdef /* 92 */ .notdef /* 93 */ .notdef /* 94 */ .notdef /* 95 */ .notdef /* 96 */ .notdef /* 97 */ .notdef /* 98 */ .notdef /* 99 */ .notdef /* 9a */ .notdef /* 9b */ .notdef /* 9c */ .notdef /* 9d */ .notdef /* 9e */ .notdef /* 9f */ .notdef /* a0 */ .notdef /* a1 */ .notdef /* a2 */ .notdef /* a3 */ .notdef /* a4 */ .notdef /* a5 */ .notdef /* a6 */ .notdef /* a7 */ .notdef /* a8 */ .notdef /* a9 */ .notdef /* aa */ .notdef /* ab */ .notdef /* ac */ .notdef /* ad */ .notdef /* ae */ .notdef /* af */ .notdef /* b0 */ .notdef /* b1 */ .notdef /* b2 */ .notdef /* b3 */ .notdef /* b4 */ .notdef /* b5 */ .notdef /* b6 */ .notdef /* b7 */ .notdef /* b8 */ .notdef /* b9 */ .notdef /* ba */ .notdef /* bb */ .notdef /* bc */ .notdef /* bd */ .notdef /* be */ .notdef /* bf */ .notdef /* c0 */ .notdef /* c1 */ .notdef /* c2 */ .notdef /* c3 */ .notdef /* c4 */ .notdef /* c5 */ .notdef /* c6 */ .notdef /* c7 */ .notdef /* c8 */ .notdef /* c9 */ .notdef /* ca */ .notdef /* cb */ .notdef /* cc */ .notdef /* cd */ .notdef /* ce */ .notdef /* cf */ .notdef /* d0 */ .notdef /* d1 */ .notdef /* d2 */ .notdef /* d3 */ .notdef /* d4 */ .notdef /* d5 */ .notdef /* d6 */ .notdef /* d7 */ .notdef /* d8 */ .notdef /* d9 */ .notdef /* da */ .notdef /* db */ .notdef /* dc */ .notdef /* dd */ .notdef /* de */ .notdef /* df */ .notdef /* e0 */ .notdef /* e1 */ .notdef /* e2 */ .notdef /* e3 */ .notdef /* e4 */ .notdef /* e5 */ .notdef /* e6 */ .notdef /* e7 */ .notdef /* e8 */ .notdef /* e9 */ .notdef /* ea */ .notdef /* eb */ .notdef /* ec */ .notdef /* ed */ .notdef /* ee */ .notdef /* ef */ .notdef /* f0 */ .notdef /* f1 */ .notdef /* f2 */ .notdef /* f3 */ .notdef /* f4 */ .notdef /* f5 */ .notdef /* f6 */ .notdef /* f7 */ .notdef /* f8 */ .notdef /* f9 */ .notdef /* fa */ .notdef /* fb */ .notdef /* fc */ .notdef /* fd */ .notdef /* fe */ .notdef /* ff */ vflib3-3.6.14.dfsg/t1lib/texmital.enc0000644000175000017500000003563407273472636016650 0ustar mohuramohura# texmital.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/texmital.enc. Encoding=TeXMathItalicEncoding Gamma /* 00 */ Delta /* 01 */ Theta /* 02 */ Lambda /* 03 */ Xi /* 04 */ Pi /* 05 */ Sigma /* 06 */ Upsilon /* 07 */ Phi /* 08 */ Psi /* 09 */ Omega /* 0a */ alpha /* 0b */ beta /* 0c */ gamma /* 0d */ delta /* 0e */ epsilon1 /* 0f */ zeta /* 10 */ eta /* 11 */ theta /* 12 */ iota /* 13 */ kappa /* 14 */ lambda /* 15 */ mu /* 16 */ nu /* 17 */ xi /* 18 */ pi /* 19 */ rho /* 1a */ sigma /* 1b */ tau /* 1c */ upsilon /* 1d */ phi /* 1e */ chi /* 1f */ psi /* 20 */ omega /* 21 */ epsilon /* 22 */ theta1 /* 23 */ pi1 /* 24 */ rho1 /* 25 */ sigma1 /* 26 */ phi1 /* 27 */ arrowlefttophalf /* 28 */ arrowleftbothalf /* 29 */ arrowrighttophalf /* 2a */ arrowrightbothalf /* 2b */ arrowhookleft /* 2c */ arrowhookright /* 2d */ triangleright /* 2e */ triangleleft /* 2f */ zerooldstyle /* 30 */ oneoldstyle /* 31 */ twooldstyle /* 32 */ threeoldstyle /* 33 */ fouroldstyle /* 34 */ fiveoldstyle /* 35 */ sixoldstyle /* 36 */ sevenoldstyle /* 37 */ eightoldstyle /* 38 */ nineoldstyle /* 39 */ period /* 3a */ comma /* 3b */ less /* 3c */ slash /* 3d */ greater /* 3e */ star /* 3f */ partialdiff /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ flat /* 5b */ natural /* 5c */ sharp /* 5d */ slurbelow /* 5e */ slurabove /* 5f */ lscript /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ dotlessi /* 7b */ dotlessj /* 7c */ weierstrass /* 7d */ vector /* 7e */ tie /* 7f */ .notdef /* 80 */ .notdef /* 81 */ .notdef /* 82 */ .notdef /* 83 */ .notdef /* 84 */ .notdef /* 85 */ .notdef /* 86 */ .notdef /* 87 */ .notdef /* 88 */ .notdef /* 89 */ .notdef /* 8a */ .notdef /* 8b */ .notdef /* 8c */ .notdef /* 8d */ .notdef /* 8e */ .notdef /* 8f */ .notdef /* 90 */ .notdef /* 91 */ .notdef /* 92 */ .notdef /* 93 */ .notdef /* 94 */ .notdef /* 95 */ .notdef /* 96 */ .notdef /* 97 */ .notdef /* 98 */ .notdef /* 99 */ .notdef /* 9a */ .notdef /* 9b */ .notdef /* 9c */ .notdef /* 9d */ .notdef /* 9e */ .notdef /* 9f */ .notdef /* a0 */ .notdef /* a1 */ .notdef /* a2 */ .notdef /* a3 */ .notdef /* a4 */ .notdef /* a5 */ .notdef /* a6 */ .notdef /* a7 */ .notdef /* a8 */ .notdef /* a9 */ .notdef /* aa */ .notdef /* ab */ .notdef /* ac */ .notdef /* ad */ .notdef /* ae */ .notdef /* af */ .notdef /* b0 */ .notdef /* b1 */ .notdef /* b2 */ .notdef /* b3 */ .notdef /* b4 */ .notdef /* b5 */ .notdef /* b6 */ .notdef /* b7 */ .notdef /* b8 */ .notdef /* b9 */ .notdef /* ba */ .notdef /* bb */ .notdef /* bc */ .notdef /* bd */ .notdef /* be */ .notdef /* bf */ .notdef /* c0 */ .notdef /* c1 */ .notdef /* c2 */ .notdef /* c3 */ .notdef /* c4 */ .notdef /* c5 */ .notdef /* c6 */ .notdef /* c7 */ .notdef /* c8 */ .notdef /* c9 */ .notdef /* ca */ .notdef /* cb */ .notdef /* cc */ .notdef /* cd */ .notdef /* ce */ .notdef /* cf */ .notdef /* d0 */ .notdef /* d1 */ .notdef /* d2 */ .notdef /* d3 */ .notdef /* d4 */ .notdef /* d5 */ .notdef /* d6 */ .notdef /* d7 */ .notdef /* d8 */ .notdef /* d9 */ .notdef /* da */ .notdef /* db */ .notdef /* dc */ .notdef /* dd */ .notdef /* de */ .notdef /* df */ .notdef /* e0 */ .notdef /* e1 */ .notdef /* e2 */ .notdef /* e3 */ .notdef /* e4 */ .notdef /* e5 */ .notdef /* e6 */ .notdef /* e7 */ .notdef /* e8 */ .notdef /* e9 */ .notdef /* ea */ .notdef /* eb */ .notdef /* ec */ .notdef /* ed */ .notdef /* ee */ .notdef /* ef */ .notdef /* f0 */ .notdef /* f1 */ .notdef /* f2 */ .notdef /* f3 */ .notdef /* f4 */ .notdef /* f5 */ .notdef /* f6 */ .notdef /* f7 */ .notdef /* f8 */ .notdef /* f9 */ .notdef /* fa */ .notdef /* fb */ .notdef /* fc */ .notdef /* fd */ .notdef /* fe */ .notdef /* ff */ vflib3-3.6.14.dfsg/t1lib/texmsym.enc0000644000175000017500000003563207273472636016525 0ustar mohuramohura# texmsym.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/texmsym.enc. Encoding=TeXMathSymbolEncoding minus /* 00 */ periodcentered /* 01 */ multiply /* 02 */ asteriskmath /* 03 */ divide /* 04 */ diamondmath /* 05 */ plusminus /* 06 */ minusplus /* 07 */ circleplus /* 08 */ circleminus /* 09 */ circlemultiply /* 0a */ circledivide /* 0b */ circledot /* 0c */ circlecopyrt /* 0d */ openbullet /* 0e */ bullet /* 0f */ equivasymptotic /* 10 */ equivalence /* 11 */ reflexsubset /* 12 */ reflexsuperset /* 13 */ lessequal /* 14 */ greaterequal /* 15 */ precedesequal /* 16 */ followsequal /* 17 */ similar /* 18 */ approxequal /* 19 */ propersubset /* 1a */ propersuperset /* 1b */ lessmuch /* 1c */ greatermuch /* 1d */ precedes /* 1e */ follows /* 1f */ arrowleft /* 20 */ arrowright /* 21 */ arrowup /* 22 */ arrowdown /* 23 */ arrowboth /* 24 */ arrownortheast /* 25 */ arrowsoutheast /* 26 */ similarequal /* 27 */ arrowdblleft /* 28 */ arrowdblright /* 29 */ arrowdblup /* 2a */ arrowdbldown /* 2b */ arrowdblboth /* 2c */ arrownorthwest /* 2d */ arrowsouthwest /* 2e */ proportional /* 2f */ prime /* 30 */ infinity /* 31 */ element /* 32 */ owner /* 33 */ triangle /* 34 */ triangleinv /* 35 */ negationslash /* 36 */ mapsto /* 37 */ universal /* 38 */ existential /* 39 */ logicalnot /* 3a */ emptyset /* 3b */ Rfractur /* 3c */ Ifractur /* 3d */ latticetop /* 3e */ perpendicular /* 3f */ aleph /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ union /* 5b */ intersection /* 5c */ unionmulti /* 5d */ logicaland /* 5e */ logicalor /* 5f */ turnstileleft /* 60 */ turnstileright /* 61 */ floorleft /* 62 */ floorright /* 63 */ ceilingleft /* 64 */ ceilingright /* 65 */ braceleft /* 66 */ braceright /* 67 */ angbracketleft /* 68 */ angbracketright /* 69 */ bar /* 6a */ bardbl /* 6b */ arrowbothv /* 6c */ arrowdblbothv /* 6d */ backslash /* 6e */ wreathproduct /* 6f */ radical /* 70 */ coproduct /* 71 */ nabla /* 72 */ integral /* 73 */ unionsq /* 74 */ intersectionsq /* 75 */ subsetsqequal /* 76 */ supersetsqequal /* 77 */ section /* 78 */ dagger /* 79 */ daggerdbl /* 7a */ paragraph /* 7b */ club /* 7c */ diamond /* 7d */ heart /* 7e */ spade /* 7f */ .notdef /* 80 */ .notdef /* 81 */ .notdef /* 82 */ .notdef /* 83 */ .notdef /* 84 */ .notdef /* 85 */ .notdef /* 86 */ .notdef /* 87 */ .notdef /* 88 */ .notdef /* 89 */ .notdef /* 8a */ .notdef /* 8b */ .notdef /* 8c */ .notdef /* 8d */ .notdef /* 8e */ .notdef /* 8f */ .notdef /* 90 */ .notdef /* 91 */ .notdef /* 92 */ .notdef /* 93 */ .notdef /* 94 */ .notdef /* 95 */ .notdef /* 96 */ .notdef /* 97 */ .notdef /* 98 */ .notdef /* 99 */ .notdef /* 9a */ .notdef /* 9b */ .notdef /* 9c */ .notdef /* 9d */ .notdef /* 9e */ .notdef /* 9f */ .notdef /* a0 */ .notdef /* a1 */ .notdef /* a2 */ .notdef /* a3 */ .notdef /* a4 */ .notdef /* a5 */ .notdef /* a6 */ .notdef /* a7 */ .notdef /* a8 */ .notdef /* a9 */ .notdef /* aa */ .notdef /* ab */ .notdef /* ac */ .notdef /* ad */ .notdef /* ae */ .notdef /* af */ .notdef /* b0 */ .notdef /* b1 */ .notdef /* b2 */ .notdef /* b3 */ .notdef /* b4 */ .notdef /* b5 */ .notdef /* b6 */ .notdef /* b7 */ .notdef /* b8 */ .notdef /* b9 */ .notdef /* ba */ .notdef /* bb */ .notdef /* bc */ .notdef /* bd */ .notdef /* be */ .notdef /* bf */ .notdef /* c0 */ .notdef /* c1 */ .notdef /* c2 */ .notdef /* c3 */ .notdef /* c4 */ .notdef /* c5 */ .notdef /* c6 */ .notdef /* c7 */ .notdef /* c8 */ .notdef /* c9 */ .notdef /* ca */ .notdef /* cb */ .notdef /* cc */ .notdef /* cd */ .notdef /* ce */ .notdef /* cf */ .notdef /* d0 */ .notdef /* d1 */ .notdef /* d2 */ .notdef /* d3 */ .notdef /* d4 */ .notdef /* d5 */ .notdef /* d6 */ .notdef /* d7 */ .notdef /* d8 */ .notdef /* d9 */ .notdef /* da */ .notdef /* db */ .notdef /* dc */ .notdef /* dd */ .notdef /* de */ .notdef /* df */ .notdef /* e0 */ .notdef /* e1 */ .notdef /* e2 */ .notdef /* e3 */ .notdef /* e4 */ .notdef /* e5 */ .notdef /* e6 */ .notdef /* e7 */ .notdef /* e8 */ .notdef /* e9 */ .notdef /* ea */ .notdef /* eb */ .notdef /* ec */ .notdef /* ed */ .notdef /* ee */ .notdef /* ef */ .notdef /* f0 */ .notdef /* f1 */ .notdef /* f2 */ .notdef /* f3 */ .notdef /* f4 */ .notdef /* f5 */ .notdef /* f6 */ .notdef /* f7 */ .notdef /* f8 */ .notdef /* f9 */ .notdef /* fa */ .notdef /* fb */ .notdef /* fc */ .notdef /* fd */ .notdef /* fe */ .notdef /* ff */ vflib3-3.6.14.dfsg/t1lib/xl2.enc0000644000175000017500000003561007273472636015520 0ustar mohuramohura# xl2.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/xl2.enc. Encoding=XL2encoding Gamma /* 00 */ Delta /* 01 */ Theta /* 02 */ Lambda /* 03 */ Xi /* 04 */ Pi /* 05 */ Sigma /* 06 */ Upsilon /* 07 */ Phi /* 08 */ Psi /* 09 */ Omega /* 0a */ ff /* 0b */ fi /* 0c */ fl /* 0d */ ffi /* 0e */ ffl /* 0f */ dotlessi /* 10 */ dotlessj /* 11 */ grave /* 12 */ acute /* 13 */ caron /* 14 */ breve /* 15 */ macron /* 16 */ ring /* 17 */ cedilla /* 18 */ germandbls /* 19 */ ae /* 1a */ oe /* 1b */ oslash /* 1c */ AE /* 1d */ OE /* 1e */ Oslash /* 1f */ .notdef /* 20 */ exclam /* 21 */ quotedblright /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ exclamdown /* 3c */ equal /* 3d */ questiondown /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ quotedblleft /* 5c */ bracketright /* 5d */ circumflex /* 5e */ dotaccent /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ endash /* 7b */ emdash /* 7c */ hungarumlaut /* 7d */ tilde /* 7e */ dieresis /* 7f */ ellipsis /* 80 */ dagger /* 81 */ daggerdbl /* 82 */ bullet /* 83 */ sterling /* 84 */ paragraph /* 85 */ .notdef /* 86 */ .notdef /* 87 */ .notdef /* 88 */ .notdef /* 89 */ .notdef /* 8a */ .notdef /* 8b */ .notdef /* 8c */ perthousand /* 8d */ .notdef /* 8e */ .notdef /* 8f */ .notdef /* 90 */ .notdef /* 91 */ .notdef /* 92 */ .notdef /* 93 */ .notdef /* 94 */ .notdef /* 95 */ .notdef /* 96 */ .notdef /* 97 */ Agrave /* 98 */ .notdef /* 99 */ .notdef /* 9a */ .notdef /* 9b */ hyphen /* 9c */ ogonek /* 9d */ guillemotleft /* 9e */ guillemotright /* 9f */ .notdef /* a0 */ Aogonek /* a1 */ breve /* a2 */ Lslash /* a3 */ currency /* a4 */ Lcaron /* a5 */ Sacute /* a6 */ section /* a7 */ dieresis /* a8 */ Scaron /* a9 */ Scedilla /* aa */ Tcaron /* ab */ Zacute /* ac */ .notdef /* ad */ Zcaron /* ae */ Zdotaccent /* af */ ring /* b0 */ aogonek /* b1 */ cedilla /* b2 */ lslash /* b3 */ acute /* b4 */ lcaron /* b5 */ sacute /* b6 */ caron /* b7 */ agrave /* b8 */ scaron /* b9 */ scedilla /* ba */ tcaron /* bb */ zacute /* bc */ hungarumlaut /* bd */ zcaron /* be */ zdotaccent /* bf */ Racute /* c0 */ Aacute /* c1 */ Acircumflex /* c2 */ Abreve /* c3 */ Adieresis /* c4 */ Lacute /* c5 */ Cacute /* c6 */ Ccedilla /* c7 */ Ccaron /* c8 */ Eacute /* c9 */ Eogonek /* ca */ Edieresis /* cb */ Ecaron /* cc */ Iacute /* cd */ Icircumflex /* ce */ Dcaron /* cf */ Eth /* d0 */ Nacute /* d1 */ Ncaron /* d2 */ Oacute /* d3 */ Ocircumflex /* d4 */ Ohungarumlaut /* d5 */ Odieresis /* d6 */ multiply /* d7 */ Rcaron /* d8 */ Uring /* d9 */ Uacute /* da */ Uhungarumlaut /* db */ Udieresis /* dc */ Yacute /* dd */ Togonek /* de */ germandbls /* df */ racute /* e0 */ aacute /* e1 */ acircumflex /* e2 */ abreve /* e3 */ adieresis /* e4 */ lacute /* e5 */ cacute /* e6 */ ccedilla /* e7 */ ccaron /* e8 */ eacute /* e9 */ eogonek /* ea */ edieresis /* eb */ ecaron /* ec */ iacute /* ed */ icircumflex /* ee */ dcaron /* ef */ eth /* f0 */ nacute /* f1 */ ncaron /* f2 */ oacute /* f3 */ ocircumflex /* f4 */ ohungarumlaut /* f5 */ odieresis /* f6 */ divide /* f7 */ rcaron /* f8 */ uring /* f9 */ uacute /* fa */ uhungarumlaut /* fb */ udieresis /* fc */ yacute /* fd */ quotedblbase /* fe */ quotedblleft /* ff */ vflib3-3.6.14.dfsg/t1lib/xt2.enc0000644000175000017500000003561007273472636015530 0ustar mohuramohura# xt2.enc: an encoding vector file for T1Lib. # Generated by mkt1enc.sh from /usr/local/share/texmf/dvips/xt2.enc. Encoding=XT2encoding Gamma /* 00 */ Delta /* 01 */ Theta /* 02 */ Lambda /* 03 */ Xi /* 04 */ Pi /* 05 */ Sigma /* 06 */ Upsilon /* 07 */ Phi /* 08 */ Psi /* 09 */ Omega /* 0a */ arrowup /* 0b */ arrowdown /* 0c */ qoutesingle /* 0d */ exclamdown /* 0e */ questiondown /* 0f */ dotlessi /* 10 */ dotlessj /* 11 */ grave /* 12 */ acute /* 13 */ caron /* 14 */ breve /* 15 */ macron /* 16 */ ring /* 17 */ cedilla /* 18 */ germandbls /* 19 */ ae /* 1a */ oe /* 1b */ oslash /* 1c */ AE /* 1d */ OE /* 1e */ Oslash /* 1f */ .notdef /* 20 */ exclam /* 21 */ quotedblright /* 22 */ numbersign /* 23 */ dollar /* 24 */ percent /* 25 */ ampersand /* 26 */ quoteright /* 27 */ parenleft /* 28 */ parenright /* 29 */ asterisk /* 2a */ plus /* 2b */ comma /* 2c */ hyphen /* 2d */ period /* 2e */ slash /* 2f */ zero /* 30 */ one /* 31 */ two /* 32 */ three /* 33 */ four /* 34 */ five /* 35 */ six /* 36 */ seven /* 37 */ eight /* 38 */ nine /* 39 */ colon /* 3a */ semicolon /* 3b */ less /* 3c */ equal /* 3d */ greater /* 3e */ question /* 3f */ at /* 40 */ A /* 41 */ B /* 42 */ C /* 43 */ D /* 44 */ E /* 45 */ F /* 46 */ G /* 47 */ H /* 48 */ I /* 49 */ J /* 4a */ K /* 4b */ L /* 4c */ M /* 4d */ N /* 4e */ O /* 4f */ P /* 50 */ Q /* 51 */ R /* 52 */ S /* 53 */ T /* 54 */ U /* 55 */ V /* 56 */ W /* 57 */ X /* 58 */ Y /* 59 */ Z /* 5a */ bracketleft /* 5b */ backslash /* 5c */ bracketright /* 5d */ circumflex /* 5e */ underscore /* 5f */ quoteleft /* 60 */ a /* 61 */ b /* 62 */ c /* 63 */ d /* 64 */ e /* 65 */ f /* 66 */ g /* 67 */ h /* 68 */ i /* 69 */ j /* 6a */ k /* 6b */ l /* 6c */ m /* 6d */ n /* 6e */ o /* 6f */ p /* 70 */ q /* 71 */ r /* 72 */ s /* 73 */ t /* 74 */ u /* 75 */ v /* 76 */ w /* 77 */ x /* 78 */ y /* 79 */ z /* 7a */ braceleft /* 7b */ bar /* 7c */ braceright /* 7d */ tilde /* 7e */ dieresis /* 7f */ ellipsis /* 80 */ dagger /* 81 */ daggerdbl /* 82 */ bullet /* 83 */ sterling /* 84 */ paragraph /* 85 */ .notdef /* 86 */ .notdef /* 87 */ .notdef /* 88 */ .notdef /* 89 */ .notdef /* 8a */ .notdef /* 8b */ .notdef /* 8c */ perthousand /* 8d */ .notdef /* 8e */ .notdef /* 8f */ .notdef /* 90 */ .notdef /* 91 */ .notdef /* 92 */ .notdef /* 93 */ .notdef /* 94 */ .notdef /* 95 */ .notdef /* 96 */ .notdef /* 97 */ Agrave /* 98 */ .notdef /* 99 */ .notdef /* 9a */ .notdef /* 9b */ hyphen /* 9c */ ogonek /* 9d */ guillemotleft /* 9e */ guillemotright /* 9f */ .notdef /* a0 */ Aogonek /* a1 */ breve /* a2 */ Lslash /* a3 */ currency /* a4 */ Lcaron /* a5 */ Sacute /* a6 */ section /* a7 */ dieresis /* a8 */ Scaron /* a9 */ Scedilla /* aa */ Tcaron /* ab */ Zacute /* ac */ .notdef /* ad */ Zcaron /* ae */ Zdotaccent /* af */ ring /* b0 */ aogonek /* b1 */ cedilla /* b2 */ lslash /* b3 */ acute /* b4 */ lcaron /* b5 */ sacute /* b6 */ caron /* b7 */ agrave /* b8 */ scaron /* b9 */ scedilla /* ba */ tcaron /* bb */ zacute /* bc */ hungarumlaut /* bd */ zcaron /* be */ zdotaccent /* bf */ Racute /* c0 */ Aacute /* c1 */ Acircumflex /* c2 */ Abreve /* c3 */ Adieresis /* c4 */ Lacute /* c5 */ Cacute /* c6 */ Ccedilla /* c7 */ Ccaron /* c8 */ Eacute /* c9 */ Eogonek /* ca */ Edieresis /* cb */ Ecaron /* cc */ Iacute /* cd */ Icircumflex /* ce */ Dcaron /* cf */ Eth /* d0 */ Nacute /* d1 */ Ncaron /* d2 */ Oacute /* d3 */ Ocircumflex /* d4 */ Ohungarumlaut /* d5 */ Odieresis /* d6 */ multiply /* d7 */ Rcaron /* d8 */ Uring /* d9 */ Uacute /* da */ Uhungarumlaut /* db */ Udieresis /* dc */ Yacute /* dd */ Togonek /* de */ germandbls /* df */ racute /* e0 */ aacute /* e1 */ acircumflex /* e2 */ abreve /* e3 */ adieresis /* e4 */ lacute /* e5 */ cacute /* e6 */ ccedilla /* e7 */ ccaron /* e8 */ eacute /* e9 */ eogonek /* ea */ edieresis /* eb */ ecaron /* ec */ iacute /* ed */ icircumflex /* ee */ dcaron /* ef */ eth /* f0 */ nacute /* f1 */ ncaron /* f2 */ oacute /* f3 */ ocircumflex /* f4 */ ohungarumlaut /* f5 */ odieresis /* f6 */ divide /* f7 */ rcaron /* f8 */ uring /* f9 */ uacute /* fa */ uhungarumlaut /* fb */ udieresis /* fc */ yacute /* fd */ quotedblbase /* fe */ quotedblleft /* ff */ vflib3-3.6.14.dfsg/t1lib/Makefile.in0000644000175000017500000000060007273473163016354 0ustar mohuramohuraall: ALL: include ../make-sub install: @if [ ! -d $(runtimedir)/t1lib ] ; then \ ../recmkdir $(runtimedir)/t1lib; fi @for f in `echo mkt1enc.sh *.enc`; do \ ../$(INSTALL_DATA) $$f $(runtimedir)/t1lib; done uninstall: -$(RM) $(runtimedir)/t1lib/*.enc -$(RM) $(runtimedir)/t1lib/mkt1enc.sh -$(RMDIR) $(runtimedir)/t1lib veryclean:: clean distclean:: clean vflib3-3.6.14.dfsg/X-whereisit0000755000175000017500000000026506627737447015453 0ustar mohuramohura#! /bin/sh IFS="${IFS= }"; old_ifs="$IFS"; IFS="${IFS}:" for dir in $PATH; do test -z "$dir" && dir=. if test -x $dir/$1; then echo $dir/$1 exit 0; fi done exit 1 vflib3-3.6.14.dfsg/VFlib-3.6.14-1-templ.spec0000644000175000017500000000343010267640435017155 0ustar mohuramohura%define ver 3.6.14 %define rel 1 %define prefix /usr Summary: VFlib version 3.6.14 Name: VFlib3 Version: %ver Release: %rel Copyright: LGPL Group: Other Vendor: The TypeHack Project Packager: Hirotsugu Kakugawa Url: http://TypeHack.aial.hiroshima-u.ac.jp/VFlib/ Source: ftp://TypeHack.aial.hiroshima-u.ac.jp/pub/TypeHack/VFlib3-%{ver}.tar.gz BuildRoot: /var/tmp/VFlib3-root Requires: t1lib >= 5.1.0 Requires: freetype >= 1.2 #Requires: kpathsea >= 3.2 Requires: tetex >= 1.0.7 %description VFlib is a font library written in C language with several functions to obtain bitmaps of fonts. Unique feature of VFlib is that fonts in different formats are accessed by unified interface. %prep %setup -n VFlib3-%{ver} %build rm -rf $RPM_BUILD_ROOT ./configure --prefix=%prefix \ --with-freetype \ --with-freetype-includedir=/usr/include/freetype1/freetype \ --with-freetype-libdir=/usr/lib \ --with-t1lib \ --with-t1lib-includedir=/usr/include \ --with-t1lib-libdir=/usr/lib \ --with-kpathsea \ --with-kpathsea-includedir=/usr/include \ --with-kpathsea-libdir=/usr/lib make %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %clean rm -rf $RPM_BUILD_ROOT %install mkdir -p $RPM_BUILD_ROOT/%{prefix}/bin mkdir -p $RPM_BUILD_ROOT/%{prefix}/lib mkdir -p $RPM_BUILD_ROOT/%{prefix}/info mkdir -p $RPM_BUILD_ROOT/%{prefix}/include mkdir -p $RPM_BUILD_ROOT/%{prefix}/share mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/VFlib mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/texmf make prefix=${RPM_BUILD_ROOT}%prefix install %files %defattr(-,root,root,-) %doc ANNOUNCE* CHANGES COPYING* DISTRIB.txt %{prefix}/bin/* %{prefix}/lib/* %{prefix}/include/* %{prefix}/share/VFlib/* #%{prefix}/info/*